From 5fae6f956513215b68f4e6df5aef4cc7f618a920 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Tue, 24 Oct 2017 14:36:00 -0500 Subject: [PATCH 001/336] Delete flow_b not needed --- flow_b | 84 ---------------------------------------------------------- 1 file changed, 84 deletions(-) delete mode 100644 flow_b diff --git a/flow_b b/flow_b deleted file mode 100644 index 4e79284..0000000 --- a/flow_b +++ /dev/null @@ -1,84 +0,0 @@ -iteration flow --------------- - -1. ModulusProjection - -- save image as previous image - -- amplitudes(reciprocical) = ifft(image) - -- normalize: amplitudes * data array size - -- amplitude_abs = abs(amplitudes) - ---- pcdi (modifies amplitude_abs) - ---- cut out roi region and do it on this subarray - ---- if update coherence(pcdi trigger) - -------- do partial coherence on (2*amplitudes_abs_previous - amplitudes_abs, data_abs) - -------- if normalize amplitudes_abs = sqrt( amplitudes_abs^2 / sum(amplitudes_abs^2) * sum(data_abs^2) ) - -------- kernel set to roi size - -------- coherence = do Lucy(amplitudes_abs^2, data_abs^2) - -------- find max element in coherence and shift the array in all dimensions to place it at [0,0,0] - -------- normalize coherence abs(coh)/norm_coh - ---- amplitudes_abs = sqrt(fftconvolve(abs(amplitudes)^2, coherence) - back to the big dimensions - -- apply amplitude threshold on the amplitudes (not affected by pcdi) - -- apply ratio amplitudes * amplitudes_abs/data_abs - -- record error = sum(abs(amplitudes)-abs(data))^2/sum(data)^2 - -- image = fft(amplitudes) - -- normalize: image / data array size - - -2.1 ER -- image * support - - -2.2 HIO - -- image * support + (1 - support) * (prev_image - image * beta)) - - -2.3 ER_NORM - -- image_norm_prev - -- image * support - -- image_norm - -- image * sqrt(image_norm/image_norm_prev) - - -2.4 HIO_NORM - -- image_norm_prev - -- phases - -- phase condition: (phase < params->GetPhaseMin()) || (phase > params->GetPhaseMax()) || (support->GetSupportArray() == 0) - -- for phase condition and support replace image with prev_image - image * beta - -- image_norm - -- image * sqrt(image_norm/image_norm_prev) - - -3. - -- update support (not implemented) - - From 995bf88e3ca564671a9046d48abb0a94da493b8c Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Tue, 24 Oct 2017 14:36:22 -0500 Subject: [PATCH 002/336] Delete flow_j not needed --- flow_j | 69 ---------------------------------------------------------- 1 file changed, 69 deletions(-) delete mode 100644 flow_j diff --git a/flow_j b/flow_j deleted file mode 100644 index 75e92f0..0000000 --- a/flow_j +++ /dev/null @@ -1,69 +0,0 @@ -Jess flow ---------- - -1. ModulusProjection - -- amplitudes(reciprocical) = fft(image) - -- amplitude_abs = abs(amplitudes) - ---- pcdi (modifies amplitude_abs) - ---- if update coherence(pcdi trigger) - -------- do partial coherence on (2*amplitudes_abs_previous - amplitudes_abs, data_abs) - -------- cut out center of the above two arrays of the roi size - -------- if normalize amplitudes_abs = sqrt( amplitudes_abs^2 / sum(amplitudes_abs^2) * sum(data_abs^2) ) - -------- if symmetrize_data both arrays a = center(a) + center(a.flip(flip(flip())))) - -------- if not use previous, coherence = do Lucy(amplitudes_abs^2, data_abs^2) - -------- find max element in coherence and center it - -------- cut a kernel size subarray centered, and return it as coherence (kernel hardcoded to 17 in each dim) - -------- if symmetrize_kernal kernal+flipdim(flipdim(flipdim(kernal,1),2),3)/norm_after*norm_before - -------- normalize coherence abs(coh)/norm_coh - ---- amplitudes_abs = sqrt(fftconvolve(abs(amplitudes), coherence) - -- apply ratio amplitudes * amplitudes_abs/data_abs - -- image = ifft(amplitudes) - -- record error = sum(abs(amplitudes)-abs(data))^2/sum(data)^2 - - -2. - -- if trigger - ---- shrink_wrap - ---- update support - -- if trigger - ---- phase constraint - -3.1.ER - -- image * support - - -2.2 HIO - -- image * support + (1 - support) * (prev_image - image * beta)) - - - - - - - - - From be357ea583df9c3d5b691d8aee9c84d4435000a8 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Tue, 24 Oct 2017 14:36:41 -0500 Subject: [PATCH 003/336] Delete flow_r not needed --- flow_r | 53 ----------------------------------------------------- 1 file changed, 53 deletions(-) delete mode 100644 flow_r diff --git a/flow_r b/flow_r deleted file mode 100644 index 6e7cb34..0000000 --- a/flow_r +++ /dev/null @@ -1,53 +0,0 @@ -Ross's flow ------------ - -1. ER - -- amplitudes(reciprocical) = ifft(image) - -- normalize: amplitudes * data array size - -- record error = sum(abs(amplitudes)-abs(data))^2/sum(data)^2 - -- apply amplitude threshold on the amplitudes - -- image = fft(amplitudes) - -- normalize: image / data array size - -- image_norm_prev - -- image * support - -- image_norm - -- image * sqrt(image_norm/image_norm_prev) - - -2. Phase Constrained HIO - -- amplitudes(reciprocical) = ifft(image) - -- normalize: amplitudes * data array size - -- record error = sum(abs(amplitudes)-abs(data))^2/sum(data)^2 - -- apply amplitude threshold on the amplitudes - -- image = fft(amplitudes) - -- normalize: image / data array size - -- image_norm_prev - -- phases - -- phase condition: (phase < params->GetPhaseMin()) || (phase > params->GetPhaseMax()) || (support->GetSupportArray() == 0) - -- for phase condition and support replace image with prev_image - image * beta - -- image_norm - -- image * sqrt(image_norm/image_norm_prev) - - From bc1339ae8719a9df97c0ba6e204fe2e34832eb3d Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Tue, 24 Oct 2017 16:11:47 -0500 Subject: [PATCH 004/336] saving data/results in npy files --- src_py/controller/reconstruction.py | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/src_py/controller/reconstruction.py b/src_py/controller/reconstruction.py index df0a02b..868ac4c 100755 --- a/src_py/controller/reconstruction.py +++ b/src_py/controller/reconstruction.py @@ -61,7 +61,6 @@ import pylibconfig2 as cfg import os import scipy.fftpack as sf -import scipy.io as sio import src_py.cyth.bridge_cpu as bridge_cpu import src_py.cyth.bridge_opencl as bridge_opencl #import src_py.cyth.bridge_cuda as bridge_cuda @@ -288,9 +287,7 @@ def reconstruction(proc, filename, conf): try: save_data = config_map.save_data if save_data: - data_dict = {} - data_dict['data'] = data - sio.savemat('data.mat', data_dict) + np.save('data.npy', data) except AttributeError: pass @@ -300,16 +297,11 @@ def reconstruction(proc, filename, conf): try: save_results = config_map.save_data if save_results: - image_dict = {} - support_dict = {} - image_dict['image'] = image - sio.savemat('image.mat', image_dict) - support_dict['support'] = support - sio.savemat('support.mat', support_dict) + np.save('image.npy', image) + np.save('support.npy', support) except AttributeError: pass - try: res_dir = config_map.res_dir if not res_dir.endswith('/'): From f530b5ade8974765429dea10cd228f4206589ffd Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Tue, 24 Oct 2017 16:42:40 -0500 Subject: [PATCH 005/336] Create LICENSE --- LICENSE | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..afd5044 --- /dev/null +++ b/LICENSE @@ -0,0 +1,44 @@ +# ######################################################################### +# Copyright (c), UChicago Argonne, LLC. All rights reserved. # +# # +# Copyright. UChicago Argonne, LLC. This software was produced # +# under U.S. Government contract DE-AC02-06CH11357 for Argonne National # +# Laboratory (ANL), which is operated by UChicago Argonne, LLC for the # +# U.S. Department of Energy. The U.S. Government has rights to use, # +# reproduce, and distribute this software. NEITHER THE GOVERNMENT NOR # +# UChicago Argonne, LLC MAKES ANY WARRANTY, EXPRESS OR IMPLIED, OR # +# ASSUMES ANY LIABILITY FOR THE USE OF THIS SOFTWARE. If software is # +# modified to produce derivative works, such modified software should # +# be clearly marked, so as not to confuse it with the version available # +# from ANL. # +# # +# Additionally, redistribution and use in source and binary forms, with # +# or without modification, are permitted provided that the following # +# conditions are met: # +# # +# * Redistributions of source code must retain the above copyright # +# notice, this list of conditions and the following disclaimer. # +# # +# * Redistributions in binary form must reproduce the above copyright # +# notice, this list of conditions and the following disclaimer in # +# the documentation and/or other materials provided with the # +# distribution. # +# # +# * Neither the name of UChicago Argonne, LLC, Argonne National # +# Laboratory, ANL, the U.S. Government, nor the names of its # +# contributors may be used to endorse or promote products derived # +# from this software without specific prior written permission. # +# # +# THIS SOFTWARE IS PROVIDED BY UChicago Argonne, LLC AND CONTRIBUTORS # +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT # +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS # +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL UChicago # +# Argonne, LLC OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, # +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, # +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; # +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER # +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN # +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # +# POSSIBILITY OF SUCH DAMAGE. # +# ######################################################################### From b55eee072cc279cac141d22acdaf74246663f9e3 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 25 Oct 2017 10:29:08 -0500 Subject: [PATCH 006/336] Updated license info --- src_py/controller/reconstruction.py | 43 ++--------------------------- 1 file changed, 2 insertions(+), 41 deletions(-) diff --git a/src_py/controller/reconstruction.py b/src_py/controller/reconstruction.py index 868ac4c..60120e7 100755 --- a/src_py/controller/reconstruction.py +++ b/src_py/controller/reconstruction.py @@ -2,48 +2,9 @@ # -*- coding: utf-8 -*- # ######################################################################### -# Copyright (c) 2016, UChicago Argonne, LLC. All rights reserved. # +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # # # -# Copyright 2016. UChicago Argonne, LLC. This software was produced # -# under U.S. Government contract DE-AC02-06CH11357 for Argonne National # -# Laboratory (ANL), which is operated by UChicago Argonne, LLC for the # -# U.S. Department of Energy. The U.S. Government has rights to use, # -# reproduce, and distribute this software. NEITHER THE GOVERNMENT NOR # -# UChicago Argonne, LLC MAKES ANY WARRANTY, EXPRESS OR IMPLIED, OR # -# ASSUMES ANY LIABILITY FOR THE USE OF THIS SOFTWARE. If software is # -# modified to produce derivative works, such modified software should # -# be clearly marked, so as not to confuse it with the version available # -# from ANL. # -# # -# Additionally, redistribution and use in source and binary forms, with # -# or without modification, are permitted provided that the following # -# conditions are met: # -# # -# * Redistributions of source code must retain the above copyright # -# notice, this list of conditions and the following disclaimer. # -# # -# * Redistributions in binary form must reproduce the above copyright # -# notice, this list of conditions and the following disclaimer in # -# the documentation and/or other materials provided with the # -# distribution. # -# # -# * Neither the name of UChicago Argonne, LLC, Argonne National # -# Laboratory, ANL, the U.S. Government, nor the names of its # -# contributors may be used to endorse or promote products derived # -# from this software without specific prior written permission. # -# # -# THIS SOFTWARE IS PROVIDED BY UChicago Argonne, LLC AND CONTRIBUTORS # -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT # -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS # -# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL UChicago # -# Argonne, LLC OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, # -# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, # -# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; # -# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER # -# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # -# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN # -# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # -# POSSIBILITY OF SUCH DAMAGE. # +# See LICENSE file. # # ######################################################################### """ From 93b68fdfc80ccabfd58b2886dc2cc1d944e363f4 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 25 Oct 2017 10:30:05 -0500 Subject: [PATCH 007/336] Updated license info --- src_py/cyth/bridge_cpu.pyx | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src_py/cyth/bridge_cpu.pyx b/src_py/cyth/bridge_cpu.pyx index 9377b6a..e8b28eb 100644 --- a/src_py/cyth/bridge_cpu.pyx +++ b/src_py/cyth/bridge_cpu.pyx @@ -1,3 +1,9 @@ +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + # distutils: language = c++ # distutils: include_dirs = ['include', 'AF_DIR/include', 'LC_DIR/lib',] # distutils: sources = ['src_cpp/algorithm.cpp', 'src_cpp/bridge.cpp', 'src_cpp/manager.cpp', 'src_cpp/parameters.cpp', 'src_cpp/pcdi.cpp', 'src_cpp/state.cpp', 'src_cpp/support.cpp', 'src_cpp/util.cpp', 'src_cpp/worker.cpp'] From 875405c222c46b94d98d0c73853c3772e9a85ff5 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 25 Oct 2017 10:30:41 -0500 Subject: [PATCH 008/336] Updated license info --- src_py/cyth/bridge_cuda.pyx | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src_py/cyth/bridge_cuda.pyx b/src_py/cyth/bridge_cuda.pyx index d3ad9fd..ffa0254 100755 --- a/src_py/cyth/bridge_cuda.pyx +++ b/src_py/cyth/bridge_cuda.pyx @@ -1,3 +1,9 @@ +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + # distutils: language = c++ # distutils: include_dirs = ['include', 'AF_DIR/include', 'LC_DIR/lib',] # distutils: sources = ['src_cpp/algorithm.cpp', 'src_cpp/bridge.cpp', 'src_cpp/manager.cpp', 'src_cpp/parameters.cpp', 'src_cpp/pcdi.cpp', 'src_cpp/state.cpp', 'src_cpp/support.cpp', 'src_cpp/util.cpp', 'src_cpp/worker.cpp'] From d0e48f864c841169c6dbabef96e846147afa01c5 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 25 Oct 2017 10:31:24 -0500 Subject: [PATCH 009/336] Updated license info --- src_py/cyth/bridge_opencl.pyx | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src_py/cyth/bridge_opencl.pyx b/src_py/cyth/bridge_opencl.pyx index 644c275..2fc53f2 100755 --- a/src_py/cyth/bridge_opencl.pyx +++ b/src_py/cyth/bridge_opencl.pyx @@ -1,3 +1,9 @@ +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + # distutils: language = c++ # distutils: include_dirs = ['include', 'AF_DIR/include', 'LC_DIR/lib',] # distutils: sources = ['src_cpp/algorithm.cpp', 'src_cpp/bridge.cpp', 'src_cpp/manager.cpp', 'src_cpp/parameters.cpp', 'src_cpp/pcdi.cpp', 'src_cpp/state.cpp', 'src_cpp/support.cpp', 'src_cpp/util.cpp', 'src_cpp/worker.cpp'] From be9bc95af1e7e2f10175a4fb9610b59382387819 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 25 Oct 2017 10:32:09 -0500 Subject: [PATCH 010/336] Updated license info --- src_py/utilities/CXDVizNX.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src_py/utilities/CXDVizNX.py b/src_py/utilities/CXDVizNX.py index 9e5c90d..28b0d93 100644 --- a/src_py/utilities/CXDVizNX.py +++ b/src_py/utilities/CXDVizNX.py @@ -1,3 +1,9 @@ +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + import pylibconfig2 as cfg import os import traits.api as tr From 1381c09f7ce994caa3f69effea8636f5821e3775 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 25 Oct 2017 10:32:54 -0500 Subject: [PATCH 011/336] Updated license info --- src_py/utilities/utils.py | 43 ++------------------------------------- 1 file changed, 2 insertions(+), 41 deletions(-) diff --git a/src_py/utilities/utils.py b/src_py/utilities/utils.py index 1a6fc2a..30eab85 100644 --- a/src_py/utilities/utils.py +++ b/src_py/utilities/utils.py @@ -2,48 +2,9 @@ # -*- coding: utf-8 -*- # ######################################################################### -# Copyright (c) 2016, UChicago Argonne, LLC. All rights reserved. # +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # # # -# Copyright 2016. UChicago Argonne, LLC. This software was produced # -# under U.S. Government contract DE-AC02-06CH11357 for Argonne National # -# Laboratory (ANL), which is operated by UChicago Argonne, LLC for the # -# U.S. Department of Energy. The U.S. Government has rights to use, # -# reproduce, and distribute this software. NEITHER THE GOVERNMENT NOR # -# UChicago Argonne, LLC MAKES ANY WARRANTY, EXPRESS OR IMPLIED, OR # -# ASSUMES ANY LIABILITY FOR THE USE OF THIS SOFTWARE. If software is # -# modified to produce derivative works, such modified software should # -# be clearly marked, so as not to confuse it with the version available # -# from ANL. # -# # -# Additionally, redistribution and use in source and binary forms, with # -# or without modification, are permitted provided that the following # -# conditions are met: # -# # -# * Redistributions of source code must retain the above copyright # -# notice, this list of conditions and the following disclaimer. # -# # -# * Redistributions in binary form must reproduce the above copyright # -# notice, this list of conditions and the following disclaimer in # -# the documentation and/or other materials provided with the # -# distribution. # -# # -# * Neither the name of UChicago Argonne, LLC, Argonne National # -# Laboratory, ANL, the U.S. Government, nor the names of its # -# contributors may be used to endorse or promote products derived # -# from this software without specific prior written permission. # -# # -# THIS SOFTWARE IS PROVIDED BY UChicago Argonne, LLC AND CONTRIBUTORS # -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT # -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS # -# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL UChicago # -# Argonne, LLC OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, # -# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, # -# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; # -# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER # -# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # -# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN # -# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # -# POSSIBILITY OF SUCH DAMAGE. # +# See LICENSE file. # # ######################################################################### """ From 2fb9cfaaeed94276326895e482eb60960d30b1b2 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 25 Oct 2017 10:33:37 -0500 Subject: [PATCH 012/336] Updated license info --- src_py/utilities/utils_post.py | 43 ++-------------------------------- 1 file changed, 2 insertions(+), 41 deletions(-) diff --git a/src_py/utilities/utils_post.py b/src_py/utilities/utils_post.py index 2571555..e6ced24 100644 --- a/src_py/utilities/utils_post.py +++ b/src_py/utilities/utils_post.py @@ -2,48 +2,9 @@ # -*- coding: utf-8 -*- # ######################################################################### -# Copyright (c) 2016, UChicago Argonne, LLC. All rights reserved. # +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # # # -# Copyright 2016. UChicago Argonne, LLC. This software was produced # -# under U.S. Government contract DE-AC02-06CH11357 for Argonne National # -# Laboratory (ANL), which is operated by UChicago Argonne, LLC for the # -# U.S. Department of Energy. The U.S. Government has rights to use, # -# reproduce, and distribute this software. NEITHER THE GOVERNMENT NOR # -# UChicago Argonne, LLC MAKES ANY WARRANTY, EXPRESS OR IMPLIED, OR # -# ASSUMES ANY LIABILITY FOR THE USE OF THIS SOFTWARE. If software is # -# modified to produce derivative works, such modified software should # -# be clearly marked, so as not to confuse it with the version available # -# from ANL. # -# # -# Additionally, redistribution and use in source and binary forms, with # -# or without modification, are permitted provided that the following # -# conditions are met: # -# # -# * Redistributions of source code must retain the above copyright # -# notice, this list of conditions and the following disclaimer. # -# # -# * Redistributions in binary form must reproduce the above copyright # -# notice, this list of conditions and the following disclaimer in # -# the documentation and/or other materials provided with the # -# distribution. # -# # -# * Neither the name of UChicago Argonne, LLC, Argonne National # -# Laboratory, ANL, the U.S. Government, nor the names of its # -# contributors may be used to endorse or promote products derived # -# from this software without specific prior written permission. # -# # -# THIS SOFTWARE IS PROVIDED BY UChicago Argonne, LLC AND CONTRIBUTORS # -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT # -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS # -# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL UChicago # -# Argonne, LLC OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, # -# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, # -# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; # -# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER # -# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # -# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN # -# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # -# POSSIBILITY OF SUCH DAMAGE. # +# See LICENSE file. # # ######################################################################### """ From 9cc499fecec578c3b080f42ddaed94a79093a139 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 25 Oct 2017 10:35:10 -0500 Subject: [PATCH 013/336] Updated license info --- src_cpp/algorithm.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src_cpp/algorithm.cpp b/src_cpp/algorithm.cpp index 35021dc..8696506 100644 --- a/src_cpp/algorithm.cpp +++ b/src_cpp/algorithm.cpp @@ -1,3 +1,8 @@ +/*** +Copyright (c) UChicago Argonne, LLC. All rights reserved. +See LICENSE file. +***/ + #include "iostream" #include "algorithm.hpp" #include "worker.hpp" From a1fad647d4ff5484281b7318eb1beff924a12921 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 25 Oct 2017 10:36:08 -0500 Subject: [PATCH 014/336] Updated license info --- src_cpp/bridge.cpp | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src_cpp/bridge.cpp b/src_cpp/bridge.cpp index 68b63f6..0060291 100644 --- a/src_cpp/bridge.cpp +++ b/src_cpp/bridge.cpp @@ -1,11 +1,7 @@ -// -// Reconstruction.cpp -// ArrayFire-OpenCL -// -// Created by Barbara Frosik on 8/12/16. -// Copyright © 2016 ArrayFire. All rights reserved. -// - +/*** +Copyright (c) UChicago Argonne, LLC. All rights reserved. +See LICENSE file. +***/ #include "sstream" #include "bridge.hpp" From 2266af41a00b31ab8e25d14b3ed531af3104b005 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 25 Oct 2017 10:36:47 -0500 Subject: [PATCH 015/336] Updated license info --- src_cpp/manager.cpp | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src_cpp/manager.cpp b/src_cpp/manager.cpp index 16a67f1..bd416cb 100644 --- a/src_cpp/manager.cpp +++ b/src_cpp/manager.cpp @@ -1,10 +1,7 @@ -// -// Reconstruction.cpp -// ArrayFire-OpenCL -// -// Created by Barbara Frosik on 8/12/16. -// Copyright © 2016 ArrayFire. All rights reserved. -// +/*** +Copyright (c) UChicago Argonne, LLC. All rights reserved. +See LICENSE file. +***/ #include "typeinfo" #include "arrayfire.h" From 7998ab314911439d86a3fda79f83f3a055c3b9e6 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 25 Oct 2017 10:37:21 -0500 Subject: [PATCH 016/336] Updated license info --- src_cpp/parameters.cpp | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src_cpp/parameters.cpp b/src_cpp/parameters.cpp index 3a63734..756391f 100644 --- a/src_cpp/parameters.cpp +++ b/src_cpp/parameters.cpp @@ -1,10 +1,7 @@ -// -// parameters.cpp -// ArrayFire-OpenCL -// -// Created by Barbara Frosik on 8/15/16. -// Copyright © 2016 ArrayFire. All rights reserved. -// +/*** +Copyright (c) UChicago Argonne, LLC. All rights reserved. +See LICENSE file. +***/ #include "arrayfire.h" #include From e58bb2691f59b18bc2cace87583b8701a8edcb21 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 25 Oct 2017 10:37:52 -0500 Subject: [PATCH 017/336] Updated license info --- src_cpp/pcdi.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src_cpp/pcdi.cpp b/src_cpp/pcdi.cpp index 239403a..e8dbe1e 100644 --- a/src_cpp/pcdi.cpp +++ b/src_cpp/pcdi.cpp @@ -1,3 +1,8 @@ +/*** +Copyright (c) UChicago Argonne, LLC. All rights reserved. +See LICENSE file. +***/ + #include "cstdio" #include "common.h" #include "pcdi.hpp" @@ -183,4 +188,4 @@ void PartialCoherence::DeconvLucy(af::array amplitudes, af::array data, int iter af::array PartialCoherence::GetKernelArray() { return kernel_array; -} \ No newline at end of file +} From 24de169b16370102f961fc6245183ecb333e5d0b Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 25 Oct 2017 10:38:23 -0500 Subject: [PATCH 018/336] Updated license info --- src_cpp/state.cpp | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src_cpp/state.cpp b/src_cpp/state.cpp index 4f15090..c2c915e 100644 --- a/src_cpp/state.cpp +++ b/src_cpp/state.cpp @@ -1,10 +1,7 @@ -// -// state.cpp -// ArrayFire-OpenCL -// -// Created by Barbara Frosik on 8/15/16. -// Copyright © 2016 ArrayFire. All rights reserved. -// +/*** +Copyright (c) UChicago Argonne, LLC. All rights reserved. +See LICENSE file. +***/ #include "stdio.h" #include "vector" From 3e9485c8719f562fc586303988dbf89bee0ccb74 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 25 Oct 2017 10:38:59 -0500 Subject: [PATCH 019/336] Updated license info --- src_cpp/support.cpp | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src_cpp/support.cpp b/src_cpp/support.cpp index cbe8c4a..2502b2b 100644 --- a/src_cpp/support.cpp +++ b/src_cpp/support.cpp @@ -1,10 +1,7 @@ -// -// support.cpp -// ArrayFire-OpenCL -// -// Created by Barbara Frosik on 8/15/16. -// Copyright © 2016 ArrayFire. All rights reserved. -// +/*** +Copyright (c) UChicago Argonne, LLC. All rights reserved. +See LICENSE file. +***/ #include "stdio.h" #include "support.hpp" From c50882383065f55523cfed3aa7ad0a382f46c901 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 25 Oct 2017 10:39:30 -0500 Subject: [PATCH 020/336] Updated license info --- src_cpp/util.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src_cpp/util.cpp b/src_cpp/util.cpp index 898de57..d201e0f 100644 --- a/src_cpp/util.cpp +++ b/src_cpp/util.cpp @@ -1,3 +1,8 @@ +/*** +Copyright (c) UChicago Argonne, LLC. All rights reserved. +See LICENSE file. +***/ + #include "util.hpp" #include "common.h" #include From ea2ba81a91abf8184154ddac57ae8511f674a5a8 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 25 Oct 2017 10:40:03 -0500 Subject: [PATCH 021/336] Updated license info --- src_cpp/worker.cpp | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src_cpp/worker.cpp b/src_cpp/worker.cpp index 097cce9..031ece3 100644 --- a/src_cpp/worker.cpp +++ b/src_cpp/worker.cpp @@ -1,10 +1,7 @@ -// -// worker.cpp -// ArrayFire-OpenCL -// -// Created by Barbara Frosik on 8/12/16. -// Copyright © 2016 ArrayFire. All rights reserved. -// +/*** +Copyright (c) UChicago Argonne, LLC. All rights reserved. +See LICENSE file. +***/ #include "fstream" #include "worker.hpp" From 8dcc15d50bfe6807bdea94f627219ea943b71115 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 25 Oct 2017 10:40:53 -0500 Subject: [PATCH 022/336] Updated license info --- include/algorithm.hpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/include/algorithm.hpp b/include/algorithm.hpp index f6adcfb..b39e858 100644 --- a/include/algorithm.hpp +++ b/include/algorithm.hpp @@ -1,3 +1,7 @@ +/*** +Copyright (c) UChicago Argonne, LLC. All rights reserved. +See LICENSE file. +***/ #ifndef algorithm_hpp #define algorithm_hpp From 2d91e563723d97296f7e130ec4bd67a97dcac17e Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 25 Oct 2017 10:41:25 -0500 Subject: [PATCH 023/336] Updated license info --- include/bridge.hpp | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/include/bridge.hpp b/include/bridge.hpp index 42145bc..cd23ad0 100644 --- a/include/bridge.hpp +++ b/include/bridge.hpp @@ -1,10 +1,7 @@ -// -// bridge.hpp -// ArrayFire-OpenCL -// -// Created by Barbara Frosik on 8/15/16. -// Copyright © 2016 ArrayFire. All rights reserved. -// +/*** +Copyright (c) UChicago Argonne, LLC. All rights reserved. +See LICENSE file. +***/ #ifndef bridge_hpp #define bridge_hpp From 3fdc922fadfc58ef1899a33909ff78d001db39be Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 25 Oct 2017 10:42:01 -0500 Subject: [PATCH 024/336] Updated license info --- include/common.h | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/include/common.h b/include/common.h index 055b918..5e24414 100644 --- a/include/common.h +++ b/include/common.h @@ -1,10 +1,7 @@ -// -// Constants.h -// ArrayFire-OpenCL -// -// Created by Barbara Frosik on 8/8/16. -// Copyright © 2016 ArrayFire. All rights reserved. -// +/*** +Copyright (c) UChicago Argonne, LLC. All rights reserved. +See LICENSE file. +***/ #ifndef common_h #define common_h From abac2a2d973ae20f3a6dfd181856ab5636ca1fec Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 25 Oct 2017 10:43:01 -0500 Subject: [PATCH 025/336] Updated license info --- include/manager.hpp | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/include/manager.hpp b/include/manager.hpp index eae52b7..7157872 100644 --- a/include/manager.hpp +++ b/include/manager.hpp @@ -1,10 +1,8 @@ -// -// manager.hpp -// ArrayFire-OpenCL -// -// Created by Barbara Frosik on 8/15/16. -// Copyright © 2016 ArrayFire. All rights reserved. -// +/*** +Copyright (c) UChicago Argonne, LLC. All rights reserved. +See LICENSE file. +***/ +// Created by Barbara Frosik #ifndef manager_hpp #define manager_hpp From db3c049d123893a349870c183adf537601be7ac3 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 25 Oct 2017 10:43:34 -0500 Subject: [PATCH 026/336] Updated license info --- include/parameters.hpp | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/include/parameters.hpp b/include/parameters.hpp index 4237369..fafde89 100644 --- a/include/parameters.hpp +++ b/include/parameters.hpp @@ -1,10 +1,8 @@ -// -// parameters.hpp -// ArrayFire-OpenCL -// -// Created by Barbara Frosik on 8/15/16. -// Copyright © 2016 ArrayFire. All rights reserved. -// +/*** +Copyright (c) UChicago Argonne, LLC. All rights reserved. +See LICENSE file. +***/ +// Created by Barbara Frosik #ifndef parameters_hpp #define parameters_hpp From a76e13913c85834e6025d9da4b9a4fa8fe5379d9 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 25 Oct 2017 10:44:03 -0500 Subject: [PATCH 027/336] Updated license info --- include/pcdi.hpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/include/pcdi.hpp b/include/pcdi.hpp index 2cda432..2f5cc6a 100644 --- a/include/pcdi.hpp +++ b/include/pcdi.hpp @@ -1,3 +1,8 @@ +/*** +Copyright (c) UChicago Argonne, LLC. All rights reserved. +See LICENSE file. +***/ +// Created by Barbara Frosik #ifndef pcdi_hpp #define pcdi_hpp From 90c90e3fe69593e08ad06594ff1cc8ef1d25b9a7 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 25 Oct 2017 10:44:39 -0500 Subject: [PATCH 028/336] Updated license info --- include/state.hpp | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/include/state.hpp b/include/state.hpp index 1f1edf2..aa8ff91 100644 --- a/include/state.hpp +++ b/include/state.hpp @@ -1,10 +1,8 @@ -// -// state.hpp -// ArrayFire-OpenCL -// -// Created by Barbara Frosik on 8/15/16. -// Copyright © 2016 ArrayFire. All rights reserved. -// +/*** +Copyright (c) UChicago Argonne, LLC. All rights reserved. +See LICENSE file. +***/ +// Created by Barbara Frosik #ifndef state_hpp #define state_hpp From 85c33572c51ceb7871d37b83e5bd0f8e516057be Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 25 Oct 2017 10:45:18 -0500 Subject: [PATCH 029/336] Updated license info --- include/support.hpp | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/include/support.hpp b/include/support.hpp index b996365..6799790 100644 --- a/include/support.hpp +++ b/include/support.hpp @@ -1,10 +1,8 @@ -// -// parameters.hpp -// ArrayFire-OpenCL -// -// Created by Barbara Frosik on 8/15/16. -// Copyright © 2016 ArrayFire. All rights reserved. -// +/*** +Copyright (c) UChicago Argonne, LLC. All rights reserved. +See LICENSE file. +***/ +// Created by Barbara Frosik #ifndef support_hpp #define support_hpp From 329d056aa731f9df3cde09f662472db56bc71d47 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 25 Oct 2017 10:45:57 -0500 Subject: [PATCH 030/336] Updated license info --- include/util.hpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/include/util.hpp b/include/util.hpp index 61debac..58389c6 100644 --- a/include/util.hpp +++ b/include/util.hpp @@ -1,3 +1,9 @@ +/*** +Copyright (c) UChicago Argonne, LLC. All rights reserved. +See LICENSE file. +***/ +// Created by Barbara Frosik + #ifndef util_hpp #define util_hpp From 07fb2d728018a1af01e53890cea5e70846787994 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 25 Oct 2017 10:46:31 -0500 Subject: [PATCH 031/336] Updated license info --- include/worker.hpp | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/include/worker.hpp b/include/worker.hpp index 8bd3da2..c0e08ba 100644 --- a/include/worker.hpp +++ b/include/worker.hpp @@ -1,10 +1,8 @@ -// -// worker.hpp -// ArrayFire-OpenCL -// -// Created by Barbara Frosik on 8/12/16. -// Copyright © 2016 ArrayFire. All rights reserved. -// +/*** +Copyright (c) UChicago Argonne, LLC. All rights reserved. +See LICENSE file. +***/ +// Created by Barbara Frosik #ifndef worker_hpp #define worker_hpp From e18e19ded5159e4c101f49a43ce5f83b3d76d8cd Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 25 Oct 2017 10:47:01 -0500 Subject: [PATCH 032/336] Update algorithm.hpp --- include/algorithm.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/include/algorithm.hpp b/include/algorithm.hpp index b39e858..d8e3d9b 100644 --- a/include/algorithm.hpp +++ b/include/algorithm.hpp @@ -2,6 +2,7 @@ Copyright (c) UChicago Argonne, LLC. All rights reserved. See LICENSE file. ***/ +// Created by Barbara Frosik #ifndef algorithm_hpp #define algorithm_hpp From 4433480d4801ace6e01e600100c115550c69ad41 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 25 Oct 2017 10:47:20 -0500 Subject: [PATCH 033/336] Update bridge.hpp --- include/bridge.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/include/bridge.hpp b/include/bridge.hpp index cd23ad0..9310b2c 100644 --- a/include/bridge.hpp +++ b/include/bridge.hpp @@ -2,6 +2,7 @@ Copyright (c) UChicago Argonne, LLC. All rights reserved. See LICENSE file. ***/ +// Created by Barbara Frosik #ifndef bridge_hpp #define bridge_hpp From 0ce8c42e904f1e6651eec272d51cb068d8869891 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 25 Oct 2017 10:47:57 -0500 Subject: [PATCH 034/336] Update common.h --- include/common.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/common.h b/include/common.h index 5e24414..f0434b5 100644 --- a/include/common.h +++ b/include/common.h @@ -2,6 +2,7 @@ Copyright (c) UChicago Argonne, LLC. All rights reserved. See LICENSE file. ***/ +// Created by Barbara Frosik #ifndef common_h #define common_h @@ -26,8 +27,7 @@ typedef struct Alg_switch alg_switch; const int ALGORITHM_ER = 1; const int ALGORITHM_HIO = 2; -const int ALGORITHM_ER_NORM = 3; -const int ALGORITHM_HIO_NORM = 4; + const int ALGORITHM_LUCY = 13; const int ALGORITHM_LUCY_PREV = 14; const int ALGORITHM_GAUSS = 15; From d5e39a37edb5166b7ff9b6ccfab8b4ca12230801 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 25 Oct 2017 10:48:31 -0500 Subject: [PATCH 035/336] Update algorithm.cpp --- src_cpp/algorithm.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src_cpp/algorithm.cpp b/src_cpp/algorithm.cpp index 8696506..1ebd26c 100644 --- a/src_cpp/algorithm.cpp +++ b/src_cpp/algorithm.cpp @@ -2,6 +2,7 @@ Copyright (c) UChicago Argonne, LLC. All rights reserved. See LICENSE file. ***/ +// Created by Barbara Frosik #include "iostream" #include "algorithm.hpp" From aa8c6f8ee8ca7b1de81ec04c6fb59b42dbce1de2 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 25 Oct 2017 10:48:57 -0500 Subject: [PATCH 036/336] Update bridge.cpp --- src_cpp/bridge.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src_cpp/bridge.cpp b/src_cpp/bridge.cpp index 0060291..392b31d 100644 --- a/src_cpp/bridge.cpp +++ b/src_cpp/bridge.cpp @@ -2,6 +2,7 @@ Copyright (c) UChicago Argonne, LLC. All rights reserved. See LICENSE file. ***/ +// Created by Barbara Frosik #include "sstream" #include "bridge.hpp" From ddbd363b30097aba040d921cd213ae9f58c8e036 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 25 Oct 2017 10:49:20 -0500 Subject: [PATCH 037/336] Update manager.cpp --- src_cpp/manager.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src_cpp/manager.cpp b/src_cpp/manager.cpp index bd416cb..6cdd425 100644 --- a/src_cpp/manager.cpp +++ b/src_cpp/manager.cpp @@ -2,6 +2,7 @@ Copyright (c) UChicago Argonne, LLC. All rights reserved. See LICENSE file. ***/ +// Created by Barbara Frosik #include "typeinfo" #include "arrayfire.h" From 7c5efc09505804c27ca89d450a8e0f298cf8792a Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 25 Oct 2017 10:49:42 -0500 Subject: [PATCH 038/336] Update parameters.cpp --- src_cpp/parameters.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src_cpp/parameters.cpp b/src_cpp/parameters.cpp index 756391f..bc0114b 100644 --- a/src_cpp/parameters.cpp +++ b/src_cpp/parameters.cpp @@ -2,6 +2,7 @@ Copyright (c) UChicago Argonne, LLC. All rights reserved. See LICENSE file. ***/ +// Created by Barbara Frosik #include "arrayfire.h" #include From 15a926e46456e41d986f403a978c1aa2e3dae660 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 25 Oct 2017 10:50:07 -0500 Subject: [PATCH 039/336] Update pcdi.cpp --- src_cpp/pcdi.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src_cpp/pcdi.cpp b/src_cpp/pcdi.cpp index e8dbe1e..4bb096d 100644 --- a/src_cpp/pcdi.cpp +++ b/src_cpp/pcdi.cpp @@ -2,6 +2,7 @@ Copyright (c) UChicago Argonne, LLC. All rights reserved. See LICENSE file. ***/ +// Created by Barbara Frosik #include "cstdio" #include "common.h" From c10ffc771af380e0cf5f33264de6554b248ffbb7 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 25 Oct 2017 10:50:29 -0500 Subject: [PATCH 040/336] Update state.cpp --- src_cpp/state.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src_cpp/state.cpp b/src_cpp/state.cpp index c2c915e..bb04032 100644 --- a/src_cpp/state.cpp +++ b/src_cpp/state.cpp @@ -2,6 +2,7 @@ Copyright (c) UChicago Argonne, LLC. All rights reserved. See LICENSE file. ***/ +// Created by Barbara Frosik #include "stdio.h" #include "vector" From a6b342cde3c7236a6eb02563565b713f6df08ae8 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 25 Oct 2017 10:50:57 -0500 Subject: [PATCH 041/336] Update support.cpp --- src_cpp/support.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src_cpp/support.cpp b/src_cpp/support.cpp index 2502b2b..73a86fc 100644 --- a/src_cpp/support.cpp +++ b/src_cpp/support.cpp @@ -2,6 +2,7 @@ Copyright (c) UChicago Argonne, LLC. All rights reserved. See LICENSE file. ***/ +// Created by Barbara Frosik #include "stdio.h" #include "support.hpp" From 17e722195da956355387d8280f99fc4591527272 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 25 Oct 2017 10:51:21 -0500 Subject: [PATCH 042/336] Update util.cpp --- src_cpp/util.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src_cpp/util.cpp b/src_cpp/util.cpp index d201e0f..10308a3 100644 --- a/src_cpp/util.cpp +++ b/src_cpp/util.cpp @@ -2,6 +2,7 @@ Copyright (c) UChicago Argonne, LLC. All rights reserved. See LICENSE file. ***/ +// Created by Barbara Frosik #include "util.hpp" #include "common.h" From 261e1c1b4ead019cf3d10732d8a5d8154bf3009c Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 25 Oct 2017 10:51:43 -0500 Subject: [PATCH 043/336] Update worker.cpp --- src_cpp/worker.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src_cpp/worker.cpp b/src_cpp/worker.cpp index 031ece3..5d3ead7 100644 --- a/src_cpp/worker.cpp +++ b/src_cpp/worker.cpp @@ -2,6 +2,7 @@ Copyright (c) UChicago Argonne, LLC. All rights reserved. See LICENSE file. ***/ +// Created by Barbara Frosik #include "fstream" #include "worker.hpp" From 448fce3f7c2e76b74a9ac813f7062d83f88b88a4 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 25 Oct 2017 10:52:33 -0500 Subject: [PATCH 044/336] Update reconstruction.py --- src_py/controller/reconstruction.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src_py/controller/reconstruction.py b/src_py/controller/reconstruction.py index 60120e7..24e67e1 100755 --- a/src_py/controller/reconstruction.py +++ b/src_py/controller/reconstruction.py @@ -7,6 +7,8 @@ # See LICENSE file. # # ######################################################################### +# Created by Barbara Frosik + """ Please make sure the installation :ref:`pre-requisite-reference-label` are met. This module controls the reconstruction process. The user has to provide parameters such as type of processor, data, and configuration. From 9a796a99dc41d81d397db45892d9a344177df6a4 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 25 Oct 2017 10:54:17 -0500 Subject: [PATCH 045/336] Update reconstruction.py --- src_py/controller/reconstruction.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src_py/controller/reconstruction.py b/src_py/controller/reconstruction.py index 24e67e1..5982d70 100755 --- a/src_py/controller/reconstruction.py +++ b/src_py/controller/reconstruction.py @@ -7,7 +7,6 @@ # See LICENSE file. # # ######################################################################### -# Created by Barbara Frosik """ Please make sure the installation :ref:`pre-requisite-reference-label` are met. @@ -35,7 +34,8 @@ __docformat__ = 'restructuredtext en' __all__ = ['read_config', 'prepare_data', - 'do_reconstruction', + 'fast_module_reconstruction', + 'write_simple', 'reconstruction'] def read_config(config): From 2b4e1824575bf03d1fb86c224b6c7b0bd6874fda Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 25 Oct 2017 10:58:36 -0500 Subject: [PATCH 046/336] Update utils.py --- src_py/utilities/utils.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src_py/utilities/utils.py b/src_py/utilities/utils.py index 30eab85..38473d1 100644 --- a/src_py/utilities/utils.py +++ b/src_py/utilities/utils.py @@ -15,6 +15,17 @@ import tifffile as tf import numpy as np +__author__ = "Barbara Frosik" +__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." +__docformat__ = 'restructuredtext en' +__all__ = ['get_array_from_tif', + 'get_opencl_dim', + 'binning', + 'get_centered', + 'zero_pad', + 'crop_center', + 'flip'] + def get_array_from_tif(filename): """ From 949277d78a23d3f556e9efe824d4a28518ae5bdc Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 25 Oct 2017 11:00:04 -0500 Subject: [PATCH 047/336] Update CXDVizNX.py --- src_py/utilities/CXDVizNX.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src_py/utilities/CXDVizNX.py b/src_py/utilities/CXDVizNX.py index 28b0d93..f348b71 100644 --- a/src_py/utilities/CXDVizNX.py +++ b/src_py/utilities/CXDVizNX.py @@ -12,6 +12,10 @@ import math as m import utils as ut +__author__ = "Barbara Frosik" +__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." +__docformat__ = 'restructuredtext en' + class DispalyParams: """ From 21f141a7a4bff2820ca3c12fe32110e7a37026d5 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 25 Oct 2017 11:15:13 -0500 Subject: [PATCH 048/336] Update README.md --- README.md | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5890a9a..f143183 100644 --- a/README.md +++ b/README.md @@ -1 +1,39 @@ -# cdi +cdi +=== +Coherent Diffraction Imaging technique provides a reconstruction of image of a nanoscale structures. Refer to Wikipedia article CDI description for the technique details. +Project summary: Implement and parallelize genetic algorithms and phase retrieval methods for Bragg CDI techniques. + +The CDI experiments are performed at the beamline 34-ID. The team currently uses tool written in Matlab. This tool provides multiple features, and includes newest scientific discoveries in the field. Recently, scientists in general, are shifting to Python written tools, as Python offers better performance, and is easier to maintain. + +Goal of this project is to deliver fast tool, easy to maintain, that includes all the features currently available. There is a prospect to conduct research in the field, and add the new ideas/features when proved successful. + +A genetic algorithm approach to CDI phase retrieval will improve coherent imaging in two aspects. The first is to enable the recovery of highly reproducible images from a given data set. The second is to render previously impossible to image samples amenable to CDI, opening the door to a greater scientific impact for the method. The basic idea is to do the same phasing process with tens to thousands of random starting points. The diversity of results is then exploited to arrive at a highly reproducible image of the sample. Another aspect of genetic algorithm approaches is in the “fitness” criterion used to evaluate the population of results. This can be tuned to enable phase retrieval of datasets that have previously been impossible to produce images from. +It is desired to implement and parallelize software for fast processing by non-expert beamline users. Current processing time of a 100 MB sample using serial MATLAB code takes 60 minutes using limited parameters. Current data acquisition time for a 100 MB data set is 20 minutes, and will decrease after the completion of the APS Upgrade. Attaining a robust image of a sample in a computation time nearer the data acquisition time will allow nearer real-time feedback into the experimental parameters. The experimenter may begin to do guided, carefully executed experiments. Currently, the vast majority of Bragg CDI users will benefit from semi-real-time phase retrieval for their data. It will also open the instrument up to far less sophisticated CDI users. This technique will be critical to one or more APS Upgrade beamlines. + + +Version +------- +0.0.1 - 10/25/2017 + +Pre-requisites +--------------- +- ArrayFire library version 3.5.0 or higher +- Libconfig library version 1.5 or higher +- Python packages: + - Libconfig + - traits + - tvtk + +Author(s) +------- +Barbara Frosik - Principal Software Engineer at Argonne National Laboratory + +License +------- +Copyright (c) UChicago Argonne, LLC. All rights reserved. +See LICENSE file. + +Libraries +------- +ArrayFire open source +Libconfig open source From 0301791d1dbf61d83df679e264aa1d1c551dd4ac Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 25 Oct 2017 11:16:06 -0500 Subject: [PATCH 049/336] Update README.md --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index f143183..8e76da0 100644 --- a/README.md +++ b/README.md @@ -20,9 +20,9 @@ Pre-requisites - ArrayFire library version 3.5.0 or higher - Libconfig library version 1.5 or higher - Python packages: - - Libconfig - - traits - - tvtk + -- Libconfig + -- traits + -- tvtk Author(s) ------- @@ -35,5 +35,5 @@ See LICENSE file. Libraries ------- -ArrayFire open source -Libconfig open source +- ArrayFire open source +- Libconfig open source From 72bb4786e0f12a83e510a1fb509116de09fdf1fa Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 25 Oct 2017 11:17:06 -0500 Subject: [PATCH 050/336] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 8e76da0..46e6cb5 100644 --- a/README.md +++ b/README.md @@ -20,9 +20,9 @@ Pre-requisites - ArrayFire library version 3.5.0 or higher - Libconfig library version 1.5 or higher - Python packages: - -- Libconfig - -- traits - -- tvtk + - Libconfig + - traits + - tvtk Author(s) ------- From 5f5e2e7aebb92fe5415756bc6e0003d85f77f37a Mon Sep 17 00:00:00 2001 From: bfrosik Date: Fri, 1 Dec 2017 10:08:04 -0600 Subject: [PATCH 051/336] added feature to save calc and continue from saved --- .idea/vcs.xml | 6 + config.test | 41 ++--- include/manager.hpp | 2 +- include/parameters.hpp | 37 ++-- include/pcdi.hpp | 8 +- include/support.hpp | 12 +- include/util.hpp | 2 + include/worker.hpp | 20 +-- src_cpp/manager.cpp | 110 ++++++++++-- src_cpp/parameters.cpp | 255 +++++++++++++++++----------- src_cpp/pcdi.cpp | 41 ++--- src_cpp/state.cpp | 2 +- src_cpp/support.cpp | 67 ++------ src_cpp/util.cpp | 14 ++ src_cpp/worker.cpp | 35 ++-- src_py/controller/reconstruction.py | 67 ++++---- 16 files changed, 432 insertions(+), 287 deletions(-) create mode 100644 .idea/vcs.xml diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/config.test b/config.test index d4d68d2..f29f9ce 100644 --- a/config.test +++ b/config.test @@ -1,9 +1,23 @@ +// GENERAL +// directory where vtk files are saved, and the data and raw results if configured +save_dir = "results_dir" +// action defines what is processed by the program: +// if "prep_only" the program will only do the data preparation and save in the save_dir +// if "new_guess" the program will do the data prepation and will start reconstruction starting with random guess +// if "continue" the program jumps right to the reconstruction starting with saved data, raw reconstructed image, +// and support. With this action a continue_dir must be defined that contains the saved files. If only data is saved +// the program will start a new guess. +action = "new_guess" +continue_dir = "AB_dir" +// if save_results is true, the prepared data, raw image and support will be saved in the save_dir +save_results = true + + // PARAMETER FOR DATA PREPARATION aliens = ((170,220,112,195,245,123), (50,96,10,60,110,20)) binning = [2,2,2] center_shift = [0,0,0] zero_pad = [0,4,0] -save_data = true // RECONSTRUCTION PARAMETERS USED BY FAST MODULE @@ -14,10 +28,14 @@ gc = 5; //algorithm_sequence = ((3, ("ER",2), ("HIO", 2), ("ER", 2)), (2, ("ER",3), ("HIO",3))) //algorithm_sequence = ((1, ("ER",6))) algorithm_sequence = ((1, ("ER",19), ("HIO", 10)), (1,("ER",10))) +//algorithm_sequence = ((1, ("ER",10), ("HIO", 20)), (1,("ER",10))) +//algorithm_sequence = ((1, ("ER",19), ("HIO", 10)), (1,("ER",10)), (1, ("ER",10), ("HIO", 20)), (1,("ER",10))) // twin defines at which iteration to cut half of the array(i.e. multiply by 0s), it is done in ER/HIO -// if negative, no action +// if don't want to apply twin, set it negative +// twin is not applied if action is "continue" twin = 2; +//twin = -1 amp_threshold = 2.0; amp_threshold_fill_zeros = true; @@ -30,6 +48,7 @@ beta = .9; // trigger list contains starting iteration, step, and ending iteration (if missing, run to the end) //support_triggers = ((5, 5, 300), (1, 2)); support_triggers = ((4, 5, 300)); +//support_triggers = ((1, 5, 300)); support_type = "GAUSS"; support_threshold = 0.1; support_threshold_adjust = false; @@ -42,13 +61,11 @@ roi = [32,32,32]; // if type is not defined, partial coherence is not applied partial_coherence_type = "LUCY"; partial_coherence_triggers = ((14, 15)); +//partial_coherence_triggers = ((1, 15)); partial_coherence_iteration_num = 20; partial_coherence_normalize = true; // this is an area that will determine coherence, coherence array will come with this size partial_coherence_roi = [32,32,32]; -// this is an area of the coherence array that will be used to apply coherence to amplitudes -partial_coherence_kernel = [32,32,32]; -partial_coherence_clip = false; regularized_amp = "GAUSS"; @@ -70,20 +87,6 @@ dth=0.000174532925199; // detector pixel sixe pixel = [55.0e-6, 55.0e-6]; -// save in two vtk files -save_two_files = False; - // size to crop the image array crop = [120,120,120] -// defines whether save image and support in .mat files -save_results = true - -// the dir of results vtk files -res_dir = "vtk" - - - - - - diff --git a/include/manager.hpp b/include/manager.hpp index 7157872..1deac2c 100644 --- a/include/manager.hpp +++ b/include/manager.hpp @@ -17,7 +17,7 @@ class Manager { private: // A worker instance managed by the Manager - Reconstruction *rec; + Reconstruction *rec = NULL; public: // This method starts calculations. The Manager uses workers to perform the calculations. The parameters define diff --git a/include/parameters.hpp b/include/parameters.hpp index fafde89..6564784 100644 --- a/include/parameters.hpp +++ b/include/parameters.hpp @@ -27,10 +27,6 @@ struct Trigger_setting }; typedef struct Trigger_setting trigger_setting; -class Reconstruction; -class Support; -class PartialCoherence; - // This class holds parameters defining the reconstruction process. The parameters are set based on configuration file. // Methods of this class are getters. class Params @@ -38,24 +34,29 @@ class Params private: std::vector ParseTriggers(std::string trigger_name); void BuildAlgorithmMap(); + void BuildActionMap(); public: // Constructor. Takes in configuration file, parses the configuration and sets the parameters accordingly. - Params(const char* config_file, const dim4 data_dim); - + Params(const char* config_file, dim4 data_dim); + // returns data type (float/double). Used by python code std::string GetDataType(); // Returns number of all iterations. It is calculated from the "algorithm_sequence" parameter. int GetNumberIterations(); - // Returns info for support update. trigger list contains starting iteration, step, and ending iteration - // (if missing, run to the end) - Support * GetSupport(); + std::vector GetSupportArea(); + float GetSupportThreshold(); + int GetSupportSigma(); + std::vector GetSupportTriggers(); + int GetSupportAlg(); - // Returns info for partial coherence. trigger list contains starting iteration, step, and ending iteration - // (if missing, run to the end) - PartialCoherence * GetPartialCoherence(); + int GetPcdiAlgorithm(); + std::vector GetPcdiRoi(); + std::vector GetPcdiTriggers(); + bool GetPcdiNormalize(); + int GetPcdiIterations(); // Returns amplitude threshold. Used by ER and HIO algorithms. d_type GetAmpThreshold(); @@ -86,6 +87,18 @@ class Params // Returns a constant indication a scheme for modifying data when calculation ratio in modulus projection int GetRegularizedAmp(); + + // Returns directory to save results + const char * GetSaveDir(); + + // Returns directory to retrieve previous results to continue + const char * GetContinueDir(); + + // Returns action the program will perform. Choices are "prep_only", "new_guess", "continue" + int GetAction(); + + // Returns boolean flag indication whether to save the raw results + bool IsSaveResults(); // Returns number of iterations between calling garbage collection. int GetGC(); diff --git a/include/pcdi.hpp b/include/pcdi.hpp index 2f5cc6a..1f9268f 100644 --- a/include/pcdi.hpp +++ b/include/pcdi.hpp @@ -9,7 +9,8 @@ See LICENSE file. #include "vector" -//class Reconstruction; +class Params; + namespace af { class array; } @@ -18,25 +19,22 @@ class PartialCoherence { private: std::vector roi; - int * kernel; int crop[6]; std::vector triggers; int trigger_index; int algorithm; bool normalize; int iteration_num; - bool clip; void DeconvLucy(af::array image, af::array filter, int iter_num); void OnTrigger(af::array abs_image); void TuneLucyCoherence(af::array); int GetTriggerAlgorithm(); std::vector GetRoi(); - int * GetKernel(); af::array fftConvolve(af::array arr, af::array kernel); public: - PartialCoherence(std::vector roi, int * kernel, std::vector partial_coherence_trigger, int alg, bool pcdi_normalize, int pcdi_iter, bool pcdi_clip); + PartialCoherence(Params *params, af::array coherence_array); void Init(af::array data); void SetPrevious(af::array abs_amplitudes); std::vector GetTriggers(); diff --git a/include/support.hpp b/include/support.hpp index 6799790..cdfd306 100644 --- a/include/support.hpp +++ b/include/support.hpp @@ -11,25 +11,23 @@ See LICENSE file. #include "vector" #include "arrayfire.h" +class Params; + using namespace af; class Support { private: - af::array support_array; af::array distribution; - std::vector triggers; - int algorithm; float threshold; - bool threshold_adjust; int sigma; - int twin; + int algorithm; + af::array support_array; af::array GaussConvFft(af::array ds_image); public: - Support(const dim4 data_dim, std::vector area, float threshold, bool threshold_adjust, int sigma, std::vector support_triggers, int alg); + Support(const dim4 data_dim, Params *params, af::array support_array); void Update(const af::array ds_image); - std::vector GetTriggers(); int GetTriggerAlgorithm(); int GetSigma(); float GetThreshold(); diff --git a/include/util.hpp b/include/util.hpp index 58389c6..43d6b43 100644 --- a/include/util.hpp +++ b/include/util.hpp @@ -69,6 +69,8 @@ class Utils static af::array PadAround(af::array arr, af::dim4 new_dims, int pad); static af::array GetRatio(af::array, af::array ); + static bool IsNullArray(af::array); + static const char * GetFullFilename(const char * dir, const char * filename); }; #endif /* util_hpp */ diff --git a/include/worker.hpp b/include/worker.hpp index c0e08ba..b81ffa1 100644 --- a/include/worker.hpp +++ b/include/worker.hpp @@ -11,16 +11,14 @@ See LICENSE file. #include "vector" #include "map" #include "common.h" - +#include "arrayfire.h" class Params; class State; class Support; class PartialCoherence; -#include "arrayfire.h" using namespace af; - // This class represents a single image phase reconstruction processing. // It constructs the following objects: // 1. Params, which is initialized from configuration file, and keeps the attributes that do not change during processing. @@ -33,13 +31,13 @@ class Reconstruction private: // Params object constructed by the Reconstruction class - Params *params; + Params *params = NULL; // State object constructed by the Reconstruction class - State *state; + State *state = NULL; // A reference to Support object - Support *support; + Support *support = NULL; // A reference to PartialCoherence - PartialCoherence *partialCoherence; + PartialCoherence *partialCoherence = NULL; // This method returns sum of squares of all elements in the array double GetNorm(af::array arr); @@ -61,9 +59,9 @@ class Reconstruction public: // The class constructor takes data array, an image guess array in reciprocal space, and configuration file. The image guess // is typically generated as an complex random array. This image can be also the best outcome of previous calculations. The - // data is saved and is used for processing. Configuration file is used to construct the Param object. - Reconstruction(af::array data, af::array guess, const char* config); - + // data is saved and is used for processing. + Reconstruction(af::array data, af::array guess, Params* params, af::array support_array, af::array coherence_array); + // This initializes the object. It must be called after object is created. // 1. it calculates and sets norm of the data // 2. it calculates and sets size of data array @@ -90,6 +88,8 @@ class Reconstruction void ModulusConstrainHio(af::array); af::array GetImage(); + af::array GetSupportArray(); + af::array GetCoherenceArray(); std::vector GetErrors(); std::vector GetSupportVector(); std::vector GetCoherenceVector(); diff --git a/src_cpp/manager.cpp b/src_cpp/manager.cpp index 6cdd425..bd02a89 100644 --- a/src_cpp/manager.cpp +++ b/src_cpp/manager.cpp @@ -4,11 +4,14 @@ See LICENSE file. ***/ // Created by Barbara Frosik +#include "stdexcept" #include "typeinfo" #include "arrayfire.h" #include "worker.hpp" #include "manager.hpp" #include "util.hpp" +#include "parameters.hpp" +#include "common.h" using namespace af; @@ -19,13 +22,15 @@ void Manager::StartCalc(std::vector data_buffer_r, std::vector g af::array real_d(af_dims, &data_buffer_r[0]); //saving abs(data) af::array data = abs(real_d); + Params * params = new Params(config.c_str(), data.dims()); af::array real_g(af_dims, &guess_buffer_r[0]); af::array imag_g(af_dims, &guess_buffer_i[0]); af::array guess = complex(real_g, imag_g); - Reconstruction reconstruction(data, guess, config.c_str()); + af::array null_array = array(); + Reconstruction reconstruction(data, guess, params, null_array, null_array); reconstruction.Init(); rec = &reconstruction; timer::start(); @@ -43,30 +48,103 @@ void Manager::StartCalc(std::vector data_buffer_r, std::vector dim, void Manager::StartCalc(std::vector data_buffer_r, std::vector dim, std::string const & config, int nu_threads) { af::array real_d(Utils::Int2Dim4(dim), &data_buffer_r[0]); - //saving abs(data) af::array data = abs(real_d); - - - af::randomEngine r(AF_RANDOM_ENGINE_MERSENNE, (uint)time(0)); - d_type test1 = 0; - double test2 = 0; + + Params * params = new Params(config.c_str(), data.dims()); + af::array guess; - if (typeid(test1) == typeid(test2)) + int action = params->GetAction(); + bool cont = false; + if(action == ACTION_CONTINUE) { - guess = randu(data.dims(), c64, r); + const char * continue_dir = params->GetContinueDir(); + const char * image_file = Utils::GetFullFilename(continue_dir, "image.af"); + const char * support_file = Utils::GetFullFilename(continue_dir, "support.af"); + const char * coherence_file = Utils::GetFullFilename(continue_dir, "coherence.af"); + try { + guess = af::readArray(image_file, "image"); + cont = true; + } + catch ( const std::exception &ex) + { + printf("Error reading image array from %s file, generating new guess\n", image_file); + action = ACTION_NEW_GUESS; + } + + if (cont) + { + af::array null_array = array(); + af::array support_array; + try { + support_array = af::readArray(support_file, "support"); + } + catch ( const std::exception &ex) + { + support_array = null_array; + } + + af::array coherence_array; + try { + coherence_array = af::readArray(coherence_file, "coherence"); + } + catch ( const std::exception &ex) + { + coherence_array = null_array; + } + + Reconstruction reconstruction(data, guess, params, support_array, coherence_array); + rec = &reconstruction; + printf("created rec\n"); + } } - else + if (action == ACTION_NEW_GUESS) { - guess = randu(data.dims(), c32, r); + af::randomEngine r(AF_RANDOM_ENGINE_MERSENNE, (uint)time(0)); + d_type test1 = 0; + double test2 = 0; + if (typeid(test1) == typeid(test2)) + { + guess = randu(data.dims(), c64, r); + } + else + { + guess = randu(data.dims(), c32, r); + } + af::array null_array = array(); + Reconstruction reconstruction(data, guess, params, null_array, null_array); + rec = &reconstruction; } - Reconstruction reconstruction(data, guess, config.c_str()); - reconstruction.Init(); - rec = &reconstruction; + + rec->Init(); + printf("initialized\n"); timer::start(); - reconstruction.Iterate(); + rec->Iterate(); + printf("iterate function took %g seconds\n", timer::stop()); + + if (params->IsSaveResults()) + { + printf("save results\n"); + const char * save_dir = params->GetSaveDir(); + const char * image_file = Utils::GetFullFilename(save_dir, "image.af"); + const char * support_file = Utils::GetFullFilename(save_dir, "support.af"); + const char * coherence_file = Utils::GetFullFilename(save_dir, "coherence.af"); + + try { + af::saveArray("image", rec->GetImage(), image_file); + af::saveArray("support", rec->GetSupportArray(), support_file); + af::array coh = rec->GetCoherenceArray(); + if (!Utils::IsNullArray(coh)) + { + af::saveArray("coherence", coh, coherence_file); + } + } + catch ( const std::exception &ex) + { + printf("Error writing image array to %s file\n", image_file); + } + } printf("iterate function took %g seconds\n", timer::stop()); - } std::vector Manager::GetImageR() diff --git a/src_cpp/parameters.cpp b/src_cpp/parameters.cpp index bc0114b..c128b60 100644 --- a/src_cpp/parameters.cpp +++ b/src_cpp/parameters.cpp @@ -11,8 +11,6 @@ See LICENSE file. #include "map" #include "algorithm" #include "parameters.hpp" -#include "support.hpp" -#include "pcdi.hpp" #include "common.h" #include "util.hpp" @@ -20,6 +18,9 @@ using namespace af; using namespace libconfig; Config cfg; +// maps action name to action number +std::map action_id_map; + // maps algorithm name to algorithm number std::map algorithm_id_map; // vector holding algorithm run sequence, where algorithm run is a pair of algorithm and number of iterations @@ -27,10 +28,6 @@ std::vector alg_switches; std::string data_type; -//use the matlab order (fft/ifft in modulus projector) -bool matlab_order = true; - -// amplitude threshold d_type amp_threshold; bool amp_threshold_fill_zeros; @@ -39,8 +36,19 @@ d_type phase_max = 10; float beta = .9; // support -Support *support_attr; -PartialCoherence *partial_coherence = NULL; +std::vector support_area; +float support_threshold; +int support_sigma; +std::vector support_triggers; +int support_alg; + +//partial coherence +//PartialCoherence *partial_coherence = NULL; +int pcdi_alg = 0; +std::vector pcdi_roi; +std::vector pcdi_triggers; +bool pcdi_normalize; +int pcdi_iter; bool d_type_precision; @@ -53,13 +61,23 @@ int number_iterations; int twin; int regularized_amp = REGULARIZED_AMPLITUDE_NONE; + +const char * save_dir; + +const char * continue_dir; + +int action; + +bool save_results; + int gc = -1; -Params::Params(const char* config_file, const dim4 data_dim) +Params::Params(const char* config_file, dim4 data_dim) { BuildAlgorithmMap(); + BuildActionMap(); // Read the file. If there is an error, report. try @@ -75,6 +93,48 @@ Params::Params(const char* config_file, const dim4 data_dim) printf("parsing exception"); } + try + { + save_dir = cfg.lookup("save_dir"); + // else it is initialized + } + catch (const SettingNotFoundException &nfex) + { + save_dir = "my_dir"; + printf("No 'save_dir' parameter in configuration file, saving in 'my_dir'."); + } + + try { + action = action_id_map[cfg.lookup("action")]; + } + catch ( const SettingNotFoundException &nfex) + { + action = action_id_map["new_guess"]; + printf((std::string("No 'action' parameter in configuration file. running new guess")).c_str()); + } + + if (action == ACTION_CONTINUE) + { + try + { + continue_dir = cfg.lookup("continue_dir"); + // else it is initialized + } + catch (const SettingNotFoundException &nfex) + { + continue_dir = "my_dir"; + printf("No 'continue_dir' parameter in configuration file, saving in 'my_dir'."); + } + } + save_results = true; + try { + save_results = cfg.lookup("save_results"); + } + catch ( const SettingNotFoundException &nfex) + { + printf((std::string("No 'save_results' parameter in configuration file.")).c_str()); + } + try { const Setting& root = cfg.getRoot(); const Setting &tmp = root["algorithm_sequence"]; @@ -110,20 +170,17 @@ Params::Params(const char* config_file, const dim4 data_dim) printf("No 'gcd' parameter in configuration file."); } - std::vector support_area; try { const Setting& root = cfg.getRoot(); const Setting &tmp = root["support_area"]; for (int i = 0; i < tmp.getLength(); ++i) { try { - //support_area[i] = Utils::GetDimension(tmp[i]); support_area.push_back(tmp[i]); } catch ( const SettingTypeException &nfex) { float ftmp = tmp[i]; - //support_area[i] = Utils::GetDimension(int(ftmp * data_dim[i])); support_area.push_back(int(ftmp * data_dim[i])); } } @@ -132,7 +189,7 @@ Params::Params(const char* config_file, const dim4 data_dim) { printf("No 'support_area' parameter in configuration file."); } - float support_threshold = 0; + support_threshold = 0; try { support_threshold = cfg.lookup("support_threshold"); } @@ -140,15 +197,7 @@ Params::Params(const char* config_file, const dim4 data_dim) { printf("No 'support_threshold' parameter in configuration file."); } - bool support_threshold_adjust = true; - try { - support_threshold_adjust = cfg.lookup("support_threshold_adjust"); - } - catch ( const SettingNotFoundException &nfex) - { - printf("No 'support_threshold_adjust' parameter in configuration file."); - } - int support_sigma = 0; + support_sigma = 0; try { support_sigma = cfg.lookup("support_sigma"); } @@ -156,8 +205,8 @@ Params::Params(const char* config_file, const dim4 data_dim) { printf("No 'support_sigma' parameter in configuration file."); } - std::vector support_triggers = ParseTriggers("support"); - int support_alg = -1; + support_triggers = ParseTriggers("support"); + support_alg = -1; try { support_alg = algorithm_id_map[cfg.lookup("support_type")]; } @@ -165,83 +214,48 @@ Params::Params(const char* config_file, const dim4 data_dim) { printf((std::string("'No support_type' parameter in configuration file.")).c_str()); } - support_attr = new Support(data_dim, support_area, support_threshold, support_threshold_adjust, support_sigma, support_triggers, support_alg); - printf("created support\n"); - int pcdi_alg = 0; + pcdi_alg = 0; try { pcdi_alg = algorithm_id_map[cfg.lookup("partial_coherence_type")]; } catch ( const SettingNotFoundException &nfex) { - printf((std::string("'No partial_coherence_type' parameter in configuration file.")).c_str()); + printf((std::string("No 'partial_coherence_type' parameter in configuration file.")).c_str()); } if (pcdi_alg > 0) { - std::vector roi; try { const Setting& root = cfg.getRoot(); const Setting &tmp = root["partial_coherence_roi"]; for (int i = 0; i < tmp.getLength(); ++i) { try { - roi.push_back(Utils::GetDimension(tmp[i])); - } - catch ( const SettingTypeException &nfex) - { - float ftmp = tmp[i]; - roi.push_back(Utils::GetDimension(int(ftmp * data_dim[i]))); - } - } - } - catch ( const SettingNotFoundException &nfex) - { - printf("No 'partial_coherence_kernel' parameter in configuration file. Setting the dimensions to roi"); - int * kernel = new int[3]; - kernel[0] = roi[0]; - kernel[1] = roi[1]; - kernel[2] = roi[2]; - } - int * kernel = new int[3]; - try { - const Setting& root = cfg.getRoot(); - const Setting &tmp = root["partial_coherence_kernel"]; - for (int i = 0; i < tmp.getLength(); ++i) - { - try { - kernel[i] = Utils::GetDimension(tmp[i]); + pcdi_roi.push_back(Utils::GetDimension(tmp[i])); } catch ( const SettingTypeException &nfex) { float ftmp = tmp[i]; - kernel[i] = Utils::GetDimension(int(ftmp * data_dim[i])); + pcdi_roi.push_back(Utils::GetDimension(int(ftmp * data_dim[i]))); } } } catch ( const SettingNotFoundException &nfex) { - printf("No 'partial_coherence_kernel' parameter in configuration file."); + printf("No 'partial_coherence_roi' parameter in configuration file."); } - std::vector partial_coherence_trigger = ParseTriggers("partial_coherence"); - bool pcdi_normalize = false; + pcdi_triggers = ParseTriggers("partial_coherence"); + pcdi_normalize = false; try { pcdi_normalize = cfg.lookup("partial_coherence_normalize"); } catch ( const SettingNotFoundException &nfex) { - printf((std::string("'No partial_coherence_normalize' parameter in configuration file.")).c_str()); + printf((std::string("No 'partial_coherence_normalize' parameter in configuration file.")).c_str()); } - bool pcdi_clip = false; - try { - pcdi_clip = cfg.lookup("partial_coherence_clip"); - } - catch ( const SettingNotFoundException &nfex) - { - printf((std::string("'No partial_coherence_clip' parameter in configuration file.")).c_str()); - } - int pcdi_iter = 1; + pcdi_iter = 1; try { pcdi_iter = cfg.lookup("partial_coherence_iteration_num"); } @@ -249,10 +263,6 @@ Params::Params(const char* config_file, const dim4 data_dim) { printf((std::string("'No partial_coherence_iteration_num' parameter in configuration file.")).c_str()); } - if (partial_coherence_trigger.size() > 0) - { - partial_coherence = new PartialCoherence(roi, kernel, partial_coherence_trigger, pcdi_alg, pcdi_normalize, pcdi_iter, pcdi_clip); - } } try @@ -336,22 +346,6 @@ Params::Params(const char* config_file, const dim4 data_dim) printf("No 'twin' parameter in configuration file."); } - try { - matlab_order = cfg.lookup("matlab_order"); - } - catch ( const SettingNotFoundException &nfex) - { - printf("No 'matlab_order' parameter in configuration file., setting to true"); - } -// try { -// data_type = cfg.lookup("data_type"); -// } -// catch ( const SettingNotFoundException &nfex) -// { -// printf((std::string("'No data_type' parameter in configuration file. Setting to double.")).c_str()); -// data_type = "double"; -// } - } void Params::BuildAlgorithmMap() @@ -364,6 +358,14 @@ void Params::BuildAlgorithmMap() algorithm_id_map.insert(std::pair("GAUSS", ALGORITHM_GAUSS)); } +void Params::BuildActionMap() +{ + // hardcoded + action_id_map.insert(std::pair("prep_only", ACTION_PREP_ONLY)); + action_id_map.insert(std::pair("new_guess", ACTION_NEW_GUESS)); + action_id_map.insert(std::pair("continue", ACTION_CONTINUE)); +} + std::vector Params::ParseTriggers(std::string trigger_name) { std::vector trigger_iterations; @@ -409,11 +411,6 @@ std::vector Params::ParseTriggers(std::string trigger_name) return trigger_iterations; } -//std::string Params::GetDataType() -//{ -// return data_type; -//} - int Params::GetNumberIterations() { return number_iterations; @@ -459,14 +456,58 @@ int Params::GetTwin() return twin; } -Support * Params::GetSupport() +std::vector Params::GetSupportArea() +{ + return support_area; +} + +float Params::GetSupportThreshold() +{ + return support_threshold; +} + +int Params::GetSupportSigma() { - return support_attr; + return support_sigma; } -PartialCoherence * Params::GetPartialCoherence() +std::vector Params::GetSupportTriggers() { - return partial_coherence; + return support_triggers; +} + +int Params::GetSupportAlg() +{ + return support_alg; +} + +//PartialCoherence * Params::GetPartialCoherence() +//{ +// return partial_coherence; +//} +int Params::GetPcdiAlgorithm() +{ + return pcdi_alg; +} + +std::vector Params::GetPcdiRoi() +{ + return pcdi_roi; +} + +std::vector Params::GetPcdiTriggers() +{ + return pcdi_triggers; +} + +bool Params::GetPcdiNormalize() +{ + return pcdi_normalize; +} + +int Params::GetPcdiIterations() +{ + return pcdi_iter; } std::vector Params::GetAlgSwitches() @@ -474,6 +515,26 @@ std::vector Params::GetAlgSwitches() return alg_switches; } +const char * Params::GetSaveDir() +{ + return save_dir; +} + +const char * Params::GetContinueDir() +{ + return continue_dir; +} + +int Params::GetAction() +{ + return action; +} + +bool Params::IsSaveResults() +{ + return save_results; +} + int Params::GetGC() { return gc; diff --git a/src_cpp/pcdi.cpp b/src_cpp/pcdi.cpp index 4bb096d..2eaaf19 100644 --- a/src_cpp/pcdi.cpp +++ b/src_cpp/pcdi.cpp @@ -11,6 +11,7 @@ See LICENSE file. #include "arrayfire.h" #include "string" #include "sstream" +#include "parameters.hpp" using namespace af; @@ -21,16 +22,15 @@ d_type sum_roi_data; af::dim4 roi_dims; af::dim4 dims; -PartialCoherence::PartialCoherence(std::vector roi_area, int * kernel_area, std::vector partial_coherence_trigger, int alg, bool pcdi_normalize, int pcdi_iter, bool pcdi_clip) +PartialCoherence::PartialCoherence(Params *params, af::array coherence_array) { - roi= roi_area; - triggers = partial_coherence_trigger; + roi= params->GetPcdiRoi(); + triggers = params->GetPcdiTriggers(); trigger_index = 0; - algorithm = alg; - kernel = kernel_area; - normalize = pcdi_normalize; - iteration_num = pcdi_iter; - clip = pcdi_clip; + algorithm = params->GetPcdiAlgorithm(); + normalize = params->GetPcdiNormalize(); + iteration_num = params->GetPcdiIterations(); + kernel_array = coherence_array; } void PartialCoherence::Init(af::array data) @@ -43,8 +43,12 @@ void PartialCoherence::Init(af::array data) if (normalize) { sum_roi_data = sum(pow(roi_data_abs, 2)); - } - kernel_array = constant(0.5, roi_dims); + } + if (Utils::IsNullArray(kernel_array)) + { + kernel_array = constant(0.5, roi_dims); + } + dim4 kdim = kernel_array.dims(); } void PartialCoherence::SetPrevious(af::array abs_amplitudes) @@ -68,11 +72,6 @@ std::vector PartialCoherence::GetRoi() return roi; } -int * PartialCoherence::GetKernel() -{ - return kernel; -} - af::array PartialCoherence::ApplyPartialCoherence(af::array abs_amplitudes, int current_iteration) { // check if trigger is set for this iteration, and if so update coherence @@ -109,7 +108,6 @@ void PartialCoherence::OnTrigger(af::array arr) d_type sum_ampl = sum(amplitudes_2); d_type ratio = sum_roi_data/sum_ampl; amplitudes = sqrt(amplitudes_2 * ratio); - //amplitudes = sqrt((pow(arr, 2)/sum(pow(arr, 2))) * sum_roi_data); } af::array coherence; @@ -157,7 +155,6 @@ af::array PartialCoherence::fftConvolve(af::array arr, af::array kernel) void PartialCoherence::DeconvLucy(af::array amplitudes, af::array data, int iterations) { // implementation based on Python code: https://github.com/scikit-image/scikit-image/blob/master/skimage/restoration/deconvolution.py - //af::array coherence = constant(0.5, amplitudes.dims()); //set it to the last coherence instead af::array coherence = kernel_array; af::array data_mirror = af::flip(af::flip(af::flip(af::flip(data, 0),1),2),3).copy(); @@ -165,20 +162,12 @@ void PartialCoherence::DeconvLucy(af::array amplitudes, af::array data, int iter for (int i = 0; i < iterations; i++) { af::array convolve = af::fftConvolve(coherence, data); - //af::array convolve = af::convolve3(im_deconv, psf); - convolve(convolve == 0) = 1.0; // added to the algorithm from scikit to prevet division by 0 + convolve(convolve == 0) = 1.0; // added to the algorithm from scikit to prevent division by 0 af::array relative_blurr = amplitudes/convolve; coherence *= af::fftConvolve(relative_blurr, data_mirror); } coherence = real(coherence); - // clip - if (clip) - { - coherence(coherence > 1) = 1; - coherence(coherence < -1) = -1; - } - //coherence = abs(coherence)/sum(abs(coherence)); d_type coh_sum = sum(abs(coherence)); coherence = abs(coherence)/coh_sum; printf("coherence norm , %f\n", sum(pow(abs(coherence), 2))); diff --git a/src_cpp/state.cpp b/src_cpp/state.cpp index bb04032..37ec56c 100644 --- a/src_cpp/state.cpp +++ b/src_cpp/state.cpp @@ -106,7 +106,7 @@ int State::Next() } // check if update support this iteration - if ((params->GetSupport()->GetTriggers().size() > 0) && (params->GetSupport()->GetTriggers()[support_triggers_index] == current_iter)) + if ((params->GetSupportTriggers().size() > 0) && (params->GetSupportTriggers()[support_triggers_index] == current_iter)) { update_support = true; support_triggers_index++; diff --git a/src_cpp/support.cpp b/src_cpp/support.cpp index 73a86fc..bf492f0 100644 --- a/src_cpp/support.cpp +++ b/src_cpp/support.cpp @@ -10,32 +10,32 @@ See LICENSE file. #include "util.hpp" -Support::Support(const dim4 data_dim, std::vector support_area, float th, bool threshold_adjust, int sgma, std::vector support_triggers, int alg) +Support::Support(const dim4 data_dim, Params *params, af::array support) { - threshold = th; - threshold_adjust = threshold_adjust; - sigma = sgma; - triggers = support_triggers; - algorithm = alg; - af::array ones = constant(1, Utils::Int2Dim4(support_area), u32); - support_array = Utils::PadAround(ones, data_dim, 0); - - printf("support sum %i\n", sum(support_array)); + threshold = params->GetSupportThreshold(); + sigma = params->GetSupportSigma(); + algorithm = params->GetSupportAlg(); + if (Utils::IsNullArray(support)) + { + printf("support with null array\n"); + af::array ones = constant(1, Utils::Int2Dim4(params->GetSupportArea()), u32); + support_array = Utils::PadAround(ones, data_dim, 0); + } + else + { + support_array = support; + } - if (alg == ALGORITHM_GAUSS) + if (algorithm == ALGORITHM_GAUSS) { int alpha = 1; - //distribution = InitDistribution(data_dim, sigma, alpha); d_type *sigmas = new d_type[nD]; for (int i=0; i(convag)); support_array = (convag >= threshold); -// if the support is too small, adjust threshold -// if (threshold_adjust) -// { -// dim4 dims = ds_image.dims(); -// float min_support_norm = .01 * int(dims[0])*int(dims[1])*int(dims[2]); -// printf("min support norm %f\n", min_support_norm); -// float temp_threshold = threshold; -// while (sum(pow(abs(support_array), 2)) < min_support_norm ) -// { -// temp_threshold = temp_threshold/10; -// support_array = (convag >= (temp_threshold * max_convag)); -// printf("in while loop support sum %f\n", sum(support_array)); -// } -// } printf("support sum %f\n", sum(support_array)); } -std::vector Support::GetTriggers() -{ - return triggers; -} - int Support::GetTriggerAlgorithm() { return algorithm; @@ -117,21 +98,5 @@ af::array Support::GaussConvFft(af::array ds_image_abs) return convag; } -//af::array Support::GaussConvFft(af::array ds_image_abs) -//{ -// -// d_type image_sum = sum(ds_image_abs); -// printf("abs image sum %f\n", image_sum); -// af::array rs_amplitudes = Utils::fft(ds_image_abs); -// dim4 dims = rs_amplitudes.dims(); -// af::shift(rs_amplitudes, dims[0]/2, dims[1]/2, dims[2]/2, dims[3]/2); -// af::array amp_distrib = Utils::ifft(rs_amplitudes * distribution); -// af::shift(amp_distrib, dims[0]/2, dims[1]/2, dims[2]/2, dims[3]/2); -// af::array convag = real(amp_distrib); -// convag(convag < 0) = 0; -// d_type correction = image_sum/sum(convag); -// convag *= correction; -// return convag; -//} diff --git a/src_cpp/util.cpp b/src_cpp/util.cpp index 10308a3..7c94b29 100644 --- a/src_cpp/util.cpp +++ b/src_cpp/util.cpp @@ -348,3 +348,17 @@ af::array Utils::GetRatio(af::array divident, af::array divisor) divisor_copy(divisor == 0) = 1; return divident/divisor_copy; } + +bool Utils::IsNullArray(af::array arr) +{ + return (arr.elements() == 0); +} + +const char * Utils::GetFullFilename(const char * dir, const char * filename) +{ + std::string full_filename; + full_filename.append(dir); + full_filename.append("/"); + full_filename.append(filename); + return full_filename.c_str(); +} diff --git a/src_cpp/worker.cpp b/src_cpp/worker.cpp index 5d3ead7..8cfc963 100644 --- a/src_cpp/worker.cpp +++ b/src_cpp/worker.cpp @@ -30,25 +30,29 @@ std::vector support_vector; std::vector coherence_vector; -Reconstruction::Reconstruction(af::array image_data, af::array guess, const char* config_file) +Reconstruction::Reconstruction(af::array image_data, af::array guess, Params* params, af::array support_array, af::array coherence_array) { data = image_data; ds_image = guess; - params = new Params(config_file, data.dims()); + params = params; state = new State(params); + support = new Support(data.dims(), params, support_array); + + if (params->GetPcdiAlgorithm() > 0) + { + partialCoherence = new PartialCoherence(params, coherence_array); + } } void Reconstruction::Init() { // initialize other components state->Init(); - support = params->GetSupport(); - partialCoherence = params->GetPartialCoherence(); - aver_iter = params->GetAvgIterations(); - if (partialCoherence != NULL) + if (params->GetPcdiAlgorithm() > 0) { partialCoherence->Init(data); } + aver_iter = params->GetAvgIterations(); norm_data = GetNorm(data); num_points = data.elements(); // multiply the rs_amplitudes by max element of data array and the norm @@ -56,12 +60,11 @@ void Reconstruction::Init() ds_image *= max_data * GetNorm(ds_image); // the next two lines are for testing it sets initial guess to initial support -// af::array temp = support->GetSupportArray(); -// ds_image = complex(temp.as((af_dtype) dtype_traits::ctype), 0.0).as(c64); + af::array temp = support->GetSupportArray(); + ds_image = complex(temp.as((af_dtype) dtype_traits::ctype), 0.0).as(c64); ds_image *= support->GetSupportArray(); printf("initial image norm %f\n", GetNorm(ds_image)); - } @@ -112,7 +115,6 @@ af::array Reconstruction::ModulusProjection() if ((partialCoherence == NULL) || (partialCoherence->GetTriggers().size() == 0)) { - printf("applying ratio\n"); //rs_amplitudes = data * exp(af::complex(0, af::arg(rs_amplitudes))); af::array ratio = Utils::GetRatio(data, abs(rs_amplitudes)); rs_amplitudes *= ratio; @@ -131,12 +133,10 @@ af::array Reconstruction::ModulusProjection() } else { - printf("applying ratio\n"); //rs_amplitudes = data * exp(af::complex(0, af::arg(rs_amplitudes))); af::array ratio = Utils::GetRatio(data, abs(rs_amplitudes)); rs_amplitudes *= ratio; } - printf("setting previous\n"); partialCoherence->SetPrevious(abs(rs_amplitudes)); } printf("ampl norm after ratio %fl\n", GetNorm(rs_amplitudes)); @@ -155,7 +155,6 @@ void Reconstruction::ModulusConstrainEr(af::array ds_image_raw) //ds_image = ds_image_raw * support->GetSupportArray(state->IsApplyTwin()); af::array support_array = support->GetSupportArray(state->IsApplyTwin()); ds_image = ds_image_raw * support_array; - printf("image norm after support %fl\n", GetNorm(ds_image)); } @@ -237,6 +236,16 @@ af::array Reconstruction::GetImage() return ds_image; } +af::array Reconstruction::GetSupportArray() +{ + return support->GetSupportArray(); +} + +af::array Reconstruction::GetCoherenceArray() +{ + return partialCoherence->GetKernelArray(); +} + std::vector Reconstruction::GetErrors() { return state->GetErrors(); diff --git a/src_py/controller/reconstruction.py b/src_py/controller/reconstruction.py index 5982d70..780dabf 100755 --- a/src_py/controller/reconstruction.py +++ b/src_py/controller/reconstruction.py @@ -166,7 +166,6 @@ def fast_module_reconstruction(proc, data, conf): dims = data.shape dims1 = (dims[2], dims[1], dims[0]) - print 'data norm in reconstruction', sum(sum(sum(abs(data)**2))) fast_module = bridge.PyBridge() data_l = data.flatten().tolist() @@ -236,9 +235,6 @@ def reconstruction(proc, filename, conf): """ data = ut.get_array_from_tif(filename) - if len(data.shape) > 3: - print ("this program supports 3d images only") - return config_map = read_config(conf) if config_map is None: @@ -246,40 +242,53 @@ def reconstruction(proc, filename, conf): return None, None data = prepare_data(config_map, data) - # save prepared data in .mat file if configured - try: - save_data = config_map.save_data - if save_data: - np.save('data.npy', data) - except AttributeError: - pass - - image, support, coherence, errors = fast_module_reconstruction(proc, data, conf) - # save image and support in .mat files if configured try: - save_results = config_map.save_data - if save_results: - np.save('image.npy', image) - np.save('support.npy', support) + action = config_map.action except AttributeError: - pass + action = 2 try: - res_dir = config_map.res_dir - if not res_dir.endswith('/'): - res_dir = res_dir + '/' - if not os.path.exists(res_dir): - os.makedirs(res_dir) + save_results = config_map.save_results + try: + save_dir = config_map.save_dir + if not save_dir.endswith('/'): + save_dir = save_dir + '/' + if not os.path.exists(save_dir): + os.makedirs(save_dir) + except AttributeError: + print ("save_dir not configured") except AttributeError: - res_dir = '' - write_simple(image, res_dir + "simple_amp_ph.vtk") - write_simple(support, res_dir + "simple_support.vtk") + save_results = False + + if action == 1 or save_results: + np.save(save_dir+'/data.npy', data) + + image, support, coherence, errors = fast_module_reconstruction(proc, data, conf) - cx.save_CX(conf, image, support, res_dir + 'cx') + # try: + # save_results = config_map.save_data + # if save_results: + # np.save('image.npy', image) + # np.save('support.npy', support) + # except AttributeError: + # pass + + # try: + # res_dir = config_map.res_dir + # if not res_dir.endswith('/'): + # res_dir = res_dir + '/' + # if not os.path.exists(res_dir): + # os.makedirs(res_dir) + # except AttributeError: + # res_dir = '' + write_simple(image, save_dir + "simple_amp_ph.vtk") + write_simple(support, save_dir + "simple_support.vtk") + + cx.save_CX(conf, image, support, save_dir + 'cx') if coherence is not None: - write_simple(coherence, res_dir + "simple_coh.vtk") + write_simple(coherence, save_dir + "simple_coh.vtk") # plot error From 65da4b3170bb28bf7d7bfff7b44178da5a02b7f4 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Fri, 1 Dec 2017 10:53:05 -0600 Subject: [PATCH 052/336] removed debug prints --- include/util.hpp | 2 +- src_cpp/manager.cpp | 29 ++++++++++++++--------------- src_cpp/support.cpp | 1 - src_cpp/util.cpp | 5 ++--- src_cpp/worker.cpp | 4 ++-- 5 files changed, 19 insertions(+), 22 deletions(-) diff --git a/include/util.hpp b/include/util.hpp index 43d6b43..2e493e4 100644 --- a/include/util.hpp +++ b/include/util.hpp @@ -70,7 +70,7 @@ class Utils static af::array GetRatio(af::array, af::array ); static bool IsNullArray(af::array); - static const char * GetFullFilename(const char * dir, const char * filename); + static std::string GetFullFilename(const char * dir, const char * filename); }; #endif /* util_hpp */ diff --git a/src_cpp/manager.cpp b/src_cpp/manager.cpp index bd02a89..5920c8e 100644 --- a/src_cpp/manager.cpp +++ b/src_cpp/manager.cpp @@ -58,16 +58,16 @@ void Manager::StartCalc(std::vector data_buffer_r, std::vector dim, if(action == ACTION_CONTINUE) { const char * continue_dir = params->GetContinueDir(); - const char * image_file = Utils::GetFullFilename(continue_dir, "image.af"); - const char * support_file = Utils::GetFullFilename(continue_dir, "support.af"); - const char * coherence_file = Utils::GetFullFilename(continue_dir, "coherence.af"); + std::string image_file = Utils::GetFullFilename(continue_dir, "image.af"); + std::string support_file = Utils::GetFullFilename(continue_dir, "support.af"); + std::string coherence_file = Utils::GetFullFilename(continue_dir, "coherence.af"); try { - guess = af::readArray(image_file, "image"); + guess = af::readArray(image_file.c_str(), "image"); cont = true; } catch ( const std::exception &ex) { - printf("Error reading image array from %s file, generating new guess\n", image_file); + printf("Error reading image array from %s file, generating new guess\n", image_file.c_str()); action = ACTION_NEW_GUESS; } @@ -76,7 +76,7 @@ void Manager::StartCalc(std::vector data_buffer_r, std::vector dim, af::array null_array = array(); af::array support_array; try { - support_array = af::readArray(support_file, "support"); + support_array = af::readArray(support_file.c_str(), "support"); } catch ( const std::exception &ex) { @@ -85,7 +85,7 @@ void Manager::StartCalc(std::vector data_buffer_r, std::vector dim, af::array coherence_array; try { - coherence_array = af::readArray(coherence_file, "coherence"); + coherence_array = af::readArray(coherence_file.c_str(), "coherence"); } catch ( const std::exception &ex) { @@ -94,7 +94,6 @@ void Manager::StartCalc(std::vector data_buffer_r, std::vector dim, Reconstruction reconstruction(data, guess, params, support_array, coherence_array); rec = &reconstruction; - printf("created rec\n"); } } if (action == ACTION_NEW_GUESS) @@ -126,22 +125,22 @@ void Manager::StartCalc(std::vector data_buffer_r, std::vector dim, { printf("save results\n"); const char * save_dir = params->GetSaveDir(); - const char * image_file = Utils::GetFullFilename(save_dir, "image.af"); - const char * support_file = Utils::GetFullFilename(save_dir, "support.af"); - const char * coherence_file = Utils::GetFullFilename(save_dir, "coherence.af"); + std::string image_file = Utils::GetFullFilename(save_dir, "image.af"); + std::string support_file = Utils::GetFullFilename(save_dir, "support.af"); + std::string coherence_file = Utils::GetFullFilename(save_dir, "coherence.af"); try { - af::saveArray("image", rec->GetImage(), image_file); - af::saveArray("support", rec->GetSupportArray(), support_file); + af::saveArray("image", rec->GetImage(), image_file.c_str()); + af::saveArray("support", rec->GetSupportArray(), support_file.c_str()); af::array coh = rec->GetCoherenceArray(); if (!Utils::IsNullArray(coh)) { - af::saveArray("coherence", coh, coherence_file); + af::saveArray("coherence", coh, coherence_file.c_str()); } } catch ( const std::exception &ex) { - printf("Error writing image array to %s file\n", image_file); + printf("Error writing image array to %s file\n", image_file.c_str()); } } printf("iterate function took %g seconds\n", timer::stop()); diff --git a/src_cpp/support.cpp b/src_cpp/support.cpp index bf492f0..9a69f67 100644 --- a/src_cpp/support.cpp +++ b/src_cpp/support.cpp @@ -17,7 +17,6 @@ Support::Support(const dim4 data_dim, Params *params, af::array support) algorithm = params->GetSupportAlg(); if (Utils::IsNullArray(support)) { - printf("support with null array\n"); af::array ones = constant(1, Utils::Int2Dim4(params->GetSupportArea()), u32); support_array = Utils::PadAround(ones, data_dim, 0); } diff --git a/src_cpp/util.cpp b/src_cpp/util.cpp index 7c94b29..8e41c30 100644 --- a/src_cpp/util.cpp +++ b/src_cpp/util.cpp @@ -225,7 +225,6 @@ af::array Utils::ReverseGaussDistribution(af::dim4 data_dim, d_type * sgma, int af::array Utils::GaussDistribution(af::dim4 data_dim, d_type * sgma, int alpha) { - printf("in gauss distr\n"); // calculate multipliers int dimension = nD; //this should be changed to determine size from sgma // af::array gridx = (range(data_dim, 1)-(data_dim[1]-1)/2.0); // the range method produces wrong data @@ -354,11 +353,11 @@ bool Utils::IsNullArray(af::array arr) return (arr.elements() == 0); } -const char * Utils::GetFullFilename(const char * dir, const char * filename) +std::string Utils::GetFullFilename(const char * dir, const char * filename) { std::string full_filename; full_filename.append(dir); full_filename.append("/"); full_filename.append(filename); - return full_filename.c_str(); + return full_filename; } diff --git a/src_cpp/worker.cpp b/src_cpp/worker.cpp index 8cfc963..0fd9e51 100644 --- a/src_cpp/worker.cpp +++ b/src_cpp/worker.cpp @@ -60,8 +60,8 @@ void Reconstruction::Init() ds_image *= max_data * GetNorm(ds_image); // the next two lines are for testing it sets initial guess to initial support - af::array temp = support->GetSupportArray(); - ds_image = complex(temp.as((af_dtype) dtype_traits::ctype), 0.0).as(c64); + //af::array temp = support->GetSupportArray(); + //ds_image = complex(temp.as((af_dtype) dtype_traits::ctype), 0.0).as(c64); ds_image *= support->GetSupportArray(); printf("initial image norm %f\n", GetNorm(ds_image)); From 186566a9d75f3604e0e5ade852f0575c197d8931 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Fri, 8 Dec 2017 10:58:56 -0600 Subject: [PATCH 053/336] added new features --- config.test | 89 +++++++++++++++------- include/common.h | 4 + include/worker.hpp | 4 +- src_cpp/parameters.cpp | 110 ++++++++++++++-------------- src_cpp/worker.cpp | 19 ++++- src_py/controller/reconstruction.py | 69 +++++++---------- src_py/utilities/CXDVizNX.py | 31 ++++++-- src_py/utilities/utils.py | 51 +++++++------ 8 files changed, 224 insertions(+), 153 deletions(-) diff --git a/config.test b/config.test index f29f9ce..276a28e 100644 --- a/config.test +++ b/config.test @@ -1,76 +1,110 @@ // GENERAL -// directory where vtk files are saved, and the data and raw results if configured save_dir = "results_dir" -// action defines what is processed by the program: -// if "prep_only" the program will only do the data preparation and save in the save_dir -// if "new_guess" the program will do the data prepation and will start reconstruction starting with random guess -// if "continue" the program jumps right to the reconstruction starting with saved data, raw reconstructed image, -// and support. With this action a continue_dir must be defined that contains the saved files. If only data is saved -// the program will start a new guess. + // directory where vtk files are saved, and the data and raw results if configured + action = "new_guess" + // action defines what is processed by the program: + // if "prep_only" the program will only do the data preparation and save in the save_dir + // if "new_guess" the program will do the data prepation and will start reconstruction + // starting with random guess + // if "continue" the program jumps right to the reconstruction starting with saved data, + // raw reconstructed image, and support. With this action a continue_dir must be defined + // that contains the saved files. If only data is saved the program will start a new guess. + continue_dir = "AB_dir" -// if save_results is true, the prepared data, raw image and support will be saved in the save_dir + // a directory containing prepared data and results of previous reconstruction. + // if action is "continue", the reconstruction will start with these results. + save_results = true + // if save_results is true, the prepared data, raw image and support will be saved in + // the save_dir // PARAMETER FOR DATA PREPARATION +amp_threshold = 2.0 + // min data threshold. Values below this are set to 0. The threshold is applied + // set before removing aliens and binning. + aliens = ((170,220,112,195,245,123), (50,96,10,60,110,20)) + // comment out aliens for no removal, otherwise input them as + // aliens=[[x0,y0,z0,x1,y1,z1],[x2,y2,z2,x3,y3,z3]] + // will remove two instances of aliens given by the pairs + // #0 and #1 and another given by #2,#3. accepts as + // many as you like. + binning = [2,2,2] + // applied after aliens + center_shift = [0,0,0] -zero_pad = [0,4,0] + // the maximum is centered after binning, and moved according to center_shift + +adjust_dimensions = [0, 3, -5] + // applied after centering. If number is positive, the array will be padded + // with 0s in this dimension by the pad number on each end. + // If negative, the array will be cropped by that number on each end in this + // dimension. + // The final dimensions will adjusted up to the opencl supported dimensions + // i.e. divisible by 2, 3, and 5 only // RECONSTRUCTION PARAMETERS USED BY FAST MODULE -// ArrayFire memory management is not reliable, the way around is to call garbage collection per -// defined number of iterations. Decrease this value if out of memory error occurs gc = 5; + // ArrayFire memory management is not reliable, the way around is to call garbage + // collection per defined number of iterations. Decrease this value if out of memory + // error occurs //algorithm_sequence = ((3, ("ER",2), ("HIO", 2), ("ER", 2)), (2, ("ER",3), ("HIO",3))) //algorithm_sequence = ((1, ("ER",6))) algorithm_sequence = ((1, ("ER",19), ("HIO", 10)), (1,("ER",10))) //algorithm_sequence = ((1, ("ER",10), ("HIO", 20)), (1,("ER",10))) //algorithm_sequence = ((1, ("ER",19), ("HIO", 10)), (1,("ER",10)), (1, ("ER",10), ("HIO", 20)), (1,("ER",10))) + // defines algorithm applied in each iteration by a sequence of tuples. + // The first number in a tuple is a repeat, followed by tuples of pairs, each + // pair defining algorithm and number of iterations to run the algorithm. -// twin defines at which iteration to cut half of the array(i.e. multiply by 0s), it is done in ER/HIO -// if don't want to apply twin, set it negative -// twin is not applied if action is "continue" twin = 2; //twin = -1 + // twin defines at which iteration to cut half of the array(i.e. multiply by 0s), + // it is done in ER/HIO. If don't want to apply twin, set it negative. -amp_threshold = 2.0; -amp_threshold_fill_zeros = true; -phase_min = -2.0; -phase_max = 2.0; -beta = .9; +//amp_threshold_fill_zeros = true; +//phase_min = -2.0; +//phase_max = 2.0; +//beta = .9; // support -// trigger list contains starting iteration, step, and ending iteration (if missing, run to the end) //support_triggers = ((5, 5, 300), (1, 2)); support_triggers = ((4, 5, 300)); //support_triggers = ((1, 5, 300)); + // trigger contains starting iteration, step, and ending iteration (if missing, run + // to the end). support_type = "GAUSS"; support_threshold = 0.1; -support_threshold_adjust = false; support_sigma = 1; support_area = [.5,.5,.5]; - -roi = [32,32,32]; + // initial support area. If the values are fractional, the support area will be calculated + // by multiplying by the data array dimensions. The support will be set to 1s to this + // dimensions centered. // partial coherence -// if type is not defined, partial coherence is not applied partial_coherence_type = "LUCY"; + // if type is not defined, partial coherence is not applied partial_coherence_triggers = ((14, 15)); //partial_coherence_triggers = ((1, 15)); + // trigger contains starting iteration, step, and ending iteration (if missing, run + // to the end). partial_coherence_iteration_num = 20; partial_coherence_normalize = true; -// this is an area that will determine coherence, coherence array will come with this size partial_coherence_roi = [32,32,32]; + // coherence area. If the values are fractional, the coherence area will be calculated + // by multiplying by the data array dimensions. regularized_amp = "GAUSS"; avg_iterations = 15; - + // number of last iterations that the image amplitudes will be included to calculate + // final // PARAMETERS FOR VISUALISATION // wavelength @@ -88,5 +122,6 @@ dth=0.000174532925199; pixel = [55.0e-6, 55.0e-6]; // size to crop the image array -crop = [120,120,120] +//crop = [120,120,120] +crop = [.85, .85, .85] diff --git a/include/common.h b/include/common.h index f0434b5..2312daa 100644 --- a/include/common.h +++ b/include/common.h @@ -38,6 +38,10 @@ const int ALGORITHM_GAUSS_PERCENT = 19; const int ALGORITHM_PERCENT_AUTO = 20; const int ALGORITHM_GAUSS_MINAREA = 21; +const int ACTION_PREP_ONLY = 1; +const int ACTION_NEW_GUESS = 2; +const int ACTION_CONTINUE = 3; + const int REGULARIZED_AMPLITUDE_NONE = 0; const int REGULARIZED_AMPLITUDE_GAUSS = 1; const int REGULARIZED_AMPLITUDE_POISSON = 2; diff --git a/include/worker.hpp b/include/worker.hpp index b81ffa1..a8ed54e 100644 --- a/include/worker.hpp +++ b/include/worker.hpp @@ -55,7 +55,9 @@ class Reconstruction void VectorizeCoherence(); d_type CalculateError(); - + + void Plot(); + public: // The class constructor takes data array, an image guess array in reciprocal space, and configuration file. The image guess // is typically generated as an complex random array. This image can be also the best outcome of previous calculations. The diff --git a/src_cpp/parameters.cpp b/src_cpp/parameters.cpp index c128b60..65b0094 100644 --- a/src_cpp/parameters.cpp +++ b/src_cpp/parameters.cpp @@ -86,11 +86,11 @@ Params::Params(const char* config_file, dim4 data_dim) } catch(const FileIOException &fioex) { - printf("file I/O exception"); + printf("config file I/O exception\n"); } catch(const ParseException &pex) { - printf("parsing exception"); + printf("config file parse exception\n"); } try @@ -101,7 +101,7 @@ Params::Params(const char* config_file, dim4 data_dim) catch (const SettingNotFoundException &nfex) { save_dir = "my_dir"; - printf("No 'save_dir' parameter in configuration file, saving in 'my_dir'."); + printf("No 'save_dir' parameter in configuration file, saving in 'my_dir'.\n"); } try { @@ -110,7 +110,7 @@ Params::Params(const char* config_file, dim4 data_dim) catch ( const SettingNotFoundException &nfex) { action = action_id_map["new_guess"]; - printf((std::string("No 'action' parameter in configuration file. running new guess")).c_str()); + printf((std::string("No 'action' parameter in configuration file. running new guess\n")).c_str()); } if (action == ACTION_CONTINUE) @@ -123,7 +123,7 @@ Params::Params(const char* config_file, dim4 data_dim) catch (const SettingNotFoundException &nfex) { continue_dir = "my_dir"; - printf("No 'continue_dir' parameter in configuration file, saving in 'my_dir'."); + printf("No 'continue_dir' parameter in configuration file, saving in 'my_dir'.\n"); } } save_results = true; @@ -132,7 +132,7 @@ Params::Params(const char* config_file, dim4 data_dim) } catch ( const SettingNotFoundException &nfex) { - printf((std::string("No 'save_results' parameter in configuration file.")).c_str()); + printf((std::string("No 'save_results' parameter in configuration file.\n")).c_str()); } try { @@ -159,7 +159,7 @@ Params::Params(const char* config_file, dim4 data_dim) } catch ( const SettingNotFoundException &nfex) { - printf("No 'algorithm_sequence' parameter in configuration file."); + printf("No 'algorithm_sequence' parameter in configuration file.\n"); } try { @@ -167,7 +167,7 @@ Params::Params(const char* config_file, dim4 data_dim) } catch ( const SettingNotFoundException &nfex) { - printf("No 'gcd' parameter in configuration file."); + printf("No 'gcd' parameter in configuration file.\n"); } try { @@ -187,7 +187,7 @@ Params::Params(const char* config_file, dim4 data_dim) } catch ( const SettingNotFoundException &nfex) { - printf("No 'support_area' parameter in configuration file."); + printf("No 'support_area' parameter in configuration file.\n"); } support_threshold = 0; try { @@ -195,7 +195,7 @@ Params::Params(const char* config_file, dim4 data_dim) } catch ( const SettingNotFoundException &nfex) { - printf("No 'support_threshold' parameter in configuration file."); + printf("No 'support_threshold' parameter in configuration file.\n"); } support_sigma = 0; try { @@ -203,7 +203,7 @@ Params::Params(const char* config_file, dim4 data_dim) } catch ( const SettingNotFoundException &nfex) { - printf("No 'support_sigma' parameter in configuration file."); + printf("No 'support_sigma' parameter in configuration file.\n"); } support_triggers = ParseTriggers("support"); support_alg = -1; @@ -212,7 +212,7 @@ Params::Params(const char* config_file, dim4 data_dim) } catch ( const SettingNotFoundException &nfex) { - printf((std::string("'No support_type' parameter in configuration file.")).c_str()); + printf((std::string("No 'support_type' parameter in configuration file.\n")).c_str()); } pcdi_alg = 0; @@ -221,7 +221,7 @@ Params::Params(const char* config_file, dim4 data_dim) } catch ( const SettingNotFoundException &nfex) { - printf((std::string("No 'partial_coherence_type' parameter in configuration file.")).c_str()); + printf((std::string("No 'partial_coherence_type' parameter in configuration file.\n")).c_str()); } if (pcdi_alg > 0) @@ -243,7 +243,7 @@ Params::Params(const char* config_file, dim4 data_dim) } catch ( const SettingNotFoundException &nfex) { - printf("No 'partial_coherence_roi' parameter in configuration file."); + printf("No 'partial_coherence_roi' parameter in configuration file.\n"); } pcdi_triggers = ParseTriggers("partial_coherence"); @@ -253,7 +253,7 @@ Params::Params(const char* config_file, dim4 data_dim) } catch ( const SettingNotFoundException &nfex) { - printf((std::string("No 'partial_coherence_normalize' parameter in configuration file.")).c_str()); + printf((std::string("No 'partial_coherence_normalize' parameter in configuration file.\n")).c_str()); } pcdi_iter = 1; try { @@ -261,7 +261,8 @@ Params::Params(const char* config_file, dim4 data_dim) } catch ( const SettingNotFoundException &nfex) { - printf((std::string("'No partial_coherence_iteration_num' parameter in configuration file.")).c_str()); + printf((std::string("No 'partial_coherence_iteration_num' parameter in configuration file. Setting to 20.\n")).c_str()); + pcdi_iter = 20; } } @@ -271,41 +272,41 @@ Params::Params(const char* config_file, dim4 data_dim) } catch(const SettingNotFoundException &nfex) { - printf("No 'avg_iterations' parameter in configuration file."); - } - - try - { - amp_threshold = cfg.lookup("amp_threshold"); - } - catch(const SettingNotFoundException &nfex) - { - printf("No 'amp_threshold' parameter in configuration file."); - } - - try { - amp_threshold_fill_zeros = cfg.lookup("amp_threshold_fill_zeros"); - } - catch (const SettingNotFoundException &nfex) - { - printf("No 'amp_threshold_fill_zeros' parameter in configuration file."); - } - - try { - phase_min = cfg.lookup("phase_min"); - } - catch (const SettingNotFoundException &nfex) - { - printf("No 'phase_min' parameter in configuration file."); - } - - try { - phase_max = cfg.lookup("phase_max"); - } - catch (const SettingNotFoundException &nfex) - { - printf("No 'phase_max' parameter in configuration file."); - } + printf("No 'avg_iterations' parameter in configuration file.\n"); + } + +// try +// { +// amp_threshold = cfg.lookup("amp_threshold"); +// } +// catch(const SettingNotFoundException &nfex) +// { +// printf("No 'amp_threshold' parameter in configuration file.\n"); +// } + +// try { +// amp_threshold_fill_zeros = cfg.lookup("amp_threshold_fill_zeros"); +// } +// catch (const SettingNotFoundException &nfex) +// { +// printf("No 'amp_threshold_fill_zeros' parameter in configuration file.\n"); +// } +// +// try { +// phase_min = cfg.lookup("phase_min"); +// } +// catch (const SettingNotFoundException &nfex) +// { +// printf("No 'phase_min' parameter in configuration file.\n"); +// } +// +// try { +// phase_max = cfg.lookup("phase_max"); +// } +// catch (const SettingNotFoundException &nfex) +// { +// printf("No 'phase_max' parameter in configuration file.\n"); +// } try { @@ -313,7 +314,8 @@ Params::Params(const char* config_file, dim4 data_dim) } catch (const SettingNotFoundException &nfex) { - printf("No 'beta' parameter in configuration file."); + printf("No 'beta' parameter in configuration file. Setting to .9\n"); + beta = .9; } try @@ -335,7 +337,7 @@ Params::Params(const char* config_file, dim4 data_dim) } catch (const SettingNotFoundException &nfex) { - printf("No 'regularized_amp' parameter in configuration file."); + printf("No 'regularized_amp' parameter in configuration file.\n"); } twin = -1; try { @@ -343,7 +345,7 @@ Params::Params(const char* config_file, dim4 data_dim) } catch ( const SettingNotFoundException &nfex) { - printf("No 'twin' parameter in configuration file."); + printf("No 'twin' parameter in configuration file.\n"); } } diff --git a/src_cpp/worker.cpp b/src_cpp/worker.cpp index 0fd9e51..b88f555 100644 --- a/src_cpp/worker.cpp +++ b/src_cpp/worker.cpp @@ -28,6 +28,7 @@ int aver_iter; std::vector aver_v; std::vector support_vector; std::vector coherence_vector; +af::Window * errors_plot; Reconstruction::Reconstruction(af::array image_data, af::array guess, Params* params, af::array support_array, af::array coherence_array) @@ -42,6 +43,7 @@ Reconstruction::Reconstruction(af::array image_data, af::array guess, Params* pa { partialCoherence = new PartialCoherence(params, coherence_array); } + errors_plot = new Window(512, 512, "errors"); } void Reconstruction::Init() @@ -82,7 +84,10 @@ void Reconstruction::Iterate() af::deviceGC(); Algorithm * alg = state->GetCurrentAlg(); alg->RunAlgorithm(this); - + + if (!errors_plot->close()) + Plot(); + Average(); } printf("final image\n"); @@ -226,6 +231,18 @@ void Reconstruction::VectorizeCoherence() delete [] coherence_v; } +void Reconstruction::Plot() +{ + if (current_iteration > 5 ) + { + // the plot will not show the very first error + af::array x = seq(1.0, float(current_iteration-1), 1.0); + std::vector errors = state->GetErrors(); + af::array y(dim4(x.elements()), &errors[1]); + errors_plot->plot(x,y.as(f32)); + } +} + int Reconstruction::GetCurrentIteration() { return state->GetCurrentIteration(); diff --git a/src_py/controller/reconstruction.py b/src_py/controller/reconstruction.py index 780dabf..fbc810d 100755 --- a/src_py/controller/reconstruction.py +++ b/src_py/controller/reconstruction.py @@ -23,10 +23,11 @@ import pylibconfig2 as cfg import os import scipy.fftpack as sf +import matplotlib.pyplot as plt +#import tifffile as tf import src_py.cyth.bridge_cpu as bridge_cpu import src_py.cyth.bridge_opencl as bridge_opencl -#import src_py.cyth.bridge_cuda as bridge_cuda -#import tifffile as tf +# import src_py.cyth.bridge_cuda as bridge_cuda __author__ = "Barbara Frosik" @@ -60,6 +61,7 @@ def read_config(config): else: return None + def prepare_data(config_map, data): """ This function prepares raw data for reconstruction. It uses configured parameters. The preparation consists of the following steps: @@ -89,7 +91,6 @@ def prepare_data(config_map, data): # zero out the noise data = np.where(data < config_map.amp_threshold, 0, data) - print (data.shape) # zero out the aliens try: @@ -117,17 +118,18 @@ def prepare_data(config_map, data): data = ut.get_centered(data, center_shift) - # zero pad array + # adjust the size, either zero pad or crop array try: - pad = tuple(config_map.zero_pad) + pad = tuple(config_map.adjust_dimensions) + data = ut.adjust_dimensions(data, pad) except AttributeError: - center_shift = (0,0,0) - data = ut.zero_pad(data, pad) + pass # shift data data=sf.fftshift(data) return data - + + def fast_module_reconstruction(proc, data, conf): """ This function calls a bridge method corresponding to the requested processor type. The bridge method is an access to the CFM @@ -208,6 +210,7 @@ def write_simple(arr, filename): id.dimensions=arr.shape write_data(id, filename) + def reconstruction(proc, filename, conf): """ This function is called by the user. It checks whether the data is valid and configuration file exists. @@ -241,15 +244,21 @@ def reconstruction(proc, filename, conf): print ("can't read configuration file") return None, None + print ('data dimensions before prep', data.shape) data = prepare_data(config_map, data) + print ('data dimensions after prep', data.shape) try: action = config_map.action except AttributeError: - action = 2 + action = 'new_guess' try: save_results = config_map.save_results + except AttributeError: + save_results = False + + if action == 'prep_only' or save_results: try: save_dir = config_map.save_dir if not save_dir.endswith('/'): @@ -258,43 +267,21 @@ def reconstruction(proc, filename, conf): os.makedirs(save_dir) except AttributeError: print ("save_dir not configured") - except AttributeError: - save_results = False - if action == 1 or save_results: np.save(save_dir+'/data.npy', data) - image, support, coherence, errors = fast_module_reconstruction(proc, data, conf) - - # try: - # save_results = config_map.save_data - # if save_results: - # np.save('image.npy', image) - # np.save('support.npy', support) - # except AttributeError: - # pass + if action != 'prep_only': + image, support, coherence, errors = fast_module_reconstruction(proc, data, conf) - # try: - # res_dir = config_map.res_dir - # if not res_dir.endswith('/'): - # res_dir = res_dir + '/' - # if not os.path.exists(res_dir): - # os.makedirs(res_dir) - # except AttributeError: - # res_dir = '' - write_simple(image, save_dir + "simple_amp_ph.vtk") - write_simple(support, save_dir + "simple_support.vtk") + cx.save_CX(conf, image, support, save_dir) - cx.save_CX(conf, image, support, save_dir + 'cx') + if coherence is not None: + write_simple(coherence, save_dir + "simple_coh.vtk") - if coherence is not None: - write_simple(coherence, save_dir + "simple_coh.vtk") + errors.pop(0) + plt.plot(errors) + plt.ylabel('errors') + plt.show() - # plot error - - - print 'image, support shape', image.shape, support.shape - - - + print 'image, support shape', image.shape, support.shape diff --git a/src_py/utilities/CXDVizNX.py b/src_py/utilities/CXDVizNX.py index f348b71..f531532 100644 --- a/src_py/utilities/CXDVizNX.py +++ b/src_py/utilities/CXDVizNX.py @@ -76,6 +76,7 @@ def __init__(self, config): self.crop = None print ('crop not defined') + class CXDViz(tr.HasTraits): coords = tr.Array() arr = tr.Array() @@ -84,11 +85,13 @@ class CXDViz(tr.HasTraits): cropy = tr.Int() cropz = tr.Int() + def __init__(self): self.imd = tvtk.ImageData() self.sg = tvtk.StructuredGrid() pass + def set_geometry(self, params, shape): lam = params.lamda tth = params.delta @@ -153,6 +156,7 @@ def set_geometry(self, params, shape): else: pass + def update_coords(self): dims = list(self.arr[self.cropobj].shape) @@ -167,6 +171,7 @@ def update_coords(self): self.coords = np.dot(r, self.T) + def set_array(self, array, logentry=None): self.arr = array if len(self.arr.shape) < 3: @@ -175,6 +180,7 @@ def set_array(self, array, logentry=None): newdims.append(1) self.arr.shape = tuple(newdims) + def set_crop(self, cropx, cropy, cropz): dims = list(self.arr.shape) if len(dims) == 2: @@ -211,6 +217,7 @@ def set_crop(self, cropx, cropy, cropz): self.cropobj = (slice(start1, end1, None), slice(start2, end2, None), slice(start3, end3, None)) + def get_structured_grid(self, **args): self.update_coords() dims = list(self.arr[self.cropobj].shape) @@ -236,6 +243,7 @@ def get_structured_grid(self, **args): self.sg.extent = 0, dims[2] - 1, 0, dims[1] - 1, 0, dims[0] - 1 return self.sg + def get_image_data(self, **args): self.set_crop(self.cropx, self.cropy, self.cropz) dims = list(self.arr[self.cropobj].shape) @@ -246,6 +254,7 @@ def get_image_data(self, **args): self.imd.point_data.scalars = self.arr[self.cropobj].ravel() return self.imd + def write_structured_grid(self, filename, **args): print 'in WriteStructuredGrid' sgwriter = tvtk.StructuredGridWriter() @@ -259,6 +268,7 @@ def write_structured_grid(self, filename, **args): print sgwriter.file_name sgwriter.write() + def shift(arr, s0, s1, s2): shifted = np.roll(arr, s0, 0) shifted = np.roll(shifted, s1, 1) @@ -319,6 +329,18 @@ def center(image, support): return image, support +def get_crop(params, shape): + crop = [] + for i in range(len(shape)): + if params.crop is None: + crop.append(shape[i]) + else: + crop.append(params.crop[i]) + if isinstance(crop[i], float): + crop[i] = int(crop[i]*shape[i]) + return crop + + def save_CX(conf, image, support, filename): image, support = center(image, support) # image = remove_ramp(image) @@ -326,12 +348,9 @@ def save_CX(conf, image, support, filename): viz = CXDViz() viz.set_array(image) viz.set_geometry(params, image.shape) - if params.crop is None: - crop = image.shape - else: - crop = params.crop + crop = get_crop(params, image.shape) viz.set_crop(crop[0], crop[1], crop[2]) # save image - viz.write_structured_grid(filename + '_img') + viz.write_structured_grid(filename + 'image') viz.set_array(support) - viz.write_structured_grid(filename + '_support') + viz.write_structured_grid(filename + 'support') diff --git a/src_py/utilities/utils.py b/src_py/utilities/utils.py index 38473d1..c4ab54a 100644 --- a/src_py/utilities/utils.py +++ b/src_py/utilities/utils.py @@ -22,7 +22,7 @@ 'get_opencl_dim', 'binning', 'get_centered', - 'zero_pad', + 'adjust_dimensions', 'crop_center', 'flip'] @@ -159,40 +159,49 @@ def get_centered(array, center_shift): return centered -def zero_pad(array, pad): + +def adjust_dimensions(arr, pad): """ - This function adds to each dimension of the array elements defined by pad. The elements are added to the - beginning of array and end by the same number, so the original array is centered. The dimensions of the new array are - supported by the opencl library. - + This function adds to or subtracts from each dimension of the array elements defined by pad. If the pad is positive, + the array is padded in this dimension. The elements are added to the beginning of array and end by the same number, + so the original array is centered. If the pad is negative, the array is cropped. The crop is symmetrical at the + beginning and end of the array in the related dimension. + The dimensions of the new array are supported by the opencl library. + Parameters ---------- - array : array - the array to pad + arr : array + the array to pad/crop pad : list list of three pad values, for each dimension - + Returns ------- array : array - the padded array + the padded/cropped array """ - # calculate the opencl dimensions - dims = array.shape - x_dim = get_opencl_dim(dims[0] + 2*pad[0], 2) - x_pad = (x_dim - dims[0])/2 - y_dim = get_opencl_dim(dims[1] + 2*pad[1], 2) - y_pad = (y_dim - dims[1])/2 - z_dim = get_opencl_dim(dims[2] + 2*pad[2], 2) - z_pad = (z_dim - dims[2])/2 - return np.lib.pad(array, ((x_pad, x_pad),(y_pad, y_pad), (z_pad, z_pad)), 'constant', constant_values=((0.0,0.0),(0.0,0.0),(0.0,0.0))).copy() + dims = arr.shape + new_dims = [] + new_pad = [] + new_crop = [] + for i in range(len(dims)): + new_dims.append(get_opencl_dim(dims[i] + 2 * pad[i], 2)) + new_pad.append(max(0, (new_dims[i] - dims[i]) / 2)) + new_crop.append(max(0, (dims[i] - new_dims[i]) / 2)) + + arr = np.lib.pad(arr, ((new_pad[0], new_pad[0]), (new_pad[1], new_pad[1]), (new_pad[2], new_pad[2])), 'constant', + constant_values=((0.0, 0.0), (0.0, 0.0), (0.0, 0.0))).copy() + + return arr[new_crop[0]:new_crop[0]+new_dims[0], new_crop[1]:new_crop[1]+new_dims[1], new_crop[2]:new_crop[2]+new_dims[2]] + def crop_center(arr, new_size): size = arr.shape return arr[ (size[0]-new_size[0])/2 : (size[0]-new_size[0])/2 + new_size[0], (size[1]-new_size[1])/2 : (size[1]-new_size[1])/2 + new_size[1], (size[2]-new_size[2])/2 : (size[2]-new_size[2])/2 + new_size[2]] + def flip(m, axis): """ Copied from numpy 1.12.0. @@ -208,7 +217,3 @@ def flip(m, axis): % (axis, m.ndim)) return m[tuple(indexer)] - - - - From f6cfa1d9a7f5a257f1fad20b7736a7c55bdb4ffd Mon Sep 17 00:00:00 2001 From: bfrosik Date: Wed, 13 Dec 2017 14:30:49 -0600 Subject: [PATCH 054/336] added target device choice --- config.test | 6 +++++- include/parameters.hpp | 6 ++++++ src_cpp/manager.cpp | 24 +++++++++++++++++++----- src_cpp/parameters.cpp | 38 ++++++++++++++++++++++++++++++++------ src_cpp/worker.cpp | 4 +++- 5 files changed, 65 insertions(+), 13 deletions(-) diff --git a/config.test b/config.test index 276a28e..7861510 100644 --- a/config.test +++ b/config.test @@ -48,11 +48,15 @@ adjust_dimensions = [0, 3, -5] // RECONSTRUCTION PARAMETERS USED BY FAST MODULE +device = 0 // ID of the target device + gc = 5; // ArrayFire memory management is not reliable, the way around is to call garbage // collection per defined number of iterations. Decrease this value if out of memory // error occurs +plot_errors = true // indicates whether to plot errors during calculations. Plotting will slow down. + //algorithm_sequence = ((3, ("ER",2), ("HIO", 2), ("ER", 2)), (2, ("ER",3), ("HIO",3))) //algorithm_sequence = ((1, ("ER",6))) algorithm_sequence = ((1, ("ER",19), ("HIO", 10)), (1,("ER",10))) @@ -71,7 +75,7 @@ twin = 2; //amp_threshold_fill_zeros = true; //phase_min = -2.0; //phase_max = 2.0; -//beta = .9; +beta = .9; // support //support_triggers = ((5, 5, 300), (1, 2)); diff --git a/include/parameters.hpp b/include/parameters.hpp index 6564784..2830497 100644 --- a/include/parameters.hpp +++ b/include/parameters.hpp @@ -100,9 +100,15 @@ class Params // Returns boolean flag indication whether to save the raw results bool IsSaveResults(); + // Returns boolean flag indication whether to plot errors in during calculations + bool IsPlotErrors(); + // Returns number of iterations between calling garbage collection. int GetGC(); + // Returns ID of target device (cpu or gpu). + int GetDeviceId(); + }; diff --git a/src_cpp/manager.cpp b/src_cpp/manager.cpp index 5920c8e..a9cdec4 100644 --- a/src_cpp/manager.cpp +++ b/src_cpp/manager.cpp @@ -19,11 +19,17 @@ using namespace af; void Manager::StartCalc(std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector dim, const std::string & config) { dim4 af_dims = Utils::Int2Dim4(dim); + Params * params = new Params(config.c_str(), af_dims); + + int device = params->GetDeviceId(); + if (device >= 0) + { + setDevice(device); + } + af::array real_d(af_dims, &data_buffer_r[0]); //saving abs(data) af::array data = abs(real_d); - Params * params = new Params(config.c_str(), data.dims()); - af::array real_g(af_dims, &guess_buffer_r[0]); af::array imag_g(af_dims, &guess_buffer_i[0]); @@ -47,11 +53,19 @@ void Manager::StartCalc(std::vector data_buffer_r, std::vector dim, void Manager::StartCalc(std::vector data_buffer_r, std::vector dim, std::string const & config, int nu_threads) { - af::array real_d(Utils::Int2Dim4(dim), &data_buffer_r[0]); - af::array data = abs(real_d); + dim4 af_dims = Utils::Int2Dim4(dim); + Params * params = new Params(config.c_str(), af_dims); - Params * params = new Params(config.c_str(), data.dims()); + int device = params->GetDeviceId(); + if (device >= 0) + { + setDevice(device); + } + af::array real_d(af_dims, &data_buffer_r[0]); + //saving abs(data) + af::array data = abs(real_d); + af::array guess; int action = params->GetAction(); bool cont = false; diff --git a/src_cpp/parameters.cpp b/src_cpp/parameters.cpp index 65b0094..1c0e4a6 100644 --- a/src_cpp/parameters.cpp +++ b/src_cpp/parameters.cpp @@ -68,11 +68,13 @@ const char * continue_dir; int action; -bool save_results; +bool save_results = false; -int gc = -1; +bool plot_errors = false; +int gc = -1; +int device = -1; Params::Params(const char* config_file, dim4 data_dim) { @@ -126,13 +128,21 @@ Params::Params(const char* config_file, dim4 data_dim) printf("No 'continue_dir' parameter in configuration file, saving in 'my_dir'.\n"); } } - save_results = true; + try { save_results = cfg.lookup("save_results"); } catch ( const SettingNotFoundException &nfex) { - printf((std::string("No 'save_results' parameter in configuration file.\n")).c_str()); + printf((std::string("No 'save_results' parameter in configuration file. Setting to false.\n")).c_str()); + } + + try { + plot_errors = cfg.lookup("plot_errors"); + } + catch ( const SettingNotFoundException &nfex) + { + printf((std::string("No 'plot_errors' parameter in configuration file. Setting to false.\n")).c_str()); } try { @@ -167,7 +177,15 @@ Params::Params(const char* config_file, dim4 data_dim) } catch ( const SettingNotFoundException &nfex) { - printf("No 'gcd' parameter in configuration file.\n"); + printf("No 'gc' parameter in configuration file.\n"); + } + + try { + device = cfg.lookup("device"); + } + catch ( const SettingNotFoundException &nfex) + { + printf("No 'device' parameter in configuration file.\n"); } try { @@ -537,9 +555,17 @@ bool Params::IsSaveResults() return save_results; } +bool Params::IsPlotErrors() +{ + return plot_errors; +} + int Params::GetGC() { return gc; } - +int Params::GetDeviceId() +{ + return device; +} diff --git a/src_cpp/worker.cpp b/src_cpp/worker.cpp index b88f555..f4f6ea0 100644 --- a/src_cpp/worker.cpp +++ b/src_cpp/worker.cpp @@ -85,8 +85,10 @@ void Reconstruction::Iterate() Algorithm * alg = state->GetCurrentAlg(); alg->RunAlgorithm(this); - if (!errors_plot->close()) + if (params->IsPlotErrors() && !errors_plot->close()) + { Plot(); + } Average(); } From 224ab77980c8b888a76782e0c9cb68b9b3c5a270 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Thu, 4 Jan 2018 10:49:02 -0600 Subject: [PATCH 055/336] refactored for generations --- config.test | 33 +++++- include/bridge.hpp | 6 +- include/manager.hpp | 6 +- include/parameters.hpp | 6 +- src_cpp/bridge.cpp | 12 +- src_cpp/manager.cpp | 12 +- src_cpp/parameters.cpp | 40 +++++-- src_cpp/worker.cpp | 6 +- src_py/controller/fast_module.py | 169 ++++++++++++++++++++++++++++ src_py/controller/generation.py | 111 ++++++++++++++++++ src_py/controller/reconstruction.py | 162 +++++++------------------- src_py/cyth/bridge_cpu.pyx | 27 ++--- src_py/cyth/bridge_cuda.pyx | 29 ++--- src_py/cyth/bridge_opencl.pyx | 31 ++--- src_py/utilities/CXDVizNX.py | 22 ++-- 15 files changed, 460 insertions(+), 212 deletions(-) create mode 100755 src_py/controller/fast_module.py create mode 100644 src_py/controller/generation.py mode change 100755 => 100644 src_py/controller/reconstruction.py diff --git a/config.test b/config.test index 7861510..eb398d1 100644 --- a/config.test +++ b/config.test @@ -11,7 +11,7 @@ action = "new_guess" // raw reconstructed image, and support. With this action a continue_dir must be defined // that contains the saved files. If only data is saved the program will start a new guess. -continue_dir = "AB_dir" +continue_dir = "results_dir" // a directory containing prepared data and results of previous reconstruction. // if action is "continue", the reconstruction will start with these results. @@ -20,6 +20,37 @@ save_results = true // the save_dir +// generations +generations = 1 // number of generations + +low_resolution_generations = 0 + // number of generations low resolution is applied to, starting from first gen + +low_resolution_sigma_alg = "SIG_SPACE_LINEAR" + // defines how to calculate sigmas based on generation. Supported: + // SIG_SPACE_LINEAR - sigmas are starting from low_resolution_sigma_max, + // linearly decreasing for each generation, reaching low_resolution_sigma + // at the end + // SIG_SCALE_POWER - use low_resolution_scale_power and ScaleFactor + // to calculate sigmas for generations + // SIG_ASSIGNED - sigmas will be read from low_resolution_sigmas + +low_resolution_sigmas = [1.0] + // list of sigmas that will be used by subsequent generations + +low_resolution_sigma_min = 0.1 + // initial sigma + +low_resolution_sigma_max = 2.0 + // max support sigma value + +low_resolution_scale_power = 1 + // how the sig scales with generation (1 - linear, 2 - quad etc) + +low_resolution_alg = "GAUSS" + // algorithm to use to apply resolution. Supported algorithms: + // GAUSS + // PARAMETER FOR DATA PREPARATION amp_threshold = 2.0 // min data threshold. Values below this are set to 0. The threshold is applied diff --git a/include/bridge.hpp b/include/bridge.hpp index 9310b2c..b28b25d 100644 --- a/include/bridge.hpp +++ b/include/bridge.hpp @@ -14,10 +14,10 @@ See LICENSE file. class Bridge { public: -void StartCalcWithGuess(std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector dim, const std::string & config); +void StartCalcWithGuess(std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector dim, const std::string & config, int stage); -void StartCalc(std::vector data_buffer_r, std::vector dim, std::string const & config); -void StartCalcMultiple(std::vector data_buffer_r, std::vector dim, std::string const & config, int nu_threads); +void StartCalc(std::vector data_buffer_r, std::vector dim, std::string const & config, int stage); +void StartCalcMultiple(std::vector data_buffer_r, std::vector dim, std::string const & config, int nu_threads, int stage); std::vector GetSupportV(); std::vector GetCoherenceV(); diff --git a/include/manager.hpp b/include/manager.hpp index 1deac2c..1455701 100644 --- a/include/manager.hpp +++ b/include/manager.hpp @@ -25,14 +25,14 @@ class Manager // This method takes data, real and imaginary guess for the reconstruction algorithm. The dim parameter conveys the // data and guess dimensions, since the data and guess are passed in a c-like buffer. // The config parameter defines configuration file. - void StartCalc(std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector dim, const std::string & config); + void StartCalc(std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector dim, const std::string & config, int stage); // This method starts calculations. The Manager uses workers to perform the calculations. The parameters define // calculations type. // This method takes data, for the reconstruction algorithm. To perform the reconstruction the code will generate // the guess parameter. The dim parameter conveys data dimensions, since the data is passed in a c-like buffer. // The config parameter defines configuration file. - void StartCalc(std::vector data_buffer_r, std::vector dim, std::string const & config); + void StartCalc(std::vector data_buffer_r, std::vector dim, std::string const & config, int stage); // This method starts calculations. The Manager uses workers to perform the calculations. The parameters define // calculations type. @@ -40,7 +40,7 @@ class Manager // This method takes data, for the reconstruction algorithm. To perform the reconstruction the code will generate // the guess parameter. The dim parameter conveys data dimensions, since the data is passed in a c-like buffer. // The config parameter defines configuration file. - void StartCalc(std::vector data_buffer_r, std::vector dim, std::string const & config, int nu_threads); + void StartCalc(std::vector data_buffer_r, std::vector dim, std::string const & config, int nu_threads, int stage); // This method returns calculation results. The returned buffer contains a real part of reconstructed image. std::vector GetImageR(); diff --git a/include/parameters.hpp b/include/parameters.hpp index 2830497..3329bd6 100644 --- a/include/parameters.hpp +++ b/include/parameters.hpp @@ -32,13 +32,13 @@ typedef struct Trigger_setting trigger_setting; class Params { private: - std::vector ParseTriggers(std::string trigger_name); + std::vector ParseTriggers(std::string trigger_name, int); void BuildAlgorithmMap(); void BuildActionMap(); public: // Constructor. Takes in configuration file, parses the configuration and sets the parameters accordingly. - Params(const char* config_file, dim4 data_dim); + Params(const char* config_file, int stage, dim4 data_dim); // returns data type (float/double). Used by python code std::string GetDataType(); @@ -109,6 +109,8 @@ class Params // Returns ID of target device (cpu or gpu). int GetDeviceId(); + int GetActionStage(); + }; diff --git a/src_cpp/bridge.cpp b/src_cpp/bridge.cpp index 392b31d..a57fe03 100644 --- a/src_cpp/bridge.cpp +++ b/src_cpp/bridge.cpp @@ -10,26 +10,26 @@ See LICENSE file. Manager mgr; -void Bridge::StartCalcWithGuess(std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector dim, const std::string & config) +void Bridge::StartCalcWithGuess(std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector dim, const std::string & config, int stage) { std::vector data_r(data_buffer_r.begin(), data_buffer_r.end()); std::vector guess_i(guess_buffer_i.begin(), guess_buffer_i.end()); std::vector guess_r(guess_buffer_r.begin(), guess_buffer_r.end()); - mgr.StartCalc(data_r, guess_r, guess_i, dim, config); + mgr.StartCalc(data_r, guess_r, guess_i, dim, config, stage); //mgr.StartCalc(data_buffer_r, guess_buffer_r, guess_buffer_i, dim, config); } -void Bridge::StartCalc(std::vector data_buffer_r, std::vector dim, std::string const & config) +void Bridge::StartCalc(std::vector data_buffer_r, std::vector dim, std::string const & config, int stage) { std::vector data_r(data_buffer_r.begin(), data_buffer_r.end()); - mgr.StartCalc(data_r, dim, config); + mgr.StartCalc(data_r, dim, config, stage); // mgr.StartCalc(data_buffer_r, dim, config); } -void Bridge::StartCalcMultiple(std::vector data_buffer_r, std::vector dim, std::string const & config, int nu_threads) +void Bridge::StartCalcMultiple(std::vector data_buffer_r, std::vector dim, std::string const & config, int nu_threads, int stage) { std::vector data_r(data_buffer_r.begin(), data_buffer_r.end()); - mgr.StartCalc(data_r, dim, config, nu_threads); + mgr.StartCalc(data_r, dim, config, nu_threads, stage); // mgr.StartCalc(data_buffer_r, dim, config, nu_threads); } diff --git a/src_cpp/manager.cpp b/src_cpp/manager.cpp index a9cdec4..1a8198d 100644 --- a/src_cpp/manager.cpp +++ b/src_cpp/manager.cpp @@ -16,10 +16,10 @@ See LICENSE file. using namespace af; -void Manager::StartCalc(std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector dim, const std::string & config) +void Manager::StartCalc(std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector dim, const std::string & config, int stage) { dim4 af_dims = Utils::Int2Dim4(dim); - Params * params = new Params(config.c_str(), af_dims); + Params * params = new Params(config.c_str(), stage, af_dims); int device = params->GetDeviceId(); if (device >= 0) @@ -46,15 +46,15 @@ void Manager::StartCalc(std::vector data_buffer_r, std::vector g printf("iterate function took %g seconds\n", timer::stop()); } -void Manager::StartCalc(std::vector data_buffer_r, std::vector dim, std::string const & config) +void Manager::StartCalc(std::vector data_buffer_r, std::vector dim, std::string const & config, int stage) { - StartCalc(data_buffer_r, dim, config, 1); + StartCalc(data_buffer_r, dim, config, 1, stage); } -void Manager::StartCalc(std::vector data_buffer_r, std::vector dim, std::string const & config, int nu_threads) +void Manager::StartCalc(std::vector data_buffer_r, std::vector dim, std::string const & config, int nu_threads, int stage) { dim4 af_dims = Utils::Int2Dim4(dim); - Params * params = new Params(config.c_str(), af_dims); + Params * params = new Params(config.c_str(), stage, af_dims); int device = params->GetDeviceId(); if (device >= 0) diff --git a/src_cpp/parameters.cpp b/src_cpp/parameters.cpp index 1c0e4a6..74ca987 100644 --- a/src_cpp/parameters.cpp +++ b/src_cpp/parameters.cpp @@ -67,6 +67,7 @@ const char * save_dir; const char * continue_dir; int action; +int action_stage = 0; bool save_results = false; @@ -76,7 +77,8 @@ int gc = -1; int device = -1; -Params::Params(const char* config_file, dim4 data_dim) + +Params::Params(const char* config_file, int stage, dim4 data_dim) { BuildAlgorithmMap(); BuildActionMap(); @@ -120,6 +122,7 @@ Params::Params(const char* config_file, dim4 data_dim) try { continue_dir = cfg.lookup("continue_dir"); + action_stage = 1; // else it is initialized } catch (const SettingNotFoundException &nfex) @@ -128,6 +131,10 @@ Params::Params(const char* config_file, dim4 data_dim) printf("No 'continue_dir' parameter in configuration file, saving in 'my_dir'.\n"); } } + else + { + action_stage = stage; + } try { save_results = cfg.lookup("save_results"); @@ -223,7 +230,7 @@ Params::Params(const char* config_file, dim4 data_dim) { printf("No 'support_sigma' parameter in configuration file.\n"); } - support_triggers = ParseTriggers("support"); + support_triggers = ParseTriggers("support", action_stage); support_alg = -1; try { support_alg = algorithm_id_map[cfg.lookup("support_type")]; @@ -264,7 +271,7 @@ Params::Params(const char* config_file, dim4 data_dim) printf("No 'partial_coherence_roi' parameter in configuration file.\n"); } - pcdi_triggers = ParseTriggers("partial_coherence"); + pcdi_triggers = ParseTriggers("partial_coherence", action_stage); pcdi_normalize = false; try { pcdi_normalize = cfg.lookup("partial_coherence_normalize"); @@ -358,12 +365,15 @@ Params::Params(const char* config_file, dim4 data_dim) printf("No 'regularized_amp' parameter in configuration file.\n"); } twin = -1; - try { - twin = cfg.lookup("twin"); - } - catch ( const SettingNotFoundException &nfex) + if (action_stage == 0) { - printf("No 'twin' parameter in configuration file.\n"); + try { + twin = cfg.lookup("twin"); + } + catch ( const SettingNotFoundException &nfex) + { + printf("No 'twin' parameter in configuration file.\n"); + } } } @@ -386,7 +396,7 @@ void Params::BuildActionMap() action_id_map.insert(std::pair("continue", ACTION_CONTINUE)); } -std::vector Params::ParseTriggers(std::string trigger_name) +std::vector Params::ParseTriggers(std::string trigger_name, int action_stage) { std::vector trigger_iterations; const Setting& root = cfg.getRoot(); @@ -396,7 +406,11 @@ std::vector Params::ParseTriggers(std::string trigger_name) const Setting &tmp = root[(trigger_name + std::basic_string("_triggers")).c_str()]; for (int i =0; i < tmp.getLength(); i++) { - int start = tmp[i][0]; + int start = tmp[i][1]; // set the first trigger to step + if (action_stage == 0) + { + int start = tmp[i][0]; + } int step = tmp[i][1]; if (tmp[i].getLength() > 2) { @@ -569,3 +583,9 @@ int Params::GetDeviceId() { return device; } + +int Params::GetActionStage() +{ + return action_stage; +} + diff --git a/src_cpp/worker.cpp b/src_cpp/worker.cpp index f4f6ea0..6cfeaab 100644 --- a/src_cpp/worker.cpp +++ b/src_cpp/worker.cpp @@ -62,8 +62,8 @@ void Reconstruction::Init() ds_image *= max_data * GetNorm(ds_image); // the next two lines are for testing it sets initial guess to initial support - //af::array temp = support->GetSupportArray(); - //ds_image = complex(temp.as((af_dtype) dtype_traits::ctype), 0.0).as(c64); + // af::array temp = support->GetSupportArray(); + // ds_image = complex(temp.as((af_dtype) dtype_traits::ctype), 0.0).as(c64); ds_image *= support->GetSupportArray(); printf("initial image norm %f\n", GetNorm(ds_image)); @@ -128,7 +128,7 @@ af::array Reconstruction::ModulusProjection() } else { - if (current_iteration >= partialCoherence->GetTriggers()[0]) + if ((current_iteration >= partialCoherence->GetTriggers()[0]) || (params->GetActionStage())) { printf("coherence using lucy\n"); af::array abs_amplitudes = abs(rs_amplitudes).copy(); diff --git a/src_py/controller/fast_module.py b/src_py/controller/fast_module.py new file mode 100755 index 0000000..34f877a --- /dev/null +++ b/src_py/controller/fast_module.py @@ -0,0 +1,169 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + + +""" +Please make sure the installation :ref:`pre-requisite-reference-label` are met. +This module controls the reconstruction process. The user has to provide parameters such as type of processor, data, and configuration. +The processor specifies which library will be used by CFM (Calc Fast Module) that performs the processor intensive calculations. The module +can be run on cpu, or gpu. Depending on the gpu hardware and library, one can use opencl or cuda library. +The module starts the data preparation routines, calls for reconstruction using the CFM, and prepares the reconstructed data for +visualization. +""" + +import numpy as np +import src_py.utilities.CXDVizNX as cx +import scipy.fftpack as sf +import matplotlib.pyplot as plt +import src_py.cyth.bridge_cpu as bridge_cpu +import src_py.cyth.bridge_opencl as bridge_opencl +# import src_py.cyth.bridge_cuda as bridge_cuda + + +__author__ = "Barbara Frosik" +__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." +__docformat__ = 'restructuredtext en' +__all__ = ['fast_module_reconstruction', + 'write_simple', + 'reconstruction'] + + +def fast_module_reconstruction(proc, data, conf, image=None, support=None, coherence=None): + """ + This function calls a bridge method corresponding to the requested processor type. The bridge method is an access + to the CFM (Calc Fast Module). When reconstruction is completed the function retrieves results from the CFM. + The data received is max centered and the array is ordered "C". The CFM requires data zero-frequency component at + the center of the spectrum and "F" array order. Thus the data is modified at the beginning. + + Parameters + ---------- + proc : str + a string indicating the processor type + + data : array + a 3D np array containing pre-processed experiment data + + conf : dict + configuration map + + Returns + ------- + image_r : array + a 3D np real part array containing reconstructed image + + image_i : array + a 3D np imaginary part array containing reconstructed image + + er : array + a vector containing mean error for each iteration + """ + if proc == 'cpu': + bridge = bridge_cpu + elif proc == 'opencl': + bridge = bridge_opencl + # elif proc == 'cuda': + # bridge = bridge_cuda + + stage = 0 + if image is not None: + stage = 1 + + # shift data + data=sf.fftshift(data) + data = np.swapaxes(data,1,2) + + dims = data.shape + dims1 = (dims[2], dims[1], dims[0]) + fast_module = bridge.PyBridge() + + data_l = data.flatten().tolist() + fast_module.start_calc(data_l, dims1, conf, stage) + er = fast_module.get_errors() + image_r = np.asarray(fast_module.get_image_r()) + image_i = np.asarray(fast_module.get_image_i()) + image = image_r + 1j*image_i + # normalize image + mx = max(np.absolute(image).ravel().tolist()) + image = image/mx + support = np.asarray(fast_module.get_support()) + coherence = np.asarray(fast_module.get_coherence()) + + image = np.reshape(image, dims) + support = np.reshape(support, dims) + + image = np.swapaxes(image, 2,0) + support = np.swapaxes(support, 2,0) + image = np.swapaxes(image, 1, 0) + support = np.swapaxes(support, 1, 0) + + if coherence.shape[0] > 1: + coh_size = int(round(coherence.shape[0] ** (1. / 3.))) + coh_dims = (coh_size, coh_size, coh_size,) + coherence = np.reshape(coherence, coh_dims) + coherence = np.swapaxes(coherence, 2, 0) + coherence = np.swapaxes(coherence, 1, 0) + else: + coherence = None + + return image, support, coherence, er + + +def write_simple(arr, filename): + from tvtk.api import tvtk, write_data + + id=tvtk.ImageData() + id.point_data.scalars=abs(arr.ravel(order='F')) + id.dimensions=arr.shape + write_data(id, filename) + + +def reconstruction(proc, conf, data, image, support, coherence): + """ + This function is called by the user. It checks whether the data is valid and configuration file exists. + It calls function to pre-process the data, and then to run reconstruction. + The reconstruction results, image and errors are returned. + + Parameters + ---------- + proc : str + a string indicating the processor type + + filename : str + name of a file containing experiment data + + conf : str + configuration file name + + Returns + ------- + image : array + a 3D np array containing reconstructed image + + er : array + a vector containing mean error for each iteration + """ + + if image is None: + image, support, coherence, errors = fast_module_reconstruction(proc, data, conf) + else: + image, support, coherence, errors = fast_module_reconstruction(proc, data, conf, image, support, coherence) + + + cx.save_CX(conf, image, support) + + errors.pop(0) + plt.plot(errors) + plt.ylabel('errors') + plt.show() + + print 'image, support shape', image.shape, support.shape + + return image, support, coherence, errors + + diff --git a/src_py/controller/generation.py b/src_py/controller/generation.py new file mode 100644 index 0000000..082a4b1 --- /dev/null +++ b/src_py/controller/generation.py @@ -0,0 +1,111 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + + +""" +Please make sure the installation :ref:`pre-requisite-reference-label` are met. +This module controls the reconstruction process. The user has to provide parameters such as type of processor, data, and configuration. +The processor specifies which library will be used by CFM (Calc Fast Module) that performs the processor intensive calculations. The module +can be run on cpu, or gpu. Depending on the gpu hardware and library, one can use opencl or cuda library. +The module starts the data preparation routines, calls for reconstruction using the CFM, and prepares the reconstructed data for +visualization. +""" + +import numpy as np +import src_py.utilities.utils as ut + +__author__ = "Barbara Frosik" +__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." +__docformat__ = 'restructuredtext en' +__all__ = ['read_config', + 'reconstruction'] + + +class Generation: + """ + This class encapsulates generation. + """ + def __init__(self, config_map, data): + self.data = data + try: + self.generations = config_map.generations + except AttributeError: + self.generations = 1 + try: + self.low_resolution_generations = config_map.low_resolution_generations + except AttributeError: + self.low_resolution_generations = 0 + + if self.low_resolution_generations > 0: + try: + low_resolution_sigma_alg = config_map.low_resolution_sigma_alg + except AttributeError: + low_resolution_sigma_alg = 'SIG_SPACE_LINEAR' + + if low_resolution_sigma_alg == 'SIG_ASSIGNED': + try: + self.sigmas = config_map.low_resolution_sigmas + except: + print 'low resolution sigmas config parameter is missing, turning off low resolution.' + self.low_resolution_generations = 0 + elif low_resolution_sigma_alg == 'SIG_SCALE_POWER': + try: + low_resolution_sigma_min = config_map.low_resolution_sigma_min + except: + low_resolution_sigma_min = .1 + try: + low_resolution_sigma_max = config_map.low_resolution_sigma_max + except: + low_resolution_sigma_max = 2.0 + try: + low_resolution_scale_power = config_map.low_resolution_scale_power + except: + low_resolution_scale_power = 1 + try: + support_sigma = config_map.support_sigma + except: + support_sigma = 1.0 + + sigmas = support_sigma/np.power(np.linspace(0.0, 1.0,self.low_resolution_generations)* + (1-low_resolution_sigma_min)+low_resolution_sigma_min,low_resolution_scale_power) + self.sigmas = np.clip(sigmas, support_sigma, low_resolution_sigma_max).tolist() + + # the default is 'SIG_SPACE_LINEAR' + else: + try: + low_resolution_sigma_min = config_map.support_sigma + except: + low_resolution_sigma_min = 1.0 + try: + low_resolution_sigma_max = config_map.low_resolution_sigma_max + except: + low_resolution_sigma_max = 2.0 + self.sigmas = np.linspace(low_resolution_sigma_max, low_resolution_sigma_min, self.low_resolution_generations).tolist() + + if self.low_resolution_generations > 0: + try: + self.low_resolution_alg = config_map.low_resolution_alg + except AttributeError: + self.low_resolution_alg = 'GAUSS' + + + def get_data(self, generation): + if self.low_resolution_generations == 0: + return self.data + + gmask = self.get_gmask(generation) + return self.data * gmask + + + def get_gmask(self, generation): + if self.low_resolution_alg == 'GAUSS': + if self.sigmas[generation] < 1.0: + ut.gaussian(self.data.shape, self.sigmas[generation]) + else: + return np.ones(self.data.shape) diff --git a/src_py/controller/reconstruction.py b/src_py/controller/reconstruction.py old mode 100755 new mode 100644 index fbc810d..cedac9c --- a/src_py/controller/reconstruction.py +++ b/src_py/controller/reconstruction.py @@ -19,15 +19,10 @@ import numpy as np import src_py.utilities.utils as ut -import src_py.utilities.CXDVizNX as cx import pylibconfig2 as cfg import os -import scipy.fftpack as sf -import matplotlib.pyplot as plt -#import tifffile as tf -import src_py.cyth.bridge_cpu as bridge_cpu -import src_py.cyth.bridge_opencl as bridge_opencl -# import src_py.cyth.bridge_cuda as bridge_cuda +import src_py.controller.fast_module as calc +from src_py.controller.generation import Generation __author__ = "Barbara Frosik" @@ -35,25 +30,24 @@ __docformat__ = 'restructuredtext en' __all__ = ['read_config', 'prepare_data', - 'fast_module_reconstruction', - 'write_simple', 'reconstruction'] + def read_config(config): """ This function gets configuration file. It checks if the file exists and parses it into a map. - + Parameters ---------- config : str configuration file name, including path - + Returns ------- config_map : dict a map containing parsed configuration, None if the given file does not exist """ - + if os.path.isfile(config): with open(config, 'r') as f: config_map = cfg.Config(f.read()) @@ -66,29 +60,28 @@ def prepare_data(config_map, data): """ This function prepares raw data for reconstruction. It uses configured parameters. The preparation consists of the following steps: 1. clearing the noise - the values below an amplitude threshold are set to zero - 2. removing the "aliens" - aliens are areas that are effect of interference. The area is manually set in a configuration file + 2. removing the "aliens" - aliens are areas that are effect of interference. The area is manually set in a configuration file after inspecting the data. 3. binning - adding amplitudes of several consecutive points. Binning can be done in any dimension. 4. amplitudes are set to sqrt 5. centering - finding the greatest amplitude and locating it at a center of new array. Typically several new rows/columns/slices - are added. These are filled with zeros. When changing the dimension the code finds the smallest possible dimension that is + are added. These are filled with zeros. When changing the dimension the code finds the smallest possible dimension that is supported by opencl library (multiplier of 2, 3, and 5). - 6. shift in place - shift the zero-frequency component to the center of the spectrum - + Parameters ---------- config_map : dict configuration map - + data : array a 3D np array containing experiment data - + Returns ------- data : array a 3D np array containing data after the preprocessing """ - + # zero out the noise data = np.where(data < config_map.amp_threshold, 0, data) @@ -96,7 +89,7 @@ def prepare_data(config_map, data): try: aliens = config_map.aliens for alien in aliens: - data[alien[0]:alien[3], alien[1]:alien[4], alien[2]:alien[5]]=0 + data[alien[0]:alien[3], alien[1]:alien[4], alien[2]:alien[5]] = 0 except AttributeError: pass @@ -114,7 +107,7 @@ def prepare_data(config_map, data): try: center_shift = tuple(config_map.center_shift) except AttributeError: - center_shift = (0,0,0) + center_shift = (0, 0, 0) data = ut.get_centered(data, center_shift) @@ -125,114 +118,31 @@ def prepare_data(config_map, data): except AttributeError: pass - # shift data - data=sf.fftshift(data) return data -def fast_module_reconstruction(proc, data, conf): - """ - This function calls a bridge method corresponding to the requested processor type. The bridge method is an access to the CFM - (Calc Fast Module). When reconstruction is completed the function retrieves results from the CFM. - - Parameters - ---------- - proc : str - a string indicating the processor type - - data : array - a 3D np array containing pre-processed experiment data - - conf : dict - configuration map - - Returns - ------- - image_r : array - a 3D np real part array containing reconstructed image - - image_i : array - a 3D np imaginary part array containing reconstructed image - - er : array - a vector containing mean error for each iteration - """ - if proc == 'cpu': - bridge = bridge_cpu - elif proc == 'opencl': - bridge = bridge_opencl - # elif proc == 'cuda': - # bridge = bridge_cuda - - data = np.swapaxes(data,1,2) - - dims = data.shape - dims1 = (dims[2], dims[1], dims[0]) - fast_module = bridge.PyBridge() - - data_l = data.flatten().tolist() - fast_module.start_calc(data_l, dims1, conf) - er = fast_module.get_errors() - image_r = np.asarray(fast_module.get_image_r()) - image_i = np.asarray(fast_module.get_image_i()) - image = image_r + 1j*image_i - # normalize image - mx = max(np.absolute(image).ravel().tolist()) - image = image/mx - support = np.asarray(fast_module.get_support()) - coherence = np.asarray(fast_module.get_coherence()) - - image = np.reshape(image, dims) - support = np.reshape(support, dims) - - image = np.swapaxes(image, 2,0) - support = np.swapaxes(support, 2,0) - image = np.swapaxes(image, 1, 0) - support = np.swapaxes(support, 1, 0) - - if coherence.shape[0] > 1: - coh_size = int(round(coherence.shape[0] ** (1. / 3.))) - coh_dims = (coh_size, coh_size, coh_size,) - coherence = np.reshape(coherence, coh_dims) - coherence = np.swapaxes(coherence, 2, 0) - coherence = np.swapaxes(coherence, 1, 0) - else: - coherence = None - - return image, support, coherence, er - - -def write_simple(arr, filename): - from tvtk.api import tvtk, write_data - - id=tvtk.ImageData() - id.point_data.scalars=abs(arr.ravel(order='F')) - id.dimensions=arr.shape - write_data(id, filename) - - def reconstruction(proc, filename, conf): """ This function is called by the user. It checks whether the data is valid and configuration file exists. It calls function to pre-process the data, and then to run reconstruction. The reconstruction results, image and errors are returned. - + Parameters ---------- proc : str a string indicating the processor type - + filename : str name of a file containing experiment data - + conf : str configuration file name - + Returns ------- image : array a 3D np array containing reconstructed image - + er : array a vector containing mean error for each iteration """ @@ -268,20 +178,26 @@ def reconstruction(proc, filename, conf): except AttributeError: print ("save_dir not configured") - np.save(save_dir+'/data.npy', data) + np.save(save_dir + '/data.npy', data) if action != 'prep_only': - image, support, coherence, errors = fast_module_reconstruction(proc, data, conf) - - cx.save_CX(conf, image, support, save_dir) - - if coherence is not None: - write_simple(coherence, save_dir + "simple_coh.vtk") - - errors.pop(0) - plt.plot(errors) - plt.ylabel('errors') - plt.show() - - print 'image, support shape', image.shape, support.shape + try: + generations = config_map.generations + except: + generations = 1 + try: + low_resolution_generations = config_map.low_resolution_generations + except: + low_resolution_generations = 0 + + if generations == 1 and low_resolution_generations == 0: + calc.reconstruction(proc, conf, data, None, None, None) + else: + gen_obj = Generation(config_map, data) + image, support, coherence, errors = None, None, None, None + for g in range(generations): + data = gen_obj.get_data(g) + image, support, coherence, errors = calc.reconstruction(proc, conf, data, image, support, coherence) + +#reconstruction('opencl', '/home/phoebus/BFROSIK/CDI/S149/Staff14-3_S0149.tif', '/local/bfrosik/cdi/config.test') diff --git a/src_py/cyth/bridge_cpu.pyx b/src_py/cyth/bridge_cpu.pyx index e8b28eb..56b0753 100644 --- a/src_py/cyth/bridge_cpu.pyx +++ b/src_py/cyth/bridge_cpu.pyx @@ -4,6 +4,7 @@ # See LICENSE file. # # ######################################################################### + # distutils: language = c++ # distutils: include_dirs = ['include', 'AF_DIR/include', 'LC_DIR/lib',] # distutils: sources = ['src_cpp/algorithm.cpp', 'src_cpp/bridge.cpp', 'src_cpp/manager.cpp', 'src_cpp/parameters.cpp', 'src_cpp/pcdi.cpp', 'src_cpp/state.cpp', 'src_cpp/support.cpp', 'src_cpp/util.cpp', 'src_cpp/worker.cpp'] @@ -17,14 +18,14 @@ from libcpp.string cimport string cdef extern from "../include/bridge.hpp": cdef cppclass Bridge: Bridge() except + - void StartCalcWithGuess(vector[float], vector[float], vector[float], vector[int], string) - void StartCalc(vector[float], vector[int], string) - void StartCalcMultiple(vector[float], vector[int], string, int) - vector[def_type] GetImageR() - vector[def_type] GetImageI() - vector[def_type] GetErrors() + void StartCalcWithGuess(vector[float], vector[float], vector[float], vector[int], string, int) + void StartCalc(vector[float], vector[int], string, int) + void StartCalcMultiple(vector[float], vector[int], string, int, int) + vector[double] GetImageR() + vector[double] GetImageI() + vector[double] GetErrors() vector[float] GetSupportV() - vector[def_type] GetCoherenceV() + vector[double] GetCoherenceV() cdef class PyBridge: @@ -33,12 +34,12 @@ cdef class PyBridge: self.thisptr = new Bridge() def __dealloc__(self): del self.thisptr - def start_calc_with_guess(self, data_r, guess_r, guess_i, dims, config): - self.thisptr.StartCalcWithGuess(data_r, guess_r, guess_i, dims, config.encode()) - def start_calc(self, data_r, dims, config): - self.thisptr.StartCalc(data_r, dims, config.encode()) - def start_calc_multiple(self, data_r, dims, config, no_threads): - self.thisptr.StartCalcMultiple(data_r, dims, config, no_threads) + def start_calc_with_guess(self, data_r, guess_r, guess_i, dims, config, stage): + self.thisptr.StartCalcWithGuess(data_r, guess_r, guess_i, dims, config.encode(), stage) + def start_calc(self, data_r, dims, config, stage): + self.thisptr.StartCalc(data_r, dims, config.encode(), stage) + def start_calc_multiple(self, data_r, dims, config, no_threads, stage): + self.thisptr.StartCalcMultiple(data_r, dims, config, no_threads, stage) def get_image_r(self): return self.thisptr.GetImageR() def get_image_i(self): diff --git a/src_py/cyth/bridge_cuda.pyx b/src_py/cyth/bridge_cuda.pyx index ffa0254..70744cb 100755 --- a/src_py/cyth/bridge_cuda.pyx +++ b/src_py/cyth/bridge_cuda.pyx @@ -4,10 +4,11 @@ # See LICENSE file. # # ######################################################################### + # distutils: language = c++ # distutils: include_dirs = ['include', 'AF_DIR/include', 'LC_DIR/lib',] # distutils: sources = ['src_cpp/algorithm.cpp', 'src_cpp/bridge.cpp', 'src_cpp/manager.cpp', 'src_cpp/parameters.cpp', 'src_cpp/pcdi.cpp', 'src_cpp/state.cpp', 'src_cpp/support.cpp', 'src_cpp/util.cpp', 'src_cpp/worker.cpp'] -# distutils: libraries = ['afcuda', 'config++',] +# distutils: libraries = ['afcpu', 'config++',] # distutils: library_dirs = ['AF_DIR/lib', 'LC_DIR/lib/.libs', ] from libcpp.vector cimport vector @@ -16,14 +17,14 @@ from libcpp.string cimport string cdef extern from "../include/bridge.hpp": cdef cppclass Bridge: Bridge() except + - void StartCalcWithGuess(vector[float], vector[float], vector[float], vector[int], string) - void StartCalc(vector[float], vector[int], string) - void StartCalcMultiple(vector[float], vector[int], string, int) - vector[def_type] GetImageR() - vector[def_type] GetImageI() - vector[def_type] GetErrors() + void StartCalcWithGuess(vector[float], vector[float], vector[float], vector[int], string, int) + void StartCalc(vector[float], vector[int], string, int) + void StartCalcMultiple(vector[float], vector[int], string, int, int) + vector[double] GetImageR() + vector[double] GetImageI() + vector[double] GetErrors() vector[float] GetSupportV() - vector[def_type] GetCoherenceV() + vector[double] GetCoherenceV() cdef class PyBridge: @@ -32,12 +33,12 @@ cdef class PyBridge: self.thisptr = new Bridge() def __dealloc__(self): del self.thisptr - def start_calc_with_guess(self, data_r, guess_r, guess_i, dims, config): - self.thisptr.StartCalcWithGuess(data_r, guess_r, guess_i, dims, config.encode()) - def start_calc(self, data_r, dims, config): - self.thisptr.StartCalc(data_r, dims, config.encode()) - def start_calc_multiple(self, data_r, dims, config, no_threads): - self.thisptr.StartCalcMultiple(data_r, dims, config, no_threads) + def start_calc_with_guess(self, data_r, guess_r, guess_i, dims, config, stage): + self.thisptr.StartCalcWithGuess(data_r, guess_r, guess_i, dims, config.encode(), stage) + def start_calc(self, data_r, dims, config, stage): + self.thisptr.StartCalc(data_r, dims, config.encode(), stage) + def start_calc_multiple(self, data_r, dims, config, no_threads, stage): + self.thisptr.StartCalcMultiple(data_r, dims, config, no_threads, stage) def get_image_r(self): return self.thisptr.GetImageR() def get_image_i(self): diff --git a/src_py/cyth/bridge_opencl.pyx b/src_py/cyth/bridge_opencl.pyx index 2fc53f2..70744cb 100755 --- a/src_py/cyth/bridge_opencl.pyx +++ b/src_py/cyth/bridge_opencl.pyx @@ -4,11 +4,12 @@ # See LICENSE file. # # ######################################################################### + # distutils: language = c++ # distutils: include_dirs = ['include', 'AF_DIR/include', 'LC_DIR/lib',] # distutils: sources = ['src_cpp/algorithm.cpp', 'src_cpp/bridge.cpp', 'src_cpp/manager.cpp', 'src_cpp/parameters.cpp', 'src_cpp/pcdi.cpp', 'src_cpp/state.cpp', 'src_cpp/support.cpp', 'src_cpp/util.cpp', 'src_cpp/worker.cpp'] -# distutils: libraries = ['afopencl', 'config++',] -# distutils: library_dirs = ['AF_DIR/lib', 'LC_DIR/lib/.libs',] +# distutils: libraries = ['afcpu', 'config++',] +# distutils: library_dirs = ['AF_DIR/lib', 'LC_DIR/lib/.libs', ] from libcpp.vector cimport vector from libcpp.string cimport string @@ -16,14 +17,14 @@ from libcpp.string cimport string cdef extern from "../include/bridge.hpp": cdef cppclass Bridge: Bridge() except + - void StartCalcWithGuess(vector[float], vector[float], vector[float], vector[int], string) - void StartCalc(vector[float], vector[int], string) - void StartCalcMultiple(vector[float], vector[int], string, int) - vector[def_type] GetImageR() - vector[def_type] GetImageI() - vector[def_type] GetErrors() + void StartCalcWithGuess(vector[float], vector[float], vector[float], vector[int], string, int) + void StartCalc(vector[float], vector[int], string, int) + void StartCalcMultiple(vector[float], vector[int], string, int, int) + vector[double] GetImageR() + vector[double] GetImageI() + vector[double] GetErrors() vector[float] GetSupportV() - vector[def_type] GetCoherenceV() + vector[double] GetCoherenceV() cdef class PyBridge: @@ -32,12 +33,12 @@ cdef class PyBridge: self.thisptr = new Bridge() def __dealloc__(self): del self.thisptr - def start_calc_with_guess(self, data_r, guess_r, guess_i, dims, config): - self.thisptr.StartCalcWithGuess(data_r, guess_r, guess_i, dims, config.encode()) - def start_calc(self, data_r, dims, config): - self.thisptr.StartCalc(data_r, dims, config.encode()) - def start_calc_multiple(self, data_r, dims, config, no_threads): - self.thisptr.StartCalcMultiple(data_r, dims, config, no_threads) + def start_calc_with_guess(self, data_r, guess_r, guess_i, dims, config, stage): + self.thisptr.StartCalcWithGuess(data_r, guess_r, guess_i, dims, config.encode(), stage) + def start_calc(self, data_r, dims, config, stage): + self.thisptr.StartCalc(data_r, dims, config.encode(), stage) + def start_calc_multiple(self, data_r, dims, config, no_threads, stage): + self.thisptr.StartCalcMultiple(data_r, dims, config, no_threads, stage) def get_image_r(self): return self.thisptr.GetImageR() def get_image_i(self): diff --git a/src_py/utilities/CXDVizNX.py b/src_py/utilities/CXDVizNX.py index f531532..32d70dc 100644 --- a/src_py/utilities/CXDVizNX.py +++ b/src_py/utilities/CXDVizNX.py @@ -66,15 +66,17 @@ def __init__(self, config): self.dpy = pixel[1] / self.arm except AttributeError: print ('pixel not defined') - try: - self.save_two_files = config_map.save_two_files - except AttributeError: - print ('save_two_files not defined') try: self.crop = config_map.crop except AttributeError: self.crop = None print ('crop not defined') + try: + self.save_dir = config_map.save_dir + if not self.save_dir.endswith('/'): + self.save_dir = self.save_dir + '/' + except AttributeError: + self.save_dir = '' class CXDViz(tr.HasTraits): @@ -166,9 +168,6 @@ def update_coords(self): r.shape = 3, dims[0] * dims[1] * dims[2] r = r.transpose() - print r.shape - print self.T.shape - self.coords = np.dot(r, self.T) @@ -256,16 +255,13 @@ def get_image_data(self, **args): def write_structured_grid(self, filename, **args): - print 'in WriteStructuredGrid' sgwriter = tvtk.StructuredGridWriter() sgwriter.file_type = 'binary' if filename.endswith(".vtk"): sgwriter.file_name = filename else: sgwriter.file_name = filename + '.vtk' - sgwriter.set_input_data(self.get_structured_grid()) - print sgwriter.file_name sgwriter.write() @@ -341,7 +337,7 @@ def get_crop(params, shape): return crop -def save_CX(conf, image, support, filename): +def save_CX(conf, image, support): image, support = center(image, support) # image = remove_ramp(image) params = DispalyParams(conf) @@ -350,7 +346,7 @@ def save_CX(conf, image, support, filename): viz.set_geometry(params, image.shape) crop = get_crop(params, image.shape) viz.set_crop(crop[0], crop[1], crop[2]) # save image - viz.write_structured_grid(filename + 'image') + viz.write_structured_grid(params.save_dir + 'image') viz.set_array(support) - viz.write_structured_grid(filename + 'support') + viz.write_structured_grid(params.save_dir + 'support') From e1a2be2fa39ee882185501ba798d2f3ecd2efc46 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Mon, 15 Jan 2018 12:59:39 -0600 Subject: [PATCH 056/336] added tested low resolution data --- config.test | 10 +- include/bridge.hpp | 12 ++- include/common.h | 3 + include/manager.hpp | 13 ++- include/parameters.hpp | 1 + include/pcdi.hpp | 2 +- include/worker.hpp | 12 ++- src_cpp/bridge.cpp | 52 ++++++--- src_cpp/manager.cpp | 157 +++++++++++++++++++++------- src_cpp/parameters.cpp | 63 +++++++---- src_cpp/pcdi.cpp | 15 ++- src_cpp/state.cpp | 43 +++++--- src_cpp/worker.cpp | 29 ++++- src_py/controller/fast_module.py | 102 +++++++++++------- src_py/controller/generation.py | 18 ++-- src_py/controller/reconstruction.py | 73 +++++++------ src_py/cyth/bridge_cpu.pyx | 26 +++-- src_py/cyth/bridge_cuda.pyx | 26 +++-- src_py/cyth/bridge_opencl.pyx | 26 +++-- src_py/utilities/CXDVizNX.py | 15 +++ 20 files changed, 476 insertions(+), 222 deletions(-) diff --git a/config.test b/config.test index eb398d1..87cebe2 100644 --- a/config.test +++ b/config.test @@ -2,7 +2,7 @@ save_dir = "results_dir" // directory where vtk files are saved, and the data and raw results if configured -action = "new_guess" +action = "continue" // action defines what is processed by the program: // if "prep_only" the program will only do the data preparation and save in the save_dir // if "new_guess" the program will do the data prepation and will start reconstruction @@ -21,9 +21,9 @@ save_results = true // generations -generations = 1 // number of generations +generations = 3 // number of generations -low_resolution_generations = 0 +low_resolution_generations = 1 // number of generations low resolution is applied to, starting from first gen low_resolution_sigma_alg = "SIG_SPACE_LINEAR" @@ -45,7 +45,7 @@ low_resolution_sigma_max = 2.0 // max support sigma value low_resolution_scale_power = 1 - // how the sig scales with generation (1 - linear, 2 - quad etc) + // how the sigma scales with generation (1 - linear, 2 - quad etc) low_resolution_alg = "GAUSS" // algorithm to use to apply resolution. Supported algorithms: @@ -91,7 +91,7 @@ plot_errors = true // indicates whether to plot errors during calculat //algorithm_sequence = ((3, ("ER",2), ("HIO", 2), ("ER", 2)), (2, ("ER",3), ("HIO",3))) //algorithm_sequence = ((1, ("ER",6))) algorithm_sequence = ((1, ("ER",19), ("HIO", 10)), (1,("ER",10))) -//algorithm_sequence = ((1, ("ER",10), ("HIO", 20)), (1,("ER",10))) +//algorithm_sequence = ((1, ("ER",19), ("HIO", 4)), (1,("ER",4))) //algorithm_sequence = ((1, ("ER",19), ("HIO", 10)), (1,("ER",10)), (1, ("ER",10), ("HIO", 20)), (1,("ER",10))) // defines algorithm applied in each iteration by a sequence of tuples. // The first number in a tuple is a repeat, followed by tuples of pairs, each diff --git a/include/bridge.hpp b/include/bridge.hpp index b28b25d..06baeba 100644 --- a/include/bridge.hpp +++ b/include/bridge.hpp @@ -14,17 +14,21 @@ See LICENSE file. class Bridge { public: -void StartCalcWithGuess(std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector dim, const std::string & config, int stage); +Bridge(); +void StartCalcWithGuess(std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector dim, const std::string & config); +void StartCalcWithGuessSupport(std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector support_buffer, std::vector dim, const std::string & config); +void StartCalcWithGuessSupportCoh(std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector support_buffer, std::vector dim, std::vector coh_buffer, std::vector coh_dim, const std::string & config); -void StartCalc(std::vector data_buffer_r, std::vector dim, std::string const & config, int stage); -void StartCalcMultiple(std::vector data_buffer_r, std::vector dim, std::string const & config, int nu_threads, int stage); +void StartCalc(std::vector data_buffer_r, std::vector dim, std::string const & config); std::vector GetSupportV(); std::vector GetCoherenceV(); std::vector GetImageR(); std::vector GetImageI(); std::vector GetErrors(); - + +void Cleanup(); + }; diff --git a/include/common.h b/include/common.h index 2312daa..7325dee 100644 --- a/include/common.h +++ b/include/common.h @@ -47,4 +47,7 @@ const int REGULARIZED_AMPLITUDE_GAUSS = 1; const int REGULARIZED_AMPLITUDE_POISSON = 2; const int REGULARIZED_AMPLITUDE_UNIFORM = 3; +const int STAGE_PREMIER = 0; +const int STAGE_CONTINUE = 1; + #endif /* common_h */ diff --git a/include/manager.hpp b/include/manager.hpp index 1455701..b071285 100644 --- a/include/manager.hpp +++ b/include/manager.hpp @@ -17,22 +17,27 @@ class Manager { private: // A worker instance managed by the Manager - Reconstruction *rec = NULL; + Reconstruction *rec; public: + ~Manager(); // This method starts calculations. The Manager uses workers to perform the calculations. The parameters define // calculations type. // This method takes data, real and imaginary guess for the reconstruction algorithm. The dim parameter conveys the // data and guess dimensions, since the data and guess are passed in a c-like buffer. // The config parameter defines configuration file. - void StartCalc(std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector dim, const std::string & config, int stage); + void StartCalc(std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector dim, const std::string & config); + + void StartCalc(std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector support, std::vector dim, const std::string & config); + + void StartCalc(std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector support, std::vector dim, std::vector coh, std::vector coh_dim, const std::string & config); // This method starts calculations. The Manager uses workers to perform the calculations. The parameters define // calculations type. // This method takes data, for the reconstruction algorithm. To perform the reconstruction the code will generate // the guess parameter. The dim parameter conveys data dimensions, since the data is passed in a c-like buffer. // The config parameter defines configuration file. - void StartCalc(std::vector data_buffer_r, std::vector dim, std::string const & config, int stage); + void StartCalc(std::vector data_buffer_r, std::vector dim, std::string const & config); // This method starts calculations. The Manager uses workers to perform the calculations. The parameters define // calculations type. @@ -40,7 +45,7 @@ class Manager // This method takes data, for the reconstruction algorithm. To perform the reconstruction the code will generate // the guess parameter. The dim parameter conveys data dimensions, since the data is passed in a c-like buffer. // The config parameter defines configuration file. - void StartCalc(std::vector data_buffer_r, std::vector dim, std::string const & config, int nu_threads, int stage); + // void StartCalc(std::vector data_buffer_r, std::vector dim, std::string const & config); // This method returns calculation results. The returned buffer contains a real part of reconstructed image. std::vector GetImageR(); diff --git a/include/parameters.hpp b/include/parameters.hpp index 3329bd6..45091e7 100644 --- a/include/parameters.hpp +++ b/include/parameters.hpp @@ -39,6 +39,7 @@ class Params public: // Constructor. Takes in configuration file, parses the configuration and sets the parameters accordingly. Params(const char* config_file, int stage, dim4 data_dim); + ~Params(); // returns data type (float/double). Used by python code std::string GetDataType(); diff --git a/include/pcdi.hpp b/include/pcdi.hpp index 1f9268f..187e42d 100644 --- a/include/pcdi.hpp +++ b/include/pcdi.hpp @@ -19,7 +19,6 @@ class PartialCoherence { private: std::vector roi; - int crop[6]; std::vector triggers; int trigger_index; int algorithm; @@ -35,6 +34,7 @@ class PartialCoherence public: PartialCoherence(Params *params, af::array coherence_array); + ~PartialCoherence(); void Init(af::array data); void SetPrevious(af::array abs_amplitudes); std::vector GetTriggers(); diff --git a/include/worker.hpp b/include/worker.hpp index a8ed54e..0ffbd00 100644 --- a/include/worker.hpp +++ b/include/worker.hpp @@ -31,13 +31,13 @@ class Reconstruction private: // Params object constructed by the Reconstruction class - Params *params = NULL; + Params *params; // State object constructed by the Reconstruction class - State *state = NULL; + State *state; // A reference to Support object - Support *support = NULL; + Support *support; // A reference to PartialCoherence - PartialCoherence *partialCoherence = NULL; + PartialCoherence *partialCoherence; // This method returns sum of squares of all elements in the array double GetNorm(af::array arr); @@ -63,7 +63,9 @@ class Reconstruction // is typically generated as an complex random array. This image can be also the best outcome of previous calculations. The // data is saved and is used for processing. Reconstruction(af::array data, af::array guess, Params* params, af::array support_array, af::array coherence_array); - + + ~Reconstruction(); + // This initializes the object. It must be called after object is created. // 1. it calculates and sets norm of the data // 2. it calculates and sets size of data array diff --git a/src_cpp/bridge.cpp b/src_cpp/bridge.cpp index a57fe03..6a63111 100644 --- a/src_cpp/bridge.cpp +++ b/src_cpp/bridge.cpp @@ -7,58 +7,76 @@ See LICENSE file. #include "sstream" #include "bridge.hpp" #include "manager.hpp" +#include "cstdio" -Manager mgr; +Manager *mgr; -void Bridge::StartCalcWithGuess(std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector dim, const std::string & config, int stage) +Bridge::Bridge() +{ + mgr = new Manager(); +} + +void Bridge::StartCalcWithGuess(std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector dim, const std::string & config) { std::vector data_r(data_buffer_r.begin(), data_buffer_r.end()); std::vector guess_i(guess_buffer_i.begin(), guess_buffer_i.end()); std::vector guess_r(guess_buffer_r.begin(), guess_buffer_r.end()); - mgr.StartCalc(data_r, guess_r, guess_i, dim, config, stage); - //mgr.StartCalc(data_buffer_r, guess_buffer_r, guess_buffer_i, dim, config); + mgr->StartCalc(data_r, guess_r, guess_i, dim, config); } -void Bridge::StartCalc(std::vector data_buffer_r, std::vector dim, std::string const & config, int stage) +void Bridge::StartCalcWithGuessSupport(std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector support_buffer, std::vector dim, const std::string & config) { std::vector data_r(data_buffer_r.begin(), data_buffer_r.end()); - mgr.StartCalc(data_r, dim, config, stage); -// mgr.StartCalc(data_buffer_r, dim, config); + std::vector guess_i(guess_buffer_i.begin(), guess_buffer_i.end()); + std::vector guess_r(guess_buffer_r.begin(), guess_buffer_r.end()); + std::vector support(support_buffer.begin(), support_buffer.end()); + mgr->StartCalc(data_r, guess_r, guess_i, support, dim, config); } -void Bridge::StartCalcMultiple(std::vector data_buffer_r, std::vector dim, std::string const & config, int nu_threads, int stage) +void Bridge::StartCalcWithGuessSupportCoh(std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector support_buffer, std::vector dim, std::vector coh_buffer, std::vector coh_dim, const std::string & config) { std::vector data_r(data_buffer_r.begin(), data_buffer_r.end()); - mgr.StartCalc(data_r, dim, config, nu_threads, stage); -// mgr.StartCalc(data_buffer_r, dim, config, nu_threads); + std::vector guess_i(guess_buffer_i.begin(), guess_buffer_i.end()); + std::vector guess_r(guess_buffer_r.begin(), guess_buffer_r.end()); + std::vector support(support_buffer.begin(), support_buffer.end()); + std::vector coh(coh_buffer.begin(), coh_buffer.end()); + mgr->StartCalc(data_r, guess_r, guess_i, support, dim, coh, coh_dim, config); +} + +void Bridge::StartCalc(std::vector data_buffer_r, std::vector dim, std::string const & config) +{ + std::vector data_r(data_buffer_r.begin(), data_buffer_r.end()); + mgr->StartCalc(data_r, dim, config); } std::vector Bridge::GetImageR() { - return mgr.GetImageR(); + return mgr->GetImageR(); } std::vector Bridge::GetImageI() { - return mgr.GetImageI(); + return mgr->GetImageI(); } std::vector Bridge::GetErrors() { - return mgr.GetErrors(); + return mgr->GetErrors(); } std::vector Bridge::GetSupportV() { - return mgr.GetSupportV(); + return mgr->GetSupportV(); } std::vector Bridge::GetCoherenceV() { - return mgr.GetCoherenceV(); + return mgr->GetCoherenceV(); } - - +void Bridge::Cleanup() +{ + delete mgr; +} diff --git a/src_cpp/manager.cpp b/src_cpp/manager.cpp index 1a8198d..00777f1 100644 --- a/src_cpp/manager.cpp +++ b/src_cpp/manager.cpp @@ -16,44 +16,17 @@ See LICENSE file. using namespace af; -void Manager::StartCalc(std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector dim, const std::string & config, int stage) -{ - dim4 af_dims = Utils::Int2Dim4(dim); - Params * params = new Params(config.c_str(), stage, af_dims); - - int device = params->GetDeviceId(); - if (device >= 0) - { - setDevice(device); - } - - af::array real_d(af_dims, &data_buffer_r[0]); - //saving abs(data) - af::array data = abs(real_d); +af::array ar; - af::array real_g(af_dims, &guess_buffer_r[0]); - af::array imag_g(af_dims, &guess_buffer_i[0]); - af::array guess = complex(real_g, imag_g); - - af::array null_array = array(); - Reconstruction reconstruction(data, guess, params, null_array, null_array); - reconstruction.Init(); - rec = &reconstruction; - timer::start(); - - reconstruction.Iterate(); - - printf("iterate function took %g seconds\n", timer::stop()); -} - -void Manager::StartCalc(std::vector data_buffer_r, std::vector dim, std::string const & config, int stage) +Manager::~Manager() { - StartCalc(data_buffer_r, dim, config, 1, stage); + delete rec; } -void Manager::StartCalc(std::vector data_buffer_r, std::vector dim, std::string const & config, int nu_threads, int stage) +void Manager::StartCalc(std::vector data_buffer_r, std::vector dim, std::string const & config) { dim4 af_dims = Utils::Int2Dim4(dim); + int stage = STAGE_PREMIER; Params * params = new Params(config.c_str(), stage, af_dims); int device = params->GetDeviceId(); @@ -106,8 +79,9 @@ void Manager::StartCalc(std::vector data_buffer_r, std::vector dim, coherence_array = null_array; } - Reconstruction reconstruction(data, guess, params, support_array, coherence_array); - rec = &reconstruction; + //Reconstruction reconstruction(data, guess, params, support_array, coherence_array); + //rec = &reconstruction; + rec = new Reconstruction(data, guess, params, support_array, coherence_array); } } if (action == ACTION_NEW_GUESS) @@ -124,8 +98,9 @@ void Manager::StartCalc(std::vector data_buffer_r, std::vector dim, guess = randu(data.dims(), c32, r); } af::array null_array = array(); - Reconstruction reconstruction(data, guess, params, null_array, null_array); - rec = &reconstruction; + //Reconstruction reconstruction(data, guess, params, null_array, null_array); + //rec = &reconstruction; + rec = new Reconstruction(data, guess, params, null_array, null_array); } rec->Init(); @@ -137,7 +112,6 @@ void Manager::StartCalc(std::vector data_buffer_r, std::vector dim, if (params->IsSaveResults()) { - printf("save results\n"); const char * save_dir = params->GetSaveDir(); std::string image_file = Utils::GetFullFilename(save_dir, "image.af"); std::string support_file = Utils::GetFullFilename(save_dir, "support.af"); @@ -160,11 +134,116 @@ void Manager::StartCalc(std::vector data_buffer_r, std::vector dim, printf("iterate function took %g seconds\n", timer::stop()); } +void Manager::StartCalc(std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector dim, const std::string & config) +{ + dim4 af_dims = Utils::Int2Dim4(dim); + int stage = STAGE_CONTINUE; + Params * params = new Params(config.c_str(), stage, af_dims); + + int device = params->GetDeviceId(); + if (device >= 0) + { + setDevice(device); + } + + af::array real_d(af_dims, &data_buffer_r[0]); + //saving abs(data) + af::array data = abs(real_d); + + af::array real_g(af_dims, &guess_buffer_r[0]); + af::array imag_g(af_dims, &guess_buffer_i[0]); + af::array guess = complex(real_g, imag_g); + + af::array null_array = array(); + //Reconstruction reconstruction(data, guess, params, null_array, null_array); + //reconstruction.Init(); + //rec = &reconstruction; + rec = new Reconstruction(data, guess, params, null_array, null_array); + rec->Init(); + timer::start(); + + rec->Iterate(); + + printf("iterate function took %g seconds\n", timer::stop()); +} + +void Manager::StartCalc(std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector support_vector, std::vector dim, const std::string & config) +{ + dim4 af_dims = Utils::Int2Dim4(dim); + int stage = STAGE_CONTINUE; + Params * params = new Params(config.c_str(), stage, af_dims); + + int device = params->GetDeviceId(); + if (device >= 0) + { + setDevice(device); + } + + af::array real_d(af_dims, &data_buffer_r[0]); + //saving abs(data) + af::array data = abs(real_d); + + af::array real_g(af_dims, &guess_buffer_r[0]); + af::array imag_g(af_dims, &guess_buffer_i[0]); + af::array guess = complex(real_g, imag_g); + af::array support_a(af_dims, &support_vector[0]); + + af::array null_array = array(); + //Reconstruction reconstruction(data, guess, params, support_a, null_array); + //reconstruction.Init(); + //rec = &reconstruction; + rec = new Reconstruction(data, guess, params, support_a, null_array); + rec->Init(); + timer::start(); + + rec->Iterate(); + //reconstruction.Iterate(); + + printf("iterate function took %g seconds\n", timer::stop()); +} + +void Manager::StartCalc(std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector support_vector, std::vector dim, std::vector coh_vector, std::vector coh_dim, const std::string & config) +{ + dim4 af_dims = Utils::Int2Dim4(dim); + int stage = STAGE_CONTINUE; + Params * params = new Params(config.c_str(), stage, af_dims); + + int device = params->GetDeviceId(); + if (device >= 0) + { + setDevice(device); + } + + af::array real_d(af_dims, &data_buffer_r[0]); + //saving abs(data) + af::array data = abs(real_d); + + af::array real_g(af_dims, &guess_buffer_r[0]); + af::array imag_g(af_dims, &guess_buffer_i[0]); + af::array guess = complex(real_g, imag_g).copy(); + af::array support_a(af_dims, &support_vector[0]); + af::array coh_a(Utils::Int2Dim4(coh_dim), &coh_vector[0]); + + af::array null_array = array(); + //Reconstruction reconstruction(data, guess, params, support_a, coh_a); + //reconstruction.Init(); + //rec = &reconstruction; + rec = new Reconstruction(data, guess, params, support_a, coh_a); + rec->Init(); + + timer::start(); + + rec->Iterate(); + //reconstruction.Iterate(); + + printf("iterate function took %g seconds\n", timer::stop()); +} + std::vector Manager::GetImageR() { af::array image = rec->GetImage(); - d_type *image_r = real(image).host(); + d_type *image_r = real(image).copy().host(); std::vector v(image_r, image_r + image.elements()); delete [] image_r; @@ -175,7 +254,7 @@ std::vector Manager::GetImageI() { af::array image = rec->GetImage(); - d_type *image_i = imag(image).host(); + d_type *image_i = imag(image).copy().host(); std::vector v(image_i, image_i + image.elements()); delete [] image_i; diff --git a/src_cpp/parameters.cpp b/src_cpp/parameters.cpp index 74ca987..3396d01 100644 --- a/src_cpp/parameters.cpp +++ b/src_cpp/parameters.cpp @@ -31,9 +31,9 @@ std::string data_type; d_type amp_threshold; bool amp_threshold_fill_zeros; -d_type phase_min = 120; -d_type phase_max = 10; -float beta = .9; +// d_type phase_min; +//d_type phase_max; +float beta; // support std::vector support_area; @@ -44,7 +44,7 @@ int support_alg; //partial coherence //PartialCoherence *partial_coherence = NULL; -int pcdi_alg = 0; +int pcdi_alg; std::vector pcdi_roi; std::vector pcdi_triggers; bool pcdi_normalize; @@ -60,22 +60,22 @@ int number_iterations; int twin; -int regularized_amp = REGULARIZED_AMPLITUDE_NONE; +int regularized_amp; const char * save_dir; const char * continue_dir; int action; -int action_stage = 0; +int action_stage; -bool save_results = false; +bool save_results; -bool plot_errors = false; +bool plot_errors; -int gc = -1; +int gc; -int device = -1; +int device; Params::Params(const char* config_file, int stage, dim4 data_dim) @@ -117,6 +117,7 @@ Params::Params(const char* config_file, int stage, dim4 data_dim) printf((std::string("No 'action' parameter in configuration file. running new guess\n")).c_str()); } + action_stage = 0; if (action == ACTION_CONTINUE) { try @@ -136,6 +137,7 @@ Params::Params(const char* config_file, int stage, dim4 data_dim) action_stage = stage; } + save_results = false; try { save_results = cfg.lookup("save_results"); } @@ -144,6 +146,7 @@ Params::Params(const char* config_file, int stage, dim4 data_dim) printf((std::string("No 'save_results' parameter in configuration file. Setting to false.\n")).c_str()); } + plot_errors = false; try { plot_errors = cfg.lookup("plot_errors"); } @@ -179,6 +182,7 @@ Params::Params(const char* config_file, int stage, dim4 data_dim) printf("No 'algorithm_sequence' parameter in configuration file.\n"); } + gc = -1; try { gc = cfg.lookup("gc"); } @@ -187,6 +191,7 @@ Params::Params(const char* config_file, int stage, dim4 data_dim) printf("No 'gc' parameter in configuration file.\n"); } + device = -1; try { device = cfg.lookup("device"); } @@ -322,6 +327,7 @@ Params::Params(const char* config_file, int stage, dim4 data_dim) // } // catch (const SettingNotFoundException &nfex) // { +// phase_min = 120; // printf("No 'phase_min' parameter in configuration file.\n"); // } // @@ -330,6 +336,7 @@ Params::Params(const char* config_file, int stage, dim4 data_dim) // } // catch (const SettingNotFoundException &nfex) // { +// phase_max = 10; // printf("No 'phase_max' parameter in configuration file.\n"); // } @@ -358,7 +365,10 @@ Params::Params(const char* config_file, int stage, dim4 data_dim) { regularized_amp = REGULARIZED_AMPLITUDE_UNIFORM; } - // else it is initialized + else + { + regularized_amp = REGULARIZED_AMPLITUDE_NONE; + } } catch (const SettingNotFoundException &nfex) { @@ -378,6 +388,21 @@ Params::Params(const char* config_file, int stage, dim4 data_dim) } + +Params::~Params() +{ + action_id_map.clear(); + algorithm_id_map.clear(); + alg_switches.clear(); + data_type.clear(); + support_area.clear(); + support_triggers.clear(); + pcdi_roi.clear(); + pcdi_triggers.clear(); + delete save_dir; + delete continue_dir; +} + void Params::BuildAlgorithmMap() { // hardcoded @@ -460,15 +485,15 @@ bool Params::IsAmpThresholdFillZeros() return amp_threshold_fill_zeros; } -d_type Params::GetPhaseMin() -{ - return phase_min; -} +//d_type Params::GetPhaseMin() +//{ +// return phase_min; +//} -d_type Params::GetPhaseMax() -{ - return phase_max; -} +//d_type Params::GetPhaseMax() +//{ +// return phase_max; +//} float Params::GetBeta() { diff --git a/src_cpp/pcdi.cpp b/src_cpp/pcdi.cpp index 2eaaf19..19fda1b 100644 --- a/src_cpp/pcdi.cpp +++ b/src_cpp/pcdi.cpp @@ -31,11 +31,24 @@ PartialCoherence::PartialCoherence(Params *params, af::array coherence_array) normalize = params->GetPcdiNormalize(); iteration_num = params->GetPcdiIterations(); kernel_array = coherence_array; + if (Utils::IsNullArray(coherence_array)) + { + roi_dims = Utils::Int2Dim4(roi); + } + else + { + roi_dims = kernel_array.dims(); + } +} + +PartialCoherence::~PartialCoherence() +{ + roi.clear(); + triggers.clear(); } void PartialCoherence::Init(af::array data) { - roi_dims = Utils::Int2Dim4(roi); dims = data.dims(); af::array data_centered = af::shift(data, dims[0]/2, dims[1]/2, dims[2]/2, dims[3]/2); diff --git a/src_cpp/state.cpp b/src_cpp/state.cpp index 37ec56c..4208eff 100644 --- a/src_cpp/state.cpp +++ b/src_cpp/state.cpp @@ -20,41 +20,58 @@ using namespace af; Params *params; // current iteration -int current_iter = -1; +int current_iter; // number of configured iterations for reconstruction -int total_iter_num = 0; +int total_iter_num; // The vector of errors indexed by iteration std::vector errors; // current algorithm -Algorithm * current_alg = NULL; +Algorithm * current_alg; // current index of index switches vector -int alg_switch_index = 0; +int alg_switch_index; // mapping of algorithm id to an Algorithm object std::map algorithm_map; // a flag indicating whether to update support -bool update_support = false; +bool update_support; // current index in support_triggers vector -int support_triggers_index = 0; +int support_triggers_index; // partial coherence state // a flag indicating whether to update partial coherence -bool run_convolution = false; -bool update_kernel = false; +bool run_convolution; +bool update_kernel; // current index in support_partial_coherence vector -int partial_coherence_triggers_index = 0; +int partial_coherence_triggers_index; -bool averaging = false; +bool averaging; -bool apply_twin = false; +bool apply_twin; State::State(Params* parameters) { params = parameters; + current_iter = -1; + total_iter_num = 0; + current_alg = NULL; + alg_switch_index = 0; + update_support = false; + support_triggers_index = 0; + run_convolution = false; + update_kernel = false; + partial_coherence_triggers_index = 0; + averaging = false; + apply_twin = false; +} + +State::~State() +{ + errors.clear(); + algorithm_map.clear(); } void State::Init() @@ -73,10 +90,6 @@ void State::Init() current_alg = algorithm_map[params->GetAlgSwitches()[0].algorithm_id]; } -State::~State() -{ -} - void State::MapAlgorithmObject(int alg_id) { // TODO consider refactoring if there are many subclasses diff --git a/src_cpp/worker.cpp b/src_cpp/worker.cpp index 6cfeaab..a69fd48 100644 --- a/src_cpp/worker.cpp +++ b/src_cpp/worker.cpp @@ -22,7 +22,7 @@ See LICENSE file. af::array data; // this is abs int num_points; d_type norm_data; -int current_iteration; +int current_iteration; af::array ds_image; int aver_iter; std::vector aver_v; @@ -33,6 +33,10 @@ af::Window * errors_plot; Reconstruction::Reconstruction(af::array image_data, af::array guess, Params* params, af::array support_array, af::array coherence_array) { + num_points = 0; + norm_data = 0; + current_iteration = 0; + aver_iter = 0; data = image_data; ds_image = guess; params = params; @@ -43,9 +47,30 @@ Reconstruction::Reconstruction(af::array image_data, af::array guess, Params* pa { partialCoherence = new PartialCoherence(params, coherence_array); } + else + { + partialCoherence = NULL; + } errors_plot = new Window(512, 512, "errors"); } +Reconstruction::~Reconstruction() +{ + delete params; + delete state; + if (partialCoherence != NULL) + { + delete partialCoherence; + } + if (errors_plot != NULL) + { + delete errors_plot; + } + aver_v.clear(); + support_vector.clear(); + coherence_vector.clear(); +} + void Reconstruction::Init() { // initialize other components @@ -226,7 +251,7 @@ void Reconstruction::VectorizeSupport() void Reconstruction::VectorizeCoherence() { // get the partial coherence as double, so it will work for float and double data types - af::array a = partialCoherence->GetKernelArray(); + af::array a = partialCoherence->GetKernelArray().copy(); d_type *coherence_v = a.host(); std::vector v(coherence_v, coherence_v + a.elements()); coherence_vector = v; diff --git a/src_py/controller/fast_module.py b/src_py/controller/fast_module.py index 34f877a..9c39551 100755 --- a/src_py/controller/fast_module.py +++ b/src_py/controller/fast_module.py @@ -34,46 +34,42 @@ 'reconstruction'] -def fast_module_reconstruction(proc, data, conf, image=None, support=None, coherence=None): +def fast_module_reconstruction(proc, conf, data, coh_dims, image=None, support=None, coherence=None): """ This function calls a bridge method corresponding to the requested processor type. The bridge method is an access to the CFM (Calc Fast Module). When reconstruction is completed the function retrieves results from the CFM. The data received is max centered and the array is ordered "C". The CFM requires data zero-frequency component at the center of the spectrum and "F" array order. Thus the data is modified at the beginning. - + Parameters ---------- proc : str a string indicating the processor type - + data : array a 3D np array containing pre-processed experiment data - + conf : dict configuration map - + Returns ------- image_r : array a 3D np real part array containing reconstructed image - + image_i : array a 3D np imaginary part array containing reconstructed image - + er : array a vector containing mean error for each iteration """ if proc == 'cpu': bridge = bridge_cpu - elif proc == 'opencl': + elif proc == 'opencl': bridge = bridge_opencl # elif proc == 'cuda': # bridge = bridge_cuda - - stage = 0 - if image is not None: - stage = 1 - + print 'entered fm coh_dims', coh_dims # shift data data=sf.fftshift(data) data = np.swapaxes(data,1,2) @@ -83,28 +79,59 @@ def fast_module_reconstruction(proc, data, conf, image=None, support=None, coher fast_module = bridge.PyBridge() data_l = data.flatten().tolist() - fast_module.start_calc(data_l, dims1, conf, stage) + if image is None: + fast_module.start_calc(data_l, dims1, conf) + elif support is None: + # pass image + image = np.swapaxes(image, 1, 0) + image = np.swapaxes(image, 2, 0) + image = image.flatten() + fast_module.start_calc_with_guess(data_l, image.real.tolist(), image.imag.tolist(), dims1, conf) + elif coherence is None: + # pass image and support + image = np.swapaxes(image, 1, 0) + image = np.swapaxes(image, 2, 0) + image = image.flatten() + support = np.swapaxes(support, 1, 0) + support = np.swapaxes(support, 2, 0) + support = support.flatten() + fast_module.start_calc_with_guess_support(data_l, image.real.tolist(), image.imag.tolist(), support.tolist(), dims1, conf) + else: + # pass image and support and coherence + image = np.swapaxes(image, 1, 0) + image = np.swapaxes(image, 2, 0) + image = image.flatten() + support = np.swapaxes(support, 1, 0) + support = np.swapaxes(support, 2, 0) + support = support.flatten() + coh_dims1 = (coh_dims[2], coh_dims[1], coh_dims[0]) + coherence = np.swapaxes(coherence, 1, 0) + coherence = np.swapaxes(coherence, 2, 0) + coherence = coherence.flatten() + + fast_module.start_calc_with_guess_support_coh(data_l, image.real.tolist(), image.imag.tolist(), support.tolist(), dims1, coherence.tolist(), coh_dims1, conf) + er = fast_module.get_errors() - image_r = np.asarray(fast_module.get_image_r()) - image_i = np.asarray(fast_module.get_image_i()) + image_r = np.asarray(fast_module.get_image_r()).copy() + image_i = np.asarray(fast_module.get_image_i()).copy() image = image_r + 1j*image_i # normalize image mx = max(np.absolute(image).ravel().tolist()) image = image/mx - support = np.asarray(fast_module.get_support()) - coherence = np.asarray(fast_module.get_coherence()) - image = np.reshape(image, dims) - support = np.reshape(support, dims) + support = np.asarray(fast_module.get_support()).copy() + coherence = np.asarray(fast_module.get_coherence()).copy() - image = np.swapaxes(image, 2,0) - support = np.swapaxes(support, 2,0) + image = np.reshape(image, dims) + image = np.swapaxes(image, 2, 0) image = np.swapaxes(image, 1, 0) + + support = np.reshape(support, dims) + support = np.swapaxes(support, 2, 0) support = np.swapaxes(support, 1, 0) if coherence.shape[0] > 1: - coh_size = int(round(coherence.shape[0] ** (1. / 3.))) - coh_dims = (coh_size, coh_size, coh_size,) + print 'coh dims', coh_dims coherence = np.reshape(coherence, coh_dims) coherence = np.swapaxes(coherence, 2, 0) coherence = np.swapaxes(coherence, 1, 0) @@ -123,46 +150,43 @@ def write_simple(arr, filename): write_data(id, filename) -def reconstruction(proc, conf, data, image, support, coherence): +def reconstruction(proc, conf, data, coh_dims, image, support, coherence): """ This function is called by the user. It checks whether the data is valid and configuration file exists. It calls function to pre-process the data, and then to run reconstruction. The reconstruction results, image and errors are returned. - + Parameters ---------- proc : str a string indicating the processor type - + filename : str name of a file containing experiment data - + conf : str configuration file name - + Returns ------- image : array a 3D np array containing reconstructed image - + er : array a vector containing mean error for each iteration """ - if image is None: - image, support, coherence, errors = fast_module_reconstruction(proc, data, conf) + image, support, coherence, errors = fast_module_reconstruction(proc, conf, data, coh_dims) else: - image, support, coherence, errors = fast_module_reconstruction(proc, data, conf, image, support, coherence) - + image, support, coherence, errors = fast_module_reconstruction(proc, conf, data, coh_dims, image, support, coherence) cx.save_CX(conf, image, support) - errors.pop(0) - plt.plot(errors) - plt.ylabel('errors') - plt.show() + # errors.pop(0) + # plt.plot(errors) + # plt.ylabel('errors') + # plt.show() - print 'image, support shape', image.shape, support.shape return image, support, coherence, errors diff --git a/src_py/controller/generation.py b/src_py/controller/generation.py index 082a4b1..78f6acb 100644 --- a/src_py/controller/generation.py +++ b/src_py/controller/generation.py @@ -31,8 +31,7 @@ class Generation: """ This class encapsulates generation. """ - def __init__(self, config_map, data): - self.data = data + def __init__(self, config_map): try: self.generations = config_map.generations except AttributeError: @@ -95,17 +94,14 @@ def __init__(self, config_map, data): self.low_resolution_alg = 'GAUSS' - def get_data(self, generation): - if self.low_resolution_generations == 0: - return self.data + def get_data(self, generation, data): + gmask = self.get_gmask(generation, data.shape) + return data * gmask - gmask = self.get_gmask(generation) - return self.data * gmask - - def get_gmask(self, generation): + def get_gmask(self, generation, shape): if self.low_resolution_alg == 'GAUSS': if self.sigmas[generation] < 1.0: - ut.gaussian(self.data.shape, self.sigmas[generation]) + ut.gaussian(shape, self.sigmas[generation]) else: - return np.ones(self.data.shape) + return np.ones(shape) diff --git a/src_py/controller/reconstruction.py b/src_py/controller/reconstruction.py index cedac9c..dfeb517 100644 --- a/src_py/controller/reconstruction.py +++ b/src_py/controller/reconstruction.py @@ -121,6 +121,19 @@ def prepare_data(config_map, data): return data +def save_prepared_data(data, config_map): + try: + save_dir = config_map.save_dir + if not save_dir.endswith('/'): + save_dir = save_dir + '/' + if not os.path.exists(save_dir): + os.makedirs(save_dir) + except AttributeError: + print ("save_dir not configured") + + np.save(save_dir + '/data.npy', data) + + def reconstruction(proc, filename, conf): """ This function is called by the user. It checks whether the data is valid and configuration file exists. @@ -168,36 +181,36 @@ def reconstruction(proc, filename, conf): except AttributeError: save_results = False - if action == 'prep_only' or save_results: - try: - save_dir = config_map.save_dir - if not save_dir.endswith('/'): - save_dir = save_dir + '/' - if not os.path.exists(save_dir): - os.makedirs(save_dir) - except AttributeError: - print ("save_dir not configured") - - np.save(save_dir + '/data.npy', data) - - if action != 'prep_only': - try: - generations = config_map.generations - except: - generations = 1 - try: - low_resolution_generations = config_map.low_resolution_generations - except: - low_resolution_generations = 0 - - if generations == 1 and low_resolution_generations == 0: - calc.reconstruction(proc, conf, data, None, None, None) - else: - gen_obj = Generation(config_map, data) - image, support, coherence, errors = None, None, None, None - for g in range(generations): - data = gen_obj.get_data(g) - image, support, coherence, errors = calc.reconstruction(proc, conf, data, image, support, coherence) + if action == 'prep_only': + save_prepared_data(data, config_map) + return + + if save_results: + save_prepared_data(data, config_map) + + try: + generations = config_map.generations + except: + generations = 1 + try: + low_resolution_generations = config_map.low_resolution_generations + except: + low_resolution_generations = 0 + + try: + coh_dims = tuple(config_map.partial_coherence_roi) + except: + coh_dims = None + + print coh_dims + + image, support, coherence = None, None, None + gen_obj = Generation(config_map) + for g in range(low_resolution_generations): + gen_data = gen_obj.get_data(g, data) + image, support, coherence, errors = calc.reconstruction(proc, conf, gen_data, coh_dims, image, support, coherence) + for g in range(low_resolution_generations, generations): + image, support, coherence, errors = calc.reconstruction(proc, conf, data, coh_dims, image, support, coherence) #reconstruction('opencl', '/home/phoebus/BFROSIK/CDI/S149/Staff14-3_S0149.tif', '/local/bfrosik/cdi/config.test') diff --git a/src_py/cyth/bridge_cpu.pyx b/src_py/cyth/bridge_cpu.pyx index 56b0753..16845e0 100644 --- a/src_py/cyth/bridge_cpu.pyx +++ b/src_py/cyth/bridge_cpu.pyx @@ -9,7 +9,7 @@ # distutils: include_dirs = ['include', 'AF_DIR/include', 'LC_DIR/lib',] # distutils: sources = ['src_cpp/algorithm.cpp', 'src_cpp/bridge.cpp', 'src_cpp/manager.cpp', 'src_cpp/parameters.cpp', 'src_cpp/pcdi.cpp', 'src_cpp/state.cpp', 'src_cpp/support.cpp', 'src_cpp/util.cpp', 'src_cpp/worker.cpp'] # distutils: libraries = ['afcpu', 'config++',] -# distutils: library_dirs = ['AF_DIR/lib', 'LC_DIR/lib/.libs', ] +# distutils: library_dirs = ['AF_DIR/lib', 'LC_DIR/lib/.libs',] from libcpp.vector cimport vector from libcpp.string cimport string @@ -18,14 +18,16 @@ from libcpp.string cimport string cdef extern from "../include/bridge.hpp": cdef cppclass Bridge: Bridge() except + - void StartCalcWithGuess(vector[float], vector[float], vector[float], vector[int], string, int) - void StartCalc(vector[float], vector[int], string, int) - void StartCalcMultiple(vector[float], vector[int], string, int, int) + void StartCalcWithGuess(vector[float], vector[float], vector[float], vector[int], string) + void StartCalcWithGuessSupport(vector[float], vector[float], vector[float], vector[int], vector[int], string) + void StartCalcWithGuessSupportCoh(vector[float], vector[float], vector[float], vector[int], vector[int], vector[float], vector[int], string) + void StartCalc(vector[float], vector[int], string) vector[double] GetImageR() vector[double] GetImageI() vector[double] GetErrors() vector[float] GetSupportV() vector[double] GetCoherenceV() + void Cleanup() cdef class PyBridge: @@ -34,12 +36,14 @@ cdef class PyBridge: self.thisptr = new Bridge() def __dealloc__(self): del self.thisptr - def start_calc_with_guess(self, data_r, guess_r, guess_i, dims, config, stage): - self.thisptr.StartCalcWithGuess(data_r, guess_r, guess_i, dims, config.encode(), stage) - def start_calc(self, data_r, dims, config, stage): - self.thisptr.StartCalc(data_r, dims, config.encode(), stage) - def start_calc_multiple(self, data_r, dims, config, no_threads, stage): - self.thisptr.StartCalcMultiple(data_r, dims, config, no_threads, stage) + def start_calc_with_guess(self, data_r, guess_r, guess_i, dims, config): + self.thisptr.StartCalcWithGuess(data_r, guess_r, guess_i, dims, config.encode()) + def start_calc_with_guess_support(self, data_r, guess_r, guess_i, support, dims, config): + self.thisptr.StartCalcWithGuessSupport(data_r, guess_r, guess_i, support, dims, config.encode()) + def start_calc_with_guess_support_coh(self, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): + self.thisptr.StartCalcWithGuessSupportCoh(data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) + def start_calc(self, data_r, dims, config): + self.thisptr.StartCalc(data_r, dims, config.encode()) def get_image_r(self): return self.thisptr.GetImageR() def get_image_i(self): @@ -50,5 +54,7 @@ cdef class PyBridge: return self.thisptr.GetSupportV() def get_coherence(self): return self.thisptr.GetCoherenceV() + def cleanup(self): + self.thisptr.Cleanup() diff --git a/src_py/cyth/bridge_cuda.pyx b/src_py/cyth/bridge_cuda.pyx index 70744cb..1b990fe 100755 --- a/src_py/cyth/bridge_cuda.pyx +++ b/src_py/cyth/bridge_cuda.pyx @@ -9,7 +9,7 @@ # distutils: include_dirs = ['include', 'AF_DIR/include', 'LC_DIR/lib',] # distutils: sources = ['src_cpp/algorithm.cpp', 'src_cpp/bridge.cpp', 'src_cpp/manager.cpp', 'src_cpp/parameters.cpp', 'src_cpp/pcdi.cpp', 'src_cpp/state.cpp', 'src_cpp/support.cpp', 'src_cpp/util.cpp', 'src_cpp/worker.cpp'] # distutils: libraries = ['afcpu', 'config++',] -# distutils: library_dirs = ['AF_DIR/lib', 'LC_DIR/lib/.libs', ] +# distutils: library_dirs = ['AF_DIR/lib', 'LC_DIR/lib/.libs',] from libcpp.vector cimport vector from libcpp.string cimport string @@ -17,14 +17,16 @@ from libcpp.string cimport string cdef extern from "../include/bridge.hpp": cdef cppclass Bridge: Bridge() except + - void StartCalcWithGuess(vector[float], vector[float], vector[float], vector[int], string, int) - void StartCalc(vector[float], vector[int], string, int) - void StartCalcMultiple(vector[float], vector[int], string, int, int) + void StartCalcWithGuess(vector[float], vector[float], vector[float], vector[int], string) + void StartCalcWithGuessSupport(vector[float], vector[float], vector[float], vector[int], vector[int], string) + void StartCalcWithGuessSupportCoh(vector[float], vector[float], vector[float], vector[int], vector[int], vector[float], vector[int], string) + void StartCalc(vector[float], vector[int], string) vector[double] GetImageR() vector[double] GetImageI() vector[double] GetErrors() vector[float] GetSupportV() vector[double] GetCoherenceV() + void Cleanup() cdef class PyBridge: @@ -33,12 +35,14 @@ cdef class PyBridge: self.thisptr = new Bridge() def __dealloc__(self): del self.thisptr - def start_calc_with_guess(self, data_r, guess_r, guess_i, dims, config, stage): - self.thisptr.StartCalcWithGuess(data_r, guess_r, guess_i, dims, config.encode(), stage) - def start_calc(self, data_r, dims, config, stage): - self.thisptr.StartCalc(data_r, dims, config.encode(), stage) - def start_calc_multiple(self, data_r, dims, config, no_threads, stage): - self.thisptr.StartCalcMultiple(data_r, dims, config, no_threads, stage) + def start_calc_with_guess(self, data_r, guess_r, guess_i, dims, config): + self.thisptr.StartCalcWithGuess(data_r, guess_r, guess_i, dims, config.encode()) + def start_calc_with_guess_support(self, data_r, guess_r, guess_i, support, dims, config): + self.thisptr.StartCalcWithGuessSupport(data_r, guess_r, guess_i, support, dims, config.encode()) + def start_calc_with_guess_support_coh(self, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): + self.thisptr.StartCalcWithGuessSupportCoh(data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) + def start_calc(self, data_r, dims, config): + self.thisptr.StartCalc(data_r, dims, config.encode()) def get_image_r(self): return self.thisptr.GetImageR() def get_image_i(self): @@ -49,4 +53,6 @@ cdef class PyBridge: return self.thisptr.GetSupportV() def get_coherence(self): return self.thisptr.GetCoherenceV() + def cleanup(self): + self.thisptr.Cleanup() diff --git a/src_py/cyth/bridge_opencl.pyx b/src_py/cyth/bridge_opencl.pyx index 70744cb..1b990fe 100755 --- a/src_py/cyth/bridge_opencl.pyx +++ b/src_py/cyth/bridge_opencl.pyx @@ -9,7 +9,7 @@ # distutils: include_dirs = ['include', 'AF_DIR/include', 'LC_DIR/lib',] # distutils: sources = ['src_cpp/algorithm.cpp', 'src_cpp/bridge.cpp', 'src_cpp/manager.cpp', 'src_cpp/parameters.cpp', 'src_cpp/pcdi.cpp', 'src_cpp/state.cpp', 'src_cpp/support.cpp', 'src_cpp/util.cpp', 'src_cpp/worker.cpp'] # distutils: libraries = ['afcpu', 'config++',] -# distutils: library_dirs = ['AF_DIR/lib', 'LC_DIR/lib/.libs', ] +# distutils: library_dirs = ['AF_DIR/lib', 'LC_DIR/lib/.libs',] from libcpp.vector cimport vector from libcpp.string cimport string @@ -17,14 +17,16 @@ from libcpp.string cimport string cdef extern from "../include/bridge.hpp": cdef cppclass Bridge: Bridge() except + - void StartCalcWithGuess(vector[float], vector[float], vector[float], vector[int], string, int) - void StartCalc(vector[float], vector[int], string, int) - void StartCalcMultiple(vector[float], vector[int], string, int, int) + void StartCalcWithGuess(vector[float], vector[float], vector[float], vector[int], string) + void StartCalcWithGuessSupport(vector[float], vector[float], vector[float], vector[int], vector[int], string) + void StartCalcWithGuessSupportCoh(vector[float], vector[float], vector[float], vector[int], vector[int], vector[float], vector[int], string) + void StartCalc(vector[float], vector[int], string) vector[double] GetImageR() vector[double] GetImageI() vector[double] GetErrors() vector[float] GetSupportV() vector[double] GetCoherenceV() + void Cleanup() cdef class PyBridge: @@ -33,12 +35,14 @@ cdef class PyBridge: self.thisptr = new Bridge() def __dealloc__(self): del self.thisptr - def start_calc_with_guess(self, data_r, guess_r, guess_i, dims, config, stage): - self.thisptr.StartCalcWithGuess(data_r, guess_r, guess_i, dims, config.encode(), stage) - def start_calc(self, data_r, dims, config, stage): - self.thisptr.StartCalc(data_r, dims, config.encode(), stage) - def start_calc_multiple(self, data_r, dims, config, no_threads, stage): - self.thisptr.StartCalcMultiple(data_r, dims, config, no_threads, stage) + def start_calc_with_guess(self, data_r, guess_r, guess_i, dims, config): + self.thisptr.StartCalcWithGuess(data_r, guess_r, guess_i, dims, config.encode()) + def start_calc_with_guess_support(self, data_r, guess_r, guess_i, support, dims, config): + self.thisptr.StartCalcWithGuessSupport(data_r, guess_r, guess_i, support, dims, config.encode()) + def start_calc_with_guess_support_coh(self, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): + self.thisptr.StartCalcWithGuessSupportCoh(data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) + def start_calc(self, data_r, dims, config): + self.thisptr.StartCalc(data_r, dims, config.encode()) def get_image_r(self): return self.thisptr.GetImageR() def get_image_i(self): @@ -49,4 +53,6 @@ cdef class PyBridge: return self.thisptr.GetSupportV() def get_coherence(self): return self.thisptr.GetCoherenceV() + def cleanup(self): + self.thisptr.Cleanup() diff --git a/src_py/utilities/CXDVizNX.py b/src_py/utilities/CXDVizNX.py index 32d70dc..cb1c0f1 100644 --- a/src_py/utilities/CXDVizNX.py +++ b/src_py/utilities/CXDVizNX.py @@ -336,6 +336,21 @@ def get_crop(params, shape): crop[i] = int(crop[i]*shape[i]) return crop +# def reshape(image, support, shape): +# # normalize image +# mx = max(np.absolute(image).ravel().tolist()) +# image = image / mx +# image = np.reshape(image, shape) +# +# support = np.reshape(support, shape) +# +# image = np.swapaxes(image, 2, 0) +# image = np.swapaxes(image, 1, 0) +# support = np.swapaxes(support, 2, 0) +# support = np.swapaxes(support, 1, 0) +# +# return image, support +# def save_CX(conf, image, support): image, support = center(image, support) From b2da69246449a77dae3f56726f5f4ce8f4fe60a3 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Wed, 17 Jan 2018 14:56:52 -0600 Subject: [PATCH 057/336] updated dictionaries --- config.test | 11 ++++++----- include/parameters.hpp | 7 ++++--- src_cpp/manager.cpp | 17 +++++++++-------- src_cpp/parameters.cpp | 17 +++++++++-------- src_cpp/pcdi.cpp | 1 + src_cpp/support.cpp | 2 -- src_cpp/worker.cpp | 3 +++ src_py/cyth/bridge_cuda.pyx | 2 +- src_py/cyth/bridge_opencl.pyx | 2 +- 9 files changed, 34 insertions(+), 28 deletions(-) diff --git a/config.test b/config.test index 87cebe2..6833074 100644 --- a/config.test +++ b/config.test @@ -2,7 +2,7 @@ save_dir = "results_dir" // directory where vtk files are saved, and the data and raw results if configured -action = "continue" +action = "new_guess" // action defines what is processed by the program: // if "prep_only" the program will only do the data preparation and save in the save_dir // if "new_guess" the program will do the data prepation and will start reconstruction @@ -21,9 +21,9 @@ save_results = true // generations -generations = 3 // number of generations +generations = 1 // number of generations -low_resolution_generations = 1 +low_resolution_generations = 0 // number of generations low resolution is applied to, starting from first gen low_resolution_sigma_alg = "SIG_SPACE_LINEAR" @@ -79,7 +79,8 @@ adjust_dimensions = [0, 3, -5] // RECONSTRUCTION PARAMETERS USED BY FAST MODULE -device = 0 // ID of the target device +device = 1 + // ID of the target device gc = 5; // ArrayFire memory management is not reliable, the way around is to call garbage @@ -89,7 +90,7 @@ gc = 5; plot_errors = true // indicates whether to plot errors during calculations. Plotting will slow down. //algorithm_sequence = ((3, ("ER",2), ("HIO", 2), ("ER", 2)), (2, ("ER",3), ("HIO",3))) -//algorithm_sequence = ((1, ("ER",6))) +//algorithm_sequence = ((1, ("ER",1))) algorithm_sequence = ((1, ("ER",19), ("HIO", 10)), (1,("ER",10))) //algorithm_sequence = ((1, ("ER",19), ("HIO", 4)), (1,("ER",4))) //algorithm_sequence = ((1, ("ER",19), ("HIO", 10)), (1,("ER",10)), (1, ("ER",10), ("HIO", 20)), (1,("ER",10))) diff --git a/include/parameters.hpp b/include/parameters.hpp index 45091e7..5d80461 100644 --- a/include/parameters.hpp +++ b/include/parameters.hpp @@ -7,11 +7,12 @@ See LICENSE file. #ifndef parameters_hpp #define parameters_hpp +#include "string" #include "common.h" #include "vector" -#include "arrayfire.h" +//#include "arrayfire.h" -using namespace af; +//using namespace af; struct Trigger_setting { @@ -38,7 +39,7 @@ class Params public: // Constructor. Takes in configuration file, parses the configuration and sets the parameters accordingly. - Params(const char* config_file, int stage, dim4 data_dim); + Params(const char* config_file, int stage, std::vector data_dim); ~Params(); // returns data type (float/double). Used by python code diff --git a/src_cpp/manager.cpp b/src_cpp/manager.cpp index 00777f1..240e227 100644 --- a/src_cpp/manager.cpp +++ b/src_cpp/manager.cpp @@ -25,16 +25,17 @@ Manager::~Manager() void Manager::StartCalc(std::vector data_buffer_r, std::vector dim, std::string const & config) { - dim4 af_dims = Utils::Int2Dim4(dim); int stage = STAGE_PREMIER; - Params * params = new Params(config.c_str(), stage, af_dims); + Params * params = new Params(config.c_str(), stage, dim); int device = params->GetDeviceId(); if (device >= 0) { setDevice(device); + info(); } + dim4 af_dims = Utils::Int2Dim4(dim); af::array real_d(af_dims, &data_buffer_r[0]); //saving abs(data) af::array data = abs(real_d); @@ -136,9 +137,8 @@ void Manager::StartCalc(std::vector data_buffer_r, std::vector dim, void Manager::StartCalc(std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector dim, const std::string & config) { - dim4 af_dims = Utils::Int2Dim4(dim); int stage = STAGE_CONTINUE; - Params * params = new Params(config.c_str(), stage, af_dims); + Params * params = new Params(config.c_str(), stage, dim); int device = params->GetDeviceId(); if (device >= 0) @@ -146,6 +146,7 @@ void Manager::StartCalc(std::vector data_buffer_r, std::vector g setDevice(device); } + dim4 af_dims = Utils::Int2Dim4(dim); af::array real_d(af_dims, &data_buffer_r[0]); //saving abs(data) af::array data = abs(real_d); @@ -169,9 +170,8 @@ void Manager::StartCalc(std::vector data_buffer_r, std::vector g void Manager::StartCalc(std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector support_vector, std::vector dim, const std::string & config) { - dim4 af_dims = Utils::Int2Dim4(dim); int stage = STAGE_CONTINUE; - Params * params = new Params(config.c_str(), stage, af_dims); + Params * params = new Params(config.c_str(), stage, dim); int device = params->GetDeviceId(); if (device >= 0) @@ -179,6 +179,7 @@ void Manager::StartCalc(std::vector data_buffer_r, std::vector g setDevice(device); } + dim4 af_dims = Utils::Int2Dim4(dim); af::array real_d(af_dims, &data_buffer_r[0]); //saving abs(data) af::array data = abs(real_d); @@ -204,9 +205,8 @@ void Manager::StartCalc(std::vector data_buffer_r, std::vector g void Manager::StartCalc(std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector support_vector, std::vector dim, std::vector coh_vector, std::vector coh_dim, const std::string & config) { - dim4 af_dims = Utils::Int2Dim4(dim); int stage = STAGE_CONTINUE; - Params * params = new Params(config.c_str(), stage, af_dims); + Params * params = new Params(config.c_str(), stage, dim); int device = params->GetDeviceId(); if (device >= 0) @@ -214,6 +214,7 @@ void Manager::StartCalc(std::vector data_buffer_r, std::vector g setDevice(device); } + dim4 af_dims = Utils::Int2Dim4(dim); af::array real_d(af_dims, &data_buffer_r[0]); //saving abs(data) af::array data = abs(real_d); diff --git a/src_cpp/parameters.cpp b/src_cpp/parameters.cpp index 3396d01..4ab3ed4 100644 --- a/src_cpp/parameters.cpp +++ b/src_cpp/parameters.cpp @@ -4,8 +4,8 @@ See LICENSE file. ***/ // Created by Barbara Frosik -#include "arrayfire.h" -#include + +#include "string.h" #include "iostream" #include "libconfig.h++" #include "map" @@ -14,7 +14,7 @@ See LICENSE file. #include "common.h" #include "util.hpp" -using namespace af; + using namespace libconfig; Config cfg; @@ -78,7 +78,7 @@ int gc; int device; -Params::Params(const char* config_file, int stage, dim4 data_dim) +Params::Params(const char* config_file, int stage, std::vector data_dim) { BuildAlgorithmMap(); BuildActionMap(); @@ -437,16 +437,17 @@ std::vector Params::ParseTriggers(std::string trigger_name, int action_stag int start = tmp[i][0]; } int step = tmp[i][1]; + int end_step; if (tmp[i].getLength() > 2) { - end = tmp[i][2]; - end = std::min(end, number_iterations); + end_step = tmp[i][2]; + end_step = std::min(end_step, number_iterations); } else { - end = number_iterations; + end_step = number_iterations; } - triggers.push_back(Trigger_setting(start, step, end)); + triggers.push_back(Trigger_setting(start, step, end_step)); } } catch ( const SettingNotFoundException &nfex) diff --git a/src_cpp/pcdi.cpp b/src_cpp/pcdi.cpp index 19fda1b..a7f7a4f 100644 --- a/src_cpp/pcdi.cpp +++ b/src_cpp/pcdi.cpp @@ -192,3 +192,4 @@ af::array PartialCoherence::GetKernelArray() { return kernel_array; } + diff --git a/src_cpp/support.cpp b/src_cpp/support.cpp index 9a69f67..385f891 100644 --- a/src_cpp/support.cpp +++ b/src_cpp/support.cpp @@ -97,5 +97,3 @@ af::array Support::GaussConvFft(af::array ds_image_abs) return convag; } - - diff --git a/src_cpp/worker.cpp b/src_cpp/worker.cpp index a69fd48..f5a1ed9 100644 --- a/src_cpp/worker.cpp +++ b/src_cpp/worker.cpp @@ -106,7 +106,9 @@ void Reconstruction::Iterate() current_iteration = state->GetCurrentIteration(); if (params->GetGC() && (current_iteration+1) % params->GetGC() == 0) + { af::deviceGC(); + } Algorithm * alg = state->GetCurrentAlg(); alg->RunAlgorithm(this); @@ -315,3 +317,4 @@ std::vector Reconstruction::GetCoherenceVectorI() return coherence_vector; } + diff --git a/src_py/cyth/bridge_cuda.pyx b/src_py/cyth/bridge_cuda.pyx index 1b990fe..ff6bf27 100755 --- a/src_py/cyth/bridge_cuda.pyx +++ b/src_py/cyth/bridge_cuda.pyx @@ -8,7 +8,7 @@ # distutils: language = c++ # distutils: include_dirs = ['include', 'AF_DIR/include', 'LC_DIR/lib',] # distutils: sources = ['src_cpp/algorithm.cpp', 'src_cpp/bridge.cpp', 'src_cpp/manager.cpp', 'src_cpp/parameters.cpp', 'src_cpp/pcdi.cpp', 'src_cpp/state.cpp', 'src_cpp/support.cpp', 'src_cpp/util.cpp', 'src_cpp/worker.cpp'] -# distutils: libraries = ['afcpu', 'config++',] +# distutils: libraries = ['afcuda', 'config++',] # distutils: library_dirs = ['AF_DIR/lib', 'LC_DIR/lib/.libs',] from libcpp.vector cimport vector diff --git a/src_py/cyth/bridge_opencl.pyx b/src_py/cyth/bridge_opencl.pyx index 1b990fe..b324246 100755 --- a/src_py/cyth/bridge_opencl.pyx +++ b/src_py/cyth/bridge_opencl.pyx @@ -8,7 +8,7 @@ # distutils: language = c++ # distutils: include_dirs = ['include', 'AF_DIR/include', 'LC_DIR/lib',] # distutils: sources = ['src_cpp/algorithm.cpp', 'src_cpp/bridge.cpp', 'src_cpp/manager.cpp', 'src_cpp/parameters.cpp', 'src_cpp/pcdi.cpp', 'src_cpp/state.cpp', 'src_cpp/support.cpp', 'src_cpp/util.cpp', 'src_cpp/worker.cpp'] -# distutils: libraries = ['afcpu', 'config++',] +# distutils: libraries = ['afopencl', 'config++',] # distutils: library_dirs = ['AF_DIR/lib', 'LC_DIR/lib/.libs',] from libcpp.vector cimport vector From 64516cd9fafa4e1ec32f66375c10db8229a068f1 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Tue, 23 Jan 2018 15:35:07 -0600 Subject: [PATCH 058/336] added iteration based low resolution feature --- config.test | 24 ++++++--- include/parameters.hpp | 7 ++- include/resolution.hpp | 35 +++++++++++++ include/state.hpp | 3 ++ include/support.hpp | 3 +- include/util.hpp | 1 + include/worker.hpp | 3 ++ src_cpp/parameters.cpp | 90 ++++++++++++++++++++++++++++++-- src_cpp/resolution.cpp | 42 +++++++++++++++ src_cpp/state.cpp | 23 ++++++++ src_cpp/support.cpp | 5 -- src_cpp/util.cpp | 10 ++++ src_cpp/worker.cpp | 41 +++++++++++---- src_py/controller/fast_module.py | 8 +-- src_py/cyth/bridge_cpu.pyx | 2 +- src_py/cyth/bridge_cuda.pyx | 2 +- src_py/cyth/bridge_opencl.pyx | 2 +- 17 files changed, 266 insertions(+), 35 deletions(-) create mode 100644 include/resolution.hpp create mode 100644 src_cpp/resolution.cpp diff --git a/config.test b/config.test index 6833074..98742c2 100644 --- a/config.test +++ b/config.test @@ -36,7 +36,9 @@ low_resolution_sigma_alg = "SIG_SPACE_LINEAR" // SIG_ASSIGNED - sigmas will be read from low_resolution_sigmas low_resolution_sigmas = [1.0] - // list of sigmas that will be used by subsequent generations + // list of sigmas that will be used by subsequent generations if the + // low_resolution_sigma_alg is set to SIG_ASSIGNED + // the length must be equal low_resolution_generations low_resolution_sigma_min = 0.1 // initial sigma @@ -79,7 +81,7 @@ adjust_dimensions = [0, 3, -5] // RECONSTRUCTION PARAMETERS USED BY FAST MODULE -device = 1 +device = 0 // ID of the target device gc = 5; @@ -103,7 +105,6 @@ twin = 2; // twin defines at which iteration to cut half of the array(i.e. multiply by 0s), // it is done in ER/HIO. If don't want to apply twin, set it negative. - //amp_threshold_fill_zeros = true; //phase_min = -2.0; //phase_max = 2.0; @@ -111,13 +112,13 @@ beta = .9; // support //support_triggers = ((5, 5, 300), (1, 2)); -support_triggers = ((4, 5, 300)); +support_triggers = ((5, 4, 300)); //support_triggers = ((1, 5, 300)); // trigger contains starting iteration, step, and ending iteration (if missing, run // to the end). support_type = "GAUSS"; support_threshold = 0.1; -support_sigma = 1; +support_sigma = 1.0; support_area = [.5,.5,.5]; // initial support area. If the values are fractional, the support area will be calculated // by multiplying by the data array dimensions. The support will be set to 1s to this @@ -126,8 +127,7 @@ support_area = [.5,.5,.5]; // partial coherence partial_coherence_type = "LUCY"; // if type is not defined, partial coherence is not applied -partial_coherence_triggers = ((14, 15)); -//partial_coherence_triggers = ((1, 15)); +partial_coherence_triggers = ((15, 14)); // trigger contains starting iteration, step, and ending iteration (if missing, run // to the end). partial_coherence_iteration_num = 20; @@ -136,6 +136,16 @@ partial_coherence_roi = [32,32,32]; // coherence area. If the values are fractional, the coherence area will be calculated // by multiplying by the data array dimensions. +iter_low_res_sigma_min = 0.0 + // used when applying low resolution data mask while iterating. The mask is + // gauss with sigma from sigma max to sigma min. + // if iter_low_res_sigma_min is 0 or not defined, the value is assigned to support_sigma +iter_low_res_sigma_max = 3.0 + // max sigma, if not defined, default to 3 +update_resolution_triggers = (1, 20) + // the data is being modified with calculated mask starting with first iteration. + // the trigger defines step and last iteration for which it is applied + regularized_amp = "GAUSS"; avg_iterations = 15; diff --git a/include/parameters.hpp b/include/parameters.hpp index 5d80461..ad20181 100644 --- a/include/parameters.hpp +++ b/include/parameters.hpp @@ -50,7 +50,7 @@ class Params std::vector GetSupportArea(); float GetSupportThreshold(); - int GetSupportSigma(); + float GetSupportSigma(); std::vector GetSupportTriggers(); int GetSupportAlg(); @@ -60,6 +60,11 @@ class Params bool GetPcdiNormalize(); int GetPcdiIterations(); + float GetIterLowResSigmaMin(); + float GetIterLowResSigmaMax(); + std::vector GetUpdateResolutionTriggers(); + int GetLowResolutionIter(); + // Returns amplitude threshold. Used by ER and HIO algorithms. d_type GetAmpThreshold(); diff --git a/include/resolution.hpp b/include/resolution.hpp new file mode 100644 index 0000000..1167f38 --- /dev/null +++ b/include/resolution.hpp @@ -0,0 +1,35 @@ +/*** +Copyright (c) UChicago Argonne, LLC. All rights reserved. +See LICENSE file. +***/ +// Created by Barbara Frosik + +#ifndef resolution_hpp +#define resolution_hpp + +#include "vector" +#include "common.h" + +class Params; +namespace af { + class array; +} + +// This class encapsulates low resolution data operations. +class Resolution +{ +private: + std::vector sigmas; + +public: + Resolution(Params *params); + + // Needs destructor to free allocated memory. + ~Resolution(); + + // Returns resolution based on iteration + af::array GetIterData(int iter, af::array data); +}; + + +#endif /* resolution_hpp */ diff --git a/include/state.hpp b/include/state.hpp index aa8ff91..7c70fb8 100644 --- a/include/state.hpp +++ b/include/state.hpp @@ -55,6 +55,9 @@ class State // Returns true if the current state should include partial coherence update. bool IsUpdatePartialCoherence(); + // Returns true if the current state should include resolution update. + bool IsUpdateResolution(); + // Returns true if the current state should apply twin. bool IsApplyTwin(); diff --git a/include/support.hpp b/include/support.hpp index cdfd306..3f46802 100644 --- a/include/support.hpp +++ b/include/support.hpp @@ -20,7 +20,7 @@ class Support private: af::array distribution; float threshold; - int sigma; + float sigma; int algorithm; af::array support_array; af::array GaussConvFft(af::array ds_image); @@ -29,7 +29,6 @@ class Support Support(const dim4 data_dim, Params *params, af::array support_array); void Update(const af::array ds_image); int GetTriggerAlgorithm(); - int GetSigma(); float GetThreshold(); af::array GetSupportArray(bool twin=false); }; diff --git a/include/util.hpp b/include/util.hpp index 2e493e4..c51a632 100644 --- a/include/util.hpp +++ b/include/util.hpp @@ -71,6 +71,7 @@ class Utils static af::array GetRatio(af::array, af::array ); static bool IsNullArray(af::array); static std::string GetFullFilename(const char * dir, const char * filename); + static std::vector Linspace(int iter, float start_val, float end_val); }; #endif /* util_hpp */ diff --git a/include/worker.hpp b/include/worker.hpp index 0ffbd00..5e848e1 100644 --- a/include/worker.hpp +++ b/include/worker.hpp @@ -17,6 +17,7 @@ class Params; class State; class Support; class PartialCoherence; +class Resolution; using namespace af; // This class represents a single image phase reconstruction processing. @@ -38,6 +39,8 @@ class Reconstruction Support *support; // A reference to PartialCoherence PartialCoherence *partialCoherence; + // A reference to Resolution + Resolution *resolution; // This method returns sum of squares of all elements in the array double GetNorm(af::array arr); diff --git a/src_cpp/parameters.cpp b/src_cpp/parameters.cpp index 4ab3ed4..15dab16 100644 --- a/src_cpp/parameters.cpp +++ b/src_cpp/parameters.cpp @@ -38,7 +38,7 @@ float beta; // support std::vector support_area; float support_threshold; -int support_sigma; +float support_sigma; std::vector support_triggers; int support_alg; @@ -77,6 +77,14 @@ int gc; int device; +int low_res_iterations; + +float iter_low_res_sigma_min; + +float iter_low_res_sigma_max; + +std::vector update_resolution_triggers; + Params::Params(const char* config_file, int stage, std::vector data_dim) { @@ -227,13 +235,13 @@ Params::Params(const char* config_file, int stage, std::vector data_dim) { printf("No 'support_threshold' parameter in configuration file.\n"); } - support_sigma = 0; + support_sigma = 1; try { support_sigma = cfg.lookup("support_sigma"); } catch ( const SettingNotFoundException &nfex) { - printf("No 'support_sigma' parameter in configuration file.\n"); + printf("No 'support_sigma' parameter in configuration file. Setting to 1\n"); } support_triggers = ParseTriggers("support", action_stage); support_alg = -1; @@ -296,6 +304,59 @@ Params::Params(const char* config_file, int stage, std::vector data_dim) } } + if (action_stage == 0) + { + try + { + const Setting& root = cfg.getRoot(); + const Setting &tmp = root["update_resolution_triggers"]; + int step = 0; + low_res_iterations = 0; + try + { + step = tmp[0]; + try + { + low_res_iterations = tmp[1]; + } + catch ( const SettingNotFoundException &nfex) + { } + } + catch ( const SettingNotFoundException &nfex) + { } + + for (int i = 0; i <= low_res_iterations; i += step) + { + update_resolution_triggers.push_back(i); + } + } + catch ( const SettingNotFoundException &nfex) + { } + if (low_res_iterations > 0) + { + try + { + iter_low_res_sigma_min = cfg.lookup("iter_low_res_sigma_min"); + if (iter_low_res_sigma_min == 0.0) + { + iter_low_res_sigma_min = support_sigma; + } + } + catch(const SettingNotFoundException &nfex) + { + iter_low_res_sigma_min = support_sigma; + } + try + { + iter_low_res_sigma_max = cfg.lookup("iter_low_res_sigma_max"); + } + catch(const SettingNotFoundException &nfex) + { + iter_low_res_sigma_min = 3.0; + } + } + } + try { avg_iterations = cfg.lookup("avg_iterations"); @@ -526,7 +587,7 @@ float Params::GetSupportThreshold() return support_threshold; } -int Params::GetSupportSigma() +float Params::GetSupportSigma() { return support_sigma; } @@ -615,3 +676,24 @@ int Params::GetActionStage() return action_stage; } +float Params::GetIterLowResSigmaMin() +{ + return iter_low_res_sigma_min; +} + +float Params::GetIterLowResSigmaMax() +{ + return iter_low_res_sigma_max; +} + +std::vector Params::GetUpdateResolutionTriggers() +{ + return update_resolution_triggers; +} + +int Params::GetLowResolutionIter() +{ + return low_res_iterations; +} + + diff --git a/src_cpp/resolution.cpp b/src_cpp/resolution.cpp new file mode 100644 index 0000000..27f17c6 --- /dev/null +++ b/src_cpp/resolution.cpp @@ -0,0 +1,42 @@ +/*** +Copyright (c) UChicago Argonne, LLC. All rights reserved. +See LICENSE file. +***/ +// Created by Barbara Frosik + +#include "stdio.h" +#include "util.hpp" +#include "common.h" +#include "resolution.hpp" +#include "parameters.hpp" +#include "arrayfire.h" + +using namespace af; + +Resolution::Resolution(Params* param) +{ + //int iter = param->GetLowResolutionIter(); + int iter = param->GetNumberIterations(); + sigmas = Utils::Linspace(iter, param->GetIterLowResSigmaMax(), param->GetIterLowResSigmaMin()); +} + +Resolution::~Resolution() +{ + sigmas.clear(); +} + +af::array Resolution::GetIterData(int iter, af::array data) +{ + int alpha = 1; + d_type *dim_sigmas = new d_type[nD]; + for (int i=0; iGetAlgSwitches()[0].algorithm_id]; + + std::vector temp = params->GetUpdateResolutionTriggers(); } void State::MapAlgorithmObject(int alg_id) @@ -129,6 +136,17 @@ int State::Next() update_support = false; } + // check if change resolution this iteration + if ((params->GetUpdateResolutionTriggers().size() > 0) && (params->GetUpdateResolutionTriggers()[update_resolution_triggers_index] == current_iter)) + { + update_resolution = true; + update_resolution_triggers_index++; + } + else + { + update_resolution = false; + } + // calculate if during the iteration should do averaging. averaging = ( current_iter >= (total_iter_num - params->GetAvgIterations()) ); @@ -170,6 +188,11 @@ bool State::IsUpdatePartialCoherence() return update_kernel; } +bool State::IsUpdateResolution() +{ + return update_resolution; +} + bool State::IsApplyTwin() { return apply_twin; diff --git a/src_cpp/support.cpp b/src_cpp/support.cpp index 385f891..cdb9ee4 100644 --- a/src_cpp/support.cpp +++ b/src_cpp/support.cpp @@ -54,11 +54,6 @@ int Support::GetTriggerAlgorithm() return algorithm; } -int Support::GetSigma() -{ - return sigma; -} - float Support::GetThreshold() { return threshold; diff --git a/src_cpp/util.cpp b/src_cpp/util.cpp index 8e41c30..2b3c9bb 100644 --- a/src_cpp/util.cpp +++ b/src_cpp/util.cpp @@ -361,3 +361,13 @@ std::string Utils::GetFullFilename(const char * dir, const char * filename) full_filename.append(filename); return full_filename; } + +std::vector Utils::Linspace(int iter, float start_val, float end_val) +{ + std::vector spaced; + for (int i = 0; i < iter; ++i) + { + spaced.push_back(start_val + (end_val - start_val)/iter * i); + } + return spaced; +} diff --git a/src_cpp/worker.cpp b/src_cpp/worker.cpp index f5a1ed9..9d4f75b 100644 --- a/src_cpp/worker.cpp +++ b/src_cpp/worker.cpp @@ -18,8 +18,10 @@ See LICENSE file. #include "common.h" #include "algorithm.hpp" #include "util.hpp" +#include "resolution.hpp" af::array data; // this is abs +af::array iter_data; // if low resolutionis used, data will differ in iterations int num_points; d_type norm_data; int current_iteration; @@ -28,6 +30,7 @@ int aver_iter; std::vector aver_v; std::vector support_vector; std::vector coherence_vector; +d_type max_data; af::Window * errors_plot; @@ -51,6 +54,11 @@ Reconstruction::Reconstruction(af::array image_data, af::array guess, Params* pa { partialCoherence = NULL; } + if (params->GetLowResolutionIter() >0) + { + resolution = new Resolution(params); + } + max_data = af::max(data); errors_plot = new Window(512, 512, "errors"); } @@ -83,12 +91,12 @@ void Reconstruction::Init() norm_data = GetNorm(data); num_points = data.elements(); // multiply the rs_amplitudes by max element of data array and the norm - d_type max_data = af::max(data); + // d_type max_data = af::max(data); ds_image *= max_data * GetNorm(ds_image); // the next two lines are for testing it sets initial guess to initial support - // af::array temp = support->GetSupportArray(); - // ds_image = complex(temp.as((af_dtype) dtype_traits::ctype), 0.0).as(c64); + //af::array temp = support->GetSupportArray(); + //ds_image = complex(temp.as((af_dtype) dtype_traits::ctype), 0.0).as(c64); ds_image *= support->GetSupportArray(); printf("initial image norm %f\n", GetNorm(ds_image)); @@ -99,12 +107,24 @@ void Reconstruction::Iterate() { while (state->Next()) { + current_iteration = state->GetCurrentIteration(); + iter_data = data; + af_print(iter_data(seq(0,4), seq(0,4), seq(0,4))); + if ((resolution != NULL) && (current_iteration < params->GetLowResolutionIter()) && (state->IsUpdateResolution())) + { + printf("Updating resolution iter %i\n", state->GetCurrentIteration()); + iter_data = resolution->GetIterData(current_iteration, data); + d_type iter_data_max = af::max(iter_data); + printf("the max of iter_data %f\n", af::max(iter_data)); + + iter_data = iter_data/iter_data_max; + af_print(iter_data(seq(0,4), seq(0,4), seq(0,4))); + } if (state->IsUpdateSupport()) { support->Update(abs(ds_image).copy()); } - current_iteration = state->GetCurrentIteration(); if (params->GetGC() && (current_iteration+1) % params->GetGC() == 0) { af::deviceGC(); @@ -144,13 +164,14 @@ af::array Reconstruction::ModulusProjection() rs_amplitudes = Utils::ifft(ds_image)*num_points; - printf("data norm, ampl norm before ratio %fl %fl\n", GetNorm(data), GetNorm(rs_amplitudes)); - state->RecordError( GetNorm(abs(rs_amplitudes)(rs_amplitudes > 0)-data(rs_amplitudes > 0))/norm_data ); + printf("data norm, ampl norm before ratio %fl %fl\n", GetNorm(iter_data), GetNorm(rs_amplitudes)); + //state->RecordError( GetNorm(abs(rs_amplitudes)(rs_amplitudes > 0)-iter_data(rs_amplitudes > 0))/GetNorm(iter_data)); if ((partialCoherence == NULL) || (partialCoherence->GetTriggers().size() == 0)) { //rs_amplitudes = data * exp(af::complex(0, af::arg(rs_amplitudes))); - af::array ratio = Utils::GetRatio(data, abs(rs_amplitudes)); + af::array ratio = Utils::GetRatio(iter_data, abs(rs_amplitudes)); + state->RecordError( GetNorm(abs(rs_amplitudes)(rs_amplitudes > 0)-iter_data(rs_amplitudes > 0))/GetNorm(iter_data)); rs_amplitudes *= ratio; } else @@ -160,15 +181,17 @@ af::array Reconstruction::ModulusProjection() printf("coherence using lucy\n"); af::array abs_amplitudes = abs(rs_amplitudes).copy(); af::array converged = partialCoherence->ApplyPartialCoherence(abs_amplitudes, current_iteration); - af::array ratio = Utils::GetRatio(data, abs(converged)); + af::array ratio = Utils::GetRatio(iter_data, abs(converged)); printf("ratio norm %f\n", GetNorm(ratio)); + state->RecordError( GetNorm(abs(converged)(converged > 0)-iter_data(converged > 0))/GetNorm(iter_data)); rs_amplitudes *= ratio; } else { //rs_amplitudes = data * exp(af::complex(0, af::arg(rs_amplitudes))); - af::array ratio = Utils::GetRatio(data, abs(rs_amplitudes)); + af::array ratio = Utils::GetRatio(iter_data, abs(rs_amplitudes)); + state->RecordError( GetNorm(abs(rs_amplitudes)(rs_amplitudes > 0)-iter_data(rs_amplitudes > 0))/GetNorm(iter_data)); rs_amplitudes *= ratio; } partialCoherence->SetPrevious(abs(rs_amplitudes)); diff --git a/src_py/controller/fast_module.py b/src_py/controller/fast_module.py index 9c39551..2ae47b5 100755 --- a/src_py/controller/fast_module.py +++ b/src_py/controller/fast_module.py @@ -23,7 +23,7 @@ import matplotlib.pyplot as plt import src_py.cyth.bridge_cpu as bridge_cpu import src_py.cyth.bridge_opencl as bridge_opencl -# import src_py.cyth.bridge_cuda as bridge_cuda +import src_py.cyth.bridge_cuda as bridge_cuda __author__ = "Barbara Frosik" @@ -67,9 +67,9 @@ def fast_module_reconstruction(proc, conf, data, coh_dims, image=None, support=N bridge = bridge_cpu elif proc == 'opencl': bridge = bridge_opencl - # elif proc == 'cuda': - # bridge = bridge_cuda - print 'entered fm coh_dims', coh_dims + elif proc == 'cuda': + bridge = bridge_cuda + # shift data data=sf.fftshift(data) data = np.swapaxes(data,1,2) diff --git a/src_py/cyth/bridge_cpu.pyx b/src_py/cyth/bridge_cpu.pyx index 16845e0..8409497 100644 --- a/src_py/cyth/bridge_cpu.pyx +++ b/src_py/cyth/bridge_cpu.pyx @@ -7,7 +7,7 @@ # distutils: language = c++ # distutils: include_dirs = ['include', 'AF_DIR/include', 'LC_DIR/lib',] -# distutils: sources = ['src_cpp/algorithm.cpp', 'src_cpp/bridge.cpp', 'src_cpp/manager.cpp', 'src_cpp/parameters.cpp', 'src_cpp/pcdi.cpp', 'src_cpp/state.cpp', 'src_cpp/support.cpp', 'src_cpp/util.cpp', 'src_cpp/worker.cpp'] +# distutils: sources = ['src_cpp/algorithm.cpp', 'src_cpp/bridge.cpp', 'src_cpp/manager.cpp', 'src_cpp/parameters.cpp', 'src_cpp/pcdi.cpp', 'src_cpp/resolution.cpp', 'src_cpp/state.cpp', 'src_cpp/support.cpp', 'src_cpp/util.cpp', 'src_cpp/worker.cpp'] # distutils: libraries = ['afcpu', 'config++',] # distutils: library_dirs = ['AF_DIR/lib', 'LC_DIR/lib/.libs',] diff --git a/src_py/cyth/bridge_cuda.pyx b/src_py/cyth/bridge_cuda.pyx index ff6bf27..d41f62c 100755 --- a/src_py/cyth/bridge_cuda.pyx +++ b/src_py/cyth/bridge_cuda.pyx @@ -7,7 +7,7 @@ # distutils: language = c++ # distutils: include_dirs = ['include', 'AF_DIR/include', 'LC_DIR/lib',] -# distutils: sources = ['src_cpp/algorithm.cpp', 'src_cpp/bridge.cpp', 'src_cpp/manager.cpp', 'src_cpp/parameters.cpp', 'src_cpp/pcdi.cpp', 'src_cpp/state.cpp', 'src_cpp/support.cpp', 'src_cpp/util.cpp', 'src_cpp/worker.cpp'] +# distutils: sources = ['src_cpp/algorithm.cpp', 'src_cpp/bridge.cpp', 'src_cpp/manager.cpp', 'src_cpp/parameters.cpp', 'src_cpp/pcdi.cpp', 'src_cpp/resolution.cpp', 'src_cpp/state.cpp', 'src_cpp/support.cpp', 'src_cpp/util.cpp', 'src_cpp/worker.cpp'] # distutils: libraries = ['afcuda', 'config++',] # distutils: library_dirs = ['AF_DIR/lib', 'LC_DIR/lib/.libs',] diff --git a/src_py/cyth/bridge_opencl.pyx b/src_py/cyth/bridge_opencl.pyx index b324246..b33b1df 100755 --- a/src_py/cyth/bridge_opencl.pyx +++ b/src_py/cyth/bridge_opencl.pyx @@ -7,7 +7,7 @@ # distutils: language = c++ # distutils: include_dirs = ['include', 'AF_DIR/include', 'LC_DIR/lib',] -# distutils: sources = ['src_cpp/algorithm.cpp', 'src_cpp/bridge.cpp', 'src_cpp/manager.cpp', 'src_cpp/parameters.cpp', 'src_cpp/pcdi.cpp', 'src_cpp/state.cpp', 'src_cpp/support.cpp', 'src_cpp/util.cpp', 'src_cpp/worker.cpp'] +# distutils: sources = ['src_cpp/algorithm.cpp', 'src_cpp/bridge.cpp', 'src_cpp/manager.cpp', 'src_cpp/parameters.cpp', 'src_cpp/pcdi.cpp', 'src_cpp/resolution.cpp', 'src_cpp/state.cpp', 'src_cpp/support.cpp', 'src_cpp/util.cpp', 'src_cpp/worker.cpp'] # distutils: libraries = ['afopencl', 'config++',] # distutils: library_dirs = ['AF_DIR/lib', 'LC_DIR/lib/.libs',] From fbe561c3193ec84ca66129039f6e80a5be18f4c2 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Mon, 29 Jan 2018 10:04:12 -0600 Subject: [PATCH 059/336] initialization in params constructor --- include/support.hpp | 2 +- src_cpp/parameters.cpp | 105 ++++++++++++++++++----------------------- src_cpp/support.cpp | 2 +- src_cpp/worker.cpp | 10 ++-- 4 files changed, 52 insertions(+), 67 deletions(-) diff --git a/include/support.hpp b/include/support.hpp index 3f46802..38a0749 100644 --- a/include/support.hpp +++ b/include/support.hpp @@ -26,7 +26,7 @@ class Support af::array GaussConvFft(af::array ds_image); public: - Support(const dim4 data_dim, Params *params, af::array support_array); + Support(const af::dim4 data_dim, Params *params, af::array support_array); void Update(const af::array ds_image); int GetTriggerAlgorithm(); float GetThreshold(); diff --git a/src_cpp/parameters.cpp b/src_cpp/parameters.cpp index 15dab16..5ccbd9f 100644 --- a/src_cpp/parameters.cpp +++ b/src_cpp/parameters.cpp @@ -88,6 +88,40 @@ std::vector update_resolution_triggers; Params::Params(const char* config_file, int stage, std::vector data_dim) { + action_id_map.clear(); + algorithm_id_map.clear(); + alg_switches.clear(); + d_type amp_threshold = 0; + amp_threshold_fill_zeros = false; + beta = 0.9; + support_area.clear(); + support_threshold = 0.1; + support_sigma = 1.0; + support_triggers.clear(); + support_alg = -1; + pcdi_alg = 0; + pcdi_roi.clear(); + pcdi_triggers.clear(); + pcdi_normalize = false; + pcdi_iter = 20; + d_type_precision = false; + avg_iterations = 0; + number_iterations = 0; + twin = -1; + regularized_amp = REGULARIZED_AMPLITUDE_NONE; + save_dir = "my_dir"; + continue_dir = "my_dir"; + action = 0; + action_stage = 0; + save_results = false; + plot_errors = false; + gc = -1; + device = -1; + low_res_iterations = 0; + iter_low_res_sigma_min = support_sigma; + iter_low_res_sigma_max = 3.0; + update_resolution_triggers.clear(); + BuildAlgorithmMap(); BuildActionMap(); @@ -108,13 +142,9 @@ Params::Params(const char* config_file, int stage, std::vector data_dim) try { save_dir = cfg.lookup("save_dir"); - // else it is initialized } catch (const SettingNotFoundException &nfex) - { - save_dir = "my_dir"; - printf("No 'save_dir' parameter in configuration file, saving in 'my_dir'.\n"); - } + { } try { action = action_id_map[cfg.lookup("action")]; @@ -122,10 +152,8 @@ Params::Params(const char* config_file, int stage, std::vector data_dim) catch ( const SettingNotFoundException &nfex) { action = action_id_map["new_guess"]; - printf((std::string("No 'action' parameter in configuration file. running new guess\n")).c_str()); } - action_stage = 0; if (action == ACTION_CONTINUE) { try @@ -136,7 +164,6 @@ Params::Params(const char* config_file, int stage, std::vector data_dim) } catch (const SettingNotFoundException &nfex) { - continue_dir = "my_dir"; printf("No 'continue_dir' parameter in configuration file, saving in 'my_dir'.\n"); } } @@ -145,23 +172,17 @@ Params::Params(const char* config_file, int stage, std::vector data_dim) action_stage = stage; } - save_results = false; try { save_results = cfg.lookup("save_results"); } catch ( const SettingNotFoundException &nfex) - { - printf((std::string("No 'save_results' parameter in configuration file. Setting to false.\n")).c_str()); - } + { } - plot_errors = false; try { plot_errors = cfg.lookup("plot_errors"); } catch ( const SettingNotFoundException &nfex) - { - printf((std::string("No 'plot_errors' parameter in configuration file. Setting to false.\n")).c_str()); - } + { } try { const Setting& root = cfg.getRoot(); @@ -190,23 +211,17 @@ Params::Params(const char* config_file, int stage, std::vector data_dim) printf("No 'algorithm_sequence' parameter in configuration file.\n"); } - gc = -1; try { gc = cfg.lookup("gc"); } catch ( const SettingNotFoundException &nfex) - { - printf("No 'gc' parameter in configuration file.\n"); - } + { } - device = -1; try { device = cfg.lookup("device"); } catch ( const SettingNotFoundException &nfex) - { - printf("No 'device' parameter in configuration file.\n"); - } + { } try { const Setting& root = cfg.getRoot(); @@ -227,24 +242,17 @@ Params::Params(const char* config_file, int stage, std::vector data_dim) { printf("No 'support_area' parameter in configuration file.\n"); } - support_threshold = 0; try { support_threshold = cfg.lookup("support_threshold"); } catch ( const SettingNotFoundException &nfex) - { - printf("No 'support_threshold' parameter in configuration file.\n"); - } - support_sigma = 1; + { } try { support_sigma = cfg.lookup("support_sigma"); } catch ( const SettingNotFoundException &nfex) - { - printf("No 'support_sigma' parameter in configuration file. Setting to 1\n"); - } + { } support_triggers = ParseTriggers("support", action_stage); - support_alg = -1; try { support_alg = algorithm_id_map[cfg.lookup("support_type")]; } @@ -253,7 +261,6 @@ Params::Params(const char* config_file, int stage, std::vector data_dim) printf((std::string("No 'support_type' parameter in configuration file.\n")).c_str()); } - pcdi_alg = 0; try { pcdi_alg = algorithm_id_map[cfg.lookup("partial_coherence_type")]; } @@ -285,22 +292,17 @@ Params::Params(const char* config_file, int stage, std::vector data_dim) } pcdi_triggers = ParseTriggers("partial_coherence", action_stage); - pcdi_normalize = false; try { pcdi_normalize = cfg.lookup("partial_coherence_normalize"); } catch ( const SettingNotFoundException &nfex) - { - printf((std::string("No 'partial_coherence_normalize' parameter in configuration file.\n")).c_str()); - } - pcdi_iter = 1; + { } try { pcdi_iter = cfg.lookup("partial_coherence_iteration_num"); } catch ( const SettingNotFoundException &nfex) { printf((std::string("No 'partial_coherence_iteration_num' parameter in configuration file. Setting to 20.\n")).c_str()); - pcdi_iter = 20; } } @@ -311,7 +313,6 @@ Params::Params(const char* config_file, int stage, std::vector data_dim) const Setting& root = cfg.getRoot(); const Setting &tmp = root["update_resolution_triggers"]; int step = 0; - low_res_iterations = 0; try { step = tmp[0]; @@ -343,17 +344,13 @@ Params::Params(const char* config_file, int stage, std::vector data_dim) } } catch(const SettingNotFoundException &nfex) - { - iter_low_res_sigma_min = support_sigma; - } + { } try { iter_low_res_sigma_max = cfg.lookup("iter_low_res_sigma_max"); } catch(const SettingNotFoundException &nfex) - { - iter_low_res_sigma_min = 3.0; - } + { } } } @@ -362,9 +359,7 @@ Params::Params(const char* config_file, int stage, std::vector data_dim) avg_iterations = cfg.lookup("avg_iterations"); } catch(const SettingNotFoundException &nfex) - { - printf("No 'avg_iterations' parameter in configuration file.\n"); - } + { } // try // { @@ -408,7 +403,6 @@ Params::Params(const char* config_file, int stage, std::vector data_dim) catch (const SettingNotFoundException &nfex) { printf("No 'beta' parameter in configuration file. Setting to .9\n"); - beta = .9; } try @@ -426,16 +420,9 @@ Params::Params(const char* config_file, int stage, std::vector data_dim) { regularized_amp = REGULARIZED_AMPLITUDE_UNIFORM; } - else - { - regularized_amp = REGULARIZED_AMPLITUDE_NONE; - } } catch (const SettingNotFoundException &nfex) - { - printf("No 'regularized_amp' parameter in configuration file.\n"); - } - twin = -1; + { } if (action_stage == 0) { try { diff --git a/src_cpp/support.cpp b/src_cpp/support.cpp index cdb9ee4..f680ee1 100644 --- a/src_cpp/support.cpp +++ b/src_cpp/support.cpp @@ -10,7 +10,7 @@ See LICENSE file. #include "util.hpp" -Support::Support(const dim4 data_dim, Params *params, af::array support) +Support::Support(const af::dim4 data_dim, Params *params, af::array support) { threshold = params->GetSupportThreshold(); sigma = params->GetSupportSigma(); diff --git a/src_cpp/worker.cpp b/src_cpp/worker.cpp index 9d4f75b..2af7cbf 100644 --- a/src_cpp/worker.cpp +++ b/src_cpp/worker.cpp @@ -59,7 +59,10 @@ Reconstruction::Reconstruction(af::array image_data, af::array guess, Params* pa resolution = new Resolution(params); } max_data = af::max(data); - errors_plot = new Window(512, 512, "errors"); + if (params->IsPlotErrors()) + { + errors_plot = new Window(512, 512, "errors"); + } } Reconstruction::~Reconstruction() @@ -109,16 +112,11 @@ void Reconstruction::Iterate() { current_iteration = state->GetCurrentIteration(); iter_data = data; - af_print(iter_data(seq(0,4), seq(0,4), seq(0,4))); if ((resolution != NULL) && (current_iteration < params->GetLowResolutionIter()) && (state->IsUpdateResolution())) { - printf("Updating resolution iter %i\n", state->GetCurrentIteration()); iter_data = resolution->GetIterData(current_iteration, data); d_type iter_data_max = af::max(iter_data); - printf("the max of iter_data %f\n", af::max(iter_data)); - iter_data = iter_data/iter_data_max; - af_print(iter_data(seq(0,4), seq(0,4), seq(0,4))); } if (state->IsUpdateSupport()) { From 84db621d952bc8adc8440626cb3336504859e0e0 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Mon, 29 Jan 2018 14:05:13 -0600 Subject: [PATCH 060/336] Update README.md --- README.md | 42 ++++++++++++++++++++++++++++++++++++------ 1 file changed, 36 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 46e6cb5..341c063 100644 --- a/README.md +++ b/README.md @@ -19,10 +19,13 @@ Pre-requisites --------------- - ArrayFire library version 3.5.0 or higher - Libconfig library version 1.5 or higher -- Python packages: - - Libconfig - - traits - - tvtk +- Python packages installation: + - pip install tifffile + - pip install pylibconfig2 + - conda install vtk + - conda install traits + - conda install traitsui + - pip install mayavi Author(s) ------- @@ -33,7 +36,34 @@ License Copyright (c) UChicago Argonne, LLC. All rights reserved. See LICENSE file. -Libraries -------- +C++ Libraries +------------- - ArrayFire open source - Libconfig open source + +How to init +----------- +- clone the source from the repository: + - git clone https://github.com/advancedPhotonSource/cdi + - cd cdi +- run interactive script to set enviroment variables and set the project: + - source init.sh + at the promt enter the following: + - enter ArrayFire installation directory > (absolute path to ArrayFire installation dir) + - enter LibConfig installation directory > (absolute path to LibConfig installation dir) + - enter cuda installation directory > (absolute path to cuda installation dir) + - enter data type (float/double) > double + +How to run +---------- +- python test.py (proc) (file name) (config file) + - (proc) is processing ArrayFire library ('cpu', 'opencl', or 'cuda') + - (file name) is data file name. It can be either tif file or numpy file. In the first case the file would contain original data, in the second case the numpy file would hold saved prepared data as ndarray. + - (config file) is a name of configuration file. This repository contains 'config.test' configuration foe for your use. + +example:python test.py 'opencl' '/directory/Staff14-3_S0149.tif' 'config.test' + +How to compile +-------------- +python setup.py build_ext --inplace + From 7b3e64191b09fbc6e88652b4e93b391caecf0f8c Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Mon, 26 Feb 2018 16:34:46 -0600 Subject: [PATCH 061/336] Update bridge_cpu.pyx --- src_py/cyth/bridge_cpu.pyx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src_py/cyth/bridge_cpu.pyx b/src_py/cyth/bridge_cpu.pyx index 8409497..104664d 100644 --- a/src_py/cyth/bridge_cpu.pyx +++ b/src_py/cyth/bridge_cpu.pyx @@ -6,10 +6,10 @@ # distutils: language = c++ -# distutils: include_dirs = ['include', 'AF_DIR/include', 'LC_DIR/lib',] +# distutils: include_dirs = ['include', 'AF_DIR/include', 'LC_DIR/include',] # distutils: sources = ['src_cpp/algorithm.cpp', 'src_cpp/bridge.cpp', 'src_cpp/manager.cpp', 'src_cpp/parameters.cpp', 'src_cpp/pcdi.cpp', 'src_cpp/resolution.cpp', 'src_cpp/state.cpp', 'src_cpp/support.cpp', 'src_cpp/util.cpp', 'src_cpp/worker.cpp'] # distutils: libraries = ['afcpu', 'config++',] -# distutils: library_dirs = ['AF_DIR/lib', 'LC_DIR/lib/.libs',] +# distutils: library_dirs = ['AF_DIR/lib', 'LC_DIR/lib',] from libcpp.vector cimport vector from libcpp.string cimport string From ffa81376f9c4c72bcb9c296e6e4611bb2c5d1bfd Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Mon, 26 Feb 2018 16:37:34 -0600 Subject: [PATCH 062/336] Update bridge_cuda.pyx --- src_py/cyth/bridge_cuda.pyx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src_py/cyth/bridge_cuda.pyx b/src_py/cyth/bridge_cuda.pyx index d41f62c..7f1f707 100755 --- a/src_py/cyth/bridge_cuda.pyx +++ b/src_py/cyth/bridge_cuda.pyx @@ -6,10 +6,10 @@ # distutils: language = c++ -# distutils: include_dirs = ['include', 'AF_DIR/include', 'LC_DIR/lib',] +# distutils: include_dirs = ['include', 'AF_DIR/include', 'LC_DIR/include',] # distutils: sources = ['src_cpp/algorithm.cpp', 'src_cpp/bridge.cpp', 'src_cpp/manager.cpp', 'src_cpp/parameters.cpp', 'src_cpp/pcdi.cpp', 'src_cpp/resolution.cpp', 'src_cpp/state.cpp', 'src_cpp/support.cpp', 'src_cpp/util.cpp', 'src_cpp/worker.cpp'] # distutils: libraries = ['afcuda', 'config++',] -# distutils: library_dirs = ['AF_DIR/lib', 'LC_DIR/lib/.libs',] +# distutils: library_dirs = ['AF_DIR/lib', 'LC_DIR/lib',] from libcpp.vector cimport vector from libcpp.string cimport string From 5820a89ea09af74b34fb50e54dc586bf02ad64c3 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Mon, 26 Feb 2018 16:38:03 -0600 Subject: [PATCH 063/336] Update bridge_opencl.pyx --- src_py/cyth/bridge_opencl.pyx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src_py/cyth/bridge_opencl.pyx b/src_py/cyth/bridge_opencl.pyx index b33b1df..b8f1613 100755 --- a/src_py/cyth/bridge_opencl.pyx +++ b/src_py/cyth/bridge_opencl.pyx @@ -6,10 +6,10 @@ # distutils: language = c++ -# distutils: include_dirs = ['include', 'AF_DIR/include', 'LC_DIR/lib',] +# distutils: include_dirs = ['include', 'AF_DIR/include', 'LC_DIR/include',] # distutils: sources = ['src_cpp/algorithm.cpp', 'src_cpp/bridge.cpp', 'src_cpp/manager.cpp', 'src_cpp/parameters.cpp', 'src_cpp/pcdi.cpp', 'src_cpp/resolution.cpp', 'src_cpp/state.cpp', 'src_cpp/support.cpp', 'src_cpp/util.cpp', 'src_cpp/worker.cpp'] # distutils: libraries = ['afopencl', 'config++',] -# distutils: library_dirs = ['AF_DIR/lib', 'LC_DIR/lib/.libs',] +# distutils: library_dirs = ['AF_DIR/lib', 'LC_DIR/lib',] from libcpp.vector cimport vector from libcpp.string cimport string From 053e0395ce94d9e353277a495d550379c2b18817 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Mon, 26 Feb 2018 16:49:55 -0600 Subject: [PATCH 064/336] Update utils.py --- src_py/utilities/utils.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src_py/utilities/utils.py b/src_py/utilities/utils.py index c4ab54a..c654804 100644 --- a/src_py/utilities/utils.py +++ b/src_py/utilities/utils.py @@ -114,7 +114,7 @@ def binning(array, binsizes): for ax in range(len(binsizes)): if binsizes[ax] > 1: new_shape[ax] = binsizes[ax] - new_shape.insert(ax, array.shape[ax] / binsizes[ax]) + new_shape.insert(ax, int(array.shape[ax] / binsizes[ax])) binned_array = np.reshape(binned_array, tuple(new_shape)) binned_array = np.sum(binned_array, axis=ax+1) new_shape = list(binned_array.shape) @@ -188,8 +188,9 @@ def adjust_dimensions(arr, pad): new_crop = [] for i in range(len(dims)): new_dims.append(get_opencl_dim(dims[i] + 2 * pad[i], 2)) - new_pad.append(max(0, (new_dims[i] - dims[i]) / 2)) - new_crop.append(max(0, (dims[i] - new_dims[i]) / 2)) + new_pad.append(max(0, int((new_dims[i] - dims[i]) / 2))) + new_crop.append(max(0, int((dims[i] - new_dims[i]) / 2))) + arr = np.lib.pad(arr, ((new_pad[0], new_pad[0]), (new_pad[1], new_pad[1]), (new_pad[2], new_pad[2])), 'constant', constant_values=((0.0, 0.0), (0.0, 0.0), (0.0, 0.0))).copy() @@ -199,7 +200,7 @@ def adjust_dimensions(arr, pad): def crop_center(arr, new_size): size = arr.shape - return arr[ (size[0]-new_size[0])/2 : (size[0]-new_size[0])/2 + new_size[0], (size[1]-new_size[1])/2 : (size[1]-new_size[1])/2 + new_size[1], (size[2]-new_size[2])/2 : (size[2]-new_size[2])/2 + new_size[2]] + return arr[ int((size[0]-new_size[0])/2) : int((size[0]-new_size[0])/2) + new_size[0], int((size[1]-new_size[1])/2) : int((size[1]-new_size[1])/2) + new_size[1], int((size[2]-new_size[2])/2) : int((size[2]-new_size[2])/2) + new_size[2]] def flip(m, axis): From 74f11ff3bda137fff06dd695a02d7dea501f7e8c Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Tue, 27 Feb 2018 09:30:38 -0600 Subject: [PATCH 065/336] Update init.sh --- init.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init.sh b/init.sh index 8e11b2f..19ddb66 100644 --- a/init.sh +++ b/init.sh @@ -16,7 +16,7 @@ sed -i 's?'$LC'?'$lc_dir'?g' src_py/cyth/*.pyx echo -n "enter cuda installation directory > " read cuda_dir -export LD_LIBRARY_PATH=$lc_dir/lib/.libs:/usr/local/lib:$af_dir/lib/:$cuda_dir/lib64:$cuda_dir/nvvm/lib64 +export LD_LIBRARY_PATH=$lc_dir/lib:/usr/local/lib:$af_dir/lib/:$cuda_dir/lib64:$cuda_dir/nvvm/lib64 echo -n "enter data type (float/double) > " read data_type From 55a551ca3bb75e7f125a298933f2e43ba6486384 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Fri, 16 Mar 2018 14:17:57 -0500 Subject: [PATCH 066/336] cleaned up headers/cpp files --- include/algorithm.hpp | 10 ++++-- include/bridge.hpp | 30 ++++++++++------- include/parameters.hpp | 73 ++++++++++++++++++++++++++++++++++++++++-- include/pcdi.hpp | 10 +++++- include/state.hpp | 40 +++++++++++++++++++++++ include/support.hpp | 7 ++-- include/util.hpp | 2 +- include/worker.hpp | 20 ++++++++++-- src_cpp/algorithm.cpp | 3 +- src_cpp/bridge.cpp | 1 - src_cpp/manager.cpp | 2 -- src_cpp/parameters.cpp | 71 ---------------------------------------- src_cpp/pcdi.cpp | 7 ---- src_cpp/state.cpp | 39 ---------------------- src_cpp/support.cpp | 3 ++ src_cpp/util.cpp | 5 +-- src_cpp/worker.cpp | 15 ++------- 17 files changed, 179 insertions(+), 159 deletions(-) diff --git a/include/algorithm.hpp b/include/algorithm.hpp index d8e3d9b..ff97e08 100644 --- a/include/algorithm.hpp +++ b/include/algorithm.hpp @@ -8,13 +8,17 @@ See LICENSE file. #define algorithm_hpp class Reconstruction; -#include "arrayfire.h" -using namespace af; +namespace af { + class array; +} class Algorithm { -public: +protected: + Reconstruction * rec; + +public: // Using strategy pattern. The RunAlgorihm calls sequence of methods // overridden by concrete classes void RunAlgorithm(Reconstruction * reconstruction); diff --git a/include/bridge.hpp b/include/bridge.hpp index 06baeba..6bc2113 100644 --- a/include/bridge.hpp +++ b/include/bridge.hpp @@ -11,23 +11,31 @@ See LICENSE file. #include "string" #include "common.h" +class Manager; + class Bridge { +private: + Manager *mgr; + public: -Bridge(); -void StartCalcWithGuess(std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector dim, const std::string & config); -void StartCalcWithGuessSupport(std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector support_buffer, std::vector dim, const std::string & config); -void StartCalcWithGuessSupportCoh(std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector support_buffer, std::vector dim, std::vector coh_buffer, std::vector coh_dim, const std::string & config); + Bridge(); + + void StartCalcWithGuess(std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector dim, const std::string & config); + + void StartCalcWithGuessSupport(std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector support_buffer, std::vector dim, const std::string & config); -void StartCalc(std::vector data_buffer_r, std::vector dim, std::string const & config); + void StartCalcWithGuessSupportCoh(std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector support_buffer, std::vector dim, std::vector coh_buffer, std::vector coh_dim, const std::string & config); -std::vector GetSupportV(); -std::vector GetCoherenceV(); -std::vector GetImageR(); -std::vector GetImageI(); -std::vector GetErrors(); + void StartCalc(std::vector data_buffer_r, std::vector dim, std::string const & config); -void Cleanup(); + std::vector GetSupportV(); + std::vector GetCoherenceV(); + std::vector GetImageR(); + std::vector GetImageI(); + std::vector GetErrors(); + + void Cleanup(); }; diff --git a/include/parameters.hpp b/include/parameters.hpp index ad20181..17de1be 100644 --- a/include/parameters.hpp +++ b/include/parameters.hpp @@ -10,9 +10,9 @@ See LICENSE file. #include "string" #include "common.h" #include "vector" -//#include "arrayfire.h" +#include "map" -//using namespace af; +class Config; struct Trigger_setting { @@ -33,6 +33,75 @@ typedef struct Trigger_setting trigger_setting; class Params { private: + Config cfg; + + // maps action name to action number + std::map action_id_map; + + // maps algorithm name to algorithm number + std::map algorithm_id_map; + // vector holding algorithm run sequence, where algorithm run is a pair of algorithm and number of iterations + std::vector alg_switches; + + std::string data_type; + + d_type amp_threshold; + bool amp_threshold_fill_zeros; + + // d_type phase_min; + //d_type phase_max; + float beta; + + // support + std::vector support_area; + float support_threshold; + float support_sigma; + std::vector support_triggers; + int support_alg; + + //partial coherence + //PartialCoherence *partial_coherence = NULL; + int pcdi_alg; + std::vector pcdi_roi; + std::vector pcdi_triggers; + bool pcdi_normalize; + int pcdi_iter; + + bool d_type_precision; + + // number of iterates to average + int avg_iterations; + + // calculated number of iterations + int number_iterations; + + int twin; + + int regularized_amp; + + const char * save_dir; + + const char * continue_dir; + + int action; + int action_stage; + + bool save_results; + + bool plot_errors; + + int gc; + + int device; + + int low_res_iterations; + + float iter_low_res_sigma_min; + + float iter_low_res_sigma_max; + + std::vector update_resolution_triggers; + std::vector ParseTriggers(std::string trigger_name, int); void BuildAlgorithmMap(); void BuildActionMap(); diff --git a/include/pcdi.hpp b/include/pcdi.hpp index 187e42d..ee4edf7 100644 --- a/include/pcdi.hpp +++ b/include/pcdi.hpp @@ -13,6 +13,7 @@ class Params; namespace af { class array; + class dim4; } class PartialCoherence @@ -24,7 +25,14 @@ class PartialCoherence int algorithm; bool normalize; int iteration_num; - + + af::array kernel_array; + af::array roi_amplitudes_prev; + af::array roi_data_abs; + d_type sum_roi_data; + af::dim4 roi_dims; + af::dim4 dims; + void DeconvLucy(af::array image, af::array filter, int iter_num); void OnTrigger(af::array abs_image); void TuneLucyCoherence(af::array); diff --git a/include/state.hpp b/include/state.hpp index 7c70fb8..b3c687b 100644 --- a/include/state.hpp +++ b/include/state.hpp @@ -8,11 +8,13 @@ See LICENSE file. #define state_hpp #include "vector" +#include "map" #include "common.h" class Params; class Reconstruction; class Algorithm; + namespace af { class array; } @@ -21,6 +23,44 @@ namespace af { class State { private: + // a reference to params object + Params *params; + + // current iteration + int current_iter; + // number of configured iterations for reconstruction + int total_iter_num; + + // The vector of errors indexed by iteration + std::vector errors; + + // current algorithm + Algorithm * current_alg; + // current index of index switches vector + int alg_switch_index; + + // mapping of algorithm id to an Algorithm object + std::map algorithm_map; + + // a flag indicating whether to update support + bool update_support; + // current index in support_triggers vector + int support_triggers_index; + + // partial coherence state + // a flag indicating whether to update partial coherence + bool run_convolution; + bool update_kernel; + // current index in support_partial_coherence vector + int partial_coherence_triggers_index; + + int update_resolution_triggers_index; + bool update_resolution; + + bool averaging; + + bool apply_twin; + void MapAlgorithmObject(int alg_id); public: diff --git a/include/support.hpp b/include/support.hpp index 38a0749..0c41bfb 100644 --- a/include/support.hpp +++ b/include/support.hpp @@ -8,12 +8,13 @@ See LICENSE file. #define support_hpp #include "common.h" -#include "vector" -#include "arrayfire.h" class Params; -using namespace af; +namespace af { + class array; + class dim4; +} class Support { diff --git a/include/util.hpp b/include/util.hpp index c51a632..c7d265f 100644 --- a/include/util.hpp +++ b/include/util.hpp @@ -7,11 +7,11 @@ See LICENSE file. #ifndef util_hpp #define util_hpp -#include "arrayfire.h" #include "common.h" namespace af { class array; + class dim4; } class Utils diff --git a/include/worker.hpp b/include/worker.hpp index 5e848e1..2fbebf8 100644 --- a/include/worker.hpp +++ b/include/worker.hpp @@ -11,7 +11,6 @@ See LICENSE file. #include "vector" #include "map" #include "common.h" -#include "arrayfire.h" class Params; class State; @@ -19,7 +18,11 @@ class Support; class PartialCoherence; class Resolution; -using namespace af; +namespace af { + class array; + class Window; +} + // This class represents a single image phase reconstruction processing. // It constructs the following objects: // 1. Params, which is initialized from configuration file, and keeps the attributes that do not change during processing. @@ -42,6 +45,19 @@ class Reconstruction // A reference to Resolution Resolution *resolution; + af::array data; // this is abs + af::array iter_data; // if low resolutionis used, data will differ in iterations + int num_points; + d_type norm_data; + int current_iteration; + af::array ds_image; + int aver_iter; + std::vector aver_v; + std::vector support_vector; + std::vector coherence_vector; + d_type max_data; + af::Window * errors_plot; + // This method returns sum of squares of all elements in the array double GetNorm(af::array arr); diff --git a/src_cpp/algorithm.cpp b/src_cpp/algorithm.cpp index 1ebd26c..4f50150 100644 --- a/src_cpp/algorithm.cpp +++ b/src_cpp/algorithm.cpp @@ -5,11 +5,12 @@ See LICENSE file. // Created by Barbara Frosik #include "iostream" +#include "arrayfire.h" #include "algorithm.hpp" #include "worker.hpp" #include "common.h" -Reconstruction * rec; +use namespace af; void Algorithm::RunAlgorithm(Reconstruction * reconstruction) { diff --git a/src_cpp/bridge.cpp b/src_cpp/bridge.cpp index 6a63111..429347e 100644 --- a/src_cpp/bridge.cpp +++ b/src_cpp/bridge.cpp @@ -9,7 +9,6 @@ See LICENSE file. #include "manager.hpp" #include "cstdio" -Manager *mgr; Bridge::Bridge() { diff --git a/src_cpp/manager.cpp b/src_cpp/manager.cpp index 240e227..f364bf9 100644 --- a/src_cpp/manager.cpp +++ b/src_cpp/manager.cpp @@ -16,8 +16,6 @@ See LICENSE file. using namespace af; -af::array ar; - Manager::~Manager() { delete rec; diff --git a/src_cpp/parameters.cpp b/src_cpp/parameters.cpp index 5ccbd9f..f6061ef 100644 --- a/src_cpp/parameters.cpp +++ b/src_cpp/parameters.cpp @@ -8,83 +8,12 @@ See LICENSE file. #include "string.h" #include "iostream" #include "libconfig.h++" -#include "map" #include "algorithm" #include "parameters.hpp" #include "common.h" #include "util.hpp" - using namespace libconfig; -Config cfg; - -// maps action name to action number -std::map action_id_map; - -// maps algorithm name to algorithm number -std::map algorithm_id_map; -// vector holding algorithm run sequence, where algorithm run is a pair of algorithm and number of iterations -std::vector alg_switches; - -std::string data_type; - -d_type amp_threshold; -bool amp_threshold_fill_zeros; - -// d_type phase_min; -//d_type phase_max; -float beta; - -// support -std::vector support_area; -float support_threshold; -float support_sigma; -std::vector support_triggers; -int support_alg; - -//partial coherence -//PartialCoherence *partial_coherence = NULL; -int pcdi_alg; -std::vector pcdi_roi; -std::vector pcdi_triggers; -bool pcdi_normalize; -int pcdi_iter; - -bool d_type_precision; - -// number of iterates to average -int avg_iterations; - -// calculated number of iterations -int number_iterations; - -int twin; - -int regularized_amp; - -const char * save_dir; - -const char * continue_dir; - -int action; -int action_stage; - -bool save_results; - -bool plot_errors; - -int gc; - -int device; - -int low_res_iterations; - -float iter_low_res_sigma_min; - -float iter_low_res_sigma_max; - -std::vector update_resolution_triggers; - Params::Params(const char* config_file, int stage, std::vector data_dim) { diff --git a/src_cpp/pcdi.cpp b/src_cpp/pcdi.cpp index a7f7a4f..66b2696 100644 --- a/src_cpp/pcdi.cpp +++ b/src_cpp/pcdi.cpp @@ -15,13 +15,6 @@ See LICENSE file. using namespace af; -af::array kernel_array; -af::array roi_amplitudes_prev; -af::array roi_data_abs; -d_type sum_roi_data; -af::dim4 roi_dims; -af::dim4 dims; - PartialCoherence::PartialCoherence(Params *params, af::array coherence_array) { roi= params->GetPcdiRoi(); diff --git a/src_cpp/state.cpp b/src_cpp/state.cpp index 58f89aa..60a175b 100644 --- a/src_cpp/state.cpp +++ b/src_cpp/state.cpp @@ -6,7 +6,6 @@ See LICENSE file. #include "stdio.h" #include "vector" -#include "map" #include "state.hpp" #include "parameters.hpp" #include "support.hpp" @@ -16,44 +15,6 @@ See LICENSE file. using namespace af; -// a reference to params object -Params *params; - -// current iteration -int current_iter; -// number of configured iterations for reconstruction -int total_iter_num; - -// The vector of errors indexed by iteration -std::vector errors; - -// current algorithm -Algorithm * current_alg; -// current index of index switches vector -int alg_switch_index; - -// mapping of algorithm id to an Algorithm object -std::map algorithm_map; - -// a flag indicating whether to update support -bool update_support; -// current index in support_triggers vector -int support_triggers_index; - -// partial coherence state -// a flag indicating whether to update partial coherence -bool run_convolution; -bool update_kernel; -// current index in support_partial_coherence vector -int partial_coherence_triggers_index; - -int update_resolution_triggers_index; -bool update_resolution; - -bool averaging; - -bool apply_twin; - State::State(Params* parameters) { diff --git a/src_cpp/support.cpp b/src_cpp/support.cpp index f680ee1..877005c 100644 --- a/src_cpp/support.cpp +++ b/src_cpp/support.cpp @@ -5,10 +5,13 @@ See LICENSE file. // Created by Barbara Frosik #include "stdio.h" +#include "vector" #include "support.hpp" #include "parameters.hpp" #include "util.hpp" +#include "arrayfire.h" +using namespace af; Support::Support(const af::dim4 data_dim, Params *params, af::array support) { diff --git a/src_cpp/util.cpp b/src_cpp/util.cpp index 2b3c9bb..f4c8c87 100644 --- a/src_cpp/util.cpp +++ b/src_cpp/util.cpp @@ -5,9 +5,10 @@ See LICENSE file. // Created by Barbara Frosik #include "util.hpp" +#include "arrayfire.h" #include "common.h" -#include -#include +#include "algorithm" +#include "vector" #include "cstdio" using namespace af; diff --git a/src_cpp/worker.cpp b/src_cpp/worker.cpp index 2af7cbf..c32352b 100644 --- a/src_cpp/worker.cpp +++ b/src_cpp/worker.cpp @@ -11,6 +11,7 @@ See LICENSE file. #include "math.h" #include "vector" #include "map" +#include "arrayfire.h" #include "parameters.hpp" #include "support.hpp" #include "pcdi.hpp" @@ -20,19 +21,7 @@ See LICENSE file. #include "util.hpp" #include "resolution.hpp" -af::array data; // this is abs -af::array iter_data; // if low resolutionis used, data will differ in iterations -int num_points; -d_type norm_data; -int current_iteration; -af::array ds_image; -int aver_iter; -std::vector aver_v; -std::vector support_vector; -std::vector coherence_vector; -d_type max_data; -af::Window * errors_plot; - +using namespace af; Reconstruction::Reconstruction(af::array image_data, af::array guess, Params* params, af::array support_array, af::array coherence_array) { From c26fa2c3c60ce2151c89feef612f2d83d5919499 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Wed, 21 Mar 2018 15:38:05 -0500 Subject: [PATCH 067/336] added phase constrain --- config.test | 12 ++- include/parameters.hpp | 26 +++--- include/pcdi.hpp | 9 +- include/state.hpp | 8 ++ include/support.hpp | 12 +-- include/util.hpp | 2 + include/worker.hpp | 6 +- src_cpp/algorithm.cpp | 2 +- src_cpp/parameters.cpp | 203 +++++++++++++++++++++++++++-------------- src_cpp/pcdi.cpp | 9 +- src_cpp/state.cpp | 20 +++- src_cpp/support.cpp | 44 ++++++--- src_cpp/util.cpp | 1 - src_cpp/worker.cpp | 14 ++- 14 files changed, 236 insertions(+), 132 deletions(-) diff --git a/config.test b/config.test index 98742c2..6feae44 100644 --- a/config.test +++ b/config.test @@ -92,8 +92,8 @@ gc = 5; plot_errors = true // indicates whether to plot errors during calculations. Plotting will slow down. //algorithm_sequence = ((3, ("ER",2), ("HIO", 2), ("ER", 2)), (2, ("ER",3), ("HIO",3))) -//algorithm_sequence = ((1, ("ER",1))) -algorithm_sequence = ((1, ("ER",19), ("HIO", 10)), (1,("ER",10))) +//algorithm_sequence = ((1, ("ER",6))) +algorithm_sequence = ((1, ("ER",19), ("HIO", 10)), (1,("ER",20))) //algorithm_sequence = ((1, ("ER",19), ("HIO", 4)), (1,("ER",4))) //algorithm_sequence = ((1, ("ER",19), ("HIO", 10)), (1,("ER",10)), (1, ("ER",10), ("HIO", 20)), (1,("ER",10))) // defines algorithm applied in each iteration by a sequence of tuples. @@ -106,8 +106,10 @@ twin = 2; // it is done in ER/HIO. If don't want to apply twin, set it negative. //amp_threshold_fill_zeros = true; -//phase_min = -2.0; -//phase_max = 2.0; +phase_triggers = ((1, 1, 32)) +phase_min = -2.0; +phase_max = 2.0; + beta = .9; // support @@ -127,7 +129,7 @@ support_area = [.5,.5,.5]; // partial coherence partial_coherence_type = "LUCY"; // if type is not defined, partial coherence is not applied -partial_coherence_triggers = ((15, 14)); +partial_coherence_triggers = ((5, 14)); // trigger contains starting iteration, step, and ending iteration (if missing, run // to the end). partial_coherence_iteration_num = 20; diff --git a/include/parameters.hpp b/include/parameters.hpp index 17de1be..fd3a591 100644 --- a/include/parameters.hpp +++ b/include/parameters.hpp @@ -12,8 +12,6 @@ See LICENSE file. #include "vector" #include "map" -class Config; - struct Trigger_setting { int start_iteration; @@ -33,8 +31,6 @@ typedef struct Trigger_setting trigger_setting; class Params { private: - Config cfg; - // maps action name to action number std::map action_id_map; @@ -48,8 +44,6 @@ class Params d_type amp_threshold; bool amp_threshold_fill_zeros; - // d_type phase_min; - //d_type phase_max; float beta; // support @@ -58,7 +52,10 @@ class Params float support_sigma; std::vector support_triggers; int support_alg; - + std::vector phase_triggers; + d_type phase_min; + d_type phase_max; + //partial coherence //PartialCoherence *partial_coherence = NULL; int pcdi_alg; @@ -102,7 +99,7 @@ class Params std::vector update_resolution_triggers; - std::vector ParseTriggers(std::string trigger_name, int); + std::vector CompactTriggers(std::vector triggers); void BuildAlgorithmMap(); void BuildActionMap(); @@ -122,6 +119,13 @@ class Params float GetSupportSigma(); std::vector GetSupportTriggers(); int GetSupportAlg(); + // Returns minimum phase value for the HIO processing. + d_type GetPhaseMin(); + + // Returns maximum phase value for the HIO processing. + d_type GetPhaseMax(); + + std::vector GetPhaseTriggers(); int GetPcdiAlgorithm(); std::vector GetPcdiRoi(); @@ -141,12 +145,6 @@ class Params // Returns false, if the values should not be modified. bool IsAmpThresholdFillZeros(); - // Returns minimum phase value for the HIO processing. - d_type GetPhaseMin(); - - // Returns maximum phase value for the HIO processing. - d_type GetPhaseMax(); - // Returns beta parameter for the HIO processing. float GetBeta(); diff --git a/include/pcdi.hpp b/include/pcdi.hpp index ee4edf7..e0768aa 100644 --- a/include/pcdi.hpp +++ b/include/pcdi.hpp @@ -8,17 +8,16 @@ See LICENSE file. #define pcdi_hpp #include "vector" +#include "arrayfire.h" -class Params; +using namespace af; -namespace af { - class array; - class dim4; -} +class Params; class PartialCoherence { private: + Params * params; std::vector roi; std::vector triggers; int trigger_index; diff --git a/include/state.hpp b/include/state.hpp index b3c687b..eb2f798 100644 --- a/include/state.hpp +++ b/include/state.hpp @@ -47,6 +47,11 @@ class State // current index in support_triggers vector int support_triggers_index; + // a flag indicating whether to update phase + bool update_phase; + // current index in phase_triggers vector + int phase_triggers_index; + // partial coherence state // a flag indicating whether to update partial coherence bool run_convolution; @@ -92,6 +97,9 @@ class State // Returns true if the current state should include support update. bool IsUpdateSupport(); + // Returns true if the current state should include phase update. + bool IsUpdatePhase(); + // Returns true if the current state should include partial coherence update. bool IsUpdatePartialCoherence(); diff --git a/include/support.hpp b/include/support.hpp index 0c41bfb..d171868 100644 --- a/include/support.hpp +++ b/include/support.hpp @@ -8,27 +8,27 @@ See LICENSE file. #define support_hpp #include "common.h" +#include "arrayfire.h" -class Params; +using namespace af; -namespace af { - class array; - class dim4; -} +class Params; class Support { private: + Params * params; af::array distribution; float threshold; float sigma; int algorithm; af::array support_array; + af::array init_support_array; af::array GaussConvFft(af::array ds_image); public: Support(const af::dim4 data_dim, Params *params, af::array support_array); - void Update(const af::array ds_image); + void Update(const af::array ds_image, bool amp, bool phase); int GetTriggerAlgorithm(); float GetThreshold(); af::array GetSupportArray(bool twin=false); diff --git a/include/util.hpp b/include/util.hpp index c7d265f..9ab1181 100644 --- a/include/util.hpp +++ b/include/util.hpp @@ -8,6 +8,8 @@ See LICENSE file. #define util_hpp #include "common.h" +#include "vector" +#include "string" namespace af { class array; diff --git a/include/worker.hpp b/include/worker.hpp index 2fbebf8..e575538 100644 --- a/include/worker.hpp +++ b/include/worker.hpp @@ -10,6 +10,7 @@ See LICENSE file. #include "stdio.h" #include "vector" #include "map" +#include "arrayfire.h" #include "common.h" class Params; @@ -18,10 +19,7 @@ class Support; class PartialCoherence; class Resolution; -namespace af { - class array; - class Window; -} +using namespace af; // This class represents a single image phase reconstruction processing. // It constructs the following objects: diff --git a/src_cpp/algorithm.cpp b/src_cpp/algorithm.cpp index 4f50150..4c3fb18 100644 --- a/src_cpp/algorithm.cpp +++ b/src_cpp/algorithm.cpp @@ -10,7 +10,7 @@ See LICENSE file. #include "worker.hpp" #include "common.h" -use namespace af; +using namespace af; void Algorithm::RunAlgorithm(Reconstruction * reconstruction) { diff --git a/src_cpp/parameters.cpp b/src_cpp/parameters.cpp index f6061ef..ddc7d52 100644 --- a/src_cpp/parameters.cpp +++ b/src_cpp/parameters.cpp @@ -7,14 +7,16 @@ See LICENSE file. #include "string.h" #include "iostream" -#include "libconfig.h++" #include "algorithm" #include "parameters.hpp" #include "common.h" #include "util.hpp" +#include "libconfig.h++" +#include "math.h" using namespace libconfig; + Params::Params(const char* config_file, int stage, std::vector data_dim) { action_id_map.clear(); @@ -28,6 +30,8 @@ Params::Params(const char* config_file, int stage, std::vector data_dim) support_sigma = 1.0; support_triggers.clear(); support_alg = -1; + phase_min = -atan(1)*2.0; + phase_max = atan(1)*2.0; pcdi_alg = 0; pcdi_roi.clear(); pcdi_triggers.clear(); @@ -48,11 +52,14 @@ Params::Params(const char* config_file, int stage, std::vector data_dim) device = -1; low_res_iterations = 0; iter_low_res_sigma_min = support_sigma; + iter_low_res_sigma_max = 3.0; update_resolution_triggers.clear(); BuildAlgorithmMap(); BuildActionMap(); + + Config cfg; // Read the file. If there is an error, report. try @@ -100,7 +107,6 @@ Params::Params(const char* config_file, int stage, std::vector data_dim) { action_stage = stage; } - try { save_results = cfg.lookup("save_results"); } @@ -181,7 +187,39 @@ Params::Params(const char* config_file, int stage, std::vector data_dim) } catch ( const SettingNotFoundException &nfex) { } - support_triggers = ParseTriggers("support", action_stage); + + try { + std::vector triggers; + const Setting& root = cfg.getRoot(); + const Setting &tmp = root["support_triggers"]; + for (int i =0; i < tmp.getLength(); i++) + { + int start = tmp[i][1]; // set the first trigger to step + if (action_stage == 0) + { + start = tmp[i][0]; + } + int step = tmp[i][1]; + int end_step; + if (tmp[i].getLength() > 2) + { + end_step = tmp[i][2]; + end_step = std::min(end_step, number_iterations); + } + else + { + end_step = number_iterations; + } + triggers.push_back(Trigger_setting(start, step, end_step)); + } + support_triggers = CompactTriggers(triggers); + triggers.clear(); + } + catch ( const SettingNotFoundException &nfex) + { + printf("No support_triggers' parameter in configuration file.\n"); + } + try { support_alg = algorithm_id_map[cfg.lookup("support_type")]; } @@ -190,6 +228,50 @@ Params::Params(const char* config_file, int stage, std::vector data_dim) printf((std::string("No 'support_type' parameter in configuration file.\n")).c_str()); } + try { + std::vector triggers; + const Setting& root = cfg.getRoot(); + const Setting &tmp = root["phase_triggers"]; + for (int i =0; i < tmp.getLength(); i++) + { + int start = tmp[i][1]; // set the first trigger to step + if (action_stage == 0) + { + start = tmp[i][0]; + } + int step = tmp[i][1]; + int end_step; + if (tmp[i].getLength() > 2) + { + end_step = tmp[i][2]; + end_step = std::min(end_step, number_iterations); + } + else + { + end_step = number_iterations; + } + triggers.push_back(Trigger_setting(start, step, end_step)); + } + phase_triggers = CompactTriggers(triggers); + triggers.clear(); + try { + phase_min = cfg.lookup("phase_min"); + } + catch (const SettingNotFoundException &nfex) + { + printf((std::string("No 'phase_min' parameter in configuration file. Set to pi/2.\n")).c_str()); + } + try { + phase_max = cfg.lookup("phase_max"); + } + catch (const SettingNotFoundException &nfex) + { + printf((std::string("No 'phase_max' parameter in configuration file. Set to pi/2.\n")).c_str()); + } + } + catch ( const SettingNotFoundException &nfex) + { } + try { pcdi_alg = algorithm_id_map[cfg.lookup("partial_coherence_type")]; } @@ -197,7 +279,6 @@ Params::Params(const char* config_file, int stage, std::vector data_dim) { printf((std::string("No 'partial_coherence_type' parameter in configuration file.\n")).c_str()); } - if (pcdi_alg > 0) { try { @@ -220,7 +301,39 @@ Params::Params(const char* config_file, int stage, std::vector data_dim) printf("No 'partial_coherence_roi' parameter in configuration file.\n"); } - pcdi_triggers = ParseTriggers("partial_coherence", action_stage); + //pcdi_triggers = ParseTriggers("partial_coherence", action_stage); + try { + std::vector triggers; + const Setting& root = cfg.getRoot(); + const Setting &tmp = root["partial_coherence_triggers"]; + for (int i =0; i < tmp.getLength(); i++) + { + int start = tmp[i][1]; // set the first trigger to step + if (action_stage == 0) + { + start = tmp[i][0]; + } + int step = tmp[i][1]; + int end_step; + if (tmp[i].getLength() > 2) + { + end_step = tmp[i][2]; + end_step = std::min(end_step, number_iterations); + } + else + { + end_step = number_iterations; + } + triggers.push_back(Trigger_setting(start, step, end_step)); + } + pcdi_triggers = CompactTriggers(triggers); + triggers.clear(); + } + catch ( const SettingNotFoundException &nfex) + { + printf("No partial_coherence_triggers' parameter in configuration file.\n"); + } + try { pcdi_normalize = cfg.lookup("partial_coherence_normalize"); } @@ -307,23 +420,6 @@ Params::Params(const char* config_file, int stage, std::vector data_dim) // printf("No 'amp_threshold_fill_zeros' parameter in configuration file.\n"); // } // -// try { -// phase_min = cfg.lookup("phase_min"); -// } -// catch (const SettingNotFoundException &nfex) -// { -// phase_min = 120; -// printf("No 'phase_min' parameter in configuration file.\n"); -// } -// -// try { -// phase_max = cfg.lookup("phase_max"); -// } -// catch (const SettingNotFoundException &nfex) -// { -// phase_max = 10; -// printf("No 'phase_max' parameter in configuration file.\n"); -// } try { @@ -398,39 +494,9 @@ void Params::BuildActionMap() action_id_map.insert(std::pair("continue", ACTION_CONTINUE)); } -std::vector Params::ParseTriggers(std::string trigger_name, int action_stage) +std::vector Params::CompactTriggers(std::vector triggers) { - std::vector trigger_iterations; - const Setting& root = cfg.getRoot(); - std::vector triggers; - - try { - const Setting &tmp = root[(trigger_name + std::basic_string("_triggers")).c_str()]; - for (int i =0; i < tmp.getLength(); i++) - { - int start = tmp[i][1]; // set the first trigger to step - if (action_stage == 0) - { - int start = tmp[i][0]; - } - int step = tmp[i][1]; - int end_step; - if (tmp[i].getLength() > 2) - { - end_step = tmp[i][2]; - end_step = std::min(end_step, number_iterations); - } - else - { - end_step = number_iterations; - } - triggers.push_back(Trigger_setting(start, step, end_step)); - } - } - catch ( const SettingNotFoundException &nfex) - { - printf((std::string("No ") + trigger_name + std::string("_triggers' parameter in configuration file.")).c_str()); - } + std::vector trigger_iterations; for (int i = 0; i < triggers.size(); i++) { @@ -463,16 +529,6 @@ bool Params::IsAmpThresholdFillZeros() return amp_threshold_fill_zeros; } -//d_type Params::GetPhaseMin() -//{ -// return phase_min; -//} - -//d_type Params::GetPhaseMax() -//{ -// return phase_max; -//} - float Params::GetBeta() { return beta; @@ -518,10 +574,21 @@ int Params::GetSupportAlg() return support_alg; } -//PartialCoherence * Params::GetPartialCoherence() -//{ -// return partial_coherence; -//} +d_type Params::GetPhaseMin() +{ + return phase_min; +} + +d_type Params::GetPhaseMax() +{ + return phase_max; +} + +std::vector Params::GetPhaseTriggers() +{ + return phase_triggers; +} + int Params::GetPcdiAlgorithm() { return pcdi_alg; diff --git a/src_cpp/pcdi.cpp b/src_cpp/pcdi.cpp index 66b2696..225f14f 100644 --- a/src_cpp/pcdi.cpp +++ b/src_cpp/pcdi.cpp @@ -8,15 +8,13 @@ See LICENSE file. #include "common.h" #include "pcdi.hpp" #include "util.hpp" -#include "arrayfire.h" #include "string" #include "sstream" #include "parameters.hpp" -using namespace af; - -PartialCoherence::PartialCoherence(Params *params, af::array coherence_array) +PartialCoherence::PartialCoherence(Params *parameters, af::array coherence_array) { + params = parameters; roi= params->GetPcdiRoi(); triggers = params->GetPcdiTriggers(); trigger_index = 0; @@ -52,7 +50,8 @@ void PartialCoherence::Init(af::array data) } if (Utils::IsNullArray(kernel_array)) { - kernel_array = constant(0.5, roi_dims); + d_type c = 0.5; + kernel_array = constant(c, roi_dims); } dim4 kdim = kernel_array.dims(); } diff --git a/src_cpp/state.cpp b/src_cpp/state.cpp index 60a175b..a979368 100644 --- a/src_cpp/state.cpp +++ b/src_cpp/state.cpp @@ -25,6 +25,8 @@ State::State(Params* parameters) alg_switch_index = 0; update_support = false; support_triggers_index = 0; + update_phase = false; + phase_triggers_index = 0; run_convolution = false; update_kernel = false; partial_coherence_triggers_index = 0; @@ -54,8 +56,6 @@ void State::Init() } } current_alg = algorithm_map[params->GetAlgSwitches()[0].algorithm_id]; - - std::vector temp = params->GetUpdateResolutionTriggers(); } void State::MapAlgorithmObject(int alg_id) @@ -97,6 +97,17 @@ int State::Next() update_support = false; } + // check if update phase this iteration + if ((params->GetPhaseTriggers().size() > 0) && (params->GetPhaseTriggers()[phase_triggers_index] == current_iter)) + { + update_phase = true; + phase_triggers_index++; + } + else + { + update_phase = false; + } + // check if change resolution this iteration if ((params->GetUpdateResolutionTriggers().size() > 0) && (params->GetUpdateResolutionTriggers()[update_resolution_triggers_index] == current_iter)) { @@ -144,6 +155,11 @@ bool State::IsUpdateSupport() return update_support; } +bool State::IsUpdatePhase() +{ + return update_phase; +} + bool State::IsUpdatePartialCoherence() { return update_kernel; diff --git a/src_cpp/support.cpp b/src_cpp/support.cpp index 877005c..c07af25 100644 --- a/src_cpp/support.cpp +++ b/src_cpp/support.cpp @@ -9,19 +9,18 @@ See LICENSE file. #include "support.hpp" #include "parameters.hpp" #include "util.hpp" -#include "arrayfire.h" -using namespace af; - -Support::Support(const af::dim4 data_dim, Params *params, af::array support) +Support::Support(const af::dim4 data_dim, Params *parameters, af::array support) { + params = parameters; threshold = params->GetSupportThreshold(); sigma = params->GetSupportSigma(); algorithm = params->GetSupportAlg(); + af::array ones = constant(1, Utils::Int2Dim4(params->GetSupportArea()), u32); + init_support_array = Utils::PadAround(ones, data_dim, 0); if (Utils::IsNullArray(support)) { - af::array ones = constant(1, Utils::Int2Dim4(params->GetSupportArea()), u32); - support_array = Utils::PadAround(ones, data_dim, 0); + support_array = init_support_array.copy(); } else { @@ -40,14 +39,33 @@ Support::Support(const af::dim4 data_dim, Params *params, af::array support) } } -void Support::Update(const af::array ds_image_abs) +void Support::Update(const af::array ds_image, bool amp_trigger, bool phase_trigger) { - printf("updating support\n"); - af::array convag = GaussConvFft(ds_image_abs); - d_type max_convag = af::max(convag); - convag = convag/max_convag; - printf("convag sum max %f \n", sum(convag)); - support_array = (convag >= threshold); + if (amp_trigger) + { + printf("updating support\n"); + af::array convag = GaussConvFft(abs(ds_image)); + d_type max_convag = af::max(convag); + convag = convag/max_convag; + support_array = (convag >= threshold); + } + if (phase_trigger) + { + af::array phase = atan2(imag(ds_image), real(ds_image)); + af::array phase_condition = ((phase > params->GetPhaseMin()) && (phase < params->GetPhaseMax())); + if (amp_trigger) + { + support_array *= phase_condition; + } + else + { + support_array = phase_condition * init_support_array; + } + } + // set to true (1) elements that are greater than phase min and less than phase max, and support is 1 + // af::array phase_condition = (phase > params->GetPhaseMin()) && (phase < params->GetPhaseMax()) || (support->GetSupportArray() == 0); + // replace the elements that above condition is 1 with prev_ds_image - ds_image * params->GetBeta() +//replace(ds_image, phase_condition, (prev_ds_image - ds_image * params->GetBeta())); } printf("support sum %f\n", sum(support_array)); } diff --git a/src_cpp/util.cpp b/src_cpp/util.cpp index f4c8c87..c3dcaf4 100644 --- a/src_cpp/util.cpp +++ b/src_cpp/util.cpp @@ -8,7 +8,6 @@ See LICENSE file. #include "arrayfire.h" #include "common.h" #include "algorithm" -#include "vector" #include "cstdio" using namespace af; diff --git a/src_cpp/worker.cpp b/src_cpp/worker.cpp index c32352b..f30ffa8 100644 --- a/src_cpp/worker.cpp +++ b/src_cpp/worker.cpp @@ -11,7 +11,6 @@ See LICENSE file. #include "math.h" #include "vector" #include "map" -#include "arrayfire.h" #include "parameters.hpp" #include "support.hpp" #include "pcdi.hpp" @@ -21,9 +20,8 @@ See LICENSE file. #include "util.hpp" #include "resolution.hpp" -using namespace af; -Reconstruction::Reconstruction(af::array image_data, af::array guess, Params* params, af::array support_array, af::array coherence_array) +Reconstruction::Reconstruction(af::array image_data, af::array guess, Params* parameters, af::array support_array, af::array coherence_array) { num_points = 0; norm_data = 0; @@ -31,7 +29,7 @@ Reconstruction::Reconstruction(af::array image_data, af::array guess, Params* pa aver_iter = 0; data = image_data; ds_image = guess; - params = params; + params = parameters; state = new State(params); support = new Support(data.dims(), params, support_array); @@ -75,7 +73,7 @@ void Reconstruction::Init() { // initialize other components state->Init(); - if (params->GetPcdiAlgorithm() > 0) + if (partialCoherence != NULL) { partialCoherence->Init(data); } @@ -107,9 +105,9 @@ void Reconstruction::Iterate() d_type iter_data_max = af::max(iter_data); iter_data = iter_data/iter_data_max; } - if (state->IsUpdateSupport()) + if (state->IsUpdateSupport() || state->IsUpdatePhase()) { - support->Update(abs(ds_image).copy()); + support->Update(ds_image.copy(), state->IsUpdateSupport(), state->IsUpdatePhase()); } if (params->GetGC() && (current_iteration+1) % params->GetGC() == 0) @@ -130,7 +128,6 @@ void Reconstruction::Iterate() if (aver_v.size() > 0) { - printf("final averaging\n"); af::array aver_a(ds_image.dims(), &aver_v[0]); af::array ratio = Utils::GetRatio(aver_a, abs(ds_image)); ds_image *= ratio/aver_iter; @@ -163,6 +160,7 @@ af::array Reconstruction::ModulusProjection() } else { +printf("current iter, pcdi first trigger, action_stage %i, %i, %i\n", current_iteration, partialCoherence->GetTriggers()[0],params->GetActionStage()); if ((current_iteration >= partialCoherence->GetTriggers()[0]) || (params->GetActionStage())) { printf("coherence using lucy\n"); From 0caa17a129f4542d33f292899d790ece11016d34 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Thu, 22 Mar 2018 15:37:01 -0500 Subject: [PATCH 068/336] modified the file preparation to match matlab, removed error corve during reconstruction --- config.test | 16 +++++----- include/worker.hpp | 4 +-- src_cpp/worker.cpp | 46 ++++++++++++++--------------- src_py/controller/fast_module.py | 10 +++---- src_py/controller/reconstruction.py | 22 +++++++++----- src_py/utilities/utils.py | 41 +++++++++++++++++++++++++ 6 files changed, 94 insertions(+), 45 deletions(-) diff --git a/config.test b/config.test index 6feae44..ec14a7a 100644 --- a/config.test +++ b/config.test @@ -65,13 +65,13 @@ aliens = ((170,220,112,195,245,123), (50,96,10,60,110,20)) // #0 and #1 and another given by #2,#3. accepts as // many as you like. -binning = [2,2,2] +binning = [1,1,1] // applied after aliens center_shift = [0,0,0] // the maximum is centered after binning, and moved according to center_shift -adjust_dimensions = [0, 3, -5] +adjust_dimensions = [-20, -70, -70] // applied after centering. If number is positive, the array will be padded // with 0s in this dimension by the pad number on each end. // If negative, the array will be cropped by that number on each end in this @@ -92,8 +92,8 @@ gc = 5; plot_errors = true // indicates whether to plot errors during calculations. Plotting will slow down. //algorithm_sequence = ((3, ("ER",2), ("HIO", 2), ("ER", 2)), (2, ("ER",3), ("HIO",3))) -//algorithm_sequence = ((1, ("ER",6))) -algorithm_sequence = ((1, ("ER",19), ("HIO", 10)), (1,("ER",20))) +//algorithm_sequence = ((1, ("ER",3))) +algorithm_sequence = ((2, ("ER",19), ("HIO", 10)), (1,("ER",20))) //algorithm_sequence = ((1, ("ER",19), ("HIO", 4)), (1,("ER",4))) //algorithm_sequence = ((1, ("ER",19), ("HIO", 10)), (1,("ER",10)), (1, ("ER",10), ("HIO", 20)), (1,("ER",10))) // defines algorithm applied in each iteration by a sequence of tuples. @@ -106,7 +106,7 @@ twin = 2; // it is done in ER/HIO. If don't want to apply twin, set it negative. //amp_threshold_fill_zeros = true; -phase_triggers = ((1, 1, 32)) +phase_triggers = ((1, 1, 30)) phase_min = -2.0; phase_max = 2.0; @@ -114,7 +114,7 @@ beta = .9; // support //support_triggers = ((5, 5, 300), (1, 2)); -support_triggers = ((5, 4, 300)); +support_triggers = ((5, 5, 300)); //support_triggers = ((1, 5, 300)); // trigger contains starting iteration, step, and ending iteration (if missing, run // to the end). @@ -144,7 +144,7 @@ iter_low_res_sigma_min = 0.0 // if iter_low_res_sigma_min is 0 or not defined, the value is assigned to support_sigma iter_low_res_sigma_max = 3.0 // max sigma, if not defined, default to 3 -update_resolution_triggers = (1, 20) +update_resolution_triggers = (1, 30) // the data is being modified with calculated mask starting with first iteration. // the trigger defines step and last iteration for which it is applied @@ -171,5 +171,5 @@ pixel = [55.0e-6, 55.0e-6]; // size to crop the image array //crop = [120,120,120] -crop = [.85, .85, .85] +crop = [.75, .75, .75] diff --git a/include/worker.hpp b/include/worker.hpp index e575538..d28cddc 100644 --- a/include/worker.hpp +++ b/include/worker.hpp @@ -54,7 +54,7 @@ class Reconstruction std::vector support_vector; std::vector coherence_vector; d_type max_data; - af::Window * errors_plot; +// af::Window * errors_plot; // This method returns sum of squares of all elements in the array double GetNorm(af::array arr); @@ -73,7 +73,7 @@ class Reconstruction d_type CalculateError(); - void Plot(); +// void Plot(); public: // The class constructor takes data array, an image guess array in reciprocal space, and configuration file. The image guess diff --git a/src_cpp/worker.cpp b/src_cpp/worker.cpp index f30ffa8..3e553d3 100644 --- a/src_cpp/worker.cpp +++ b/src_cpp/worker.cpp @@ -46,10 +46,10 @@ Reconstruction::Reconstruction(af::array image_data, af::array guess, Params* pa resolution = new Resolution(params); } max_data = af::max(data); - if (params->IsPlotErrors()) - { - errors_plot = new Window(512, 512, "errors"); - } +// if (params->IsPlotErrors()) +// { +// errors_plot = new Window(512, 512, "errors"); +// } } Reconstruction::~Reconstruction() @@ -60,10 +60,10 @@ Reconstruction::~Reconstruction() { delete partialCoherence; } - if (errors_plot != NULL) - { - delete errors_plot; - } +// if (errors_plot != NULL) +// { +// delete errors_plot; +// } aver_v.clear(); support_vector.clear(); coherence_vector.clear(); @@ -117,10 +117,10 @@ void Reconstruction::Iterate() Algorithm * alg = state->GetCurrentAlg(); alg->RunAlgorithm(this); - if (params->IsPlotErrors() && !errors_plot->close()) - { - Plot(); - } +// if (params->IsPlotErrors() && !errors_plot->close()) +// { +// Plot(); +// } Average(); } @@ -268,17 +268,17 @@ void Reconstruction::VectorizeCoherence() delete [] coherence_v; } -void Reconstruction::Plot() -{ - if (current_iteration > 5 ) - { - // the plot will not show the very first error - af::array x = seq(1.0, float(current_iteration-1), 1.0); - std::vector errors = state->GetErrors(); - af::array y(dim4(x.elements()), &errors[1]); - errors_plot->plot(x,y.as(f32)); - } -} +//void Reconstruction::Plot() +//{ +// if (current_iteration > 5 ) +// { +// // the plot will not show the very first error +// af::array x = seq(1.0, float(current_iteration-1), 1.0); +// std::vector errors = state->GetErrors(); +// af::array y(dim4(x.elements()), &errors[1]); +// errors_plot->plot(x,y.as(f32)); +// } +//} int Reconstruction::GetCurrentIteration() { diff --git a/src_py/controller/fast_module.py b/src_py/controller/fast_module.py index 2ae47b5..00943d1 100755 --- a/src_py/controller/fast_module.py +++ b/src_py/controller/fast_module.py @@ -23,7 +23,7 @@ import matplotlib.pyplot as plt import src_py.cyth.bridge_cpu as bridge_cpu import src_py.cyth.bridge_opencl as bridge_opencl -import src_py.cyth.bridge_cuda as bridge_cuda +#import src_py.cyth.bridge_cuda as bridge_cuda __author__ = "Barbara Frosik" @@ -182,10 +182,10 @@ def reconstruction(proc, conf, data, coh_dims, image, support, coherence): cx.save_CX(conf, image, support) - # errors.pop(0) - # plt.plot(errors) - # plt.ylabel('errors') - # plt.show() + errors.pop(0) + plt.plot(errors) + plt.ylabel('errors') + plt.show() return image, support, coherence, errors diff --git a/src_py/controller/reconstruction.py b/src_py/controller/reconstruction.py index dfeb517..8a5e0f1 100644 --- a/src_py/controller/reconstruction.py +++ b/src_py/controller/reconstruction.py @@ -103,21 +103,29 @@ def prepare_data(config_map, data): # square root data data = np.sqrt(data) - # get centered array - try: - center_shift = tuple(config_map.center_shift) - except AttributeError: - center_shift = (0, 0, 0) - - data = ut.get_centered(data, center_shift) +# # get centered array +# try: +# center_shift = tuple(config_map.center_shift) +# except AttributeError: +# center_shift = (0, 0, 0) +# data = ut.get_centered1(data, center_shift) # adjust the size, either zero pad or crop array + print ('data shape before adjust', data.shape) try: pad = tuple(config_map.adjust_dimensions) data = ut.adjust_dimensions(data, pad) except AttributeError: pass + # get centered array + try: + center_shift = tuple(config_map.center_shift) + except AttributeError: + center_shift = (0, 0, 0) + + data = ut.get_centered1(data, center_shift) + return data diff --git a/src_py/utilities/utils.py b/src_py/utilities/utils.py index c654804..9ec8ee4 100644 --- a/src_py/utilities/utils.py +++ b/src_py/utilities/utils.py @@ -121,6 +121,43 @@ def binning(array, binsizes): return binned_array +def get_centered1(array, center_shift): + """ + This function finds a greatest value in the array, and puts it in a center of a new array. The extra elements in the new + array are set to 0. + + Parameters + ---------- + array : array + the original array to be centered + + center_shift : list + a list defining shift of the center + + Returns + ------- + array : array + the centered array + """ + # make the dimentions even + shape = np.asarray(array.shape) + pad = shape % 2 + if pad.sum() > 0: + array = np.lib.pad(array, ((0, pad[0]), (0, pad[1]), (0, pad[2])), 'constant', constant_values=((0.0, 0.0), (0.0, 0.0), (0.0, 0.0))).copy() + + max_coordinates = list(np.unravel_index(np.argmax(array), array.shape)) + max_coordinates = np.add(max_coordinates, center_shift) + shape = np.asarray(array.shape) + roll = tuple(shape/2 - max_coordinates) + + array = np.roll(array, roll[0], 0) + array = np.roll(array, roll[1], 1) + centered = np.roll(array, roll[2], 2) + + max_coordinates = list(np.unravel_index(np.argmax(centered), centered.shape)) + return centered + + def get_centered(array, center_shift): """ This function finds a greatest value in the array, and puts it in a center of a new array. The extra elements in the new @@ -183,12 +220,16 @@ def adjust_dimensions(arr, pad): the padded/cropped array """ dims = arr.shape + print 'shape', dims new_dims = [] new_pad = [] new_crop = [] for i in range(len(dims)): + print (', dim, no cl, new dim', dims[i], dims[i] + 2 * pad[i], get_opencl_dim(dims[i] + 2 * pad[i], 2)) new_dims.append(get_opencl_dim(dims[i] + 2 * pad[i], 2)) + #print ('new pad', max(0, int((new_dims[i] - dims[i]) / 2))) new_pad.append(max(0, int((new_dims[i] - dims[i]) / 2))) + #print ('new crop', max(0, int((dims[i] - new_dims[i]) / 2))) new_crop.append(max(0, int((dims[i] - new_dims[i]) / 2))) From 081e993e1299be8628300d7a45ea5812bd4da4d6 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Thu, 22 Mar 2018 15:52:15 -0500 Subject: [PATCH 069/336] removed line --- src_py/controller/reconstruction.py | 2 +- src_py/utilities/utils.py | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src_py/controller/reconstruction.py b/src_py/controller/reconstruction.py index 8a5e0f1..763977c 100644 --- a/src_py/controller/reconstruction.py +++ b/src_py/controller/reconstruction.py @@ -124,7 +124,7 @@ def prepare_data(config_map, data): except AttributeError: center_shift = (0, 0, 0) - data = ut.get_centered1(data, center_shift) + data = ut.get_centered(data, center_shift) return data diff --git a/src_py/utilities/utils.py b/src_py/utilities/utils.py index 9ec8ee4..dd726d9 100644 --- a/src_py/utilities/utils.py +++ b/src_py/utilities/utils.py @@ -121,7 +121,7 @@ def binning(array, binsizes): return binned_array -def get_centered1(array, center_shift): +def get_centered(array, center_shift): """ This function finds a greatest value in the array, and puts it in a center of a new array. The extra elements in the new array are set to 0. @@ -154,11 +154,10 @@ def get_centered1(array, center_shift): array = np.roll(array, roll[1], 1) centered = np.roll(array, roll[2], 2) - max_coordinates = list(np.unravel_index(np.argmax(centered), centered.shape)) return centered -def get_centered(array, center_shift): +def get_centered1(array, center_shift): """ This function finds a greatest value in the array, and puts it in a center of a new array. The extra elements in the new array are set to 0. From 2a8cad1a70ceed69271c65edd2621ffdc19155a8 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Fri, 23 Mar 2018 10:49:05 -0500 Subject: [PATCH 070/336] added capability to interrupt calc --- src_cpp/worker.cpp | 8 ++++++++ test.py | 16 +++++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src_cpp/worker.cpp b/src_cpp/worker.cpp index 3e553d3..343b5ec 100644 --- a/src_cpp/worker.cpp +++ b/src_cpp/worker.cpp @@ -5,6 +5,8 @@ See LICENSE file. // Created by Barbara Frosik #include "fstream" +#include "unistd.h" +#include "stdio.h" #include "worker.hpp" #include "cstdio" #include "cstdlib" @@ -123,6 +125,12 @@ void Reconstruction::Iterate() // } Average(); + + if (access("stopfile", F_OK) == 0) + { + remove("stopfile"); + break; + } } printf("final image\n"); diff --git a/test.py b/test.py index a8ddeff..ec163bd 100755 --- a/test.py +++ b/test.py @@ -1,9 +1,21 @@ import src_py.controller.reconstruction as rec import sys +import signal import os import argparse +from multiprocessing import Process from os.path import expanduser + +def interrupt_thread(arg): + def signal_handler(signal, frame): + open('stopfile', 'a').close() + print('You pressed Ctrl+C!') + sys.exit(0) + signal.signal(signal.SIGINT, signal_handler) + signal.pause() + + def main(arg): parser = argparse.ArgumentParser() @@ -20,7 +32,9 @@ def main(arg): if __name__ == "__main__": - main(sys.argv[1:]) + th = Process(target = interrupt_thread, args = (10,)) + th.start() + main(sys.argv[1:]) #python test.py 'opencl' '/home/phoebus/BFROSIK/CDI/S149/Staff14-3_S0149.tif' 'config.test' From 8ca895c3657a4f1b9480346099d4ed45fe6a4012 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Fri, 23 Mar 2018 16:05:29 -0500 Subject: [PATCH 071/336] terminating gracefully, changed how the dimentions are determine to follow matlab rather then opencl --- src_py/controller/reconstruction.py | 1 + src_py/utilities/utils.py | 43 +++++++++++++++++++++++++++-- test.py | 8 +++--- 3 files changed, 46 insertions(+), 6 deletions(-) diff --git a/src_py/controller/reconstruction.py b/src_py/controller/reconstruction.py index 763977c..0d43721 100644 --- a/src_py/controller/reconstruction.py +++ b/src_py/controller/reconstruction.py @@ -220,5 +220,6 @@ def reconstruction(proc, filename, conf): for g in range(low_resolution_generations, generations): image, support, coherence, errors = calc.reconstruction(proc, conf, data, coh_dims, image, support, coherence) + #reconstruction('opencl', '/home/phoebus/BFROSIK/CDI/S149/Staff14-3_S0149.tif', '/local/bfrosik/cdi/config.test') diff --git a/src_py/utilities/utils.py b/src_py/utilities/utils.py index dd726d9..77fecb6 100644 --- a/src_py/utilities/utils.py +++ b/src_py/utilities/utils.py @@ -45,6 +45,45 @@ def get_array_from_tif(filename): return tf.imread(filename) +def get_good_dim(dim): + """ + This function calculates the dimension supported by opencl library (i.e. is multiplier of 2,3, or 5) and is closest to the + given starting dimension, and spaced by the given step. + If the dimension is not supported the function adds step value and verifies the new dimension. It iterates until it finds + supported value. + + Parameters + ---------- + dim : int + a dimension that needs to be tranformed to one that is supported by the opencl library, if it is not already + + step : int + a delta to increase the dimension + + Returns + ------- + dim : int + a dimension that is supported by the opencl library, and closest to the original dimension by n*step + """ + + def is_correct(x): + sub = x + if sub%3 == 0: + sub = sub/3 + if sub%3 == 0: + sub = sub/3 + if sub%5 == 0: + sub = sub/5 + while sub%2 == 0: + sub = sub/2 + return sub == 1 + + new_dim = dim + while not is_correct(new_dim): + new_dim += 1 + return new_dim + + def get_opencl_dim(dim, step): """ This function calculates the dimension supported by opencl library (i.e. is multiplier of 2,3, or 5) and is closest to the @@ -224,8 +263,8 @@ def adjust_dimensions(arr, pad): new_pad = [] new_crop = [] for i in range(len(dims)): - print (', dim, no cl, new dim', dims[i], dims[i] + 2 * pad[i], get_opencl_dim(dims[i] + 2 * pad[i], 2)) - new_dims.append(get_opencl_dim(dims[i] + 2 * pad[i], 2)) + print (', dim, no cl, new dim', dims[i], dims[i] + 2 * pad[i], get_good_dim(dims[i] + 2 * pad[i])) + new_dims.append(get_good_dim(dims[i] + 2 * pad[i])) #print ('new pad', max(0, int((new_dims[i] - dims[i]) / 2))) new_pad.append(max(0, int((new_dims[i] - dims[i]) / 2))) #print ('new crop', max(0, int((dims[i] - new_dims[i]) / 2))) diff --git a/test.py b/test.py index ec163bd..cfcc11f 100755 --- a/test.py +++ b/test.py @@ -5,13 +5,12 @@ import argparse from multiprocessing import Process from os.path import expanduser +import subprocess def interrupt_thread(arg): def signal_handler(signal, frame): open('stopfile', 'a').close() - print('You pressed Ctrl+C!') - sys.exit(0) signal.signal(signal.SIGINT, signal_handler) signal.pause() @@ -32,9 +31,10 @@ def main(arg): if __name__ == "__main__": - th = Process(target = interrupt_thread, args = (10,)) - th.start() + p = Process(target = interrupt_thread, args = (10,)) + p.start() main(sys.argv[1:]) + p.terminate() #python test.py 'opencl' '/home/phoebus/BFROSIK/CDI/S149/Staff14-3_S0149.tif' 'config.test' From 5fca820bb0540842583d30a044dfa3c9d48bcf16 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Tue, 27 Mar 2018 15:18:13 -0500 Subject: [PATCH 072/336] added to the signal handling --- test.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/test.py b/test.py index cfcc11f..125be53 100755 --- a/test.py +++ b/test.py @@ -9,9 +9,14 @@ def interrupt_thread(arg): - def signal_handler(signal, frame): + def int_handler(signal, frame): open('stopfile', 'a').close() - signal.signal(signal.SIGINT, signal_handler) + + def term_handler(signal, frame): + pass + + signal.signal(signal.SIGINT, int_handler) + signal.signal(signal.SIGTERM, term_handler) signal.pause() @@ -31,6 +36,8 @@ def main(arg): if __name__ == "__main__": + if os.path.exists('stopfile'): + os.remove('stopfile') p = Process(target = interrupt_thread, args = (10,)) p.start() main(sys.argv[1:]) From 8f2a57cfbeff89748f293b180313e3c33fd51069 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Wed, 28 Mar 2018 11:29:24 -0500 Subject: [PATCH 073/336] fixed saving to af file --- include/parameters.hpp | 8 ++++---- include/worker.hpp | 2 +- src_cpp/manager.cpp | 16 ++++++++-------- src_cpp/parameters.cpp | 16 ++++++++-------- src_cpp/worker.cpp | 5 ++--- src_py/utilities/utils.py | 3 --- 6 files changed, 23 insertions(+), 27 deletions(-) diff --git a/include/parameters.hpp b/include/parameters.hpp index fd3a591..2951d92 100644 --- a/include/parameters.hpp +++ b/include/parameters.hpp @@ -76,9 +76,9 @@ class Params int regularized_amp; - const char * save_dir; + std::string save_dir; - const char * continue_dir; + std::string continue_dir; int action; int action_stage; @@ -163,10 +163,10 @@ class Params int GetRegularizedAmp(); // Returns directory to save results - const char * GetSaveDir(); + std::string GetSaveDir(); // Returns directory to retrieve previous results to continue - const char * GetContinueDir(); + std::string GetContinueDir(); // Returns action the program will perform. Choices are "prep_only", "new_guess", "continue" int GetAction(); diff --git a/include/worker.hpp b/include/worker.hpp index d28cddc..875851d 100644 --- a/include/worker.hpp +++ b/include/worker.hpp @@ -53,7 +53,7 @@ class Reconstruction std::vector aver_v; std::vector support_vector; std::vector coherence_vector; - d_type max_data; + //d_type max_data; // af::Window * errors_plot; // This method returns sum of squares of all elements in the array diff --git a/src_cpp/manager.cpp b/src_cpp/manager.cpp index f364bf9..e54adcf 100644 --- a/src_cpp/manager.cpp +++ b/src_cpp/manager.cpp @@ -43,10 +43,10 @@ void Manager::StartCalc(std::vector data_buffer_r, std::vector dim, bool cont = false; if(action == ACTION_CONTINUE) { - const char * continue_dir = params->GetContinueDir(); - std::string image_file = Utils::GetFullFilename(continue_dir, "image.af"); - std::string support_file = Utils::GetFullFilename(continue_dir, "support.af"); - std::string coherence_file = Utils::GetFullFilename(continue_dir, "coherence.af"); + std::string continue_dir = params->GetContinueDir(); + std::string image_file = Utils::GetFullFilename(continue_dir.c_str(), "image.af"); + std::string support_file = Utils::GetFullFilename(continue_dir.c_str(), "support.af"); + std::string coherence_file = Utils::GetFullFilename(continue_dir.c_str(), "coherence.af"); try { guess = af::readArray(image_file.c_str(), "image"); cont = true; @@ -111,10 +111,10 @@ void Manager::StartCalc(std::vector data_buffer_r, std::vector dim, if (params->IsSaveResults()) { - const char * save_dir = params->GetSaveDir(); - std::string image_file = Utils::GetFullFilename(save_dir, "image.af"); - std::string support_file = Utils::GetFullFilename(save_dir, "support.af"); - std::string coherence_file = Utils::GetFullFilename(save_dir, "coherence.af"); + std::string save_dir = params->GetSaveDir(); + std::string image_file = Utils::GetFullFilename(save_dir.c_str(), "image.af"); + std::string support_file = Utils::GetFullFilename(save_dir.c_str(), "support.af"); + std::string coherence_file = Utils::GetFullFilename(save_dir.c_str(), "coherence.af"); try { af::saveArray("image", rec->GetImage(), image_file.c_str()); diff --git a/src_cpp/parameters.cpp b/src_cpp/parameters.cpp index ddc7d52..8e4348e 100644 --- a/src_cpp/parameters.cpp +++ b/src_cpp/parameters.cpp @@ -42,8 +42,8 @@ Params::Params(const char* config_file, int stage, std::vector data_dim) number_iterations = 0; twin = -1; regularized_amp = REGULARIZED_AMPLITUDE_NONE; - save_dir = "my_dir"; - continue_dir = "my_dir"; + //save_dir = "my_dir"; + //continue_dir = "my_dir"; action = 0; action_stage = 0; save_results = false; @@ -77,7 +77,8 @@ Params::Params(const char* config_file, int stage, std::vector data_dim) try { - save_dir = cfg.lookup("save_dir"); + std::string save_dir_cp = cfg.lookup("save_dir"); + save_dir = save_dir_cp; } catch (const SettingNotFoundException &nfex) { } @@ -94,7 +95,8 @@ Params::Params(const char* config_file, int stage, std::vector data_dim) { try { - continue_dir = cfg.lookup("continue_dir"); + std::string continue_dir_cp = cfg.lookup("continue_dir"); + continue_dir = continue_dir_cp; action_stage = 1; // else it is initialized } @@ -472,8 +474,6 @@ Params::~Params() support_triggers.clear(); pcdi_roi.clear(); pcdi_triggers.clear(); - delete save_dir; - delete continue_dir; } void Params::BuildAlgorithmMap() @@ -619,12 +619,12 @@ std::vector Params::GetAlgSwitches() return alg_switches; } -const char * Params::GetSaveDir() +std::string Params::GetSaveDir() { return save_dir; } -const char * Params::GetContinueDir() +std::string Params::GetContinueDir() { return continue_dir; } diff --git a/src_cpp/worker.cpp b/src_cpp/worker.cpp index 343b5ec..8cc0972 100644 --- a/src_cpp/worker.cpp +++ b/src_cpp/worker.cpp @@ -47,7 +47,7 @@ Reconstruction::Reconstruction(af::array image_data, af::array guess, Params* pa { resolution = new Resolution(params); } - max_data = af::max(data); + //max_data = af::max(data); // if (params->IsPlotErrors()) // { // errors_plot = new Window(512, 512, "errors"); @@ -83,7 +83,7 @@ void Reconstruction::Init() norm_data = GetNorm(data); num_points = data.elements(); // multiply the rs_amplitudes by max element of data array and the norm - // d_type max_data = af::max(data); + d_type max_data = af::max(data); ds_image *= max_data * GetNorm(ds_image); // the next two lines are for testing it sets initial guess to initial support @@ -132,7 +132,6 @@ void Reconstruction::Iterate() break; } } - printf("final image\n"); if (aver_v.size() > 0) { diff --git a/src_py/utilities/utils.py b/src_py/utilities/utils.py index 77fecb6..dd6f2ba 100644 --- a/src_py/utilities/utils.py +++ b/src_py/utilities/utils.py @@ -263,11 +263,8 @@ def adjust_dimensions(arr, pad): new_pad = [] new_crop = [] for i in range(len(dims)): - print (', dim, no cl, new dim', dims[i], dims[i] + 2 * pad[i], get_good_dim(dims[i] + 2 * pad[i])) new_dims.append(get_good_dim(dims[i] + 2 * pad[i])) - #print ('new pad', max(0, int((new_dims[i] - dims[i]) / 2))) new_pad.append(max(0, int((new_dims[i] - dims[i]) / 2))) - #print ('new crop', max(0, int((dims[i] - new_dims[i]) / 2))) new_crop.append(max(0, int((dims[i] - new_dims[i]) / 2))) From 55c901cf10c319d2abe3dc1dcb9f727800fd3a58 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Wed, 28 Mar 2018 16:11:23 -0500 Subject: [PATCH 074/336] change padding/cropping to allow different sizes on both ends --- config.test | 15 ++++--- src_cpp/parameters.cpp | 2 - src_cpp/worker.cpp | 2 - src_py/controller/reconstruction.py | 3 -- src_py/utilities/utils.py | 65 +++++++++++++++++++++++------ 5 files changed, 59 insertions(+), 28 deletions(-) diff --git a/config.test b/config.test index ec14a7a..ec13feb 100644 --- a/config.test +++ b/config.test @@ -71,13 +71,12 @@ binning = [1,1,1] center_shift = [0,0,0] // the maximum is centered after binning, and moved according to center_shift -adjust_dimensions = [-20, -70, -70] - // applied after centering. If number is positive, the array will be padded - // with 0s in this dimension by the pad number on each end. - // If negative, the array will be cropped by that number on each end in this - // dimension. - // The final dimensions will adjusted up to the opencl supported dimensions - // i.e. divisible by 2, 3, and 5 only +adjust_dimensions = [-13, -13, -65, -65, -65, -65] + // If number is positive, the array will be padded. If negative, cropped. + // The parameters correspond to [x left, x right, y left, y right, z left, z right] + // The final dimensions will be adjusted up to the good number for the FFT which + // also is compatible with opencl supported dimensions + // powers of 2 or a*2^n, where a is 3, 5, or 9 // RECONSTRUCTION PARAMETERS USED BY FAST MODULE @@ -92,7 +91,7 @@ gc = 5; plot_errors = true // indicates whether to plot errors during calculations. Plotting will slow down. //algorithm_sequence = ((3, ("ER",2), ("HIO", 2), ("ER", 2)), (2, ("ER",3), ("HIO",3))) -//algorithm_sequence = ((1, ("ER",3))) +//algorithm_sequence = ((1, ("ER",2))) algorithm_sequence = ((2, ("ER",19), ("HIO", 10)), (1,("ER",20))) //algorithm_sequence = ((1, ("ER",19), ("HIO", 4)), (1,("ER",4))) //algorithm_sequence = ((1, ("ER",19), ("HIO", 10)), (1,("ER",10)), (1, ("ER",10), ("HIO", 20)), (1,("ER",10))) diff --git a/src_cpp/parameters.cpp b/src_cpp/parameters.cpp index 8e4348e..b77d56f 100644 --- a/src_cpp/parameters.cpp +++ b/src_cpp/parameters.cpp @@ -42,8 +42,6 @@ Params::Params(const char* config_file, int stage, std::vector data_dim) number_iterations = 0; twin = -1; regularized_amp = REGULARIZED_AMPLITUDE_NONE; - //save_dir = "my_dir"; - //continue_dir = "my_dir"; action = 0; action_stage = 0; save_results = false; diff --git a/src_cpp/worker.cpp b/src_cpp/worker.cpp index 8cc0972..2d46645 100644 --- a/src_cpp/worker.cpp +++ b/src_cpp/worker.cpp @@ -232,7 +232,6 @@ void Reconstruction::Average() std::vector v(image_v, image_v + ds_image.elements()); if (aver_v.size() == 0) { - printf("creating aver vector\n"); for (int i = 0; i < v.size(); i++) { aver_v.push_back(v[i]); @@ -240,7 +239,6 @@ void Reconstruction::Average() } else { - printf("adding aver vector\n"); for (int i = 0; i < v.size(); i++) { aver_v[i] += v[i]; diff --git a/src_py/controller/reconstruction.py b/src_py/controller/reconstruction.py index 0d43721..9bc7d28 100644 --- a/src_py/controller/reconstruction.py +++ b/src_py/controller/reconstruction.py @@ -111,7 +111,6 @@ def prepare_data(config_map, data): # data = ut.get_centered1(data, center_shift) # adjust the size, either zero pad or crop array - print ('data shape before adjust', data.shape) try: pad = tuple(config_map.adjust_dimensions) data = ut.adjust_dimensions(data, pad) @@ -210,8 +209,6 @@ def reconstruction(proc, filename, conf): except: coh_dims = None - print coh_dims - image, support, coherence = None, None, None gen_obj = Generation(config_map) for g in range(low_resolution_generations): diff --git a/src_py/utilities/utils.py b/src_py/utilities/utils.py index dd6f2ba..b9dbaa0 100644 --- a/src_py/utilities/utils.py +++ b/src_py/utilities/utils.py @@ -79,12 +79,14 @@ def is_correct(x): return sub == 1 new_dim = dim - while not is_correct(new_dim): + if new_dim%2 == 1: new_dim += 1 + while not is_correct(new_dim): + new_dim += 2 return new_dim -def get_opencl_dim(dim, step): +def get_opencl_dim1(dim, step): """ This function calculates the dimension supported by opencl library (i.e. is multiplier of 2,3, or 5) and is closest to the given starting dimension, and spaced by the given step. @@ -178,13 +180,9 @@ def get_centered(array, center_shift): array : array the centered array """ - # make the dimentions even - shape = np.asarray(array.shape) - pad = shape % 2 - if pad.sum() > 0: - array = np.lib.pad(array, ((0, pad[0]), (0, pad[1]), (0, pad[2])), 'constant', constant_values=((0.0, 0.0), (0.0, 0.0), (0.0, 0.0))).copy() - + print 'shape', array.shape max_coordinates = list(np.unravel_index(np.argmax(array), array.shape)) + print 'max_coord', max_coordinates max_coordinates = np.add(max_coordinates, center_shift) shape = np.asarray(array.shape) roll = tuple(shape/2 - max_coordinates) @@ -235,23 +233,19 @@ def get_centered1(array, center_shift): return centered -def adjust_dimensions(arr, pad): +def adjust_dimensions1(arr, pad): """ This function adds to or subtracts from each dimension of the array elements defined by pad. If the pad is positive, the array is padded in this dimension. The elements are added to the beginning of array and end by the same number, so the original array is centered. If the pad is negative, the array is cropped. The crop is symmetrical at the beginning and end of the array in the related dimension. The dimensions of the new array are supported by the opencl library. - - Parameters ---------- arr : array the array to pad/crop - pad : list list of three pad values, for each dimension - Returns ------- array : array @@ -267,6 +261,8 @@ def adjust_dimensions(arr, pad): new_pad.append(max(0, int((new_dims[i] - dims[i]) / 2))) new_crop.append(max(0, int((dims[i] - new_dims[i]) / 2))) + print 'new_pad', new_pad + print 'new_crop', new_crop arr = np.lib.pad(arr, ((new_pad[0], new_pad[0]), (new_pad[1], new_pad[1]), (new_pad[2], new_pad[2])), 'constant', constant_values=((0.0, 0.0), (0.0, 0.0), (0.0, 0.0))).copy() @@ -274,6 +270,49 @@ def adjust_dimensions(arr, pad): return arr[new_crop[0]:new_crop[0]+new_dims[0], new_crop[1]:new_crop[1]+new_dims[1], new_crop[2]:new_crop[2]+new_dims[2]] +def adjust_dimensions(arr, pad): + """ + This function adds to or subtracts from each dimension of the array elements defined by pad. If the pad is positive, + the array is padded in this dimension. If the pad is negative, the array is cropped. + The dimensions of the new array are supported by the opencl library. + + + Parameters + ---------- + arr : array + the array to pad/crop + + pad : list + list of three pad values, for each dimension + + Returns + ------- + array : array + the padded/cropped array + """ + dims = arr.shape + new_dims = [] + new_pad = [] + new_crop = [] + for i in range(len(dims)): + new_dims.append(get_good_dim(dims[i] + pad[2*i] + pad[2*i+1])) + # find what was added as result of getting good dimentions and divide it in half to distribute to both ends + good_adj_front = int((1+new_dims[i] - (dims[i] + pad[2*i] + pad[2*i+1]))/2) + pad_front = max(0, int(good_adj_front/2) + pad[2*i]) + new_pad.append(pad_front) + new_pad.append(max(0, new_dims[i]-dims[i]-pad_front)) + crop_front = -pad[2*i] - good_adj_front + new_crop.append(max(0, crop_front)) + #new_crop.append(max(0, -(new_dims[i]-dims[i]+crop_front))) + + arr = np.lib.pad(arr, ((new_pad[0], new_pad[1]), (new_pad[2], new_pad[3]), (new_pad[4], new_pad[5])), 'constant', + constant_values=((0.0, 0.0), (0.0, 0.0), (0.0, 0.0))).copy() + + #return arr[new_crop[0]:new_crop[1]+new_dims[0], new_crop[2]:new_crop[3]+new_dims[1], new_crop[4]:new_crop[5]+new_dims[1]] + arr = arr[new_crop[0]:new_crop[0]+new_dims[0], new_crop[1]:new_crop[1]+new_dims[1], new_crop[2]:new_crop[2]+new_dims[1]] + print 'adjusted dim', arr.shape + return arr + def crop_center(arr, new_size): size = arr.shape return arr[ int((size[0]-new_size[0])/2) : int((size[0]-new_size[0])/2) + new_size[0], int((size[1]-new_size[1])/2) : int((size[1]-new_size[1])/2) + new_size[1], int((size[2]-new_size[2])/2) : int((size[2]-new_size[2])/2) + new_size[2]] From 156d48b0e92ff5b6c2301f0044470fba56d109bd Mon Sep 17 00:00:00 2001 From: bfrosik Date: Wed, 28 Mar 2018 16:14:23 -0500 Subject: [PATCH 075/336] cleaned up prints --- src_py/utilities/utils.py | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/src_py/utilities/utils.py b/src_py/utilities/utils.py index b9dbaa0..9e69eec 100644 --- a/src_py/utilities/utils.py +++ b/src_py/utilities/utils.py @@ -180,9 +180,7 @@ def get_centered(array, center_shift): array : array the centered array """ - print 'shape', array.shape max_coordinates = list(np.unravel_index(np.argmax(array), array.shape)) - print 'max_coord', max_coordinates max_coordinates = np.add(max_coordinates, center_shift) shape = np.asarray(array.shape) roll = tuple(shape/2 - max_coordinates) @@ -252,7 +250,6 @@ def adjust_dimensions1(arr, pad): the padded/cropped array """ dims = arr.shape - print 'shape', dims new_dims = [] new_pad = [] new_crop = [] @@ -261,9 +258,6 @@ def adjust_dimensions1(arr, pad): new_pad.append(max(0, int((new_dims[i] - dims[i]) / 2))) new_crop.append(max(0, int((dims[i] - new_dims[i]) / 2))) - print 'new_pad', new_pad - print 'new_crop', new_crop - arr = np.lib.pad(arr, ((new_pad[0], new_pad[0]), (new_pad[1], new_pad[1]), (new_pad[2], new_pad[2])), 'constant', constant_values=((0.0, 0.0), (0.0, 0.0), (0.0, 0.0))).copy() @@ -303,15 +297,12 @@ def adjust_dimensions(arr, pad): new_pad.append(max(0, new_dims[i]-dims[i]-pad_front)) crop_front = -pad[2*i] - good_adj_front new_crop.append(max(0, crop_front)) - #new_crop.append(max(0, -(new_dims[i]-dims[i]+crop_front))) arr = np.lib.pad(arr, ((new_pad[0], new_pad[1]), (new_pad[2], new_pad[3]), (new_pad[4], new_pad[5])), 'constant', constant_values=((0.0, 0.0), (0.0, 0.0), (0.0, 0.0))).copy() - #return arr[new_crop[0]:new_crop[1]+new_dims[0], new_crop[2]:new_crop[3]+new_dims[1], new_crop[4]:new_crop[5]+new_dims[1]] - arr = arr[new_crop[0]:new_crop[0]+new_dims[0], new_crop[1]:new_crop[1]+new_dims[1], new_crop[2]:new_crop[2]+new_dims[1]] - print 'adjusted dim', arr.shape - return arr + return arr[new_crop[0]:new_crop[0]+new_dims[0], new_crop[1]:new_crop[1]+new_dims[1], new_crop[2]:new_crop[2]+new_dims[1]] + def crop_center(arr, new_size): size = arr.shape From d236e46ee9236deb31bd4cdf34cf2fe0b3221d50 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 29 Mar 2018 11:50:43 -0500 Subject: [PATCH 076/336] Update fast_module.py --- src_py/controller/fast_module.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src_py/controller/fast_module.py b/src_py/controller/fast_module.py index 00943d1..5d80ccd 100755 --- a/src_py/controller/fast_module.py +++ b/src_py/controller/fast_module.py @@ -131,7 +131,6 @@ def fast_module_reconstruction(proc, conf, data, coh_dims, image=None, support=N support = np.swapaxes(support, 1, 0) if coherence.shape[0] > 1: - print 'coh dims', coh_dims coherence = np.reshape(coherence, coh_dims) coherence = np.swapaxes(coherence, 2, 0) coherence = np.swapaxes(coherence, 1, 0) From 333bbaeaaeb577095bf5dc4e2590ab4697edb19a Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 29 Mar 2018 11:52:08 -0500 Subject: [PATCH 077/336] Update generation.py --- src_py/controller/generation.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src_py/controller/generation.py b/src_py/controller/generation.py index 78f6acb..bbc32a8 100644 --- a/src_py/controller/generation.py +++ b/src_py/controller/generation.py @@ -51,7 +51,7 @@ def __init__(self, config_map): try: self.sigmas = config_map.low_resolution_sigmas except: - print 'low resolution sigmas config parameter is missing, turning off low resolution.' + print ('low resolution sigmas config parameter is missing, turning off low resolution.') self.low_resolution_generations = 0 elif low_resolution_sigma_alg == 'SIG_SCALE_POWER': try: From 303ae9f1ed31bd6abf16d1db396281fd0aec82f5 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 29 Mar 2018 11:53:23 -0500 Subject: [PATCH 078/336] Update utils.py --- src_py/utilities/utils.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src_py/utilities/utils.py b/src_py/utilities/utils.py index 9e69eec..d1c7f4e 100644 --- a/src_py/utilities/utils.py +++ b/src_py/utilities/utils.py @@ -182,14 +182,14 @@ def get_centered(array, center_shift): """ max_coordinates = list(np.unravel_index(np.argmax(array), array.shape)) max_coordinates = np.add(max_coordinates, center_shift) - shape = np.asarray(array.shape) - roll = tuple(shape/2 - max_coordinates) + shape = array.shape - array = np.roll(array, roll[0], 0) - array = np.roll(array, roll[1], 1) - centered = np.roll(array, roll[2], 2) + array = np.roll(array, int(shape[0]/2)-max_coordinates[0], 0) + array = np.roll(array, int(shape[1]/2)-max_coordinates[1], 1) + centered = np.roll(array, int(shape[2]/2)-max_coordinates[2], 2) return centered + def get_centered1(array, center_shift): From 0c2477f2cc0221e9e5f281e742175d9173a3b031 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Fri, 13 Apr 2018 17:04:55 -0500 Subject: [PATCH 079/336] refactored to three modules --- config_data | 72 ++++++ config_disp | 23 ++ config.test => config_rec | 124 +++------ include/bridge.hpp | 8 +- include/common.h | 8 +- include/manager.hpp | 8 +- include/parameters.hpp | 48 +--- include/worker.hpp | 3 +- run_data.py | 26 ++ run_disp.py | 59 +++++ run_rec.py | 78 ++++++ src_cpp/bridge.cpp | 16 +- src_cpp/manager.cpp | 158 +++--------- src_cpp/parameters.cpp | 191 +++++--------- src_cpp/resolution.cpp | 5 +- src_cpp/support.cpp | 9 +- src_cpp/worker.cpp | 17 +- src_py/controller/data.py | 218 ++++++++++++++++ src_py/controller/fast_module.py | 66 +---- .../controller/{generation.py => gen_rec.py} | 81 ++++++ src_py/controller/reconstruction.py | 237 ++++++++---------- src_py/cyth/bridge_cpu.pyx | 24 +- src_py/cyth/bridge_cuda.pyx | 24 +- src_py/cyth/bridge_opencl.pyx | 24 +- src_py/utilities/CXDVizNX.py | 12 +- src_py/utilities/utils.py | 109 +++----- test.py | 47 ---- 27 files changed, 919 insertions(+), 776 deletions(-) create mode 100644 config_data create mode 100644 config_disp rename config.test => config_rec (50%) create mode 100755 run_data.py create mode 100755 run_disp.py create mode 100755 run_rec.py create mode 100644 src_py/controller/data.py rename src_py/controller/{generation.py => gen_rec.py} (66%) delete mode 100755 test.py diff --git a/config_data b/config_data new file mode 100644 index 0000000..c185949 --- /dev/null +++ b/config_data @@ -0,0 +1,72 @@ +// GENERAL +data_dir = "data" + // directory where prepared data is saved, default "data" + +// PARAMETER FOR DATA PREPARATION +aliens = ((170,220,112,195,245,123), (50,96,10,60,110,20)) + // aliens are common for all preps + // comment out aliens for no removal, otherwise input them as + // aliens=[[x0,y0,z0,x1,y1,z1],[x2,y2,z2,x3,y3,z3]] + // will remove two instances of aliens given by the pairs + // #0 and #1 and another given by #2,#3. accepts as + // many as you like. + +//amp_threshold = (2.0, 2.1) +amp_threshold = (2.0) + // mandatory + // enter a value for each prep + // min data threshold. Values below this are set to 0. The threshold is applied + // before removing aliens and binning. + +binning = ((1,1,1), (1,1,1)) + // optional + // enter binning tuple for each prep + // defines binning values in all dimensions, (1,1,1) has no effect + +center_shift = ((0,0,0), (0,0,0)) + // optional + // enter center shift tuple for each prep + // the maximum is centered after binning, and moved according to center_shift, + // (0,0,0) has no effect + +adjust_dimensions = ((-13, -13, -65, -65, -65, -65), (-7, -13, -55, -65, -55, -65)) + // optional + // enter adjust dimensions tuple for each prep + // If number is positive, the array will be padded. If negative, cropped. + // The parameters correspond to [x left, x right, y left, y right, z left, z right] + // The final dimensions will be adjusted up to the good number for the FFT which + // also is compatible with opencl supported dimensions + // powers of 2 or a*2^n, where a is 3, 5, or 9 + + +// RECONSTRUCTION PARAMETERS USED BY FAST MODULE +device = 0 + // ID of the target device + +algorithm_sequence = ((1, ("ER",19), ("HIO", 10)), (1,("ER",10))) + +// support +support_triggers = ((5, 5, 300)); +support_type = "GAUSS"; + +avg_iterations = 15; + +// PARAMETERS FOR VISUALISATION +// wavelength +lamda = .13933; +// delta (degrees) +delta = 30.1; +// gamma (degrees) +gamma = 14.0; +// camera distance (m) +arm=0.6350; +// angular step size +dth=0.000174532925199; + +// detector pixel sixe +pixel = [55.0e-6, 55.0e-6]; + +// size to crop the image array +//crop = [120,120,120] +crop = [.75, .75, .75] + diff --git a/config_disp b/config_disp new file mode 100644 index 0000000..2d468d5 --- /dev/null +++ b/config_disp @@ -0,0 +1,23 @@ +// GENERAL +save_dir = "results" + // directory where results of reconstructions are saved and the vtk files, default "results" + +// PARAMETERS FOR VISUALISATION +// wavelength +lamda = .13933; +// delta (degrees) +delta = 30.1; +// gamma (degrees) +gamma = 14.0; +// camera distance (m) +arm=0.6350; +// angular step size +dth=0.000174532925199; + +// detector pixel sixe +pixel = [55.0e-6, 55.0e-6]; + +// size to crop the image array +//crop = [120,120,120] +crop = [.75, .75, .75] + diff --git a/config.test b/config_rec similarity index 50% rename from config.test rename to config_rec index ec13feb..357a17f 100644 --- a/config.test +++ b/config_rec @@ -1,26 +1,32 @@ // GENERAL -save_dir = "results_dir" - // directory where vtk files are saved, and the data and raw results if configured +data_dir = "data" + // directory from which data is read -action = "new_guess" - // action defines what is processed by the program: - // if "prep_only" the program will only do the data preparation and save in the save_dir - // if "new_guess" the program will do the data prepation and will start reconstruction - // starting with random guess - // if "continue" the program jumps right to the reconstruction starting with saved data, - // raw reconstructed image, and support. With this action a continue_dir must be defined - // that contains the saved files. If only data is saved the program will start a new guess. +save_dir = "results" + // directory where results of reconstruction as npy files are saved + // if threads > 1, result from each thread will be stored in subdirectory 1,2,3 etc. -continue_dir = "results_dir" - // a directory containing prepared data and results of previous reconstruction. - // if action is "continue", the reconstruction will start with these results. +cont = false + // only applied if generations equals 1, or not defined + // true if the reconstruction start with previous results stored in continue_dir -save_results = true - // if save_results is true, the prepared data, raw image and support will be saved in - // the save_dir +continue_dir = "cont" + // directory from which results are read for reconstruction continuation + // if the directory contains subdirectories, a thread will start for each subdirectory +threads = 1 + // number of reconstructions to start with -// generations +device = [0,0] + // ID of the target devices for each thread. + // If more threads or not defined, it will default to -1 + +gc = 1; + // ArrayFire memory management is not reliable, the way around is to call garbage + // collection per defined number of iterations. Decrease this value if out of memory + // error occurs + +// GENERATIONS generations = 1 // number of generations low_resolution_generations = 0 @@ -53,58 +59,18 @@ low_resolution_alg = "GAUSS" // algorithm to use to apply resolution. Supported algorithms: // GAUSS -// PARAMETER FOR DATA PREPARATION -amp_threshold = 2.0 - // min data threshold. Values below this are set to 0. The threshold is applied - // set before removing aliens and binning. - -aliens = ((170,220,112,195,245,123), (50,96,10,60,110,20)) - // comment out aliens for no removal, otherwise input them as - // aliens=[[x0,y0,z0,x1,y1,z1],[x2,y2,z2,x3,y3,z3]] - // will remove two instances of aliens given by the pairs - // #0 and #1 and another given by #2,#3. accepts as - // many as you like. - -binning = [1,1,1] - // applied after aliens - -center_shift = [0,0,0] - // the maximum is centered after binning, and moved according to center_shift - -adjust_dimensions = [-13, -13, -65, -65, -65, -65] - // If number is positive, the array will be padded. If negative, cropped. - // The parameters correspond to [x left, x right, y left, y right, z left, z right] - // The final dimensions will be adjusted up to the good number for the FFT which - // also is compatible with opencl supported dimensions - // powers of 2 or a*2^n, where a is 3, 5, or 9 - // RECONSTRUCTION PARAMETERS USED BY FAST MODULE -device = 0 - // ID of the target device - -gc = 5; - // ArrayFire memory management is not reliable, the way around is to call garbage - // collection per defined number of iterations. Decrease this value if out of memory - // error occurs - -plot_errors = true // indicates whether to plot errors during calculations. Plotting will slow down. - -//algorithm_sequence = ((3, ("ER",2), ("HIO", 2), ("ER", 2)), (2, ("ER",3), ("HIO",3))) -//algorithm_sequence = ((1, ("ER",2))) +//algorithm_sequence = ((2, ("ER",19), ("HIO", 10)), (1,("ER",20))) algorithm_sequence = ((2, ("ER",19), ("HIO", 10)), (1,("ER",20))) -//algorithm_sequence = ((1, ("ER",19), ("HIO", 4)), (1,("ER",4))) -//algorithm_sequence = ((1, ("ER",19), ("HIO", 10)), (1,("ER",10)), (1, ("ER",10), ("HIO", 20)), (1,("ER",10))) // defines algorithm applied in each iteration by a sequence of tuples. // The first number in a tuple is a repeat, followed by tuples of pairs, each // pair defining algorithm and number of iterations to run the algorithm. twin = 2; -//twin = -1 // twin defines at which iteration to cut half of the array(i.e. multiply by 0s), // it is done in ER/HIO. If don't want to apply twin, set it negative. -//amp_threshold_fill_zeros = true; phase_triggers = ((1, 1, 30)) phase_min = -2.0; phase_max = 2.0; @@ -112,9 +78,7 @@ phase_max = 2.0; beta = .9; // support -//support_triggers = ((5, 5, 300), (1, 2)); support_triggers = ((5, 5, 300)); -//support_triggers = ((1, 5, 300)); // trigger contains starting iteration, step, and ending iteration (if missing, run // to the end). support_type = "GAUSS"; @@ -128,7 +92,7 @@ support_area = [.5,.5,.5]; // partial coherence partial_coherence_type = "LUCY"; // if type is not defined, partial coherence is not applied -partial_coherence_triggers = ((5, 14)); +partial_coherence_triggers = ((15, 14)); // trigger contains starting iteration, step, and ending iteration (if missing, run // to the end). partial_coherence_iteration_num = 20; @@ -137,38 +101,24 @@ partial_coherence_roi = [32,32,32]; // coherence area. If the values are fractional, the coherence area will be calculated // by multiplying by the data array dimensions. -iter_low_res_sigma_min = 0.0 - // used when applying low resolution data mask while iterating. The mask is - // gauss with sigma from sigma max to sigma min. - // if iter_low_res_sigma_min is 0 or not defined, the value is assigned to support_sigma -iter_low_res_sigma_max = 3.0 - // max sigma, if not defined, default to 3 -update_resolution_triggers = (1, 30) +//update_resolution_triggers = (1, 20) // the data is being modified with calculated mask starting with first iteration. // the trigger defines step and last iteration for which it is applied +iter_res_sigma_range = (3.0) + // used when applying low resolution to replace support sigma. + // The sigmas are linespaced for low resolution iterations from min value to max. + // If only one number given, the min sigma will default to support_sigma + +iter_res_det_range = (50, 1) + // used when applying low resolution data mask while iterating. + // The det values are linespaced for low resolution iterations from max value to min. + // The mask is gauss with sigma of linespaced det. If only one number given, + // the min det will default to 1 + regularized_amp = "GAUSS"; avg_iterations = 15; // number of last iterations that the image amplitudes will be included to calculate // final -// PARAMETERS FOR VISUALISATION -// wavelength -lamda = .13933; -// delta (degrees) -delta = 30.1; -// gamma (degrees) -gamma = 14.0; -// camera distance (m) -arm=0.6350; -// angular step size -dth=0.000174532925199; - -// detector pixel sixe -pixel = [55.0e-6, 55.0e-6]; - -// size to crop the image array -//crop = [120,120,120] -crop = [.75, .75, .75] - diff --git a/include/bridge.hpp b/include/bridge.hpp index 6bc2113..96769b3 100644 --- a/include/bridge.hpp +++ b/include/bridge.hpp @@ -21,13 +21,13 @@ class Bridge public: Bridge(); - void StartCalcWithGuess(std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector dim, const std::string & config); + void StartCalcWithGuess(int device, std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector dim, const std::string & config); - void StartCalcWithGuessSupport(std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector support_buffer, std::vector dim, const std::string & config); + void StartCalcWithGuessSupport(int device, std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector support_buffer, std::vector dim, const std::string & config); - void StartCalcWithGuessSupportCoh(std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector support_buffer, std::vector dim, std::vector coh_buffer, std::vector coh_dim, const std::string & config); + void StartCalcWithGuessSupportCoh(int device, std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector support_buffer, std::vector dim, std::vector coh_buffer, std::vector coh_dim, const std::string & config); - void StartCalc(std::vector data_buffer_r, std::vector dim, std::string const & config); + void StartCalc(int device, std::vector data_buffer_r, std::vector dim, std::string const & config); std::vector GetSupportV(); std::vector GetCoherenceV(); diff --git a/include/common.h b/include/common.h index 7325dee..559a10a 100644 --- a/include/common.h +++ b/include/common.h @@ -9,6 +9,7 @@ See LICENSE file. // defines the type of the data; can be float or double. The def_type will get replaced when running initializing script. typedef def_type d_type; + const int nD = 3; @@ -38,16 +39,9 @@ const int ALGORITHM_GAUSS_PERCENT = 19; const int ALGORITHM_PERCENT_AUTO = 20; const int ALGORITHM_GAUSS_MINAREA = 21; -const int ACTION_PREP_ONLY = 1; -const int ACTION_NEW_GUESS = 2; -const int ACTION_CONTINUE = 3; - const int REGULARIZED_AMPLITUDE_NONE = 0; const int REGULARIZED_AMPLITUDE_GAUSS = 1; const int REGULARIZED_AMPLITUDE_POISSON = 2; const int REGULARIZED_AMPLITUDE_UNIFORM = 3; -const int STAGE_PREMIER = 0; -const int STAGE_CONTINUE = 1; - #endif /* common_h */ diff --git a/include/manager.hpp b/include/manager.hpp index b071285..e6ae6fd 100644 --- a/include/manager.hpp +++ b/include/manager.hpp @@ -26,18 +26,18 @@ class Manager // This method takes data, real and imaginary guess for the reconstruction algorithm. The dim parameter conveys the // data and guess dimensions, since the data and guess are passed in a c-like buffer. // The config parameter defines configuration file. - void StartCalc(std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector dim, const std::string & config); + void StartCalc(int device, std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector dim, const std::string & config); - void StartCalc(std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector support, std::vector dim, const std::string & config); + void StartCalc(int device, std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector support, std::vector dim, const std::string & config); - void StartCalc(std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector support, std::vector dim, std::vector coh, std::vector coh_dim, const std::string & config); + void StartCalc(int device, std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector support, std::vector dim, std::vector coh, std::vector coh_dim, const std::string & config); // This method starts calculations. The Manager uses workers to perform the calculations. The parameters define // calculations type. // This method takes data, for the reconstruction algorithm. To perform the reconstruction the code will generate // the guess parameter. The dim parameter conveys data dimensions, since the data is passed in a c-like buffer. // The config parameter defines configuration file. - void StartCalc(std::vector data_buffer_r, std::vector dim, std::string const & config); + void StartCalc(int device, std::vector data_buffer_r, std::vector dim, std::string const & config); // This method starts calculations. The Manager uses workers to perform the calculations. The parameters define // calculations type. diff --git a/include/parameters.hpp b/include/parameters.hpp index 2951d92..cabb6ae 100644 --- a/include/parameters.hpp +++ b/include/parameters.hpp @@ -31,9 +31,6 @@ typedef struct Trigger_setting trigger_setting; class Params { private: - // maps action name to action number - std::map action_id_map; - // maps algorithm name to algorithm number std::map algorithm_id_map; // vector holding algorithm run sequence, where algorithm run is a pair of algorithm and number of iterations @@ -76,36 +73,28 @@ class Params int regularized_amp; - std::string save_dir; - - std::string continue_dir; - - int action; - int action_stage; - - bool save_results; - bool plot_errors; int gc; - int device; - int low_res_iterations; - float iter_low_res_sigma_min; + float iter_res_sigma_min; + + float iter_res_sigma_max; - float iter_low_res_sigma_max; + float iter_res_det_min; + + float iter_res_det_max; std::vector update_resolution_triggers; std::vector CompactTriggers(std::vector triggers); void BuildAlgorithmMap(); - void BuildActionMap(); public: // Constructor. Takes in configuration file, parses the configuration and sets the parameters accordingly. - Params(const char* config_file, int stage, std::vector data_dim); + Params(const char* config_file, std::vector data_dim, bool first); ~Params(); // returns data type (float/double). Used by python code @@ -133,10 +122,12 @@ class Params bool GetPcdiNormalize(); int GetPcdiIterations(); - float GetIterLowResSigmaMin(); - float GetIterLowResSigmaMax(); std::vector GetUpdateResolutionTriggers(); int GetLowResolutionIter(); + float GetIterResSigmaMin(); + float GetIterResSigmaMax(); + float GetIterResDetMin(); + float GetIterResDetMax(); // Returns amplitude threshold. Used by ER and HIO algorithms. d_type GetAmpThreshold(); @@ -162,29 +153,12 @@ class Params // Returns a constant indication a scheme for modifying data when calculation ratio in modulus projection int GetRegularizedAmp(); - // Returns directory to save results - std::string GetSaveDir(); - - // Returns directory to retrieve previous results to continue - std::string GetContinueDir(); - - // Returns action the program will perform. Choices are "prep_only", "new_guess", "continue" - int GetAction(); - - // Returns boolean flag indication whether to save the raw results - bool IsSaveResults(); - // Returns boolean flag indication whether to plot errors in during calculations bool IsPlotErrors(); // Returns number of iterations between calling garbage collection. int GetGC(); - // Returns ID of target device (cpu or gpu). - int GetDeviceId(); - - int GetActionStage(); - }; diff --git a/include/worker.hpp b/include/worker.hpp index 875851d..b2a0731 100644 --- a/include/worker.hpp +++ b/include/worker.hpp @@ -42,6 +42,7 @@ class Reconstruction PartialCoherence *partialCoherence; // A reference to Resolution Resolution *resolution; + bool first; af::array data; // this is abs af::array iter_data; // if low resolutionis used, data will differ in iterations @@ -79,7 +80,7 @@ class Reconstruction // The class constructor takes data array, an image guess array in reciprocal space, and configuration file. The image guess // is typically generated as an complex random array. This image can be also the best outcome of previous calculations. The // data is saved and is used for processing. - Reconstruction(af::array data, af::array guess, Params* params, af::array support_array, af::array coherence_array); + Reconstruction(af::array data, af::array guess, Params* params, af::array support_array, af::array coherence_array, bool first); ~Reconstruction(); diff --git a/run_data.py b/run_data.py new file mode 100755 index 0000000..a6d8e19 --- /dev/null +++ b/run_data.py @@ -0,0 +1,26 @@ +import src_py.controller.data as dt +import sys +import argparse +from os.path import expanduser + + +def main(arg): + + parser = argparse.ArgumentParser() + parser.add_argument("proc", help="the processor the code will run on, can be 'cpu', 'opencl', or 'cuda'.") + parser.add_argument("fname", help="data file filename. It is assumed the file is in tif format.") + parser.add_argument("conf", help="configuration file.") + + args = parser.parse_args() + proc = args.proc + fname = args.fname + conf = args.conf + + dt.prep(proc, fname, conf) + + +if __name__ == "__main__": + main(sys.argv[1:]) + +#python run_data.py 'opencl' '/home/phoebus/BFROSIK/CDI/S149/Staff14-3_S0149.tif' 'config_data' + diff --git a/run_disp.py b/run_disp.py new file mode 100755 index 0000000..0983204 --- /dev/null +++ b/run_disp.py @@ -0,0 +1,59 @@ +import src_py.utilities.CXDVizNX as cx +import argparse +import sys +import os +import src_py.utilities.utils as ut +import numpy as np + + +def save_vtk(res_dir, conf): + try: + imagefile = res_dir + 'image.npy' + except: + return + image = np.load(imagefile) + + try: + supportfile = res_dir + 'support.npy' + except: + print ('support file ' + supportfile + ' is missing') + return + support = np.load(supportfile) + + cx.save_CX(conf, image, support, res_dir) + + +def to_vtk(conf): + config_map = ut.read_config(conf) + if config_map is None: + print ("can't read configuration file") + return + + try: + save_dir = config_map.save_dir + if not save_dir.endswith('/'): + save_dir = save_dir + '/' + except AttributeError: + save_dir = 'results/' + + save_vtk(save_dir, conf) + + for sub in os.listdir(save_dir): + subdir = save_dir + sub + '/' + if os.path.isdir(subdir): + save_vtk(subdir, conf) + + +def main(arg): + parser = argparse.ArgumentParser() + parser.add_argument("conf", help="configuration file.") + + args = parser.parse_args() + conf = args.conf + to_vtk(conf) + + +if __name__ == "__main__": + main(sys.argv[1:]) + +#python run_disp.py 'config_disp' diff --git a/run_rec.py b/run_rec.py new file mode 100755 index 0000000..9f3fcff --- /dev/null +++ b/run_rec.py @@ -0,0 +1,78 @@ +import sys +import signal +import os +import argparse +from multiprocessing import Process +import numpy as np +import src_py.controller.reconstruction as rec +import src_py.controller.gen_rec as gen_rec +import src_py.utilities.utils as ut + + +def interrupt_thread(arg): + def int_handler(signal, frame): + open('stopfile', 'a').close() + + def term_handler(signal, frame): + pass + + signal.signal(signal.SIGINT, int_handler) + signal.signal(signal.SIGTERM, term_handler) + signal.pause() + + +def reconstruction(proc, conf): + config_map = ut.read_config(conf) + if config_map is None: + print ("can't read configuration file") + return + + try: + data_dir = config_map.data_dir + if not data_dir.endswith('/'): + data_dir = data_dir + '/' + except AttributeError: + data_dir = 'data/' + + try: + datafile = data_dir + 'data.npy' + data = np.load(datafile) + print 'data shape', data.shape + except: + print ('data file ' + datafile + ' is missing') + return + + try: + generations = config_map.generations + except: + generations = 1 + + if generations > 1: + gen_rec.reconstruction(generations, proc, data, conf, config_map) + else: + rec.reconstruction(proc, data, conf, config_map) + + +def main(arg): + + parser = argparse.ArgumentParser() + parser.add_argument("proc", help="the processor the code will run on, can be 'cpu', 'opencl', or 'cuda'.") + parser.add_argument("conf", help="configuration file.") + + args = parser.parse_args() + proc = args.proc + conf = args.conf + + reconstruction(proc, conf) + + +if __name__ == "__main__": + if os.path.exists('stopfile'): + os.remove('stopfile') + p = Process(target = interrupt_thread, args = (1,)) + p.start() + main(sys.argv[1:]) + p.terminate() + +#python run_rec.py 'opencl' 'config_rec' + diff --git a/src_cpp/bridge.cpp b/src_cpp/bridge.cpp index 429347e..6f08a3b 100644 --- a/src_cpp/bridge.cpp +++ b/src_cpp/bridge.cpp @@ -15,37 +15,37 @@ Bridge::Bridge() mgr = new Manager(); } -void Bridge::StartCalcWithGuess(std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector dim, const std::string & config) +void Bridge::StartCalcWithGuess(int device, std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector dim, const std::string & config) { std::vector data_r(data_buffer_r.begin(), data_buffer_r.end()); std::vector guess_i(guess_buffer_i.begin(), guess_buffer_i.end()); std::vector guess_r(guess_buffer_r.begin(), guess_buffer_r.end()); - mgr->StartCalc(data_r, guess_r, guess_i, dim, config); + mgr->StartCalc(device, data_r, guess_r, guess_i, dim, config); } -void Bridge::StartCalcWithGuessSupport(std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector support_buffer, std::vector dim, const std::string & config) +void Bridge::StartCalcWithGuessSupport(int device, std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector support_buffer, std::vector dim, const std::string & config) { std::vector data_r(data_buffer_r.begin(), data_buffer_r.end()); std::vector guess_i(guess_buffer_i.begin(), guess_buffer_i.end()); std::vector guess_r(guess_buffer_r.begin(), guess_buffer_r.end()); std::vector support(support_buffer.begin(), support_buffer.end()); - mgr->StartCalc(data_r, guess_r, guess_i, support, dim, config); + mgr->StartCalc(device, data_r, guess_r, guess_i, support, dim, config); } -void Bridge::StartCalcWithGuessSupportCoh(std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector support_buffer, std::vector dim, std::vector coh_buffer, std::vector coh_dim, const std::string & config) +void Bridge::StartCalcWithGuessSupportCoh(int device, std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector support_buffer, std::vector dim, std::vector coh_buffer, std::vector coh_dim, const std::string & config) { std::vector data_r(data_buffer_r.begin(), data_buffer_r.end()); std::vector guess_i(guess_buffer_i.begin(), guess_buffer_i.end()); std::vector guess_r(guess_buffer_r.begin(), guess_buffer_r.end()); std::vector support(support_buffer.begin(), support_buffer.end()); std::vector coh(coh_buffer.begin(), coh_buffer.end()); - mgr->StartCalc(data_r, guess_r, guess_i, support, dim, coh, coh_dim, config); + mgr->StartCalc(device, data_r, guess_r, guess_i, support, dim, coh, coh_dim, config); } -void Bridge::StartCalc(std::vector data_buffer_r, std::vector dim, std::string const & config) +void Bridge::StartCalc(int device, std::vector data_buffer_r, std::vector dim, std::string const & config) { std::vector data_r(data_buffer_r.begin(), data_buffer_r.end()); - mgr->StartCalc(data_r, dim, config); + mgr->StartCalc(device, data_r, dim, config); } std::vector Bridge::GetImageR() diff --git a/src_cpp/manager.cpp b/src_cpp/manager.cpp index e54adcf..7ea37fb 100644 --- a/src_cpp/manager.cpp +++ b/src_cpp/manager.cpp @@ -21,12 +21,11 @@ Manager::~Manager() delete rec; } -void Manager::StartCalc(std::vector data_buffer_r, std::vector dim, std::string const & config) +void Manager::StartCalc(int device, std::vector data_buffer_r, std::vector dim, std::string const & config) { - int stage = STAGE_PREMIER; - Params * params = new Params(config.c_str(), stage, dim); + bool first = true; + Params * params = new Params(config.c_str(), dim, first); - int device = params->GetDeviceId(); if (device >= 0) { setDevice(device); @@ -39,109 +38,37 @@ void Manager::StartCalc(std::vector data_buffer_r, std::vector dim, af::array data = abs(real_d); af::array guess; - int action = params->GetAction(); - bool cont = false; - if(action == ACTION_CONTINUE) + af::randomEngine r(AF_RANDOM_ENGINE_MERSENNE, (uint)time(0)); + d_type test1 = 0; + double test2 = 0; + if (typeid(test1) == typeid(test2)) { - std::string continue_dir = params->GetContinueDir(); - std::string image_file = Utils::GetFullFilename(continue_dir.c_str(), "image.af"); - std::string support_file = Utils::GetFullFilename(continue_dir.c_str(), "support.af"); - std::string coherence_file = Utils::GetFullFilename(continue_dir.c_str(), "coherence.af"); - try { - guess = af::readArray(image_file.c_str(), "image"); - cont = true; - } - catch ( const std::exception &ex) - { - printf("Error reading image array from %s file, generating new guess\n", image_file.c_str()); - action = ACTION_NEW_GUESS; - } - - if (cont) - { - af::array null_array = array(); - af::array support_array; - try { - support_array = af::readArray(support_file.c_str(), "support"); - } - catch ( const std::exception &ex) - { - support_array = null_array; - } - - af::array coherence_array; - try { - coherence_array = af::readArray(coherence_file.c_str(), "coherence"); - } - catch ( const std::exception &ex) - { - coherence_array = null_array; - } - - //Reconstruction reconstruction(data, guess, params, support_array, coherence_array); - //rec = &reconstruction; - rec = new Reconstruction(data, guess, params, support_array, coherence_array); - } + guess = randu(data.dims(), c64, r); } - if (action == ACTION_NEW_GUESS) + else { - af::randomEngine r(AF_RANDOM_ENGINE_MERSENNE, (uint)time(0)); - d_type test1 = 0; - double test2 = 0; - if (typeid(test1) == typeid(test2)) - { - guess = randu(data.dims(), c64, r); - } - else - { - guess = randu(data.dims(), c32, r); - } - af::array null_array = array(); - //Reconstruction reconstruction(data, guess, params, null_array, null_array); - //rec = &reconstruction; - rec = new Reconstruction(data, guess, params, null_array, null_array); + guess = randu(data.dims(), c32, r); } + af::array null_array = array(); + rec = new Reconstruction(data, guess, params, null_array, null_array, first); rec->Init(); printf("initialized\n"); timer::start(); rec->Iterate(); printf("iterate function took %g seconds\n", timer::stop()); - - if (params->IsSaveResults()) - { - std::string save_dir = params->GetSaveDir(); - std::string image_file = Utils::GetFullFilename(save_dir.c_str(), "image.af"); - std::string support_file = Utils::GetFullFilename(save_dir.c_str(), "support.af"); - std::string coherence_file = Utils::GetFullFilename(save_dir.c_str(), "coherence.af"); - - try { - af::saveArray("image", rec->GetImage(), image_file.c_str()); - af::saveArray("support", rec->GetSupportArray(), support_file.c_str()); - af::array coh = rec->GetCoherenceArray(); - if (!Utils::IsNullArray(coh)) - { - af::saveArray("coherence", coh, coherence_file.c_str()); - } - } - catch ( const std::exception &ex) - { - printf("Error writing image array to %s file\n", image_file.c_str()); - } - } - printf("iterate function took %g seconds\n", timer::stop()); } -void Manager::StartCalc(std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector dim, const std::string & config) +void Manager::StartCalc(int device, std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector dim, const std::string & config) { - int stage = STAGE_CONTINUE; - Params * params = new Params(config.c_str(), stage, dim); + bool first = false; + Params * params = new Params(config.c_str(), dim, first); - int device = params->GetDeviceId(); if (device >= 0) { setDevice(device); + info(); } dim4 af_dims = Utils::Int2Dim4(dim); @@ -154,27 +81,25 @@ void Manager::StartCalc(std::vector data_buffer_r, std::vector g af::array guess = complex(real_g, imag_g); af::array null_array = array(); - //Reconstruction reconstruction(data, guess, params, null_array, null_array); - //reconstruction.Init(); - //rec = &reconstruction; - rec = new Reconstruction(data, guess, params, null_array, null_array); - rec->Init(); - timer::start(); - rec->Iterate(); + rec = new Reconstruction(data, guess, params, null_array, null_array, first); + rec->Init(); + printf("initialized\n"); + timer::start(); + rec->Iterate(); printf("iterate function took %g seconds\n", timer::stop()); } -void Manager::StartCalc(std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector support_vector, std::vector dim, const std::string & config) +void Manager::StartCalc(int device, std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector support_vector, std::vector dim, const std::string & config) { - int stage = STAGE_CONTINUE; - Params * params = new Params(config.c_str(), stage, dim); + bool first = false; + Params * params = new Params(config.c_str(), dim, first); - int device = params->GetDeviceId(); if (device >= 0) { setDevice(device); + info(); } dim4 af_dims = Utils::Int2Dim4(dim); @@ -188,28 +113,25 @@ void Manager::StartCalc(std::vector data_buffer_r, std::vector g af::array support_a(af_dims, &support_vector[0]); af::array null_array = array(); - //Reconstruction reconstruction(data, guess, params, support_a, null_array); - //reconstruction.Init(); - //rec = &reconstruction; - rec = new Reconstruction(data, guess, params, support_a, null_array); - rec->Init(); - timer::start(); - rec->Iterate(); - //reconstruction.Iterate(); + rec = new Reconstruction(data, guess, params, support_a, null_array, first); + rec->Init(); + printf("initialized\n"); + timer::start(); + rec->Iterate(); printf("iterate function took %g seconds\n", timer::stop()); } -void Manager::StartCalc(std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector support_vector, std::vector dim, std::vector coh_vector, std::vector coh_dim, const std::string & config) +void Manager::StartCalc(int device, std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector support_vector, std::vector dim, std::vector coh_vector, std::vector coh_dim, const std::string & config) { - int stage = STAGE_CONTINUE; - Params * params = new Params(config.c_str(), stage, dim); + bool first = false; + Params * params = new Params(config.c_str(), dim, first); - int device = params->GetDeviceId(); if (device >= 0) { setDevice(device); + info(); } dim4 af_dims = Utils::Int2Dim4(dim); @@ -223,18 +145,12 @@ void Manager::StartCalc(std::vector data_buffer_r, std::vector g af::array support_a(af_dims, &support_vector[0]); af::array coh_a(Utils::Int2Dim4(coh_dim), &coh_vector[0]); - af::array null_array = array(); - //Reconstruction reconstruction(data, guess, params, support_a, coh_a); - //reconstruction.Init(); - //rec = &reconstruction; - rec = new Reconstruction(data, guess, params, support_a, coh_a); + rec = new Reconstruction(data, guess, params, support_a, coh_a, first); rec->Init(); + printf("initialized\n"); timer::start(); - - rec->Iterate(); - //reconstruction.Iterate(); - + rec->Iterate(); printf("iterate function took %g seconds\n", timer::stop()); } diff --git a/src_cpp/parameters.cpp b/src_cpp/parameters.cpp index b77d56f..e212b47 100644 --- a/src_cpp/parameters.cpp +++ b/src_cpp/parameters.cpp @@ -17,9 +17,8 @@ See LICENSE file. using namespace libconfig; -Params::Params(const char* config_file, int stage, std::vector data_dim) +Params::Params(const char* config_file, std::vector data_dim, bool first) { - action_id_map.clear(); algorithm_id_map.clear(); alg_switches.clear(); d_type amp_threshold = 0; @@ -42,20 +41,14 @@ Params::Params(const char* config_file, int stage, std::vector data_dim) number_iterations = 0; twin = -1; regularized_amp = REGULARIZED_AMPLITUDE_NONE; - action = 0; - action_stage = 0; - save_results = false; plot_errors = false; gc = -1; - device = -1; low_res_iterations = 0; - iter_low_res_sigma_min = support_sigma; + iter_res_det_min = 1; - iter_low_res_sigma_max = 3.0; update_resolution_triggers.clear(); BuildAlgorithmMap(); - BuildActionMap(); Config cfg; @@ -73,46 +66,6 @@ Params::Params(const char* config_file, int stage, std::vector data_dim) printf("config file parse exception\n"); } - try - { - std::string save_dir_cp = cfg.lookup("save_dir"); - save_dir = save_dir_cp; - } - catch (const SettingNotFoundException &nfex) - { } - - try { - action = action_id_map[cfg.lookup("action")]; - } - catch ( const SettingNotFoundException &nfex) - { - action = action_id_map["new_guess"]; - } - - if (action == ACTION_CONTINUE) - { - try - { - std::string continue_dir_cp = cfg.lookup("continue_dir"); - continue_dir = continue_dir_cp; - action_stage = 1; - // else it is initialized - } - catch (const SettingNotFoundException &nfex) - { - printf("No 'continue_dir' parameter in configuration file, saving in 'my_dir'.\n"); - } - } - else - { - action_stage = stage; - } - try { - save_results = cfg.lookup("save_results"); - } - catch ( const SettingNotFoundException &nfex) - { } - try { plot_errors = cfg.lookup("plot_errors"); } @@ -152,12 +105,6 @@ Params::Params(const char* config_file, int stage, std::vector data_dim) catch ( const SettingNotFoundException &nfex) { } - try { - device = cfg.lookup("device"); - } - catch ( const SettingNotFoundException &nfex) - { } - try { const Setting& root = cfg.getRoot(); const Setting &tmp = root["support_area"]; @@ -195,7 +142,7 @@ Params::Params(const char* config_file, int stage, std::vector data_dim) for (int i =0; i < tmp.getLength(); i++) { int start = tmp[i][1]; // set the first trigger to step - if (action_stage == 0) + if (first) { start = tmp[i][0]; } @@ -227,7 +174,8 @@ Params::Params(const char* config_file, int stage, std::vector data_dim) { printf((std::string("No 'support_type' parameter in configuration file.\n")).c_str()); } - + if (first) + { try { std::vector triggers; const Setting& root = cfg.getRoot(); @@ -235,7 +183,7 @@ Params::Params(const char* config_file, int stage, std::vector data_dim) for (int i =0; i < tmp.getLength(); i++) { int start = tmp[i][1]; // set the first trigger to step - if (action_stage == 0) + if (first) { start = tmp[i][0]; } @@ -271,6 +219,7 @@ Params::Params(const char* config_file, int stage, std::vector data_dim) } catch ( const SettingNotFoundException &nfex) { } + } // if first try { pcdi_alg = algorithm_id_map[cfg.lookup("partial_coherence_type")]; @@ -309,7 +258,7 @@ Params::Params(const char* config_file, int stage, std::vector data_dim) for (int i =0; i < tmp.getLength(); i++) { int start = tmp[i][1]; // set the first trigger to step - if (action_stage == 0) + if (first) { start = tmp[i][0]; } @@ -348,7 +297,7 @@ Params::Params(const char* config_file, int stage, std::vector data_dim) } } - if (action_stage == 0) + if (first) { try { @@ -376,23 +325,56 @@ Params::Params(const char* config_file, int stage, std::vector data_dim) catch ( const SettingNotFoundException &nfex) { } if (low_res_iterations > 0) - { + { + bool low_res = true; try { - iter_low_res_sigma_min = cfg.lookup("iter_low_res_sigma_min"); - if (iter_low_res_sigma_min == 0.0) + const Setting& root = cfg.getRoot(); + const Setting &tmp = root["iter_res_sigma_range"]; + int size = tmp.getLength(); + if (size > 1) { - iter_low_res_sigma_min = support_sigma; + iter_res_sigma_min = tmp[0]; + iter_res_sigma_max = tmp[1]; + } + else + { + iter_res_sigma_min = support_sigma; + iter_res_sigma_max = tmp[0]; } } catch(const SettingNotFoundException &nfex) - { } + { + printf("No 'iter_res_sigma_range' parameter in configuration file.\n"); + low_res = false; + } try { - iter_low_res_sigma_max = cfg.lookup("iter_low_res_sigma_max"); + const Setting& root = cfg.getRoot(); + const Setting &tmp = root["iter_res_det_range"]; + int size = tmp.getLength(); + if (size > 1) + { + iter_res_det_min = tmp[0]; + iter_res_det_max = tmp[1]; + } + else + { + iter_res_det_min = 1; + iter_res_det_max = tmp[0]; + } } catch(const SettingNotFoundException &nfex) - { } + { + printf("No 'iter_res_det_range' parameter in configuration file.\n"); + low_res = false; + } + if (low_res == false) + { + printf("Not applying iteration based low resolution.\n"); + update_resolution_triggers.clear(); + low_res_iterations = 0; + } } } @@ -403,24 +385,6 @@ Params::Params(const char* config_file, int stage, std::vector data_dim) catch(const SettingNotFoundException &nfex) { } -// try -// { -// amp_threshold = cfg.lookup("amp_threshold"); -// } -// catch(const SettingNotFoundException &nfex) -// { -// printf("No 'amp_threshold' parameter in configuration file.\n"); -// } - -// try { -// amp_threshold_fill_zeros = cfg.lookup("amp_threshold_fill_zeros"); -// } -// catch (const SettingNotFoundException &nfex) -// { -// printf("No 'amp_threshold_fill_zeros' parameter in configuration file.\n"); -// } -// - try { beta = cfg.lookup("beta"); @@ -448,7 +412,8 @@ Params::Params(const char* config_file, int stage, std::vector data_dim) } catch (const SettingNotFoundException &nfex) { } - if (action_stage == 0) + + if (first) { try { twin = cfg.lookup("twin"); @@ -464,7 +429,6 @@ Params::Params(const char* config_file, int stage, std::vector data_dim) Params::~Params() { - action_id_map.clear(); algorithm_id_map.clear(); alg_switches.clear(); data_type.clear(); @@ -484,14 +448,6 @@ void Params::BuildAlgorithmMap() algorithm_id_map.insert(std::pair("GAUSS", ALGORITHM_GAUSS)); } -void Params::BuildActionMap() -{ - // hardcoded - action_id_map.insert(std::pair("prep_only", ACTION_PREP_ONLY)); - action_id_map.insert(std::pair("new_guess", ACTION_NEW_GUESS)); - action_id_map.insert(std::pair("continue", ACTION_CONTINUE)); -} - std::vector Params::CompactTriggers(std::vector triggers) { std::vector trigger_iterations; @@ -617,26 +573,6 @@ std::vector Params::GetAlgSwitches() return alg_switches; } -std::string Params::GetSaveDir() -{ - return save_dir; -} - -std::string Params::GetContinueDir() -{ - return continue_dir; -} - -int Params::GetAction() -{ - return action; -} - -bool Params::IsSaveResults() -{ - return save_results; -} - bool Params::IsPlotErrors() { return plot_errors; @@ -647,34 +583,33 @@ int Params::GetGC() return gc; } -int Params::GetDeviceId() +std::vector Params::GetUpdateResolutionTriggers() { - return device; + return update_resolution_triggers; } -int Params::GetActionStage() +int Params::GetLowResolutionIter() { - return action_stage; + return low_res_iterations; } -float Params::GetIterLowResSigmaMin() +float Params::GetIterResSigmaMin() { - return iter_low_res_sigma_min; + return iter_res_sigma_min; } -float Params::GetIterLowResSigmaMax() +float Params::GetIterResSigmaMax() { - return iter_low_res_sigma_max; + return iter_res_sigma_max; } -std::vector Params::GetUpdateResolutionTriggers() +float Params::GetIterResDetMin() { - return update_resolution_triggers; + return iter_res_det_min; } -int Params::GetLowResolutionIter() +float Params::GetIterResDetMax() { - return low_res_iterations; + return iter_res_det_max; } - diff --git a/src_cpp/resolution.cpp b/src_cpp/resolution.cpp index 27f17c6..184e45f 100644 --- a/src_cpp/resolution.cpp +++ b/src_cpp/resolution.cpp @@ -15,9 +15,8 @@ using namespace af; Resolution::Resolution(Params* param) { - //int iter = param->GetLowResolutionIter(); - int iter = param->GetNumberIterations(); - sigmas = Utils::Linspace(iter, param->GetIterLowResSigmaMax(), param->GetIterLowResSigmaMin()); + int iter = param->GetLowResolutionIter(); + sigmas = Utils::Linspace(iter, param->GetIterResDetMax(), param->GetIterResDetMin()); } Resolution::~Resolution() diff --git a/src_cpp/support.cpp b/src_cpp/support.cpp index c07af25..cd683ef 100644 --- a/src_cpp/support.cpp +++ b/src_cpp/support.cpp @@ -51,23 +51,21 @@ void Support::Update(const af::array ds_image, bool amp_trigger, bool phase_trig } if (phase_trigger) { + printf("phase trigger\n"); af::array phase = atan2(imag(ds_image), real(ds_image)); af::array phase_condition = ((phase > params->GetPhaseMin()) && (phase < params->GetPhaseMax())); if (amp_trigger) { support_array *= phase_condition; + init_support_array = support_array.copy(); } else { support_array = phase_condition * init_support_array; } } - // set to true (1) elements that are greater than phase min and less than phase max, and support is 1 - // af::array phase_condition = (phase > params->GetPhaseMin()) && (phase < params->GetPhaseMax()) || (support->GetSupportArray() == 0); - // replace the elements that above condition is 1 with prev_ds_image - ds_image * params->GetBeta() -//replace(ds_image, phase_condition, (prev_ds_image - ds_image * params->GetBeta())); } - printf("support sum %f\n", sum(support_array)); +// printf("support sum %f\n", sum(support_array)); } int Support::GetTriggerAlgorithm() @@ -84,6 +82,7 @@ af::array Support::GetSupportArray(bool twin) { if (twin) { + printf("twinning\n"); dim4 dims = support_array.dims(); af::array temp = constant(0, dims, u32); temp( af::seq(0, dims[0]/2-1), af::seq(0, dims[1]/2-1), span, span) = 1; diff --git a/src_cpp/worker.cpp b/src_cpp/worker.cpp index 2d46645..4c2af51 100644 --- a/src_cpp/worker.cpp +++ b/src_cpp/worker.cpp @@ -23,7 +23,7 @@ See LICENSE file. #include "resolution.hpp" -Reconstruction::Reconstruction(af::array image_data, af::array guess, Params* parameters, af::array support_array, af::array coherence_array) +Reconstruction::Reconstruction(af::array image_data, af::array guess, Params* parameters, af::array support_array, af::array coherence_array, bool is_first) { num_points = 0; norm_data = 0; @@ -32,6 +32,7 @@ Reconstruction::Reconstruction(af::array image_data, af::array guess, Params* pa data = image_data; ds_image = guess; params = parameters; + first = is_first; state = new State(params); support = new Support(data.dims(), params, support_array); @@ -43,7 +44,7 @@ Reconstruction::Reconstruction(af::array image_data, af::array guess, Params* pa { partialCoherence = NULL; } - if (params->GetLowResolutionIter() >0) + if (first && (params->GetLowResolutionIter() >0)) { resolution = new Resolution(params); } @@ -103,9 +104,9 @@ void Reconstruction::Iterate() iter_data = data; if ((resolution != NULL) && (current_iteration < params->GetLowResolutionIter()) && (state->IsUpdateResolution())) { - iter_data = resolution->GetIterData(current_iteration, data); - d_type iter_data_max = af::max(iter_data); - iter_data = iter_data/iter_data_max; + iter_data = resolution->GetIterData(current_iteration, data.copy()); + //d_type iter_data_max = af::max(iter_data); + //iter_data = iter_data/iter_data_max; } if (state->IsUpdateSupport() || state->IsUpdatePhase()) { @@ -130,7 +131,7 @@ void Reconstruction::Iterate() { remove("stopfile"); break; - } + } } if (aver_v.size() > 0) @@ -167,8 +168,8 @@ af::array Reconstruction::ModulusProjection() } else { -printf("current iter, pcdi first trigger, action_stage %i, %i, %i\n", current_iteration, partialCoherence->GetTriggers()[0],params->GetActionStage()); - if ((current_iteration >= partialCoherence->GetTriggers()[0]) || (params->GetActionStage())) + if ((current_iteration >= partialCoherence->GetTriggers()[0]) || (first == false)) + //if (~ Utils::IsNullArray(partialCoherence->GetKernelArray())) { printf("coherence using lucy\n"); af::array abs_amplitudes = abs(rs_amplitudes).copy(); diff --git a/src_py/controller/data.py b/src_py/controller/data.py new file mode 100644 index 0000000..9ccb646 --- /dev/null +++ b/src_py/controller/data.py @@ -0,0 +1,218 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + + +""" +Please make sure the installation :ref:`pre-requisite-reference-label` are met. +This module controls the reconstruction process. The user has to provide parameters such as type of processor, data, and configuration. +The processor specifies which library will be used by CFM (Calc Fast Module) that performs the processor intensive calculations. The module +can be run on cpu, or gpu. Depending on the gpu hardware and library, one can use opencl or cuda library. +The module starts the data preparation routines, calls for reconstruction using the CFM, and prepares the reconstructed data for +visualization. +""" + +import numpy as np +import src_py.utilities.utils as ut +import os +import shutil +from string import digits +import src_py.controller.fast_module as calc + + +__author__ = "Barbara Frosik" +__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." +__docformat__ = 'restructuredtext en' +__all__ = ['prepare_data', + 'reconstruction'] + + +def prepare_data(config_map, data): + """ + This function prepares raw data for reconstruction. It uses configured parameters. The preparation consists of the following steps: + 1. clearing the noise - the values below an amplitude threshold are set to zero + 2. removing the "aliens" - aliens are areas that are effect of interference. The area is manually set in a configuration file + after inspecting the data. + 3. binning - adding amplitudes of several consecutive points. Binning can be done in any dimension. + 4. amplitudes are set to sqrt + 5. centering - finding the greatest amplitude and locating it at a center of new array. Typically several new rows/columns/slices + are added. These are filled with zeros. When changing the dimension the code finds the smallest possible dimension that is + supported by opencl library (multiplier of 2, 3, and 5). + + Parameters + ---------- + config_map : dict + configuration map + + data : array + a 3D np array containing experiment data + + Returns + ------- + data : array + a 3D np array containing data after the preprocessing + """ + + # zero out the aliens, aliens are the same for each data prep + try: + aliens = config_map.aliens + for alien in aliens: + data[alien[0]:alien[3], alien[1]:alien[4], alien[2]:alien[5]] = 0 + except AttributeError: + pass + + try: + amp_thresholds = config_map.amp_threshold + except AttributeError: + print ('define amplitude threshold. Exiting') + return + + try: + binsizes = config_map.binning + except AttributeError: + print 'no binsizes' + binsizes = None + + try: + pads = tuple(config_map.adjust_dimensions) + except AttributeError: + print 'no pads' + pads = None + + try: + center_shifts = tuple(config_map.center_shift) + except AttributeError: + center_shifts = None + + try: + data_dir = config_map.data_dir + except AttributeError: + data_dir = 'data' + + data_files = [] + for prep in range(len(amp_thresholds)): + # zero out the noise + prep_data = np.where(data < config_map.amp_threshold[prep], 0, data) + + if not binsizes is None: + # do binning + prep_data = ut.binning(prep_data, binsizes[prep]) + + # square root data + prep_data = np.sqrt(prep_data) + + if not pads is None: + # adjust the size, either zero pad or crop array + prep_data = ut.adjust_dimensions(prep_data, pads[prep]) + else: + prep_data = ut.adjust_dimensions(prep_data, (0,0,0,0,0,0)) + + if not center_shifts is None: + # get centered array + prep_data = ut.get_centered(prep_data, center_shifts[prep]) + else: + prep_data = ut.get_centered(prep_data, [0,0,0]) + + # save data + data_file = save_prepared_data(prep_data, data_dir, prep) + data_files.append(data_file) + return data_files + + +def save_prepared_data(data, data_dir, prep_no): + if not data_dir.endswith('/'): + data_dir = data_dir + '/' + if not os.path.exists(data_dir): + os.makedirs(data_dir) + + data_file = data_dir + 'datafile%s.npy' % str(prep_no) + np.save(data_file, data) + return data_file + + +def write_simple(arr, filename): + from tvtk.api import tvtk, write_data + + id=tvtk.ImageData() + id.point_data.scalars=abs(arr.ravel(order='F')) + id.dimensions=arr.shape + write_data(id, filename) + + +def select_best(img_errs): + min_er = 1000 + min_index = -1 + for i in range(len(img_errs)): + errors = img_errs[i][1] + len_er = len(errors) + er_sum = sum(errors[len_er-11:len_er-1]) + print 'er_sum', er_sum + image = img_errs[i][0] + image = np.where(image>0.25, image, 0) + img_std = np.std(image) + print 'img std', img_std + if er_sum < min_er: + min_index = i + return min_index + + +def save_best(data_file): + dst = data_file.translate(None, digits).replace('datafile', 'data') + shutil.copyfile(data_file, dst) + + +def test_reconstruction(data_files, conf, config_map, proc): + img_errs = [] + for data_file in data_files: + data = np.load(data_file) + + # create inital support and guess arrays + image = ut.get_init_array(data.shape).astype(complex) + support = ut.get_init_array(data.shape) + + try: + device = config_map.device + except: + device = -1 + + image, support, coherence, errors = calc.fast_module_reconstruction(proc, device, conf, data, None, image, support) + + # save tuple of image and errors for the automated pick + img_errs.append((image,errors)) + + # simple save the reconstruction for visual inspection + image_file = data_file.replace('datafile', 'image').replace('.npy', '') + write_simple(image, image_file) + return img_errs + + +def prep(proc, fname, conf): + data = ut.get_array_from_tif(fname) + + config_map = ut.read_config(conf) + if config_map is None: + print ("can't read configuration file") + return + + print ('data dimensions before prep', data.shape) + # prepare data according to configuration file. It will produce several prepared data files, differentiated by + # the configuration parameters. + data_files = prepare_data(config_map, data) + + # run the same short reconstruction on the prepared data files and save results in vti format for visual comparison. + img_errs = test_reconstruction(data_files, conf, config_map, proc) + + #based on errors select the best image + best_index = select_best(img_errs) + + # copy best data file to data.npy + save_best(data_files[best_index]) + + +#prep('opencl', '/local/bfrosik/CDI/S149/Staff14-3_S0149.tif', 'config_data') + diff --git a/src_py/controller/fast_module.py b/src_py/controller/fast_module.py index 5d80ccd..8a3b85c 100755 --- a/src_py/controller/fast_module.py +++ b/src_py/controller/fast_module.py @@ -20,7 +20,6 @@ import numpy as np import src_py.utilities.CXDVizNX as cx import scipy.fftpack as sf -import matplotlib.pyplot as plt import src_py.cyth.bridge_cpu as bridge_cpu import src_py.cyth.bridge_opencl as bridge_opencl #import src_py.cyth.bridge_cuda as bridge_cuda @@ -29,12 +28,10 @@ __author__ = "Barbara Frosik" __copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." __docformat__ = 'restructuredtext en' -__all__ = ['fast_module_reconstruction', - 'write_simple', - 'reconstruction'] +__all__ = ['fast_module_reconstruction',] -def fast_module_reconstruction(proc, conf, data, coh_dims, image=None, support=None, coherence=None): +def fast_module_reconstruction(proc, device, conf, data, coh_dims, image=None, support=None, coherence=None): """ This function calls a bridge method corresponding to the requested processor type. The bridge method is an access to the CFM (Calc Fast Module). When reconstruction is completed the function retrieves results from the CFM. @@ -80,13 +77,13 @@ def fast_module_reconstruction(proc, conf, data, coh_dims, image=None, support=N data_l = data.flatten().tolist() if image is None: - fast_module.start_calc(data_l, dims1, conf) + fast_module.start_calc(device, data_l, dims1, conf) elif support is None: # pass image image = np.swapaxes(image, 1, 0) image = np.swapaxes(image, 2, 0) image = image.flatten() - fast_module.start_calc_with_guess(data_l, image.real.tolist(), image.imag.tolist(), dims1, conf) + fast_module.start_calc_with_guess(device, data_l, image.real.tolist(), image.imag.tolist(), dims1, conf) elif coherence is None: # pass image and support image = np.swapaxes(image, 1, 0) @@ -95,7 +92,7 @@ def fast_module_reconstruction(proc, conf, data, coh_dims, image=None, support=N support = np.swapaxes(support, 1, 0) support = np.swapaxes(support, 2, 0) support = support.flatten() - fast_module.start_calc_with_guess_support(data_l, image.real.tolist(), image.imag.tolist(), support.tolist(), dims1, conf) + fast_module.start_calc_with_guess_support(device, data_l, image.real.tolist(), image.imag.tolist(), support.tolist(), dims1, conf) else: # pass image and support and coherence image = np.swapaxes(image, 1, 0) @@ -109,12 +106,13 @@ def fast_module_reconstruction(proc, conf, data, coh_dims, image=None, support=N coherence = np.swapaxes(coherence, 2, 0) coherence = coherence.flatten() - fast_module.start_calc_with_guess_support_coh(data_l, image.real.tolist(), image.imag.tolist(), support.tolist(), dims1, coherence.tolist(), coh_dims1, conf) + fast_module.start_calc_with_guess_support_coh(device, data_l, image.real.tolist(), image.imag.tolist(), support.tolist(), dims1, coherence.tolist(), coh_dims1, conf) er = fast_module.get_errors() image_r = np.asarray(fast_module.get_image_r()).copy() image_i = np.asarray(fast_module.get_image_i()).copy() image = image_r + 1j*image_i + print 'image norm in fast module', sum(abs(image)**2) # normalize image mx = max(np.absolute(image).ravel().tolist()) image = image/mx @@ -140,53 +138,3 @@ def fast_module_reconstruction(proc, conf, data, coh_dims, image=None, support=N return image, support, coherence, er -def write_simple(arr, filename): - from tvtk.api import tvtk, write_data - - id=tvtk.ImageData() - id.point_data.scalars=abs(arr.ravel(order='F')) - id.dimensions=arr.shape - write_data(id, filename) - - -def reconstruction(proc, conf, data, coh_dims, image, support, coherence): - """ - This function is called by the user. It checks whether the data is valid and configuration file exists. - It calls function to pre-process the data, and then to run reconstruction. - The reconstruction results, image and errors are returned. - - Parameters - ---------- - proc : str - a string indicating the processor type - - filename : str - name of a file containing experiment data - - conf : str - configuration file name - - Returns - ------- - image : array - a 3D np array containing reconstructed image - - er : array - a vector containing mean error for each iteration - """ - if image is None: - image, support, coherence, errors = fast_module_reconstruction(proc, conf, data, coh_dims) - else: - image, support, coherence, errors = fast_module_reconstruction(proc, conf, data, coh_dims, image, support, coherence) - - cx.save_CX(conf, image, support) - - errors.pop(0) - plt.plot(errors) - plt.ylabel('errors') - plt.show() - - - return image, support, coherence, errors - - diff --git a/src_py/controller/generation.py b/src_py/controller/gen_rec.py similarity index 66% rename from src_py/controller/generation.py rename to src_py/controller/gen_rec.py index bbc32a8..008113f 100644 --- a/src_py/controller/generation.py +++ b/src_py/controller/gen_rec.py @@ -18,8 +18,12 @@ """ import numpy as np +import matplotlib.pyplot as plt +import os +import src_py.controller.reconstruction as rec import src_py.utilities.utils as ut + __author__ = "Barbara Frosik" __copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." __docformat__ = 'restructuredtext en' @@ -105,3 +109,80 @@ def get_gmask(self, generation, shape): ut.gaussian(shape, self.sigmas[generation]) else: return np.ones(shape) + + +def save_results(image, support, coherence, save_dir): + if not save_dir.endswith('/'): + save_dir = save_dir + '/' + if not os.path.exists(save_dir): + os.makedirs(save_dir) + + #data_file = data_dir + 'datafile%s.npy' % str(prep_no) + np.save(save_dir + 'image', image) + np.save(save_dir + 'support', support) + np.save(save_dir + 'coherence', coherence) + + +def reconstruction(generations, proc, data, conf, config_map): + """ + This function is called by the user. It checks whether the data is valid and configuration file exists. + It calls function to pre-process the data, and then to run reconstruction. + The reconstruction results, image and errors are returned. + + Parameters + ---------- + proc : str + a string indicating the processor type + + conf : str + configuration file name + + Returns + ------- + image : array + a 3D np array containing reconstructed image + + er : array + a vector containing mean error for each iteration + """ + + try: + low_resolution_generations = config_map.low_resolution_generations + except: + low_resolution_generations = 0 + + try: + threads = config_map.threads + except: + threads = 1 + + previous = [] + for _ in range(threads): + previous.append((None, None, None)) + + gen_obj = Generation(config_map) + for g in range(low_resolution_generations): + gen_data = gen_obj.get_data(g, data) + previous = rec.rec(proc, gen_data, conf, config_map, previous) + for g in range(low_resolution_generations, generations): + previous = rec.rec(proc, data, conf, config_map, previous) + image = previous[0][0] + print 'image norm', ut.get_norm(image), '---------------------' + errors = previous[0][3] + errors.pop(0) + plt.plot(errors) + plt.ylabel('errors') + plt.show() + + results = previous + + try: + save_dir = config_map.save_dir + if not save_dir.endswith('/'): + save_dir = save_dir + '/' + except AttributeError: + save_dir = 'results/' + + save_results(results, save_dir) + + diff --git a/src_py/controller/reconstruction.py b/src_py/controller/reconstruction.py index 9bc7d28..48394f1 100644 --- a/src_py/controller/reconstruction.py +++ b/src_py/controller/reconstruction.py @@ -19,129 +19,102 @@ import numpy as np import src_py.utilities.utils as ut -import pylibconfig2 as cfg +import matplotlib.pyplot as plt import os import src_py.controller.fast_module as calc -from src_py.controller.generation import Generation __author__ = "Barbara Frosik" __copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." __docformat__ = 'restructuredtext en' __all__ = ['read_config', - 'prepare_data', 'reconstruction'] -def read_config(config): - """ - This function gets configuration file. It checks if the file exists and parses it into a map. - - Parameters - ---------- - config : str - configuration file name, including path - - Returns - ------- - config_map : dict - a map containing parsed configuration, None if the given file does not exist - """ +def read_results(read_dir): + files = [] + def append_from_dir(file_dir): + try: + imagefile = file_dir + 'image.npy' + image = np.load(imagefile) - if os.path.isfile(config): - with open(config, 'r') as f: - config_map = cfg.Config(f.read()) - return config_map; - else: - return None + supportfile = file_dir + 'support.npy' + support = np.load(supportfile) + try: + cohfile = file_dir + 'coherence.npy' + coh = np.load(cohfile) + except: + coh = None -def prepare_data(config_map, data): - """ - This function prepares raw data for reconstruction. It uses configured parameters. The preparation consists of the following steps: - 1. clearing the noise - the values below an amplitude threshold are set to zero - 2. removing the "aliens" - aliens are areas that are effect of interference. The area is manually set in a configuration file - after inspecting the data. - 3. binning - adding amplitudes of several consecutive points. Binning can be done in any dimension. - 4. amplitudes are set to sqrt - 5. centering - finding the greatest amplitude and locating it at a center of new array. Typically several new rows/columns/slices - are added. These are filled with zeros. When changing the dimension the code finds the smallest possible dimension that is - supported by opencl library (multiplier of 2, 3, and 5). + files.append((image, support, coh)) + except: + pass - Parameters - ---------- - config_map : dict - configuration map + append_from_dir(read_dir) + if len(files) > 0: + return files - data : array - a 3D np array containing experiment data + for sub in os.listdir(read_dir): + append_from_dir(os.path.join(read_dir, sub)+'/') - Returns - ------- - data : array - a 3D np array containing data after the preprocessing - """ + return files - # zero out the noise - data = np.where(data < config_map.amp_threshold, 0, data) + +def save_results(results, save_dir): + def save_rec(res, file_dir): + if not os.path.exists(file_dir): + os.makedirs(file_dir) - # zero out the aliens - try: - aliens = config_map.aliens - for alien in aliens: - data[alien[0]:alien[3], alien[1]:alien[4], alien[2]:alien[5]] = 0 - except AttributeError: - pass + #data_file = data_dir + 'datafile%s.npy' % str(prep_no) + np.save(file_dir + 'image', res[0]) + np.save(file_dir + 'support', res[1]) + if not res[2] is None: + np.save(file_dir + 'coherence', res[2]) - # do binning - try: - binsizes = config_map.binning - data = ut.binning(data, binsizes) - except AttributeError: - pass + if len(results) == 1: + save_rec(results[0], save_dir) + else: + for i in range(len(results)): + save_rec(results[i], save_dir + str(i) + '/') - # square root data - data = np.sqrt(data) -# # get centered array -# try: -# center_shift = tuple(config_map.center_shift) -# except AttributeError: -# center_shift = (0, 0, 0) -# data = ut.get_centered1(data, center_shift) +def assign_devices(devices, threads): + print 'devices, threads', devices, threads + dev_no = len(devices) + dev = [] + for thread in range(threads): + if thread < dev_no: + dev.append(devices[thread]) + else: + dev.append[-1] + return dev - # adjust the size, either zero pad or crop array - try: - pad = tuple(config_map.adjust_dimensions) - data = ut.adjust_dimensions(data, pad) - except AttributeError: - pass - # get centered array +def rec(proc, data, conf, config_map, previous): try: - center_shift = tuple(config_map.center_shift) - except AttributeError: - center_shift = (0, 0, 0) - - data = ut.get_centered(data, center_shift) - - return data + devices = config_map.device + except: + devices = [-1] + # assign device for each thread + threads = len(previous) + devices = assign_devices(devices, threads) -def save_prepared_data(data, config_map): try: - save_dir = config_map.save_dir - if not save_dir.endswith('/'): - save_dir = save_dir + '/' - if not os.path.exists(save_dir): - os.makedirs(save_dir) - except AttributeError: - print ("save_dir not configured") + coh_dims = tuple(config_map.partial_coherence_roi) + except: + coh_dims = None - np.save(save_dir + '/data.npy', data) + results = [] + for i in range(threads): + res = previous[i] + image, support, coherence, errors = calc.fast_module_reconstruction(proc, devices[i], conf, data, coh_dims, res[0], res[1], res[2]) + results.append((image, support, coherence, errors)) + return results -def reconstruction(proc, filename, conf): +def reconstruction(proc, data, conf, config_map): """ This function is called by the user. It checks whether the data is valid and configuration file exists. It calls function to pre-process the data, and then to run reconstruction. @@ -152,9 +125,6 @@ def reconstruction(proc, filename, conf): proc : str a string indicating the processor type - filename : str - name of a file containing experiment data - conf : str configuration file name @@ -167,56 +137,45 @@ def reconstruction(proc, filename, conf): a vector containing mean error for each iteration """ - data = ut.get_array_from_tif(filename) - - config_map = read_config(conf) - if config_map is None: - print ("can't read configuration file") - return None, None - - print ('data dimensions before prep', data.shape) - data = prepare_data(config_map, data) - print ('data dimensions after prep', data.shape) - + # how many reconstructions to start try: - action = config_map.action - except AttributeError: - action = 'new_guess' - - try: - save_results = config_map.save_results - except AttributeError: - save_results = False - - if action == 'prep_only': - save_prepared_data(data, config_map) - return + threads = config_map.threads + except: + threads = 1 + + # if continue, find the previous results from the continue_dir + if config_map.cont: + try: + continue_dir = config_map.continue_dir + if not continue_dir.endswith('/'): + continue_dir = continue_dir + '/' + except: + print ("continue_dir not configured") + return None + previous = read_results(continue_dir) + else: + previous = [] + for _ in range(threads): + previous.append((None, None, None)) - if save_results: - save_prepared_data(data, config_map) + results = rec(proc, data, conf, config_map, previous) try: - generations = config_map.generations - except: - generations = 1 - try: - low_resolution_generations = config_map.low_resolution_generations - except: - low_resolution_generations = 0 + save_dir = config_map.save_dir + if not save_dir.endswith('/'): + save_dir = save_dir + '/' + except AttributeError: + save_dir = 'results/' - try: - coh_dims = tuple(config_map.partial_coherence_roi) - except: - coh_dims = None + save_results(results, save_dir) - image, support, coherence = None, None, None - gen_obj = Generation(config_map) - for g in range(low_resolution_generations): - gen_data = gen_obj.get_data(g, data) - image, support, coherence, errors = calc.reconstruction(proc, conf, gen_data, coh_dims, image, support, coherence) - for g in range(low_resolution_generations, generations): - image, support, coherence, errors = calc.reconstruction(proc, conf, data, coh_dims, image, support, coherence) + if len(results) == 1: + errors = results[0][3] + errors.pop(0) + plt.plot(errors) + plt.ylabel('errors') + plt.show() + return results -#reconstruction('opencl', '/home/phoebus/BFROSIK/CDI/S149/Staff14-3_S0149.tif', '/local/bfrosik/cdi/config.test') diff --git a/src_py/cyth/bridge_cpu.pyx b/src_py/cyth/bridge_cpu.pyx index 104664d..556a36b 100644 --- a/src_py/cyth/bridge_cpu.pyx +++ b/src_py/cyth/bridge_cpu.pyx @@ -18,10 +18,10 @@ from libcpp.string cimport string cdef extern from "../include/bridge.hpp": cdef cppclass Bridge: Bridge() except + - void StartCalcWithGuess(vector[float], vector[float], vector[float], vector[int], string) - void StartCalcWithGuessSupport(vector[float], vector[float], vector[float], vector[int], vector[int], string) - void StartCalcWithGuessSupportCoh(vector[float], vector[float], vector[float], vector[int], vector[int], vector[float], vector[int], string) - void StartCalc(vector[float], vector[int], string) + void StartCalcWithGuess(int, vector[float], vector[float], vector[float], vector[int], string) + void StartCalcWithGuessSupport(int, vector[float], vector[float], vector[float], vector[int], vector[int], string) + void StartCalcWithGuessSupportCoh(int, vector[float], vector[float], vector[float], vector[int], vector[int], vector[float], vector[int], string) + void StartCalc(int, vector[float], vector[int], string) vector[double] GetImageR() vector[double] GetImageI() vector[double] GetErrors() @@ -36,14 +36,14 @@ cdef class PyBridge: self.thisptr = new Bridge() def __dealloc__(self): del self.thisptr - def start_calc_with_guess(self, data_r, guess_r, guess_i, dims, config): - self.thisptr.StartCalcWithGuess(data_r, guess_r, guess_i, dims, config.encode()) - def start_calc_with_guess_support(self, data_r, guess_r, guess_i, support, dims, config): - self.thisptr.StartCalcWithGuessSupport(data_r, guess_r, guess_i, support, dims, config.encode()) - def start_calc_with_guess_support_coh(self, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): - self.thisptr.StartCalcWithGuessSupportCoh(data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) - def start_calc(self, data_r, dims, config): - self.thisptr.StartCalc(data_r, dims, config.encode()) + def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): + self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) + def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): + self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) + def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): + self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) + def start_calc(self, device, data_r, dims, config): + self.thisptr.StartCalc(device, data_r, dims, config.encode()) def get_image_r(self): return self.thisptr.GetImageR() def get_image_i(self): diff --git a/src_py/cyth/bridge_cuda.pyx b/src_py/cyth/bridge_cuda.pyx index 7f1f707..56cabcd 100755 --- a/src_py/cyth/bridge_cuda.pyx +++ b/src_py/cyth/bridge_cuda.pyx @@ -17,10 +17,10 @@ from libcpp.string cimport string cdef extern from "../include/bridge.hpp": cdef cppclass Bridge: Bridge() except + - void StartCalcWithGuess(vector[float], vector[float], vector[float], vector[int], string) - void StartCalcWithGuessSupport(vector[float], vector[float], vector[float], vector[int], vector[int], string) - void StartCalcWithGuessSupportCoh(vector[float], vector[float], vector[float], vector[int], vector[int], vector[float], vector[int], string) - void StartCalc(vector[float], vector[int], string) + void StartCalcWithGuess(int, vector[float], vector[float], vector[float], vector[int], string) + void StartCalcWithGuessSupport(int, vector[float], vector[float], vector[float], vector[int], vector[int], string) + void StartCalcWithGuessSupportCoh(int, vector[float], vector[float], vector[float], vector[int], vector[int], vector[float], vector[int], string) + void StartCalc(int, vector[float], vector[int], string) vector[double] GetImageR() vector[double] GetImageI() vector[double] GetErrors() @@ -35,14 +35,14 @@ cdef class PyBridge: self.thisptr = new Bridge() def __dealloc__(self): del self.thisptr - def start_calc_with_guess(self, data_r, guess_r, guess_i, dims, config): - self.thisptr.StartCalcWithGuess(data_r, guess_r, guess_i, dims, config.encode()) - def start_calc_with_guess_support(self, data_r, guess_r, guess_i, support, dims, config): - self.thisptr.StartCalcWithGuessSupport(data_r, guess_r, guess_i, support, dims, config.encode()) - def start_calc_with_guess_support_coh(self, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): - self.thisptr.StartCalcWithGuessSupportCoh(data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) - def start_calc(self, data_r, dims, config): - self.thisptr.StartCalc(data_r, dims, config.encode()) + def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): + self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) + def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): + self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) + def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): + self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) + def start_calc(self, device, data_r, dims, config): + self.thisptr.StartCalc(device, data_r, dims, config.encode()) def get_image_r(self): return self.thisptr.GetImageR() def get_image_i(self): diff --git a/src_py/cyth/bridge_opencl.pyx b/src_py/cyth/bridge_opencl.pyx index b8f1613..f5cafd6 100755 --- a/src_py/cyth/bridge_opencl.pyx +++ b/src_py/cyth/bridge_opencl.pyx @@ -17,10 +17,10 @@ from libcpp.string cimport string cdef extern from "../include/bridge.hpp": cdef cppclass Bridge: Bridge() except + - void StartCalcWithGuess(vector[float], vector[float], vector[float], vector[int], string) - void StartCalcWithGuessSupport(vector[float], vector[float], vector[float], vector[int], vector[int], string) - void StartCalcWithGuessSupportCoh(vector[float], vector[float], vector[float], vector[int], vector[int], vector[float], vector[int], string) - void StartCalc(vector[float], vector[int], string) + void StartCalcWithGuess(int, vector[float], vector[float], vector[float], vector[int], string) + void StartCalcWithGuessSupport(int, vector[float], vector[float], vector[float], vector[int], vector[int], string) + void StartCalcWithGuessSupportCoh(int, vector[float], vector[float], vector[float], vector[int], vector[int], vector[float], vector[int], string) + void StartCalc(int, vector[float], vector[int], string) vector[double] GetImageR() vector[double] GetImageI() vector[double] GetErrors() @@ -35,14 +35,14 @@ cdef class PyBridge: self.thisptr = new Bridge() def __dealloc__(self): del self.thisptr - def start_calc_with_guess(self, data_r, guess_r, guess_i, dims, config): - self.thisptr.StartCalcWithGuess(data_r, guess_r, guess_i, dims, config.encode()) - def start_calc_with_guess_support(self, data_r, guess_r, guess_i, support, dims, config): - self.thisptr.StartCalcWithGuessSupport(data_r, guess_r, guess_i, support, dims, config.encode()) - def start_calc_with_guess_support_coh(self, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): - self.thisptr.StartCalcWithGuessSupportCoh(data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) - def start_calc(self, data_r, dims, config): - self.thisptr.StartCalc(data_r, dims, config.encode()) + def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): + self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) + def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): + self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) + def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): + self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) + def start_calc(self, device, data_r, dims, config): + self.thisptr.StartCalc(device, data_r, dims, config.encode()) def get_image_r(self): return self.thisptr.GetImageR() def get_image_i(self): diff --git a/src_py/utilities/CXDVizNX.py b/src_py/utilities/CXDVizNX.py index cb1c0f1..af0927b 100644 --- a/src_py/utilities/CXDVizNX.py +++ b/src_py/utilities/CXDVizNX.py @@ -71,12 +71,6 @@ def __init__(self, config): except AttributeError: self.crop = None print ('crop not defined') - try: - self.save_dir = config_map.save_dir - if not self.save_dir.endswith('/'): - self.save_dir = self.save_dir + '/' - except AttributeError: - self.save_dir = '' class CXDViz(tr.HasTraits): @@ -352,7 +346,7 @@ def get_crop(params, shape): # return image, support # -def save_CX(conf, image, support): +def save_CX(conf, image, support, save_dir): image, support = center(image, support) # image = remove_ramp(image) params = DispalyParams(conf) @@ -361,7 +355,7 @@ def save_CX(conf, image, support): viz.set_geometry(params, image.shape) crop = get_crop(params, image.shape) viz.set_crop(crop[0], crop[1], crop[2]) # save image - viz.write_structured_grid(params.save_dir + 'image') + viz.write_structured_grid(save_dir + 'image') viz.set_array(support) - viz.write_structured_grid(params.save_dir + 'support') + viz.write_structured_grid(save_dir + 'support') diff --git a/src_py/utilities/utils.py b/src_py/utilities/utils.py index d1c7f4e..c07a9b1 100644 --- a/src_py/utilities/utils.py +++ b/src_py/utilities/utils.py @@ -13,7 +13,9 @@ """ import tifffile as tf +import pylibconfig2 as cfg import numpy as np +import os __author__ = "Barbara Frosik" __copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." @@ -45,6 +47,29 @@ def get_array_from_tif(filename): return tf.imread(filename) +def read_config(config): + """ + This function gets configuration file. It checks if the file exists and parses it into a map. + + Parameters + ---------- + config : str + configuration file name, including path + + Returns + ------- + config_map : dict + a map containing parsed configuration, None if the given file does not exist + """ + + if os.path.isfile(config): + with open(config, 'r') as f: + config_map = cfg.Config(f.read()) + return config_map; + else: + return None + + def get_good_dim(dim): """ This function calculates the dimension supported by opencl library (i.e. is multiplier of 2,3, or 5) and is closest to the @@ -189,79 +214,6 @@ def get_centered(array, center_shift): centered = np.roll(array, int(shape[2]/2)-max_coordinates[2], 2) return centered - - - -def get_centered1(array, center_shift): - """ - This function finds a greatest value in the array, and puts it in a center of a new array. The extra elements in the new - array are set to 0. - - Parameters - ---------- - array : array - the original array to be centered - - center_shift : list - a list defining shift of the center - - Returns - ------- - array : array - the centered array - """ - max_coordinates = list(np.unravel_index(np.argmax(array), array.shape)) - max_coordinates = np.add(max_coordinates, center_shift) - shape = array.shape - new_shape = [] - shift = [] - # find new shape that can fit the array with max_coordinate in center - for ax in range(len(shape)): - if max_coordinates[ax] <= int(shape[ax]/2): - new_shape.append(2*(shape[ax] - max_coordinates[ax])) - else: - new_shape.append(2*max_coordinates[ax]) - shift.append(int(new_shape[ax]/2) - max_coordinates[ax]) - - centered = np.zeros(tuple(new_shape), dtype=array.dtype) - - # this supports 3D arrays - centered[shift[0]:shift[0]+shape[0], shift[1]:shift[1]+shape[1], shift[2]:shift[2]+shape[2]] = array - - return centered - - -def adjust_dimensions1(arr, pad): - """ - This function adds to or subtracts from each dimension of the array elements defined by pad. If the pad is positive, - the array is padded in this dimension. The elements are added to the beginning of array and end by the same number, - so the original array is centered. If the pad is negative, the array is cropped. The crop is symmetrical at the - beginning and end of the array in the related dimension. - The dimensions of the new array are supported by the opencl library. - Parameters - ---------- - arr : array - the array to pad/crop - pad : list - list of three pad values, for each dimension - Returns - ------- - array : array - the padded/cropped array - """ - dims = arr.shape - new_dims = [] - new_pad = [] - new_crop = [] - for i in range(len(dims)): - new_dims.append(get_good_dim(dims[i] + 2 * pad[i])) - new_pad.append(max(0, int((new_dims[i] - dims[i]) / 2))) - new_crop.append(max(0, int((dims[i] - new_dims[i]) / 2))) - - arr = np.lib.pad(arr, ((new_pad[0], new_pad[0]), (new_pad[1], new_pad[1]), (new_pad[2], new_pad[2])), 'constant', - constant_values=((0.0, 0.0), (0.0, 0.0), (0.0, 0.0))).copy() - - return arr[new_crop[0]:new_crop[0]+new_dims[0], new_crop[1]:new_crop[1]+new_dims[1], new_crop[2]:new_crop[2]+new_dims[2]] def adjust_dimensions(arr, pad): @@ -309,6 +261,17 @@ def crop_center(arr, new_size): return arr[ int((size[0]-new_size[0])/2) : int((size[0]-new_size[0])/2) + new_size[0], int((size[1]-new_size[1])/2) : int((size[1]-new_size[1])/2) + new_size[1], int((size[2]-new_size[2])/2) : int((size[2]-new_size[2])/2) + new_size[2]] +def get_init_array(shape): + half_shape = (shape[0]/2, shape[1]/2, shape[2]/2) + arr = np.ones(half_shape) + return np.lib.pad(arr, ((half_shape[0]/2, half_shape[0]-half_shape[0]/2), (half_shape[1]/2, half_shape[1]-half_shape[1]/2), (half_shape[2]/2, half_shape[2]-half_shape[2]/2)), 'constant', + constant_values=((0.0, 0.0), (0.0, 0.0), (0.0, 0.0))) + + +def get_norm(arr): + return sum(sum(sum(abs(arr)**2))) + + def flip(m, axis): """ Copied from numpy 1.12.0. diff --git a/test.py b/test.py deleted file mode 100755 index 125be53..0000000 --- a/test.py +++ /dev/null @@ -1,47 +0,0 @@ -import src_py.controller.reconstruction as rec -import sys -import signal -import os -import argparse -from multiprocessing import Process -from os.path import expanduser -import subprocess - - -def interrupt_thread(arg): - def int_handler(signal, frame): - open('stopfile', 'a').close() - - def term_handler(signal, frame): - pass - - signal.signal(signal.SIGINT, int_handler) - signal.signal(signal.SIGTERM, term_handler) - signal.pause() - - -def main(arg): - - parser = argparse.ArgumentParser() - parser.add_argument("proc", help="the processor the code will run on, can be 'cpu', 'opencl', or 'cuda'.") - parser.add_argument("fname", help="data file filename. It is assumed the file is in tif format.") - parser.add_argument("conf", help="configuration file.") - - args = parser.parse_args() - proc = args.proc - fname = args.fname - conf = args.conf - - rec.reconstruction(proc, fname, conf) - - -if __name__ == "__main__": - if os.path.exists('stopfile'): - os.remove('stopfile') - p = Process(target = interrupt_thread, args = (10,)) - p.start() - main(sys.argv[1:]) - p.terminate() - -#python test.py 'opencl' '/home/phoebus/BFROSIK/CDI/S149/Staff14-3_S0149.tif' 'config.test' - From 3ab5f06932c34bdd1710d38fa832207e8f6731d9 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Wed, 18 Apr 2018 11:07:04 -0500 Subject: [PATCH 080/336] modified iteration resolutiion feature --- config_rec | 20 ++++++++--------- include/parameters.hpp | 16 +++++++------- include/resolution.hpp | 2 ++ include/support.hpp | 5 +++-- include/worker.hpp | 17 ++++++++++++++- src_cpp/parameters.cpp | 34 ++++++++++++++--------------- src_cpp/resolution.cpp | 11 ++++++++-- src_cpp/support.cpp | 27 +++++++++++++++++++---- src_cpp/worker.cpp | 28 ++++++++++++++++++------ src_py/controller/reconstruction.py | 1 - 10 files changed, 109 insertions(+), 52 deletions(-) diff --git a/config_rec b/config_rec index 357a17f..c6adf28 100644 --- a/config_rec +++ b/config_rec @@ -21,7 +21,7 @@ device = [0,0] // ID of the target devices for each thread. // If more threads or not defined, it will default to -1 -gc = 1; +gc = 2; // ArrayFire memory management is not reliable, the way around is to call garbage // collection per defined number of iterations. Decrease this value if out of memory // error occurs @@ -71,9 +71,9 @@ twin = 2; // twin defines at which iteration to cut half of the array(i.e. multiply by 0s), // it is done in ER/HIO. If don't want to apply twin, set it negative. -phase_triggers = ((1, 1, 30)) -phase_min = -2.0; -phase_max = 2.0; +phase_triggers = ((1, 1, 40)) +phase_min = -1.57; +phase_max = 1.57; beta = .9; @@ -101,18 +101,18 @@ partial_coherence_roi = [32,32,32]; // coherence area. If the values are fractional, the coherence area will be calculated // by multiplying by the data array dimensions. -//update_resolution_triggers = (1, 20) +update_resolution_triggers = (1, 39) // the data is being modified with calculated mask starting with first iteration. // the trigger defines step and last iteration for which it is applied -iter_res_sigma_range = (3.0) +iter_res_sigma_range = (2.0, 1.0) // used when applying low resolution to replace support sigma. - // The sigmas are linespaced for low resolution iterations from min value to max. - // If only one number given, the min sigma will default to support_sigma + // The sigmas are linespaced for low resolution iterations from first value to last. + // If only one number given, the last sigma will default to support_sigma -iter_res_det_range = (50, 1) +iter_res_det_range = (.7, 1.0) // used when applying low resolution data mask while iterating. - // The det values are linespaced for low resolution iterations from max value to min. + // The det values are linespaced for low resolution iterations from first value to last. // The mask is gauss with sigma of linespaced det. If only one number given, // the min det will default to 1 diff --git a/include/parameters.hpp b/include/parameters.hpp index cabb6ae..536d042 100644 --- a/include/parameters.hpp +++ b/include/parameters.hpp @@ -79,13 +79,13 @@ class Params int low_res_iterations; - float iter_res_sigma_min; + float iter_res_sigma_first; - float iter_res_sigma_max; + float iter_res_sigma_last; - float iter_res_det_min; + float iter_res_det_first; - float iter_res_det_max; + float iter_res_det_last; std::vector update_resolution_triggers; @@ -124,10 +124,10 @@ class Params std::vector GetUpdateResolutionTriggers(); int GetLowResolutionIter(); - float GetIterResSigmaMin(); - float GetIterResSigmaMax(); - float GetIterResDetMin(); - float GetIterResDetMax(); + float GetIterResSigmaFirst(); + float GetIterResSigmaLast(); + float GetIterResDetFirst(); + float GetIterResDetLast(); // Returns amplitude threshold. Used by ER and HIO algorithms. d_type GetAmpThreshold(); diff --git a/include/resolution.hpp b/include/resolution.hpp index 1167f38..773b4cc 100644 --- a/include/resolution.hpp +++ b/include/resolution.hpp @@ -19,6 +19,7 @@ namespace af { class Resolution { private: + std::vector dets; std::vector sigmas; public: @@ -29,6 +30,7 @@ class Resolution // Returns resolution based on iteration af::array GetIterData(int iter, af::array data); + float GetIterSigma(int iter); }; diff --git a/include/support.hpp b/include/support.hpp index d171868..a6acafd 100644 --- a/include/support.hpp +++ b/include/support.hpp @@ -25,10 +25,11 @@ class Support af::array support_array; af::array init_support_array; af::array GaussConvFft(af::array ds_image); - + af::array GetDistribution(const af::dim4 data_dim, d_type sigma); + public: Support(const af::dim4 data_dim, Params *params, af::array support_array); - void Update(const af::array ds_image, bool amp, bool phase); + void Update(const af::array ds_image, bool amp, bool phase, d_type sigma); int GetTriggerAlgorithm(); float GetThreshold(); af::array GetSupportArray(bool twin=false); diff --git a/include/worker.hpp b/include/worker.hpp index b2a0731..00f3739 100644 --- a/include/worker.hpp +++ b/include/worker.hpp @@ -118,6 +118,21 @@ class Reconstruction std::vector GetCoherenceVectorR(); std::vector GetCoherenceVectorI(); +/* void GarbageTrigger(); + RESOLUTION_TRIGGER, + AMP_SUPPORT_TRIGGER, + PHASE_SUPPORT_TRIGGER, + TO_REAL_SPACE, + PARTIAL_COHERENCE_TRIGGER, + CONVERGE_RATIO_TRIGGER, + NO_CONVERGE_RATIO_TRIGGER, + TUNE_RS_AMPLITUDES, + SET_PREVIOUS_PCDI_TRIGGER, + TO_RECIPROCAL_SPACE, + ALGORITHM, + TWINTRIGGER, + AVERAGE_TRIGGER, + STOP_APPL}; +*/ }; - #endif /* worker_hpp */ diff --git a/src_cpp/parameters.cpp b/src_cpp/parameters.cpp index e212b47..852c68d 100644 --- a/src_cpp/parameters.cpp +++ b/src_cpp/parameters.cpp @@ -44,7 +44,7 @@ Params::Params(const char* config_file, std::vector data_dim, bool first) plot_errors = false; gc = -1; low_res_iterations = 0; - iter_res_det_min = 1; + iter_res_det_first = 1; update_resolution_triggers.clear(); @@ -334,13 +334,13 @@ Params::Params(const char* config_file, std::vector data_dim, bool first) int size = tmp.getLength(); if (size > 1) { - iter_res_sigma_min = tmp[0]; - iter_res_sigma_max = tmp[1]; + iter_res_sigma_first = tmp[0]; + iter_res_sigma_last = tmp[1]; } else { - iter_res_sigma_min = support_sigma; - iter_res_sigma_max = tmp[0]; + iter_res_sigma_first = support_sigma; + iter_res_sigma_last = tmp[0]; } } catch(const SettingNotFoundException &nfex) @@ -355,13 +355,13 @@ Params::Params(const char* config_file, std::vector data_dim, bool first) int size = tmp.getLength(); if (size > 1) { - iter_res_det_min = tmp[0]; - iter_res_det_max = tmp[1]; + iter_res_det_first = tmp[0]; + iter_res_det_last = tmp[1]; } else { - iter_res_det_min = 1; - iter_res_det_max = tmp[0]; + iter_res_det_first = 1; + iter_res_det_last = tmp[0]; } } catch(const SettingNotFoundException &nfex) @@ -593,23 +593,23 @@ int Params::GetLowResolutionIter() return low_res_iterations; } -float Params::GetIterResSigmaMin() +float Params::GetIterResSigmaFirst() { - return iter_res_sigma_min; + return iter_res_sigma_first; } -float Params::GetIterResSigmaMax() +float Params::GetIterResSigmaLast() { - return iter_res_sigma_max; + return iter_res_sigma_last; } -float Params::GetIterResDetMin() +float Params::GetIterResDetFirst() { - return iter_res_det_min; + return iter_res_det_first; } -float Params::GetIterResDetMax() +float Params::GetIterResDetLast() { - return iter_res_det_max; + return iter_res_det_last; } diff --git a/src_cpp/resolution.cpp b/src_cpp/resolution.cpp index 184e45f..e12041c 100644 --- a/src_cpp/resolution.cpp +++ b/src_cpp/resolution.cpp @@ -16,21 +16,28 @@ using namespace af; Resolution::Resolution(Params* param) { int iter = param->GetLowResolutionIter(); - sigmas = Utils::Linspace(iter, param->GetIterResDetMax(), param->GetIterResDetMin()); + dets = Utils::Linspace(iter, param->GetIterResDetFirst(), param->GetIterResDetLast()); + sigmas = Utils::Linspace(iter, param->GetIterResSigmaFirst(), param->GetIterResSigmaLast()); } Resolution::~Resolution() { + dets.clear(); sigmas.clear(); } +float Resolution::GetIterSigma(int iter) +{ + return sigmas[iter]; +} + af::array Resolution::GetIterData(int iter, af::array data) { int alpha = 1; d_type *dim_sigmas = new d_type[nD]; for (int i=0; i 0) + { + distribution = GetDistribution(ds_image.dims(), sig); + } + printf("updating support\n"); af::array convag = GaussConvFft(abs(ds_image)); d_type max_convag = af::max(convag); @@ -57,7 +64,7 @@ void Support::Update(const af::array ds_image, bool amp_trigger, bool phase_trig if (amp_trigger) { support_array *= phase_condition; - init_support_array = support_array.copy(); +// init_support_array = support_array.copy(); } else { @@ -94,6 +101,18 @@ af::array Support::GetSupportArray(bool twin) } } +af::array Support::GetDistribution(const af::dim4 data_dim, d_type sigma) +{ + int alpha = 1; + d_type *sigmas = new d_type[nD]; + for (int i=0; i(ds_image_abs); diff --git a/src_cpp/worker.cpp b/src_cpp/worker.cpp index 4c2af51..f2524a9 100644 --- a/src_cpp/worker.cpp +++ b/src_cpp/worker.cpp @@ -88,29 +88,43 @@ void Reconstruction::Init() ds_image *= max_data * GetNorm(ds_image); // the next two lines are for testing it sets initial guess to initial support - //af::array temp = support->GetSupportArray(); - //ds_image = complex(temp.as((af_dtype) dtype_traits::ctype), 0.0).as(c64); + af::array temp = support->GetSupportArray(); + ds_image = complex(temp.as((af_dtype) dtype_traits::ctype), 0.0).as(c64); ds_image *= support->GetSupportArray(); printf("initial image norm %f\n", GetNorm(ds_image)); + // iter_data = data; } void Reconstruction::Iterate() { + d_type sig = params->GetSupportSigma(); while (state->Next()) { current_iteration = state->GetCurrentIteration(); iter_data = data; - if ((resolution != NULL) && (current_iteration < params->GetLowResolutionIter()) && (state->IsUpdateResolution())) + if (resolution != NULL) { - iter_data = resolution->GetIterData(current_iteration, data.copy()); - //d_type iter_data_max = af::max(iter_data); - //iter_data = iter_data/iter_data_max; + if ((current_iteration < params->GetLowResolutionIter()) && state->IsUpdateResolution()) + { + iter_data = resolution->GetIterData(current_iteration, data.copy()); + sig = resolution->GetIterSigma(current_iteration); + } + if (current_iteration == params->GetLowResolutionIter()) + { + sig = params->GetSupportSigma(); + } } if (state->IsUpdateSupport() || state->IsUpdatePhase()) { - support->Update(ds_image.copy(), state->IsUpdateSupport(), state->IsUpdatePhase()); + support->Update(ds_image.copy(), state->IsUpdateSupport(), state->IsUpdatePhase(), sig); + // not a good programming, will be better with framework + // it's for not recalculating distribution in support + if (state->IsUpdateSupport()) + { + sig = -1; + } } if (params->GetGC() && (current_iteration+1) % params->GetGC() == 0) diff --git a/src_py/controller/reconstruction.py b/src_py/controller/reconstruction.py index 48394f1..40a1337 100644 --- a/src_py/controller/reconstruction.py +++ b/src_py/controller/reconstruction.py @@ -80,7 +80,6 @@ def save_rec(res, file_dir): def assign_devices(devices, threads): - print 'devices, threads', devices, threads dev_no = len(devices) dev = [] for thread in range(threads): From e605da0566ed1eadbb14a021e72e0d127ebaab1e Mon Sep 17 00:00:00 2001 From: bfrosik Date: Wed, 18 Apr 2018 11:12:44 -0500 Subject: [PATCH 081/336] commented test lines --- src_cpp/worker.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src_cpp/worker.cpp b/src_cpp/worker.cpp index f2524a9..f2c3a04 100644 --- a/src_cpp/worker.cpp +++ b/src_cpp/worker.cpp @@ -88,8 +88,8 @@ void Reconstruction::Init() ds_image *= max_data * GetNorm(ds_image); // the next two lines are for testing it sets initial guess to initial support - af::array temp = support->GetSupportArray(); - ds_image = complex(temp.as((af_dtype) dtype_traits::ctype), 0.0).as(c64); + // af::array temp = support->GetSupportArray(); + // ds_image = complex(temp.as((af_dtype) dtype_traits::ctype), 0.0).as(c64); ds_image *= support->GetSupportArray(); printf("initial image norm %f\n", GetNorm(ds_image)); From 8112eca8cb6fce50262b5eb0f820a2f211f3d6b4 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Wed, 2 May 2018 09:21:29 -0500 Subject: [PATCH 082/336] Fixed Low resolution pick issue --- src_cpp/resolution.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src_cpp/resolution.cpp b/src_cpp/resolution.cpp index e12041c..e524a6d 100644 --- a/src_cpp/resolution.cpp +++ b/src_cpp/resolution.cpp @@ -38,8 +38,10 @@ af::array Resolution::GetIterData(int iter, af::array data) for (int i=0; i(distribution); + distribution = distribution/max_dist; af::array data_shifted = Utils::ifftshift(data); af::array masked = distribution*data_shifted; return Utils::ifftshift(masked); From 5e6bf19e77113a536f632ed21be35fa631bad150 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Tue, 29 May 2018 10:02:25 -0500 Subject: [PATCH 083/336] Introduced new scheme to parse triggers and to run the reconstruction as a sequence of functin pointers. --- config_rec | 92 +++-- include/algorithm.hpp | 7 +- include/common.h | 48 ++- include/parameters.hpp | 69 +--- include/pcdi.hpp | 8 +- include/state.hpp | 44 +-- include/support.hpp | 7 +- include/worker.hpp | 54 ++- run_data.py | 2 +- run_rec.py | 2 +- src_cpp/algorithm.cpp | 17 +- src_cpp/manager.cpp | 8 +- src_cpp/parameters.cpp | 589 +++++++++++++++---------------- src_cpp/pcdi.cpp | 40 +-- src_cpp/state.cpp | 86 ----- src_cpp/support.cpp | 55 ++- src_cpp/worker.cpp | 311 ++++++++-------- src_py/controller/fast_module.py | 14 +- src_py/controller/gen_rec.py | 2 +- src_py/utilities/CXDVizNX.py | 2 +- 20 files changed, 656 insertions(+), 801 deletions(-) diff --git a/config_rec b/config_rec index c6adf28..9c55e3c 100644 --- a/config_rec +++ b/config_rec @@ -1,3 +1,16 @@ +// Trigger can be defined as a single iteration, or multiple iterations. +// examples: +// (3) trigger at iteration 3 +// (20, 5) trigger starts at iteration 20, repeats every 5 iteration for the rest of run +// (20, 5, 40) trigger starts at iteration 20, repeats every 5 iteration until iteration 40 +// Triggers can also be a combination of any of the above, ex: ((4), (3, 7, 24), (6,20)) +// Below is a list of the supported triggers: +// garbage_trigger, twin_trigger, amp_support_trigger, phase_support_trigger, pcdi_trigger, resolution_trigger, +// average_trigger. +// The features that are related to the triggers are described below where the trigger is defined. +// If a trigger is not defined, the feature is turned off. Comment out trigger that you don't want to apply. +// Adding a new feature/ trigger is described in common.h header file. + // GENERAL data_dir = "data" // directory from which data is read @@ -21,7 +34,7 @@ device = [0,0] // ID of the target devices for each thread. // If more threads or not defined, it will default to -1 -gc = 2; +garbage_trigger = (10,5) // ArrayFire memory management is not reliable, the way around is to call garbage // collection per defined number of iterations. Decrease this value if out of memory // error occurs @@ -61,26 +74,28 @@ low_resolution_alg = "GAUSS" // RECONSTRUCTION PARAMETERS USED BY FAST MODULE -//algorithm_sequence = ((2, ("ER",19), ("HIO", 10)), (1,("ER",20))) +// modulus projection algorithm sequence algorithm_sequence = ((2, ("ER",19), ("HIO", 10)), (1,("ER",20))) // defines algorithm applied in each iteration by a sequence of tuples. // The first number in a tuple is a repeat, followed by tuples of pairs, each // pair defining algorithm and number of iterations to run the algorithm. -twin = 2; - // twin defines at which iteration to cut half of the array(i.e. multiply by 0s), - // it is done in ER/HIO. If don't want to apply twin, set it negative. - -phase_triggers = ((1, 1, 40)) -phase_min = -1.57; -phase_max = 1.57; - beta = .9; + // used in hio algorithm + +// twin +// twin feature trims the image array at the current state by zeroing half of the array in each dimension. +twin_trigger = (2) + // applied only in initial reconstruction + // twin defines at which iteration to cut half of the array(i.e. multiply by 0s), + // Comment out, if don't want to apply twin. // support -support_triggers = ((5, 5, 300)); - // trigger contains starting iteration, step, and ending iteration (if missing, run - // to the end). +// Support area is an array that defines region in which the image is meaningful. This area is recalculated at the +// trigger iteration. The calculation employ an algorithm defined here as support_type. +amp_support_trigger = (7, 5) + // defines when to update support array using the parameters below. + // Comment out, if support feature not used. support_type = "GAUSS"; support_threshold = 0.1; support_sigma = 1.0; @@ -89,36 +104,55 @@ support_area = [.5,.5,.5]; // by multiplying by the data array dimensions. The support will be set to 1s to this // dimensions centered. +// phase constrain +// At the begginning iterations the support area is modified in respect to the phase. Support area will exclude points +// outside of the defined bounds +phase_support_trigger = (0, 1, 45) + // applied only in initial reconstruction + // defines when to update support array using the parameters below by applaying phase constrain. + // Comment out, if phase constrain feature not used. +phase_min = -1.57; +phase_max = 1.57; + // partial coherence +// Partial coherence trigger triggers recalculation of coherence array for the amplitudes in reciprocal space. +// After first coherence array is determined, it is used for convolution in subsequent iteration. +pcdi_trigger = (16, 14) + // defines when to update coherence using the parameters below. + // Comment out, if pcdi feature not used. partial_coherence_type = "LUCY"; - // if type is not defined, partial coherence is not applied -partial_coherence_triggers = ((15, 14)); - // trigger contains starting iteration, step, and ending iteration (if missing, run - // to the end). + // partial coherence algorithm partial_coherence_iteration_num = 20; partial_coherence_normalize = true; partial_coherence_roi = [32,32,32]; // coherence area. If the values are fractional, the coherence area will be calculated // by multiplying by the data array dimensions. -update_resolution_triggers = (1, 39) - // the data is being modified with calculated mask starting with first iteration. - // the trigger defines step and last iteration for which it is applied +// iteration based low resolution +// At the begginning iterations the data and sigma are modified gradually. The sigma for each iteration where the low +// resolution is applied is a linespace result of iter_res_sigma_range. The last sigma should be set to support_sigma, +// or you can use default to achieve this. The sigma is used by when recalculation the support area, i.e when support +// trigger is on. The data is multiplied by gaussian distribution with sigma gradually growing to the last value, which +// typically is 1. +resolution_trigger = (0, 1, 40) + // applied only in initial reconstruction + // defines when to apply low resolution using the parameters below. + // Comment out, if low resolution feature not used. iter_res_sigma_range = (2.0, 1.0) // used when applying low resolution to replace support sigma. // The sigmas are linespaced for low resolution iterations from first value to last. - // If only one number given, the last sigma will default to support_sigma + // If only one number given, the last sigma will default to support_sigma. iter_res_det_range = (.7, 1.0) // used when applying low resolution data mask while iterating. // The det values are linespaced for low resolution iterations from first value to last. // The mask is gauss with sigma of linespaced det. If only one number given, - // the min det will default to 1 - -regularized_amp = "GAUSS"; - -avg_iterations = 15; - // number of last iterations that the image amplitudes will be included to calculate - // final - + // the last det will default to 1. + +// averaging +// The amplitudes of the last several iterations are avaraged. This trigger defines at which iteration the averaging +// starts. +average_trigger = (65, 1) + // defines when to apply averaging. + // Comment out, if averaging not used. diff --git a/include/algorithm.hpp b/include/algorithm.hpp index ff97e08..f866433 100644 --- a/include/algorithm.hpp +++ b/include/algorithm.hpp @@ -25,20 +25,19 @@ class Algorithm // the following methods are overridden in concrete algorithms // they are part of strategy pattern - af::array ModulusProjection(); - virtual void ModulusConstrain(af::array); + virtual void ModulusConstrain(); }; class Hio : public Algorithm { public: - void ModulusConstrain(af::array); + void ModulusConstrain(); }; class Er : public Algorithm { public: - void ModulusConstrain(af::array); + void ModulusConstrain(); }; diff --git a/include/common.h b/include/common.h index 559a10a..52f03bb 100644 --- a/include/common.h +++ b/include/common.h @@ -7,7 +7,7 @@ See LICENSE file. #ifndef common_h #define common_h -// defines the type of the data; can be float or double. The def_type will get replaced when running initializing script. +// defines the type of the data; can be float or double. The double will get replaced when running initializing script. typedef def_type d_type; const int nD = 3; @@ -44,4 +44,50 @@ const int REGULARIZED_AMPLITUDE_GAUSS = 1; const int REGULARIZED_AMPLITUDE_POISSON = 2; const int REGULARIZED_AMPLITUDE_UNIFORM = 3; +const int NOT_TRIGGER = 0; +const int FIRST_RUN_ONLY = 1; +const int FOR_ALL_RUNS = 2; +const int MODIFIED_AFTER_FIRST = 3; +const int CUSTOM = 4; + +typedef struct flow_item_def { char* item_name; + int type; + char* func_name; + flow_item_def(char* item, int t, char* func) : item_name(item), type(t), func_name(func){} + } flow_item_def; + +// The table below defines general iteration sequence. Each item defines a function with the reconstruction algorithm, +// and is called flow_item_def. It is defined by a name, type, and function name. The name is an identifier, also for +// trigger it should match the name in configuration file. The type defines what kind of instruction it is. +// The NO_TRIGGER indicates that the corresponding function will be executed for all iterations. +// FIRST_RUN_ONLY means that the configured triggers apply only if it is an initial run. +// MODIFIED_AFTER_FIRST means that after initial run the trigger gets modified. The start trigger will be equal to step. +// FOR_ALL_RUNS means that the same triggers apply for all runs. +// CUSTOM means that parsing of the triggers is different from the generic (as described in config_rec file) and it +// requires extra code. +// The flow_item_def func_name is a name of the function in worker that implements the flow item. +// +// To add a new trigger/function do the following: +// 1. Insert a new definition for the flow_item in the correct order in the table. +// 2. Update the flow_seq_len below. +// 3. Add the new function to the worker.hh and worker.cc, and add the pair (func_name, fp) to the flow_ptr_map in worker.cc. +const flow_item_def flow_def[] = { + flow_item_def("next", NOT_TRIGGER, "NextIter"), + flow_item_def("resolution_trigger", FIRST_RUN_ONLY, "ResolutionTrigger"), + flow_item_def("amp_support_trigger", MODIFIED_AFTER_FIRST, "SupportTrigger"), + flow_item_def("phase_support_trigger", FIRST_RUN_ONLY, "PhaseTrigger"), + flow_item_def("to_real_space", NOT_TRIGGER, "ToReal"), + flow_item_def("pcdi_trigger", MODIFIED_AFTER_FIRST, "PcdiTrigger"), + flow_item_def("pcdi", CUSTOM, "Pcdi"), + flow_item_def("no_pcdi", CUSTOM, "NoPcdi"), + flow_item_def("garbage_trigger", FOR_ALL_RUNS, "Gc"), + flow_item_def("set_prev_pcdi_trigger", CUSTOM, "SetPcdiPrevious"), + flow_item_def("to_reciprocal_space", NOT_TRIGGER, "ToReciprocal"), + flow_item_def("algorithm", NOT_TRIGGER, "RunAlg"), + flow_item_def("twin_trigger", FIRST_RUN_ONLY, "Twin"), + flow_item_def("average_trigger", FOR_ALL_RUNS, "Average") +}; + +const int flow_seq_len = 14; + #endif /* common_h */ diff --git a/include/parameters.hpp b/include/parameters.hpp index 536d042..73872ab 100644 --- a/include/parameters.hpp +++ b/include/parameters.hpp @@ -12,20 +12,6 @@ See LICENSE file. #include "vector" #include "map" -struct Trigger_setting -{ - int start_iteration; - int step_iteration; - int end_iteration; - Trigger_setting(int start, int step, int end) - { - start_iteration = start; - step_iteration = step; - end_iteration = end; - } -}; -typedef struct Trigger_setting trigger_setting; - // This class holds parameters defining the reconstruction process. The parameters are set based on configuration file. // Methods of this class are getters. class Params @@ -36,20 +22,14 @@ class Params // vector holding algorithm run sequence, where algorithm run is a pair of algorithm and number of iterations std::vector alg_switches; - std::string data_type; - - d_type amp_threshold; - bool amp_threshold_fill_zeros; - float beta; // support std::vector support_area; float support_threshold; float support_sigma; - std::vector support_triggers; int support_alg; - std::vector phase_triggers; + d_type phase_min; d_type phase_max; @@ -57,26 +37,14 @@ class Params //PartialCoherence *partial_coherence = NULL; int pcdi_alg; std::vector pcdi_roi; - std::vector pcdi_triggers; bool pcdi_normalize; int pcdi_iter; - - bool d_type_precision; - - // number of iterates to average - int avg_iterations; - + // calculated number of iterations int number_iterations; - - int twin; - - int regularized_amp; - + bool plot_errors; - int gc; - int low_res_iterations; float iter_res_sigma_first; @@ -87,9 +55,10 @@ class Params float iter_res_det_last; - std::vector update_resolution_triggers; - - std::vector CompactTriggers(std::vector triggers); + std::vector used_flow_seq; +// int flow[]; + std::vector flow_vec; + void BuildAlgorithmMap(); public: @@ -106,23 +75,16 @@ class Params std::vector GetSupportArea(); float GetSupportThreshold(); float GetSupportSigma(); - std::vector GetSupportTriggers(); int GetSupportAlg(); - // Returns minimum phase value for the HIO processing. + d_type GetPhaseMin(); - - // Returns maximum phase value for the HIO processing. d_type GetPhaseMax(); - - std::vector GetPhaseTriggers(); int GetPcdiAlgorithm(); std::vector GetPcdiRoi(); - std::vector GetPcdiTriggers(); bool GetPcdiNormalize(); int GetPcdiIterations(); - std::vector GetUpdateResolutionTriggers(); int GetLowResolutionIter(); float GetIterResSigmaFirst(); float GetIterResSigmaLast(); @@ -139,26 +101,17 @@ class Params // Returns beta parameter for the HIO processing. float GetBeta(); - // Returns iteration number at which the amplitudes are averaged. - int GetAvgIterations(); - - // Returns iteration number at which the "twin" gets zeroed out. - int GetTwin(); - // Returns a vector containing algorithm switch sequence. // Algorithm switch is defined as a pair of two elements, the first defines an algorithm, and the second defines // iteration at which the algorithm stops and switches to a next algorithm. std::vector GetAlgSwitches(); - // Returns a constant indication a scheme for modifying data when calculation ratio in modulus projection - int GetRegularizedAmp(); - // Returns boolean flag indication whether to plot errors in during calculations bool IsPlotErrors(); - // Returns number of iterations between calling garbage collection. - int GetGC(); - + std::vector GetUsedFlowSeq(); +// int* GetFlowArray(); + std::vector GetFlowArray(); }; diff --git a/include/pcdi.hpp b/include/pcdi.hpp index e0768aa..c39b43a 100644 --- a/include/pcdi.hpp +++ b/include/pcdi.hpp @@ -19,8 +19,6 @@ class PartialCoherence private: Params * params; std::vector roi; - std::vector triggers; - int trigger_index; int algorithm; bool normalize; int iteration_num; @@ -35,7 +33,7 @@ class PartialCoherence void DeconvLucy(af::array image, af::array filter, int iter_num); void OnTrigger(af::array abs_image); void TuneLucyCoherence(af::array); - int GetTriggerAlgorithm(); + int GetAlgorithm(); std::vector GetRoi(); af::array fftConvolve(af::array arr, af::array kernel); @@ -44,8 +42,8 @@ class PartialCoherence ~PartialCoherence(); void Init(af::array data); void SetPrevious(af::array abs_amplitudes); - std::vector GetTriggers(); - af::array ApplyPartialCoherence(af::array abs_image, int current_iteration); + af::array ApplyPartialCoherence(af::array abs_image); + af::array UpdatePartialCoherence(af::array abs_image); af::array GetKernelArray(); }; diff --git a/include/state.hpp b/include/state.hpp index eb2f798..bb97e5b 100644 --- a/include/state.hpp +++ b/include/state.hpp @@ -41,31 +41,7 @@ class State // mapping of algorithm id to an Algorithm object std::map algorithm_map; - - // a flag indicating whether to update support - bool update_support; - // current index in support_triggers vector - int support_triggers_index; - - // a flag indicating whether to update phase - bool update_phase; - // current index in phase_triggers vector - int phase_triggers_index; - - // partial coherence state - // a flag indicating whether to update partial coherence - bool run_convolution; - bool update_kernel; - // current index in support_partial_coherence vector - int partial_coherence_triggers_index; - - int update_resolution_triggers_index; - bool update_resolution; - - bool averaging; - - bool apply_twin; - + void MapAlgorithmObject(int alg_id); public: @@ -93,25 +69,7 @@ class State // Returns an algorithm that should be run in a current state (i.e. iteration). Algorithm * GetCurrentAlg(); - - // Returns true if the current state should include support update. - bool IsUpdateSupport(); - - // Returns true if the current state should include phase update. - bool IsUpdatePhase(); - - // Returns true if the current state should include partial coherence update. - bool IsUpdatePartialCoherence(); - // Returns true if the current state should include resolution update. - bool IsUpdateResolution(); - - // Returns true if the current state should apply twin. - bool IsApplyTwin(); - - // Returns the difference of current iteration and iteration of averaging start - bool IsAveragingIteration(); - // Stores the error void RecordError(d_type error); diff --git a/include/support.hpp b/include/support.hpp index a6acafd..b94ad31 100644 --- a/include/support.hpp +++ b/include/support.hpp @@ -22,6 +22,8 @@ class Support float threshold; float sigma; int algorithm; + int update_iter; + d_type last_sigma; af::array support_array; af::array init_support_array; af::array GaussConvFft(af::array ds_image); @@ -29,10 +31,11 @@ class Support public: Support(const af::dim4 data_dim, Params *params, af::array support_array); - void Update(const af::array ds_image, bool amp, bool phase, d_type sigma); + void UpdateAmp(const af::array ds_image, d_type sig, int iter); + void UpdatePhase(const af::array ds_image, int iter); int GetTriggerAlgorithm(); float GetThreshold(); - af::array GetSupportArray(bool twin=false); + af::array GetSupportArray(); }; #endif /* support_hpp */ diff --git a/include/worker.hpp b/include/worker.hpp index 00f3739..2803c7d 100644 --- a/include/worker.hpp +++ b/include/worker.hpp @@ -30,6 +30,8 @@ using namespace af; class Reconstruction { +typedef void (Reconstruction::*fp)(void); + private: // Params object constructed by the Reconstruction class @@ -42,19 +44,23 @@ class Reconstruction PartialCoherence *partialCoherence; // A reference to Resolution Resolution *resolution; - bool first; af::array data; // this is abs af::array iter_data; // if low resolutionis used, data will differ in iterations + d_type sig; int num_points; d_type norm_data; int current_iteration; af::array ds_image; + af::array ds_image_raw; + af::array rs_amplitudes; int aver_iter; std::vector aver_v; std::vector support_vector; std::vector coherence_vector; - //d_type max_data; + std::vector > iter_flow; + + //d_type max_data; // af::Window * errors_plot; // This method returns sum of squares of all elements in the array @@ -63,9 +69,6 @@ class Reconstruction // This method calculates ratio of amplitudes and correction arrays replacing zero divider with 1. af::array GetRatio(af::array ar, af::array correction); - // Averages amplitudes - void Average(); - // vectorize support array at the end of iterations void VectorizeSupport(); @@ -75,12 +78,26 @@ class Reconstruction d_type CalculateError(); // void Plot(); + void NextIter(); + void ResolutionTrigger(); + void SupportTrigger(); + void PhaseTrigger(); + void ToReal(); + void PcdiTrigger(); + void Pcdi(); + void NoPcdi(); + void Gc(); + void SetPcdiPrevious(); + void ToReciprocal(); + void RunAlg(); + void Twin(); + void Average(); public: // The class constructor takes data array, an image guess array in reciprocal space, and configuration file. The image guess // is typically generated as an complex random array. This image can be also the best outcome of previous calculations. The // data is saved and is used for processing. - Reconstruction(af::array data, af::array guess, Params* params, af::array support_array, af::array coherence_array, bool first); + Reconstruction(af::array data, af::array guess, Params* params, af::array support_array, af::array coherence_array); ~Reconstruction(); @@ -98,16 +115,11 @@ class Reconstruction // been completed (i.e. the code reached last state), and true otherwise. Typically this method will be run in a while loop. void Iterate(); - int GetCurrentIteration(); - - // This code is common for ER and HIO algorithms. - af::array ModulusProjection(); - // Runs one iteration of ER algorithm. - void ModulusConstrainEr(af::array); + void ModulusConstrainEr(); // Runs one iteration of HIO algorithm. - void ModulusConstrainHio(af::array); + void ModulusConstrainHio(); af::array GetImage(); af::array GetSupportArray(); @@ -118,21 +130,5 @@ class Reconstruction std::vector GetCoherenceVectorR(); std::vector GetCoherenceVectorI(); -/* void GarbageTrigger(); - RESOLUTION_TRIGGER, - AMP_SUPPORT_TRIGGER, - PHASE_SUPPORT_TRIGGER, - TO_REAL_SPACE, - PARTIAL_COHERENCE_TRIGGER, - CONVERGE_RATIO_TRIGGER, - NO_CONVERGE_RATIO_TRIGGER, - TUNE_RS_AMPLITUDES, - SET_PREVIOUS_PCDI_TRIGGER, - TO_RECIPROCAL_SPACE, - ALGORITHM, - TWINTRIGGER, - AVERAGE_TRIGGER, - STOP_APPL}; -*/ }; #endif /* worker_hpp */ diff --git a/run_data.py b/run_data.py index a6d8e19..5dd8aff 100755 --- a/run_data.py +++ b/run_data.py @@ -22,5 +22,5 @@ def main(arg): if __name__ == "__main__": main(sys.argv[1:]) -#python run_data.py 'opencl' '/home/phoebus/BFROSIK/CDI/S149/Staff14-3_S0149.tif' 'config_data' +#python run_data.py 'opencl' '/local/bfrosik/CDI/Staff14-3_S0149.tif' 'config_data' diff --git a/run_rec.py b/run_rec.py index 9f3fcff..141af6f 100755 --- a/run_rec.py +++ b/run_rec.py @@ -37,7 +37,7 @@ def reconstruction(proc, conf): try: datafile = data_dir + 'data.npy' data = np.load(datafile) - print 'data shape', data.shape + print ('data shape', data.shape) except: print ('data file ' + datafile + ' is missing') return diff --git a/src_cpp/algorithm.cpp b/src_cpp/algorithm.cpp index 4c3fb18..dbefbd1 100644 --- a/src_cpp/algorithm.cpp +++ b/src_cpp/algorithm.cpp @@ -15,15 +15,10 @@ using namespace af; void Algorithm::RunAlgorithm(Reconstruction * reconstruction) { rec = reconstruction; - ModulusConstrain(ModulusProjection()); + ModulusConstrain(); } -af::array Algorithm::ModulusProjection() -{ - return rec->ModulusProjection(); -} - -void Algorithm::ModulusConstrain(af::array arr) +void Algorithm::ModulusConstrain() { } @@ -31,16 +26,16 @@ void Algorithm::ModulusConstrain(af::array arr) //------------------------------------------------------------------- // Hio sub-class -void Hio::ModulusConstrain(af::array arr) +void Hio::ModulusConstrain() { - rec->ModulusConstrainHio(arr); + rec->ModulusConstrainHio(); } //------------------------------------------------------------------- // Er sub-class -void Er::ModulusConstrain(af::array arr) +void Er::ModulusConstrain() { - rec->ModulusConstrainEr(arr); + rec->ModulusConstrainEr(); } diff --git a/src_cpp/manager.cpp b/src_cpp/manager.cpp index 7ea37fb..8386aab 100644 --- a/src_cpp/manager.cpp +++ b/src_cpp/manager.cpp @@ -51,7 +51,7 @@ void Manager::StartCalc(int device, std::vector data_buffer_r, std::vect } af::array null_array = array(); - rec = new Reconstruction(data, guess, params, null_array, null_array, first); + rec = new Reconstruction(data, guess, params, null_array, null_array); rec->Init(); printf("initialized\n"); @@ -82,7 +82,7 @@ void Manager::StartCalc(int device, std::vector data_buffer_r, std::vect af::array null_array = array(); - rec = new Reconstruction(data, guess, params, null_array, null_array, first); + rec = new Reconstruction(data, guess, params, null_array, null_array); rec->Init(); printf("initialized\n"); @@ -114,7 +114,7 @@ void Manager::StartCalc(int device, std::vector data_buffer_r, std::vect af::array null_array = array(); - rec = new Reconstruction(data, guess, params, support_a, null_array, first); + rec = new Reconstruction(data, guess, params, support_a, null_array); rec->Init(); printf("initialized\n"); @@ -145,7 +145,7 @@ void Manager::StartCalc(int device, std::vector data_buffer_r, std::vect af::array support_a(af_dims, &support_vector[0]); af::array coh_a(Utils::Int2Dim4(coh_dim), &coh_vector[0]); - rec = new Reconstruction(data, guess, params, support_a, coh_a, first); + rec = new Reconstruction(data, guess, params, support_a, coh_a); rec->Init(); printf("initialized\n"); diff --git a/src_cpp/parameters.cpp b/src_cpp/parameters.cpp index 852c68d..93090ab 100644 --- a/src_cpp/parameters.cpp +++ b/src_cpp/parameters.cpp @@ -21,33 +21,22 @@ Params::Params(const char* config_file, std::vector data_dim, bool first) { algorithm_id_map.clear(); alg_switches.clear(); - d_type amp_threshold = 0; - amp_threshold_fill_zeros = false; beta = 0.9; support_area.clear(); support_threshold = 0.1; support_sigma = 1.0; - support_triggers.clear(); support_alg = -1; phase_min = -atan(1)*2.0; phase_max = atan(1)*2.0; pcdi_alg = 0; pcdi_roi.clear(); - pcdi_triggers.clear(); pcdi_normalize = false; pcdi_iter = 20; - d_type_precision = false; - avg_iterations = 0; number_iterations = 0; - twin = -1; - regularized_amp = REGULARIZED_AMPLITUDE_NONE; plot_errors = false; - gc = -1; low_res_iterations = 0; iter_res_det_first = 1; - update_resolution_triggers.clear(); - BuildAlgorithmMap(); Config cfg; @@ -65,7 +54,9 @@ Params::Params(const char* config_file, std::vector data_dim, bool first) { printf("config file parse exception\n"); } - + + const Setting& root = cfg.getRoot(); + try { plot_errors = cfg.lookup("plot_errors"); } @@ -73,7 +64,6 @@ Params::Params(const char* config_file, std::vector data_dim, bool first) { } try { - const Setting& root = cfg.getRoot(); const Setting &tmp = root["algorithm_sequence"]; int count = tmp.getLength(); @@ -99,109 +89,244 @@ Params::Params(const char* config_file, std::vector data_dim, bool first) printf("No 'algorithm_sequence' parameter in configuration file.\n"); } - try { - gc = cfg.lookup("gc"); - } - catch ( const SettingNotFoundException &nfex) - { } + // process triggers + // find which triggers are configured, add the index of the flow_seq item to used_flow_seq vwctor if this item + // is used + bool is_pcdi = false; + for (int i = 0; i < flow_seq_len; i++) + { + char *flow_item = flow_def[i].item_name; + int type = flow_def[i].type; - try { - const Setting& root = cfg.getRoot(); - const Setting &tmp = root["support_area"]; - for (int i = 0; i < tmp.getLength(); ++i) + // no trigger is part of any flow + if (type == NOT_TRIGGER) { - try { - support_area.push_back(tmp[i]); - } - catch ( const SettingTypeException &nfex) + used_flow_seq.push_back(i); + } + else if (flow_item == "pcdi_trigger") + { + if (root.exists(flow_item)) { - float ftmp = tmp[i]; - support_area.push_back(int(ftmp * data_dim[i])); + is_pcdi = true; + used_flow_seq.push_back(i); } } - } - catch ( const SettingNotFoundException &nfex) - { - printf("No 'support_area' parameter in configuration file.\n"); - } - try { - support_threshold = cfg.lookup("support_threshold"); - } - catch ( const SettingNotFoundException &nfex) - { } - try { - support_sigma = cfg.lookup("support_sigma"); - } - catch ( const SettingNotFoundException &nfex) - { } - - try { - std::vector triggers; - const Setting& root = cfg.getRoot(); - const Setting &tmp = root["support_triggers"]; - for (int i =0; i < tmp.getLength(); i++) + else { - int start = tmp[i][1]; // set the first trigger to step - if (first) + if (type == CUSTOM) { - start = tmp[i][0]; + // currently custom triggers are related to pcdi + if (flow_item == "no_pcdi") + { + if (!is_pcdi || first) + { + used_flow_seq.push_back(i); + } + } + else if (is_pcdi) + { + used_flow_seq.push_back(i); + } } - int step = tmp[i][1]; - int end_step; - if (tmp[i].getLength() > 2) + else if (first) { - end_step = tmp[i][2]; - end_step = std::min(end_step, number_iterations); + if (type && root.exists(flow_item)) + { + used_flow_seq.push_back(i); + } } else { - end_step = number_iterations; + if ((type > FIRST_RUN_ONLY) && root.exists(flow_item)) + { + used_flow_seq.push_back(i); + } } - triggers.push_back(Trigger_setting(start, step, end_step)); } - support_triggers = CompactTriggers(triggers); - triggers.clear(); - } - catch ( const SettingNotFoundException &nfex) - { - printf("No support_triggers' parameter in configuration file.\n"); } - - try { - support_alg = algorithm_id_map[cfg.lookup("support_type")]; - } - catch ( const SettingNotFoundException &nfex) - { - printf((std::string("No 'support_type' parameter in configuration file.\n")).c_str()); - } - if (first) +// printf("used triggers \n"); +// for (int i = 0; i< used_flow_seq.size(); i++) +// { printf(" %i", used_flow_seq[i]);} +// printf("is pcdi %i\n",is_pcdi); + + + int used_flow_seq_len = used_flow_seq.size(); + int flow[number_iterations * used_flow_seq_len]; + memset(flow, 0, sizeof(flow)); + std::vector pcdi_tr_iter; + + for (int f = 0; f < used_flow_seq_len; f++) { - try { - std::vector triggers; - const Setting& root = cfg.getRoot(); - const Setting &tmp = root["phase_triggers"]; - for (int i =0; i < tmp.getLength(); i++) + int offset = f * number_iterations; + int type = flow_def[used_flow_seq[f]].type; + char *flow_item = flow_def[used_flow_seq[f]].item_name; + + if (type == NOT_TRIGGER) { - int start = tmp[i][1]; // set the first trigger to step - if (first) + std::fill_n(flow + offset, number_iterations, 1); + } + else if (type == CUSTOM) + { + // for now all custom triggers are associated with pcdi trigger being configured + if (flow_item == "pcdi") { - start = tmp[i][0]; + int start_pcdi = first ? pcdi_tr_iter[0] : 0; + for (int i = start_pcdi; i < number_iterations; i ++) + { + flow[offset + i] = 1; + } } - int step = tmp[i][1]; - int end_step; - if (tmp[i].getLength() > 2) + else if (flow_item == "no_pcdi") { - end_step = tmp[i][2]; - end_step = std::min(end_step, number_iterations); + int stop_pcdi = is_pcdi ? pcdi_tr_iter[0] : number_iterations; + for (int i = 0; i < stop_pcdi; i ++) + { + flow[offset + i] = 1; + } + } + else if (flow_item == "set_prev_pcdi_trigger") + { + for (int i = 0; i < pcdi_tr_iter.size(); i ++) + { + flow[offset + pcdi_tr_iter[i]-1] = 1; + } + } + } + else + { + const Setting &tmp = root[flow_item]; + if (tmp[0].isNumber()) + { + if (tmp.getLength() == 1) + { + int ind = tmp[0]; + if (ind < number_iterations) + { + flow[offset + ind] = 1; + if (flow_item == "pcdi_trigger") + { + pcdi_tr_iter.push_back(ind); + } + } + } + else + { + int step = tmp[1]; + int start_iter = tmp[0]; + + if (!first && (type == MODIFIED_AFTER_FIRST)) + { + start_iter = step; + } + int stop_iter = number_iterations; + if (tmp.getLength() == 3) + { + int conf_stop_iter = tmp[2]; + stop_iter = std::min(conf_stop_iter, stop_iter); + } + for (int i = start_iter; i < stop_iter; i += step) + { + flow[offset + i] = 1; + if (flow_item == "pcdi_trigger") + { + pcdi_tr_iter.push_back(i); + } + } + } } else { - end_step = number_iterations; + for (int j = 0; j < tmp.getLength(); j++) + { + if (tmp[j].getLength() == 1) + { + int ind = tmp[j][0]; + if (ind < number_iterations) + { + flow[offset + ind] = 1; + if (flow_item == "pcdi_trigger") + { + pcdi_tr_iter.push_back(ind); + } + } + } + else + { + int step = tmp[j][1]; + int start_iter = tmp[j][0]; + if (!first && (type = MODIFIED_AFTER_FIRST)) + { + start_iter = step; + } + int stop_iter = number_iterations; + if (tmp[j].getLength() == 3) + { + int conf_stop_iter = tmp[j][2]; + stop_iter = std::min(conf_stop_iter, stop_iter); + } + for (int i = start_iter; i < stop_iter; i += step) + { + flow[offset + i] = 1; + if (flow_item == "pcdi_trigger") + { + pcdi_tr_iter.push_back(i); + } + } + } + } + } + + } +// printf(" %s\n",flow_item); +// for (int i=0; i < number_iterations; i++) +// printf(" %i", flow[offset+i]); +// printf("\n"); + } + + std::vector vec(flow, flow + number_iterations * used_flow_seq.size()); + flow_vec = vec; + + if (root.exists("amp_support_trigger")) + { + try { + const Setting &tmp = root["support_area"]; + for (int i = 0; i < tmp.getLength(); ++i) + { + try { + support_area.push_back(tmp[i]); + } + catch ( const SettingTypeException &nfex) + { + float ftmp = tmp[i]; + support_area.push_back(int(ftmp * data_dim[i])); + } } - triggers.push_back(Trigger_setting(start, step, end_step)); } - phase_triggers = CompactTriggers(triggers); - triggers.clear(); + catch ( const SettingNotFoundException &nfex) + { + printf("No 'support_area' parameter in configuration file.\n"); + } + try { + support_threshold = cfg.lookup("support_threshold"); + } + catch ( const SettingNotFoundException &nfex) + { } + try { + support_sigma = cfg.lookup("support_sigma"); + } + catch ( const SettingNotFoundException &nfex) + { } + try { + support_alg = algorithm_id_map[cfg.lookup("support_type")]; + } + catch ( const SettingNotFoundException &nfex) + { + printf((std::string("No 'support_type' parameter in configuration file.\n")).c_str()); + } + } + + if ((first) && root.exists("phase_support_trigger")) + { try { phase_min = cfg.lookup("phase_min"); } @@ -216,22 +341,19 @@ Params::Params(const char* config_file, std::vector data_dim, bool first) { printf((std::string("No 'phase_max' parameter in configuration file. Set to pi/2.\n")).c_str()); } - } - catch ( const SettingNotFoundException &nfex) - { } - } // if first - try { - pcdi_alg = algorithm_id_map[cfg.lookup("partial_coherence_type")]; - } - catch ( const SettingNotFoundException &nfex) - { - printf((std::string("No 'partial_coherence_type' parameter in configuration file.\n")).c_str()); } - if (pcdi_alg > 0) + + if (root.exists("pcdi_trigger")) { try { - const Setting& root = cfg.getRoot(); + pcdi_alg = algorithm_id_map[cfg.lookup("partial_coherence_type")]; + } + catch ( const SettingNotFoundException &nfex) + { + printf((std::string("No 'partial_coherence_type' parameter in configuration file.\n")).c_str()); + } + try { const Setting &tmp = root["partial_coherence_roi"]; for (int i = 0; i < tmp.getLength(); ++i) { @@ -249,40 +371,6 @@ Params::Params(const char* config_file, std::vector data_dim, bool first) { printf("No 'partial_coherence_roi' parameter in configuration file.\n"); } - - //pcdi_triggers = ParseTriggers("partial_coherence", action_stage); - try { - std::vector triggers; - const Setting& root = cfg.getRoot(); - const Setting &tmp = root["partial_coherence_triggers"]; - for (int i =0; i < tmp.getLength(); i++) - { - int start = tmp[i][1]; // set the first trigger to step - if (first) - { - start = tmp[i][0]; - } - int step = tmp[i][1]; - int end_step; - if (tmp[i].getLength() > 2) - { - end_step = tmp[i][2]; - end_step = std::min(end_step, number_iterations); - } - else - { - end_step = number_iterations; - } - triggers.push_back(Trigger_setting(start, step, end_step)); - } - pcdi_triggers = CompactTriggers(triggers); - triggers.clear(); - } - catch ( const SettingNotFoundException &nfex) - { - printf("No partial_coherence_triggers' parameter in configuration file.\n"); - } - try { pcdi_normalize = cfg.lookup("partial_coherence_normalize"); } @@ -297,94 +385,62 @@ Params::Params(const char* config_file, std::vector data_dim, bool first) } } - if (first) + if ((first) && root.exists("resolution_trigger")) { - try + const Setting &tmp = root["resolution_trigger"]; + try { - const Setting& root = cfg.getRoot(); - const Setting &tmp = root["update_resolution_triggers"]; - int step = 0; - try - { - step = tmp[0]; - try - { - low_res_iterations = tmp[1]; - } - catch ( const SettingNotFoundException &nfex) - { } - } - catch ( const SettingNotFoundException &nfex) - { } - - for (int i = 0; i <= low_res_iterations; i += step) - { - update_resolution_triggers.push_back(i); - } + low_res_iterations = tmp[2]; } catch ( const SettingNotFoundException &nfex) - { } - if (low_res_iterations > 0) - { - bool low_res = true; - try - { - const Setting& root = cfg.getRoot(); - const Setting &tmp = root["iter_res_sigma_range"]; - int size = tmp.getLength(); - if (size > 1) - { - iter_res_sigma_first = tmp[0]; - iter_res_sigma_last = tmp[1]; - } - else - { - iter_res_sigma_first = support_sigma; - iter_res_sigma_last = tmp[0]; - } - } - catch(const SettingNotFoundException &nfex) + { + low_res_iterations = number_iterations; + printf((std::string("No 'resolution_trigger' upper bound in configuration file. Setting number to iteration number.\n")).c_str()); + } + try + { + const Setting &tmp = root["iter_res_sigma_range"]; + int size = tmp.getLength(); + if (size > 1) { - printf("No 'iter_res_sigma_range' parameter in configuration file.\n"); - low_res = false; + iter_res_sigma_first = tmp[0]; + iter_res_sigma_last = tmp[1]; } - try + else { - const Setting& root = cfg.getRoot(); - const Setting &tmp = root["iter_res_det_range"]; - int size = tmp.getLength(); - if (size > 1) - { - iter_res_det_first = tmp[0]; - iter_res_det_last = tmp[1]; - } - else - { - iter_res_det_first = 1; - iter_res_det_last = tmp[0]; - } + iter_res_sigma_first = tmp[0]; + iter_res_sigma_last = support_sigma; } - catch(const SettingNotFoundException &nfex) + } + catch(const SettingNotFoundException &nfex) + { + iter_res_sigma_first = 2.0; + iter_res_sigma_last = support_sigma; + printf("No 'iter_res_sigma_range' parameter in configuration file.Default to 2.0, sigma.\n"); + } + try + { + const Setting &tmp = root["iter_res_det_range"]; + int size = tmp.getLength(); + if (size > 1) { - printf("No 'iter_res_det_range' parameter in configuration file.\n"); - low_res = false; + iter_res_det_first = tmp[0]; + iter_res_det_last = tmp[1]; } - if (low_res == false) + else { - printf("Not applying iteration based low resolution.\n"); - update_resolution_triggers.clear(); - low_res_iterations = 0; + iter_res_det_first = tmp[0]; + iter_res_det_last = 1.0; } } + catch(const SettingNotFoundException &nfex) + { + iter_res_det_first = .7; + iter_res_det_last = 1.0; + printf("No 'iter_res_det_range' parameter in configuration file.\Default to 0.7, 1.0.n"); + } } - try - { - avg_iterations = cfg.lookup("avg_iterations"); - } - catch(const SettingNotFoundException &nfex) - { } - try { beta = cfg.lookup("beta"); @@ -394,36 +450,6 @@ Params::Params(const char* config_file, std::vector data_dim, bool first) printf("No 'beta' parameter in configuration file. Setting to .9\n"); } - try - { - const char *reg_amp = cfg.lookup("regularized_amp"); - if (strcmp (reg_amp, "GAUSS") == 0) - { - regularized_amp = REGULARIZED_AMPLITUDE_GAUSS; - } - else if (strcmp (reg_amp, "POISSON") == 0) - { - regularized_amp = REGULARIZED_AMPLITUDE_POISSON; - } - else if (strcmp (reg_amp, "UNIFORM") == 0) - { - regularized_amp = REGULARIZED_AMPLITUDE_UNIFORM; - } - } - catch (const SettingNotFoundException &nfex) - { } - - if (first) - { - try { - twin = cfg.lookup("twin"); - } - catch ( const SettingNotFoundException &nfex) - { - printf("No 'twin' parameter in configuration file.\n"); - } - } - } @@ -431,11 +457,8 @@ Params::~Params() { algorithm_id_map.clear(); alg_switches.clear(); - data_type.clear(); support_area.clear(); - support_triggers.clear(); pcdi_roi.clear(); - pcdi_triggers.clear(); } void Params::BuildAlgorithmMap() @@ -448,61 +471,16 @@ void Params::BuildAlgorithmMap() algorithm_id_map.insert(std::pair("GAUSS", ALGORITHM_GAUSS)); } -std::vector Params::CompactTriggers(std::vector triggers) -{ - std::vector trigger_iterations; - - for (int i = 0; i < triggers.size(); i++) - { - for (int j = triggers[i].start_iteration; j <= triggers[i].end_iteration; j += triggers[i].step_iteration) - { - trigger_iterations.push_back(j); - } - } - if (triggers.size() > 1) - { - std::sort(trigger_iterations.begin(), trigger_iterations.end()); - trigger_iterations.erase( unique(trigger_iterations.begin(), trigger_iterations.end()), trigger_iterations.end()); - } - - return trigger_iterations; -} - int Params::GetNumberIterations() { return number_iterations; } -d_type Params::GetAmpThreshold() -{ - return amp_threshold; -} - -bool Params::IsAmpThresholdFillZeros() -{ - return amp_threshold_fill_zeros; -} - float Params::GetBeta() { return beta; } -int Params::GetAvgIterations() -{ - return avg_iterations; -} - -int Params::GetRegularizedAmp() -{ - return regularized_amp; -} - -int Params::GetTwin() -{ - return twin; -} - std::vector Params::GetSupportArea() { return support_area; @@ -518,11 +496,6 @@ float Params::GetSupportSigma() return support_sigma; } -std::vector Params::GetSupportTriggers() -{ - return support_triggers; -} - int Params::GetSupportAlg() { return support_alg; @@ -538,11 +511,6 @@ d_type Params::GetPhaseMax() return phase_max; } -std::vector Params::GetPhaseTriggers() -{ - return phase_triggers; -} - int Params::GetPcdiAlgorithm() { return pcdi_alg; @@ -553,11 +521,6 @@ std::vector Params::GetPcdiRoi() return pcdi_roi; } -std::vector Params::GetPcdiTriggers() -{ - return pcdi_triggers; -} - bool Params::GetPcdiNormalize() { return pcdi_normalize; @@ -578,16 +541,6 @@ bool Params::IsPlotErrors() return plot_errors; } -int Params::GetGC() -{ - return gc; -} - -std::vector Params::GetUpdateResolutionTriggers() -{ - return update_resolution_triggers; -} - int Params::GetLowResolutionIter() { return low_res_iterations; @@ -613,3 +566,13 @@ float Params::GetIterResDetLast() return iter_res_det_last; } +std::vector Params::GetUsedFlowSeq() +{ + return used_flow_seq; +} + +std::vector Params::GetFlowArray() +{ + printf("flow vec len %i", flow_vec.size()); + return flow_vec; +} diff --git a/src_cpp/pcdi.cpp b/src_cpp/pcdi.cpp index 225f14f..a0301c1 100644 --- a/src_cpp/pcdi.cpp +++ b/src_cpp/pcdi.cpp @@ -16,8 +16,6 @@ PartialCoherence::PartialCoherence(Params *parameters, af::array coherence_array { params = parameters; roi= params->GetPcdiRoi(); - triggers = params->GetPcdiTriggers(); - trigger_index = 0; algorithm = params->GetPcdiAlgorithm(); normalize = params->GetPcdiNormalize(); iteration_num = params->GetPcdiIterations(); @@ -35,7 +33,6 @@ PartialCoherence::PartialCoherence(Params *parameters, af::array coherence_array PartialCoherence::~PartialCoherence() { roi.clear(); - triggers.clear(); } void PartialCoherence::Init(af::array data) @@ -62,12 +59,7 @@ void PartialCoherence::SetPrevious(af::array abs_amplitudes) roi_amplitudes_prev = Utils::CropCenter(abs_amplitudes_centered, roi_dims).copy(); } -std::vector PartialCoherence::GetTriggers() -{ - return triggers; -} - -int PartialCoherence::GetTriggerAlgorithm() +int PartialCoherence::GetAlgorithm() { return algorithm; } @@ -77,20 +69,8 @@ std::vector PartialCoherence::GetRoi() return roi; } -af::array PartialCoherence::ApplyPartialCoherence(af::array abs_amplitudes, int current_iteration) +af::array PartialCoherence::ApplyPartialCoherence(af::array abs_amplitudes) { - // check if trigger is set for this iteration, and if so update coherence - if ((trigger_index < triggers.size()) && (current_iteration == triggers[trigger_index])) - { - af::array abs_amplitudes_centered = shift(abs_amplitudes, dims[0]/2, dims[1]/2, dims[2]/2, dims[3]/2); - af::array roi_abs_amplitudes = Utils::CropCenter(abs_amplitudes_centered, roi_dims).copy(); - - af::array roi_combined_amp = 2*roi_abs_amplitudes - roi_amplitudes_prev; - OnTrigger(roi_combined_amp); // use_2k_1 from matlab program - printf("Updating coherence, current iter %i\n", current_iteration); - trigger_index++; - } - // apply coherence af::array abs_amplitudes_2 = pow(abs_amplitudes, 2); af::array converged_2 = af::fftConvolve(abs_amplitudes_2, kernel_array); @@ -102,6 +82,16 @@ af::array PartialCoherence::ApplyPartialCoherence(af::array abs_amplitudes, int return converged; } +af::array PartialCoherence::UpdatePartialCoherence(af::array abs_amplitudes) +{ + af::array abs_amplitudes_centered = shift(abs_amplitudes, dims[0]/2, dims[1]/2, dims[2]/2, dims[3]/2); + af::array roi_abs_amplitudes = Utils::CropCenter(abs_amplitudes_centered, roi_dims).copy(); + + af::array roi_combined_amp = 2*roi_abs_amplitudes - roi_amplitudes_prev; + OnTrigger(roi_combined_amp); // use_2k_1 from matlab program + printf("Updating coherence\n"); +} + void PartialCoherence::OnTrigger(af::array arr) { // assume calculating coherence across all three dimensions @@ -123,11 +113,7 @@ void PartialCoherence::OnTrigger(af::array arr) } else if (algorithm == ALGORITHM_LUCY_PREV) { - // initialize, consider moving to init() - if (trigger_index == 1) - { - coherence = pow(roi_data_abs, 2); - } + // coherence = pow(roi_data_abs, 2); //coherence = DeconvLucy(coherence, pow(roi_data_abs, 2), iteration_num); } else diff --git a/src_cpp/state.cpp b/src_cpp/state.cpp index a979368..f189808 100644 --- a/src_cpp/state.cpp +++ b/src_cpp/state.cpp @@ -23,17 +23,6 @@ State::State(Params* parameters) total_iter_num = 0; current_alg = NULL; alg_switch_index = 0; - update_support = false; - support_triggers_index = 0; - update_phase = false; - phase_triggers_index = 0; - run_convolution = false; - update_kernel = false; - partial_coherence_triggers_index = 0; - averaging = false; - apply_twin = false; - update_resolution_triggers_index = 0; - update_resolution = false; } State::~State() @@ -85,51 +74,6 @@ int State::Next() alg_switch_index++; current_alg = algorithm_map[params->GetAlgSwitches()[alg_switch_index].algorithm_id]; } - - // check if update support this iteration - if ((params->GetSupportTriggers().size() > 0) && (params->GetSupportTriggers()[support_triggers_index] == current_iter)) - { - update_support = true; - support_triggers_index++; - } - else - { - update_support = false; - } - - // check if update phase this iteration - if ((params->GetPhaseTriggers().size() > 0) && (params->GetPhaseTriggers()[phase_triggers_index] == current_iter)) - { - update_phase = true; - phase_triggers_index++; - } - else - { - update_phase = false; - } - - // check if change resolution this iteration - if ((params->GetUpdateResolutionTriggers().size() > 0) && (params->GetUpdateResolutionTriggers()[update_resolution_triggers_index] == current_iter)) - { - update_resolution = true; - update_resolution_triggers_index++; - } - else - { - update_resolution = false; - } - - // calculate if during the iteration should do averaging. - averaging = ( current_iter >= (total_iter_num - params->GetAvgIterations()) ); - - if (current_iter == params->GetTwin()) - { - apply_twin = true; - } - else - { - apply_twin = false; - } return true; } @@ -150,36 +94,6 @@ int State::GetCurrentIteration() return current_iter; } -bool State::IsUpdateSupport() -{ - return update_support; -} - -bool State::IsUpdatePhase() -{ - return update_phase; -} - -bool State::IsUpdatePartialCoherence() -{ - return update_kernel; -} - -bool State::IsUpdateResolution() -{ - return update_resolution; -} - -bool State::IsApplyTwin() -{ - return apply_twin; -} - -bool State::IsAveragingIteration() -{ - return averaging; -} - std::vector State::GetErrors() { return errors; diff --git a/src_cpp/support.cpp b/src_cpp/support.cpp index 622a40d..f68a5a6 100644 --- a/src_cpp/support.cpp +++ b/src_cpp/support.cpp @@ -26,6 +26,7 @@ Support::Support(const af::dim4 data_dim, Params *parameters, af::array support) { support_array = support; } + update_iter = -1; /* if (algorithm == ALGORITHM_GAUSS) { @@ -40,38 +41,37 @@ Support::Support(const af::dim4 data_dim, Params *parameters, af::array support) */ } -void Support::Update(const af::array ds_image, bool amp_trigger, bool phase_trigger, d_type sig) +void Support::UpdateAmp(const af::array ds_image, d_type sig, int iter) { - if (amp_trigger) + if (sig != last_sigma) { - // not good programming but will be better with framework - if (sig > 0) - { - distribution = GetDistribution(ds_image.dims(), sig); - } - - printf("updating support\n"); - af::array convag = GaussConvFft(abs(ds_image)); - d_type max_convag = af::max(convag); - convag = convag/max_convag; - support_array = (convag >= threshold); + distribution = GetDistribution(ds_image.dims(), sig); } - if (phase_trigger) - { - printf("phase trigger\n"); + + printf("updating support\n"); + af::array convag = GaussConvFft(abs(ds_image)); + d_type max_convag = af::max(convag); + convag = convag/max_convag; + support_array = (convag >= threshold); + + last_sigma = sig; + update_iter = iter; +// printf("support sum %f\n", sum(support_array)); +} + +void Support::UpdatePhase(const af::array ds_image, int iter) +{ + printf("phase trigger\n"); af::array phase = atan2(imag(ds_image), real(ds_image)); af::array phase_condition = ((phase > params->GetPhaseMin()) && (phase < params->GetPhaseMax())); - if (amp_trigger) + if (iter == update_iter) { support_array *= phase_condition; -// init_support_array = support_array.copy(); } else { support_array = phase_condition * init_support_array; } - } - // printf("support sum %f\n", sum(support_array)); } @@ -85,20 +85,9 @@ float Support::GetThreshold() return threshold; } -af::array Support::GetSupportArray(bool twin) +af::array Support::GetSupportArray() { - if (twin) - { - printf("twinning\n"); - dim4 dims = support_array.dims(); - af::array temp = constant(0, dims, u32); - temp( af::seq(0, dims[0]/2-1), af::seq(0, dims[1]/2-1), span, span) = 1; - return support_array * temp; - } - else - { - return support_array; - } + return support_array; } af::array Support::GetDistribution(const af::dim4 data_dim, d_type sigma) diff --git a/src_cpp/worker.cpp b/src_cpp/worker.cpp index f2c3a04..23280a1 100644 --- a/src_cpp/worker.cpp +++ b/src_cpp/worker.cpp @@ -23,7 +23,7 @@ See LICENSE file. #include "resolution.hpp" -Reconstruction::Reconstruction(af::array image_data, af::array guess, Params* parameters, af::array support_array, af::array coherence_array, bool is_first) +Reconstruction::Reconstruction(af::array image_data, af::array guess, Params* parameters, af::array support_array, af::array coherence_array) { num_points = 0; norm_data = 0; @@ -32,7 +32,11 @@ Reconstruction::Reconstruction(af::array image_data, af::array guess, Params* pa data = image_data; ds_image = guess; params = parameters; - first = is_first; + for (int i = 0; i < params->GetNumberIterations(); i++) + { + std::vector v; + iter_flow.push_back(v); + } state = new State(params); support = new Support(data.dims(), params, support_array); @@ -44,15 +48,10 @@ Reconstruction::Reconstruction(af::array image_data, af::array guess, Params* pa { partialCoherence = NULL; } - if (first && (params->GetLowResolutionIter() >0)) + if (params->GetLowResolutionIter() >0) { resolution = new Resolution(params); } - //max_data = af::max(data); -// if (params->IsPlotErrors()) -// { -// errors_plot = new Window(512, 512, "errors"); -// } } Reconstruction::~Reconstruction() @@ -63,10 +62,6 @@ Reconstruction::~Reconstruction() { delete partialCoherence; } -// if (errors_plot != NULL) -// { -// delete errors_plot; -// } aver_v.clear(); support_vector.clear(); coherence_vector.clear(); @@ -74,13 +69,50 @@ Reconstruction::~Reconstruction() void Reconstruction::Init() { +printf("in init\n"); + + std::map flow_ptr_map; + flow_ptr_map["NextIter"] = &Reconstruction::NextIter; + flow_ptr_map["ResolutionTrigger"] = &Reconstruction::ResolutionTrigger; + flow_ptr_map["SupportTrigger"] = &Reconstruction::SupportTrigger; + flow_ptr_map["PhaseTrigger"] = &Reconstruction::PhaseTrigger; + flow_ptr_map["ToReal"] = &Reconstruction::ToReal; + flow_ptr_map["PcdiTrigger"] = &Reconstruction::PcdiTrigger; + flow_ptr_map["Pcdi"] = &Reconstruction::Pcdi; + flow_ptr_map["NoPcdi"] = &Reconstruction::NoPcdi; + flow_ptr_map["Gc"] = &Reconstruction::Gc; + flow_ptr_map["SetPcdiPrevious"] = &Reconstruction::SetPcdiPrevious; + flow_ptr_map["ToReciprocal"] = &Reconstruction::ToReciprocal; + flow_ptr_map["RunAlg"] = &Reconstruction::RunAlg; + flow_ptr_map["Twin"] = &Reconstruction::Twin; + flow_ptr_map["Average"] = &Reconstruction::Average; + + + std::vector used_flow_seq = params->GetUsedFlowSeq(); + std::vector flow_array = params->GetFlowArray(); + int num_iter = params->GetNumberIterations(); + + for (int i = 0; i < used_flow_seq.size(); i++) + { + int func_order = used_flow_seq[i]; + fp func_ptr = flow_ptr_map[flow_def[func_order].func_name]; + int offset = i * num_iter; + for (int j=0; j < num_iter; j++) + { + if (flow_array[offset + j]) + { + iter_flow[j].push_back(func_ptr); + } + } + } + // initialize other components state->Init(); if (partialCoherence != NULL) { - partialCoherence->Init(data); + partialCoherence->Init(data); } - aver_iter = params->GetAvgIterations(); + norm_data = GetNorm(data); num_points = data.elements(); // multiply the rs_amplitudes by max element of data array and the norm @@ -93,59 +125,24 @@ void Reconstruction::Init() ds_image *= support->GetSupportArray(); printf("initial image norm %f\n", GetNorm(ds_image)); - // iter_data = data; -} +} void Reconstruction::Iterate() { - d_type sig = params->GetSupportSigma(); while (state->Next()) { - current_iteration = state->GetCurrentIteration(); - iter_data = data; - if (resolution != NULL) + current_iteration = state->GetCurrentIteration(); + if (access("stopfile", F_OK) == 0) { - if ((current_iteration < params->GetLowResolutionIter()) && state->IsUpdateResolution()) - { - iter_data = resolution->GetIterData(current_iteration, data.copy()); - sig = resolution->GetIterSigma(current_iteration); - } - if (current_iteration == params->GetLowResolutionIter()) - { - sig = params->GetSupportSigma(); - } - } - if (state->IsUpdateSupport() || state->IsUpdatePhase()) - { - support->Update(ds_image.copy(), state->IsUpdateSupport(), state->IsUpdatePhase(), sig); - // not a good programming, will be better with framework - // it's for not recalculating distribution in support - if (state->IsUpdateSupport()) - { - sig = -1; - } + remove("stopfile"); + break; } - if (params->GetGC() && (current_iteration+1) % params->GetGC() == 0) + for (int i=0; iGetCurrentAlg(); - alg->RunAlgorithm(this); - -// if (params->IsPlotErrors() && !errors_plot->close()) -// { -// Plot(); -// } - - Average(); - - if (access("stopfile", F_OK) == 0) - { - remove("stopfile"); - break; - } } if (aver_v.size() > 0) @@ -162,73 +159,141 @@ void Reconstruction::Iterate() } } -af::array Reconstruction::ModulusProjection() +void Reconstruction::NextIter() { printf("------------------current iteration %i -----------------\n", current_iteration); - af::array rs_amplitudes; - dim4 dims = data.dims(); - rs_amplitudes = Utils::ifft(ds_image)*num_points; + iter_data = data; + sig = params->GetSupportSigma(); + printf("NextIter\n"); +} - +void Reconstruction::ResolutionTrigger() +{ + iter_data = resolution->GetIterData(current_iteration, data.copy()); + sig = resolution->GetIterSigma(current_iteration); + printf("ResolutionTrigger\n"); +} + +void Reconstruction::SupportTrigger() +{ + support->UpdateAmp(ds_image.copy(), sig, current_iteration); + printf("SupportTrigger\n"); +} + +void Reconstruction::PhaseTrigger() +{ + support->UpdatePhase(ds_image.copy(), current_iteration); + printf("PhaseTrigger\n"); +} + +void Reconstruction::ToReal() +{ + rs_amplitudes = Utils::ifft(ds_image)*num_points; printf("data norm, ampl norm before ratio %fl %fl\n", GetNorm(iter_data), GetNorm(rs_amplitudes)); - //state->RecordError( GetNorm(abs(rs_amplitudes)(rs_amplitudes > 0)-iter_data(rs_amplitudes > 0))/GetNorm(iter_data)); - - if ((partialCoherence == NULL) || (partialCoherence->GetTriggers().size() == 0)) - { - //rs_amplitudes = data * exp(af::complex(0, af::arg(rs_amplitudes))); - af::array ratio = Utils::GetRatio(iter_data, abs(rs_amplitudes)); - state->RecordError( GetNorm(abs(rs_amplitudes)(rs_amplitudes > 0)-iter_data(rs_amplitudes > 0))/GetNorm(iter_data)); - rs_amplitudes *= ratio; - } - else + printf("ToReal\n"); +} + +void Reconstruction::PcdiTrigger() +{ + af::array abs_amplitudes = abs(rs_amplitudes).copy(); + partialCoherence->UpdatePartialCoherence(abs_amplitudes); + printf("PcdiTrigger\n"); +} + +void Reconstruction::Pcdi() +{ + af::array abs_amplitudes = abs(rs_amplitudes).copy(); + af::array converged = partialCoherence->ApplyPartialCoherence(abs_amplitudes); + af::array ratio = Utils::GetRatio(iter_data, abs(converged)); + printf("ratio norm %f\n", GetNorm(ratio)); + state->RecordError( GetNorm(abs(converged)(converged > 0)-iter_data(converged > 0))/GetNorm(iter_data)); + rs_amplitudes *= ratio; + printf("Pcdi\n"); +} + +void Reconstruction::NoPcdi() +{ + af::array ratio = Utils::GetRatio(iter_data, abs(rs_amplitudes)); + state->RecordError( GetNorm(abs(rs_amplitudes)(rs_amplitudes > 0)-iter_data(rs_amplitudes > 0))/GetNorm(iter_data)); + rs_amplitudes *= ratio; + printf("NoPcdi\n"); +} + +void Reconstruction::Gc() +{ + af::deviceGC(); + printf("Gc\n"); +} + +void Reconstruction::SetPcdiPrevious() +{ + partialCoherence->SetPrevious(abs(rs_amplitudes)); + printf("SetPcdiPrevious\n"); +} + +void Reconstruction::ToReciprocal() +{ + ds_image_raw = Utils::fft(rs_amplitudes)/num_points; + printf("ToReciprocal\n"); +} + +void Reconstruction::RunAlg() +{ + Algorithm * alg = state->GetCurrentAlg(); + alg->RunAlgorithm(this); + printf("RunAlg\n"); +} + +void Reconstruction::Twin() +{ + dim4 dims = data.dims(); + af::array temp = constant(0, dims, u32); + temp( af::seq(0, dims[0]/2-1), af::seq(0, dims[1]/2-1), span, span) = 1; + ds_image = ds_image * temp; + printf("Twin\n"); +} + +void Reconstruction::Average() +{ + printf("average\n"); + aver_iter++; + af::array abs_image = abs(ds_image).copy(); + d_type *image_v = abs_image.host(); + std::vector v(image_v, image_v + ds_image.elements()); + if (aver_v.size() == 0) { - if ((current_iteration >= partialCoherence->GetTriggers()[0]) || (first == false)) - //if (~ Utils::IsNullArray(partialCoherence->GetKernelArray())) + for (int i = 0; i < v.size(); i++) { - printf("coherence using lucy\n"); - af::array abs_amplitudes = abs(rs_amplitudes).copy(); - af::array converged = partialCoherence->ApplyPartialCoherence(abs_amplitudes, current_iteration); - af::array ratio = Utils::GetRatio(iter_data, abs(converged)); - printf("ratio norm %f\n", GetNorm(ratio)); - state->RecordError( GetNorm(abs(converged)(converged > 0)-iter_data(converged > 0))/GetNorm(iter_data)); - - rs_amplitudes *= ratio; + aver_v.push_back(v[i]); } - else + } + else + { + for (int i = 0; i < v.size(); i++) { - //rs_amplitudes = data * exp(af::complex(0, af::arg(rs_amplitudes))); - af::array ratio = Utils::GetRatio(iter_data, abs(rs_amplitudes)); - state->RecordError( GetNorm(abs(rs_amplitudes)(rs_amplitudes > 0)-iter_data(rs_amplitudes > 0))/GetNorm(iter_data)); - rs_amplitudes *= ratio; + aver_v[i] += v[i]; } - partialCoherence->SetPrevious(abs(rs_amplitudes)); } - printf("ampl norm after ratio %fl\n", GetNorm(rs_amplitudes)); - - if (params->GetGC() && current_iteration % params->GetGC() == 0) - af::deviceGC(); - - return Utils::fft(rs_amplitudes)/num_points; + delete [] image_v; + printf("Average\n"); } -void Reconstruction::ModulusConstrainEr(af::array ds_image_raw) +void Reconstruction::ModulusConstrainEr() { printf("er\n"); - printf("image norm before support %fl\n", GetNorm(ds_image_raw)); - //ds_image = ds_image_raw * support->GetSupportArray(state->IsApplyTwin()); - af::array support_array = support->GetSupportArray(state->IsApplyTwin()); + printf("image norm before support %fl\n", GetNorm(ds_image_raw)); + af::array support_array = support->GetSupportArray(); ds_image = ds_image_raw * support_array; printf("image norm after support %fl\n", GetNorm(ds_image)); } -void Reconstruction::ModulusConstrainHio(af::array ds_image_raw) +void Reconstruction::ModulusConstrainHio() { - printf("hio\n"); printf("image norm before support %fl\n",GetNorm(ds_image_raw)); //ds_image(support->GetSupportArray(state->IsApplyTwin()) == 0) = (ds_image - ds_image_raw * params->GetBeta())(support->GetSupportArray(state->IsApplyTwin()) == 0); - af::array support_array = support->GetSupportArray(state->IsApplyTwin()); + af::array support_array = support->GetSupportArray(); af::array adjusted_calc_image = ds_image_raw * params->GetBeta(); af::array combined_image = ds_image - adjusted_calc_image; ds_image = ds_image_raw; @@ -236,34 +301,6 @@ void Reconstruction::ModulusConstrainHio(af::array ds_image_raw) printf("image norm after support %fl\n",GetNorm(ds_image)); } -void Reconstruction::Average() -{ - if (state->IsAveragingIteration()) - { - printf("average\n"); - // int aver_num = params->GetAvgIterations(); - af::array abs_image = abs(ds_image).copy(); - d_type *image_v = abs_image.host(); - std::vector v(image_v, image_v + ds_image.elements()); - if (aver_v.size() == 0) - { - for (int i = 0; i < v.size(); i++) - { - aver_v.push_back(v[i]); - } - } - else - { - for (int i = 0; i < v.size(); i++) - { - aver_v[i] += v[i]; - } - } - - delete [] image_v; - } -} - double Reconstruction::GetNorm(af::array arr) { return sum(pow(abs(arr), 2)); @@ -288,23 +325,6 @@ void Reconstruction::VectorizeCoherence() delete [] coherence_v; } -//void Reconstruction::Plot() -//{ -// if (current_iteration > 5 ) -// { -// // the plot will not show the very first error -// af::array x = seq(1.0, float(current_iteration-1), 1.0); -// std::vector errors = state->GetErrors(); -// af::array y(dim4(x.elements()), &errors[1]); -// errors_plot->plot(x,y.as(f32)); -// } -//} - -int Reconstruction::GetCurrentIteration() -{ - return state->GetCurrentIteration(); -} - af::array Reconstruction::GetImage() { return ds_image; @@ -345,4 +365,3 @@ std::vector Reconstruction::GetCoherenceVectorI() return coherence_vector; } - diff --git a/src_py/controller/fast_module.py b/src_py/controller/fast_module.py index 8a3b85c..07b03c3 100755 --- a/src_py/controller/fast_module.py +++ b/src_py/controller/fast_module.py @@ -18,7 +18,6 @@ """ import numpy as np -import src_py.utilities.CXDVizNX as cx import scipy.fftpack as sf import src_py.cyth.bridge_cpu as bridge_cpu import src_py.cyth.bridge_opencl as bridge_opencl @@ -61,11 +60,14 @@ def fast_module_reconstruction(proc, device, conf, data, coh_dims, image=None, s a vector containing mean error for each iteration """ if proc == 'cpu': - bridge = bridge_cpu + #bridge = bridge_cpu + fast_module = bridge_cpu.PyBridge() elif proc == 'opencl': - bridge = bridge_opencl + #bridge = bridge_opencl + fast_module = bridge_opencl.PyBridge() elif proc == 'cuda': - bridge = bridge_cuda + #bridge = bridge_cuda + fast_module = bridge_cuda.PyBridge() # shift data data=sf.fftshift(data) @@ -73,7 +75,7 @@ def fast_module_reconstruction(proc, device, conf, data, coh_dims, image=None, s dims = data.shape dims1 = (dims[2], dims[1], dims[0]) - fast_module = bridge.PyBridge() + #fast_module = bridge.PyBridge() data_l = data.flatten().tolist() if image is None: @@ -112,7 +114,7 @@ def fast_module_reconstruction(proc, device, conf, data, coh_dims, image=None, s image_r = np.asarray(fast_module.get_image_r()).copy() image_i = np.asarray(fast_module.get_image_i()).copy() image = image_r + 1j*image_i - print 'image norm in fast module', sum(abs(image)**2) + print ('image norm in fast module', sum(abs(image)**2)) # normalize image mx = max(np.absolute(image).ravel().tolist()) image = image/mx diff --git a/src_py/controller/gen_rec.py b/src_py/controller/gen_rec.py index 008113f..b24b7a5 100644 --- a/src_py/controller/gen_rec.py +++ b/src_py/controller/gen_rec.py @@ -167,7 +167,7 @@ def reconstruction(generations, proc, data, conf, config_map): for g in range(low_resolution_generations, generations): previous = rec.rec(proc, data, conf, config_map, previous) image = previous[0][0] - print 'image norm', ut.get_norm(image), '---------------------' + print ('image norm', ut.get_norm(image), '---------------------') errors = previous[0][3] errors.pop(0) plt.plot(errors) diff --git a/src_py/utilities/CXDVizNX.py b/src_py/utilities/CXDVizNX.py index af0927b..e8c7c0b 100644 --- a/src_py/utilities/CXDVizNX.py +++ b/src_py/utilities/CXDVizNX.py @@ -314,7 +314,7 @@ def center(image, support): # set com phase to zero, use as a reference phi0 = m.atan2(image.imag[dims[0]/2, dims[1]/2, dims[2]/2], image.real[dims[0]/2, dims[1]/2, dims[2]/2]) - print 'phi0', phi0 + print ('phi0', phi0) image = image * np.exp(-1j * phi0) return image, support From 497c6ee631860844925a9aabcda7a959fd8f66d0 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Wed, 30 May 2018 10:34:35 -0500 Subject: [PATCH 084/336] Corrected description --- include/common.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/common.h b/include/common.h index 52f03bb..93a5812 100644 --- a/include/common.h +++ b/include/common.h @@ -68,7 +68,7 @@ typedef struct flow_item_def { char* item_name; // The flow_item_def func_name is a name of the function in worker that implements the flow item. // // To add a new trigger/function do the following: -// 1. Insert a new definition for the flow_item in the correct order in the table. +// 1. Insert a new definition for the flow_item in the correct order in the flow_def array. // 2. Update the flow_seq_len below. // 3. Add the new function to the worker.hh and worker.cc, and add the pair (func_name, fp) to the flow_ptr_map in worker.cc. const flow_item_def flow_def[] = { From 2b1894216c461d19cd215803e25d1555a75119c4 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Mon, 18 Jun 2018 16:52:05 -0500 Subject: [PATCH 085/336] Fixed per Ross comments added capability of negative trigger configuration exchamnged toReciprocal and toDirect, in data prep if no proc is given, do not do init reconstruction. --- include/worker.hpp | 4 +- src_cpp/parameters.cpp | 29 +++++++++- src_cpp/worker.cpp | 12 ++-- src_py/controller/data.py | 115 ++++++++++++++++++++++++++++++++++---- 4 files changed, 138 insertions(+), 22 deletions(-) diff --git a/include/worker.hpp b/include/worker.hpp index 2803c7d..104502d 100644 --- a/include/worker.hpp +++ b/include/worker.hpp @@ -82,13 +82,13 @@ typedef void (Reconstruction::*fp)(void); void ResolutionTrigger(); void SupportTrigger(); void PhaseTrigger(); - void ToReal(); + void ToReciprocal(); void PcdiTrigger(); void Pcdi(); void NoPcdi(); void Gc(); void SetPcdiPrevious(); - void ToReciprocal(); + void ToDirect(); void RunAlg(); void Twin(); void Average(); diff --git a/src_cpp/parameters.cpp b/src_cpp/parameters.cpp index 93090ab..88ec5fa 100644 --- a/src_cpp/parameters.cpp +++ b/src_cpp/parameters.cpp @@ -149,7 +149,7 @@ Params::Params(const char* config_file, std::vector data_dim, bool first) // { printf(" %i", used_flow_seq[i]);} // printf("is pcdi %i\n",is_pcdi); - + // parse triggers and flow items into flow array; 0 if not executed, 1 if executed int used_flow_seq_len = used_flow_seq.size(); int flow[number_iterations * used_flow_seq_len]; memset(flow, 0, sizeof(flow)); @@ -202,6 +202,8 @@ Params::Params(const char* config_file, std::vector data_dim, bool first) int ind = tmp[0]; if (ind < number_iterations) { + // the line below handler negative number + ind = (ind + number_iterations) % number_iterations; flow[offset + ind] = 1; if (flow_item == "pcdi_trigger") { @@ -213,6 +215,10 @@ Params::Params(const char* config_file, std::vector data_dim, bool first) { int step = tmp[1]; int start_iter = tmp[0]; + if (start_iter < number_iterations) + { + start_iter = (start_iter + number_iterations) % number_iterations; + } if (!first && (type == MODIFIED_AFTER_FIRST)) { @@ -222,6 +228,11 @@ Params::Params(const char* config_file, std::vector data_dim, bool first) if (tmp.getLength() == 3) { int conf_stop_iter = tmp[2]; + // the line below handler negative number + if (conf_stop_iter < number_iterations) + { + conf_stop_iter = (conf_stop_iter + number_iterations) % number_iterations; + } stop_iter = std::min(conf_stop_iter, stop_iter); } for (int i = start_iter; i < stop_iter; i += step) @@ -243,6 +254,8 @@ Params::Params(const char* config_file, std::vector data_dim, bool first) int ind = tmp[j][0]; if (ind < number_iterations) { + // the line below handler negative number + ind = (ind + number_iterations) % number_iterations; flow[offset + ind] = 1; if (flow_item == "pcdi_trigger") { @@ -254,6 +267,10 @@ Params::Params(const char* config_file, std::vector data_dim, bool first) { int step = tmp[j][1]; int start_iter = tmp[j][0]; + if (start_iter < number_iterations) + { + start_iter = (start_iter + number_iterations) % number_iterations; + } if (!first && (type = MODIFIED_AFTER_FIRST)) { start_iter = step; @@ -262,6 +279,10 @@ Params::Params(const char* config_file, std::vector data_dim, bool first) if (tmp[j].getLength() == 3) { int conf_stop_iter = tmp[j][2]; + if (conf_stop_iter < number_iterations) + { + conf_stop_iter = (conf_stop_iter + number_iterations) % number_iterations; + } stop_iter = std::min(conf_stop_iter, stop_iter); } for (int i = start_iter; i < stop_iter; i += step) @@ -391,6 +412,10 @@ Params::Params(const char* config_file, std::vector data_dim, bool first) try { low_res_iterations = tmp[2]; + if (low_res_iterations < 0) + { + low_res_iterations = low_res_iterations + number_iterations; + } } catch ( const SettingNotFoundException &nfex) { @@ -573,6 +598,6 @@ std::vector Params::GetUsedFlowSeq() std::vector Params::GetFlowArray() { - printf("flow vec len %i", flow_vec.size()); + //printf("flow vec len %i", flow_vec.size()); return flow_vec; } diff --git a/src_cpp/worker.cpp b/src_cpp/worker.cpp index 23280a1..f1a061f 100644 --- a/src_cpp/worker.cpp +++ b/src_cpp/worker.cpp @@ -76,13 +76,13 @@ printf("in init\n"); flow_ptr_map["ResolutionTrigger"] = &Reconstruction::ResolutionTrigger; flow_ptr_map["SupportTrigger"] = &Reconstruction::SupportTrigger; flow_ptr_map["PhaseTrigger"] = &Reconstruction::PhaseTrigger; - flow_ptr_map["ToReal"] = &Reconstruction::ToReal; + flow_ptr_map["ToReciprocal"] = &Reconstruction::ToReciprocal; flow_ptr_map["PcdiTrigger"] = &Reconstruction::PcdiTrigger; flow_ptr_map["Pcdi"] = &Reconstruction::Pcdi; flow_ptr_map["NoPcdi"] = &Reconstruction::NoPcdi; flow_ptr_map["Gc"] = &Reconstruction::Gc; flow_ptr_map["SetPcdiPrevious"] = &Reconstruction::SetPcdiPrevious; - flow_ptr_map["ToReciprocal"] = &Reconstruction::ToReciprocal; + flow_ptr_map["ToDirect"] = &Reconstruction::ToDirect; flow_ptr_map["RunAlg"] = &Reconstruction::RunAlg; flow_ptr_map["Twin"] = &Reconstruction::Twin; flow_ptr_map["Average"] = &Reconstruction::Average; @@ -186,11 +186,11 @@ void Reconstruction::PhaseTrigger() printf("PhaseTrigger\n"); } -void Reconstruction::ToReal() +void Reconstruction::ToReciprocal() { rs_amplitudes = Utils::ifft(ds_image)*num_points; printf("data norm, ampl norm before ratio %fl %fl\n", GetNorm(iter_data), GetNorm(rs_amplitudes)); - printf("ToReal\n"); + printf("ToReciprocal\n"); } void Reconstruction::PcdiTrigger() @@ -231,10 +231,10 @@ void Reconstruction::SetPcdiPrevious() printf("SetPcdiPrevious\n"); } -void Reconstruction::ToReciprocal() +void Reconstruction::ToDirect() { ds_image_raw = Utils::fft(rs_amplitudes)/num_points; - printf("ToReciprocal\n"); + printf("ToDirect\n"); } void Reconstruction::RunAlg() diff --git a/src_py/controller/data.py b/src_py/controller/data.py index 9ccb646..f650d84 100644 --- a/src_py/controller/data.py +++ b/src_py/controller/data.py @@ -75,13 +75,11 @@ def prepare_data(config_map, data): try: binsizes = config_map.binning except AttributeError: - print 'no binsizes' binsizes = None try: pads = tuple(config_map.adjust_dimensions) except AttributeError: - print 'no pads' pads = None try: @@ -97,7 +95,7 @@ def prepare_data(config_map, data): data_files = [] for prep in range(len(amp_thresholds)): # zero out the noise - prep_data = np.where(data < config_map.amp_threshold[prep], 0, data) + prep_data = np.where(data < amp_thresholds[prep], 0, data) if not binsizes is None: # do binning @@ -124,6 +122,98 @@ def prepare_data(config_map, data): return data_files +def prepare_data_only(config_map, data): + """ + This function prepares raw data for reconstruction. It uses configured parameters. The preparation consists of the following steps: + 1. clearing the noise - the values below an amplitude threshold are set to zero + 2. removing the "aliens" - aliens are areas that are effect of interference. The area is manually set in a configuration file + after inspecting the data. + 3. binning - adding amplitudes of several consecutive points. Binning can be done in any dimension. + 4. amplitudes are set to sqrt + 5. centering - finding the greatest amplitude and locating it at a center of new array. Typically several new rows/columns/slices + are added. These are filled with zeros. When changing the dimension the code finds the smallest possible dimension that is + supported by opencl library (multiplier of 2, 3, and 5). + + Parameters + ---------- + config_map : dict + configuration map + + data : array + a 3D np array containing experiment data + + Returns + ------- + data : array + a 3D np array containing data after the preprocessing + """ + + # zero out the aliens, aliens are the same for each data prep + try: + aliens = config_map.aliens + for alien in aliens: + data[alien[0]:alien[3], alien[1]:alien[4], alien[2]:alien[5]] = 0 + except AttributeError: + pass + + try: + amp_threshold = config_map.amp_threshold[0] + except AttributeError: + print ('define amplitude threshold. Exiting') + return + + try: + binsizes = config_map.binning[0] + except AttributeError: + binsizes = None + + try: + pads = tuple(config_map.adjust_dimensions)[0] + except AttributeError: + pads = None + + try: + center_shift = tuple(config_map.center_shift)[0] + except AttributeError: + center_shift = None + + try: + data_dir = config_map.data_dir + except AttributeError: + data_dir = 'data' + + # zero out the noise + prep_data = np.where(data < amp_threshold, 0, data) + + if not binsizes is None: + # do binning + prep_data = ut.binning(prep_data, binsizes) + + # square root data + prep_data = np.sqrt(prep_data) + + if not pads is None: + # adjust the size, either zero pad or crop array + prep_data = ut.adjust_dimensions(prep_data, pads) + else: + prep_data = ut.adjust_dimensions(prep_data, (0,0,0,0,0,0)) + + if not center_shift is None: + # get centered array + prep_data = ut.get_centered(prep_data, center_shift) + else: + prep_data = ut.get_centered(prep_data, [0,0,0]) + + # save data + if not data_dir.endswith('/'): + data_dir = data_dir + '/' + if not os.path.exists(data_dir): + os.makedirs(data_dir) + + data_file = data_dir + 'data.npy' + np.save(data_file, prep_data) + + def save_prepared_data(data, data_dir, prep_no): if not data_dir.endswith('/'): data_dir = data_dir + '/' @@ -151,11 +241,9 @@ def select_best(img_errs): errors = img_errs[i][1] len_er = len(errors) er_sum = sum(errors[len_er-11:len_er-1]) - print 'er_sum', er_sum image = img_errs[i][0] image = np.where(image>0.25, image, 0) img_std = np.std(image) - print 'img std', img_std if er_sum < min_er: min_index = i return min_index @@ -200,18 +288,21 @@ def prep(proc, fname, conf): return print ('data dimensions before prep', data.shape) + if proc is None: + prepare_data_only(config_map, data) + else: # prepare data according to configuration file. It will produce several prepared data files, differentiated by # the configuration parameters. - data_files = prepare_data(config_map, data) + data_files = prepare_data(config_map, data) - # run the same short reconstruction on the prepared data files and save results in vti format for visual comparison. - img_errs = test_reconstruction(data_files, conf, config_map, proc) + # run the same short reconstruction on the prepared data files and save results in vti format for visual comparison. + img_errs = test_reconstruction(data_files, conf, config_map, proc) - #based on errors select the best image - best_index = select_best(img_errs) + #based on errors select the best image + best_index = select_best(img_errs) - # copy best data file to data.npy - save_best(data_files[best_index]) + # copy best data file to data.npy + save_best(data_files[best_index]) #prep('opencl', '/local/bfrosik/CDI/S149/Staff14-3_S0149.tif', 'config_data') From 349ca1d8cffe30829c51e94591d8094f995d3138 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Tue, 31 Jul 2018 09:34:26 -0500 Subject: [PATCH 086/336] Introduced new scheme to parse triggers and to run the reconstruction as a sequence of functin pointers. --- 34id/__init__.py | 0 34id/cdi_conf_window.py | 640 ++++++++++++++++++++++++++++++++++++++++ 34id/prep.py | 212 +++++++++++++ 3 files changed, 852 insertions(+) create mode 100755 34id/__init__.py create mode 100644 34id/cdi_conf_window.py create mode 100644 34id/prep.py diff --git a/34id/__init__.py b/34id/__init__.py new file mode 100755 index 0000000..e69de29 diff --git a/34id/cdi_conf_window.py b/34id/cdi_conf_window.py new file mode 100644 index 0000000..54f212e --- /dev/null +++ b/34id/cdi_conf_window.py @@ -0,0 +1,640 @@ +import sys +import os +import shutil +import prep +from PyQt4.QtCore import * +from PyQt4.QtGui import * + + +def select_file(start_dir): + dialog = QFileDialog(None, 'select dir', start_dir) + dialog.setFileMode(QFileDialog.ExistingFile) + dialog.setSidebarUrls([QUrl.fromLocalFile(start_dir)]) + if dialog.exec_() == QDialog.Accepted: + return str(dialog.selectedFiles()[0]) + + +def select_dir(start_dir): + dialog = QFileDialog(None, 'select dir', start_dir) + dialog.setFileMode(QFileDialog.DirectoryOnly) + dialog.setSidebarUrls([QUrl.fromLocalFile(start_dir)]) + if dialog.exec_() == QDialog.Accepted: + return str(dialog.selectedFiles()[0]) + + +class cdi_conf(QWidget): + def __init__(self, parent=None): + super(cdi_conf, self).__init__(parent) + uplayout = QFormLayout() + + self.set_work_dir_button = QPushButton() + uplayout.addRow("Working Directory", self.set_work_dir_button) + self.Id_widget = QLineEdit() + uplayout.addRow("Reconstruction ID", self.Id_widget) + + vbox = QVBoxLayout() + vbox.addLayout(uplayout) + + self.t = cdi_conf_tab(self) + vbox.addWidget(self.t) + + self.setLayout(vbox) + self.setWindowTitle("CDI Configuration") + + self.Id_widget.textChanged.connect(self.set_id) + self.set_work_dir_button.clicked.connect(self.set_working_dir) + + + def set_id(self): + self.id = str(self.Id_widget.text()) + + + def set_working_dir(self): + self.working_dir = select_dir('/local/bfrosik/cdi') + self.set_work_dir_button.setStyleSheet("Text-align:left") + self.set_work_dir_button.setText(self.working_dir) + + +class cdi_conf_tab(QTabWidget): + def __init__(self, main_win, parent=None): + super(cdi_conf_tab, self).__init__(parent) + self.main_win = main_win + self.tab1 = QWidget() + self.prep_result_dir = self.id = self.detector = self.scan = self.data_dir = self.specfile = None + self.tab2 = QWidget() + self.tab3 = QWidget() + self.tab4 = QWidget() + + self.addTab(self.tab1, "34ID prep") + self.addTab(self.tab2, "Data") + self.addTab(self.tab3, "Reconstruction") + self.addTab(self.tab4, "Display") + self.tab1UI() + self.tab2UI() + self.tab3UI() + self.tab4UI() + + + def tab1UI(self): + layout = QFormLayout() + # self.det_widget = QLineEdit() + # layout.addRow("Detector", self.det_widget) + self.data_dir_button = QPushButton() + layout.addRow("data directory", self.data_dir_button) + self.spec_file_button = QPushButton() + layout.addRow("spec file", self.spec_file_button) + self.scan_widget = QLineEdit() + layout.addRow("scan(s)", self.scan_widget) + self.dark_file_button = QPushButton() + layout.addRow("darkfield file", self.dark_file_button) + self.white_file_button = QPushButton() + layout.addRow("whitefield file", self.white_file_button) + self.prep_button = QPushButton('prepare', self) + layout.addWidget(self.prep_button) + self.tab1.setLayout(layout) + + self.prep_button.clicked.connect(self.prepare) + self.data_dir_button.clicked.connect(self.set_data_dir) + self.spec_file_button.clicked.connect(self.set_spec_file) + self.dark_file_button.clicked.connect(self.set_dark_file) + self.white_file_button.clicked.connect(self.set_white_file) + + + def tab2UI(self): + layout = QFormLayout() + self.aliens = QLineEdit() + layout.addRow("aliens", self.aliens) + self.amp_threshold = QLineEdit() + layout.addRow("amp_threshold", self.amp_threshold) + self.binning = QLineEdit() + layout.addRow("binning", self.binning) + self.center_shift = QLineEdit() + layout.addRow("center_shift", self.center_shift) + self.adjust_dimensions = QLineEdit() + layout.addRow("adjust_dimensions", self.adjust_dimensions) + self.config_data_button = QPushButton('create config_data', self) + layout.addWidget(self.config_data_button) + self.tab2.setLayout(layout) + + self.config_data_button.clicked.connect(self.config_data) + + + def tab3UI(self): + layout = QVBoxLayout() + ulayout = QFormLayout() + llayout = QHBoxLayout() + self.save_dir = QLineEdit() + ulayout.addRow("save results dir", self.save_dir) + self.cont = QCheckBox() + ulayout.addRow("continuation", self.cont) + self.cont.setChecked(False) + self.device = QLineEdit() + ulayout.addRow("device(s)", self.device) + self.threads = QLineEdit() + ulayout.addRow("number of threads", self.threads) + self.gc = QLineEdit() + ulayout.addRow("gc triggers", self.gc) + self.alg_seq = QLineEdit() + ulayout.addRow("algorithm sequence", self.alg_seq) + # TODO add logic to show this only if HIO is in sequence + self.beta = QLineEdit() + ulayout.addRow("beta", self.beta) + self.rec_default_button = QPushButton('set to defaults', self) + ulayout.addWidget(self.rec_default_button) + + layout.addLayout(ulayout) + layout.addLayout(llayout) + self.features = features(self, llayout) + self.config_rec_button = QPushButton('create config_rec', self) + layout.addWidget(self.config_rec_button) + self.tab3.setAutoFillBackground(True) + self.tab3.setLayout(layout) + + self.config_rec_button.clicked.connect(self.config_rec) + self.cont.stateChanged.connect(lambda: self.toggle_cont(ulayout)) + self.rec_default_button.clicked.connect(self.rec_default) + + + def toggle_cont(self, layout): + cb_label = layout.labelForField(self.cont) + if self.cont.isChecked(): + self.cont_dir = QLineEdit() + layout.insertRow(2, "continue dir", self.cont_dir) + cb_label.setStyleSheet('color: black') + else: + label = layout.labelForField(self.cont_dir) + self.cont_dir.setParent(None) + label.setParent(None) + cb_label.setStyleSheet('color: grey') + + + def tab4UI(self): + layout = QFormLayout() + self.crop = QLineEdit() + layout.addRow("crop", self.crop) + self.config_disp_button = QPushButton('update config_disp', self) + layout.addWidget(self.config_disp_button) + self.tab4.setLayout(layout) + + self.config_disp_button.clicked.connect(self.config_disp) + + + def set_spec_file(self): + self.specfile = select_file('/net/s34data/export/34idc-data/2018') + self.spec_file_button.setStyleSheet("Text-align:left") + self.spec_file_button.setText(self.specfile) + + + def set_dark_file(self): + self.darkfile = select_file('/net/s34data/export/34idc-work/2018') + self.dark_file_button.setStyleSheet("Text-align:left") + self.dark_file_button.setText(self.darkfile) + + + def set_white_file(self): + self.whitefile = select_file('/net/s34data/export/34idc-work/2018') + self.white_file_button.setStyleSheet("Text-align:left") + self.white_file_button.setText(self.whitefile) + + + def set_data_dir(self): + self.data_dir = select_dir('/net/s34data/export/34idc-data/2018') + self.data_dir_button.setStyleSheet("Text-align:left") + self.data_dir_button.setText(self.data_dir) + + + def prepare(self): + scan = str(self.scan_widget.text()) + + if not self.main_win.working_dir is None and \ + not self.main_win.id is None and\ + not scan is None and \ + not self.data_dir is None and \ + not self.specfile is None: + try: + # after checking that scan is entered convert it to list of int + scan_range = scan.split('-') + for i in range(len(scan_range)): + scan_range[i] = int(scan_range[i]) + except: + print ('enter numeric values for scan range') + else: + print ('enter all fields') + prep.prepare(self.main_win.working_dir, self.main_win.id, scan_range, self.data_dir, self.specfile, self.darkfile, self.whitefile) + + + def config_data(self): + conf_map = {} + data_out_dir = self.main_win.working_dir + '/' + self.main_win.id + '/data' + conf_map['data_dir'] = data_out_dir + conf_map['aliens'] = str(self.aliens.text()) + conf_map['amp_threshold'] = str(self.amp_threshold.text()) + conf_map['binning'] = str(self.binning.text()) + conf_map['center_shift'] = str(self.center_shift.text()) + conf_map['adjust_dimensions'] = str(self.adjust_dimensions.text()) + + data_conf_file = os.path.join(self.main_win.working_dir, self.main_win.id, 'conf', 'config_data') + + self.create_config(data_conf_file, conf_map) + + + def config_rec(self): + conf_map = {} + conf_map['data_dir'] = self.main_win.working_dir + '/' + self.main_win.id + '/data' + conf_map['save_dir'] = str(self.save_dir.text()) + conf_map['threads'] = str(self.threads.text()) + conf_map['device'] = str(self.device.text()) + conf_map['garbage_trigger'] = str(self.gc.text()) + conf_map['algorithm_sequence'] = str(self.alg_seq.text()) + conf_map['beta'] = str(self.beta.text()) + if self.cont.isChecked(): + conf_map['continue_dir'] = str(self.cont_dir.text()) + + if self.features.active_0.isChecked(): + conf_map['generations'] = str(self.features.generations.text()) + conf_map['low_resolution_generations'] = str(self.features.lr_generations.text()) + conf_map['low_resolution_sigma_alg'] = str(self.features.lr_sigma_alg.text()) + conf_map['low_resolution_sigmas'] = str(self.features.lr_sigmas.text()) + conf_map['low_resolution_sigma_min'] = str(self.features.lr_sigma_min.text()) + conf_map['low_resolution_sigma_max'] = str(self.features.lr_sigma_max.text()) + conf_map['low_resolution_scale_power'] = str(self.features.lr_scale_power.text()) + conf_map['low_resolution_alg'] = str(self.features.lr_algorithm.text()) + if self.features.active_1.isChecked(): + conf_map['resolution_trigger'] = str(self.features.res_triggers.text()) + conf_map['iter_res_sigma_range'] = str(self.features.sigma_range.text()) + conf_map['iter_res_det_range'] = str(self.features.det_range.text()) + if self.features.active_2.isChecked(): + conf_map['amp_support_trigger'] = str(self.features.support_triggers.text()) + conf_map['support_type'] = str(self.features.support_type.text()) + conf_map['support_threshold'] = str(self.features.threshold.text()) + conf_map['support_sigma'] = str(self.features.sigma.text()) + conf_map['support_area'] = str(self.features.support_area.text()) + if self.features.active_3.isChecked(): + conf_map['phase_support_trigger'] = str(self.features.phase_triggers.text()) + conf_map['phase_min'] = str(self.features.phase_min.text()) + conf_map['phase_max'] = str(self.features.phase_max.text()) + if self.features.active_4.isChecked(): + conf_map['pcdi_trigger'] = str(self.features.pcdi_triggers.text()) + conf_map['partial_coherence_type'] = str(self.features.pcdi_type.text()) + conf_map['partial_coherence_iteration_num'] = str(self.features.pcdi_iter.text()) + conf_map['partial_coherence_normalize'] = str(self.features.pcdi_normalize.text()) + conf_map['partial_coherence_roi'] = str(self.features.pcdi_roi.text()) + if self.features.active_5.isChecked(): + conf_map['twin_trigger'] = str(self.features.twin_triggers.text()) + if self.features.active_6.isChecked(): + conf_map['avarage_trigger'] = str(self.features.average_triggers.text()) + + rec_conf_file = os.path.join(self.main_win.working_dir, self.main_win.id, 'conf', 'config_rec') + self.create_config(rec_conf_file, conf_map) + + + def create_config(self, conf_file, conf_map): + valid = True + with open('temp', 'a') as f: + for key in conf_map: + value = conf_map[key] + if len(value) == 0: + print ('the ' + key + ' is not configured') + valid = False + break + f.write(key + ' = ' + conf_map[key] + '\n') + f.close() + if valid: + shutil.move('temp', conf_file) + + + def config_disp(self): + if len(self.crop.text()) == 0: + print ('crop not configured') + return + + disp_conf_file = os.path.join(self.main_win.working_dir, self.main_win.id, 'conf', 'config_disp') + with open('temp', 'a') as temp: + with open(disp_conf_file, 'r') as f: + for line in f: + if not line.startswith('crop'): + temp.write(line) + f.close() + + temp.write('crop = ' + str(self.crop.text())) + temp.close() + shutil.move('temp', disp_conf_file) + + + def rec_default(self): + if self.main_win.working_dir is None or self.main_win.id is None or \ + len(self.main_win.working_dir) == 0 or len(self.main_win.id) == 0: + print ('Working Directory or Reconstruction ID not configured') + else: + self.save_dir.setText(str(self.main_win.working_dir) + '/' + str(self.main_win.id) + '/results') + self.threads.setText('1') + self.device.setText('3') + self.gc.setText('1000') + self.alg_seq.setText("((5,('ER',20),('HIO',180)),(1,('ER',40),('HIO',160)),(4,('ER',20),('HIO',180)))") + self.beta.setText('.9') + self.cont.setChecked(False) + + +class features(QWidget): + def __init__(self, tab, layout): + super(features, self).__init__() + self.leftlist = QListWidget() + self.leftlist.insertItem(0, 'GA') + self.leftlist.insertItem(1, 'low resolution') + self.leftlist.insertItem(2, 'amplitude support') + self.leftlist.insertItem(3, 'phase support') + self.leftlist.insertItem(4, 'pcdi') + self.leftlist.insertItem(5, 'twin') + self.leftlist.insertItem(6, 'average') + + item = self.leftlist.item(2) + item.setForeground(QColor('black')); + + self.stack0 = QWidget() + self.stack1 = QWidget() + self.stack2 = QWidget() + self.stack3 = QWidget() + self.stack4 = QWidget() + self.stack5 = QWidget() + self.stack6 = QWidget() + + self.stack0UI(self.leftlist.item(0)) + self.stack1UI(self.leftlist.item(1)) + self.stack2UI(self.leftlist.item(2)) + self.stack3UI(self.leftlist.item(3)) + self.stack4UI(self.leftlist.item(4)) + self.stack5UI(self.leftlist.item(5)) + self.stack6UI(self.leftlist.item(6)) + + self.Stack = QStackedWidget(self) + self.Stack.addWidget(self.stack0) + self.Stack.addWidget(self.stack1) + self.Stack.addWidget(self.stack2) + self.Stack.addWidget(self.stack3) + self.Stack.addWidget(self.stack4) + self.Stack.addWidget(self.stack5) + self.Stack.addWidget(self.stack6) + + layout.addWidget(self.leftlist) + layout.addWidget(self.Stack) + + self.leftlist.currentRowChanged.connect(self.display) + + + def stack0UI(self, item): + layout = QFormLayout() + self.active_0 = QCheckBox("active") + self.active_0.setChecked(False) + layout.addWidget(self.active_0) + self.toggle_0(layout, item) + self.stack0.setLayout(layout) + self.active_0.stateChanged.connect(lambda: self.toggle_0(layout, item)) + + def toggle_0(self, layout, item): + if self.active_0.isChecked(): + self.generations = QLineEdit() + layout.addRow("generations", self.generations) + self.lr_generations = QLineEdit() + layout.addRow("low resolution generations", self.lr_generations) + self.lr_sigma_alg = QLineEdit() + layout.addRow("low resolution sigma algorithm", self.lr_sigma_alg) + self.lr_sigmas = QLineEdit() + layout.addRow("low resolution sigmas", self.lr_sigmas) + self.lr_sigma_min = QLineEdit() + layout.addRow("low resolution sigma min", self.lr_sigma_min) + self.lr_sigma_max = QLineEdit() + layout.addRow("low resolution sigma max", self.lr_sigma_max) + self.lr_scale_power = QLineEdit() + layout.addRow("low resolution scale power", self.lr_scale_power) + self.lr_algorithm = QLineEdit() + layout.addRow("low resolution algorithm", self.lr_algorithm) + item.setForeground(QColor('black')); + else: + for i in reversed(range(1, layout.count())): + layout.itemAt(i).widget().setParent(None) + item.setForeground(QColor('grey')); + + + def stack1UI(self, item): + layout = QFormLayout() + self.active_1 = QCheckBox("active") + self.active_1.setChecked(True) + layout.addWidget(self.active_1) + self.toggle_1(layout, item) + self.stack1.setLayout(layout) + self.active_1.stateChanged.connect(lambda:self.toggle_1(layout, item)) + + + def toggle_1(self, layout, item): + if self.active_1.isChecked(): + self.res_triggers = QLineEdit() + layout.addRow("low resolution triggers", self.res_triggers) + self.sigma_range = QLineEdit() + layout.addRow("sigma range", self.sigma_range) + self.det_range = QLineEdit() + layout.addRow("det range", self.det_range) + + self.default_1_button = QPushButton('set to defaults', self) + layout.addWidget(self.default_1_button) + self.default_1_button.clicked.connect(self.rec_1_default) + + item.setForeground(QColor('black')); + else: + for i in reversed(range(1, layout.count())): + layout.itemAt(i).widget().setParent(None) + item.setForeground(QColor('grey')); + + + def stack2UI(self, item): + layout = QFormLayout() + self.active_2 = QCheckBox("active") + self.active_2.setChecked(True) + layout.addWidget(self.active_2) + self.toggle_2(layout, item) + self.stack2.setLayout(layout) + self.active_2.stateChanged.connect(lambda: self.toggle_2(layout, item)) + + + def toggle_2(self, layout, item): + if self.active_2.isChecked(): + self.support_triggers = QLineEdit() + layout.addRow("support triggers", self.support_triggers) + self.support_type = QLineEdit() + layout.addRow("support algorithm", self.support_type) + self.support_area = QLineEdit() + layout.addRow("starting support area", self.support_area) + self.threshold = QLineEdit() + layout.addRow("threshold", self.threshold) + self.sigma = QLineEdit() + layout.addRow("sigma", self.sigma) + + self.default_2_button = QPushButton('set to defaults', self) + layout.addWidget(self.default_2_button) + self.default_2_button.clicked.connect(self.rec_2_default) + + item.setForeground(QColor('black')); + else: + for i in reversed(range(1, layout.count())): + layout.itemAt(i).widget().setParent(None) + item.setForeground(QColor('grey')); + + + def stack3UI(self, item): + layout = QFormLayout() + self.active_3 = QCheckBox("active") + self.active_3.setChecked(True) + layout.addWidget(self.active_3) + self.toggle_3(layout, item) + self.stack3.setLayout(layout) + self.active_3.stateChanged.connect(lambda: self.toggle_3(layout, item)) + + def toggle_3(self, layout, item): + if self.active_3.isChecked(): + self.phase_triggers = QLineEdit() + layout.addRow("phase support triggers", self.phase_triggers) + self.phase_min = QLineEdit() + layout.addRow("phase minimum", self.phase_min) + self.phase_max = QLineEdit() + layout.addRow("phase maximum", self.phase_max) + + self.default_3_button = QPushButton('set to defaults', self) + layout.addWidget(self.default_3_button) + self.default_3_button.clicked.connect(self.rec_3_default) + + item.setForeground(QColor('black')); + else: + for i in reversed(range(1, layout.count())): + layout.itemAt(i).widget().setParent(None) + item.setForeground(QColor('grey')); + + + def stack4UI(self, item): + layout = QFormLayout() + self.active_4 = QCheckBox("active") + self.active_4.setChecked(True) + layout.addWidget(self.active_4) + self.toggle_4(layout, item) + self.stack4.setLayout(layout) + self.active_4.stateChanged.connect(lambda: self.toggle_4(layout, item)) + + def toggle_4(self, layout, item): + if self.active_4.isChecked(): + self.pcdi_triggers = QLineEdit() + layout.addRow("pcdi triggers", self.pcdi_triggers) + self.pcdi_type = QLineEdit() + layout.addRow("partial coherence algorithm", self.pcdi_type) + self.pcdi_iter = QLineEdit() + layout.addRow("pcdi iteration number", self.pcdi_iter) + self.pcdi_normalize = QLineEdit() + layout.addRow("normalize", self.pcdi_normalize) + self.pcdi_roi = QLineEdit() + layout.addRow("pcdi kernel area", self.pcdi_roi) + + self.default_4_button = QPushButton('set to defaults', self) + layout.addWidget(self.default_4_button) + self.default_4_button.clicked.connect(self.rec_4_default) + + item.setForeground(QColor('black')); + else: + for i in reversed(range(1, layout.count())): + layout.itemAt(i).widget().setParent(None) + item.setForeground(QColor('grey')); + + def stack5UI(self, item): + layout = QFormLayout() + self.active_5 = QCheckBox("active") + self.active_5.setChecked(True) + layout.addWidget(self.active_5) + self.toggle_5(layout, item) + self.stack5.setLayout(layout) + self.active_5.stateChanged.connect(lambda: self.toggle_5(layout, item)) + + def toggle_5(self, layout, item): + if self.active_5.isChecked(): + self.twin_triggers = QLineEdit() + layout.addRow("twin triggers", self.twin_triggers) + + self.default_5_button = QPushButton('set to defaults', self) + layout.addWidget(self.default_5_button) + self.default_5_button.clicked.connect(self.rec_5_default) + + item.setForeground(QColor('black')); + else: + for i in reversed(range(1, layout.count())): + layout.itemAt(i).widget().setParent(None) + item.setForeground(QColor('grey')); + + + def stack6UI(self, item): + layout = QFormLayout() + self.active_6 = QCheckBox("active") + self.active_6.setChecked(True) + layout.addWidget(self.active_6) + self.toggle_6(layout, item) + self.stack6.setLayout(layout) + self.active_6.stateChanged.connect(lambda: self.toggle_6(layout, item)) + + def toggle_6(self, layout, item): + if self.active_6.isChecked(): + self.average_triggers = QLineEdit() + layout.addRow("average triggers", self.average_triggers) + + self.default_6_button = QPushButton('set to defaults', self) + layout.addWidget(self.default_6_button) + self.default_6_button.clicked.connect(self.rec_6_default) + + item.setForeground(QColor('black')); + else: + for i in reversed(range(1, layout.count())): + layout.itemAt(i).widget().setParent(None) + item.setForeground(QColor('grey')); + + def display(self, i): + self.Stack.setCurrentIndex(i) + + + def rec_1_default(self): + #TODO add to accept fractions in trigger, so the default will be (.5,1) + self.res_triggers.setText('(1000, 1)') + self.sigma_range.setText('2') + self.det_range.setText('.7') + + + def rec_2_default(self): + self.support_triggers.setText('(1,1)') + self.support_type.setText('GAUSS') + self.support_area.setText('[.5,.5,.5]') + self.sigma.setText('1') + + + def rec_3_default(self): + self.phase_triggers.setText('(0,1,20)') + self.phase_min.setText('-1.57') + self.phase_max.setText('1.57') + + + def rec_4_default(self): + self.pcdi_triggers.setText('(50,50)') + self.pcdi_type.setText('LUCY') + self.pcdi_iter.setText('20') + self.pcdi_normalize.setText('True') + self.pcdi_roi.setText('[32,32,16]') + + + def rec_5_default(self): + self.twin_triggers.setText('(2)') + + + def rec_6_default(self): + self.average_triggers.setText('(-400,1)') + + +def main(): + app = QApplication(sys.argv) + ex = cdi_conf() + ex.show() + sys.exit(app.exec_()) + + +if __name__ == '__main__': + main() \ No newline at end of file diff --git a/34id/prep.py b/34id/prep.py new file mode 100644 index 0000000..70733af --- /dev/null +++ b/34id/prep.py @@ -0,0 +1,212 @@ +import os +import shutil +import numpy as np +import tifffile as tif +import copy +import scipy.fftpack as sf + +def parse_spec(specfile, scan): + # set detector to default (kind of hack) + detector = '34idcTIM2' + # extract parameters from spec file + f = open(specfile) + start = False + for line in f: + if line.startswith('#S %d '%scan): + start = True + l = line.split() + dth = (float(l[5])-float(l[4]))/int(l[6]) + continue + if not start: + continue + if line.startswith('#P0 '): + l = line.split() + delta = float(l[1]) + gamma = float(l[6]) + elif line.startswith('#P3 '): + l = line.split() + arm = float(l[3])*1.E-3 + energy = float(l[6]) + lam = 12.398 / energy / 10 + elif line.startswith('#UIMDET'): + l = line.split() + detector = l[1] + elif line.startswith('#UIMR5'): + l = line.split() + det_area = l[1:-1] + det_area1 = int(det_area[0]), int(det_area[1]) + det_area2 = int(det_area[2]), int(det_area[3]) + if line.startswith('#L '): + break + f.close() + return dth, delta, gamma, arm, lam, detector, det_area1, det_area2 + + +def set_disp_conf(dth, delta, gamma, arm, lam, detector, disp_dir): + # pixel size by detector + pixel = {'34idcTIM2':'[55.0e-6, 55.0e-6]'} + + # create display configuration file from the parsed parameters + disp_conf_file = os.path.join(disp_dir, 'config_disp') + with open('temp', 'a') as temp: + with open(disp_conf_file, 'r') as f: + for line in f: + if line.startswith('crop'): + temp.write(line + '\n') + f.close() + temp.write('lamda = ' + str(lam) + '\n') + temp.write('delta = ' + str(delta) + '\n') + temp.write('gamma = ' + str(gamma) + '\n') + temp.write('arm = ' + str(arm) + '\n') + temp.write('dth = ' + str(dth) + '\n') + temp.write('pixel = ' + pixel[detector] + '\n') + temp.close() + shutil.move('temp', disp_conf_file) + + +def get_normalized_slice(file, dark, white): + slice = np.transpose(tif.TiffFile(file).asarray()) + slice = np.where(dark > 5, 0, slice) #Ignore cosmic rays + # here would be code for correction for dead time + slice = slice/white + slice *= 1e5 #Some medium value + slice = np.where(np.isnan(slice), 0, slice) + return slice + + +def read_scan(dir, dark, white): + slices = 0 + files = [] + for file in os.listdir(dir): + if file.endswith('tif') or file.endswith('tiff'): + slices += 1 + files.append(os.path.join(dir, file)) + + # look at slice0 to find out shape + slice0 = get_normalized_slice(files[0], dark, white) + shape = (slice0.shape[0], slice0.shape[1], slices) + arr = np.zeros(shape, dtype=slice0.dtype) + arr[:,:,0] = slice0 + + for i in range (1, len(files)): + slice = get_normalized_slice(files[i], dark, white) + arr[:,:,i] = slice + return arr + + +def shift(arr, shifty): + # pass the FT of the fftshifted array you want to shift + # you get back the actual array, not the FT. + dims = arr.shape + # scipy does normalize ffts! + ftarr = sf.fftn(arr) + r=[] + for d in dims: + r.append(slice(int(np.ceil(-d/2.)), int(np.ceil(d/2.)), None)) + idxgrid = np.mgrid[r] + for d in range(len(dims)): + ftarr *= np.exp(-1j*2*np.pi*shifty[d]*sf.fftshift(idxgrid[d])/float(dims[d])) + + shiftedarr = sf.ifftn(ftarr) + return shiftedarr + + +def combine_part(part_f, slice_sum, refpart, part): + # get cross correlation and pixel shift + cross_correlation = sf.ifftn(refpart*np.conj(part_f)) + corelated = np.array(cross_correlation.shape) + amp = np.abs(cross_correlation) + intshift = np.unravel_index(amp.argmax(), corelated) + shifted = np.array(intshift) + pixelshift = np.where(shifted>=corelated/2, shifted-corelated, shifted) + temp = shift(part, pixelshift) + return slice_sum + shift(part, pixelshift) + + +def prep_data(scan, det_area1, det_area2, data_dir, prep_data_dir, darkfile, whitefile): + # build sub-directories map + dirs = {} + for name in os.listdir(data_dir): + subdir = os.path.join(data_dir, name) + if os.path.isdir(subdir): + try: + index = int(name[-4:]) + dirs[index] = subdir + except: + continue + + # find the darkfield array + dark_full = tif.imread(darkfile).astype(float) + dark_full = np.transpose(dark_full) #Ross' arrays are transposed from imread + dark = dark_full[slice(det_area1[0], det_area1[1]), slice(det_area2[0], det_area2[1])] #If fourth quad only + + # find the whitefield array + white_full = tif.imread(whitefile).astype(float) + white_full = np.transpose(white_full) #Ross' arrays are transposed from imread + white = white_full[slice(det_area1[0], det_area1[1]), slice(det_area2[0], det_area2[1])] #crop to the image + white = np.where(white==0, 1e20, white) #Some large value + + if len(scan) == 1: + arr = read_scan(dirs[scan[0]], dark, white) + else: + refpart = None + for set_no in range(scan[0], scan[1]+1): + try: + #this will load scans from one directory into an array + part = read_scan(dirs[set_no], dark, white) + if refpart is None: + # make the first part a reference + slice_sum = np.abs(copy.deepcopy(part)) + refpart = sf.fftn(part) + else: + # add the arrays together + part_f = sf.fftn(part) + slice_sum = combine_part(part_f, slice_sum, refpart, part) + except KeyError: + pass + arr = np.transpose(np.abs(slice_sum).astype(np.int32)) + + # if the full sensor was used for the image (i.e. the data size is 512x512) + # the quadrants need to be shifted + if det_area1[0] == 0 and det_area1[1] == 512 and det_area1[0] == 0 and det_area2[1] == 512: + b = np.zeros((arr.shape[0],517,516),float) + b[:,:256,:256] = arr[:,:256,:256] #Quad top left unchanged + b[:,:256,260:] = arr[:,:256,256:] #Quad top right moved 4 right + b[:,261:,:256] = arr[:,256:,:256] #Quad bot left moved 6 down + b[:,261:,260:] = arr[:,256:,256:] #Quad bot right + else: + b = arr + + if len(scan) == 1: + data_file = str(scan)+'_data' + else: + data_file = str(scan[0])+'-'+str(scan[1])+'_data' + data_file = os.path.join(prep_data_dir, data_file) + tif.imsave(data_file, b.astype(np.int32)) + + +def prepare(working_dir, id, scan, data_dir, specfile, darkfile, whitefile): + # assuming all parameters are validated + #create directory to save prepared data prep_result_dir/id + working_dir = os.path.join(working_dir, id) + if not os.path.exists(working_dir): + os.makedirs(working_dir) + + prep_data_dir = os.path.join(working_dir, 'prep') + if not os.path.exists(prep_data_dir): + os.makedirs(prep_data_dir) + + conf_dir = os.path.join(working_dir, 'conf') + if not os.path.exists(conf_dir): + os.makedirs(conf_dir) + + scan_end = scan[len(scan)-1] + dth, delta, gamma, arm, lam, detector, det_area1, det_area2 = parse_spec(specfile, scan_end) + + # disp prep + set_disp_conf(dth, delta, gamma, arm, lam, detector, conf_dir) + + # data prep + prep_data(scan, det_area1, det_area2, data_dir, prep_data_dir, darkfile, whitefile) + +#prepare('/local/bfrosik/cdi/prep', 'test', 'DET1', [38,39], '/net/s34data/export/34idc-data/2018/Startup18-2/ADStartup18-2a', '/net/s34data/export/34idc-data/2018/Startup18-2/Startup18-2a.spec') \ No newline at end of file From 1b86918907cec875590f417b78f9ca65ebd6790c Mon Sep 17 00:00:00 2001 From: bfrosik Date: Thu, 23 Aug 2018 15:49:51 -0500 Subject: [PATCH 087/336] Introduced new scheme to parse triggers and to run the reconstruction as a sequence of functin pointers. --- include/common.h | 6 +++--- init.sh | 3 ++- src_cpp/worker.cpp | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/include/common.h b/include/common.h index 93a5812..2e8c1b8 100644 --- a/include/common.h +++ b/include/common.h @@ -7,7 +7,7 @@ See LICENSE file. #ifndef common_h #define common_h -// defines the type of the data; can be float or double. The double will get replaced when running initializing script. +// defines the type of the data; can be float or double. The def_type will get replaced when running initializing script. typedef def_type d_type; const int nD = 3; @@ -76,13 +76,13 @@ const flow_item_def flow_def[] = { flow_item_def("resolution_trigger", FIRST_RUN_ONLY, "ResolutionTrigger"), flow_item_def("amp_support_trigger", MODIFIED_AFTER_FIRST, "SupportTrigger"), flow_item_def("phase_support_trigger", FIRST_RUN_ONLY, "PhaseTrigger"), - flow_item_def("to_real_space", NOT_TRIGGER, "ToReal"), + flow_item_def("to_reciprocal_space", NOT_TRIGGER, "ToReciprocal"), flow_item_def("pcdi_trigger", MODIFIED_AFTER_FIRST, "PcdiTrigger"), flow_item_def("pcdi", CUSTOM, "Pcdi"), flow_item_def("no_pcdi", CUSTOM, "NoPcdi"), flow_item_def("garbage_trigger", FOR_ALL_RUNS, "Gc"), flow_item_def("set_prev_pcdi_trigger", CUSTOM, "SetPcdiPrevious"), - flow_item_def("to_reciprocal_space", NOT_TRIGGER, "ToReciprocal"), + flow_item_def("to_direct_space", NOT_TRIGGER, "ToDirect"), flow_item_def("algorithm", NOT_TRIGGER, "RunAlg"), flow_item_def("twin_trigger", FIRST_RUN_ONLY, "Twin"), flow_item_def("average_trigger", FOR_ALL_RUNS, "Average") diff --git a/init.sh b/init.sh index 19ddb66..150f8c6 100644 --- a/init.sh +++ b/init.sh @@ -9,13 +9,14 @@ sed -i 's?'$AF'?'$af_dir'?g' src_py/cyth/*.pyx echo -n "enter LibConfig installation directory > " read lc_dir -#lc_dir=/local/bfrosik/libconfig-1.5 +#lc_dir=/local/libconfig LC='LC_DIR' sed -i 's?'$LC'?'$lc_dir'?g' src_py/cyth/*.pyx echo -n "enter cuda installation directory > " read cuda_dir +#export LD_LIBRARY_PATH=local/libconfig/lib:/usr/local/lib:/local/af/lib export LD_LIBRARY_PATH=$lc_dir/lib:/usr/local/lib:$af_dir/lib/:$cuda_dir/lib64:$cuda_dir/nvvm/lib64 echo -n "enter data type (float/double) > " diff --git a/src_cpp/worker.cpp b/src_cpp/worker.cpp index f1a061f..016751e 100644 --- a/src_cpp/worker.cpp +++ b/src_cpp/worker.cpp @@ -141,7 +141,7 @@ void Reconstruction::Iterate() for (int i=0; i*iter_flow[current_iteration][i])(); } } From 87fba9e402df1208cc82beb1a8141a9d7793d24a Mon Sep 17 00:00:00 2001 From: bfrosik Date: Tue, 28 Aug 2018 12:33:00 -0500 Subject: [PATCH 088/336] Introduced new scheme to parse triggers and to run the reconstruction as a sequence of functin pointers. --- 34id/cdi_conf_window.py | 81 +++++++++++++++++------------ 34id/prep.py | 19 ++++--- include/common.h | 2 +- src_cpp/parameters.cpp | 1 - src_py/controller/reconstruction.py | 26 +++++---- 5 files changed, 77 insertions(+), 52 deletions(-) diff --git a/34id/cdi_conf_window.py b/34id/cdi_conf_window.py index 54f212e..e1d77ff 100644 --- a/34id/cdi_conf_window.py +++ b/34id/cdi_conf_window.py @@ -205,12 +205,11 @@ def set_data_dir(self): def prepare(self): scan = str(self.scan_widget.text()) - - if not self.main_win.working_dir is None and \ - not self.main_win.id is None and\ - not scan is None and \ - not self.data_dir is None and \ - not self.specfile is None: + if self.main_win.working_dir is not None and \ + self.main_win.id is not None and\ + scan is not None and \ + self.data_dir is not None and \ + self.specfile is not None: try: # after checking that scan is entered convert it to list of int scan_range = scan.split('-') @@ -225,7 +224,7 @@ def prepare(self): def config_data(self): conf_map = {} - data_out_dir = self.main_win.working_dir + '/' + self.main_win.id + '/data' + data_out_dir = '"' + self.main_win.working_dir + '/' + self.main_win.id + '/data' + '"' conf_map['data_dir'] = data_out_dir conf_map['aliens'] = str(self.aliens.text()) conf_map['amp_threshold'] = str(self.amp_threshold.text()) @@ -233,14 +232,12 @@ def config_data(self): conf_map['center_shift'] = str(self.center_shift.text()) conf_map['adjust_dimensions'] = str(self.adjust_dimensions.text()) - data_conf_file = os.path.join(self.main_win.working_dir, self.main_win.id, 'conf', 'config_data') - - self.create_config(data_conf_file, conf_map) + self.create_config('config_data', conf_map) def config_rec(self): conf_map = {} - conf_map['data_dir'] = self.main_win.working_dir + '/' + self.main_win.id + '/data' + conf_map['data_dir'] = '"' + self.main_win.working_dir + '/' + self.main_win.id + '/data' + '"' conf_map['save_dir'] = str(self.save_dir.text()) conf_map['threads'] = str(self.threads.text()) conf_map['device'] = str(self.device.text()) @@ -284,13 +281,20 @@ def config_rec(self): if self.features.active_6.isChecked(): conf_map['avarage_trigger'] = str(self.features.average_triggers.text()) - rec_conf_file = os.path.join(self.main_win.working_dir, self.main_win.id, 'conf', 'config_rec') - self.create_config(rec_conf_file, conf_map) + self.create_config('config_rec', conf_map) def create_config(self, conf_file, conf_map): valid = True - with open('temp', 'a') as f: + working_dir = os.path.join(self.main_win.working_dir, self.main_win.id) + if not os.path.exists(working_dir): + os.makedirs(working_dir) + conf_dir = os.path.join(working_dir, 'conf') + if not os.path.exists(conf_dir): + os.makedirs(conf_dir) + conf_file = os.path.join(conf_dir, conf_file) + temp_file = os.path.join(self.main_win.working_dir, self.main_win.id, 'conf', 'temp') + with open(temp_file, 'a') as f: for key in conf_map: value = conf_map[key] if len(value) == 0: @@ -300,7 +304,7 @@ def create_config(self, conf_file, conf_map): f.write(key + ' = ' + conf_map[key] + '\n') f.close() if valid: - shutil.move('temp', conf_file) + shutil.move(temp_file, conf_file) def config_disp(self): @@ -308,17 +312,27 @@ def config_disp(self): print ('crop not configured') return + working_dir = os.path.join(self.main_win.working_dir, self.main_win.id) + if not os.path.exists(working_dir): + os.makedirs(working_dir) + conf_dir = os.path.join(working_dir, 'conf') + if not os.path.exists(conf_dir): + os.makedirs(conf_dir) disp_conf_file = os.path.join(self.main_win.working_dir, self.main_win.id, 'conf', 'config_disp') - with open('temp', 'a') as temp: - with open(disp_conf_file, 'r') as f: - for line in f: - if not line.startswith('crop'): - temp.write(line) - f.close() + temp_file = os.path.join(self.main_win.working_dir, self.main_win.id, 'conf', 'temp') + with open(temp_file, 'a') as temp: + try: + with open(disp_conf_file, 'r') as f: + for line in f: + if not line.startswith('crop'): + temp.write(line) + f.close() + except: + pass temp.write('crop = ' + str(self.crop.text())) temp.close() - shutil.move('temp', disp_conf_file) + shutil.move(temp_file, disp_conf_file) def rec_default(self): @@ -326,11 +340,11 @@ def rec_default(self): len(self.main_win.working_dir) == 0 or len(self.main_win.id) == 0: print ('Working Directory or Reconstruction ID not configured') else: - self.save_dir.setText(str(self.main_win.working_dir) + '/' + str(self.main_win.id) + '/results') + self.save_dir.setText('"' + str(self.main_win.working_dir) + '/' + str(self.main_win.id) + '/results' + '"') self.threads.setText('1') - self.device.setText('3') - self.gc.setText('1000') - self.alg_seq.setText("((5,('ER',20),('HIO',180)),(1,('ER',40),('HIO',160)),(4,('ER',20),('HIO',180)))") + self.device.setText('(3)') + self.gc.setText('(1000)') + self.alg_seq.setText('((5,("ER",20),("HIO",180)),(1,("ER",40),("HIO",160)),(4,("ER",20),("HIO",180)))') self.beta.setText('.9') self.cont.setChecked(False) @@ -595,16 +609,17 @@ def display(self, i): def rec_1_default(self): #TODO add to accept fractions in trigger, so the default will be (.5,1) - self.res_triggers.setText('(1000, 1)') - self.sigma_range.setText('2') - self.det_range.setText('.7') + self.res_triggers.setText('(0, 1, 500)') + self.sigma_range.setText('(2.0)') + self.det_range.setText('(.7)') def rec_2_default(self): self.support_triggers.setText('(1,1)') - self.support_type.setText('GAUSS') + self.support_type.setText('"GAUSS"') self.support_area.setText('[.5,.5,.5]') - self.sigma.setText('1') + self.sigma.setText('1.0') + self.threshold.setText('0.1') def rec_3_default(self): @@ -615,9 +630,9 @@ def rec_3_default(self): def rec_4_default(self): self.pcdi_triggers.setText('(50,50)') - self.pcdi_type.setText('LUCY') + self.pcdi_type.setText('"LUCY"') self.pcdi_iter.setText('20') - self.pcdi_normalize.setText('True') + self.pcdi_normalize.setText('true') self.pcdi_roi.setText('[32,32,16]') diff --git a/34id/prep.py b/34id/prep.py index 70733af..9fd3647 100644 --- a/34id/prep.py +++ b/34id/prep.py @@ -47,13 +47,18 @@ def set_disp_conf(dth, delta, gamma, arm, lam, detector, disp_dir): pixel = {'34idcTIM2':'[55.0e-6, 55.0e-6]'} # create display configuration file from the parsed parameters + temp_file = os.path.join(disp_dir, 'temp') disp_conf_file = os.path.join(disp_dir, 'config_disp') - with open('temp', 'a') as temp: - with open(disp_conf_file, 'r') as f: - for line in f: - if line.startswith('crop'): - temp.write(line + '\n') - f.close() + with open(temp_file, 'a') as temp: + try: + with open(disp_conf_file, 'r') as f: + for line in f: + if line.startswith('crop'): + temp.write(line + '\n') + f.close() + except: + pass + temp.write('lamda = ' + str(lam) + '\n') temp.write('delta = ' + str(delta) + '\n') temp.write('gamma = ' + str(gamma) + '\n') @@ -61,7 +66,7 @@ def set_disp_conf(dth, delta, gamma, arm, lam, detector, disp_dir): temp.write('dth = ' + str(dth) + '\n') temp.write('pixel = ' + pixel[detector] + '\n') temp.close() - shutil.move('temp', disp_conf_file) + shutil.move(temp_file, disp_conf_file) def get_normalized_slice(file, dark, white): diff --git a/include/common.h b/include/common.h index 2e8c1b8..02138ac 100644 --- a/include/common.h +++ b/include/common.h @@ -8,7 +8,7 @@ See LICENSE file. #define common_h // defines the type of the data; can be float or double. The def_type will get replaced when running initializing script. -typedef def_type d_type; +typedef double d_type; const int nD = 3; diff --git a/src_cpp/parameters.cpp b/src_cpp/parameters.cpp index 88ec5fa..fd97195 100644 --- a/src_cpp/parameters.cpp +++ b/src_cpp/parameters.cpp @@ -228,7 +228,6 @@ Params::Params(const char* config_file, std::vector data_dim, bool first) if (tmp.getLength() == 3) { int conf_stop_iter = tmp[2]; - // the line below handler negative number if (conf_stop_iter < number_iterations) { conf_stop_iter = (conf_stop_iter + number_iterations) % number_iterations; diff --git a/src_py/controller/reconstruction.py b/src_py/controller/reconstruction.py index 40a1337..acebe74 100644 --- a/src_py/controller/reconstruction.py +++ b/src_py/controller/reconstruction.py @@ -143,16 +143,22 @@ def reconstruction(proc, data, conf, config_map): threads = 1 # if continue, find the previous results from the continue_dir - if config_map.cont: - try: - continue_dir = config_map.continue_dir - if not continue_dir.endswith('/'): - continue_dir = continue_dir + '/' - except: - print ("continue_dir not configured") - return None - previous = read_results(continue_dir) - else: + try: + if config_map.cont: + try: + continue_dir = config_map.continue_dir + if not continue_dir.endswith('/'): + continue_dir = continue_dir + '/' + except: + print ("continue_dir not configured") + return None + previous = read_results(continue_dir) + else: + previous = [] + for _ in range(threads): + previous.append((None, None, None)) + except: + # cont not defined, defaults to False previous = [] for _ in range(threads): previous.append((None, None, None)) From 9d55e5b8c719ebe47cf8d776938ad5751e809361 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Wed, 29 Aug 2018 17:04:40 -0500 Subject: [PATCH 089/336] Added code to run from command line. It will include the prep, setting config to default, and using sh files, to set the env variables and run. --- 34id/prep.py | 123 ++++++++++++++++++++++++++++++++++++++++++++++- run_disp.sh | 7 +++ run_rec.sh | 11 +++++ src_cpp/util.cpp | 83 -------------------------------- 4 files changed, 140 insertions(+), 84 deletions(-) create mode 100644 run_disp.sh create mode 100644 run_rec.sh diff --git a/34id/prep.py b/34id/prep.py index 9fd3647..0153b96 100644 --- a/34id/prep.py +++ b/34id/prep.py @@ -214,4 +214,125 @@ def prepare(working_dir, id, scan, data_dir, specfile, darkfile, whitefile): # data prep prep_data(scan, det_area1, det_area2, data_dir, prep_data_dir, darkfile, whitefile) -#prepare('/local/bfrosik/cdi/prep', 'test', 'DET1', [38,39], '/net/s34data/export/34idc-data/2018/Startup18-2/ADStartup18-2a', '/net/s34data/export/34idc-data/2018/Startup18-2/Startup18-2a.spec') \ No newline at end of file +#prepare('/local/bfrosik/cdi/test', 'A', 'DET1', [38,39], '/net/s34data/export/34idc-data/2018/Startup18-2/ADStartup18-2a', '/net/s34data/export/34idc-data/2018/Startup18-2/Startup18-2a.spec') + +def create_config(conf_dir, conf_file, conf_map): + valid = True + temp_file = os.path.join(conf_dir, 'temp') + with open(temp_file, 'a') as f: + for key in conf_map: + value = conf_map[key] + if len(value) == 0: + print('the ' + key + ' is not configured') + valid = False + break + f.write(key + ' = ' + conf_map[key] + '\n') + f.close() + if valid: + shutil.move(temp_file, conf_file) + + +def config_data(working_dir, id): + conf_map = {} + conf_map['data_dir'] = '"' + working_dir + '/' + id + '/data"' + conf_map['aliens'] = '(0,0,0,0,0,0), (0,0,0,0,0,0)' + conf_map['amp_threshold'] = '(2.0)' + conf_map['binning'] = '((1,1,1))' + conf_map['center_shift'] = '((0,0,0))' + conf_map['adjust_dimensions'] = '((-13, -13, -65, -65, -65, -65), (-7, -13, -55, -65, -55, -65))' + + working_dir = os.path.join(working_dir, id) + if not os.path.exists(working_dir): + os.makedirs(working_dir) + conf_dir = os.path.join(working_dir, 'conf') + if not os.path.exists(conf_dir): + os.makedirs(conf_dir) + conf_file = os.path.join(conf_dir, 'config_data') + create_config(conf_dir, conf_file, conf_map) + + +def config_rec(working_dir, id): + conf_map = {} + conf_map['data_dir'] = '"' + working_dir + '/' + id + '/data"' + conf_map['save_dir'] = '"' + working_dir + '/' + id + '/results"' + conf_map['threads'] = '(1)' + conf_map['device'] = '(3)' + conf_map['garbage_trigger'] = '(1000)' + conf_map['algorithm_sequence'] = '((5,("ER",20),("HIO",180)),(1,("ER",40),("HIO",160)),(4,("ER",20),("HIO",180)))' + conf_map['beta'] = ('.9') + conf_map['resolution_trigger'] = '(0, 1, 500)' + conf_map['iter_res_sigma_range'] = '(2.0)' + conf_map['iter_res_det_range'] = '(.7)' + conf_map['amp_support_trigger'] = '(1,1)' + conf_map['support_type'] = '"GAUSS"' + conf_map['support_threshold'] = '0.1' + conf_map['support_sigma'] = '1.0' + conf_map['support_area'] = '[.5,.5,.5]' + conf_map['phase_support_trigger'] = '(0,1,20)' + conf_map['phase_min'] = '-1.57' + conf_map['phase_max'] = '1.57' + conf_map['pcdi_trigger'] = '(50,50)' + conf_map['partial_coherence_type'] = '"LUCY"' + conf_map['partial_coherence_iteration_num'] = '20' + conf_map['partial_coherence_normalize'] = 'true' + conf_map['partial_coherence_roi'] = '[32,32,16]' + conf_map['twin_trigger'] = '2' + conf_map['avarage_trigger'] = '(-400,1)' + + working_dir = os.path.join(working_dir, id) + if not os.path.exists(working_dir): + os.makedirs(working_dir) + conf_dir = os.path.join(working_dir, 'conf') + if not os.path.exists(conf_dir): + os.makedirs(conf_dir) + conf_file = os.path.join(conf_dir, 'config_rec') + create_config(conf_dir, conf_file, conf_map) + + +def config_disp(working_dir, id): + working_dir = os.path.join(working_dir, id) + if not os.path.exists(working_dir): + os.makedirs(working_dir) + conf_dir = os.path.join(working_dir, 'conf') + if not os.path.exists(conf_dir): + os.makedirs(conf_dir) + disp_conf_file = os.path.join(conf_dir, 'config_disp') + temp_file = os.path.join(conf_dir, 'temp') + with open(temp_file, 'a') as temp: + try: + with open(disp_conf_file, 'r') as f: + for line in f: + if not line.startswith('crop'): + temp.write(line) + f.close() + except: + pass + + temp.write('crop = ' + '(.5,.5,.5)') + temp.close() + shutil.move(temp_file, disp_conf_file) + + +def create_default_config(working_dir, id): + # create config_data + config_data(working_dir, id) + + # create config_rec + config_rec(working_dir, id) + + # add to config_disp + config_disp(working_dir, id) + + + +# prepare('/local/bfrosik/cdi/test', +# 'A', +# [48,60], +# '/net/s34data/export/34idc-data/2018/Startup18-2/ADStartup18-2a', +# '/net/s34data/export/34idc-data/2018/Startup18-2/Startup18-2a.spec', +# '/net/s34data/export/34idc-work/2018/Startup18-2/dark.tif', +# '/net/s34data/export/34idc-work/2018/Startup18-2/CelaWhiteField.tif') +# create_default_config('/local/bfrosik/cdi/test', 'A') + + + diff --git a/run_disp.sh b/run_disp.sh new file mode 100644 index 0000000..7a1d878 --- /dev/null +++ b/run_disp.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +p=$PATH +p=${p//"anaconda3"/"anaconda2"} +export PATH=$p + +python run_disp.py 'config_disp' \ No newline at end of file diff --git a/run_rec.sh b/run_rec.sh new file mode 100644 index 0000000..11d164a --- /dev/null +++ b/run_rec.sh @@ -0,0 +1,11 @@ +#!/bin/sh + + +export LD_LIBRARY_PATH=/usr/local/lib:/local/libconfig/lib:/local/af/lib +#export LD_LIBRARY_PATH=/home/beams/CXDUSER/bfrosik/libconfig/lib:/usr/local/lib:/home/beams/CXDUSER/bfrosik/ArrayFire-v3.4.2/lib/:/usr/local/cuda-8.0/lib64:/usr/local/cuda-8.0/nvvm/lib64 + +p=$PATH +p=${p//"anaconda2"/"anaconda3"} +export PATH=$p + +python run_rec.py "opencl" "config_rec" \ No newline at end of file diff --git a/src_cpp/util.cpp b/src_cpp/util.cpp index c3dcaf4..77cf3b8 100644 --- a/src_cpp/util.cpp +++ b/src_cpp/util.cpp @@ -66,11 +66,6 @@ af::array Utils::CropCenter(af::array arr, af::dim4 roi) return arr(seq(beginning[0], ending[0]-1), seq(beginning[1], ending[1]-1), seq(beginning[2], ending[2]-1), seq(beginning[3], ending[3]-1)); } -//af::array Utils::fftshift(af::array arr) -//{ -// return af::shift(arr, int(arr.dims()[0]/2-1), int(arr.dims()[1]/2-1), int(arr.dims()[2]/2-1), int(arr.dims()[3]/2)); -//} - af::array Utils::fftshift(af::array arr) { return af::shift(arr, ceil(arr.dims()[0]/2)-1, ceil(arr.dims()[1]/2)-1, ceil(arr.dims()[2]/2)-1, ceil(arr.dims()[3]/2)-1); @@ -106,50 +101,6 @@ af::array Utils::ifft(af::array arr) } } -//af::array Utils::CropCenterZeroPad(af::array arr, int * roi) -//{ -// dim4 dims = arr.dims(); -// // Find the coordinates sub-array of the given dimensions in the center of array arr -// int x0 = int(dims[0]/2 - roi[0]/2); -// int x1 = x0 + roi[0]; -// int y0 = int(dims[1]/2 - roi[1]/2); -// int y1 = y0 + roi[1]; -// int z0 = int(dims[2]/2 - roi[2]/2); -// int z1 = z0 + roi[2]; -// -// af::array cropped = arr.copy() *0; -// // select the subarray -// cropped(seq(x0 + 1, x1), seq(y0 + 1, y1), seq(z0 + 1, z1)) = arr(seq(x0 + 1, x1), seq(y0 + 1, y1), seq(z0 + 1, z1)); -// return cropped; -// -//} - -//af::array Utils::CropRoi(af::array arr, int * roi) -//{ -// return arr(seq(0, roi[0]-1), seq(0, roi[1]-1), seq(0, roi[2]-1)); -//} - -//af::array Utils::CenterMax(af::array arr, int * kernel) -//{ -// printf("in CenterMax dims %i %i %i %i\n", arr.dims()[0], arr.dims()[1], arr.dims()[2], arr.dims()[0]*arr.dims()[1]*arr.dims()[2]); -// //find indexes of max -// double *arr_values = abs(arr).host(); -// std::vector v(arr_values, arr_values + arr.elements()); -// std::vector::iterator result = std::max_element(v.begin(), v.end()); -// int max_offset = result - v.begin(); -// printf("maximum value, %i %f\n", max_offset, v[max_offset]); -// delete [] arr_values; -// int x_max = max_offset % arr.dims()[0]; -// int y_max = max_offset / arr.dims()[0] % arr.dims()[1]; -// int z_max = max_offset/ (arr.dims()[0] * arr.dims()[1]); -// printf("max indexes %i %i %i\n", x_max, y_max, z_max); -// -// -// af::array shifted = af::shift(arr, arr.dims()[0]/2-x_max, arr.dims()[1]/2-y_max, arr.dims()[2]/2-z_max ); -// return shifted; -// -//} -// void Utils::GetMaxIndices(af::array arr, int* indices) { //find indexes of max @@ -165,40 +116,6 @@ void Utils::GetMaxIndices(af::array arr, int* indices) printf("offset, ind1, ind2 ind3 %i %i %i %i\n", max_offset, indices[0], indices[1], indices[2]); } -//af::array Utils::CenterMax(af::array arr) -//{ -// printf("in CenterMax dims %i %i %i\n", arr.dims()[0], arr.dims()[1], arr.dims()[2]); -// //find indexes of max -// d_type *arr_values = abs(arr).host(); -// std::vector v(arr_values, arr_values + arr.elements()); -// std::vector::iterator result = std::max_element(v.begin(), v.end()); -// int max_offset = result - v.begin(); -// printf("maximum offset, value, %i %f\n", max_offset, v[max_offset]); -// delete [] arr_values; -// int x_max = max_offset % arr.dims()[0]; -// int y_max = max_offset / arr.dims()[0] % arr.dims()[1]; -// int z_max = max_offset/ (arr.dims()[0] * arr.dims()[1]); -// printf("CenterMax max indexes %i %i %i\n", x_max, y_max, z_max); -// -// return af::shift(arr, arr.dims()[0]/2 -x_max, arr.dims()[1]-y_max, arr.dims()[2]-z_max );; -//} - -//af::array Utils::ShiftMax(af::array arr, int * kernel) -//{ -// //find indexes of max -// d_type *arr_values = abs(arr).host(); -// std::vector v(arr_values, arr_values + arr.elements()); -// std::vector::iterator result = std::max_element(v.begin(), v.end()); -// int max_offset = result - v.begin(); -// printf("maximum value, %i %f\n", max_offset, v[max_offset]); -// delete [] arr_values; -// int x_max = max_offset % arr.dims()[0]; -// int y_max = max_offset / arr.dims()[0] % arr.dims()[1]; -// int z_max = max_offset/ (arr.dims()[0] * arr.dims()[1]); -// printf("ShiftMax max indexes %i %i %i\n", x_max, y_max, z_max); -// -// return arr; -//} af::array Utils::ReverseGaussDistribution(af::dim4 data_dim, d_type * sgma, int alpha) { From 3328ca66bc4cfe7dfa4922e80f538e6e56b48b2b Mon Sep 17 00:00:00 2001 From: bfrosik Date: Fri, 31 Aug 2018 16:06:19 -0500 Subject: [PATCH 090/336] Added how_to_run text file and modified the .sh files. --- 34id/prep.py | 9 ++++---- how_to_run | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++ run_disp.sh | 3 ++- run_rec.sh | 3 ++- 4 files changed, 68 insertions(+), 6 deletions(-) create mode 100644 how_to_run diff --git a/34id/prep.py b/34id/prep.py index 0153b96..1a7355d 100644 --- a/34id/prep.py +++ b/34id/prep.py @@ -182,10 +182,11 @@ def prep_data(scan, det_area1, det_area2, data_dir, prep_data_dir, darkfile, whi else: b = arr - if len(scan) == 1: - data_file = str(scan)+'_data' - else: - data_file = str(scan[0])+'-'+str(scan[1])+'_data' + # if len(scan) == 1: + # data_file = str(scan)+'_data' + # else: + # data_file = str(scan[0])+'-'+str(scan[1])+'_data' + data_file = 'prep_data' data_file = os.path.join(prep_data_dir, data_file) tif.imsave(data_file, b.astype(np.int32)) diff --git a/how_to_run b/how_to_run new file mode 100644 index 0000000..9cb6d95 --- /dev/null +++ b/how_to_run @@ -0,0 +1,59 @@ +To visualize reconstructed image file from data the following steps are needed: + +I. Beamline specific. We support solution for the APS beamline 34-ID. + 1. From data collected by detector create 3D tif file. + 2. From experiment record create configuration file for processing display. +II. For any beamline. + 3. Create configuration files. + 4. Prepare the 3D tif data file for reconstruction according to configuration. + This will remove aliens, add padding, etc. + 5. Run reconstruction according to configuration. + 6. Run display processing according to configuration. + +How to run using command lines only: +------------------------------------ +1. python prepare(working_dir, + experiment_id, + scans, + detector_data_dir, + spec_file, + dark_file, + white_file) +2*. python create_default_config(working_dir, + experiment_id) +3*. edit configuration files (important for the config_data): + //conf/config_data + //conf/config_rec + //conf/config_disp +4. python run_data.py "//prep/prep_data" "//conf/config_data" +5. source run_rec.sh "//conf/config_rec" +6. source run_disp.sh "//conf/config_disp" +7. the image.vtk file will be in "//results" directory + +*This steps are optional, it helps with creating configuration files, but one can use +different configuration files + +example: +1. python prepare('/home/beams/CXDUSER/CDI/cdi-master/test', + 'A_48-60', + [48,60], + '/net/s34data/export/34idc-data/2018/Startup18-2/ADStartup18-2a', + '/net/s34data/export/34idc-data/2018/Startup18-2/Startup18-2a.spec', + '/net/s34data/export/34idc-work/2018/Startup18-2/dark.tif', + '/net/s34data/export/34idc-work/2018/Startup18-2/CelaWhiteField.tif') +2. python create_default_config('/home/beams/CXDUSER/CDI/cdi-master/test', 'A_48-60') +3. edit (/home/beams/CXDUSER/CDI/cdi-master/test/A_48-60/conf/config_data, + /home/beams/CXDUSER/CDI/cdi-master/test/A_48-60/conf/config_rec, + /home/beams/CXDUSER/CDI/cdi-master/test/A_48-60/conf/config_disp) if needed +4. python run_data.py '/home/beams/CXDUSER/CDI/cdi-master/test/A_48-60/prep/prep_data' '/home/beams/CXDUSER/CDI/cdi-master/test/A_48-60/conf/config_data' +5. source run_rec.sh 'cuda' '/home/beams/CXDUSER/CDI/cdi-master/test/A_48-60/conf/config_rec' +6. source run_disp.sh '/home/beams/CXDUSER/CDI/cdi-master/test/A_48-60/conf/config_disp' + +How to run using GUI and command lines: +--------------------------------------- +1. python 34id/cdi_conf_window.py (to start GUI) +2. Fill out working directory and Reconstruction ID (where the prep, and config will be created), + and run tabs in order they appear: '34ID prep', 'Data', 'Reconstruction', 'Display'. This + will create prep_data and configuration files in /conf/ directory +3. Use the configuration files when running steps 4, 5, 6. + diff --git a/run_disp.sh b/run_disp.sh index 7a1d878..333874f 100644 --- a/run_disp.sh +++ b/run_disp.sh @@ -4,4 +4,5 @@ p=$PATH p=${p//"anaconda3"/"anaconda2"} export PATH=$p -python run_disp.py 'config_disp' \ No newline at end of file +python run_disp.py $1 +#python run_disp.py "config_disp" \ No newline at end of file diff --git a/run_rec.sh b/run_rec.sh index 11d164a..facdaa9 100644 --- a/run_rec.sh +++ b/run_rec.sh @@ -8,4 +8,5 @@ p=$PATH p=${p//"anaconda2"/"anaconda3"} export PATH=$p -python run_rec.py "opencl" "config_rec" \ No newline at end of file +python run_rec.py $1 $2 +#python run_rec.py "opencl" "config_rec" \ No newline at end of file From eb0223a70a5a3c5ac10b9d7177201e9738599c91 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Wed, 12 Sep 2018 15:14:42 -0500 Subject: [PATCH 091/336] Added easy of use to the command line, added defaults, etc. Changed data.py to use only one set of parameters (as before there vere many sets that gave results, and the best result was selected) --- {34id => aps_34id}/__init__.py | 0 {34id => aps_34id}/cdi_conf_window.py | 40 ++++-- {34id => aps_34id}/prep.py | 48 ++++--- create_default_conf.py | 19 +++ how_to_run | 42 +++--- init.sh | 2 +- run_data.py | 19 +-- run_disp.py | 2 +- run_disp.sh | 6 +- run_prepare.py | 39 +++++ run_rec.py | 2 - run_rec.sh | 8 +- src_py/controller/data.py | 200 ++------------------------ src_py/controller/fast_module.py | 2 +- 14 files changed, 177 insertions(+), 252 deletions(-) rename {34id => aps_34id}/__init__.py (100%) rename {34id => aps_34id}/cdi_conf_window.py (94%) rename {34id => aps_34id}/prep.py (90%) create mode 100644 create_default_conf.py create mode 100644 run_prepare.py diff --git a/34id/__init__.py b/aps_34id/__init__.py similarity index 100% rename from 34id/__init__.py rename to aps_34id/__init__.py diff --git a/34id/cdi_conf_window.py b/aps_34id/cdi_conf_window.py similarity index 94% rename from 34id/cdi_conf_window.py rename to aps_34id/cdi_conf_window.py index e1d77ff..c53f1cc 100644 --- a/34id/cdi_conf_window.py +++ b/aps_34id/cdi_conf_window.py @@ -172,6 +172,8 @@ def tab4UI(self): layout = QFormLayout() self.crop = QLineEdit() layout.addRow("crop", self.crop) + self.save_disp_dir = QLineEdit() + layout.addRow("save display dir", self.save_disp_dir) self.config_disp_button = QPushButton('update config_disp', self) layout.addWidget(self.config_disp_button) self.tab4.setLayout(layout) @@ -226,11 +228,27 @@ def config_data(self): conf_map = {} data_out_dir = '"' + self.main_win.working_dir + '/' + self.main_win.id + '/data' + '"' conf_map['data_dir'] = data_out_dir - conf_map['aliens'] = str(self.aliens.text()) - conf_map['amp_threshold'] = str(self.amp_threshold.text()) - conf_map['binning'] = str(self.binning.text()) - conf_map['center_shift'] = str(self.center_shift.text()) - conf_map['adjust_dimensions'] = str(self.adjust_dimensions.text()) + if len(self.aliens.text()) > 0: + conf_map['aliens'] = str(self.aliens.text()) + else: + print ("aliens not defined") + if len(self.amp_threshold.text()) > 0: + conf_map['amp_threshold'] = str(self.amp_threshold.text()) + else: + print ('amplitude threshold not defined. Quiting operation.') + return + if len(self.binning.text()) > 0: + conf_map['binning'] = str(self.binning.text()) + else: + print ("binning not defined") + if len(self.center_shift.text()) > 0: + conf_map['center_shift'] = str(self.center_shift.text()) + else: + print ("center shift not defined") + if len(self.adjust_dimensions.text()) > 0: + conf_map['adjust_dimensions'] = str(self.adjust_dimensions.text()) + else: + print ("adjust dimensions not defined") self.create_config('config_data', conf_map) @@ -310,12 +328,13 @@ def create_config(self, conf_file, conf_map): def config_disp(self): if len(self.crop.text()) == 0: print ('crop not configured') - return + #return working_dir = os.path.join(self.main_win.working_dir, self.main_win.id) if not os.path.exists(working_dir): os.makedirs(working_dir) conf_dir = os.path.join(working_dir, 'conf') + if not os.path.exists(conf_dir): os.makedirs(conf_dir) disp_conf_file = os.path.join(self.main_win.working_dir, self.main_win.id, 'conf', 'config_disp') @@ -324,13 +343,18 @@ def config_disp(self): try: with open(disp_conf_file, 'r') as f: for line in f: - if not line.startswith('crop'): + if not line.startswith('crop')and not line.startswith('save_dir'): temp.write(line) f.close() except: pass - temp.write('crop = ' + str(self.crop.text())) + if len(self.crop.text()) != 0: + temp.write('crop = ' + str(self.crop.text()) + '\n') + if len(self.save_disp_dir.text()) == 0: + temp.write('save_dir = ' + working_dir + '/results\n') + else: + temp.write('save_dir = ' + str(self.save_disp_dir.text()) + '\n') temp.close() shutil.move(temp_file, disp_conf_file) diff --git a/34id/prep.py b/aps_34id/prep.py similarity index 90% rename from 34id/prep.py rename to aps_34id/prep.py index 1a7355d..5737e98 100644 --- a/34id/prep.py +++ b/aps_34id/prep.py @@ -82,20 +82,32 @@ def get_normalized_slice(file, dark, white): def read_scan(dir, dark, white): slices = 0 files = [] + files_dir = {} for file in os.listdir(dir): if file.endswith('tif') or file.endswith('tiff'): - slices += 1 - files.append(os.path.join(dir, file)) + temp = file.split('.') + #it's assumed that the files end with four digits and 'tif' or 'tiff' extension + key = temp[0][-4:] + files_dir[key] = file + ordered_keys = sorted(list(files_dir.keys())) + + for key in ordered_keys: + file = files_dir[key] + slices += 1 + files.append(os.path.join(dir, file)) # look at slice0 to find out shape - slice0 = get_normalized_slice(files[0], dark, white) + n = 0 + slice0 = get_normalized_slice(files[n], dark, white) shape = (slice0.shape[0], slice0.shape[1], slices) arr = np.zeros(shape, dtype=slice0.dtype) arr[:,:,0] = slice0 - for i in range (1, len(files)): - slice = get_normalized_slice(files[i], dark, white) - arr[:,:,i] = slice + #for i in range (1, len(files)): + for file in files[1:]: + n = n + 1 + slice = get_normalized_slice(file, dark, white) + arr[:,:,n] = slice return arr @@ -124,7 +136,6 @@ def combine_part(part_f, slice_sum, refpart, part): intshift = np.unravel_index(amp.argmax(), corelated) shifted = np.array(intshift) pixelshift = np.where(shifted>=corelated/2, shifted-corelated, shifted) - temp = shift(part, pixelshift) return slice_sum + shift(part, pixelshift) @@ -186,7 +197,7 @@ def prep_data(scan, det_area1, det_area2, data_dir, prep_data_dir, darkfile, whi # data_file = str(scan)+'_data' # else: # data_file = str(scan[0])+'-'+str(scan[1])+'_data' - data_file = 'prep_data' + data_file = 'prep_data.tif' data_file = os.path.join(prep_data_dir, data_file) tif.imsave(data_file, b.astype(np.int32)) @@ -236,11 +247,11 @@ def create_config(conf_dir, conf_file, conf_map): def config_data(working_dir, id): conf_map = {} conf_map['data_dir'] = '"' + working_dir + '/' + id + '/data"' - conf_map['aliens'] = '(0,0,0,0,0,0), (0,0,0,0,0,0)' - conf_map['amp_threshold'] = '(2.0)' - conf_map['binning'] = '((1,1,1))' - conf_map['center_shift'] = '((0,0,0))' - conf_map['adjust_dimensions'] = '((-13, -13, -65, -65, -65, -65), (-7, -13, -55, -65, -55, -65))' + conf_map['aliens'] = '((0,0,0,0,0,0), (0,0,0,0,0,0))' + conf_map['amp_threshold'] = '2.0' + conf_map['binning'] = '(1,1,1)' + conf_map['center_shift'] = '(0,0,0)' + conf_map['adjust_dimensions'] = '(-4, -4, -65, -65, -65, -65)' working_dir = os.path.join(working_dir, id) if not os.path.exists(working_dir): @@ -256,8 +267,8 @@ def config_rec(working_dir, id): conf_map = {} conf_map['data_dir'] = '"' + working_dir + '/' + id + '/data"' conf_map['save_dir'] = '"' + working_dir + '/' + id + '/results"' - conf_map['threads'] = '(1)' - conf_map['device'] = '(3)' + conf_map['threads'] = '1' + conf_map['device'] = '(0)' conf_map['garbage_trigger'] = '(1000)' conf_map['algorithm_sequence'] = '((5,("ER",20),("HIO",180)),(1,("ER",40),("HIO",160)),(4,("ER",20),("HIO",180)))' conf_map['beta'] = ('.9') @@ -277,7 +288,7 @@ def config_rec(working_dir, id): conf_map['partial_coherence_iteration_num'] = '20' conf_map['partial_coherence_normalize'] = 'true' conf_map['partial_coherence_roi'] = '[32,32,16]' - conf_map['twin_trigger'] = '2' + conf_map['twin_trigger'] = '(2)' conf_map['avarage_trigger'] = '(-400,1)' working_dir = os.path.join(working_dir, id) @@ -303,13 +314,14 @@ def config_disp(working_dir, id): try: with open(disp_conf_file, 'r') as f: for line in f: - if not line.startswith('crop'): + if not line.startswith('crop')and not line.startswith('save_dir'): temp.write(line) f.close() except: pass - temp.write('crop = ' + '(.5,.5,.5)') + temp.write('crop = ' + '(.5,.5,.5)' + '\n') + temp.write('save_dir = "' + working_dir + '/results"' + '\n') temp.close() shutil.move(temp_file, disp_conf_file) diff --git a/create_default_conf.py b/create_default_conf.py new file mode 100644 index 0000000..572414e --- /dev/null +++ b/create_default_conf.py @@ -0,0 +1,19 @@ +import argparse +import sys +import aps_34id.prep as prep + + +def main(arg): + parser = argparse.ArgumentParser() + parser.add_argument("working_dir", help="working directory") + parser.add_argument("id", help="name of the experiment/data reconstruction") + + args = parser.parse_args() + + prep.create_default_config(args.working_dir, args.id) + + +if __name__ == "__main__": + main(sys.argv[1:]) + +# python create_default_config.py '/home/beams/CXDUSER/CDI/cdi-master/test', 'A_48-60' diff --git a/how_to_run b/how_to_run index 9cb6d95..7206c6f 100644 --- a/how_to_run +++ b/how_to_run @@ -12,15 +12,15 @@ II. For any beamline. How to run using command lines only: ------------------------------------ -1. python prepare(working_dir, - experiment_id, - scans, - detector_data_dir, - spec_file, - dark_file, - white_file) -2*. python create_default_config(working_dir, - experiment_id) +1. python run_prepare.py + + + + + + + +2*. python create_default_config.py 3*. edit configuration files (important for the config_data): //conf/config_data //conf/config_rec @@ -34,20 +34,20 @@ How to run using command lines only: different configuration files example: -1. python prepare('/home/beams/CXDUSER/CDI/cdi-master/test', - 'A_48-60', - [48,60], - '/net/s34data/export/34idc-data/2018/Startup18-2/ADStartup18-2a', - '/net/s34data/export/34idc-data/2018/Startup18-2/Startup18-2a.spec', - '/net/s34data/export/34idc-work/2018/Startup18-2/dark.tif', - '/net/s34data/export/34idc-work/2018/Startup18-2/CelaWhiteField.tif') -2. python create_default_config('/home/beams/CXDUSER/CDI/cdi-master/test', 'A_48-60') -3. edit (/home/beams/CXDUSER/CDI/cdi-master/test/A_48-60/conf/config_data, +1. python run_prepare.py '/home/beams/CXDUSER/CDI/cdi-master/test'\ + 'A_48-60'\ + '48-60'\ + '/net/s34data/export/34idc-data/2018/Startup18-2/ADStartup18-2a'\ + '/net/s34data/export/34idc-data/2018/Startup18-2/Startup18-2a.spec'\ + '/net/s34data/export/34idc-work/2018/Startup18-2/dark.tif'\ + '/net/s34data/export/34idc-work/2018/Startup18-2/CelaWhiteField.tif' +2. python create_default_conf.py '/home/beams/CXDUSER/CDI/cdi-master/test' 'A_48-60' +3. (/home/beams/CXDUSER/CDI/cdi-master/test/A_48-60/conf/config_data, /home/beams/CXDUSER/CDI/cdi-master/test/A_48-60/conf/config_rec, /home/beams/CXDUSER/CDI/cdi-master/test/A_48-60/conf/config_disp) if needed -4. python run_data.py '/home/beams/CXDUSER/CDI/cdi-master/test/A_48-60/prep/prep_data' '/home/beams/CXDUSER/CDI/cdi-master/test/A_48-60/conf/config_data' -5. source run_rec.sh 'cuda' '/home/beams/CXDUSER/CDI/cdi-master/test/A_48-60/conf/config_rec' -6. source run_disp.sh '/home/beams/CXDUSER/CDI/cdi-master/test/A_48-60/conf/config_disp' +4. python run_data.py '/home/beams/CXDUSER/CDI/cdi-master/test' 'A_48-60' +5. source run_rec.sh 'cuda' '/home/beams/CXDUSER/CDI/cdi-master/test' 'A_48-60' +6. source run_disp.sh '/home/beams/CXDUSER/CDI/cdi-master/test' 'A_48-60' How to run using GUI and command lines: --------------------------------------- diff --git a/init.sh b/init.sh index 150f8c6..8b1c4e0 100644 --- a/init.sh +++ b/init.sh @@ -27,4 +27,4 @@ sed -i 's?'$def'?'$data_type'?g' src_py/cyth/*.pyx sed -i 's?'$def'?'$data_type'?g' include/common.h -python setup.py build_ext --inplace +python setup.py build_ext --inplace \ No newline at end of file diff --git a/run_data.py b/run_data.py index 5dd8aff..7051e21 100755 --- a/run_data.py +++ b/run_data.py @@ -1,26 +1,29 @@ import src_py.controller.data as dt import sys import argparse -from os.path import expanduser +import os def main(arg): - parser = argparse.ArgumentParser() - parser.add_argument("proc", help="the processor the code will run on, can be 'cpu', 'opencl', or 'cuda'.") parser.add_argument("fname", help="data file filename. It is assumed the file is in tif format.") parser.add_argument("conf", help="configuration file.") - args = parser.parse_args() - proc = args.proc - fname = args.fname conf = args.conf + fname = args.fname + if not os.path.isfile(conf): + parser = argparse.ArgumentParser() + parser.add_argument("working_dir", help="working directory.") + parser.add_argument("id", help="experiment id.") + args = parser.parse_args() + conf = os.path.join(args.working_dir, args.id, 'conf', 'config_data') + fname = os.path.join(args.working_dir, args.id, 'prep', 'prep_data.tif') - dt.prep(proc, fname, conf) + dt.prep(fname, conf) if __name__ == "__main__": main(sys.argv[1:]) -#python run_data.py 'opencl' '/local/bfrosik/CDI/Staff14-3_S0149.tif' 'config_data' +#python run_data.py '/local/bfrosik/CDI/Staff14-3_S0149.tif' 'config_data' diff --git a/run_disp.py b/run_disp.py index 0983204..172d094 100755 --- a/run_disp.py +++ b/run_disp.py @@ -47,9 +47,9 @@ def to_vtk(conf): def main(arg): parser = argparse.ArgumentParser() parser.add_argument("conf", help="configuration file.") - args = parser.parse_args() conf = args.conf + to_vtk(conf) diff --git a/run_disp.sh b/run_disp.sh index 333874f..3ecb4a4 100644 --- a/run_disp.sh +++ b/run_disp.sh @@ -3,6 +3,8 @@ p=$PATH p=${p//"anaconda3"/"anaconda2"} export PATH=$p +disp_conf_file="/conf/config_disp" +divider="/" -python run_disp.py $1 -#python run_disp.py "config_disp" \ No newline at end of file +python run_disp.py $1$divider$2$disp_conf_file +#python run_disp.py / \ No newline at end of file diff --git a/run_prepare.py b/run_prepare.py new file mode 100644 index 0000000..ae5352b --- /dev/null +++ b/run_prepare.py @@ -0,0 +1,39 @@ +import argparse +import sys +import aps_34id.prep as prep + + +def main(arg): + parser = argparse.ArgumentParser() + parser.add_argument("working_dir", help="working directory") + parser.add_argument("id", help="name of the experiment/data reconstruction") + parser.add_argument("scan", help="a range of scans to prepare data from") + parser.add_argument("data_dir", help="directory where the scan data is collected") + parser.add_argument("specfile", help="spec file saved during experiment") + parser.add_argument("darkfile", help="file containing dark data") + parser.add_argument("whitefile", help="file containing white data") + + args = parser.parse_args() + scan = args.scan + try: + # convert it to list of int + scan_range = scan.split('-') + scan_num = [] + for i in range(len(scan_range)): + scan_num.append(int(scan_range[i])) + except: + print ('enter numeric values for scan range') + + prep.prepare(args.working_dir, args.id, scan_num, args.data_dir, args.specfile, args.darkfile, args.whitefile) + + +if __name__ == "__main__": + main(sys.argv[1:]) + +# python run_prepare.py '/home/beams/CXDUSER/CDI/cdi-master/test' +# 'A_48-60' +# '48-60' +# '/net/s34data/export/34idc-data/2018/Startup18-2/ADStartup18-2a' +# '/net/s34data/export/34idc-data/2018/Startup18-2/Startup18-2a.spec' +# '/net/s34data/export/34idc-work/2018/Startup18-2/dark.tif' +# '/net/s34data/export/34idc-work/2018/Startup18-2/CelaWhiteField.tif' \ No newline at end of file diff --git a/run_rec.py b/run_rec.py index 141af6f..b6143da 100755 --- a/run_rec.py +++ b/run_rec.py @@ -54,11 +54,9 @@ def reconstruction(proc, conf): def main(arg): - parser = argparse.ArgumentParser() parser.add_argument("proc", help="the processor the code will run on, can be 'cpu', 'opencl', or 'cuda'.") parser.add_argument("conf", help="configuration file.") - args = parser.parse_args() proc = args.proc conf = args.conf diff --git a/run_rec.sh b/run_rec.sh index facdaa9..6dadd1e 100644 --- a/run_rec.sh +++ b/run_rec.sh @@ -1,12 +1,14 @@ #!/bin/sh -export LD_LIBRARY_PATH=/usr/local/lib:/local/libconfig/lib:/local/af/lib -#export LD_LIBRARY_PATH=/home/beams/CXDUSER/bfrosik/libconfig/lib:/usr/local/lib:/home/beams/CXDUSER/bfrosik/ArrayFire-v3.4.2/lib/:/usr/local/cuda-8.0/lib64:/usr/local/cuda-8.0/nvvm/lib64 +#export LD_LIBRARY_PATH=/usr/local/lib:/local/libconfig/lib:/local/af/lib +export LD_LIBRARY_PATH=/home/beams/CXDUSER/CDI/libconfig/lib:/usr/local/lib:/home/beams/CXDUSER/CDI/ArrayFire-v3.4.2/lib/:/usr/local/cuda-8.0/lib64:/usr/local/cuda-8.0/nvvm/lib64 p=$PATH p=${p//"anaconda2"/"anaconda3"} export PATH=$p +rec_conf_file="/conf/config_rec" +divider="/" -python run_rec.py $1 $2 +python run_rec.py $1 $2$divider$3$rec_conf_file #python run_rec.py "opencl" "config_rec" \ No newline at end of file diff --git a/src_py/controller/data.py b/src_py/controller/data.py index f650d84..bfa0a78 100644 --- a/src_py/controller/data.py +++ b/src_py/controller/data.py @@ -28,11 +28,11 @@ __author__ = "Barbara Frosik" __copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." __docformat__ = 'restructuredtext en' -__all__ = ['prepare_data', - 'reconstruction'] +__all__ = ['prep'] -def prepare_data(config_map, data): +def prep(fname, conf): + """ This function prepares raw data for reconstruction. It uses configured parameters. The preparation consists of the following steps: 1. clearing the noise - the values below an amplitude threshold are set to zero @@ -58,96 +58,14 @@ def prepare_data(config_map, data): a 3D np array containing data after the preprocessing """ - # zero out the aliens, aliens are the same for each data prep - try: - aliens = config_map.aliens - for alien in aliens: - data[alien[0]:alien[3], alien[1]:alien[4], alien[2]:alien[5]] = 0 - except AttributeError: - pass + data = ut.get_array_from_tif(fname) - try: - amp_thresholds = config_map.amp_threshold - except AttributeError: - print ('define amplitude threshold. Exiting') + config_map = ut.read_config(conf) + if config_map is None: + print ("can't read configuration file") return - - try: - binsizes = config_map.binning - except AttributeError: - binsizes = None - - try: - pads = tuple(config_map.adjust_dimensions) - except AttributeError: - pads = None - - try: - center_shifts = tuple(config_map.center_shift) - except AttributeError: - center_shifts = None - - try: - data_dir = config_map.data_dir - except AttributeError: - data_dir = 'data' - - data_files = [] - for prep in range(len(amp_thresholds)): - # zero out the noise - prep_data = np.where(data < amp_thresholds[prep], 0, data) - - if not binsizes is None: - # do binning - prep_data = ut.binning(prep_data, binsizes[prep]) - - # square root data - prep_data = np.sqrt(prep_data) - - if not pads is None: - # adjust the size, either zero pad or crop array - prep_data = ut.adjust_dimensions(prep_data, pads[prep]) - else: - prep_data = ut.adjust_dimensions(prep_data, (0,0,0,0,0,0)) - - if not center_shifts is None: - # get centered array - prep_data = ut.get_centered(prep_data, center_shifts[prep]) - else: - prep_data = ut.get_centered(prep_data, [0,0,0]) - - # save data - data_file = save_prepared_data(prep_data, data_dir, prep) - data_files.append(data_file) - return data_files - - -def prepare_data_only(config_map, data): - """ - This function prepares raw data for reconstruction. It uses configured parameters. The preparation consists of the following steps: - 1. clearing the noise - the values below an amplitude threshold are set to zero - 2. removing the "aliens" - aliens are areas that are effect of interference. The area is manually set in a configuration file - after inspecting the data. - 3. binning - adding amplitudes of several consecutive points. Binning can be done in any dimension. - 4. amplitudes are set to sqrt - 5. centering - finding the greatest amplitude and locating it at a center of new array. Typically several new rows/columns/slices - are added. These are filled with zeros. When changing the dimension the code finds the smallest possible dimension that is - supported by opencl library (multiplier of 2, 3, and 5). - - Parameters - ---------- - config_map : dict - configuration map - - data : array - a 3D np array containing experiment data - - Returns - ------- - data : array - a 3D np array containing data after the preprocessing - """ + print ('data dimensions before prep', data.shape) # zero out the aliens, aliens are the same for each data prep try: aliens = config_map.aliens @@ -157,23 +75,23 @@ def prepare_data_only(config_map, data): pass try: - amp_threshold = config_map.amp_threshold[0] + amp_threshold = config_map.amp_threshold except AttributeError: print ('define amplitude threshold. Exiting') return try: - binsizes = config_map.binning[0] + binsizes = config_map.binning except AttributeError: binsizes = None try: - pads = tuple(config_map.adjust_dimensions)[0] + pads = tuple(config_map.adjust_dimensions) except AttributeError: pads = None try: - center_shift = tuple(config_map.center_shift)[0] + center_shift = tuple(config_map.center_shift) except AttributeError: center_shift = None @@ -213,97 +131,5 @@ def prepare_data_only(config_map, data): data_file = data_dir + 'data.npy' np.save(data_file, prep_data) - -def save_prepared_data(data, data_dir, prep_no): - if not data_dir.endswith('/'): - data_dir = data_dir + '/' - if not os.path.exists(data_dir): - os.makedirs(data_dir) - - data_file = data_dir + 'datafile%s.npy' % str(prep_no) - np.save(data_file, data) - return data_file - - -def write_simple(arr, filename): - from tvtk.api import tvtk, write_data - - id=tvtk.ImageData() - id.point_data.scalars=abs(arr.ravel(order='F')) - id.dimensions=arr.shape - write_data(id, filename) - - -def select_best(img_errs): - min_er = 1000 - min_index = -1 - for i in range(len(img_errs)): - errors = img_errs[i][1] - len_er = len(errors) - er_sum = sum(errors[len_er-11:len_er-1]) - image = img_errs[i][0] - image = np.where(image>0.25, image, 0) - img_std = np.std(image) - if er_sum < min_er: - min_index = i - return min_index - - -def save_best(data_file): - dst = data_file.translate(None, digits).replace('datafile', 'data') - shutil.copyfile(data_file, dst) - - -def test_reconstruction(data_files, conf, config_map, proc): - img_errs = [] - for data_file in data_files: - data = np.load(data_file) - - # create inital support and guess arrays - image = ut.get_init_array(data.shape).astype(complex) - support = ut.get_init_array(data.shape) - - try: - device = config_map.device - except: - device = -1 - - image, support, coherence, errors = calc.fast_module_reconstruction(proc, device, conf, data, None, image, support) - - # save tuple of image and errors for the automated pick - img_errs.append((image,errors)) - - # simple save the reconstruction for visual inspection - image_file = data_file.replace('datafile', 'image').replace('.npy', '') - write_simple(image, image_file) - return img_errs - - -def prep(proc, fname, conf): - data = ut.get_array_from_tif(fname) - - config_map = ut.read_config(conf) - if config_map is None: - print ("can't read configuration file") - return - - print ('data dimensions before prep', data.shape) - if proc is None: - prepare_data_only(config_map, data) - else: - # prepare data according to configuration file. It will produce several prepared data files, differentiated by - # the configuration parameters. - data_files = prepare_data(config_map, data) - - # run the same short reconstruction on the prepared data files and save results in vti format for visual comparison. - img_errs = test_reconstruction(data_files, conf, config_map, proc) - - #based on errors select the best image - best_index = select_best(img_errs) - - # copy best data file to data.npy - save_best(data_files[best_index]) - - -#prep('opencl', '/local/bfrosik/CDI/S149/Staff14-3_S0149.tif', 'config_data') +#prep('/local/bfrosik/CDI/S149/Staff14-3_S0149.tif', 'config_data') diff --git a/src_py/controller/fast_module.py b/src_py/controller/fast_module.py index 07b03c3..18a3541 100755 --- a/src_py/controller/fast_module.py +++ b/src_py/controller/fast_module.py @@ -21,7 +21,7 @@ import scipy.fftpack as sf import src_py.cyth.bridge_cpu as bridge_cpu import src_py.cyth.bridge_opencl as bridge_opencl -#import src_py.cyth.bridge_cuda as bridge_cuda +import src_py.cyth.bridge_cuda as bridge_cuda __author__ = "Barbara Frosik" From 9c507df3a283984a4f3ea37fad4f31c7bf1a436e Mon Sep 17 00:00:00 2001 From: bfrosik Date: Thu, 20 Sep 2018 14:43:55 -0500 Subject: [PATCH 092/336] refactored with inheritance --- aps_34id/cdi_conf_window.py | 491 ++++++++++++++++-------------------- 1 file changed, 222 insertions(+), 269 deletions(-) diff --git a/aps_34id/cdi_conf_window.py b/aps_34id/cdi_conf_window.py index c53f1cc..f3e71d2 100644 --- a/aps_34id/cdi_conf_window.py +++ b/aps_34id/cdi_conf_window.py @@ -144,7 +144,7 @@ def tab3UI(self): layout.addLayout(ulayout) layout.addLayout(llayout) - self.features = features(self, llayout) + self.features = Features(self, llayout) self.config_rec_button = QPushButton('create config_rec', self) layout.addWidget(self.config_rec_button) self.tab3.setAutoFillBackground(True) @@ -265,39 +265,8 @@ def config_rec(self): if self.cont.isChecked(): conf_map['continue_dir'] = str(self.cont_dir.text()) - if self.features.active_0.isChecked(): - conf_map['generations'] = str(self.features.generations.text()) - conf_map['low_resolution_generations'] = str(self.features.lr_generations.text()) - conf_map['low_resolution_sigma_alg'] = str(self.features.lr_sigma_alg.text()) - conf_map['low_resolution_sigmas'] = str(self.features.lr_sigmas.text()) - conf_map['low_resolution_sigma_min'] = str(self.features.lr_sigma_min.text()) - conf_map['low_resolution_sigma_max'] = str(self.features.lr_sigma_max.text()) - conf_map['low_resolution_scale_power'] = str(self.features.lr_scale_power.text()) - conf_map['low_resolution_alg'] = str(self.features.lr_algorithm.text()) - if self.features.active_1.isChecked(): - conf_map['resolution_trigger'] = str(self.features.res_triggers.text()) - conf_map['iter_res_sigma_range'] = str(self.features.sigma_range.text()) - conf_map['iter_res_det_range'] = str(self.features.det_range.text()) - if self.features.active_2.isChecked(): - conf_map['amp_support_trigger'] = str(self.features.support_triggers.text()) - conf_map['support_type'] = str(self.features.support_type.text()) - conf_map['support_threshold'] = str(self.features.threshold.text()) - conf_map['support_sigma'] = str(self.features.sigma.text()) - conf_map['support_area'] = str(self.features.support_area.text()) - if self.features.active_3.isChecked(): - conf_map['phase_support_trigger'] = str(self.features.phase_triggers.text()) - conf_map['phase_min'] = str(self.features.phase_min.text()) - conf_map['phase_max'] = str(self.features.phase_max.text()) - if self.features.active_4.isChecked(): - conf_map['pcdi_trigger'] = str(self.features.pcdi_triggers.text()) - conf_map['partial_coherence_type'] = str(self.features.pcdi_type.text()) - conf_map['partial_coherence_iteration_num'] = str(self.features.pcdi_iter.text()) - conf_map['partial_coherence_normalize'] = str(self.features.pcdi_normalize.text()) - conf_map['partial_coherence_roi'] = str(self.features.pcdi_roi.text()) - if self.features.active_5.isChecked(): - conf_map['twin_trigger'] = str(self.features.twin_triggers.text()) - if self.features.active_6.isChecked(): - conf_map['avarage_trigger'] = str(self.features.average_triggers.text()) + for feat_id in self.features.feature_dir: + self.features.feature_dir[feat_id].add_config(conf_map) self.create_config('config_rec', conf_map) @@ -373,272 +342,140 @@ def rec_default(self): self.cont.setChecked(False) -class features(QWidget): - def __init__(self, tab, layout): - super(features, self).__init__() - self.leftlist = QListWidget() - self.leftlist.insertItem(0, 'GA') - self.leftlist.insertItem(1, 'low resolution') - self.leftlist.insertItem(2, 'amplitude support') - self.leftlist.insertItem(3, 'phase support') - self.leftlist.insertItem(4, 'pcdi') - self.leftlist.insertItem(5, 'twin') - self.leftlist.insertItem(6, 'average') - - item = self.leftlist.item(2) - item.setForeground(QColor('black')); - - self.stack0 = QWidget() - self.stack1 = QWidget() - self.stack2 = QWidget() - self.stack3 = QWidget() - self.stack4 = QWidget() - self.stack5 = QWidget() - self.stack6 = QWidget() - - self.stack0UI(self.leftlist.item(0)) - self.stack1UI(self.leftlist.item(1)) - self.stack2UI(self.leftlist.item(2)) - self.stack3UI(self.leftlist.item(3)) - self.stack4UI(self.leftlist.item(4)) - self.stack5UI(self.leftlist.item(5)) - self.stack6UI(self.leftlist.item(6)) +class Feature(object): + def __init__(self): + self.stack = QWidget() - self.Stack = QStackedWidget(self) - self.Stack.addWidget(self.stack0) - self.Stack.addWidget(self.stack1) - self.Stack.addWidget(self.stack2) - self.Stack.addWidget(self.stack3) - self.Stack.addWidget(self.stack4) - self.Stack.addWidget(self.stack5) - self.Stack.addWidget(self.stack6) - layout.addWidget(self.leftlist) - layout.addWidget(self.Stack) + def stackUI(self, item, feats): + layout = QFormLayout() + self.active = QCheckBox("active") + self.active.setChecked(True) + layout.addWidget(self.active) + self.toggle(layout, item, feats) + self.stack.setLayout(layout) + self.active.stateChanged.connect(lambda: self.toggle(layout, item, feats)) - self.leftlist.currentRowChanged.connect(self.display) + def toggle(self, layout, item, feats): + if self.active.isChecked(): + self.fill_active(layout) + + self.default_button = QPushButton('set to defaults', feats) + layout.addWidget(self.default_button) + self.default_button.clicked.connect(self.rec_default) - def stack0UI(self, item): - layout = QFormLayout() - self.active_0 = QCheckBox("active") - self.active_0.setChecked(False) - layout.addWidget(self.active_0) - self.toggle_0(layout, item) - self.stack0.setLayout(layout) - self.active_0.stateChanged.connect(lambda: self.toggle_0(layout, item)) - - def toggle_0(self, layout, item): - if self.active_0.isChecked(): - self.generations = QLineEdit() - layout.addRow("generations", self.generations) - self.lr_generations = QLineEdit() - layout.addRow("low resolution generations", self.lr_generations) - self.lr_sigma_alg = QLineEdit() - layout.addRow("low resolution sigma algorithm", self.lr_sigma_alg) - self.lr_sigmas = QLineEdit() - layout.addRow("low resolution sigmas", self.lr_sigmas) - self.lr_sigma_min = QLineEdit() - layout.addRow("low resolution sigma min", self.lr_sigma_min) - self.lr_sigma_max = QLineEdit() - layout.addRow("low resolution sigma max", self.lr_sigma_max) - self.lr_scale_power = QLineEdit() - layout.addRow("low resolution scale power", self.lr_scale_power) - self.lr_algorithm = QLineEdit() - layout.addRow("low resolution algorithm", self.lr_algorithm) item.setForeground(QColor('black')); else: for i in reversed(range(1, layout.count())): layout.itemAt(i).widget().setParent(None) item.setForeground(QColor('grey')); + def fill_active(self, layout): + pass - def stack1UI(self, item): - layout = QFormLayout() - self.active_1 = QCheckBox("active") - self.active_1.setChecked(True) - layout.addWidget(self.active_1) - self.toggle_1(layout, item) - self.stack1.setLayout(layout) - self.active_1.stateChanged.connect(lambda:self.toggle_1(layout, item)) - - - def toggle_1(self, layout, item): - if self.active_1.isChecked(): - self.res_triggers = QLineEdit() - layout.addRow("low resolution triggers", self.res_triggers) - self.sigma_range = QLineEdit() - layout.addRow("sigma range", self.sigma_range) - self.det_range = QLineEdit() - layout.addRow("det range", self.det_range) - - self.default_1_button = QPushButton('set to defaults', self) - layout.addWidget(self.default_1_button) - self.default_1_button.clicked.connect(self.rec_1_default) - item.setForeground(QColor('black')); - else: - for i in reversed(range(1, layout.count())): - layout.itemAt(i).widget().setParent(None) - item.setForeground(QColor('grey')); + def rec_default(self): + pass - def stack2UI(self, item): - layout = QFormLayout() - self.active_2 = QCheckBox("active") - self.active_2.setChecked(True) - layout.addWidget(self.active_2) - self.toggle_2(layout, item) - self.stack2.setLayout(layout) - self.active_2.stateChanged.connect(lambda: self.toggle_2(layout, item)) - - - def toggle_2(self, layout, item): - if self.active_2.isChecked(): - self.support_triggers = QLineEdit() - layout.addRow("support triggers", self.support_triggers) - self.support_type = QLineEdit() - layout.addRow("support algorithm", self.support_type) - self.support_area = QLineEdit() - layout.addRow("starting support area", self.support_area) - self.threshold = QLineEdit() - layout.addRow("threshold", self.threshold) - self.sigma = QLineEdit() - layout.addRow("sigma", self.sigma) - - self.default_2_button = QPushButton('set to defaults', self) - layout.addWidget(self.default_2_button) - self.default_2_button.clicked.connect(self.rec_2_default) + def add_config(self, conf_map): + if self.active.isChecked(): + self.add_feat_conf(conf_map) - item.setForeground(QColor('black')); - else: - for i in reversed(range(1, layout.count())): - layout.itemAt(i).widget().setParent(None) - item.setForeground(QColor('grey')); + def add_feat_conf(self, conf_map): + pass - def stack3UI(self, item): - layout = QFormLayout() - self.active_3 = QCheckBox("active") - self.active_3.setChecked(True) - layout.addWidget(self.active_3) - self.toggle_3(layout, item) - self.stack3.setLayout(layout) - self.active_3.stateChanged.connect(lambda: self.toggle_3(layout, item)) - - def toggle_3(self, layout, item): - if self.active_3.isChecked(): - self.phase_triggers = QLineEdit() - layout.addRow("phase support triggers", self.phase_triggers) - self.phase_min = QLineEdit() - layout.addRow("phase minimum", self.phase_min) - self.phase_max = QLineEdit() - layout.addRow("phase maximum", self.phase_max) - - self.default_3_button = QPushButton('set to defaults', self) - layout.addWidget(self.default_3_button) - self.default_3_button.clicked.connect(self.rec_3_default) +class GA(Feature): + def __init__(self): + super(GA, self).__init__() + self.id = 'GA' - item.setForeground(QColor('black')); - else: - for i in reversed(range(1, layout.count())): - layout.itemAt(i).widget().setParent(None) - item.setForeground(QColor('grey')); + # override setting the active to set it False + def stackUI(self, item, feats): + super(GA, self).stackUI(item, feats) + self.active.setChecked(False) - def stack4UI(self, item): - layout = QFormLayout() - self.active_4 = QCheckBox("active") - self.active_4.setChecked(True) - layout.addWidget(self.active_4) - self.toggle_4(layout, item) - self.stack4.setLayout(layout) - self.active_4.stateChanged.connect(lambda: self.toggle_4(layout, item)) - - def toggle_4(self, layout, item): - if self.active_4.isChecked(): - self.pcdi_triggers = QLineEdit() - layout.addRow("pcdi triggers", self.pcdi_triggers) - self.pcdi_type = QLineEdit() - layout.addRow("partial coherence algorithm", self.pcdi_type) - self.pcdi_iter = QLineEdit() - layout.addRow("pcdi iteration number", self.pcdi_iter) - self.pcdi_normalize = QLineEdit() - layout.addRow("normalize", self.pcdi_normalize) - self.pcdi_roi = QLineEdit() - layout.addRow("pcdi kernel area", self.pcdi_roi) - - self.default_4_button = QPushButton('set to defaults', self) - layout.addWidget(self.default_4_button) - self.default_4_button.clicked.connect(self.rec_4_default) + def fill_active(self, layout): + self.generations = QLineEdit() + layout.addRow("generations", self.generations) + self.lr_generations = QLineEdit() + layout.addRow("low resolution generations", self.lr_generations) + self.lr_sigma_alg = QLineEdit() + layout.addRow("low resolution sigma algorithm", self.lr_sigma_alg) + self.lr_sigmas = QLineEdit() + layout.addRow("low resolution sigmas", self.lr_sigmas) + self.lr_sigma_min = QLineEdit() + layout.addRow("low resolution sigma min", self.lr_sigma_min) + self.lr_sigma_max = QLineEdit() + layout.addRow("low resolution sigma max", self.lr_sigma_max) + self.lr_scale_power = QLineEdit() + layout.addRow("low resolution scale power", self.lr_scale_power) + self.lr_algorithm = QLineEdit() + layout.addRow("low resolution algorithm", self.lr_algorithm) - item.setForeground(QColor('black')); - else: - for i in reversed(range(1, layout.count())): - layout.itemAt(i).widget().setParent(None) - item.setForeground(QColor('grey')); - def stack5UI(self, item): - layout = QFormLayout() - self.active_5 = QCheckBox("active") - self.active_5.setChecked(True) - layout.addWidget(self.active_5) - self.toggle_5(layout, item) - self.stack5.setLayout(layout) - self.active_5.stateChanged.connect(lambda: self.toggle_5(layout, item)) - - def toggle_5(self, layout, item): - if self.active_5.isChecked(): - self.twin_triggers = QLineEdit() - layout.addRow("twin triggers", self.twin_triggers) - - self.default_5_button = QPushButton('set to defaults', self) - layout.addWidget(self.default_5_button) - self.default_5_button.clicked.connect(self.rec_5_default) - - item.setForeground(QColor('black')); - else: - for i in reversed(range(1, layout.count())): - layout.itemAt(i).widget().setParent(None) - item.setForeground(QColor('grey')); + def add_feat_conf(self, conf_map): + conf_map['generations'] = str(self.generations.text()) + conf_map['low_resolution_generations'] = str(self.lr_generations.text()) + conf_map['low_resolution_sigma_alg'] = str(self.lr_sigma_alg.text()) + conf_map['low_resolution_sigmas'] = str(self.lr_sigmas.text()) + conf_map['low_resolution_sigma_min'] = str(self.lr_sigma_min.text()) + conf_map['low_resolution_sigma_max'] = str(self.lr_sigma_max.text()) + conf_map['low_resolution_scale_power'] = str(self.lr_scale_power.text()) + conf_map['low_resolution_alg'] = str(self.lr_algorithm.text()) - def stack6UI(self, item): - layout = QFormLayout() - self.active_6 = QCheckBox("active") - self.active_6.setChecked(True) - layout.addWidget(self.active_6) - self.toggle_6(layout, item) - self.stack6.setLayout(layout) - self.active_6.stateChanged.connect(lambda: self.toggle_6(layout, item)) - - def toggle_6(self, layout, item): - if self.active_6.isChecked(): - self.average_triggers = QLineEdit() - layout.addRow("average triggers", self.average_triggers) - - self.default_6_button = QPushButton('set to defaults', self) - layout.addWidget(self.default_6_button) - self.default_6_button.clicked.connect(self.rec_6_default) +class low_resolution(Feature): + def __init__(self): + super(low_resolution, self).__init__() + self.id = 'low resolution' - item.setForeground(QColor('black')); - else: - for i in reversed(range(1, layout.count())): - layout.itemAt(i).widget().setParent(None) - item.setForeground(QColor('grey')); - def display(self, i): - self.Stack.setCurrentIndex(i) + def fill_active(self, layout): + self.res_triggers = QLineEdit() + layout.addRow("low resolution triggers", self.res_triggers) + self.sigma_range = QLineEdit() + layout.addRow("sigma range", self.sigma_range) + self.det_range = QLineEdit() + layout.addRow("det range", self.det_range) - def rec_1_default(self): + def rec_default(self): #TODO add to accept fractions in trigger, so the default will be (.5,1) self.res_triggers.setText('(0, 1, 500)') self.sigma_range.setText('(2.0)') self.det_range.setText('(.7)') - def rec_2_default(self): + def add_feat_conf(self, conf_map): + conf_map['resolution_trigger'] = str(self.res_triggers.text()) + conf_map['iter_res_sigma_range'] = str(self.sigma_range.text()) + conf_map['iter_res_det_range'] = str(self.det_range.text()) + + +class amplitude_support(Feature): + def __init__(self): + super(amplitude_support, self).__init__() + self.id = 'amplitude support' + + + def fill_active(self, layout): + self.support_triggers = QLineEdit() + layout.addRow("support triggers", self.support_triggers) + self.support_type = QLineEdit() + layout.addRow("support algorithm", self.support_type) + self.support_area = QLineEdit() + layout.addRow("starting support area", self.support_area) + self.threshold = QLineEdit() + layout.addRow("threshold", self.threshold) + self.sigma = QLineEdit() + layout.addRow("sigma", self.sigma) + + + def rec_default(self): self.support_triggers.setText('(1,1)') self.support_type.setText('"GAUSS"') self.support_area.setText('[.5,.5,.5]') @@ -646,13 +483,61 @@ def rec_2_default(self): self.threshold.setText('0.1') - def rec_3_default(self): + def add_feat_conf(self, conf_map): + conf_map['amp_support_trigger'] = str(self.support_triggers.text()) + conf_map['support_type'] = str(self.support_type.text()) + conf_map['support_threshold'] = str(self.threshold.text()) + conf_map['support_sigma'] = str(self.sigma.text()) + conf_map['support_area'] = str(self.support_area.text()) + + +class phase_support(Feature): + def __init__(self): + super(phase_support, self).__init__() + self.id = 'phase support' + + + def fill_active(self, layout): + self.phase_triggers = QLineEdit() + layout.addRow("phase support triggers", self.phase_triggers) + self.phase_min = QLineEdit() + layout.addRow("phase minimum", self.phase_min) + self.phase_max = QLineEdit() + layout.addRow("phase maximum", self.phase_max) + + + def rec_default(self): self.phase_triggers.setText('(0,1,20)') self.phase_min.setText('-1.57') self.phase_max.setText('1.57') - def rec_4_default(self): + def add_feat_conf(self, conf_map): + conf_map['phase_support_trigger'] = str(self.phase_triggers.text()) + conf_map['phase_min'] = str(self.phase_min.text()) + conf_map['phase_max'] = str(self.phase_max.text()) + + +class pcdi(Feature): + def __init__(self): + super(pcdi, self).__init__() + self.id = 'pcdi' + + + def fill_active(self, layout): + self.pcdi_triggers = QLineEdit() + layout.addRow("pcdi triggers", self.pcdi_triggers) + self.pcdi_type = QLineEdit() + layout.addRow("partial coherence algorithm", self.pcdi_type) + self.pcdi_iter = QLineEdit() + layout.addRow("pcdi iteration number", self.pcdi_iter) + self.pcdi_normalize = QLineEdit() + layout.addRow("normalize", self.pcdi_normalize) + self.pcdi_roi = QLineEdit() + layout.addRow("pcdi kernel area", self.pcdi_roi) + + + def rec_default(self): self.pcdi_triggers.setText('(50,50)') self.pcdi_type.setText('"LUCY"') self.pcdi_iter.setText('20') @@ -660,14 +545,82 @@ def rec_4_default(self): self.pcdi_roi.setText('[32,32,16]') - def rec_5_default(self): + def add_feat_conf(self, conf_map): + conf_map['pcdi_trigger'] = str(self.pcdi_triggers.text()) + conf_map['partial_coherence_type'] = str(self.pcdi_type.text()) + conf_map['partial_coherence_iteration_num'] = str(self.pcdi_iter.text()) + conf_map['partial_coherence_normalize'] = str(self.pcdi_normalize.text()) + conf_map['partial_coherence_roi'] = str(self.pcdi_roi.text()) + + +class twin(Feature): + def __init__(self): + super(twin, self).__init__() + self.id = 'twin' + + + def fill_active(self, layout): + self.twin_triggers = QLineEdit() + layout.addRow("twin triggers", self.twin_triggers) + + + def rec_default(self): self.twin_triggers.setText('(2)') - def rec_6_default(self): + def add_feat_conf(self, conf_map): + conf_map['twin_trigger'] = str(self.twin_triggers.text()) + + +class average(Feature): + def __init__(self): + super(average, self).__init__() + self.id = 'average' + + + def fill_active(self, layout): + self.average_triggers = QLineEdit() + layout.addRow("average triggers", self.average_triggers) + + + def rec_default(self): self.average_triggers.setText('(-400,1)') + def add_feat_conf(self, conf_map): + conf_map['avarage_trigger'] = str(self.average_triggers.text()) + + +class Features(QWidget): + def __init__(self, tab, layout): + super(Features, self).__init__() + feature_ids = ['GA', 'low resolution', 'amplitude support', 'phase support', 'pcdi', 'twin', 'average'] + self.leftlist = QListWidget() + self.feature_dir = {'GA' : GA(), + 'low resolution' : low_resolution(), + 'amplitude support' : amplitude_support(), + 'phase support' : phase_support(), + 'pcdi' : pcdi(), + 'twin' : twin(), + 'average' : average()} + self.Stack = QStackedWidget(self) + for i in range(len(feature_ids)): + id = feature_ids[i] + self.leftlist.insertItem(i, id) + feature = self.feature_dir[id] + feature.stackUI(self.leftlist.item(i), self) + self.Stack.addWidget(feature.stack) + + layout.addWidget(self.leftlist) + layout.addWidget(self.Stack) + + self.leftlist.currentRowChanged.connect(self.display) + + + def display(self, i): + self.Stack.setCurrentIndex(i) + + def main(): app = QApplication(sys.argv) ex = cdi_conf() From e8cb26066af6d38a0dc6bf8715286df1fa29b8f1 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Wed, 17 Oct 2018 12:57:49 -0500 Subject: [PATCH 093/336] fixed how_to_run --- how_to_run | 14 +++++++------- run_rec.sh | 8 ++++++-- src_py/controller/data.py | 5 +---- 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/how_to_run b/how_to_run index 7206c6f..9fbbe94 100644 --- a/how_to_run +++ b/how_to_run @@ -34,12 +34,12 @@ How to run using command lines only: different configuration files example: -1. python run_prepare.py '/home/beams/CXDUSER/CDI/cdi-master/test'\ - 'A_48-60'\ - '48-60'\ - '/net/s34data/export/34idc-data/2018/Startup18-2/ADStartup18-2a'\ - '/net/s34data/export/34idc-data/2018/Startup18-2/Startup18-2a.spec'\ - '/net/s34data/export/34idc-work/2018/Startup18-2/dark.tif'\ +1. python run_prepare.py '/home/beams/CXDUSER/CDI/cdi-master/test' \ + 'A_48-60' \ + '48-60' \ + '/net/s34data/export/34idc-data/2018/Startup18-2/ADStartup18-2a' \ + '/net/s34data/export/34idc-data/2018/Startup18-2/Startup18-2a.spec' \ + '/net/s34data/export/34idc-work/2018/Startup18-2/dark.tif' \ '/net/s34data/export/34idc-work/2018/Startup18-2/CelaWhiteField.tif' 2. python create_default_conf.py '/home/beams/CXDUSER/CDI/cdi-master/test' 'A_48-60' 3. (/home/beams/CXDUSER/CDI/cdi-master/test/A_48-60/conf/config_data, @@ -54,6 +54,6 @@ How to run using GUI and command lines: 1. python 34id/cdi_conf_window.py (to start GUI) 2. Fill out working directory and Reconstruction ID (where the prep, and config will be created), and run tabs in order they appear: '34ID prep', 'Data', 'Reconstruction', 'Display'. This - will create prep_data and configuration files in /conf/ directory + will create prep_data and configuration files in //conf/ directory 3. Use the configuration files when running steps 4, 5, 6. diff --git a/run_rec.sh b/run_rec.sh index 6dadd1e..a9cebb4 100644 --- a/run_rec.sh +++ b/run_rec.sh @@ -1,8 +1,12 @@ #!/bin/sh -#export LD_LIBRARY_PATH=/usr/local/lib:/local/libconfig/lib:/local/af/lib -export LD_LIBRARY_PATH=/home/beams/CXDUSER/CDI/libconfig/lib:/usr/local/lib:/home/beams/CXDUSER/CDI/ArrayFire-v3.4.2/lib/:/usr/local/cuda-8.0/lib64:/usr/local/cuda-8.0/nvvm/lib64 +export LD_LIBRARY_PATH=/usr/local/lib:/local/libconfig/lib:/local/af/lib + +#export LD_LIBRARY_PATH=/home/beams/CXDUSER/CDI/libconfig/lib:/usr/lib64:/home/beams/CXDUSER/CDI/ArrayFire-v3.4.2/lib:/usr/local-linux/cuda-8.0/lib64:/usr/local-linux/cuda-8.0/nvvm/lib64 + +#newest arrayfire version will work with cuda 9.1 +#export LD_LIBRARY_PATH=/home/beams/CXDUSER/CDI/arrayfire/lib:/home/beams/CXDUSER/CDI/libconfig/lib:/local/cuda-9.0/lib64:/local/cuda-9.0/nvvm/lib64 p=$PATH p=${p//"anaconda2"/"anaconda3"} diff --git a/src_py/controller/data.py b/src_py/controller/data.py index bfa0a78..2149f2c 100644 --- a/src_py/controller/data.py +++ b/src_py/controller/data.py @@ -20,9 +20,6 @@ import numpy as np import src_py.utilities.utils as ut import os -import shutil -from string import digits -import src_py.controller.fast_module as calc __author__ = "Barbara Frosik" @@ -131,5 +128,5 @@ def prep(fname, conf): data_file = data_dir + 'data.npy' np.save(data_file, prep_data) -#prep('/local/bfrosik/CDI/S149/Staff14-3_S0149.tif', 'config_data') +#prep('/local/bfrosik/CDI/S149/Staff14-3_S0149.tif', 'config_data') From 6f7f172bc1ee123424e2825eca530462922dd625 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Wed, 17 Oct 2018 13:00:27 -0500 Subject: [PATCH 094/336] Fixed path --- how_to_run | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/how_to_run b/how_to_run index 9fbbe94..0ebe838 100644 --- a/how_to_run +++ b/how_to_run @@ -51,7 +51,7 @@ example: How to run using GUI and command lines: --------------------------------------- -1. python 34id/cdi_conf_window.py (to start GUI) +1. python aps_34id/cdi_conf_window.py (to start GUI) 2. Fill out working directory and Reconstruction ID (where the prep, and config will be created), and run tabs in order they appear: '34ID prep', 'Data', 'Reconstruction', 'Display'. This will create prep_data and configuration files in //conf/ directory From 75f9d46c450905c6623db38855943c7416fe0afa Mon Sep 17 00:00:00 2001 From: bfrosik Date: Tue, 6 Nov 2018 15:12:14 -0600 Subject: [PATCH 095/336] Added parallelism with Parsl library --- src_py/controller/fast_module.py | 7 +- src_py/controller/gen_rec.py | 91 +++++++---- src_py/controller/reconstruction.py | 157 ++++++------------ src_py/controller/reconstruction_multi.py | 188 ++++++++++++++++++++++ src_py/utilities/utils.py | 30 ++++ 5 files changed, 335 insertions(+), 138 deletions(-) create mode 100644 src_py/controller/reconstruction_multi.py diff --git a/src_py/controller/fast_module.py b/src_py/controller/fast_module.py index 18a3541..589070b 100755 --- a/src_py/controller/fast_module.py +++ b/src_py/controller/fast_module.py @@ -21,7 +21,9 @@ import scipy.fftpack as sf import src_py.cyth.bridge_cpu as bridge_cpu import src_py.cyth.bridge_opencl as bridge_opencl -import src_py.cyth.bridge_cuda as bridge_cuda +#import src_py.cyth.bridge_cuda as bridge_cuda +import os +import threading __author__ = "Barbara Frosik" @@ -69,6 +71,9 @@ def fast_module_reconstruction(proc, device, conf, data, coh_dims, image=None, s #bridge = bridge_cuda fast_module = bridge_cuda.PyBridge() + print ('proc id', os.getpid()) + print ('thread id', threading.get_ident()) + # shift data data=sf.fftshift(data) data = np.swapaxes(data,1,2) diff --git a/src_py/controller/gen_rec.py b/src_py/controller/gen_rec.py index b24b7a5..65176ec 100644 --- a/src_py/controller/gen_rec.py +++ b/src_py/controller/gen_rec.py @@ -20,7 +20,8 @@ import numpy as np import matplotlib.pyplot as plt import os -import src_py.controller.reconstruction as rec +import src_py.controller.reconstruction as single +import src_py.controller.reconstruction_multi as multi import src_py.utilities.utils as ut @@ -156,33 +157,69 @@ def reconstruction(generations, proc, data, conf, config_map): except: threads = 1 - previous = [] - for _ in range(threads): - previous.append((None, None, None)) + if threads > 1: + images = [] + supports = [] + cohs = [] + for _ in range(threads): + images.append(None) + supports.append(None) + cohs.append(None) + rec = multi + rec.load_config(threads) + else: + images = None + supports = None + cohs = None + rec = single + + errors = [] gen_obj = Generation(config_map) - for g in range(low_resolution_generations): - gen_data = gen_obj.get_data(g, data) - previous = rec.rec(proc, gen_data, conf, config_map, previous) + # the results are not kept + if low_resolution_generations > 0: + for g in range(low_resolution_generations): + errors.append(None) + gen_data = gen_obj.get_data(g, data) + images, supports, cohs, errs = rec.rec(proc, gen_data, conf, config_map, images, supports, cohs) + # here will be logic to pick the best threads + errors[g] = errs for g in range(low_resolution_generations, generations): - previous = rec.rec(proc, data, conf, config_map, previous) - image = previous[0][0] - print ('image norm', ut.get_norm(image), '---------------------') - errors = previous[0][3] - errors.pop(0) - plt.plot(errors) - plt.ylabel('errors') - plt.show() - - results = previous - - try: - save_dir = config_map.save_dir - if not save_dir.endswith('/'): - save_dir = save_dir + '/' - except AttributeError: - save_dir = 'results/' - - save_results(results, save_dir) - + errors.append(None) + images, supports, cohs, errs = rec.rec(proc, data, conf, config_map, images, supports, cohs) + errors[g] = errs + + print ('done gen') + # if g == 0: + # errors[0][0].pop(0) + # print ('errors0', errors[0][0]) + # plt.plot(errors[0][0]) + # plt.ylabel('errors') + # plt.show() + + #image = previous[0][0] + # print ('image norm', ut.get_norm(image), '---------------------') + # errors = previous[0][3] + # errors.pop(0) + # plt.plot(errors) + # plt.ylabel('errors') + # plt.show() + + # image = images[0] + # print ('image norm', ut.get_norm(image), '---------------------') + # errors.pop(0) + # plt.plot(errors[0]) + # plt.ylabel('errors') + # plt.show() + + # + # try: + # save_dir = config_map.save_dir + # if not save_dir.endswith('/'): + # save_dir = save_dir + '/' + # except AttributeError: + # save_dir = 'results/' + # + # save_results(results, save_dir) + # diff --git a/src_py/controller/reconstruction.py b/src_py/controller/reconstruction.py index acebe74..d97cd44 100644 --- a/src_py/controller/reconstruction.py +++ b/src_py/controller/reconstruction.py @@ -18,10 +18,11 @@ """ import numpy as np -import src_py.utilities.utils as ut -import matplotlib.pyplot as plt +# import matplotlib.pyplot as plt import os import src_py.controller.fast_module as calc +import src_py.utilities.utils as ut +import src_py.controller.reconstruction_multi as multi __author__ = "Barbara Frosik" @@ -31,86 +32,18 @@ 'reconstruction'] -def read_results(read_dir): - files = [] - def append_from_dir(file_dir): - try: - imagefile = file_dir + 'image.npy' - image = np.load(imagefile) - - supportfile = file_dir + 'support.npy' - support = np.load(supportfile) - - try: - cohfile = file_dir + 'coherence.npy' - coh = np.load(cohfile) - except: - coh = None - - files.append((image, support, coh)) - except: - pass - - append_from_dir(read_dir) - if len(files) > 0: - return files - - for sub in os.listdir(read_dir): - append_from_dir(os.path.join(read_dir, sub)+'/') - - return files - - -def save_results(results, save_dir): - def save_rec(res, file_dir): - if not os.path.exists(file_dir): - os.makedirs(file_dir) - - #data_file = data_dir + 'datafile%s.npy' % str(prep_no) - np.save(file_dir + 'image', res[0]) - np.save(file_dir + 'support', res[1]) - if not res[2] is None: - np.save(file_dir + 'coherence', res[2]) - - if len(results) == 1: - save_rec(results[0], save_dir) - else: - for i in range(len(results)): - save_rec(results[i], save_dir + str(i) + '/') - - -def assign_devices(devices, threads): - dev_no = len(devices) - dev = [] - for thread in range(threads): - if thread < dev_no: - dev.append(devices[thread]) - else: - dev.append[-1] - return dev - - -def rec(proc, data, conf, config_map, previous): +def rec(proc, data, conf, config_map, image, support, coh): try: devices = config_map.device except: devices = [-1] - # assign device for each thread - threads = len(previous) - devices = assign_devices(devices, threads) - try: coh_dims = tuple(config_map.partial_coherence_roi) except: coh_dims = None - results = [] - for i in range(threads): - res = previous[i] - image, support, coherence, errors = calc.fast_module_reconstruction(proc, devices[i], conf, data, coh_dims, res[0], res[1], res[2]) - results.append((image, support, coherence, errors)) - return results + return calc.fast_module_reconstruction(proc, devices[0], conf, data, coh_dims, image, support, coh) def reconstruction(proc, data, conf, config_map): @@ -142,45 +75,49 @@ def reconstruction(proc, data, conf, config_map): except: threads = 1 - # if continue, find the previous results from the continue_dir - try: - if config_map.cont: - try: - continue_dir = config_map.continue_dir - if not continue_dir.endswith('/'): - continue_dir = continue_dir + '/' - except: - print ("continue_dir not configured") - return None - previous = read_results(continue_dir) - else: - previous = [] - for _ in range(threads): - previous.append((None, None, None)) - except: - # cont not defined, defaults to False - previous = [] - for _ in range(threads): - previous.append((None, None, None)) + if threads > 1: + multi.reconstruction(threads, proc, data, conf, config_map) + else: + cont = False + try: + if config_map.cont: + try: + continue_dir = config_map.continue_dir + if not continue_dir.endswith('/'): + continue_dir = continue_dir + '/' + image, support, coh = ut.read_results(continue_dir) + cont = True + except: + print("continue_dir not configured") + return None + except: + pass + + if not cont: + image = None + support = None + coh = None + + image, support, coh, errs = rec(proc, data, conf, config_map, image, support, coh) + + try: + save_dir = config_map.save_dir + if not save_dir.endswith('/'): + save_dir = save_dir + '/' + except AttributeError: + save_dir = 'results/' + + ut.save_results(image, support, coh, save_dir) + + print('done') + + # if len(images) == 1: + # errors = results[0][3] + # errors.pop(0) + # plt.plot(errors) + # plt.ylabel('errors') + # plt.show() - results = rec(proc, data, conf, config_map, previous) - try: - save_dir = config_map.save_dir - if not save_dir.endswith('/'): - save_dir = save_dir + '/' - except AttributeError: - save_dir = 'results/' - - save_results(results, save_dir) - - if len(results) == 1: - errors = results[0][3] - errors.pop(0) - plt.plot(errors) - plt.ylabel('errors') - plt.show() - - return results diff --git a/src_py/controller/reconstruction_multi.py b/src_py/controller/reconstruction_multi.py new file mode 100644 index 0000000..2cd6a75 --- /dev/null +++ b/src_py/controller/reconstruction_multi.py @@ -0,0 +1,188 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + + +""" +Please make sure the installation :ref:`pre-requisite-reference-label` are met. +This module controls the reconstruction process. The user has to provide parameters such as type of processor, data, and configuration. +The processor specifies which library will be used by CFM (Calc Fast Module) that performs the processor intensive calculations. The module +can be run on cpu, or gpu. Depending on the gpu hardware and library, one can use opencl or cuda library. +The module starts the data preparation routines, calls for reconstruction using the CFM, and prepares the reconstructed data for +visualization. +""" + + +import os +import src_py.controller.fast_module as calc +from parsl.app.app import python_app +import src_py.utilities.utils as ut + +__author__ = "Barbara Frosik" +__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." +__docformat__ = 'restructuredtext en' +__all__ = ['read_config', + 'reconstruction'] + + +def load_config(threads): + import parsl + from parsl.config import Config + from parsl.executors.ipp import IPyParallelExecutor + from libsubmit.providers import LocalProvider + from libsubmit.channels import LocalChannel + local_config = Config( + executors=[ + IPyParallelExecutor( + label="local_ipp", + provider=LocalProvider( + channel=LocalChannel(), + init_blocks=1, + max_blocks=threads, + parallelism=1, + ) + ) + ] + ) + dfk = parsl.load(local_config) + + +def assign_devices(devices, threads): + dev_no = len(devices) + dev = [] + for thread in range(threads): + if thread < dev_no: + dev.append(devices[thread]) + else: + dev.append(-1) + return dev + + +@python_app +def run_fast_module(proc, device, conf, data, coh_dims, prev_image, prev_support, prev_coh): + image, support, coherence, error = calc.fast_module_reconstruction(proc, device, conf, data, coh_dims, + prev_image, prev_support, prev_coh) + return image, support, coherence, error + + +def read_results(read_dir): + images = [] + supports = [] + cohs = [] + + for sub in os.listdir(read_dir): + image, support, coh = ut.read_results(os.path.join(read_dir, sub)+'/') + images.append(image) + supports.append(support) + cohs.append(coh) + + return images, supports, cohs + + +def save_results(threads, images, supports, cohs, save_dir): + for i in range(threads): + ut.save_results(images[i], supports[i], cohs[i], save_dir + str(i) + '/') + + +def rec(proc, data, conf, config_map, images, supports, cohs): + try: + devices = config_map.device + except: + devices = [-1] + + # assign device for each thread + threads = config_map.threads + devices = assign_devices(devices, threads) + + try: + coh_dims = tuple(config_map.partial_coherence_roi) + except: + coh_dims = None + + res = [] + errs = [] + for i in range(threads): + res.append(None) + errs.append(None) + res[i] = run_fast_module(proc, devices[i], conf, data, coh_dims, images[i], supports[i], cohs[i]) + + # Wait for all Parsl runs to complete.. + complete_results = [i.result() for i in res] + for i, r in enumerate(complete_results): + images[i] = r[0] + supports[i] = r[1] + cohs[i] = r[2] + errs[i] = r[3] + return images, supports, cohs, errs + + +def reconstruction(threads, proc, data, conf, config_map): + """ + This function is called by the user. It checks whether the data is valid and configuration file exists. + It calls function to pre-process the data, and then to run reconstruction. + The reconstruction results, image and errors are returned. + + Parameters + ---------- + proc : str + a string indicating the processor type + + conf : str + configuration file name + + Returns + ------- + image : array + a 3D np array containing reconstructed image + + er : array + a vector containing mean error for each iteration + """ + + cont = False + try: + if config_map.cont: + try: + continue_dir = config_map.continue_dir + if not continue_dir.endswith('/'): + continue_dir = continue_dir + '/' + images, supports, cohs = read_results(continue_dir) + cont = True + except: + print("continue_dir not configured") + return None + except: + pass + + if not cont: + images = [] + supports = [] + cohs = [] + for _ in range(threads): + images.append(None) + supports.append(None) + cohs.append(None) + + load_config(threads) + images, supports, cohs, errs = rec(proc, data, conf, config_map, images, supports, cohs) + + try: + save_dir = config_map.save_dir + if not save_dir.endswith('/'): + save_dir = save_dir + '/' + except AttributeError: + save_dir = 'results/' + + save_results(threads, images, supports, cohs, save_dir) + + print('done') + + + + + diff --git a/src_py/utilities/utils.py b/src_py/utilities/utils.py index c07a9b1..2de2cfd 100644 --- a/src_py/utilities/utils.py +++ b/src_py/utilities/utils.py @@ -287,3 +287,33 @@ def flip(m, axis): % (axis, m.ndim)) return m[tuple(indexer)] + +def read_prev_results(read_dir): + try: + imagefile = read_dir + 'image.npy' + image = np.load(imagefile) + + supportfile = read_dir + 'support.npy' + support = np.load(supportfile) + + try: + cohfile = read_dir + 'coherence.npy' + coh = np.load(cohfile) + except: + coh = None + except: + pass + + return image, support, coh + + +def save_results(image, support, coh, save_dir): + if not os.path.exists(save_dir): + os.makedirs(save_dir) + + np.save(save_dir + 'image', image) + np.save(save_dir + 'support', support) + if not coh is None: + np.save(save_dir + 'coherence', coh) + + From fb2fc516e6fa64d280b7382f3080eac75b417b7b Mon Sep 17 00:00:00 2001 From: bfrosik Date: Mon, 12 Nov 2018 10:42:44 -0600 Subject: [PATCH 096/336] fixed print statement --- src_py/controller/reconstruction_multi.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src_py/controller/reconstruction_multi.py b/src_py/controller/reconstruction_multi.py index 2cd6a75..ddb40b2 100644 --- a/src_py/controller/reconstruction_multi.py +++ b/src_py/controller/reconstruction_multi.py @@ -22,6 +22,8 @@ import src_py.controller.fast_module as calc from parsl.app.app import python_app import src_py.utilities.utils as ut +import time + __author__ = "Barbara Frosik" __copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." @@ -169,7 +171,11 @@ def reconstruction(threads, proc, data, conf, config_map): cohs.append(None) load_config(threads) + start = time.time() images, supports, cohs, errs = rec(proc, data, conf, config_map, images, supports, cohs) + stop = time.time() + t = stop - start + print ('run in ' + str(t) + ' sec') try: save_dir = config_map.save_dir @@ -182,7 +188,3 @@ def reconstruction(threads, proc, data, conf, config_map): print('done') - - - - From 758f49d409fd0b331575c346bda8933d81a81a8d Mon Sep 17 00:00:00 2001 From: bfrosik Date: Thu, 15 Nov 2018 11:10:03 -0600 Subject: [PATCH 097/336] Added everything.sh script and refactored --- everything.sh | 35 ++++++++++++ run_data.py | 21 +++----- run_disp.py | 29 +++++----- run_prepare.py | 66 +++++++++++++++++++---- run_rec.py | 21 ++++---- src_py/controller/data.py | 27 +++++++--- src_py/controller/fast_module.py | 3 -- src_py/controller/gen_rec.py | 9 +++- src_py/controller/reconstruction.py | 20 ++++--- src_py/controller/reconstruction_multi.py | 22 +++++--- src_py/utilities/CXDVizNX.py | 6 ++- src_py/utilities/utils.py | 18 ++++--- 12 files changed, 195 insertions(+), 82 deletions(-) create mode 100644 everything.sh mode change 100644 => 100755 run_prepare.py diff --git a/everything.sh b/everything.sh new file mode 100644 index 0000000..6cdaaf1 --- /dev/null +++ b/everything.sh @@ -0,0 +1,35 @@ +#!/bin/sh + + +export LD_LIBRARY_PATH=/usr/local/lib:/local/libconfig/lib:/local/af/lib + +#export LD_LIBRARY_PATH=/home/beams/CXDUSER/CDI/libconfig/lib:/usr/lib64:/home/beams/CXDUSER/CDI/ArrayFire-v3.4.2/lib:/usr/local-linux/cuda-8.0/lib64:/usr/local-linux/cuda-8.0/nvvm/lib64 + +#newest arrayfire version will work with cuda 9.1 +#export LD_LIBRARY_PATH=/home/beams/CXDUSER/CDI/arrayfire/lib:/home/beams/CXDUSER/CDI/libconfig/lib:/local/cuda-9.0/lib64:/local/cuda-9.0/nvvm/lib64 + +p=$PATH +p=${p//"anaconda2"/"anaconda3"} +export PATH=$p + +dev=$1 +prefix=$2 +scans=$3 +conf_dir=$4 + +experiment_dir=$(python run_prepare.py $prefix $scans $conf_dir 2>&1 >/dev/null) + +python run_data.py $experiment_dir + +python run_rec.py $dev $experiment_dir + +p=$PATH +p=${p//"anaconda3"/"anaconda2"} +export PATH=$p + +python run_disp.py $experiment_dir + +#p=$PATH +#p=${p//"anaconda2"/"anaconda3"} +#export PATH=$p + diff --git a/run_data.py b/run_data.py index 7051e21..2b2de61 100755 --- a/run_data.py +++ b/run_data.py @@ -5,25 +5,20 @@ def main(arg): + print ('preparing data') parser = argparse.ArgumentParser() - parser.add_argument("fname", help="data file filename. It is assumed the file is in tif format.") - parser.add_argument("conf", help="configuration file.") + parser.add_argument("experiment_dir", help="experiment directory") args = parser.parse_args() - conf = args.conf - fname = args.fname - if not os.path.isfile(conf): - parser = argparse.ArgumentParser() - parser.add_argument("working_dir", help="working directory.") - parser.add_argument("id", help="experiment id.") - args = parser.parse_args() - conf = os.path.join(args.working_dir, args.id, 'conf', 'config_data') - fname = os.path.join(args.working_dir, args.id, 'prep', 'prep_data.tif') + experiment_dir = args.experiment_dir - dt.prep(fname, conf) + prep_file = os.path.join(experiment_dir, 'prep', 'prep_data.tif') + + dt.prep(prep_file, experiment_dir) + print ('done preparing data') if __name__ == "__main__": - main(sys.argv[1:]) + main(sys.argv[1:]) #python run_data.py '/local/bfrosik/CDI/Staff14-3_S0149.tif' 'config_data' diff --git a/run_disp.py b/run_disp.py index 172d094..082eaf6 100755 --- a/run_disp.py +++ b/run_disp.py @@ -8,22 +8,23 @@ def save_vtk(res_dir, conf): try: - imagefile = res_dir + 'image.npy' + imagefile = os.path.join(res_dir, 'image.npy') + image = np.load(imagefile) except: return - image = np.load(imagefile) try: - supportfile = res_dir + 'support.npy' + supportfile = os.path.join(res_dir, 'support.npy') + support = np.load(supportfile) except: print ('support file ' + supportfile + ' is missing') return - support = np.load(supportfile) cx.save_CX(conf, image, support, res_dir) -def to_vtk(conf): +def to_vtk(experiment_dir): + conf = os.path.join(experiment_dir, 'conf', 'config_disp') config_map = ut.read_config(conf) if config_map is None: print ("can't read configuration file") @@ -31,27 +32,27 @@ def to_vtk(conf): try: save_dir = config_map.save_dir - if not save_dir.endswith('/'): - save_dir = save_dir + '/' except AttributeError: - save_dir = 'results/' + save_dir = os.path.join(experiment_dir, 'results') save_vtk(save_dir, conf) - + print ('save dir', save_dir) for sub in os.listdir(save_dir): - subdir = save_dir + sub + '/' + subdir = os.path.join(save_dir, sub) + print ('subdir', subdir) if os.path.isdir(subdir): save_vtk(subdir, conf) def main(arg): + print ('preparing display') parser = argparse.ArgumentParser() - parser.add_argument("conf", help="configuration file.") + parser.add_argument("experiment_dir", help="experiment directory") args = parser.parse_args() - conf = args.conf - - to_vtk(conf) + experiment_dir = args.experiment_dir + to_vtk(experiment_dir) + print ('done with display') if __name__ == "__main__": main(sys.argv[1:]) diff --git a/run_prepare.py b/run_prepare.py old mode 100644 new mode 100755 index ae5352b..9a4a2e5 --- a/run_prepare.py +++ b/run_prepare.py @@ -1,20 +1,25 @@ import argparse +import pylibconfig2 as cfg import sys +import os import aps_34id.prep as prep +import shutil def main(arg): + def has_conf(dir): + conf = os.path.join(dir, 'config') + return os.path.isfile(conf) + + parser = argparse.ArgumentParser() - parser.add_argument("working_dir", help="working directory") - parser.add_argument("id", help="name of the experiment/data reconstruction") + parser.add_argument("id", help="prefix to name of the experiment/data reconstruction") parser.add_argument("scan", help="a range of scans to prepare data from") - parser.add_argument("data_dir", help="directory where the scan data is collected") - parser.add_argument("specfile", help="spec file saved during experiment") - parser.add_argument("darkfile", help="file containing dark data") - parser.add_argument("whitefile", help="file containing white data") - + parser.add_argument("conf_dir", help="directory where the configuration files are located") args = parser.parse_args() scan = args.scan + id = args.id + '_' + scan + print ('reading data file for experiment ' + id) try: # convert it to list of int scan_range = scan.split('-') @@ -23,12 +28,55 @@ def main(arg): scan_num.append(int(scan_range[i])) except: print ('enter numeric values for scan range') + sys.exit(0) + + conf_dir = args.conf_dir + + if not os.path.isdir(conf_dir): + print ('configured directory ' + conf_dir + ' does not exist') + sys.exit(0) + + # find if there is "last" file in the given directory and use the last configuration from there if exists + # otherwise use the default config + last_conf_dir = os.path.join(conf_dir, 'last') - prep.prepare(args.working_dir, args.id, scan_num, args.data_dir, args.specfile, args.darkfile, args.whitefile) + # try read configuration from last + if os.path.isdir(last_conf_dir) and has_conf(last_conf_dir): + read_from_dir = last_conf_dir + elif has_conf(conf_dir): + read_from_dir = conf_dir + else: + print('configured directory ' + conf_dir + ' does not contain file "config"') + sys.exit(0) + main_conf = os.path.join(read_from_dir, 'config') + with open(main_conf, 'r') as f: + config_map = cfg.Config(f.read()) + + experiment_dir = os.path.join(config_map.working_dir, id) + experiment_conf_dir = os.path.join(experiment_dir, 'conf') + if not os.path.exists(experiment_conf_dir): + os.makedirs(experiment_conf_dir) + + # copy config_data, config_rec, cofig_disp files from cofig directory into the experiment conf directory + shutil.copy(main_conf, experiment_conf_dir) + conf_data = os.path.join(read_from_dir,'config_data') + shutil.copy(conf_data, experiment_conf_dir) + conf_rec = os.path.join(read_from_dir,'config_rec') + shutil.copy(conf_rec, experiment_conf_dir) + conf_disp = os.path.join(read_from_dir,'config_disp') + if os.path.isfile(conf_disp): + shutil.copy(conf_disp, experiment_conf_dir) + + prep.prepare(config_map.working_dir, id, scan_num, config_map.data_dir, config_map.specfile, config_map.darkfile, config_map.whitefile) + print ('done reading data') + return experiment_dir if __name__ == "__main__": - main(sys.argv[1:]) + exit(main(sys.argv[1:])) + + +# python run_prepare.py prefix scans conf_dir # python run_prepare.py '/home/beams/CXDUSER/CDI/cdi-master/test' # 'A_48-60' diff --git a/run_rec.py b/run_rec.py index b6143da..b2eb2d2 100755 --- a/run_rec.py +++ b/run_rec.py @@ -21,7 +21,9 @@ def term_handler(signal, frame): signal.pause() -def reconstruction(proc, conf): +def reconstruction(proc, experiment_dir): + print ('starting reconstruction') + conf = os.path.join(experiment_dir, 'conf', 'config_rec') config_map = ut.read_config(conf) if config_map is None: print ("can't read configuration file") @@ -29,13 +31,11 @@ def reconstruction(proc, conf): try: data_dir = config_map.data_dir - if not data_dir.endswith('/'): - data_dir = data_dir + '/' except AttributeError: - data_dir = 'data/' + data_dir = os.path.join(experiment_dir, 'data') + datafile = os.path.join(data_dir, 'data.npy') try: - datafile = data_dir + 'data.npy' data = np.load(datafile) print ('data shape', data.shape) except: @@ -48,20 +48,21 @@ def reconstruction(proc, conf): generations = 1 if generations > 1: - gen_rec.reconstruction(generations, proc, data, conf, config_map) + gen_rec.reconstruction(generations, proc, data, experiment_dir, config_map) else: - rec.reconstruction(proc, data, conf, config_map) + rec.reconstruction(proc, data, experiment_dir, config_map) + print ('done with reconstruction') def main(arg): parser = argparse.ArgumentParser() parser.add_argument("proc", help="the processor the code will run on, can be 'cpu', 'opencl', or 'cuda'.") - parser.add_argument("conf", help="configuration file.") + parser.add_argument("experiment_dir", help="experiment directory.") args = parser.parse_args() proc = args.proc - conf = args.conf + experiment_dir = args.experiment_dir - reconstruction(proc, conf) + reconstruction(proc, experiment_dir) if __name__ == "__main__": diff --git a/src_py/controller/data.py b/src_py/controller/data.py index 2149f2c..1e28bf8 100644 --- a/src_py/controller/data.py +++ b/src_py/controller/data.py @@ -28,7 +28,7 @@ __all__ = ['prep'] -def prep(fname, conf): +def prep(fname, conf_info): """ This function prepares raw data for reconstruction. It uses configured parameters. The preparation consists of the following steps: @@ -56,7 +56,13 @@ def prep(fname, conf): """ data = ut.get_array_from_tif(fname) - + if os.path.isdir(conf_info): + experiment_dir = conf_info + conf = os.path.join(experiment_dir, 'conf', 'config_data') + else: + #assuming it's a file + conf = conf_info + experiment_dir = None config_map = ut.read_config(conf) if config_map is None: print ("can't read configuration file") @@ -66,6 +72,7 @@ def prep(fname, conf): # zero out the aliens, aliens are the same for each data prep try: aliens = config_map.aliens + print ('removing aliens') for alien in aliens: data[alien[0]:alien[3], alien[1]:alien[4], alien[2]:alien[5]] = 0 except AttributeError: @@ -73,6 +80,7 @@ def prep(fname, conf): try: amp_threshold = config_map.amp_threshold + print ('applied threshold') except AttributeError: print ('define amplitude threshold. Exiting') return @@ -96,12 +104,17 @@ def prep(fname, conf): data_dir = config_map.data_dir except AttributeError: data_dir = 'data' + if experiment_dir is not None: + data_dir = os.path.join(experiment_dir, data_dir) + if not os.path.exists(data_dir): + os.makedirs(data_dir) # zero out the noise prep_data = np.where(data < amp_threshold, 0, data) if not binsizes is None: # do binning + print ('binning') prep_data = ut.binning(prep_data, binsizes) # square root data @@ -109,23 +122,21 @@ def prep(fname, conf): if not pads is None: # adjust the size, either zero pad or crop array + print ('adjusting dimention') prep_data = ut.adjust_dimensions(prep_data, pads) else: prep_data = ut.adjust_dimensions(prep_data, (0,0,0,0,0,0)) if not center_shift is None: # get centered array + print ('shift center') prep_data = ut.get_centered(prep_data, center_shift) else: prep_data = ut.get_centered(prep_data, [0,0,0]) # save data - if not data_dir.endswith('/'): - data_dir = data_dir + '/' - if not os.path.exists(data_dir): - os.makedirs(data_dir) - - data_file = data_dir + 'data.npy' + data_file = os.path.join(data_dir, 'data.npy') + print ('saving data ready for reconstruction') np.save(data_file, prep_data) diff --git a/src_py/controller/fast_module.py b/src_py/controller/fast_module.py index 589070b..c12b80a 100755 --- a/src_py/controller/fast_module.py +++ b/src_py/controller/fast_module.py @@ -71,9 +71,6 @@ def fast_module_reconstruction(proc, device, conf, data, coh_dims, image=None, s #bridge = bridge_cuda fast_module = bridge_cuda.PyBridge() - print ('proc id', os.getpid()) - print ('thread id', threading.get_ident()) - # shift data data=sf.fftshift(data) data = np.swapaxes(data,1,2) diff --git a/src_py/controller/gen_rec.py b/src_py/controller/gen_rec.py index 65176ec..2329c66 100644 --- a/src_py/controller/gen_rec.py +++ b/src_py/controller/gen_rec.py @@ -124,7 +124,7 @@ def save_results(image, support, coherence, save_dir): np.save(save_dir + 'coherence', coherence) -def reconstruction(generations, proc, data, conf, config_map): +def reconstruction(generations, proc, data, conf_info, config_map): """ This function is called by the user. It checks whether the data is valid and configuration file exists. It calls function to pre-process the data, and then to run reconstruction. @@ -177,6 +177,13 @@ def reconstruction(generations, proc, data, conf, config_map): gen_obj = Generation(config_map) # the results are not kept + if os.path.isdir(conf_info): + experiment_dir = conf_info + conf = os.path.join(experiment_dir, 'conf', 'config_rec') + else: + # assuming it's a file + conf = conf_info + if low_resolution_generations > 0: for g in range(low_resolution_generations): errors.append(None) diff --git a/src_py/controller/reconstruction.py b/src_py/controller/reconstruction.py index d97cd44..4d4a9cb 100644 --- a/src_py/controller/reconstruction.py +++ b/src_py/controller/reconstruction.py @@ -46,7 +46,7 @@ def rec(proc, data, conf, config_map, image, support, coh): return calc.fast_module_reconstruction(proc, devices[0], conf, data, coh_dims, image, support, coh) -def reconstruction(proc, data, conf, config_map): +def reconstruction(proc, data, conf_info, config_map): """ This function is called by the user. It checks whether the data is valid and configuration file exists. It calls function to pre-process the data, and then to run reconstruction. @@ -76,15 +76,13 @@ def reconstruction(proc, data, conf, config_map): threads = 1 if threads > 1: - multi.reconstruction(threads, proc, data, conf, config_map) + multi.reconstruction(threads, proc, data, conf_info, config_map) else: cont = False try: if config_map.cont: try: continue_dir = config_map.continue_dir - if not continue_dir.endswith('/'): - continue_dir = continue_dir + '/' image, support, coh = ut.read_results(continue_dir) cont = True except: @@ -98,14 +96,22 @@ def reconstruction(proc, data, conf, config_map): support = None coh = None + if os.path.isdir(conf_info): + experiment_dir = conf_info + conf = os.path.join(experiment_dir, 'conf', 'config_rec') + else: + # assuming it's a file + conf = conf_info + experiment_dir = None + image, support, coh, errs = rec(proc, data, conf, config_map, image, support, coh) try: save_dir = config_map.save_dir - if not save_dir.endswith('/'): - save_dir = save_dir + '/' except AttributeError: - save_dir = 'results/' + save_dir = 'results' + if experiment_dir is not None: + save_dir = os.path.join(experiment_dir, save_dir) ut.save_results(image, support, coh, save_dir) diff --git a/src_py/controller/reconstruction_multi.py b/src_py/controller/reconstruction_multi.py index ddb40b2..f61f49f 100644 --- a/src_py/controller/reconstruction_multi.py +++ b/src_py/controller/reconstruction_multi.py @@ -88,7 +88,8 @@ def read_results(read_dir): def save_results(threads, images, supports, cohs, save_dir): for i in range(threads): - ut.save_results(images[i], supports[i], cohs[i], save_dir + str(i) + '/') + subdir = os.path.join(save_dir, str(i)) + ut.save_results(images[i], supports[i], cohs[i], subdir) def rec(proc, data, conf, config_map, images, supports, cohs): @@ -123,7 +124,7 @@ def rec(proc, data, conf, config_map, images, supports, cohs): return images, supports, cohs, errs -def reconstruction(threads, proc, data, conf, config_map): +def reconstruction(threads, proc, data, conf_info, config_map): """ This function is called by the user. It checks whether the data is valid and configuration file exists. It calls function to pre-process the data, and then to run reconstruction. @@ -151,8 +152,6 @@ def reconstruction(threads, proc, data, conf, config_map): if config_map.cont: try: continue_dir = config_map.continue_dir - if not continue_dir.endswith('/'): - continue_dir = continue_dir + '/' images, supports, cohs = read_results(continue_dir) cont = True except: @@ -172,6 +171,15 @@ def reconstruction(threads, proc, data, conf, config_map): load_config(threads) start = time.time() + + if os.path.isdir(conf_info): + experiment_dir = conf_info + conf = os.path.join(experiment_dir, 'conf', 'config_rec') + else: + # assuming it's a file + conf = conf_info + experiment_dir = None + images, supports, cohs, errs = rec(proc, data, conf, config_map, images, supports, cohs) stop = time.time() t = stop - start @@ -179,10 +187,10 @@ def reconstruction(threads, proc, data, conf, config_map): try: save_dir = config_map.save_dir - if not save_dir.endswith('/'): - save_dir = save_dir + '/' except AttributeError: - save_dir = 'results/' + save_dir = 'results' + if experiment_dir is not None: + save_dir = os.path.join(experiment_dir, save_dir) save_results(threads, images, supports, cohs, save_dir) diff --git a/src_py/utilities/CXDVizNX.py b/src_py/utilities/CXDVizNX.py index e8c7c0b..a58903d 100644 --- a/src_py/utilities/CXDVizNX.py +++ b/src_py/utilities/CXDVizNX.py @@ -355,7 +355,9 @@ def save_CX(conf, image, support, save_dir): viz.set_geometry(params, image.shape) crop = get_crop(params, image.shape) viz.set_crop(crop[0], crop[1], crop[2]) # save image - viz.write_structured_grid(save_dir + 'image') + image_file = os.path.join(save_dir, 'image') + viz.write_structured_grid(image_file) viz.set_array(support) - viz.write_structured_grid(save_dir + 'support') + support_file = os.path.join(save_dir, 'support') + viz.write_structured_grid(support_file) diff --git a/src_py/utilities/utils.py b/src_py/utilities/utils.py index 2de2cfd..9eaa140 100644 --- a/src_py/utilities/utils.py +++ b/src_py/utilities/utils.py @@ -288,16 +288,16 @@ def flip(m, axis): return m[tuple(indexer)] -def read_prev_results(read_dir): +def read_results(read_dir): try: - imagefile = read_dir + 'image.npy' + imagefile = os.path.join(read_dir, 'image.npy') image = np.load(imagefile) - supportfile = read_dir + 'support.npy' + supportfile = os.path.join(read_dir, 'support.npy') support = np.load(supportfile) try: - cohfile = read_dir + 'coherence.npy' + cohfile = os.path.join(read_dir, 'coherence.npy') coh = np.load(cohfile) except: coh = None @@ -306,14 +306,16 @@ def read_prev_results(read_dir): return image, support, coh - def save_results(image, support, coh, save_dir): if not os.path.exists(save_dir): os.makedirs(save_dir) - np.save(save_dir + 'image', image) - np.save(save_dir + 'support', support) + image_file = os.path.join(save_dir, 'image') + np.save(image_file, image) + support_file = os.path.join(save_dir, 'support') + np.save(support_file, support) if not coh is None: - np.save(save_dir + 'coherence', coh) + coh_file = os.path.join(save_dir, 'coherence') + np.save(coh_file, coh) From 23182cb55e1d156c6af9ab60c6ec687e772daddf Mon Sep 17 00:00:00 2001 From: bfrosik Date: Mon, 19 Nov 2018 16:55:39 -0600 Subject: [PATCH 098/336] added print return value (for xfm1 to work) --- run_prepare.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/run_prepare.py b/run_prepare.py index 9a4a2e5..a417dce 100755 --- a/run_prepare.py +++ b/run_prepare.py @@ -69,7 +69,7 @@ def has_conf(dir): shutil.copy(conf_disp, experiment_conf_dir) prep.prepare(config_map.working_dir, id, scan_num, config_map.data_dir, config_map.specfile, config_map.darkfile, config_map.whitefile) - print ('done reading data') + print (experiment_dir) return experiment_dir if __name__ == "__main__": From c0a113d1152952b8d8c985024b9c0ca7291b1d02 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Tue, 4 Dec 2018 15:05:29 -0600 Subject: [PATCH 099/336] Fixed display issue (dth in rad instead of deg), Fixed performance problem for low resolution feature Added binning to config_disp --- aps_34id/prep.py | 83 +++++++-------- conf/defaults/config | 6 ++ conf/defaults/config_data | 5 + conf/defaults/config_disp | 16 +++ conf/defaults/config_rec | 194 +++++++++++++++++++++++++++++++++++ conf/last/config | 6 ++ conf/last/config_data | 5 + conf/last/config_disp | 16 +++ conf/last/config_rec | 194 +++++++++++++++++++++++++++++++++++ everything.sh | 9 +- include/util.hpp | 3 +- run_disp.py | 29 +++++- run_prepare.py | 5 +- src_cpp/support.cpp | 2 +- src_cpp/util.cpp | 97 +----------------- src_py/utilities/CXDVizNX.py | 15 ++- 16 files changed, 527 insertions(+), 158 deletions(-) create mode 100644 conf/defaults/config create mode 100644 conf/defaults/config_data create mode 100644 conf/defaults/config_disp create mode 100644 conf/defaults/config_rec create mode 100644 conf/last/config create mode 100644 conf/last/config_data create mode 100644 conf/last/config_disp create mode 100644 conf/last/config_rec diff --git a/aps_34id/prep.py b/aps_34id/prep.py index 5737e98..b74ef31 100644 --- a/aps_34id/prep.py +++ b/aps_34id/prep.py @@ -4,47 +4,37 @@ import tifffile as tif import copy import scipy.fftpack as sf +from xrayutilities.io import spec as spec def parse_spec(specfile, scan): - # set detector to default (kind of hack) - detector = '34idcTIM2' - # extract parameters from spec file - f = open(specfile) - start = False - for line in f: - if line.startswith('#S %d '%scan): - start = True - l = line.split() - dth = (float(l[5])-float(l[4]))/int(l[6]) - continue - if not start: - continue - if line.startswith('#P0 '): - l = line.split() - delta = float(l[1]) - gamma = float(l[6]) - elif line.startswith('#P3 '): - l = line.split() - arm = float(l[3])*1.E-3 - energy = float(l[6]) - lam = 12.398 / energy / 10 - elif line.startswith('#UIMDET'): - l = line.split() - detector = l[1] - elif line.startswith('#UIMR5'): - l = line.split() - det_area = l[1:-1] - det_area1 = int(det_area[0]), int(det_area[1]) - det_area2 = int(det_area[2]), int(det_area[3]) - if line.startswith('#L '): - break - f.close() - return dth, delta, gamma, arm, lam, detector, det_area1, det_area2 + # Scan numbers start at one but the list is 0 indexed + ss = spec.SPECFile(specfile)[scan - 1] + + # Stuff from the header + detector = ss.getheader_element('UIMDET') + det_area = ss.getheader_element('UIMR5').split() + det_area1 = int(det_area[0]), int(det_area[1]) + det_area2 = int(det_area[2]), int(det_area[3]) + command = ss.command.split() + scanmot = command[1] + scanmot_del = (float(command[3]) - float(command[2])) / int(command[4]) + + # Motor stuff from the header + delta = ss.init_motor_pos['INIT_MOPO_Delta'] + gamma = ss.init_motor_pos['INIT_MOPO_Gamma'] + arm = ss.init_motor_pos['INIT_MOPO_camdist'] + energy = ss.init_motor_pos['INIT_MOPO_Energy'] + lam = 12.398 / energy / 10 # in nanometers + + # returning the scan motor name as well. Sometimes we scan things + # other than theta. So we need to expand the capability of the display + # code. + return scanmot_del, delta, gamma, arm, lam, detector, det_area1, det_area2, scanmot def set_disp_conf(dth, delta, gamma, arm, lam, detector, disp_dir): # pixel size by detector - pixel = {'34idcTIM2':'[55.0e-6, 55.0e-6]'} + pixel = {'34idcTIM2:':'[55.0e-6, 55.0e-6]'} # create display configuration file from the parsed parameters temp_file = os.path.join(disp_dir, 'temp') @@ -153,13 +143,18 @@ def prep_data(scan, det_area1, det_area2, data_dir, prep_data_dir, darkfile, whi # find the darkfield array dark_full = tif.imread(darkfile).astype(float) - dark_full = np.transpose(dark_full) #Ross' arrays are transposed from imread - dark = dark_full[slice(det_area1[0], det_area1[1]), slice(det_area2[0], det_area2[1])] #If fourth quad only + # Ross' arrays are transposed from imread + dark_full = np.transpose(dark_full) + # crop the corresponding quad or use the whole array, depending on what info was parsed from spec file + dark = dark_full[slice(det_area1[0], det_area1[1]), slice(det_area2[0], det_area2[1])] # find the whitefield array white_full = tif.imread(whitefile).astype(float) - white_full = np.transpose(white_full) #Ross' arrays are transposed from imread - white = white_full[slice(det_area1[0], det_area1[1]), slice(det_area2[0], det_area2[1])] #crop to the image + # Ross' arrays are transposed from imread + white_full = np.transpose(white_full) + # crop the corresponding quad or use the whole array, depending on what info was parsed from spec file + white = white_full[slice(det_area1[0], det_area1[1]), slice(det_area2[0], det_area2[1])] + # set the bad pixels to some large value white = np.where(white==0, 1e20, white) #Some large value if len(scan) == 1: @@ -193,18 +188,14 @@ def prep_data(scan, det_area1, det_area2, data_dir, prep_data_dir, darkfile, whi else: b = arr - # if len(scan) == 1: - # data_file = str(scan)+'_data' - # else: - # data_file = str(scan[0])+'-'+str(scan[1])+'_data' data_file = 'prep_data.tif' data_file = os.path.join(prep_data_dir, data_file) tif.imsave(data_file, b.astype(np.int32)) def prepare(working_dir, id, scan, data_dir, specfile, darkfile, whitefile): - # assuming all parameters are validated - #create directory to save prepared data prep_result_dir/id + # assuming all parameters were validated (i.e working directory exists, etc.) + #create directory to save prepared data ,//'prep' working_dir = os.path.join(working_dir, id) if not os.path.exists(working_dir): os.makedirs(working_dir) @@ -218,7 +209,7 @@ def prepare(working_dir, id, scan, data_dir, specfile, darkfile, whitefile): os.makedirs(conf_dir) scan_end = scan[len(scan)-1] - dth, delta, gamma, arm, lam, detector, det_area1, det_area2 = parse_spec(specfile, scan_end) + dth, delta, gamma, arm, lam, detector, det_area1, det_area2, scanmot = parse_spec(specfile, scan_end) # disp prep set_disp_conf(dth, delta, gamma, arm, lam, detector, conf_dir) diff --git a/conf/defaults/config b/conf/defaults/config new file mode 100644 index 0000000..7eadd4d --- /dev/null +++ b/conf/defaults/config @@ -0,0 +1,6 @@ +working_dir = "test" +data_dir = "/net/s34data/export/34idc-data/2018/Chung1118/ADChung1118a" +specfile = "/net/s34data/export/34idc-data/2018/Chung1118/Chung1118a.spec" +darkfile = "/net/s34data/export/34idc-work/2018/Chung1118/dark.tif" +whitefile = "/net/s34data/export/34idc-work/2018/Chung1118/CelaWhiteField.tif" + diff --git a/conf/defaults/config_data b/conf/defaults/config_data new file mode 100644 index 0000000..131b0a0 --- /dev/null +++ b/conf/defaults/config_data @@ -0,0 +1,5 @@ +amp_threshold = 2.0 +aliens = ((0,0,0,0,0,0), (0,0,0,0,0,0)) +binning = (1,1,1) +center_shift = (0,0,0) +adjust_dimensions = (-4, -4, -65, -65, -65, -65) diff --git a/conf/defaults/config_disp b/conf/defaults/config_disp new file mode 100644 index 0000000..14bf428 --- /dev/null +++ b/conf/defaults/config_disp @@ -0,0 +1,16 @@ +crop = [.5, .5, .5] + +//------------------Below are definitions/ exemples of configurable items----------------------- +// for APS beamline 34-IDC these are parsed from spec file + +// lamda = 0.10780869565217391 // Wavelength of x-ray (units in nm) +// delta = 26.74975 // Detector angles (in degrees) +// gamma = 8.5102 // (in degrees) +// arm = 750.0 // Detector distance from sample (in mm) +// dth = 0.007499999999999995 // step values for th translation (in degrees) +// pixel = [55.0e-6, 55.0e-6] // pixel size (in meters) + +// for APS beamline 34-IDC binning is imported from config_data file +// binning = (1,1,1) + + diff --git a/conf/defaults/config_rec b/conf/defaults/config_rec new file mode 100644 index 0000000..8be8084 --- /dev/null +++ b/conf/defaults/config_rec @@ -0,0 +1,194 @@ +threads = 2 +//device = (4) + +generations = 1 +low_resolution_generations = 0 + +algorithm_sequence = ((3,("ER",20),("HIO",180)),(1,("ER",22))) +beta = .9 + +twin_trigger = (2) + +amp_support_trigger = (0,1) +support_type = "GAUSS" +support_threshold = 0.15 +support_sigma = 1.0 +support_area = [.5,.5,.5] + +//phase_support_trigger = (0,1,20) +phase_min = -1.57 +phase_max = 1.57 + +//pcdi_trigger = (50,50) +partial_coherence_type = "LUCY" +partial_coherence_iteration_num = 20 +partial_coherence_normalize = true +partial_coherence_roi = [32,32,16] + +resolution_trigger = (0, 1, 310) +iter_res_det_range = (.7) +iter_res_sigma_range = (1.0) + +avarage_trigger = (-19,1) + +//------------------Below are definitions/ exemples of configurable items----------------------- + +// Trigger can be defined as a single iteration, or multiple iterations. +// examples: +// (3) trigger at iteration 3 +// (20, 5) trigger starts at iteration 20, repeats every 5 iteration for the rest of run +// (20, 5, 40) trigger starts at iteration 20, repeats every 5 iteration until iteration 40 +// Triggers can also be a combination of any of the above, ex: ((4), (3, 7, 24), (6,20)) +// Below is a list of the supported triggers: +// garbage_trigger, twin_trigger, amp_support_trigger, phase_support_trigger, pcdi_trigger, resolution_trigger, +// average_trigger. +// The features that are related to the triggers are described below where the trigger is defined. +// If a trigger is not defined, the feature is turned off. Comment out trigger that you don't want to apply. +// Adding a new feature/ trigger is described in common.h header file. + +// GENERAL +//data_dir = "test/A/data" + // directory from which data is read + +//save_dir = "test/A/results" + // directory where results of reconstruction as npy files are saved + // if threads > 1, result from each thread will be stored in subdirectory 1,2,3 etc. + +//cont = false + // only applied if generations equals 1, or not defined + // true if the reconstruction start with previous results stored in continue_dir + +//continue_dir = "cont" + // directory from which results are read for reconstruction continuation + // if the directory contains subdirectories, a thread will start for each subdirectory + +//threads = 3 + // number of reconstructions to start with + +//device = [0,0] + // ID of the target devices for each thread. + // If more threads or not defined, it will default to -1 + +garbage_trigger = (1,1) + // ArrayFire memory management is not reliable, the way around is to call garbage + // collection per defined number of iterations. Decrease this value if out of memory + // error occurs + +// GENERATIONS +//generations = 2 // number of generations + +//low_resolution_generations = 0 + // number of generations low resolution is applied to, starting from first gen + +//low_resolution_sigma_alg = "SIG_SPACE_LINEAR" + // defines how to calculate sigmas based on generation. Supported: + // SIG_SPACE_LINEAR - sigmas are starting from low_resolution_sigma_max, + // linearly decreasing for each generation, reaching low_resolution_sigma + // at the end + // SIG_SCALE_POWER - use low_resolution_scale_power and ScaleFactor + // to calculate sigmas for generations + // SIG_ASSIGNED - sigmas will be read from low_resolution_sigmas + +//low_resolution_sigmas = [1.0] + // list of sigmas that will be used by subsequent generations if the + // low_resolution_sigma_alg is set to SIG_ASSIGNED + // the length must be equal low_resolution_generations + +//low_resolution_sigma_min = 0.1 + // initial sigma + +//low_resolution_sigma_max = 2.0 + // max support sigma value + +//low_resolution_scale_power = 1 + // how the sigma scales with generation (1 - linear, 2 - quad etc) + +//low_resolution_alg = "GAUSS" + // algorithm to use to apply resolution. Supported algorithms: + // GAUSS + + +// RECONSTRUCTION PARAMETERS USED BY FAST MODULE +// modulus projection algorithm sequence +//algorithm_sequence = ((2, ("ER",19), ("HIO", 10)), (1,("ER",20))) + // defines algorithm applied in each iteration by a sequence of tuples. + // The first number in a tuple is a repeat, followed by tuples of pairs, each + // pair defining algorithm and number of iterations to run the algorithm. + +//beta = .9; + // used in hio algorithm + +// twin +// twin feature trims the image array at the current state by zeroing half of the array in each dimension. +//twin_trigger = (2) + // applied only in initial reconstruction + // twin defines at which iteration to cut half of the array(i.e. multiply by 0s), + // Comment out, if don't want to apply twin. + +// support +// Support area is an array that defines region in which the image is meaningful. This area is recalculated at the +// trigger iteration. The calculation employ an algorithm defined here as support_type. +//amp_support_trigger = (7, 5) + // defines when to update support array using the parameters below. + // Comment out, if support feature not used. +//support_type = "GAUSS"; +//support_threshold = 0.1; +//support_sigma = 1.0; +//support_area = [.5,.5,.5]; + // initial support area. If the values are fractional, the support area will be calculated + // by multiplying by the data array dimensions. The support will be set to 1s to this + // dimensions centered. + +// phase constrain +// At the begginning iterations the support area is modified in respect to the phase. Support area will exclude points +// outside of the defined bounds +//phase_support_trigger = (0, 1, 45) + // applied only in initial reconstruction + // defines when to update support array using the parameters below by applaying phase constrain. + // Comment out, if phase constrain feature not used. +//phase_min = -1.57 +//phase_max = 1.57; + +// partial coherence +// Partial coherence trigger triggers recalculation of coherence array for the amplitudes in reciprocal space. +// After first coherence array is determined, it is used for convolution in subsequent iteration. +//pcdi_trigger = (16, 14) + // defines when to update coherence using the parameters below. + // Comment out, if pcdi feature not used. +//partial_coherence_type = "LUCY"; + // partial coherence algorithm +//partial_coherence_iteration_num = 20; +//partial_coherence_normalize = true; +//partial_coherence_roi = [32,32,32]; + // coherence area. If the values are fractional, the coherence area will be calculated + // by multiplying by the data array dimensions. + +// iteration based low resolution +// At the begginning iterations the data and sigma are modified gradually. The sigma for each iteration where the low +// resolution is applied is a linespace result of iter_res_sigma_range. The last sigma should be set to support_sigma, +// or you can use default to achieve this. The sigma is used by when recalculation the support area, i.e when support +// trigger is on. The data is multiplied by gaussian distribution with sigma gradually growing to the last value, which +// typically is 1. +//resolution_trigger = (0, 1, 40) + // applied only in initial reconstruction + // defines when to apply low resolution using the parameters below. + // Comment out, if low resolution feature not used. + +//iter_res_sigma_range = (2.0, 1.0) + // used when applying low resolution to replace support sigma. + // The sigmas are linespaced for low resolution iterations from first value to last. + // If only one number given, the last sigma will default to support_sigma. + +//iter_res_det_range = (.7, 1.0) + // used when applying low resolution data mask while iterating. + // The det values are linespaced for low resolution iterations from first value to last. + // The mask is gauss with sigma of linespaced det. If only one number given, + // the last det will default to 1. + +// averaging +// The amplitudes of the last several iterations are avaraged. This trigger defines at which iteration the averaging +// starts. +//average_trigger = (65, 1) + // defines when to apply averaging. + // Comment out, if averaging not used. + diff --git a/conf/last/config b/conf/last/config new file mode 100644 index 0000000..7eadd4d --- /dev/null +++ b/conf/last/config @@ -0,0 +1,6 @@ +working_dir = "test" +data_dir = "/net/s34data/export/34idc-data/2018/Chung1118/ADChung1118a" +specfile = "/net/s34data/export/34idc-data/2018/Chung1118/Chung1118a.spec" +darkfile = "/net/s34data/export/34idc-work/2018/Chung1118/dark.tif" +whitefile = "/net/s34data/export/34idc-work/2018/Chung1118/CelaWhiteField.tif" + diff --git a/conf/last/config_data b/conf/last/config_data new file mode 100644 index 0000000..131b0a0 --- /dev/null +++ b/conf/last/config_data @@ -0,0 +1,5 @@ +amp_threshold = 2.0 +aliens = ((0,0,0,0,0,0), (0,0,0,0,0,0)) +binning = (1,1,1) +center_shift = (0,0,0) +adjust_dimensions = (-4, -4, -65, -65, -65, -65) diff --git a/conf/last/config_disp b/conf/last/config_disp new file mode 100644 index 0000000..14bf428 --- /dev/null +++ b/conf/last/config_disp @@ -0,0 +1,16 @@ +crop = [.5, .5, .5] + +//------------------Below are definitions/ exemples of configurable items----------------------- +// for APS beamline 34-IDC these are parsed from spec file + +// lamda = 0.10780869565217391 // Wavelength of x-ray (units in nm) +// delta = 26.74975 // Detector angles (in degrees) +// gamma = 8.5102 // (in degrees) +// arm = 750.0 // Detector distance from sample (in mm) +// dth = 0.007499999999999995 // step values for th translation (in degrees) +// pixel = [55.0e-6, 55.0e-6] // pixel size (in meters) + +// for APS beamline 34-IDC binning is imported from config_data file +// binning = (1,1,1) + + diff --git a/conf/last/config_rec b/conf/last/config_rec new file mode 100644 index 0000000..fede549 --- /dev/null +++ b/conf/last/config_rec @@ -0,0 +1,194 @@ +threads = 1 +//device = (4) + +generations = 1 +low_resolution_generations = 0 + +algorithm_sequence = ((3,("ER",20),("HIO",180)),(1,("ER",22))) +beta = .9 + +twin_trigger = (2) + +amp_support_trigger = (0,1) +support_type = "GAUSS" +support_threshold = 0.15 +support_sigma = 1.0 +support_area = [.5,.5,.5] + +//phase_support_trigger = (0,1,20) +phase_min = -1.57 +phase_max = 1.57 + +//pcdi_trigger = (50,50) +partial_coherence_type = "LUCY" +partial_coherence_iteration_num = 20 +partial_coherence_normalize = true +partial_coherence_roi = [32,32,16] + +resolution_trigger = (0, 1, 310) +iter_res_det_range = (.7) +iter_res_sigma_range = (1.0) + +avarage_trigger = (-19,1) + +//------------------Below are definitions/ exemples of configurable items----------------------- + +// Trigger can be defined as a single iteration, or multiple iterations. +// examples: +// (3) trigger at iteration 3 +// (20, 5) trigger starts at iteration 20, repeats every 5 iteration for the rest of run +// (20, 5, 40) trigger starts at iteration 20, repeats every 5 iteration until iteration 40 +// Triggers can also be a combination of any of the above, ex: ((4), (3, 7, 24), (6,20)) +// Below is a list of the supported triggers: +// garbage_trigger, twin_trigger, amp_support_trigger, phase_support_trigger, pcdi_trigger, resolution_trigger, +// average_trigger. +// The features that are related to the triggers are described below where the trigger is defined. +// If a trigger is not defined, the feature is turned off. Comment out trigger that you don't want to apply. +// Adding a new feature/ trigger is described in common.h header file. + +// GENERAL +//data_dir = "test/A/data" + // directory from which data is read + +//save_dir = "test/A/results" + // directory where results of reconstruction as npy files are saved + // if threads > 1, result from each thread will be stored in subdirectory 1,2,3 etc. + +//cont = false + // only applied if generations equals 1, or not defined + // true if the reconstruction start with previous results stored in continue_dir + +//continue_dir = "cont" + // directory from which results are read for reconstruction continuation + // if the directory contains subdirectories, a thread will start for each subdirectory + +//threads = 3 + // number of reconstructions to start with + +//device = [0,0] + // ID of the target devices for each thread. + // If more threads or not defined, it will default to -1 + +garbage_trigger = (1,1) + // ArrayFire memory management is not reliable, the way around is to call garbage + // collection per defined number of iterations. Decrease this value if out of memory + // error occurs + +// GENERATIONS +//generations = 2 // number of generations + +//low_resolution_generations = 0 + // number of generations low resolution is applied to, starting from first gen + +//low_resolution_sigma_alg = "SIG_SPACE_LINEAR" + // defines how to calculate sigmas based on generation. Supported: + // SIG_SPACE_LINEAR - sigmas are starting from low_resolution_sigma_max, + // linearly decreasing for each generation, reaching low_resolution_sigma + // at the end + // SIG_SCALE_POWER - use low_resolution_scale_power and ScaleFactor + // to calculate sigmas for generations + // SIG_ASSIGNED - sigmas will be read from low_resolution_sigmas + +//low_resolution_sigmas = [1.0] + // list of sigmas that will be used by subsequent generations if the + // low_resolution_sigma_alg is set to SIG_ASSIGNED + // the length must be equal low_resolution_generations + +//low_resolution_sigma_min = 0.1 + // initial sigma + +//low_resolution_sigma_max = 2.0 + // max support sigma value + +//low_resolution_scale_power = 1 + // how the sigma scales with generation (1 - linear, 2 - quad etc) + +//low_resolution_alg = "GAUSS" + // algorithm to use to apply resolution. Supported algorithms: + // GAUSS + + +// RECONSTRUCTION PARAMETERS USED BY FAST MODULE +// modulus projection algorithm sequence +//algorithm_sequence = ((2, ("ER",19), ("HIO", 10)), (1,("ER",20))) + // defines algorithm applied in each iteration by a sequence of tuples. + // The first number in a tuple is a repeat, followed by tuples of pairs, each + // pair defining algorithm and number of iterations to run the algorithm. + +//beta = .9; + // used in hio algorithm + +// twin +// twin feature trims the image array at the current state by zeroing half of the array in each dimension. +//twin_trigger = (2) + // applied only in initial reconstruction + // twin defines at which iteration to cut half of the array(i.e. multiply by 0s), + // Comment out, if don't want to apply twin. + +// support +// Support area is an array that defines region in which the image is meaningful. This area is recalculated at the +// trigger iteration. The calculation employ an algorithm defined here as support_type. +//amp_support_trigger = (7, 5) + // defines when to update support array using the parameters below. + // Comment out, if support feature not used. +//support_type = "GAUSS"; +//support_threshold = 0.1; +//support_sigma = 1.0; +//support_area = [.5,.5,.5]; + // initial support area. If the values are fractional, the support area will be calculated + // by multiplying by the data array dimensions. The support will be set to 1s to this + // dimensions centered. + +// phase constrain +// At the begginning iterations the support area is modified in respect to the phase. Support area will exclude points +// outside of the defined bounds +//phase_support_trigger = (0, 1, 45) + // applied only in initial reconstruction + // defines when to update support array using the parameters below by applaying phase constrain. + // Comment out, if phase constrain feature not used. +//phase_min = -1.57 +//phase_max = 1.57; + +// partial coherence +// Partial coherence trigger triggers recalculation of coherence array for the amplitudes in reciprocal space. +// After first coherence array is determined, it is used for convolution in subsequent iteration. +//pcdi_trigger = (16, 14) + // defines when to update coherence using the parameters below. + // Comment out, if pcdi feature not used. +//partial_coherence_type = "LUCY"; + // partial coherence algorithm +//partial_coherence_iteration_num = 20; +//partial_coherence_normalize = true; +//partial_coherence_roi = [32,32,32]; + // coherence area. If the values are fractional, the coherence area will be calculated + // by multiplying by the data array dimensions. + +// iteration based low resolution +// At the begginning iterations the data and sigma are modified gradually. The sigma for each iteration where the low +// resolution is applied is a linespace result of iter_res_sigma_range. The last sigma should be set to support_sigma, +// or you can use default to achieve this. The sigma is used by when recalculation the support area, i.e when support +// trigger is on. The data is multiplied by gaussian distribution with sigma gradually growing to the last value, which +// typically is 1. +//resolution_trigger = (0, 1, 40) + // applied only in initial reconstruction + // defines when to apply low resolution using the parameters below. + // Comment out, if low resolution feature not used. + +//iter_res_sigma_range = (2.0, 1.0) + // used when applying low resolution to replace support sigma. + // The sigmas are linespaced for low resolution iterations from first value to last. + // If only one number given, the last sigma will default to support_sigma. + +//iter_res_det_range = (.7, 1.0) + // used when applying low resolution data mask while iterating. + // The det values are linespaced for low resolution iterations from first value to last. + // The mask is gauss with sigma of linespaced det. If only one number given, + // the last det will default to 1. + +// averaging +// The amplitudes of the last several iterations are avaraged. This trigger defines at which iteration the averaging +// starts. +//average_trigger = (65, 1) + // defines when to apply averaging. + // Comment out, if averaging not used. + diff --git a/everything.sh b/everything.sh index 6cdaaf1..26faa94 100644 --- a/everything.sh +++ b/everything.sh @@ -1,7 +1,7 @@ #!/bin/sh -export LD_LIBRARY_PATH=/usr/local/lib:/local/libconfig/lib:/local/af/lib +#export LD_LIBRARY_PATH=/usr/local/lib:/local/libconfig/lib:/local/af/lib #export LD_LIBRARY_PATH=/home/beams/CXDUSER/CDI/libconfig/lib:/usr/lib64:/home/beams/CXDUSER/CDI/ArrayFire-v3.4.2/lib:/usr/local-linux/cuda-8.0/lib64:/usr/local-linux/cuda-8.0/nvvm/lib64 @@ -20,7 +20,6 @@ conf_dir=$4 experiment_dir=$(python run_prepare.py $prefix $scans $conf_dir 2>&1 >/dev/null) python run_data.py $experiment_dir - python run_rec.py $dev $experiment_dir p=$PATH @@ -29,7 +28,7 @@ export PATH=$p python run_disp.py $experiment_dir -#p=$PATH -#p=${p//"anaconda2"/"anaconda3"} -#export PATH=$p +p=$PATH +p=${p//"anaconda2"/"anaconda3"} +export PATH=$p diff --git a/include/util.hpp b/include/util.hpp index 9ab1181..83048a5 100644 --- a/include/util.hpp +++ b/include/util.hpp @@ -63,9 +63,8 @@ class Utils static af::array CenterMax(af::array arr); static void GetMaxIndices(af::array arr, int* indices); - static af::array ReverseGaussDistribution(const af::dim4, d_type *, int); static af::array GaussDistribution(const af::dim4, d_type *, int); - + // pads symmetrically around array arr to the size on new_dims with the constant value pad static af::array PadAround(af::array arr, af::dim4 new_dims, d_type pad); static af::array PadAround(af::array arr, af::dim4 new_dims, int pad); diff --git a/run_disp.py b/run_disp.py index 082eaf6..7b90579 100755 --- a/run_disp.py +++ b/run_disp.py @@ -23,8 +23,27 @@ def save_vtk(res_dir, conf): cx.save_CX(conf, image, support, res_dir) -def to_vtk(experiment_dir): - conf = os.path.join(experiment_dir, 'conf', 'config_disp') +def to_vtk(conf_info): + if os.path.isdir(conf_info): + experiment_dir = conf_info + conf = os.path.join(experiment_dir, 'conf', 'config_disp') + # read binning info from config_data file in the same directory + conf_data = os.path.join(experiment_dir, 'conf', 'config_data') + binning_info = None + with open(conf_data, 'r') as f: + lines = f.readlines() + for line in lines: + if line.startswith("binning"): + binning_info = line + '\n' + break + # write the binning line into 'config_disp' file + if binning_info is not None: + with open(conf, "a") as f: + f.write(binning_info) + else: + #assuming it's a file + conf = conf_info + experiment_dir = None config_map = ut.read_config(conf) if config_map is None: print ("can't read configuration file") @@ -47,11 +66,11 @@ def to_vtk(experiment_dir): def main(arg): print ('preparing display') parser = argparse.ArgumentParser() - parser.add_argument("experiment_dir", help="experiment directory") + parser.add_argument("conf_info", help="experiment directory or display configuration file") args = parser.parse_args() - experiment_dir = args.experiment_dir + conf_info = args.conf_info - to_vtk(experiment_dir) + to_vtk(conf_info) print ('done with display') if __name__ == "__main__": diff --git a/run_prepare.py b/run_prepare.py index a417dce..7aa0588 100755 --- a/run_prepare.py +++ b/run_prepare.py @@ -39,12 +39,13 @@ def has_conf(dir): # find if there is "last" file in the given directory and use the last configuration from there if exists # otherwise use the default config last_conf_dir = os.path.join(conf_dir, 'last') + default_conf_dir = os.path.join(conf_dir, 'defaults') # try read configuration from last if os.path.isdir(last_conf_dir) and has_conf(last_conf_dir): read_from_dir = last_conf_dir - elif has_conf(conf_dir): - read_from_dir = conf_dir + elif os.path.isdir(default_conf_dir) and has_conf(default_conf_dir): + read_from_dir = default_conf_dir else: print('configured directory ' + conf_dir + ' does not contain file "config"') sys.exit(0) diff --git a/src_cpp/support.cpp b/src_cpp/support.cpp index f68a5a6..a4e6e7a 100644 --- a/src_cpp/support.cpp +++ b/src_cpp/support.cpp @@ -97,7 +97,7 @@ af::array Support::GetDistribution(const af::dim4 data_dim, d_type sigma) for (int i=0; i(pow(abs(grid), 2)); d_type grid_total = sum(grid); grid = grid/grid_total; return grid; } -af::array Utils::GaussDistribution(af::dim4 data_dim, d_type * sgma, int alpha) -{ - // calculate multipliers - int dimension = nD; //this should be changed to determine size from sgma -// af::array gridx = (range(data_dim, 1)-(data_dim[1]-1)/2.0); // the range method produces wrong data - d_type multiplier = - 0.5 * alpha/pow(sgma[1],2); - double val; - std::vector gridx_v; - for (int i = 0; i< data_dim[2]; i++) - { - for (int j=0; j< data_dim[1]; j++) - { - val = -(data_dim[1]-1)/2.0 + j; - for (int k=0; k< data_dim[0]; k++) - { - gridx_v.push_back(val); - } - } - } - af::array gridx(data_dim, &gridx_v[0]); - af::array exponent = pow( gridx ,2)* multiplier; - af::array gridxx = exp(exponent); - - multiplier = - 0.5 * alpha/pow(sgma[0],2); - std::vector gridy_v; - for (int i = 0; i< data_dim[2]; i++) - { - for (int j=0; j< data_dim[1]; j++) - { - for (int k=0; k< data_dim[0]; k++) - { - val = -(data_dim[0]-1)/2.0 + k; - gridy_v.push_back(val); - } - } - } - af::array gridy(data_dim, &gridy_v[0]); - exponent = pow( gridy ,2)* multiplier; - af::array gridyy = exp(exponent); - - multiplier = - 0.5 * alpha/pow(sgma[2],2); - std::vector gridz_v; - for (int i = 0; i< data_dim[2]; i++) - { - val = -(data_dim[2]-1)/2.0 + i; - for (int j=0; j< data_dim[1]; j++) - { - for (int k=0; k< data_dim[0]; k++) - { - gridz_v.push_back(val); - } - } - } - af::array gridz(data_dim, &gridz_v[0]); - exponent = pow( gridz ,2)* multiplier; - af::array gridzz = exp(exponent); - - af::array grid = gridxx * gridyy * gridzz; - d_type grid_total = sum(grid); - grid = grid/grid_total; - return grid; -} - -//af::array Utils::GaussDistribution(af::dim4 data_dim, d_type * sgma, int alpha) -//{ -// // calculate multipliers -// int dimension = nD; //this should be changed to determine size from sgma -// //initialize first element of the grid, assuming at least one dimension -// d_type multiplier = - 0.5 * alpha/pow(sgma[0],2); -// af::array exponent = pow( range(data_dim, 0)-(data_dim[0]-1)/2.0 ,2)* multiplier; -// af::array grid = exp(exponent); -// -// //add grid in other dimensions -// for (int i = 1; i(grid); -// grid = grid/grid_total; -// printf("grid sum, norm %f %f\n", sum(grid), sum(pow(grid,2))); -// return grid; -//} - af::array Utils::PadAround(af::array arr, af::dim4 new_dims, d_type pad) { //af::array padded = constant(pad, new_dims, (af_dtype) dtype_traits::ctype); diff --git a/src_py/utilities/CXDVizNX.py b/src_py/utilities/CXDVizNX.py index a58903d..16a57a3 100644 --- a/src_py/utilities/CXDVizNX.py +++ b/src_py/utilities/CXDVizNX.py @@ -10,7 +10,7 @@ from tvtk.api import tvtk import numpy as np import math as m -import utils as ut +import src_py.utilities.utils as ut __author__ = "Barbara Frosik" __copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." @@ -39,6 +39,7 @@ def __init__(self, config): if os.path.isfile(config): with open(config, 'r') as f: config_map = cfg.Config(f.read()) + deg2rad = np.pi / 180.0 try: self.lamda = config_map.lamda @@ -53,17 +54,21 @@ def __init__(self, config): except AttributeError: print ('gamma not defined') try: - self.arm = config_map.arm + self.arm = config_map.arm / 1000 except AttributeError: print ('arm not defined') try: - self.dth = config_map.dth + self.dth = config_map.dth * deg2rad except AttributeError: print ('dth not defined') + try: + binning = config_map.binning + except AttributeError: + binning = [1,1,1] try: pixel = config_map.pixel - self.dpx = pixel[0] / self.arm - self.dpy = pixel[1] / self.arm + self.dpx = pixel[0] * binning[1] / self.arm + self.dpy = pixel[1] * binning[2] / self.arm except AttributeError: print ('pixel not defined') try: From 436cecf62be9a8b74876b26b295ff75c9acb17b4 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Tue, 4 Dec 2018 17:10:17 -0600 Subject: [PATCH 100/336] Modified CXDVizNX file to be compatible with python 3, cleaned up everything script --- everything.sh | 13 ------------ src_py/utilities/CXDVizNX.py | 41 ++++++++++++------------------------ 2 files changed, 13 insertions(+), 41 deletions(-) diff --git a/everything.sh b/everything.sh index 26faa94..b41ddee 100644 --- a/everything.sh +++ b/everything.sh @@ -8,27 +8,14 @@ #newest arrayfire version will work with cuda 9.1 #export LD_LIBRARY_PATH=/home/beams/CXDUSER/CDI/arrayfire/lib:/home/beams/CXDUSER/CDI/libconfig/lib:/local/cuda-9.0/lib64:/local/cuda-9.0/nvvm/lib64 -p=$PATH -p=${p//"anaconda2"/"anaconda3"} -export PATH=$p - dev=$1 prefix=$2 scans=$3 conf_dir=$4 experiment_dir=$(python run_prepare.py $prefix $scans $conf_dir 2>&1 >/dev/null) - python run_data.py $experiment_dir python run_rec.py $dev $experiment_dir - -p=$PATH -p=${p//"anaconda3"/"anaconda2"} -export PATH=$p - python run_disp.py $experiment_dir -p=$PATH -p=${p//"anaconda2"/"anaconda3"} -export PATH=$p diff --git a/src_py/utilities/CXDVizNX.py b/src_py/utilities/CXDVizNX.py index 16a57a3..c71d7fa 100644 --- a/src_py/utilities/CXDVizNX.py +++ b/src_py/utilities/CXDVizNX.py @@ -199,16 +199,16 @@ def set_crop(self, cropx, cropy, cropz): else: self.cropz = dims[2] - start1 = dims[0] / 2 - self.cropx / 2 - end1 = dims[0] / 2 + self.cropx / 2 + start1 = int(dims[0]/2) - int(self.cropx/2) + end1 = int(dims[0]/2) + int(self.cropx/2) if start1 == end1: end1 = end1 + 1 - start2 = dims[1] / 2 - self.cropy / 2 - end2 = dims[1] / 2 + self.cropy / 2 + start2 = int(dims[1]/2) - int(self.cropy/2) + end2 = int(dims[1]/2) + int(self.cropy/2) if start2 == end2: end2 = end2 + 1 - start3 = dims[2] / 2 - self.cropz / 2 - end3 = dims[2] / 2 + self.cropz / 2 + start3 = int(dims[2]/2) - int(self.cropz/2) + end3 = int(dims[2]/2) + int(self.cropz/2) if start3 == end3: end3 = end3 + 1 @@ -220,7 +220,7 @@ def get_structured_grid(self, **args): self.update_coords() dims = list(self.arr[self.cropobj].shape) self.sg.points = self.coords - if args.has_key("mode"): + if "mode" in args: if args["mode"] == "Phase": arr1 = self.arr[self.cropobj].ravel() arr = (np.arctan2(arr1.imag, arr1.real)) @@ -273,9 +273,9 @@ def shift(arr, s0, s1, s2): def sub_pixel_shift(arr, shift_ind): buf = np.fft.fftn(arr) dims = buf.shape - x = np.fft.ifftshift(np.arange(-(dims[0] / 2), dims[0] / 2)) - y = np.fft.ifftshift(np.arange(-(dims[1] / 2), dims[1] / 2)) - z = np.fft.ifftshift(np.arange(-(dims[2] / 2), dims[2] / 2)) + x = np.fft.ifftshift(np.arange(-int(dims[0]/2), int(dims[0]/2))) + y = np.fft.ifftshift(np.arange(-int(dims[1]/2), int(dims[1]/2))) + z = np.fft.ifftshift(np.arange(-int(dims[2]/2), int(dims[2]/2))) gx, gy, gz = np.meshgrid(x, y, z) grid_shift = - gx * shift_ind[0] / dims[0] - gy * shift_ind[1] / dims[1] - gy * shift_ind[2] / dims[2] @@ -314,11 +314,11 @@ def center(image, support): dims = image.shape com = center_of_mass(np.absolute(image) * support) # place center of mass image*support in the center - image = shift(image, dims[0] / 2 - com[0], dims[1] / 2 - com[1], dims[2] / 2 - com[2]) - support = shift(support, dims[0] / 2 - com[0], dims[1] / 2 - com[1], dims[2] / 2 - com[2]) + image = shift(image, int(dims[0]/2) - com[0], int(dims[1]/2) - com[1], int(dims[2]/2) - com[2]) + support = shift(support, int(dims[0]/2) - com[0], int(dims[1]/2) - com[1], int(dims[2]/2) - com[2]) # set com phase to zero, use as a reference - phi0 = m.atan2(image.imag[dims[0]/2, dims[1]/2, dims[2]/2], image.real[dims[0]/2, dims[1]/2, dims[2]/2]) + phi0 = m.atan2(image.imag[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)], image.real[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)]) print ('phi0', phi0) image = image * np.exp(-1j * phi0) return image, support @@ -335,21 +335,6 @@ def get_crop(params, shape): crop[i] = int(crop[i]*shape[i]) return crop -# def reshape(image, support, shape): -# # normalize image -# mx = max(np.absolute(image).ravel().tolist()) -# image = image / mx -# image = np.reshape(image, shape) -# -# support = np.reshape(support, shape) -# -# image = np.swapaxes(image, 2, 0) -# image = np.swapaxes(image, 1, 0) -# support = np.swapaxes(support, 2, 0) -# support = np.swapaxes(support, 1, 0) -# -# return image, support -# def save_CX(conf, image, support, save_dir): image, support = center(image, support) From 9f770e9f326100c5b819dd08060bb11be4fe1853 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Tue, 11 Dec 2018 10:06:08 -0600 Subject: [PATCH 101/336] updated for pyqt5. --- aps_34id/cdi_conf_window.py | 48 +- cdi_conf_window.py | 704 +++++++++++++++++++++++++ conf/last/config | 2 +- conf/last/config_rec | 2 +- run_disp.sh | 10 - run_prepare.py | 6 +- run_rec.sh | 10 +- src_py/run_scripts/__init__.py | 0 src_py/run_scripts/run_34id_prepare.py | 80 +++ src_py/run_scripts/run_data.py | 22 + src_py/run_scripts/run_disp.py | 79 +++ src_py/run_scripts/run_rec.py | 84 +++ 12 files changed, 1009 insertions(+), 38 deletions(-) create mode 100644 cdi_conf_window.py delete mode 100644 run_disp.sh create mode 100644 src_py/run_scripts/__init__.py create mode 100755 src_py/run_scripts/run_34id_prepare.py create mode 100755 src_py/run_scripts/run_data.py create mode 100755 src_py/run_scripts/run_disp.py create mode 100755 src_py/run_scripts/run_rec.py diff --git a/aps_34id/cdi_conf_window.py b/aps_34id/cdi_conf_window.py index f3e71d2..90fe9f8 100644 --- a/aps_34id/cdi_conf_window.py +++ b/aps_34id/cdi_conf_window.py @@ -1,9 +1,11 @@ import sys import os import shutil +from PyQt5.QtCore import * +from PyQt5.QtGui import * +from PyQt5.QtWidgets import * +from src_py.run_scripts import * import prep -from PyQt4.QtCore import * -from PyQt4.QtGui import * def select_file(start_dir): @@ -39,7 +41,7 @@ def __init__(self, parent=None): vbox.addWidget(self.t) self.setLayout(vbox) - self.setWindowTitle("CDI Configuration") + self.setWindowTitle("CDI Reconstruction") self.Id_widget.textChanged.connect(self.set_id) self.set_work_dir_button.clicked.connect(self.set_working_dir) @@ -112,11 +114,13 @@ def tab2UI(self): layout.addRow("center_shift", self.center_shift) self.adjust_dimensions = QLineEdit() layout.addRow("adjust_dimensions", self.adjust_dimensions) - self.config_data_button = QPushButton('create config_data', self) + self.config_data_button = QPushButton('model data', self) layout.addWidget(self.config_data_button) self.tab2.setLayout(layout) - self.config_data_button.clicked.connect(self.config_data) + # this will create config_data file and run data script + # to generate data ready for recondtruction + self.config_data_button.clicked.connect(self.run_data) def tab3UI(self): @@ -145,12 +149,12 @@ def tab3UI(self): layout.addLayout(ulayout) layout.addLayout(llayout) self.features = Features(self, llayout) - self.config_rec_button = QPushButton('create config_rec', self) + self.config_rec_button = QPushButton('run reconstruction', self) layout.addWidget(self.config_rec_button) self.tab3.setAutoFillBackground(True) self.tab3.setLayout(layout) - self.config_rec_button.clicked.connect(self.config_rec) + self.config_rec_button.clicked.connect(self.run_rec) self.cont.stateChanged.connect(lambda: self.toggle_cont(ulayout)) self.rec_default_button.clicked.connect(self.rec_default) @@ -174,11 +178,11 @@ def tab4UI(self): layout.addRow("crop", self.crop) self.save_disp_dir = QLineEdit() layout.addRow("save display dir", self.save_disp_dir) - self.config_disp_button = QPushButton('update config_disp', self) + self.config_disp_button = QPushButton('process display', self) layout.addWidget(self.config_disp_button) self.tab4.setLayout(layout) - self.config_disp_button.clicked.connect(self.config_disp) + self.config_disp_button.clicked.connect(self.run_disp) def set_spec_file(self): @@ -224,10 +228,10 @@ def prepare(self): prep.prepare(self.main_win.working_dir, self.main_win.id, scan_range, self.data_dir, self.specfile, self.darkfile, self.whitefile) - def config_data(self): + def run_data(self): conf_map = {} - data_out_dir = '"' + self.main_win.working_dir + '/' + self.main_win.id + '/data' + '"' - conf_map['data_dir'] = data_out_dir + # data_out_dir = '"' + self.main_win.working_dir + '/' + self.main_win.id + '/data' + '"' + # conf_map['data_dir'] = data_out_dir if len(self.aliens.text()) > 0: conf_map['aliens'] = str(self.aliens.text()) else: @@ -252,11 +256,15 @@ def config_data(self): self.create_config('config_data', conf_map) + experiment_dir = os.path.join(self.main_win.working_dir, self.main_win.id) + run_data(experiment_dir) - def config_rec(self): + + + def run_rec(self): conf_map = {} - conf_map['data_dir'] = '"' + self.main_win.working_dir + '/' + self.main_win.id + '/data' + '"' - conf_map['save_dir'] = str(self.save_dir.text()) + # conf_map['data_dir'] = '"' + self.main_win.working_dir + '/' + self.main_win.id + '/data' + '"' + # conf_map['save_dir'] = str(self.save_dir.text()) conf_map['threads'] = str(self.threads.text()) conf_map['device'] = str(self.device.text()) conf_map['garbage_trigger'] = str(self.gc.text()) @@ -270,6 +278,10 @@ def config_rec(self): self.create_config('config_rec', conf_map) + experiment_dir = os.path.join(self.main_win.working_dir, self.main_win.id) + + run_rec('opencl', experiment_dir) + def create_config(self, conf_file, conf_map): valid = True @@ -294,7 +306,7 @@ def create_config(self, conf_file, conf_map): shutil.move(temp_file, conf_file) - def config_disp(self): + def run_disp(self): if len(self.crop.text()) == 0: print ('crop not configured') #return @@ -327,6 +339,10 @@ def config_disp(self): temp.close() shutil.move(temp_file, disp_conf_file) + experiment_dir = os.path.join(self.main_win.working_dir, self.main_win.id) + + run_disp('opencl') + def rec_default(self): if self.main_win.working_dir is None or self.main_win.id is None or \ diff --git a/cdi_conf_window.py b/cdi_conf_window.py new file mode 100644 index 0000000..6f7bf20 --- /dev/null +++ b/cdi_conf_window.py @@ -0,0 +1,704 @@ +import sys +import os +import shutil +from PyQt5.QtCore import * +from PyQt5.QtGui import * +from PyQt5.QtWidgets import * +import src_py.run_scripts.run_data as run_dt +import src_py.run_scripts.run_rec as run_rc +import src_py.run_scripts.run_disp as run_dp +import src_py.utilities.utils as ut +import aps_34id.prep as prep + + +def select_file(start_dir): + dialog = QFileDialog(None, 'select dir', start_dir) + dialog.setFileMode(QFileDialog.ExistingFile) + dialog.setSidebarUrls([QUrl.fromLocalFile(start_dir)]) + if dialog.exec_() == QDialog.Accepted: + return str(dialog.selectedFiles()[0]) + + +def select_dir(start_dir): + dialog = QFileDialog(None, 'select dir', start_dir) + dialog.setFileMode(QFileDialog.DirectoryOnly) + dialog.setSidebarUrls([QUrl.fromLocalFile(start_dir)]) + if dialog.exec_() == QDialog.Accepted: + return str(dialog.selectedFiles()[0]) + + +class cdi_conf(QWidget): + def __init__(self, parent=None): + super(cdi_conf, self).__init__(parent) + uplayout = QFormLayout() + + self.set_work_dir_button = QPushButton() + uplayout.addRow("Working Directory", self.set_work_dir_button) + self.Id_widget = QLineEdit() + uplayout.addRow("Reconstruction ID", self.Id_widget) + self.scan_widget = QLineEdit() + uplayout.addRow("scan(s)", self.scan_widget) + self.run_button = QPushButton('run_everything', self) + uplayout.addWidget(self.run_button) + + vbox = QVBoxLayout() + vbox.addLayout(uplayout) + + self.t = cdi_conf_tab(self) + vbox.addWidget(self.t) + + self.setLayout(vbox) + self.setWindowTitle("CDI Reconstruction") + self.set_init() + + self.set_work_dir_button.clicked.connect(self.set_working_dir) + self.Id_widget.textChanged.connect(self.set_id) + self.scan_widget.textChanged.connect(self.set_scan) + self.run_button.clicked.connect(self.run_everything) + + + def set_working_dir(self): + self.working_dir = select_dir(self.working_dir) + self.set_work_dir_button.setStyleSheet("Text-align:left") + self.set_work_dir_button.setText(self.working_dir) + + + def set_id(self): + self.id = str(self.Id_widget.text()) + self.set_experiment_dir() + + + def set_scan(self): + self.scan = str(self.scan_widget.text()) + self.set_experiment_dir() + + + def set_experiment_dir(self): + if self.id is not None and self.scan is not None: + self.exp_id = self.id + '_' + self.scan + self.experiment_dir = os.path.join(self.working_dir, self.exp_id) + + + def run_everything(self): + self.t.prepare() + self.t.model_data() + self.t.reconstruction() + self.t.display() + + + def set_init(self): + self.id = None + self.scan = None + # check for the "conf" directory in the running directory + if os.path.isdir('conf/last'): + self.set_from_conf('conf/last') + elif os.path.isdir('conf/defaults'): + self.set_from_conf('conf/defaults') + + + def set_from_conf(self, dir): + main_conf = os.path.join(dir, 'config') + conf_map = ut.read_config(main_conf) + # initialize to the value from config file + self.working_dir = conf_map.working_dir + self.t.data_dir = conf_map.data_dir + self.t.specfile = conf_map.specfile + self.t.darkfile = conf_map.darkfile + self.t.whitefile = conf_map.whitefile + # set the text in the window + self.set_work_dir_button.setStyleSheet("Text-align:left") + self.set_work_dir_button.setText(self.working_dir) + self.t.data_dir_button.setStyleSheet("Text-align:left") + self.t.data_dir_button.setText(self.t.data_dir) + self.t.spec_file_button.setStyleSheet("Text-align:left") + self.t.spec_file_button.setText(self.t.specfile) + self.t.dark_file_button.setStyleSheet("Text-align:left") + self.t.dark_file_button.setText(self.t.darkfile) + self.t.white_file_button.setStyleSheet("Text-align:left") + self.t.white_file_button.setText(self.t.whitefile) + + # initialize "Data" tab + data_conf = os.path.join(dir, 'config_data') + conf_map = ut.read_config(data_conf) + try: + self.t.aliens = conf_map.aliens + except KeyError: + pass + try: + self.t.amp_threshold = conf_map.amp_threshold + except KeyError: + pass + try: + self.t.binning = conf_map.binning + except KeyError: + pass + try: + self.t.center_shift = conf_map.center_shift + except KeyError: + pass + try: + self.t.adjust_dimensions = conf_map.adjust_dimensions + except KeyError: + pass + + # initialize "Reconstruction" tab + + # initialize "Display" tab + disp_conf = os.path.join(dir, 'config_disp') + conf_map = ut.read_config(disp_conf) + try: + self.t.crop = conf_map.crop + except KeyError: + pass + + +class cdi_conf_tab(QTabWidget): + def __init__(self, main_win, parent=None): + super(cdi_conf_tab, self).__init__(parent) + self.main_win = main_win + self.tab1 = QWidget() + self.tab2 = QWidget() + self.tab3 = QWidget() + self.tab4 = QWidget() + + self.addTab(self.tab1, "34ID prep") + self.addTab(self.tab2, "Data") + self.addTab(self.tab3, "Reconstruction") + self.addTab(self.tab4, "Display") + self.tab1UI() + self.tab2UI() + self.tab3UI() + self.tab4UI() + + + def tab1UI(self): + layout = QFormLayout() + self.data_dir_button = QPushButton() + layout.addRow("data directory", self.data_dir_button) + self.spec_file_button = QPushButton() + layout.addRow("spec file", self.spec_file_button) + self.dark_file_button = QPushButton() + layout.addRow("darkfield file", self.dark_file_button) + self.white_file_button = QPushButton() + layout.addRow("whitefield file", self.white_file_button) + self.prep_button = QPushButton('prepare', self) + layout.addWidget(self.prep_button) + self.tab1.setLayout(layout) + + self.prep_button.clicked.connect(self.prepare) + self.data_dir_button.clicked.connect(self.set_data_dir) + self.spec_file_button.clicked.connect(self.set_spec_file) + self.dark_file_button.clicked.connect(self.set_dark_file) + self.white_file_button.clicked.connect(self.set_white_file) + + + def tab2UI(self): + layout = QFormLayout() + self.aliens = QLineEdit() + layout.addRow("aliens", self.aliens) + self.amp_threshold = QLineEdit() + layout.addRow("amp_threshold", self.amp_threshold) + self.binning = QLineEdit() + layout.addRow("binning", self.binning) + self.center_shift = QLineEdit() + layout.addRow("center_shift", self.center_shift) + self.adjust_dimensions = QLineEdit() + layout.addRow("adjust_dimensions", self.adjust_dimensions) + self.config_data_button = QPushButton('model data', self) + layout.addWidget(self.config_data_button) + self.tab2.setLayout(layout) + + # this will create config_data file and run data script + # to generate data ready for recondtruction + self.config_data_button.clicked.connect(self.model_data) + + + def tab3UI(self): + layout = QVBoxLayout() + ulayout = QFormLayout() + llayout = QHBoxLayout() + self.cont = QCheckBox() + ulayout.addRow("continuation", self.cont) + self.cont.setChecked(False) + self.device = QLineEdit() + ulayout.addRow("device(s)", self.device) + self.threads = QLineEdit() + ulayout.addRow("number of threads", self.threads) + self.gc = QLineEdit() + ulayout.addRow("gc triggers", self.gc) + self.alg_seq = QLineEdit() + ulayout.addRow("algorithm sequence", self.alg_seq) + # TODO add logic to show this only if HIO is in sequence + self.beta = QLineEdit() + ulayout.addRow("beta", self.beta) + self.rec_default_button = QPushButton('set to defaults', self) + ulayout.addWidget(self.rec_default_button) + + layout.addLayout(ulayout) + layout.addLayout(llayout) + self.features = Features(self, llayout) + self.config_rec_button = QPushButton('run reconstruction', self) + layout.addWidget(self.config_rec_button) + self.tab3.setAutoFillBackground(True) + self.tab3.setLayout(layout) + + self.config_rec_button.clicked.connect(self.reconstruction) + self.cont.stateChanged.connect(lambda: self.toggle_cont(ulayout)) + self.rec_default_button.clicked.connect(self.rec_default) + + + def toggle_cont(self, layout): + cb_label = layout.labelForField(self.cont) + if self.cont.isChecked(): + self.cont_dir = QLineEdit() + layout.insertRow(2, "continue dir", self.cont_dir) + cb_label.setStyleSheet('color: black') + else: + label = layout.labelForField(self.cont_dir) + self.cont_dir.setParent(None) + label.setParent(None) + cb_label.setStyleSheet('color: grey') + + + def tab4UI(self): + layout = QFormLayout() + self.crop = QLineEdit() + layout.addRow("crop", self.crop) + self.config_disp_button = QPushButton('process display', self) + layout.addWidget(self.config_disp_button) + self.tab4.setLayout(layout) + + self.config_disp_button.clicked.connect(self.display) + + + def set_spec_file(self): + self.specfile = select_file(self.specfile) + self.spec_file_button.setStyleSheet("Text-align:left") + self.spec_file_button.setText(self.specfile) + + + def set_dark_file(self): + self.darkfile = select_file(self.darkfile) + self.dark_file_button.setStyleSheet("Text-align:left") + self.dark_file_button.setText(self.darkfile) + + + def set_white_file(self): + self.whitefile = select_file(self.whitefile) + self.white_file_button.setStyleSheet("Text-align:left") + self.white_file_button.setText(self.whitefile) + + + def set_data_dir(self): + self.data_dir = select_dir(self.data_dir) + self.data_dir_button.setStyleSheet("Text-align:left") + self.data_dir_button.setText(self.data_dir) + + + def prepare(self): + scan = str(self.main_win.scan_widget.text()) + if self.main_win.working_dir is not None and \ + self.main_win.id is not None and\ + scan is not None and \ + self.data_dir is not None and \ + self.specfile is not None: + try: + # after checking that scan is entered convert it to list of int + scan_range = scan.split('-') + for i in range(len(scan_range)): + scan_range[i] = int(scan_range[i]) + except: + print ('enter numeric values for scan range') + else: + print ('enter all fields') + prep.prepare(self.main_win.working_dir, self.main_win.exp_id, scan_range, self.data_dir, self.specfile, self.darkfile, self.whitefile) + + + def model_data(self): + conf_map = {} + if len(self.aliens.text()) > 0: + conf_map['aliens'] = str(self.aliens.text()) + else: + print ("aliens not defined") + if len(self.amp_threshold.text()) > 0: + conf_map['amp_threshold'] = str(self.amp_threshold.text()) + else: + print ('amplitude threshold not defined. Quiting operation.') + return + if len(self.binning.text()) > 0: + conf_map['binning'] = str(self.binning.text()) + else: + print ("binning not defined") + if len(self.center_shift.text()) > 0: + conf_map['center_shift'] = str(self.center_shift.text()) + else: + print ("center shift not defined") + if len(self.adjust_dimensions.text()) > 0: + conf_map['adjust_dimensions'] = str(self.adjust_dimensions.text()) + else: + print ("adjust dimensions not defined") + + self.create_config('config_data', conf_map) + + run_dt.data(self.main_win.experiment_dir) + + + def reconstruction(self): + conf_map = {} + conf_map['threads'] = str(self.threads.text()) + conf_map['device'] = str(self.device.text()) + conf_map['garbage_trigger'] = str(self.gc.text()) + conf_map['algorithm_sequence'] = str(self.alg_seq.text()) + conf_map['beta'] = str(self.beta.text()) + if self.cont.isChecked(): + conf_map['continue_dir'] = str(self.cont_dir.text()) + + for feat_id in self.features.feature_dir: + self.features.feature_dir[feat_id].add_config(conf_map) + + self.create_config('config_rec', conf_map) + + run_rc.reconstruction('cpu', self.main_win.experiment_dir) + + + def create_config(self, conf_file, conf_map): + conf_file = os.path.join(self.main_win.experiment_dir, 'conf', conf_file) + temp_file = os.path.join(self.main_win.experiment_dir, 'conf', 'temp') + with open(temp_file, 'a') as f: + for key in conf_map: + value = conf_map[key] + if len(value) == 0: + print ('the ' + key + ' is not configured') + continue + f.write(key + ' = ' + conf_map[key] + '\n') + f.close() + + shutil.move(temp_file, conf_file) + + + def display(self): + if len(self.crop.text()) == 0: + print ('crop not configured') + + disp_conf_file = os.path.join(self.main_win.experiment_dir, 'conf', 'config_disp') + temp_file = os.path.join(self.main_win.experiment_dir, 'conf', 'temp') + with open(temp_file, 'a') as temp: + try: + with open(disp_conf_file, 'r') as f: + for line in f: + if not line.startswith('crop') and not line.startswith('binning'): + temp.write(line) + f.close() + except: + pass + + if len(self.crop.text()) != 0: + temp.write('crop = ' + str(self.crop.text()) + '\n') + + temp.close() + shutil.move(temp_file, disp_conf_file) + + run_dp.to_vtk(self.main_win.experiment_dir) + + + def rec_default(self): + if self.main_win.working_dir is None or self.main_win.id is None or \ + len(self.main_win.working_dir) == 0 or len(self.main_win.id) == 0: + print ('Working Directory or Reconstruction ID not configured') + else: + self.threads.setText('1') + self.device.setText('(3)') + self.gc.setText('(1000)') + self.alg_seq.setText('((3,("ER",20),("HIO",180)),(1,("ER",20)))') + self.beta.setText('.9') + self.cont.setChecked(False) + + +class Feature(object): + def __init__(self): + self.stack = QWidget() + + + def stackUI(self, item, feats): + layout = QFormLayout() + self.active = QCheckBox("active") + self.active.setChecked(True) + layout.addWidget(self.active) + self.toggle(layout, item, feats) + self.stack.setLayout(layout) + self.active.stateChanged.connect(lambda: self.toggle(layout, item, feats)) + + + def toggle(self, layout, item, feats): + if self.active.isChecked(): + self.fill_active(layout) + + self.default_button = QPushButton('set to defaults', feats) + layout.addWidget(self.default_button) + self.default_button.clicked.connect(self.rec_default) + + item.setForeground(QColor('black')); + else: + for i in reversed(range(1, layout.count())): + layout.itemAt(i).widget().setParent(None) + item.setForeground(QColor('grey')); + + def fill_active(self, layout): + pass + + + def rec_default(self): + pass + + + def add_config(self, conf_map): + if self.active.isChecked(): + self.add_feat_conf(conf_map) + + def add_feat_conf(self, conf_map): + pass + + +class GA(Feature): + def __init__(self): + super(GA, self).__init__() + self.id = 'GA' + + # override setting the active to set it False + def stackUI(self, item, feats): + super(GA, self).stackUI(item, feats) + self.active.setChecked(False) + + + def fill_active(self, layout): + self.generations = QLineEdit() + layout.addRow("generations", self.generations) + self.lr_generations = QLineEdit() + layout.addRow("low resolution generations", self.lr_generations) + self.lr_sigma_alg = QLineEdit() + layout.addRow("low resolution sigma algorithm", self.lr_sigma_alg) + self.lr_sigmas = QLineEdit() + layout.addRow("low resolution sigmas", self.lr_sigmas) + self.lr_sigma_min = QLineEdit() + layout.addRow("low resolution sigma min", self.lr_sigma_min) + self.lr_sigma_max = QLineEdit() + layout.addRow("low resolution sigma max", self.lr_sigma_max) + self.lr_scale_power = QLineEdit() + layout.addRow("low resolution scale power", self.lr_scale_power) + self.lr_algorithm = QLineEdit() + layout.addRow("low resolution algorithm", self.lr_algorithm) + + + def add_feat_conf(self, conf_map): + conf_map['generations'] = str(self.generations.text()) + conf_map['low_resolution_generations'] = str(self.lr_generations.text()) + conf_map['low_resolution_sigma_alg'] = str(self.lr_sigma_alg.text()) + conf_map['low_resolution_sigmas'] = str(self.lr_sigmas.text()) + conf_map['low_resolution_sigma_min'] = str(self.lr_sigma_min.text()) + conf_map['low_resolution_sigma_max'] = str(self.lr_sigma_max.text()) + conf_map['low_resolution_scale_power'] = str(self.lr_scale_power.text()) + conf_map['low_resolution_alg'] = str(self.lr_algorithm.text()) + + +class low_resolution(Feature): + def __init__(self): + super(low_resolution, self).__init__() + self.id = 'low resolution' + + + def fill_active(self, layout): + self.res_triggers = QLineEdit() + layout.addRow("low resolution triggers", self.res_triggers) + self.sigma_range = QLineEdit() + layout.addRow("sigma range", self.sigma_range) + self.det_range = QLineEdit() + layout.addRow("det range", self.det_range) + + + def rec_default(self): + #TODO add to accept fractions in trigger, so the default will be (.5,1) + self.res_triggers.setText('(0, 1, 320)') + self.sigma_range.setText('(2.0)') + self.det_range.setText('(.7)') + + + def add_feat_conf(self, conf_map): + conf_map['resolution_trigger'] = str(self.res_triggers.text()) + conf_map['iter_res_sigma_range'] = str(self.sigma_range.text()) + conf_map['iter_res_det_range'] = str(self.det_range.text()) + + +class amplitude_support(Feature): + def __init__(self): + super(amplitude_support, self).__init__() + self.id = 'amplitude support' + + + def fill_active(self, layout): + self.support_triggers = QLineEdit() + layout.addRow("support triggers", self.support_triggers) + self.support_type = QLineEdit() + layout.addRow("support algorithm", self.support_type) + self.support_area = QLineEdit() + layout.addRow("starting support area", self.support_area) + self.threshold = QLineEdit() + layout.addRow("threshold", self.threshold) + self.sigma = QLineEdit() + layout.addRow("sigma", self.sigma) + + + def rec_default(self): + self.support_triggers.setText('(1,1)') + self.support_type.setText('"GAUSS"') + self.support_area.setText('[.5,.5,.5]') + self.sigma.setText('1.0') + self.threshold.setText('0.1') + + + def add_feat_conf(self, conf_map): + conf_map['amp_support_trigger'] = str(self.support_triggers.text()) + conf_map['support_type'] = str(self.support_type.text()) + conf_map['support_threshold'] = str(self.threshold.text()) + conf_map['support_sigma'] = str(self.sigma.text()) + conf_map['support_area'] = str(self.support_area.text()) + + +class phase_support(Feature): + def __init__(self): + super(phase_support, self).__init__() + self.id = 'phase support' + + + def fill_active(self, layout): + self.phase_triggers = QLineEdit() + layout.addRow("phase support triggers", self.phase_triggers) + self.phase_min = QLineEdit() + layout.addRow("phase minimum", self.phase_min) + self.phase_max = QLineEdit() + layout.addRow("phase maximum", self.phase_max) + + + def rec_default(self): + self.phase_triggers.setText('(0,1,20)') + self.phase_min.setText('-1.57') + self.phase_max.setText('1.57') + + + def add_feat_conf(self, conf_map): + conf_map['phase_support_trigger'] = str(self.phase_triggers.text()) + conf_map['phase_min'] = str(self.phase_min.text()) + conf_map['phase_max'] = str(self.phase_max.text()) + + +class pcdi(Feature): + def __init__(self): + super(pcdi, self).__init__() + self.id = 'pcdi' + + + def fill_active(self, layout): + self.pcdi_triggers = QLineEdit() + layout.addRow("pcdi triggers", self.pcdi_triggers) + self.pcdi_type = QLineEdit() + layout.addRow("partial coherence algorithm", self.pcdi_type) + self.pcdi_iter = QLineEdit() + layout.addRow("pcdi iteration number", self.pcdi_iter) + self.pcdi_normalize = QLineEdit() + layout.addRow("normalize", self.pcdi_normalize) + self.pcdi_roi = QLineEdit() + layout.addRow("pcdi kernel area", self.pcdi_roi) + + + def rec_default(self): + self.pcdi_triggers.setText('(50,50)') + self.pcdi_type.setText('"LUCY"') + self.pcdi_iter.setText('20') + self.pcdi_normalize.setText('true') + self.pcdi_roi.setText('[32,32,16]') + + + def add_feat_conf(self, conf_map): + conf_map['pcdi_trigger'] = str(self.pcdi_triggers.text()) + conf_map['partial_coherence_type'] = str(self.pcdi_type.text()) + conf_map['partial_coherence_iteration_num'] = str(self.pcdi_iter.text()) + conf_map['partial_coherence_normalize'] = str(self.pcdi_normalize.text()) + conf_map['partial_coherence_roi'] = str(self.pcdi_roi.text()) + + +class twin(Feature): + def __init__(self): + super(twin, self).__init__() + self.id = 'twin' + + + def fill_active(self, layout): + self.twin_triggers = QLineEdit() + layout.addRow("twin triggers", self.twin_triggers) + + + def rec_default(self): + self.twin_triggers.setText('(2)') + + + def add_feat_conf(self, conf_map): + conf_map['twin_trigger'] = str(self.twin_triggers.text()) + + +class average(Feature): + def __init__(self): + super(average, self).__init__() + self.id = 'average' + + + def fill_active(self, layout): + self.average_triggers = QLineEdit() + layout.addRow("average triggers", self.average_triggers) + + + def rec_default(self): + self.average_triggers.setText('(-400,1)') + + + def add_feat_conf(self, conf_map): + conf_map['avarage_trigger'] = str(self.average_triggers.text()) + + +class Features(QWidget): + def __init__(self, tab, layout): + super(Features, self).__init__() + feature_ids = ['GA', 'low resolution', 'amplitude support', 'phase support', 'pcdi', 'twin', 'average'] + self.leftlist = QListWidget() + self.feature_dir = {'GA' : GA(), + 'low resolution' : low_resolution(), + 'amplitude support' : amplitude_support(), + 'phase support' : phase_support(), + 'pcdi' : pcdi(), + 'twin' : twin(), + 'average' : average()} + self.Stack = QStackedWidget(self) + for i in range(len(feature_ids)): + id = feature_ids[i] + self.leftlist.insertItem(i, id) + feature = self.feature_dir[id] + feature.stackUI(self.leftlist.item(i), self) + self.Stack.addWidget(feature.stack) + + layout.addWidget(self.leftlist) + layout.addWidget(self.Stack) + + self.leftlist.currentRowChanged.connect(self.display) + + + def display(self, i): + self.Stack.setCurrentIndex(i) + + +def main(): + app = QApplication(sys.argv) + ex = cdi_conf() + ex.show() + sys.exit(app.exec_()) + + +if __name__ == '__main__': + main() \ No newline at end of file diff --git a/conf/last/config b/conf/last/config index 7eadd4d..3cf08bf 100644 --- a/conf/last/config +++ b/conf/last/config @@ -1,4 +1,4 @@ -working_dir = "test" +working_dir = "/net/s34data/export/34idc-data/2018" data_dir = "/net/s34data/export/34idc-data/2018/Chung1118/ADChung1118a" specfile = "/net/s34data/export/34idc-data/2018/Chung1118/Chung1118a.spec" darkfile = "/net/s34data/export/34idc-work/2018/Chung1118/dark.tif" diff --git a/conf/last/config_rec b/conf/last/config_rec index fede549..db9e688 100644 --- a/conf/last/config_rec +++ b/conf/last/config_rec @@ -4,7 +4,7 @@ threads = 1 generations = 1 low_resolution_generations = 0 -algorithm_sequence = ((3,("ER",20),("HIO",180)),(1,("ER",22))) +algorithm_sequence = ((3,("ER",2),("HIO",2)),(1,("ER",2))) beta = .9 twin_trigger = (2) diff --git a/run_disp.sh b/run_disp.sh deleted file mode 100644 index 3ecb4a4..0000000 --- a/run_disp.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh - -p=$PATH -p=${p//"anaconda3"/"anaconda2"} -export PATH=$p -disp_conf_file="/conf/config_disp" -divider="/" - -python run_disp.py $1$divider$2$disp_conf_file -#python run_disp.py / \ No newline at end of file diff --git a/run_prepare.py b/run_prepare.py index 7aa0588..357fd36 100755 --- a/run_prepare.py +++ b/run_prepare.py @@ -36,8 +36,8 @@ def has_conf(dir): print ('configured directory ' + conf_dir + ' does not exist') sys.exit(0) - # find if there is "last" file in the given directory and use the last configuration from there if exists - # otherwise use the default config + # find if there is "last" directory in the given directory and use the last configuration from there if exists + # otherwise use the "defaults" directory. If this does not exist, check if the conf_dir has the configuration last_conf_dir = os.path.join(conf_dir, 'last') default_conf_dir = os.path.join(conf_dir, 'defaults') @@ -46,6 +46,8 @@ def has_conf(dir): read_from_dir = last_conf_dir elif os.path.isdir(default_conf_dir) and has_conf(default_conf_dir): read_from_dir = default_conf_dir + elif has_conf(conf_dir): + read_from_dir = conf_dir else: print('configured directory ' + conf_dir + ' does not contain file "config"') sys.exit(0) diff --git a/run_rec.sh b/run_rec.sh index a9cebb4..895f2df 100644 --- a/run_rec.sh +++ b/run_rec.sh @@ -8,11 +8,5 @@ export LD_LIBRARY_PATH=/usr/local/lib:/local/libconfig/lib:/local/af/lib #newest arrayfire version will work with cuda 9.1 #export LD_LIBRARY_PATH=/home/beams/CXDUSER/CDI/arrayfire/lib:/home/beams/CXDUSER/CDI/libconfig/lib:/local/cuda-9.0/lib64:/local/cuda-9.0/nvvm/lib64 -p=$PATH -p=${p//"anaconda2"/"anaconda3"} -export PATH=$p -rec_conf_file="/conf/config_rec" -divider="/" - -python run_rec.py $1 $2$divider$3$rec_conf_file -#python run_rec.py "opencl" "config_rec" \ No newline at end of file +python run_rec.py $1 $2 +#python run_rec.py "opencl" \ No newline at end of file diff --git a/src_py/run_scripts/__init__.py b/src_py/run_scripts/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src_py/run_scripts/run_34id_prepare.py b/src_py/run_scripts/run_34id_prepare.py new file mode 100755 index 0000000..7b82acc --- /dev/null +++ b/src_py/run_scripts/run_34id_prepare.py @@ -0,0 +1,80 @@ +import argparse +import pylibconfig2 as cfg +import sys +import os +import aps_34id.prep as prep +import shutil + + +def main(arg): + def has_conf(dir): + conf = os.path.join(dir, 'config') + return os.path.isfile(conf) + + + parser = argparse.ArgumentParser() + parser.add_argument("id", help="prefix to name of the experiment/data reconstruction") + parser.add_argument("scan", help="a range of scans to prepare data from") + parser.add_argument("conf_dir", help="directory where the configuration files are located") + args = parser.parse_args() + scan = args.scan + id = args.id + '_' + scan + print ('reading data file for experiment ' + id) + try: + # convert it to list of int + scan_range = scan.split('-') + scan_num = [] + for i in range(len(scan_range)): + scan_num.append(int(scan_range[i])) + except: + print ('enter numeric values for scan range') + sys.exit(0) + + conf_dir = args.conf_dir + + if not os.path.isdir(conf_dir): + print ('configured directory ' + conf_dir + ' does not exist') + sys.exit(0) + + # find if there is "last" directory in the given directory and use the last configuration from there if exists + # otherwise use the "defaults" directory. If this does not exist, check if the conf_dir has the configuration + last_conf_dir = os.path.join(conf_dir, 'last') + default_conf_dir = os.path.join(conf_dir, 'defaults') + + # try read configuration from last + if os.path.isdir(last_conf_dir) and has_conf(last_conf_dir): + read_from_dir = last_conf_dir + elif os.path.isdir(default_conf_dir) and has_conf(default_conf_dir): + read_from_dir = default_conf_dir + elif has_conf(conf_dir): + read_from_dir = conf_dir + else: + print('configured directory ' + conf_dir + ' does not contain file "config"') + sys.exit(0) + + main_conf = os.path.join(read_from_dir, 'config') + with open(main_conf, 'r') as f: + config_map = cfg.Config(f.read()) + + experiment_dir = os.path.join(config_map.working_dir, id) + experiment_conf_dir = os.path.join(experiment_dir, 'conf') + if not os.path.exists(experiment_conf_dir): + os.makedirs(experiment_conf_dir) + + # copy config_data, config_rec, cofig_disp files from cofig directory into the experiment conf directory + shutil.copy(main_conf, experiment_conf_dir) + conf_data = os.path.join(read_from_dir,'config_data') + shutil.copy(conf_data, experiment_conf_dir) + conf_rec = os.path.join(read_from_dir,'config_rec') + shutil.copy(conf_rec, experiment_conf_dir) + conf_disp = os.path.join(read_from_dir,'config_disp') + if os.path.isfile(conf_disp): + shutil.copy(conf_disp, experiment_conf_dir) + + prep.prepare(config_map.working_dir, id, scan_num, config_map.data_dir, config_map.specfile, config_map.darkfile, config_map.whitefile) + print (experiment_dir) + return experiment_dir + + +if __name__ == "__main__": + exit(main(sys.argv[1:])) diff --git a/src_py/run_scripts/run_data.py b/src_py/run_scripts/run_data.py new file mode 100755 index 0000000..8c0a797 --- /dev/null +++ b/src_py/run_scripts/run_data.py @@ -0,0 +1,22 @@ +import src_py.controller.data as dt +import sys +import argparse +import os + + +def data(experiment_dir): + print ('modeling data') + prep_file = os.path.join(experiment_dir, 'prep', 'prep_data.tif') + dt.prep(prep_file, experiment_dir) + print ('done preparing data') + + +def main(arg): + parser = argparse.ArgumentParser() + parser.add_argument("experiment_dir", help="experiment directory") + args = parser.parse_args() + data(args.experiment_dir) + + +if __name__ == "__main__": + main(sys.argv[1:]) diff --git a/src_py/run_scripts/run_disp.py b/src_py/run_scripts/run_disp.py new file mode 100755 index 0000000..7b90579 --- /dev/null +++ b/src_py/run_scripts/run_disp.py @@ -0,0 +1,79 @@ +import src_py.utilities.CXDVizNX as cx +import argparse +import sys +import os +import src_py.utilities.utils as ut +import numpy as np + + +def save_vtk(res_dir, conf): + try: + imagefile = os.path.join(res_dir, 'image.npy') + image = np.load(imagefile) + except: + return + + try: + supportfile = os.path.join(res_dir, 'support.npy') + support = np.load(supportfile) + except: + print ('support file ' + supportfile + ' is missing') + return + + cx.save_CX(conf, image, support, res_dir) + + +def to_vtk(conf_info): + if os.path.isdir(conf_info): + experiment_dir = conf_info + conf = os.path.join(experiment_dir, 'conf', 'config_disp') + # read binning info from config_data file in the same directory + conf_data = os.path.join(experiment_dir, 'conf', 'config_data') + binning_info = None + with open(conf_data, 'r') as f: + lines = f.readlines() + for line in lines: + if line.startswith("binning"): + binning_info = line + '\n' + break + # write the binning line into 'config_disp' file + if binning_info is not None: + with open(conf, "a") as f: + f.write(binning_info) + else: + #assuming it's a file + conf = conf_info + experiment_dir = None + config_map = ut.read_config(conf) + if config_map is None: + print ("can't read configuration file") + return + + try: + save_dir = config_map.save_dir + except AttributeError: + save_dir = os.path.join(experiment_dir, 'results') + + save_vtk(save_dir, conf) + print ('save dir', save_dir) + for sub in os.listdir(save_dir): + subdir = os.path.join(save_dir, sub) + print ('subdir', subdir) + if os.path.isdir(subdir): + save_vtk(subdir, conf) + + +def main(arg): + print ('preparing display') + parser = argparse.ArgumentParser() + parser.add_argument("conf_info", help="experiment directory or display configuration file") + args = parser.parse_args() + conf_info = args.conf_info + + to_vtk(conf_info) + print ('done with display') + +if __name__ == "__main__": + main(sys.argv[1:]) + +#python run_disp.py 'config_disp' diff --git a/src_py/run_scripts/run_rec.py b/src_py/run_scripts/run_rec.py new file mode 100755 index 0000000..11b0bd9 --- /dev/null +++ b/src_py/run_scripts/run_rec.py @@ -0,0 +1,84 @@ +import sys +import signal +import os +import argparse +from multiprocessing import Process +import numpy as np +import src_py.controller.reconstruction as rec +import src_py.controller.gen_rec as gen_rec +import src_py.utilities.utils as ut + + +def interrupt_thread(arg): + def int_handler(signal, frame): + open('stopfile', 'a').close() + + def term_handler(signal, frame): + pass + + signal.signal(signal.SIGINT, int_handler) + signal.signal(signal.SIGTERM, term_handler) + signal.pause() + + +def reconstruction(proc, experiment_dir): + if os.path.exists('stopfile'): + os.remove('stopfile') + p = Process(target = interrupt_thread, args = (1,)) + p.start() + + print ('starting reconstruction') + conf = os.path.join(experiment_dir, 'conf', 'config_rec') + print ('rec conf', conf) + config_map = ut.read_config(conf) + if config_map is None: + print ("can't read configuration file") + return + + try: + data_dir = config_map.data_dir + except AttributeError: + data_dir = os.path.join(experiment_dir, 'data') + datafile = os.path.join(data_dir, 'data.npy') + + try: + data = np.load(datafile) + print ('data shape', data.shape) + except: + print ('data file ' + datafile + ' is missing') + return + + try: + generations = config_map.generations + except: + generations = 1 + + if generations > 1: + gen_rec.reconstruction(generations, proc, data, experiment_dir, config_map) + else: + rec.reconstruction(proc, data, experiment_dir, config_map) + print ('done with reconstruction') + + p.terminate() + +def main(arg): + parser = argparse.ArgumentParser() + parser.add_argument("proc", help="the processor the code will run on, can be 'cpu', 'opencl', or 'cuda'.") + parser.add_argument("experiment_dir", help="experiment directory.") + args = parser.parse_args() + proc = args.proc + experiment_dir = args.experiment_dir + + reconstruction(proc, experiment_dir) + + +if __name__ == "__main__": + if os.path.exists('stopfile'): + os.remove('stopfile') + p = Process(target = interrupt_thread, args = (1,)) + p.start() + main(sys.argv[1:]) + p.terminate() + +#python run_rec.py 'opencl' 'config_rec' + From bf55acd83055f4021815e31c027574bd1f0262f2 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Tue, 18 Dec 2018 12:03:42 -0600 Subject: [PATCH 102/336] fixed adjust_dimensions and modified running scripts --- aps_34id/prep.py | 4 +- cdi_conf_window.py | 276 +++++++++++++++++++------ everything.py | 29 +++ everything.sh | 6 +- how_to_run | 66 ++---- run_data.py | 5 + run_prepare.py | 61 ++++++ src_py/controller/data.py | 2 +- src_py/run_scripts/run_34id_prepare.py | 80 ++++--- src_py/run_scripts/run_data.py | 5 + src_py/run_scripts/run_rec.py | 6 + src_py/utilities/utils.py | 57 ++++- 12 files changed, 429 insertions(+), 168 deletions(-) create mode 100644 everything.py diff --git a/aps_34id/prep.py b/aps_34id/prep.py index b74ef31..5cb8594 100644 --- a/aps_34id/prep.py +++ b/aps_34id/prep.py @@ -155,7 +155,8 @@ def prep_data(scan, det_area1, det_area2, data_dir, prep_data_dir, darkfile, whi # crop the corresponding quad or use the whole array, depending on what info was parsed from spec file white = white_full[slice(det_area1[0], det_area1[1]), slice(det_area2[0], det_area2[1])] # set the bad pixels to some large value - white = np.where(white==0, 1e20, white) #Some large value + #white = np.where(white==0, 1e20, white) #Some large value + white = np.where(white<5000, 1e20, white) #Some large value if len(scan) == 1: arr = read_scan(dirs[scan[0]], dark, white) @@ -339,4 +340,3 @@ def create_default_config(working_dir, id): # create_default_config('/local/bfrosik/cdi/test', 'A') - diff --git a/cdi_conf_window.py b/cdi_conf_window.py index 6f7bf20..8b305cc 100644 --- a/cdi_conf_window.py +++ b/cdi_conf_window.py @@ -8,7 +8,7 @@ import src_py.run_scripts.run_rec as run_rc import src_py.run_scripts.run_disp as run_dp import src_py.utilities.utils as ut -import aps_34id.prep as prep +import src_py.run_scripts.run_34id_prepare as prep def select_file(start_dir): @@ -27,6 +27,21 @@ def select_dir(start_dir): return str(dialog.selectedFiles()[0]) +def write_conf(conf_map, dir, file): + # create "temp" file first and then overrite existing configuration file + if not os.path.exists(dir): + os.makedirs(dir) + conf_file = os.path.join(dir, file) + temp_file = os.path.join(dir, 'temp') + with open(temp_file, 'a') as f: + for key in conf_map: + value = conf_map[key] + if len(value) > 0: + f.write(key + ' = ' + conf_map[key] + '\n') + f.close() + shutil.move(temp_file, conf_file) + + class cdi_conf(QWidget): def __init__(self, parent=None): super(cdi_conf, self).__init__(parent) @@ -97,6 +112,7 @@ def set_init(self): def set_from_conf(self, dir): + print ('dir', dir) main_conf = os.path.join(dir, 'config') conf_map = ut.read_config(main_conf) # initialize to the value from config file @@ -121,34 +137,59 @@ def set_from_conf(self, dir): data_conf = os.path.join(dir, 'config_data') conf_map = ut.read_config(data_conf) try: - self.t.aliens = conf_map.aliens - except KeyError: + self.t.aliens.setText(str(conf_map.aliens).replace(" ", "")) + except AttributeError: pass try: - self.t.amp_threshold = conf_map.amp_threshold - except KeyError: + self.t.amp_threshold.setText(str(conf_map.amp_threshold).replace(" ", "")) + except AttributeError: pass try: - self.t.binning = conf_map.binning - except KeyError: + self.t.binning.setText(str(conf_map.binning).replace(" ", "")) + except AttributeError: pass try: - self.t.center_shift = conf_map.center_shift - except KeyError: + self.t.center_shift.setText(str(conf_map.center_shift).replace(" ", "")) + except AttributeError: pass try: - self.t.adjust_dimensions = conf_map.adjust_dimensions - except KeyError: + self.t.adjust_dimensions.setText(str(conf_map.adjust_dimensions).replace(" ", "")) + except AttributeError: pass # initialize "Reconstruction" tab + rec_conf = os.path.join(dir, 'config_rec') + conf_map = ut.read_config(rec_conf) + try: + self.t.device.setText(str(conf_map.device).replace(" ", "")) + except AttributeError: + pass + try: + self.t.threads.setText(str(conf_map.threads).replace(" ", "")) + except AttributeError: + pass + try: + self.t.gc.setText(str(conf_map.garbage_trigger).replace(" ", "")) + except AttributeError: + pass + try: + self.t.alg_seq.setText(str(conf_map.algorithm_sequence).replace(" ", "")) + except AttributeError: + pass + try: + self.t.beta.setText(str(conf_map.beta).replace(" ", "")) + except AttributeError: + pass + + for feat_id in self.t.features.feature_dir: + self.t.features.feature_dir[feat_id].init_config(conf_map) # initialize "Display" tab disp_conf = os.path.join(dir, 'config_disp') conf_map = ut.read_config(disp_conf) try: - self.t.crop = conf_map.crop - except KeyError: + self.t.crop.setText(str(conf_map.crop).replace(" ", "")) + except AttributeError: pass @@ -297,27 +338,54 @@ def set_data_dir(self): def prepare(self): scan = str(self.main_win.scan_widget.text()) - if self.main_win.working_dir is not None and \ - self.main_win.id is not None and\ - scan is not None and \ - self.data_dir is not None and \ - self.specfile is not None: - try: - # after checking that scan is entered convert it to list of int - scan_range = scan.split('-') - for i in range(len(scan_range)): - scan_range[i] = int(scan_range[i]) - except: - print ('enter numeric values for scan range') + if self.main_win.working_dir is None or \ + self.main_win.id is None or\ + scan is None or \ + self.data_dir is None or \ + self.specfile is None: + print ('enter all parameters: working_dir, id, scan, data_dir, specfile') + return + + try: + # after checking that scan is entered convert it to list of int + scan_range = scan.split('-') + for i in range(len(scan_range)): + scan_range[i] = int(scan_range[i]) + except: + print('enter numeric values for scan range') + + conf_map = {} + if len(self.main_win.working_dir) > 0: + conf_map['working_dir'] = '"' + str(self.main_win.working_dir) + '"' else: - print ('enter all fields') + print ("working_dir not defined") + if len(self.data_dir) > 0: + conf_map['data_dir'] = '"' + str(self.data_dir) + '"' + else: + print ("data_dir not defined") + if len(self.specfile) > 0: + conf_map['specfile'] = '"' + str(self.specfile) + '"' + else: + print ("specfile not defined") + if len(self.darkfile) > 0: + conf_map['darkfile'] = '"' + str(self.darkfile) + '"' + else: + print ("darkfile not defined") + if len(self.whitefile) > 0: + conf_map['whitefile'] = '"' + str(self.whitefile) + '"' + else: + print ("whitefile not defined") + + conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') + write_conf(conf_map, conf_dir, 'config') + prep.prepare(self.main_win.working_dir, self.main_win.exp_id, scan_range, self.data_dir, self.specfile, self.darkfile, self.whitefile) def model_data(self): conf_map = {} if len(self.aliens.text()) > 0: - conf_map['aliens'] = str(self.aliens.text()) + conf_map['aliens'] = str(self.aliens.text()).replace('\n','') else: print ("aliens not defined") if len(self.amp_threshold.text()) > 0: @@ -326,19 +394,21 @@ def model_data(self): print ('amplitude threshold not defined. Quiting operation.') return if len(self.binning.text()) > 0: - conf_map['binning'] = str(self.binning.text()) + conf_map['binning'] = str(self.binning.text()).replace('\n','') else: print ("binning not defined") if len(self.center_shift.text()) > 0: - conf_map['center_shift'] = str(self.center_shift.text()) + conf_map['center_shift'] = str(self.center_shift.text()).replace('\n','') else: print ("center shift not defined") if len(self.adjust_dimensions.text()) > 0: - conf_map['adjust_dimensions'] = str(self.adjust_dimensions.text()) + conf_map['adjust_dimensions'] = str(self.adjust_dimensions.text()).replace('\n','') else: print ("adjust dimensions not defined") - self.create_config('config_data', conf_map) + #self.create_config('config_data', conf_map) + conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') + write_conf(conf_map, conf_dir, 'config_data') run_dt.data(self.main_win.experiment_dir) @@ -346,9 +416,9 @@ def model_data(self): def reconstruction(self): conf_map = {} conf_map['threads'] = str(self.threads.text()) - conf_map['device'] = str(self.device.text()) - conf_map['garbage_trigger'] = str(self.gc.text()) - conf_map['algorithm_sequence'] = str(self.alg_seq.text()) + conf_map['device'] = str(self.device.text()).replace('\n','') + conf_map['garbage_trigger'] = str(self.gc.text()).replace('\n','') + conf_map['algorithm_sequence'] = str(self.alg_seq.text()).replace('\n','') conf_map['beta'] = str(self.beta.text()) if self.cont.isChecked(): conf_map['continue_dir'] = str(self.cont_dir.text()) @@ -356,26 +426,13 @@ def reconstruction(self): for feat_id in self.features.feature_dir: self.features.feature_dir[feat_id].add_config(conf_map) - self.create_config('config_rec', conf_map) + #self.create_config('config_rec', conf_map) + conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') + write_conf(conf_map, conf_dir, 'config_rec') run_rc.reconstruction('cpu', self.main_win.experiment_dir) - def create_config(self, conf_file, conf_map): - conf_file = os.path.join(self.main_win.experiment_dir, 'conf', conf_file) - temp_file = os.path.join(self.main_win.experiment_dir, 'conf', 'temp') - with open(temp_file, 'a') as f: - for key in conf_map: - value = conf_map[key] - if len(value) == 0: - print ('the ' + key + ' is not configured') - continue - f.write(key + ' = ' + conf_map[key] + '\n') - f.close() - - shutil.move(temp_file, conf_file) - - def display(self): if len(self.crop.text()) == 0: print ('crop not configured') @@ -459,6 +516,10 @@ def add_feat_conf(self, conf_map): pass + def init_config(self, conf_map): + pass + + class GA(Feature): def __init__(self): super(GA, self).__init__() @@ -506,6 +567,21 @@ def __init__(self): self.id = 'low resolution' + def init_config(self, conf_map): + try: + self.res_triggers.setText(str(conf_map.resolution_trigger).replace(" ", "")) + except AttributeError: + pass + try: + self.sigma_range.setText(str(conf_map.iter_res_sigma_range).replace(" ", "")) + except AttributeError: + pass + try: + self.det_range.setText(str(conf_map.iter_res_det_range).replace(" ", "")) + except AttributeError: + pass + + def fill_active(self, layout): self.res_triggers = QLineEdit() layout.addRow("low resolution triggers", self.res_triggers) @@ -523,9 +599,9 @@ def rec_default(self): def add_feat_conf(self, conf_map): - conf_map['resolution_trigger'] = str(self.res_triggers.text()) - conf_map['iter_res_sigma_range'] = str(self.sigma_range.text()) - conf_map['iter_res_det_range'] = str(self.det_range.text()) + conf_map['resolution_trigger'] = str(self.res_triggers.text()).replace('\n','') + conf_map['iter_res_sigma_range'] = str(self.sigma_range.text()).replace('\n','') + conf_map['iter_res_det_range'] = str(self.det_range.text()).replace('\n','') class amplitude_support(Feature): @@ -534,6 +610,29 @@ def __init__(self): self.id = 'amplitude support' + def init_config(self, conf_map): + try: + self.support_triggers.setText(str(conf_map.amp_support_trigger).replace(" ", "")) + except AttributeError: + pass + try: + self.support_type.setText(str(conf_map.support_type).replace(" ", "")) + except AttributeError: + pass + try: + self.support_area.setText(str(conf_map.support_area).replace(" ", "")) + except AttributeError: + pass + try: + self.threshold.setText(str(conf_map.support_threshold).replace(" ", "")) + except AttributeError: + pass + try: + self.sigma.setText(str(conf_map.support_sigma).replace(" ", "")) + except AttributeError: + pass + + def fill_active(self, layout): self.support_triggers = QLineEdit() layout.addRow("support triggers", self.support_triggers) @@ -556,11 +655,11 @@ def rec_default(self): def add_feat_conf(self, conf_map): - conf_map['amp_support_trigger'] = str(self.support_triggers.text()) - conf_map['support_type'] = str(self.support_type.text()) + conf_map['amp_support_trigger'] = str(self.support_triggers.text()).replace('\n','') + conf_map['support_type'] = '"' + str(self.support_type.text()) + '"' conf_map['support_threshold'] = str(self.threshold.text()) conf_map['support_sigma'] = str(self.sigma.text()) - conf_map['support_area'] = str(self.support_area.text()) + conf_map['support_area'] = str(self.support_area.text()).replace('\n','') class phase_support(Feature): @@ -569,6 +668,21 @@ def __init__(self): self.id = 'phase support' + def init_config(self, conf_map): + try: + self.phase_triggers.setText(str(conf_map.phase_support_trigger).replace(" ", "")) + except AttributeError: + pass + try: + self.phase_min.setText(str(conf_map.phase_min).replace(" ", "")) + except AttributeError: + pass + try: + self.phase_max.setText(str(conf_map.phase_max).replace(" ", "")) + except AttributeError: + pass + + def fill_active(self, layout): self.phase_triggers = QLineEdit() layout.addRow("phase support triggers", self.phase_triggers) @@ -585,7 +699,7 @@ def rec_default(self): def add_feat_conf(self, conf_map): - conf_map['phase_support_trigger'] = str(self.phase_triggers.text()) + conf_map['phase_support_trigger'] = str(self.phase_triggers.text()).replace('\n','') conf_map['phase_min'] = str(self.phase_min.text()) conf_map['phase_max'] = str(self.phase_max.text()) @@ -596,6 +710,29 @@ def __init__(self): self.id = 'pcdi' + def init_config(self, conf_map): + try: + self.pcdi_triggers.setText(str(conf_map.pcdi_trigger).replace(" ", "")) + except AttributeError: + pass + try: + self.pcdi_type.setText(str(conf_map.partial_coherence_type).replace(" ", "")) + except AttributeError: + pass + try: + self.pcdi_iter.setText(str(conf_map.partial_coherence_iteration_num).replace(" ", "")) + except AttributeError: + pass + try: + self.pcdi_normalize.setText(str(conf_map.partial_coherence_normalize).replace(" ", "")) + except AttributeError: + pass + try: + self.pcdi_roi.setText(str(conf_map.partial_coherence_roi).replace(" ", "")) + except AttributeError: + pass + + def fill_active(self, layout): self.pcdi_triggers = QLineEdit() layout.addRow("pcdi triggers", self.pcdi_triggers) @@ -618,11 +755,11 @@ def rec_default(self): def add_feat_conf(self, conf_map): - conf_map['pcdi_trigger'] = str(self.pcdi_triggers.text()) - conf_map['partial_coherence_type'] = str(self.pcdi_type.text()) + conf_map['pcdi_trigger'] = str(self.pcdi_triggers.text()).replace('\n','') + conf_map['partial_coherence_type'] = '"' + str(self.pcdi_type.text()) + '"' conf_map['partial_coherence_iteration_num'] = str(self.pcdi_iter.text()) conf_map['partial_coherence_normalize'] = str(self.pcdi_normalize.text()) - conf_map['partial_coherence_roi'] = str(self.pcdi_roi.text()) + conf_map['partial_coherence_roi'] = str(self.pcdi_roi.text()).replace('\n','') class twin(Feature): @@ -631,6 +768,13 @@ def __init__(self): self.id = 'twin' + def init_config(self, conf_map): + try: + self.twin_triggers.setText(str(conf_map.twin_trigger).replace(" ", "")) + except AttributeError: + pass + + def fill_active(self, layout): self.twin_triggers = QLineEdit() layout.addRow("twin triggers", self.twin_triggers) @@ -641,7 +785,7 @@ def rec_default(self): def add_feat_conf(self, conf_map): - conf_map['twin_trigger'] = str(self.twin_triggers.text()) + conf_map['twin_trigger'] = str(self.twin_triggers.text()).replace('\n','') class average(Feature): @@ -650,6 +794,13 @@ def __init__(self): self.id = 'average' + def init_config(self, conf_map): + try: + self.average_triggers.setText(str(conf_map.average_trigger).replace(" ", "")) + except AttributeError: + pass + + def fill_active(self, layout): self.average_triggers = QLineEdit() layout.addRow("average triggers", self.average_triggers) @@ -660,7 +811,8 @@ def rec_default(self): def add_feat_conf(self, conf_map): - conf_map['avarage_trigger'] = str(self.average_triggers.text()) + conf_map['avarage_trigger'] = str(self.average_triggers.text()).replace('\n','') + class Features(QWidget): diff --git a/everything.py b/everything.py new file mode 100644 index 0000000..0a98649 --- /dev/null +++ b/everything.py @@ -0,0 +1,29 @@ +import sys +import argparse +import src_py.run_scripts.run_data as run_dt +import src_py.run_scripts.run_rec as run_rc +import src_py.run_scripts.run_disp as run_dp +#import src_py.run_scripts.prep as prep +import run_prepare as prep + + +def main(arg): + parser = argparse.ArgumentParser() + parser.add_argument("dev", help="processor to run on (cpu, opencl, cuda)") + parser.add_argument("prefix", help="prefix id") + parser.add_argument("scans", help="scans to preocess") + parser.add_argument("conf_dir", help="directory with configuration files") + args = parser.parse_args() + dev = args.dev + prefix = args.prefix + scans = args.scans + conf_dir = args.conf_dir + + experiment_dir = prep.prepare(prefix, scans, conf_dir) + run_dt.data(experiment_dir) + run_rc.reconstruction(dev, experiment_dir) + run_dp.to_vtk(experiment_dir) + +if __name__ == "__main__": + main(sys.argv[1:]) + diff --git a/everything.sh b/everything.sh index b41ddee..69b1fba 100644 --- a/everything.sh +++ b/everything.sh @@ -13,9 +13,5 @@ prefix=$2 scans=$3 conf_dir=$4 -experiment_dir=$(python run_prepare.py $prefix $scans $conf_dir 2>&1 >/dev/null) -python run_data.py $experiment_dir -python run_rec.py $dev $experiment_dir -python run_disp.py $experiment_dir - +python everything.py $dev $prefix $scans $conf_dir diff --git a/how_to_run b/how_to_run index 0ebe838..e1a09e3 100644 --- a/how_to_run +++ b/how_to_run @@ -2,7 +2,7 @@ To visualize reconstructed image file from data the following steps are needed: I. Beamline specific. We support solution for the APS beamline 34-ID. 1. From data collected by detector create 3D tif file. - 2. From experiment record create configuration file for processing display. + 2. From experiment spec record create configuration file for processing display. II. For any beamline. 3. Create configuration files. 4. Prepare the 3D tif data file for reconstruction according to configuration. @@ -10,50 +10,28 @@ II. For any beamline. 5. Run reconstruction according to configuration. 6. Run display processing according to configuration. -How to run using command lines only: +How to run using command line scripts: ------------------------------------ -1. python run_prepare.py - - - - - - - -2*. python create_default_config.py -3*. edit configuration files (important for the config_data): - //conf/config_data - //conf/config_rec - //conf/config_disp -4. python run_data.py "//prep/prep_data" "//conf/config_data" -5. source run_rec.sh "//conf/config_rec" -6. source run_disp.sh "//conf/config_disp" -7. the image.vtk file will be in "//results" directory +1. to run everything: +source everything.sh -*This steps are optional, it helps with creating configuration files, but one can use -different configuration files +2. to run separately: +python run_prepare.py +python run_data.py +source run_rec.sh +python run_disp.py -example: -1. python run_prepare.py '/home/beams/CXDUSER/CDI/cdi-master/test' \ - 'A_48-60' \ - '48-60' \ - '/net/s34data/export/34idc-data/2018/Startup18-2/ADStartup18-2a' \ - '/net/s34data/export/34idc-data/2018/Startup18-2/Startup18-2a.spec' \ - '/net/s34data/export/34idc-work/2018/Startup18-2/dark.tif' \ - '/net/s34data/export/34idc-work/2018/Startup18-2/CelaWhiteField.tif' -2. python create_default_conf.py '/home/beams/CXDUSER/CDI/cdi-master/test' 'A_48-60' -3. (/home/beams/CXDUSER/CDI/cdi-master/test/A_48-60/conf/config_data, - /home/beams/CXDUSER/CDI/cdi-master/test/A_48-60/conf/config_rec, - /home/beams/CXDUSER/CDI/cdi-master/test/A_48-60/conf/config_disp) if needed -4. python run_data.py '/home/beams/CXDUSER/CDI/cdi-master/test' 'A_48-60' -5. source run_rec.sh 'cuda' '/home/beams/CXDUSER/CDI/cdi-master/test' 'A_48-60' -6. source run_disp.sh '/home/beams/CXDUSER/CDI/cdi-master/test' 'A_48-60' - -How to run using GUI and command lines: ---------------------------------------- -1. python aps_34id/cdi_conf_window.py (to start GUI) -2. Fill out working directory and Reconstruction ID (where the prep, and config will be created), - and run tabs in order they appear: '34ID prep', 'Data', 'Reconstruction', 'Display'. This - will create prep_data and configuration files in //conf/ directory -3. Use the configuration files when running steps 4, 5, 6. + - specifies processor/library to run reconstruction on ('cpu', 'opencl', 'cuda') + - arbitrary string that defines the experiment, it will be combine with the to derive experiment id + - a range of scans to process, defined by first-last + - a directory containing configuration files (config, config_data, config_rec, config_disp) + - a directory where the experiment files and results are located, derived from configured working directory and experiment id +example: +1. running all pieces +source everything.sh 'opencl' 'B' '290-290' 'config/last' +2. running one by one +python run_prepare.py 'B' '290-290' 'conf/defaults' +python run_data.py '/net/s34data/export/34idc-data/2018/Chung1118/test/B_290-290' +source run_rec.sh 'opencl' '/net/s34data/export/34idc-data/2018/Chung1118/test/B_290-290' +python run_disp.py '/net/s34data/export/34idc-data/2018/Chung1118/test/B_290-290' diff --git a/run_data.py b/run_data.py index 2b2de61..6aabbc6 100755 --- a/run_data.py +++ b/run_data.py @@ -2,6 +2,7 @@ import sys import argparse import os +import shutil def main(arg): @@ -15,6 +16,10 @@ def main(arg): dt.prep(prep_file, experiment_dir) print ('done preparing data') + # copy experiment config into last config + conf = os.path.join(experiment_dir, 'conf', 'config_data') + last = os.path.join('conf', 'last', 'config_data') + shutil.copy(conf, last) if __name__ == "__main__": diff --git a/run_prepare.py b/run_prepare.py index 357fd36..5d6e4cc 100755 --- a/run_prepare.py +++ b/run_prepare.py @@ -5,6 +5,67 @@ import aps_34id.prep as prep import shutil +def prepare(id, scan, conf_dir): + def has_conf(dir): + conf = os.path.join(dir, 'config') + return os.path.isfile(conf) + + id = id + '_' + scan + print ('reading data file for experiment ' + id) + try: + # convert it to list of int + scan_range = scan.split('-') + scan_num = [] + for i in range(len(scan_range)): + scan_num.append(int(scan_range[i])) + except: + print ('enter numeric values for scan range') + sys.exit(0) + + if not os.path.isdir(conf_dir): + print ('configured directory ' + conf_dir + ' does not exist') + sys.exit(0) + + # find if there is "last" directory in the given directory and use the last configuration from there if exists + # otherwise use the "defaults" directory. If this does not exist, check if the conf_dir has the configuration + last_conf_dir = os.path.join(conf_dir, 'last') + default_conf_dir = os.path.join(conf_dir, 'defaults') + + # try read configuration from last + if os.path.isdir(last_conf_dir) and has_conf(last_conf_dir): + read_from_dir = last_conf_dir + elif os.path.isdir(default_conf_dir) and has_conf(default_conf_dir): + read_from_dir = default_conf_dir + elif has_conf(conf_dir): + read_from_dir = conf_dir + else: + print('configured directory ' + conf_dir + ' does not contain file "config"') + sys.exit(0) + + main_conf = os.path.join(read_from_dir, 'config') + with open(main_conf, 'r') as f: + config_map = cfg.Config(f.read()) + + experiment_dir = os.path.join(config_map.working_dir, id) + experiment_conf_dir = os.path.join(experiment_dir, 'conf') + if not os.path.exists(experiment_conf_dir): + os.makedirs(experiment_conf_dir) + + # copy config_data, config_rec, cofig_disp files from cofig directory into the experiment conf directory + shutil.copy(main_conf, experiment_conf_dir) + conf_data = os.path.join(read_from_dir,'config_data') + shutil.copy(conf_data, experiment_conf_dir) + conf_rec = os.path.join(read_from_dir,'config_rec') + shutil.copy(conf_rec, experiment_conf_dir) + conf_disp = os.path.join(read_from_dir,'config_disp') + if os.path.isfile(conf_disp): + shutil.copy(conf_disp, experiment_conf_dir) + + prep.prepare(config_map.working_dir, id, scan_num, config_map.data_dir, config_map.specfile, config_map.darkfile, config_map.whitefile) + print (experiment_dir) + return experiment_dir + + def main(arg): def has_conf(dir): diff --git a/src_py/controller/data.py b/src_py/controller/data.py index 1e28bf8..9c6c222 100644 --- a/src_py/controller/data.py +++ b/src_py/controller/data.py @@ -122,7 +122,7 @@ def prep(fname, conf_info): if not pads is None: # adjust the size, either zero pad or crop array - print ('adjusting dimention') + print ('adjusting dimensions') prep_data = ut.adjust_dimensions(prep_data, pads) else: prep_data = ut.adjust_dimensions(prep_data, (0,0,0,0,0,0)) diff --git a/src_py/run_scripts/run_34id_prepare.py b/src_py/run_scripts/run_34id_prepare.py index 7b82acc..89082be 100755 --- a/src_py/run_scripts/run_34id_prepare.py +++ b/src_py/run_scripts/run_34id_prepare.py @@ -6,12 +6,31 @@ import shutil -def main(arg): - def has_conf(dir): - conf = os.path.join(dir, 'config') - return os.path.isfile(conf) +def prepare(working_dir, id, scan, data_dir, specfile, darkfile, whitefile): + experiment_dir = os.path.join(working_dir, id) + experiment_conf_dir = os.path.join(experiment_dir, 'conf') + if not os.path.exists(experiment_conf_dir): + os.makedirs(experiment_conf_dir) + + prep.prepare(working_dir, id, scan, data_dir, specfile, darkfile, whitefile) + # copy experiment config into last config + main_conf = os.path.join(working_dir, id, 'conf', 'config') + last = os.path.join('conf', 'last', 'config') + shutil.copy(main_conf, last) + + return experiment_dir + +def copy_conf(src, dest): + main_conf = os.path.join(src, 'config') + shutil.copy(main_conf, dest) + conf_data = os.path.join(src, 'config_data') + shutil.copy(conf_data, dest) + conf_rec = os.path.join(src, 'config_rec') + shutil.copy(conf_rec, dest) + +def main(arg): parser = argparse.ArgumentParser() parser.add_argument("id", help="prefix to name of the experiment/data reconstruction") parser.add_argument("scan", help="a range of scans to prepare data from") @@ -20,6 +39,17 @@ def has_conf(dir): scan = args.scan id = args.id + '_' + scan print ('reading data file for experiment ' + id) + + conf_dir = args.conf_dir + if not os.path.isdir(conf_dir): + print ('configured directory ' + conf_dir + ' does not exist') + sys.exit(0) + + main_conf = os.path.join(conf_dir, 'config') + if not os.path.isfile(main_conf): + print ('the configuration directory does not contain "config" file') + sys.exit(0) + try: # convert it to list of int scan_range = scan.split('-') @@ -30,49 +60,13 @@ def has_conf(dir): print ('enter numeric values for scan range') sys.exit(0) - conf_dir = args.conf_dir - - if not os.path.isdir(conf_dir): - print ('configured directory ' + conf_dir + ' does not exist') - sys.exit(0) - - # find if there is "last" directory in the given directory and use the last configuration from there if exists - # otherwise use the "defaults" directory. If this does not exist, check if the conf_dir has the configuration - last_conf_dir = os.path.join(conf_dir, 'last') - default_conf_dir = os.path.join(conf_dir, 'defaults') - - # try read configuration from last - if os.path.isdir(last_conf_dir) and has_conf(last_conf_dir): - read_from_dir = last_conf_dir - elif os.path.isdir(default_conf_dir) and has_conf(default_conf_dir): - read_from_dir = default_conf_dir - elif has_conf(conf_dir): - read_from_dir = conf_dir - else: - print('configured directory ' + conf_dir + ' does not contain file "config"') - sys.exit(0) - - main_conf = os.path.join(read_from_dir, 'config') + main_conf = os.path.join(conf_dir, 'config') with open(main_conf, 'r') as f: config_map = cfg.Config(f.read()) - experiment_dir = os.path.join(config_map.working_dir, id) - experiment_conf_dir = os.path.join(experiment_dir, 'conf') - if not os.path.exists(experiment_conf_dir): - os.makedirs(experiment_conf_dir) - # copy config_data, config_rec, cofig_disp files from cofig directory into the experiment conf directory - shutil.copy(main_conf, experiment_conf_dir) - conf_data = os.path.join(read_from_dir,'config_data') - shutil.copy(conf_data, experiment_conf_dir) - conf_rec = os.path.join(read_from_dir,'config_rec') - shutil.copy(conf_rec, experiment_conf_dir) - conf_disp = os.path.join(read_from_dir,'config_disp') - if os.path.isfile(conf_disp): - shutil.copy(conf_disp, experiment_conf_dir) - - prep.prepare(config_map.working_dir, id, scan_num, config_map.data_dir, config_map.specfile, config_map.darkfile, config_map.whitefile) - print (experiment_dir) + experiment_dir = prep.prepare(config_map.working_dir, id, scan_num, config_map.data_dir, config_map.specfile, config_map.darkfile, config_map.whitefile) + copy_conf(conf_dir, experiment_dir) return experiment_dir diff --git a/src_py/run_scripts/run_data.py b/src_py/run_scripts/run_data.py index 8c0a797..1d6aa1c 100755 --- a/src_py/run_scripts/run_data.py +++ b/src_py/run_scripts/run_data.py @@ -2,6 +2,7 @@ import sys import argparse import os +import shutil def data(experiment_dir): @@ -9,6 +10,10 @@ def data(experiment_dir): prep_file = os.path.join(experiment_dir, 'prep', 'prep_data.tif') dt.prep(prep_file, experiment_dir) print ('done preparing data') + # copy experiment config into last config + conf = os.path.join(experiment_dir, 'conf', 'config_data') + last = os.path.join('conf', 'last', 'config_data') + shutil.copy(conf, last) def main(arg): diff --git a/src_py/run_scripts/run_rec.py b/src_py/run_scripts/run_rec.py index 11b0bd9..689fe74 100755 --- a/src_py/run_scripts/run_rec.py +++ b/src_py/run_scripts/run_rec.py @@ -7,6 +7,7 @@ import src_py.controller.reconstruction as rec import src_py.controller.gen_rec as gen_rec import src_py.utilities.utils as ut +import shutil def interrupt_thread(arg): @@ -59,6 +60,11 @@ def reconstruction(proc, experiment_dir): rec.reconstruction(proc, data, experiment_dir, config_map) print ('done with reconstruction') + # copy experiment config into last config + conf = os.path.join(experiment_dir, 'conf', 'config_rec') + last = os.path.join('conf', 'last', 'config_rec') + shutil.copy(conf, last) + p.terminate() def main(arg): diff --git a/src_py/utilities/utils.py b/src_py/utilities/utils.py index 9eaa140..91ffac5 100644 --- a/src_py/utilities/utils.py +++ b/src_py/utilities/utils.py @@ -16,6 +16,7 @@ import pylibconfig2 as cfg import numpy as np import os +import logging __author__ = "Barbara Frosik" __copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." @@ -29,6 +30,18 @@ 'flip'] +def get_logger(name, ldir=''): + logger = logging.getLogger(name) + logger.setLevel(logging.DEBUG) + log_file = os.path.join(ldir, 'default.log') + fh = logging.FileHandler(log_file) + fh.setLevel(logging.DEBUG) + formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') + fh.setFormatter(formatter) + logger.addHandler(fh) + return logger + + def get_array_from_tif(filename): """ This method reads tif type file containing experiment data and returns the data as array. @@ -186,6 +199,11 @@ def binning(array, binsizes): new_shape = list(binned_array.shape) return binned_array +# ar = np.asarray([1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9]) +# ar.resize((5,9)) +# print ('ar', ar) +# b = binning(ar, (2,2)) +# print ('b',b) def get_centered(array, center_shift): """ @@ -236,25 +254,42 @@ def adjust_dimensions(arr, pad): array : array the padded/cropped array """ - dims = arr.shape - new_dims = [] + logger = get_logger('adjust_dimensions') + old_dims = arr.shape new_pad = [] - new_crop = [] + crop = [] + for i in range(len(old_dims)): + tmp_dim = old_dims[i] + pad[2*i] + pad[2*i+1] + # find what needs to be cropped + crop.append(max(0, -pad[2*i])) + crop.append(max(0, -pad[2*i+1])) + arr = arr[crop[0]:old_dims[0]-crop[1], crop[2]:old_dims[1]-crop[3], crop[4]:old_dims[2]-crop[5]] + + logger.info('cutting from to ' + str(crop[0]) + ', ' + str(old_dims[0]-crop[1]) + ', ' + str(crop[2]) + ', ' \ + + str(old_dims[1]-crop[3]) + ', ' + str(crop[4]) + ', ' + str(old_dims[2]-crop[5])) + dims = arr.shape + for i in range(len(dims)): - new_dims.append(get_good_dim(dims[i] + pad[2*i] + pad[2*i+1])) - # find what was added as result of getting good dimentions and divide it in half to distribute to both ends - good_adj_front = int((1+new_dims[i] - (dims[i] + pad[2*i] + pad[2*i+1]))/2) - pad_front = max(0, int(good_adj_front/2) + pad[2*i]) + # find a good dimension and find padding + new_dim = get_good_dim(dims[i]) + pad_front = max(0, int((new_dim+1 - dims[i])/2)) new_pad.append(pad_front) - new_pad.append(max(0, new_dims[i]-dims[i]-pad_front)) - crop_front = -pad[2*i] - good_adj_front - new_crop.append(max(0, crop_front)) + pad_end = max(0, new_dim-dims[i]-pad_front) + new_pad.append(pad_end) arr = np.lib.pad(arr, ((new_pad[0], new_pad[1]), (new_pad[2], new_pad[3]), (new_pad[4], new_pad[5])), 'constant', constant_values=((0.0, 0.0), (0.0, 0.0), (0.0, 0.0))).copy() - return arr[new_crop[0]:new_crop[0]+new_dims[0], new_crop[1]:new_crop[1]+new_dims[1], new_crop[2]:new_crop[2]+new_dims[1]] + logger.info('pads ' + str(new_pad[0]) + ', ' + str(new_pad[1]) + ', ' + str(new_pad[2]) + ', ' + str(new_pad[3]) \ + + ', ' + str(new_pad[4]) + ', ' + str(new_pad[5])) + logger.info('old dim, new dim (' + str(dims[0]) + ',' + str(dims[1]) + ',' + str(dims[2]) + ') (' + str(arr.shape[0]) +\ + ',' + str(arr.shape[1]) + ',' + str(arr.shape[1]) + ')') + + return arr +# ar = np.zeros((81,256,256)) +# pads = (0,0,-20,-30,4,-20) +# adjust_dimensions(ar,pads) def crop_center(arr, new_size): size = arr.shape From 7570510ae3353eda63fb70081a88eefb0349ffaa Mon Sep 17 00:00:00 2001 From: bfrosik Date: Mon, 7 Jan 2019 17:17:54 -0600 Subject: [PATCH 103/336] changed structure. modified setup.py to install --- cdi_conf_window.py | 10 +- conf/last/config | 3 +- conf/last/config_data | 4 +- conf/last/config_rec | 193 +------- everything.py | 11 +- how_to_run | 6 +- {aps_34id => reccdi}/__init__.py | 0 {include => reccdi/include}/algorithm.hpp | 0 {include => reccdi/include}/bridge.hpp | 0 {include => reccdi/include}/common.h | 2 +- {include => reccdi/include}/manager.hpp | 0 {include => reccdi/include}/parameters.hpp | 0 {include => reccdi/include}/pcdi.hpp | 0 {include => reccdi/include}/resolution.hpp | 0 {include => reccdi/include}/state.hpp | 0 {include => reccdi/include}/support.hpp | 0 {include => reccdi/include}/util.hpp | 0 {include => reccdi/include}/worker.hpp | 0 {src_cpp => reccdi/src_cpp}/algorithm.cpp | 0 {src_cpp => reccdi/src_cpp}/bridge.cpp | 0 {src_cpp => reccdi/src_cpp}/manager.cpp | 0 {src_cpp => reccdi/src_cpp}/parameters.cpp | 0 {src_cpp => reccdi/src_cpp}/pcdi.cpp | 0 {src_cpp => reccdi/src_cpp}/resolution.cpp | 0 {src_cpp => reccdi/src_cpp}/state.cpp | 0 {src_cpp => reccdi/src_cpp}/support.cpp | 0 {src_cpp => reccdi/src_cpp}/util.cpp | 0 {src_cpp => reccdi/src_cpp}/worker.cpp | 0 {src_py => reccdi/src_py}/__init__.py | 0 .../src_py/beamlines}/__init__.py | 0 .../src_py/beamlines/aps_34id}/__init__.py | 0 .../beamlines/aps_34id}/cdi_conf_window.py | 438 +++++++++++++----- .../src_py/beamlines/aps_34id}/prep.py | 2 + .../src_py/controller}/__init__.py | 0 {src_py => reccdi/src_py}/controller/data.py | 2 +- .../src_py}/controller/fast_module.py | 8 +- .../src_py}/controller/gen_rec.py | 6 +- .../src_py}/controller/reconstruction.py | 6 +- .../controller/reconstruction_multi.py | 4 +- reccdi/src_py/cyth/__init__.py | 0 {src_py => reccdi/src_py}/cyth/bridge_cpu.pyx | 4 +- .../src_py}/cyth/bridge_cuda.pyx | 4 +- .../src_py}/cyth/bridge_opencl.pyx | 4 +- reccdi/src_py/run_scripts/__init__.py | 0 reccdi/src_py/run_scripts/everything.py | 29 ++ reccdi/src_py/run_scripts/everything.sh | 17 + .../src_py}/run_scripts/run_34id_prepare.py | 31 +- .../src_py}/run_scripts/run_data.py | 2 +- .../src_py}/run_scripts/run_disp.py | 4 +- .../src_py}/run_scripts/run_rec.py | 6 +- reccdi/src_py/run_scripts/run_rec.sh | 12 + .../src_py}/utilities/CXDVizNX.py | 2 +- .../src_py}/utilities/__init__.py | 0 {src_py => reccdi/src_py}/utilities/utils.py | 0 .../src_py}/utilities/utils_post.py | 0 run_34id_prepare.py | 81 ++++ run_data.py | 22 +- run_disp.py | 4 +- run_prepare.py | 151 ------ run_rec.py | 31 +- setup.py | 39 +- 61 files changed, 602 insertions(+), 536 deletions(-) rename {aps_34id => reccdi}/__init__.py (100%) rename {include => reccdi/include}/algorithm.hpp (100%) rename {include => reccdi/include}/bridge.hpp (100%) rename {include => reccdi/include}/common.h (96%) rename {include => reccdi/include}/manager.hpp (100%) rename {include => reccdi/include}/parameters.hpp (100%) rename {include => reccdi/include}/pcdi.hpp (100%) rename {include => reccdi/include}/resolution.hpp (100%) rename {include => reccdi/include}/state.hpp (100%) rename {include => reccdi/include}/support.hpp (100%) rename {include => reccdi/include}/util.hpp (100%) rename {include => reccdi/include}/worker.hpp (100%) rename {src_cpp => reccdi/src_cpp}/algorithm.cpp (100%) rename {src_cpp => reccdi/src_cpp}/bridge.cpp (100%) rename {src_cpp => reccdi/src_cpp}/manager.cpp (100%) rename {src_cpp => reccdi/src_cpp}/parameters.cpp (100%) rename {src_cpp => reccdi/src_cpp}/pcdi.cpp (100%) rename {src_cpp => reccdi/src_cpp}/resolution.cpp (100%) rename {src_cpp => reccdi/src_cpp}/state.cpp (100%) rename {src_cpp => reccdi/src_cpp}/support.cpp (100%) rename {src_cpp => reccdi/src_cpp}/util.cpp (100%) rename {src_cpp => reccdi/src_cpp}/worker.cpp (100%) rename {src_py => reccdi/src_py}/__init__.py (100%) rename {src_py/controller => reccdi/src_py/beamlines}/__init__.py (100%) rename {src_py/cyth => reccdi/src_py/beamlines/aps_34id}/__init__.py (100%) rename {aps_34id => reccdi/src_py/beamlines/aps_34id}/cdi_conf_window.py (60%) rename {aps_34id => reccdi/src_py/beamlines/aps_34id}/prep.py (99%) rename {src_py/run_scripts => reccdi/src_py/controller}/__init__.py (100%) mode change 100644 => 100755 rename {src_py => reccdi/src_py}/controller/data.py (99%) rename {src_py => reccdi/src_py}/controller/fast_module.py (96%) rename {src_py => reccdi/src_py}/controller/gen_rec.py (97%) rename {src_py => reccdi/src_py}/controller/reconstruction.py (96%) rename {src_py => reccdi/src_py}/controller/reconstruction_multi.py (98%) create mode 100755 reccdi/src_py/cyth/__init__.py rename {src_py => reccdi/src_py}/cyth/bridge_cpu.pyx (86%) rename {src_py => reccdi/src_py}/cyth/bridge_cuda.pyx (86%) rename {src_py => reccdi/src_py}/cyth/bridge_opencl.pyx (86%) create mode 100644 reccdi/src_py/run_scripts/__init__.py create mode 100644 reccdi/src_py/run_scripts/everything.py create mode 100644 reccdi/src_py/run_scripts/everything.sh rename {src_py => reccdi/src_py}/run_scripts/run_34id_prepare.py (83%) rename {src_py => reccdi/src_py}/run_scripts/run_data.py (94%) rename {src_py => reccdi/src_py}/run_scripts/run_disp.py (96%) rename {src_py => reccdi/src_py}/run_scripts/run_rec.py (94%) create mode 100644 reccdi/src_py/run_scripts/run_rec.sh rename {src_py => reccdi/src_py}/utilities/CXDVizNX.py (99%) rename {src_py => reccdi/src_py}/utilities/__init__.py (100%) rename {src_py => reccdi/src_py}/utilities/utils.py (100%) rename {src_py => reccdi/src_py}/utilities/utils_post.py (100%) create mode 100755 run_34id_prepare.py delete mode 100755 run_prepare.py diff --git a/cdi_conf_window.py b/cdi_conf_window.py index 8b305cc..20cee87 100644 --- a/cdi_conf_window.py +++ b/cdi_conf_window.py @@ -4,11 +4,11 @@ from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * -import src_py.run_scripts.run_data as run_dt -import src_py.run_scripts.run_rec as run_rc -import src_py.run_scripts.run_disp as run_dp -import src_py.utilities.utils as ut -import src_py.run_scripts.run_34id_prepare as prep +import reccdi.src_py.run_scripts.run_data as run_dt +import reccdi.src_py.run_scripts.run_rec as run_rc +import reccdi.src_py.run_scripts.run_disp as run_dp +import reccdi.src_py.utilities.utils as ut +import reccdi.src_py.run_scripts.run_34id_prepare as prep def select_file(start_dir): diff --git a/conf/last/config b/conf/last/config index 3cf08bf..3de66fc 100644 --- a/conf/last/config +++ b/conf/last/config @@ -1,6 +1,5 @@ -working_dir = "/net/s34data/export/34idc-data/2018" +working_dir = "test" data_dir = "/net/s34data/export/34idc-data/2018/Chung1118/ADChung1118a" specfile = "/net/s34data/export/34idc-data/2018/Chung1118/Chung1118a.spec" darkfile = "/net/s34data/export/34idc-work/2018/Chung1118/dark.tif" whitefile = "/net/s34data/export/34idc-work/2018/Chung1118/CelaWhiteField.tif" - diff --git a/conf/last/config_data b/conf/last/config_data index 131b0a0..62f7f7a 100644 --- a/conf/last/config_data +++ b/conf/last/config_data @@ -1,5 +1,5 @@ +aliens = ((0,0,0,0,0,0),(0,0,0,0,0,0)) amp_threshold = 2.0 -aliens = ((0,0,0,0,0,0), (0,0,0,0,0,0)) binning = (1,1,1) center_shift = (0,0,0) -adjust_dimensions = (-4, -4, -65, -65, -65, -65) +adjust_dimensions = (-4,-4,-65,-65,-65,-65) diff --git a/conf/last/config_rec b/conf/last/config_rec index db9e688..ad63e49 100644 --- a/conf/last/config_rec +++ b/conf/last/config_rec @@ -1,194 +1,19 @@ threads = 1 -//device = (4) - -generations = 1 -low_resolution_generations = 0 - -algorithm_sequence = ((3,("ER",2),("HIO",2)),(1,("ER",2))) -beta = .9 - -twin_trigger = (2) - +garbage_trigger = (1,1) +algorithm_sequence = ((1,("ER",20),("HIO",180)),(1,("ER",22))) +beta = 0.9 +resolution_trigger = (0,1,310) +iter_res_sigma_range = (1.0) +iter_res_det_range = (0.7) amp_support_trigger = (0,1) support_type = "GAUSS" support_threshold = 0.15 support_sigma = 1.0 -support_area = [.5,.5,.5] - -//phase_support_trigger = (0,1,20) +support_area = [0.5,0.5,0.5] phase_min = -1.57 phase_max = 1.57 - -//pcdi_trigger = (50,50) partial_coherence_type = "LUCY" partial_coherence_iteration_num = 20 -partial_coherence_normalize = true +partial_coherence_normalize = True partial_coherence_roi = [32,32,16] - -resolution_trigger = (0, 1, 310) -iter_res_det_range = (.7) -iter_res_sigma_range = (1.0) - -avarage_trigger = (-19,1) - -//------------------Below are definitions/ exemples of configurable items----------------------- - -// Trigger can be defined as a single iteration, or multiple iterations. -// examples: -// (3) trigger at iteration 3 -// (20, 5) trigger starts at iteration 20, repeats every 5 iteration for the rest of run -// (20, 5, 40) trigger starts at iteration 20, repeats every 5 iteration until iteration 40 -// Triggers can also be a combination of any of the above, ex: ((4), (3, 7, 24), (6,20)) -// Below is a list of the supported triggers: -// garbage_trigger, twin_trigger, amp_support_trigger, phase_support_trigger, pcdi_trigger, resolution_trigger, -// average_trigger. -// The features that are related to the triggers are described below where the trigger is defined. -// If a trigger is not defined, the feature is turned off. Comment out trigger that you don't want to apply. -// Adding a new feature/ trigger is described in common.h header file. - -// GENERAL -//data_dir = "test/A/data" - // directory from which data is read - -//save_dir = "test/A/results" - // directory where results of reconstruction as npy files are saved - // if threads > 1, result from each thread will be stored in subdirectory 1,2,3 etc. - -//cont = false - // only applied if generations equals 1, or not defined - // true if the reconstruction start with previous results stored in continue_dir - -//continue_dir = "cont" - // directory from which results are read for reconstruction continuation - // if the directory contains subdirectories, a thread will start for each subdirectory - -//threads = 3 - // number of reconstructions to start with - -//device = [0,0] - // ID of the target devices for each thread. - // If more threads or not defined, it will default to -1 - -garbage_trigger = (1,1) - // ArrayFire memory management is not reliable, the way around is to call garbage - // collection per defined number of iterations. Decrease this value if out of memory - // error occurs - -// GENERATIONS -//generations = 2 // number of generations - -//low_resolution_generations = 0 - // number of generations low resolution is applied to, starting from first gen - -//low_resolution_sigma_alg = "SIG_SPACE_LINEAR" - // defines how to calculate sigmas based on generation. Supported: - // SIG_SPACE_LINEAR - sigmas are starting from low_resolution_sigma_max, - // linearly decreasing for each generation, reaching low_resolution_sigma - // at the end - // SIG_SCALE_POWER - use low_resolution_scale_power and ScaleFactor - // to calculate sigmas for generations - // SIG_ASSIGNED - sigmas will be read from low_resolution_sigmas - -//low_resolution_sigmas = [1.0] - // list of sigmas that will be used by subsequent generations if the - // low_resolution_sigma_alg is set to SIG_ASSIGNED - // the length must be equal low_resolution_generations - -//low_resolution_sigma_min = 0.1 - // initial sigma - -//low_resolution_sigma_max = 2.0 - // max support sigma value - -//low_resolution_scale_power = 1 - // how the sigma scales with generation (1 - linear, 2 - quad etc) - -//low_resolution_alg = "GAUSS" - // algorithm to use to apply resolution. Supported algorithms: - // GAUSS - - -// RECONSTRUCTION PARAMETERS USED BY FAST MODULE -// modulus projection algorithm sequence -//algorithm_sequence = ((2, ("ER",19), ("HIO", 10)), (1,("ER",20))) - // defines algorithm applied in each iteration by a sequence of tuples. - // The first number in a tuple is a repeat, followed by tuples of pairs, each - // pair defining algorithm and number of iterations to run the algorithm. - -//beta = .9; - // used in hio algorithm - -// twin -// twin feature trims the image array at the current state by zeroing half of the array in each dimension. -//twin_trigger = (2) - // applied only in initial reconstruction - // twin defines at which iteration to cut half of the array(i.e. multiply by 0s), - // Comment out, if don't want to apply twin. - -// support -// Support area is an array that defines region in which the image is meaningful. This area is recalculated at the -// trigger iteration. The calculation employ an algorithm defined here as support_type. -//amp_support_trigger = (7, 5) - // defines when to update support array using the parameters below. - // Comment out, if support feature not used. -//support_type = "GAUSS"; -//support_threshold = 0.1; -//support_sigma = 1.0; -//support_area = [.5,.5,.5]; - // initial support area. If the values are fractional, the support area will be calculated - // by multiplying by the data array dimensions. The support will be set to 1s to this - // dimensions centered. - -// phase constrain -// At the begginning iterations the support area is modified in respect to the phase. Support area will exclude points -// outside of the defined bounds -//phase_support_trigger = (0, 1, 45) - // applied only in initial reconstruction - // defines when to update support array using the parameters below by applaying phase constrain. - // Comment out, if phase constrain feature not used. -//phase_min = -1.57 -//phase_max = 1.57; - -// partial coherence -// Partial coherence trigger triggers recalculation of coherence array for the amplitudes in reciprocal space. -// After first coherence array is determined, it is used for convolution in subsequent iteration. -//pcdi_trigger = (16, 14) - // defines when to update coherence using the parameters below. - // Comment out, if pcdi feature not used. -//partial_coherence_type = "LUCY"; - // partial coherence algorithm -//partial_coherence_iteration_num = 20; -//partial_coherence_normalize = true; -//partial_coherence_roi = [32,32,32]; - // coherence area. If the values are fractional, the coherence area will be calculated - // by multiplying by the data array dimensions. - -// iteration based low resolution -// At the begginning iterations the data and sigma are modified gradually. The sigma for each iteration where the low -// resolution is applied is a linespace result of iter_res_sigma_range. The last sigma should be set to support_sigma, -// or you can use default to achieve this. The sigma is used by when recalculation the support area, i.e when support -// trigger is on. The data is multiplied by gaussian distribution with sigma gradually growing to the last value, which -// typically is 1. -//resolution_trigger = (0, 1, 40) - // applied only in initial reconstruction - // defines when to apply low resolution using the parameters below. - // Comment out, if low resolution feature not used. - -//iter_res_sigma_range = (2.0, 1.0) - // used when applying low resolution to replace support sigma. - // The sigmas are linespaced for low resolution iterations from first value to last. - // If only one number given, the last sigma will default to support_sigma. - -//iter_res_det_range = (.7, 1.0) - // used when applying low resolution data mask while iterating. - // The det values are linespaced for low resolution iterations from first value to last. - // The mask is gauss with sigma of linespaced det. If only one number given, - // the last det will default to 1. - -// averaging -// The amplitudes of the last several iterations are avaraged. This trigger defines at which iteration the averaging -// starts. -//average_trigger = (65, 1) - // defines when to apply averaging. - // Comment out, if averaging not used. - +twin_trigger = (2) diff --git a/everything.py b/everything.py index 0a98649..3c03d34 100644 --- a/everything.py +++ b/everything.py @@ -1,10 +1,9 @@ import sys import argparse -import src_py.run_scripts.run_data as run_dt -import src_py.run_scripts.run_rec as run_rc -import src_py.run_scripts.run_disp as run_dp -#import src_py.run_scripts.prep as prep -import run_prepare as prep +import reccdi.src_py.run_scripts.run_data as run_dt +import reccdi.src_py.run_scripts.run_rec as run_rc +import reccdi.src_py.run_scripts.run_disp as run_dp +import reccdi.src_py.run_scripts.run_34id_prepare as prep def main(arg): @@ -19,7 +18,7 @@ def main(arg): scans = args.scans conf_dir = args.conf_dir - experiment_dir = prep.prepare(prefix, scans, conf_dir) + experiment_dir = prep.parse_prepare(prefix, scans, conf_dir) run_dt.data(experiment_dir) run_rc.reconstruction(dev, experiment_dir) run_dp.to_vtk(experiment_dir) diff --git a/how_to_run b/how_to_run index e1a09e3..2ec218f 100644 --- a/how_to_run +++ b/how_to_run @@ -16,7 +16,7 @@ How to run using command line scripts: source everything.sh 2. to run separately: -python run_prepare.py +python run_34id_prepare.py python run_data.py source run_rec.sh python run_disp.py @@ -29,9 +29,9 @@ python run_disp.py example: 1. running all pieces -source everything.sh 'opencl' 'B' '290-290' 'config/last' +source everything.sh 'opencl' 'B' '290-290' 'conf/last' 2. running one by one -python run_prepare.py 'B' '290-290' 'conf/defaults' +python run_34id_prepare.py 'B' '290-290' 'conf/defaults' python run_data.py '/net/s34data/export/34idc-data/2018/Chung1118/test/B_290-290' source run_rec.sh 'opencl' '/net/s34data/export/34idc-data/2018/Chung1118/test/B_290-290' python run_disp.py '/net/s34data/export/34idc-data/2018/Chung1118/test/B_290-290' diff --git a/aps_34id/__init__.py b/reccdi/__init__.py similarity index 100% rename from aps_34id/__init__.py rename to reccdi/__init__.py diff --git a/include/algorithm.hpp b/reccdi/include/algorithm.hpp similarity index 100% rename from include/algorithm.hpp rename to reccdi/include/algorithm.hpp diff --git a/include/bridge.hpp b/reccdi/include/bridge.hpp similarity index 100% rename from include/bridge.hpp rename to reccdi/include/bridge.hpp diff --git a/include/common.h b/reccdi/include/common.h similarity index 96% rename from include/common.h rename to reccdi/include/common.h index 02138ac..7e8d494 100644 --- a/include/common.h +++ b/reccdi/include/common.h @@ -7,7 +7,7 @@ See LICENSE file. #ifndef common_h #define common_h -// defines the type of the data; can be float or double. The def_type will get replaced when running initializing script. +// defines the type of the data; can be float or double. The double will get replaced when running initializing script. typedef double d_type; const int nD = 3; diff --git a/include/manager.hpp b/reccdi/include/manager.hpp similarity index 100% rename from include/manager.hpp rename to reccdi/include/manager.hpp diff --git a/include/parameters.hpp b/reccdi/include/parameters.hpp similarity index 100% rename from include/parameters.hpp rename to reccdi/include/parameters.hpp diff --git a/include/pcdi.hpp b/reccdi/include/pcdi.hpp similarity index 100% rename from include/pcdi.hpp rename to reccdi/include/pcdi.hpp diff --git a/include/resolution.hpp b/reccdi/include/resolution.hpp similarity index 100% rename from include/resolution.hpp rename to reccdi/include/resolution.hpp diff --git a/include/state.hpp b/reccdi/include/state.hpp similarity index 100% rename from include/state.hpp rename to reccdi/include/state.hpp diff --git a/include/support.hpp b/reccdi/include/support.hpp similarity index 100% rename from include/support.hpp rename to reccdi/include/support.hpp diff --git a/include/util.hpp b/reccdi/include/util.hpp similarity index 100% rename from include/util.hpp rename to reccdi/include/util.hpp diff --git a/include/worker.hpp b/reccdi/include/worker.hpp similarity index 100% rename from include/worker.hpp rename to reccdi/include/worker.hpp diff --git a/src_cpp/algorithm.cpp b/reccdi/src_cpp/algorithm.cpp similarity index 100% rename from src_cpp/algorithm.cpp rename to reccdi/src_cpp/algorithm.cpp diff --git a/src_cpp/bridge.cpp b/reccdi/src_cpp/bridge.cpp similarity index 100% rename from src_cpp/bridge.cpp rename to reccdi/src_cpp/bridge.cpp diff --git a/src_cpp/manager.cpp b/reccdi/src_cpp/manager.cpp similarity index 100% rename from src_cpp/manager.cpp rename to reccdi/src_cpp/manager.cpp diff --git a/src_cpp/parameters.cpp b/reccdi/src_cpp/parameters.cpp similarity index 100% rename from src_cpp/parameters.cpp rename to reccdi/src_cpp/parameters.cpp diff --git a/src_cpp/pcdi.cpp b/reccdi/src_cpp/pcdi.cpp similarity index 100% rename from src_cpp/pcdi.cpp rename to reccdi/src_cpp/pcdi.cpp diff --git a/src_cpp/resolution.cpp b/reccdi/src_cpp/resolution.cpp similarity index 100% rename from src_cpp/resolution.cpp rename to reccdi/src_cpp/resolution.cpp diff --git a/src_cpp/state.cpp b/reccdi/src_cpp/state.cpp similarity index 100% rename from src_cpp/state.cpp rename to reccdi/src_cpp/state.cpp diff --git a/src_cpp/support.cpp b/reccdi/src_cpp/support.cpp similarity index 100% rename from src_cpp/support.cpp rename to reccdi/src_cpp/support.cpp diff --git a/src_cpp/util.cpp b/reccdi/src_cpp/util.cpp similarity index 100% rename from src_cpp/util.cpp rename to reccdi/src_cpp/util.cpp diff --git a/src_cpp/worker.cpp b/reccdi/src_cpp/worker.cpp similarity index 100% rename from src_cpp/worker.cpp rename to reccdi/src_cpp/worker.cpp diff --git a/src_py/__init__.py b/reccdi/src_py/__init__.py similarity index 100% rename from src_py/__init__.py rename to reccdi/src_py/__init__.py diff --git a/src_py/controller/__init__.py b/reccdi/src_py/beamlines/__init__.py similarity index 100% rename from src_py/controller/__init__.py rename to reccdi/src_py/beamlines/__init__.py diff --git a/src_py/cyth/__init__.py b/reccdi/src_py/beamlines/aps_34id/__init__.py similarity index 100% rename from src_py/cyth/__init__.py rename to reccdi/src_py/beamlines/aps_34id/__init__.py diff --git a/aps_34id/cdi_conf_window.py b/reccdi/src_py/beamlines/aps_34id/cdi_conf_window.py similarity index 60% rename from aps_34id/cdi_conf_window.py rename to reccdi/src_py/beamlines/aps_34id/cdi_conf_window.py index 90fe9f8..20cee87 100644 --- a/aps_34id/cdi_conf_window.py +++ b/reccdi/src_py/beamlines/aps_34id/cdi_conf_window.py @@ -4,8 +4,11 @@ from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * -from src_py.run_scripts import * -import prep +import reccdi.src_py.run_scripts.run_data as run_dt +import reccdi.src_py.run_scripts.run_rec as run_rc +import reccdi.src_py.run_scripts.run_disp as run_dp +import reccdi.src_py.utilities.utils as ut +import reccdi.src_py.run_scripts.run_34id_prepare as prep def select_file(start_dir): @@ -24,6 +27,21 @@ def select_dir(start_dir): return str(dialog.selectedFiles()[0]) +def write_conf(conf_map, dir, file): + # create "temp" file first and then overrite existing configuration file + if not os.path.exists(dir): + os.makedirs(dir) + conf_file = os.path.join(dir, file) + temp_file = os.path.join(dir, 'temp') + with open(temp_file, 'a') as f: + for key in conf_map: + value = conf_map[key] + if len(value) > 0: + f.write(key + ' = ' + conf_map[key] + '\n') + f.close() + shutil.move(temp_file, conf_file) + + class cdi_conf(QWidget): def __init__(self, parent=None): super(cdi_conf, self).__init__(parent) @@ -33,6 +51,10 @@ def __init__(self, parent=None): uplayout.addRow("Working Directory", self.set_work_dir_button) self.Id_widget = QLineEdit() uplayout.addRow("Reconstruction ID", self.Id_widget) + self.scan_widget = QLineEdit() + uplayout.addRow("scan(s)", self.scan_widget) + self.run_button = QPushButton('run_everything', self) + uplayout.addWidget(self.run_button) vbox = QVBoxLayout() vbox.addLayout(uplayout) @@ -42,19 +64,133 @@ def __init__(self, parent=None): self.setLayout(vbox) self.setWindowTitle("CDI Reconstruction") + self.set_init() - self.Id_widget.textChanged.connect(self.set_id) self.set_work_dir_button.clicked.connect(self.set_working_dir) + self.Id_widget.textChanged.connect(self.set_id) + self.scan_widget.textChanged.connect(self.set_scan) + self.run_button.clicked.connect(self.run_everything) + + + def set_working_dir(self): + self.working_dir = select_dir(self.working_dir) + self.set_work_dir_button.setStyleSheet("Text-align:left") + self.set_work_dir_button.setText(self.working_dir) def set_id(self): self.id = str(self.Id_widget.text()) + self.set_experiment_dir() - def set_working_dir(self): - self.working_dir = select_dir('/local/bfrosik/cdi') + def set_scan(self): + self.scan = str(self.scan_widget.text()) + self.set_experiment_dir() + + + def set_experiment_dir(self): + if self.id is not None and self.scan is not None: + self.exp_id = self.id + '_' + self.scan + self.experiment_dir = os.path.join(self.working_dir, self.exp_id) + + + def run_everything(self): + self.t.prepare() + self.t.model_data() + self.t.reconstruction() + self.t.display() + + + def set_init(self): + self.id = None + self.scan = None + # check for the "conf" directory in the running directory + if os.path.isdir('conf/last'): + self.set_from_conf('conf/last') + elif os.path.isdir('conf/defaults'): + self.set_from_conf('conf/defaults') + + + def set_from_conf(self, dir): + print ('dir', dir) + main_conf = os.path.join(dir, 'config') + conf_map = ut.read_config(main_conf) + # initialize to the value from config file + self.working_dir = conf_map.working_dir + self.t.data_dir = conf_map.data_dir + self.t.specfile = conf_map.specfile + self.t.darkfile = conf_map.darkfile + self.t.whitefile = conf_map.whitefile + # set the text in the window self.set_work_dir_button.setStyleSheet("Text-align:left") self.set_work_dir_button.setText(self.working_dir) + self.t.data_dir_button.setStyleSheet("Text-align:left") + self.t.data_dir_button.setText(self.t.data_dir) + self.t.spec_file_button.setStyleSheet("Text-align:left") + self.t.spec_file_button.setText(self.t.specfile) + self.t.dark_file_button.setStyleSheet("Text-align:left") + self.t.dark_file_button.setText(self.t.darkfile) + self.t.white_file_button.setStyleSheet("Text-align:left") + self.t.white_file_button.setText(self.t.whitefile) + + # initialize "Data" tab + data_conf = os.path.join(dir, 'config_data') + conf_map = ut.read_config(data_conf) + try: + self.t.aliens.setText(str(conf_map.aliens).replace(" ", "")) + except AttributeError: + pass + try: + self.t.amp_threshold.setText(str(conf_map.amp_threshold).replace(" ", "")) + except AttributeError: + pass + try: + self.t.binning.setText(str(conf_map.binning).replace(" ", "")) + except AttributeError: + pass + try: + self.t.center_shift.setText(str(conf_map.center_shift).replace(" ", "")) + except AttributeError: + pass + try: + self.t.adjust_dimensions.setText(str(conf_map.adjust_dimensions).replace(" ", "")) + except AttributeError: + pass + + # initialize "Reconstruction" tab + rec_conf = os.path.join(dir, 'config_rec') + conf_map = ut.read_config(rec_conf) + try: + self.t.device.setText(str(conf_map.device).replace(" ", "")) + except AttributeError: + pass + try: + self.t.threads.setText(str(conf_map.threads).replace(" ", "")) + except AttributeError: + pass + try: + self.t.gc.setText(str(conf_map.garbage_trigger).replace(" ", "")) + except AttributeError: + pass + try: + self.t.alg_seq.setText(str(conf_map.algorithm_sequence).replace(" ", "")) + except AttributeError: + pass + try: + self.t.beta.setText(str(conf_map.beta).replace(" ", "")) + except AttributeError: + pass + + for feat_id in self.t.features.feature_dir: + self.t.features.feature_dir[feat_id].init_config(conf_map) + + # initialize "Display" tab + disp_conf = os.path.join(dir, 'config_disp') + conf_map = ut.read_config(disp_conf) + try: + self.t.crop.setText(str(conf_map.crop).replace(" ", "")) + except AttributeError: + pass class cdi_conf_tab(QTabWidget): @@ -62,7 +198,6 @@ def __init__(self, main_win, parent=None): super(cdi_conf_tab, self).__init__(parent) self.main_win = main_win self.tab1 = QWidget() - self.prep_result_dir = self.id = self.detector = self.scan = self.data_dir = self.specfile = None self.tab2 = QWidget() self.tab3 = QWidget() self.tab4 = QWidget() @@ -79,14 +214,10 @@ def __init__(self, main_win, parent=None): def tab1UI(self): layout = QFormLayout() - # self.det_widget = QLineEdit() - # layout.addRow("Detector", self.det_widget) self.data_dir_button = QPushButton() layout.addRow("data directory", self.data_dir_button) self.spec_file_button = QPushButton() layout.addRow("spec file", self.spec_file_button) - self.scan_widget = QLineEdit() - layout.addRow("scan(s)", self.scan_widget) self.dark_file_button = QPushButton() layout.addRow("darkfield file", self.dark_file_button) self.white_file_button = QPushButton() @@ -120,15 +251,13 @@ def tab2UI(self): # this will create config_data file and run data script # to generate data ready for recondtruction - self.config_data_button.clicked.connect(self.run_data) + self.config_data_button.clicked.connect(self.model_data) def tab3UI(self): layout = QVBoxLayout() ulayout = QFormLayout() llayout = QHBoxLayout() - self.save_dir = QLineEdit() - ulayout.addRow("save results dir", self.save_dir) self.cont = QCheckBox() ulayout.addRow("continuation", self.cont) self.cont.setChecked(False) @@ -154,7 +283,7 @@ def tab3UI(self): self.tab3.setAutoFillBackground(True) self.tab3.setLayout(layout) - self.config_rec_button.clicked.connect(self.run_rec) + self.config_rec_button.clicked.connect(self.reconstruction) self.cont.stateChanged.connect(lambda: self.toggle_cont(ulayout)) self.rec_default_button.clicked.connect(self.rec_default) @@ -176,64 +305,87 @@ def tab4UI(self): layout = QFormLayout() self.crop = QLineEdit() layout.addRow("crop", self.crop) - self.save_disp_dir = QLineEdit() - layout.addRow("save display dir", self.save_disp_dir) self.config_disp_button = QPushButton('process display', self) layout.addWidget(self.config_disp_button) self.tab4.setLayout(layout) - self.config_disp_button.clicked.connect(self.run_disp) + self.config_disp_button.clicked.connect(self.display) def set_spec_file(self): - self.specfile = select_file('/net/s34data/export/34idc-data/2018') + self.specfile = select_file(self.specfile) self.spec_file_button.setStyleSheet("Text-align:left") self.spec_file_button.setText(self.specfile) def set_dark_file(self): - self.darkfile = select_file('/net/s34data/export/34idc-work/2018') + self.darkfile = select_file(self.darkfile) self.dark_file_button.setStyleSheet("Text-align:left") self.dark_file_button.setText(self.darkfile) def set_white_file(self): - self.whitefile = select_file('/net/s34data/export/34idc-work/2018') + self.whitefile = select_file(self.whitefile) self.white_file_button.setStyleSheet("Text-align:left") self.white_file_button.setText(self.whitefile) def set_data_dir(self): - self.data_dir = select_dir('/net/s34data/export/34idc-data/2018') + self.data_dir = select_dir(self.data_dir) self.data_dir_button.setStyleSheet("Text-align:left") self.data_dir_button.setText(self.data_dir) def prepare(self): - scan = str(self.scan_widget.text()) - if self.main_win.working_dir is not None and \ - self.main_win.id is not None and\ - scan is not None and \ - self.data_dir is not None and \ - self.specfile is not None: - try: - # after checking that scan is entered convert it to list of int - scan_range = scan.split('-') - for i in range(len(scan_range)): - scan_range[i] = int(scan_range[i]) - except: - print ('enter numeric values for scan range') + scan = str(self.main_win.scan_widget.text()) + if self.main_win.working_dir is None or \ + self.main_win.id is None or\ + scan is None or \ + self.data_dir is None or \ + self.specfile is None: + print ('enter all parameters: working_dir, id, scan, data_dir, specfile') + return + + try: + # after checking that scan is entered convert it to list of int + scan_range = scan.split('-') + for i in range(len(scan_range)): + scan_range[i] = int(scan_range[i]) + except: + print('enter numeric values for scan range') + + conf_map = {} + if len(self.main_win.working_dir) > 0: + conf_map['working_dir'] = '"' + str(self.main_win.working_dir) + '"' + else: + print ("working_dir not defined") + if len(self.data_dir) > 0: + conf_map['data_dir'] = '"' + str(self.data_dir) + '"' else: - print ('enter all fields') - prep.prepare(self.main_win.working_dir, self.main_win.id, scan_range, self.data_dir, self.specfile, self.darkfile, self.whitefile) + print ("data_dir not defined") + if len(self.specfile) > 0: + conf_map['specfile'] = '"' + str(self.specfile) + '"' + else: + print ("specfile not defined") + if len(self.darkfile) > 0: + conf_map['darkfile'] = '"' + str(self.darkfile) + '"' + else: + print ("darkfile not defined") + if len(self.whitefile) > 0: + conf_map['whitefile'] = '"' + str(self.whitefile) + '"' + else: + print ("whitefile not defined") + + conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') + write_conf(conf_map, conf_dir, 'config') + prep.prepare(self.main_win.working_dir, self.main_win.exp_id, scan_range, self.data_dir, self.specfile, self.darkfile, self.whitefile) - def run_data(self): + + def model_data(self): conf_map = {} - # data_out_dir = '"' + self.main_win.working_dir + '/' + self.main_win.id + '/data' + '"' - # conf_map['data_dir'] = data_out_dir if len(self.aliens.text()) > 0: - conf_map['aliens'] = str(self.aliens.text()) + conf_map['aliens'] = str(self.aliens.text()).replace('\n','') else: print ("aliens not defined") if len(self.amp_threshold.text()) > 0: @@ -242,33 +394,31 @@ def run_data(self): print ('amplitude threshold not defined. Quiting operation.') return if len(self.binning.text()) > 0: - conf_map['binning'] = str(self.binning.text()) + conf_map['binning'] = str(self.binning.text()).replace('\n','') else: print ("binning not defined") if len(self.center_shift.text()) > 0: - conf_map['center_shift'] = str(self.center_shift.text()) + conf_map['center_shift'] = str(self.center_shift.text()).replace('\n','') else: print ("center shift not defined") if len(self.adjust_dimensions.text()) > 0: - conf_map['adjust_dimensions'] = str(self.adjust_dimensions.text()) + conf_map['adjust_dimensions'] = str(self.adjust_dimensions.text()).replace('\n','') else: print ("adjust dimensions not defined") - self.create_config('config_data', conf_map) - - experiment_dir = os.path.join(self.main_win.working_dir, self.main_win.id) - run_data(experiment_dir) + #self.create_config('config_data', conf_map) + conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') + write_conf(conf_map, conf_dir, 'config_data') + run_dt.data(self.main_win.experiment_dir) - def run_rec(self): + def reconstruction(self): conf_map = {} - # conf_map['data_dir'] = '"' + self.main_win.working_dir + '/' + self.main_win.id + '/data' + '"' - # conf_map['save_dir'] = str(self.save_dir.text()) conf_map['threads'] = str(self.threads.text()) - conf_map['device'] = str(self.device.text()) - conf_map['garbage_trigger'] = str(self.gc.text()) - conf_map['algorithm_sequence'] = str(self.alg_seq.text()) + conf_map['device'] = str(self.device.text()).replace('\n','') + conf_map['garbage_trigger'] = str(self.gc.text()).replace('\n','') + conf_map['algorithm_sequence'] = str(self.alg_seq.text()).replace('\n','') conf_map['beta'] = str(self.beta.text()) if self.cont.isChecked(): conf_map['continue_dir'] = str(self.cont_dir.text()) @@ -276,55 +426,24 @@ def run_rec(self): for feat_id in self.features.feature_dir: self.features.feature_dir[feat_id].add_config(conf_map) - self.create_config('config_rec', conf_map) - - experiment_dir = os.path.join(self.main_win.working_dir, self.main_win.id) - - run_rec('opencl', experiment_dir) - - - def create_config(self, conf_file, conf_map): - valid = True - working_dir = os.path.join(self.main_win.working_dir, self.main_win.id) - if not os.path.exists(working_dir): - os.makedirs(working_dir) - conf_dir = os.path.join(working_dir, 'conf') - if not os.path.exists(conf_dir): - os.makedirs(conf_dir) - conf_file = os.path.join(conf_dir, conf_file) - temp_file = os.path.join(self.main_win.working_dir, self.main_win.id, 'conf', 'temp') - with open(temp_file, 'a') as f: - for key in conf_map: - value = conf_map[key] - if len(value) == 0: - print ('the ' + key + ' is not configured') - valid = False - break - f.write(key + ' = ' + conf_map[key] + '\n') - f.close() - if valid: - shutil.move(temp_file, conf_file) + #self.create_config('config_rec', conf_map) + conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') + write_conf(conf_map, conf_dir, 'config_rec') + run_rc.reconstruction('cpu', self.main_win.experiment_dir) - def run_disp(self): + + def display(self): if len(self.crop.text()) == 0: print ('crop not configured') - #return - - working_dir = os.path.join(self.main_win.working_dir, self.main_win.id) - if not os.path.exists(working_dir): - os.makedirs(working_dir) - conf_dir = os.path.join(working_dir, 'conf') - if not os.path.exists(conf_dir): - os.makedirs(conf_dir) - disp_conf_file = os.path.join(self.main_win.working_dir, self.main_win.id, 'conf', 'config_disp') - temp_file = os.path.join(self.main_win.working_dir, self.main_win.id, 'conf', 'temp') + disp_conf_file = os.path.join(self.main_win.experiment_dir, 'conf', 'config_disp') + temp_file = os.path.join(self.main_win.experiment_dir, 'conf', 'temp') with open(temp_file, 'a') as temp: try: with open(disp_conf_file, 'r') as f: for line in f: - if not line.startswith('crop')and not line.startswith('save_dir'): + if not line.startswith('crop') and not line.startswith('binning'): temp.write(line) f.close() except: @@ -332,16 +451,11 @@ def run_disp(self): if len(self.crop.text()) != 0: temp.write('crop = ' + str(self.crop.text()) + '\n') - if len(self.save_disp_dir.text()) == 0: - temp.write('save_dir = ' + working_dir + '/results\n') - else: - temp.write('save_dir = ' + str(self.save_disp_dir.text()) + '\n') + temp.close() shutil.move(temp_file, disp_conf_file) - experiment_dir = os.path.join(self.main_win.working_dir, self.main_win.id) - - run_disp('opencl') + run_dp.to_vtk(self.main_win.experiment_dir) def rec_default(self): @@ -349,11 +463,10 @@ def rec_default(self): len(self.main_win.working_dir) == 0 or len(self.main_win.id) == 0: print ('Working Directory or Reconstruction ID not configured') else: - self.save_dir.setText('"' + str(self.main_win.working_dir) + '/' + str(self.main_win.id) + '/results' + '"') self.threads.setText('1') self.device.setText('(3)') self.gc.setText('(1000)') - self.alg_seq.setText('((5,("ER",20),("HIO",180)),(1,("ER",40),("HIO",160)),(4,("ER",20),("HIO",180)))') + self.alg_seq.setText('((3,("ER",20),("HIO",180)),(1,("ER",20)))') self.beta.setText('.9') self.cont.setChecked(False) @@ -403,6 +516,10 @@ def add_feat_conf(self, conf_map): pass + def init_config(self, conf_map): + pass + + class GA(Feature): def __init__(self): super(GA, self).__init__() @@ -450,6 +567,21 @@ def __init__(self): self.id = 'low resolution' + def init_config(self, conf_map): + try: + self.res_triggers.setText(str(conf_map.resolution_trigger).replace(" ", "")) + except AttributeError: + pass + try: + self.sigma_range.setText(str(conf_map.iter_res_sigma_range).replace(" ", "")) + except AttributeError: + pass + try: + self.det_range.setText(str(conf_map.iter_res_det_range).replace(" ", "")) + except AttributeError: + pass + + def fill_active(self, layout): self.res_triggers = QLineEdit() layout.addRow("low resolution triggers", self.res_triggers) @@ -461,15 +593,15 @@ def fill_active(self, layout): def rec_default(self): #TODO add to accept fractions in trigger, so the default will be (.5,1) - self.res_triggers.setText('(0, 1, 500)') + self.res_triggers.setText('(0, 1, 320)') self.sigma_range.setText('(2.0)') self.det_range.setText('(.7)') def add_feat_conf(self, conf_map): - conf_map['resolution_trigger'] = str(self.res_triggers.text()) - conf_map['iter_res_sigma_range'] = str(self.sigma_range.text()) - conf_map['iter_res_det_range'] = str(self.det_range.text()) + conf_map['resolution_trigger'] = str(self.res_triggers.text()).replace('\n','') + conf_map['iter_res_sigma_range'] = str(self.sigma_range.text()).replace('\n','') + conf_map['iter_res_det_range'] = str(self.det_range.text()).replace('\n','') class amplitude_support(Feature): @@ -478,6 +610,29 @@ def __init__(self): self.id = 'amplitude support' + def init_config(self, conf_map): + try: + self.support_triggers.setText(str(conf_map.amp_support_trigger).replace(" ", "")) + except AttributeError: + pass + try: + self.support_type.setText(str(conf_map.support_type).replace(" ", "")) + except AttributeError: + pass + try: + self.support_area.setText(str(conf_map.support_area).replace(" ", "")) + except AttributeError: + pass + try: + self.threshold.setText(str(conf_map.support_threshold).replace(" ", "")) + except AttributeError: + pass + try: + self.sigma.setText(str(conf_map.support_sigma).replace(" ", "")) + except AttributeError: + pass + + def fill_active(self, layout): self.support_triggers = QLineEdit() layout.addRow("support triggers", self.support_triggers) @@ -500,11 +655,11 @@ def rec_default(self): def add_feat_conf(self, conf_map): - conf_map['amp_support_trigger'] = str(self.support_triggers.text()) - conf_map['support_type'] = str(self.support_type.text()) + conf_map['amp_support_trigger'] = str(self.support_triggers.text()).replace('\n','') + conf_map['support_type'] = '"' + str(self.support_type.text()) + '"' conf_map['support_threshold'] = str(self.threshold.text()) conf_map['support_sigma'] = str(self.sigma.text()) - conf_map['support_area'] = str(self.support_area.text()) + conf_map['support_area'] = str(self.support_area.text()).replace('\n','') class phase_support(Feature): @@ -513,6 +668,21 @@ def __init__(self): self.id = 'phase support' + def init_config(self, conf_map): + try: + self.phase_triggers.setText(str(conf_map.phase_support_trigger).replace(" ", "")) + except AttributeError: + pass + try: + self.phase_min.setText(str(conf_map.phase_min).replace(" ", "")) + except AttributeError: + pass + try: + self.phase_max.setText(str(conf_map.phase_max).replace(" ", "")) + except AttributeError: + pass + + def fill_active(self, layout): self.phase_triggers = QLineEdit() layout.addRow("phase support triggers", self.phase_triggers) @@ -529,7 +699,7 @@ def rec_default(self): def add_feat_conf(self, conf_map): - conf_map['phase_support_trigger'] = str(self.phase_triggers.text()) + conf_map['phase_support_trigger'] = str(self.phase_triggers.text()).replace('\n','') conf_map['phase_min'] = str(self.phase_min.text()) conf_map['phase_max'] = str(self.phase_max.text()) @@ -540,6 +710,29 @@ def __init__(self): self.id = 'pcdi' + def init_config(self, conf_map): + try: + self.pcdi_triggers.setText(str(conf_map.pcdi_trigger).replace(" ", "")) + except AttributeError: + pass + try: + self.pcdi_type.setText(str(conf_map.partial_coherence_type).replace(" ", "")) + except AttributeError: + pass + try: + self.pcdi_iter.setText(str(conf_map.partial_coherence_iteration_num).replace(" ", "")) + except AttributeError: + pass + try: + self.pcdi_normalize.setText(str(conf_map.partial_coherence_normalize).replace(" ", "")) + except AttributeError: + pass + try: + self.pcdi_roi.setText(str(conf_map.partial_coherence_roi).replace(" ", "")) + except AttributeError: + pass + + def fill_active(self, layout): self.pcdi_triggers = QLineEdit() layout.addRow("pcdi triggers", self.pcdi_triggers) @@ -562,11 +755,11 @@ def rec_default(self): def add_feat_conf(self, conf_map): - conf_map['pcdi_trigger'] = str(self.pcdi_triggers.text()) - conf_map['partial_coherence_type'] = str(self.pcdi_type.text()) + conf_map['pcdi_trigger'] = str(self.pcdi_triggers.text()).replace('\n','') + conf_map['partial_coherence_type'] = '"' + str(self.pcdi_type.text()) + '"' conf_map['partial_coherence_iteration_num'] = str(self.pcdi_iter.text()) conf_map['partial_coherence_normalize'] = str(self.pcdi_normalize.text()) - conf_map['partial_coherence_roi'] = str(self.pcdi_roi.text()) + conf_map['partial_coherence_roi'] = str(self.pcdi_roi.text()).replace('\n','') class twin(Feature): @@ -575,6 +768,13 @@ def __init__(self): self.id = 'twin' + def init_config(self, conf_map): + try: + self.twin_triggers.setText(str(conf_map.twin_trigger).replace(" ", "")) + except AttributeError: + pass + + def fill_active(self, layout): self.twin_triggers = QLineEdit() layout.addRow("twin triggers", self.twin_triggers) @@ -585,7 +785,7 @@ def rec_default(self): def add_feat_conf(self, conf_map): - conf_map['twin_trigger'] = str(self.twin_triggers.text()) + conf_map['twin_trigger'] = str(self.twin_triggers.text()).replace('\n','') class average(Feature): @@ -594,6 +794,13 @@ def __init__(self): self.id = 'average' + def init_config(self, conf_map): + try: + self.average_triggers.setText(str(conf_map.average_trigger).replace(" ", "")) + except AttributeError: + pass + + def fill_active(self, layout): self.average_triggers = QLineEdit() layout.addRow("average triggers", self.average_triggers) @@ -604,7 +811,8 @@ def rec_default(self): def add_feat_conf(self, conf_map): - conf_map['avarage_trigger'] = str(self.average_triggers.text()) + conf_map['avarage_trigger'] = str(self.average_triggers.text()).replace('\n','') + class Features(QWidget): diff --git a/aps_34id/prep.py b/reccdi/src_py/beamlines/aps_34id/prep.py similarity index 99% rename from aps_34id/prep.py rename to reccdi/src_py/beamlines/aps_34id/prep.py index 5cb8594..c92aef0 100644 --- a/aps_34id/prep.py +++ b/reccdi/src_py/beamlines/aps_34id/prep.py @@ -196,6 +196,8 @@ def prep_data(scan, det_area1, det_area2, data_dir, prep_data_dir, darkfile, whi def prepare(working_dir, id, scan, data_dir, specfile, darkfile, whitefile): # assuming all parameters were validated (i.e working directory exists, etc.) + # 34-idc experiment ids contain scan range. The id parameter does include the range string prepended + # with _ #create directory to save prepared data ,//'prep' working_dir = os.path.join(working_dir, id) if not os.path.exists(working_dir): diff --git a/src_py/run_scripts/__init__.py b/reccdi/src_py/controller/__init__.py old mode 100644 new mode 100755 similarity index 100% rename from src_py/run_scripts/__init__.py rename to reccdi/src_py/controller/__init__.py diff --git a/src_py/controller/data.py b/reccdi/src_py/controller/data.py similarity index 99% rename from src_py/controller/data.py rename to reccdi/src_py/controller/data.py index 9c6c222..615171b 100644 --- a/src_py/controller/data.py +++ b/reccdi/src_py/controller/data.py @@ -18,7 +18,7 @@ """ import numpy as np -import src_py.utilities.utils as ut +import reccdi.src_py.utilities.utils as ut import os diff --git a/src_py/controller/fast_module.py b/reccdi/src_py/controller/fast_module.py similarity index 96% rename from src_py/controller/fast_module.py rename to reccdi/src_py/controller/fast_module.py index c12b80a..89bc8dc 100755 --- a/src_py/controller/fast_module.py +++ b/reccdi/src_py/controller/fast_module.py @@ -19,11 +19,9 @@ import numpy as np import scipy.fftpack as sf -import src_py.cyth.bridge_cpu as bridge_cpu -import src_py.cyth.bridge_opencl as bridge_opencl -#import src_py.cyth.bridge_cuda as bridge_cuda -import os -import threading +import reccdi.src_py.cyth.bridge_cpu as bridge_cpu +import reccdi.src_py.cyth.bridge_opencl as bridge_opencl +#import reccdi.src_py.cyth.bridge_cuda as bridge_cuda __author__ = "Barbara Frosik" diff --git a/src_py/controller/gen_rec.py b/reccdi/src_py/controller/gen_rec.py similarity index 97% rename from src_py/controller/gen_rec.py rename to reccdi/src_py/controller/gen_rec.py index 2329c66..ac64577 100644 --- a/src_py/controller/gen_rec.py +++ b/reccdi/src_py/controller/gen_rec.py @@ -20,9 +20,9 @@ import numpy as np import matplotlib.pyplot as plt import os -import src_py.controller.reconstruction as single -import src_py.controller.reconstruction_multi as multi -import src_py.utilities.utils as ut +import reccdi.src_py.controller.reconstruction as single +import reccdi.src_py.controller.reconstruction_multi as multi +import reccdi.src_py.utilities.utils as ut __author__ = "Barbara Frosik" diff --git a/src_py/controller/reconstruction.py b/reccdi/src_py/controller/reconstruction.py similarity index 96% rename from src_py/controller/reconstruction.py rename to reccdi/src_py/controller/reconstruction.py index 4d4a9cb..f72e663 100644 --- a/src_py/controller/reconstruction.py +++ b/reccdi/src_py/controller/reconstruction.py @@ -20,9 +20,9 @@ import numpy as np # import matplotlib.pyplot as plt import os -import src_py.controller.fast_module as calc -import src_py.utilities.utils as ut -import src_py.controller.reconstruction_multi as multi +import reccdi.src_py.controller.fast_module as calc +import reccdi.src_py.utilities.utils as ut +import reccdi.src_py.controller.reconstruction_multi as multi __author__ = "Barbara Frosik" diff --git a/src_py/controller/reconstruction_multi.py b/reccdi/src_py/controller/reconstruction_multi.py similarity index 98% rename from src_py/controller/reconstruction_multi.py rename to reccdi/src_py/controller/reconstruction_multi.py index f61f49f..3cd1022 100644 --- a/src_py/controller/reconstruction_multi.py +++ b/reccdi/src_py/controller/reconstruction_multi.py @@ -19,9 +19,9 @@ import os -import src_py.controller.fast_module as calc +import reccdi.src_py.utilities.utils as ut +import reccdi.src_py.controller.fast_module as calc from parsl.app.app import python_app -import src_py.utilities.utils as ut import time diff --git a/reccdi/src_py/cyth/__init__.py b/reccdi/src_py/cyth/__init__.py new file mode 100755 index 0000000..e69de29 diff --git a/src_py/cyth/bridge_cpu.pyx b/reccdi/src_py/cyth/bridge_cpu.pyx similarity index 86% rename from src_py/cyth/bridge_cpu.pyx rename to reccdi/src_py/cyth/bridge_cpu.pyx index 556a36b..6ea3191 100644 --- a/src_py/cyth/bridge_cpu.pyx +++ b/reccdi/src_py/cyth/bridge_cpu.pyx @@ -6,8 +6,8 @@ # distutils: language = c++ -# distutils: include_dirs = ['include', 'AF_DIR/include', 'LC_DIR/include',] -# distutils: sources = ['src_cpp/algorithm.cpp', 'src_cpp/bridge.cpp', 'src_cpp/manager.cpp', 'src_cpp/parameters.cpp', 'src_cpp/pcdi.cpp', 'src_cpp/resolution.cpp', 'src_cpp/state.cpp', 'src_cpp/support.cpp', 'src_cpp/util.cpp', 'src_cpp/worker.cpp'] +# distutils: include_dirs = ['reccdi/include', 'AF_DIR/include', 'LC_DIR/include',] +# distutils: sources = ['reccdi/src_cpp/algorithm.cpp', 'reccdi/src_cpp/bridge.cpp', 'reccdi/src_cpp/manager.cpp', 'reccdi/src_cpp/parameters.cpp', 'reccdi/src_cpp/pcdi.cpp', 'reccdi/src_cpp/resolution.cpp', 'reccdi/src_cpp/state.cpp', 'reccdi/src_cpp/support.cpp', 'reccdi/src_cpp/util.cpp', 'reccdi/src_cpp/worker.cpp'] # distutils: libraries = ['afcpu', 'config++',] # distutils: library_dirs = ['AF_DIR/lib', 'LC_DIR/lib',] diff --git a/src_py/cyth/bridge_cuda.pyx b/reccdi/src_py/cyth/bridge_cuda.pyx similarity index 86% rename from src_py/cyth/bridge_cuda.pyx rename to reccdi/src_py/cyth/bridge_cuda.pyx index 56cabcd..c8b8610 100755 --- a/src_py/cyth/bridge_cuda.pyx +++ b/reccdi/src_py/cyth/bridge_cuda.pyx @@ -6,8 +6,8 @@ # distutils: language = c++ -# distutils: include_dirs = ['include', 'AF_DIR/include', 'LC_DIR/include',] -# distutils: sources = ['src_cpp/algorithm.cpp', 'src_cpp/bridge.cpp', 'src_cpp/manager.cpp', 'src_cpp/parameters.cpp', 'src_cpp/pcdi.cpp', 'src_cpp/resolution.cpp', 'src_cpp/state.cpp', 'src_cpp/support.cpp', 'src_cpp/util.cpp', 'src_cpp/worker.cpp'] +# distutils: include_dirs = ['reccdi/include', 'AF_DIR/include', 'LC_DIR/include',] +# distutils: sources = ['reccdi/src_cpp/algorithm.cpp', 'reccdi/src_cpp/bridge.cpp', 'reccdi/src_cpp/manager.cpp', 'reccdi/src_cpp/parameters.cpp', 'reccdi/src_cpp/pcdi.cpp', 'reccdi/src_cpp/resolution.cpp', 'reccdi/src_cpp/state.cpp', 'reccdi/src_cpp/support.cpp', 'reccdi/src_cpp/util.cpp', 'reccdi/src_cpp/worker.cpp'] # distutils: libraries = ['afcuda', 'config++',] # distutils: library_dirs = ['AF_DIR/lib', 'LC_DIR/lib',] diff --git a/src_py/cyth/bridge_opencl.pyx b/reccdi/src_py/cyth/bridge_opencl.pyx similarity index 86% rename from src_py/cyth/bridge_opencl.pyx rename to reccdi/src_py/cyth/bridge_opencl.pyx index f5cafd6..1a043b8 100755 --- a/src_py/cyth/bridge_opencl.pyx +++ b/reccdi/src_py/cyth/bridge_opencl.pyx @@ -6,8 +6,8 @@ # distutils: language = c++ -# distutils: include_dirs = ['include', 'AF_DIR/include', 'LC_DIR/include',] -# distutils: sources = ['src_cpp/algorithm.cpp', 'src_cpp/bridge.cpp', 'src_cpp/manager.cpp', 'src_cpp/parameters.cpp', 'src_cpp/pcdi.cpp', 'src_cpp/resolution.cpp', 'src_cpp/state.cpp', 'src_cpp/support.cpp', 'src_cpp/util.cpp', 'src_cpp/worker.cpp'] +# distutils: include_dirs = ['reccdi/include', 'AF_DIR/include', 'LC_DIR/include',] +# distutils: sources = ['reccdi/src_cpp/algorithm.cpp', 'reccdi/src_cpp/bridge.cpp', 'reccdi/src_cpp/manager.cpp', 'reccdi/src_cpp/parameters.cpp', 'reccdi/src_cpp/pcdi.cpp', 'reccdi/src_cpp/resolution.cpp', 'reccdi/src_cpp/state.cpp', 'reccdi/src_cpp/support.cpp', 'reccdi/src_cpp/util.cpp', 'reccdi/src_cpp/worker.cpp'] # distutils: libraries = ['afopencl', 'config++',] # distutils: library_dirs = ['AF_DIR/lib', 'LC_DIR/lib',] diff --git a/reccdi/src_py/run_scripts/__init__.py b/reccdi/src_py/run_scripts/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/reccdi/src_py/run_scripts/everything.py b/reccdi/src_py/run_scripts/everything.py new file mode 100644 index 0000000..4e647ba --- /dev/null +++ b/reccdi/src_py/run_scripts/everything.py @@ -0,0 +1,29 @@ +import sys +import argparse +import reccdi.src_py.run_scripts.run_data as run_dt +import reccdi.src_py.run_scripts.run_rec as run_rc +import reccdi.src_py.run_scripts.run_disp as run_dp +import reccdi.src_py.run_scripts.run_34id_prepare as prep + + +def main(arg): + parser = argparse.ArgumentParser() + parser.add_argument("dev", help="processor to run on (cpu, opencl, cuda)") + parser.add_argument("prefix", help="prefix id") + parser.add_argument("scans", help="scans to preocess") + parser.add_argument("conf_dir", help="directory with configuration files") + args = parser.parse_args() + dev = args.dev + prefix = args.prefix + scans = args.scans + conf_dir = args.conf_dir + + experiment_dir = prep.parse_prepare(prefix, scans, conf_dir) + run_dt.data(experiment_dir) + run_rc.reconstruction(dev, experiment_dir) + run_dp.to_vtk(experiment_dir) + + +if __name__ == "__main__": + main(sys.argv[1:]) + diff --git a/reccdi/src_py/run_scripts/everything.sh b/reccdi/src_py/run_scripts/everything.sh new file mode 100644 index 0000000..69b1fba --- /dev/null +++ b/reccdi/src_py/run_scripts/everything.sh @@ -0,0 +1,17 @@ +#!/bin/sh + + +#export LD_LIBRARY_PATH=/usr/local/lib:/local/libconfig/lib:/local/af/lib + +#export LD_LIBRARY_PATH=/home/beams/CXDUSER/CDI/libconfig/lib:/usr/lib64:/home/beams/CXDUSER/CDI/ArrayFire-v3.4.2/lib:/usr/local-linux/cuda-8.0/lib64:/usr/local-linux/cuda-8.0/nvvm/lib64 + +#newest arrayfire version will work with cuda 9.1 +#export LD_LIBRARY_PATH=/home/beams/CXDUSER/CDI/arrayfire/lib:/home/beams/CXDUSER/CDI/libconfig/lib:/local/cuda-9.0/lib64:/local/cuda-9.0/nvvm/lib64 + +dev=$1 +prefix=$2 +scans=$3 +conf_dir=$4 + +python everything.py $dev $prefix $scans $conf_dir + diff --git a/src_py/run_scripts/run_34id_prepare.py b/reccdi/src_py/run_scripts/run_34id_prepare.py similarity index 83% rename from src_py/run_scripts/run_34id_prepare.py rename to reccdi/src_py/run_scripts/run_34id_prepare.py index 89082be..c67fd46 100755 --- a/src_py/run_scripts/run_34id_prepare.py +++ b/reccdi/src_py/run_scripts/run_34id_prepare.py @@ -2,7 +2,7 @@ import pylibconfig2 as cfg import sys import os -import aps_34id.prep as prep +import reccdi.src_py.beamlines.aps_34id.prep as prep import shutil @@ -30,17 +30,10 @@ def copy_conf(src, dest): shutil.copy(conf_rec, dest) -def main(arg): - parser = argparse.ArgumentParser() - parser.add_argument("id", help="prefix to name of the experiment/data reconstruction") - parser.add_argument("scan", help="a range of scans to prepare data from") - parser.add_argument("conf_dir", help="directory where the configuration files are located") - args = parser.parse_args() - scan = args.scan - id = args.id + '_' + scan +def parse_prepare(prefix, scan, conf_dir): + id = prefix + '_' + scan print ('reading data file for experiment ' + id) - conf_dir = args.conf_dir if not os.path.isdir(conf_dir): print ('configured directory ' + conf_dir + ' does not exist') sys.exit(0) @@ -64,11 +57,25 @@ def main(arg): with open(main_conf, 'r') as f: config_map = cfg.Config(f.read()) + prep.prepare(config_map.working_dir, id, scan_num, config_map.data_dir, config_map.specfile, config_map.darkfile, config_map.whitefile) + experiment_dir = os.path.join(config_map.working_dir, id) # copy config_data, config_rec, cofig_disp files from cofig directory into the experiment conf directory - experiment_dir = prep.prepare(config_map.working_dir, id, scan_num, config_map.data_dir, config_map.specfile, config_map.darkfile, config_map.whitefile) - copy_conf(conf_dir, experiment_dir) + copy_conf(conf_dir, os.path.join(experiment_dir, 'conf')) return experiment_dir +def main(arg): + parser = argparse.ArgumentParser() + parser.add_argument("id", help="prefix to name of the experiment/data reconstruction") + parser.add_argument("scan", help="a range of scans to prepare data from") + parser.add_argument("conf_dir", help="directory where the configuration files are located") + args = parser.parse_args() + scan = args.scan + id = args.id + conf_dir = args.conf_dir + + return parse_prepare(id, scan, conf_dir) + + if __name__ == "__main__": exit(main(sys.argv[1:])) diff --git a/src_py/run_scripts/run_data.py b/reccdi/src_py/run_scripts/run_data.py similarity index 94% rename from src_py/run_scripts/run_data.py rename to reccdi/src_py/run_scripts/run_data.py index 1d6aa1c..e15f451 100755 --- a/src_py/run_scripts/run_data.py +++ b/reccdi/src_py/run_scripts/run_data.py @@ -1,4 +1,4 @@ -import src_py.controller.data as dt +import reccdi.src_py.controller.data as dt import sys import argparse import os diff --git a/src_py/run_scripts/run_disp.py b/reccdi/src_py/run_scripts/run_disp.py similarity index 96% rename from src_py/run_scripts/run_disp.py rename to reccdi/src_py/run_scripts/run_disp.py index 7b90579..a745c52 100755 --- a/src_py/run_scripts/run_disp.py +++ b/reccdi/src_py/run_scripts/run_disp.py @@ -1,8 +1,8 @@ -import src_py.utilities.CXDVizNX as cx +import reccdi.src_py.utilities.CXDVizNX as cx import argparse import sys import os -import src_py.utilities.utils as ut +import reccdi.src_py.utilities.utils as ut import numpy as np diff --git a/src_py/run_scripts/run_rec.py b/reccdi/src_py/run_scripts/run_rec.py similarity index 94% rename from src_py/run_scripts/run_rec.py rename to reccdi/src_py/run_scripts/run_rec.py index 689fe74..2e973bf 100755 --- a/src_py/run_scripts/run_rec.py +++ b/reccdi/src_py/run_scripts/run_rec.py @@ -4,9 +4,9 @@ import argparse from multiprocessing import Process import numpy as np -import src_py.controller.reconstruction as rec -import src_py.controller.gen_rec as gen_rec -import src_py.utilities.utils as ut +import reccdi.src_py.controller.reconstruction as rec +import reccdi.src_py.controller.gen_rec as gen_rec +import reccdi.src_py.utilities.utils as ut import shutil diff --git a/reccdi/src_py/run_scripts/run_rec.sh b/reccdi/src_py/run_scripts/run_rec.sh new file mode 100644 index 0000000..895f2df --- /dev/null +++ b/reccdi/src_py/run_scripts/run_rec.sh @@ -0,0 +1,12 @@ +#!/bin/sh + + +export LD_LIBRARY_PATH=/usr/local/lib:/local/libconfig/lib:/local/af/lib + +#export LD_LIBRARY_PATH=/home/beams/CXDUSER/CDI/libconfig/lib:/usr/lib64:/home/beams/CXDUSER/CDI/ArrayFire-v3.4.2/lib:/usr/local-linux/cuda-8.0/lib64:/usr/local-linux/cuda-8.0/nvvm/lib64 + +#newest arrayfire version will work with cuda 9.1 +#export LD_LIBRARY_PATH=/home/beams/CXDUSER/CDI/arrayfire/lib:/home/beams/CXDUSER/CDI/libconfig/lib:/local/cuda-9.0/lib64:/local/cuda-9.0/nvvm/lib64 + +python run_rec.py $1 $2 +#python run_rec.py "opencl" \ No newline at end of file diff --git a/src_py/utilities/CXDVizNX.py b/reccdi/src_py/utilities/CXDVizNX.py similarity index 99% rename from src_py/utilities/CXDVizNX.py rename to reccdi/src_py/utilities/CXDVizNX.py index c71d7fa..90d3c33 100644 --- a/src_py/utilities/CXDVizNX.py +++ b/reccdi/src_py/utilities/CXDVizNX.py @@ -10,7 +10,7 @@ from tvtk.api import tvtk import numpy as np import math as m -import src_py.utilities.utils as ut +import reccdi.src_py.utilities.utils as ut __author__ = "Barbara Frosik" __copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." diff --git a/src_py/utilities/__init__.py b/reccdi/src_py/utilities/__init__.py similarity index 100% rename from src_py/utilities/__init__.py rename to reccdi/src_py/utilities/__init__.py diff --git a/src_py/utilities/utils.py b/reccdi/src_py/utilities/utils.py similarity index 100% rename from src_py/utilities/utils.py rename to reccdi/src_py/utilities/utils.py diff --git a/src_py/utilities/utils_post.py b/reccdi/src_py/utilities/utils_post.py similarity index 100% rename from src_py/utilities/utils_post.py rename to reccdi/src_py/utilities/utils_post.py diff --git a/run_34id_prepare.py b/run_34id_prepare.py new file mode 100755 index 0000000..c67fd46 --- /dev/null +++ b/run_34id_prepare.py @@ -0,0 +1,81 @@ +import argparse +import pylibconfig2 as cfg +import sys +import os +import reccdi.src_py.beamlines.aps_34id.prep as prep +import shutil + + +def prepare(working_dir, id, scan, data_dir, specfile, darkfile, whitefile): + experiment_dir = os.path.join(working_dir, id) + experiment_conf_dir = os.path.join(experiment_dir, 'conf') + if not os.path.exists(experiment_conf_dir): + os.makedirs(experiment_conf_dir) + + prep.prepare(working_dir, id, scan, data_dir, specfile, darkfile, whitefile) + # copy experiment config into last config + main_conf = os.path.join(working_dir, id, 'conf', 'config') + last = os.path.join('conf', 'last', 'config') + shutil.copy(main_conf, last) + + return experiment_dir + + +def copy_conf(src, dest): + main_conf = os.path.join(src, 'config') + shutil.copy(main_conf, dest) + conf_data = os.path.join(src, 'config_data') + shutil.copy(conf_data, dest) + conf_rec = os.path.join(src, 'config_rec') + shutil.copy(conf_rec, dest) + + +def parse_prepare(prefix, scan, conf_dir): + id = prefix + '_' + scan + print ('reading data file for experiment ' + id) + + if not os.path.isdir(conf_dir): + print ('configured directory ' + conf_dir + ' does not exist') + sys.exit(0) + + main_conf = os.path.join(conf_dir, 'config') + if not os.path.isfile(main_conf): + print ('the configuration directory does not contain "config" file') + sys.exit(0) + + try: + # convert it to list of int + scan_range = scan.split('-') + scan_num = [] + for i in range(len(scan_range)): + scan_num.append(int(scan_range[i])) + except: + print ('enter numeric values for scan range') + sys.exit(0) + + main_conf = os.path.join(conf_dir, 'config') + with open(main_conf, 'r') as f: + config_map = cfg.Config(f.read()) + + prep.prepare(config_map.working_dir, id, scan_num, config_map.data_dir, config_map.specfile, config_map.darkfile, config_map.whitefile) + experiment_dir = os.path.join(config_map.working_dir, id) + # copy config_data, config_rec, cofig_disp files from cofig directory into the experiment conf directory + copy_conf(conf_dir, os.path.join(experiment_dir, 'conf')) + return experiment_dir + + +def main(arg): + parser = argparse.ArgumentParser() + parser.add_argument("id", help="prefix to name of the experiment/data reconstruction") + parser.add_argument("scan", help="a range of scans to prepare data from") + parser.add_argument("conf_dir", help="directory where the configuration files are located") + args = parser.parse_args() + scan = args.scan + id = args.id + conf_dir = args.conf_dir + + return parse_prepare(id, scan, conf_dir) + + +if __name__ == "__main__": + exit(main(sys.argv[1:])) diff --git a/run_data.py b/run_data.py index 6aabbc6..e15f451 100755 --- a/run_data.py +++ b/run_data.py @@ -1,19 +1,13 @@ -import src_py.controller.data as dt +import reccdi.src_py.controller.data as dt import sys import argparse import os import shutil -def main(arg): - print ('preparing data') - parser = argparse.ArgumentParser() - parser.add_argument("experiment_dir", help="experiment directory") - args = parser.parse_args() - experiment_dir = args.experiment_dir - +def data(experiment_dir): + print ('modeling data') prep_file = os.path.join(experiment_dir, 'prep', 'prep_data.tif') - dt.prep(prep_file, experiment_dir) print ('done preparing data') # copy experiment config into last config @@ -22,8 +16,12 @@ def main(arg): shutil.copy(conf, last) +def main(arg): + parser = argparse.ArgumentParser() + parser.add_argument("experiment_dir", help="experiment directory") + args = parser.parse_args() + data(args.experiment_dir) + + if __name__ == "__main__": main(sys.argv[1:]) - -#python run_data.py '/local/bfrosik/CDI/Staff14-3_S0149.tif' 'config_data' - diff --git a/run_disp.py b/run_disp.py index 7b90579..a745c52 100755 --- a/run_disp.py +++ b/run_disp.py @@ -1,8 +1,8 @@ -import src_py.utilities.CXDVizNX as cx +import reccdi.src_py.utilities.CXDVizNX as cx import argparse import sys import os -import src_py.utilities.utils as ut +import reccdi.src_py.utilities.utils as ut import numpy as np diff --git a/run_prepare.py b/run_prepare.py deleted file mode 100755 index 5d6e4cc..0000000 --- a/run_prepare.py +++ /dev/null @@ -1,151 +0,0 @@ -import argparse -import pylibconfig2 as cfg -import sys -import os -import aps_34id.prep as prep -import shutil - -def prepare(id, scan, conf_dir): - def has_conf(dir): - conf = os.path.join(dir, 'config') - return os.path.isfile(conf) - - id = id + '_' + scan - print ('reading data file for experiment ' + id) - try: - # convert it to list of int - scan_range = scan.split('-') - scan_num = [] - for i in range(len(scan_range)): - scan_num.append(int(scan_range[i])) - except: - print ('enter numeric values for scan range') - sys.exit(0) - - if not os.path.isdir(conf_dir): - print ('configured directory ' + conf_dir + ' does not exist') - sys.exit(0) - - # find if there is "last" directory in the given directory and use the last configuration from there if exists - # otherwise use the "defaults" directory. If this does not exist, check if the conf_dir has the configuration - last_conf_dir = os.path.join(conf_dir, 'last') - default_conf_dir = os.path.join(conf_dir, 'defaults') - - # try read configuration from last - if os.path.isdir(last_conf_dir) and has_conf(last_conf_dir): - read_from_dir = last_conf_dir - elif os.path.isdir(default_conf_dir) and has_conf(default_conf_dir): - read_from_dir = default_conf_dir - elif has_conf(conf_dir): - read_from_dir = conf_dir - else: - print('configured directory ' + conf_dir + ' does not contain file "config"') - sys.exit(0) - - main_conf = os.path.join(read_from_dir, 'config') - with open(main_conf, 'r') as f: - config_map = cfg.Config(f.read()) - - experiment_dir = os.path.join(config_map.working_dir, id) - experiment_conf_dir = os.path.join(experiment_dir, 'conf') - if not os.path.exists(experiment_conf_dir): - os.makedirs(experiment_conf_dir) - - # copy config_data, config_rec, cofig_disp files from cofig directory into the experiment conf directory - shutil.copy(main_conf, experiment_conf_dir) - conf_data = os.path.join(read_from_dir,'config_data') - shutil.copy(conf_data, experiment_conf_dir) - conf_rec = os.path.join(read_from_dir,'config_rec') - shutil.copy(conf_rec, experiment_conf_dir) - conf_disp = os.path.join(read_from_dir,'config_disp') - if os.path.isfile(conf_disp): - shutil.copy(conf_disp, experiment_conf_dir) - - prep.prepare(config_map.working_dir, id, scan_num, config_map.data_dir, config_map.specfile, config_map.darkfile, config_map.whitefile) - print (experiment_dir) - return experiment_dir - - - -def main(arg): - def has_conf(dir): - conf = os.path.join(dir, 'config') - return os.path.isfile(conf) - - - parser = argparse.ArgumentParser() - parser.add_argument("id", help="prefix to name of the experiment/data reconstruction") - parser.add_argument("scan", help="a range of scans to prepare data from") - parser.add_argument("conf_dir", help="directory where the configuration files are located") - args = parser.parse_args() - scan = args.scan - id = args.id + '_' + scan - print ('reading data file for experiment ' + id) - try: - # convert it to list of int - scan_range = scan.split('-') - scan_num = [] - for i in range(len(scan_range)): - scan_num.append(int(scan_range[i])) - except: - print ('enter numeric values for scan range') - sys.exit(0) - - conf_dir = args.conf_dir - - if not os.path.isdir(conf_dir): - print ('configured directory ' + conf_dir + ' does not exist') - sys.exit(0) - - # find if there is "last" directory in the given directory and use the last configuration from there if exists - # otherwise use the "defaults" directory. If this does not exist, check if the conf_dir has the configuration - last_conf_dir = os.path.join(conf_dir, 'last') - default_conf_dir = os.path.join(conf_dir, 'defaults') - - # try read configuration from last - if os.path.isdir(last_conf_dir) and has_conf(last_conf_dir): - read_from_dir = last_conf_dir - elif os.path.isdir(default_conf_dir) and has_conf(default_conf_dir): - read_from_dir = default_conf_dir - elif has_conf(conf_dir): - read_from_dir = conf_dir - else: - print('configured directory ' + conf_dir + ' does not contain file "config"') - sys.exit(0) - - main_conf = os.path.join(read_from_dir, 'config') - with open(main_conf, 'r') as f: - config_map = cfg.Config(f.read()) - - experiment_dir = os.path.join(config_map.working_dir, id) - experiment_conf_dir = os.path.join(experiment_dir, 'conf') - if not os.path.exists(experiment_conf_dir): - os.makedirs(experiment_conf_dir) - - # copy config_data, config_rec, cofig_disp files from cofig directory into the experiment conf directory - shutil.copy(main_conf, experiment_conf_dir) - conf_data = os.path.join(read_from_dir,'config_data') - shutil.copy(conf_data, experiment_conf_dir) - conf_rec = os.path.join(read_from_dir,'config_rec') - shutil.copy(conf_rec, experiment_conf_dir) - conf_disp = os.path.join(read_from_dir,'config_disp') - if os.path.isfile(conf_disp): - shutil.copy(conf_disp, experiment_conf_dir) - - prep.prepare(config_map.working_dir, id, scan_num, config_map.data_dir, config_map.specfile, config_map.darkfile, config_map.whitefile) - print (experiment_dir) - return experiment_dir - -if __name__ == "__main__": - exit(main(sys.argv[1:])) - - -# python run_prepare.py prefix scans conf_dir - -# python run_prepare.py '/home/beams/CXDUSER/CDI/cdi-master/test' -# 'A_48-60' -# '48-60' -# '/net/s34data/export/34idc-data/2018/Startup18-2/ADStartup18-2a' -# '/net/s34data/export/34idc-data/2018/Startup18-2/Startup18-2a.spec' -# '/net/s34data/export/34idc-work/2018/Startup18-2/dark.tif' -# '/net/s34data/export/34idc-work/2018/Startup18-2/CelaWhiteField.tif' \ No newline at end of file diff --git a/run_rec.py b/run_rec.py index b2eb2d2..2e973bf 100755 --- a/run_rec.py +++ b/run_rec.py @@ -4,9 +4,10 @@ import argparse from multiprocessing import Process import numpy as np -import src_py.controller.reconstruction as rec -import src_py.controller.gen_rec as gen_rec -import src_py.utilities.utils as ut +import reccdi.src_py.controller.reconstruction as rec +import reccdi.src_py.controller.gen_rec as gen_rec +import reccdi.src_py.utilities.utils as ut +import shutil def interrupt_thread(arg): @@ -22,8 +23,14 @@ def term_handler(signal, frame): def reconstruction(proc, experiment_dir): + if os.path.exists('stopfile'): + os.remove('stopfile') + p = Process(target = interrupt_thread, args = (1,)) + p.start() + print ('starting reconstruction') conf = os.path.join(experiment_dir, 'conf', 'config_rec') + print ('rec conf', conf) config_map = ut.read_config(conf) if config_map is None: print ("can't read configuration file") @@ -53,6 +60,12 @@ def reconstruction(proc, experiment_dir): rec.reconstruction(proc, data, experiment_dir, config_map) print ('done with reconstruction') + # copy experiment config into last config + conf = os.path.join(experiment_dir, 'conf', 'config_rec') + last = os.path.join('conf', 'last', 'config_rec') + shutil.copy(conf, last) + + p.terminate() def main(arg): parser = argparse.ArgumentParser() @@ -66,12 +79,12 @@ def main(arg): if __name__ == "__main__": - if os.path.exists('stopfile'): - os.remove('stopfile') - p = Process(target = interrupt_thread, args = (1,)) - p.start() - main(sys.argv[1:]) - p.terminate() + if os.path.exists('stopfile'): + os.remove('stopfile') + p = Process(target = interrupt_thread, args = (1,)) + p.start() + main(sys.argv[1:]) + p.terminate() #python run_rec.py 'opencl' 'config_rec' diff --git a/setup.py b/setup.py index 6d85ffa..dc252ad 100755 --- a/setup.py +++ b/setup.py @@ -1,11 +1,40 @@ from distutils.core import setup from distutils.extension import Extension from Cython.Build import cythonize - -setup(ext_modules = cythonize( - ["src_py/cyth/bridge_cpu.pyx", "src_py/cyth/bridge_opencl.pyx", "src_py/cyth/bridge_cuda.pyx",], - language="c++",) -) +import numpy as np +extensions = [ + Extension( + "reccdi/src_py/cyth", + [ + "reccdi/src_py/cyth/bridge_cpu.pyx" + ], + include_dirs=[np.get_include(), "."] + ), + Extension( + "reccdi/src_py/cyth", + [ + "reccdi/src_py/cyth/bridge_opencl.pyx" + ], + include_dirs=[np.get_include(), "."] + ), + Extension( + "reccdi/src_py/cyth", + [ + "reccdi/src_py/cyth/bridge_cuda.pyx" + ], + include_dirs=[np.get_include(), "."] + ) +] +setup(ext_modules=cythonize( + extensions, compiler_directives={'embedsignature': True}), + name='reccdi', + author = 'Barbara Frosik', + author_email = 'bfrosik@anl.gov', + url='https://github.com/advancedPhotonSource/cdi', + version='1.0', + packages=['reccdi.src_py.beamlines.aps_34id', 'reccdi.src_py.controller', 'reccdi.src_py.cyth', 'reccdi.src_py.run_scripts', 'reccdi.src_py.utilities'], + package_data={'reccdi' : ['*.pyx','*.so'], 'reccdi.src_py.cyth' : ['*.pyx','*.so']} +) From 0418d3ddadfaa8ba98aa005e1953bee926ae1bef Mon Sep 17 00:00:00 2001 From: bfrosik Date: Tue, 8 Jan 2019 11:08:25 -0600 Subject: [PATCH 104/336] Added genetic algorithm function and comments --- reccdi/src_py/controller/data.py | 22 ++- reccdi/src_py/controller/fast_module.py | 34 +++- reccdi/src_py/controller/gen_rec.py | 135 ++++++++++--- reccdi/src_py/controller/reconstruction.py | 66 +++++-- .../src_py/controller/reconstruction_multi.py | 177 ++++++++++++++++-- reccdi/src_py/run_scripts/run_rec.py | 11 ++ reccdi/src_py/utilities/utils.py | 7 +- 7 files changed, 379 insertions(+), 73 deletions(-) diff --git a/reccdi/src_py/controller/data.py b/reccdi/src_py/controller/data.py index 615171b..358bc16 100644 --- a/reccdi/src_py/controller/data.py +++ b/reccdi/src_py/controller/data.py @@ -37,22 +37,26 @@ def prep(fname, conf_info): after inspecting the data. 3. binning - adding amplitudes of several consecutive points. Binning can be done in any dimension. 4. amplitudes are set to sqrt - 5. centering - finding the greatest amplitude and locating it at a center of new array. Typically several new rows/columns/slices - are added. These are filled with zeros. When changing the dimension the code finds the smallest possible dimension that is - supported by opencl library (multiplier of 2, 3, and 5). + 5. cropping and padding. If the adjust_dimention is negative in any dimension, the array is cropped in this dimension. + The cropping is followed by padding in the dimensions that have positive adjust dimension. After adjusting, the dimensions + are adjusted further to find the smallest dimension that is supported by opencl library (multiplier of 2, 3, and 5). + 6. centering - finding the greatest amplitude and locating it at a center of new array. If shift center is defined, the + center will be shifted accordingly. The shifted elements are rolled into the other end of array. + + The modified data is then saved in data directory. Parameters ---------- - config_map : dict - configuration map + fname : str + tif file containing raw data - data : array - a 3D np array containing experiment data + conf_info : str + experiment directory or configuration file. If it is directory, the "conf/config_data" will be + appended to determine configuration file Returns ------- - data : array - a 3D np array containing data after the preprocessing + nothing """ data = ut.get_array_from_tif(fname) diff --git a/reccdi/src_py/controller/fast_module.py b/reccdi/src_py/controller/fast_module.py index 89bc8dc..9d6947d 100755 --- a/reccdi/src_py/controller/fast_module.py +++ b/reccdi/src_py/controller/fast_module.py @@ -42,22 +42,40 @@ def fast_module_reconstruction(proc, device, conf, data, coh_dims, image=None, s proc : str a string indicating the processor type - data : array - a 3D np array containing pre-processed experiment data + device : int + device id assigned to this reconstruction conf : dict configuration map + data : array + a 3D np array containing pre-processed experiment data + + coh_dims : tuple + shape of coherence array + + image : numpy array + initial image for reconstruction or None + + support : numpy array + support corresponding to image or None + + coherence : numpy array + coherence corresponding to image + Returns ------- - image_r : array - a 3D np real part array containing reconstructed image + image : numpy array + reconstructed image + + support : numpy array + support for reconstructed image - image_i : array - a 3D np imaginary part array containing reconstructed image + coherence : numpy array + coherence for reconstructed image - er : array - a vector containing mean error for each iteration + er : list + a vector containing errors for each iteration """ if proc == 'cpu': #bridge = bridge_cpu diff --git a/reccdi/src_py/controller/gen_rec.py b/reccdi/src_py/controller/gen_rec.py index ac64577..2566e3d 100644 --- a/reccdi/src_py/controller/gen_rec.py +++ b/reccdi/src_py/controller/gen_rec.py @@ -1,5 +1,3 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- # ######################################################################### # Copyright (c) , UChicago Argonne, LLC. All rights reserved. # @@ -9,20 +7,15 @@ """ -Please make sure the installation :ref:`pre-requisite-reference-label` are met. -This module controls the reconstruction process. The user has to provide parameters such as type of processor, data, and configuration. -The processor specifies which library will be used by CFM (Calc Fast Module) that performs the processor intensive calculations. The module -can be run on cpu, or gpu. Depending on the gpu hardware and library, one can use opencl or cuda library. -The module starts the data preparation routines, calls for reconstruction using the CFM, and prepares the reconstructed data for -visualization. +This module controls the genetic algoritm process. """ import numpy as np import matplotlib.pyplot as plt import os -import reccdi.src_py.controller.reconstruction as single -import reccdi.src_py.controller.reconstruction_multi as multi -import reccdi.src_py.utilities.utils as ut +import src_py.controller.reconstruction as single +import src_py.controller.reconstruction_multi as multi +import src_py.utilities.utils as ut __author__ = "Barbara Frosik" @@ -34,7 +27,7 @@ class Generation: """ - This class encapsulates generation. + This class holds fields relevant to generations according to configuration. """ def __init__(self, config_map): try: @@ -112,39 +105,114 @@ def get_gmask(self, generation, shape): return np.ones(shape) + def breed(self, images, supports, errs): + """ + This function ranks the multiple reconstruction results by errs (the smallest last error, the better + reconstruction). It breeds next generation by combining the reconstructed images, centered, as follows: + 1. best image, + 2. 1/2 of best image + 1/2 of second image + 3. 1/3 of best image + 1/3 of second image + 1/3 of third image + ..... and so on + For each combined image the support is calculated and coherence is set to None. + The number of bred images matches the number of reconstructions. + + Parameters + ---------- + images : list + list of images arrays + + supports : list + list of supports arrays + + errs : list + list of errors (now each element is another list by iterations, but should we take the last error?) + + Returns + ------- + child_images : list + list of bred images + child_supports : list + list of calculated supports corresponding to child_images + child_cohs : list + list of child coherence, set to None + """ + + def combine(num_mix): + weight = 1.0/num_mix + image = weight * best_image + for ind in range(1, num_mix): + #center each image before adding + image += weight * ut.get_centered(images[ranks[ind]], (0,0,0)) + if num_mix == 1: + support = supports[0] + else: + # calculate support using sigma=1.0 + convag = ut.gauss_conv_fft(image) + max_convag = max(convag) + convag = convag / max_convag + support = np.where((convag >= .1), 1, 0) + return image, support + + species = len(errs) + child_images = [] + child_supports = [] + child_cohs = [] + # TODO we may not need the iteration errors, just the last one to rank reconstructions + errs_last = [] + for i in range (species): + errs_last.append(tuple(errs[i][-1], i)) + + # ranks keeps indexes of species from best to worst + ranks = list(np.argsort(errs_last)).reverse() + best_image = ut.get_centered(images[ranks[i]], (0,0,0)) + # mix the images: 1. the best 100%, 2. 50% best + 50% second, 3. 33% best + 33% second + 33% third, ... + # support is calculated off of the miex image, coherence is None + for i in range(1, species+1): + child_image, child_support = combine(i) + child_images.append(child_image) + child_supports.append(child_support) + child_cohs.append(None) + + return child_images, child_supports, child_cohs + + def save_results(image, support, coherence, save_dir): - if not save_dir.endswith('/'): - save_dir = save_dir + '/' if not os.path.exists(save_dir): os.makedirs(save_dir) - #data_file = data_dir + 'datafile%s.npy' % str(prep_no) - np.save(save_dir + 'image', image) - np.save(save_dir + 'support', support) - np.save(save_dir + 'coherence', coherence) + image_file = os.path.join(save_dir, 'image') + support_file = os.path.join(save_dir, 'support') + coh_file = os.path.join(save_dir, 'coherence') + np.save(image_file, image) + np.save(support_file, support) + np.save(coh_file, coherence) def reconstruction(generations, proc, data, conf_info, config_map): """ - This function is called by the user. It checks whether the data is valid and configuration file exists. - It calls function to pre-process the data, and then to run reconstruction. - The reconstruction results, image and errors are returned. + This function controls reconstruction utilizing genetic algorithm. Parameters ---------- + generation : int + number of generations + proc : str - a string indicating the processor type + processor to run on (cpu, opencl, or cuda) - conf : str - configuration file name + data : numpy array + initial data + + conf_info : str + experiment directory or configuration file. If it is directory, the "conf/config_rec" will be + appended to determine configuration file + + conf_map : dict + a dictionary from parsed configuration file Returns ------- - image : array - a 3D np array containing reconstructed image - - er : array - a vector containing mean error for each iteration + nothing """ try: @@ -157,6 +225,8 @@ def reconstruction(generations, proc, data, conf_info, config_map): except: threads = 1 + # init starting values + # if multiple threads configured (typical for genetic algorithm), use "reconstruction_multi" module if threads > 1: images = [] supports = [] @@ -166,6 +236,7 @@ def reconstruction(generations, proc, data, conf_info, config_map): supports.append(None) cohs.append(None) rec = multi + # load parls configuration rec.load_config(threads) else: images = None @@ -176,7 +247,7 @@ def reconstruction(generations, proc, data, conf_info, config_map): errors = [] gen_obj = Generation(config_map) - # the results are not kept + if os.path.isdir(conf_info): experiment_dir = conf_info conf = os.path.join(experiment_dir, 'conf', 'config_rec') @@ -189,12 +260,14 @@ def reconstruction(generations, proc, data, conf_info, config_map): errors.append(None) gen_data = gen_obj.get_data(g, data) images, supports, cohs, errs = rec.rec(proc, gen_data, conf, config_map, images, supports, cohs) - # here will be logic to pick the best threads errors[g] = errs + images, supports, cohs = gen_obj.breed(images, supports, errs) for g in range(low_resolution_generations, generations): errors.append(None) images, supports, cohs, errs = rec.rec(proc, data, conf, config_map, images, supports, cohs) errors[g] = errs + # TODO should we breed the last generation? + images, supports, cohs = gen_obj.breed(images, supports, errs) print ('done gen') # if g == 0: diff --git a/reccdi/src_py/controller/reconstruction.py b/reccdi/src_py/controller/reconstruction.py index f72e663..11a7721 100644 --- a/reccdi/src_py/controller/reconstruction.py +++ b/reccdi/src_py/controller/reconstruction.py @@ -33,6 +33,46 @@ def rec(proc, data, conf, config_map, image, support, coh): + """ + This function starts and returns results of reconstruction. The parameters must be initialized. + + Parameters + ---------- + proc : str + a string indicating the processor type + + data : numpy array + data array + + conf : str + configuration file name + + config_map : dict + parsed configuration + + image : numpy array + reconstructed image for further reconstruction, or None for initial + + support : numpy array + support of reconstructed image, or None + + coh : numpy array + coherence of reconstructed images, or None + + Returns + ------- + image : numpy array + reconstructed image + + support : numpy array + support of reconstructed images + + coh : numpy array + coherence of reconstructed images + + errs : list + list of errors (should we take the last error?) + """ try: devices = config_map.device except: @@ -48,25 +88,29 @@ def rec(proc, data, conf, config_map, image, support, coh): def reconstruction(proc, data, conf_info, config_map): """ - This function is called by the user. It checks whether the data is valid and configuration file exists. - It calls function to pre-process the data, and then to run reconstruction. - The reconstruction results, image and errors are returned. + This function starts the reconstruction. It checks whether it is continuation of reconstruction defined by + configuration. If continuation, the arrays of image, support, coherence are read from cont_directory, + otherwise, they are initialized to None. After the arrays are initialized, they are passed for the reconstruction. + The results are saved in the configured directory. Parameters ---------- proc : str - a string indicating the processor type + a string indicating the processor type (cpu, opencl, cuda) - conf : str - configuration file name + data : numpy array + data array + + conf_info : str + configuration file name or experiment directory. If directory, the configuration file is + defined as /conf/config_rec + + config_map : dict + parsed configuration Returns ------- - image : array - a 3D np array containing reconstructed image - - er : array - a vector containing mean error for each iteration + nothing """ # how many reconstructions to start diff --git a/reccdi/src_py/controller/reconstruction_multi.py b/reccdi/src_py/controller/reconstruction_multi.py index 3cd1022..46988d7 100644 --- a/reccdi/src_py/controller/reconstruction_multi.py +++ b/reccdi/src_py/controller/reconstruction_multi.py @@ -55,6 +55,26 @@ def load_config(threads): def assign_devices(devices, threads): + """ + This function pairs device id with reconstruction run. When running multiple reconstructions, it should be + distributed between available gpus. The GPUs might be configured. If not, it is left to Parsl logic how + the GPUs are utilized. + + Parameters + ---------- + devices : list + list containing ids of devices + + threads : int + number of reconstructions (each in own thread) + + Returns + ------- + dev : list + list containing devices allocated subsequently to threads. If the device was not configured, it will + be set to -1, which leaves the allocation to Parsl + """ + dev_no = len(devices) dev = [] for thread in range(threads): @@ -67,12 +87,73 @@ def assign_devices(devices, threads): @python_app def run_fast_module(proc, device, conf, data, coh_dims, prev_image, prev_support, prev_coh): + """ + This function runs in the thread palarellized by Parsl. + + Parameters + ---------- + proc : str + string defining library used 'cpu' or 'opencl' or 'cuda' + + device : int + device allocated to this thread or -1 if not configured + + conf : str + configuration file + + data : numpy array + data array + + coh_dims : tuple + shape of coherence array + + prev_image : numpy array or None + previously reconstructed image (if continuation or genetic algorithm) or None + + prev_support : numpy array or None + support of previously reconstructed image (if continuation or genetic algorithm) or None + + prev_coh : numpy array or None + coherence of previously reconstructed image (if continuation or genetic algorithm) or None + + Returns + ------- + image : numpy array + reconstructed image + + support : numpy array + support of reconstructed image + + coherence : coherence of reconstructed image + + error : list containing errors for iterations + """ image, support, coherence, error = calc.fast_module_reconstruction(proc, device, conf, data, coh_dims, prev_image, prev_support, prev_coh) return image, support, coherence, error def read_results(read_dir): + """ + This function retrieves results of multiple reconstructions from read_dir sub-directories and + loads them into lists. + + Parameters + ---------- + read_dir : str + directory that contains results of reconstructions + + Returns + ------- + images : list + list of numpy arrays containing reconstructed images + + supports : list + list of numpy arrays containing support of reconstructed images + + cohs : list + list of numpy arrays containing coherence of reconstructed images + """ images = [] supports = [] cohs = [] @@ -87,12 +168,77 @@ def read_results(read_dir): def save_results(threads, images, supports, cohs, save_dir): + """ + This function saves results of multiple reconstructions to directory tree in save_dir. + + Parameters + ---------- + threads : int + number of reconstruction sets results + + images : list + list of numpy arrays containing reconstructed images + + supports : list + list of numpy arrays containing support of reconstructed images + + cohs : list + list of numpy arrays containing coherence of reconstructed images + + save_dir : str + a directory to save the results + + Returns + ------- + nothing + """ for i in range(threads): subdir = os.path.join(save_dir, str(i)) ut.save_results(images[i], supports[i], cohs[i], subdir) def rec(proc, data, conf, config_map, images, supports, cohs): + """ + This function controls the multiple reconstructions. It invokes a loop to execute parallel resconstructions, + wait for all threads to deliver results, and store te results. + + Parameters + ---------- + proc : str + a string indicating the processor type + + data : numpy array + data array + + conf : str + configuration file name + + config_map : dict + parsed configuration + + images : list + list of numpy arrays containing reconstructed images for further reconstruction, or None for initial + + supports : list + list of numpy arrays containing support of reconstructed images, or None + + cohs : list + list of numpy arrays containing coherence of reconstructed images, or None + + Returns + ------- + images : list + list of numpy arrays containing reconstructed images + + supports : list + list of numpy arrays containing support of reconstructed images + + cohs : list + list of numpy arrays containing coherence of reconstructed images + + errs : list + list of lists of errors (now each element is another list by iterations, but should we take the last error?) + """ try: devices = config_map.device except: @@ -126,25 +272,33 @@ def rec(proc, data, conf, config_map, images, supports, cohs): def reconstruction(threads, proc, data, conf_info, config_map): """ - This function is called by the user. It checks whether the data is valid and configuration file exists. - It calls function to pre-process the data, and then to run reconstruction. - The reconstruction results, image and errors are returned. + This function starts the reconstruction. It checks whether it is continuation of reconstruction defined by + configuration. If continuation, the lists contaning arrays of images, supports, coherence for multiple threads + are read from cont_directory, otherwise, they are initialized to None. + After the lists are initialized, they are passed for the multi-reconstruction. + The results are saved in the configured directory. Parameters ---------- + threads : int + number of threads + proc : str - a string indicating the processor type + a string indicating the processor type (cpu, opencl, cuda) - conf : str - configuration file name + data : numpy array + data array + + conf_info : str + configuration file name or experiment directory. If directory, the configuration file is + defined as /conf/config_rec + + config_map : dict + parsed configuration Returns ------- - image : array - a 3D np array containing reconstructed image - - er : array - a vector containing mean error for each iteration + nothing """ cont = False @@ -173,6 +327,7 @@ def reconstruction(threads, proc, data, conf_info, config_map): start = time.time() if os.path.isdir(conf_info): + # if conf_info is directory, look for subdir "conf" and "config_rec" in it experiment_dir = conf_info conf = os.path.join(experiment_dir, 'conf', 'config_rec') else: diff --git a/reccdi/src_py/run_scripts/run_rec.py b/reccdi/src_py/run_scripts/run_rec.py index 2e973bf..0b41429 100755 --- a/reccdi/src_py/run_scripts/run_rec.py +++ b/reccdi/src_py/run_scripts/run_rec.py @@ -11,6 +11,10 @@ def interrupt_thread(arg): + """ + This function is part of interrupt mechanism. It detects ctl-c signal and creates an empty file named "stopfile". + The file is discovered by fast module and the discovery prompts termonation of the process. + """ def int_handler(signal, frame): open('stopfile', 'a').close() @@ -23,6 +27,13 @@ def term_handler(signal, frame): def reconstruction(proc, experiment_dir): + """ + This function starts the interruption discovery thread and the recontruction thread. + + It reads configuration file defined as /conf/config_rec. + If multiple generations are configured, it will start reconstruction from "reconstruction_multi" + script, otherwise from "reconstruction" script. + """ if os.path.exists('stopfile'): os.remove('stopfile') p = Process(target = interrupt_thread, args = (1,)) diff --git a/reccdi/src_py/utilities/utils.py b/reccdi/src_py/utilities/utils.py index 91ffac5..ce5cb06 100644 --- a/reccdi/src_py/utilities/utils.py +++ b/reccdi/src_py/utilities/utils.py @@ -207,14 +207,15 @@ def binning(array, binsizes): def get_centered(array, center_shift): """ - This function finds a greatest value in the array, and puts it in a center of a new array. The extra elements in the new - array are set to 0. + This function finds a greatest value in the array, and puts it in a center of a new array. If center_shift is + not zeros, the array will be shifted accordingly. The shifted elements are rolled into the other end of array. + Parameters ---------- array : array the original array to be centered - + center_shift : list a list defining shift of the center From e0bfebe24f8286e3fdde21cd669e31730280f731 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Fri, 11 Jan 2019 13:24:32 -0600 Subject: [PATCH 105/336] Modified files for install --- README.md | 20 +++++--------------- build/{Makefile => XMakefile} | 0 init.sh | 18 +++++++++--------- reccdi/src_py/controller/gen_rec.py | 6 +++--- setup.py | 28 +++------------------------- 5 files changed, 20 insertions(+), 52 deletions(-) rename build/{Makefile => XMakefile} (100%) diff --git a/README.md b/README.md index 341c063..55b31e7 100644 --- a/README.md +++ b/README.md @@ -22,9 +22,6 @@ Pre-requisites - Python packages installation: - pip install tifffile - pip install pylibconfig2 - - conda install vtk - - conda install traits - - conda install traitsui - pip install mayavi Author(s) @@ -41,7 +38,7 @@ C++ Libraries - ArrayFire open source - Libconfig open source -How to init +How to install ----------- - clone the source from the repository: - git clone https://github.com/advancedPhotonSource/cdi @@ -53,17 +50,10 @@ How to init - enter LibConfig installation directory > (absolute path to LibConfig installation dir) - enter cuda installation directory > (absolute path to cuda installation dir) - enter data type (float/double) > double +- run installation: + - python setup.py build_ext --inplace + - python setup.py install How to run ---------- -- python test.py (proc) (file name) (config file) - - (proc) is processing ArrayFire library ('cpu', 'opencl', or 'cuda') - - (file name) is data file name. It can be either tif file or numpy file. In the first case the file would contain original data, in the second case the numpy file would hold saved prepared data as ndarray. - - (config file) is a name of configuration file. This repository contains 'config.test' configuration foe for your use. - -example:python test.py 'opencl' '/directory/Staff14-3_S0149.tif' 'config.test' - -How to compile --------------- -python setup.py build_ext --inplace - +- refer to how_to_run file diff --git a/build/Makefile b/build/XMakefile similarity index 100% rename from build/Makefile rename to build/XMakefile diff --git a/init.sh b/init.sh index 8b1c4e0..3733785 100644 --- a/init.sh +++ b/init.sh @@ -5,26 +5,26 @@ echo -n "enter ArrayFire installation directory > " read af_dir #af_dir='/local/af' AF='AF_DIR' -sed -i 's?'$AF'?'$af_dir'?g' src_py/cyth/*.pyx +sed -i 's?'$AF'?'$af_dir'?g' reccdi/src_py/cyth/*.pyx echo -n "enter LibConfig installation directory > " read lc_dir #lc_dir=/local/libconfig LC='LC_DIR' -sed -i 's?'$LC'?'$lc_dir'?g' src_py/cyth/*.pyx +sed -i 's?'$LC'?'$lc_dir'?g' reccdi/src_py/cyth/*.pyx -echo -n "enter cuda installation directory > " -read cuda_dir +#echo -n "enter cuda installation directory > " +#read cuda_dir -#export LD_LIBRARY_PATH=local/libconfig/lib:/usr/local/lib:/local/af/lib -export LD_LIBRARY_PATH=$lc_dir/lib:/usr/local/lib:$af_dir/lib/:$cuda_dir/lib64:$cuda_dir/nvvm/lib64 +export LD_LIBRARY_PATH=/local/libconfig/lib:/usr/local/lib:/local/af/lib +#export LD_LIBRARY_PATH=$lc_dir/lib:/usr/local/lib:$af_dir/lib/:$cuda_dir/lib64:$cuda_dir/nvvm/lib64 echo -n "enter data type (float/double) > " read data_type def='def_type' -sed -i 's?'$def'?'$data_type'?g' src_py/cyth/*.pyx -sed -i 's?'$def'?'$data_type'?g' include/common.h +sed -i 's?'$def'?'$data_type'?g' reccdi/src_py/cyth/*.pyx +sed -i 's?'$def'?'$data_type'?g' reccdi/include/common.h -python setup.py build_ext --inplace \ No newline at end of file +#python setup.py build_ext --inplace \ No newline at end of file diff --git a/reccdi/src_py/controller/gen_rec.py b/reccdi/src_py/controller/gen_rec.py index 2566e3d..3fc7494 100644 --- a/reccdi/src_py/controller/gen_rec.py +++ b/reccdi/src_py/controller/gen_rec.py @@ -13,9 +13,9 @@ import numpy as np import matplotlib.pyplot as plt import os -import src_py.controller.reconstruction as single -import src_py.controller.reconstruction_multi as multi -import src_py.utilities.utils as ut +import reccdi.src_py.controller.reconstruction as single +import reccdi.src_py.controller.reconstruction_multi as multi +import reccdi.src_py.utilities.utils as ut __author__ = "Barbara Frosik" diff --git a/setup.py b/setup.py index dc252ad..e5fb408 100755 --- a/setup.py +++ b/setup.py @@ -4,37 +4,15 @@ import numpy as np -extensions = [ - Extension( - "reccdi/src_py/cyth", - [ - "reccdi/src_py/cyth/bridge_cpu.pyx" - ], - include_dirs=[np.get_include(), "."] - ), - Extension( - "reccdi/src_py/cyth", - [ - "reccdi/src_py/cyth/bridge_opencl.pyx" - ], - include_dirs=[np.get_include(), "."] - ), - Extension( - "reccdi/src_py/cyth", - [ - "reccdi/src_py/cyth/bridge_cuda.pyx" - ], - include_dirs=[np.get_include(), "."] - ) -] setup(ext_modules=cythonize( - extensions, compiler_directives={'embedsignature': True}), + ["reccdi/src_py/cyth/bridge_cpu.pyx", "reccdi/src_py/cyth/bridge_opencl.pyx", "reccdi/src_py/cyth/bridge_cuda.pyx", ], + language="c++", ), name='reccdi', author = 'Barbara Frosik', author_email = 'bfrosik@anl.gov', url='https://github.com/advancedPhotonSource/cdi', version='1.0', packages=['reccdi.src_py.beamlines.aps_34id', 'reccdi.src_py.controller', 'reccdi.src_py.cyth', 'reccdi.src_py.run_scripts', 'reccdi.src_py.utilities'], - package_data={'reccdi' : ['*.pyx','*.so'], 'reccdi.src_py.cyth' : ['*.pyx','*.so']} + package_data={'reccdi' : ['*.pyx',], 'reccdi.src_py.cyth' : ['*.pyx',]} ) From b8906637f7031957664b0926670cc0f141a85368 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Fri, 11 Jan 2019 14:57:35 -0600 Subject: [PATCH 106/336] Modified user scripts --- everything.py | 27 +------- reccdi/src_py/run_scripts/run_disp.py | 2 +- reccdi/src_py/run_scripts/run_rec.py | 15 +++-- run_34id_prepare.py | 82 ++---------------------- run_data.py | 28 ++------- run_disp.py | 78 +---------------------- run_rec.py | 89 +-------------------------- 7 files changed, 27 insertions(+), 294 deletions(-) diff --git a/everything.py b/everything.py index 3c03d34..d97514c 100644 --- a/everything.py +++ b/everything.py @@ -1,28 +1,7 @@ +import reccdi.src_py.run_scripts.everything as ev import sys -import argparse -import reccdi.src_py.run_scripts.run_data as run_dt -import reccdi.src_py.run_scripts.run_rec as run_rc -import reccdi.src_py.run_scripts.run_disp as run_dp -import reccdi.src_py.run_scripts.run_34id_prepare as prep - - -def main(arg): - parser = argparse.ArgumentParser() - parser.add_argument("dev", help="processor to run on (cpu, opencl, cuda)") - parser.add_argument("prefix", help="prefix id") - parser.add_argument("scans", help="scans to preocess") - parser.add_argument("conf_dir", help="directory with configuration files") - args = parser.parse_args() - dev = args.dev - prefix = args.prefix - scans = args.scans - conf_dir = args.conf_dir - - experiment_dir = prep.parse_prepare(prefix, scans, conf_dir) - run_dt.data(experiment_dir) - run_rc.reconstruction(dev, experiment_dir) - run_dp.to_vtk(experiment_dir) if __name__ == "__main__": - main(sys.argv[1:]) + ev.main(sys.argv[1:]) +#python everything.py device prefix scans conf_dir diff --git a/reccdi/src_py/run_scripts/run_disp.py b/reccdi/src_py/run_scripts/run_disp.py index a745c52..60e35ec 100755 --- a/reccdi/src_py/run_scripts/run_disp.py +++ b/reccdi/src_py/run_scripts/run_disp.py @@ -76,4 +76,4 @@ def main(arg): if __name__ == "__main__": main(sys.argv[1:]) -#python run_disp.py 'config_disp' +#python run_disp.py experiment_dir diff --git a/reccdi/src_py/run_scripts/run_rec.py b/reccdi/src_py/run_scripts/run_rec.py index 0b41429..141e87b 100755 --- a/reccdi/src_py/run_scripts/run_rec.py +++ b/reccdi/src_py/run_scripts/run_rec.py @@ -78,7 +78,13 @@ def reconstruction(proc, experiment_dir): p.terminate() + def main(arg): + if os.path.exists('stopfile'): + os.remove('stopfile') + p = Process(target=interrupt_thread, args=(1,)) + p.start() + parser = argparse.ArgumentParser() parser.add_argument("proc", help="the processor the code will run on, can be 'cpu', 'opencl', or 'cuda'.") parser.add_argument("experiment_dir", help="experiment directory.") @@ -88,14 +94,11 @@ def main(arg): reconstruction(proc, experiment_dir) + p.terminate() + if __name__ == "__main__": - if os.path.exists('stopfile'): - os.remove('stopfile') - p = Process(target = interrupt_thread, args = (1,)) - p.start() main(sys.argv[1:]) - p.terminate() -#python run_rec.py 'opencl' 'config_rec' +#python run_rec.py opencl experiment_dir diff --git a/run_34id_prepare.py b/run_34id_prepare.py index c67fd46..8242c04 100755 --- a/run_34id_prepare.py +++ b/run_34id_prepare.py @@ -1,81 +1,7 @@ -import argparse -import pylibconfig2 as cfg import sys -import os -import reccdi.src_py.beamlines.aps_34id.prep as prep -import shutil - - -def prepare(working_dir, id, scan, data_dir, specfile, darkfile, whitefile): - experiment_dir = os.path.join(working_dir, id) - experiment_conf_dir = os.path.join(experiment_dir, 'conf') - if not os.path.exists(experiment_conf_dir): - os.makedirs(experiment_conf_dir) - - prep.prepare(working_dir, id, scan, data_dir, specfile, darkfile, whitefile) - # copy experiment config into last config - main_conf = os.path.join(working_dir, id, 'conf', 'config') - last = os.path.join('conf', 'last', 'config') - shutil.copy(main_conf, last) - - return experiment_dir - - -def copy_conf(src, dest): - main_conf = os.path.join(src, 'config') - shutil.copy(main_conf, dest) - conf_data = os.path.join(src, 'config_data') - shutil.copy(conf_data, dest) - conf_rec = os.path.join(src, 'config_rec') - shutil.copy(conf_rec, dest) - - -def parse_prepare(prefix, scan, conf_dir): - id = prefix + '_' + scan - print ('reading data file for experiment ' + id) - - if not os.path.isdir(conf_dir): - print ('configured directory ' + conf_dir + ' does not exist') - sys.exit(0) - - main_conf = os.path.join(conf_dir, 'config') - if not os.path.isfile(main_conf): - print ('the configuration directory does not contain "config" file') - sys.exit(0) - - try: - # convert it to list of int - scan_range = scan.split('-') - scan_num = [] - for i in range(len(scan_range)): - scan_num.append(int(scan_range[i])) - except: - print ('enter numeric values for scan range') - sys.exit(0) - - main_conf = os.path.join(conf_dir, 'config') - with open(main_conf, 'r') as f: - config_map = cfg.Config(f.read()) - - prep.prepare(config_map.working_dir, id, scan_num, config_map.data_dir, config_map.specfile, config_map.darkfile, config_map.whitefile) - experiment_dir = os.path.join(config_map.working_dir, id) - # copy config_data, config_rec, cofig_disp files from cofig directory into the experiment conf directory - copy_conf(conf_dir, os.path.join(experiment_dir, 'conf')) - return experiment_dir - - -def main(arg): - parser = argparse.ArgumentParser() - parser.add_argument("id", help="prefix to name of the experiment/data reconstruction") - parser.add_argument("scan", help="a range of scans to prepare data from") - parser.add_argument("conf_dir", help="directory where the configuration files are located") - args = parser.parse_args() - scan = args.scan - id = args.id - conf_dir = args.conf_dir - - return parse_prepare(id, scan, conf_dir) - +import reccdi.src_py.run_scripts.run_34id_prepare as prep if __name__ == "__main__": - exit(main(sys.argv[1:])) + exit(prep.main(sys.argv[1:])) + +# python run_prepare.py prefix scans conf_dir diff --git a/run_data.py b/run_data.py index e15f451..c1fb31b 100755 --- a/run_data.py +++ b/run_data.py @@ -1,27 +1,7 @@ -import reccdi.src_py.controller.data as dt +import reccdi.src_py.run_scripts.run_data as dt import sys -import argparse -import os -import shutil - - -def data(experiment_dir): - print ('modeling data') - prep_file = os.path.join(experiment_dir, 'prep', 'prep_data.tif') - dt.prep(prep_file, experiment_dir) - print ('done preparing data') - # copy experiment config into last config - conf = os.path.join(experiment_dir, 'conf', 'config_data') - last = os.path.join('conf', 'last', 'config_data') - shutil.copy(conf, last) - - -def main(arg): - parser = argparse.ArgumentParser() - parser.add_argument("experiment_dir", help="experiment directory") - args = parser.parse_args() - data(args.experiment_dir) - if __name__ == "__main__": - main(sys.argv[1:]) + dt.main(sys.argv[1:]) + +#python run_data.py experiment_dir \ No newline at end of file diff --git a/run_disp.py b/run_disp.py index a745c52..975c751 100755 --- a/run_disp.py +++ b/run_disp.py @@ -1,79 +1,7 @@ -import reccdi.src_py.utilities.CXDVizNX as cx -import argparse +import reccdi.src_py.run_scripts.run_disp as disp import sys -import os -import reccdi.src_py.utilities.utils as ut -import numpy as np - - -def save_vtk(res_dir, conf): - try: - imagefile = os.path.join(res_dir, 'image.npy') - image = np.load(imagefile) - except: - return - - try: - supportfile = os.path.join(res_dir, 'support.npy') - support = np.load(supportfile) - except: - print ('support file ' + supportfile + ' is missing') - return - - cx.save_CX(conf, image, support, res_dir) - - -def to_vtk(conf_info): - if os.path.isdir(conf_info): - experiment_dir = conf_info - conf = os.path.join(experiment_dir, 'conf', 'config_disp') - # read binning info from config_data file in the same directory - conf_data = os.path.join(experiment_dir, 'conf', 'config_data') - binning_info = None - with open(conf_data, 'r') as f: - lines = f.readlines() - for line in lines: - if line.startswith("binning"): - binning_info = line + '\n' - break - # write the binning line into 'config_disp' file - if binning_info is not None: - with open(conf, "a") as f: - f.write(binning_info) - else: - #assuming it's a file - conf = conf_info - experiment_dir = None - config_map = ut.read_config(conf) - if config_map is None: - print ("can't read configuration file") - return - - try: - save_dir = config_map.save_dir - except AttributeError: - save_dir = os.path.join(experiment_dir, 'results') - - save_vtk(save_dir, conf) - print ('save dir', save_dir) - for sub in os.listdir(save_dir): - subdir = os.path.join(save_dir, sub) - print ('subdir', subdir) - if os.path.isdir(subdir): - save_vtk(subdir, conf) - - -def main(arg): - print ('preparing display') - parser = argparse.ArgumentParser() - parser.add_argument("conf_info", help="experiment directory or display configuration file") - args = parser.parse_args() - conf_info = args.conf_info - - to_vtk(conf_info) - print ('done with display') if __name__ == "__main__": - main(sys.argv[1:]) + disp.main(sys.argv[1:]) -#python run_disp.py 'config_disp' +#python run_disp.py experiment_dir \ No newline at end of file diff --git a/run_rec.py b/run_rec.py index 2e973bf..3d990c9 100755 --- a/run_rec.py +++ b/run_rec.py @@ -1,90 +1,7 @@ +import reccdi.src_py.run_scripts.run_rec as rec import sys -import signal -import os -import argparse -from multiprocessing import Process -import numpy as np -import reccdi.src_py.controller.reconstruction as rec -import reccdi.src_py.controller.gen_rec as gen_rec -import reccdi.src_py.utilities.utils as ut -import shutil - - -def interrupt_thread(arg): - def int_handler(signal, frame): - open('stopfile', 'a').close() - - def term_handler(signal, frame): - pass - - signal.signal(signal.SIGINT, int_handler) - signal.signal(signal.SIGTERM, term_handler) - signal.pause() - - -def reconstruction(proc, experiment_dir): - if os.path.exists('stopfile'): - os.remove('stopfile') - p = Process(target = interrupt_thread, args = (1,)) - p.start() - - print ('starting reconstruction') - conf = os.path.join(experiment_dir, 'conf', 'config_rec') - print ('rec conf', conf) - config_map = ut.read_config(conf) - if config_map is None: - print ("can't read configuration file") - return - - try: - data_dir = config_map.data_dir - except AttributeError: - data_dir = os.path.join(experiment_dir, 'data') - datafile = os.path.join(data_dir, 'data.npy') - - try: - data = np.load(datafile) - print ('data shape', data.shape) - except: - print ('data file ' + datafile + ' is missing') - return - - try: - generations = config_map.generations - except: - generations = 1 - - if generations > 1: - gen_rec.reconstruction(generations, proc, data, experiment_dir, config_map) - else: - rec.reconstruction(proc, data, experiment_dir, config_map) - print ('done with reconstruction') - - # copy experiment config into last config - conf = os.path.join(experiment_dir, 'conf', 'config_rec') - last = os.path.join('conf', 'last', 'config_rec') - shutil.copy(conf, last) - - p.terminate() - -def main(arg): - parser = argparse.ArgumentParser() - parser.add_argument("proc", help="the processor the code will run on, can be 'cpu', 'opencl', or 'cuda'.") - parser.add_argument("experiment_dir", help="experiment directory.") - args = parser.parse_args() - proc = args.proc - experiment_dir = args.experiment_dir - - reconstruction(proc, experiment_dir) - if __name__ == "__main__": - if os.path.exists('stopfile'): - os.remove('stopfile') - p = Process(target = interrupt_thread, args = (1,)) - p.start() - main(sys.argv[1:]) - p.terminate() + rec.main(sys.argv[1:]) -#python run_rec.py 'opencl' 'config_rec' - +# python run_rec.py 'opencl' experiment_dir From 66998435c06187ff07cdec638ce6c120c4fafb81 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Fri, 11 Jan 2019 15:47:10 -0600 Subject: [PATCH 107/336] Reorganized directories with user scripts --- everything.py => bin/everything.py | 0 everything.sh => bin/everything.sh | 0 .../run_34id_prepare.py | 0 run_data.py => bin/run_data.py | 0 run_disp.py => bin/run_disp.py | 0 run_rec.py => bin/run_rec.py | 0 run_rec.sh => bin/run_rec.sh | 0 cdi_conf_window.py | 856 ------------------ create_default_conf.py | 19 - reccdi/src_py/cyth/bridge_cpu.pyx | 4 +- reccdi/src_py/cyth/bridge_cuda.pyx | 4 +- reccdi/src_py/cyth/bridge_opencl.pyx | 4 +- 12 files changed, 6 insertions(+), 881 deletions(-) rename everything.py => bin/everything.py (100%) rename everything.sh => bin/everything.sh (100%) rename run_34id_prepare.py => bin/run_34id_prepare.py (100%) rename run_data.py => bin/run_data.py (100%) rename run_disp.py => bin/run_disp.py (100%) rename run_rec.py => bin/run_rec.py (100%) rename run_rec.sh => bin/run_rec.sh (100%) delete mode 100644 cdi_conf_window.py delete mode 100644 create_default_conf.py diff --git a/everything.py b/bin/everything.py similarity index 100% rename from everything.py rename to bin/everything.py diff --git a/everything.sh b/bin/everything.sh similarity index 100% rename from everything.sh rename to bin/everything.sh diff --git a/run_34id_prepare.py b/bin/run_34id_prepare.py similarity index 100% rename from run_34id_prepare.py rename to bin/run_34id_prepare.py diff --git a/run_data.py b/bin/run_data.py similarity index 100% rename from run_data.py rename to bin/run_data.py diff --git a/run_disp.py b/bin/run_disp.py similarity index 100% rename from run_disp.py rename to bin/run_disp.py diff --git a/run_rec.py b/bin/run_rec.py similarity index 100% rename from run_rec.py rename to bin/run_rec.py diff --git a/run_rec.sh b/bin/run_rec.sh similarity index 100% rename from run_rec.sh rename to bin/run_rec.sh diff --git a/cdi_conf_window.py b/cdi_conf_window.py deleted file mode 100644 index 20cee87..0000000 --- a/cdi_conf_window.py +++ /dev/null @@ -1,856 +0,0 @@ -import sys -import os -import shutil -from PyQt5.QtCore import * -from PyQt5.QtGui import * -from PyQt5.QtWidgets import * -import reccdi.src_py.run_scripts.run_data as run_dt -import reccdi.src_py.run_scripts.run_rec as run_rc -import reccdi.src_py.run_scripts.run_disp as run_dp -import reccdi.src_py.utilities.utils as ut -import reccdi.src_py.run_scripts.run_34id_prepare as prep - - -def select_file(start_dir): - dialog = QFileDialog(None, 'select dir', start_dir) - dialog.setFileMode(QFileDialog.ExistingFile) - dialog.setSidebarUrls([QUrl.fromLocalFile(start_dir)]) - if dialog.exec_() == QDialog.Accepted: - return str(dialog.selectedFiles()[0]) - - -def select_dir(start_dir): - dialog = QFileDialog(None, 'select dir', start_dir) - dialog.setFileMode(QFileDialog.DirectoryOnly) - dialog.setSidebarUrls([QUrl.fromLocalFile(start_dir)]) - if dialog.exec_() == QDialog.Accepted: - return str(dialog.selectedFiles()[0]) - - -def write_conf(conf_map, dir, file): - # create "temp" file first and then overrite existing configuration file - if not os.path.exists(dir): - os.makedirs(dir) - conf_file = os.path.join(dir, file) - temp_file = os.path.join(dir, 'temp') - with open(temp_file, 'a') as f: - for key in conf_map: - value = conf_map[key] - if len(value) > 0: - f.write(key + ' = ' + conf_map[key] + '\n') - f.close() - shutil.move(temp_file, conf_file) - - -class cdi_conf(QWidget): - def __init__(self, parent=None): - super(cdi_conf, self).__init__(parent) - uplayout = QFormLayout() - - self.set_work_dir_button = QPushButton() - uplayout.addRow("Working Directory", self.set_work_dir_button) - self.Id_widget = QLineEdit() - uplayout.addRow("Reconstruction ID", self.Id_widget) - self.scan_widget = QLineEdit() - uplayout.addRow("scan(s)", self.scan_widget) - self.run_button = QPushButton('run_everything', self) - uplayout.addWidget(self.run_button) - - vbox = QVBoxLayout() - vbox.addLayout(uplayout) - - self.t = cdi_conf_tab(self) - vbox.addWidget(self.t) - - self.setLayout(vbox) - self.setWindowTitle("CDI Reconstruction") - self.set_init() - - self.set_work_dir_button.clicked.connect(self.set_working_dir) - self.Id_widget.textChanged.connect(self.set_id) - self.scan_widget.textChanged.connect(self.set_scan) - self.run_button.clicked.connect(self.run_everything) - - - def set_working_dir(self): - self.working_dir = select_dir(self.working_dir) - self.set_work_dir_button.setStyleSheet("Text-align:left") - self.set_work_dir_button.setText(self.working_dir) - - - def set_id(self): - self.id = str(self.Id_widget.text()) - self.set_experiment_dir() - - - def set_scan(self): - self.scan = str(self.scan_widget.text()) - self.set_experiment_dir() - - - def set_experiment_dir(self): - if self.id is not None and self.scan is not None: - self.exp_id = self.id + '_' + self.scan - self.experiment_dir = os.path.join(self.working_dir, self.exp_id) - - - def run_everything(self): - self.t.prepare() - self.t.model_data() - self.t.reconstruction() - self.t.display() - - - def set_init(self): - self.id = None - self.scan = None - # check for the "conf" directory in the running directory - if os.path.isdir('conf/last'): - self.set_from_conf('conf/last') - elif os.path.isdir('conf/defaults'): - self.set_from_conf('conf/defaults') - - - def set_from_conf(self, dir): - print ('dir', dir) - main_conf = os.path.join(dir, 'config') - conf_map = ut.read_config(main_conf) - # initialize to the value from config file - self.working_dir = conf_map.working_dir - self.t.data_dir = conf_map.data_dir - self.t.specfile = conf_map.specfile - self.t.darkfile = conf_map.darkfile - self.t.whitefile = conf_map.whitefile - # set the text in the window - self.set_work_dir_button.setStyleSheet("Text-align:left") - self.set_work_dir_button.setText(self.working_dir) - self.t.data_dir_button.setStyleSheet("Text-align:left") - self.t.data_dir_button.setText(self.t.data_dir) - self.t.spec_file_button.setStyleSheet("Text-align:left") - self.t.spec_file_button.setText(self.t.specfile) - self.t.dark_file_button.setStyleSheet("Text-align:left") - self.t.dark_file_button.setText(self.t.darkfile) - self.t.white_file_button.setStyleSheet("Text-align:left") - self.t.white_file_button.setText(self.t.whitefile) - - # initialize "Data" tab - data_conf = os.path.join(dir, 'config_data') - conf_map = ut.read_config(data_conf) - try: - self.t.aliens.setText(str(conf_map.aliens).replace(" ", "")) - except AttributeError: - pass - try: - self.t.amp_threshold.setText(str(conf_map.amp_threshold).replace(" ", "")) - except AttributeError: - pass - try: - self.t.binning.setText(str(conf_map.binning).replace(" ", "")) - except AttributeError: - pass - try: - self.t.center_shift.setText(str(conf_map.center_shift).replace(" ", "")) - except AttributeError: - pass - try: - self.t.adjust_dimensions.setText(str(conf_map.adjust_dimensions).replace(" ", "")) - except AttributeError: - pass - - # initialize "Reconstruction" tab - rec_conf = os.path.join(dir, 'config_rec') - conf_map = ut.read_config(rec_conf) - try: - self.t.device.setText(str(conf_map.device).replace(" ", "")) - except AttributeError: - pass - try: - self.t.threads.setText(str(conf_map.threads).replace(" ", "")) - except AttributeError: - pass - try: - self.t.gc.setText(str(conf_map.garbage_trigger).replace(" ", "")) - except AttributeError: - pass - try: - self.t.alg_seq.setText(str(conf_map.algorithm_sequence).replace(" ", "")) - except AttributeError: - pass - try: - self.t.beta.setText(str(conf_map.beta).replace(" ", "")) - except AttributeError: - pass - - for feat_id in self.t.features.feature_dir: - self.t.features.feature_dir[feat_id].init_config(conf_map) - - # initialize "Display" tab - disp_conf = os.path.join(dir, 'config_disp') - conf_map = ut.read_config(disp_conf) - try: - self.t.crop.setText(str(conf_map.crop).replace(" ", "")) - except AttributeError: - pass - - -class cdi_conf_tab(QTabWidget): - def __init__(self, main_win, parent=None): - super(cdi_conf_tab, self).__init__(parent) - self.main_win = main_win - self.tab1 = QWidget() - self.tab2 = QWidget() - self.tab3 = QWidget() - self.tab4 = QWidget() - - self.addTab(self.tab1, "34ID prep") - self.addTab(self.tab2, "Data") - self.addTab(self.tab3, "Reconstruction") - self.addTab(self.tab4, "Display") - self.tab1UI() - self.tab2UI() - self.tab3UI() - self.tab4UI() - - - def tab1UI(self): - layout = QFormLayout() - self.data_dir_button = QPushButton() - layout.addRow("data directory", self.data_dir_button) - self.spec_file_button = QPushButton() - layout.addRow("spec file", self.spec_file_button) - self.dark_file_button = QPushButton() - layout.addRow("darkfield file", self.dark_file_button) - self.white_file_button = QPushButton() - layout.addRow("whitefield file", self.white_file_button) - self.prep_button = QPushButton('prepare', self) - layout.addWidget(self.prep_button) - self.tab1.setLayout(layout) - - self.prep_button.clicked.connect(self.prepare) - self.data_dir_button.clicked.connect(self.set_data_dir) - self.spec_file_button.clicked.connect(self.set_spec_file) - self.dark_file_button.clicked.connect(self.set_dark_file) - self.white_file_button.clicked.connect(self.set_white_file) - - - def tab2UI(self): - layout = QFormLayout() - self.aliens = QLineEdit() - layout.addRow("aliens", self.aliens) - self.amp_threshold = QLineEdit() - layout.addRow("amp_threshold", self.amp_threshold) - self.binning = QLineEdit() - layout.addRow("binning", self.binning) - self.center_shift = QLineEdit() - layout.addRow("center_shift", self.center_shift) - self.adjust_dimensions = QLineEdit() - layout.addRow("adjust_dimensions", self.adjust_dimensions) - self.config_data_button = QPushButton('model data', self) - layout.addWidget(self.config_data_button) - self.tab2.setLayout(layout) - - # this will create config_data file and run data script - # to generate data ready for recondtruction - self.config_data_button.clicked.connect(self.model_data) - - - def tab3UI(self): - layout = QVBoxLayout() - ulayout = QFormLayout() - llayout = QHBoxLayout() - self.cont = QCheckBox() - ulayout.addRow("continuation", self.cont) - self.cont.setChecked(False) - self.device = QLineEdit() - ulayout.addRow("device(s)", self.device) - self.threads = QLineEdit() - ulayout.addRow("number of threads", self.threads) - self.gc = QLineEdit() - ulayout.addRow("gc triggers", self.gc) - self.alg_seq = QLineEdit() - ulayout.addRow("algorithm sequence", self.alg_seq) - # TODO add logic to show this only if HIO is in sequence - self.beta = QLineEdit() - ulayout.addRow("beta", self.beta) - self.rec_default_button = QPushButton('set to defaults', self) - ulayout.addWidget(self.rec_default_button) - - layout.addLayout(ulayout) - layout.addLayout(llayout) - self.features = Features(self, llayout) - self.config_rec_button = QPushButton('run reconstruction', self) - layout.addWidget(self.config_rec_button) - self.tab3.setAutoFillBackground(True) - self.tab3.setLayout(layout) - - self.config_rec_button.clicked.connect(self.reconstruction) - self.cont.stateChanged.connect(lambda: self.toggle_cont(ulayout)) - self.rec_default_button.clicked.connect(self.rec_default) - - - def toggle_cont(self, layout): - cb_label = layout.labelForField(self.cont) - if self.cont.isChecked(): - self.cont_dir = QLineEdit() - layout.insertRow(2, "continue dir", self.cont_dir) - cb_label.setStyleSheet('color: black') - else: - label = layout.labelForField(self.cont_dir) - self.cont_dir.setParent(None) - label.setParent(None) - cb_label.setStyleSheet('color: grey') - - - def tab4UI(self): - layout = QFormLayout() - self.crop = QLineEdit() - layout.addRow("crop", self.crop) - self.config_disp_button = QPushButton('process display', self) - layout.addWidget(self.config_disp_button) - self.tab4.setLayout(layout) - - self.config_disp_button.clicked.connect(self.display) - - - def set_spec_file(self): - self.specfile = select_file(self.specfile) - self.spec_file_button.setStyleSheet("Text-align:left") - self.spec_file_button.setText(self.specfile) - - - def set_dark_file(self): - self.darkfile = select_file(self.darkfile) - self.dark_file_button.setStyleSheet("Text-align:left") - self.dark_file_button.setText(self.darkfile) - - - def set_white_file(self): - self.whitefile = select_file(self.whitefile) - self.white_file_button.setStyleSheet("Text-align:left") - self.white_file_button.setText(self.whitefile) - - - def set_data_dir(self): - self.data_dir = select_dir(self.data_dir) - self.data_dir_button.setStyleSheet("Text-align:left") - self.data_dir_button.setText(self.data_dir) - - - def prepare(self): - scan = str(self.main_win.scan_widget.text()) - if self.main_win.working_dir is None or \ - self.main_win.id is None or\ - scan is None or \ - self.data_dir is None or \ - self.specfile is None: - print ('enter all parameters: working_dir, id, scan, data_dir, specfile') - return - - try: - # after checking that scan is entered convert it to list of int - scan_range = scan.split('-') - for i in range(len(scan_range)): - scan_range[i] = int(scan_range[i]) - except: - print('enter numeric values for scan range') - - conf_map = {} - if len(self.main_win.working_dir) > 0: - conf_map['working_dir'] = '"' + str(self.main_win.working_dir) + '"' - else: - print ("working_dir not defined") - if len(self.data_dir) > 0: - conf_map['data_dir'] = '"' + str(self.data_dir) + '"' - else: - print ("data_dir not defined") - if len(self.specfile) > 0: - conf_map['specfile'] = '"' + str(self.specfile) + '"' - else: - print ("specfile not defined") - if len(self.darkfile) > 0: - conf_map['darkfile'] = '"' + str(self.darkfile) + '"' - else: - print ("darkfile not defined") - if len(self.whitefile) > 0: - conf_map['whitefile'] = '"' + str(self.whitefile) + '"' - else: - print ("whitefile not defined") - - conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') - write_conf(conf_map, conf_dir, 'config') - - prep.prepare(self.main_win.working_dir, self.main_win.exp_id, scan_range, self.data_dir, self.specfile, self.darkfile, self.whitefile) - - - def model_data(self): - conf_map = {} - if len(self.aliens.text()) > 0: - conf_map['aliens'] = str(self.aliens.text()).replace('\n','') - else: - print ("aliens not defined") - if len(self.amp_threshold.text()) > 0: - conf_map['amp_threshold'] = str(self.amp_threshold.text()) - else: - print ('amplitude threshold not defined. Quiting operation.') - return - if len(self.binning.text()) > 0: - conf_map['binning'] = str(self.binning.text()).replace('\n','') - else: - print ("binning not defined") - if len(self.center_shift.text()) > 0: - conf_map['center_shift'] = str(self.center_shift.text()).replace('\n','') - else: - print ("center shift not defined") - if len(self.adjust_dimensions.text()) > 0: - conf_map['adjust_dimensions'] = str(self.adjust_dimensions.text()).replace('\n','') - else: - print ("adjust dimensions not defined") - - #self.create_config('config_data', conf_map) - conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') - write_conf(conf_map, conf_dir, 'config_data') - - run_dt.data(self.main_win.experiment_dir) - - - def reconstruction(self): - conf_map = {} - conf_map['threads'] = str(self.threads.text()) - conf_map['device'] = str(self.device.text()).replace('\n','') - conf_map['garbage_trigger'] = str(self.gc.text()).replace('\n','') - conf_map['algorithm_sequence'] = str(self.alg_seq.text()).replace('\n','') - conf_map['beta'] = str(self.beta.text()) - if self.cont.isChecked(): - conf_map['continue_dir'] = str(self.cont_dir.text()) - - for feat_id in self.features.feature_dir: - self.features.feature_dir[feat_id].add_config(conf_map) - - #self.create_config('config_rec', conf_map) - conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') - write_conf(conf_map, conf_dir, 'config_rec') - - run_rc.reconstruction('cpu', self.main_win.experiment_dir) - - - def display(self): - if len(self.crop.text()) == 0: - print ('crop not configured') - - disp_conf_file = os.path.join(self.main_win.experiment_dir, 'conf', 'config_disp') - temp_file = os.path.join(self.main_win.experiment_dir, 'conf', 'temp') - with open(temp_file, 'a') as temp: - try: - with open(disp_conf_file, 'r') as f: - for line in f: - if not line.startswith('crop') and not line.startswith('binning'): - temp.write(line) - f.close() - except: - pass - - if len(self.crop.text()) != 0: - temp.write('crop = ' + str(self.crop.text()) + '\n') - - temp.close() - shutil.move(temp_file, disp_conf_file) - - run_dp.to_vtk(self.main_win.experiment_dir) - - - def rec_default(self): - if self.main_win.working_dir is None or self.main_win.id is None or \ - len(self.main_win.working_dir) == 0 or len(self.main_win.id) == 0: - print ('Working Directory or Reconstruction ID not configured') - else: - self.threads.setText('1') - self.device.setText('(3)') - self.gc.setText('(1000)') - self.alg_seq.setText('((3,("ER",20),("HIO",180)),(1,("ER",20)))') - self.beta.setText('.9') - self.cont.setChecked(False) - - -class Feature(object): - def __init__(self): - self.stack = QWidget() - - - def stackUI(self, item, feats): - layout = QFormLayout() - self.active = QCheckBox("active") - self.active.setChecked(True) - layout.addWidget(self.active) - self.toggle(layout, item, feats) - self.stack.setLayout(layout) - self.active.stateChanged.connect(lambda: self.toggle(layout, item, feats)) - - - def toggle(self, layout, item, feats): - if self.active.isChecked(): - self.fill_active(layout) - - self.default_button = QPushButton('set to defaults', feats) - layout.addWidget(self.default_button) - self.default_button.clicked.connect(self.rec_default) - - item.setForeground(QColor('black')); - else: - for i in reversed(range(1, layout.count())): - layout.itemAt(i).widget().setParent(None) - item.setForeground(QColor('grey')); - - def fill_active(self, layout): - pass - - - def rec_default(self): - pass - - - def add_config(self, conf_map): - if self.active.isChecked(): - self.add_feat_conf(conf_map) - - def add_feat_conf(self, conf_map): - pass - - - def init_config(self, conf_map): - pass - - -class GA(Feature): - def __init__(self): - super(GA, self).__init__() - self.id = 'GA' - - # override setting the active to set it False - def stackUI(self, item, feats): - super(GA, self).stackUI(item, feats) - self.active.setChecked(False) - - - def fill_active(self, layout): - self.generations = QLineEdit() - layout.addRow("generations", self.generations) - self.lr_generations = QLineEdit() - layout.addRow("low resolution generations", self.lr_generations) - self.lr_sigma_alg = QLineEdit() - layout.addRow("low resolution sigma algorithm", self.lr_sigma_alg) - self.lr_sigmas = QLineEdit() - layout.addRow("low resolution sigmas", self.lr_sigmas) - self.lr_sigma_min = QLineEdit() - layout.addRow("low resolution sigma min", self.lr_sigma_min) - self.lr_sigma_max = QLineEdit() - layout.addRow("low resolution sigma max", self.lr_sigma_max) - self.lr_scale_power = QLineEdit() - layout.addRow("low resolution scale power", self.lr_scale_power) - self.lr_algorithm = QLineEdit() - layout.addRow("low resolution algorithm", self.lr_algorithm) - - - def add_feat_conf(self, conf_map): - conf_map['generations'] = str(self.generations.text()) - conf_map['low_resolution_generations'] = str(self.lr_generations.text()) - conf_map['low_resolution_sigma_alg'] = str(self.lr_sigma_alg.text()) - conf_map['low_resolution_sigmas'] = str(self.lr_sigmas.text()) - conf_map['low_resolution_sigma_min'] = str(self.lr_sigma_min.text()) - conf_map['low_resolution_sigma_max'] = str(self.lr_sigma_max.text()) - conf_map['low_resolution_scale_power'] = str(self.lr_scale_power.text()) - conf_map['low_resolution_alg'] = str(self.lr_algorithm.text()) - - -class low_resolution(Feature): - def __init__(self): - super(low_resolution, self).__init__() - self.id = 'low resolution' - - - def init_config(self, conf_map): - try: - self.res_triggers.setText(str(conf_map.resolution_trigger).replace(" ", "")) - except AttributeError: - pass - try: - self.sigma_range.setText(str(conf_map.iter_res_sigma_range).replace(" ", "")) - except AttributeError: - pass - try: - self.det_range.setText(str(conf_map.iter_res_det_range).replace(" ", "")) - except AttributeError: - pass - - - def fill_active(self, layout): - self.res_triggers = QLineEdit() - layout.addRow("low resolution triggers", self.res_triggers) - self.sigma_range = QLineEdit() - layout.addRow("sigma range", self.sigma_range) - self.det_range = QLineEdit() - layout.addRow("det range", self.det_range) - - - def rec_default(self): - #TODO add to accept fractions in trigger, so the default will be (.5,1) - self.res_triggers.setText('(0, 1, 320)') - self.sigma_range.setText('(2.0)') - self.det_range.setText('(.7)') - - - def add_feat_conf(self, conf_map): - conf_map['resolution_trigger'] = str(self.res_triggers.text()).replace('\n','') - conf_map['iter_res_sigma_range'] = str(self.sigma_range.text()).replace('\n','') - conf_map['iter_res_det_range'] = str(self.det_range.text()).replace('\n','') - - -class amplitude_support(Feature): - def __init__(self): - super(amplitude_support, self).__init__() - self.id = 'amplitude support' - - - def init_config(self, conf_map): - try: - self.support_triggers.setText(str(conf_map.amp_support_trigger).replace(" ", "")) - except AttributeError: - pass - try: - self.support_type.setText(str(conf_map.support_type).replace(" ", "")) - except AttributeError: - pass - try: - self.support_area.setText(str(conf_map.support_area).replace(" ", "")) - except AttributeError: - pass - try: - self.threshold.setText(str(conf_map.support_threshold).replace(" ", "")) - except AttributeError: - pass - try: - self.sigma.setText(str(conf_map.support_sigma).replace(" ", "")) - except AttributeError: - pass - - - def fill_active(self, layout): - self.support_triggers = QLineEdit() - layout.addRow("support triggers", self.support_triggers) - self.support_type = QLineEdit() - layout.addRow("support algorithm", self.support_type) - self.support_area = QLineEdit() - layout.addRow("starting support area", self.support_area) - self.threshold = QLineEdit() - layout.addRow("threshold", self.threshold) - self.sigma = QLineEdit() - layout.addRow("sigma", self.sigma) - - - def rec_default(self): - self.support_triggers.setText('(1,1)') - self.support_type.setText('"GAUSS"') - self.support_area.setText('[.5,.5,.5]') - self.sigma.setText('1.0') - self.threshold.setText('0.1') - - - def add_feat_conf(self, conf_map): - conf_map['amp_support_trigger'] = str(self.support_triggers.text()).replace('\n','') - conf_map['support_type'] = '"' + str(self.support_type.text()) + '"' - conf_map['support_threshold'] = str(self.threshold.text()) - conf_map['support_sigma'] = str(self.sigma.text()) - conf_map['support_area'] = str(self.support_area.text()).replace('\n','') - - -class phase_support(Feature): - def __init__(self): - super(phase_support, self).__init__() - self.id = 'phase support' - - - def init_config(self, conf_map): - try: - self.phase_triggers.setText(str(conf_map.phase_support_trigger).replace(" ", "")) - except AttributeError: - pass - try: - self.phase_min.setText(str(conf_map.phase_min).replace(" ", "")) - except AttributeError: - pass - try: - self.phase_max.setText(str(conf_map.phase_max).replace(" ", "")) - except AttributeError: - pass - - - def fill_active(self, layout): - self.phase_triggers = QLineEdit() - layout.addRow("phase support triggers", self.phase_triggers) - self.phase_min = QLineEdit() - layout.addRow("phase minimum", self.phase_min) - self.phase_max = QLineEdit() - layout.addRow("phase maximum", self.phase_max) - - - def rec_default(self): - self.phase_triggers.setText('(0,1,20)') - self.phase_min.setText('-1.57') - self.phase_max.setText('1.57') - - - def add_feat_conf(self, conf_map): - conf_map['phase_support_trigger'] = str(self.phase_triggers.text()).replace('\n','') - conf_map['phase_min'] = str(self.phase_min.text()) - conf_map['phase_max'] = str(self.phase_max.text()) - - -class pcdi(Feature): - def __init__(self): - super(pcdi, self).__init__() - self.id = 'pcdi' - - - def init_config(self, conf_map): - try: - self.pcdi_triggers.setText(str(conf_map.pcdi_trigger).replace(" ", "")) - except AttributeError: - pass - try: - self.pcdi_type.setText(str(conf_map.partial_coherence_type).replace(" ", "")) - except AttributeError: - pass - try: - self.pcdi_iter.setText(str(conf_map.partial_coherence_iteration_num).replace(" ", "")) - except AttributeError: - pass - try: - self.pcdi_normalize.setText(str(conf_map.partial_coherence_normalize).replace(" ", "")) - except AttributeError: - pass - try: - self.pcdi_roi.setText(str(conf_map.partial_coherence_roi).replace(" ", "")) - except AttributeError: - pass - - - def fill_active(self, layout): - self.pcdi_triggers = QLineEdit() - layout.addRow("pcdi triggers", self.pcdi_triggers) - self.pcdi_type = QLineEdit() - layout.addRow("partial coherence algorithm", self.pcdi_type) - self.pcdi_iter = QLineEdit() - layout.addRow("pcdi iteration number", self.pcdi_iter) - self.pcdi_normalize = QLineEdit() - layout.addRow("normalize", self.pcdi_normalize) - self.pcdi_roi = QLineEdit() - layout.addRow("pcdi kernel area", self.pcdi_roi) - - - def rec_default(self): - self.pcdi_triggers.setText('(50,50)') - self.pcdi_type.setText('"LUCY"') - self.pcdi_iter.setText('20') - self.pcdi_normalize.setText('true') - self.pcdi_roi.setText('[32,32,16]') - - - def add_feat_conf(self, conf_map): - conf_map['pcdi_trigger'] = str(self.pcdi_triggers.text()).replace('\n','') - conf_map['partial_coherence_type'] = '"' + str(self.pcdi_type.text()) + '"' - conf_map['partial_coherence_iteration_num'] = str(self.pcdi_iter.text()) - conf_map['partial_coherence_normalize'] = str(self.pcdi_normalize.text()) - conf_map['partial_coherence_roi'] = str(self.pcdi_roi.text()).replace('\n','') - - -class twin(Feature): - def __init__(self): - super(twin, self).__init__() - self.id = 'twin' - - - def init_config(self, conf_map): - try: - self.twin_triggers.setText(str(conf_map.twin_trigger).replace(" ", "")) - except AttributeError: - pass - - - def fill_active(self, layout): - self.twin_triggers = QLineEdit() - layout.addRow("twin triggers", self.twin_triggers) - - - def rec_default(self): - self.twin_triggers.setText('(2)') - - - def add_feat_conf(self, conf_map): - conf_map['twin_trigger'] = str(self.twin_triggers.text()).replace('\n','') - - -class average(Feature): - def __init__(self): - super(average, self).__init__() - self.id = 'average' - - - def init_config(self, conf_map): - try: - self.average_triggers.setText(str(conf_map.average_trigger).replace(" ", "")) - except AttributeError: - pass - - - def fill_active(self, layout): - self.average_triggers = QLineEdit() - layout.addRow("average triggers", self.average_triggers) - - - def rec_default(self): - self.average_triggers.setText('(-400,1)') - - - def add_feat_conf(self, conf_map): - conf_map['avarage_trigger'] = str(self.average_triggers.text()).replace('\n','') - - - -class Features(QWidget): - def __init__(self, tab, layout): - super(Features, self).__init__() - feature_ids = ['GA', 'low resolution', 'amplitude support', 'phase support', 'pcdi', 'twin', 'average'] - self.leftlist = QListWidget() - self.feature_dir = {'GA' : GA(), - 'low resolution' : low_resolution(), - 'amplitude support' : amplitude_support(), - 'phase support' : phase_support(), - 'pcdi' : pcdi(), - 'twin' : twin(), - 'average' : average()} - self.Stack = QStackedWidget(self) - for i in range(len(feature_ids)): - id = feature_ids[i] - self.leftlist.insertItem(i, id) - feature = self.feature_dir[id] - feature.stackUI(self.leftlist.item(i), self) - self.Stack.addWidget(feature.stack) - - layout.addWidget(self.leftlist) - layout.addWidget(self.Stack) - - self.leftlist.currentRowChanged.connect(self.display) - - - def display(self, i): - self.Stack.setCurrentIndex(i) - - -def main(): - app = QApplication(sys.argv) - ex = cdi_conf() - ex.show() - sys.exit(app.exec_()) - - -if __name__ == '__main__': - main() \ No newline at end of file diff --git a/create_default_conf.py b/create_default_conf.py deleted file mode 100644 index 572414e..0000000 --- a/create_default_conf.py +++ /dev/null @@ -1,19 +0,0 @@ -import argparse -import sys -import aps_34id.prep as prep - - -def main(arg): - parser = argparse.ArgumentParser() - parser.add_argument("working_dir", help="working directory") - parser.add_argument("id", help="name of the experiment/data reconstruction") - - args = parser.parse_args() - - prep.create_default_config(args.working_dir, args.id) - - -if __name__ == "__main__": - main(sys.argv[1:]) - -# python create_default_config.py '/home/beams/CXDUSER/CDI/cdi-master/test', 'A_48-60' diff --git a/reccdi/src_py/cyth/bridge_cpu.pyx b/reccdi/src_py/cyth/bridge_cpu.pyx index 6ea3191..a330da0 100644 --- a/reccdi/src_py/cyth/bridge_cpu.pyx +++ b/reccdi/src_py/cyth/bridge_cpu.pyx @@ -6,10 +6,10 @@ # distutils: language = c++ -# distutils: include_dirs = ['reccdi/include', 'AF_DIR/include', 'LC_DIR/include',] +# distutils: include_dirs = ['reccdi/include', '/local/af/include', '/local/libconfig/include',] # distutils: sources = ['reccdi/src_cpp/algorithm.cpp', 'reccdi/src_cpp/bridge.cpp', 'reccdi/src_cpp/manager.cpp', 'reccdi/src_cpp/parameters.cpp', 'reccdi/src_cpp/pcdi.cpp', 'reccdi/src_cpp/resolution.cpp', 'reccdi/src_cpp/state.cpp', 'reccdi/src_cpp/support.cpp', 'reccdi/src_cpp/util.cpp', 'reccdi/src_cpp/worker.cpp'] # distutils: libraries = ['afcpu', 'config++',] -# distutils: library_dirs = ['AF_DIR/lib', 'LC_DIR/lib',] +# distutils: library_dirs = ['/local/af/lib', '/local/libconfig/lib',] from libcpp.vector cimport vector from libcpp.string cimport string diff --git a/reccdi/src_py/cyth/bridge_cuda.pyx b/reccdi/src_py/cyth/bridge_cuda.pyx index c8b8610..6aff7c6 100755 --- a/reccdi/src_py/cyth/bridge_cuda.pyx +++ b/reccdi/src_py/cyth/bridge_cuda.pyx @@ -6,10 +6,10 @@ # distutils: language = c++ -# distutils: include_dirs = ['reccdi/include', 'AF_DIR/include', 'LC_DIR/include',] +# distutils: include_dirs = ['reccdi/include', '/local/af/include', '/local/libconfig/include',] # distutils: sources = ['reccdi/src_cpp/algorithm.cpp', 'reccdi/src_cpp/bridge.cpp', 'reccdi/src_cpp/manager.cpp', 'reccdi/src_cpp/parameters.cpp', 'reccdi/src_cpp/pcdi.cpp', 'reccdi/src_cpp/resolution.cpp', 'reccdi/src_cpp/state.cpp', 'reccdi/src_cpp/support.cpp', 'reccdi/src_cpp/util.cpp', 'reccdi/src_cpp/worker.cpp'] # distutils: libraries = ['afcuda', 'config++',] -# distutils: library_dirs = ['AF_DIR/lib', 'LC_DIR/lib',] +# distutils: library_dirs = ['/local/af/lib', '/local/libconfig/lib',] from libcpp.vector cimport vector from libcpp.string cimport string diff --git a/reccdi/src_py/cyth/bridge_opencl.pyx b/reccdi/src_py/cyth/bridge_opencl.pyx index 1a043b8..78800bd 100755 --- a/reccdi/src_py/cyth/bridge_opencl.pyx +++ b/reccdi/src_py/cyth/bridge_opencl.pyx @@ -6,10 +6,10 @@ # distutils: language = c++ -# distutils: include_dirs = ['reccdi/include', 'AF_DIR/include', 'LC_DIR/include',] +# distutils: include_dirs = ['reccdi/include', '/local/af/include', '/local/libconfig/include',] # distutils: sources = ['reccdi/src_cpp/algorithm.cpp', 'reccdi/src_cpp/bridge.cpp', 'reccdi/src_cpp/manager.cpp', 'reccdi/src_cpp/parameters.cpp', 'reccdi/src_cpp/pcdi.cpp', 'reccdi/src_cpp/resolution.cpp', 'reccdi/src_cpp/state.cpp', 'reccdi/src_cpp/support.cpp', 'reccdi/src_cpp/util.cpp', 'reccdi/src_cpp/worker.cpp'] # distutils: libraries = ['afopencl', 'config++',] -# distutils: library_dirs = ['AF_DIR/lib', 'LC_DIR/lib',] +# distutils: library_dirs = ['/local/af/lib', '/local/libconfig/lib',] from libcpp.vector cimport vector from libcpp.string cimport string From 83ee6838a195599472070368060ac6d9a4b24e8b Mon Sep 17 00:00:00 2001 From: bfrosik Date: Fri, 11 Jan 2019 15:53:58 -0600 Subject: [PATCH 108/336] fixed overriding --- bin/cdi_conf_window.py | 856 +++++++++++++++++++++++++++ reccdi/src_py/cyth/bridge_cpu.pyx | 4 +- reccdi/src_py/cyth/bridge_cuda.pyx | 4 +- reccdi/src_py/cyth/bridge_opencl.pyx | 4 +- 4 files changed, 862 insertions(+), 6 deletions(-) create mode 100644 bin/cdi_conf_window.py diff --git a/bin/cdi_conf_window.py b/bin/cdi_conf_window.py new file mode 100644 index 0000000..20cee87 --- /dev/null +++ b/bin/cdi_conf_window.py @@ -0,0 +1,856 @@ +import sys +import os +import shutil +from PyQt5.QtCore import * +from PyQt5.QtGui import * +from PyQt5.QtWidgets import * +import reccdi.src_py.run_scripts.run_data as run_dt +import reccdi.src_py.run_scripts.run_rec as run_rc +import reccdi.src_py.run_scripts.run_disp as run_dp +import reccdi.src_py.utilities.utils as ut +import reccdi.src_py.run_scripts.run_34id_prepare as prep + + +def select_file(start_dir): + dialog = QFileDialog(None, 'select dir', start_dir) + dialog.setFileMode(QFileDialog.ExistingFile) + dialog.setSidebarUrls([QUrl.fromLocalFile(start_dir)]) + if dialog.exec_() == QDialog.Accepted: + return str(dialog.selectedFiles()[0]) + + +def select_dir(start_dir): + dialog = QFileDialog(None, 'select dir', start_dir) + dialog.setFileMode(QFileDialog.DirectoryOnly) + dialog.setSidebarUrls([QUrl.fromLocalFile(start_dir)]) + if dialog.exec_() == QDialog.Accepted: + return str(dialog.selectedFiles()[0]) + + +def write_conf(conf_map, dir, file): + # create "temp" file first and then overrite existing configuration file + if not os.path.exists(dir): + os.makedirs(dir) + conf_file = os.path.join(dir, file) + temp_file = os.path.join(dir, 'temp') + with open(temp_file, 'a') as f: + for key in conf_map: + value = conf_map[key] + if len(value) > 0: + f.write(key + ' = ' + conf_map[key] + '\n') + f.close() + shutil.move(temp_file, conf_file) + + +class cdi_conf(QWidget): + def __init__(self, parent=None): + super(cdi_conf, self).__init__(parent) + uplayout = QFormLayout() + + self.set_work_dir_button = QPushButton() + uplayout.addRow("Working Directory", self.set_work_dir_button) + self.Id_widget = QLineEdit() + uplayout.addRow("Reconstruction ID", self.Id_widget) + self.scan_widget = QLineEdit() + uplayout.addRow("scan(s)", self.scan_widget) + self.run_button = QPushButton('run_everything', self) + uplayout.addWidget(self.run_button) + + vbox = QVBoxLayout() + vbox.addLayout(uplayout) + + self.t = cdi_conf_tab(self) + vbox.addWidget(self.t) + + self.setLayout(vbox) + self.setWindowTitle("CDI Reconstruction") + self.set_init() + + self.set_work_dir_button.clicked.connect(self.set_working_dir) + self.Id_widget.textChanged.connect(self.set_id) + self.scan_widget.textChanged.connect(self.set_scan) + self.run_button.clicked.connect(self.run_everything) + + + def set_working_dir(self): + self.working_dir = select_dir(self.working_dir) + self.set_work_dir_button.setStyleSheet("Text-align:left") + self.set_work_dir_button.setText(self.working_dir) + + + def set_id(self): + self.id = str(self.Id_widget.text()) + self.set_experiment_dir() + + + def set_scan(self): + self.scan = str(self.scan_widget.text()) + self.set_experiment_dir() + + + def set_experiment_dir(self): + if self.id is not None and self.scan is not None: + self.exp_id = self.id + '_' + self.scan + self.experiment_dir = os.path.join(self.working_dir, self.exp_id) + + + def run_everything(self): + self.t.prepare() + self.t.model_data() + self.t.reconstruction() + self.t.display() + + + def set_init(self): + self.id = None + self.scan = None + # check for the "conf" directory in the running directory + if os.path.isdir('conf/last'): + self.set_from_conf('conf/last') + elif os.path.isdir('conf/defaults'): + self.set_from_conf('conf/defaults') + + + def set_from_conf(self, dir): + print ('dir', dir) + main_conf = os.path.join(dir, 'config') + conf_map = ut.read_config(main_conf) + # initialize to the value from config file + self.working_dir = conf_map.working_dir + self.t.data_dir = conf_map.data_dir + self.t.specfile = conf_map.specfile + self.t.darkfile = conf_map.darkfile + self.t.whitefile = conf_map.whitefile + # set the text in the window + self.set_work_dir_button.setStyleSheet("Text-align:left") + self.set_work_dir_button.setText(self.working_dir) + self.t.data_dir_button.setStyleSheet("Text-align:left") + self.t.data_dir_button.setText(self.t.data_dir) + self.t.spec_file_button.setStyleSheet("Text-align:left") + self.t.spec_file_button.setText(self.t.specfile) + self.t.dark_file_button.setStyleSheet("Text-align:left") + self.t.dark_file_button.setText(self.t.darkfile) + self.t.white_file_button.setStyleSheet("Text-align:left") + self.t.white_file_button.setText(self.t.whitefile) + + # initialize "Data" tab + data_conf = os.path.join(dir, 'config_data') + conf_map = ut.read_config(data_conf) + try: + self.t.aliens.setText(str(conf_map.aliens).replace(" ", "")) + except AttributeError: + pass + try: + self.t.amp_threshold.setText(str(conf_map.amp_threshold).replace(" ", "")) + except AttributeError: + pass + try: + self.t.binning.setText(str(conf_map.binning).replace(" ", "")) + except AttributeError: + pass + try: + self.t.center_shift.setText(str(conf_map.center_shift).replace(" ", "")) + except AttributeError: + pass + try: + self.t.adjust_dimensions.setText(str(conf_map.adjust_dimensions).replace(" ", "")) + except AttributeError: + pass + + # initialize "Reconstruction" tab + rec_conf = os.path.join(dir, 'config_rec') + conf_map = ut.read_config(rec_conf) + try: + self.t.device.setText(str(conf_map.device).replace(" ", "")) + except AttributeError: + pass + try: + self.t.threads.setText(str(conf_map.threads).replace(" ", "")) + except AttributeError: + pass + try: + self.t.gc.setText(str(conf_map.garbage_trigger).replace(" ", "")) + except AttributeError: + pass + try: + self.t.alg_seq.setText(str(conf_map.algorithm_sequence).replace(" ", "")) + except AttributeError: + pass + try: + self.t.beta.setText(str(conf_map.beta).replace(" ", "")) + except AttributeError: + pass + + for feat_id in self.t.features.feature_dir: + self.t.features.feature_dir[feat_id].init_config(conf_map) + + # initialize "Display" tab + disp_conf = os.path.join(dir, 'config_disp') + conf_map = ut.read_config(disp_conf) + try: + self.t.crop.setText(str(conf_map.crop).replace(" ", "")) + except AttributeError: + pass + + +class cdi_conf_tab(QTabWidget): + def __init__(self, main_win, parent=None): + super(cdi_conf_tab, self).__init__(parent) + self.main_win = main_win + self.tab1 = QWidget() + self.tab2 = QWidget() + self.tab3 = QWidget() + self.tab4 = QWidget() + + self.addTab(self.tab1, "34ID prep") + self.addTab(self.tab2, "Data") + self.addTab(self.tab3, "Reconstruction") + self.addTab(self.tab4, "Display") + self.tab1UI() + self.tab2UI() + self.tab3UI() + self.tab4UI() + + + def tab1UI(self): + layout = QFormLayout() + self.data_dir_button = QPushButton() + layout.addRow("data directory", self.data_dir_button) + self.spec_file_button = QPushButton() + layout.addRow("spec file", self.spec_file_button) + self.dark_file_button = QPushButton() + layout.addRow("darkfield file", self.dark_file_button) + self.white_file_button = QPushButton() + layout.addRow("whitefield file", self.white_file_button) + self.prep_button = QPushButton('prepare', self) + layout.addWidget(self.prep_button) + self.tab1.setLayout(layout) + + self.prep_button.clicked.connect(self.prepare) + self.data_dir_button.clicked.connect(self.set_data_dir) + self.spec_file_button.clicked.connect(self.set_spec_file) + self.dark_file_button.clicked.connect(self.set_dark_file) + self.white_file_button.clicked.connect(self.set_white_file) + + + def tab2UI(self): + layout = QFormLayout() + self.aliens = QLineEdit() + layout.addRow("aliens", self.aliens) + self.amp_threshold = QLineEdit() + layout.addRow("amp_threshold", self.amp_threshold) + self.binning = QLineEdit() + layout.addRow("binning", self.binning) + self.center_shift = QLineEdit() + layout.addRow("center_shift", self.center_shift) + self.adjust_dimensions = QLineEdit() + layout.addRow("adjust_dimensions", self.adjust_dimensions) + self.config_data_button = QPushButton('model data', self) + layout.addWidget(self.config_data_button) + self.tab2.setLayout(layout) + + # this will create config_data file and run data script + # to generate data ready for recondtruction + self.config_data_button.clicked.connect(self.model_data) + + + def tab3UI(self): + layout = QVBoxLayout() + ulayout = QFormLayout() + llayout = QHBoxLayout() + self.cont = QCheckBox() + ulayout.addRow("continuation", self.cont) + self.cont.setChecked(False) + self.device = QLineEdit() + ulayout.addRow("device(s)", self.device) + self.threads = QLineEdit() + ulayout.addRow("number of threads", self.threads) + self.gc = QLineEdit() + ulayout.addRow("gc triggers", self.gc) + self.alg_seq = QLineEdit() + ulayout.addRow("algorithm sequence", self.alg_seq) + # TODO add logic to show this only if HIO is in sequence + self.beta = QLineEdit() + ulayout.addRow("beta", self.beta) + self.rec_default_button = QPushButton('set to defaults', self) + ulayout.addWidget(self.rec_default_button) + + layout.addLayout(ulayout) + layout.addLayout(llayout) + self.features = Features(self, llayout) + self.config_rec_button = QPushButton('run reconstruction', self) + layout.addWidget(self.config_rec_button) + self.tab3.setAutoFillBackground(True) + self.tab3.setLayout(layout) + + self.config_rec_button.clicked.connect(self.reconstruction) + self.cont.stateChanged.connect(lambda: self.toggle_cont(ulayout)) + self.rec_default_button.clicked.connect(self.rec_default) + + + def toggle_cont(self, layout): + cb_label = layout.labelForField(self.cont) + if self.cont.isChecked(): + self.cont_dir = QLineEdit() + layout.insertRow(2, "continue dir", self.cont_dir) + cb_label.setStyleSheet('color: black') + else: + label = layout.labelForField(self.cont_dir) + self.cont_dir.setParent(None) + label.setParent(None) + cb_label.setStyleSheet('color: grey') + + + def tab4UI(self): + layout = QFormLayout() + self.crop = QLineEdit() + layout.addRow("crop", self.crop) + self.config_disp_button = QPushButton('process display', self) + layout.addWidget(self.config_disp_button) + self.tab4.setLayout(layout) + + self.config_disp_button.clicked.connect(self.display) + + + def set_spec_file(self): + self.specfile = select_file(self.specfile) + self.spec_file_button.setStyleSheet("Text-align:left") + self.spec_file_button.setText(self.specfile) + + + def set_dark_file(self): + self.darkfile = select_file(self.darkfile) + self.dark_file_button.setStyleSheet("Text-align:left") + self.dark_file_button.setText(self.darkfile) + + + def set_white_file(self): + self.whitefile = select_file(self.whitefile) + self.white_file_button.setStyleSheet("Text-align:left") + self.white_file_button.setText(self.whitefile) + + + def set_data_dir(self): + self.data_dir = select_dir(self.data_dir) + self.data_dir_button.setStyleSheet("Text-align:left") + self.data_dir_button.setText(self.data_dir) + + + def prepare(self): + scan = str(self.main_win.scan_widget.text()) + if self.main_win.working_dir is None or \ + self.main_win.id is None or\ + scan is None or \ + self.data_dir is None or \ + self.specfile is None: + print ('enter all parameters: working_dir, id, scan, data_dir, specfile') + return + + try: + # after checking that scan is entered convert it to list of int + scan_range = scan.split('-') + for i in range(len(scan_range)): + scan_range[i] = int(scan_range[i]) + except: + print('enter numeric values for scan range') + + conf_map = {} + if len(self.main_win.working_dir) > 0: + conf_map['working_dir'] = '"' + str(self.main_win.working_dir) + '"' + else: + print ("working_dir not defined") + if len(self.data_dir) > 0: + conf_map['data_dir'] = '"' + str(self.data_dir) + '"' + else: + print ("data_dir not defined") + if len(self.specfile) > 0: + conf_map['specfile'] = '"' + str(self.specfile) + '"' + else: + print ("specfile not defined") + if len(self.darkfile) > 0: + conf_map['darkfile'] = '"' + str(self.darkfile) + '"' + else: + print ("darkfile not defined") + if len(self.whitefile) > 0: + conf_map['whitefile'] = '"' + str(self.whitefile) + '"' + else: + print ("whitefile not defined") + + conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') + write_conf(conf_map, conf_dir, 'config') + + prep.prepare(self.main_win.working_dir, self.main_win.exp_id, scan_range, self.data_dir, self.specfile, self.darkfile, self.whitefile) + + + def model_data(self): + conf_map = {} + if len(self.aliens.text()) > 0: + conf_map['aliens'] = str(self.aliens.text()).replace('\n','') + else: + print ("aliens not defined") + if len(self.amp_threshold.text()) > 0: + conf_map['amp_threshold'] = str(self.amp_threshold.text()) + else: + print ('amplitude threshold not defined. Quiting operation.') + return + if len(self.binning.text()) > 0: + conf_map['binning'] = str(self.binning.text()).replace('\n','') + else: + print ("binning not defined") + if len(self.center_shift.text()) > 0: + conf_map['center_shift'] = str(self.center_shift.text()).replace('\n','') + else: + print ("center shift not defined") + if len(self.adjust_dimensions.text()) > 0: + conf_map['adjust_dimensions'] = str(self.adjust_dimensions.text()).replace('\n','') + else: + print ("adjust dimensions not defined") + + #self.create_config('config_data', conf_map) + conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') + write_conf(conf_map, conf_dir, 'config_data') + + run_dt.data(self.main_win.experiment_dir) + + + def reconstruction(self): + conf_map = {} + conf_map['threads'] = str(self.threads.text()) + conf_map['device'] = str(self.device.text()).replace('\n','') + conf_map['garbage_trigger'] = str(self.gc.text()).replace('\n','') + conf_map['algorithm_sequence'] = str(self.alg_seq.text()).replace('\n','') + conf_map['beta'] = str(self.beta.text()) + if self.cont.isChecked(): + conf_map['continue_dir'] = str(self.cont_dir.text()) + + for feat_id in self.features.feature_dir: + self.features.feature_dir[feat_id].add_config(conf_map) + + #self.create_config('config_rec', conf_map) + conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') + write_conf(conf_map, conf_dir, 'config_rec') + + run_rc.reconstruction('cpu', self.main_win.experiment_dir) + + + def display(self): + if len(self.crop.text()) == 0: + print ('crop not configured') + + disp_conf_file = os.path.join(self.main_win.experiment_dir, 'conf', 'config_disp') + temp_file = os.path.join(self.main_win.experiment_dir, 'conf', 'temp') + with open(temp_file, 'a') as temp: + try: + with open(disp_conf_file, 'r') as f: + for line in f: + if not line.startswith('crop') and not line.startswith('binning'): + temp.write(line) + f.close() + except: + pass + + if len(self.crop.text()) != 0: + temp.write('crop = ' + str(self.crop.text()) + '\n') + + temp.close() + shutil.move(temp_file, disp_conf_file) + + run_dp.to_vtk(self.main_win.experiment_dir) + + + def rec_default(self): + if self.main_win.working_dir is None or self.main_win.id is None or \ + len(self.main_win.working_dir) == 0 or len(self.main_win.id) == 0: + print ('Working Directory or Reconstruction ID not configured') + else: + self.threads.setText('1') + self.device.setText('(3)') + self.gc.setText('(1000)') + self.alg_seq.setText('((3,("ER",20),("HIO",180)),(1,("ER",20)))') + self.beta.setText('.9') + self.cont.setChecked(False) + + +class Feature(object): + def __init__(self): + self.stack = QWidget() + + + def stackUI(self, item, feats): + layout = QFormLayout() + self.active = QCheckBox("active") + self.active.setChecked(True) + layout.addWidget(self.active) + self.toggle(layout, item, feats) + self.stack.setLayout(layout) + self.active.stateChanged.connect(lambda: self.toggle(layout, item, feats)) + + + def toggle(self, layout, item, feats): + if self.active.isChecked(): + self.fill_active(layout) + + self.default_button = QPushButton('set to defaults', feats) + layout.addWidget(self.default_button) + self.default_button.clicked.connect(self.rec_default) + + item.setForeground(QColor('black')); + else: + for i in reversed(range(1, layout.count())): + layout.itemAt(i).widget().setParent(None) + item.setForeground(QColor('grey')); + + def fill_active(self, layout): + pass + + + def rec_default(self): + pass + + + def add_config(self, conf_map): + if self.active.isChecked(): + self.add_feat_conf(conf_map) + + def add_feat_conf(self, conf_map): + pass + + + def init_config(self, conf_map): + pass + + +class GA(Feature): + def __init__(self): + super(GA, self).__init__() + self.id = 'GA' + + # override setting the active to set it False + def stackUI(self, item, feats): + super(GA, self).stackUI(item, feats) + self.active.setChecked(False) + + + def fill_active(self, layout): + self.generations = QLineEdit() + layout.addRow("generations", self.generations) + self.lr_generations = QLineEdit() + layout.addRow("low resolution generations", self.lr_generations) + self.lr_sigma_alg = QLineEdit() + layout.addRow("low resolution sigma algorithm", self.lr_sigma_alg) + self.lr_sigmas = QLineEdit() + layout.addRow("low resolution sigmas", self.lr_sigmas) + self.lr_sigma_min = QLineEdit() + layout.addRow("low resolution sigma min", self.lr_sigma_min) + self.lr_sigma_max = QLineEdit() + layout.addRow("low resolution sigma max", self.lr_sigma_max) + self.lr_scale_power = QLineEdit() + layout.addRow("low resolution scale power", self.lr_scale_power) + self.lr_algorithm = QLineEdit() + layout.addRow("low resolution algorithm", self.lr_algorithm) + + + def add_feat_conf(self, conf_map): + conf_map['generations'] = str(self.generations.text()) + conf_map['low_resolution_generations'] = str(self.lr_generations.text()) + conf_map['low_resolution_sigma_alg'] = str(self.lr_sigma_alg.text()) + conf_map['low_resolution_sigmas'] = str(self.lr_sigmas.text()) + conf_map['low_resolution_sigma_min'] = str(self.lr_sigma_min.text()) + conf_map['low_resolution_sigma_max'] = str(self.lr_sigma_max.text()) + conf_map['low_resolution_scale_power'] = str(self.lr_scale_power.text()) + conf_map['low_resolution_alg'] = str(self.lr_algorithm.text()) + + +class low_resolution(Feature): + def __init__(self): + super(low_resolution, self).__init__() + self.id = 'low resolution' + + + def init_config(self, conf_map): + try: + self.res_triggers.setText(str(conf_map.resolution_trigger).replace(" ", "")) + except AttributeError: + pass + try: + self.sigma_range.setText(str(conf_map.iter_res_sigma_range).replace(" ", "")) + except AttributeError: + pass + try: + self.det_range.setText(str(conf_map.iter_res_det_range).replace(" ", "")) + except AttributeError: + pass + + + def fill_active(self, layout): + self.res_triggers = QLineEdit() + layout.addRow("low resolution triggers", self.res_triggers) + self.sigma_range = QLineEdit() + layout.addRow("sigma range", self.sigma_range) + self.det_range = QLineEdit() + layout.addRow("det range", self.det_range) + + + def rec_default(self): + #TODO add to accept fractions in trigger, so the default will be (.5,1) + self.res_triggers.setText('(0, 1, 320)') + self.sigma_range.setText('(2.0)') + self.det_range.setText('(.7)') + + + def add_feat_conf(self, conf_map): + conf_map['resolution_trigger'] = str(self.res_triggers.text()).replace('\n','') + conf_map['iter_res_sigma_range'] = str(self.sigma_range.text()).replace('\n','') + conf_map['iter_res_det_range'] = str(self.det_range.text()).replace('\n','') + + +class amplitude_support(Feature): + def __init__(self): + super(amplitude_support, self).__init__() + self.id = 'amplitude support' + + + def init_config(self, conf_map): + try: + self.support_triggers.setText(str(conf_map.amp_support_trigger).replace(" ", "")) + except AttributeError: + pass + try: + self.support_type.setText(str(conf_map.support_type).replace(" ", "")) + except AttributeError: + pass + try: + self.support_area.setText(str(conf_map.support_area).replace(" ", "")) + except AttributeError: + pass + try: + self.threshold.setText(str(conf_map.support_threshold).replace(" ", "")) + except AttributeError: + pass + try: + self.sigma.setText(str(conf_map.support_sigma).replace(" ", "")) + except AttributeError: + pass + + + def fill_active(self, layout): + self.support_triggers = QLineEdit() + layout.addRow("support triggers", self.support_triggers) + self.support_type = QLineEdit() + layout.addRow("support algorithm", self.support_type) + self.support_area = QLineEdit() + layout.addRow("starting support area", self.support_area) + self.threshold = QLineEdit() + layout.addRow("threshold", self.threshold) + self.sigma = QLineEdit() + layout.addRow("sigma", self.sigma) + + + def rec_default(self): + self.support_triggers.setText('(1,1)') + self.support_type.setText('"GAUSS"') + self.support_area.setText('[.5,.5,.5]') + self.sigma.setText('1.0') + self.threshold.setText('0.1') + + + def add_feat_conf(self, conf_map): + conf_map['amp_support_trigger'] = str(self.support_triggers.text()).replace('\n','') + conf_map['support_type'] = '"' + str(self.support_type.text()) + '"' + conf_map['support_threshold'] = str(self.threshold.text()) + conf_map['support_sigma'] = str(self.sigma.text()) + conf_map['support_area'] = str(self.support_area.text()).replace('\n','') + + +class phase_support(Feature): + def __init__(self): + super(phase_support, self).__init__() + self.id = 'phase support' + + + def init_config(self, conf_map): + try: + self.phase_triggers.setText(str(conf_map.phase_support_trigger).replace(" ", "")) + except AttributeError: + pass + try: + self.phase_min.setText(str(conf_map.phase_min).replace(" ", "")) + except AttributeError: + pass + try: + self.phase_max.setText(str(conf_map.phase_max).replace(" ", "")) + except AttributeError: + pass + + + def fill_active(self, layout): + self.phase_triggers = QLineEdit() + layout.addRow("phase support triggers", self.phase_triggers) + self.phase_min = QLineEdit() + layout.addRow("phase minimum", self.phase_min) + self.phase_max = QLineEdit() + layout.addRow("phase maximum", self.phase_max) + + + def rec_default(self): + self.phase_triggers.setText('(0,1,20)') + self.phase_min.setText('-1.57') + self.phase_max.setText('1.57') + + + def add_feat_conf(self, conf_map): + conf_map['phase_support_trigger'] = str(self.phase_triggers.text()).replace('\n','') + conf_map['phase_min'] = str(self.phase_min.text()) + conf_map['phase_max'] = str(self.phase_max.text()) + + +class pcdi(Feature): + def __init__(self): + super(pcdi, self).__init__() + self.id = 'pcdi' + + + def init_config(self, conf_map): + try: + self.pcdi_triggers.setText(str(conf_map.pcdi_trigger).replace(" ", "")) + except AttributeError: + pass + try: + self.pcdi_type.setText(str(conf_map.partial_coherence_type).replace(" ", "")) + except AttributeError: + pass + try: + self.pcdi_iter.setText(str(conf_map.partial_coherence_iteration_num).replace(" ", "")) + except AttributeError: + pass + try: + self.pcdi_normalize.setText(str(conf_map.partial_coherence_normalize).replace(" ", "")) + except AttributeError: + pass + try: + self.pcdi_roi.setText(str(conf_map.partial_coherence_roi).replace(" ", "")) + except AttributeError: + pass + + + def fill_active(self, layout): + self.pcdi_triggers = QLineEdit() + layout.addRow("pcdi triggers", self.pcdi_triggers) + self.pcdi_type = QLineEdit() + layout.addRow("partial coherence algorithm", self.pcdi_type) + self.pcdi_iter = QLineEdit() + layout.addRow("pcdi iteration number", self.pcdi_iter) + self.pcdi_normalize = QLineEdit() + layout.addRow("normalize", self.pcdi_normalize) + self.pcdi_roi = QLineEdit() + layout.addRow("pcdi kernel area", self.pcdi_roi) + + + def rec_default(self): + self.pcdi_triggers.setText('(50,50)') + self.pcdi_type.setText('"LUCY"') + self.pcdi_iter.setText('20') + self.pcdi_normalize.setText('true') + self.pcdi_roi.setText('[32,32,16]') + + + def add_feat_conf(self, conf_map): + conf_map['pcdi_trigger'] = str(self.pcdi_triggers.text()).replace('\n','') + conf_map['partial_coherence_type'] = '"' + str(self.pcdi_type.text()) + '"' + conf_map['partial_coherence_iteration_num'] = str(self.pcdi_iter.text()) + conf_map['partial_coherence_normalize'] = str(self.pcdi_normalize.text()) + conf_map['partial_coherence_roi'] = str(self.pcdi_roi.text()).replace('\n','') + + +class twin(Feature): + def __init__(self): + super(twin, self).__init__() + self.id = 'twin' + + + def init_config(self, conf_map): + try: + self.twin_triggers.setText(str(conf_map.twin_trigger).replace(" ", "")) + except AttributeError: + pass + + + def fill_active(self, layout): + self.twin_triggers = QLineEdit() + layout.addRow("twin triggers", self.twin_triggers) + + + def rec_default(self): + self.twin_triggers.setText('(2)') + + + def add_feat_conf(self, conf_map): + conf_map['twin_trigger'] = str(self.twin_triggers.text()).replace('\n','') + + +class average(Feature): + def __init__(self): + super(average, self).__init__() + self.id = 'average' + + + def init_config(self, conf_map): + try: + self.average_triggers.setText(str(conf_map.average_trigger).replace(" ", "")) + except AttributeError: + pass + + + def fill_active(self, layout): + self.average_triggers = QLineEdit() + layout.addRow("average triggers", self.average_triggers) + + + def rec_default(self): + self.average_triggers.setText('(-400,1)') + + + def add_feat_conf(self, conf_map): + conf_map['avarage_trigger'] = str(self.average_triggers.text()).replace('\n','') + + + +class Features(QWidget): + def __init__(self, tab, layout): + super(Features, self).__init__() + feature_ids = ['GA', 'low resolution', 'amplitude support', 'phase support', 'pcdi', 'twin', 'average'] + self.leftlist = QListWidget() + self.feature_dir = {'GA' : GA(), + 'low resolution' : low_resolution(), + 'amplitude support' : amplitude_support(), + 'phase support' : phase_support(), + 'pcdi' : pcdi(), + 'twin' : twin(), + 'average' : average()} + self.Stack = QStackedWidget(self) + for i in range(len(feature_ids)): + id = feature_ids[i] + self.leftlist.insertItem(i, id) + feature = self.feature_dir[id] + feature.stackUI(self.leftlist.item(i), self) + self.Stack.addWidget(feature.stack) + + layout.addWidget(self.leftlist) + layout.addWidget(self.Stack) + + self.leftlist.currentRowChanged.connect(self.display) + + + def display(self, i): + self.Stack.setCurrentIndex(i) + + +def main(): + app = QApplication(sys.argv) + ex = cdi_conf() + ex.show() + sys.exit(app.exec_()) + + +if __name__ == '__main__': + main() \ No newline at end of file diff --git a/reccdi/src_py/cyth/bridge_cpu.pyx b/reccdi/src_py/cyth/bridge_cpu.pyx index a330da0..6ea3191 100644 --- a/reccdi/src_py/cyth/bridge_cpu.pyx +++ b/reccdi/src_py/cyth/bridge_cpu.pyx @@ -6,10 +6,10 @@ # distutils: language = c++ -# distutils: include_dirs = ['reccdi/include', '/local/af/include', '/local/libconfig/include',] +# distutils: include_dirs = ['reccdi/include', 'AF_DIR/include', 'LC_DIR/include',] # distutils: sources = ['reccdi/src_cpp/algorithm.cpp', 'reccdi/src_cpp/bridge.cpp', 'reccdi/src_cpp/manager.cpp', 'reccdi/src_cpp/parameters.cpp', 'reccdi/src_cpp/pcdi.cpp', 'reccdi/src_cpp/resolution.cpp', 'reccdi/src_cpp/state.cpp', 'reccdi/src_cpp/support.cpp', 'reccdi/src_cpp/util.cpp', 'reccdi/src_cpp/worker.cpp'] # distutils: libraries = ['afcpu', 'config++',] -# distutils: library_dirs = ['/local/af/lib', '/local/libconfig/lib',] +# distutils: library_dirs = ['AF_DIR/lib', 'LC_DIR/lib',] from libcpp.vector cimport vector from libcpp.string cimport string diff --git a/reccdi/src_py/cyth/bridge_cuda.pyx b/reccdi/src_py/cyth/bridge_cuda.pyx index 6aff7c6..c8b8610 100755 --- a/reccdi/src_py/cyth/bridge_cuda.pyx +++ b/reccdi/src_py/cyth/bridge_cuda.pyx @@ -6,10 +6,10 @@ # distutils: language = c++ -# distutils: include_dirs = ['reccdi/include', '/local/af/include', '/local/libconfig/include',] +# distutils: include_dirs = ['reccdi/include', 'AF_DIR/include', 'LC_DIR/include',] # distutils: sources = ['reccdi/src_cpp/algorithm.cpp', 'reccdi/src_cpp/bridge.cpp', 'reccdi/src_cpp/manager.cpp', 'reccdi/src_cpp/parameters.cpp', 'reccdi/src_cpp/pcdi.cpp', 'reccdi/src_cpp/resolution.cpp', 'reccdi/src_cpp/state.cpp', 'reccdi/src_cpp/support.cpp', 'reccdi/src_cpp/util.cpp', 'reccdi/src_cpp/worker.cpp'] # distutils: libraries = ['afcuda', 'config++',] -# distutils: library_dirs = ['/local/af/lib', '/local/libconfig/lib',] +# distutils: library_dirs = ['AF_DIR/lib', 'LC_DIR/lib',] from libcpp.vector cimport vector from libcpp.string cimport string diff --git a/reccdi/src_py/cyth/bridge_opencl.pyx b/reccdi/src_py/cyth/bridge_opencl.pyx index 78800bd..1a043b8 100755 --- a/reccdi/src_py/cyth/bridge_opencl.pyx +++ b/reccdi/src_py/cyth/bridge_opencl.pyx @@ -6,10 +6,10 @@ # distutils: language = c++ -# distutils: include_dirs = ['reccdi/include', '/local/af/include', '/local/libconfig/include',] +# distutils: include_dirs = ['reccdi/include', 'AF_DIR/include', 'LC_DIR/include',] # distutils: sources = ['reccdi/src_cpp/algorithm.cpp', 'reccdi/src_cpp/bridge.cpp', 'reccdi/src_cpp/manager.cpp', 'reccdi/src_cpp/parameters.cpp', 'reccdi/src_cpp/pcdi.cpp', 'reccdi/src_cpp/resolution.cpp', 'reccdi/src_cpp/state.cpp', 'reccdi/src_cpp/support.cpp', 'reccdi/src_cpp/util.cpp', 'reccdi/src_cpp/worker.cpp'] # distutils: libraries = ['afopencl', 'config++',] -# distutils: library_dirs = ['/local/af/lib', '/local/libconfig/lib',] +# distutils: library_dirs = ['AF_DIR/lib', 'LC_DIR/lib',] from libcpp.vector cimport vector from libcpp.string cimport string From f0c8e0c0deb52b70ac639869594e0375580bcb70 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Fri, 11 Jan 2019 16:59:52 -0600 Subject: [PATCH 109/336] Delete XMakefile --- build/XMakefile | 24 ------------------------ 1 file changed, 24 deletions(-) delete mode 100644 build/XMakefile diff --git a/build/XMakefile b/build/XMakefile deleted file mode 100644 index 09034c6..0000000 --- a/build/XMakefile +++ /dev/null @@ -1,24 +0,0 @@ -CC=g++ $(COMPILER_OPTIONS) -COMPILER_OPTIONS=-std=c++11 -g - -TOP = .. -INCLUDE = $(TOP)/include -BIN = bin -SRC = $(TOP)/src_cpp - - -all: - - $(CC) -I$(INCLUDE) -I$(INCLUDE)/af/include -fPIC -c -o $(BIN)/algorithm.o $(SRC)/algorithm.cpp - $(CC) -I$(INCLUDE) -I$(INCLUDE)/af/include -fPIC -c -o $(BIN)/bridge.o $(SRC)/bridge.cpp - $(CC) -I$(INCLUDE) -I$(INCLUDE)/af/include -fPIC -c -o $(BIN)/manager.o $(SRC)/manager.cpp - $(CC) -I$(INCLUDE) -I$(INCLUDE)/af/include -fPIC -c -o $(BIN)/parameters.o $(SRC)/parameters.cpp - $(CC) -I$(INCLUDE) -I$(INCLUDE)/af/include -fPIC -c -o $(BIN)/state.o $(SRC)/state.cpp - $(CC) -I$(INCLUDE) -I$(INCLUDE)/af/include -fPIC -c -o $(BIN)/support.o $(SRC)/support.cpp - $(CC) -I$(INCLUDE) -I$(INCLUDE)/af/include -fPIC -c -o $(BIN)/worker.o $(SRC)/worker.cpp - - $(CC) -shared -Wl,-soname,$(abspath ../lib/libcdi.so) -o $(abspath ../lib/libcdi.so) $(BIN)/algorithm.o $(BIN)/bridge.o $(BIN)/manager.o $(BIN)/parameters.o $(BIN)/state.o $(BIN)/support.o $(BIN)/worker.o -lc - -#$(CC) -o maincdi $(SRC)/main.cpp -L../lib -lcdi -lafopencl -lconfig++ -I$(INCLUDE) - - From fb1b8caf800c9a6ca4d2b53673b821187d910116 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Fri, 11 Jan 2019 17:05:02 -0600 Subject: [PATCH 110/336] Delete vcs.xml --- .idea/vcs.xml | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 .idea/vcs.xml diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 94a25f7..0000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file From 7c2a44887079a3d89cdafb9d5e998aaa990b374f Mon Sep 17 00:00:00 2001 From: bfrosik Date: Mon, 14 Jan 2019 11:21:37 -0600 Subject: [PATCH 111/336] cleaned up init script --- bin/everything.sh | 7 +------ bin/run_rec.sh | 9 ++------- build/XMakefile | 24 ------------------------ init.sh | 16 +++++++++------- 4 files changed, 12 insertions(+), 44 deletions(-) delete mode 100644 build/XMakefile diff --git a/bin/everything.sh b/bin/everything.sh index 69b1fba..5635af6 100644 --- a/bin/everything.sh +++ b/bin/everything.sh @@ -1,12 +1,7 @@ #!/bin/sh -#export LD_LIBRARY_PATH=/usr/local/lib:/local/libconfig/lib:/local/af/lib - -#export LD_LIBRARY_PATH=/home/beams/CXDUSER/CDI/libconfig/lib:/usr/lib64:/home/beams/CXDUSER/CDI/ArrayFire-v3.4.2/lib:/usr/local-linux/cuda-8.0/lib64:/usr/local-linux/cuda-8.0/nvvm/lib64 - -#newest arrayfire version will work with cuda 9.1 -#export LD_LIBRARY_PATH=/home/beams/CXDUSER/CDI/arrayfire/lib:/home/beams/CXDUSER/CDI/libconfig/lib:/local/cuda-9.0/lib64:/local/cuda-9.0/nvvm/lib64 +export LD_LIBRARY_PATH=/local/libconfig/lib:/usr/local/lib:/local/af/lib/:l/lib64:l/nvvm/lib64 dev=$1 prefix=$2 diff --git a/bin/run_rec.sh b/bin/run_rec.sh index 895f2df..4d63808 100644 --- a/bin/run_rec.sh +++ b/bin/run_rec.sh @@ -1,12 +1,7 @@ #!/bin/sh -export LD_LIBRARY_PATH=/usr/local/lib:/local/libconfig/lib:/local/af/lib - -#export LD_LIBRARY_PATH=/home/beams/CXDUSER/CDI/libconfig/lib:/usr/lib64:/home/beams/CXDUSER/CDI/ArrayFire-v3.4.2/lib:/usr/local-linux/cuda-8.0/lib64:/usr/local-linux/cuda-8.0/nvvm/lib64 - -#newest arrayfire version will work with cuda 9.1 -#export LD_LIBRARY_PATH=/home/beams/CXDUSER/CDI/arrayfire/lib:/home/beams/CXDUSER/CDI/libconfig/lib:/local/cuda-9.0/lib64:/local/cuda-9.0/nvvm/lib64 - +export LD_LIBRARY_PATH=/local/libconfig/lib:/usr/local/lib:/local/af/lib/:l/lib64:l/nvvm/lib64 python run_rec.py $1 $2 + #python run_rec.py "opencl" \ No newline at end of file diff --git a/build/XMakefile b/build/XMakefile deleted file mode 100644 index 09034c6..0000000 --- a/build/XMakefile +++ /dev/null @@ -1,24 +0,0 @@ -CC=g++ $(COMPILER_OPTIONS) -COMPILER_OPTIONS=-std=c++11 -g - -TOP = .. -INCLUDE = $(TOP)/include -BIN = bin -SRC = $(TOP)/src_cpp - - -all: - - $(CC) -I$(INCLUDE) -I$(INCLUDE)/af/include -fPIC -c -o $(BIN)/algorithm.o $(SRC)/algorithm.cpp - $(CC) -I$(INCLUDE) -I$(INCLUDE)/af/include -fPIC -c -o $(BIN)/bridge.o $(SRC)/bridge.cpp - $(CC) -I$(INCLUDE) -I$(INCLUDE)/af/include -fPIC -c -o $(BIN)/manager.o $(SRC)/manager.cpp - $(CC) -I$(INCLUDE) -I$(INCLUDE)/af/include -fPIC -c -o $(BIN)/parameters.o $(SRC)/parameters.cpp - $(CC) -I$(INCLUDE) -I$(INCLUDE)/af/include -fPIC -c -o $(BIN)/state.o $(SRC)/state.cpp - $(CC) -I$(INCLUDE) -I$(INCLUDE)/af/include -fPIC -c -o $(BIN)/support.o $(SRC)/support.cpp - $(CC) -I$(INCLUDE) -I$(INCLUDE)/af/include -fPIC -c -o $(BIN)/worker.o $(SRC)/worker.cpp - - $(CC) -shared -Wl,-soname,$(abspath ../lib/libcdi.so) -o $(abspath ../lib/libcdi.so) $(BIN)/algorithm.o $(BIN)/bridge.o $(BIN)/manager.o $(BIN)/parameters.o $(BIN)/state.o $(BIN)/support.o $(BIN)/worker.o -lc - -#$(CC) -o maincdi $(SRC)/main.cpp -L../lib -lcdi -lafopencl -lconfig++ -I$(INCLUDE) - - diff --git a/init.sh b/init.sh index 3733785..012acf7 100644 --- a/init.sh +++ b/init.sh @@ -3,21 +3,22 @@ echo -n "enter ArrayFire installation directory > " read af_dir -#af_dir='/local/af' AF='AF_DIR' sed -i 's?'$AF'?'$af_dir'?g' reccdi/src_py/cyth/*.pyx echo -n "enter LibConfig installation directory > " read lc_dir -#lc_dir=/local/libconfig LC='LC_DIR' sed -i 's?'$LC'?'$lc_dir'?g' reccdi/src_py/cyth/*.pyx -#echo -n "enter cuda installation directory > " -#read cuda_dir +echo -n "enter cuda installation directory > " +read cuda_dir -export LD_LIBRARY_PATH=/local/libconfig/lib:/usr/local/lib:/local/af/lib -#export LD_LIBRARY_PATH=$lc_dir/lib:/usr/local/lib:$af_dir/lib/:$cuda_dir/lib64:$cuda_dir/nvvm/lib64 +export LD_LIBRARY_PATH=$lc_dir/lib:/usr/local/lib:$af_dir/lib/:$cuda_dir/lib64:$cuda_dir/nvvm/lib64 + +lib_path='LIB_PATH' +sed -i 's?'$lib_path'?'$lc_dir/lib:/usr/local/lib:$af_dir/lib/:$cuda_dir/lib64:$cuda_dir/nvvm/lib64'?g' bin/everything.sh +sed -i 's?'$lib_path'?'$lc_dir/lib:/usr/local/lib:$af_dir/lib/:$cuda_dir/lib64:$cuda_dir/nvvm/lib64'?g' bin/run_rec.sh echo -n "enter data type (float/double) > " read data_type @@ -27,4 +28,5 @@ sed -i 's?'$def'?'$data_type'?g' reccdi/src_py/cyth/*.pyx sed -i 's?'$def'?'$data_type'?g' reccdi/include/common.h -#python setup.py build_ext --inplace \ No newline at end of file +python setup.py build_ext --inplace +python setup.py install \ No newline at end of file From 22e39c009f0823df221cfb8ccbe52b8ae2dd8fc4 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Mon, 14 Jan 2019 11:26:15 -0600 Subject: [PATCH 112/336] cleaned up init script --- bin/everything.sh | 2 +- bin/run_rec.sh | 2 +- reccdi/src_py/controller/fast_module.py | 3 +-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/bin/everything.sh b/bin/everything.sh index 5635af6..b1ab989 100644 --- a/bin/everything.sh +++ b/bin/everything.sh @@ -1,7 +1,7 @@ #!/bin/sh -export LD_LIBRARY_PATH=/local/libconfig/lib:/usr/local/lib:/local/af/lib/:l/lib64:l/nvvm/lib64 +export LD_LIBRARY_PATH=LIB_PATH dev=$1 prefix=$2 diff --git a/bin/run_rec.sh b/bin/run_rec.sh index 4d63808..cba9a89 100644 --- a/bin/run_rec.sh +++ b/bin/run_rec.sh @@ -1,7 +1,7 @@ #!/bin/sh -export LD_LIBRARY_PATH=/local/libconfig/lib:/usr/local/lib:/local/af/lib/:l/lib64:l/nvvm/lib64 +export LD_LIBRARY_PATH=LIB_PATH python run_rec.py $1 $2 #python run_rec.py "opencl" \ No newline at end of file diff --git a/reccdi/src_py/controller/fast_module.py b/reccdi/src_py/controller/fast_module.py index 9d6947d..c22ad55 100755 --- a/reccdi/src_py/controller/fast_module.py +++ b/reccdi/src_py/controller/fast_module.py @@ -21,7 +21,7 @@ import scipy.fftpack as sf import reccdi.src_py.cyth.bridge_cpu as bridge_cpu import reccdi.src_py.cyth.bridge_opencl as bridge_opencl -#import reccdi.src_py.cyth.bridge_cuda as bridge_cuda +import reccdi.src_py.cyth.bridge_cuda as bridge_cuda __author__ = "Barbara Frosik" @@ -93,7 +93,6 @@ def fast_module_reconstruction(proc, device, conf, data, coh_dims, image=None, s dims = data.shape dims1 = (dims[2], dims[1], dims[0]) - #fast_module = bridge.PyBridge() data_l = data.flatten().tolist() if image is None: From 95f9cace40a9524414633e4924afac525ae3155e Mon Sep 17 00:00:00 2001 From: bfrosik Date: Mon, 14 Jan 2019 14:41:56 -0600 Subject: [PATCH 113/336] updated scripts after testing --- bin/{cdi_conf_window.py => cdi_window.py} | 0 bin/cdi_window.sh | 12 +++++++++++ bin/everything.sh | 7 +++++- bin/run_rec.sh | 8 ++++++- how_to_run | 26 +++++++++++++---------- 5 files changed, 40 insertions(+), 13 deletions(-) rename bin/{cdi_conf_window.py => cdi_window.py} (100%) create mode 100644 bin/cdi_window.sh diff --git a/bin/cdi_conf_window.py b/bin/cdi_window.py similarity index 100% rename from bin/cdi_conf_window.py rename to bin/cdi_window.py diff --git a/bin/cdi_window.sh b/bin/cdi_window.sh new file mode 100644 index 0000000..4ba4bd8 --- /dev/null +++ b/bin/cdi_window.sh @@ -0,0 +1,12 @@ +#!/bin/sh + +#specific for xfm1 +p=$PATH +p=${p//"anaconda2"/"anaconda3"} +p=${p//"CXDUSER/anaconda"/"CXDUSER/CDI/anaconda"} +export PATH=$p + +export LD_LIBRARY_PATH=/home/beams/CXDUSER/CDI/libconfig/lib:/usr/local/lib:/home/beams/CXDUSER/CDI/arrayfire/lib/:/local/cuda-9.0/lib64:/local/cuda-9.0/nvvm/lib64 +python bin/cdi_conf_window.py + +#python cdi_conf_window.py \ No newline at end of file diff --git a/bin/everything.sh b/bin/everything.sh index b1ab989..db91bd0 100644 --- a/bin/everything.sh +++ b/bin/everything.sh @@ -1,5 +1,10 @@ #!/bin/sh +#specific for xfm1 +p=$PATH +p=${p//"anaconda2"/"anaconda3"} +p=${p//"CXDUSER/anaconda"/"CXDUSER/CDI/anaconda"} +export PATH=$p export LD_LIBRARY_PATH=LIB_PATH @@ -8,5 +13,5 @@ prefix=$2 scans=$3 conf_dir=$4 -python everything.py $dev $prefix $scans $conf_dir +python bin/everything.py $dev $prefix $scans $conf_dir diff --git a/bin/run_rec.sh b/bin/run_rec.sh index cba9a89..19e495e 100644 --- a/bin/run_rec.sh +++ b/bin/run_rec.sh @@ -1,7 +1,13 @@ #!/bin/sh +#specific for xfm1 +p=$PATH +p=${p//"anaconda2"/"anaconda3"} +p=${p//"CXDUSER/anaconda"/"CXDUSER/CDI/anaconda"} +export PATH=$p export LD_LIBRARY_PATH=LIB_PATH -python run_rec.py $1 $2 + +python bin/run_rec.py $1 $2 #python run_rec.py "opencl" \ No newline at end of file diff --git a/how_to_run b/how_to_run index 2ec218f..dc721bb 100644 --- a/how_to_run +++ b/how_to_run @@ -11,15 +11,15 @@ II. For any beamline. 6. Run display processing according to configuration. How to run using command line scripts: ------------------------------------- +-------------------------------------- 1. to run everything: -source everything.sh +source bin/everything.sh 2. to run separately: -python run_34id_prepare.py -python run_data.py -source run_rec.sh -python run_disp.py +python bin/run_34id_prepare.py +python bin/run_data.py +source bin/run_rec.sh +python bin/run_disp.py - specifies processor/library to run reconstruction on ('cpu', 'opencl', 'cuda') - arbitrary string that defines the experiment, it will be combine with the to derive experiment id @@ -29,9 +29,13 @@ python run_disp.py example: 1. running all pieces -source everything.sh 'opencl' 'B' '290-290' 'conf/last' +source bin/everything.sh 'opencl' 'B' '290-290' 'conf/last' 2. running one by one -python run_34id_prepare.py 'B' '290-290' 'conf/defaults' -python run_data.py '/net/s34data/export/34idc-data/2018/Chung1118/test/B_290-290' -source run_rec.sh 'opencl' '/net/s34data/export/34idc-data/2018/Chung1118/test/B_290-290' -python run_disp.py '/net/s34data/export/34idc-data/2018/Chung1118/test/B_290-290' +python bin/run_34id_prepare.py 'B' '290-290' 'conf/defaults' +python bin/run_data.py '/net/s34data/export/34idc-data/2018/Chung1118/test/B_290-290' +source bin/run_rec.sh 'opencl' '/net/s34data/export/34idc-data/2018/Chung1118/test/B_290-290' +python bin/run_disp.py '/net/s34data/export/34idc-data/2018/Chung1118/test/B_290-290' + +How to run using GUI: +--------------------- +1. source bin/cdi_window.sh \ No newline at end of file From 83feb9bc4e5b54de7be390a0292bc05ba187c5ea Mon Sep 17 00:00:00 2001 From: bfrosik Date: Thu, 17 Jan 2019 11:58:58 -0600 Subject: [PATCH 114/336] Removed redundant code --- reccdi/src_py/run_scripts/run_rec.py | 7 ------- 1 file changed, 7 deletions(-) diff --git a/reccdi/src_py/run_scripts/run_rec.py b/reccdi/src_py/run_scripts/run_rec.py index 141e87b..b2f1d20 100755 --- a/reccdi/src_py/run_scripts/run_rec.py +++ b/reccdi/src_py/run_scripts/run_rec.py @@ -80,11 +80,6 @@ def reconstruction(proc, experiment_dir): def main(arg): - if os.path.exists('stopfile'): - os.remove('stopfile') - p = Process(target=interrupt_thread, args=(1,)) - p.start() - parser = argparse.ArgumentParser() parser.add_argument("proc", help="the processor the code will run on, can be 'cpu', 'opencl', or 'cuda'.") parser.add_argument("experiment_dir", help="experiment directory.") @@ -94,8 +89,6 @@ def main(arg): reconstruction(proc, experiment_dir) - p.terminate() - if __name__ == "__main__": main(sys.argv[1:]) From adde47cca53986ebbe3357b538f093a1a93ea843 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Mon, 21 Jan 2019 15:07:06 -0600 Subject: [PATCH 115/336] Fixed pcdi bug --- reccdi/include/pcdi.hpp | 2 +- reccdi/src_cpp/pcdi.cpp | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/reccdi/include/pcdi.hpp b/reccdi/include/pcdi.hpp index c39b43a..da4d47b 100644 --- a/reccdi/include/pcdi.hpp +++ b/reccdi/include/pcdi.hpp @@ -43,7 +43,7 @@ class PartialCoherence void Init(af::array data); void SetPrevious(af::array abs_amplitudes); af::array ApplyPartialCoherence(af::array abs_image); - af::array UpdatePartialCoherence(af::array abs_image); + void UpdatePartialCoherence(af::array abs_image); af::array GetKernelArray(); }; diff --git a/reccdi/src_cpp/pcdi.cpp b/reccdi/src_cpp/pcdi.cpp index a0301c1..deb482a 100644 --- a/reccdi/src_cpp/pcdi.cpp +++ b/reccdi/src_cpp/pcdi.cpp @@ -82,7 +82,7 @@ af::array PartialCoherence::ApplyPartialCoherence(af::array abs_amplitudes) return converged; } -af::array PartialCoherence::UpdatePartialCoherence(af::array abs_amplitudes) +void PartialCoherence::UpdatePartialCoherence(af::array abs_amplitudes) { af::array abs_amplitudes_centered = shift(abs_amplitudes, dims[0]/2, dims[1]/2, dims[2]/2, dims[3]/2); af::array roi_abs_amplitudes = Utils::CropCenter(abs_amplitudes_centered, roi_dims).copy(); @@ -90,6 +90,7 @@ af::array PartialCoherence::UpdatePartialCoherence(af::array abs_amplitudes) af::array roi_combined_amp = 2*roi_abs_amplitudes - roi_amplitudes_prev; OnTrigger(roi_combined_amp); // use_2k_1 from matlab program printf("Updating coherence\n"); + } void PartialCoherence::OnTrigger(af::array arr) From ea5bf21dc5e499bc94f269d4a79eaad124b421b3 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Mon, 21 Jan 2019 15:42:25 -0600 Subject: [PATCH 116/336] removed gui code from beamline dir --- bin/cdi_window.sh | 2 - .../beamlines/aps_34id/cdi_conf_window.py | 856 ------------------ 2 files changed, 858 deletions(-) delete mode 100644 reccdi/src_py/beamlines/aps_34id/cdi_conf_window.py diff --git a/bin/cdi_window.sh b/bin/cdi_window.sh index 4ba4bd8..40012ae 100644 --- a/bin/cdi_window.sh +++ b/bin/cdi_window.sh @@ -8,5 +8,3 @@ export PATH=$p export LD_LIBRARY_PATH=/home/beams/CXDUSER/CDI/libconfig/lib:/usr/local/lib:/home/beams/CXDUSER/CDI/arrayfire/lib/:/local/cuda-9.0/lib64:/local/cuda-9.0/nvvm/lib64 python bin/cdi_conf_window.py - -#python cdi_conf_window.py \ No newline at end of file diff --git a/reccdi/src_py/beamlines/aps_34id/cdi_conf_window.py b/reccdi/src_py/beamlines/aps_34id/cdi_conf_window.py deleted file mode 100644 index 20cee87..0000000 --- a/reccdi/src_py/beamlines/aps_34id/cdi_conf_window.py +++ /dev/null @@ -1,856 +0,0 @@ -import sys -import os -import shutil -from PyQt5.QtCore import * -from PyQt5.QtGui import * -from PyQt5.QtWidgets import * -import reccdi.src_py.run_scripts.run_data as run_dt -import reccdi.src_py.run_scripts.run_rec as run_rc -import reccdi.src_py.run_scripts.run_disp as run_dp -import reccdi.src_py.utilities.utils as ut -import reccdi.src_py.run_scripts.run_34id_prepare as prep - - -def select_file(start_dir): - dialog = QFileDialog(None, 'select dir', start_dir) - dialog.setFileMode(QFileDialog.ExistingFile) - dialog.setSidebarUrls([QUrl.fromLocalFile(start_dir)]) - if dialog.exec_() == QDialog.Accepted: - return str(dialog.selectedFiles()[0]) - - -def select_dir(start_dir): - dialog = QFileDialog(None, 'select dir', start_dir) - dialog.setFileMode(QFileDialog.DirectoryOnly) - dialog.setSidebarUrls([QUrl.fromLocalFile(start_dir)]) - if dialog.exec_() == QDialog.Accepted: - return str(dialog.selectedFiles()[0]) - - -def write_conf(conf_map, dir, file): - # create "temp" file first and then overrite existing configuration file - if not os.path.exists(dir): - os.makedirs(dir) - conf_file = os.path.join(dir, file) - temp_file = os.path.join(dir, 'temp') - with open(temp_file, 'a') as f: - for key in conf_map: - value = conf_map[key] - if len(value) > 0: - f.write(key + ' = ' + conf_map[key] + '\n') - f.close() - shutil.move(temp_file, conf_file) - - -class cdi_conf(QWidget): - def __init__(self, parent=None): - super(cdi_conf, self).__init__(parent) - uplayout = QFormLayout() - - self.set_work_dir_button = QPushButton() - uplayout.addRow("Working Directory", self.set_work_dir_button) - self.Id_widget = QLineEdit() - uplayout.addRow("Reconstruction ID", self.Id_widget) - self.scan_widget = QLineEdit() - uplayout.addRow("scan(s)", self.scan_widget) - self.run_button = QPushButton('run_everything', self) - uplayout.addWidget(self.run_button) - - vbox = QVBoxLayout() - vbox.addLayout(uplayout) - - self.t = cdi_conf_tab(self) - vbox.addWidget(self.t) - - self.setLayout(vbox) - self.setWindowTitle("CDI Reconstruction") - self.set_init() - - self.set_work_dir_button.clicked.connect(self.set_working_dir) - self.Id_widget.textChanged.connect(self.set_id) - self.scan_widget.textChanged.connect(self.set_scan) - self.run_button.clicked.connect(self.run_everything) - - - def set_working_dir(self): - self.working_dir = select_dir(self.working_dir) - self.set_work_dir_button.setStyleSheet("Text-align:left") - self.set_work_dir_button.setText(self.working_dir) - - - def set_id(self): - self.id = str(self.Id_widget.text()) - self.set_experiment_dir() - - - def set_scan(self): - self.scan = str(self.scan_widget.text()) - self.set_experiment_dir() - - - def set_experiment_dir(self): - if self.id is not None and self.scan is not None: - self.exp_id = self.id + '_' + self.scan - self.experiment_dir = os.path.join(self.working_dir, self.exp_id) - - - def run_everything(self): - self.t.prepare() - self.t.model_data() - self.t.reconstruction() - self.t.display() - - - def set_init(self): - self.id = None - self.scan = None - # check for the "conf" directory in the running directory - if os.path.isdir('conf/last'): - self.set_from_conf('conf/last') - elif os.path.isdir('conf/defaults'): - self.set_from_conf('conf/defaults') - - - def set_from_conf(self, dir): - print ('dir', dir) - main_conf = os.path.join(dir, 'config') - conf_map = ut.read_config(main_conf) - # initialize to the value from config file - self.working_dir = conf_map.working_dir - self.t.data_dir = conf_map.data_dir - self.t.specfile = conf_map.specfile - self.t.darkfile = conf_map.darkfile - self.t.whitefile = conf_map.whitefile - # set the text in the window - self.set_work_dir_button.setStyleSheet("Text-align:left") - self.set_work_dir_button.setText(self.working_dir) - self.t.data_dir_button.setStyleSheet("Text-align:left") - self.t.data_dir_button.setText(self.t.data_dir) - self.t.spec_file_button.setStyleSheet("Text-align:left") - self.t.spec_file_button.setText(self.t.specfile) - self.t.dark_file_button.setStyleSheet("Text-align:left") - self.t.dark_file_button.setText(self.t.darkfile) - self.t.white_file_button.setStyleSheet("Text-align:left") - self.t.white_file_button.setText(self.t.whitefile) - - # initialize "Data" tab - data_conf = os.path.join(dir, 'config_data') - conf_map = ut.read_config(data_conf) - try: - self.t.aliens.setText(str(conf_map.aliens).replace(" ", "")) - except AttributeError: - pass - try: - self.t.amp_threshold.setText(str(conf_map.amp_threshold).replace(" ", "")) - except AttributeError: - pass - try: - self.t.binning.setText(str(conf_map.binning).replace(" ", "")) - except AttributeError: - pass - try: - self.t.center_shift.setText(str(conf_map.center_shift).replace(" ", "")) - except AttributeError: - pass - try: - self.t.adjust_dimensions.setText(str(conf_map.adjust_dimensions).replace(" ", "")) - except AttributeError: - pass - - # initialize "Reconstruction" tab - rec_conf = os.path.join(dir, 'config_rec') - conf_map = ut.read_config(rec_conf) - try: - self.t.device.setText(str(conf_map.device).replace(" ", "")) - except AttributeError: - pass - try: - self.t.threads.setText(str(conf_map.threads).replace(" ", "")) - except AttributeError: - pass - try: - self.t.gc.setText(str(conf_map.garbage_trigger).replace(" ", "")) - except AttributeError: - pass - try: - self.t.alg_seq.setText(str(conf_map.algorithm_sequence).replace(" ", "")) - except AttributeError: - pass - try: - self.t.beta.setText(str(conf_map.beta).replace(" ", "")) - except AttributeError: - pass - - for feat_id in self.t.features.feature_dir: - self.t.features.feature_dir[feat_id].init_config(conf_map) - - # initialize "Display" tab - disp_conf = os.path.join(dir, 'config_disp') - conf_map = ut.read_config(disp_conf) - try: - self.t.crop.setText(str(conf_map.crop).replace(" ", "")) - except AttributeError: - pass - - -class cdi_conf_tab(QTabWidget): - def __init__(self, main_win, parent=None): - super(cdi_conf_tab, self).__init__(parent) - self.main_win = main_win - self.tab1 = QWidget() - self.tab2 = QWidget() - self.tab3 = QWidget() - self.tab4 = QWidget() - - self.addTab(self.tab1, "34ID prep") - self.addTab(self.tab2, "Data") - self.addTab(self.tab3, "Reconstruction") - self.addTab(self.tab4, "Display") - self.tab1UI() - self.tab2UI() - self.tab3UI() - self.tab4UI() - - - def tab1UI(self): - layout = QFormLayout() - self.data_dir_button = QPushButton() - layout.addRow("data directory", self.data_dir_button) - self.spec_file_button = QPushButton() - layout.addRow("spec file", self.spec_file_button) - self.dark_file_button = QPushButton() - layout.addRow("darkfield file", self.dark_file_button) - self.white_file_button = QPushButton() - layout.addRow("whitefield file", self.white_file_button) - self.prep_button = QPushButton('prepare', self) - layout.addWidget(self.prep_button) - self.tab1.setLayout(layout) - - self.prep_button.clicked.connect(self.prepare) - self.data_dir_button.clicked.connect(self.set_data_dir) - self.spec_file_button.clicked.connect(self.set_spec_file) - self.dark_file_button.clicked.connect(self.set_dark_file) - self.white_file_button.clicked.connect(self.set_white_file) - - - def tab2UI(self): - layout = QFormLayout() - self.aliens = QLineEdit() - layout.addRow("aliens", self.aliens) - self.amp_threshold = QLineEdit() - layout.addRow("amp_threshold", self.amp_threshold) - self.binning = QLineEdit() - layout.addRow("binning", self.binning) - self.center_shift = QLineEdit() - layout.addRow("center_shift", self.center_shift) - self.adjust_dimensions = QLineEdit() - layout.addRow("adjust_dimensions", self.adjust_dimensions) - self.config_data_button = QPushButton('model data', self) - layout.addWidget(self.config_data_button) - self.tab2.setLayout(layout) - - # this will create config_data file and run data script - # to generate data ready for recondtruction - self.config_data_button.clicked.connect(self.model_data) - - - def tab3UI(self): - layout = QVBoxLayout() - ulayout = QFormLayout() - llayout = QHBoxLayout() - self.cont = QCheckBox() - ulayout.addRow("continuation", self.cont) - self.cont.setChecked(False) - self.device = QLineEdit() - ulayout.addRow("device(s)", self.device) - self.threads = QLineEdit() - ulayout.addRow("number of threads", self.threads) - self.gc = QLineEdit() - ulayout.addRow("gc triggers", self.gc) - self.alg_seq = QLineEdit() - ulayout.addRow("algorithm sequence", self.alg_seq) - # TODO add logic to show this only if HIO is in sequence - self.beta = QLineEdit() - ulayout.addRow("beta", self.beta) - self.rec_default_button = QPushButton('set to defaults', self) - ulayout.addWidget(self.rec_default_button) - - layout.addLayout(ulayout) - layout.addLayout(llayout) - self.features = Features(self, llayout) - self.config_rec_button = QPushButton('run reconstruction', self) - layout.addWidget(self.config_rec_button) - self.tab3.setAutoFillBackground(True) - self.tab3.setLayout(layout) - - self.config_rec_button.clicked.connect(self.reconstruction) - self.cont.stateChanged.connect(lambda: self.toggle_cont(ulayout)) - self.rec_default_button.clicked.connect(self.rec_default) - - - def toggle_cont(self, layout): - cb_label = layout.labelForField(self.cont) - if self.cont.isChecked(): - self.cont_dir = QLineEdit() - layout.insertRow(2, "continue dir", self.cont_dir) - cb_label.setStyleSheet('color: black') - else: - label = layout.labelForField(self.cont_dir) - self.cont_dir.setParent(None) - label.setParent(None) - cb_label.setStyleSheet('color: grey') - - - def tab4UI(self): - layout = QFormLayout() - self.crop = QLineEdit() - layout.addRow("crop", self.crop) - self.config_disp_button = QPushButton('process display', self) - layout.addWidget(self.config_disp_button) - self.tab4.setLayout(layout) - - self.config_disp_button.clicked.connect(self.display) - - - def set_spec_file(self): - self.specfile = select_file(self.specfile) - self.spec_file_button.setStyleSheet("Text-align:left") - self.spec_file_button.setText(self.specfile) - - - def set_dark_file(self): - self.darkfile = select_file(self.darkfile) - self.dark_file_button.setStyleSheet("Text-align:left") - self.dark_file_button.setText(self.darkfile) - - - def set_white_file(self): - self.whitefile = select_file(self.whitefile) - self.white_file_button.setStyleSheet("Text-align:left") - self.white_file_button.setText(self.whitefile) - - - def set_data_dir(self): - self.data_dir = select_dir(self.data_dir) - self.data_dir_button.setStyleSheet("Text-align:left") - self.data_dir_button.setText(self.data_dir) - - - def prepare(self): - scan = str(self.main_win.scan_widget.text()) - if self.main_win.working_dir is None or \ - self.main_win.id is None or\ - scan is None or \ - self.data_dir is None or \ - self.specfile is None: - print ('enter all parameters: working_dir, id, scan, data_dir, specfile') - return - - try: - # after checking that scan is entered convert it to list of int - scan_range = scan.split('-') - for i in range(len(scan_range)): - scan_range[i] = int(scan_range[i]) - except: - print('enter numeric values for scan range') - - conf_map = {} - if len(self.main_win.working_dir) > 0: - conf_map['working_dir'] = '"' + str(self.main_win.working_dir) + '"' - else: - print ("working_dir not defined") - if len(self.data_dir) > 0: - conf_map['data_dir'] = '"' + str(self.data_dir) + '"' - else: - print ("data_dir not defined") - if len(self.specfile) > 0: - conf_map['specfile'] = '"' + str(self.specfile) + '"' - else: - print ("specfile not defined") - if len(self.darkfile) > 0: - conf_map['darkfile'] = '"' + str(self.darkfile) + '"' - else: - print ("darkfile not defined") - if len(self.whitefile) > 0: - conf_map['whitefile'] = '"' + str(self.whitefile) + '"' - else: - print ("whitefile not defined") - - conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') - write_conf(conf_map, conf_dir, 'config') - - prep.prepare(self.main_win.working_dir, self.main_win.exp_id, scan_range, self.data_dir, self.specfile, self.darkfile, self.whitefile) - - - def model_data(self): - conf_map = {} - if len(self.aliens.text()) > 0: - conf_map['aliens'] = str(self.aliens.text()).replace('\n','') - else: - print ("aliens not defined") - if len(self.amp_threshold.text()) > 0: - conf_map['amp_threshold'] = str(self.amp_threshold.text()) - else: - print ('amplitude threshold not defined. Quiting operation.') - return - if len(self.binning.text()) > 0: - conf_map['binning'] = str(self.binning.text()).replace('\n','') - else: - print ("binning not defined") - if len(self.center_shift.text()) > 0: - conf_map['center_shift'] = str(self.center_shift.text()).replace('\n','') - else: - print ("center shift not defined") - if len(self.adjust_dimensions.text()) > 0: - conf_map['adjust_dimensions'] = str(self.adjust_dimensions.text()).replace('\n','') - else: - print ("adjust dimensions not defined") - - #self.create_config('config_data', conf_map) - conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') - write_conf(conf_map, conf_dir, 'config_data') - - run_dt.data(self.main_win.experiment_dir) - - - def reconstruction(self): - conf_map = {} - conf_map['threads'] = str(self.threads.text()) - conf_map['device'] = str(self.device.text()).replace('\n','') - conf_map['garbage_trigger'] = str(self.gc.text()).replace('\n','') - conf_map['algorithm_sequence'] = str(self.alg_seq.text()).replace('\n','') - conf_map['beta'] = str(self.beta.text()) - if self.cont.isChecked(): - conf_map['continue_dir'] = str(self.cont_dir.text()) - - for feat_id in self.features.feature_dir: - self.features.feature_dir[feat_id].add_config(conf_map) - - #self.create_config('config_rec', conf_map) - conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') - write_conf(conf_map, conf_dir, 'config_rec') - - run_rc.reconstruction('cpu', self.main_win.experiment_dir) - - - def display(self): - if len(self.crop.text()) == 0: - print ('crop not configured') - - disp_conf_file = os.path.join(self.main_win.experiment_dir, 'conf', 'config_disp') - temp_file = os.path.join(self.main_win.experiment_dir, 'conf', 'temp') - with open(temp_file, 'a') as temp: - try: - with open(disp_conf_file, 'r') as f: - for line in f: - if not line.startswith('crop') and not line.startswith('binning'): - temp.write(line) - f.close() - except: - pass - - if len(self.crop.text()) != 0: - temp.write('crop = ' + str(self.crop.text()) + '\n') - - temp.close() - shutil.move(temp_file, disp_conf_file) - - run_dp.to_vtk(self.main_win.experiment_dir) - - - def rec_default(self): - if self.main_win.working_dir is None or self.main_win.id is None or \ - len(self.main_win.working_dir) == 0 or len(self.main_win.id) == 0: - print ('Working Directory or Reconstruction ID not configured') - else: - self.threads.setText('1') - self.device.setText('(3)') - self.gc.setText('(1000)') - self.alg_seq.setText('((3,("ER",20),("HIO",180)),(1,("ER",20)))') - self.beta.setText('.9') - self.cont.setChecked(False) - - -class Feature(object): - def __init__(self): - self.stack = QWidget() - - - def stackUI(self, item, feats): - layout = QFormLayout() - self.active = QCheckBox("active") - self.active.setChecked(True) - layout.addWidget(self.active) - self.toggle(layout, item, feats) - self.stack.setLayout(layout) - self.active.stateChanged.connect(lambda: self.toggle(layout, item, feats)) - - - def toggle(self, layout, item, feats): - if self.active.isChecked(): - self.fill_active(layout) - - self.default_button = QPushButton('set to defaults', feats) - layout.addWidget(self.default_button) - self.default_button.clicked.connect(self.rec_default) - - item.setForeground(QColor('black')); - else: - for i in reversed(range(1, layout.count())): - layout.itemAt(i).widget().setParent(None) - item.setForeground(QColor('grey')); - - def fill_active(self, layout): - pass - - - def rec_default(self): - pass - - - def add_config(self, conf_map): - if self.active.isChecked(): - self.add_feat_conf(conf_map) - - def add_feat_conf(self, conf_map): - pass - - - def init_config(self, conf_map): - pass - - -class GA(Feature): - def __init__(self): - super(GA, self).__init__() - self.id = 'GA' - - # override setting the active to set it False - def stackUI(self, item, feats): - super(GA, self).stackUI(item, feats) - self.active.setChecked(False) - - - def fill_active(self, layout): - self.generations = QLineEdit() - layout.addRow("generations", self.generations) - self.lr_generations = QLineEdit() - layout.addRow("low resolution generations", self.lr_generations) - self.lr_sigma_alg = QLineEdit() - layout.addRow("low resolution sigma algorithm", self.lr_sigma_alg) - self.lr_sigmas = QLineEdit() - layout.addRow("low resolution sigmas", self.lr_sigmas) - self.lr_sigma_min = QLineEdit() - layout.addRow("low resolution sigma min", self.lr_sigma_min) - self.lr_sigma_max = QLineEdit() - layout.addRow("low resolution sigma max", self.lr_sigma_max) - self.lr_scale_power = QLineEdit() - layout.addRow("low resolution scale power", self.lr_scale_power) - self.lr_algorithm = QLineEdit() - layout.addRow("low resolution algorithm", self.lr_algorithm) - - - def add_feat_conf(self, conf_map): - conf_map['generations'] = str(self.generations.text()) - conf_map['low_resolution_generations'] = str(self.lr_generations.text()) - conf_map['low_resolution_sigma_alg'] = str(self.lr_sigma_alg.text()) - conf_map['low_resolution_sigmas'] = str(self.lr_sigmas.text()) - conf_map['low_resolution_sigma_min'] = str(self.lr_sigma_min.text()) - conf_map['low_resolution_sigma_max'] = str(self.lr_sigma_max.text()) - conf_map['low_resolution_scale_power'] = str(self.lr_scale_power.text()) - conf_map['low_resolution_alg'] = str(self.lr_algorithm.text()) - - -class low_resolution(Feature): - def __init__(self): - super(low_resolution, self).__init__() - self.id = 'low resolution' - - - def init_config(self, conf_map): - try: - self.res_triggers.setText(str(conf_map.resolution_trigger).replace(" ", "")) - except AttributeError: - pass - try: - self.sigma_range.setText(str(conf_map.iter_res_sigma_range).replace(" ", "")) - except AttributeError: - pass - try: - self.det_range.setText(str(conf_map.iter_res_det_range).replace(" ", "")) - except AttributeError: - pass - - - def fill_active(self, layout): - self.res_triggers = QLineEdit() - layout.addRow("low resolution triggers", self.res_triggers) - self.sigma_range = QLineEdit() - layout.addRow("sigma range", self.sigma_range) - self.det_range = QLineEdit() - layout.addRow("det range", self.det_range) - - - def rec_default(self): - #TODO add to accept fractions in trigger, so the default will be (.5,1) - self.res_triggers.setText('(0, 1, 320)') - self.sigma_range.setText('(2.0)') - self.det_range.setText('(.7)') - - - def add_feat_conf(self, conf_map): - conf_map['resolution_trigger'] = str(self.res_triggers.text()).replace('\n','') - conf_map['iter_res_sigma_range'] = str(self.sigma_range.text()).replace('\n','') - conf_map['iter_res_det_range'] = str(self.det_range.text()).replace('\n','') - - -class amplitude_support(Feature): - def __init__(self): - super(amplitude_support, self).__init__() - self.id = 'amplitude support' - - - def init_config(self, conf_map): - try: - self.support_triggers.setText(str(conf_map.amp_support_trigger).replace(" ", "")) - except AttributeError: - pass - try: - self.support_type.setText(str(conf_map.support_type).replace(" ", "")) - except AttributeError: - pass - try: - self.support_area.setText(str(conf_map.support_area).replace(" ", "")) - except AttributeError: - pass - try: - self.threshold.setText(str(conf_map.support_threshold).replace(" ", "")) - except AttributeError: - pass - try: - self.sigma.setText(str(conf_map.support_sigma).replace(" ", "")) - except AttributeError: - pass - - - def fill_active(self, layout): - self.support_triggers = QLineEdit() - layout.addRow("support triggers", self.support_triggers) - self.support_type = QLineEdit() - layout.addRow("support algorithm", self.support_type) - self.support_area = QLineEdit() - layout.addRow("starting support area", self.support_area) - self.threshold = QLineEdit() - layout.addRow("threshold", self.threshold) - self.sigma = QLineEdit() - layout.addRow("sigma", self.sigma) - - - def rec_default(self): - self.support_triggers.setText('(1,1)') - self.support_type.setText('"GAUSS"') - self.support_area.setText('[.5,.5,.5]') - self.sigma.setText('1.0') - self.threshold.setText('0.1') - - - def add_feat_conf(self, conf_map): - conf_map['amp_support_trigger'] = str(self.support_triggers.text()).replace('\n','') - conf_map['support_type'] = '"' + str(self.support_type.text()) + '"' - conf_map['support_threshold'] = str(self.threshold.text()) - conf_map['support_sigma'] = str(self.sigma.text()) - conf_map['support_area'] = str(self.support_area.text()).replace('\n','') - - -class phase_support(Feature): - def __init__(self): - super(phase_support, self).__init__() - self.id = 'phase support' - - - def init_config(self, conf_map): - try: - self.phase_triggers.setText(str(conf_map.phase_support_trigger).replace(" ", "")) - except AttributeError: - pass - try: - self.phase_min.setText(str(conf_map.phase_min).replace(" ", "")) - except AttributeError: - pass - try: - self.phase_max.setText(str(conf_map.phase_max).replace(" ", "")) - except AttributeError: - pass - - - def fill_active(self, layout): - self.phase_triggers = QLineEdit() - layout.addRow("phase support triggers", self.phase_triggers) - self.phase_min = QLineEdit() - layout.addRow("phase minimum", self.phase_min) - self.phase_max = QLineEdit() - layout.addRow("phase maximum", self.phase_max) - - - def rec_default(self): - self.phase_triggers.setText('(0,1,20)') - self.phase_min.setText('-1.57') - self.phase_max.setText('1.57') - - - def add_feat_conf(self, conf_map): - conf_map['phase_support_trigger'] = str(self.phase_triggers.text()).replace('\n','') - conf_map['phase_min'] = str(self.phase_min.text()) - conf_map['phase_max'] = str(self.phase_max.text()) - - -class pcdi(Feature): - def __init__(self): - super(pcdi, self).__init__() - self.id = 'pcdi' - - - def init_config(self, conf_map): - try: - self.pcdi_triggers.setText(str(conf_map.pcdi_trigger).replace(" ", "")) - except AttributeError: - pass - try: - self.pcdi_type.setText(str(conf_map.partial_coherence_type).replace(" ", "")) - except AttributeError: - pass - try: - self.pcdi_iter.setText(str(conf_map.partial_coherence_iteration_num).replace(" ", "")) - except AttributeError: - pass - try: - self.pcdi_normalize.setText(str(conf_map.partial_coherence_normalize).replace(" ", "")) - except AttributeError: - pass - try: - self.pcdi_roi.setText(str(conf_map.partial_coherence_roi).replace(" ", "")) - except AttributeError: - pass - - - def fill_active(self, layout): - self.pcdi_triggers = QLineEdit() - layout.addRow("pcdi triggers", self.pcdi_triggers) - self.pcdi_type = QLineEdit() - layout.addRow("partial coherence algorithm", self.pcdi_type) - self.pcdi_iter = QLineEdit() - layout.addRow("pcdi iteration number", self.pcdi_iter) - self.pcdi_normalize = QLineEdit() - layout.addRow("normalize", self.pcdi_normalize) - self.pcdi_roi = QLineEdit() - layout.addRow("pcdi kernel area", self.pcdi_roi) - - - def rec_default(self): - self.pcdi_triggers.setText('(50,50)') - self.pcdi_type.setText('"LUCY"') - self.pcdi_iter.setText('20') - self.pcdi_normalize.setText('true') - self.pcdi_roi.setText('[32,32,16]') - - - def add_feat_conf(self, conf_map): - conf_map['pcdi_trigger'] = str(self.pcdi_triggers.text()).replace('\n','') - conf_map['partial_coherence_type'] = '"' + str(self.pcdi_type.text()) + '"' - conf_map['partial_coherence_iteration_num'] = str(self.pcdi_iter.text()) - conf_map['partial_coherence_normalize'] = str(self.pcdi_normalize.text()) - conf_map['partial_coherence_roi'] = str(self.pcdi_roi.text()).replace('\n','') - - -class twin(Feature): - def __init__(self): - super(twin, self).__init__() - self.id = 'twin' - - - def init_config(self, conf_map): - try: - self.twin_triggers.setText(str(conf_map.twin_trigger).replace(" ", "")) - except AttributeError: - pass - - - def fill_active(self, layout): - self.twin_triggers = QLineEdit() - layout.addRow("twin triggers", self.twin_triggers) - - - def rec_default(self): - self.twin_triggers.setText('(2)') - - - def add_feat_conf(self, conf_map): - conf_map['twin_trigger'] = str(self.twin_triggers.text()).replace('\n','') - - -class average(Feature): - def __init__(self): - super(average, self).__init__() - self.id = 'average' - - - def init_config(self, conf_map): - try: - self.average_triggers.setText(str(conf_map.average_trigger).replace(" ", "")) - except AttributeError: - pass - - - def fill_active(self, layout): - self.average_triggers = QLineEdit() - layout.addRow("average triggers", self.average_triggers) - - - def rec_default(self): - self.average_triggers.setText('(-400,1)') - - - def add_feat_conf(self, conf_map): - conf_map['avarage_trigger'] = str(self.average_triggers.text()).replace('\n','') - - - -class Features(QWidget): - def __init__(self, tab, layout): - super(Features, self).__init__() - feature_ids = ['GA', 'low resolution', 'amplitude support', 'phase support', 'pcdi', 'twin', 'average'] - self.leftlist = QListWidget() - self.feature_dir = {'GA' : GA(), - 'low resolution' : low_resolution(), - 'amplitude support' : amplitude_support(), - 'phase support' : phase_support(), - 'pcdi' : pcdi(), - 'twin' : twin(), - 'average' : average()} - self.Stack = QStackedWidget(self) - for i in range(len(feature_ids)): - id = feature_ids[i] - self.leftlist.insertItem(i, id) - feature = self.feature_dir[id] - feature.stackUI(self.leftlist.item(i), self) - self.Stack.addWidget(feature.stack) - - layout.addWidget(self.leftlist) - layout.addWidget(self.Stack) - - self.leftlist.currentRowChanged.connect(self.display) - - - def display(self, i): - self.Stack.setCurrentIndex(i) - - -def main(): - app = QApplication(sys.argv) - ex = cdi_conf() - ex.show() - sys.exit(app.exec_()) - - -if __name__ == '__main__': - main() \ No newline at end of file From 6455662a57ef27a2af534f569568d7ad89381742 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Fri, 15 Feb 2019 14:14:38 -0600 Subject: [PATCH 117/336] synched with beamline code updated display scripts --- bin/cdi_window.py | 2 +- reccdi/src_py/run_scripts/run_disp.py | 42 ++-- reccdi/src_py/utilities/CXDVizNX.py | 6 +- reccdi/src_py/utilities/utils_post.py | 294 -------------------------- 4 files changed, 31 insertions(+), 313 deletions(-) delete mode 100644 reccdi/src_py/utilities/utils_post.py diff --git a/bin/cdi_window.py b/bin/cdi_window.py index 20cee87..1a695c5 100644 --- a/bin/cdi_window.py +++ b/bin/cdi_window.py @@ -450,7 +450,7 @@ def display(self): pass if len(self.crop.text()) != 0: - temp.write('crop = ' + str(self.crop.text()) + '\n') + temp.write('crop = ' + str(self.crop.text()).replace('\n','') + '\n') temp.close() shutil.move(temp_file, disp_conf_file) diff --git a/reccdi/src_py/run_scripts/run_disp.py b/reccdi/src_py/run_scripts/run_disp.py index 60e35ec..4cd46bd 100755 --- a/reccdi/src_py/run_scripts/run_disp.py +++ b/reccdi/src_py/run_scripts/run_disp.py @@ -27,19 +27,6 @@ def to_vtk(conf_info): if os.path.isdir(conf_info): experiment_dir = conf_info conf = os.path.join(experiment_dir, 'conf', 'config_disp') - # read binning info from config_data file in the same directory - conf_data = os.path.join(experiment_dir, 'conf', 'config_data') - binning_info = None - with open(conf_data, 'r') as f: - lines = f.readlines() - for line in lines: - if line.startswith("binning"): - binning_info = line + '\n' - break - # write the binning line into 'config_disp' file - if binning_info is not None: - with open(conf, "a") as f: - f.write(binning_info) else: #assuming it's a file conf = conf_info @@ -49,16 +36,39 @@ def to_vtk(conf_info): print ("can't read configuration file") return + # remove the binning if found + with open(conf, 'r+') as f: + lines = f.readlines() + f.seek(0) + for line in lines: + if not line.startswith('binning'): + f.write(line) + f.truncate() + f.close() + + # read binning info from config_data file in the conf directory + conf_data = os.path.join(experiment_dir, 'conf', 'config_data') + binning_info = None + with open(conf_data, 'r') as f: + lines = f.readlines() + for line in lines: + if line.startswith("binning"): + binning_info = line + '\n' + break + # write the binning line into 'config_disp' file + if binning_info is not None: + with open(conf, "a") as f: + f.write(binning_info) + try: save_dir = config_map.save_dir except AttributeError: save_dir = os.path.join(experiment_dir, 'results') save_vtk(save_dir, conf) - print ('save dir', save_dir) + print ('saving results in dir', save_dir) for sub in os.listdir(save_dir): subdir = os.path.join(save_dir, sub) - print ('subdir', subdir) if os.path.isdir(subdir): save_vtk(subdir, conf) @@ -76,4 +86,4 @@ def main(arg): if __name__ == "__main__": main(sys.argv[1:]) -#python run_disp.py experiment_dir +#python run_disp.py experiment_dir \ No newline at end of file diff --git a/reccdi/src_py/utilities/CXDVizNX.py b/reccdi/src_py/utilities/CXDVizNX.py index 90d3c33..9ce19fd 100644 --- a/reccdi/src_py/utilities/CXDVizNX.py +++ b/reccdi/src_py/utilities/CXDVizNX.py @@ -67,8 +67,10 @@ def __init__(self, config): binning = [1,1,1] try: pixel = config_map.pixel - self.dpx = pixel[0] * binning[1] / self.arm - self.dpy = pixel[1] * binning[2] / self.arm + #self.dpx = pixel[0] * binning[1] / self.arm + #self.dpy = pixel[1] * binning[2] / self.arm + self.dpx = pixel[0] * binning[2] / self.arm + self.dpy = pixel[1] * binning[1] / self.arm except AttributeError: print ('pixel not defined') try: diff --git a/reccdi/src_py/utilities/utils_post.py b/reccdi/src_py/utilities/utils_post.py deleted file mode 100644 index e6ced24..0000000 --- a/reccdi/src_py/utilities/utils_post.py +++ /dev/null @@ -1,294 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -# ######################################################################### -# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # -# # -# See LICENSE file. # -# ######################################################################### - -""" -This module is a suite of utility mehods. -""" - -import pylibconfig2 as cfg -import os -from tvtk.api import tvtk -import numpy as np -import math as m -from traits.api import * - -class DispalyParams: - """ - This class encapsulates parameters defining image display. The parameters are read from config file on - construction - """ - - def __init__(self, config): - """ - The constructor gets config file and fills out the class members. - Parameters - ---------- - conf : str - configuration file name - Returns - ------- - none - """ - - if os.path.isfile(config): - with open(config, 'r') as f: - config_map = cfg.Config(f.read()) - deg2rad = np.pi / 180.0 - try: - self.lamda = config_map.lamda - except AttributeError: - print ('lamda not defined') - try: - self.delta = config_map.delta * deg2rad - except AttributeError: - print ('delta not defined') - try: - self.gamma = config_map.gamma * deg2rad - except AttributeError: - print ('gamma not defined') - try: - self.arm = config_map.arm - except AttributeError: - print ('arm not defined') - try: - self.dth = config_map.dth * deg2rad - except AttributeError: - print ('dth not defined') - try: - pixel = config_map.pixel - self.dpx = pixel[0] / self.arm - self.dpy = pixel[1] / self.arm - except AttributeError: - print ('pixel not defined') - try: - self.save_two_files = config_map.save_two_files - except AttributeError: - print ('save_two_files not defined') - try: - self.crop = config_map.crop - except AttributeError: - self.crop = None - print ('crop not defined') - - def get_geometry(self): - """ - The class method calculates geometry of display based on the configuration parameters. - It returns calculated geometry as array. - Parameters - ---------- - none - Returns - ------- - numpy.array - an array defining geometry - """ - dQdpx = np.zeros(3) - dQdpy = np.zeros(3) - dQdth = np.zeros(3) - Astar = np.zeros(3) - Bstar = np.zeros(3) - Cstar = np.zeros(3) - - dQdpx[0] = -m.cos(self.delta) * m.cos(self.gamma) - dQdpx[1] = 0.0 - dQdpx[2] = +m.sin(self.delta) * m.cos(self.gamma) - - dQdpy[0] = m.sin(self.delta) * m.sin(self.gamma) - dQdpy[1] = -m.cos(self.gamma) - dQdpy[2] = m.cos(self.delta) * m.sin(self.gamma) - - dQdth[0] = -m.cos(self.delta) * m.cos(self.gamma) + 1.0 - dQdth[1] = 0.0 - dQdth[2] = m.sin(self.delta) * m.cos(self.gamma) - - Astar[0] = 2 * m.pi / self.lamda * self.dpx * dQdpx[0] - Astar[1] = 2 * m.pi / self.lamda * self.dpx * dQdpx[1] - Astar[2] = 2 * m.pi / self.lamda * self.dpx * dQdpx[2] - - Bstar[0] = (2 * m.pi / self.lamda) * self.dpy * dQdpy[0] - Bstar[1] = (2 * m.pi / self.lamda) * self.dpy * dQdpy[1] - Bstar[2] = (2 * m.pi / self.lamda) * self.dpy * dQdpy[2] - - Cstar[0] = (2 * m.pi / self.lamda) * self.dth * dQdth[0] - Cstar[1] = (2 * m.pi / self.lamda) * self.dth * dQdth[1] - Cstar[2] = (2 * m.pi / self.lamda) * self.dth * dQdth[2] - - denom = np.dot(Astar, np.cross(Bstar, Cstar)) - A = 2 * m.pi * np.cross(Bstar, Cstar) / denom - B = 2 * m.pi * np.cross(Cstar, Astar) / denom - C = 2 * m.pi * np.cross(Astar, Bstar) / denom - - return np.array((A, B, C)) - - -def crop_array_center(ar, crop): - """ - This method returns cropped array from the given array ar. The crop is taken from the center of the array - and the size is defined by crop. If any of the crop value is either equal zero or less, or is greater than - the corresponding array dimension, the crop value defaults to that dimension. - Parameters - ---------- - ar : numpy.array - array to be cropped - crop : tuple - the dimension of new cropped array - Returns - ------- - cropped array - """ - - dims = list(ar.shape) - if len(dims) == 2: - dims.append(1) - cropx = crop[0] - cropy = crop[1] - cropz = crop[2] - if dims[0] > cropx and cropx > 0: - x = cropx - else: - x = dims[0] - startx = dims[0] / 2 - x / 2 - endx = dims[0] / 2 + x / 2 - if startx == endx: - endx += 1 - - if dims[1] > cropy and cropy > 0: - y = cropy - else: - y = dims[1] - starty = dims[1] / 2 - y / 2 - endy = dims[1] / 2 + y / 2 - if starty == endy: - endy += 1 - - if dims[2] > cropz and cropz > 0: - z = cropz - else: - z = dims[2] - startz = dims[2] / 2 - z / 2 - endz = dims[2] / 2 + z / 2 - if startz == endz: - endz += 1 - - return ar[startx:endx, starty:endy, startz:endz] - - -def get_coords(dims, geometry): - """ - This method calculates grid based on array dimension, configuration parameters coordinates, and - geometry. - Parameters - ---------- - dims : tuple - displayed array dimension - dx : int - the configured x coordinate - dy : int - the configured y coordinate - dz : int - the configured z coordinate - geometry : array - an array defining geometry, calculated from configuration parameters - Returns - ------- - grid - """ - dx = 1.0 / dims[1] - dy = 1.0 / dims[0] - dz = 1.0 / dims[2] - - r = np.mgrid[(dims[1] - 1) * dx:-dx:-dx, 0:dims[0] * dy:dy, 0:dims[2] * dz:dz] - r.shape = 3, dims[0] * dims[1] * dims[2] - r = r.transpose() - return np.dot(r, geometry) - - -def write_array(sg, filename): - """ - This method writes initialized StructuredGrid object into given file. - Parameters - ---------- - sg : StructuredGrid - an instance of vtkt.StructuredGrid initialized with data - filename : str - name of the file the image will be written to - Returns - ------- - none - """ - - writer = tvtk.StructuredGridWriter() - writer.file_type = 'binary' - writer.file_name = filename - writer.set_input_data(sg) - writer.write() - - -def write_to_vtk(conf, ar, filename): - """ - This function writes a numpy array into vtk format file. - It reads configuration into DispalyParams object. - The given array is cropped to the configured size if the crop parameter is defined in configuration file. - Based on configuration parameters the grid needed for the tvtk StructuredGrid is calculated. - Other StructuredGrid attributes are set. - The initialized StructuredGrid object is then written into vtk type file. If configuration parameter - save_two_files is set to True, one file will be saved for amplitudes with "_Amp.vtk" ending, and one for - phases with "_Phase.vtk" ending. Otherwise, a single file will be saved that contains double array - with amplitudes a nd phases. - Parameters - ---------- - conf : str - configuration file name - - ar : numpy array - a complex array thatwill be saved - filename : str - a prefix to an output filename - Returns - ------- - none - """ - params = DispalyParams(conf) - - if params.crop is None: - dims = ar.shape - arr_cropped = ar.ravel() - else: - dims = params.crop - arr_cropped = crop_array_center(ar, params.crop).ravel() - - amps = np.abs(arr_cropped) - phases = np.arctan2(arr_cropped.imag, arr_cropped.real) - - geometry = params.get_geometry() - coordinates = get_coords(dims, geometry) - - sg = tvtk.StructuredGrid() - sg.points = coordinates - sg.dimensions = (dims[2], dims[1], dims[0]) - sg.extent = 0, dims[2] - 1, 0, dims[1] - 1, 0, dims[0] - 1 - if params.save_two_files: - sg.point_data.scalars = amps - sg.point_data.scalars.name = "Amp" - write_array(sg, filename + "_Amp.vtk") - - sg.point_data.scalars = phases - sg.point_data.scalars.name = "Phase" - write_array(sg, filename + "_Phase.vtk") - else: - sg.point_data.scalars = amps - sg.point_data.scalars.name = "Amp" - ph = tvtk.FloatArray() - ph.from_array(phases) - ph.name = "Phase" - sg.point_data.add_array(ph) - - - write_array(sg, filename + ".vtk") - From 37823b78566b67922ad13701a7966f6d92ce95b4 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Thu, 21 Feb 2019 14:43:44 -0600 Subject: [PATCH 118/336] fixed aliens, added code to capture files before and after aliens --- reccdi/src_py/controller/data.py | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/reccdi/src_py/controller/data.py b/reccdi/src_py/controller/data.py index 358bc16..02a18b8 100644 --- a/reccdi/src_py/controller/data.py +++ b/reccdi/src_py/controller/data.py @@ -20,7 +20,7 @@ import numpy as np import reccdi.src_py.utilities.utils as ut import os - +import tifffile as tif __author__ = "Barbara Frosik" __copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." @@ -72,16 +72,41 @@ def prep(fname, conf_info): print ("can't read configuration file") return + # saving file for Kenley project - AI aliens removing + print ('saving for AI') + d_f = os.path.join(experiment_dir, 'prep', 'prep_data.npy') + np.save(d_f, data) + print ('data dimensions before prep', data.shape) # zero out the aliens, aliens are the same for each data prep try: aliens = config_map.aliens print ('removing aliens') for alien in aliens: - data[alien[0]:alien[3], alien[1]:alien[4], alien[2]:alien[5]] = 0 + data[alien[2]:alien[5], alien[1]:alien[4], alien[0]:alien[3]] = 0 + # saving file for Kenley project - AI aliens removing + aliens_f = os.path.join(experiment_dir, 'prep', 'aliens') + with open(aliens_f, 'a') as a_f: + try: + with open(conf, 'r') as f: + for line in f: + if line.startswith('aliens'): + a_f.write(line + '\n') + break + f.close() + a_f.close() + except: + pass + except AttributeError: pass + # saving file for Kenley project - AI aliens removing + d_f = os.path.join(experiment_dir, 'prep', 'prep_no_aliens.npy') + np.save(d_f, data) + d_f = os.path.join(experiment_dir, 'prep', 'prep_no_aliens.tif') + tif.imsave(d_f, data.astype(np.int32)) + try: amp_threshold = config_map.amp_threshold print ('applied threshold') From ffc98fec5bc13269c7acdf64f4bc20cc12a547aa Mon Sep 17 00:00:00 2001 From: bfrosik Date: Tue, 12 Mar 2019 13:19:45 -0500 Subject: [PATCH 119/336] Added utils_ga for the genetic algorithm functions. tested the code with Matlab. --- bin/cdi_window.sh | 2 +- conf/defaults/config_rec | 21 +- how_to_run | 2 +- init.sh | 1 + reccdi/src_cpp/support.cpp | 2 +- reccdi/src_cpp/util.cpp | 1 - reccdi/src_py/controller/gen_rec.py | 327 +++++++++++++----- reccdi/src_py/controller/reconstruction.py | 5 +- .../src_py/controller/reconstruction_multi.py | 31 +- reccdi/src_py/run_scripts/run_disp.py | 9 +- reccdi/src_py/utilities/CXDVizNX.py | 9 +- reccdi/src_py/utilities/utils.py | 175 +++++++--- reccdi/src_py/utilities/utils_ga.py | 230 ++++++++++++ 13 files changed, 655 insertions(+), 160 deletions(-) create mode 100644 reccdi/src_py/utilities/utils_ga.py diff --git a/bin/cdi_window.sh b/bin/cdi_window.sh index 40012ae..d190722 100644 --- a/bin/cdi_window.sh +++ b/bin/cdi_window.sh @@ -6,5 +6,5 @@ p=${p//"anaconda2"/"anaconda3"} p=${p//"CXDUSER/anaconda"/"CXDUSER/CDI/anaconda"} export PATH=$p -export LD_LIBRARY_PATH=/home/beams/CXDUSER/CDI/libconfig/lib:/usr/local/lib:/home/beams/CXDUSER/CDI/arrayfire/lib/:/local/cuda-9.0/lib64:/local/cuda-9.0/nvvm/lib64 +export LD_LIBRARY_PATH=LIB_PATH python bin/cdi_conf_window.py diff --git a/conf/defaults/config_rec b/conf/defaults/config_rec index 8be8084..9e61d89 100644 --- a/conf/defaults/config_rec +++ b/conf/defaults/config_rec @@ -1,4 +1,4 @@ -threads = 2 +//threads = 2, replaced by species //device = (4) generations = 1 @@ -77,6 +77,8 @@ garbage_trigger = (1,1) // GENERATIONS //generations = 2 // number of generations +//species = 2 // number of species in first generation + //low_resolution_generations = 0 // number of generations low resolution is applied to, starting from first gen @@ -107,6 +109,23 @@ garbage_trigger = (1,1) // algorithm to use to apply resolution. Supported algorithms: // GAUSS +//metric = "chi" // defines ranking mechanism + // "sharpness" by sharpness, best with smallest sharpness + // "summed_phase", by summed phase, best with the highest value + // "area", by area, best with the highest value + // "chi", by error (last iteration), best with the smallest value + // "TV" + +//is_cross_breed = True // If True the genetic algorithm will use the best two from previous + // generation for breeding + +//breed_modes = ['sqrt_ab', 'none'] + // defines how to breed next generation + // default for generation 'none' +//worst_remove_no = [0, 0] + // numbers of species to remove from subsequent generation + // default for generation 0 + // RECONSTRUCTION PARAMETERS USED BY FAST MODULE // modulus projection algorithm sequence diff --git a/how_to_run b/how_to_run index dc721bb..0eef4ee 100644 --- a/how_to_run +++ b/how_to_run @@ -31,7 +31,7 @@ example: 1. running all pieces source bin/everything.sh 'opencl' 'B' '290-290' 'conf/last' 2. running one by one -python bin/run_34id_prepare.py 'B' '290-290' 'conf/defaults' +python bin/run_34id_prepare.py 'B' '290-290' 'conf/last' python bin/run_data.py '/net/s34data/export/34idc-data/2018/Chung1118/test/B_290-290' source bin/run_rec.sh 'opencl' '/net/s34data/export/34idc-data/2018/Chung1118/test/B_290-290' python bin/run_disp.py '/net/s34data/export/34idc-data/2018/Chung1118/test/B_290-290' diff --git a/init.sh b/init.sh index 012acf7..8bbd6ae 100644 --- a/init.sh +++ b/init.sh @@ -19,6 +19,7 @@ export LD_LIBRARY_PATH=$lc_dir/lib:/usr/local/lib:$af_dir/lib/:$cuda_dir/lib64:$ lib_path='LIB_PATH' sed -i 's?'$lib_path'?'$lc_dir/lib:/usr/local/lib:$af_dir/lib/:$cuda_dir/lib64:$cuda_dir/nvvm/lib64'?g' bin/everything.sh sed -i 's?'$lib_path'?'$lc_dir/lib:/usr/local/lib:$af_dir/lib/:$cuda_dir/lib64:$cuda_dir/nvvm/lib64'?g' bin/run_rec.sh +sed -i 's?'$lib_path'?'$lc_dir/lib:/usr/local/lib:$af_dir/lib/:$cuda_dir/lib64:$cuda_dir/nvvm/lib64'?g' bin/cdi_window.sh echo -n "enter data type (float/double) > " read data_type diff --git a/reccdi/src_cpp/support.cpp b/reccdi/src_cpp/support.cpp index a4e6e7a..ad31606 100644 --- a/reccdi/src_cpp/support.cpp +++ b/reccdi/src_cpp/support.cpp @@ -56,7 +56,7 @@ void Support::UpdateAmp(const af::array ds_image, d_type sig, int iter) last_sigma = sig; update_iter = iter; -// printf("support sum %f\n", sum(support_array)); + } void Support::UpdatePhase(const af::array ds_image, int iter) diff --git a/reccdi/src_cpp/util.cpp b/reccdi/src_cpp/util.cpp index 229df56..d85288a 100644 --- a/reccdi/src_cpp/util.cpp +++ b/reccdi/src_cpp/util.cpp @@ -133,7 +133,6 @@ af::array Utils::GaussDistribution(af::dim4 data_dim, d_type * sgma, int alpha) af::array gi = exp(exponent); grid = grid * gi; } - d_type g = sum(pow(abs(grid), 2)); d_type grid_total = sum(grid); grid = grid/grid_total; return grid; diff --git a/reccdi/src_py/controller/gen_rec.py b/reccdi/src_py/controller/gen_rec.py index 3fc7494..c9949c4 100644 --- a/reccdi/src_py/controller/gen_rec.py +++ b/reccdi/src_py/controller/gen_rec.py @@ -16,6 +16,7 @@ import reccdi.src_py.controller.reconstruction as single import reccdi.src_py.controller.reconstruction_multi as multi import reccdi.src_py.utilities.utils as ut +import reccdi.src_py.utilities.utils_ga as gut __author__ = "Barbara Frosik" @@ -39,6 +40,31 @@ def __init__(self, config_map): except AttributeError: self.low_resolution_generations = 0 + try: + self.metric = config_map.metric + except AttributeError: + self.metric = 'chi' + + try: + self.is_cross_breed = config_map.is_cross_breed + except AttributeError: + self.is_cross_breed = True + + if self.is_cross_breed: + self.prev_two_best = [None, None] # keep two best images from previous generation + + try: + self.worst_remove_no = config_map.worst_remove_no + except AttributeError: + self.worst_remove_no = None + + try: + self.breed_modes = config_map.breed_modes + except AttributeError: + self.breed_modes = [] + for i in range(len(self.breed_modes), self.generations): + self.breed_modes.append('none') + if self.low_resolution_generations > 0: try: low_resolution_sigma_alg = config_map.low_resolution_sigma_alg @@ -105,14 +131,53 @@ def get_gmask(self, generation, shape): return np.ones(shape) - def breed(self, images, supports, errs): + def order(self, images_errs): + rank_property = [] + reverse = False + images = images_errs[0] + errs = images_errs[1] + species = len(images) + for i in range (species): + image = images[i] + if self.metric == 'chi': + rank_property.append(errs[i]) + elif self.metric == 'sharpness': + rank_property.append(sum(abs(image)^4)) + elif self.metric == 'summed_phase': + rank_property.append(sum(gut.sum_phase_tight_support(image))) + reverse = True + elif self.metric == 'area': + support = gut.shrink_wrap(image, .2, .5) + rank_property.append(sum(support)) + reverse = True + elif self.metric == 'TV': + gradients = np.gradient(image) + TV = np.zeros(image.shape) + for gr in gradients: + TV += abs(gr) + rank_property.append(TV) + else: + # metric is 'chi' + rank_property.append(errs[i][-1]) + + # ranks keeps indexes of species from best to worst + # for most of the metric types the minimum of the metric is best, but for + # 'summed_phase' and 'area' it is oposite, so reversing the order + ranks = np.argsort(rank_property) + if reverse: + ranks = ranks.reverse() + + # order the initial array according to rank + ordered = [] + for i in range(species): + ordered.append(images_errs[ranks[i]]) + return ordered + + + def breed(self, images, errs, gen, threshold, sigma): """ - This function ranks the multiple reconstruction results by errs (the smallest last error, the better - reconstruction). It breeds next generation by combining the reconstructed images, centered, as follows: - 1. best image, - 2. 1/2 of best image + 1/2 of second image - 3. 1/3 of best image + 1/3 of second image + 1/3 of third image - ..... and so on + This function ranks the multiple reconstruction. It breeds next generation by combining the reconstructed + images, centered For each combined image the support is calculated and coherence is set to None. The number of bred images matches the number of reconstructions. @@ -136,44 +201,142 @@ def breed(self, images, supports, errs): child_cohs : list list of child coherence, set to None """ - - def combine(num_mix): - weight = 1.0/num_mix - image = weight * best_image - for ind in range(1, num_mix): - #center each image before adding - image += weight * ut.get_centered(images[ranks[ind]], (0,0,0)) - if num_mix == 1: - support = supports[0] + img_errs = zip(images, errs) + species = len(img_errs) + ordered = self.order(img_errs) + if self.worst_remove_no is not None: + species = species - self.worst_remove_no[gen] + ordered = ordered[0 : species] + + # if configured to cross breed, include two best species from previous generation and order again + if self.is_cross_breed: + if len(self.prev_two_best) > 0: + ordered.append(self.prev_two_best) + ordered = self.order(ordered, species + 2) + self.prev_two_best[0] = ordered[0] + self.prev_two_best[1] = ordered[1] + + [ims, ers] = list(*ordered) + dims = len(ims[0].shape) + + breed_mode = self.breed_modes[gen] + ims_arr = np.stack(ims) + + alpha = ims[0] + alpha = gut.zero_phase(alpha, 0) + + # put the best into the bred population + child_images = [alpha] + child_supports = [ut.shrink_wrap(alpha, threshold, sigma)] + + for ind in range(1, len(ims)): + beta = ims[ind] + beta = gut.zero_phase(beta, 0) + alpha = gut.check_get_conj_reflect(beta, alpha) + alpha_s = gut.align_arrays(beta, alpha) + alpha_s = gut.zero_phase(alpha_s, 0) + ph_alpha = np.angle(alpha_s) + beta = gut.zero_phase_cc(beta, alpha_s) + ph_beta = np.angle(beta) + + if breed_mode == 'sqrt_ab': + beta = np.sqrt(abs(alpha_s) * abs(beta)) * np.exp(0.5j * (ph_beta + ph_alpha)) + + elif breed_mode == 'max_all': + amp = max(abs(ims_arr), dims) + beta = amp * np.exp(1j * ph_beta) + + elif breed_mode == 'Dhalf' or breed_mode == 'Dhalf-best': + nhalf = round(len(ims)/2) + delta = nhalf * ims[ind] - np.sum(np.stack(ims[:nhalf]), dims) + beta = beta + delta + + elif breed_mode == 'dsqrt': + amp = abs(beta)^.5 + beta = amp * np.exp(1j * ph_beta) + + elif breed_mode == 'pixel_switch': + cond = np.random.random_sample(beta.shape) + beta = np.where((cond > 0.5), beta, alpha_s) + + elif breed_mode == 'b_pa': + beta = abs(beta) * np.exp(1j * (ph_alpha)) + + elif breed_mode == '2ab_a_b': + beta = 2*(beta * alpha_s) / (beta + alpha_s) + + elif breed_mode == '2a-b_pa': + beta = (2*abs(alpha_s)-abs(beta)) * np.exp(1j *ph_alpha) + + elif breed_mode == 'sqrt_ab_pa': + beta = np.sqrt(abs(alpha_s) * abs(beta)) * np.exp(1j * ph_alpha) + + elif breed_mode == 'sqrt_ab_pa_recip': + temp1 = np.fftshift(np.fftn(np.fftshift(beta))) + temp2 = np.fftshift(np.fftn(np.fftshift(alpha_s))) + temp = np.sqrt(abs(temp1) * abs(temp2)) * np.exp(1j * np.angle(temp2)) + beta = np.fftshift(np.ifftn(np.fftshift(temp))) + + elif breed_mode == 'sqrt_ab_recip': + temp1 = np.fftshift(np.fftn(np.fftshift(beta))) + temp2 = np.fftshift(np.fftn(np.fftshift(alpha_s))) + temp = np.sqrt(abs(temp1) *abs(temp2)) *np.exp(.5j *np.angle(temp1)) *np.exp(.5j *np.angle(temp2)) + beta = np.fftshift(np.ifftn(np.fftshift(temp))) + + elif breed_mode == 'max_ab': + beta = max(abs(alpha_s), abs(beta)) * np.exp(.5j *(ph_beta + ph_alpha)) + + elif breed_mode == 'max_ab_pa': + beta = max(abs(alpha_s), abs(beta)) * np.exp(1j *ph_alpha) + + elif breed_mode == 'min_ab_pa': + beta = min(abs(alpha_s), abs(beta)) * np.exp(1j *ph_alpha) + + elif breed_mode == 'avg_ab': + beta = 0.5 *(alpha_s + beta) + + elif breed_mode == 'avg_ab_pa': + beta = 0.5 *(abs(alpha_s) + abs(beta)) * np.exp(1j *(ph_alpha)) else: - # calculate support using sigma=1.0 - convag = ut.gauss_conv_fft(image) - max_convag = max(convag) - convag = convag / max_convag - support = np.where((convag >= .1), 1, 0) - return image, support - - species = len(errs) - child_images = [] - child_supports = [] - child_cohs = [] - # TODO we may not need the iteration errors, just the last one to rank reconstructions - errs_last = [] - for i in range (species): - errs_last.append(tuple(errs[i][-1], i)) + # The following modes include gamma; gamma is in index 1 + # gamma = zero_phase(gamma, val); + # ph_gamma = atan2(imag(gamma), real(gamma)); - # ranks keeps indexes of species from best to worst - ranks = list(np.argsort(errs_last)).reverse() - best_image = ut.get_centered(images[ranks[i]], (0,0,0)) - # mix the images: 1. the best 100%, 2. 50% best + 50% second, 3. 33% best + 33% second + 33% third, ... - # support is calculated off of the miex image, coherence is None - for i in range(1, species+1): - child_image, child_support = combine(i) - child_images.append(child_image) - child_supports.append(child_support) - child_cohs.append(None) + gamma = ims[1] + gamma = gut.zero_phase(gamma, 0) + if ind > 1: + gamma = gut.check_get_conj_reflect(beta, gamma) + ph_gamma, gamma_s = gut.align_and_zero_phase(abs(beta), abs(gamma)) + else: + gamma_s = gamma + ph_gamma = np.atan2(gamma.imag, gamma.real) + + if breed_mode == 'sqrt_abg': + beta = (abs(alpha_s) *abs(beta) *abs(gamma_s)) ^(1/3) *np.exp(1j *(ph_beta+ph_alpha+ph_gamma)/3.0) + + elif breed_mode == 'sqrt_abg_pa': + beta = (abs(alpha_s) *abs(beta) *abs(gamma_s)) ^(1/3) *np.exp(1j *ph_alpha) + + elif breed_mode == 'max_abg': + beta = max(max(abs(alpha_s), abs(beta)), abs(gamma_s)) *np.exp(1j *(ph_beta+ph_alpha+ph_gamma)/3.0) + + elif breed_mode == 'max_abg_pa': + beta = max(max(abs(alpha_s), abs(beta)),abs(gamma_s)) *np.exp(1j *ph_alpha) + + elif breed_mode == 'avg_abg': + beta = (1/3)*(alpha_s+beta+gamma_s) + + elif breed_mode == 'avg_abg_pa': + beta = (1/3)*(abs(alpha_s)+abs(beta)+abs(gamma_s)) *np.exp(1j *ph_alpha) + + elif breed_mode == 'avg_sqrt': + amp=( (abs(beta))^1/3+(abs(alpha_s))^1/3+(abs(gamma_s))^1/3)/3 + beta = amp^3 * np.exp(1j *ph_beta) - return child_images, child_supports, child_cohs + child_images.append(beta) + child_supports.append(gut.shrink_wrap(beta, threshold, sigma)) + + return child_images, child_supports def save_results(image, support, coherence, save_dir): @@ -221,31 +384,38 @@ def reconstruction(generations, proc, data, conf_info, config_map): low_resolution_generations = 0 try: - threads = config_map.threads + support_threshold = config_map.support_threshold + except: + support_threshold = .1 + + try: + support_sigma = config_map.support_sigma + except: + support_sigma = 1.0 + + try: + species = config_map.species except: - threads = 1 + species = 1 # init starting values - # if multiple threads configured (typical for genetic algorithm), use "reconstruction_multi" module - if threads > 1: + # if multiple species configured (typical for genetic algorithm), use "reconstruction_multi" module + if species > 1: images = [] supports = [] cohs = [] - for _ in range(threads): + for _ in range(species): images.append(None) supports.append(None) cohs.append(None) rec = multi # load parls configuration - rec.load_config(threads) + rec.load_config(species) else: images = None supports = None - cohs = None rec = single - errors = [] - gen_obj = Generation(config_map) if os.path.isdir(conf_info): @@ -257,49 +427,18 @@ def reconstruction(generations, proc, data, conf_info, config_map): if low_resolution_generations > 0: for g in range(low_resolution_generations): - errors.append(None) gen_data = gen_obj.get_data(g, data) - images, supports, cohs, errs = rec.rec(proc, gen_data, conf, config_map, images, supports, cohs) - errors[g] = errs - images, supports, cohs = gen_obj.breed(images, supports, errs) + images, supports, cohs, errs = rec.rec(proc, gen_data, conf, config_map, images, supports) + # here can save the generation results + if len(images) > 1 and gen_obj.breed_modes[g] is not 'none': + images, supports = gen_obj.breed(images, errs, g, support_threshold, support_sigma) for g in range(low_resolution_generations, generations): - errors.append(None) - images, supports, cohs, errs = rec.rec(proc, data, conf, config_map, images, supports, cohs) - errors[g] = errs - # TODO should we breed the last generation? - images, supports, cohs = gen_obj.breed(images, supports, errs) - + images, supports, cohs, errs = rec.rec(proc, data, conf, config_map, images, supports) + # here can save the generation results + if g < (generations-1) and len(images) > 1 and gen_obj.breed_modes[g] is not 'none': + images, supports= gen_obj.breed(images, errs, g, support_threshold, support_sigma) + else: + img_errs = zip(images, errs) + ordered = gen_obj.order(img_errs) + [ims, ers] = list(*ordered) print ('done gen') - # if g == 0: - # errors[0][0].pop(0) - # print ('errors0', errors[0][0]) - # plt.plot(errors[0][0]) - # plt.ylabel('errors') - # plt.show() - - #image = previous[0][0] - # print ('image norm', ut.get_norm(image), '---------------------') - # errors = previous[0][3] - # errors.pop(0) - # plt.plot(errors) - # plt.ylabel('errors') - # plt.show() - - # image = images[0] - # print ('image norm', ut.get_norm(image), '---------------------') - # errors.pop(0) - # plt.plot(errors[0]) - # plt.ylabel('errors') - # plt.show() - - # - # try: - # save_dir = config_map.save_dir - # if not save_dir.endswith('/'): - # save_dir = save_dir + '/' - # except AttributeError: - # save_dir = 'results/' - # - # save_results(results, save_dir) - # - diff --git a/reccdi/src_py/controller/reconstruction.py b/reccdi/src_py/controller/reconstruction.py index 11a7721..a3783f8 100644 --- a/reccdi/src_py/controller/reconstruction.py +++ b/reccdi/src_py/controller/reconstruction.py @@ -83,7 +83,10 @@ def rec(proc, data, conf, config_map, image, support, coh): except: coh_dims = None - return calc.fast_module_reconstruction(proc, devices[0], conf, data, coh_dims, image, support, coh) + image, support, coh, er = calc.fast_module_reconstruction(proc, devices[0], conf, data, coh_dims, image, support, coh) + + # errs contain errors for each iteration + return image, support, coh, er def reconstruction(proc, data, conf_info, config_map): diff --git a/reccdi/src_py/controller/reconstruction_multi.py b/reccdi/src_py/controller/reconstruction_multi.py index 46988d7..d5c248b 100644 --- a/reccdi/src_py/controller/reconstruction_multi.py +++ b/reccdi/src_py/controller/reconstruction_multi.py @@ -197,7 +197,7 @@ def save_results(threads, images, supports, cohs, save_dir): ut.save_results(images[i], supports[i], cohs[i], subdir) -def rec(proc, data, conf, config_map, images, supports, cohs): +def rec(proc, data, conf, config_map, images, supports, cohs=None): """ This function controls the multiple reconstructions. It invokes a loop to execute parallel resconstructions, wait for all threads to deliver results, and store te results. @@ -245,8 +245,8 @@ def rec(proc, data, conf, config_map, images, supports, cohs): devices = [-1] # assign device for each thread - threads = config_map.threads - devices = assign_devices(devices, threads) + species = config_map.species + devices = assign_devices(devices, species) try: coh_dims = tuple(config_map.partial_coherence_roi) @@ -255,10 +255,14 @@ def rec(proc, data, conf, config_map, images, supports, cohs): res = [] errs = [] - for i in range(threads): + for i in range(species): + if cohs is None: + coh = None + else: + coh = cohs[i] res.append(None) errs.append(None) - res[i] = run_fast_module(proc, devices[i], conf, data, coh_dims, images[i], supports[i], cohs[i]) + res[i] = run_fast_module(proc, devices[i], conf, data, coh_dims, images[i], supports[i], coh) # Wait for all Parsl runs to complete.. complete_results = [i.result() for i in res] @@ -267,21 +271,22 @@ def rec(proc, data, conf, config_map, images, supports, cohs): supports[i] = r[1] cohs[i] = r[2] errs[i] = r[3] - return images, supports, cohs, errs + # return only error from last iteration for each reconstruction + return images, supports, cohs, errs[-1,:] -def reconstruction(threads, proc, data, conf_info, config_map): +def reconstruction(species, proc, data, conf_info, config_map): """ This function starts the reconstruction. It checks whether it is continuation of reconstruction defined by - configuration. If continuation, the lists contaning arrays of images, supports, coherence for multiple threads + configuration. If continuation, the lists contaning arrays of images, supports, coherence for multiple species are read from cont_directory, otherwise, they are initialized to None. After the lists are initialized, they are passed for the multi-reconstruction. The results are saved in the configured directory. Parameters ---------- - threads : int - number of threads + species : int + number of species proc : str a string indicating the processor type (cpu, opencl, cuda) @@ -318,12 +323,12 @@ def reconstruction(threads, proc, data, conf_info, config_map): images = [] supports = [] cohs = [] - for _ in range(threads): + for _ in range(species): images.append(None) supports.append(None) cohs.append(None) - load_config(threads) + load_config(species) start = time.time() if os.path.isdir(conf_info): @@ -347,7 +352,7 @@ def reconstruction(threads, proc, data, conf_info, config_map): if experiment_dir is not None: save_dir = os.path.join(experiment_dir, save_dir) - save_results(threads, images, supports, cohs, save_dir) + save_results(species, images, supports, cohs, save_dir) print('done') diff --git a/reccdi/src_py/run_scripts/run_disp.py b/reccdi/src_py/run_scripts/run_disp.py index 4cd46bd..35ee2db 100755 --- a/reccdi/src_py/run_scripts/run_disp.py +++ b/reccdi/src_py/run_scripts/run_disp.py @@ -20,7 +20,14 @@ def save_vtk(res_dir, conf): print ('support file ' + supportfile + ' is missing') return - cx.save_CX(conf, image, support, res_dir) + try: + cohfile = os.path.join(res_dir, 'coherence.npy') + coh = np.load(cohfile) + except: + print ('support file ' + supportfile + ' is missing') + return + + cx.save_CX(conf, image, support, coh, res_dir) def to_vtk(conf_info): diff --git a/reccdi/src_py/utilities/CXDVizNX.py b/reccdi/src_py/utilities/CXDVizNX.py index 9ce19fd..69800e4 100644 --- a/reccdi/src_py/utilities/CXDVizNX.py +++ b/reccdi/src_py/utilities/CXDVizNX.py @@ -338,7 +338,7 @@ def get_crop(params, shape): return crop -def save_CX(conf, image, support, save_dir): +def save_CX(conf, image, support, coh, save_dir): image, support = center(image, support) # image = remove_ramp(image) params = DispalyParams(conf) @@ -352,4 +352,11 @@ def save_CX(conf, image, support, save_dir): viz.set_array(support) support_file = os.path.join(save_dir, 'support') viz.write_structured_grid(support_file) + if coh is not None: + # investigate if pad_center before fft or after + coh = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(coh))).real + coh = ut.get_zero_padded_centered(coh, image.shape) + coh_file = os.path.join(save_dir, 'coherence') + viz.set_array(coh) + viz.write_structured_grid(coh_file) diff --git a/reccdi/src_py/utilities/utils.py b/reccdi/src_py/utilities/utils.py index ce5cb06..5434128 100644 --- a/reccdi/src_py/utilities/utils.py +++ b/reccdi/src_py/utilities/utils.py @@ -205,7 +205,7 @@ def binning(array, binsizes): # b = binning(ar, (2,2)) # print ('b',b) -def get_centered(array, center_shift): +def get_centered(arr, center_shift): """ This function finds a greatest value in the array, and puts it in a center of a new array. If center_shift is not zeros, the array will be shifted accordingly. The shifted elements are rolled into the other end of array. @@ -213,7 +213,7 @@ def get_centered(array, center_shift): Parameters ---------- - array : array + arr : array the original array to be centered center_shift : list @@ -224,15 +224,45 @@ def get_centered(array, center_shift): array : array the centered array """ - max_coordinates = list(np.unravel_index(np.argmax(array), array.shape)) + max_coordinates = list(np.unravel_index(np.argmax(arr), arr.shape)) max_coordinates = np.add(max_coordinates, center_shift) - shape = array.shape + shape = arr.shape + centered = arr + for i in range (len(max_coordinates)): + centered = np.roll(centered, int(shape[i]/2)-max_coordinates[i], i) + + return centered + +def get_zero_padded_centered(arr, new_shape): + """ + This function pads the array with zeros to the new shape with the array in the center. + + Parameters + ---------- + arr : array + the original array to be padded and centered + + new_shape : tuple + a list of new dimensions + + Returns + ------- + array : array + the zero padded centered array + """ + shape = arr.shape + pad = [] + c_vals = [] + for i in range (len(new_shape)): + pad.append((0, new_shape[i] - shape[i])) + c_vals.append((0.0, 0.0)) + arr = np.lib.pad(arr, (pad), 'constant', constant_values=c_vals) - array = np.roll(array, int(shape[0]/2)-max_coordinates[0], 0) - array = np.roll(array, int(shape[1]/2)-max_coordinates[1], 1) - centered = np.roll(array, int(shape[2]/2)-max_coordinates[2], 2) + centered = arr + for i in range (len(new_shape)): + centered = np.roll(centered, int((new_shape[i] - shape[i] + 1)/2), i) - return centered + return centered def adjust_dimensions(arr, pad): @@ -257,52 +287,57 @@ def adjust_dimensions(arr, pad): """ logger = get_logger('adjust_dimensions') old_dims = arr.shape - new_pad = [] - crop = [] + cropped = arr for i in range(len(old_dims)): - tmp_dim = old_dims[i] + pad[2*i] + pad[2*i+1] - # find what needs to be cropped - crop.append(max(0, -pad[2*i])) - crop.append(max(0, -pad[2*i+1])) - arr = arr[crop[0]:old_dims[0]-crop[1], crop[2]:old_dims[1]-crop[3], crop[4]:old_dims[2]-crop[5]] - - logger.info('cutting from to ' + str(crop[0]) + ', ' + str(old_dims[0]-crop[1]) + ', ' + str(crop[2]) + ', ' \ - + str(old_dims[1]-crop[3]) + ', ' + str(crop[4]) + ', ' + str(old_dims[2]-crop[5])) - dims = arr.shape - - for i in range(len(dims)): + crop_front = max(0, -pad[2*i]) + crop_end = max(0, -pad[2*i+1]) + splitted = np.split(cropped, [crop_front, old_dims[i]-crop_end], axis=i) + cropped = splitted[1] + # logger.info('cutting from to ' + str(crop[0]) + ', ' + str(old_dims[0]-crop[1]) + ', ' + str(crop[2]) + ', ' \ + # + str(old_dims[1]-crop[3]) + ', ' + str(crop[4]) + ', ' + str(old_dims[2]-crop[5])) + dims = cropped.shape + c_vals = [] + new_pad = [] + for i in range (len(dims)): # find a good dimension and find padding - new_dim = get_good_dim(dims[i]) - pad_front = max(0, int((new_dim+1 - dims[i])/2)) - new_pad.append(pad_front) - pad_end = max(0, new_dim-dims[i]-pad_front) - new_pad.append(pad_end) - - arr = np.lib.pad(arr, ((new_pad[0], new_pad[1]), (new_pad[2], new_pad[3]), (new_pad[4], new_pad[5])), 'constant', - constant_values=((0.0, 0.0), (0.0, 0.0), (0.0, 0.0))).copy() - - logger.info('pads ' + str(new_pad[0]) + ', ' + str(new_pad[1]) + ', ' + str(new_pad[2]) + ', ' + str(new_pad[3]) \ - + ', ' + str(new_pad[4]) + ', ' + str(new_pad[5])) - logger.info('old dim, new dim (' + str(dims[0]) + ',' + str(dims[1]) + ',' + str(dims[2]) + ') (' + str(arr.shape[0]) +\ - ',' + str(arr.shape[1]) + ',' + str(arr.shape[1]) + ')') - - return arr + temp_dim = old_dims[i] + pad[2*i] + pad[2*i+1] + new_dim = get_good_dim(temp_dim) + added = new_dim - temp_dim + # if the pad is positive + pad_front = max(0, pad[2*i]) + int(added/2) + pad_end = new_dim - dims[i] - pad_front + new_pad.append((pad_front, pad_end)) + c_vals.append((0.0, 0.0)) + adjusted = np.lib.pad(cropped, (new_pad), 'constant', constant_values=c_vals) + + # logger.info('pads ' + str(new_pad[0]) + ', ' + str(new_pad[1]) + ', ' + str(new_pad[2]) + ', ' + str(new_pad[3]) \ + # + ', ' + str(new_pad[4]) + ', ' + str(new_pad[5])) + # logger.info('old dim, new dim (' + str(dims[0]) + ',' + str(dims[1]) + ',' + str(dims[2]) + ') (' + str(arr.shape[0]) +\ + # ',' + str(arr.shape[1]) + ',' + str(arr.shape[1]) + ')') + + return adjusted # ar = np.zeros((81,256,256)) -# pads = (0,0,-20,-30,4,-20) -# adjust_dimensions(ar,pads) +# pads = (5,-7,-20,-30,4,-20) +# arr = adjust_dimensions(ar,pads) +# print (arr.shape) def crop_center(arr, new_size): size = arr.shape - return arr[ int((size[0]-new_size[0])/2) : int((size[0]-new_size[0])/2) + new_size[0], int((size[1]-new_size[1])/2) : int((size[1]-new_size[1])/2) + new_size[1], int((size[2]-new_size[2])/2) : int((size[2]-new_size[2])/2) + new_size[2]] + cropped = arr + for i in range(len(size)): + crop_front = int((size[i]-new_size[i])/2) + crop_end = crop_front + new_size[i] + splitted = np.split(cropped, [crop_front, crop_end], axis=i) + print (splitted[0].shape, splitted[1].shape, splitted[2].shape) + cropped = splitted[1] + return cropped -def get_init_array(shape): - half_shape = (shape[0]/2, shape[1]/2, shape[2]/2) - arr = np.ones(half_shape) - return np.lib.pad(arr, ((half_shape[0]/2, half_shape[0]-half_shape[0]/2), (half_shape[1]/2, half_shape[1]-half_shape[1]/2), (half_shape[2]/2, half_shape[2]-half_shape[2]/2)), 'constant', - constant_values=((0.0, 0.0), (0.0, 0.0), (0.0, 0.0))) - +# ar = np.zeros((81,256,256)) +# new_size = (40, 200,100) +# arr = crop_center(ar,new_size) +# print (arr.shape) def get_norm(arr): return sum(sum(sum(abs(arr)**2))) @@ -324,6 +359,55 @@ def flip(m, axis): return m[tuple(indexer)] +def gaussian(shape, sigmas, alpha=1): + grid = np.full(shape, 1.0) + for i in range(len(shape)): + # prepare indexes for tile and transpose + tile_shape = list(shape) + tile_shape.pop(i) + tile_shape.append(1) + trans_shape = list(range(len(shape)-1)) + trans_shape.insert(i, len(shape)-1) + + multiplier = - 0.5 * alpha / pow(sigmas[i], 2) + line = np.linspace(-(shape[i]-1)/2.0, (shape[i]-1)/2.0, shape[i]) + gi = np.tile(line, tile_shape) + gi = np.transpose(gi, tuple(trans_shape)) + exponent = np.power(gi, 2) * multiplier + gi = np.exp(exponent) + grid = grid * gi + + grid_total = np.sum (grid) + return grid / grid_total + + +def gauss_conv_fft(arr, sigmas): + arr_sum = np.sum(abs(arr)) + arr_f = np.fft.ifftshift(np.fft.fftn(np.fft.ifftshift(arr))) + shape = list(arr.shape) + for i in range(len(sigmas)): + sigmas[i] = shape[i]/2.0/np.pi/sigmas[i] + convag = arr_f * gaussian(shape, sigmas) + convag = np.fft.ifftshift(np.fft.ifftn(np.fft.ifftshift(convag))) + convag = convag.real + convag = np.clip(convag, 0, None) + correction = arr_sum / np.sum(convag) + convag *= correction + return convag + + +def shrink_wrap(arr, threshold, sigma, type='gauss'): + sigmas = [sigma]*len(arr.shape) + if type == 'gauss': + convag = gauss_conv_fft(abs(arr), sigmas) + max_convag = np.amax(convag) + convag = convag / max_convag + support = np.where(convag >= threshold, 1, 0) + return support + else: + return None + + def read_results(read_dir): try: imagefile = os.path.join(read_dir, 'image.npy') @@ -342,6 +426,7 @@ def read_results(read_dir): return image, support, coh + def save_results(image, support, coh, save_dir): if not os.path.exists(save_dir): os.makedirs(save_dir) diff --git a/reccdi/src_py/utilities/utils_ga.py b/reccdi/src_py/utilities/utils_ga.py new file mode 100644 index 0000000..6fa5571 --- /dev/null +++ b/reccdi/src_py/utilities/utils_ga.py @@ -0,0 +1,230 @@ + +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + +""" +Please make sure the installation :ref:`pre-requisite-reference-label` are met. +This module is a suite of utility mehods. +""" + +import scipy as sci +import numpy as np +import reccdi.src_py.utilities.utils as ut + + +__author__ = "Barbara Frosik" +__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." +__docformat__ = 'restructuredtext en' +__all__ = ['get_array_from_tif', + 'get_opencl_dim', + 'binning', + 'get_centered', + 'adjust_dimensions', + 'crop_center', + 'flip'] + +def cross_correlation(a, b): + A = np.fft.ifftshift(np.fft.fftn(np.fft.fftshift(conj_reflect(a)))) + B = np.fft.ifftshift(np.fft.fftn(np.fft.fftshift(b))) + CC = A * B + return np.fft.ifftshift(np.fft.ifftn(np.fft.fftshift(CC))) + + +def conj_reflect(arr): + F = np.fft.ifftshift(np.fft.fftn(np.fft.fftshift(arr))) + return np.fft.ifftshift(np.fft.ifftn(np.fft.fftshift(np.conj(F)))) + + +def check_get_conj_reflect(arr1, arr2): + support1 = ut.shrink_wrap(abs(arr1), .1, .1) + support2 = ut.shrink_wrap(abs(arr2), .1, .1) + cc1 = cross_correlation(support1, ut.shrink_wrap(conj_reflect(arr2), .1, .1)) + cc2 = cross_correlation(support1, support2) + if np.amax(cc1) > np.amax(cc2): + return conj_reflect(arr2) + else: + return arr2 + + +def dftups(arr, nor=-1, noc=-1, usfac=2, roff=0, coff=0): + # arr is 2D + [nr,nc] = arr.shape + if nor < 0: + nor = nr + if noc < 0: + noc = nc + + # Compute kernels and obtain DFT by matrix products + yl = list(range(-int(np.floor(nc/2)), nc - int(np.floor(nc/2)))) + y = np.fft.ifftshift(np.array(yl)) * (-2j * np.pi/(nc * usfac)) + xl = list(range(-coff, noc - coff)) + x = np.array(xl) + yt = np.tile(y, (len(xl), 1)) + xt = np.tile(x, (len(yl), 1)) + kernc = np.exp(yt.T * xt) + + yl = list(range(-roff, nor - roff)) + y = np.array(yl) + xl = list(range(-int(np.floor(nr/2)), nr - int(np.floor(nr/2)))) + x = np.fft.ifftshift(np.array(xl)) + yt = np.tile(y, (len(xl), 1)) + xt = np.tile(x, (len(yl), 1)) + kernr = np.exp(yt * xt.T * (-2j * np.pi/(nr * usfac))) + + return np.dot(np.dot(kernr.T, arr), kernc) + + +def dftregistration(ref_arr, arr, usfac=2): + #arrays are 2D + # based on Matlab dftregistration by Manuel Guizar (Portions of this code were taken from code written by + # Ann M. Kowalczyk and James R. Fienup. + if usfac < 2: + print ('usfac less than 2 not supported') + # will throw exception + return + # First upsample by a factor of 2 to obtain initial estimate + # Embed Fourier data in a 2x larger array + shape = ref_arr.shape + large_shape = tuple(2 * x for x in ref_arr.shape) + c_c = ut.get_zero_padded_centered(np.fft.fftshift(ref_arr) * np.conj(np.fft.fftshift(arr)), large_shape) + + # Compute crosscorrelation and locate the peak + c_c = np.fft.ifft2(np.fft.ifftshift(c_c)) + max_coord = list(np.unravel_index(np.argmax(c_c), c_c.shape)) + + if max_coord[0] > shape[0]: + row_shift = max_coord[0] - large_shape[0] + else: + row_shift = max_coord[0] + if max_coord[1] > shape[1]: + col_shift = max_coord[1] - large_shape[1] + else: + col_shift = max_coord[1] + + row_shift = row_shift/2 + col_shift = col_shift/2 + + #If upsampling > 2, then refine estimate with matrix multiply DFT + if usfac > 2: + # DFT computation + # Initial shift estimate in upsampled grid + row_shift = round(row_shift * usfac)/usfac + col_shift = round(col_shift * usfac)/usfac + dftshift = np.fix(np.ceil(usfac * 1.5)/2) # Center of output array at dftshift + # Matrix multiply DFT around the current shift estimate + c_c = np.conj(dftups(arr * np.conj(ref_arr), int(np.ceil(usfac * 1.5)), int(np.ceil(usfac * 1.5)), usfac, + int(dftshift-row_shift * usfac), int(dftshift-col_shift * usfac)))/\ + (int(np.fix(shape[0]/2)) * int(np.fix(shape[1]/2)) * usfac^2) + # Locate maximum and map back to original pixel grid + max_coord = list(np.unravel_index(np.argmax(c_c), c_c.shape)) + [rloc, cloc] = max_coord + + rloc = rloc - dftshift + cloc = cloc - dftshift + row_shift = row_shift + rloc/usfac + col_shift = col_shift + cloc/usfac + + return row_shift, col_shift + + +def register_3d_reconstruction(ref_arr, arr): + r_shift_2, c_shift_2 = dftregistration(np.fft.fft2(np.sum(ref_arr, 2)), np.fft.fft2(np.sum(arr, 2)), 100) + r_shift_1, c_shift_1 = dftregistration(np.fft.fft2(np.sum(ref_arr, 1)), np.fft.fft2(np.sum(arr, 1)), 100) + r_shift_0, c_shift_0 = dftregistration(np.fft.fft2(np.sum(ref_arr, 0)), np.fft.fft2(np.sum(arr, 0)), 100) + + shift_2 = sum([r_shift_2, r_shift_1]) * 0.5 + shift_1 = sum([c_shift_2, r_shift_0]) * 0.5 + shift_0 = sum([c_shift_1, c_shift_0]) * 0.5 + return shift_2, shift_1, shift_0 + + +def sub_pixel_shift(arr, row_shift, col_shift, z_shift): + # arr is 3D + buf2ft = np.fft.fftn(arr) + shape = arr.shape + Nr = np.fft.ifftshift(np.array(list(range(-int(np.floor(shape[0]/2)), shape[0]-int(np.floor(shape[0]/2)))))) + Nc = np.fft.ifftshift(np.array(list(range(-int(np.floor(shape[1]/2)), shape[1]-int(np.floor(shape[1]/2)))))) + Nz = np.fft.ifftshift(np.array(list(range(-int(np.floor(shape[2]/2)), shape[2]-int(np.floor(shape[2]/2)))))) + [Nc, Nr, Nz] = np.meshgrid(Nc, Nr, Nz) + Greg = buf2ft * np.exp(1j * 2 * np.pi * (-row_shift * Nr / shape[0] - col_shift * Nc / shape[1] - z_shift * Nz / shape[2])) + return np.fft.ifftn(Greg) + +def print_max(arr): + max_coord = list(np.unravel_index(np.argmax(abs(arr)), arr.shape)) + print ('max coord, value', abs(arr[max_coord[0],max_coord[1],max_coord[2]]), max_coord) + +def zero_phase(arr, val=0): + ph = np.angle(arr) + support = ut.shrink_wrap(abs(arr), .2, .5) #get just the crystal, i.e very tight support + avg_ph = np.sum(ph * support)/np.sum(support) + ph = ph - avg_ph + val + return abs(arr) * np.exp(1j * ph) + + +def zero_phase_cc(arr1, arr2): + # will set array1 avg phase to array2 + c_c = np.conj(arr1) * arr2 + c_c_tot = np.sum(c_c) + ph = np.angle(c_c_tot) + arr = arr1 * np.exp(1j * ph) + return arr + + +def align_arrays(ref_arr, arr): + (shift_2, shift_1, shift_0) = register_3d_reconstruction(abs(ref_arr), abs(arr)) + return sub_pixel_shift(arr, shift_2, shift_1, shift_0) + +# ref_arr = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') +# arr = np.load('/home/phoebus/BFROSIK/temp/test/B_78-97/results/image.npy') +# l = align_arrays(ref_arr, arr) + +def sum_phase_tight_support(arr): + arr = zero_phase(arr) + ph = np.atan2(arr.imag, arr.real) + support = ut.shrink_wrap(abs(arr), .2, .5) + return sum( abs(ph * support)) + + +def get_arr_characteristic(arr): + lev1_norm = sum(abs(arr)) + sharpness = sum(abs(arr)^4) + summed_phase = sum_phase_tight_support(arr) + support = ut.shrink_wrap(arr, .2, .5) + area = sum(support) + gradients = np.gradient(arr) + TV = np.zeros(arr.shape) + for gr in gradients: + TV += abs(gr) + return lev1_norm, sharpness, summed_phase, area, TV + + +# def align_iterates(arrs): +# #assume arrs[0] is the referrence array +# alpha = arrs[0] +# for i in range(1, len(arrs)): +# arr = check_get_conj_reflect(abs(alpha), abs(arr)) +# shift_2, shift_1, shift_0 = register_3d_reconstruction(abs(alpha), abs(arr)) +# arrs[i] = sub_pixel_shift(arr, round(shift_2), round(shift_1), round(shift_2)) +# return arrs + + +def test(a,b): + alpha = zero_phase(a, 0) + beta = zero_phase(b, 0) + alpha = check_get_conj_reflect(beta, alpha) + alpha_s = align_arrays(beta, alpha) + alpha_s = zero_phase(alpha_s, 0) + ph_alpha = np.angle(alpha_s) + beta = zero_phase_cc(beta, alpha_s) + ph_beta = np.angle(beta) + beta = np.sqrt(abs(alpha_s) * abs(beta)) * np.exp(0.5j * (ph_beta + ph_alpha)) + +a = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') +b = np.load('/home/phoebus/BFROSIK/temp/test/B_78-97/results/image.npy') +test(a, b) \ No newline at end of file From ce58a364a9045752de48e8b94a3b30594e29e19a Mon Sep 17 00:00:00 2001 From: bfrosik Date: Fri, 15 Mar 2019 15:23:56 -0500 Subject: [PATCH 120/336] Added info messages, reading config from the experiment dir --- bin/cdi_window.py | 205 +++++++++++++++++++++++++++------------------- 1 file changed, 119 insertions(+), 86 deletions(-) diff --git a/bin/cdi_window.py b/bin/cdi_window.py index 1a695c5..af8e615 100644 --- a/bin/cdi_window.py +++ b/bin/cdi_window.py @@ -45,6 +45,8 @@ def write_conf(conf_map, dir, file): class cdi_conf(QWidget): def __init__(self, parent=None): super(cdi_conf, self).__init__(parent) + self.id = None + self.scan = None uplayout = QFormLayout() self.set_work_dir_button = QPushButton() @@ -64,7 +66,7 @@ def __init__(self, parent=None): self.setLayout(vbox) self.setWindowTitle("CDI Reconstruction") - self.set_init() + self.init_work_dir() self.set_work_dir_button.clicked.connect(self.set_working_dir) self.Id_widget.textChanged.connect(self.set_id) @@ -92,6 +94,7 @@ def set_experiment_dir(self): if self.id is not None and self.scan is not None: self.exp_id = self.id + '_' + self.scan self.experiment_dir = os.path.join(self.working_dir, self.exp_id) + self.init_from_conf() def run_everything(self): @@ -101,29 +104,39 @@ def run_everything(self): self.t.display() - def set_init(self): - self.id = None - self.scan = None - # check for the "conf" directory in the running directory + def init_work_dir(self): if os.path.isdir('conf/last'): - self.set_from_conf('conf/last') + dir = 'conf/last' elif os.path.isdir('conf/defaults'): - self.set_from_conf('conf/defaults') - - - def set_from_conf(self, dir): - print ('dir', dir) + dir = 'conf/defaults' + else: + self.msg_window('exiting, neither configuration file "conf/last/config" nor "conf/defaults/config" exists') + sys.exit(0) main_conf = os.path.join(dir, 'config') conf_map = ut.read_config(main_conf) # initialize to the value from config file self.working_dir = conf_map.working_dir + self.set_work_dir_button.setStyleSheet("Text-align:left") + self.set_work_dir_button.setText(self.working_dir) + + + def init_from_conf(self): + if os.path.isfile(os.path.join(self.experiment_dir, 'conf', 'config')): + dir = self.experiment_dir + '/conf' + elif os.path.isdir('conf/last'): + dir = 'conf/last' + elif os.path.isdir('conf/defaults'): + dir = 'conf/defaults' + else: + self.msg_window('exiting, neither configuration file "conf/last/config" nor "conf/defaults/config" exists') + sys.exit(0) + main_conf = os.path.join(dir, 'config') + conf_map = ut.read_config(main_conf) self.t.data_dir = conf_map.data_dir self.t.specfile = conf_map.specfile self.t.darkfile = conf_map.darkfile self.t.whitefile = conf_map.whitefile # set the text in the window - self.set_work_dir_button.setStyleSheet("Text-align:left") - self.set_work_dir_button.setText(self.working_dir) self.t.data_dir_button.setStyleSheet("Text-align:left") self.t.data_dir_button.setText(self.t.data_dir) self.t.spec_file_button.setStyleSheet("Text-align:left") @@ -193,6 +206,14 @@ def set_from_conf(self, dir): pass + def msg_window(self, text): + msg = QMessageBox() + msg.setIcon(QMessageBox.Information) + msg.setText(text) + msg.setWindowTitle("Info") + msg.exec_() + + class cdi_conf_tab(QTabWidget): def __init__(self, main_win, parent=None): super(cdi_conf_tab, self).__init__(parent) @@ -261,6 +282,11 @@ def tab3UI(self): self.cont = QCheckBox() ulayout.addRow("continuation", self.cont) self.cont.setChecked(False) + self.proc = QComboBox() + self.proc.addItem("opencl") + self.proc.addItem("cpu") + self.proc.addItem("cuda") + ulayout.addRow("processor type", self.proc) self.device = QLineEdit() ulayout.addRow("device(s)", self.device) self.threads = QLineEdit() @@ -343,7 +369,7 @@ def prepare(self): scan is None or \ self.data_dir is None or \ self.specfile is None: - print ('enter all parameters: working_dir, id, scan, data_dir, specfile') + self.msg_window('enter all parameters: working_dir, id, scan, data_dir, specfile') return try: @@ -352,29 +378,31 @@ def prepare(self): for i in range(len(scan_range)): scan_range[i] = int(scan_range[i]) except: - print('enter numeric values for scan range') + self.msg_window('enter numeric values for scan range') conf_map = {} if len(self.main_win.working_dir) > 0: conf_map['working_dir'] = '"' + str(self.main_win.working_dir) + '"' else: - print ("working_dir not defined") + self.msg_window("working_dir not defined") + return if len(self.data_dir) > 0: conf_map['data_dir'] = '"' + str(self.data_dir) + '"' - else: - print ("data_dir not defined") if len(self.specfile) > 0: conf_map['specfile'] = '"' + str(self.specfile) + '"' else: - print ("specfile not defined") + self.msg_window("specfile not defined") + return if len(self.darkfile) > 0: conf_map['darkfile'] = '"' + str(self.darkfile) + '"' else: - print ("darkfile not defined") + self.msg_window("darkfile not defined") + return if len(self.whitefile) > 0: conf_map['whitefile'] = '"' + str(self.whitefile) + '"' else: - print ("whitefile not defined") + self.msg_window("whitefile not defined") + return conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') write_conf(conf_map, conf_dir, 'config') @@ -383,85 +411,90 @@ def prepare(self): def model_data(self): - conf_map = {} - if len(self.aliens.text()) > 0: - conf_map['aliens'] = str(self.aliens.text()).replace('\n','') - else: - print ("aliens not defined") - if len(self.amp_threshold.text()) > 0: - conf_map['amp_threshold'] = str(self.amp_threshold.text()) - else: - print ('amplitude threshold not defined. Quiting operation.') - return - if len(self.binning.text()) > 0: - conf_map['binning'] = str(self.binning.text()).replace('\n','') + if os.path.isfile(os.path.join(self.main_win.experiment_dir, 'prep','prep_data.npy')): + conf_map = {} + if len(self.aliens.text()) > 0: + conf_map['aliens'] = str(self.aliens.text()).replace('\n','') + if len(self.amp_threshold.text()) > 0: + conf_map['amp_threshold'] = str(self.amp_threshold.text()) + else: + self.msg_window('amplitude threshold not defined. Quiting operation.') + return + if len(self.binning.text()) > 0: + conf_map['binning'] = str(self.binning.text()).replace('\n','') + if len(self.center_shift.text()) > 0: + conf_map['center_shift'] = str(self.center_shift.text()).replace('\n','') + if len(self.adjust_dimensions.text()) > 0: + conf_map['adjust_dimensions'] = str(self.adjust_dimensions.text()).replace('\n','') + + conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') + write_conf(conf_map, conf_dir, 'config_data') + + run_dt.data(self.main_win.experiment_dir) else: - print ("binning not defined") - if len(self.center_shift.text()) > 0: - conf_map['center_shift'] = str(self.center_shift.text()).replace('\n','') - else: - print ("center shift not defined") - if len(self.adjust_dimensions.text()) > 0: - conf_map['adjust_dimensions'] = str(self.adjust_dimensions.text()).replace('\n','') - else: - print ("adjust dimensions not defined") + self.msg_window('Please, run data preparation in previous tab to activate this function') - #self.create_config('config_data', conf_map) - conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') - write_conf(conf_map, conf_dir, 'config_data') - run_dt.data(self.main_win.experiment_dir) + def msg_window(self, text): + msg = QMessageBox() + msg.setIcon(QMessageBox.Information) + msg.setText(text) + msg.setWindowTitle("Info") + msg.exec_() def reconstruction(self): - conf_map = {} - conf_map['threads'] = str(self.threads.text()) - conf_map['device'] = str(self.device.text()).replace('\n','') - conf_map['garbage_trigger'] = str(self.gc.text()).replace('\n','') - conf_map['algorithm_sequence'] = str(self.alg_seq.text()).replace('\n','') - conf_map['beta'] = str(self.beta.text()) - if self.cont.isChecked(): - conf_map['continue_dir'] = str(self.cont_dir.text()) - - for feat_id in self.features.feature_dir: - self.features.feature_dir[feat_id].add_config(conf_map) - - #self.create_config('config_rec', conf_map) - conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') - write_conf(conf_map, conf_dir, 'config_rec') - - run_rc.reconstruction('cpu', self.main_win.experiment_dir) + if os.path.isfile(os.path.join(self.main_win.experiment_dir, 'data', 'data.npy')): + conf_map = {} + conf_map['threads'] = str(self.threads.text()) + conf_map['device'] = str(self.device.text()).replace('\n','') + conf_map['garbage_trigger'] = str(self.gc.text()).replace('\n','') + conf_map['algorithm_sequence'] = str(self.alg_seq.text()).replace('\n','') + conf_map['beta'] = str(self.beta.text()) + if self.cont.isChecked(): + conf_map['continue_dir'] = str(self.cont_dir.text()) + + for feat_id in self.features.feature_dir: + self.features.feature_dir[feat_id].add_config(conf_map) + + #self.create_config('config_rec', conf_map) + conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') + write_conf(conf_map, conf_dir, 'config_rec') + + run_rc.reconstruction(str(self.proc.currentText()), self.main_win.experiment_dir) + else: + self.msg_window('Please, run model data in previous tab to activate this function') def display(self): - if len(self.crop.text()) == 0: - print ('crop not configured') - - disp_conf_file = os.path.join(self.main_win.experiment_dir, 'conf', 'config_disp') - temp_file = os.path.join(self.main_win.experiment_dir, 'conf', 'temp') - with open(temp_file, 'a') as temp: - try: - with open(disp_conf_file, 'r') as f: - for line in f: - if not line.startswith('crop') and not line.startswith('binning'): - temp.write(line) - f.close() - except: - pass - - if len(self.crop.text()) != 0: - temp.write('crop = ' + str(self.crop.text()).replace('\n','') + '\n') - - temp.close() - shutil.move(temp_file, disp_conf_file) - - run_dp.to_vtk(self.main_win.experiment_dir) + if os.path.isfile(os.path.join(self.main_win.experiment_dir, 'results', 'image.vtk')): + disp_conf_file = os.path.join(self.main_win.experiment_dir, 'conf', 'config_disp') + temp_file = os.path.join(self.main_win.experiment_dir, 'conf', 'temp') + with open(temp_file, 'a') as temp: + try: + with open(disp_conf_file, 'r') as f: + for line in f: + if not line.startswith('crop') and not line.startswith('binning'): + temp.write(line) + f.close() + except: + pass + + if len(self.crop.text()) != 0: + temp.write('crop = ' + str(self.crop.text()).replace('\n','') + '\n') + + temp.close() + shutil.move(temp_file, disp_conf_file) + + run_dp.to_vtk(self.main_win.experiment_dir) + else: + self.msg_window('Please, run reconstruction in previous tab to activate this function') def rec_default(self): if self.main_win.working_dir is None or self.main_win.id is None or \ len(self.main_win.working_dir) == 0 or len(self.main_win.id) == 0: - print ('Working Directory or Reconstruction ID not configured') + self.msg_window('Working Directory or Reconstruction ID not configured') else: self.threads.setText('1') self.device.setText('(3)') From 69375da27154c5676c9d663a07315f854e03ccc7 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Wed, 3 Apr 2019 15:29:28 -0500 Subject: [PATCH 121/336] fixed display for binning, modified the data prep screen to offer a choice of the prep code, added a check box to select auto correction for 34ID prep, i.e. dropping the directories that have less than 81 tif files.added a field when user can specify which scans to exclude.saving errors along the image, support and coherence. --- README.md | 4 + bin/cdi_window.py | 267 ++++++++++++++---- bin/cdi_window.sh | 2 +- bin/{run_34id_prepare.py => prepare_34id.py} | 0 conf/last/config | 12 +- conf/last/config_data | 4 +- conf/last/config_disp | 21 +- config_rec | 2 +- how_to_run | 2 +- reccdi/src_py/beamlines/aps_34id/prep.py | 51 ++-- reccdi/src_py/controller/data.py | 71 +++-- reccdi/src_py/controller/gen_rec.py | 30 +- reccdi/src_py/controller/reconstruction.py | 10 +- .../src_py/controller/reconstruction_multi.py | 61 ++-- reccdi/src_py/run_scripts/run_34id_prepare.py | 36 ++- reccdi/src_py/utilities/CXDVizNX.py | 95 ++++--- reccdi/src_py/utilities/utils.py | 24 +- reccdi/src_py/utilities/utils_ga.py | 13 +- 18 files changed, 453 insertions(+), 252 deletions(-) rename bin/{run_34id_prepare.py => prepare_34id.py} (100%) diff --git a/README.md b/README.md index 55b31e7..8784570 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,11 @@ Pre-requisites - Python packages installation: - pip install tifffile - pip install pylibconfig2 + - python3 -m pip install parsl + - pip install traits - pip install mayavi + - pip install xrayutilities (for parsing spec file if using 34Id prep) + Author(s) ------- diff --git a/bin/cdi_window.py b/bin/cdi_window.py index af8e615..664972b 100644 --- a/bin/cdi_window.py +++ b/bin/cdi_window.py @@ -8,7 +8,7 @@ import reccdi.src_py.run_scripts.run_rec as run_rc import reccdi.src_py.run_scripts.run_disp as run_dp import reccdi.src_py.utilities.utils as ut -import reccdi.src_py.run_scripts.run_34id_prepare as prep +import importlib def select_file(start_dir): @@ -25,6 +25,8 @@ def select_dir(start_dir): dialog.setSidebarUrls([QUrl.fromLocalFile(start_dir)]) if dialog.exec_() == QDialog.Accepted: return str(dialog.selectedFiles()[0]) + else: + return None def write_conf(conf_map, dir, file): @@ -47,6 +49,7 @@ def __init__(self, parent=None): super(cdi_conf, self).__init__(parent) self.id = None self.scan = None + self.experiment_dir = None uplayout = QFormLayout() self.set_work_dir_button = QPushButton() @@ -55,6 +58,8 @@ def __init__(self, parent=None): uplayout.addRow("Reconstruction ID", self.Id_widget) self.scan_widget = QLineEdit() uplayout.addRow("scan(s)", self.scan_widget) + self.set_conf_from_button = QPushButton() + uplayout.addRow("Load conf from", self.set_conf_from_button) self.run_button = QPushButton('run_everything', self) uplayout.addWidget(self.run_button) @@ -68,16 +73,49 @@ def __init__(self, parent=None): self.setWindowTitle("CDI Reconstruction") self.init_work_dir() + self.set_conf_from_button.clicked.connect(self.load_conf_dir) self.set_work_dir_button.clicked.connect(self.set_working_dir) self.Id_widget.textChanged.connect(self.set_id) self.scan_widget.textChanged.connect(self.set_scan) self.run_button.clicked.connect(self.run_everything) + def assure_experiment_dir(self): + # if self.id is None or self.scan is None: + # self.msg_window('enter Reconstruction ID and scan') + # return False + if not os.path.exists(self.experiment_dir): + os.makedirs(self.experiment_dir) + experiment_conf_dir = os.path.join(self.experiment_dir, 'conf') + if not os.path.exists(experiment_conf_dir): + os.makedirs(experiment_conf_dir) + #return True + + def load_conf_dir(self): + if self.id is None or self.scan is None: + self.msg_window('enter Reconstruction ID and scan') + else: + # the function above assures that the working directory is set + if os.path.isfile(os.path.join(self.experiment_dir, 'conf', 'config')): + load_dir = select_dir(self.experiment_dir) + elif os.path.isfile(os.path.join(os.getcwd(), 'conf', 'last', 'config')): + load_dir = select_dir(os.path.join(os.getcwd(), 'conf', 'last')) + elif os.path.isfile(os.path.join(os.getcwd(), 'conf', 'defaults', 'config')): + load_dir = select_dir(os.path.join(os.getcwd(), 'conf', 'defaults')) + else: + load_dir = select_dir(self.working_dir) + if load_dir is not None: + self.set_conf_from_button.setStyleSheet("Text-align:left") + self.set_conf_from_button.setText(load_dir) + self.init_from_conf(load_dir) + + def set_working_dir(self): self.working_dir = select_dir(self.working_dir) - self.set_work_dir_button.setStyleSheet("Text-align:left") - self.set_work_dir_button.setText(self.working_dir) + if self.working_dir is not None: + self.set_work_dir_button.setStyleSheet("Text-align:left") + self.set_work_dir_button.setText(self.working_dir) + self.set_experiment_dir() def set_id(self): @@ -94,7 +132,6 @@ def set_experiment_dir(self): if self.id is not None and self.scan is not None: self.exp_id = self.id + '_' + self.scan self.experiment_dir = os.path.join(self.working_dir, self.exp_id) - self.init_from_conf() def run_everything(self): @@ -110,32 +147,52 @@ def init_work_dir(self): elif os.path.isdir('conf/defaults'): dir = 'conf/defaults' else: - self.msg_window('exiting, neither configuration file "conf/last/config" nor "conf/defaults/config" exists') - sys.exit(0) - main_conf = os.path.join(dir, 'config') - conf_map = ut.read_config(main_conf) - # initialize to the value from config file - self.working_dir = conf_map.working_dir + dir = None + + if dir is None: + self.working_dir = os.getcwd() + else: + main_conf = os.path.join(dir, 'config') + conf_map = ut.read_config(main_conf) + self.working_dir = conf_map.working_dir + self.set_work_dir_button.setStyleSheet("Text-align:left") self.set_work_dir_button.setText(self.working_dir) - def init_from_conf(self): - if os.path.isfile(os.path.join(self.experiment_dir, 'conf', 'config')): - dir = self.experiment_dir + '/conf' - elif os.path.isdir('conf/last'): - dir = 'conf/last' - elif os.path.isdir('conf/defaults'): - dir = 'conf/defaults' - else: - self.msg_window('exiting, neither configuration file "conf/last/config" nor "conf/defaults/config" exists') - sys.exit(0) + def init_from_conf(self, dir): main_conf = os.path.join(dir, 'config') + if not os.path.isfile(main_conf): + dir = os.path.join(dir, 'conf') + main_conf = os.path.join(dir, 'config') + if not os.path.isfile(main_conf): + self.msg_window('the directory does not contain config file, or conf/config file') + return + # copy configuration files from chosen configuration directory + self.assure_experiment_dir() + dest = os.path.join(self.experiment_dir, 'conf') + if dir != dest: + shutil.copy(main_conf, dest) + conf_data = os.path.join(dir, 'config_data') + shutil.copy(conf_data, dest) + conf_rec = os.path.join(dir, 'config_rec') + shutil.copy(conf_rec, dest) + conf_rec = os.path.join(dir, 'config_disp') + shutil.copy(conf_rec, dest) + conf_map = ut.read_config(main_conf) self.t.data_dir = conf_map.data_dir self.t.specfile = conf_map.specfile self.t.darkfile = conf_map.darkfile self.t.whitefile = conf_map.whitefile + try: + self.t.auto_correct_prep.setChecked(conf_map.auto_correct) + except: + self.t.auto_correct_prep.setChecked(False) + try: + self.t.exclude_scans.setText(str(conf_map.exclude_scans).replace(" ", "")) + except: + pass # set the text in the window self.t.data_dir_button.setStyleSheet("Text-align:left") self.t.data_dir_button.setText(self.t.data_dir) @@ -178,7 +235,7 @@ def init_from_conf(self): except AttributeError: pass try: - self.t.threads.setText(str(conf_map.threads).replace(" ", "")) + self.t.samples.setText(str(conf_map.samples).replace(" ", "")) except AttributeError: pass try: @@ -223,7 +280,7 @@ def __init__(self, main_win, parent=None): self.tab3 = QWidget() self.tab4 = QWidget() - self.addTab(self.tab1, "34ID prep") + self.addTab(self.tab1, "Data prep") self.addTab(self.tab2, "Data") self.addTab(self.tab3, "Reconstruction") self.addTab(self.tab4, "Display") @@ -234,24 +291,64 @@ def __init__(self, main_win, parent=None): def tab1UI(self): + self.data_dir = None + self.specfile = None layout = QFormLayout() - self.data_dir_button = QPushButton() - layout.addRow("data directory", self.data_dir_button) - self.spec_file_button = QPushButton() - layout.addRow("spec file", self.spec_file_button) - self.dark_file_button = QPushButton() - layout.addRow("darkfield file", self.dark_file_button) - self.white_file_button = QPushButton() - layout.addRow("whitefield file", self.white_file_button) + self.prep = QComboBox() + self.prep.addItem("34ID prep") + self.prep.addItem("custom") + layout.addRow("choose data preparation ", self.prep) + # add sub-layout with rows that apply to the choice form above + sub_layout = QFormLayout() + self.load_prep(sub_layout) + layout.addRow(sub_layout) self.prep_button = QPushButton('prepare', self) layout.addWidget(self.prep_button) self.tab1.setLayout(layout) self.prep_button.clicked.connect(self.prepare) - self.data_dir_button.clicked.connect(self.set_data_dir) - self.spec_file_button.clicked.connect(self.set_spec_file) - self.dark_file_button.clicked.connect(self.set_dark_file) - self.white_file_button.clicked.connect(self.set_white_file) + self.prep.currentIndexChanged.connect(lambda: self.load_prep(sub_layout)) + + + def load_prep(self, layout): + for i in reversed(range(layout.count())): + layout.itemAt(i).widget().deleteLater() + + if str(self.prep.currentText()) == "custom": + self.script_dir = QLineEdit() + layout.addRow("script directory", self.script_dir) + self.prep_exec = QLineEdit() + layout.addRow("script name.function", self.prep_exec) + self.args = QLineEdit() + layout.addRow("arguments (str/num)", self.args) + + elif str(self.prep.currentText()) == "34ID prep": + self.data_dir_button = QPushButton() + layout.addRow("data directory", self.data_dir_button) + self.spec_file_button = QPushButton() + layout.addRow("spec file", self.spec_file_button) + self.dark_file_button = QPushButton() + layout.addRow("darkfield file", self.dark_file_button) + self.white_file_button = QPushButton() + layout.addRow("whitefield file", self.white_file_button) + self.auto_correct_prep = QCheckBox() + layout.addRow("drop incomlete scans", self.auto_correct_prep) + self.exclude_scans = QLineEdit() + layout.addRow("exclude scans", self.exclude_scans) + + self.data_dir_button.clicked.connect(self.set_data_dir) + self.spec_file_button.clicked.connect(self.set_spec_file) + self.dark_file_button.clicked.connect(self.set_dark_file) + self.white_file_button.clicked.connect(self.set_white_file) + self.auto_correct_prep.stateChanged.connect(lambda: self.toggle_auto(layout)) + + + def toggle_auto(self, layout): + cb_label = layout.labelForField(self.auto_correct_prep) + if self.auto_correct_prep.isChecked(): + cb_label.setStyleSheet('color: black') + else: + cb_label.setStyleSheet('color: grey') def tab2UI(self): @@ -271,7 +368,7 @@ def tab2UI(self): self.tab2.setLayout(layout) # this will create config_data file and run data script - # to generate data ready for recondtruction + # to generate data ready for reconstruction self.config_data_button.clicked.connect(self.model_data) @@ -279,18 +376,18 @@ def tab3UI(self): layout = QVBoxLayout() ulayout = QFormLayout() llayout = QHBoxLayout() - self.cont = QCheckBox() - ulayout.addRow("continuation", self.cont) - self.cont.setChecked(False) self.proc = QComboBox() self.proc.addItem("opencl") self.proc.addItem("cpu") self.proc.addItem("cuda") ulayout.addRow("processor type", self.proc) + self.cont = QCheckBox() + ulayout.addRow("continuation", self.cont) + self.cont.setChecked(False) self.device = QLineEdit() ulayout.addRow("device(s)", self.device) - self.threads = QLineEdit() - ulayout.addRow("number of threads", self.threads) + self.samples = QLineEdit() + ulayout.addRow("number of samples", self.samples) self.gc = QLineEdit() ulayout.addRow("gc triggers", self.gc) self.alg_seq = QLineEdit() @@ -321,9 +418,6 @@ def toggle_cont(self, layout): layout.insertRow(2, "continue dir", self.cont_dir) cb_label.setStyleSheet('color: black') else: - label = layout.labelForField(self.cont_dir) - self.cont_dir.setParent(None) - label.setParent(None) cb_label.setStyleSheet('color: grey') @@ -358,12 +452,63 @@ def set_white_file(self): def set_data_dir(self): self.data_dir = select_dir(self.data_dir) - self.data_dir_button.setStyleSheet("Text-align:left") - self.data_dir_button.setText(self.data_dir) + if self.data_dir is not None: + self.data_dir_button.setStyleSheet("Text-align:left") + self.data_dir_button.setText(self.data_dir) def prepare(self): + if self.main_win.id is None or self.main_win.scan is None: + self.msg_window('enter Reconstruction ID and scan') + else: + #self.main_win.assure_experiment_dir() + if str(self.prep.currentText()) == "custom": + self.prepare_custom() + elif str(self.prep.currentText()) == "34ID prep": + self.prepare_34id() + + + def prepare_custom(self): + current_dir = os.getcwd() + script_dir = str(self.script_dir.text()) + if not os.path.isfile(os.path.join(script_dir, '__init__.py')): + open(os.path.join(script_dir, '__init__.py'), 'a').close() + [script, func] = str(self.prep_exec.text()).split('.') + args = str(self.args.text()) + if len(args) == 0: + args = [] + else: + args = args.split(',') + for i in range(len(args)): + try: + if args[i].find('.') == -1: + args[i] = int(args[i]) + else: + args[i] = float(args[i]) + except: + pass + os.chdir(script_dir) + sys.path.append(script_dir) + m = importlib.import_module(script) + os.chdir(current_dir) + f = getattr(m, func) + prep_data = f(*args) + if prep_data is not None: + tif_file = os.path.join(self.main_win.experiment_dir, 'prep', 'prep_data.tif') + ut.save_tif(prep_data, tif_file) + + + def prepare_34id(self): + mod = importlib.import_module('reccdi.src_py.run_scripts.run_34id_prepare') scan = str(self.main_win.scan_widget.text()) + try: + # after checking that scan is entered convert it to list of int + scan_range = scan.split('-') + for i in range(len(scan_range)): + scan_range[i] = int(scan_range[i]) + except: + self.msg_window('enter numeric values for scan range') + if self.main_win.working_dir is None or \ self.main_win.id is None or\ scan is None or \ @@ -403,15 +548,35 @@ def prepare(self): else: self.msg_window("whitefile not defined") return - + if self.auto_correct_prep.isChecked(): + conf_map["auto_correct"] = '"True"' + else: + conf_map["auto_correct"] = '"False"' + exclude_scans = self.exclude_scans.text() + if len(exclude_scans) > 0: + exclude_scans = str(exclude_scans).replace('\n', '') + conf_map['exclude_scans'] = '"' + exclude_scans + '"' + exclude_scans = exclude_scans.split(',') + exc_scans = [] + for scan in exclude_scans: + try: + num_scan = int(scan) + exc_scans.append(num_scan) + except: + pass + else: + exc_scans = [] conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') write_conf(conf_map, conf_dir, 'config') - prep.prepare(self.main_win.working_dir, self.main_win.exp_id, scan_range, self.data_dir, self.specfile, self.darkfile, self.whitefile) + f = getattr(mod, 'prepare') + f(self.main_win.working_dir, self.main_win.exp_id, scan_range, self.data_dir, self.specfile, self.darkfile, self.whitefile, self.auto_correct_prep.isChecked(), exc_scans) + + #scripts.run_34id_prepare.prepare(self.main_win.working_dir, self.main_win.exp_id, scan_range, self.data_dir, self.specfile, self.darkfile, self.whitefile) def model_data(self): - if os.path.isfile(os.path.join(self.main_win.experiment_dir, 'prep','prep_data.npy')): + if os.path.isfile(os.path.join(self.main_win.experiment_dir, 'prep','prep_data.tif')): conf_map = {} if len(self.aliens.text()) > 0: conf_map['aliens'] = str(self.aliens.text()).replace('\n','') @@ -446,7 +611,7 @@ def msg_window(self, text): def reconstruction(self): if os.path.isfile(os.path.join(self.main_win.experiment_dir, 'data', 'data.npy')): conf_map = {} - conf_map['threads'] = str(self.threads.text()) + conf_map['samples'] = str(self.samples.text()) conf_map['device'] = str(self.device.text()).replace('\n','') conf_map['garbage_trigger'] = str(self.gc.text()).replace('\n','') conf_map['algorithm_sequence'] = str(self.alg_seq.text()).replace('\n','') @@ -467,7 +632,7 @@ def reconstruction(self): def display(self): - if os.path.isfile(os.path.join(self.main_win.experiment_dir, 'results', 'image.vtk')): + if os.path.isfile(os.path.join(self.main_win.experiment_dir, 'results', 'image.npy')): disp_conf_file = os.path.join(self.main_win.experiment_dir, 'conf', 'config_disp') temp_file = os.path.join(self.main_win.experiment_dir, 'conf', 'temp') with open(temp_file, 'a') as temp: @@ -496,7 +661,7 @@ def rec_default(self): len(self.main_win.working_dir) == 0 or len(self.main_win.id) == 0: self.msg_window('Working Directory or Reconstruction ID not configured') else: - self.threads.setText('1') + self.samples.setText('1') self.device.setText('(3)') self.gc.setText('(1000)') self.alg_seq.setText('((3,("ER",20),("HIO",180)),(1,("ER",20)))') diff --git a/bin/cdi_window.sh b/bin/cdi_window.sh index d190722..21fa991 100644 --- a/bin/cdi_window.sh +++ b/bin/cdi_window.sh @@ -7,4 +7,4 @@ p=${p//"CXDUSER/anaconda"/"CXDUSER/CDI/anaconda"} export PATH=$p export LD_LIBRARY_PATH=LIB_PATH -python bin/cdi_conf_window.py +python bin/cdi_window.py diff --git a/bin/run_34id_prepare.py b/bin/prepare_34id.py similarity index 100% rename from bin/run_34id_prepare.py rename to bin/prepare_34id.py diff --git a/conf/last/config b/conf/last/config index 3de66fc..ab458f2 100644 --- a/conf/last/config +++ b/conf/last/config @@ -1,5 +1,7 @@ -working_dir = "test" -data_dir = "/net/s34data/export/34idc-data/2018/Chung1118/ADChung1118a" -specfile = "/net/s34data/export/34idc-data/2018/Chung1118/Chung1118a.spec" -darkfile = "/net/s34data/export/34idc-work/2018/Chung1118/dark.tif" -whitefile = "/net/s34data/export/34idc-work/2018/Chung1118/CelaWhiteField.tif" +working_dir = "/local/bfrosik/cdi/test" +data_dir = "/net/s34data/export/34idc-data/2019/Staff19-1/ADStaff19-1a" +specfile = "/net/s34data/export/34idc-data/2019/Staff19-1/Staff19-1a.spec" +darkfile = "/net/s34data/export/34idc-work/2019/dark.tif" +whitefile = "/net/s34data/export/34idc-work/2019/CelaWhiteField.tif" +auto_correct = "False" +exclude_scans = "88,91" diff --git a/conf/last/config_data b/conf/last/config_data index 62f7f7a..5453398 100644 --- a/conf/last/config_data +++ b/conf/last/config_data @@ -1,5 +1,5 @@ -aliens = ((0,0,0,0,0,0),(0,0,0,0,0,0)) +aliens = ((107,77,57,119,91,70)) amp_threshold = 2.0 binning = (1,1,1) center_shift = (0,0,0) -adjust_dimensions = (-4,-4,-65,-65,-65,-65) +adjust_dimensions = (0,0,0,0,0,0) diff --git a/conf/last/config_disp b/conf/last/config_disp index 14bf428..c944828 100644 --- a/conf/last/config_disp +++ b/conf/last/config_disp @@ -1,16 +1,11 @@ -crop = [.5, .5, .5] +lamda = 0.13775555555555555 +delta = 33.561 +gamma = 8.8126 +arm = 399.775 +dth = 0.01 +pixel = [55.0e-6, 55.0e-6] -//------------------Below are definitions/ exemples of configurable items----------------------- -// for APS beamline 34-IDC these are parsed from spec file - -// lamda = 0.10780869565217391 // Wavelength of x-ray (units in nm) -// delta = 26.74975 // Detector angles (in degrees) -// gamma = 8.5102 // (in degrees) -// arm = 750.0 // Detector distance from sample (in mm) -// dth = 0.007499999999999995 // step values for th translation (in degrees) -// pixel = [55.0e-6, 55.0e-6] // pixel size (in meters) - -// for APS beamline 34-IDC binning is imported from config_data file -// binning = (1,1,1) +crop = (.5,.2,.5) +binning = (1,1,1) diff --git a/config_rec b/config_rec index 9c55e3c..2475fdf 100644 --- a/config_rec +++ b/config_rec @@ -27,7 +27,7 @@ continue_dir = "cont" // directory from which results are read for reconstruction continuation // if the directory contains subdirectories, a thread will start for each subdirectory -threads = 1 +samples = 1 // number of reconstructions to start with device = [0,0] diff --git a/how_to_run b/how_to_run index 0eef4ee..6774036 100644 --- a/how_to_run +++ b/how_to_run @@ -31,7 +31,7 @@ example: 1. running all pieces source bin/everything.sh 'opencl' 'B' '290-290' 'conf/last' 2. running one by one -python bin/run_34id_prepare.py 'B' '290-290' 'conf/last' +python bin/prepare_34id.py 'B' '290-290' 'conf/last' python bin/run_data.py '/net/s34data/export/34idc-data/2018/Chung1118/test/B_290-290' source bin/run_rec.sh 'opencl' '/net/s34data/export/34idc-data/2018/Chung1118/test/B_290-290' python bin/run_disp.py '/net/s34data/export/34idc-data/2018/Chung1118/test/B_290-290' diff --git a/reccdi/src_py/beamlines/aps_34id/prep.py b/reccdi/src_py/beamlines/aps_34id/prep.py index c92aef0..7147df6 100644 --- a/reccdi/src_py/beamlines/aps_34id/prep.py +++ b/reccdi/src_py/beamlines/aps_34id/prep.py @@ -69,7 +69,7 @@ def get_normalized_slice(file, dark, white): return slice -def read_scan(dir, dark, white): +def read_scan(dir, dark, white, auto_correct): slices = 0 files = [] files_dir = {} @@ -79,6 +79,9 @@ def read_scan(dir, dark, white): #it's assumed that the files end with four digits and 'tif' or 'tiff' extension key = temp[0][-4:] files_dir[key] = file + if auto_correct and len(files_dir) < 81: + return None + ordered_keys = sorted(list(files_dir.keys())) for key in ordered_keys: @@ -129,17 +132,22 @@ def combine_part(part_f, slice_sum, refpart, part): return slice_sum + shift(part, pixelshift) -def prep_data(scan, det_area1, det_area2, data_dir, prep_data_dir, darkfile, whitefile): +def prep_data(scan, det_area1, det_area2, data_dir, prep_data_dir, darkfile, whitefile, auto_correct=False, exclude_scans=[]): # build sub-directories map - dirs = {} + if len(scan) == 1: + scan.append(scan[0]) + dirs = [] for name in os.listdir(data_dir): subdir = os.path.join(data_dir, name) if os.path.isdir(subdir): try: index = int(name[-4:]) - dirs[index] = subdir + if index >= scan[0] and index <= scan[1] and not index in exclude_scans: + dirs.append(subdir) except: continue + if index >= scan[1]: + break # find the darkfield array dark_full = tif.imread(darkfile).astype(float) @@ -159,23 +167,22 @@ def prep_data(scan, det_area1, det_area2, data_dir, prep_data_dir, darkfile, whi white = np.where(white<5000, 1e20, white) #Some large value if len(scan) == 1: - arr = read_scan(dirs[scan[0]], dark, white) + arr = read_scan(dirs[0], dark, white, auto_correct) else: refpart = None - for set_no in range(scan[0], scan[1]+1): - try: - #this will load scans from one directory into an array - part = read_scan(dirs[set_no], dark, white) - if refpart is None: - # make the first part a reference - slice_sum = np.abs(copy.deepcopy(part)) - refpart = sf.fftn(part) - else: - # add the arrays together - part_f = sf.fftn(part) - slice_sum = combine_part(part_f, slice_sum, refpart, part) - except KeyError: - pass + for dir in dirs: + #this will load scans from one directory into an array + part = read_scan(dir, dark, white, auto_correct) + if part is None: + continue + if refpart is None: + # make the first part a reference + slice_sum = np.abs(copy.deepcopy(part)) + refpart = sf.fftn(part) + else: + # add the arrays together + part_f = sf.fftn(part) + slice_sum = combine_part(part_f, slice_sum, refpart, part) arr = np.transpose(np.abs(slice_sum).astype(np.int32)) # if the full sensor was used for the image (i.e. the data size is 512x512) @@ -194,7 +201,7 @@ def prep_data(scan, det_area1, det_area2, data_dir, prep_data_dir, darkfile, whi tif.imsave(data_file, b.astype(np.int32)) -def prepare(working_dir, id, scan, data_dir, specfile, darkfile, whitefile): +def prepare(working_dir, id, scan, data_dir, specfile, darkfile, whitefile, auto_correct, exclude_scans): # assuming all parameters were validated (i.e working directory exists, etc.) # 34-idc experiment ids contain scan range. The id parameter does include the range string prepended # with _ @@ -218,7 +225,7 @@ def prepare(working_dir, id, scan, data_dir, specfile, darkfile, whitefile): set_disp_conf(dth, delta, gamma, arm, lam, detector, conf_dir) # data prep - prep_data(scan, det_area1, det_area2, data_dir, prep_data_dir, darkfile, whitefile) + prep_data(scan, det_area1, det_area2, data_dir, prep_data_dir, darkfile, whitefile, auto_correct, exclude_scans) #prepare('/local/bfrosik/cdi/test', 'A', 'DET1', [38,39], '/net/s34data/export/34idc-data/2018/Startup18-2/ADStartup18-2a', '/net/s34data/export/34idc-data/2018/Startup18-2/Startup18-2a.spec') @@ -261,7 +268,7 @@ def config_rec(working_dir, id): conf_map = {} conf_map['data_dir'] = '"' + working_dir + '/' + id + '/data"' conf_map['save_dir'] = '"' + working_dir + '/' + id + '/results"' - conf_map['threads'] = '1' + conf_map['samples'] = '1' conf_map['device'] = '(0)' conf_map['garbage_trigger'] = '(1000)' conf_map['algorithm_sequence'] = '((5,("ER",20),("HIO",180)),(1,("ER",40),("HIO",160)),(4,("ER",20),("HIO",180)))' diff --git a/reccdi/src_py/controller/data.py b/reccdi/src_py/controller/data.py index 02a18b8..9ad22c1 100644 --- a/reccdi/src_py/controller/data.py +++ b/reccdi/src_py/controller/data.py @@ -97,16 +97,15 @@ def prep(fname, conf_info): a_f.close() except: pass + # saving file for Kenley project - AI aliens removing + d_f = os.path.join(experiment_dir, 'prep', 'prep_no_aliens.npy') + np.save(d_f, data) + d_f = os.path.join(experiment_dir, 'prep', 'prep_no_aliens.tif') + tif.imsave(d_f, data.astype(np.int32)) except AttributeError: pass - # saving file for Kenley project - AI aliens removing - d_f = os.path.join(experiment_dir, 'prep', 'prep_no_aliens.npy') - np.save(d_f, data) - d_f = os.path.join(experiment_dir, 'prep', 'prep_no_aliens.tif') - tif.imsave(d_f, data.astype(np.int32)) - try: amp_threshold = config_map.amp_threshold print ('applied threshold') @@ -114,20 +113,45 @@ def prep(fname, conf_info): print ('define amplitude threshold. Exiting') return + # zero out the noise + prep_data = np.where(data < amp_threshold, 0, data) + try: binsizes = config_map.binning + # The bins are entered in reverse order + binsizes.reverse() + print ('binning') + prep_data = ut.binning(prep_data, binsizes) except AttributeError: - binsizes = None + pass + + # square root data + prep_data = np.sqrt(prep_data) try: - pads = tuple(config_map.adjust_dimensions) + pads = config_map.adjust_dimensions + # adjust the size, either pad with 0s or crop array + print ('adjusting dimensions') + # need to reverse the padding + pairs = [] + for i in range(int(len(pads)/2)): + pair = pads[2*i:2*i+2] + pairs.append(pair) + pairs.reverse() + pads = [] + for pair in pairs: + pads.extend(pair) + prep_data = ut.adjust_dimensions(prep_data, pads) except AttributeError: - pads = None + prep_data = ut.adjust_dimensions(prep_data, (0,0,0,0,0,0)) try: center_shift = tuple(config_map.center_shift) + center_shift.reverse() + print ('shift center') + prep_data = ut.get_centered(prep_data, center_shift) except AttributeError: - center_shift = None + prep_data = ut.get_centered(prep_data, [0,0,0]) try: data_dir = config_map.data_dir @@ -138,34 +162,9 @@ def prep(fname, conf_info): if not os.path.exists(data_dir): os.makedirs(data_dir) - # zero out the noise - prep_data = np.where(data < amp_threshold, 0, data) - - if not binsizes is None: - # do binning - print ('binning') - prep_data = ut.binning(prep_data, binsizes) - - # square root data - prep_data = np.sqrt(prep_data) - - if not pads is None: - # adjust the size, either zero pad or crop array - print ('adjusting dimensions') - prep_data = ut.adjust_dimensions(prep_data, pads) - else: - prep_data = ut.adjust_dimensions(prep_data, (0,0,0,0,0,0)) - - if not center_shift is None: - # get centered array - print ('shift center') - prep_data = ut.get_centered(prep_data, center_shift) - else: - prep_data = ut.get_centered(prep_data, [0,0,0]) - # save data data_file = os.path.join(data_dir, 'data.npy') - print ('saving data ready for reconstruction') + print ('saving data ready for reconstruction, data dims:', prep_data.shape) np.save(data_file, prep_data) diff --git a/reccdi/src_py/controller/gen_rec.py b/reccdi/src_py/controller/gen_rec.py index c9949c4..4db73e3 100644 --- a/reccdi/src_py/controller/gen_rec.py +++ b/reccdi/src_py/controller/gen_rec.py @@ -136,8 +136,8 @@ def order(self, images_errs): reverse = False images = images_errs[0] errs = images_errs[1] - species = len(images) - for i in range (species): + samples = len(images) + for i in range (samples): image = images[i] if self.metric == 'chi': rank_property.append(errs[i]) @@ -160,7 +160,7 @@ def order(self, images_errs): # metric is 'chi' rank_property.append(errs[i][-1]) - # ranks keeps indexes of species from best to worst + # ranks keeps indexes of samples from best to worst # for most of the metric types the minimum of the metric is best, but for # 'summed_phase' and 'area' it is oposite, so reversing the order ranks = np.argsort(rank_property) @@ -169,7 +169,7 @@ def order(self, images_errs): # order the initial array according to rank ordered = [] - for i in range(species): + for i in range(samples): ordered.append(images_errs[ranks[i]]) return ordered @@ -202,17 +202,17 @@ def breed(self, images, errs, gen, threshold, sigma): list of child coherence, set to None """ img_errs = zip(images, errs) - species = len(img_errs) + samples = len(img_errs) ordered = self.order(img_errs) if self.worst_remove_no is not None: - species = species - self.worst_remove_no[gen] - ordered = ordered[0 : species] + samples = samples - self.worst_remove_no[gen] + ordered = ordered[0 : samples] - # if configured to cross breed, include two best species from previous generation and order again + # if configured to cross breed, include two best samples from previous generation and order again if self.is_cross_breed: if len(self.prev_two_best) > 0: ordered.append(self.prev_two_best) - ordered = self.order(ordered, species + 2) + ordered = self.order(ordered, samples + 2) self.prev_two_best[0] = ordered[0] self.prev_two_best[1] = ordered[1] @@ -394,23 +394,23 @@ def reconstruction(generations, proc, data, conf_info, config_map): support_sigma = 1.0 try: - species = config_map.species + samples = config_map.samples except: - species = 1 + samples = 1 # init starting values - # if multiple species configured (typical for genetic algorithm), use "reconstruction_multi" module - if species > 1: + # if multiple samples configured (typical for genetic algorithm), use "reconstruction_multi" module + if samples > 1: images = [] supports = [] cohs = [] - for _ in range(species): + for _ in range(samples): images.append(None) supports.append(None) cohs.append(None) rec = multi # load parls configuration - rec.load_config(species) + rec.load_config(samples) else: images = None supports = None diff --git a/reccdi/src_py/controller/reconstruction.py b/reccdi/src_py/controller/reconstruction.py index a3783f8..8e5c129 100644 --- a/reccdi/src_py/controller/reconstruction.py +++ b/reccdi/src_py/controller/reconstruction.py @@ -118,12 +118,12 @@ def reconstruction(proc, data, conf_info, config_map): # how many reconstructions to start try: - threads = config_map.threads + samples = config_map.samples except: - threads = 1 + samples = 1 - if threads > 1: - multi.reconstruction(threads, proc, data, conf_info, config_map) + if samples > 1: + multi.reconstruction(samples, proc, data, conf_info, config_map) else: cont = False try: @@ -160,7 +160,7 @@ def reconstruction(proc, data, conf_info, config_map): if experiment_dir is not None: save_dir = os.path.join(experiment_dir, save_dir) - ut.save_results(image, support, coh, save_dir) + ut.save_results(image, support, coh, np.asarray(errs), save_dir) print('done') diff --git a/reccdi/src_py/controller/reconstruction_multi.py b/reccdi/src_py/controller/reconstruction_multi.py index d5c248b..3be4cb6 100644 --- a/reccdi/src_py/controller/reconstruction_multi.py +++ b/reccdi/src_py/controller/reconstruction_multi.py @@ -23,6 +23,7 @@ import reccdi.src_py.controller.fast_module as calc from parsl.app.app import python_app import time +import numpy as np __author__ = "Barbara Frosik" @@ -32,7 +33,7 @@ 'reconstruction'] -def load_config(threads): +def load_config(samples): import parsl from parsl.config import Config from parsl.executors.ipp import IPyParallelExecutor @@ -45,7 +46,7 @@ def load_config(threads): provider=LocalProvider( channel=LocalChannel(), init_blocks=1, - max_blocks=threads, + max_blocks=samples, parallelism=1, ) ) @@ -54,7 +55,7 @@ def load_config(threads): dfk = parsl.load(local_config) -def assign_devices(devices, threads): +def assign_devices(devices, samples): """ This function pairs device id with reconstruction run. When running multiple reconstructions, it should be distributed between available gpus. The GPUs might be configured. If not, it is left to Parsl logic how @@ -65,21 +66,21 @@ def assign_devices(devices, threads): devices : list list containing ids of devices - threads : int - number of reconstructions (each in own thread) + samples : int + number of reconstructions (each in own sample) Returns ------- dev : list - list containing devices allocated subsequently to threads. If the device was not configured, it will + list containing devices allocated subsequently to samples. If the device was not configured, it will be set to -1, which leaves the allocation to Parsl """ dev_no = len(devices) dev = [] - for thread in range(threads): - if thread < dev_no: - dev.append(devices[thread]) + for sample in range(samples): + if sample < dev_no: + dev.append(devices[sample]) else: dev.append(-1) return dev @@ -88,7 +89,7 @@ def assign_devices(devices, threads): @python_app def run_fast_module(proc, device, conf, data, coh_dims, prev_image, prev_support, prev_coh): """ - This function runs in the thread palarellized by Parsl. + This function runs in the sample palarellized by Parsl. Parameters ---------- @@ -96,7 +97,7 @@ def run_fast_module(proc, device, conf, data, coh_dims, prev_image, prev_support string defining library used 'cpu' or 'opencl' or 'cuda' device : int - device allocated to this thread or -1 if not configured + device allocated to this sample or -1 if not configured conf : str configuration file @@ -128,9 +129,9 @@ def run_fast_module(proc, device, conf, data, coh_dims, prev_image, prev_support error : list containing errors for iterations """ - image, support, coherence, error = calc.fast_module_reconstruction(proc, device, conf, data, coh_dims, + image, support, coherence, errors = calc.fast_module_reconstruction(proc, device, conf, data, coh_dims, prev_image, prev_support, prev_coh) - return image, support, coherence, error + return image, support, coherence, errors def read_results(read_dir): @@ -167,13 +168,13 @@ def read_results(read_dir): return images, supports, cohs -def save_results(threads, images, supports, cohs, save_dir): +def save_results(samples, images, supports, cohs, errs, save_dir): """ This function saves results of multiple reconstructions to directory tree in save_dir. Parameters ---------- - threads : int + samples : int number of reconstruction sets results images : list @@ -192,15 +193,15 @@ def save_results(threads, images, supports, cohs, save_dir): ------- nothing """ - for i in range(threads): + for i in range(samples): subdir = os.path.join(save_dir, str(i)) - ut.save_results(images[i], supports[i], cohs[i], subdir) + ut.save_results(images[i], supports[i], cohs[i], np.asarray(errs[i]), subdir) def rec(proc, data, conf, config_map, images, supports, cohs=None): """ This function controls the multiple reconstructions. It invokes a loop to execute parallel resconstructions, - wait for all threads to deliver results, and store te results. + wait for all samples to deliver results, and store te results. Parameters ---------- @@ -244,9 +245,9 @@ def rec(proc, data, conf, config_map, images, supports, cohs=None): except: devices = [-1] - # assign device for each thread - species = config_map.species - devices = assign_devices(devices, species) + # assign device for each sample + samples = config_map.samples + devices = assign_devices(devices, samples) try: coh_dims = tuple(config_map.partial_coherence_roi) @@ -255,7 +256,7 @@ def rec(proc, data, conf, config_map, images, supports, cohs=None): res = [] errs = [] - for i in range(species): + for i in range(samples): if cohs is None: coh = None else: @@ -272,21 +273,21 @@ def rec(proc, data, conf, config_map, images, supports, cohs=None): cohs[i] = r[2] errs[i] = r[3] # return only error from last iteration for each reconstruction - return images, supports, cohs, errs[-1,:] + return images, supports, cohs, errs -def reconstruction(species, proc, data, conf_info, config_map): +def reconstruction(samples, proc, data, conf_info, config_map): """ This function starts the reconstruction. It checks whether it is continuation of reconstruction defined by - configuration. If continuation, the lists contaning arrays of images, supports, coherence for multiple species + configuration. If continuation, the lists contaning arrays of images, supports, coherence for multiple samples are read from cont_directory, otherwise, they are initialized to None. After the lists are initialized, they are passed for the multi-reconstruction. The results are saved in the configured directory. Parameters ---------- - species : int - number of species + samples : int + number of samples proc : str a string indicating the processor type (cpu, opencl, cuda) @@ -323,12 +324,12 @@ def reconstruction(species, proc, data, conf_info, config_map): images = [] supports = [] cohs = [] - for _ in range(species): + for _ in range(samples): images.append(None) supports.append(None) cohs.append(None) - load_config(species) + load_config(samples) start = time.time() if os.path.isdir(conf_info): @@ -352,7 +353,7 @@ def reconstruction(species, proc, data, conf_info, config_map): if experiment_dir is not None: save_dir = os.path.join(experiment_dir, save_dir) - save_results(species, images, supports, cohs, save_dir) + save_results(samples, images, supports, cohs, errs, save_dir) print('done') diff --git a/reccdi/src_py/run_scripts/run_34id_prepare.py b/reccdi/src_py/run_scripts/run_34id_prepare.py index c67fd46..d3eb227 100755 --- a/reccdi/src_py/run_scripts/run_34id_prepare.py +++ b/reccdi/src_py/run_scripts/run_34id_prepare.py @@ -6,28 +6,31 @@ import shutil -def prepare(working_dir, id, scan, data_dir, specfile, darkfile, whitefile): +def prepare(working_dir, id, scan, data_dir, specfile, darkfile, whitefile, auto_correct=False, exclude_scans=[]): experiment_dir = os.path.join(working_dir, id) experiment_conf_dir = os.path.join(experiment_dir, 'conf') if not os.path.exists(experiment_conf_dir): os.makedirs(experiment_conf_dir) - prep.prepare(working_dir, id, scan, data_dir, specfile, darkfile, whitefile) - # copy experiment config into last config + prep.prepare(working_dir, id, scan, data_dir, specfile, darkfile, whitefile, auto_correct, exclude_scans) + # copy experiment config into last config, this is the last used main_conf = os.path.join(working_dir, id, 'conf', 'config') - last = os.path.join('conf', 'last', 'config') + last = os.path.join('conf', 'last') + if not os.path.exists(last): + os.makedirs(last) shutil.copy(main_conf, last) return experiment_dir def copy_conf(src, dest): - main_conf = os.path.join(src, 'config') - shutil.copy(main_conf, dest) - conf_data = os.path.join(src, 'config_data') - shutil.copy(conf_data, dest) - conf_rec = os.path.join(src, 'config_rec') - shutil.copy(conf_rec, dest) + if src != dest: + main_conf = os.path.join(src, 'config') + shutil.copy(main_conf, dest) + conf_data = os.path.join(src, 'config_data') + shutil.copy(conf_data, dest) + conf_rec = os.path.join(src, 'config_rec') + shutil.copy(conf_rec, dest) def parse_prepare(prefix, scan, conf_dir): @@ -57,7 +60,18 @@ def parse_prepare(prefix, scan, conf_dir): with open(main_conf, 'r') as f: config_map = cfg.Config(f.read()) - prep.prepare(config_map.working_dir, id, scan_num, config_map.data_dir, config_map.specfile, config_map.darkfile, config_map.whitefile) + try: + exclude_scans = config_map.exclude_scans + # convert it to list of int + exclude_scans = exclude_scans.split(',') + excluded = [] + for i in range(len(exclude_scans)): + excluded.append(int(exclude_scans[i])) + except: + print ('enter numeric values for scan range') + sys.exit(0) + + prep.prepare(config_map.working_dir, id, scan_num, config_map.data_dir, config_map.specfile, config_map.darkfile, config_map.whitefile, config_map.auto_correct, excluded) experiment_dir = os.path.join(config_map.working_dir, id) # copy config_data, config_rec, cofig_disp files from cofig directory into the experiment conf directory copy_conf(conf_dir, os.path.join(experiment_dir, 'conf')) diff --git a/reccdi/src_py/utilities/CXDVizNX.py b/reccdi/src_py/utilities/CXDVizNX.py index 69800e4..832b0b8 100644 --- a/reccdi/src_py/utilities/CXDVizNX.py +++ b/reccdi/src_py/utilities/CXDVizNX.py @@ -9,6 +9,7 @@ import traits.api as tr from tvtk.api import tvtk import numpy as np +import scipy as sp import math as m import reccdi.src_py.utilities.utils as ut @@ -62,22 +63,27 @@ def __init__(self, config): except AttributeError: print ('dth not defined') try: - binning = config_map.binning + self.binning = config_map.binning except AttributeError: - binning = [1,1,1] + self.binning = [1,1,1] try: pixel = config_map.pixel - #self.dpx = pixel[0] * binning[1] / self.arm - #self.dpy = pixel[1] * binning[2] / self.arm - self.dpx = pixel[0] * binning[2] / self.arm - self.dpy = pixel[1] * binning[1] / self.arm + self.dpx = pixel[0] * self.binning[0] / self.arm + self.dpy = pixel[1] * self.binning[1] / self.arm + # self.dpx = pixel[0] / self.arm + # self.dpy = pixel[1] / self.arm except AttributeError: print ('pixel not defined') try: self.crop = config_map.crop + # for i in range(len(self.crop)): + # self.crop[i] = self.crop[i] * binning[i] except AttributeError: self.crop = None print ('crop not defined') + # self.dx = 1.0 * binning[0] / shape[0] + # self.dy = 1.0 * binning[1] / shape[1] + # self.dz = 1.0 * binning[2] / shape[2] class CXDViz(tr.HasTraits): @@ -244,17 +250,17 @@ def get_structured_grid(self, **args): return self.sg - def get_image_data(self, **args): - self.set_crop(self.cropx, self.cropy, self.cropz) - dims = list(self.arr[self.cropobj].shape) - if len(dims) == 2: - dims.append(1) - self.imd.dimensions = tuple(dims) - self.imd.extent = 0, dims[2] - 1, 0, dims[1] - 1, 0, dims[0] - 1 - self.imd.point_data.scalars = self.arr[self.cropobj].ravel() - return self.imd - - + # def get_image_data(self, **args): + # self.set_crop() + # dims = list(self.arr[self.cropobj].shape) + # if len(dims) == 2: + # dims.append(1) + # self.imd.dimensions = tuple(dims) + # self.imd.extent = 0, dims[2] - 1, 0, dims[1] - 1, 0, dims[0] - 1 + # self.imd.point_data.scalars = self.arr[self.cropobj].ravel() + # return self.imd + # + # def write_structured_grid(self, filename, **args): sgwriter = tvtk.StructuredGridWriter() sgwriter.file_type = 'binary' @@ -267,22 +273,9 @@ def write_structured_grid(self, filename, **args): def shift(arr, s0, s1, s2): - shifted = np.roll(arr, s0, 0) - shifted = np.roll(shifted, s1, 1) - return np.roll(shifted, s2, 2) - - -def sub_pixel_shift(arr, shift_ind): - buf = np.fft.fftn(arr) - dims = buf.shape - x = np.fft.ifftshift(np.arange(-int(dims[0]/2), int(dims[0]/2))) - y = np.fft.ifftshift(np.arange(-int(dims[1]/2), int(dims[1]/2))) - z = np.fft.ifftshift(np.arange(-int(dims[2]/2), int(dims[2]/2))) - gx, gy, gz = np.meshgrid(x, y, z) - - grid_shift = - gx * shift_ind[0] / dims[0] - gy * shift_ind[1] / dims[1] - gy * shift_ind[2] / dims[2] - g = buf * np.exp(1j * 2 * np.pi * grid_shift) - return np.fft.ifftn(g) + shifted = np.roll(arr, s0, axis=0) + shifted = np.roll(shifted, s1, axis=1) + return np.roll(shifted, s2, axis=2) def center_of_mass(arr): @@ -300,12 +293,15 @@ def center_of_mass(arr): return list(com) -def remove_ramp(arr): +def remove_ramp(arr, ups=3): + new_shape = list(arr.shape) # pad zeros around arr, to the size of 3 times (ups = 3) of arr size - padded = ut.zero_pad(arr, arr.shape) + for i in range(len(new_shape)): + new_shape[i] = ups * new_shape[i] + padded = ut.get_zero_padded_centered(arr, new_shape) data = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(padded))) - com = center_of_mass(np.power(np.absolute(data), 2)) - .5 - sub_pixel_shifted = sub_pixel_shift(data, (com[1], com[0], com[2])) + com = sp.ndimage.center_of_mass(np.power(np.abs(data), 2)) + sub_pixel_shifted = ut.sub_pixel_shift(data, (com[1]-.5), (com[0]-.5), (com[2]-.5)) ramp_removed_padded = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(sub_pixel_shifted))) ramp_removed = ut.crop_center(ramp_removed_padded, arr.shape) @@ -314,15 +310,16 @@ def remove_ramp(arr): def center(image, support): dims = image.shape - com = center_of_mass(np.absolute(image) * support) # place center of mass image*support in the center - image = shift(image, int(dims[0]/2) - com[0], int(dims[1]/2) - com[1], int(dims[2]/2) - com[2]) - support = shift(support, int(dims[0]/2) - com[0], int(dims[1]/2) - com[1], int(dims[2]/2) - com[2]) + for ax in range(len(dims)): + com = sp.ndimage.center_of_mass(np.absolute(image) * support) + image = shift(image, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) + support = shift(support, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) + + # set com phase to zero, use as a reference + phi0 = m.atan2(image.imag[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)], image.real[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)]) + image = image * np.exp(-1j * phi0) - # set com phase to zero, use as a reference - phi0 = m.atan2(image.imag[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)], image.real[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)]) - print ('phi0', phi0) - image = image * np.exp(-1j * phi0) return image, support @@ -338,10 +335,18 @@ def get_crop(params, shape): return crop +def unbin(ar, bins): + array = ar + for ax in range(len(bins)): + if bins[ax] > 1: + array = np.repeat(array, bins[ax], axis=ax) + return array + + def save_CX(conf, image, support, coh, save_dir): image, support = center(image, support) - # image = remove_ramp(image) params = DispalyParams(conf) + image = remove_ramp(image) viz = CXDViz() viz.set_array(image) viz.set_geometry(params, image.shape) diff --git a/reccdi/src_py/utilities/utils.py b/reccdi/src_py/utilities/utils.py index 5434128..64c3950 100644 --- a/reccdi/src_py/utilities/utils.py +++ b/reccdi/src_py/utilities/utils.py @@ -60,6 +60,10 @@ def get_array_from_tif(filename): return tf.imread(filename) +def save_tif(ar, tif_file): + tf.imsave(tif_file, ar.astype(np.int32)) + + def read_config(config): """ This function gets configuration file. It checks if the file exists and parses it into a map. @@ -198,12 +202,16 @@ def binning(array, binsizes): binned_array = np.sum(binned_array, axis=ax+1) new_shape = list(binned_array.shape) return binned_array - + + # ar = np.asarray([1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9]) # ar.resize((5,9)) # print ('ar', ar) # b = binning(ar, (2,2)) # print ('b',b) +# c = binning1(ar,(2,2)) +# print ('c',c) + def get_centered(arr, center_shift): """ @@ -427,7 +435,7 @@ def read_results(read_dir): return image, support, coh -def save_results(image, support, coh, save_dir): +def save_results(image, support, coh, errs, save_dir): if not os.path.exists(save_dir): os.makedirs(save_dir) @@ -435,8 +443,20 @@ def save_results(image, support, coh, save_dir): np.save(image_file, image) support_file = os.path.join(save_dir, 'support') np.save(support_file, support) + errs_file = os.path.join(save_dir, 'errors') + np.save(errs_file, errs) if not coh is None: coh_file = os.path.join(save_dir, 'coherence') np.save(coh_file, coh) +def sub_pixel_shift(arr, row_shift, col_shift, z_shift): + # arr is 3D + buf2ft = np.fft.fftn(arr) + shape = arr.shape + Nr = np.fft.ifftshift(np.array(list(range(-int(np.floor(shape[0]/2)), shape[0]-int(np.floor(shape[0]/2)))))) + Nc = np.fft.ifftshift(np.array(list(range(-int(np.floor(shape[1]/2)), shape[1]-int(np.floor(shape[1]/2)))))) + Nz = np.fft.ifftshift(np.array(list(range(-int(np.floor(shape[2]/2)), shape[2]-int(np.floor(shape[2]/2)))))) + [Nc, Nr, Nz] = np.meshgrid(Nc, Nr, Nz) + Greg = buf2ft * np.exp(1j * 2 * np.pi * (-row_shift * Nr / shape[0] - col_shift * Nc / shape[1] - z_shift * Nz / shape[2])) + return np.fft.ifftn(Greg) diff --git a/reccdi/src_py/utilities/utils_ga.py b/reccdi/src_py/utilities/utils_ga.py index 6fa5571..d6b7c71 100644 --- a/reccdi/src_py/utilities/utils_ga.py +++ b/reccdi/src_py/utilities/utils_ga.py @@ -144,17 +144,6 @@ def register_3d_reconstruction(ref_arr, arr): return shift_2, shift_1, shift_0 -def sub_pixel_shift(arr, row_shift, col_shift, z_shift): - # arr is 3D - buf2ft = np.fft.fftn(arr) - shape = arr.shape - Nr = np.fft.ifftshift(np.array(list(range(-int(np.floor(shape[0]/2)), shape[0]-int(np.floor(shape[0]/2)))))) - Nc = np.fft.ifftshift(np.array(list(range(-int(np.floor(shape[1]/2)), shape[1]-int(np.floor(shape[1]/2)))))) - Nz = np.fft.ifftshift(np.array(list(range(-int(np.floor(shape[2]/2)), shape[2]-int(np.floor(shape[2]/2)))))) - [Nc, Nr, Nz] = np.meshgrid(Nc, Nr, Nz) - Greg = buf2ft * np.exp(1j * 2 * np.pi * (-row_shift * Nr / shape[0] - col_shift * Nc / shape[1] - z_shift * Nz / shape[2])) - return np.fft.ifftn(Greg) - def print_max(arr): max_coord = list(np.unravel_index(np.argmax(abs(arr)), arr.shape)) print ('max coord, value', abs(arr[max_coord[0],max_coord[1],max_coord[2]]), max_coord) @@ -178,7 +167,7 @@ def zero_phase_cc(arr1, arr2): def align_arrays(ref_arr, arr): (shift_2, shift_1, shift_0) = register_3d_reconstruction(abs(ref_arr), abs(arr)) - return sub_pixel_shift(arr, shift_2, shift_1, shift_0) + return ut.sub_pixel_shift(arr, shift_2, shift_1, shift_0) # ref_arr = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') # arr = np.load('/home/phoebus/BFROSIK/temp/test/B_78-97/results/image.npy') From 3ae59dccc8677bf778e31e35596b932e30cfcacd Mon Sep 17 00:00:00 2001 From: bfrosik Date: Wed, 3 Apr 2019 17:14:11 -0500 Subject: [PATCH 122/336] Added XiaojingHuang/Mark Pfeifer correction --- reccdi/src_py/utilities/CXDVizNX.py | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/reccdi/src_py/utilities/CXDVizNX.py b/reccdi/src_py/utilities/CXDVizNX.py index 832b0b8..b4ed43b 100644 --- a/reccdi/src_py/utilities/CXDVizNX.py +++ b/reccdi/src_py/utilities/CXDVizNX.py @@ -70,20 +70,13 @@ def __init__(self, config): pixel = config_map.pixel self.dpx = pixel[0] * self.binning[0] / self.arm self.dpy = pixel[1] * self.binning[1] / self.arm - # self.dpx = pixel[0] / self.arm - # self.dpy = pixel[1] / self.arm except AttributeError: print ('pixel not defined') try: self.crop = config_map.crop - # for i in range(len(self.crop)): - # self.crop[i] = self.crop[i] * binning[i] except AttributeError: self.crop = None print ('crop not defined') - # self.dx = 1.0 * binning[0] / shape[0] - # self.dy = 1.0 * binning[1] / shape[1] - # self.dz = 1.0 * binning[2] / shape[2] class CXDViz(tr.HasTraits): @@ -118,9 +111,12 @@ def set_geometry(self, params, shape): Bstar = np.zeros(3) Cstar = np.zeros(3) - dQdpx[0] = -m.cos(tth) * m.cos(gam) + # dQdpx[0] = -m.cos(tth) * m.cos(gam) + # dQdpx[1] = 0.0 + # dQdpx[2] = +m.sin(tth) * m.cos(gam) + dQdpx[0] = -m.cos(tth) dQdpx[1] = 0.0 - dQdpx[2] = +m.sin(tth) * m.cos(gam) + dQdpx[2] = +m.sin(tth) dQdpy[0] = m.sin(tth) * m.sin(gam) dQdpy[1] = -m.cos(gam) From 3c887880883e1eb5b93d43b51fe043dcb22ed4d6 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Thu, 4 Apr 2019 11:41:32 -0500 Subject: [PATCH 123/336] cleaned up info messages --- bin/cdi_window.py | 1 + reccdi/src_cpp/algorithm.cpp | 1 - reccdi/src_py/beamlines/aps_34id/prep.py | 1 + reccdi/src_py/run_scripts/run_disp.py | 2 +- reccdi/src_py/utilities/utils.py | 1 - 5 files changed, 3 insertions(+), 3 deletions(-) diff --git a/bin/cdi_window.py b/bin/cdi_window.py index 664972b..875d6e8 100644 --- a/bin/cdi_window.py +++ b/bin/cdi_window.py @@ -496,6 +496,7 @@ def prepare_custom(self): if prep_data is not None: tif_file = os.path.join(self.main_win.experiment_dir, 'prep', 'prep_data.tif') ut.save_tif(prep_data, tif_file) + print ('done with prep') def prepare_34id(self): diff --git a/reccdi/src_cpp/algorithm.cpp b/reccdi/src_cpp/algorithm.cpp index dbefbd1..75d693b 100644 --- a/reccdi/src_cpp/algorithm.cpp +++ b/reccdi/src_cpp/algorithm.cpp @@ -38,4 +38,3 @@ void Er::ModulusConstrain() { rec->ModulusConstrainEr(); } - diff --git a/reccdi/src_py/beamlines/aps_34id/prep.py b/reccdi/src_py/beamlines/aps_34id/prep.py index 7147df6..35698c7 100644 --- a/reccdi/src_py/beamlines/aps_34id/prep.py +++ b/reccdi/src_py/beamlines/aps_34id/prep.py @@ -199,6 +199,7 @@ def prep_data(scan, det_area1, det_area2, data_dir, prep_data_dir, darkfile, whi data_file = 'prep_data.tif' data_file = os.path.join(prep_data_dir, data_file) tif.imsave(data_file, b.astype(np.int32)) + print ('done with prep') def prepare(working_dir, id, scan, data_dir, specfile, darkfile, whitefile, auto_correct, exclude_scans): diff --git a/reccdi/src_py/run_scripts/run_disp.py b/reccdi/src_py/run_scripts/run_disp.py index 35ee2db..4edb68e 100755 --- a/reccdi/src_py/run_scripts/run_disp.py +++ b/reccdi/src_py/run_scripts/run_disp.py @@ -73,11 +73,11 @@ def to_vtk(conf_info): save_dir = os.path.join(experiment_dir, 'results') save_vtk(save_dir, conf) - print ('saving results in dir', save_dir) for sub in os.listdir(save_dir): subdir = os.path.join(save_dir, sub) if os.path.isdir(subdir): save_vtk(subdir, conf) + print ('saved results in dir', save_dir) def main(arg): diff --git a/reccdi/src_py/utilities/utils.py b/reccdi/src_py/utilities/utils.py index 64c3950..95991ee 100644 --- a/reccdi/src_py/utilities/utils.py +++ b/reccdi/src_py/utilities/utils.py @@ -337,7 +337,6 @@ def crop_center(arr, new_size): crop_front = int((size[i]-new_size[i])/2) crop_end = crop_front + new_size[i] splitted = np.split(cropped, [crop_front, crop_end], axis=i) - print (splitted[0].shape, splitted[1].shape, splitted[2].shape) cropped = splitted[1] return cropped From 4bae10f79357ce210d4c2a1e5060d4d1d0ec740a Mon Sep 17 00:00:00 2001 From: bfrosik Date: Thu, 4 Apr 2019 16:15:47 -0500 Subject: [PATCH 124/336] removed test --- reccdi/src_py/utilities/utils_ga.py | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/reccdi/src_py/utilities/utils_ga.py b/reccdi/src_py/utilities/utils_ga.py index d6b7c71..219d966 100644 --- a/reccdi/src_py/utilities/utils_ga.py +++ b/reccdi/src_py/utilities/utils_ga.py @@ -203,17 +203,17 @@ def get_arr_characteristic(arr): # return arrs -def test(a,b): - alpha = zero_phase(a, 0) - beta = zero_phase(b, 0) - alpha = check_get_conj_reflect(beta, alpha) - alpha_s = align_arrays(beta, alpha) - alpha_s = zero_phase(alpha_s, 0) - ph_alpha = np.angle(alpha_s) - beta = zero_phase_cc(beta, alpha_s) - ph_beta = np.angle(beta) - beta = np.sqrt(abs(alpha_s) * abs(beta)) * np.exp(0.5j * (ph_beta + ph_alpha)) - -a = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') -b = np.load('/home/phoebus/BFROSIK/temp/test/B_78-97/results/image.npy') -test(a, b) \ No newline at end of file +# def test(a,b): +# alpha = zero_phase(a, 0) +# beta = zero_phase(b, 0) +# alpha = check_get_conj_reflect(beta, alpha) +# alpha_s = align_arrays(beta, alpha) +# alpha_s = zero_phase(alpha_s, 0) +# ph_alpha = np.angle(alpha_s) +# beta = zero_phase_cc(beta, alpha_s) +# ph_beta = np.angle(beta) +# beta = np.sqrt(abs(alpha_s) * abs(beta)) * np.exp(0.5j * (ph_beta + ph_alpha)) +# +# a = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') +# b = np.load('/home/phoebus/BFROSIK/temp/test/B_78-97/results/image.npy') +# test(a, b) \ No newline at end of file From 4eb035ae06cb99c9cac9c55de67b09facd683d4a Mon Sep 17 00:00:00 2001 From: bfrosik Date: Thu, 4 Apr 2019 17:29:25 -0500 Subject: [PATCH 125/336] changed the loop exit logic --- reccdi/src_py/beamlines/aps_34id/prep.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/reccdi/src_py/beamlines/aps_34id/prep.py b/reccdi/src_py/beamlines/aps_34id/prep.py index 35698c7..065324d 100644 --- a/reccdi/src_py/beamlines/aps_34id/prep.py +++ b/reccdi/src_py/beamlines/aps_34id/prep.py @@ -142,12 +142,12 @@ def prep_data(scan, det_area1, det_area2, data_dir, prep_data_dir, darkfile, whi if os.path.isdir(subdir): try: index = int(name[-4:]) - if index >= scan[0] and index <= scan[1] and not index in exclude_scans: + if index > scan[1]: + break + if index >= scan[0] and not index in exclude_scans: dirs.append(subdir) except: continue - if index >= scan[1]: - break # find the darkfield array dark_full = tif.imread(darkfile).astype(float) From 077e33df5d5d25b1fe7ecd12cb36665787ff7b25 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Tue, 9 Apr 2019 15:10:17 -0500 Subject: [PATCH 126/336] centered the image for display --- reccdi/src_py/utilities/CXDVizNX.py | 19 +++++++++++++------ reccdi/src_py/utilities/utils.py | 5 +++-- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/reccdi/src_py/utilities/CXDVizNX.py b/reccdi/src_py/utilities/CXDVizNX.py index b4ed43b..ddaa64b 100644 --- a/reccdi/src_py/utilities/CXDVizNX.py +++ b/reccdi/src_py/utilities/CXDVizNX.py @@ -9,7 +9,7 @@ import traits.api as tr from tvtk.api import tvtk import numpy as np -import scipy as sp +import scipy.ndimage as ndi import math as m import reccdi.src_py.utilities.utils as ut @@ -295,9 +295,11 @@ def remove_ramp(arr, ups=3): for i in range(len(new_shape)): new_shape[i] = ups * new_shape[i] padded = ut.get_zero_padded_centered(arr, new_shape) - data = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(padded))) - com = sp.ndimage.center_of_mass(np.power(np.abs(data), 2)) - sub_pixel_shifted = ut.sub_pixel_shift(data, (com[1]-.5), (com[0]-.5), (com[2]-.5)) + max_coordinates = list(np.unravel_index(np.argmax(arr), arr.shape)) + print ('max after pad', max_coordinates) + padded_f = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(padded))) + com = ndi.center_of_mass(np.power(np.abs(padded_f), 2)) + sub_pixel_shifted = ut.sub_pixel_shift(padded_f, (com[1]-.5), (com[0]-.5), (com[2]-.5)) ramp_removed_padded = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(sub_pixel_shifted))) ramp_removed = ut.crop_center(ramp_removed_padded, arr.shape) @@ -308,9 +310,11 @@ def center(image, support): dims = image.shape # place center of mass image*support in the center for ax in range(len(dims)): - com = sp.ndimage.center_of_mass(np.absolute(image) * support) + com = ndi.center_of_mass(np.absolute(image) * support) image = shift(image, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) support = shift(support, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) + image = ut.get_centered(image) + support = ut.get_centered(support) # set com phase to zero, use as a reference phi0 = m.atan2(image.imag[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)], image.real[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)]) @@ -340,9 +344,10 @@ def unbin(ar, bins): def save_CX(conf, image, support, coh, save_dir): + #TODO first center max image, support = center(image, support) params = DispalyParams(conf) - image = remove_ramp(image) + #image = remove_ramp(image) viz = CXDViz() viz.set_array(image) viz.set_geometry(params, image.shape) @@ -361,3 +366,5 @@ def save_CX(conf, image, support, coh, save_dir): viz.set_array(coh) viz.write_structured_grid(coh_file) +# a = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') +# remove_ramp(a, 3) \ No newline at end of file diff --git a/reccdi/src_py/utilities/utils.py b/reccdi/src_py/utilities/utils.py index 95991ee..ae645fb 100644 --- a/reccdi/src_py/utilities/utils.py +++ b/reccdi/src_py/utilities/utils.py @@ -213,7 +213,7 @@ def binning(array, binsizes): # print ('c',c) -def get_centered(arr, center_shift): +def get_centered(arr, center_shift=None): """ This function finds a greatest value in the array, and puts it in a center of a new array. If center_shift is not zeros, the array will be shifted accordingly. The shifted elements are rolled into the other end of array. @@ -233,7 +233,8 @@ def get_centered(arr, center_shift): the centered array """ max_coordinates = list(np.unravel_index(np.argmax(arr), arr.shape)) - max_coordinates = np.add(max_coordinates, center_shift) + if center_shift is not None: + max_coordinates = np.add(max_coordinates, center_shift) shape = arr.shape centered = arr for i in range (len(max_coordinates)): From 7b3ceb63005b8077f9fa19be5dfbc7432be70c38 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Fri, 12 Apr 2019 15:07:31 -0500 Subject: [PATCH 127/336] fixed remove ramp --- reccdi/src_py/beamlines/aps_34id/prep.py | 6 ++- reccdi/src_py/run_scripts/run_34id_prepare.py | 17 +++++---- reccdi/src_py/utilities/CXDVizNX.py | 20 +++++----- reccdi/src_py/utilities/utils.py | 37 +++++++++++++++++++ 4 files changed, 61 insertions(+), 19 deletions(-) diff --git a/reccdi/src_py/beamlines/aps_34id/prep.py b/reccdi/src_py/beamlines/aps_34id/prep.py index 065324d..8747ac6 100644 --- a/reccdi/src_py/beamlines/aps_34id/prep.py +++ b/reccdi/src_py/beamlines/aps_34id/prep.py @@ -166,7 +166,11 @@ def prep_data(scan, det_area1, det_area2, data_dir, prep_data_dir, darkfile, whi #white = np.where(white==0, 1e20, white) #Some large value white = np.where(white<5000, 1e20, white) #Some large value - if len(scan) == 1: + if len(dirs) == 0: + print ('there are no data directories for given scans') + exit(0) + + if len(scan) == 1 or scan[0]==scan[1]: arr = read_scan(dirs[0], dark, white, auto_correct) else: refpart = None diff --git a/reccdi/src_py/run_scripts/run_34id_prepare.py b/reccdi/src_py/run_scripts/run_34id_prepare.py index d3eb227..624b9cb 100755 --- a/reccdi/src_py/run_scripts/run_34id_prepare.py +++ b/reccdi/src_py/run_scripts/run_34id_prepare.py @@ -60,16 +60,19 @@ def parse_prepare(prefix, scan, conf_dir): with open(main_conf, 'r') as f: config_map = cfg.Config(f.read()) + excluded = [] try: exclude_scans = config_map.exclude_scans - # convert it to list of int - exclude_scans = exclude_scans.split(',') - excluded = [] - for i in range(len(exclude_scans)): - excluded.append(int(exclude_scans[i])) + try: + # convert it to list of int + exclude_scans = exclude_scans.split(',') + for i in range(len(exclude_scans)): + excluded.append(int(exclude_scans[i])) + except: + print ('enter numeric values for scan range') + sys.exit(0) except: - print ('enter numeric values for scan range') - sys.exit(0) + pass prep.prepare(config_map.working_dir, id, scan_num, config_map.data_dir, config_map.specfile, config_map.darkfile, config_map.whitefile, config_map.auto_correct, excluded) experiment_dir = os.path.join(config_map.working_dir, id) diff --git a/reccdi/src_py/utilities/CXDVizNX.py b/reccdi/src_py/utilities/CXDVizNX.py index ddaa64b..a236c23 100644 --- a/reccdi/src_py/utilities/CXDVizNX.py +++ b/reccdi/src_py/utilities/CXDVizNX.py @@ -12,6 +12,7 @@ import scipy.ndimage as ndi import math as m import reccdi.src_py.utilities.utils as ut +import scipy.fftpack as sp __author__ = "Barbara Frosik" __copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." @@ -295,11 +296,9 @@ def remove_ramp(arr, ups=3): for i in range(len(new_shape)): new_shape[i] = ups * new_shape[i] padded = ut.get_zero_padded_centered(arr, new_shape) - max_coordinates = list(np.unravel_index(np.argmax(arr), arr.shape)) - print ('max after pad', max_coordinates) - padded_f = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(padded))) + padded_f = np.fft.fftshift(np.fft.fftn(np.fft.ifftshift(padded))) com = ndi.center_of_mass(np.power(np.abs(padded_f), 2)) - sub_pixel_shifted = ut.sub_pixel_shift(padded_f, (com[1]-.5), (com[0]-.5), (com[2]-.5)) + sub_pixel_shifted = ut.sub_pixel_shift(padded_f, new_shape[0]/2.0-com[0], new_shape[1]/2.0-com[1], new_shape[2]/2.0-com[2]) ramp_removed_padded = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(sub_pixel_shifted))) ramp_removed = ut.crop_center(ramp_removed_padded, arr.shape) @@ -308,17 +307,17 @@ def remove_ramp(arr, ups=3): def center(image, support): dims = image.shape + image, support = ut.get_centered_both(image, support) + # place center of mass image*support in the center for ax in range(len(dims)): com = ndi.center_of_mass(np.absolute(image) * support) image = shift(image, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) support = shift(support, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) - image = ut.get_centered(image) - support = ut.get_centered(support) - # set com phase to zero, use as a reference - phi0 = m.atan2(image.imag[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)], image.real[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)]) - image = image * np.exp(-1j * phi0) + # set center phase to zero, use as a reference + phi0 = m.atan2(image.imag[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)], image.real[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)]) + image = image * np.exp(-1j * phi0) return image, support @@ -344,10 +343,9 @@ def unbin(ar, bins): def save_CX(conf, image, support, coh, save_dir): - #TODO first center max image, support = center(image, support) params = DispalyParams(conf) - #image = remove_ramp(image) + image = remove_ramp(image) viz = CXDViz() viz.set_array(image) viz.set_geometry(params, image.shape) diff --git a/reccdi/src_py/utilities/utils.py b/reccdi/src_py/utilities/utils.py index ae645fb..482575a 100644 --- a/reccdi/src_py/utilities/utils.py +++ b/reccdi/src_py/utilities/utils.py @@ -242,6 +242,36 @@ def get_centered(arr, center_shift=None): return centered + +def get_centered_both(arr, support): + """ + This function finds a greatest value in the array, and puts it in a center of a new array. If center_shift is + not zeros, the array will be shifted accordingly. The shifted elements are rolled into the other end of array. + + + Parameters + ---------- + arr : array + the original array to be centered + + center_shift : list + a list defining shift of the center + + Returns + ------- + array : array + the centered array + """ + max_coordinates = list(np.unravel_index(np.argmax(arr), arr.shape)) + shape = arr.shape + centered = arr + for i in range (len(max_coordinates)): + centered = np.roll(centered, int(shape[i]/2)-max_coordinates[i], i) + support = np.roll(support, int(shape[i]/2)-max_coordinates[i], i) + + return centered, support + + def get_zero_padded_centered(arr, new_shape): """ This function pads the array with zeros to the new shape with the array in the center. @@ -460,3 +490,10 @@ def sub_pixel_shift(arr, row_shift, col_shift, z_shift): [Nc, Nr, Nz] = np.meshgrid(Nc, Nr, Nz) Greg = buf2ft * np.exp(1j * 2 * np.pi * (-row_shift * Nr / shape[0] - col_shift * Nc / shape[1] - z_shift * Nz / shape[2])) return np.fft.ifftn(Greg) + + +def arr_property(arr): + arr1 = abs(arr) + print ('norm', np.sum(pow(abs(arr),2))) + max_coordinates = list(np.unravel_index(np.argmax(arr1), arr.shape)) + print ('max coords, value', max_coordinates, arr[max_coordinates[0], max_coordinates[1],max_coordinates[2]]) From 24eafdb3a0a229da0e4666c59bdf94dd7160a80f Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Fri, 12 Apr 2019 15:11:59 -0500 Subject: [PATCH 128/336] Update init.sh new version of array fire have library in lib64 (previous lib) --- init.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/init.sh b/init.sh index 8bbd6ae..65255da 100644 --- a/init.sh +++ b/init.sh @@ -14,12 +14,12 @@ sed -i 's?'$LC'?'$lc_dir'?g' reccdi/src_py/cyth/*.pyx echo -n "enter cuda installation directory > " read cuda_dir -export LD_LIBRARY_PATH=$lc_dir/lib:/usr/local/lib:$af_dir/lib/:$cuda_dir/lib64:$cuda_dir/nvvm/lib64 +export LD_LIBRARY_PATH=$lc_dir/lib:/usr/local/lib:$af_dir/lib64/:$cuda_dir/lib64:$cuda_dir/nvvm/lib64 lib_path='LIB_PATH' -sed -i 's?'$lib_path'?'$lc_dir/lib:/usr/local/lib:$af_dir/lib/:$cuda_dir/lib64:$cuda_dir/nvvm/lib64'?g' bin/everything.sh -sed -i 's?'$lib_path'?'$lc_dir/lib:/usr/local/lib:$af_dir/lib/:$cuda_dir/lib64:$cuda_dir/nvvm/lib64'?g' bin/run_rec.sh -sed -i 's?'$lib_path'?'$lc_dir/lib:/usr/local/lib:$af_dir/lib/:$cuda_dir/lib64:$cuda_dir/nvvm/lib64'?g' bin/cdi_window.sh +sed -i 's?'$lib_path'?'$lc_dir/lib:/usr/local/lib:$af_dir64/lib/:$cuda_dir/lib64:$cuda_dir/nvvm/lib64'?g' bin/everything.sh +sed -i 's?'$lib_path'?'$lc_dir/lib:/usr/local/lib:$af_dir64/lib/:$cuda_dir/lib64:$cuda_dir/nvvm/lib64'?g' bin/run_rec.sh +sed -i 's?'$lib_path'?'$lc_dir/lib:/usr/local/lib:$af_dir64/lib/:$cuda_dir/lib64:$cuda_dir/nvvm/lib64'?g' bin/cdi_window.sh echo -n "enter data type (float/double) > " read data_type @@ -30,4 +30,4 @@ sed -i 's?'$def'?'$data_type'?g' reccdi/include/common.h python setup.py build_ext --inplace -python setup.py install \ No newline at end of file +python setup.py install From bd4d523c2ba33d35dc10bd3e522c6c1e7ddbc9cb Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Fri, 12 Apr 2019 15:12:46 -0500 Subject: [PATCH 129/336] Update bridge_cpu.pyx --- reccdi/src_py/cyth/bridge_cpu.pyx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reccdi/src_py/cyth/bridge_cpu.pyx b/reccdi/src_py/cyth/bridge_cpu.pyx index 6ea3191..13bdd50 100644 --- a/reccdi/src_py/cyth/bridge_cpu.pyx +++ b/reccdi/src_py/cyth/bridge_cpu.pyx @@ -9,7 +9,7 @@ # distutils: include_dirs = ['reccdi/include', 'AF_DIR/include', 'LC_DIR/include',] # distutils: sources = ['reccdi/src_cpp/algorithm.cpp', 'reccdi/src_cpp/bridge.cpp', 'reccdi/src_cpp/manager.cpp', 'reccdi/src_cpp/parameters.cpp', 'reccdi/src_cpp/pcdi.cpp', 'reccdi/src_cpp/resolution.cpp', 'reccdi/src_cpp/state.cpp', 'reccdi/src_cpp/support.cpp', 'reccdi/src_cpp/util.cpp', 'reccdi/src_cpp/worker.cpp'] # distutils: libraries = ['afcpu', 'config++',] -# distutils: library_dirs = ['AF_DIR/lib', 'LC_DIR/lib',] +# distutils: library_dirs = ['AF_DIR/lib64', 'LC_DIR/lib',] from libcpp.vector cimport vector from libcpp.string cimport string From 691188178e902b514cdcde34017c657ac9b987a1 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Fri, 12 Apr 2019 15:13:07 -0500 Subject: [PATCH 130/336] Update bridge_cuda.pyx --- reccdi/src_py/cyth/bridge_cuda.pyx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reccdi/src_py/cyth/bridge_cuda.pyx b/reccdi/src_py/cyth/bridge_cuda.pyx index c8b8610..2e663f8 100755 --- a/reccdi/src_py/cyth/bridge_cuda.pyx +++ b/reccdi/src_py/cyth/bridge_cuda.pyx @@ -9,7 +9,7 @@ # distutils: include_dirs = ['reccdi/include', 'AF_DIR/include', 'LC_DIR/include',] # distutils: sources = ['reccdi/src_cpp/algorithm.cpp', 'reccdi/src_cpp/bridge.cpp', 'reccdi/src_cpp/manager.cpp', 'reccdi/src_cpp/parameters.cpp', 'reccdi/src_cpp/pcdi.cpp', 'reccdi/src_cpp/resolution.cpp', 'reccdi/src_cpp/state.cpp', 'reccdi/src_cpp/support.cpp', 'reccdi/src_cpp/util.cpp', 'reccdi/src_cpp/worker.cpp'] # distutils: libraries = ['afcuda', 'config++',] -# distutils: library_dirs = ['AF_DIR/lib', 'LC_DIR/lib',] +# distutils: library_dirs = ['AF_DIR/lib64', 'LC_DIR/lib',] from libcpp.vector cimport vector from libcpp.string cimport string From c0596287cb7a33c65d0248d4aa54a16524d234b9 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Fri, 12 Apr 2019 15:13:28 -0500 Subject: [PATCH 131/336] Update bridge_opencl.pyx --- reccdi/src_py/cyth/bridge_opencl.pyx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reccdi/src_py/cyth/bridge_opencl.pyx b/reccdi/src_py/cyth/bridge_opencl.pyx index 1a043b8..d63ebec 100755 --- a/reccdi/src_py/cyth/bridge_opencl.pyx +++ b/reccdi/src_py/cyth/bridge_opencl.pyx @@ -9,7 +9,7 @@ # distutils: include_dirs = ['reccdi/include', 'AF_DIR/include', 'LC_DIR/include',] # distutils: sources = ['reccdi/src_cpp/algorithm.cpp', 'reccdi/src_cpp/bridge.cpp', 'reccdi/src_cpp/manager.cpp', 'reccdi/src_cpp/parameters.cpp', 'reccdi/src_cpp/pcdi.cpp', 'reccdi/src_cpp/resolution.cpp', 'reccdi/src_cpp/state.cpp', 'reccdi/src_cpp/support.cpp', 'reccdi/src_cpp/util.cpp', 'reccdi/src_cpp/worker.cpp'] # distutils: libraries = ['afopencl', 'config++',] -# distutils: library_dirs = ['AF_DIR/lib', 'LC_DIR/lib',] +# distutils: library_dirs = ['AF_DIR/lib64', 'LC_DIR/lib',] from libcpp.vector cimport vector from libcpp.string cimport string From b16f6d452a9b0b48a2a63fe5adc5f8bb1a066459 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Mon, 15 Apr 2019 16:04:15 -0500 Subject: [PATCH 132/336] Update init.sh --- init.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/init.sh b/init.sh index 65255da..ed7b164 100644 --- a/init.sh +++ b/init.sh @@ -14,12 +14,12 @@ sed -i 's?'$LC'?'$lc_dir'?g' reccdi/src_py/cyth/*.pyx echo -n "enter cuda installation directory > " read cuda_dir -export LD_LIBRARY_PATH=$lc_dir/lib:/usr/local/lib:$af_dir/lib64/:$cuda_dir/lib64:$cuda_dir/nvvm/lib64 +export LD_LIBRARY_PATH=$lc_dir/lib:/usr/local/lib:$af_dir/lib64:$cuda_dir/lib64:$cuda_dir/nvvm/lib64 lib_path='LIB_PATH' -sed -i 's?'$lib_path'?'$lc_dir/lib:/usr/local/lib:$af_dir64/lib/:$cuda_dir/lib64:$cuda_dir/nvvm/lib64'?g' bin/everything.sh -sed -i 's?'$lib_path'?'$lc_dir/lib:/usr/local/lib:$af_dir64/lib/:$cuda_dir/lib64:$cuda_dir/nvvm/lib64'?g' bin/run_rec.sh -sed -i 's?'$lib_path'?'$lc_dir/lib:/usr/local/lib:$af_dir64/lib/:$cuda_dir/lib64:$cuda_dir/nvvm/lib64'?g' bin/cdi_window.sh +sed -i 's?'$lib_path'?'$lc_dir/lib:/usr/local/lib:$af_dir/lib64:$cuda_dir/lib64:$cuda_dir/nvvm/lib64'?g' bin/everything.sh +sed -i 's?'$lib_path'?'$lc_dir/lib:/usr/local/lib:$af_dir/lib64:$cuda_dir/lib64:$cuda_dir/nvvm/lib64'?g' bin/run_rec.sh +sed -i 's?'$lib_path'?'$lc_dir/lib:/usr/local/lib:$af_dir/lib64:$cuda_dir/lib64:$cuda_dir/nvvm/lib64'?g' bin/cdi_window.sh echo -n "enter data type (float/double) > " read data_type From 640a4021b898ad2a72c090090da4964f79a8e97d Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Mon, 15 Apr 2019 16:10:44 -0500 Subject: [PATCH 133/336] Fixed problem with coherence file --- reccdi/src_py/run_scripts/run_disp.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/reccdi/src_py/run_scripts/run_disp.py b/reccdi/src_py/run_scripts/run_disp.py index 4edb68e..7ce640e 100755 --- a/reccdi/src_py/run_scripts/run_disp.py +++ b/reccdi/src_py/run_scripts/run_disp.py @@ -24,8 +24,7 @@ def save_vtk(res_dir, conf): cohfile = os.path.join(res_dir, 'coherence.npy') coh = np.load(cohfile) except: - print ('support file ' + supportfile + ' is missing') - return + pass cx.save_CX(conf, image, support, coh, res_dir) @@ -93,4 +92,4 @@ def main(arg): if __name__ == "__main__": main(sys.argv[1:]) -#python run_disp.py experiment_dir \ No newline at end of file +#python run_disp.py experiment_dir From d5ac1dfd44e151d0ddd4cce460fd6b0c1fd791d2 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Tue, 16 Apr 2019 11:08:49 -0500 Subject: [PATCH 134/336] Update run_disp.py --- reccdi/src_py/run_scripts/run_disp.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/reccdi/src_py/run_scripts/run_disp.py b/reccdi/src_py/run_scripts/run_disp.py index 7ce640e..c2e69a7 100755 --- a/reccdi/src_py/run_scripts/run_disp.py +++ b/reccdi/src_py/run_scripts/run_disp.py @@ -23,10 +23,9 @@ def save_vtk(res_dir, conf): try: cohfile = os.path.join(res_dir, 'coherence.npy') coh = np.load(cohfile) + cx.save_CX(conf, image, support, coh, res_dir) except: - pass - - cx.save_CX(conf, image, support, coh, res_dir) + cx.save_CX(conf, image, support, None, res_dir) def to_vtk(conf_info): @@ -76,7 +75,6 @@ def to_vtk(conf_info): subdir = os.path.join(save_dir, sub) if os.path.isdir(subdir): save_vtk(subdir, conf) - print ('saved results in dir', save_dir) def main(arg): From a902d5ba2644e64481378197fc1000c2ad386a64 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Tue, 16 Apr 2019 11:11:55 -0500 Subject: [PATCH 135/336] Update CXDVizNX.py --- reccdi/src_py/utilities/CXDVizNX.py | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/reccdi/src_py/utilities/CXDVizNX.py b/reccdi/src_py/utilities/CXDVizNX.py index a236c23..2378df1 100644 --- a/reccdi/src_py/utilities/CXDVizNX.py +++ b/reccdi/src_py/utilities/CXDVizNX.py @@ -247,17 +247,6 @@ def get_structured_grid(self, **args): return self.sg - # def get_image_data(self, **args): - # self.set_crop() - # dims = list(self.arr[self.cropobj].shape) - # if len(dims) == 2: - # dims.append(1) - # self.imd.dimensions = tuple(dims) - # self.imd.extent = 0, dims[2] - 1, 0, dims[1] - 1, 0, dims[0] - 1 - # self.imd.point_data.scalars = self.arr[self.cropobj].ravel() - # return self.imd - # - # def write_structured_grid(self, filename, **args): sgwriter = tvtk.StructuredGridWriter() sgwriter.file_type = 'binary' @@ -267,6 +256,7 @@ def write_structured_grid(self, filename, **args): sgwriter.file_name = filename + '.vtk' sgwriter.set_input_data(self.get_structured_grid()) sgwriter.write() + print ('saved file', filename) def shift(arr, s0, s1, s2): @@ -365,4 +355,4 @@ def save_CX(conf, image, support, coh, save_dir): viz.write_structured_grid(coh_file) # a = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') -# remove_ramp(a, 3) \ No newline at end of file +# remove_ramp(a, 3) From d8e6569a7f61140f01d12e1e55e20169e9503d3a Mon Sep 17 00:00:00 2001 From: bfrosik Date: Mon, 22 Apr 2019 11:42:59 -0500 Subject: [PATCH 136/336] Cleaned up display messages, fixed bug for running display with no pcdi, added features to prep --- bin/cdi_window.py | 354 +++++++++----- conf/defaults/config_disp | 2 +- conf/defaults/config_rec | 16 +- conf/last/config | 4 +- conf/last/config_rec | 5 +- config_data | 6 +- config_disp | 6 +- config_rec | 10 +- reccdi/src_py/beamlines/aps_34id/prep.py | 458 +++++++++--------- reccdi/src_py/controller/data.py | 26 +- reccdi/src_py/run_scripts/run_34id_prepare.py | 60 +-- reccdi/src_py/run_scripts/run_disp.py | 14 +- reccdi/src_py/run_scripts/run_rec.py | 22 +- reccdi/src_py/utilities/CXDVizNX.py | 2 +- reccdi/src_py/utilities/utils.py | 2 +- 15 files changed, 540 insertions(+), 447 deletions(-) diff --git a/bin/cdi_window.py b/bin/cdi_window.py index 875d6e8..a3d3e9e 100644 --- a/bin/cdi_window.py +++ b/bin/cdi_window.py @@ -29,21 +29,6 @@ def select_dir(start_dir): return None -def write_conf(conf_map, dir, file): - # create "temp" file first and then overrite existing configuration file - if not os.path.exists(dir): - os.makedirs(dir) - conf_file = os.path.join(dir, file) - temp_file = os.path.join(dir, 'temp') - with open(temp_file, 'a') as f: - for key in conf_map: - value = conf_map[key] - if len(value) > 0: - f.write(key + ' = ' + conf_map[key] + '\n') - f.close() - shutil.move(temp_file, conf_file) - - class cdi_conf(QWidget): def __init__(self, parent=None): super(cdi_conf, self).__init__(parent) @@ -125,6 +110,12 @@ def set_id(self): def set_scan(self): self.scan = str(self.scan_widget.text()) + try: + numeric = self.scan.replace('-', '0') + numeric_test = int(numeric) + except: + self.msg_window('enter numeric values for scan range') + return self.set_experiment_dir() @@ -153,8 +144,15 @@ def init_work_dir(self): self.working_dir = os.getcwd() else: main_conf = os.path.join(dir, 'config') - conf_map = ut.read_config(main_conf) - self.working_dir = conf_map.working_dir + if not os.path.isfile(main_conf): + self.msg_window('missing configuration file ' + main_conf) + return + try: + conf_map = ut.read_config(main_conf) + self.working_dir = conf_map.working_dir + except Exception as e: + self.msg_window('please check configuration file ' + main_conf + '. Cannot parse, ' + str(e)) + return self.set_work_dir_button.setStyleSheet("Text-align:left") self.set_work_dir_button.setText(self.working_dir) @@ -180,15 +178,20 @@ def init_from_conf(self, dir): conf_rec = os.path.join(dir, 'config_disp') shutil.copy(conf_rec, dest) - conf_map = ut.read_config(main_conf) + try: + conf_map = ut.read_config(main_conf) + except Exception as e: + self.msg_window('please check configuration file ' + main_conf + '. Cannot parse, ' + str(e)) + return + self.t.data_dir = conf_map.data_dir self.t.specfile = conf_map.specfile self.t.darkfile = conf_map.darkfile self.t.whitefile = conf_map.whitefile try: - self.t.auto_correct_prep.setChecked(conf_map.auto_correct) + self.t.min_files.setText(str(conf_map.auto_correct).replace(" ", "")) except: - self.t.auto_correct_prep.setChecked(False) + pass try: self.t.exclude_scans.setText(str(conf_map.exclude_scans).replace(" ", "")) except: @@ -205,7 +208,14 @@ def init_from_conf(self, dir): # initialize "Data" tab data_conf = os.path.join(dir, 'config_data') - conf_map = ut.read_config(data_conf) + if not os.path.isfile(data_conf): + self.msg_window('missing configuration file ' + data_conf) + return + try: + conf_map = ut.read_config(data_conf) + except Exception as e: + self.msg_window('please check configuration file ' + data_conf + '. Cannot parse, ' + str(e)) + return try: self.t.aliens.setText(str(conf_map.aliens).replace(" ", "")) except AttributeError: @@ -229,7 +239,14 @@ def init_from_conf(self, dir): # initialize "Reconstruction" tab rec_conf = os.path.join(dir, 'config_rec') - conf_map = ut.read_config(rec_conf) + if not os.path.isfile(rec_conf): + self.msg_window('missing configuration file ' + rec_conf) + return + try: + conf_map = ut.read_config(rec_conf) + except Exception as e: + self.msg_window('please check configuration file ' + rec_conf + '. Cannot parse, ' + str(e)) + return try: self.t.device.setText(str(conf_map.device).replace(" ", "")) except AttributeError: @@ -256,7 +273,14 @@ def init_from_conf(self, dir): # initialize "Display" tab disp_conf = os.path.join(dir, 'config_disp') - conf_map = ut.read_config(disp_conf) + if not os.path.isfile(disp_conf): + self.msg_window('missing configuration file ' + disp_conf) + return + try: + conf_map = ut.read_config(disp_conf) + except Exception as e: + self.msg_window('please check configuration file ' + disp_conf + '. Cannot parse, ' + str(e)) + return try: self.t.crop.setText(str(conf_map.crop).replace(" ", "")) except AttributeError: @@ -271,6 +295,37 @@ def msg_window(self, text): msg.exec_() + def write_conf(self, conf_map, dir, file): + # create "temp" file first and then overrite existing configuration file + if not os.path.exists(dir): + os.makedirs(dir) + conf_file = os.path.join(dir, file) + temp_file = os.path.join(dir, 'temp') + with open(temp_file, 'a') as f: + for key in conf_map: + value = conf_map[key] + if len(value) > 0: + f.write(key + ' = ' + conf_map[key] + '\n') + f.close() + # verify that the temporary file can be parsed + try: + ut.read_config(temp_file) + shutil.move(temp_file, conf_file) + return True + except: + if file == 'config': + tab = 'Data Prep' + elif file == 'config_data': + tab = 'Data' + elif file == 'config_rec': + tab = 'Reconstruction' + elif file == 'config_disp': + tab = 'Display' + self.msg_window('please check the entries in the ' + tab + ' tab. Cannot save this format') + os.remove(temp_file) + return False + + class cdi_conf_tab(QTabWidget): def __init__(self, main_win, parent=None): super(cdi_conf_tab, self).__init__(parent) @@ -293,10 +348,25 @@ def __init__(self, main_win, parent=None): def tab1UI(self): self.data_dir = None self.specfile = None + self.script = None + self.imported_script = False layout = QFormLayout() + self.data_dir_button = QPushButton() + layout.addRow("data directory", self.data_dir_button) + self.spec_file_button = QPushButton() + layout.addRow("spec file", self.spec_file_button) + self.dark_file_button = QPushButton() + layout.addRow("darkfield file", self.dark_file_button) + self.white_file_button = QPushButton() + layout.addRow("whitefield file", self.white_file_button) + self.min_files = QLineEdit() + layout.addRow("min files in scan", self.min_files) + self.exclude_scans = QLineEdit() + layout.addRow("exclude scans", self.exclude_scans) self.prep = QComboBox() self.prep.addItem("34ID prep") self.prep.addItem("custom") + self.prep.addItem("copy from") layout.addRow("choose data preparation ", self.prep) # add sub-layout with rows that apply to the choice form above sub_layout = QFormLayout() @@ -308,6 +378,10 @@ def tab1UI(self): self.prep_button.clicked.connect(self.prepare) self.prep.currentIndexChanged.connect(lambda: self.load_prep(sub_layout)) + self.data_dir_button.clicked.connect(self.set_data_dir) + self.spec_file_button.clicked.connect(self.set_spec_file) + self.dark_file_button.clicked.connect(self.set_dark_file) + self.white_file_button.clicked.connect(self.set_white_file) def load_prep(self, layout): @@ -315,40 +389,19 @@ def load_prep(self, layout): layout.itemAt(i).widget().deleteLater() if str(self.prep.currentText()) == "custom": - self.script_dir = QLineEdit() - layout.addRow("script directory", self.script_dir) + self.script_button = QPushButton() + layout.addRow("select script", self.script_button) self.prep_exec = QLineEdit() - layout.addRow("script name.function", self.prep_exec) + layout.addRow("prep function", self.prep_exec) self.args = QLineEdit() layout.addRow("arguments (str/num)", self.args) + self.script_button.clicked.connect(self.set_prep_script) - elif str(self.prep.currentText()) == "34ID prep": - self.data_dir_button = QPushButton() - layout.addRow("data directory", self.data_dir_button) - self.spec_file_button = QPushButton() - layout.addRow("spec file", self.spec_file_button) - self.dark_file_button = QPushButton() - layout.addRow("darkfield file", self.dark_file_button) - self.white_file_button = QPushButton() - layout.addRow("whitefield file", self.white_file_button) - self.auto_correct_prep = QCheckBox() - layout.addRow("drop incomlete scans", self.auto_correct_prep) - self.exclude_scans = QLineEdit() - layout.addRow("exclude scans", self.exclude_scans) - - self.data_dir_button.clicked.connect(self.set_data_dir) - self.spec_file_button.clicked.connect(self.set_spec_file) - self.dark_file_button.clicked.connect(self.set_dark_file) - self.white_file_button.clicked.connect(self.set_white_file) - self.auto_correct_prep.stateChanged.connect(lambda: self.toggle_auto(layout)) - - - def toggle_auto(self, layout): - cb_label = layout.labelForField(self.auto_correct_prep) - if self.auto_correct_prep.isChecked(): - cb_label.setStyleSheet('color: black') - else: - cb_label.setStyleSheet('color: grey') + # elif str(self.prep.currentText()) == "34ID prep": + elif str(self.prep.currentText()) == "copy from": + self.ready_prep = QPushButton() + layout.addRow("select file", self.ready_prep) + self.ready_prep.clicked.connect(self.set_prep_file) def tab2UI(self): @@ -457,23 +510,81 @@ def set_data_dir(self): self.data_dir_button.setText(self.data_dir) + def set_prep_file(self): + prep_file = select_file(self.main_win.working_dir) + selected = str(prep_file) + if not selected.endswith('tif') and not selected.endswith('tiff'): + self.msg_window("the file extension must be tif or tiff") + return + self.ready_prep.setStyleSheet("Text-align:left") + self.ready_prep.setText(prep_file) + # save the file as experiment prep file + prep_dir = os.path.join(self.main_win.experiment_dir, 'prep') + if not os.path.exists(prep_dir): + os.makedirs(prep_dir) + exp_prep_file = os.path.join(prep_dir, 'prep_data.tif') + shutil.copyfile(selected, exp_prep_file) + + + def set_prep_script(self): + self.script = select_file(self.main_win.working_dir) + self.script_button.setStyleSheet("Text-align:left") + self.script_button.setText(self.script) + # fill the arguments with experiment_dir, scans, config file + conf_file = os.path.join(self.main_win.experiment_dir, 'conf', 'config') + self.args.setText(str(self.main_win.experiment_dir) + ',' + str(self.main_win.scan) + ',' + conf_file) + + def prepare(self): if self.main_win.id is None or self.main_win.scan is None: self.msg_window('enter Reconstruction ID and scan') else: - #self.main_win.assure_experiment_dir() + prep_dir = os.path.join(self.main_win.experiment_dir, 'prep') + if not os.path.exists(prep_dir): + os.makedirs(prep_dir) + conf_map = {} + if len(self.main_win.working_dir) > 0: + conf_map['working_dir'] = '"' + str(self.main_win.working_dir) + '"' + else: + self.msg_window("working_dir not defined") + return + if len(self.min_files.text()) > 0: + min_files = str(self.min_files.text()) + conf_map['min_files'] = min_files + if len(self.exclude_scans.text()) > 0: + conf_map['exclude_scans'] = str(self.exclude_scans.text()).replace('\n','') + if str(self.prep.currentText()) == "custom": - self.prepare_custom() + self.prepare_custom(conf_map) elif str(self.prep.currentText()) == "34ID prep": - self.prepare_34id() + self.prepare_34id(conf_map) + + + def prepare_custom(self, conf_map): + if len(self.data_dir) > 0: + conf_map['data_dir'] = '"' + str(self.data_dir) + '"' + if len(self.specfile) > 0: + conf_map['specfile'] = '"' + str(self.specfile) + '"' + if len(self.darkfile) > 0: + conf_map['darkfile'] = '"' + str(self.darkfile) + '"' + if len(self.whitefile) > 0: + conf_map['whitefile'] = '"' + str(self.whitefile) + '"' + # determine script directory and script name + if self.script is None: + self.msg_window("script not defined") + return + full_script = str(self.script) + script_info = full_script.split('/') + script = script_info[len(script_info)-1] + script_dir = full_script[0 : -(len(script)+1)] + script = script[0 : -3] + func = str(self.prep_exec.text()) + if len(func) == 0: + self.msg_window("function not defined") + return - def prepare_custom(self): current_dir = os.getcwd() - script_dir = str(self.script_dir.text()) - if not os.path.isfile(os.path.join(script_dir, '__init__.py')): - open(os.path.join(script_dir, '__init__.py'), 'a').close() - [script, func] = str(self.prep_exec.text()).split('.') args = str(self.args.text()) if len(args) == 0: args = [] @@ -487,19 +598,39 @@ def prepare_custom(self): args[i] = float(args[i]) except: pass + try: + if args[i].find('-') > -1: + l = args[i].split('-') + nl = [] + for n in l: + nl.append(int(n)) + args[i] = nl + except: + pass + os.chdir(script_dir) sys.path.append(script_dir) - m = importlib.import_module(script) + if not self.imported_script: + self.m = importlib.import_module(script) + self.imported_script = True + else: + self.m = importlib.reload(self.m) os.chdir(current_dir) - f = getattr(m, func) - prep_data = f(*args) - if prep_data is not None: - tif_file = os.path.join(self.main_win.experiment_dir, 'prep', 'prep_data.tif') - ut.save_tif(prep_data, tif_file) - print ('done with prep') + f = getattr(self.m, func) + conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') + if self.main_win.write_conf(conf_map, conf_dir, 'config'): + try: + prep_data = f(*args) + except Exception as e: + self.msg_window('custom script failed ' + str(e)) + return + if prep_data is not None: + tif_file = os.path.join(self.main_win.experiment_dir, 'prep', 'prep_data.tif') + ut.save_tif(prep_data, tif_file) + print ('done with prep') - def prepare_34id(self): + def prepare_34id(self, conf_map): mod = importlib.import_module('reccdi.src_py.run_scripts.run_34id_prepare') scan = str(self.main_win.scan_widget.text()) try: @@ -509,6 +640,7 @@ def prepare_34id(self): scan_range[i] = int(scan_range[i]) except: self.msg_window('enter numeric values for scan range') + return if self.main_win.working_dir is None or \ self.main_win.id is None or\ @@ -518,20 +650,6 @@ def prepare_34id(self): self.msg_window('enter all parameters: working_dir, id, scan, data_dir, specfile') return - try: - # after checking that scan is entered convert it to list of int - scan_range = scan.split('-') - for i in range(len(scan_range)): - scan_range[i] = int(scan_range[i]) - except: - self.msg_window('enter numeric values for scan range') - - conf_map = {} - if len(self.main_win.working_dir) > 0: - conf_map['working_dir'] = '"' + str(self.main_win.working_dir) + '"' - else: - self.msg_window("working_dir not defined") - return if len(self.data_dir) > 0: conf_map['data_dir'] = '"' + str(self.data_dir) + '"' if len(self.specfile) > 0: @@ -549,29 +667,11 @@ def prepare_34id(self): else: self.msg_window("whitefile not defined") return - if self.auto_correct_prep.isChecked(): - conf_map["auto_correct"] = '"True"' - else: - conf_map["auto_correct"] = '"False"' - exclude_scans = self.exclude_scans.text() - if len(exclude_scans) > 0: - exclude_scans = str(exclude_scans).replace('\n', '') - conf_map['exclude_scans'] = '"' + exclude_scans + '"' - exclude_scans = exclude_scans.split(',') - exc_scans = [] - for scan in exclude_scans: - try: - num_scan = int(scan) - exc_scans.append(num_scan) - except: - pass - else: - exc_scans = [] conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') - write_conf(conf_map, conf_dir, 'config') - - f = getattr(mod, 'prepare') - f(self.main_win.working_dir, self.main_win.exp_id, scan_range, self.data_dir, self.specfile, self.darkfile, self.whitefile, self.auto_correct_prep.isChecked(), exc_scans) + conf_file = os.path.join(conf_dir, 'config') + if self.main_win.write_conf(conf_map, conf_dir, 'config'): + f = getattr(mod, 'prepare') + f(self.main_win.experiment_dir, scan_range, conf_file) #scripts.run_34id_prepare.prepare(self.main_win.working_dir, self.main_win.exp_id, scan_range, self.data_dir, self.specfile, self.darkfile, self.whitefile) @@ -594,9 +694,8 @@ def model_data(self): conf_map['adjust_dimensions'] = str(self.adjust_dimensions.text()).replace('\n','') conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') - write_conf(conf_map, conf_dir, 'config_data') - - run_dt.data(self.main_win.experiment_dir) + if self.main_win.write_conf(conf_map, conf_dir, 'config_data'): + run_dt.data(self.main_win.experiment_dir) else: self.msg_window('Please, run data preparation in previous tab to activate this function') @@ -625,34 +724,29 @@ def reconstruction(self): #self.create_config('config_rec', conf_map) conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') - write_conf(conf_map, conf_dir, 'config_rec') - - run_rc.reconstruction(str(self.proc.currentText()), self.main_win.experiment_dir) + if self.main_win.write_conf(conf_map, conf_dir, 'config_rec'): + run_rc.reconstruction(str(self.proc.currentText()), self.main_win.experiment_dir) else: self.msg_window('Please, run model data in previous tab to activate this function') def display(self): if os.path.isfile(os.path.join(self.main_win.experiment_dir, 'results', 'image.npy')): - disp_conf_file = os.path.join(self.main_win.experiment_dir, 'conf', 'config_disp') - temp_file = os.path.join(self.main_win.experiment_dir, 'conf', 'temp') - with open(temp_file, 'a') as temp: - try: - with open(disp_conf_file, 'r') as f: - for line in f: - if not line.startswith('crop') and not line.startswith('binning'): - temp.write(line) - f.close() - except: - pass - + conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') + conf_disp = os.path.join(conf_dir, 'config_disp') + if not os.path.isfile(conf_disp): + self.msg_window('missing configuration file ' + conf_disp) + return + try: + conf_map = ut.read_config(conf_disp) if len(self.crop.text()) != 0: - temp.write('crop = ' + str(self.crop.text()).replace('\n','') + '\n') - - temp.close() - shutil.move(temp_file, disp_conf_file) + conf_map['binning'] = 'crop = ' + str(self.crop.text()).replace('\n','') + '\n' + except Exception as e: + self.msg_window('please check configuration file ' + conf_disp + '. Cannot parse, ' + str(e)) + return - run_dp.to_vtk(self.main_win.experiment_dir) + if self.main_win.write_conf(conf_map, conf_dir, conf_disp): + run_dp.to_vtk(self.main_win.experiment_dir) else: self.msg_window('Please, run reconstruction in previous tab to activate this function') @@ -848,7 +942,7 @@ def fill_active(self, layout): def rec_default(self): self.support_triggers.setText('(1,1)') self.support_type.setText('"GAUSS"') - self.support_area.setText('[.5,.5,.5]') + self.support_area.setText('(.5,.5,.5)') self.sigma.setText('1.0') self.threshold.setText('0.1') @@ -950,7 +1044,7 @@ def rec_default(self): self.pcdi_type.setText('"LUCY"') self.pcdi_iter.setText('20') self.pcdi_normalize.setText('true') - self.pcdi_roi.setText('[32,32,16]') + self.pcdi_roi.setText('(32,32,32)') def add_feat_conf(self, conf_map): diff --git a/conf/defaults/config_disp b/conf/defaults/config_disp index 14bf428..92f9d04 100644 --- a/conf/defaults/config_disp +++ b/conf/defaults/config_disp @@ -8,7 +8,7 @@ crop = [.5, .5, .5] // gamma = 8.5102 // (in degrees) // arm = 750.0 // Detector distance from sample (in mm) // dth = 0.007499999999999995 // step values for th translation (in degrees) -// pixel = [55.0e-6, 55.0e-6] // pixel size (in meters) +// pixel = (55.0e-6, 55.0e-6) // pixel size (in meters) // for APS beamline 34-IDC binning is imported from config_data file // binning = (1,1,1) diff --git a/conf/defaults/config_rec b/conf/defaults/config_rec index 9e61d89..45999b1 100644 --- a/conf/defaults/config_rec +++ b/conf/defaults/config_rec @@ -13,7 +13,7 @@ amp_support_trigger = (0,1) support_type = "GAUSS" support_threshold = 0.15 support_sigma = 1.0 -support_area = [.5,.5,.5] +support_area = (.5,.5,.5) //phase_support_trigger = (0,1,20) phase_min = -1.57 @@ -23,7 +23,7 @@ phase_max = 1.57 partial_coherence_type = "LUCY" partial_coherence_iteration_num = 20 partial_coherence_normalize = true -partial_coherence_roi = [32,32,16] +partial_coherence_roi = (32,32,16) resolution_trigger = (0, 1, 310) iter_res_det_range = (.7) @@ -65,7 +65,7 @@ avarage_trigger = (-19,1) //threads = 3 // number of reconstructions to start with -//device = [0,0] +//device = (0,0) // ID of the target devices for each thread. // If more threads or not defined, it will default to -1 @@ -91,7 +91,7 @@ garbage_trigger = (1,1) // to calculate sigmas for generations // SIG_ASSIGNED - sigmas will be read from low_resolution_sigmas -//low_resolution_sigmas = [1.0] +//low_resolution_sigmas = (1.0) // list of sigmas that will be used by subsequent generations if the // low_resolution_sigma_alg is set to SIG_ASSIGNED // the length must be equal low_resolution_generations @@ -119,10 +119,10 @@ garbage_trigger = (1,1) //is_cross_breed = True // If True the genetic algorithm will use the best two from previous // generation for breeding -//breed_modes = ['sqrt_ab', 'none'] +//breed_modes = ('sqrt_ab', 'none') // defines how to breed next generation // default for generation 'none' -//worst_remove_no = [0, 0] +//worst_remove_no = (0, 0) // numbers of species to remove from subsequent generation // default for generation 0 @@ -153,7 +153,7 @@ garbage_trigger = (1,1) //support_type = "GAUSS"; //support_threshold = 0.1; //support_sigma = 1.0; -//support_area = [.5,.5,.5]; +//support_area = (.5,.5,.5); // initial support area. If the values are fractional, the support area will be calculated // by multiplying by the data array dimensions. The support will be set to 1s to this // dimensions centered. @@ -178,7 +178,7 @@ garbage_trigger = (1,1) // partial coherence algorithm //partial_coherence_iteration_num = 20; //partial_coherence_normalize = true; -//partial_coherence_roi = [32,32,32]; +//partial_coherence_roi = (32,32,32); // coherence area. If the values are fractional, the coherence area will be calculated // by multiplying by the data array dimensions. diff --git a/conf/last/config b/conf/last/config index ab458f2..4e45053 100644 --- a/conf/last/config +++ b/conf/last/config @@ -1,7 +1,7 @@ working_dir = "/local/bfrosik/cdi/test" +min_files = 81 +exclude_scans = (82,83,85) data_dir = "/net/s34data/export/34idc-data/2019/Staff19-1/ADStaff19-1a" specfile = "/net/s34data/export/34idc-data/2019/Staff19-1/Staff19-1a.spec" darkfile = "/net/s34data/export/34idc-work/2019/dark.tif" whitefile = "/net/s34data/export/34idc-work/2019/CelaWhiteField.tif" -auto_correct = "False" -exclude_scans = "88,91" diff --git a/conf/last/config_rec b/conf/last/config_rec index ad63e49..dd5ae80 100644 --- a/conf/last/config_rec +++ b/conf/last/config_rec @@ -1,4 +1,3 @@ -threads = 1 garbage_trigger = (1,1) algorithm_sequence = ((1,("ER",20),("HIO",180)),(1,("ER",22))) beta = 0.9 @@ -9,11 +8,11 @@ amp_support_trigger = (0,1) support_type = "GAUSS" support_threshold = 0.15 support_sigma = 1.0 -support_area = [0.5,0.5,0.5] +support_area = (0.5,0.5,0.5) phase_min = -1.57 phase_max = 1.57 partial_coherence_type = "LUCY" partial_coherence_iteration_num = 20 partial_coherence_normalize = True -partial_coherence_roi = [32,32,16] +partial_coherence_roi = (32,32,16) twin_trigger = (2) diff --git a/config_data b/config_data index c185949..f6025ad 100644 --- a/config_data +++ b/config_data @@ -64,9 +64,9 @@ arm=0.6350; dth=0.000174532925199; // detector pixel sixe -pixel = [55.0e-6, 55.0e-6]; +pixel = (55.0e-6, 55.0e-6); // size to crop the image array -//crop = [120,120,120] -crop = [.75, .75, .75] +//crop = (120,120,120) +crop = (.75, .75, .75) diff --git a/config_disp b/config_disp index 2d468d5..266570d 100644 --- a/config_disp +++ b/config_disp @@ -15,9 +15,9 @@ arm=0.6350; dth=0.000174532925199; // detector pixel sixe -pixel = [55.0e-6, 55.0e-6]; +pixel = (55.0e-6, 55.0e-6); // size to crop the image array -//crop = [120,120,120] -crop = [.75, .75, .75] +//crop = (120,120,120) +crop = (.75, .75, .75) diff --git a/config_rec b/config_rec index 2475fdf..79fbdf9 100644 --- a/config_rec +++ b/config_rec @@ -30,11 +30,11 @@ continue_dir = "cont" samples = 1 // number of reconstructions to start with -device = [0,0] +device = (0,0) // ID of the target devices for each thread. // If more threads or not defined, it will default to -1 -garbage_trigger = (10,5) +garbage_trigger = (10,.5) // ArrayFire memory management is not reliable, the way around is to call garbage // collection per defined number of iterations. Decrease this value if out of memory // error occurs @@ -54,7 +54,7 @@ low_resolution_sigma_alg = "SIG_SPACE_LINEAR" // to calculate sigmas for generations // SIG_ASSIGNED - sigmas will be read from low_resolution_sigmas -low_resolution_sigmas = [1.0] +low_resolution_sigmas = (1.0) // list of sigmas that will be used by subsequent generations if the // low_resolution_sigma_alg is set to SIG_ASSIGNED // the length must be equal low_resolution_generations @@ -99,7 +99,7 @@ amp_support_trigger = (7, 5) support_type = "GAUSS"; support_threshold = 0.1; support_sigma = 1.0; -support_area = [.5,.5,.5]; +support_area = (.5,.5,.5) // initial support area. If the values are fractional, the support area will be calculated // by multiplying by the data array dimensions. The support will be set to 1s to this // dimensions centered. @@ -124,7 +124,7 @@ partial_coherence_type = "LUCY"; // partial coherence algorithm partial_coherence_iteration_num = 20; partial_coherence_normalize = true; -partial_coherence_roi = [32,32,32]; +partial_coherence_roi = (32,32,32); // coherence area. If the values are fractional, the coherence area will be calculated // by multiplying by the data array dimensions. diff --git a/reccdi/src_py/beamlines/aps_34id/prep.py b/reccdi/src_py/beamlines/aps_34id/prep.py index 8747ac6..e384584 100644 --- a/reccdi/src_py/beamlines/aps_34id/prep.py +++ b/reccdi/src_py/beamlines/aps_34id/prep.py @@ -1,44 +1,68 @@ -import os +import pylibconfig2 as cfg import shutil import numpy as np import tifffile as tif import copy import scipy.fftpack as sf -from xrayutilities.io import spec as spec - -def parse_spec(specfile, scan): - # Scan numbers start at one but the list is 0 indexed - ss = spec.SPECFile(specfile)[scan - 1] - - # Stuff from the header - detector = ss.getheader_element('UIMDET') - det_area = ss.getheader_element('UIMR5').split() - det_area1 = int(det_area[0]), int(det_area[1]) - det_area2 = int(det_area[2]), int(det_area[3]) - command = ss.command.split() - scanmot = command[1] - scanmot_del = (float(command[3]) - float(command[2])) / int(command[4]) - - # Motor stuff from the header - delta = ss.init_motor_pos['INIT_MOPO_Delta'] - gamma = ss.init_motor_pos['INIT_MOPO_Gamma'] - arm = ss.init_motor_pos['INIT_MOPO_camdist'] - energy = ss.init_motor_pos['INIT_MOPO_Energy'] - lam = 12.398 / energy / 10 # in nanometers - - # returning the scan motor name as well. Sometimes we scan things - # other than theta. So we need to expand the capability of the display - # code. - return scanmot_del, delta, gamma, arm, lam, detector, det_area1, det_area2, scanmot - - -def set_disp_conf(dth, delta, gamma, arm, lam, detector, disp_dir): +import os +import glob + + +#====================================== spec parsing========================================== +class Detector(object): + def __init__(self, det_name): + self.det_name = det_name + + def get_pixel(self): + pass + + +class Det_34idcTIM2(Detector): + def __init__(self): + super(Det_34idcTIM2, self).__init__('34idcTIM2:') + + def get_pixel(self): + return '(55.0e-6, 55.0e-6)' + + +class Spec_params: + def __init__(self, specfile, scan): + from xrayutilities.io import spec as spec + + # Scan numbers start at one but the list is 0 indexed + ss = spec.SPECFile(specfile)[scan - 1] + + # Stuff from the header + detector_name = str(ss.getheader_element('UIMDET')) + if detector_name == '34idcTIM2:': + self.detector_obj = Det_34idcTIM2() + det_area = ss.getheader_element('UIMR5').split() + self.det_area1 = int(det_area[0]), int(det_area[1]) + self.det_area2 = int(det_area[2]), int(det_area[3]) + command = ss.command.split() + self.scanmot = command[1] + self.scanmot_del = (float(command[3]) - float(command[2])) / int(command[4]) + + # Motor stuff from the header + self.delta = ss.init_motor_pos['INIT_MOPO_Delta'] + self.gamma = ss.init_motor_pos['INIT_MOPO_Gamma'] + self.arm = ss.init_motor_pos['INIT_MOPO_camdist'] + energy = ss.init_motor_pos['INIT_MOPO_Energy'] + self.lam = 12.398 / energy / 10 # in nanometers + + # returning the scan motor name as well. Sometimes we scan things + # other than theta. So we need to expand the capability of the display + # code. +#====================================== spec parsing end========================================== + +#====================================== prepare display config==================================== +def set_disp_conf(spec_obj, experiment_dir): # pixel size by detector - pixel = {'34idcTIM2:':'[55.0e-6, 55.0e-6]'} + pixel = spec_obj.detector_obj.get_pixel() #{'34idcTIM2:':'[55.0e-6, 55.0e-6]'} # create display configuration file from the parsed parameters - temp_file = os.path.join(disp_dir, 'temp') - disp_conf_file = os.path.join(disp_dir, 'config_disp') + temp_file = os.path.join(experiment_dir, 'conf', 'temp') + disp_conf_file = os.path.join(experiment_dir, 'conf', 'config_disp') with open(temp_file, 'a') as temp: try: with open(disp_conf_file, 'r') as f: @@ -49,28 +73,100 @@ def set_disp_conf(dth, delta, gamma, arm, lam, detector, disp_dir): except: pass - temp.write('lamda = ' + str(lam) + '\n') - temp.write('delta = ' + str(delta) + '\n') - temp.write('gamma = ' + str(gamma) + '\n') - temp.write('arm = ' + str(arm) + '\n') - temp.write('dth = ' + str(dth) + '\n') - temp.write('pixel = ' + pixel[detector] + '\n') + temp.write('lamda = ' + str(spec_obj.lam) + '\n') + temp.write('delta = ' + str(spec_obj.delta) + '\n') + temp.write('gamma = ' + str(spec_obj.gamma) + '\n') + temp.write('arm = ' + str(spec_obj.arm) + '\n') + temp.write('dth = ' + str(spec_obj.scanmot_del) + '\n') + temp.write('pixel = ' + str(pixel) + '\n') temp.close() shutil.move(temp_file, disp_conf_file) +#====================================== prepare display config end==================================== + + +#====================================== prepare data================================================== + +def get_dir_list(scans, map): + """ + Returns list of sub-directories in data_dir with names matching range of scans + It will exclude scans within exclude_scans list if provided, and directories with fewer files than + min_files, if provided + :param scans: + :param map: + :return: + """ + try: + min_files = map.min_files + except: + min_files = 0 + try: + exclude_scans = map.exclude_scans + except: + exclude_scans = [] + try: + data_dir = map.data_dir + except: + print ('please provide data_dir') + + dirs = [] + for name in os.listdir(data_dir): + subdir = os.path.join(data_dir, name) + if os.path.isdir(subdir): + # exclude directories with fewer tif files than min_files + if len(glob.glob1(subdir, "*.tif")) < min_files and len(glob.glob1(subdir, "*.tiff")) < min_files: + continue + try: + index = int(name[-4:]) + if index > scans[1]: + break + if index >= scans[0] and not index in exclude_scans: + dirs.append(subdir) + except: + continue + return dirs + + +def get_dark_white(darkfile, whitefile, det_area1, det_area2): + if darkfile is not None: + # find the darkfield array + dark_full = tif.imread(darkfile).astype(float) + # Ross' arrays are transposed from imread + dark_full = np.transpose(dark_full) + # crop the corresponding quad or use the whole array, depending on what info was parsed from spec file + dark = dark_full[slice(det_area1[0], det_area1[1]), slice(det_area2[0], det_area2[1])] + else: + dark = None + + if whitefile is not None: + # find the whitefield array + white_full = tif.imread(whitefile).astype(float) + # Ross' arrays are transposed from imread + white_full = np.transpose(white_full) + # crop the corresponding quad or use the whole array, depending on what info was parsed from spec file + white = white_full[slice(det_area1[0], det_area1[1]), slice(det_area2[0], det_area2[1])] + # set the bad pixels to some large value + #white = np.where(white==0, 1e20, white) #Some large value + white = np.where(white<5000, 1e20, white) #Some large value + else: + white = None + + return dark, white + def get_normalized_slice(file, dark, white): slice = np.transpose(tif.TiffFile(file).asarray()) - slice = np.where(dark > 5, 0, slice) #Ignore cosmic rays + if dark is not None: + slice = np.where(dark > 5, 0, slice) #Ignore cosmic rays # here would be code for correction for dead time - slice = slice/white - slice *= 1e5 #Some medium value + if white is not None: + slice = slice/white + slice *= 1e5 #Some medium value slice = np.where(np.isnan(slice), 0, slice) return slice -def read_scan(dir, dark, white, auto_correct): - slices = 0 +def read_scan(dir, dark, white): files = [] files_dir = {} for file in os.listdir(dir): @@ -79,20 +175,17 @@ def read_scan(dir, dark, white, auto_correct): #it's assumed that the files end with four digits and 'tif' or 'tiff' extension key = temp[0][-4:] files_dir[key] = file - if auto_correct and len(files_dir) < 81: - return None ordered_keys = sorted(list(files_dir.keys())) for key in ordered_keys: file = files_dir[key] - slices += 1 files.append(os.path.join(dir, file)) # look at slice0 to find out shape n = 0 slice0 = get_normalized_slice(files[n], dark, white) - shape = (slice0.shape[0], slice0.shape[1], slices) + shape = (slice0.shape[0], slice0.shape[1], len(files)) arr = np.zeros(shape, dtype=slice0.dtype) arr[:,:,0] = slice0 @@ -132,63 +225,7 @@ def combine_part(part_f, slice_sum, refpart, part): return slice_sum + shift(part, pixelshift) -def prep_data(scan, det_area1, det_area2, data_dir, prep_data_dir, darkfile, whitefile, auto_correct=False, exclude_scans=[]): - # build sub-directories map - if len(scan) == 1: - scan.append(scan[0]) - dirs = [] - for name in os.listdir(data_dir): - subdir = os.path.join(data_dir, name) - if os.path.isdir(subdir): - try: - index = int(name[-4:]) - if index > scan[1]: - break - if index >= scan[0] and not index in exclude_scans: - dirs.append(subdir) - except: - continue - - # find the darkfield array - dark_full = tif.imread(darkfile).astype(float) - # Ross' arrays are transposed from imread - dark_full = np.transpose(dark_full) - # crop the corresponding quad or use the whole array, depending on what info was parsed from spec file - dark = dark_full[slice(det_area1[0], det_area1[1]), slice(det_area2[0], det_area2[1])] - - # find the whitefield array - white_full = tif.imread(whitefile).astype(float) - # Ross' arrays are transposed from imread - white_full = np.transpose(white_full) - # crop the corresponding quad or use the whole array, depending on what info was parsed from spec file - white = white_full[slice(det_area1[0], det_area1[1]), slice(det_area2[0], det_area2[1])] - # set the bad pixels to some large value - #white = np.where(white==0, 1e20, white) #Some large value - white = np.where(white<5000, 1e20, white) #Some large value - - if len(dirs) == 0: - print ('there are no data directories for given scans') - exit(0) - - if len(scan) == 1 or scan[0]==scan[1]: - arr = read_scan(dirs[0], dark, white, auto_correct) - else: - refpart = None - for dir in dirs: - #this will load scans from one directory into an array - part = read_scan(dir, dark, white, auto_correct) - if part is None: - continue - if refpart is None: - # make the first part a reference - slice_sum = np.abs(copy.deepcopy(part)) - refpart = sf.fftn(part) - else: - # add the arrays together - part_f = sf.fftn(part) - slice_sum = combine_part(part_f, slice_sum, refpart, part) - arr = np.transpose(np.abs(slice_sum).astype(np.int32)) - +def fit(arr, det_area1, det_area2): # if the full sensor was used for the image (i.e. the data size is 512x512) # the quadrants need to be shifted if det_area1[0] == 0 and det_area1[1] == 512 and det_area1[0] == 0 and det_area2[1] == 512: @@ -199,158 +236,95 @@ def prep_data(scan, det_area1, det_area2, data_dir, prep_data_dir, darkfile, whi b[:,261:,260:] = arr[:,256:,256:] #Quad bot right else: b = arr + return b - data_file = 'prep_data.tif' - data_file = os.path.join(prep_data_dir, data_file) - tif.imsave(data_file, b.astype(np.int32)) - print ('done with prep') +def prep_data(experiment_dir, scans, map, spec, *args): + if scans is None: + print ('scan info not provided') + return -def prepare(working_dir, id, scan, data_dir, specfile, darkfile, whitefile, auto_correct, exclude_scans): - # assuming all parameters were validated (i.e working directory exists, etc.) - # 34-idc experiment ids contain scan range. The id parameter does include the range string prepended - # with _ - #create directory to save prepared data ,//'prep' - working_dir = os.path.join(working_dir, id) - if not os.path.exists(working_dir): - os.makedirs(working_dir) + # build sub-directories map + if len(scans) == 1: + scans.append(scans[0]) + dirs = get_dir_list(scans, map) + + if spec is not None: + det_area1 = spec.det_area1 + det_area2 = spec.det_area2 + elif map is not None: + det_area1 = map.det_area1 + det_area2 = map.det_area2 + else: + print ('please provide det_area1 and det_area2 values') - prep_data_dir = os.path.join(working_dir, 'prep') - if not os.path.exists(prep_data_dir): - os.makedirs(prep_data_dir) + try: + whitefile = map.whitefile + except: + whitefile = None - conf_dir = os.path.join(working_dir, 'conf') - if not os.path.exists(conf_dir): - os.makedirs(conf_dir) + try: + darkfile = map.darkfile + except: + darkfile = None - scan_end = scan[len(scan)-1] - dth, delta, gamma, arm, lam, detector, det_area1, det_area2, scanmot = parse_spec(specfile, scan_end) + dark, white = get_dark_white(darkfile, whitefile, det_area1, det_area2) - # disp prep - set_disp_conf(dth, delta, gamma, arm, lam, detector, conf_dir) + if len(dirs) == 0: + print ('there are no data directories for given scans') + return - # data prep - prep_data(scan, det_area1, det_area2, data_dir, prep_data_dir, darkfile, whitefile, auto_correct, exclude_scans) - -#prepare('/local/bfrosik/cdi/test', 'A', 'DET1', [38,39], '/net/s34data/export/34idc-data/2018/Startup18-2/ADStartup18-2a', '/net/s34data/export/34idc-data/2018/Startup18-2/Startup18-2a.spec') - -def create_config(conf_dir, conf_file, conf_map): - valid = True - temp_file = os.path.join(conf_dir, 'temp') - with open(temp_file, 'a') as f: - for key in conf_map: - value = conf_map[key] - if len(value) == 0: - print('the ' + key + ' is not configured') - valid = False - break - f.write(key + ' = ' + conf_map[key] + '\n') - f.close() - if valid: - shutil.move(temp_file, conf_file) - - -def config_data(working_dir, id): - conf_map = {} - conf_map['data_dir'] = '"' + working_dir + '/' + id + '/data"' - conf_map['aliens'] = '((0,0,0,0,0,0), (0,0,0,0,0,0))' - conf_map['amp_threshold'] = '2.0' - conf_map['binning'] = '(1,1,1)' - conf_map['center_shift'] = '(0,0,0)' - conf_map['adjust_dimensions'] = '(-4, -4, -65, -65, -65, -65)' - - working_dir = os.path.join(working_dir, id) - if not os.path.exists(working_dir): - os.makedirs(working_dir) - conf_dir = os.path.join(working_dir, 'conf') - if not os.path.exists(conf_dir): - os.makedirs(conf_dir) - conf_file = os.path.join(conf_dir, 'config_data') - create_config(conf_dir, conf_file, conf_map) - - -def config_rec(working_dir, id): - conf_map = {} - conf_map['data_dir'] = '"' + working_dir + '/' + id + '/data"' - conf_map['save_dir'] = '"' + working_dir + '/' + id + '/results"' - conf_map['samples'] = '1' - conf_map['device'] = '(0)' - conf_map['garbage_trigger'] = '(1000)' - conf_map['algorithm_sequence'] = '((5,("ER",20),("HIO",180)),(1,("ER",40),("HIO",160)),(4,("ER",20),("HIO",180)))' - conf_map['beta'] = ('.9') - conf_map['resolution_trigger'] = '(0, 1, 500)' - conf_map['iter_res_sigma_range'] = '(2.0)' - conf_map['iter_res_det_range'] = '(.7)' - conf_map['amp_support_trigger'] = '(1,1)' - conf_map['support_type'] = '"GAUSS"' - conf_map['support_threshold'] = '0.1' - conf_map['support_sigma'] = '1.0' - conf_map['support_area'] = '[.5,.5,.5]' - conf_map['phase_support_trigger'] = '(0,1,20)' - conf_map['phase_min'] = '-1.57' - conf_map['phase_max'] = '1.57' - conf_map['pcdi_trigger'] = '(50,50)' - conf_map['partial_coherence_type'] = '"LUCY"' - conf_map['partial_coherence_iteration_num'] = '20' - conf_map['partial_coherence_normalize'] = 'true' - conf_map['partial_coherence_roi'] = '[32,32,16]' - conf_map['twin_trigger'] = '(2)' - conf_map['avarage_trigger'] = '(-400,1)' - - working_dir = os.path.join(working_dir, id) - if not os.path.exists(working_dir): - os.makedirs(working_dir) - conf_dir = os.path.join(working_dir, 'conf') - if not os.path.exists(conf_dir): - os.makedirs(conf_dir) - conf_file = os.path.join(conf_dir, 'config_rec') - create_config(conf_dir, conf_file, conf_map) - - -def config_disp(working_dir, id): - working_dir = os.path.join(working_dir, id) - if not os.path.exists(working_dir): - os.makedirs(working_dir) - conf_dir = os.path.join(working_dir, 'conf') - if not os.path.exists(conf_dir): - os.makedirs(conf_dir) - disp_conf_file = os.path.join(conf_dir, 'config_disp') - temp_file = os.path.join(conf_dir, 'temp') - with open(temp_file, 'a') as temp: - try: - with open(disp_conf_file, 'r') as f: - for line in f: - if not line.startswith('crop')and not line.startswith('save_dir'): - temp.write(line) - f.close() - except: - pass + if len(dirs) == 1: + arr = read_scan(dirs[0], dark, white) + else: + # make the first part a reference + part = read_scan(dirs[0], dark, white) + slice_sum = np.abs(copy.deepcopy(part)) + refpart = sf.fftn(part) + for i in range (1, len(dirs)): + #this will load scans from each directory into an array part + part = read_scan(dirs[i], dark, white) + # add the arrays together + part_f = sf.fftn(part) + slice_sum = combine_part(part_f, slice_sum, refpart, part) + arr = np.transpose(np.abs(slice_sum).astype(np.int32)) - temp.write('crop = ' + '(.5,.5,.5)' + '\n') - temp.write('save_dir = "' + working_dir + '/results"' + '\n') - temp.close() - shutil.move(temp_file, disp_conf_file) + arr = fit(arr, det_area1, det_area2) + #create directory to save prepared data ,/prep + prep_data_dir = os.path.join(experiment_dir, 'prep') + if not os.path.exists(prep_data_dir): + os.makedirs(prep_data_dir) + data_file = os.path.join(prep_data_dir, 'prep_data.tif') + + tif.imsave(data_file, arr.astype(np.int32)) + print ('done with prep') -def create_default_config(working_dir, id): - # create config_data - config_data(working_dir, id) +#====================================== prepare data end================================================== - # create config_rec - config_rec(working_dir, id) - # add to config_disp - config_disp(working_dir, id) +#====================================== entry script================================================== +def prepare(experiment_dir, scans, conf_file, *args): + try: + with open(conf_file, 'r') as f: + config_map = cfg.Config(f.read()) + except Exception as e: + print('Please check the configuration file ' + conf_file + '. Cannot parse ' + str(e)) + return + scan_end = scans[len(scans)-1] + try: + specfile = config_map.specfile + # parse parameters from spec if spec file info + spec_obj = Spec_params(specfile, scan_end) + # generate display configuration from spec parameters + set_disp_conf(spec_obj, experiment_dir) + except: + print ('specfile not in conf file, not generating config for display') + spec_obj = None -# prepare('/local/bfrosik/cdi/test', -# 'A', -# [48,60], -# '/net/s34data/export/34idc-data/2018/Startup18-2/ADStartup18-2a', -# '/net/s34data/export/34idc-data/2018/Startup18-2/Startup18-2a.spec', -# '/net/s34data/export/34idc-work/2018/Startup18-2/dark.tif', -# '/net/s34data/export/34idc-work/2018/Startup18-2/CelaWhiteField.tif') -# create_default_config('/local/bfrosik/cdi/test', 'A') + # data prep + prep_data(experiment_dir, scans, config_map, spec_obj, args) diff --git a/reccdi/src_py/controller/data.py b/reccdi/src_py/controller/data.py index 9ad22c1..640dedc 100644 --- a/reccdi/src_py/controller/data.py +++ b/reccdi/src_py/controller/data.py @@ -67,17 +67,22 @@ def prep(fname, conf_info): #assuming it's a file conf = conf_info experiment_dir = None - config_map = ut.read_config(conf) - if config_map is None: - print ("can't read configuration file") + try: + config_map = ut.read_config(conf) + if config_map is None: + print ("can't read configuration file") + return + except: + print ('Please check the configuration file ' + conf + '. Cannot parse') return # saving file for Kenley project - AI aliens removing print ('saving for AI') d_f = os.path.join(experiment_dir, 'prep', 'prep_data.npy') np.save(d_f, data) - - print ('data dimensions before prep', data.shape) + shape = list(data.shape) + shape.reverse() + print ('data dimensions before prep', shape) # zero out the aliens, aliens are the same for each data prep try: aliens = config_map.aliens @@ -146,7 +151,7 @@ def prep(fname, conf_info): prep_data = ut.adjust_dimensions(prep_data, (0,0,0,0,0,0)) try: - center_shift = tuple(config_map.center_shift) + center_shift = config_map.center_shift center_shift.reverse() print ('shift center') prep_data = ut.get_centered(prep_data, center_shift) @@ -163,9 +168,12 @@ def prep(fname, conf_info): os.makedirs(data_dir) # save data - data_file = os.path.join(data_dir, 'data.npy') - print ('saving data ready for reconstruction, data dims:', prep_data.shape) - np.save(data_file, prep_data) + data_file = os.path.join(data_dir, 'data.tif') + shape = list(prep_data.shape) + shape.reverse() + print ('saving data ready for reconstruction, data dims:', shape) + # np.save(data_file, prep_data) + ut.save_tif(prep_data, data_file) #prep('/local/bfrosik/CDI/S149/Staff14-3_S0149.tif', 'config_data') diff --git a/reccdi/src_py/run_scripts/run_34id_prepare.py b/reccdi/src_py/run_scripts/run_34id_prepare.py index 624b9cb..5c07a4d 100755 --- a/reccdi/src_py/run_scripts/run_34id_prepare.py +++ b/reccdi/src_py/run_scripts/run_34id_prepare.py @@ -6,15 +6,11 @@ import shutil -def prepare(working_dir, id, scan, data_dir, specfile, darkfile, whitefile, auto_correct=False, exclude_scans=[]): - experiment_dir = os.path.join(working_dir, id) - experiment_conf_dir = os.path.join(experiment_dir, 'conf') - if not os.path.exists(experiment_conf_dir): - os.makedirs(experiment_conf_dir) +def prepare(experiment_dir, scan_range, conf_file): + prep.prepare(experiment_dir, scan_range, conf_file) - prep.prepare(working_dir, id, scan, data_dir, specfile, darkfile, whitefile, auto_correct, exclude_scans) # copy experiment config into last config, this is the last used - main_conf = os.path.join(working_dir, id, 'conf', 'config') + main_conf = os.path.join(experiment_dir, 'conf', 'config') last = os.path.join('conf', 'last') if not os.path.exists(last): os.makedirs(last) @@ -24,27 +20,29 @@ def prepare(working_dir, id, scan, data_dir, specfile, darkfile, whitefile, auto def copy_conf(src, dest): - if src != dest: + try: main_conf = os.path.join(src, 'config') shutil.copy(main_conf, dest) conf_data = os.path.join(src, 'config_data') shutil.copy(conf_data, dest) conf_rec = os.path.join(src, 'config_rec') shutil.copy(conf_rec, dest) + except: + pass -def parse_prepare(prefix, scan, conf_dir): +def parse_and_prepare(prefix, scan, conf_dir): id = prefix + '_' + scan print ('reading data file for experiment ' + id) if not os.path.isdir(conf_dir): print ('configured directory ' + conf_dir + ' does not exist') - sys.exit(0) + return main_conf = os.path.join(conf_dir, 'config') if not os.path.isfile(main_conf): print ('the configuration directory does not contain "config" file') - sys.exit(0) + return try: # convert it to list of int @@ -54,33 +52,37 @@ def parse_prepare(prefix, scan, conf_dir): scan_num.append(int(scan_range[i])) except: print ('enter numeric values for scan range') - sys.exit(0) + return main_conf = os.path.join(conf_dir, 'config') - with open(main_conf, 'r') as f: - config_map = cfg.Config(f.read()) + try: + with open(main_conf, 'r') as f: + config_map = cfg.Config(f.read()) + except Exception as e: + print ('Please check the configuration file ' + main_conf + '. Cannot parse ' + str(e)) + return - excluded = [] try: - exclude_scans = config_map.exclude_scans - try: - # convert it to list of int - exclude_scans = exclude_scans.split(',') - for i in range(len(exclude_scans)): - excluded.append(int(exclude_scans[i])) - except: - print ('enter numeric values for scan range') - sys.exit(0) + working_dir = config_map.working_dir except: - pass + print ('config file does not have "working_dir" entry, defaulting to current directory') + working_dir = os.getcwd() - prep.prepare(config_map.working_dir, id, scan_num, config_map.data_dir, config_map.specfile, config_map.darkfile, config_map.whitefile, config_map.auto_correct, excluded) - experiment_dir = os.path.join(config_map.working_dir, id) + experiment_dir = os.path.join(working_dir, id) + if not os.path.exists(experiment_dir): + os.makedirs(experiment_dir) # copy config_data, config_rec, cofig_disp files from cofig directory into the experiment conf directory - copy_conf(conf_dir, os.path.join(experiment_dir, 'conf')) + experiment_conf_dir = os.path.join(experiment_dir, 'conf') + if not os.path.exists(experiment_conf_dir): + os.makedirs(experiment_conf_dir) + copy_conf(conf_dir, experiment_conf_dir) + + prep.prepare(experiment_dir, scan_num, main_conf) + return experiment_dir + def main(arg): parser = argparse.ArgumentParser() parser.add_argument("id", help="prefix to name of the experiment/data reconstruction") @@ -91,7 +93,7 @@ def main(arg): id = args.id conf_dir = args.conf_dir - return parse_prepare(id, scan, conf_dir) + return parse_and_prepare(id, scan, conf_dir) if __name__ == "__main__": diff --git a/reccdi/src_py/run_scripts/run_disp.py b/reccdi/src_py/run_scripts/run_disp.py index c2e69a7..ea039a4 100755 --- a/reccdi/src_py/run_scripts/run_disp.py +++ b/reccdi/src_py/run_scripts/run_disp.py @@ -4,6 +4,7 @@ import os import reccdi.src_py.utilities.utils as ut import numpy as np +import shutil def save_vtk(res_dir, conf): @@ -36,9 +37,13 @@ def to_vtk(conf_info): #assuming it's a file conf = conf_info experiment_dir = None - config_map = ut.read_config(conf) - if config_map is None: - print ("can't read configuration file") + try: + config_map = ut.read_config(conf) + if config_map is None: + print ("can't read configuration file") + return + except: + print ('Please check configuration file ' + conf + '. Cannot parse') return # remove the binning if found @@ -76,6 +81,9 @@ def to_vtk(conf_info): if os.path.isdir(subdir): save_vtk(subdir, conf) + last = os.path.join('conf', 'last', 'config_data') + shutil.copy(conf, last) + def main(arg): print ('preparing display') diff --git a/reccdi/src_py/run_scripts/run_rec.py b/reccdi/src_py/run_scripts/run_rec.py index b2f1d20..61b1a10 100755 --- a/reccdi/src_py/run_scripts/run_rec.py +++ b/reccdi/src_py/run_scripts/run_rec.py @@ -41,23 +41,31 @@ def reconstruction(proc, experiment_dir): print ('starting reconstruction') conf = os.path.join(experiment_dir, 'conf', 'config_rec') - print ('rec conf', conf) - config_map = ut.read_config(conf) - if config_map is None: - print ("can't read configuration file") + try: + config_map = ut.read_config(conf) + if config_map is None: + print ("can't read configuration file") + p.terminate() + return + except: + print ('Please check configuration file ' + conf + '. Cannot parse') + p.terminate() return try: data_dir = config_map.data_dir except AttributeError: data_dir = os.path.join(experiment_dir, 'data') - datafile = os.path.join(data_dir, 'data.npy') + datafile = os.path.join(data_dir, 'data.tif') try: - data = np.load(datafile) - print ('data shape', data.shape) + data = ut.get_array_from_tif(datafile) + shape = list(data.shape) + shape.reverse() + print ('data shape', shape) except: print ('data file ' + datafile + ' is missing') + p.terminate() return try: diff --git a/reccdi/src_py/utilities/CXDVizNX.py b/reccdi/src_py/utilities/CXDVizNX.py index 2378df1..0db6b38 100644 --- a/reccdi/src_py/utilities/CXDVizNX.py +++ b/reccdi/src_py/utilities/CXDVizNX.py @@ -74,7 +74,7 @@ def __init__(self, config): except AttributeError: print ('pixel not defined') try: - self.crop = config_map.crop + self.crop = config_map.crop.reverse() except AttributeError: self.crop = None print ('crop not defined') diff --git a/reccdi/src_py/utilities/utils.py b/reccdi/src_py/utilities/utils.py index 482575a..60d9909 100644 --- a/reccdi/src_py/utilities/utils.py +++ b/reccdi/src_py/utilities/utils.py @@ -82,7 +82,7 @@ def read_config(config): if os.path.isfile(config): with open(config, 'r') as f: config_map = cfg.Config(f.read()) - return config_map; + return config_map else: return None From 0b91e976bd22fcaa9d52db5bdd1a478ef4523420 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Tue, 23 Apr 2019 17:34:40 -0500 Subject: [PATCH 137/336] fixed data extension from npy to tif --- bin/cdi_window.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/cdi_window.py b/bin/cdi_window.py index a3d3e9e..7c4a87a 100644 --- a/bin/cdi_window.py +++ b/bin/cdi_window.py @@ -709,7 +709,7 @@ def msg_window(self, text): def reconstruction(self): - if os.path.isfile(os.path.join(self.main_win.experiment_dir, 'data', 'data.npy')): + if os.path.isfile(os.path.join(self.main_win.experiment_dir, 'data', 'data.tif')): conf_map = {} conf_map['samples'] = str(self.samples.text()) conf_map['device'] = str(self.device.text()).replace('\n','') From d32c4813624753ba42c7b45ded9fc38e3a40d99c Mon Sep 17 00:00:00 2001 From: bfrosik Date: Wed, 24 Apr 2019 13:18:17 -0500 Subject: [PATCH 138/336] fixed error parsing dislay config --- bin/cdi_window.py | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/bin/cdi_window.py b/bin/cdi_window.py index 7c4a87a..4f2bf15 100644 --- a/bin/cdi_window.py +++ b/bin/cdi_window.py @@ -737,16 +737,24 @@ def display(self): if not os.path.isfile(conf_disp): self.msg_window('missing configuration file ' + conf_disp) return - try: - conf_map = ut.read_config(conf_disp) + temp_file = os.path.join(self.main_win.experiment_dir, 'conf', 'temp') + with open(temp_file, 'a') as temp: + try: + with open(conf_disp, 'r') as f: + for line in f: + if not line.startswith('crop') and not line.startswith('binning'): + temp.write(line) + f.close() + except: + pass + if len(self.crop.text()) != 0: - conf_map['binning'] = 'crop = ' + str(self.crop.text()).replace('\n','') + '\n' - except Exception as e: - self.msg_window('please check configuration file ' + conf_disp + '. Cannot parse, ' + str(e)) - return + temp.write('crop = ' + str(self.crop.text()).replace('\n', '') + '\n') + + temp.close() + shutil.move(temp_file, conf_disp) - if self.main_win.write_conf(conf_map, conf_dir, conf_disp): - run_dp.to_vtk(self.main_win.experiment_dir) + run_dp.to_vtk(self.main_win.experiment_dir) else: self.msg_window('Please, run reconstruction in previous tab to activate this function') From 0c9333a8229ca5c5d5bdc29f7467dc646501b636 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Tue, 30 Apr 2019 16:06:46 -0500 Subject: [PATCH 139/336] added saving the last reciprocal image, and generating tif files from it, Added memory clean up in fast module --- reccdi/include/bridge.hpp | 5 +- reccdi/include/manager.hpp | 6 + reccdi/include/support.hpp | 1 + reccdi/include/worker.hpp | 1 + reccdi/src_cpp/bridge.cpp | 10 + reccdi/src_cpp/manager.cpp | 23 +++ reccdi/src_cpp/parameters.cpp | 2 + reccdi/src_cpp/pcdi.cpp | 5 +- reccdi/src_cpp/support.cpp | 8 + reccdi/src_cpp/worker.cpp | 17 ++ reccdi/src_py/controller/fast_module.py | 18 +- reccdi/src_py/controller/gen_rec.py | 34 ++-- reccdi/src_py/controller/reconstruction.py | 8 +- .../src_py/controller/reconstruction_multi.py | 43 +---- reccdi/src_py/cyth/bridge_cpu.pyx | 6 + reccdi/src_py/cyth/bridge_cuda.pyx | 6 + reccdi/src_py/cyth/bridge_opencl.pyx | 6 + reccdi/src_py/run_scripts/everything.py | 2 +- reccdi/src_py/run_scripts/run_disp.py | 12 ++ reccdi/src_py/utilities/utils.py | 180 +++++++++--------- 20 files changed, 239 insertions(+), 154 deletions(-) diff --git a/reccdi/include/bridge.hpp b/reccdi/include/bridge.hpp index 96769b3..609df29 100644 --- a/reccdi/include/bridge.hpp +++ b/reccdi/include/bridge.hpp @@ -29,14 +29,15 @@ class Bridge void StartCalc(int device, std::vector data_buffer_r, std::vector dim, std::string const & config); + std::vector GetReciprocalR(); + std::vector GetReciprocalI(); std::vector GetSupportV(); std::vector GetCoherenceV(); std::vector GetImageR(); std::vector GetImageI(); std::vector GetErrors(); - - void Cleanup(); + void Cleanup(); }; diff --git a/reccdi/include/manager.hpp b/reccdi/include/manager.hpp index e6ae6fd..65ce1fe 100644 --- a/reccdi/include/manager.hpp +++ b/reccdi/include/manager.hpp @@ -62,6 +62,12 @@ class Manager // This method returns final coherence array. std::vector GetCoherenceV(); + // This method returns last amplitudes in reciprocal space. The returned buffer contains the real part. + std::vector GetReciprocalR(); + + // This method returns last amplitudes in reciprocal space. The returned buffer contains the imaginary part. + std::vector GetReciprocalI(); + }; diff --git a/reccdi/include/support.hpp b/reccdi/include/support.hpp index b94ad31..c86a94e 100644 --- a/reccdi/include/support.hpp +++ b/reccdi/include/support.hpp @@ -31,6 +31,7 @@ class Support public: Support(const af::dim4 data_dim, Params *params, af::array support_array); + ~Support(); void UpdateAmp(const af::array ds_image, d_type sig, int iter); void UpdatePhase(const af::array ds_image, int iter); int GetTriggerAlgorithm(); diff --git a/reccdi/include/worker.hpp b/reccdi/include/worker.hpp index 104502d..1e8a551 100644 --- a/reccdi/include/worker.hpp +++ b/reccdi/include/worker.hpp @@ -130,5 +130,6 @@ typedef void (Reconstruction::*fp)(void); std::vector GetCoherenceVectorR(); std::vector GetCoherenceVectorI(); + af::array GetReciprocal(); }; #endif /* worker_hpp */ diff --git a/reccdi/src_cpp/bridge.cpp b/reccdi/src_cpp/bridge.cpp index 6f08a3b..c13c5d3 100644 --- a/reccdi/src_cpp/bridge.cpp +++ b/reccdi/src_cpp/bridge.cpp @@ -73,6 +73,16 @@ std::vector Bridge::GetCoherenceV() return mgr->GetCoherenceV(); } +std::vector Bridge::GetReciprocalR() +{ + return mgr->GetReciprocalR(); +} + +std::vector Bridge::GetReciprocalI() +{ + return mgr->GetReciprocalI(); +} + void Bridge::Cleanup() { delete mgr; diff --git a/reccdi/src_cpp/manager.cpp b/reccdi/src_cpp/manager.cpp index 8386aab..2bdb05d 100644 --- a/reccdi/src_cpp/manager.cpp +++ b/reccdi/src_cpp/manager.cpp @@ -191,4 +191,27 @@ std::vector Manager::GetCoherenceV() return rec->GetCoherenceVector(); } +std::vector Manager::GetReciprocalR() +{ + af::array rs_amplitudes = rec->GetReciprocal(); + + d_type *rs_amplitudes_r = real(rs_amplitudes).copy().host(); + std::vector v(rs_amplitudes_r, rs_amplitudes_r + rs_amplitudes.elements()); + + delete [] rs_amplitudes_r; + return v; +} + +std::vector Manager::GetReciprocalI() +{ + af::array rs_amplitudes = rec->GetReciprocal(); + + d_type *rs_amplitudes_i = imag(rs_amplitudes).copy().host(); + std::vector v(rs_amplitudes_i, rs_amplitudes_i + rs_amplitudes.elements()); + + delete [] rs_amplitudes_i; + return v; +} + + diff --git a/reccdi/src_cpp/parameters.cpp b/reccdi/src_cpp/parameters.cpp index fd97195..45265d9 100644 --- a/reccdi/src_cpp/parameters.cpp +++ b/reccdi/src_cpp/parameters.cpp @@ -483,6 +483,8 @@ Params::~Params() alg_switches.clear(); support_area.clear(); pcdi_roi.clear(); + used_flow_seq.clear(); + flow_vec.clear(); } void Params::BuildAlgorithmMap() diff --git a/reccdi/src_cpp/pcdi.cpp b/reccdi/src_cpp/pcdi.cpp index deb482a..f70df87 100644 --- a/reccdi/src_cpp/pcdi.cpp +++ b/reccdi/src_cpp/pcdi.cpp @@ -31,7 +31,10 @@ PartialCoherence::PartialCoherence(Params *parameters, af::array coherence_array } PartialCoherence::~PartialCoherence() -{ +{ + kernel_array = af::array(); + roi_amplitudes_prev = af::array(); + roi_data_abs = af::array(); roi.clear(); } diff --git a/reccdi/src_cpp/support.cpp b/reccdi/src_cpp/support.cpp index ad31606..378932d 100644 --- a/reccdi/src_cpp/support.cpp +++ b/reccdi/src_cpp/support.cpp @@ -41,6 +41,14 @@ Support::Support(const af::dim4 data_dim, Params *parameters, af::array support) */ } + +Support::~Support() +{ + distribution = af::array(); + support_array = af::array(); + init_support_array = af::array(); +} + void Support::UpdateAmp(const af::array ds_image, d_type sig, int iter) { if (sig != last_sigma) diff --git a/reccdi/src_cpp/worker.cpp b/reccdi/src_cpp/worker.cpp index 016751e..0ff1e49 100644 --- a/reccdi/src_cpp/worker.cpp +++ b/reccdi/src_cpp/worker.cpp @@ -58,13 +58,26 @@ Reconstruction::~Reconstruction() { delete params; delete state; + delete support; if (partialCoherence != NULL) { delete partialCoherence; } + if (resolution != NULL) + { + delete resolution; + } + data = af::array(); + iter_data = af::array(); + ds_image = af::array(); + ds_image_raw = af::array(); + rs_amplitudes = af::array(); + aver_v.clear(); support_vector.clear(); coherence_vector.clear(); + iter_flow.clear(); + } void Reconstruction::Init() @@ -365,3 +378,7 @@ std::vector Reconstruction::GetCoherenceVectorI() return coherence_vector; } +af::array Reconstruction::GetReciprocal() +{ + return rs_amplitudes; +} diff --git a/reccdi/src_py/controller/fast_module.py b/reccdi/src_py/controller/fast_module.py index c22ad55..63248cf 100755 --- a/reccdi/src_py/controller/fast_module.py +++ b/reccdi/src_py/controller/fast_module.py @@ -22,6 +22,7 @@ import reccdi.src_py.cyth.bridge_cpu as bridge_cpu import reccdi.src_py.cyth.bridge_opencl as bridge_opencl import reccdi.src_py.cyth.bridge_cuda as bridge_cuda +import copy __author__ = "Barbara Frosik" @@ -127,17 +128,17 @@ def fast_module_reconstruction(proc, device, conf, data, coh_dims, image=None, s fast_module.start_calc_with_guess_support_coh(device, data_l, image.real.tolist(), image.imag.tolist(), support.tolist(), dims1, coherence.tolist(), coh_dims1, conf) - er = fast_module.get_errors() - image_r = np.asarray(fast_module.get_image_r()).copy() - image_i = np.asarray(fast_module.get_image_i()).copy() + er = copy.deepcopy(fast_module.get_errors()) + image_r = copy.deepcopy(np.asarray(fast_module.get_image_r())) + image_i = copy.deepcopy(np.asarray(fast_module.get_image_i())) image = image_r + 1j*image_i print ('image norm in fast module', sum(abs(image)**2)) # normalize image mx = max(np.absolute(image).ravel().tolist()) image = image/mx - support = np.asarray(fast_module.get_support()).copy() - coherence = np.asarray(fast_module.get_coherence()).copy() + support = copy.deepcopy(np.asarray(fast_module.get_support())) + coherence = copy.deepcopy(np.asarray(fast_module.get_coherence())) image = np.reshape(image, dims) image = np.swapaxes(image, 2, 0) @@ -154,6 +155,11 @@ def fast_module_reconstruction(proc, device, conf, data, coh_dims, image=None, s else: coherence = None - return image, support, coherence, er + reciprocal_r = copy.deepcopy(np.asarray(fast_module.get_reciprocal_r())) + reciprocal_i = copy.deepcopy(np.asarray(fast_module.get_reciprocal_i())) + reciprocal = reciprocal_r + 1j*reciprocal_i + fast_module.cleanup() + + return image, support, coherence, er, reciprocal diff --git a/reccdi/src_py/controller/gen_rec.py b/reccdi/src_py/controller/gen_rec.py index 4db73e3..2a3061b 100644 --- a/reccdi/src_py/controller/gen_rec.py +++ b/reccdi/src_py/controller/gen_rec.py @@ -339,18 +339,6 @@ def breed(self, images, errs, gen, threshold, sigma): return child_images, child_supports -def save_results(image, support, coherence, save_dir): - if not os.path.exists(save_dir): - os.makedirs(save_dir) - - image_file = os.path.join(save_dir, 'image') - support_file = os.path.join(save_dir, 'support') - coh_file = os.path.join(save_dir, 'coherence') - np.save(image_file, image) - np.save(support_file, support) - np.save(coh_file, coherence) - - def reconstruction(generations, proc, data, conf_info, config_map): """ This function controls reconstruction utilizing genetic algorithm. @@ -421,20 +409,34 @@ def reconstruction(generations, proc, data, conf_info, config_map): if os.path.isdir(conf_info): experiment_dir = conf_info conf = os.path.join(experiment_dir, 'conf', 'config_rec') + save_dir = os.path.join(experiment_dir, 'results') else: # assuming it's a file conf = conf_info + dirs = conf_info.split('/') + try: + save_dir = config_map.save_dir + except: + if dirs[len(dirs)-2] == 'conf': # it is the experiment structure + offset = len(dirs[len(dirs)-2]) + len(dirs[len(dirs)-1]) + 1 + save_dir = os.path.join(conf_info[0:-offset], 'results') + else: + save_dir = os.path.join(os.getcwd(), 'results') # save in current dir if low_resolution_generations > 0: for g in range(low_resolution_generations): gen_data = gen_obj.get_data(g, data) - images, supports, cohs, errs = rec.rec(proc, gen_data, conf, config_map, images, supports) - # here can save the generation results + images, supports, cohs, errs, recips = rec.rec(proc, gen_data, conf, config_map, images, supports) + # save the generation results + save_dir = os.path.join(save_dir, 'g_' + str(g)) + ut.save_mult_results(len(images), images, supports, cohs, errs, recips, save_dir) if len(images) > 1 and gen_obj.breed_modes[g] is not 'none': images, supports = gen_obj.breed(images, errs, g, support_threshold, support_sigma) for g in range(low_resolution_generations, generations): - images, supports, cohs, errs = rec.rec(proc, data, conf, config_map, images, supports) - # here can save the generation results + images, supports, cohs, errs, recips = rec.rec(proc, data, conf, config_map, images, supports) + # save the generation results + save_dir = os.path.join(save_dir, 'g_' + str(g)) + ut.save_mult_results(len(images), images, supports, cohs, errs, recips, save_dir) if g < (generations-1) and len(images) > 1 and gen_obj.breed_modes[g] is not 'none': images, supports= gen_obj.breed(images, errs, g, support_threshold, support_sigma) else: diff --git a/reccdi/src_py/controller/reconstruction.py b/reccdi/src_py/controller/reconstruction.py index 8e5c129..ad739e3 100644 --- a/reccdi/src_py/controller/reconstruction.py +++ b/reccdi/src_py/controller/reconstruction.py @@ -83,10 +83,10 @@ def rec(proc, data, conf, config_map, image, support, coh): except: coh_dims = None - image, support, coh, er = calc.fast_module_reconstruction(proc, devices[0], conf, data, coh_dims, image, support, coh) + image, support, coh, er, reciprocal = calc.fast_module_reconstruction(proc, devices[0], conf, data, coh_dims, image, support, coh) # errs contain errors for each iteration - return image, support, coh, er + return image, support, coh, er, reciprocal def reconstruction(proc, data, conf_info, config_map): @@ -151,7 +151,7 @@ def reconstruction(proc, data, conf_info, config_map): conf = conf_info experiment_dir = None - image, support, coh, errs = rec(proc, data, conf, config_map, image, support, coh) + image, support, coh, errs, recips = rec(proc, data, conf, config_map, image, support, coh) try: save_dir = config_map.save_dir @@ -160,7 +160,7 @@ def reconstruction(proc, data, conf_info, config_map): if experiment_dir is not None: save_dir = os.path.join(experiment_dir, save_dir) - ut.save_results(image, support, coh, np.asarray(errs), save_dir) + ut.save_results(image, support, coh, np.asarray(errs), recips, save_dir) print('done') diff --git a/reccdi/src_py/controller/reconstruction_multi.py b/reccdi/src_py/controller/reconstruction_multi.py index 3be4cb6..ffffc6c 100644 --- a/reccdi/src_py/controller/reconstruction_multi.py +++ b/reccdi/src_py/controller/reconstruction_multi.py @@ -129,9 +129,9 @@ def run_fast_module(proc, device, conf, data, coh_dims, prev_image, prev_support error : list containing errors for iterations """ - image, support, coherence, errors = calc.fast_module_reconstruction(proc, device, conf, data, coh_dims, + image, support, coherence, errors, reciprocal = calc.fast_module_reconstruction(proc, device, conf, data, coh_dims, prev_image, prev_support, prev_coh) - return image, support, coherence, errors + return image, support, coherence, errors, reciprocal def read_results(read_dir): @@ -168,36 +168,6 @@ def read_results(read_dir): return images, supports, cohs -def save_results(samples, images, supports, cohs, errs, save_dir): - """ - This function saves results of multiple reconstructions to directory tree in save_dir. - - Parameters - ---------- - samples : int - number of reconstruction sets results - - images : list - list of numpy arrays containing reconstructed images - - supports : list - list of numpy arrays containing support of reconstructed images - - cohs : list - list of numpy arrays containing coherence of reconstructed images - - save_dir : str - a directory to save the results - - Returns - ------- - nothing - """ - for i in range(samples): - subdir = os.path.join(save_dir, str(i)) - ut.save_results(images[i], supports[i], cohs[i], np.asarray(errs[i]), subdir) - - def rec(proc, data, conf, config_map, images, supports, cohs=None): """ This function controls the multiple reconstructions. It invokes a loop to execute parallel resconstructions, @@ -256,6 +226,7 @@ def rec(proc, data, conf, config_map, images, supports, cohs=None): res = [] errs = [] + recips = [] for i in range(samples): if cohs is None: coh = None @@ -263,6 +234,7 @@ def rec(proc, data, conf, config_map, images, supports, cohs=None): coh = cohs[i] res.append(None) errs.append(None) + recips.append(None) res[i] = run_fast_module(proc, devices[i], conf, data, coh_dims, images[i], supports[i], coh) # Wait for all Parsl runs to complete.. @@ -272,8 +244,9 @@ def rec(proc, data, conf, config_map, images, supports, cohs=None): supports[i] = r[1] cohs[i] = r[2] errs[i] = r[3] + recips[i] = r[4] # return only error from last iteration for each reconstruction - return images, supports, cohs, errs + return images, supports, cohs, errs, recips def reconstruction(samples, proc, data, conf_info, config_map): @@ -341,7 +314,7 @@ def reconstruction(samples, proc, data, conf_info, config_map): conf = conf_info experiment_dir = None - images, supports, cohs, errs = rec(proc, data, conf, config_map, images, supports, cohs) + images, supports, cohs, errs, recips = rec(proc, data, conf, config_map, images, supports, cohs) stop = time.time() t = stop - start print ('run in ' + str(t) + ' sec') @@ -353,7 +326,7 @@ def reconstruction(samples, proc, data, conf_info, config_map): if experiment_dir is not None: save_dir = os.path.join(experiment_dir, save_dir) - save_results(samples, images, supports, cohs, errs, save_dir) + ut.save_mult_results(samples, images, supports, cohs, errs, recips, save_dir) print('done') diff --git a/reccdi/src_py/cyth/bridge_cpu.pyx b/reccdi/src_py/cyth/bridge_cpu.pyx index 13bdd50..b272c1b 100644 --- a/reccdi/src_py/cyth/bridge_cpu.pyx +++ b/reccdi/src_py/cyth/bridge_cpu.pyx @@ -27,6 +27,8 @@ cdef extern from "../include/bridge.hpp": vector[double] GetErrors() vector[float] GetSupportV() vector[double] GetCoherenceV() + vector[double] GetReciprocalR() + vector[double] GetReciprocalI() void Cleanup() @@ -54,6 +56,10 @@ cdef class PyBridge: return self.thisptr.GetSupportV() def get_coherence(self): return self.thisptr.GetCoherenceV() + def get_reciprocal_r(self): + return self.thisptr.GetReciprocalR() + def get_reciprocal_i(self): + return self.thisptr.GetReciprocalI() def cleanup(self): self.thisptr.Cleanup() diff --git a/reccdi/src_py/cyth/bridge_cuda.pyx b/reccdi/src_py/cyth/bridge_cuda.pyx index 2e663f8..7fbddd4 100755 --- a/reccdi/src_py/cyth/bridge_cuda.pyx +++ b/reccdi/src_py/cyth/bridge_cuda.pyx @@ -26,6 +26,8 @@ cdef extern from "../include/bridge.hpp": vector[double] GetErrors() vector[float] GetSupportV() vector[double] GetCoherenceV() + vector[double] GetReciprocalR() + vector[double] GetReciprocalI() void Cleanup() @@ -53,6 +55,10 @@ cdef class PyBridge: return self.thisptr.GetSupportV() def get_coherence(self): return self.thisptr.GetCoherenceV() + def get_reciprocal_r(self): + return self.thisptr.GetReciprocalR() + def get_reciprocal_i(self): + return self.thisptr.GetReciprocalI() def cleanup(self): self.thisptr.Cleanup() diff --git a/reccdi/src_py/cyth/bridge_opencl.pyx b/reccdi/src_py/cyth/bridge_opencl.pyx index d63ebec..c57dc0f 100755 --- a/reccdi/src_py/cyth/bridge_opencl.pyx +++ b/reccdi/src_py/cyth/bridge_opencl.pyx @@ -26,6 +26,8 @@ cdef extern from "../include/bridge.hpp": vector[double] GetErrors() vector[float] GetSupportV() vector[double] GetCoherenceV() + vector[double] GetReciprocalR() + vector[double] GetReciprocalI() void Cleanup() @@ -53,6 +55,10 @@ cdef class PyBridge: return self.thisptr.GetSupportV() def get_coherence(self): return self.thisptr.GetCoherenceV() + def get_reciprocal_r(self): + return self.thisptr.GetReciprocalR() + def get_reciprocal_i(self): + return self.thisptr.GetReciprocalI() def cleanup(self): self.thisptr.Cleanup() diff --git a/reccdi/src_py/run_scripts/everything.py b/reccdi/src_py/run_scripts/everything.py index 4e647ba..0e1e1b4 100644 --- a/reccdi/src_py/run_scripts/everything.py +++ b/reccdi/src_py/run_scripts/everything.py @@ -18,7 +18,7 @@ def main(arg): scans = args.scans conf_dir = args.conf_dir - experiment_dir = prep.parse_prepare(prefix, scans, conf_dir) + experiment_dir = prep.parse_and_prepare(prefix, scans, conf_dir) run_dt.data(experiment_dir) run_rc.reconstruction(dev, experiment_dir) run_dp.to_vtk(experiment_dir) diff --git a/reccdi/src_py/run_scripts/run_disp.py b/reccdi/src_py/run_scripts/run_disp.py index ea039a4..362169b 100755 --- a/reccdi/src_py/run_scripts/run_disp.py +++ b/reccdi/src_py/run_scripts/run_disp.py @@ -21,6 +21,18 @@ def save_vtk(res_dir, conf): print ('support file ' + supportfile + ' is missing') return + reciprocalfile = os.path.join(res_dir, 'reciprocal.npy') + reciprocal = np.load(reciprocalfile) + # reciprocal is saved as tif file, so no need to pass it to cx module + # saving amp, phase, and square of modulus in tif format + reciprocal_amp = np.absolute(reciprocal) + reciprocal_phase = np.angle(reciprocal) + reciprocal_sq_mod = np.power(reciprocal_amp, 2) + + ut.save_tif(reciprocal_amp, os.path.join(res_dir, 'reciprocal_amp.tif')) + ut.save_tif(reciprocal_phase, os.path.join(res_dir, 'reciprocal_phase.tif')) + ut.save_tif(reciprocal_sq_mod, os.path.join(res_dir, 'reciprocal_sq_mod.tif')) + try: cohfile = os.path.join(res_dir, 'coherence.npy') coh = np.load(cohfile) diff --git a/reccdi/src_py/utilities/utils.py b/reccdi/src_py/utilities/utils.py index 60d9909..688802f 100644 --- a/reccdi/src_py/utilities/utils.py +++ b/reccdi/src_py/utilities/utils.py @@ -45,18 +45,16 @@ def get_logger(name, ldir=''): def get_array_from_tif(filename): """ This method reads tif type file containing experiment data and returns the data as array. - Parameters ---------- filename : str a filename containing the experiment data - Returns ------- data : array an array containing the experiment data """ - + return tf.imread(filename) @@ -67,12 +65,10 @@ def save_tif(ar, tif_file): def read_config(config): """ This function gets configuration file. It checks if the file exists and parses it into a map. - Parameters ---------- config : str configuration file name, including path - Returns ------- config_map : dict @@ -82,26 +78,24 @@ def read_config(config): if os.path.isfile(config): with open(config, 'r') as f: config_map = cfg.Config(f.read()) - return config_map + return config_map; else: return None def get_good_dim(dim): """ - This function calculates the dimension supported by opencl library (i.e. is multiplier of 2,3, or 5) and is closest to the + This function calculates the dimension supported by opencl library (i.e. is multiplier of 2,3, or 5) and is closest to the given starting dimension, and spaced by the given step. If the dimension is not supported the function adds step value and verifies the new dimension. It iterates until it finds supported value. - Parameters ---------- dim : int a dimension that needs to be tranformed to one that is supported by the opencl library, if it is not already - + step : int a delta to increase the dimension - Returns ------- dim : int @@ -110,39 +104,37 @@ def get_good_dim(dim): def is_correct(x): sub = x - if sub%3 == 0: - sub = sub/3 - if sub%3 == 0: - sub = sub/3 - if sub%5 == 0: - sub = sub/5 - while sub%2 == 0: - sub = sub/2 + if sub % 3 == 0: + sub = sub / 3 + if sub % 3 == 0: + sub = sub / 3 + if sub % 5 == 0: + sub = sub / 5 + while sub % 2 == 0: + sub = sub / 2 return sub == 1 new_dim = dim - if new_dim%2 == 1: + if new_dim % 2 == 1: new_dim += 1 while not is_correct(new_dim): new_dim += 2 return new_dim - + def get_opencl_dim1(dim, step): """ - This function calculates the dimension supported by opencl library (i.e. is multiplier of 2,3, or 5) and is closest to the + This function calculates the dimension supported by opencl library (i.e. is multiplier of 2,3, or 5) and is closest to the given starting dimension, and spaced by the given step. If the dimension is not supported the function adds step value and verifies the new dimension. It iterates until it finds supported value. - Parameters ---------- dim : int a dimension that needs to be tranformed to one that is supported by the opencl library, if it is not already - + step : int a delta to increase the dimension - Returns ------- dim : int @@ -151,34 +143,32 @@ def get_opencl_dim1(dim, step): def is_correct(x): sub = x - while sub%2 == 0: - sub = sub/2 - while sub%3 == 0: - sub = sub/3 - while sub%5 == 0: - sub = sub/5 + while sub % 2 == 0: + sub = sub / 2 + while sub % 3 == 0: + sub = sub / 3 + while sub % 5 == 0: + sub = sub / 5 return sub == 1 new_dim = dim while not is_correct(new_dim): new_dim += step return new_dim - + def binning(array, binsizes): """ This function does the binning of the array. The array is binned in each dimension by the corresponding binsizes elements. If binsizes list is shorter than the array dimensions, the remaining dimensions are not binned. The elements in a bucket are summed. - Parameters ---------- array : array the original array to be binned - + binsizes : list a list defining binning buckets for corresponding dimensions - Returns ------- array : array @@ -186,7 +176,7 @@ def binning(array, binsizes): """ data_dims = array.shape - # trim array + # trim array for ax in range(len(binsizes)): cut_slices = range(data_dims[ax] - data_dims[ax] % binsizes[ax], data_dims[ax]) array = np.delete(array, cut_slices, ax) @@ -199,7 +189,7 @@ def binning(array, binsizes): new_shape[ax] = binsizes[ax] new_shape.insert(ax, int(array.shape[ax] / binsizes[ax])) binned_array = np.reshape(binned_array, tuple(new_shape)) - binned_array = np.sum(binned_array, axis=ax+1) + binned_array = np.sum(binned_array, axis=ax + 1) new_shape = list(binned_array.shape) return binned_array @@ -213,32 +203,27 @@ def binning(array, binsizes): # print ('c',c) -def get_centered(arr, center_shift=None): +def get_centered(arr, center_shift): """ This function finds a greatest value in the array, and puts it in a center of a new array. If center_shift is not zeros, the array will be shifted accordingly. The shifted elements are rolled into the other end of array. - - Parameters ---------- arr : array the original array to be centered - center_shift : list a list defining shift of the center - Returns ------- array : array the centered array """ max_coordinates = list(np.unravel_index(np.argmax(arr), arr.shape)) - if center_shift is not None: - max_coordinates = np.add(max_coordinates, center_shift) + max_coordinates = np.add(max_coordinates, center_shift) shape = arr.shape centered = arr - for i in range (len(max_coordinates)): - centered = np.roll(centered, int(shape[i]/2)-max_coordinates[i], i) + for i in range(len(max_coordinates)): + centered = np.roll(centered, int(shape[i] / 2) - max_coordinates[i], i) return centered @@ -247,43 +232,37 @@ def get_centered_both(arr, support): """ This function finds a greatest value in the array, and puts it in a center of a new array. If center_shift is not zeros, the array will be shifted accordingly. The shifted elements are rolled into the other end of array. - - Parameters ---------- arr : array the original array to be centered - - center_shift : list - a list defining shift of the center - + support : array + the associated array shifted the same way centered array is Returns ------- - array : array + centered : array the centered array """ max_coordinates = list(np.unravel_index(np.argmax(arr), arr.shape)) shape = arr.shape centered = arr - for i in range (len(max_coordinates)): - centered = np.roll(centered, int(shape[i]/2)-max_coordinates[i], i) - support = np.roll(support, int(shape[i]/2)-max_coordinates[i], i) + centered_supp = support + for i in range(len(max_coordinates)): + centered = np.roll(centered, int(shape[i] / 2) - max_coordinates[i], i) + centered_supp = np.roll(centered_supp, int(shape[i] / 2) - max_coordinates[i], i) - return centered, support + return centered, centered_supp def get_zero_padded_centered(arr, new_shape): """ This function pads the array with zeros to the new shape with the array in the center. - Parameters ---------- arr : array the original array to be padded and centered - new_shape : tuple a list of new dimensions - Returns ------- array : array @@ -292,14 +271,14 @@ def get_zero_padded_centered(arr, new_shape): shape = arr.shape pad = [] c_vals = [] - for i in range (len(new_shape)): + for i in range(len(new_shape)): pad.append((0, new_shape[i] - shape[i])) c_vals.append((0.0, 0.0)) arr = np.lib.pad(arr, (pad), 'constant', constant_values=c_vals) centered = arr - for i in range (len(new_shape)): - centered = np.roll(centered, int((new_shape[i] - shape[i] + 1)/2), i) + for i in range(len(new_shape)): + centered = np.roll(centered, int((new_shape[i] - shape[i] + 1) / 2), i) return centered @@ -307,18 +286,14 @@ def get_zero_padded_centered(arr, new_shape): def adjust_dimensions(arr, pad): """ This function adds to or subtracts from each dimension of the array elements defined by pad. If the pad is positive, - the array is padded in this dimension. If the pad is negative, the array is cropped. + the array is padded in this dimension. If the pad is negative, the array is cropped. The dimensions of the new array are supported by the opencl library. - - Parameters ---------- arr : array the array to pad/crop - pad : list list of three pad values, for each dimension - Returns ------- array : array @@ -328,22 +303,22 @@ def adjust_dimensions(arr, pad): old_dims = arr.shape cropped = arr for i in range(len(old_dims)): - crop_front = max(0, -pad[2*i]) - crop_end = max(0, -pad[2*i+1]) - splitted = np.split(cropped, [crop_front, old_dims[i]-crop_end], axis=i) + crop_front = max(0, -pad[2 * i]) + crop_end = max(0, -pad[2 * i + 1]) + splitted = np.split(cropped, [crop_front, old_dims[i] - crop_end], axis=i) cropped = splitted[1] # logger.info('cutting from to ' + str(crop[0]) + ', ' + str(old_dims[0]-crop[1]) + ', ' + str(crop[2]) + ', ' \ # + str(old_dims[1]-crop[3]) + ', ' + str(crop[4]) + ', ' + str(old_dims[2]-crop[5])) dims = cropped.shape c_vals = [] new_pad = [] - for i in range (len(dims)): + for i in range(len(dims)): # find a good dimension and find padding - temp_dim = old_dims[i] + pad[2*i] + pad[2*i+1] + temp_dim = old_dims[i] + pad[2 * i] + pad[2 * i + 1] new_dim = get_good_dim(temp_dim) added = new_dim - temp_dim # if the pad is positive - pad_front = max(0, pad[2*i]) + int(added/2) + pad_front = max(0, pad[2 * i]) + int(added / 2) pad_end = new_dim - dims[i] - pad_front new_pad.append((pad_front, pad_end)) c_vals.append((0.0, 0.0)) @@ -356,6 +331,7 @@ def adjust_dimensions(arr, pad): return adjusted + # ar = np.zeros((81,256,256)) # pads = (5,-7,-20,-30,4,-20) # arr = adjust_dimensions(ar,pads) @@ -365,29 +341,29 @@ def crop_center(arr, new_size): size = arr.shape cropped = arr for i in range(len(size)): - crop_front = int((size[i]-new_size[i])/2) + crop_front = int((size[i] - new_size[i]) / 2) crop_end = crop_front + new_size[i] splitted = np.split(cropped, [crop_front, crop_end], axis=i) cropped = splitted[1] return cropped + # ar = np.zeros((81,256,256)) # new_size = (40, 200,100) # arr = crop_center(ar,new_size) # print (arr.shape) def get_norm(arr): - return sum(sum(sum(abs(arr)**2))) + return sum(sum(sum(abs(arr) ** 2))) def flip(m, axis): """ Copied from numpy 1.12.0. - """ if not hasattr(m, 'ndim'): - m = np.asarray(m) + m = np.asarray(m) indexer = [slice(None)] * m.ndim try: indexer[axis] = slice(None, None, -1) @@ -404,18 +380,18 @@ def gaussian(shape, sigmas, alpha=1): tile_shape = list(shape) tile_shape.pop(i) tile_shape.append(1) - trans_shape = list(range(len(shape)-1)) - trans_shape.insert(i, len(shape)-1) + trans_shape = list(range(len(shape) - 1)) + trans_shape.insert(i, len(shape) - 1) multiplier = - 0.5 * alpha / pow(sigmas[i], 2) - line = np.linspace(-(shape[i]-1)/2.0, (shape[i]-1)/2.0, shape[i]) + line = np.linspace(-(shape[i] - 1) / 2.0, (shape[i] - 1) / 2.0, shape[i]) gi = np.tile(line, tile_shape) gi = np.transpose(gi, tuple(trans_shape)) exponent = np.power(gi, 2) * multiplier gi = np.exp(exponent) grid = grid * gi - grid_total = np.sum (grid) + grid_total = np.sum(grid) return grid / grid_total @@ -424,7 +400,7 @@ def gauss_conv_fft(arr, sigmas): arr_f = np.fft.ifftshift(np.fft.fftn(np.fft.ifftshift(arr))) shape = list(arr.shape) for i in range(len(sigmas)): - sigmas[i] = shape[i]/2.0/np.pi/sigmas[i] + sigmas[i] = shape[i] / 2.0 / np.pi / sigmas[i] convag = arr_f * gaussian(shape, sigmas) convag = np.fft.ifftshift(np.fft.ifftn(np.fft.ifftshift(convag))) convag = convag.real @@ -435,7 +411,7 @@ def gauss_conv_fft(arr, sigmas): def shrink_wrap(arr, threshold, sigma, type='gauss'): - sigmas = [sigma]*len(arr.shape) + sigmas = [sigma] * len(arr.shape) if type == 'gauss': convag = gauss_conv_fft(abs(arr), sigmas) max_convag = np.amax(convag) @@ -455,7 +431,7 @@ def read_results(read_dir): support = np.load(supportfile) try: - cohfile = os.path.join(read_dir, 'coherence.npy') + cohfile = os.path.join(read_dir, 'coherence.npy') coh = np.load(cohfile) except: coh = None @@ -465,7 +441,7 @@ def read_results(read_dir): return image, support, coh -def save_results(image, support, coh, errs, save_dir): +def save_results(image, support, coh, errs, reciprocal, save_dir): if not os.path.exists(save_dir): os.makedirs(save_dir) @@ -478,15 +454,41 @@ def save_results(image, support, coh, errs, save_dir): if not coh is None: coh_file = os.path.join(save_dir, 'coherence') np.save(coh_file, coh) + reciprocal_file = os.path.join(save_dir, 'reciprocal') + np.save(reciprocal_file, reciprocal) + + +def save_multiple_results(samples, images, supports, cohs, errs, reciprocals, save_dir): + """ + This function saves results of multiple reconstructions to directory tree in save_dir. + Parameters + ---------- + samples : int + number of reconstruction sets results + images : list + list of numpy arrays containing reconstructed images + supports : list + list of numpy arrays containing support of reconstructed images + cohs : list + list of numpy arrays containing coherence of reconstructed images + save_dir : str + a directory to save the results + Returns + ------- + nothing + """ + for i in range(samples): + subdir = os.path.join(save_dir, str(i)) + save_results(images[i], supports[i], cohs[i], np.asarray(errs[i]), reciprocals[i], subdir) def sub_pixel_shift(arr, row_shift, col_shift, z_shift): # arr is 3D buf2ft = np.fft.fftn(arr) shape = arr.shape - Nr = np.fft.ifftshift(np.array(list(range(-int(np.floor(shape[0]/2)), shape[0]-int(np.floor(shape[0]/2)))))) - Nc = np.fft.ifftshift(np.array(list(range(-int(np.floor(shape[1]/2)), shape[1]-int(np.floor(shape[1]/2)))))) - Nz = np.fft.ifftshift(np.array(list(range(-int(np.floor(shape[2]/2)), shape[2]-int(np.floor(shape[2]/2)))))) + Nr = np.fft.ifftshift(np.array(list(range(-int(np.floor(shape[0] / 2)), shape[0] - int(np.floor(shape[0] / 2)))))) + Nc = np.fft.ifftshift(np.array(list(range(-int(np.floor(shape[1] / 2)), shape[1] - int(np.floor(shape[1] / 2)))))) + Nz = np.fft.ifftshift(np.array(list(range(-int(np.floor(shape[2] / 2)), shape[2] - int(np.floor(shape[2] / 2)))))) [Nc, Nr, Nz] = np.meshgrid(Nc, Nr, Nz) Greg = buf2ft * np.exp(1j * 2 * np.pi * (-row_shift * Nr / shape[0] - col_shift * Nc / shape[1] - z_shift * Nz / shape[2])) return np.fft.ifftn(Greg) @@ -496,4 +498,4 @@ def arr_property(arr): arr1 = abs(arr) print ('norm', np.sum(pow(abs(arr),2))) max_coordinates = list(np.unravel_index(np.argmax(arr1), arr.shape)) - print ('max coords, value', max_coordinates, arr[max_coordinates[0], max_coordinates[1],max_coordinates[2]]) + print ('max coords, value', max_coordinates, arr[max_coordinates[0], max_coordinates[1],max_coordinates[2]]) \ No newline at end of file From edace206c0bb4937f2fca1985980d4bd76bdf827 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Tue, 30 Apr 2019 17:39:56 -0500 Subject: [PATCH 140/336] resized reciprocal --- reccdi/src_py/controller/fast_module.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/reccdi/src_py/controller/fast_module.py b/reccdi/src_py/controller/fast_module.py index 63248cf..630aea6 100755 --- a/reccdi/src_py/controller/fast_module.py +++ b/reccdi/src_py/controller/fast_module.py @@ -158,6 +158,9 @@ def fast_module_reconstruction(proc, device, conf, data, coh_dims, image=None, s reciprocal_r = copy.deepcopy(np.asarray(fast_module.get_reciprocal_r())) reciprocal_i = copy.deepcopy(np.asarray(fast_module.get_reciprocal_i())) reciprocal = reciprocal_r + 1j*reciprocal_i + reciprocal = np.reshape(reciprocal, dims) + reciprocal = np.swapaxes(reciprocal, 2, 0) + reciprocal = np.swapaxes(reciprocal, 1, 0) fast_module.cleanup() From f0cf9671625c4bd68c23ca9332805058cc8ec150 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Thu, 2 May 2019 11:17:43 -0500 Subject: [PATCH 141/336] Shifted reciprocal to the center --- reccdi/src_py/controller/fast_module.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/reccdi/src_py/controller/fast_module.py b/reccdi/src_py/controller/fast_module.py index 630aea6..1ef6a56 100755 --- a/reccdi/src_py/controller/fast_module.py +++ b/reccdi/src_py/controller/fast_module.py @@ -89,7 +89,7 @@ def fast_module_reconstruction(proc, device, conf, data, coh_dims, image=None, s fast_module = bridge_cuda.PyBridge() # shift data - data=sf.fftshift(data) + data = sf.fftshift(data) data = np.swapaxes(data,1,2) dims = data.shape @@ -161,6 +161,7 @@ def fast_module_reconstruction(proc, device, conf, data, coh_dims, image=None, s reciprocal = np.reshape(reciprocal, dims) reciprocal = np.swapaxes(reciprocal, 2, 0) reciprocal = np.swapaxes(reciprocal, 1, 0) + reciprocal = sf.ifftshift(reciprocal) fast_module.cleanup() From 4e8b2466f6f309077ca1624730fee79e6fb2e78a Mon Sep 17 00:00:00 2001 From: bfrosik Date: Thu, 2 May 2019 13:29:34 -0500 Subject: [PATCH 142/336] fixed typo in average --- bin/cdi_window.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/cdi_window.py b/bin/cdi_window.py index 4f2bf15..15bbd9f 100644 --- a/bin/cdi_window.py +++ b/bin/cdi_window.py @@ -1112,7 +1112,7 @@ def rec_default(self): def add_feat_conf(self, conf_map): - conf_map['avarage_trigger'] = str(self.average_triggers.text()).replace('\n','') + conf_map['average_trigger'] = str(self.average_triggers.text()).replace('\n','') From e807388ff11430b612979b4922d39ed3c46a5529 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Thu, 2 May 2019 15:26:36 -0500 Subject: [PATCH 143/336] changed coordinates of reciprical --- reccdi/src_py/controller/fast_module.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/reccdi/src_py/controller/fast_module.py b/reccdi/src_py/controller/fast_module.py index 1ef6a56..4cbb11a 100755 --- a/reccdi/src_py/controller/fast_module.py +++ b/reccdi/src_py/controller/fast_module.py @@ -159,8 +159,7 @@ def fast_module_reconstruction(proc, device, conf, data, coh_dims, image=None, s reciprocal_i = copy.deepcopy(np.asarray(fast_module.get_reciprocal_i())) reciprocal = reciprocal_r + 1j*reciprocal_i reciprocal = np.reshape(reciprocal, dims) - reciprocal = np.swapaxes(reciprocal, 2, 0) - reciprocal = np.swapaxes(reciprocal, 1, 0) + reciprocal = np.swapaxes(reciprocal, 2, 1) reciprocal = sf.ifftshift(reciprocal) fast_module.cleanup() From d70988310b20878a4b6e2e1b4362fc7d3f2604ea Mon Sep 17 00:00:00 2001 From: bfrosik Date: Fri, 3 May 2019 17:43:28 -0500 Subject: [PATCH 144/336] fixed problem with saving wrong config file --- reccdi/src_py/run_scripts/run_disp.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reccdi/src_py/run_scripts/run_disp.py b/reccdi/src_py/run_scripts/run_disp.py index 362169b..40f8546 100755 --- a/reccdi/src_py/run_scripts/run_disp.py +++ b/reccdi/src_py/run_scripts/run_disp.py @@ -93,7 +93,7 @@ def to_vtk(conf_info): if os.path.isdir(subdir): save_vtk(subdir, conf) - last = os.path.join('conf', 'last', 'config_data') + last = os.path.join('conf', 'last', 'config_disp') shutil.copy(conf, last) From 4f8260df57dd23da219491da7891bb30dd875a73 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Tue, 14 May 2019 14:51:46 -0500 Subject: [PATCH 145/336] Tested GA, changed parsl configuration --- bin/cdi_window.py | 93 +++++- conf/last/config | 2 - conf/last/config_disp | 8 +- conf/last/config_rec | 16 +- config_rec | 39 ++- reccdi/include/parameters.hpp | 7 +- reccdi/src_cpp/parameters.cpp | 18 +- reccdi/src_cpp/worker.cpp | 25 +- reccdi/src_py/controller/gen_rec.py | 266 ++++++++++-------- .../src_py/controller/reconstruction_multi.py | 13 +- reccdi/src_py/run_scripts/run_disp.py | 4 + 11 files changed, 327 insertions(+), 164 deletions(-) diff --git a/bin/cdi_window.py b/bin/cdi_window.py index 15bbd9f..ab28c9a 100644 --- a/bin/cdi_window.py +++ b/bin/cdi_window.py @@ -731,7 +731,10 @@ def reconstruction(self): def display(self): - if os.path.isfile(os.path.join(self.main_win.experiment_dir, 'results', 'image.npy')): + res_dir = os.path.join(self.main_win.experiment_dir, 'results') + if os.path.isfile(os.path.join(res_dir, 'image.npy')) or \ + os.path.isfile(os.path.join(res_dir, '0', 'image.npy')) or \ + os.path.isfile(os.path.join(res_dir, 'g_0', '0', 'image.npy')): conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') conf_disp = os.path.join(conf_dir, 'config_disp') if not os.path.isfile(conf_disp): @@ -790,6 +793,8 @@ def stackUI(self, item, feats): def toggle(self, layout, item, feats): if self.active.isChecked(): self.fill_active(layout) + # experiment_dir = self. + # self.init_config(conf_map) self.default_button = QPushButton('set to defaults', feats) layout.addWidget(self.default_button) @@ -829,7 +834,62 @@ def __init__(self): # override setting the active to set it False def stackUI(self, item, feats): super(GA, self).stackUI(item, feats) - self.active.setChecked(False) + # self.active.setChecked(False) + + + def init_config(self, conf_map): + try: + self.generations.setText(str(conf_map.generations).replace(" ", "")) + except AttributeError: + pass + try: + self.lr_generations.setText(str(conf_map.ga_low_resolution_generations).replace(" ", "")) + except AttributeError: + pass + try: + self.metrics.setText(str(conf_map.ga_metrics).replace(" ", "")) + except AttributeError: + pass + try: + self.breed_modes.setText(str(conf_map.ga_breed_modes).replace(" ", "")) + except AttributeError: + pass + try: + self.removes.setText(str(conf_map.ga_removes).replace(" ", "")) + except AttributeError: + pass + try: + self.ga_support_thresholds.setText(str(conf_map.ga_support_thresholds).replace(" ", "")) + except AttributeError: + pass + try: + self.ga_support_sigmas.setText(str(conf_map.ga_support_sigmas).replace(" ", "")) + except AttributeError: + pass + try: + self.lr_sigma_alg.setText(str(conf_map.ga_low_resolution_sigma_alg).replace(" ", "")) + except AttributeError: + pass + try: + self.lr_sigmas.setText(str(conf_map.ga_low_resolution_sigmas).replace(" ", "")) + except AttributeError: + pass + try: + self.lr_sigma_min.setText(str(conf_map.ga_low_resolution_sigma_min).replace(" ", "")) + except AttributeError: + pass + try: + self.lr_sigma_max.setText(str(conf_map.ga_low_resolution_sigma_max).replace(" ", "")) + except AttributeError: + pass + try: + self.lr_scale_power.setText(str(conf_map.ga_low_resolution_scale_power).replace(" ", "")) + except AttributeError: + pass + try: + self.lr_algorithm.setText(str(conf_map.ga_low_resolution_alg).replace(" ", "")) + except AttributeError: + pass def fill_active(self, layout): @@ -837,6 +897,16 @@ def fill_active(self, layout): layout.addRow("generations", self.generations) self.lr_generations = QLineEdit() layout.addRow("low resolution generations", self.lr_generations) + self.metrics = QLineEdit() + layout.addRow("metrics", self.metrics) + self.breed_modes = QLineEdit() + layout.addRow("breed modes", self.breed_modes) + self.removes = QLineEdit() + layout.addRow("worst removes", self.removes) + self.ga_support_thresholds = QLineEdit() + layout.addRow("support thresholds", self.ga_support_thresholds) + self.ga_support_sigmas = QLineEdit() + layout.addRow("support sigmas", self.ga_support_sigmas) self.lr_sigma_alg = QLineEdit() layout.addRow("low resolution sigma algorithm", self.lr_sigma_alg) self.lr_sigmas = QLineEdit() @@ -853,13 +923,18 @@ def fill_active(self, layout): def add_feat_conf(self, conf_map): conf_map['generations'] = str(self.generations.text()) - conf_map['low_resolution_generations'] = str(self.lr_generations.text()) - conf_map['low_resolution_sigma_alg'] = str(self.lr_sigma_alg.text()) - conf_map['low_resolution_sigmas'] = str(self.lr_sigmas.text()) - conf_map['low_resolution_sigma_min'] = str(self.lr_sigma_min.text()) - conf_map['low_resolution_sigma_max'] = str(self.lr_sigma_max.text()) - conf_map['low_resolution_scale_power'] = str(self.lr_scale_power.text()) - conf_map['low_resolution_alg'] = str(self.lr_algorithm.text()) + conf_map['ga_low_resolution_generations'] = str(self.lr_generations.text()) + conf_map['ga_metrics'] = str(self.metrics.text()).replace('\n','') + conf_map['ga_breed_modes'] = str(self.breed_modes.text()).replace('\n','') + conf_map['ga_removes'] = str(self.removes.text()).replace('\n','') + conf_map['ga_support_thresholds'] = str(self.ga_support_thresholds.text()).replace('\n','') + conf_map['ga_support_sigmas'] = str(self.ga_support_sigmas.text()).replace('\n','') + conf_map['ga_low_resolution_sigma_alg'] = '"' + str(self.lr_sigma_alg.text()) + '"' + conf_map['ga_low_resolution_sigmas'] = str(self.lr_sigmas.text()) + conf_map['ga_low_resolution_sigma_min'] = str(self.lr_sigma_min.text()) + conf_map['ga_low_resolution_sigma_max'] = str(self.lr_sigma_max.text()) + conf_map['ga_low_resolution_scale_power'] = str(self.lr_scale_power.text()) + conf_map['ga_low_resolution_alg'] = '"' + str(self.lr_algorithm.text()) + '"' class low_resolution(Feature): diff --git a/conf/last/config b/conf/last/config index 4e45053..d90553d 100644 --- a/conf/last/config +++ b/conf/last/config @@ -1,6 +1,4 @@ working_dir = "/local/bfrosik/cdi/test" -min_files = 81 -exclude_scans = (82,83,85) data_dir = "/net/s34data/export/34idc-data/2019/Staff19-1/ADStaff19-1a" specfile = "/net/s34data/export/34idc-data/2019/Staff19-1/Staff19-1a.spec" darkfile = "/net/s34data/export/34idc-work/2019/dark.tif" diff --git a/conf/last/config_disp b/conf/last/config_disp index c944828..78ce762 100644 --- a/conf/last/config_disp +++ b/conf/last/config_disp @@ -1,11 +1,15 @@ + lamda = 0.13775555555555555 delta = 33.561 gamma = 8.8126 arm = 399.775 dth = 0.01 -pixel = [55.0e-6, 55.0e-6] +pixel = (55.0e-6, 55.0e-6) + + + -crop = (.5,.2,.5) +crop = (0.4,0.4,0.4) binning = (1,1,1) diff --git a/conf/last/config_rec b/conf/last/config_rec index dd5ae80..68bab69 100644 --- a/conf/last/config_rec +++ b/conf/last/config_rec @@ -1,7 +1,17 @@ +samples = 2 garbage_trigger = (1,1) -algorithm_sequence = ((1,("ER",20),("HIO",180)),(1,("ER",22))) +algorithm_sequence = ((1,("ER",30))) beta = 0.9 -resolution_trigger = (0,1,310) +generations = 2 +ga_low_resolution_generations = 0 +ga_metrics = ("chi") +ga_breed_modes = ("sqrt_ab","sqrt_ab") +ga_removes = (0) +ga_support_thresholds = (0.1) +ga_support_sigmas = (1.0) +ga_low_resolution_sigma_alg = "" +ga_low_resolution_alg = "" +resolution_trigger = (0,1,15) iter_res_sigma_range = (1.0) iter_res_det_range = (0.7) amp_support_trigger = (0,1) @@ -11,8 +21,10 @@ support_sigma = 1.0 support_area = (0.5,0.5,0.5) phase_min = -1.57 phase_max = 1.57 +pcdi_trigger = (25,30) partial_coherence_type = "LUCY" partial_coherence_iteration_num = 20 partial_coherence_normalize = True partial_coherence_roi = (32,32,16) twin_trigger = (2) +average_trigger = (-10,1) diff --git a/config_rec b/config_rec index 79fbdf9..9c70b4c 100644 --- a/config_rec +++ b/config_rec @@ -42,10 +42,35 @@ garbage_trigger = (10,.5) // GENERATIONS generations = 1 // number of generations -low_resolution_generations = 0 +ga_low_resolution_generations = 0 // number of generations low resolution is applied to, starting from first gen -low_resolution_sigma_alg = "SIG_SPACE_LINEAR" +ga_metrics = ("chi") + // defines which metric should be used to rank the reconstruction results (samples) + // supported: 'chi', 'sharpness', 'summed_phase', 'area', 'TV' + +ga_breed_modes = ("sqrt_ab") + // defines which breeding mode to use to populate new generation. If "none" + // there is no breeding + // supported: 'sqrt_ab', 'max_all', 'Dhalf', 'Dhalf-best', 'dsqrt', 'pixel_switch', + // 'b_pa', '2ab_a_b', '2a-b_pa', 'sqrt_ab_pa', 'sqrt_ab_pa_recip', 'sqrt_ab_recip', + // 'max_ab', 'max_ab_pa', 'min_ab_pa', 'avg_ab', 'avg_ab_pa',= 'sqrt_abg', + // 'sqrt_abg_pa', 'max_abg','max_abg_pa', 'avg_abg', 'avg_abg_pa', 'avg_sqrt' + +ga_removes = (0) + // defines how many worst samples to remove in breeding phase for each generation + // defaults to 0 if no entry for generation. + +ga_support_thresholds = (.1) + // the support is recalculated with this threshold after breeding phase + // defaults to support threshold if no entry for generation. + +ga_support_sigmas = (1.0) + // the support is recalculated with this sigma after breeding phase + // defaults to support sigma if no entry for generation. + + +ga_low_resolution_sigma_alg = "SIG_SPACE_LINEAR" // defines how to calculate sigmas based on generation. Supported: // SIG_SPACE_LINEAR - sigmas are starting from low_resolution_sigma_max, // linearly decreasing for each generation, reaching low_resolution_sigma @@ -54,21 +79,21 @@ low_resolution_sigma_alg = "SIG_SPACE_LINEAR" // to calculate sigmas for generations // SIG_ASSIGNED - sigmas will be read from low_resolution_sigmas -low_resolution_sigmas = (1.0) +ga_low_resolution_sigmas = (1.0) // list of sigmas that will be used by subsequent generations if the // low_resolution_sigma_alg is set to SIG_ASSIGNED // the length must be equal low_resolution_generations -low_resolution_sigma_min = 0.1 +ga_low_resolution_sigma_min = 0.1 // initial sigma -low_resolution_sigma_max = 2.0 +ga_low_resolution_sigma_max = 2.0 // max support sigma value -low_resolution_scale_power = 1 +ga_low_resolution_scale_power = 1 // how the sigma scales with generation (1 - linear, 2 - quad etc) -low_resolution_alg = "GAUSS" +ga_low_resolution_alg = "GAUSS" // algorithm to use to apply resolution. Supported algorithms: // GAUSS diff --git a/reccdi/include/parameters.hpp b/reccdi/include/parameters.hpp index 73872ab..2e35b88 100644 --- a/reccdi/include/parameters.hpp +++ b/reccdi/include/parameters.hpp @@ -35,6 +35,7 @@ class Params //partial coherence //PartialCoherence *partial_coherence = NULL; + bool is_pcdi; int pcdi_alg; std::vector pcdi_roi; bool pcdi_normalize; @@ -44,7 +45,9 @@ class Params int number_iterations; bool plot_errors; - + + bool is_resolution; + int low_res_iterations; float iter_res_sigma_first; @@ -80,11 +83,13 @@ class Params d_type GetPhaseMin(); d_type GetPhaseMax(); + bool IsPcdi(); int GetPcdiAlgorithm(); std::vector GetPcdiRoi(); bool GetPcdiNormalize(); int GetPcdiIterations(); + bool IsResolution(); int GetLowResolutionIter(); float GetIterResSigmaFirst(); float GetIterResSigmaLast(); diff --git a/reccdi/src_cpp/parameters.cpp b/reccdi/src_cpp/parameters.cpp index 45265d9..3ddfc74 100644 --- a/reccdi/src_cpp/parameters.cpp +++ b/reccdi/src_cpp/parameters.cpp @@ -28,12 +28,14 @@ Params::Params(const char* config_file, std::vector data_dim, bool first) support_alg = -1; phase_min = -atan(1)*2.0; phase_max = atan(1)*2.0; + is_pcdi = false; pcdi_alg = 0; pcdi_roi.clear(); pcdi_normalize = false; pcdi_iter = 20; number_iterations = 0; plot_errors = false; + is_resolution = false; low_res_iterations = 0; iter_res_det_first = 1; @@ -92,7 +94,6 @@ Params::Params(const char* config_file, std::vector data_dim, bool first) // process triggers // find which triggers are configured, add the index of the flow_seq item to used_flow_seq vwctor if this item // is used - bool is_pcdi = false; for (int i = 0; i < flow_seq_len; i++) { char *flow_item = flow_def[i].item_name; @@ -144,10 +145,6 @@ Params::Params(const char* config_file, std::vector data_dim, bool first) } } } -// printf("used triggers \n"); -// for (int i = 0; i< used_flow_seq.size(); i++) -// { printf(" %i", used_flow_seq[i]);} -// printf("is pcdi %i\n",is_pcdi); // parse triggers and flow items into flow array; 0 if not executed, 1 if executed int used_flow_seq_len = used_flow_seq.size(); @@ -407,6 +404,7 @@ Params::Params(const char* config_file, std::vector data_dim, bool first) if ((first) && root.exists("resolution_trigger")) { + is_resolution = true; const Setting &tmp = root["resolution_trigger"]; try { @@ -537,6 +535,11 @@ d_type Params::GetPhaseMax() return phase_max; } +bool Params::IsPcdi() +{ + return is_pcdi; +} + int Params::GetPcdiAlgorithm() { return pcdi_alg; @@ -567,6 +570,11 @@ bool Params::IsPlotErrors() return plot_errors; } +bool Params::IsResolution() +{ + return is_resolution; +} + int Params::GetLowResolutionIter() { return low_res_iterations; diff --git a/reccdi/src_cpp/worker.cpp b/reccdi/src_cpp/worker.cpp index 0ff1e49..3115ee1 100644 --- a/reccdi/src_cpp/worker.cpp +++ b/reccdi/src_cpp/worker.cpp @@ -40,7 +40,7 @@ Reconstruction::Reconstruction(af::array image_data, af::array guess, Params* pa state = new State(params); support = new Support(data.dims(), params, support_array); - if (params->GetPcdiAlgorithm() > 0) + if (params->IsPcdi()) { partialCoherence = new PartialCoherence(params, coherence_array); } @@ -48,15 +48,18 @@ Reconstruction::Reconstruction(af::array image_data, af::array guess, Params* pa { partialCoherence = NULL; } - if (params->GetLowResolutionIter() >0) + if (params->IsResolution()) { resolution = new Resolution(params); } + else + { + resolution = NULL; + } } Reconstruction::~Reconstruction() { - delete params; delete state; delete support; if (partialCoherence != NULL) @@ -67,8 +70,17 @@ Reconstruction::~Reconstruction() { delete resolution; } - data = af::array(); - iter_data = af::array(); + delete params; + + if (&data == &iter_data) + { + data = af::array(); + } + else + { + data = af::array(); + iter_data = af::array(); + } ds_image = af::array(); ds_image_raw = af::array(); rs_amplitudes = af::array(); @@ -77,13 +89,10 @@ Reconstruction::~Reconstruction() support_vector.clear(); coherence_vector.clear(); iter_flow.clear(); - } void Reconstruction::Init() { -printf("in init\n"); - std::map flow_ptr_map; flow_ptr_map["NextIter"] = &Reconstruction::NextIter; flow_ptr_map["ResolutionTrigger"] = &Reconstruction::ResolutionTrigger; diff --git a/reccdi/src_py/controller/gen_rec.py b/reccdi/src_py/controller/gen_rec.py index 2a3061b..36eaaad 100644 --- a/reccdi/src_py/controller/gen_rec.py +++ b/reccdi/src_py/controller/gen_rec.py @@ -31,67 +31,95 @@ class Generation: This class holds fields relevant to generations according to configuration. """ def __init__(self, config_map): + self.current_gen = 0 try: self.generations = config_map.generations except AttributeError: self.generations = 1 try: - self.low_resolution_generations = config_map.low_resolution_generations + self.low_resolution_generations = config_map.ga_low_resolution_generations except AttributeError: self.low_resolution_generations = 0 try: - self.metric = config_map.metric + self.metrics = tuple(config_map.ga_metrics) + print ('type', type(self.metrics)) + if len(self.metrics) < self.generations: + self.metrics = self.metrics + ('chi',) * (self.generations - len(self.metrics)) except AttributeError: - self.metric = 'chi' + self.metrics = ('chi',) * self.generations try: - self.is_cross_breed = config_map.is_cross_breed + self.worst_remove_no = tuple(config_map.ga_removes) + if len(self.worst_remove_no) < self.generations: + self.worst_remove_no = self.worst_remove_no + (0,) * (self.generations - len(self.worst_remove_no)) except AttributeError: - self.is_cross_breed = True + self.worst_remove_no = None - if self.is_cross_breed: - self.prev_two_best = [None, None] # keep two best images from previous generation + try: + self.ga_support_thresholds = tuple(config_map.ga_support_thresholds) + if len(self.ga_support_thresholds) < self.generations: + try: + support_threshold = config_map.support_threshold + except: + support_threshold = .1 + self.ga_support_thresholds = self.ga_support_thresholds + (support_threshold,) * (self.generations - len(self.ga_support_thresholds)) + except AttributeError: + try: + support_threshold = config_map.support_threshold + except: + support_threshold = .1 + self.ga_support_thresholds = (support_threshold,) * (self.generations) try: - self.worst_remove_no = config_map.worst_remove_no + self.ga_support_sigmas = tuple(config_map.ga_support_sigmas) + if len(self.ga_support_sigmas) < self.generations: + try: + support_sigma = config_map.support_sigma + except: + support_sigma = 1.0 + self.ga_support_sigmas = self.ga_support_sigmas + (support_sigma,) * (self.generations - len(self.ga_support_sigmas)) except AttributeError: - self.worst_remove_no = None + try: + support_sigma = config_map.support_sigma + except: + support_sigma = 1.0 + self.ga_support_sigmas = (support_sigma,) * (self.generations) try: - self.breed_modes = config_map.breed_modes + self.breed_modes = tuple(config_map.ga_breed_modes) + if len(self.breed_modes) < self.generations: + self.breed_modes = self.breed_modes + ('none',) * (self.generations - len(self.breed_modes)) except AttributeError: - self.breed_modes = [] - for i in range(len(self.breed_modes), self.generations): - self.breed_modes.append('none') + self.breed_modes = ('none',) * self.generations if self.low_resolution_generations > 0: try: - low_resolution_sigma_alg = config_map.low_resolution_sigma_alg + low_resolution_sigma_alg = config_map.ga_low_resolution_sigma_alg except AttributeError: low_resolution_sigma_alg = 'SIG_SPACE_LINEAR' if low_resolution_sigma_alg == 'SIG_ASSIGNED': try: - self.sigmas = config_map.low_resolution_sigmas + self.sigmas = config_map.ga_low_resolution_sigmas except: print ('low resolution sigmas config parameter is missing, turning off low resolution.') self.low_resolution_generations = 0 elif low_resolution_sigma_alg == 'SIG_SCALE_POWER': try: - low_resolution_sigma_min = config_map.low_resolution_sigma_min + low_resolution_sigma_min = config_map.ga_low_resolution_sigma_min except: low_resolution_sigma_min = .1 try: - low_resolution_sigma_max = config_map.low_resolution_sigma_max + low_resolution_sigma_max = config_map.ga_low_resolution_sigma_max except: low_resolution_sigma_max = 2.0 try: - low_resolution_scale_power = config_map.low_resolution_scale_power + low_resolution_scale_power = config_map.ga_low_resolution_scale_power except: low_resolution_scale_power = 1 try: - support_sigma = config_map.support_sigma + support_sigma = config_map.ga_support_sigma except: support_sigma = 1.0 @@ -117,40 +145,43 @@ def __init__(self, config_map): except AttributeError: self.low_resolution_alg = 'GAUSS' + def next_gen(self): + self.current_gen += 1 - def get_data(self, generation, data): - gmask = self.get_gmask(generation, data.shape) - return data * gmask + def get_data(self, data): + if self.current_gen >= self.low_resolution_generations: + return data + else: + gmask = self.get_gmask(data.shape) + return data * gmask - def get_gmask(self, generation, shape): + def get_gmask(self, shape): if self.low_resolution_alg == 'GAUSS': - if self.sigmas[generation] < 1.0: - ut.gaussian(shape, self.sigmas[generation]) + if self.sigmas[self.current_gen] < 1.0: + ut.gaussian(shape, self.sigmas[self.current_gen]) else: return np.ones(shape) - def order(self, images_errs): + def rank(self, images, errs): rank_property = [] - reverse = False - images = images_errs[0] - errs = images_errs[1] + samples = len(images) + metric = self.metrics[self.current_gen] + for i in range (samples): image = images[i] - if self.metric == 'chi': - rank_property.append(errs[i]) - elif self.metric == 'sharpness': + if metric == 'chi': + rank_property.append(errs[i][-1]) + elif metric == 'sharpness': rank_property.append(sum(abs(image)^4)) - elif self.metric == 'summed_phase': + elif metric == 'summed_phase': rank_property.append(sum(gut.sum_phase_tight_support(image))) - reverse = True - elif self.metric == 'area': + elif metric == 'area': support = gut.shrink_wrap(image, .2, .5) rank_property.append(sum(support)) - reverse = True - elif self.metric == 'TV': + elif metric == 'TV': gradients = np.gradient(image) TV = np.zeros(image.shape) for gr in gradients: @@ -164,17 +195,29 @@ def order(self, images_errs): # for most of the metric types the minimum of the metric is best, but for # 'summed_phase' and 'area' it is oposite, so reversing the order ranks = np.argsort(rank_property) - if reverse: + if metric == 'summed_phase' or metric == 'area': ranks = ranks.reverse() + return ranks - # order the initial array according to rank - ordered = [] - for i in range(samples): - ordered.append(images_errs[ranks[i]]) - return ordered + def order(self, images, supports, cohs, errs, recips): + ranks = self.rank(images, errs) + ordered_images = [] + ordered_supports = [] + ordered_cohs = [] + ordered_errs = [] + ordered_recips = [] + for i in range(len(ranks)): + ordered_images.append(images[ranks[i]]) + ordered_supports.append(supports[ranks[i]]) + ordered_cohs.append(cohs[ranks[i]]) + ordered_errs.append(errs[ranks[i]]) + ordered_recips.append(recips[ranks[i]]) - def breed(self, images, errs, gen, threshold, sigma): + return ordered_images, ordered_supports, ordered_cohs, ordered_errs, ordered_recips + + + def breed(self, images): """ This function ranks the multiple reconstruction. It breeds next generation by combining the reconstructed images, centered @@ -184,14 +227,11 @@ def breed(self, images, errs, gen, threshold, sigma): Parameters ---------- images : list - list of images arrays + ordered (best to worst) list of images arrays supports : list list of supports arrays - errs : list - list of errors (now each element is another list by iterations, but should we take the last error?) - Returns ------- child_images : list @@ -201,25 +241,17 @@ def breed(self, images, errs, gen, threshold, sigma): child_cohs : list list of child coherence, set to None """ - img_errs = zip(images, errs) - samples = len(img_errs) - ordered = self.order(img_errs) - if self.worst_remove_no is not None: - samples = samples - self.worst_remove_no[gen] - ordered = ordered[0 : samples] - - # if configured to cross breed, include two best samples from previous generation and order again - if self.is_cross_breed: - if len(self.prev_two_best) > 0: - ordered.append(self.prev_two_best) - ordered = self.order(ordered, samples + 2) - self.prev_two_best[0] = ordered[0] - self.prev_two_best[1] = ordered[1] - - [ims, ers] = list(*ordered) - dims = len(ims[0].shape) + sigma = self.ga_support_sigmas[self.current_gen] + threshold = self.ga_support_thresholds[self.current_gen] + breed_mode = self.breed_modes[self.current_gen] + if breed_mode == 'none': + return images, None + samples = len(images) + if self.worst_remove_no[self.current_gen] is not None: + samples = samples - self.worst_remove_no[self.current_gen] - breed_mode = self.breed_modes[gen] + ims = images[0 : samples] + dims = len(ims[0].shape) ims_arr = np.stack(ims) alpha = ims[0] @@ -334,7 +366,7 @@ def breed(self, images, errs, gen, threshold, sigma): beta = amp^3 * np.exp(1j *ph_beta) child_images.append(beta) - child_supports.append(gut.shrink_wrap(beta, threshold, sigma)) + child_supports.append(ut.shrink_wrap(beta, threshold, sigma)) return child_images, child_supports @@ -365,49 +397,18 @@ def reconstruction(generations, proc, data, conf_info, config_map): ------- nothing """ - - try: - low_resolution_generations = config_map.low_resolution_generations - except: - low_resolution_generations = 0 - - try: - support_threshold = config_map.support_threshold - except: - support_threshold = .1 - - try: - support_sigma = config_map.support_sigma - except: - support_sigma = 1.0 - try: samples = config_map.samples except: samples = 1 - # init starting values - # if multiple samples configured (typical for genetic algorithm), use "reconstruction_multi" module - if samples > 1: - images = [] - supports = [] - cohs = [] - for _ in range(samples): - images.append(None) - supports.append(None) - cohs.append(None) - rec = multi - # load parls configuration - rec.load_config(samples) - else: - images = None - supports = None - rec = single - gen_obj = Generation(config_map) if os.path.isdir(conf_info): - experiment_dir = conf_info + if conf_info.endswith('conf'): + experiment_dir = conf_info[0:len(conf_info)-5] + else: + experiment_dir = conf_info conf = os.path.join(experiment_dir, 'conf', 'config_rec') save_dir = os.path.join(experiment_dir, 'results') else: @@ -423,24 +424,47 @@ def reconstruction(generations, proc, data, conf_info, config_map): else: save_dir = os.path.join(os.getcwd(), 'results') # save in current dir - if low_resolution_generations > 0: - for g in range(low_resolution_generations): - gen_data = gen_obj.get_data(g, data) - images, supports, cohs, errs, recips = rec.rec(proc, gen_data, conf, config_map, images, supports) + # init starting values + # if multiple samples configured (typical for genetic algorithm), use "reconstruction_multi" module + if samples > 1: + images = [] + supports = [] + cohs = [] + for _ in range(samples): + images.append(None) + supports.append(None) + cohs.append(None) + rec = multi + # load parls configuration + rec.load_config(samples) + for g in range(generations): + gen_data = gen_obj.get_data(data) + images, supports, cohs, errs, recips = rec.rec(proc, gen_data, conf, config_map, images, supports, cohs) + images, supports, cohs, errs, recips = gen_obj.order(images, supports, cohs, errs, recips) + # save the generation results + gen_save_dir = os.path.join(save_dir, 'g_' + str(g)) + ut.save_multiple_results(len(images), images, supports, cohs, errs, recips, gen_save_dir) + + if g < generations - 1 and len(images) > 1: + images, shrink_supports = gen_obj.breed(images) + if shrink_supports is not None: + supports = shrink_supports + gen_obj.next_gen() + else: + image = None + support = None + coh = None + rec = single + + for g in range(generations): + gen_data = gen_obj.get_data(data) + image, support, coh, err, recip = rec.rec(proc, gen_data, conf, config_map, image, support, coh) + print ('gen rec, got results') # save the generation results - save_dir = os.path.join(save_dir, 'g_' + str(g)) - ut.save_mult_results(len(images), images, supports, cohs, errs, recips, save_dir) - if len(images) > 1 and gen_obj.breed_modes[g] is not 'none': - images, supports = gen_obj.breed(images, errs, g, support_threshold, support_sigma) - for g in range(low_resolution_generations, generations): - images, supports, cohs, errs, recips = rec.rec(proc, data, conf, config_map, images, supports) - # save the generation results - save_dir = os.path.join(save_dir, 'g_' + str(g)) - ut.save_mult_results(len(images), images, supports, cohs, errs, recips, save_dir) - if g < (generations-1) and len(images) > 1 and gen_obj.breed_modes[g] is not 'none': - images, supports= gen_obj.breed(images, errs, g, support_threshold, support_sigma) - else: - img_errs = zip(images, errs) - ordered = gen_obj.order(img_errs) - [ims, ers] = list(*ordered) + gen_save_dir = os.path.join(save_dir, 'g_' + str(g)) + ut.save_results(image, support, coh, err, recip, gen_save_dir) + gen_obj.next_gen() + print ('done gen') + + diff --git a/reccdi/src_py/controller/reconstruction_multi.py b/reccdi/src_py/controller/reconstruction_multi.py index ffffc6c..45eb29e 100644 --- a/reccdi/src_py/controller/reconstruction_multi.py +++ b/reccdi/src_py/controller/reconstruction_multi.py @@ -23,7 +23,6 @@ import reccdi.src_py.controller.fast_module as calc from parsl.app.app import python_app import time -import numpy as np __author__ = "Barbara Frosik" @@ -36,13 +35,13 @@ def load_config(samples): import parsl from parsl.config import Config - from parsl.executors.ipp import IPyParallelExecutor - from libsubmit.providers import LocalProvider - from libsubmit.channels import LocalChannel + from parsl.executors import HighThroughputExecutor + from parsl.providers import LocalProvider + from parsl.channels import LocalChannel local_config = Config( executors=[ - IPyParallelExecutor( - label="local_ipp", + HighThroughputExecutor( + label="local_htex", provider=LocalProvider( channel=LocalChannel(), init_blocks=1, @@ -326,7 +325,7 @@ def reconstruction(samples, proc, data, conf_info, config_map): if experiment_dir is not None: save_dir = os.path.join(experiment_dir, save_dir) - ut.save_mult_results(samples, images, supports, cohs, errs, recips, save_dir) + ut.save_multiple_results(samples, images, supports, cohs, errs, recips, save_dir) print('done') diff --git a/reccdi/src_py/run_scripts/run_disp.py b/reccdi/src_py/run_scripts/run_disp.py index 40f8546..ca5a83b 100755 --- a/reccdi/src_py/run_scripts/run_disp.py +++ b/reccdi/src_py/run_scripts/run_disp.py @@ -92,6 +92,10 @@ def to_vtk(conf_info): subdir = os.path.join(save_dir, sub) if os.path.isdir(subdir): save_vtk(subdir, conf) + for sub_sub in os.listdir(subdir): + sub_sub = os.path.join(subdir, sub_sub) + if os.path.isdir(sub_sub): + save_vtk(sub_sub, conf) last = os.path.join('conf', 'last', 'config_disp') shutil.copy(conf, last) From cd462f3823bd489977c5805315d7f993b0bc232b Mon Sep 17 00:00:00 2001 From: bfrosik Date: Thu, 16 May 2019 16:02:18 -0500 Subject: [PATCH 146/336] Fixed issues in GA breeding --- bin/cdi_window.py | 54 +++----- reccdi/src_py/controller/gen_rec.py | 120 ++++++------------ .../src_py/controller/reconstruction_multi.py | 7 +- reccdi/src_py/utilities/utils_ga.py | 2 +- 4 files changed, 58 insertions(+), 125 deletions(-) diff --git a/bin/cdi_window.py b/bin/cdi_window.py index ab28c9a..5ae6b73 100644 --- a/bin/cdi_window.py +++ b/bin/cdi_window.py @@ -842,10 +842,6 @@ def init_config(self, conf_map): self.generations.setText(str(conf_map.generations).replace(" ", "")) except AttributeError: pass - try: - self.lr_generations.setText(str(conf_map.ga_low_resolution_generations).replace(" ", "")) - except AttributeError: - pass try: self.metrics.setText(str(conf_map.ga_metrics).replace(" ", "")) except AttributeError: @@ -866,26 +862,10 @@ def init_config(self, conf_map): self.ga_support_sigmas.setText(str(conf_map.ga_support_sigmas).replace(" ", "")) except AttributeError: pass - try: - self.lr_sigma_alg.setText(str(conf_map.ga_low_resolution_sigma_alg).replace(" ", "")) - except AttributeError: - pass try: self.lr_sigmas.setText(str(conf_map.ga_low_resolution_sigmas).replace(" ", "")) except AttributeError: pass - try: - self.lr_sigma_min.setText(str(conf_map.ga_low_resolution_sigma_min).replace(" ", "")) - except AttributeError: - pass - try: - self.lr_sigma_max.setText(str(conf_map.ga_low_resolution_sigma_max).replace(" ", "")) - except AttributeError: - pass - try: - self.lr_scale_power.setText(str(conf_map.ga_low_resolution_scale_power).replace(" ", "")) - except AttributeError: - pass try: self.lr_algorithm.setText(str(conf_map.ga_low_resolution_alg).replace(" ", "")) except AttributeError: @@ -895,45 +875,41 @@ def init_config(self, conf_map): def fill_active(self, layout): self.generations = QLineEdit() layout.addRow("generations", self.generations) - self.lr_generations = QLineEdit() - layout.addRow("low resolution generations", self.lr_generations) self.metrics = QLineEdit() - layout.addRow("metrics", self.metrics) + layout.addRow("fitness metrics", self.metrics) self.breed_modes = QLineEdit() layout.addRow("breed modes", self.breed_modes) self.removes = QLineEdit() - layout.addRow("worst removes", self.removes) + layout.addRow("cullings", self.removes) self.ga_support_thresholds = QLineEdit() - layout.addRow("support thresholds", self.ga_support_thresholds) + layout.addRow("after breed support thresholds", self.ga_support_thresholds) self.ga_support_sigmas = QLineEdit() - layout.addRow("support sigmas", self.ga_support_sigmas) - self.lr_sigma_alg = QLineEdit() - layout.addRow("low resolution sigma algorithm", self.lr_sigma_alg) + layout.addRow("after breed support sigmas", self.ga_support_sigmas) self.lr_sigmas = QLineEdit() layout.addRow("low resolution sigmas", self.lr_sigmas) - self.lr_sigma_min = QLineEdit() - layout.addRow("low resolution sigma min", self.lr_sigma_min) - self.lr_sigma_max = QLineEdit() - layout.addRow("low resolution sigma max", self.lr_sigma_max) - self.lr_scale_power = QLineEdit() - layout.addRow("low resolution scale power", self.lr_scale_power) self.lr_algorithm = QLineEdit() layout.addRow("low resolution algorithm", self.lr_algorithm) + def rec_default(self): + self.generations.setText('5') + self.metrics.setText('("chi","chi","area","chi","sharpness")') + self.breed_modes.setText('("sqrt_ab","sqrt_ab","max_all","Dhalf","sqrt_ab")') + self.removes.setText('(2,2,1)') + self.ga_support_thresholds.setText('(.1,.1,.1,.1,.1)') + self.ga_support_sigmas.setText('(1.0,1.0,1.0,1.0)') + self.lr_sigmas.setText('(2,1.5)') + self.lr_algorithm.setText('GAUSS') + + def add_feat_conf(self, conf_map): conf_map['generations'] = str(self.generations.text()) - conf_map['ga_low_resolution_generations'] = str(self.lr_generations.text()) conf_map['ga_metrics'] = str(self.metrics.text()).replace('\n','') conf_map['ga_breed_modes'] = str(self.breed_modes.text()).replace('\n','') conf_map['ga_removes'] = str(self.removes.text()).replace('\n','') conf_map['ga_support_thresholds'] = str(self.ga_support_thresholds.text()).replace('\n','') conf_map['ga_support_sigmas'] = str(self.ga_support_sigmas.text()).replace('\n','') - conf_map['ga_low_resolution_sigma_alg'] = '"' + str(self.lr_sigma_alg.text()) + '"' conf_map['ga_low_resolution_sigmas'] = str(self.lr_sigmas.text()) - conf_map['ga_low_resolution_sigma_min'] = str(self.lr_sigma_min.text()) - conf_map['ga_low_resolution_sigma_max'] = str(self.lr_sigma_max.text()) - conf_map['ga_low_resolution_scale_power'] = str(self.lr_scale_power.text()) conf_map['ga_low_resolution_alg'] = '"' + str(self.lr_algorithm.text()) + '"' diff --git a/reccdi/src_py/controller/gen_rec.py b/reccdi/src_py/controller/gen_rec.py index 36eaaad..6e449a6 100644 --- a/reccdi/src_py/controller/gen_rec.py +++ b/reccdi/src_py/controller/gen_rec.py @@ -11,7 +11,6 @@ """ import numpy as np -import matplotlib.pyplot as plt import os import reccdi.src_py.controller.reconstruction as single import reccdi.src_py.controller.reconstruction_multi as multi @@ -36,14 +35,9 @@ def __init__(self, config_map): self.generations = config_map.generations except AttributeError: self.generations = 1 - try: - self.low_resolution_generations = config_map.ga_low_resolution_generations - except AttributeError: - self.low_resolution_generations = 0 try: self.metrics = tuple(config_map.ga_metrics) - print ('type', type(self.metrics)) if len(self.metrics) < self.generations: self.metrics = self.metrics + ('chi',) * (self.generations - len(self.metrics)) except AttributeError: @@ -93,58 +87,19 @@ def __init__(self, config_map): except AttributeError: self.breed_modes = ('none',) * self.generations - if self.low_resolution_generations > 0: - try: - low_resolution_sigma_alg = config_map.ga_low_resolution_sigma_alg - except AttributeError: - low_resolution_sigma_alg = 'SIG_SPACE_LINEAR' - - if low_resolution_sigma_alg == 'SIG_ASSIGNED': - try: - self.sigmas = config_map.ga_low_resolution_sigmas - except: - print ('low resolution sigmas config parameter is missing, turning off low resolution.') - self.low_resolution_generations = 0 - elif low_resolution_sigma_alg == 'SIG_SCALE_POWER': - try: - low_resolution_sigma_min = config_map.ga_low_resolution_sigma_min - except: - low_resolution_sigma_min = .1 - try: - low_resolution_sigma_max = config_map.ga_low_resolution_sigma_max - except: - low_resolution_sigma_max = 2.0 - try: - low_resolution_scale_power = config_map.ga_low_resolution_scale_power - except: - low_resolution_scale_power = 1 - try: - support_sigma = config_map.ga_support_sigma - except: - support_sigma = 1.0 - - sigmas = support_sigma/np.power(np.linspace(0.0, 1.0,self.low_resolution_generations)* - (1-low_resolution_sigma_min)+low_resolution_sigma_min,low_resolution_scale_power) - self.sigmas = np.clip(sigmas, support_sigma, low_resolution_sigma_max).tolist() - - # the default is 'SIG_SPACE_LINEAR' - else: - try: - low_resolution_sigma_min = config_map.support_sigma - except: - low_resolution_sigma_min = 1.0 - try: - low_resolution_sigma_max = config_map.low_resolution_sigma_max - except: - low_resolution_sigma_max = 2.0 - self.sigmas = np.linspace(low_resolution_sigma_max, low_resolution_sigma_min, self.low_resolution_generations).tolist() + try: + self.sigmas = config_map.ga_low_resolution_sigmas + self.low_resolution_generations = len(self.sigmas) + except AttributeError: + self.low_resolution_generations = 0 if self.low_resolution_generations > 0: try: - self.low_resolution_alg = config_map.low_resolution_alg + self.low_resolution_alg = config_map.ga_low_resolution_alg except AttributeError: self.low_resolution_alg = 'GAUSS' + def next_gen(self): self.current_gen += 1 @@ -175,12 +130,12 @@ def rank(self, images, errs): if metric == 'chi': rank_property.append(errs[i][-1]) elif metric == 'sharpness': - rank_property.append(sum(abs(image)^4)) + rank_property.append(sum(sum(sum(pow(abs(image), 4))))) elif metric == 'summed_phase': - rank_property.append(sum(gut.sum_phase_tight_support(image))) + rank_property.append(sum(sum(gut.sum_phase_tight_support(image)))) elif metric == 'area': - support = gut.shrink_wrap(image, .2, .5) - rank_property.append(sum(support)) + support = ut.shrink_wrap(image, .2, .5) + rank_property.append(sum(sum(sum(support)))) elif metric == 'TV': gradients = np.gradient(image) TV = np.zeros(image.shape) @@ -194,9 +149,9 @@ def rank(self, images, errs): # ranks keeps indexes of samples from best to worst # for most of the metric types the minimum of the metric is best, but for # 'summed_phase' and 'area' it is oposite, so reversing the order - ranks = np.argsort(rank_property) + ranks = np.argsort(rank_property).tolist() if metric == 'summed_phase' or metric == 'area': - ranks = ranks.reverse() + ranks.reverse() return ranks @@ -247,7 +202,7 @@ def breed(self, images): if breed_mode == 'none': return images, None samples = len(images) - if self.worst_remove_no[self.current_gen] is not None: + if self.worst_remove_no is not None: samples = samples - self.worst_remove_no[self.current_gen] ims = images[0 : samples] @@ -275,16 +230,16 @@ def breed(self, images): beta = np.sqrt(abs(alpha_s) * abs(beta)) * np.exp(0.5j * (ph_beta + ph_alpha)) elif breed_mode == 'max_all': - amp = max(abs(ims_arr), dims) + amp = np.amax(abs(ims_arr), axis=0) beta = amp * np.exp(1j * ph_beta) - elif breed_mode == 'Dhalf' or breed_mode == 'Dhalf-best': + elif breed_mode == 'Dhalf': nhalf = round(len(ims)/2) - delta = nhalf * ims[ind] - np.sum(np.stack(ims[:nhalf]), dims) + delta = nhalf * ims[ind] - np.sum(np.stack(ims[:nhalf]), axis=0) beta = beta + delta elif breed_mode == 'dsqrt': - amp = abs(beta)^.5 + amp = pow(abs(beta), .5) beta = amp * np.exp(1j * ph_beta) elif breed_mode == 'pixel_switch': @@ -297,32 +252,32 @@ def breed(self, images): elif breed_mode == '2ab_a_b': beta = 2*(beta * alpha_s) / (beta + alpha_s) - elif breed_mode == '2a-b_pa': + elif breed_mode == '2a_b_pa': beta = (2*abs(alpha_s)-abs(beta)) * np.exp(1j *ph_alpha) elif breed_mode == 'sqrt_ab_pa': beta = np.sqrt(abs(alpha_s) * abs(beta)) * np.exp(1j * ph_alpha) elif breed_mode == 'sqrt_ab_pa_recip': - temp1 = np.fftshift(np.fftn(np.fftshift(beta))) - temp2 = np.fftshift(np.fftn(np.fftshift(alpha_s))) + temp1 = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(beta))) + temp2 = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(alpha_s))) temp = np.sqrt(abs(temp1) * abs(temp2)) * np.exp(1j * np.angle(temp2)) - beta = np.fftshift(np.ifftn(np.fftshift(temp))) + beta = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(temp))) elif breed_mode == 'sqrt_ab_recip': - temp1 = np.fftshift(np.fftn(np.fftshift(beta))) - temp2 = np.fftshift(np.fftn(np.fftshift(alpha_s))) + temp1 = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(beta))) + temp2 = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(alpha_s))) temp = np.sqrt(abs(temp1) *abs(temp2)) *np.exp(.5j *np.angle(temp1)) *np.exp(.5j *np.angle(temp2)) - beta = np.fftshift(np.ifftn(np.fftshift(temp))) + beta = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(temp))) elif breed_mode == 'max_ab': - beta = max(abs(alpha_s), abs(beta)) * np.exp(.5j *(ph_beta + ph_alpha)) + beta = np.maximum(abs(alpha_s), abs(beta)) * np.exp(.5j *(ph_beta + ph_alpha)) elif breed_mode == 'max_ab_pa': - beta = max(abs(alpha_s), abs(beta)) * np.exp(1j *ph_alpha) + beta = np.maximum(abs(alpha_s), abs(beta)) * np.exp(1j *ph_alpha) elif breed_mode == 'min_ab_pa': - beta = min(abs(alpha_s), abs(beta)) * np.exp(1j *ph_alpha) + beta = np.minimum(abs(alpha_s), abs(beta)) * np.exp(1j *ph_alpha) elif breed_mode == 'avg_ab': beta = 0.5 *(alpha_s + beta) @@ -338,22 +293,24 @@ def breed(self, images): gamma = gut.zero_phase(gamma, 0) if ind > 1: gamma = gut.check_get_conj_reflect(beta, gamma) - ph_gamma, gamma_s = gut.align_and_zero_phase(abs(beta), abs(gamma)) + gamma_s = gut.align_arrays(abs(beta), abs(gamma)) + gamma_s = gut.zero_phase(gamma_s, 0) + ph_gamma = np.angle(gamma_s) else: gamma_s = gamma - ph_gamma = np.atan2(gamma.imag, gamma.real) + ph_gamma = np.arctan2(gamma.imag, gamma.real) if breed_mode == 'sqrt_abg': - beta = (abs(alpha_s) *abs(beta) *abs(gamma_s)) ^(1/3) *np.exp(1j *(ph_beta+ph_alpha+ph_gamma)/3.0) + beta = pow((abs(alpha_s) *abs(beta) *abs(gamma_s)), (1/3)) *np.exp(1j *(ph_beta+ph_alpha+ph_gamma)/3.0) elif breed_mode == 'sqrt_abg_pa': - beta = (abs(alpha_s) *abs(beta) *abs(gamma_s)) ^(1/3) *np.exp(1j *ph_alpha) + beta = pow((abs(alpha_s) *abs(beta) *abs(gamma_s)), (1/3)) *np.exp(1j *ph_alpha) elif breed_mode == 'max_abg': - beta = max(max(abs(alpha_s), abs(beta)), abs(gamma_s)) *np.exp(1j *(ph_beta+ph_alpha+ph_gamma)/3.0) + beta = np.maximum(np.maximum(abs(alpha_s), abs(beta)), abs(gamma_s)) *np.exp(1j *(ph_beta+ph_alpha+ph_gamma)/3.0) elif breed_mode == 'max_abg_pa': - beta = max(max(abs(alpha_s), abs(beta)),abs(gamma_s)) *np.exp(1j *ph_alpha) + beta = np.maximum(np.maximum(abs(alpha_s), abs(beta)),abs(gamma_s)) *np.exp(1j *ph_alpha) elif breed_mode == 'avg_abg': beta = (1/3)*(alpha_s+beta+gamma_s) @@ -362,8 +319,8 @@ def breed(self, images): beta = (1/3)*(abs(alpha_s)+abs(beta)+abs(gamma_s)) *np.exp(1j *ph_alpha) elif breed_mode == 'avg_sqrt': - amp=( (abs(beta))^1/3+(abs(alpha_s))^1/3+(abs(gamma_s))^1/3)/3 - beta = amp^3 * np.exp(1j *ph_beta) + amp=( pow(abs(beta), 1/3)+pow(abs(alpha_s), 1/3)+pow(abs(gamma_s), 1/3))/3 + beta = pow(amp, 3) * np.exp(1j *ph_beta) child_images.append(beta) child_supports.append(ut.shrink_wrap(beta, threshold, sigma)) @@ -459,7 +416,6 @@ def reconstruction(generations, proc, data, conf_info, config_map): for g in range(generations): gen_data = gen_obj.get_data(data) image, support, coh, err, recip = rec.rec(proc, gen_data, conf, config_map, image, support, coh) - print ('gen rec, got results') # save the generation results gen_save_dir = os.path.join(save_dir, 'g_' + str(g)) ut.save_results(image, support, coh, err, recip, gen_save_dir) diff --git a/reccdi/src_py/controller/reconstruction_multi.py b/reccdi/src_py/controller/reconstruction_multi.py index 45eb29e..049a074 100644 --- a/reccdi/src_py/controller/reconstruction_multi.py +++ b/reccdi/src_py/controller/reconstruction_multi.py @@ -35,12 +35,14 @@ def load_config(samples): import parsl from parsl.config import Config - from parsl.executors import HighThroughputExecutor + from parsl.executors.ipp import IPyParallelExecutor + #from parsl.executors import HighThroughputExecutor from parsl.providers import LocalProvider from parsl.channels import LocalChannel local_config = Config( executors=[ - HighThroughputExecutor( + IPyParallelExecutor( + #HighThroughputExecutor( label="local_htex", provider=LocalProvider( channel=LocalChannel(), @@ -327,5 +329,4 @@ def reconstruction(samples, proc, data, conf_info, config_map): ut.save_multiple_results(samples, images, supports, cohs, errs, recips, save_dir) - print('done') diff --git a/reccdi/src_py/utilities/utils_ga.py b/reccdi/src_py/utilities/utils_ga.py index 219d966..747ad80 100644 --- a/reccdi/src_py/utilities/utils_ga.py +++ b/reccdi/src_py/utilities/utils_ga.py @@ -175,7 +175,7 @@ def align_arrays(ref_arr, arr): def sum_phase_tight_support(arr): arr = zero_phase(arr) - ph = np.atan2(arr.imag, arr.real) + ph = np.arctan2(arr.imag, arr.real) support = ut.shrink_wrap(abs(arr), .2, .5) return sum( abs(ph * support)) From 350787549e0210aa191577ea90bdaf091850f760 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Thu, 16 May 2019 16:36:33 -0500 Subject: [PATCH 147/336] fixed GA sigmas in cdi_window.py --- bin/cdi_window.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/cdi_window.py b/bin/cdi_window.py index 5ae6b73..e477881 100644 --- a/bin/cdi_window.py +++ b/bin/cdi_window.py @@ -898,7 +898,7 @@ def rec_default(self): self.removes.setText('(2,2,1)') self.ga_support_thresholds.setText('(.1,.1,.1,.1,.1)') self.ga_support_sigmas.setText('(1.0,1.0,1.0,1.0)') - self.lr_sigmas.setText('(2,1.5)') + self.lr_sigmas.setText('(2.0,1.5)') self.lr_algorithm.setText('GAUSS') @@ -909,7 +909,7 @@ def add_feat_conf(self, conf_map): conf_map['ga_removes'] = str(self.removes.text()).replace('\n','') conf_map['ga_support_thresholds'] = str(self.ga_support_thresholds.text()).replace('\n','') conf_map['ga_support_sigmas'] = str(self.ga_support_sigmas.text()).replace('\n','') - conf_map['ga_low_resolution_sigmas'] = str(self.lr_sigmas.text()) + conf_map['ga_low_resolution_sigmas'] = str(self.lr_sigmas.text()).replace('\n','') conf_map['ga_low_resolution_alg'] = '"' + str(self.lr_algorithm.text()) + '"' From 95829b6894355c5858338cd1d5de6abaf3aeaed5 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Thu, 16 May 2019 17:17:37 -0500 Subject: [PATCH 148/336] sync documentation --- bin/cdi_window.py | 6 +++--- config_rec | 30 ++++-------------------------- 2 files changed, 7 insertions(+), 29 deletions(-) diff --git a/bin/cdi_window.py b/bin/cdi_window.py index e477881..6043ad0 100644 --- a/bin/cdi_window.py +++ b/bin/cdi_window.py @@ -851,7 +851,7 @@ def init_config(self, conf_map): except AttributeError: pass try: - self.removes.setText(str(conf_map.ga_removes).replace(" ", "")) + self.removes.setText(str(conf_map.ga_cullings).replace(" ", "")) except AttributeError: pass try: @@ -906,7 +906,7 @@ def add_feat_conf(self, conf_map): conf_map['generations'] = str(self.generations.text()) conf_map['ga_metrics'] = str(self.metrics.text()).replace('\n','') conf_map['ga_breed_modes'] = str(self.breed_modes.text()).replace('\n','') - conf_map['ga_removes'] = str(self.removes.text()).replace('\n','') + conf_map['ga_cullings'] = str(self.removes.text()).replace('\n','') conf_map['ga_support_thresholds'] = str(self.ga_support_thresholds.text()).replace('\n','') conf_map['ga_support_sigmas'] = str(self.ga_support_sigmas.text()).replace('\n','') conf_map['ga_low_resolution_sigmas'] = str(self.lr_sigmas.text()).replace('\n','') @@ -1205,4 +1205,4 @@ def main(): if __name__ == '__main__': - main() \ No newline at end of file + main() diff --git a/config_rec b/config_rec index 9c70b4c..a963c72 100644 --- a/config_rec +++ b/config_rec @@ -42,9 +42,6 @@ garbage_trigger = (10,.5) // GENERATIONS generations = 1 // number of generations -ga_low_resolution_generations = 0 - // number of generations low resolution is applied to, starting from first gen - ga_metrics = ("chi") // defines which metric should be used to rank the reconstruction results (samples) // supported: 'chi', 'sharpness', 'summed_phase', 'area', 'TV' @@ -57,7 +54,7 @@ ga_breed_modes = ("sqrt_ab") // 'max_ab', 'max_ab_pa', 'min_ab_pa', 'avg_ab', 'avg_ab_pa',= 'sqrt_abg', // 'sqrt_abg_pa', 'max_abg','max_abg_pa', 'avg_abg', 'avg_abg_pa', 'avg_sqrt' -ga_removes = (0) +ga_cullings = (0) // defines how many worst samples to remove in breeding phase for each generation // defaults to 0 if no entry for generation. @@ -69,29 +66,10 @@ ga_support_sigmas = (1.0) // the support is recalculated with this sigma after breeding phase // defaults to support sigma if no entry for generation. - -ga_low_resolution_sigma_alg = "SIG_SPACE_LINEAR" - // defines how to calculate sigmas based on generation. Supported: - // SIG_SPACE_LINEAR - sigmas are starting from low_resolution_sigma_max, - // linearly decreasing for each generation, reaching low_resolution_sigma - // at the end - // SIG_SCALE_POWER - use low_resolution_scale_power and ScaleFactor - // to calculate sigmas for generations - // SIG_ASSIGNED - sigmas will be read from low_resolution_sigmas - ga_low_resolution_sigmas = (1.0) - // list of sigmas that will be used by subsequent generations if the - // low_resolution_sigma_alg is set to SIG_ASSIGNED - // the length must be equal low_resolution_generations - -ga_low_resolution_sigma_min = 0.1 - // initial sigma - -ga_low_resolution_sigma_max = 2.0 - // max support sigma value - -ga_low_resolution_scale_power = 1 - // how the sigma scales with generation (1 - linear, 2 - quad etc) + // list of sigmas that will be used in subsequent generations to calculate + // Gauss (*assuming algorithm is GAUSS) and apply it to the data + // This determines low resolution number of generations ga_low_resolution_alg = "GAUSS" // algorithm to use to apply resolution. Supported algorithms: From 9ec8a2df62a55b2011083e09af3721aa3c985bae Mon Sep 17 00:00:00 2001 From: bfrosik Date: Fri, 17 May 2019 14:00:32 -0500 Subject: [PATCH 149/336] Updated description --- config_rec | 112 ++++++++++++++++++++++++++++------------------------- 1 file changed, 60 insertions(+), 52 deletions(-) diff --git a/config_rec b/config_rec index a963c72..eb97b53 100644 --- a/config_rec +++ b/config_rec @@ -1,14 +1,16 @@ +// This file contains all configurable parameters that are applied during reconstruction. +// There are general parameters that apply to the main thread of reconstruction and features parameters. +// Reconstruction will use the global definitions and may use any of the supported features: +// twin, amp_support, phase_support, pcdi, resolution, average, garbage collection. +// The iterations during which the feature is active is defined by a trigger. In addition each feature may have other +// configurable parameters. // Trigger can be defined as a single iteration, or multiple iterations. // examples: // (3) trigger at iteration 3 // (20, 5) trigger starts at iteration 20, repeats every 5 iteration for the rest of run // (20, 5, 40) trigger starts at iteration 20, repeats every 5 iteration until iteration 40 // Triggers can also be a combination of any of the above, ex: ((4), (3, 7, 24), (6,20)) -// Below is a list of the supported triggers: -// garbage_trigger, twin_trigger, amp_support_trigger, phase_support_trigger, pcdi_trigger, resolution_trigger, -// average_trigger. -// The features that are related to the triggers are described below where the trigger is defined. -// If a trigger is not defined, the feature is turned off. Comment out trigger that you don't want to apply. +// If a trigger is not defined, the feature is turned off. // Adding a new feature/ trigger is described in common.h header file. // GENERAL @@ -16,12 +18,12 @@ data_dir = "data" // directory from which data is read save_dir = "results" - // directory where results of reconstruction as npy files are saved - // if threads > 1, result from each thread will be stored in subdirectory 1,2,3 etc. + // directory where results of reconstruction are saved as npy files + // if samples > 1, result from each thread will be stored in subdirectory 1,2,3 etc. cont = false // only applied if generations equals 1, or not defined - // true if the reconstruction start with previous results stored in continue_dir + // if true, the reconstruction start with previous results stored in continue_dir continue_dir = "cont" // directory from which results are read for reconstruction continuation @@ -29,24 +31,33 @@ continue_dir = "cont" samples = 1 // number of reconstructions to start with + // typically used when running genetic algorithm device = (0,0) - // ID of the target devices for each thread. - // If more threads or not defined, it will default to -1 + // IDs of the target devices for each thread (sample). + // If not defined, it will default to -1 for the OS to select device garbage_trigger = (10,.5) // ArrayFire memory management is not reliable, the way around is to call garbage // collection per defined number of iterations. Decrease this value if out of memory // error occurs -// GENERATIONS +algorithm_sequence = ((2, ("ER",19), ("HIO", 10)), (1,("ER",20))) + // defines algorithm applied in each iteration during modulus projection by a sequence of tuples. + // The first number in a tuple is a repeat, followed by tuples of pairs, each + // pair defining algorithm and number of iterations to run the algorithm. + +beta = .9; + // used in hio algorithm + +// GENERATIc ALGORITHM generations = 1 // number of generations -ga_metrics = ("chi") +ga_metrics = ("chi", "sharpness") // defines which metric should be used to rank the reconstruction results (samples) - // supported: 'chi', 'sharpness', 'summed_phase', 'area', 'TV' + // supported: 'chi', 'sharpness', 'summed_phase', 'area', ('TV') -ga_breed_modes = ("sqrt_ab") +ga_breed_modes = ("sqrt_ab", "Dhalf") // defines which breeding mode to use to populate new generation. If "none" // there is no breeding // supported: 'sqrt_ab', 'max_all', 'Dhalf', 'Dhalf-best', 'dsqrt', 'pixel_switch', @@ -54,48 +65,40 @@ ga_breed_modes = ("sqrt_ab") // 'max_ab', 'max_ab_pa', 'min_ab_pa', 'avg_ab', 'avg_ab_pa',= 'sqrt_abg', // 'sqrt_abg_pa', 'max_abg','max_abg_pa', 'avg_abg', 'avg_abg_pa', 'avg_sqrt' -ga_cullings = (0) +ga_cullings = (2,1) // defines how many worst samples to remove in breeding phase for each generation - // defaults to 0 if no entry for generation. + // defaults to 0 -ga_support_thresholds = (.1) +ga_support_thresholds = (.15, .1) // the support is recalculated with this threshold after breeding phase - // defaults to support threshold if no entry for generation. + // defaults to support threshold -ga_support_sigmas = (1.0) +ga_support_sigmas = (1.1, 1.0) // the support is recalculated with this sigma after breeding phase - // defaults to support sigma if no entry for generation. + // defaults to support sigma -ga_low_resolution_sigmas = (1.0) +ga_low_resolution_sigmas = (2.0, 1.5) // list of sigmas that will be used in subsequent generations to calculate - // Gauss (*assuming algorithm is GAUSS) and apply it to the data - // This determines low resolution number of generations + // Gauss (assuming algorithm is GAUSS) and apply it to the data + // This determines low resolution generations number ga_low_resolution_alg = "GAUSS" // algorithm to use to apply resolution. Supported algorithms: // GAUSS -// RECONSTRUCTION PARAMETERS USED BY FAST MODULE -// modulus projection algorithm sequence -algorithm_sequence = ((2, ("ER",19), ("HIO", 10)), (1,("ER",20))) - // defines algorithm applied in each iteration by a sequence of tuples. - // The first number in a tuple is a repeat, followed by tuples of pairs, each - // pair defining algorithm and number of iterations to run the algorithm. - -beta = .9; - // used in hio algorithm - -// twin +// TWIN // twin feature trims the image array at the current state by zeroing half of the array in each dimension. + twin_trigger = (2) - // applied only in initial reconstruction // twin defines at which iteration to cut half of the array(i.e. multiply by 0s), // Comment out, if don't want to apply twin. + // when running GA applied only in first generation -// support +// SUPPORT // Support area is an array that defines region in which the image is meaningful. This area is recalculated at the // trigger iteration. The calculation employ an algorithm defined here as support_type. + amp_support_trigger = (7, 5) // defines when to update support array using the parameters below. // Comment out, if support feature not used. @@ -107,19 +110,21 @@ support_area = (.5,.5,.5) // by multiplying by the data array dimensions. The support will be set to 1s to this // dimensions centered. -// phase constrain +// PHASE CONSTRAIN // At the begginning iterations the support area is modified in respect to the phase. Support area will exclude points -// outside of the defined bounds +// that phase is outside of the defined bounds + phase_support_trigger = (0, 1, 45) - // applied only in initial reconstruction // defines when to update support array using the parameters below by applaying phase constrain. // Comment out, if phase constrain feature not used. + // when running GA applied only in first generation phase_min = -1.57; phase_max = 1.57; -// partial coherence -// Partial coherence trigger triggers recalculation of coherence array for the amplitudes in reciprocal space. +// PARTIAL COHERENCE +// Partial coherence triggers recalculation of coherence array for the amplitudes in reciprocal space. // After first coherence array is determined, it is used for convolution in subsequent iteration. + pcdi_trigger = (16, 14) // defines when to update coherence using the parameters below. // Comment out, if pcdi feature not used. @@ -131,16 +136,18 @@ partial_coherence_roi = (32,32,32); // coherence area. If the values are fractional, the coherence area will be calculated // by multiplying by the data array dimensions. -// iteration based low resolution -// At the begginning iterations the data and sigma are modified gradually. The sigma for each iteration where the low -// resolution is applied is a linespace result of iter_res_sigma_range. The last sigma should be set to support_sigma, -// or you can use default to achieve this. The sigma is used by when recalculation the support area, i.e when support -// trigger is on. The data is multiplied by gaussian distribution with sigma gradually growing to the last value, which -// typically is 1. +// LOW RESOLUTION +// At the beginning iterations the data resolution and sigma used in recalculation of the support area are modified gradually. +// The sigma for each iteration where the low resolution is applied is a linespaced result of iter_res_sigma_range. +// The last sigma is typically set to support_sigma. If the last sigma is not specified, it defaults to support_sigma. +// The sigma is used by in recalculation of the support area, i.e when support trigger is on. +// The iter_res_det_range is similiary linespaced for the duration of low resolution iterations. The values are used +// as sigmas to calculate Gaussian distribution and applied (multiplied) to data. + resolution_trigger = (0, 1, 40) - // applied only in initial reconstruction // defines when to apply low resolution using the parameters below. // Comment out, if low resolution feature not used. + // when running GA applied only in first generation iter_res_sigma_range = (2.0, 1.0) // used when applying low resolution to replace support sigma. @@ -153,9 +160,10 @@ iter_res_det_range = (.7, 1.0) // The mask is gauss with sigma of linespaced det. If only one number given, // the last det will default to 1. -// averaging -// The amplitudes of the last several iterations are avaraged. This trigger defines at which iteration the averaging +// AVERAGING +// The amplitudes of the last several iterations are averaged. This trigger defines at which iteration the averaging // starts. -average_trigger = (65, 1) - // defines when to apply averaging. + +average_trigger = (-65, 1) + // defines when to apply averaging. Negative start means it is offset from the last iteration // Comment out, if averaging not used. From 01e0e8297aba816b3ba82701f2a369054f32d237 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Fri, 24 May 2019 16:02:38 -0500 Subject: [PATCH 150/336] Added configuration for choosing the twin quadrant, added reporting utilities. --- bin/cdi_window.py | 8 +++++++ config_rec | 4 ++++ reccdi/include/parameters.hpp | 6 ++++- reccdi/src_cpp/parameters.cpp | 18 +++++++++++++++ reccdi/src_cpp/worker.cpp | 7 +++++- reccdi/src_py/controller/gen_rec.py | 27 ++++++++++++++++------ reccdi/src_py/utilities/utils.py | 36 ++++++++++++++++++++++++++--- 7 files changed, 94 insertions(+), 12 deletions(-) diff --git a/bin/cdi_window.py b/bin/cdi_window.py index 6043ad0..225a2fd 100644 --- a/bin/cdi_window.py +++ b/bin/cdi_window.py @@ -1125,19 +1125,27 @@ def init_config(self, conf_map): self.twin_triggers.setText(str(conf_map.twin_trigger).replace(" ", "")) except AttributeError: pass + try: + self.twin_halves.setText(str(conf_map.twin_halves).replace(" ", "")) + except AttributeError: + pass def fill_active(self, layout): self.twin_triggers = QLineEdit() layout.addRow("twin triggers", self.twin_triggers) + self.twin_halves = QLineEdit() + layout.addRow("twin halves", self.twin_halves) def rec_default(self): self.twin_triggers.setText('(2)') + self.twin_halves.setText('(0,0)') def add_feat_conf(self, conf_map): conf_map['twin_trigger'] = str(self.twin_triggers.text()).replace('\n','') + conf_map['twin_halves'] = str(self.twin_halves.text()).replace('\n','') class average(Feature): diff --git a/config_rec b/config_rec index eb97b53..5ba9922 100644 --- a/config_rec +++ b/config_rec @@ -95,6 +95,10 @@ twin_trigger = (2) // Comment out, if don't want to apply twin. // when running GA applied only in first generation +twin_halves = (0, 0) + // defines which half of the array is zeroed out in x and y dimensions. + // If 0, the first half in that dimension is zeroed out, otherwise, the second half. + // SUPPORT // Support area is an array that defines region in which the image is meaningful. This area is recalculated at the // trigger iteration. The calculation employ an algorithm defined here as support_type. diff --git a/reccdi/include/parameters.hpp b/reccdi/include/parameters.hpp index 2e35b88..5c3ca4f 100644 --- a/reccdi/include/parameters.hpp +++ b/reccdi/include/parameters.hpp @@ -34,13 +34,15 @@ class Params d_type phase_max; //partial coherence - //PartialCoherence *partial_coherence = NULL; bool is_pcdi; int pcdi_alg; std::vector pcdi_roi; bool pcdi_normalize; int pcdi_iter; + // twin + std::vector twin_halves; + // calculated number of iterations int number_iterations; @@ -89,6 +91,8 @@ class Params bool GetPcdiNormalize(); int GetPcdiIterations(); + std::vector GetTwinHalves(); + bool IsResolution(); int GetLowResolutionIter(); float GetIterResSigmaFirst(); diff --git a/reccdi/src_cpp/parameters.cpp b/reccdi/src_cpp/parameters.cpp index 3ddfc74..0dfde18 100644 --- a/reccdi/src_cpp/parameters.cpp +++ b/reccdi/src_cpp/parameters.cpp @@ -33,6 +33,7 @@ Params::Params(const char* config_file, std::vector data_dim, bool first) pcdi_roi.clear(); pcdi_normalize = false; pcdi_iter = 20; + twin_halves.clear(); number_iterations = 0; plot_errors = false; is_resolution = false; @@ -402,6 +403,18 @@ Params::Params(const char* config_file, std::vector data_dim, bool first) } } + try { + const Setting &tmp = root["twin_halves"]; + for (int i = 0; i < tmp.getLength(); ++i) + { + twin_halves.push_back(tmp[i]); + } + } + catch ( const SettingNotFoundException &nfex) + { + printf((std::string("No 'partial_coherence_iteration_num' parameter in configuration file. Setting to 20.\n")).c_str()); + } + if ((first) && root.exists("resolution_trigger")) { is_resolution = true; @@ -560,6 +573,11 @@ int Params::GetPcdiIterations() return pcdi_iter; } +std::vector Params::GetTwinHalves() +{ + return twin_halves; +} + std::vector Params::GetAlgSwitches() { return alg_switches; diff --git a/reccdi/src_cpp/worker.cpp b/reccdi/src_cpp/worker.cpp index 3115ee1..3b748ab 100644 --- a/reccdi/src_cpp/worker.cpp +++ b/reccdi/src_cpp/worker.cpp @@ -269,8 +269,13 @@ void Reconstruction::RunAlg() void Reconstruction::Twin() { dim4 dims = data.dims(); + std::vector twin_halves = params->GetTwinHalves(); af::array temp = constant(0, dims, u32); - temp( af::seq(0, dims[0]/2-1), af::seq(0, dims[1]/2-1), span, span) = 1; + int x_start = (twin_halves[0] == 0) ? 0 : dims[0]/2; + int x_end = (twin_halves[0] == 0) ? dims[0]/2 -1 : dims[0]-1; + int y_start = (twin_halves[1] == 0) ? 0 : dims[1]/2; + int y_end = (twin_halves[1] == 0) ? dims[1]/2 -1 : dims[1]-1; + temp( af::seq(x_start, x_end), af::seq(y_start, y_end), span, span) = 1; ds_image = ds_image * temp; printf("Twin\n"); } diff --git a/reccdi/src_py/controller/gen_rec.py b/reccdi/src_py/controller/gen_rec.py index 6e449a6..503e457 100644 --- a/reccdi/src_py/controller/gen_rec.py +++ b/reccdi/src_py/controller/gen_rec.py @@ -119,6 +119,18 @@ def get_gmask(self, shape): return np.ones(shape) + def get_metrics(self, images, errs): + metrics = [] + for i in range(len(images)): + pop_metric = {} + pop_metric['chi'] = errs[i][-1] + pop_metric['sharpness'] = sum(sum(sum(pow(abs(images[i]), 4)))) + pop_metric['summed_phase'] = sum(sum(gut.sum_phase_tight_support(images[i]))) + pop_metric['area'] = sum(sum(sum(ut.shrink_wrap(images[i], .2, .5)))) + metrics.append(pop_metric) + return metrics + + def rank(self, images, errs): rank_property = [] @@ -136,12 +148,12 @@ def rank(self, images, errs): elif metric == 'area': support = ut.shrink_wrap(image, .2, .5) rank_property.append(sum(sum(sum(support)))) - elif metric == 'TV': - gradients = np.gradient(image) - TV = np.zeros(image.shape) - for gr in gradients: - TV += abs(gr) - rank_property.append(TV) + # elif metric == 'TV': + # gradients = np.gradient(image) + # TV = np.zeros(image.shape) + # for gr in gradients: + # TV += abs(gr) + # rank_property.append(TV) else: # metric is 'chi' rank_property.append(errs[i][-1]) @@ -398,9 +410,10 @@ def reconstruction(generations, proc, data, conf_info, config_map): gen_data = gen_obj.get_data(data) images, supports, cohs, errs, recips = rec.rec(proc, gen_data, conf, config_map, images, supports, cohs) images, supports, cohs, errs, recips = gen_obj.order(images, supports, cohs, errs, recips) + metrics = gen_obj.get_metrics(images, errs) # save the generation results gen_save_dir = os.path.join(save_dir, 'g_' + str(g)) - ut.save_multiple_results(len(images), images, supports, cohs, errs, recips, gen_save_dir) + ut.save_multiple_results(len(images), images, supports, cohs, errs, recips, gen_save_dir, metrics) if g < generations - 1 and len(images) > 1: images, shrink_supports = gen_obj.breed(images) diff --git a/reccdi/src_py/utilities/utils.py b/reccdi/src_py/utilities/utils.py index 688802f..7820dfd 100644 --- a/reccdi/src_py/utilities/utils.py +++ b/reccdi/src_py/utilities/utils.py @@ -17,6 +17,8 @@ import numpy as np import os import logging +import shutil +import stat __author__ = "Barbara Frosik" __copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." @@ -441,7 +443,23 @@ def read_results(read_dir): return image, support, coh -def save_results(image, support, coh, errs, reciprocal, save_dir): +def save_metrics(errs, dir, metrics=None): + metric_file = os.path.join(dir, 'summary') + if os.path.isfile(metric_file): + os.remove(metric_file) + with open(metric_file, 'a') as f: + if metrics is not None: + f.write('metric result\n') + for key in metrics: + value = metrics[key] + f.write(key + ' = ' + str(value) + '\n') + f.write('\nerrors by iteration\n') + for er in errs: + f.write(str(er) + ' ') + f.close() + + +def save_results(image, support, coh, errs, reciprocal, save_dir, metrics=None): if not os.path.exists(save_dir): os.makedirs(save_dir) @@ -456,9 +474,18 @@ def save_results(image, support, coh, errs, reciprocal, save_dir): np.save(coh_file, coh) reciprocal_file = os.path.join(save_dir, 'reciprocal') np.save(reciprocal_file, reciprocal) + plot_file = 'reccdi/src_py/utilities/plot_errors.py' + plot_exp_file = os.path.join(save_dir, 'plot_errors.py') + shutil.copyfile(plot_file, plot_exp_file) + st = os.stat(plot_exp_file) + os.chmod(plot_exp_file, st.st_mode | stat.S_IEXEC) + if metrics is not None: + save_metrics(errs, save_dir, metrics) + else: + save_metrics(errs, save_dir) -def save_multiple_results(samples, images, supports, cohs, errs, reciprocals, save_dir): +def save_multiple_results(samples, images, supports, cohs, errs, reciprocals, save_dir, metrics=None): """ This function saves results of multiple reconstructions to directory tree in save_dir. Parameters @@ -479,7 +506,10 @@ def save_multiple_results(samples, images, supports, cohs, errs, reciprocals, sa """ for i in range(samples): subdir = os.path.join(save_dir, str(i)) - save_results(images[i], supports[i], cohs[i], np.asarray(errs[i]), reciprocals[i], subdir) + if metrics is None: + save_results(images[i], supports[i], cohs[i], np.asarray(errs[i]), reciprocals[i], subdir) + else: + save_results(images[i], supports[i], cohs[i], np.asarray(errs[i]), reciprocals[i], subdir, metrics[i]) def sub_pixel_shift(arr, row_shift, col_shift, z_shift): From b54914054fc8a40c033aff62994b1ad380540a11 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Thu, 30 May 2019 16:36:34 -0500 Subject: [PATCH 151/336] Separated parsing spec for prep and for display. --- bin/cdi_window.py | 144 ++++++++++++------ config | 8 + config_disp | 4 - reccdi/src_py/beamlines/aps_34id/prep.py | 135 +++++----------- reccdi/src_py/run_scripts/run_34id_prepare.py | 5 +- reccdi/src_py/run_scripts/run_disp.py | 53 ++++--- reccdi/src_py/utilities/CXDVizNX.py | 116 ++++++++++---- reccdi/src_py/utilities/plot_errors.py | 15 ++ 8 files changed, 284 insertions(+), 196 deletions(-) create mode 100644 config create mode 100755 reccdi/src_py/utilities/plot_errors.py diff --git a/bin/cdi_window.py b/bin/cdi_window.py index 225a2fd..23cd743 100644 --- a/bin/cdi_window.py +++ b/bin/cdi_window.py @@ -189,13 +189,17 @@ def init_from_conf(self, dir): self.t.darkfile = conf_map.darkfile self.t.whitefile = conf_map.whitefile try: - self.t.min_files.setText(str(conf_map.auto_correct).replace(" ", "")) + self.t.min_files.setText(str(conf_map.min_files).replace(" ", "")) except: pass try: self.t.exclude_scans.setText(str(conf_map.exclude_scans).replace(" ", "")) except: pass + try: + self.t.det_quad.setText(str(conf_map.det_quad).replace(" ", "")) + except: + pass # set the text in the window self.t.data_dir_button.setStyleSheet("Text-align:left") self.t.data_dir_button.setText(self.t.data_dir) @@ -285,6 +289,36 @@ def init_from_conf(self, dir): self.t.crop.setText(str(conf_map.crop).replace(" ", "")) except AttributeError: pass + try: + self.t.lamda.setText(str(conf_map.lamda).replace(" ", "")) + except AttributeError: + pass + try: + self.t.delta.setText(str(conf_map.delta).replace(" ", "")) + except AttributeError: + pass + try: + self.t.gamma.setText(str(conf_map.gamma).replace(" ", "")) + except AttributeError: + pass + try: + self.t.arm.setText(str(conf_map.arm).replace(" ", "")) + except AttributeError: + pass + try: + self.t.dth.setText(str(conf_map.dth).replace(" ", "")) + except AttributeError: + pass + try: + self.t.pixel.setText(str(conf_map.pixel).replace(" ", "")) + except AttributeError: + pass + try: + self.t.specfile = conf_map.specfile + self.t.spec_file_button1.setStyleSheet("Text-align:left") + self.t.spec_file_button1.setText(self.t.specfile) + except AttributeError: + pass def msg_window(self, text): @@ -335,6 +369,7 @@ def __init__(self, main_win, parent=None): self.tab3 = QWidget() self.tab4 = QWidget() + self.specfile = None self.addTab(self.tab1, "Data prep") self.addTab(self.tab2, "Data") self.addTab(self.tab3, "Reconstruction") @@ -347,7 +382,7 @@ def __init__(self, main_win, parent=None): def tab1UI(self): self.data_dir = None - self.specfile = None + # self.specfile = None self.script = None self.imported_script = False layout = QFormLayout() @@ -355,6 +390,8 @@ def tab1UI(self): layout.addRow("data directory", self.data_dir_button) self.spec_file_button = QPushButton() layout.addRow("spec file", self.spec_file_button) + self.det_quad = QLineEdit() + layout.addRow("detector quad", self.det_quad) self.dark_file_button = QPushButton() layout.addRow("darkfield file", self.dark_file_button) self.white_file_button = QPushButton() @@ -478,17 +515,34 @@ def tab4UI(self): layout = QFormLayout() self.crop = QLineEdit() layout.addRow("crop", self.crop) - self.config_disp_button = QPushButton('process display', self) - layout.addWidget(self.config_disp_button) + self.spec_file_button1 = QPushButton() + layout.addRow("spec file", self.spec_file_button1) + self.lamda = QLineEdit() + layout.addRow("lamda", self.lamda) + self.delta = QLineEdit() + layout.addRow("delta", self.delta) + self.gamma = QLineEdit() + layout.addRow("gamma", self.gamma) + self.arm = QLineEdit() + layout.addRow("arm", self.arm) + self.dth = QLineEdit() + layout.addRow("dth", self.dth) + self.pixel = QLineEdit() + layout.addRow("pixel", self.pixel) + self.config_disp = QPushButton('process display', self) + layout.addWidget(self.config_disp) self.tab4.setLayout(layout) - self.config_disp_button.clicked.connect(self.display) + self.spec_file_button1.clicked.connect(self.set_spec_file) + self.config_disp.clicked.connect(self.display) def set_spec_file(self): self.specfile = select_file(self.specfile) self.spec_file_button.setStyleSheet("Text-align:left") self.spec_file_button.setText(self.specfile) + self.spec_file_button1.setStyleSheet("Text-align:left") + self.spec_file_button1.setText(self.specfile) def set_dark_file(self): @@ -536,7 +590,7 @@ def set_prep_script(self): def prepare(self): - if self.main_win.id is None or self.main_win.scan is None: + if self.main_win.id is None: self.msg_window('enter Reconstruction ID and scan') else: prep_dir = os.path.join(self.main_win.experiment_dir, 'prep') @@ -553,6 +607,9 @@ def prepare(self): conf_map['min_files'] = min_files if len(self.exclude_scans.text()) > 0: conf_map['exclude_scans'] = str(self.exclude_scans.text()).replace('\n','') + if len(self.det_quad.text()) > 0: + det_quad = str(self.det_quad.text()) + conf_map['det_quad'] = det_quad if str(self.prep.currentText()) == "custom": self.prepare_custom(conf_map) @@ -646,23 +703,20 @@ def prepare_34id(self, conf_map): self.main_win.id is None or\ scan is None or \ self.data_dir is None or \ - self.specfile is None: - self.msg_window('enter all parameters: working_dir, id, scan, data_dir, specfile') + self.specfile is None and len(self.det_quad.text()) == 0 : + self.msg_window('enter all parameters: working_dir, id, scan, data_dir, specfile or detector quad') return - if len(self.data_dir) > 0: + if type(self.data_dir) is not None: conf_map['data_dir'] = '"' + str(self.data_dir) + '"' - if len(self.specfile) > 0: + if type(self.specfile) is not None: conf_map['specfile'] = '"' + str(self.specfile) + '"' - else: - self.msg_window("specfile not defined") - return - if len(self.darkfile) > 0: + if type(self.darkfile) is not None: conf_map['darkfile'] = '"' + str(self.darkfile) + '"' else: self.msg_window("darkfile not defined") return - if len(self.whitefile) > 0: + if type(self.whitefile) is not None: conf_map['whitefile'] = '"' + str(self.whitefile) + '"' else: self.msg_window("whitefile not defined") @@ -731,33 +785,41 @@ def reconstruction(self): def display(self): + if (self.specfile is None or not os.path.isfile(self.specfile)) and \ + (len(self.lamda.text()) == 0 or \ + len(self.delta.text()) == 0 or \ + len(self.gamma.text()) == 0 or \ + len(self.arm.text()) == 0 or \ + len(self.dth.text()) == 0 or \ + len(self.pixel.text()) == 0): + self.msg_window('Please, enter spec file or all detector parameters') + return + res_dir = os.path.join(self.main_win.experiment_dir, 'results') if os.path.isfile(os.path.join(res_dir, 'image.npy')) or \ os.path.isfile(os.path.join(res_dir, '0', 'image.npy')) or \ os.path.isfile(os.path.join(res_dir, 'g_0', '0', 'image.npy')): - conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') - conf_disp = os.path.join(conf_dir, 'config_disp') - if not os.path.isfile(conf_disp): - self.msg_window('missing configuration file ' + conf_disp) - return - temp_file = os.path.join(self.main_win.experiment_dir, 'conf', 'temp') - with open(temp_file, 'a') as temp: - try: - with open(conf_disp, 'r') as f: - for line in f: - if not line.startswith('crop') and not line.startswith('binning'): - temp.write(line) - f.close() - except: - pass - - if len(self.crop.text()) != 0: - temp.write('crop = ' + str(self.crop.text()).replace('\n', '') + '\n') - - temp.close() - shutil.move(temp_file, conf_disp) + conf_map = {} + if type(self.specfile) is not None: + conf_map['specfile'] = '"' + str(self.specfile) + '"' + if len(self.lamda.text()) > 0: + conf_map['lamda'] = str(self.lamda.text()) + if len(self.delta.text()) > 0: + conf_map['delta'] = str(self.delta.text()) + if len(self.gamma.text()) > 0: + conf_map['gamma'] = str(self.gamma.text()) + if len(self.arm.text()) > 0: + conf_map['arm'] = str(self.arm.text()) + if len(self.dth.text()) > 0: + conf_map['dth'] = str(self.dth.text()) + if len(self.pixel.text()) > 0: + conf_map['pixel'] = str(self.pixel.text()).replace('\n','') + if len(self.crop.text()) > 0: + conf_map['crop'] = str(self.crop.text()).replace('\n','') - run_dp.to_vtk(self.main_win.experiment_dir) + conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') + if self.main_win.write_conf(conf_map, conf_dir, 'config_disp'): + run_dp.to_vtk(self.main_win.experiment_dir) else: self.msg_window('Please, run reconstruction in previous tab to activate this function') @@ -866,10 +928,6 @@ def init_config(self, conf_map): self.lr_sigmas.setText(str(conf_map.ga_low_resolution_sigmas).replace(" ", "")) except AttributeError: pass - try: - self.lr_algorithm.setText(str(conf_map.ga_low_resolution_alg).replace(" ", "")) - except AttributeError: - pass def fill_active(self, layout): @@ -887,8 +945,6 @@ def fill_active(self, layout): layout.addRow("after breed support sigmas", self.ga_support_sigmas) self.lr_sigmas = QLineEdit() layout.addRow("low resolution sigmas", self.lr_sigmas) - self.lr_algorithm = QLineEdit() - layout.addRow("low resolution algorithm", self.lr_algorithm) def rec_default(self): @@ -899,7 +955,6 @@ def rec_default(self): self.ga_support_thresholds.setText('(.1,.1,.1,.1,.1)') self.ga_support_sigmas.setText('(1.0,1.0,1.0,1.0)') self.lr_sigmas.setText('(2.0,1.5)') - self.lr_algorithm.setText('GAUSS') def add_feat_conf(self, conf_map): @@ -910,7 +965,6 @@ def add_feat_conf(self, conf_map): conf_map['ga_support_thresholds'] = str(self.ga_support_thresholds.text()).replace('\n','') conf_map['ga_support_sigmas'] = str(self.ga_support_sigmas.text()).replace('\n','') conf_map['ga_low_resolution_sigmas'] = str(self.lr_sigmas.text()).replace('\n','') - conf_map['ga_low_resolution_alg'] = '"' + str(self.lr_algorithm.text()) + '"' class low_resolution(Feature): diff --git a/config b/config new file mode 100644 index 0000000..6d139b5 --- /dev/null +++ b/config @@ -0,0 +1,8 @@ +working_dir = "/local/bfrosik/cdi/test" +data_dir = "/net/s34data/export/34idc-data/2019/Staff19-1/ADStaff19-1a" +specfile = "/net/s34data/export/34idc-data/2019/Staff19-1/Staff19-1a.spec" +darkfile = "/net/s34data/export/34idc-work/2019/dark.tif" +whitefile = "/net/s34data/export/34idc-work/2019/CelaWhiteField.tif" +exclude_scans = (78,81) +min_files = 80 +det_quad = 1 diff --git a/config_disp b/config_disp index 266570d..b28e45d 100644 --- a/config_disp +++ b/config_disp @@ -1,7 +1,3 @@ -// GENERAL -save_dir = "results" - // directory where results of reconstructions are saved and the vtk files, default "results" - // PARAMETERS FOR VISUALISATION // wavelength lamda = .13933; diff --git a/reccdi/src_py/beamlines/aps_34id/prep.py b/reccdi/src_py/beamlines/aps_34id/prep.py index e384584..decf572 100644 --- a/reccdi/src_py/beamlines/aps_34id/prep.py +++ b/reccdi/src_py/beamlines/aps_34id/prep.py @@ -1,91 +1,22 @@ import pylibconfig2 as cfg -import shutil import numpy as np import tifffile as tif import copy import scipy.fftpack as sf import os import glob +from xrayutilities.io import spec as spec -#====================================== spec parsing========================================== -class Detector(object): - def __init__(self, det_name): - self.det_name = det_name +def get_det_from_spec(specfile, scan): + # Scan numbers start at one but the list is 0 indexed + ss = spec.SPECFile(specfile)[scan - 1] + # Stuff from the header + det_area = ss.getheader_element('UIMR5').split() + det_area1 = int(det_area[0]), int(det_area[1]) + det_area2 = int(det_area[2]), int(det_area[3]) + return det_area1, det_area2 - def get_pixel(self): - pass - - -class Det_34idcTIM2(Detector): - def __init__(self): - super(Det_34idcTIM2, self).__init__('34idcTIM2:') - - def get_pixel(self): - return '(55.0e-6, 55.0e-6)' - - -class Spec_params: - def __init__(self, specfile, scan): - from xrayutilities.io import spec as spec - - # Scan numbers start at one but the list is 0 indexed - ss = spec.SPECFile(specfile)[scan - 1] - - # Stuff from the header - detector_name = str(ss.getheader_element('UIMDET')) - if detector_name == '34idcTIM2:': - self.detector_obj = Det_34idcTIM2() - det_area = ss.getheader_element('UIMR5').split() - self.det_area1 = int(det_area[0]), int(det_area[1]) - self.det_area2 = int(det_area[2]), int(det_area[3]) - command = ss.command.split() - self.scanmot = command[1] - self.scanmot_del = (float(command[3]) - float(command[2])) / int(command[4]) - - # Motor stuff from the header - self.delta = ss.init_motor_pos['INIT_MOPO_Delta'] - self.gamma = ss.init_motor_pos['INIT_MOPO_Gamma'] - self.arm = ss.init_motor_pos['INIT_MOPO_camdist'] - energy = ss.init_motor_pos['INIT_MOPO_Energy'] - self.lam = 12.398 / energy / 10 # in nanometers - - # returning the scan motor name as well. Sometimes we scan things - # other than theta. So we need to expand the capability of the display - # code. -#====================================== spec parsing end========================================== - -#====================================== prepare display config==================================== -def set_disp_conf(spec_obj, experiment_dir): - # pixel size by detector - pixel = spec_obj.detector_obj.get_pixel() #{'34idcTIM2:':'[55.0e-6, 55.0e-6]'} - - # create display configuration file from the parsed parameters - temp_file = os.path.join(experiment_dir, 'conf', 'temp') - disp_conf_file = os.path.join(experiment_dir, 'conf', 'config_disp') - with open(temp_file, 'a') as temp: - try: - with open(disp_conf_file, 'r') as f: - for line in f: - if line.startswith('crop'): - temp.write(line + '\n') - f.close() - except: - pass - - temp.write('lamda = ' + str(spec_obj.lam) + '\n') - temp.write('delta = ' + str(spec_obj.delta) + '\n') - temp.write('gamma = ' + str(spec_obj.gamma) + '\n') - temp.write('arm = ' + str(spec_obj.arm) + '\n') - temp.write('dth = ' + str(spec_obj.scanmot_del) + '\n') - temp.write('pixel = ' + str(pixel) + '\n') - temp.close() - shutil.move(temp_file, disp_conf_file) - -#====================================== prepare display config end==================================== - - -#====================================== prepare data================================================== def get_dir_list(scans, map): """ @@ -239,7 +170,7 @@ def fit(arr, det_area1, det_area2): return b -def prep_data(experiment_dir, scans, map, spec, *args): +def prep_data(experiment_dir, scans, map, det_area1, det_area2, *args): if scans is None: print ('scan info not provided') return @@ -249,15 +180,6 @@ def prep_data(experiment_dir, scans, map, spec, *args): scans.append(scans[0]) dirs = get_dir_list(scans, map) - if spec is not None: - det_area1 = spec.det_area1 - det_area2 = spec.det_area2 - elif map is not None: - det_area1 = map.det_area1 - det_area2 = map.det_area2 - else: - print ('please provide det_area1 and det_area2 values') - try: whitefile = map.whitefile except: @@ -300,10 +222,6 @@ def prep_data(experiment_dir, scans, map, spec, *args): tif.imsave(data_file, arr.astype(np.int32)) print ('done with prep') -#====================================== prepare data end================================================== - - -#====================================== entry script================================================== def prepare(experiment_dir, scans, conf_file, *args): try: @@ -316,15 +234,34 @@ def prepare(experiment_dir, scans, conf_file, *args): scan_end = scans[len(scans)-1] try: specfile = config_map.specfile - # parse parameters from spec if spec file info - spec_obj = Spec_params(specfile, scan_end) - # generate display configuration from spec parameters - set_disp_conf(spec_obj, experiment_dir) + # parse det1 and det2 parameters from spec + det_area1, det_area2 = get_det_from_spec(specfile, scan_end) except: - print ('specfile not in conf file, not generating config for display') - spec_obj = None + try: + det_quad = config_map.det_quad + if det_quad == 0: + det_area1 = (0, 512) + det_area2 = (0, 512) + elif det_quad == 1: + det_area1 = (0, 256) + det_area2 = (0, 256) + elif det_quad == 2: + det_area1 = (0, 256) + det_area2 = (256, 512) + elif det_quad == 3: + det_area1 = (256, 512) + det_area2 = (0, 256) + elif det_quad == 4: + det_area1 = (256, 512) + det_area2 = (256, 512) + else: + print('the detector quad can be configured as digt from 0 to 4') + return + except Exception as e: + print('neither spec file or detector quad is configured') + return # data prep - prep_data(experiment_dir, scans, config_map, spec_obj, args) + prep_data(experiment_dir, scans, config_map, det_area1, det_area2, args) diff --git a/reccdi/src_py/run_scripts/run_34id_prepare.py b/reccdi/src_py/run_scripts/run_34id_prepare.py index 5c07a4d..92d7f2c 100755 --- a/reccdi/src_py/run_scripts/run_34id_prepare.py +++ b/reccdi/src_py/run_scripts/run_34id_prepare.py @@ -27,13 +27,15 @@ def copy_conf(src, dest): shutil.copy(conf_data, dest) conf_rec = os.path.join(src, 'config_rec') shutil.copy(conf_rec, dest) + conf_disp = os.path.join(src, 'config_disp') + shutil.copy(conf_disp, dest) except: pass def parse_and_prepare(prefix, scan, conf_dir): id = prefix + '_' + scan - print ('reading data file for experiment ' + id) + print ('reading data files for experiment ' + id) if not os.path.isdir(conf_dir): print ('configured directory ' + conf_dir + ' does not exist') @@ -54,7 +56,6 @@ def parse_and_prepare(prefix, scan, conf_dir): print ('enter numeric values for scan range') return - main_conf = os.path.join(conf_dir, 'config') try: with open(main_conf, 'r') as f: config_map = cfg.Config(f.read()) diff --git a/reccdi/src_py/run_scripts/run_disp.py b/reccdi/src_py/run_scripts/run_disp.py index ca5a83b..64e5022 100755 --- a/reccdi/src_py/run_scripts/run_disp.py +++ b/reccdi/src_py/run_scripts/run_disp.py @@ -7,7 +7,7 @@ import shutil -def save_vtk(res_dir, conf): +def save_vtk(res_dir, conf, last_scan): try: imagefile = os.path.join(res_dir, 'image.npy') image = np.load(imagefile) @@ -33,26 +33,45 @@ def save_vtk(res_dir, conf): ut.save_tif(reciprocal_phase, os.path.join(res_dir, 'reciprocal_phase.tif')) ut.save_tif(reciprocal_sq_mod, os.path.join(res_dir, 'reciprocal_sq_mod.tif')) - try: - cohfile = os.path.join(res_dir, 'coherence.npy') + cohfile = os.path.join(res_dir, 'coherence.npy') + if os.path.isfile(cohfile): coh = np.load(cohfile) - cx.save_CX(conf, image, support, coh, res_dir) - except: - cx.save_CX(conf, image, support, None, res_dir) + cx.save_CX(conf, image, support, coh, res_dir, last_scan) + else: + cx.save_CX(conf, image, support, None, res_dir, last_scan) -def to_vtk(conf_info): - if os.path.isdir(conf_info): - experiment_dir = conf_info +def to_vtk(experiment_dir): + if os.path.isdir(experiment_dir): + scan = experiment_dir.split("-") + last_scan = int(scan[-1]) + print ('scan, last scan', scan, last_scan) conf = os.path.join(experiment_dir, 'conf', 'config_disp') + if not os.path.isfile(conf): + # try to get spec file from experiment's prep phase + main_conf = os.path.join(experiment_dir, 'conf', 'config') + if os.path.isfile(main_conf): + main_config_map = ut.read_config(main_conf) + try: + specfile = main_config_map.specfile + # create config_disp with specfile definition + f = open(conf, 'r+') + f.write('specfile = "' + specfile + '"') + f.close() + except: + print ("Missing config_disp file and can't find spec file in experiment config") + return + else: + print ("Missing config_disp file and can't find spec file in experiment config") + return else: - #assuming it's a file - conf = conf_info - experiment_dir = None + print("Please provide an experiment directory argument") + return + try: config_map = ut.read_config(conf) if config_map is None: - print ("can't read configuration file") + print ("can't read " + conf + " configuration file") return except: print ('Please check configuration file ' + conf + '. Cannot parse') @@ -87,7 +106,7 @@ def to_vtk(conf_info): except AttributeError: save_dir = os.path.join(experiment_dir, 'results') - save_vtk(save_dir, conf) + save_vtk(save_dir, conf, last_scan) for sub in os.listdir(save_dir): subdir = os.path.join(save_dir, sub) if os.path.isdir(subdir): @@ -104,11 +123,11 @@ def to_vtk(conf_info): def main(arg): print ('preparing display') parser = argparse.ArgumentParser() - parser.add_argument("conf_info", help="experiment directory or display configuration file") + parser.add_argument("experiment_dir", help="experiment directory") args = parser.parse_args() - conf_info = args.conf_info + experiment_dir = args.experiment_dir - to_vtk(conf_info) + to_vtk(experiment_dir) print ('done with display') if __name__ == "__main__": diff --git a/reccdi/src_py/utilities/CXDVizNX.py b/reccdi/src_py/utilities/CXDVizNX.py index 0db6b38..9dc94fe 100644 --- a/reccdi/src_py/utilities/CXDVizNX.py +++ b/reccdi/src_py/utilities/CXDVizNX.py @@ -19,13 +19,59 @@ __docformat__ = 'restructuredtext en' +class Detector(object): + def __init__(self, det_name): + self.det_name = det_name + + def get_pixel(self): + pass + + +class Det_34idcTIM2(Detector): + def __init__(self): + super(Det_34idcTIM2, self).__init__('34idcTIM2:') + + def get_pixel(self): + return '(55.0e-6, 55.0e-6)' + + +def parse_spec(specfile, scan): + from xrayutilities.io import spec as spec + + # Scan numbers start at one but the list is 0 indexed + ss = spec.SPECFile(specfile)[scan - 1] + + # Stuff from the header + detector_name = str(ss.getheader_element('UIMDET')) + if detector_name == '34idcTIM2:': + detector_obj = Det_34idcTIM2() + else: + # default to this detector for now + detector_obj = Det_34idcTIM2() + pixel = detector_obj.get_pixel() + command = ss.command.split() + scanmot = command[1] + scanmot_del = (float(command[3]) - float(command[2])) / int(command[4]) + + # Motor stuff from the header + delta = ss.init_motor_pos['INIT_MOPO_Delta'] + gamma = ss.init_motor_pos['INIT_MOPO_Gamma'] + arm = ss.init_motor_pos['INIT_MOPO_camdist'] + energy = ss.init_motor_pos['INIT_MOPO_Energy'] + lam = 12.398 / energy / 10 # in nanometers + + # returning the scan motor name as well. Sometimes we scan things + # other than theta. So we need to expand the capability of the display + # code. + return lam, delta, gamma, scanmot_del, arm, pixel + class DispalyParams: """ This class encapsulates parameters defining image display. The parameters are read from config file on construction """ - def __init__(self, config): + def __init__(self, config, last_scan): """ The constructor gets config file and fills out the class members. @@ -44,40 +90,52 @@ def __init__(self, config): deg2rad = np.pi / 180.0 try: - self.lamda = config_map.lamda - except AttributeError: - print ('lamda not defined') - try: - self.delta = config_map.delta * deg2rad - except AttributeError: - print ('delta not defined') - try: - self.gamma = config_map.gamma * deg2rad - except AttributeError: - print ('gamma not defined') - try: - self.arm = config_map.arm / 1000 - except AttributeError: - print ('arm not defined') - try: - self.dth = config_map.dth * deg2rad - except AttributeError: - print ('dth not defined') + specfile = config_map.specfile + self.lamda, delta, gamma, dth, arm, pixel = parse_spec(specfile, last_scan) + self.delta = delta * deg2rad + self.gamma = gamma * deg2rad + self.dth = dth * deg2rad + self.arm = arm / 1000 + pixel = pixel[1:-1] + pixel = pixel.split(',') + pixel[0], pixel[1] = float(pixel[0]), float(pixel[1]) + + except: + try: + self.lamda = config_map.lamda + except AttributeError: + print ('lamda not defined') + try: + self.delta = config_map.delta * deg2rad + except AttributeError: + print ('delta not defined') + try: + self.gamma = config_map.gamma * deg2rad + except AttributeError: + print ('gamma not defined') + try: + self.dth = config_map.dth * deg2rad + except AttributeError: + print ('dth not defined') + try: + self.arm = config_map.arm / 1000 + except AttributeError: + print ('arm not defined') + try: + pixel = config_map.pixel + except AttributeError: + print ('pixel not defined') + try: self.binning = config_map.binning except AttributeError: self.binning = [1,1,1] - try: - pixel = config_map.pixel - self.dpx = pixel[0] * self.binning[0] / self.arm - self.dpy = pixel[1] * self.binning[1] / self.arm - except AttributeError: - print ('pixel not defined') + self.dpx = pixel[0] * self.binning[0] / self.arm + self.dpy = pixel[1] * self.binning[1] / self.arm try: self.crop = config_map.crop.reverse() except AttributeError: self.crop = None - print ('crop not defined') class CXDViz(tr.HasTraits): @@ -332,9 +390,9 @@ def unbin(ar, bins): return array -def save_CX(conf, image, support, coh, save_dir): +def save_CX(conf, image, support, coh, save_dir, last_scan): image, support = center(image, support) - params = DispalyParams(conf) + params = DispalyParams(conf, last_scan) image = remove_ramp(image) viz = CXDViz() viz.set_array(image) diff --git a/reccdi/src_py/utilities/plot_errors.py b/reccdi/src_py/utilities/plot_errors.py new file mode 100755 index 0000000..79b579a --- /dev/null +++ b/reccdi/src_py/utilities/plot_errors.py @@ -0,0 +1,15 @@ +#! /usr/bin/env python + +import matplotlib.pyplot as plt +import numpy as np +import sys +import os + +current_dir = sys.path[0] +print('plotting errors') +errs = np.load(os.path.join(current_dir, 'errors.npy')).tolist() +errs.pop(0) +plt.plot(errs) +plt.ylabel('errors') +plt.show() + From 663ac3c223f67ce9f7e2d39518b3278ad742624c Mon Sep 17 00:00:00 2001 From: bfrosik Date: Fri, 31 May 2019 15:21:14 -0500 Subject: [PATCH 152/336] fixed plot_errors --- bin/cdi_window.py | 6 +++++- reccdi/src_cpp/parameters.cpp | 4 +++- reccdi/src_py/run_scripts/run_disp.py | 1 - reccdi/src_py/utilities/CXDVizNX.py | 4 ++-- reccdi/src_py/utilities/plot_errors.py | 15 --------------- reccdi/src_py/utilities/utils.py | 25 ++++++++++++++++++++----- 6 files changed, 30 insertions(+), 25 deletions(-) delete mode 100755 reccdi/src_py/utilities/plot_errors.py diff --git a/bin/cdi_window.py b/bin/cdi_window.py index 23cd743..19e3da3 100644 --- a/bin/cdi_window.py +++ b/bin/cdi_window.py @@ -205,6 +205,9 @@ def init_from_conf(self, dir): self.t.data_dir_button.setText(self.t.data_dir) self.t.spec_file_button.setStyleSheet("Text-align:left") self.t.spec_file_button.setText(self.t.specfile) + # set also in display tab + self.t.spec_file_button1.setStyleSheet("Text-align:left") + self.t.spec_file_button1.setText(self.t.specfile) self.t.dark_file_button.setStyleSheet("Text-align:left") self.t.dark_file_button.setText(self.t.darkfile) self.t.white_file_button.setStyleSheet("Text-align:left") @@ -314,7 +317,8 @@ def init_from_conf(self, dir): except AttributeError: pass try: - self.t.specfile = conf_map.specfile + specfile = conf_map.specfile + self.t.specfile = specfile self.t.spec_file_button1.setStyleSheet("Text-align:left") self.t.spec_file_button1.setText(self.t.specfile) except AttributeError: diff --git a/reccdi/src_cpp/parameters.cpp b/reccdi/src_cpp/parameters.cpp index 0dfde18..10c4904 100644 --- a/reccdi/src_cpp/parameters.cpp +++ b/reccdi/src_cpp/parameters.cpp @@ -412,7 +412,9 @@ Params::Params(const char* config_file, std::vector data_dim, bool first) } catch ( const SettingNotFoundException &nfex) { - printf((std::string("No 'partial_coherence_iteration_num' parameter in configuration file. Setting to 20.\n")).c_str()); + twin_halves.push_back(0); + twin_halves.push_back(0); + printf((std::string("No 'twin_halves' parameter in configuration file. Setting to (0,0).\n")).c_str()); } if ((first) && root.exists("resolution_trigger")) diff --git a/reccdi/src_py/run_scripts/run_disp.py b/reccdi/src_py/run_scripts/run_disp.py index 64e5022..30855dc 100755 --- a/reccdi/src_py/run_scripts/run_disp.py +++ b/reccdi/src_py/run_scripts/run_disp.py @@ -45,7 +45,6 @@ def to_vtk(experiment_dir): if os.path.isdir(experiment_dir): scan = experiment_dir.split("-") last_scan = int(scan[-1]) - print ('scan, last scan', scan, last_scan) conf = os.path.join(experiment_dir, 'conf', 'config_disp') if not os.path.isfile(conf): # try to get spec file from experiment's prep phase diff --git a/reccdi/src_py/utilities/CXDVizNX.py b/reccdi/src_py/utilities/CXDVizNX.py index 9dc94fe..84ba56c 100644 --- a/reccdi/src_py/utilities/CXDVizNX.py +++ b/reccdi/src_py/utilities/CXDVizNX.py @@ -99,8 +99,8 @@ def __init__(self, config, last_scan): pixel = pixel[1:-1] pixel = pixel.split(',') pixel[0], pixel[1] = float(pixel[0]), float(pixel[1]) - - except: + except Exception as e: + print (str(e)) try: self.lamda = config_map.lamda except AttributeError: diff --git a/reccdi/src_py/utilities/plot_errors.py b/reccdi/src_py/utilities/plot_errors.py deleted file mode 100755 index 79b579a..0000000 --- a/reccdi/src_py/utilities/plot_errors.py +++ /dev/null @@ -1,15 +0,0 @@ -#! /usr/bin/env python - -import matplotlib.pyplot as plt -import numpy as np -import sys -import os - -current_dir = sys.path[0] -print('plotting errors') -errs = np.load(os.path.join(current_dir, 'errors.npy')).tolist() -errs.pop(0) -plt.plot(errs) -plt.ylabel('errors') -plt.show() - diff --git a/reccdi/src_py/utilities/utils.py b/reccdi/src_py/utilities/utils.py index 7820dfd..b0bebfd 100644 --- a/reccdi/src_py/utilities/utils.py +++ b/reccdi/src_py/utilities/utils.py @@ -458,6 +458,25 @@ def save_metrics(errs, dir, metrics=None): f.write(str(er) + ' ') f.close() +def write_plot_errors(save_dir): + print ('in plot err') + plot_file = os.path.join(save_dir, 'plot_errors.py') + f = open(plot_file, 'w+') + f.write("#! /usr/bin/env python\n") + f.write("import matplotlib.pyplot as plt\n") + f.write("import numpy as np\n") + f.write("import sys\n") + f.write("import os\n") + f.write("current_dir = sys.path[0]\n") + f.write("errs = np.load(os.path.join(current_dir, 'errors.npy')).tolist()\n") + f.write("errs.pop(0)\n") + f.write("plt.plot(errs)\n") + f.write("plt.ylabel('errors')\n") + f.write("plt.show()") + f.close() + st = os.stat(plot_file) + os.chmod(plot_file, st.st_mode | stat.S_IEXEC) + def save_results(image, support, coh, errs, reciprocal, save_dir, metrics=None): if not os.path.exists(save_dir): @@ -474,11 +493,7 @@ def save_results(image, support, coh, errs, reciprocal, save_dir, metrics=None): np.save(coh_file, coh) reciprocal_file = os.path.join(save_dir, 'reciprocal') np.save(reciprocal_file, reciprocal) - plot_file = 'reccdi/src_py/utilities/plot_errors.py' - plot_exp_file = os.path.join(save_dir, 'plot_errors.py') - shutil.copyfile(plot_file, plot_exp_file) - st = os.stat(plot_exp_file) - os.chmod(plot_exp_file, st.st_mode | stat.S_IEXEC) + write_plot_errors(save_dir) if metrics is not None: save_metrics(errs, save_dir, metrics) else: From c8534ddde5baa096119fb089b3920dcba7c3d97a Mon Sep 17 00:00:00 2001 From: bfrosik Date: Tue, 4 Jun 2019 15:06:22 -0500 Subject: [PATCH 153/336] fixed binning and crop --- reccdi/src_py/controller/data.py | 13 ++++++++++--- reccdi/src_py/utilities/CXDVizNX.py | 25 +++++++++++++++++++------ reccdi/src_py/utilities/utils.py | 1 - 3 files changed, 29 insertions(+), 10 deletions(-) diff --git a/reccdi/src_py/controller/data.py b/reccdi/src_py/controller/data.py index 640dedc..71479b9 100644 --- a/reccdi/src_py/controller/data.py +++ b/reccdi/src_py/controller/data.py @@ -123,10 +123,16 @@ def prep(fname, conf_info): try: binsizes = config_map.binning + bins = [] + for binsize in binsizes: + bins.append(binsize) + filler = len(prep_data.shape) - len(bins) + for _ in range(filler): + bins.append(1) # The bins are entered in reverse order - binsizes.reverse() + bins.reverse() print ('binning') - prep_data = ut.binning(prep_data, binsizes) + prep_data = ut.binning(prep_data, bins) except AttributeError: pass @@ -174,6 +180,7 @@ def prep(fname, conf_info): print ('saving data ready for reconstruction, data dims:', shape) # np.save(data_file, prep_data) ut.save_tif(prep_data, data_file) + print ('---data shape', prep_data.shape) -#prep('/local/bfrosik/CDI/S149/Staff14-3_S0149.tif', 'config_data') +#prep('/local/bfrosik/CDI/S149/Staff14-3_S0149.tif', 'config_data') \ No newline at end of file diff --git a/reccdi/src_py/utilities/CXDVizNX.py b/reccdi/src_py/utilities/CXDVizNX.py index 84ba56c..02cfb41 100644 --- a/reccdi/src_py/utilities/CXDVizNX.py +++ b/reccdi/src_py/utilities/CXDVizNX.py @@ -100,7 +100,7 @@ def __init__(self, config, last_scan): pixel = pixel.split(',') pixel[0], pixel[1] = float(pixel[0]), float(pixel[1]) except Exception as e: - print (str(e)) + # print (str(e)) try: self.lamda = config_map.lamda except AttributeError: @@ -127,13 +127,26 @@ def __init__(self, config, last_scan): print ('pixel not defined') try: - self.binning = config_map.binning + self.binning = [] + binning = config_map.binning + for i in range(len(binning)): + self.binning.append(binning[i]) + for _ in range(3 - len(self.binning)): + self.binning.append(1) except AttributeError: self.binning = [1,1,1] - self.dpx = pixel[0] * self.binning[0] / self.arm - self.dpy = pixel[1] * self.binning[1] / self.arm + self.dpx = pixel[0] * self.binning[0] / self.arm / self.binning[2] + self.dpy = pixel[1] * self.binning[1] / self.arm / self.binning[2] try: - self.crop = config_map.crop.reverse() + self.crop = [] + crop = config_map.crop + for i in range(len(crop)): + self.crop.append(crop[i]) + for _ in range(3 - len(self.crop)): + self.crop.append(1.0) + self.crop.reverse() + for i in range(3): + self.crop[i] = self.crop[i] * self.binning[i] except AttributeError: self.crop = None @@ -413,4 +426,4 @@ def save_CX(conf, image, support, coh, save_dir, last_scan): viz.write_structured_grid(coh_file) # a = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') -# remove_ramp(a, 3) +# remove_ramp(a, 3) \ No newline at end of file diff --git a/reccdi/src_py/utilities/utils.py b/reccdi/src_py/utilities/utils.py index b0bebfd..ed028dc 100644 --- a/reccdi/src_py/utilities/utils.py +++ b/reccdi/src_py/utilities/utils.py @@ -459,7 +459,6 @@ def save_metrics(errs, dir, metrics=None): f.close() def write_plot_errors(save_dir): - print ('in plot err') plot_file = os.path.join(save_dir, 'plot_errors.py') f = open(plot_file, 'w+') f.write("#! /usr/bin/env python\n") From 6560ebaf7b90dd7704974420e223b5311abace97 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Mon, 10 Jun 2019 16:09:56 -0500 Subject: [PATCH 154/336] moved creating algorithm objects from State to Worker --- reccdi/include/state.hpp | 13 ++++--------- reccdi/include/worker.hpp | 5 +++++ reccdi/src_cpp/state.cpp | 34 ++++------------------------------ reccdi/src_cpp/worker.cpp | 27 ++++++++++++++++++++++++++- 4 files changed, 39 insertions(+), 40 deletions(-) diff --git a/reccdi/include/state.hpp b/reccdi/include/state.hpp index bb97e5b..92f52ab 100644 --- a/reccdi/include/state.hpp +++ b/reccdi/include/state.hpp @@ -13,7 +13,6 @@ See LICENSE file. class Params; class Reconstruction; -class Algorithm; namespace af { class array; @@ -34,15 +33,10 @@ class State // The vector of errors indexed by iteration std::vector errors; - // current algorithm - Algorithm * current_alg; + // current algorithm id + int current_alg; // current index of index switches vector int alg_switch_index; - - // mapping of algorithm id to an Algorithm object - std::map algorithm_map; - - void MapAlgorithmObject(int alg_id); public: // Constructor. Takes pointer to the Param object. Uses the Param object to set the initial values. @@ -68,7 +62,8 @@ class State int GetCurrentIteration(); // Returns an algorithm that should be run in a current state (i.e. iteration). - Algorithm * GetCurrentAlg(); +// Algorithm * GetCurrentAlg(); + int GetCurrentAlg(); // Stores the error void RecordError(d_type error); diff --git a/reccdi/include/worker.hpp b/reccdi/include/worker.hpp index 1e8a551..397bf99 100644 --- a/reccdi/include/worker.hpp +++ b/reccdi/include/worker.hpp @@ -18,6 +18,7 @@ class State; class Support; class PartialCoherence; class Resolution; +class Algorithm; using namespace af; @@ -60,8 +61,12 @@ typedef void (Reconstruction::*fp)(void); std::vector coherence_vector; std::vector > iter_flow; + // mapping of algorithm id to an Algorithm object + std::map algorithm_map; + //d_type max_data; // af::Window * errors_plot; + void MapAlgorithmObject(int alg_id); // This method returns sum of squares of all elements in the array double GetNorm(af::array arr); diff --git a/reccdi/src_cpp/state.cpp b/reccdi/src_cpp/state.cpp index f189808..830c71d 100644 --- a/reccdi/src_cpp/state.cpp +++ b/reccdi/src_cpp/state.cpp @@ -9,7 +9,6 @@ See LICENSE file. #include "state.hpp" #include "parameters.hpp" #include "support.hpp" -#include "algorithm.hpp" #include "pcdi.hpp" #include "arrayfire.h" @@ -21,44 +20,19 @@ State::State(Params* parameters) params = parameters; current_iter = -1; total_iter_num = 0; - current_alg = NULL; + current_alg = 0; alg_switch_index = 0; } State::~State() { errors.clear(); - algorithm_map.clear(); } void State::Init() { total_iter_num = params->GetNumberIterations(); - // create algorithms that are used in algorithm sequence - // and load the objects into a map - for (int i = 0; i < params->GetAlgSwitches().size(); i++) - { - int alg_id = params->GetAlgSwitches()[i].algorithm_id; - if (algorithm_map[alg_id] == 0) - { - MapAlgorithmObject(alg_id); - } - } - current_alg = algorithm_map[params->GetAlgSwitches()[0].algorithm_id]; -} - -void State::MapAlgorithmObject(int alg_id) -{ - // TODO consider refactoring if there are many subclasses - // this method is called only during initialization, so it might be ok - if (alg_id == ALGORITHM_HIO) - { - algorithm_map[alg_id] = new Hio; - } - else if(alg_id == ALGORITHM_ER) - { - algorithm_map[alg_id] = new Er; - } + current_alg = params->GetAlgSwitches()[0].algorithm_id; } int State::Next() @@ -72,13 +46,13 @@ int State::Next() // switch to the next algorithm { alg_switch_index++; - current_alg = algorithm_map[params->GetAlgSwitches()[alg_switch_index].algorithm_id]; + current_alg = params->GetAlgSwitches()[alg_switch_index].algorithm_id; } return true; } -Algorithm * State::GetCurrentAlg() +int State::GetCurrentAlg() { return current_alg; } diff --git a/reccdi/src_cpp/worker.cpp b/reccdi/src_cpp/worker.cpp index 3b748ab..b7e699d 100644 --- a/reccdi/src_cpp/worker.cpp +++ b/reccdi/src_cpp/worker.cpp @@ -89,10 +89,21 @@ Reconstruction::~Reconstruction() support_vector.clear(); coherence_vector.clear(); iter_flow.clear(); + algorithm_map.clear(); } void Reconstruction::Init() { + // create algorithms that are used in algorithm sequence + // and load the objects into a map + for (int i = 0; i < params->GetAlgSwitches().size(); i++) + { + int alg_id = params->GetAlgSwitches()[i].algorithm_id; + if (algorithm_map[alg_id] == 0) + { + MapAlgorithmObject(alg_id); + } + } std::map flow_ptr_map; flow_ptr_map["NextIter"] = &Reconstruction::NextIter; flow_ptr_map["ResolutionTrigger"] = &Reconstruction::ResolutionTrigger; @@ -150,6 +161,20 @@ void Reconstruction::Init() } +void Reconstruction::MapAlgorithmObject(int alg_id) +{ + // TODO consider refactoring if there are many subclasses + // this method is called only during initialization, so it might be ok + if (alg_id == ALGORITHM_HIO) + { + algorithm_map[alg_id] = new Hio; + } + else if(alg_id == ALGORITHM_ER) + { + algorithm_map[alg_id] = new Er; + } +} + void Reconstruction::Iterate() { while (state->Next()) @@ -261,7 +286,7 @@ void Reconstruction::ToDirect() void Reconstruction::RunAlg() { - Algorithm * alg = state->GetCurrentAlg(); + Algorithm * alg = algorithm_map[state->GetCurrentAlg()]; alg->RunAlgorithm(this); printf("RunAlg\n"); } From 5c728acee2f37cb9cb6be8ce92059730e2334b0e Mon Sep 17 00:00:00 2001 From: bfrosik Date: Tue, 11 Jun 2019 14:18:53 -0500 Subject: [PATCH 155/336] initialized darkfile and whitefile --- bin/cdi_window.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bin/cdi_window.py b/bin/cdi_window.py index 19e3da3..70d4892 100644 --- a/bin/cdi_window.py +++ b/bin/cdi_window.py @@ -374,6 +374,8 @@ def __init__(self, main_win, parent=None): self.tab4 = QWidget() self.specfile = None + self.darkfile = None + self.whitefile = None self.addTab(self.tab1, "Data prep") self.addTab(self.tab2, "Data") self.addTab(self.tab3, "Reconstruction") From fc2d8f8a35e7bbf05ffc2b3468ca904be9012bb9 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 13 Jun 2019 14:39:15 -0500 Subject: [PATCH 156/336] Update prep.py fixed bug when reading data directories --- reccdi/src_py/beamlines/aps_34id/prep.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/reccdi/src_py/beamlines/aps_34id/prep.py b/reccdi/src_py/beamlines/aps_34id/prep.py index decf572..362bb03 100644 --- a/reccdi/src_py/beamlines/aps_34id/prep.py +++ b/reccdi/src_py/beamlines/aps_34id/prep.py @@ -49,9 +49,7 @@ def get_dir_list(scans, map): continue try: index = int(name[-4:]) - if index > scans[1]: - break - if index >= scans[0] and not index in exclude_scans: + if index >= scans[0] and index <= scans[1] and not index in exclude_scans: dirs.append(subdir) except: continue From a354e0a58c27173ff8093afb4c5a0b2cf5c075a6 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Tue, 18 Jun 2019 11:10:46 -0500 Subject: [PATCH 157/336] Update run_disp.py --- reccdi/src_py/run_scripts/run_disp.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/reccdi/src_py/run_scripts/run_disp.py b/reccdi/src_py/run_scripts/run_disp.py index 30855dc..27cab82 100755 --- a/reccdi/src_py/run_scripts/run_disp.py +++ b/reccdi/src_py/run_scripts/run_disp.py @@ -43,7 +43,10 @@ def save_vtk(res_dir, conf, last_scan): def to_vtk(experiment_dir): if os.path.isdir(experiment_dir): - scan = experiment_dir.split("-") + if '-' in experiment_dir: + scan = experiment_dir.split("-") + else: + scan = experiment_dir.split("_") last_scan = int(scan[-1]) conf = os.path.join(experiment_dir, 'conf', 'config_disp') if not os.path.isfile(conf): From 5afbe310534abe1615281fabf1a765f59139ce8b Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 20 Jun 2019 13:31:57 -0500 Subject: [PATCH 158/336] Update run_disp.py --- reccdi/src_py/run_scripts/run_disp.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/reccdi/src_py/run_scripts/run_disp.py b/reccdi/src_py/run_scripts/run_disp.py index 27cab82..b35013d 100755 --- a/reccdi/src_py/run_scripts/run_disp.py +++ b/reccdi/src_py/run_scripts/run_disp.py @@ -112,11 +112,11 @@ def to_vtk(experiment_dir): for sub in os.listdir(save_dir): subdir = os.path.join(save_dir, sub) if os.path.isdir(subdir): - save_vtk(subdir, conf) + save_vtk(subdir, conf, last_scan) for sub_sub in os.listdir(subdir): sub_sub = os.path.join(subdir, sub_sub) if os.path.isdir(sub_sub): - save_vtk(sub_sub, conf) + save_vtk(sub_sub, conf, last_scan) last = os.path.join('conf', 'last', 'config_disp') shutil.copy(conf, last) From 3eaf49a8f5b1a93ef1992489bc0496b1a43aeca1 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 20 Jun 2019 14:02:16 -0500 Subject: [PATCH 159/336] Update how_to_run --- how_to_run | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/how_to_run b/how_to_run index 6774036..bd73ca7 100644 --- a/how_to_run +++ b/how_to_run @@ -16,7 +16,7 @@ How to run using command line scripts: source bin/everything.sh 2. to run separately: -python bin/run_34id_prepare.py +python bin/prepare_34id.py python bin/run_data.py source bin/run_rec.sh python bin/run_disp.py @@ -29,13 +29,13 @@ python bin/run_disp.py example: 1. running all pieces -source bin/everything.sh 'opencl' 'B' '290-290' 'conf/last' +source bin/everything.sh opencl B 290-290 conf/last 2. running one by one -python bin/prepare_34id.py 'B' '290-290' 'conf/last' -python bin/run_data.py '/net/s34data/export/34idc-data/2018/Chung1118/test/B_290-290' -source bin/run_rec.sh 'opencl' '/net/s34data/export/34idc-data/2018/Chung1118/test/B_290-290' -python bin/run_disp.py '/net/s34data/export/34idc-data/2018/Chung1118/test/B_290-290' +python bin/prepare_34id.py B 290-290 conf/last +python bin/run_data.py test/B_290-290 +source bin/run_rec.sh opencl test/B_290-290 +python bin/run_disp.py test/B_290-290 How to run using GUI: --------------------- -1. source bin/cdi_window.sh \ No newline at end of file +1. source bin/cdi_window.sh From e5bb2f2e7bbd50043a43f89b2a41741b64b690b0 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 20 Jun 2019 17:47:15 -0500 Subject: [PATCH 160/336] Update run_disp.py --- reccdi/src_py/run_scripts/run_disp.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/reccdi/src_py/run_scripts/run_disp.py b/reccdi/src_py/run_scripts/run_disp.py index b35013d..e96922f 100755 --- a/reccdi/src_py/run_scripts/run_disp.py +++ b/reccdi/src_py/run_scripts/run_disp.py @@ -43,10 +43,11 @@ def save_vtk(res_dir, conf, last_scan): def to_vtk(experiment_dir): if os.path.isdir(experiment_dir): - if '-' in experiment_dir: - scan = experiment_dir.split("-") + exp_name = experiment_dir.split("/")[-1] + if '-' in exp_name: + scan = exp_name.split("-") else: - scan = experiment_dir.split("_") + scan = exp_name.split("_") last_scan = int(scan[-1]) conf = os.path.join(experiment_dir, 'conf', 'config_disp') if not os.path.isfile(conf): From d8e71c45e707cdcd2bf49f084717b86b483d2204 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 20 Jun 2019 17:55:52 -0500 Subject: [PATCH 161/336] Update cdi_window.py --- bin/cdi_window.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/cdi_window.py b/bin/cdi_window.py index 70d4892..b675fef 100644 --- a/bin/cdi_window.py +++ b/bin/cdi_window.py @@ -1060,7 +1060,7 @@ def fill_active(self, layout): def rec_default(self): self.support_triggers.setText('(1,1)') - self.support_type.setText('"GAUSS"') + self.support_type.setText('GAUSS') self.support_area.setText('(.5,.5,.5)') self.sigma.setText('1.0') self.threshold.setText('0.1') @@ -1160,7 +1160,7 @@ def fill_active(self, layout): def rec_default(self): self.pcdi_triggers.setText('(50,50)') - self.pcdi_type.setText('"LUCY"') + self.pcdi_type.setText('LUCY') self.pcdi_iter.setText('20') self.pcdi_normalize.setText('true') self.pcdi_roi.setText('(32,32,32)') From d87c4cd7fd17b3a1c0e17c95d50802ddedfe37a8 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Fri, 21 Jun 2019 11:22:44 -0500 Subject: [PATCH 162/336] Update run_disp.py --- reccdi/src_py/run_scripts/run_disp.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/reccdi/src_py/run_scripts/run_disp.py b/reccdi/src_py/run_scripts/run_disp.py index e96922f..bc39926 100755 --- a/reccdi/src_py/run_scripts/run_disp.py +++ b/reccdi/src_py/run_scripts/run_disp.py @@ -43,12 +43,11 @@ def save_vtk(res_dir, conf, last_scan): def to_vtk(experiment_dir): if os.path.isdir(experiment_dir): - exp_name = experiment_dir.split("/")[-1] - if '-' in exp_name: - scan = exp_name.split("-") - else: - scan = exp_name.split("_") - last_scan = int(scan[-1]) + scan = experiment_dir.split("-")[-1] + try: + last_scan = int(scan) + except: + last_scan = int(scan.split("_")[-1]) conf = os.path.join(experiment_dir, 'conf', 'config_disp') if not os.path.isfile(conf): # try to get spec file from experiment's prep phase From 353d9221ef0bb5d0fc1790f60f0a36821ed0b2c3 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Mon, 24 Jun 2019 10:46:55 -0500 Subject: [PATCH 163/336] setting pcdi only if trigger start is smaller than number of iterations --- reccdi/src_cpp/parameters.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/reccdi/src_cpp/parameters.cpp b/reccdi/src_cpp/parameters.cpp index 10c4904..e67e36b 100644 --- a/reccdi/src_cpp/parameters.cpp +++ b/reccdi/src_cpp/parameters.cpp @@ -109,8 +109,13 @@ Params::Params(const char* config_file, std::vector data_dim, bool first) { if (root.exists(flow_item)) { - is_pcdi = true; - used_flow_seq.push_back(i); + const Setting &tmp = root[flow_item]; + int first_pcdi = tmp[0]; + if (first_pcdi < number_iterations) + { + is_pcdi = true; + used_flow_seq.push_back(i); + } } } else From ee8ad077dcfc7bd14643a0f41ada4df2397ad2e5 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Mon, 24 Jun 2019 14:20:41 -0500 Subject: [PATCH 164/336] showing arguments parsed from spec in window --- bin/cdi_window.py | 63 ++++++++++++---- config_disp | 2 +- reccdi/src_py/beamlines/aps_34id/prep.py | 14 +--- reccdi/src_py/run_scripts/run_34id_prepare.py | 1 - reccdi/src_py/utilities/CXDVizNX.py | 53 +------------- reccdi/src_py/utilities/spec.py | 73 +++++++++++++++++++ 6 files changed, 130 insertions(+), 76 deletions(-) create mode 100644 reccdi/src_py/utilities/spec.py diff --git a/bin/cdi_window.py b/bin/cdi_window.py index b675fef..eb67f95 100644 --- a/bin/cdi_window.py +++ b/bin/cdi_window.py @@ -8,6 +8,7 @@ import reccdi.src_py.run_scripts.run_rec as run_rc import reccdi.src_py.run_scripts.run_disp as run_dp import reccdi.src_py.utilities.utils as ut +import reccdi.src_py.utilities.spec as spec import importlib @@ -205,7 +206,7 @@ def init_from_conf(self, dir): self.t.data_dir_button.setText(self.t.data_dir) self.t.spec_file_button.setStyleSheet("Text-align:left") self.t.spec_file_button.setText(self.t.specfile) - # set also in display tab + # set specfile also in display tab self.t.spec_file_button1.setStyleSheet("Text-align:left") self.t.spec_file_button1.setText(self.t.specfile) self.t.dark_file_button.setStyleSheet("Text-align:left") @@ -293,7 +294,7 @@ def init_from_conf(self, dir): except AttributeError: pass try: - self.t.lamda.setText(str(conf_map.lamda).replace(" ", "")) + self.t.energy.setText(str(conf_map.energy).replace(" ", "")) except AttributeError: pass try: @@ -323,6 +324,8 @@ def init_from_conf(self, dir): self.t.spec_file_button1.setText(self.t.specfile) except AttributeError: pass + if os.path.isfile(self.t.specfile): + self.t.parse_spec() def msg_window(self, text): @@ -373,6 +376,7 @@ def __init__(self, main_win, parent=None): self.tab3 = QWidget() self.tab4 = QWidget() + self.data_dir = None self.specfile = None self.darkfile = None self.whitefile = None @@ -387,8 +391,6 @@ def __init__(self, main_win, parent=None): def tab1UI(self): - self.data_dir = None - # self.specfile = None self.script = None self.imported_script = False layout = QFormLayout() @@ -425,6 +427,8 @@ def tab1UI(self): self.spec_file_button.clicked.connect(self.set_spec_file) self.dark_file_button.clicked.connect(self.set_dark_file) self.white_file_button.clicked.connect(self.set_white_file) + self.det_quad.textChanged.connect(lambda: self.set_overriden(self.det_quad)) + self.layout1 = layout def load_prep(self, layout): @@ -523,16 +527,16 @@ def tab4UI(self): layout.addRow("crop", self.crop) self.spec_file_button1 = QPushButton() layout.addRow("spec file", self.spec_file_button1) - self.lamda = QLineEdit() - layout.addRow("lamda", self.lamda) + self.energy = QLineEdit() + layout.addRow("energy", self.energy) self.delta = QLineEdit() - layout.addRow("delta", self.delta) + layout.addRow("delta (deg)", self.delta) self.gamma = QLineEdit() - layout.addRow("gamma", self.gamma) + layout.addRow("gamma (deg)", self.gamma) self.arm = QLineEdit() - layout.addRow("arm", self.arm) + layout.addRow("arm (m)", self.arm) self.dth = QLineEdit() - layout.addRow("dth", self.dth) + layout.addRow("dth (deg)", self.dth) self.pixel = QLineEdit() layout.addRow("pixel", self.pixel) self.config_disp = QPushButton('process display', self) @@ -541,6 +545,17 @@ def tab4UI(self): self.spec_file_button1.clicked.connect(self.set_spec_file) self.config_disp.clicked.connect(self.display) + self.energy.textChanged.connect(lambda: self.set_overriden(self.energy)) + self.delta.textChanged.connect(lambda: self.set_overriden(self.delta)) + self.gamma.textChanged.connect(lambda: self.set_overriden(self.gamma)) + self.arm.textChanged.connect(lambda: self.set_overriden(self.arm)) + self.dth.textChanged.connect(lambda: self.set_overriden(self.dth)) + self.pixel.textChanged.connect(lambda: self.set_overriden(self.pixel)) + self.layout4 = layout + + + def set_overriden(self, item): + item.setStyleSheet('color: black') def set_spec_file(self): @@ -549,6 +564,28 @@ def set_spec_file(self): self.spec_file_button.setText(self.specfile) self.spec_file_button1.setStyleSheet("Text-align:left") self.spec_file_button1.setText(self.specfile) + self.parse_spec() + + + def parse_spec(self): + last_scan = int(self.main_win.scan.split('-')[-1]) + det1, det2, det_quad = spec.get_det_from_spec(self.specfile, last_scan) + if det_quad is not None: + self.det_quad.setText(det_quad) + self.det_quad.setStyleSheet('color: blue') + energy, delta, gamma, dth, arm, pixel = spec.parse_spec(self.specfile, last_scan) + self.energy.setText(str(energy)) + self.energy.setStyleSheet('color: blue') + self.delta.setText(str(delta)) + self.delta.setStyleSheet('color: blue') + self.gamma.setText(str(gamma)) + self.gamma.setStyleSheet('color: blue') + self.dth.setText(str(dth)) + self.dth.setStyleSheet('color: blue') + self.arm.setText(str(arm)) + self.arm.setStyleSheet('color: blue') + self.pixel.setText(str(pixel)) + self.pixel.setStyleSheet('color: blue') def set_dark_file(self): @@ -792,7 +829,7 @@ def reconstruction(self): def display(self): if (self.specfile is None or not os.path.isfile(self.specfile)) and \ - (len(self.lamda.text()) == 0 or \ + (len(self.energy.text()) == 0 or \ len(self.delta.text()) == 0 or \ len(self.gamma.text()) == 0 or \ len(self.arm.text()) == 0 or \ @@ -808,8 +845,8 @@ def display(self): conf_map = {} if type(self.specfile) is not None: conf_map['specfile'] = '"' + str(self.specfile) + '"' - if len(self.lamda.text()) > 0: - conf_map['lamda'] = str(self.lamda.text()) + if len(self.energy.text()) > 0: + conf_map['energy'] = str(self.energy.text()) if len(self.delta.text()) > 0: conf_map['delta'] = str(self.delta.text()) if len(self.gamma.text()) > 0: diff --git a/config_disp b/config_disp index b28e45d..a77918b 100644 --- a/config_disp +++ b/config_disp @@ -1,6 +1,6 @@ // PARAMETERS FOR VISUALISATION // wavelength -lamda = .13933; +energy = .13933; // delta (degrees) delta = 30.1; // gamma (degrees) diff --git a/reccdi/src_py/beamlines/aps_34id/prep.py b/reccdi/src_py/beamlines/aps_34id/prep.py index 362bb03..d990fb1 100644 --- a/reccdi/src_py/beamlines/aps_34id/prep.py +++ b/reccdi/src_py/beamlines/aps_34id/prep.py @@ -5,17 +5,7 @@ import scipy.fftpack as sf import os import glob -from xrayutilities.io import spec as spec - - -def get_det_from_spec(specfile, scan): - # Scan numbers start at one but the list is 0 indexed - ss = spec.SPECFile(specfile)[scan - 1] - # Stuff from the header - det_area = ss.getheader_element('UIMR5').split() - det_area1 = int(det_area[0]), int(det_area[1]) - det_area2 = int(det_area[2]), int(det_area[3]) - return det_area1, det_area2 +import reccdi.src_py.utilities.spec as spec def get_dir_list(scans, map): @@ -233,7 +223,7 @@ def prepare(experiment_dir, scans, conf_file, *args): try: specfile = config_map.specfile # parse det1 and det2 parameters from spec - det_area1, det_area2 = get_det_from_spec(specfile, scan_end) + det_area1, det_area2, quad = spec.get_det_from_spec(specfile, scan_end) except: try: det_quad = config_map.det_quad diff --git a/reccdi/src_py/run_scripts/run_34id_prepare.py b/reccdi/src_py/run_scripts/run_34id_prepare.py index 92d7f2c..8ead4dc 100755 --- a/reccdi/src_py/run_scripts/run_34id_prepare.py +++ b/reccdi/src_py/run_scripts/run_34id_prepare.py @@ -83,7 +83,6 @@ def parse_and_prepare(prefix, scan, conf_dir): return experiment_dir - def main(arg): parser = argparse.ArgumentParser() parser.add_argument("id", help="prefix to name of the experiment/data reconstruction") diff --git a/reccdi/src_py/utilities/CXDVizNX.py b/reccdi/src_py/utilities/CXDVizNX.py index 02cfb41..914e5e6 100644 --- a/reccdi/src_py/utilities/CXDVizNX.py +++ b/reccdi/src_py/utilities/CXDVizNX.py @@ -12,59 +12,13 @@ import scipy.ndimage as ndi import math as m import reccdi.src_py.utilities.utils as ut -import scipy.fftpack as sp +import reccdi.src_py.utilities.spec as sput __author__ = "Barbara Frosik" __copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." __docformat__ = 'restructuredtext en' -class Detector(object): - def __init__(self, det_name): - self.det_name = det_name - - def get_pixel(self): - pass - - -class Det_34idcTIM2(Detector): - def __init__(self): - super(Det_34idcTIM2, self).__init__('34idcTIM2:') - - def get_pixel(self): - return '(55.0e-6, 55.0e-6)' - - -def parse_spec(specfile, scan): - from xrayutilities.io import spec as spec - - # Scan numbers start at one but the list is 0 indexed - ss = spec.SPECFile(specfile)[scan - 1] - - # Stuff from the header - detector_name = str(ss.getheader_element('UIMDET')) - if detector_name == '34idcTIM2:': - detector_obj = Det_34idcTIM2() - else: - # default to this detector for now - detector_obj = Det_34idcTIM2() - pixel = detector_obj.get_pixel() - command = ss.command.split() - scanmot = command[1] - scanmot_del = (float(command[3]) - float(command[2])) / int(command[4]) - - # Motor stuff from the header - delta = ss.init_motor_pos['INIT_MOPO_Delta'] - gamma = ss.init_motor_pos['INIT_MOPO_Gamma'] - arm = ss.init_motor_pos['INIT_MOPO_camdist'] - energy = ss.init_motor_pos['INIT_MOPO_Energy'] - lam = 12.398 / energy / 10 # in nanometers - - # returning the scan motor name as well. Sometimes we scan things - # other than theta. So we need to expand the capability of the display - # code. - return lam, delta, gamma, scanmot_del, arm, pixel - class DispalyParams: """ This class encapsulates parameters defining image display. The parameters are read from config file on @@ -91,7 +45,7 @@ def __init__(self, config, last_scan): deg2rad = np.pi / 180.0 try: specfile = config_map.specfile - self.lamda, delta, gamma, dth, arm, pixel = parse_spec(specfile, last_scan) + self.lamda, delta, gamma, dth, arm, pixel = sput.parse_spec(specfile, last_scan) self.delta = delta * deg2rad self.gamma = gamma * deg2rad self.dth = dth * deg2rad @@ -102,7 +56,8 @@ def __init__(self, config, last_scan): except Exception as e: # print (str(e)) try: - self.lamda = config_map.lamda + energy = config_map.energy + self.lamda = 12.398 / energy / 10 except AttributeError: print ('lamda not defined') try: diff --git a/reccdi/src_py/utilities/spec.py b/reccdi/src_py/utilities/spec.py new file mode 100644 index 0000000..f21f1bd --- /dev/null +++ b/reccdi/src_py/utilities/spec.py @@ -0,0 +1,73 @@ +from xrayutilities.io import spec as spec + +class Detector(object): + def __init__(self, det_name): + self.det_name = det_name + + def get_pixel(self): + pass + + +class Det_34idcTIM2(Detector): + def __init__(self): + super(Det_34idcTIM2, self).__init__('34idcTIM2:') + + def get_pixel(self): + return '(55.0e-6, 55.0e-6)' + + +def parse_spec(specfile, scan): + # Scan numbers start at one but the list is 0 indexed + ss = spec.SPECFile(specfile)[scan - 1] + + # Stuff from the header + detector_name = str(ss.getheader_element('UIMDET')) + if detector_name == '34idcTIM2:': + detector_obj = Det_34idcTIM2() + else: + # default to this detector for now + detector_obj = Det_34idcTIM2() + pixel = detector_obj.get_pixel() + command = ss.command.split() + scanmot = command[1] + scanmot_del = (float(command[3]) - float(command[2])) / int(command[4]) + + # Motor stuff from the header + delta = ss.init_motor_pos['INIT_MOPO_Delta'] + gamma = ss.init_motor_pos['INIT_MOPO_Gamma'] + arm = ss.init_motor_pos['INIT_MOPO_camdist'] + energy = ss.init_motor_pos['INIT_MOPO_Energy'] + lam = 12.398 / energy / 10 # in nanometers + + # returning the scan motor name as well. Sometimes we scan things + # other than theta. So we need to expand the capability of the display + # code. + return lam, delta, gamma, scanmot_del, arm, pixel + + +def get_det_from_spec(specfile, scan): + # Scan numbers start at one but the list is 0 indexed + ss = spec.SPECFile(specfile)[scan - 1] + # Stuff from the header + try: + det_area = ss.getheader_element('UIMR5').split() + det_area1 = int(det_area[0]), int(det_area[1]) + det_area2 = int(det_area[2]), int(det_area[3]) + if det_area1[0] == 0: + if det_area1[1] == 512: + quad = '0' + else: + if det_area2[0] == 0: + quad = '1' + else: + quad = '2' + else: + if det_area2[0] == 0: + quad = '3' + else: + quad = '4' + return det_area1, det_area2, quad + except: + return None, None, None + + From e525c57b7091ccc5a2a8681f9d7b67e88401bfec Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Mon, 24 Jun 2019 15:38:54 -0500 Subject: [PATCH 165/336] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8784570..6ac7feb 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ It is desired to implement and parallelize software for fast processing by non-e Version ------- -0.0.1 - 10/25/2017 +v1.0 - 06/24/2019 Pre-requisites --------------- From 504d6610d7ef44f66f2c9d69abb23e1db2a380e4 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Wed, 3 Jul 2019 13:00:51 -0500 Subject: [PATCH 166/336] improved interface window, changed prep data coordinates --- bin/cdi_window.py | 79 +++---- build.sh | 7 + conf/{last => }/config | 3 + conf/config_data | 36 +++ conf/config_disp | 22 ++ conf/config_rec | 173 ++++++++++++++ conf/defaults/config | 6 - conf/defaults/config_data | 5 - conf/defaults/config_disp | 16 -- conf/defaults/config_rec | 213 ------------------ conf/last/config_data | 5 - conf/last/config_disp | 15 -- conf/last/config_rec | 30 --- config_data | 68 ++---- meta.yaml | 37 +++ reccdi/src_py/beamlines/aps_34id/prep.py | 16 +- reccdi/src_py/controller/data.py | 78 +++---- reccdi/src_py/controller/reconstruction.py | 1 - reccdi/src_py/run_scripts/run_34id_prepare.py | 7 - reccdi/src_py/run_scripts/run_data.py | 8 +- reccdi/src_py/run_scripts/run_disp.py | 4 - reccdi/src_py/run_scripts/run_rec.py | 13 +- reccdi/src_py/utilities/utils.py | 19 +- 23 files changed, 393 insertions(+), 468 deletions(-) create mode 100644 build.sh rename conf/{last => }/config (85%) create mode 100644 conf/config_data create mode 100644 conf/config_disp create mode 100644 conf/config_rec delete mode 100644 conf/defaults/config delete mode 100644 conf/defaults/config_data delete mode 100644 conf/defaults/config_disp delete mode 100644 conf/defaults/config_rec delete mode 100644 conf/last/config_data delete mode 100644 conf/last/config_disp delete mode 100644 conf/last/config_rec create mode 100644 meta.yaml diff --git a/bin/cdi_window.py b/bin/cdi_window.py index eb67f95..62afc38 100644 --- a/bin/cdi_window.py +++ b/bin/cdi_window.py @@ -67,15 +67,12 @@ def __init__(self, parent=None): def assure_experiment_dir(self): - # if self.id is None or self.scan is None: - # self.msg_window('enter Reconstruction ID and scan') - # return False if not os.path.exists(self.experiment_dir): os.makedirs(self.experiment_dir) experiment_conf_dir = os.path.join(self.experiment_dir, 'conf') if not os.path.exists(experiment_conf_dir): os.makedirs(experiment_conf_dir) - #return True + def load_conf_dir(self): if self.id is None or self.scan is None: @@ -83,17 +80,30 @@ def load_conf_dir(self): else: # the function above assures that the working directory is set if os.path.isfile(os.path.join(self.experiment_dir, 'conf', 'config')): - load_dir = select_dir(self.experiment_dir) - elif os.path.isfile(os.path.join(os.getcwd(), 'conf', 'last', 'config')): - load_dir = select_dir(os.path.join(os.getcwd(), 'conf', 'last')) - elif os.path.isfile(os.path.join(os.getcwd(), 'conf', 'defaults', 'config')): - load_dir = select_dir(os.path.join(os.getcwd(), 'conf', 'defaults')) + load_dir = select_dir(os.path.join(self.experiment_dir, 'conf')) + elif os.path.isfile(os.path.join(os.getcwd(), 'conf', 'config')): + load_dir = select_dir(os.path.join(os.getcwd(), 'conf')) else: load_dir = select_dir(self.working_dir) if load_dir is not None: - self.set_conf_from_button.setStyleSheet("Text-align:left") - self.set_conf_from_button.setText(load_dir) - self.init_from_conf(load_dir) + if not os.path.isfile(os.path.join(load_dir, 'config')): + self.msg_window('missing config file in load directory') + return + elif not os.path.isfile(os.path.join(load_dir, 'config_data')): + self.msg_window('missing config_data file in load directory') + return + elif not os.path.isfile(os.path.join(load_dir, 'config_rec')): + self.msg_window('missing config_rec file in load directory') + return + elif not os.path.isfile(os.path.join(load_dir, 'config_disp')): + self.msg_window('missing config_disp file in load directory') + return + else: + self.set_conf_from_button.setStyleSheet("Text-align:left") + self.set_conf_from_button.setText('config loaded') + self.init_from_conf(load_dir) + else: + self.msg_window('please select valid conf directory') def set_working_dir(self): @@ -102,6 +112,10 @@ def set_working_dir(self): self.set_work_dir_button.setStyleSheet("Text-align:left") self.set_work_dir_button.setText(self.working_dir) self.set_experiment_dir() + else: + self.set_work_dir_button.setText('') + self.msg_window('please select valid working directory') + return def set_id(self): @@ -124,36 +138,25 @@ def set_experiment_dir(self): if self.id is not None and self.scan is not None: self.exp_id = self.id + '_' + self.scan self.experiment_dir = os.path.join(self.working_dir, self.exp_id) + self.set_conf_from_button.setText('') def run_everything(self): self.t.prepare() - self.t.model_data() + self.t.format_data() self.t.reconstruction() self.t.display() def init_work_dir(self): - if os.path.isdir('conf/last'): - dir = 'conf/last' - elif os.path.isdir('conf/defaults'): - dir = 'conf/defaults' - else: - dir = None - - if dir is None: - self.working_dir = os.getcwd() - else: - main_conf = os.path.join(dir, 'config') - if not os.path.isfile(main_conf): - self.msg_window('missing configuration file ' + main_conf) - return + self.working_dir = os.getcwd() + if os.path.isdir('conf'): + main_conf = os.path.join('conf', 'config') try: conf_map = ut.read_config(main_conf) self.working_dir = conf_map.working_dir - except Exception as e: - self.msg_window('please check configuration file ' + main_conf + '. Cannot parse, ' + str(e)) - return + except: + pass self.set_work_dir_button.setStyleSheet("Text-align:left") self.set_work_dir_button.setText(self.working_dir) @@ -457,19 +460,19 @@ def tab2UI(self): layout.addRow("aliens", self.aliens) self.amp_threshold = QLineEdit() layout.addRow("amp_threshold", self.amp_threshold) - self.binning = QLineEdit() - layout.addRow("binning", self.binning) self.center_shift = QLineEdit() layout.addRow("center_shift", self.center_shift) self.adjust_dimensions = QLineEdit() - layout.addRow("adjust_dimensions", self.adjust_dimensions) - self.config_data_button = QPushButton('model data', self) + layout.addRow("pad, crop", self.adjust_dimensions) + self.binning = QLineEdit() + layout.addRow("binning", self.binning) + self.config_data_button = QPushButton('format data', self) layout.addWidget(self.config_data_button) self.tab2.setLayout(layout) # this will create config_data file and run data script # to generate data ready for reconstruction - self.config_data_button.clicked.connect(self.model_data) + self.config_data_button.clicked.connect(self.format_data) def tab3UI(self): @@ -487,7 +490,7 @@ def tab3UI(self): self.device = QLineEdit() ulayout.addRow("device(s)", self.device) self.samples = QLineEdit() - ulayout.addRow("number of samples", self.samples) + ulayout.addRow("number of reconstructions", self.samples) self.gc = QLineEdit() ulayout.addRow("gc triggers", self.gc) self.alg_seq = QLineEdit() @@ -773,7 +776,7 @@ def prepare_34id(self, conf_map): #scripts.run_34id_prepare.prepare(self.main_win.working_dir, self.main_win.exp_id, scan_range, self.data_dir, self.specfile, self.darkfile, self.whitefile) - def model_data(self): + def format_data(self): if os.path.isfile(os.path.join(self.main_win.experiment_dir, 'prep','prep_data.tif')): conf_map = {} if len(self.aliens.text()) > 0: @@ -824,7 +827,7 @@ def reconstruction(self): if self.main_win.write_conf(conf_map, conf_dir, 'config_rec'): run_rc.reconstruction(str(self.proc.currentText()), self.main_win.experiment_dir) else: - self.msg_window('Please, run model data in previous tab to activate this function') + self.msg_window('Please, run format data in previous tab to activate this function') def display(self): diff --git a/build.sh b/build.sh new file mode 100644 index 0000000..d115277 --- /dev/null +++ b/build.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +export LD_LIBRARY_PATH=lib/libconfig/lib:lib/arrayfire/lib64 +python setup.py build_ext --inplace +python setup.py install + +# conda build -c conda-forge . diff --git a/conf/last/config b/conf/config similarity index 85% rename from conf/last/config rename to conf/config index d90553d..6d139b5 100644 --- a/conf/last/config +++ b/conf/config @@ -3,3 +3,6 @@ data_dir = "/net/s34data/export/34idc-data/2019/Staff19-1/ADStaff19-1a" specfile = "/net/s34data/export/34idc-data/2019/Staff19-1/Staff19-1a.spec" darkfile = "/net/s34data/export/34idc-work/2019/dark.tif" whitefile = "/net/s34data/export/34idc-work/2019/CelaWhiteField.tif" +exclude_scans = (78,81) +min_files = 80 +det_quad = 1 diff --git a/conf/config_data b/conf/config_data new file mode 100644 index 0000000..86f7563 --- /dev/null +++ b/conf/config_data @@ -0,0 +1,36 @@ +// GENERAL +data_dir = "data" + // directory where prepared data is saved, default "data" + +// PARAMETER FOR DATA PREPARATION +aliens = ((170,220,112,195,245,123), (50,96,10,60,110,20)) + // comment out aliens for no removal, otherwise input them as + // aliens=[[x0,y0,z0,x1,y1,z1],[x2,y2,z2,x3,y3,z3]] + // will remove two instances of aliens given by the pairs + // #0 and #1 and another given by #2,#3. Accepts as + // many as you like. + +amp_threshold = 2.0 + // mandatory + // min data threshold. Values below this are set to 0. The threshold is applied + // after removing. + +adjust_dimensions = (-13, -13, -65, -65, -65, -65) + // optional + // enter adjust dimensions tuple + // If number is positive, the array will be padded. If negative, cropped. + // The parameters correspond to [x left, x right, y left, y right, z left, z right] + // The final dimensions will be adjusted up to the good number for the FFT which + // also is compatible with opencl supported dimensions + // powers of 2 or a*2^n, where a is 3, 5, or 9 + +center_shift = (0,0,0) + // optional + // enter center shift tuple + // the array maximum is centered before binning, and moved according to center_shift, + // (0,0,0) has no effect + +binning = (1,1,1) + // optional + // enter binning tuple + // defines binning values in respective dimensions, (1,1,1) has no effect diff --git a/conf/config_disp b/conf/config_disp new file mode 100644 index 0000000..3d92547 --- /dev/null +++ b/conf/config_disp @@ -0,0 +1,22 @@ +// size to crop the image array, can be entered as actual size or fraction +//crop = (120,120,120) +crop = (.75, .75, .75) + +//If specfile is defined the parameters for visualization will be parsed from it +specfile = "/net/s34data/export/34idc-data/2019/Staff19-1/Staff19-1a.spec" + +// PARAMETERS FOR VISUALISATION +// wavelength +energy = .13933; +// delta (degrees) +delta = 30.1; +// gamma (degrees) +gamma = 14.0; +// camera distance (m) +arm=0.6350; +// angular step size +dth=0.000174532925199; +// detector pixel size +pixel = (55.0e-6, 55.0e-6); + + diff --git a/conf/config_rec b/conf/config_rec new file mode 100644 index 0000000..5ba9922 --- /dev/null +++ b/conf/config_rec @@ -0,0 +1,173 @@ +// This file contains all configurable parameters that are applied during reconstruction. +// There are general parameters that apply to the main thread of reconstruction and features parameters. +// Reconstruction will use the global definitions and may use any of the supported features: +// twin, amp_support, phase_support, pcdi, resolution, average, garbage collection. +// The iterations during which the feature is active is defined by a trigger. In addition each feature may have other +// configurable parameters. +// Trigger can be defined as a single iteration, or multiple iterations. +// examples: +// (3) trigger at iteration 3 +// (20, 5) trigger starts at iteration 20, repeats every 5 iteration for the rest of run +// (20, 5, 40) trigger starts at iteration 20, repeats every 5 iteration until iteration 40 +// Triggers can also be a combination of any of the above, ex: ((4), (3, 7, 24), (6,20)) +// If a trigger is not defined, the feature is turned off. +// Adding a new feature/ trigger is described in common.h header file. + +// GENERAL +data_dir = "data" + // directory from which data is read + +save_dir = "results" + // directory where results of reconstruction are saved as npy files + // if samples > 1, result from each thread will be stored in subdirectory 1,2,3 etc. + +cont = false + // only applied if generations equals 1, or not defined + // if true, the reconstruction start with previous results stored in continue_dir + +continue_dir = "cont" + // directory from which results are read for reconstruction continuation + // if the directory contains subdirectories, a thread will start for each subdirectory + +samples = 1 + // number of reconstructions to start with + // typically used when running genetic algorithm + +device = (0,0) + // IDs of the target devices for each thread (sample). + // If not defined, it will default to -1 for the OS to select device + +garbage_trigger = (10,.5) + // ArrayFire memory management is not reliable, the way around is to call garbage + // collection per defined number of iterations. Decrease this value if out of memory + // error occurs + +algorithm_sequence = ((2, ("ER",19), ("HIO", 10)), (1,("ER",20))) + // defines algorithm applied in each iteration during modulus projection by a sequence of tuples. + // The first number in a tuple is a repeat, followed by tuples of pairs, each + // pair defining algorithm and number of iterations to run the algorithm. + +beta = .9; + // used in hio algorithm + +// GENERATIc ALGORITHM +generations = 1 // number of generations + +ga_metrics = ("chi", "sharpness") + // defines which metric should be used to rank the reconstruction results (samples) + // supported: 'chi', 'sharpness', 'summed_phase', 'area', ('TV') + +ga_breed_modes = ("sqrt_ab", "Dhalf") + // defines which breeding mode to use to populate new generation. If "none" + // there is no breeding + // supported: 'sqrt_ab', 'max_all', 'Dhalf', 'Dhalf-best', 'dsqrt', 'pixel_switch', + // 'b_pa', '2ab_a_b', '2a-b_pa', 'sqrt_ab_pa', 'sqrt_ab_pa_recip', 'sqrt_ab_recip', + // 'max_ab', 'max_ab_pa', 'min_ab_pa', 'avg_ab', 'avg_ab_pa',= 'sqrt_abg', + // 'sqrt_abg_pa', 'max_abg','max_abg_pa', 'avg_abg', 'avg_abg_pa', 'avg_sqrt' + +ga_cullings = (2,1) + // defines how many worst samples to remove in breeding phase for each generation + // defaults to 0 + +ga_support_thresholds = (.15, .1) + // the support is recalculated with this threshold after breeding phase + // defaults to support threshold + +ga_support_sigmas = (1.1, 1.0) + // the support is recalculated with this sigma after breeding phase + // defaults to support sigma + +ga_low_resolution_sigmas = (2.0, 1.5) + // list of sigmas that will be used in subsequent generations to calculate + // Gauss (assuming algorithm is GAUSS) and apply it to the data + // This determines low resolution generations number + +ga_low_resolution_alg = "GAUSS" + // algorithm to use to apply resolution. Supported algorithms: + // GAUSS + + +// TWIN +// twin feature trims the image array at the current state by zeroing half of the array in each dimension. + +twin_trigger = (2) + // twin defines at which iteration to cut half of the array(i.e. multiply by 0s), + // Comment out, if don't want to apply twin. + // when running GA applied only in first generation + +twin_halves = (0, 0) + // defines which half of the array is zeroed out in x and y dimensions. + // If 0, the first half in that dimension is zeroed out, otherwise, the second half. + +// SUPPORT +// Support area is an array that defines region in which the image is meaningful. This area is recalculated at the +// trigger iteration. The calculation employ an algorithm defined here as support_type. + +amp_support_trigger = (7, 5) + // defines when to update support array using the parameters below. + // Comment out, if support feature not used. +support_type = "GAUSS"; +support_threshold = 0.1; +support_sigma = 1.0; +support_area = (.5,.5,.5) + // initial support area. If the values are fractional, the support area will be calculated + // by multiplying by the data array dimensions. The support will be set to 1s to this + // dimensions centered. + +// PHASE CONSTRAIN +// At the begginning iterations the support area is modified in respect to the phase. Support area will exclude points +// that phase is outside of the defined bounds + +phase_support_trigger = (0, 1, 45) + // defines when to update support array using the parameters below by applaying phase constrain. + // Comment out, if phase constrain feature not used. + // when running GA applied only in first generation +phase_min = -1.57; +phase_max = 1.57; + +// PARTIAL COHERENCE +// Partial coherence triggers recalculation of coherence array for the amplitudes in reciprocal space. +// After first coherence array is determined, it is used for convolution in subsequent iteration. + +pcdi_trigger = (16, 14) + // defines when to update coherence using the parameters below. + // Comment out, if pcdi feature not used. +partial_coherence_type = "LUCY"; + // partial coherence algorithm +partial_coherence_iteration_num = 20; +partial_coherence_normalize = true; +partial_coherence_roi = (32,32,32); + // coherence area. If the values are fractional, the coherence area will be calculated + // by multiplying by the data array dimensions. + +// LOW RESOLUTION +// At the beginning iterations the data resolution and sigma used in recalculation of the support area are modified gradually. +// The sigma for each iteration where the low resolution is applied is a linespaced result of iter_res_sigma_range. +// The last sigma is typically set to support_sigma. If the last sigma is not specified, it defaults to support_sigma. +// The sigma is used by in recalculation of the support area, i.e when support trigger is on. +// The iter_res_det_range is similiary linespaced for the duration of low resolution iterations. The values are used +// as sigmas to calculate Gaussian distribution and applied (multiplied) to data. + +resolution_trigger = (0, 1, 40) + // defines when to apply low resolution using the parameters below. + // Comment out, if low resolution feature not used. + // when running GA applied only in first generation + +iter_res_sigma_range = (2.0, 1.0) + // used when applying low resolution to replace support sigma. + // The sigmas are linespaced for low resolution iterations from first value to last. + // If only one number given, the last sigma will default to support_sigma. + +iter_res_det_range = (.7, 1.0) + // used when applying low resolution data mask while iterating. + // The det values are linespaced for low resolution iterations from first value to last. + // The mask is gauss with sigma of linespaced det. If only one number given, + // the last det will default to 1. + +// AVERAGING +// The amplitudes of the last several iterations are averaged. This trigger defines at which iteration the averaging +// starts. + +average_trigger = (-65, 1) + // defines when to apply averaging. Negative start means it is offset from the last iteration + // Comment out, if averaging not used. diff --git a/conf/defaults/config b/conf/defaults/config deleted file mode 100644 index 7eadd4d..0000000 --- a/conf/defaults/config +++ /dev/null @@ -1,6 +0,0 @@ -working_dir = "test" -data_dir = "/net/s34data/export/34idc-data/2018/Chung1118/ADChung1118a" -specfile = "/net/s34data/export/34idc-data/2018/Chung1118/Chung1118a.spec" -darkfile = "/net/s34data/export/34idc-work/2018/Chung1118/dark.tif" -whitefile = "/net/s34data/export/34idc-work/2018/Chung1118/CelaWhiteField.tif" - diff --git a/conf/defaults/config_data b/conf/defaults/config_data deleted file mode 100644 index 131b0a0..0000000 --- a/conf/defaults/config_data +++ /dev/null @@ -1,5 +0,0 @@ -amp_threshold = 2.0 -aliens = ((0,0,0,0,0,0), (0,0,0,0,0,0)) -binning = (1,1,1) -center_shift = (0,0,0) -adjust_dimensions = (-4, -4, -65, -65, -65, -65) diff --git a/conf/defaults/config_disp b/conf/defaults/config_disp deleted file mode 100644 index 92f9d04..0000000 --- a/conf/defaults/config_disp +++ /dev/null @@ -1,16 +0,0 @@ -crop = [.5, .5, .5] - -//------------------Below are definitions/ exemples of configurable items----------------------- -// for APS beamline 34-IDC these are parsed from spec file - -// lamda = 0.10780869565217391 // Wavelength of x-ray (units in nm) -// delta = 26.74975 // Detector angles (in degrees) -// gamma = 8.5102 // (in degrees) -// arm = 750.0 // Detector distance from sample (in mm) -// dth = 0.007499999999999995 // step values for th translation (in degrees) -// pixel = (55.0e-6, 55.0e-6) // pixel size (in meters) - -// for APS beamline 34-IDC binning is imported from config_data file -// binning = (1,1,1) - - diff --git a/conf/defaults/config_rec b/conf/defaults/config_rec deleted file mode 100644 index 45999b1..0000000 --- a/conf/defaults/config_rec +++ /dev/null @@ -1,213 +0,0 @@ -//threads = 2, replaced by species -//device = (4) - -generations = 1 -low_resolution_generations = 0 - -algorithm_sequence = ((3,("ER",20),("HIO",180)),(1,("ER",22))) -beta = .9 - -twin_trigger = (2) - -amp_support_trigger = (0,1) -support_type = "GAUSS" -support_threshold = 0.15 -support_sigma = 1.0 -support_area = (.5,.5,.5) - -//phase_support_trigger = (0,1,20) -phase_min = -1.57 -phase_max = 1.57 - -//pcdi_trigger = (50,50) -partial_coherence_type = "LUCY" -partial_coherence_iteration_num = 20 -partial_coherence_normalize = true -partial_coherence_roi = (32,32,16) - -resolution_trigger = (0, 1, 310) -iter_res_det_range = (.7) -iter_res_sigma_range = (1.0) - -avarage_trigger = (-19,1) - -//------------------Below are definitions/ exemples of configurable items----------------------- - -// Trigger can be defined as a single iteration, or multiple iterations. -// examples: -// (3) trigger at iteration 3 -// (20, 5) trigger starts at iteration 20, repeats every 5 iteration for the rest of run -// (20, 5, 40) trigger starts at iteration 20, repeats every 5 iteration until iteration 40 -// Triggers can also be a combination of any of the above, ex: ((4), (3, 7, 24), (6,20)) -// Below is a list of the supported triggers: -// garbage_trigger, twin_trigger, amp_support_trigger, phase_support_trigger, pcdi_trigger, resolution_trigger, -// average_trigger. -// The features that are related to the triggers are described below where the trigger is defined. -// If a trigger is not defined, the feature is turned off. Comment out trigger that you don't want to apply. -// Adding a new feature/ trigger is described in common.h header file. - -// GENERAL -//data_dir = "test/A/data" - // directory from which data is read - -//save_dir = "test/A/results" - // directory where results of reconstruction as npy files are saved - // if threads > 1, result from each thread will be stored in subdirectory 1,2,3 etc. - -//cont = false - // only applied if generations equals 1, or not defined - // true if the reconstruction start with previous results stored in continue_dir - -//continue_dir = "cont" - // directory from which results are read for reconstruction continuation - // if the directory contains subdirectories, a thread will start for each subdirectory - -//threads = 3 - // number of reconstructions to start with - -//device = (0,0) - // ID of the target devices for each thread. - // If more threads or not defined, it will default to -1 - -garbage_trigger = (1,1) - // ArrayFire memory management is not reliable, the way around is to call garbage - // collection per defined number of iterations. Decrease this value if out of memory - // error occurs - -// GENERATIONS -//generations = 2 // number of generations - -//species = 2 // number of species in first generation - -//low_resolution_generations = 0 - // number of generations low resolution is applied to, starting from first gen - -//low_resolution_sigma_alg = "SIG_SPACE_LINEAR" - // defines how to calculate sigmas based on generation. Supported: - // SIG_SPACE_LINEAR - sigmas are starting from low_resolution_sigma_max, - // linearly decreasing for each generation, reaching low_resolution_sigma - // at the end - // SIG_SCALE_POWER - use low_resolution_scale_power and ScaleFactor - // to calculate sigmas for generations - // SIG_ASSIGNED - sigmas will be read from low_resolution_sigmas - -//low_resolution_sigmas = (1.0) - // list of sigmas that will be used by subsequent generations if the - // low_resolution_sigma_alg is set to SIG_ASSIGNED - // the length must be equal low_resolution_generations - -//low_resolution_sigma_min = 0.1 - // initial sigma - -//low_resolution_sigma_max = 2.0 - // max support sigma value - -//low_resolution_scale_power = 1 - // how the sigma scales with generation (1 - linear, 2 - quad etc) - -//low_resolution_alg = "GAUSS" - // algorithm to use to apply resolution. Supported algorithms: - // GAUSS - -//metric = "chi" // defines ranking mechanism - // "sharpness" by sharpness, best with smallest sharpness - // "summed_phase", by summed phase, best with the highest value - // "area", by area, best with the highest value - // "chi", by error (last iteration), best with the smallest value - // "TV" - -//is_cross_breed = True // If True the genetic algorithm will use the best two from previous - // generation for breeding - -//breed_modes = ('sqrt_ab', 'none') - // defines how to breed next generation - // default for generation 'none' -//worst_remove_no = (0, 0) - // numbers of species to remove from subsequent generation - // default for generation 0 - - -// RECONSTRUCTION PARAMETERS USED BY FAST MODULE -// modulus projection algorithm sequence -//algorithm_sequence = ((2, ("ER",19), ("HIO", 10)), (1,("ER",20))) - // defines algorithm applied in each iteration by a sequence of tuples. - // The first number in a tuple is a repeat, followed by tuples of pairs, each - // pair defining algorithm and number of iterations to run the algorithm. - -//beta = .9; - // used in hio algorithm - -// twin -// twin feature trims the image array at the current state by zeroing half of the array in each dimension. -//twin_trigger = (2) - // applied only in initial reconstruction - // twin defines at which iteration to cut half of the array(i.e. multiply by 0s), - // Comment out, if don't want to apply twin. - -// support -// Support area is an array that defines region in which the image is meaningful. This area is recalculated at the -// trigger iteration. The calculation employ an algorithm defined here as support_type. -//amp_support_trigger = (7, 5) - // defines when to update support array using the parameters below. - // Comment out, if support feature not used. -//support_type = "GAUSS"; -//support_threshold = 0.1; -//support_sigma = 1.0; -//support_area = (.5,.5,.5); - // initial support area. If the values are fractional, the support area will be calculated - // by multiplying by the data array dimensions. The support will be set to 1s to this - // dimensions centered. - -// phase constrain -// At the begginning iterations the support area is modified in respect to the phase. Support area will exclude points -// outside of the defined bounds -//phase_support_trigger = (0, 1, 45) - // applied only in initial reconstruction - // defines when to update support array using the parameters below by applaying phase constrain. - // Comment out, if phase constrain feature not used. -//phase_min = -1.57 -//phase_max = 1.57; - -// partial coherence -// Partial coherence trigger triggers recalculation of coherence array for the amplitudes in reciprocal space. -// After first coherence array is determined, it is used for convolution in subsequent iteration. -//pcdi_trigger = (16, 14) - // defines when to update coherence using the parameters below. - // Comment out, if pcdi feature not used. -//partial_coherence_type = "LUCY"; - // partial coherence algorithm -//partial_coherence_iteration_num = 20; -//partial_coherence_normalize = true; -//partial_coherence_roi = (32,32,32); - // coherence area. If the values are fractional, the coherence area will be calculated - // by multiplying by the data array dimensions. - -// iteration based low resolution -// At the begginning iterations the data and sigma are modified gradually. The sigma for each iteration where the low -// resolution is applied is a linespace result of iter_res_sigma_range. The last sigma should be set to support_sigma, -// or you can use default to achieve this. The sigma is used by when recalculation the support area, i.e when support -// trigger is on. The data is multiplied by gaussian distribution with sigma gradually growing to the last value, which -// typically is 1. -//resolution_trigger = (0, 1, 40) - // applied only in initial reconstruction - // defines when to apply low resolution using the parameters below. - // Comment out, if low resolution feature not used. - -//iter_res_sigma_range = (2.0, 1.0) - // used when applying low resolution to replace support sigma. - // The sigmas are linespaced for low resolution iterations from first value to last. - // If only one number given, the last sigma will default to support_sigma. - -//iter_res_det_range = (.7, 1.0) - // used when applying low resolution data mask while iterating. - // The det values are linespaced for low resolution iterations from first value to last. - // The mask is gauss with sigma of linespaced det. If only one number given, - // the last det will default to 1. - -// averaging -// The amplitudes of the last several iterations are avaraged. This trigger defines at which iteration the averaging -// starts. -//average_trigger = (65, 1) - // defines when to apply averaging. - // Comment out, if averaging not used. - diff --git a/conf/last/config_data b/conf/last/config_data deleted file mode 100644 index 5453398..0000000 --- a/conf/last/config_data +++ /dev/null @@ -1,5 +0,0 @@ -aliens = ((107,77,57,119,91,70)) -amp_threshold = 2.0 -binning = (1,1,1) -center_shift = (0,0,0) -adjust_dimensions = (0,0,0,0,0,0) diff --git a/conf/last/config_disp b/conf/last/config_disp deleted file mode 100644 index 78ce762..0000000 --- a/conf/last/config_disp +++ /dev/null @@ -1,15 +0,0 @@ - -lamda = 0.13775555555555555 -delta = 33.561 -gamma = 8.8126 -arm = 399.775 -dth = 0.01 -pixel = (55.0e-6, 55.0e-6) - - - - - -crop = (0.4,0.4,0.4) -binning = (1,1,1) - diff --git a/conf/last/config_rec b/conf/last/config_rec deleted file mode 100644 index 68bab69..0000000 --- a/conf/last/config_rec +++ /dev/null @@ -1,30 +0,0 @@ -samples = 2 -garbage_trigger = (1,1) -algorithm_sequence = ((1,("ER",30))) -beta = 0.9 -generations = 2 -ga_low_resolution_generations = 0 -ga_metrics = ("chi") -ga_breed_modes = ("sqrt_ab","sqrt_ab") -ga_removes = (0) -ga_support_thresholds = (0.1) -ga_support_sigmas = (1.0) -ga_low_resolution_sigma_alg = "" -ga_low_resolution_alg = "" -resolution_trigger = (0,1,15) -iter_res_sigma_range = (1.0) -iter_res_det_range = (0.7) -amp_support_trigger = (0,1) -support_type = "GAUSS" -support_threshold = 0.15 -support_sigma = 1.0 -support_area = (0.5,0.5,0.5) -phase_min = -1.57 -phase_max = 1.57 -pcdi_trigger = (25,30) -partial_coherence_type = "LUCY" -partial_coherence_iteration_num = 20 -partial_coherence_normalize = True -partial_coherence_roi = (32,32,16) -twin_trigger = (2) -average_trigger = (-10,1) diff --git a/config_data b/config_data index f6025ad..0635875 100644 --- a/config_data +++ b/config_data @@ -4,69 +4,33 @@ data_dir = "data" // PARAMETER FOR DATA PREPARATION aliens = ((170,220,112,195,245,123), (50,96,10,60,110,20)) - // aliens are common for all preps // comment out aliens for no removal, otherwise input them as // aliens=[[x0,y0,z0,x1,y1,z1],[x2,y2,z2,x3,y3,z3]] // will remove two instances of aliens given by the pairs - // #0 and #1 and another given by #2,#3. accepts as + // #0 and #1 and another given by #2,#3. Accepts as // many as you like. -//amp_threshold = (2.0, 2.1) -amp_threshold = (2.0) - // mandatory - // enter a value for each prep +amp_threshold = 2.0 + // mandatory // min data threshold. Values below this are set to 0. The threshold is applied - // before removing aliens and binning. + // after removing. -binning = ((1,1,1), (1,1,1)) - // optional - // enter binning tuple for each prep - // defines binning values in all dimensions, (1,1,1) has no effect - -center_shift = ((0,0,0), (0,0,0)) - // optional - // enter center shift tuple for each prep - // the maximum is centered after binning, and moved according to center_shift, - // (0,0,0) has no effect - -adjust_dimensions = ((-13, -13, -65, -65, -65, -65), (-7, -13, -55, -65, -55, -65)) - // optional - // enter adjust dimensions tuple for each prep +adjust_dimensions = (-13, -13, -65, -65, -65, -65) + // optional + // enter adjust dimensions tuple // If number is positive, the array will be padded. If negative, cropped. // The parameters correspond to [x left, x right, y left, y right, z left, z right] // The final dimensions will be adjusted up to the good number for the FFT which // also is compatible with opencl supported dimensions // powers of 2 or a*2^n, where a is 3, 5, or 9 +center_shift = (0,0,0) + // optional + // enter center shift tuple + // the array maximum is centered before binning, and moved according to center_shift, + // (0,0,0) has no effect -// RECONSTRUCTION PARAMETERS USED BY FAST MODULE -device = 0 - // ID of the target device - -algorithm_sequence = ((1, ("ER",19), ("HIO", 10)), (1,("ER",10))) - -// support -support_triggers = ((5, 5, 300)); -support_type = "GAUSS"; - -avg_iterations = 15; - -// PARAMETERS FOR VISUALISATION -// wavelength -lamda = .13933; -// delta (degrees) -delta = 30.1; -// gamma (degrees) -gamma = 14.0; -// camera distance (m) -arm=0.6350; -// angular step size -dth=0.000174532925199; - -// detector pixel sixe -pixel = (55.0e-6, 55.0e-6); - -// size to crop the image array -//crop = (120,120,120) -crop = (.75, .75, .75) - +binning = (1,1,1) + // optional + // enter binning tuple + // defines binning values in respective dimensions, (1,1,1) has no effect diff --git a/meta.yaml b/meta.yaml new file mode 100644 index 0000000..82edad2 --- /dev/null +++ b/meta.yaml @@ -0,0 +1,37 @@ +package: + name: reccdi + version: v1.0 + +source: + path: . + +build: + script_env: + - LD_LIBRARY_PATH + number: 0 + noarch: generic + +requirements: + build: + - {{ compiler('c') }} + - {{ compiler('cxx') }} + + host: + - python + - cython + + run: + - python + - parsl + - tifffile + - pylibconfig2 + - xrayutilities + - python + - traits + - mayavi + + +about: + home: https://github.com/advancedPhotonSource/cdi + license: UChicago Argonne, see LICENSE file + summary: Implement and parallelize genetic algorithms and phase retrieval methods for Bragg CDI techniques. diff --git a/reccdi/src_py/beamlines/aps_34id/prep.py b/reccdi/src_py/beamlines/aps_34id/prep.py index d990fb1..0f2494b 100644 --- a/reccdi/src_py/beamlines/aps_34id/prep.py +++ b/reccdi/src_py/beamlines/aps_34id/prep.py @@ -1,11 +1,12 @@ import pylibconfig2 as cfg import numpy as np -import tifffile as tif import copy import scipy.fftpack as sf import os import glob +import tifffile as tif import reccdi.src_py.utilities.spec as spec +import reccdi.src_py.utilities.utils as ut def get_dir_list(scans, map): @@ -50,8 +51,6 @@ def get_dark_white(darkfile, whitefile, det_area1, det_area2): if darkfile is not None: # find the darkfield array dark_full = tif.imread(darkfile).astype(float) - # Ross' arrays are transposed from imread - dark_full = np.transpose(dark_full) # crop the corresponding quad or use the whole array, depending on what info was parsed from spec file dark = dark_full[slice(det_area1[0], det_area1[1]), slice(det_area2[0], det_area2[1])] else: @@ -60,12 +59,9 @@ def get_dark_white(darkfile, whitefile, det_area1, det_area2): if whitefile is not None: # find the whitefield array white_full = tif.imread(whitefile).astype(float) - # Ross' arrays are transposed from imread - white_full = np.transpose(white_full) # crop the corresponding quad or use the whole array, depending on what info was parsed from spec file white = white_full[slice(det_area1[0], det_area1[1]), slice(det_area2[0], det_area2[1])] # set the bad pixels to some large value - #white = np.where(white==0, 1e20, white) #Some large value white = np.where(white<5000, 1e20, white) #Some large value else: white = None @@ -74,7 +70,7 @@ def get_dark_white(darkfile, whitefile, det_area1, det_area2): def get_normalized_slice(file, dark, white): - slice = np.transpose(tif.TiffFile(file).asarray()) + slice = tif.TiffFile(file).asarray() if dark is not None: slice = np.where(dark > 5, 0, slice) #Ignore cosmic rays # here would be code for correction for dead time @@ -197,7 +193,7 @@ def prep_data(experiment_dir, scans, map, det_area1, det_area2, *args): # add the arrays together part_f = sf.fftn(part) slice_sum = combine_part(part_f, slice_sum, refpart, part) - arr = np.transpose(np.abs(slice_sum).astype(np.int32)) + arr = np.abs(slice_sum).astype(np.int32) arr = fit(arr, det_area1, det_area2) @@ -207,8 +203,8 @@ def prep_data(experiment_dir, scans, map, det_area1, det_area2, *args): os.makedirs(prep_data_dir) data_file = os.path.join(prep_data_dir, 'prep_data.tif') - tif.imsave(data_file, arr.astype(np.int32)) - print ('done with prep') + ut.save_tif(arr, data_file) + print ('done with prep, shape:', arr.shape) def prepare(experiment_dir, scans, conf_file, *args): diff --git a/reccdi/src_py/controller/data.py b/reccdi/src_py/controller/data.py index 71479b9..6aa28f6 100644 --- a/reccdi/src_py/controller/data.py +++ b/reccdi/src_py/controller/data.py @@ -20,7 +20,7 @@ import numpy as np import reccdi.src_py.utilities.utils as ut import os -import tifffile as tif + __author__ = "Barbara Frosik" __copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." @@ -58,8 +58,9 @@ def prep(fname, conf_info): ------- nothing """ + # The data has been transposed when saved in tif format for the ImageJ to show the right orientation + data = ut.read_tif(fname) - data = ut.get_array_from_tif(fname) if os.path.isdir(conf_info): experiment_dir = conf_info conf = os.path.join(experiment_dir, 'conf', 'config_data') @@ -80,15 +81,14 @@ def prep(fname, conf_info): print ('saving for AI') d_f = os.path.join(experiment_dir, 'prep', 'prep_data.npy') np.save(d_f, data) - shape = list(data.shape) - shape.reverse() - print ('data dimensions before prep', shape) - # zero out the aliens, aliens are the same for each data prep + # zero out the ares defined by aliens try: aliens = config_map.aliens print ('removing aliens') for alien in aliens: - data[alien[2]:alien[5], alien[1]:alien[4], alien[0]:alien[3]] = 0 + # The ImageJ swaps the x and y axis, so the aliens coordinates needs to be swapped, since ImageJ is used + # to find aliens + data[alien[1]:alien[4], alien[0]:alien[3], alien[2]:alien[5]] = 0 # saving file for Kenley project - AI aliens removing aliens_f = os.path.join(experiment_dir, 'prep', 'aliens') with open(aliens_f, 'a') as a_f: @@ -106,7 +106,7 @@ def prep(fname, conf_info): d_f = os.path.join(experiment_dir, 'prep', 'prep_no_aliens.npy') np.save(d_f, data) d_f = os.path.join(experiment_dir, 'prep', 'prep_no_aliens.tif') - tif.imsave(d_f, data.astype(np.int32)) + ut.save_tif(data, d_f) except AttributeError: pass @@ -121,49 +121,46 @@ def prep(fname, conf_info): # zero out the noise prep_data = np.where(data < amp_threshold, 0, data) - try: - binsizes = config_map.binning - bins = [] - for binsize in binsizes: - bins.append(binsize) - filler = len(prep_data.shape) - len(bins) - for _ in range(filler): - bins.append(1) - # The bins are entered in reverse order - bins.reverse() - print ('binning') - prep_data = ut.binning(prep_data, bins) - except AttributeError: - pass - # square root data prep_data = np.sqrt(prep_data) try: - pads = config_map.adjust_dimensions - # adjust the size, either pad with 0s or crop array - print ('adjusting dimensions') - # need to reverse the padding - pairs = [] - for i in range(int(len(pads)/2)): - pair = pads[2*i:2*i+2] - pairs.append(pair) - pairs.reverse() - pads = [] - for pair in pairs: - pads.extend(pair) - prep_data = ut.adjust_dimensions(prep_data, pads) + crops_pads = config_map.adjust_dimensions except AttributeError: - prep_data = ut.adjust_dimensions(prep_data, (0,0,0,0,0,0)) + # the size still has to be adjusted to the opencl supported dimension + crops_pads = (0, 0, 0, 0, 0, 0) + # adjust the size, either pad with 0s or crop array + print ('cropping and/or padding dimensions') + pairs = [] + for i in range(int(len(crops_pads)/2)): + pair = crops_pads[2*i:2*i+2] + pairs.append(pair) + # change pairs x and y, as the ImageJ swaps the axes + pairs[0], pairs[1] = pairs[1], pairs[0] + prep_data = ut.adjust_dimensions(prep_data, crops_pads) + print ('shape after adjust', prep_data.shape) + if prep_data is None: + return try: center_shift = config_map.center_shift - center_shift.reverse() print ('shift center') prep_data = ut.get_centered(prep_data, center_shift) except AttributeError: prep_data = ut.get_centered(prep_data, [0,0,0]) + try: + binsizes = config_map.binning + bins = [] + for binsize in binsizes: + bins.append(binsize) + filler = len(prep_data.shape) - len(bins) + for _ in range(filler): + bins.append(1) + prep_data = ut.binning(prep_data, bins) + except AttributeError: + pass + try: data_dir = config_map.data_dir except AttributeError: @@ -175,12 +172,9 @@ def prep(fname, conf_info): # save data data_file = os.path.join(data_dir, 'data.tif') - shape = list(prep_data.shape) - shape.reverse() - print ('saving data ready for reconstruction, data dims:', shape) # np.save(data_file, prep_data) ut.save_tif(prep_data, data_file) - print ('---data shape', prep_data.shape) + print ('data ready for reconstruction, data dims:', prep_data.shape) #prep('/local/bfrosik/CDI/S149/Staff14-3_S0149.tif', 'config_data') \ No newline at end of file diff --git a/reccdi/src_py/controller/reconstruction.py b/reccdi/src_py/controller/reconstruction.py index ad739e3..49b33aa 100644 --- a/reccdi/src_py/controller/reconstruction.py +++ b/reccdi/src_py/controller/reconstruction.py @@ -18,7 +18,6 @@ """ import numpy as np -# import matplotlib.pyplot as plt import os import reccdi.src_py.controller.fast_module as calc import reccdi.src_py.utilities.utils as ut diff --git a/reccdi/src_py/run_scripts/run_34id_prepare.py b/reccdi/src_py/run_scripts/run_34id_prepare.py index 8ead4dc..103f2ff 100755 --- a/reccdi/src_py/run_scripts/run_34id_prepare.py +++ b/reccdi/src_py/run_scripts/run_34id_prepare.py @@ -9,13 +9,6 @@ def prepare(experiment_dir, scan_range, conf_file): prep.prepare(experiment_dir, scan_range, conf_file) - # copy experiment config into last config, this is the last used - main_conf = os.path.join(experiment_dir, 'conf', 'config') - last = os.path.join('conf', 'last') - if not os.path.exists(last): - os.makedirs(last) - shutil.copy(main_conf, last) - return experiment_dir diff --git a/reccdi/src_py/run_scripts/run_data.py b/reccdi/src_py/run_scripts/run_data.py index e15f451..8d9f468 100755 --- a/reccdi/src_py/run_scripts/run_data.py +++ b/reccdi/src_py/run_scripts/run_data.py @@ -2,18 +2,12 @@ import sys import argparse import os -import shutil def data(experiment_dir): - print ('modeling data') + print ('formating data') prep_file = os.path.join(experiment_dir, 'prep', 'prep_data.tif') dt.prep(prep_file, experiment_dir) - print ('done preparing data') - # copy experiment config into last config - conf = os.path.join(experiment_dir, 'conf', 'config_data') - last = os.path.join('conf', 'last', 'config_data') - shutil.copy(conf, last) def main(arg): diff --git a/reccdi/src_py/run_scripts/run_disp.py b/reccdi/src_py/run_scripts/run_disp.py index bc39926..f57d8a9 100755 --- a/reccdi/src_py/run_scripts/run_disp.py +++ b/reccdi/src_py/run_scripts/run_disp.py @@ -4,7 +4,6 @@ import os import reccdi.src_py.utilities.utils as ut import numpy as np -import shutil def save_vtk(res_dir, conf, last_scan): @@ -118,9 +117,6 @@ def to_vtk(experiment_dir): if os.path.isdir(sub_sub): save_vtk(sub_sub, conf, last_scan) - last = os.path.join('conf', 'last', 'config_disp') - shutil.copy(conf, last) - def main(arg): print ('preparing display') diff --git a/reccdi/src_py/run_scripts/run_rec.py b/reccdi/src_py/run_scripts/run_rec.py index 61b1a10..84f5306 100755 --- a/reccdi/src_py/run_scripts/run_rec.py +++ b/reccdi/src_py/run_scripts/run_rec.py @@ -3,11 +3,9 @@ import os import argparse from multiprocessing import Process -import numpy as np import reccdi.src_py.controller.reconstruction as rec import reccdi.src_py.controller.gen_rec as gen_rec import reccdi.src_py.utilities.utils as ut -import shutil def interrupt_thread(arg): @@ -59,10 +57,8 @@ def reconstruction(proc, experiment_dir): datafile = os.path.join(data_dir, 'data.tif') try: - data = ut.get_array_from_tif(datafile) - shape = list(data.shape) - shape.reverse() - print ('data shape', shape) + data = ut.read_tif(datafile) + print ('data shape', data.shape) except: print ('data file ' + datafile + ' is missing') p.terminate() @@ -79,11 +75,6 @@ def reconstruction(proc, experiment_dir): rec.reconstruction(proc, data, experiment_dir, config_map) print ('done with reconstruction') - # copy experiment config into last config - conf = os.path.join(experiment_dir, 'conf', 'config_rec') - last = os.path.join('conf', 'last', 'config_rec') - shutil.copy(conf, last) - p.terminate() diff --git a/reccdi/src_py/utilities/utils.py b/reccdi/src_py/utilities/utils.py index ed028dc..16b14bf 100644 --- a/reccdi/src_py/utilities/utils.py +++ b/reccdi/src_py/utilities/utils.py @@ -17,13 +17,12 @@ import numpy as np import os import logging -import shutil import stat __author__ = "Barbara Frosik" __copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." __docformat__ = 'restructuredtext en' -__all__ = ['get_array_from_tif', +__all__ = ['read_tif', 'get_opencl_dim', 'binning', 'get_centered', @@ -44,7 +43,7 @@ def get_logger(name, ldir=''): return logger -def get_array_from_tif(filename): +def read_tif(filename): """ This method reads tif type file containing experiment data and returns the data as array. Parameters @@ -57,11 +56,16 @@ def get_array_from_tif(filename): an array containing the experiment data """ - return tf.imread(filename) + ar = tf.imread(filename) + ar = np.swapaxes(ar, 0, 2) + ar = np.swapaxes(ar, 0, 1) + return ar -def save_tif(ar, tif_file): - tf.imsave(tif_file, ar.astype(np.int32)) +def save_tif(arr, tif_file): + arr = np.swapaxes(arr, 0, 2) + arr = np.swapaxes(arr, 1, 2) + tf.imsave(tif_file, arr.astype(np.int32)) def read_config(config): @@ -307,6 +311,9 @@ def adjust_dimensions(arr, pad): for i in range(len(old_dims)): crop_front = max(0, -pad[2 * i]) crop_end = max(0, -pad[2 * i + 1]) + if crop_front + crop_end >= arr.shape[i]: + print ('the crop exceeds size, please change the crop and run again') + return None splitted = np.split(cropped, [crop_front, old_dims[i] - crop_end], axis=i) cropped = splitted[1] # logger.info('cutting from to ' + str(crop[0]) + ', ' + str(old_dims[0]-crop[1]) + ', ' + str(crop[2]) + ', ' \ From b435df00b0a9aeb934df18fde33b680cffcad1c2 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Wed, 3 Jul 2019 13:03:02 -0500 Subject: [PATCH 167/336] cleaned up imports --- setup.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/setup.py b/setup.py index e5fb408..31fc3a4 100755 --- a/setup.py +++ b/setup.py @@ -1,7 +1,5 @@ from distutils.core import setup -from distutils.extension import Extension from Cython.Build import cythonize -import numpy as np setup(ext_modules=cythonize( From c065ecda276e9e35bd4c1f87ad1e6f9b6b56dd5c Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 3 Jul 2019 15:21:01 -0500 Subject: [PATCH 168/336] Update run_rec.py --- reccdi/src_py/run_scripts/run_rec.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/reccdi/src_py/run_scripts/run_rec.py b/reccdi/src_py/run_scripts/run_rec.py index 84f5306..cfcb92a 100755 --- a/reccdi/src_py/run_scripts/run_rec.py +++ b/reccdi/src_py/run_scripts/run_rec.py @@ -59,6 +59,8 @@ def reconstruction(proc, experiment_dir): try: data = ut.read_tif(datafile) print ('data shape', data.shape) + data = np.swapaxes(data, 0, 2) + data = np.swapaxes(data, 0, 1) except: print ('data file ' + datafile + ' is missing') p.terminate() From a3e22b047f2e661976597c69c6f7a2e22e90dbe5 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 3 Jul 2019 16:47:28 -0500 Subject: [PATCH 169/336] Update CXDVizNX.py --- reccdi/src_py/utilities/CXDVizNX.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/reccdi/src_py/utilities/CXDVizNX.py b/reccdi/src_py/utilities/CXDVizNX.py index 914e5e6..c2eac50 100644 --- a/reccdi/src_py/utilities/CXDVizNX.py +++ b/reccdi/src_py/utilities/CXDVizNX.py @@ -90,8 +90,8 @@ def __init__(self, config, last_scan): self.binning.append(1) except AttributeError: self.binning = [1,1,1] - self.dpx = pixel[0] * self.binning[0] / self.arm / self.binning[2] - self.dpy = pixel[1] * self.binning[1] / self.arm / self.binning[2] + self.dpx = pixel[0] * self.binning[1] / self.arm / self.binning[2] + self.dpy = pixel[1] * self.binning[0] / self.arm / self.binning[2] try: self.crop = [] crop = config_map.crop @@ -359,6 +359,9 @@ def unbin(ar, bins): def save_CX(conf, image, support, coh, save_dir, last_scan): + image = np.swapaxes(image, 1,2) + support = np.swapaxes(support, 1,2) + coh = np.swapaxes(coh, 1,2) image, support = center(image, support) params = DispalyParams(conf, last_scan) image = remove_ramp(image) @@ -381,4 +384,4 @@ def save_CX(conf, image, support, coh, save_dir, last_scan): viz.write_structured_grid(coh_file) # a = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') -# remove_ramp(a, 3) \ No newline at end of file +# remove_ramp(a, 3) From 2021ce4fad289f96c5d725f9f87964bf4407f38c Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Wed, 3 Jul 2019 16:49:41 -0500 Subject: [PATCH 170/336] Update data.py --- reccdi/src_py/controller/data.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/reccdi/src_py/controller/data.py b/reccdi/src_py/controller/data.py index 6aa28f6..e2994d7 100644 --- a/reccdi/src_py/controller/data.py +++ b/reccdi/src_py/controller/data.py @@ -157,6 +157,7 @@ def prep(fname, conf_info): filler = len(prep_data.shape) - len(bins) for _ in range(filler): bins.append(1) + bins[0], bins[1] = bins[1], bins[0] prep_data = ut.binning(prep_data, bins) except AttributeError: pass @@ -177,4 +178,4 @@ def prep(fname, conf_info): print ('data ready for reconstruction, data dims:', prep_data.shape) -#prep('/local/bfrosik/CDI/S149/Staff14-3_S0149.tif', 'config_data') \ No newline at end of file +#prep('/local/bfrosik/CDI/S149/Staff14-3_S0149.tif', 'config_data') From 74058239c99bd811e54f981f59dfc9585fef5b44 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Wed, 10 Jul 2019 15:01:36 -0500 Subject: [PATCH 171/336] Closing the Parsl connection after reconstruction. Changed number of blocks in parsl configuration from number of reconstructions to number of devices. Fixed axes in display. --- reccdi/src_py/controller/gen_rec.py | 12 +++++- .../src_py/controller/reconstruction_multi.py | 37 ++++++++++++++----- reccdi/src_py/utilities/CXDVizNX.py | 21 ++++------- 3 files changed, 45 insertions(+), 25 deletions(-) diff --git a/reccdi/src_py/controller/gen_rec.py b/reccdi/src_py/controller/gen_rec.py index 503e457..f1749c6 100644 --- a/reccdi/src_py/controller/gen_rec.py +++ b/reccdi/src_py/controller/gen_rec.py @@ -395,6 +395,7 @@ def reconstruction(generations, proc, data, conf_info, config_map): # init starting values # if multiple samples configured (typical for genetic algorithm), use "reconstruction_multi" module + dfk = None if samples > 1: images = [] supports = [] @@ -405,7 +406,13 @@ def reconstruction(generations, proc, data, conf_info, config_map): cohs.append(None) rec = multi # load parls configuration - rec.load_config(samples) + try: + devices = config_map.device + except: + devices = [-1] + + dfk = rec.load_config(len(devices)) + for g in range(generations): gen_data = gen_obj.get_data(data) images, supports, cohs, errs, recips = rec.rec(proc, gen_data, conf, config_map, images, supports, cohs) @@ -434,6 +441,9 @@ def reconstruction(generations, proc, data, conf_info, config_map): ut.save_results(image, support, coh, err, recip, gen_save_dir) gen_obj.next_gen() + if dfk is not None: + rec.clear(dfk) + print ('done gen') diff --git a/reccdi/src_py/controller/reconstruction_multi.py b/reccdi/src_py/controller/reconstruction_multi.py index 049a074..cc15981 100644 --- a/reccdi/src_py/controller/reconstruction_multi.py +++ b/reccdi/src_py/controller/reconstruction_multi.py @@ -17,12 +17,19 @@ visualization. """ +import parsl +from parsl.config import Config +from parsl.executors.ipp import IPyParallelExecutor +# from parsl.executors import HighThroughputExecutor +from parsl.providers import LocalProvider +from parsl.channels import LocalChannel import os import reccdi.src_py.utilities.utils as ut import reccdi.src_py.controller.fast_module as calc from parsl.app.app import python_app import time +import logging __author__ = "Barbara Frosik" @@ -32,13 +39,10 @@ 'reconstruction'] -def load_config(samples): - import parsl - from parsl.config import Config - from parsl.executors.ipp import IPyParallelExecutor - #from parsl.executors import HighThroughputExecutor - from parsl.providers import LocalProvider - from parsl.channels import LocalChannel +def load_config(devices): + parsl.set_stream_logger(name='parsl', level=logging.ERROR) + logging.getLogger('parsl').setLevel(logging.ERROR) + Config.checkpoint_mode = 'task_exit' local_config = Config( executors=[ IPyParallelExecutor( @@ -47,13 +51,14 @@ def load_config(samples): provider=LocalProvider( channel=LocalChannel(), init_blocks=1, - max_blocks=samples, + max_blocks=devices, parallelism=1, ) ) ] ) dfk = parsl.load(local_config) + return dfk def assign_devices(devices, samples): @@ -83,7 +88,8 @@ def assign_devices(devices, samples): if sample < dev_no: dev.append(devices[sample]) else: - dev.append(-1) + dev.append(devices[sample % len(devices)]) + print (dev) return dev @@ -303,7 +309,12 @@ def reconstruction(samples, proc, data, conf_info, config_map): supports.append(None) cohs.append(None) - load_config(samples) + try: + devices = config_map.device + except: + devices = [-1] + + dfk = load_config(len(devices)) start = time.time() if os.path.isdir(conf_info): @@ -327,6 +338,12 @@ def reconstruction(samples, proc, data, conf_info, config_map): if experiment_dir is not None: save_dir = os.path.join(experiment_dir, save_dir) + clear(dfk) + ut.save_multiple_results(samples, images, supports, cohs, errs, recips, save_dir) +def clear(dfk): + dfk.cleanup() + parsl.clear() + diff --git a/reccdi/src_py/utilities/CXDVizNX.py b/reccdi/src_py/utilities/CXDVizNX.py index c2eac50..3e9ee34 100644 --- a/reccdi/src_py/utilities/CXDVizNX.py +++ b/reccdi/src_py/utilities/CXDVizNX.py @@ -90,8 +90,9 @@ def __init__(self, config, last_scan): self.binning.append(1) except AttributeError: self.binning = [1,1,1] - self.dpx = pixel[0] * self.binning[1] / self.arm / self.binning[2] - self.dpy = pixel[1] * self.binning[0] / self.arm / self.binning[2] + print ('binning', self.binning, ) + self.dpx = pixel[0] * self.binning[0] / self.arm / self.binning[2] + self.dpy = pixel[1] * self.binning[1] / self.arm / self.binning[2] try: self.crop = [] crop = config_map.crop @@ -99,9 +100,7 @@ def __init__(self, config, last_scan): self.crop.append(crop[i]) for _ in range(3 - len(self.crop)): self.crop.append(1.0) - self.crop.reverse() - for i in range(3): - self.crop[i] = self.crop[i] * self.binning[i] + crop[0], crop[1] = crop[1], crop[0] except AttributeError: self.crop = None @@ -350,17 +349,11 @@ def get_crop(params, shape): return crop -def unbin(ar, bins): - array = ar - for ax in range(len(bins)): - if bins[ax] > 1: - array = np.repeat(array, bins[ax], axis=ax) - return array - - def save_CX(conf, image, support, coh, save_dir, last_scan): image = np.swapaxes(image, 1,2) + image = np.swapaxes(image, 0,1) support = np.swapaxes(support, 1,2) + support = np.swapaxes(support, 0,1) coh = np.swapaxes(coh, 1,2) image, support = center(image, support) params = DispalyParams(conf, last_scan) @@ -384,4 +377,4 @@ def save_CX(conf, image, support, coh, save_dir, last_scan): viz.write_structured_grid(coh_file) # a = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') -# remove_ramp(a, 3) +# remove_ramp(a, 3) \ No newline at end of file From 3278dd6a44fc49ed55447aac3b7e8c0d354207d1 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Wed, 10 Jul 2019 15:38:43 -0500 Subject: [PATCH 172/336] Closing the Parsl connection after reconstruction. Changed number of blocks in parsl configuration from number of reconstructions to number of devices. Fixed axes in display. --- reccdi/src_py/controller/reconstruction_multi.py | 1 - 1 file changed, 1 deletion(-) diff --git a/reccdi/src_py/controller/reconstruction_multi.py b/reccdi/src_py/controller/reconstruction_multi.py index cc15981..4d6f25a 100644 --- a/reccdi/src_py/controller/reconstruction_multi.py +++ b/reccdi/src_py/controller/reconstruction_multi.py @@ -89,7 +89,6 @@ def assign_devices(devices, samples): dev.append(devices[sample]) else: dev.append(devices[sample % len(devices)]) - print (dev) return dev From 7e5af5cac85dbd1250a55b9474076fba3cf696b7 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Wed, 10 Jul 2019 15:43:48 -0500 Subject: [PATCH 173/336] Fixed axes in display. --- reccdi/src_py/utilities/CXDVizNX.py | 1 - 1 file changed, 1 deletion(-) diff --git a/reccdi/src_py/utilities/CXDVizNX.py b/reccdi/src_py/utilities/CXDVizNX.py index 3e9ee34..d444793 100644 --- a/reccdi/src_py/utilities/CXDVizNX.py +++ b/reccdi/src_py/utilities/CXDVizNX.py @@ -90,7 +90,6 @@ def __init__(self, config, last_scan): self.binning.append(1) except AttributeError: self.binning = [1,1,1] - print ('binning', self.binning, ) self.dpx = pixel[0] * self.binning[0] / self.arm / self.binning[2] self.dpy = pixel[1] * self.binning[1] / self.arm / self.binning[2] try: From aa735e355ab847adc265f33a4ff870b4e4645636 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Wed, 17 Jul 2019 10:52:16 -0500 Subject: [PATCH 174/336] fixed adjust dim, cleaned up printouts, added new progress trigger --- bin/cdi_window.py | 187 ++++++++++++++------- reccdi/include/common.h | 5 +- reccdi/include/worker.hpp | 1 + reccdi/src_cpp/parameters.cpp | 2 +- reccdi/src_cpp/pcdi.cpp | 8 +- reccdi/src_cpp/state.cpp | 2 +- reccdi/src_cpp/support.cpp | 4 +- reccdi/src_cpp/util.cpp | 4 +- reccdi/src_cpp/worker.cpp | 55 +++--- reccdi/src_py/beamlines/aps_34id/prep.py | 12 +- reccdi/src_py/controller/data.py | 3 +- reccdi/src_py/controller/fast_module.py | 2 +- reccdi/src_py/controller/reconstruction.py | 2 - reccdi/src_py/run_scripts/run_rec.py | 1 + reccdi/src_py/utilities/utils.py | 31 ++-- 15 files changed, 199 insertions(+), 120 deletions(-) diff --git a/bin/cdi_window.py b/bin/cdi_window.py index 62afc38..99a3740 100644 --- a/bin/cdi_window.py +++ b/bin/cdi_window.py @@ -18,6 +18,8 @@ def select_file(start_dir): dialog.setSidebarUrls([QUrl.fromLocalFile(start_dir)]) if dialog.exec_() == QDialog.Accepted: return str(dialog.selectedFiles()[0]) + else: + return None def select_dir(start_dir): @@ -90,7 +92,7 @@ def load_conf_dir(self): self.msg_window('missing config file in load directory') return elif not os.path.isfile(os.path.join(load_dir, 'config_data')): - self.msg_window('missing config_data file in load directory') + self.msg_window('missing config_p in load directory') return elif not os.path.isfile(os.path.join(load_dir, 'config_rec')): self.msg_window('missing config_rec file in load directory') @@ -188,10 +190,38 @@ def init_from_conf(self, dir): self.msg_window('please check configuration file ' + main_conf + '. Cannot parse, ' + str(e)) return - self.t.data_dir = conf_map.data_dir - self.t.specfile = conf_map.specfile - self.t.darkfile = conf_map.darkfile - self.t.whitefile = conf_map.whitefile + try: + self.t.data_dir = conf_map.data_dir + self.t.data_dir_button.setStyleSheet("Text-align:left") + self.t.data_dir_button.setText(self.t.data_dir) + except: + self.t.data_dir = None + self.t.data_dir_button.setText('') + try: + self.t.specfile = conf_map.specfile + self.t.spec_file_button.setStyleSheet("Text-align:left") + self.t.spec_file_button.setText(self.t.specfile) + # set specfile also in display tab + self.t.spec_file_button1.setStyleSheet("Text-align:left") + self.t.spec_file_button1.setText(self.t.specfile) + except: + self.t.specfile = None + self.t.spec_file_button.setText('') + self.t.spec_file_button1.setText('') + try: + self.t.darkfile = conf_map.darkfile + self.t.dark_file_button.setStyleSheet("Text-align:left") + self.t.dark_file_button.setText(self.t.darkfile) + except: + self.t.darkfile = None + self.t.dark_file_button.setText('') + try: + self.t.whitefile = conf_map.whitefile + self.t.white_file_button.setStyleSheet("Text-align:left") + self.t.white_file_button.setText(self.t.whitefile) + except: + self.t.whitefile = None + self.t.white_file_button.setText('') try: self.t.min_files.setText(str(conf_map.min_files).replace(" ", "")) except: @@ -204,18 +234,6 @@ def init_from_conf(self, dir): self.t.det_quad.setText(str(conf_map.det_quad).replace(" ", "")) except: pass - # set the text in the window - self.t.data_dir_button.setStyleSheet("Text-align:left") - self.t.data_dir_button.setText(self.t.data_dir) - self.t.spec_file_button.setStyleSheet("Text-align:left") - self.t.spec_file_button.setText(self.t.specfile) - # set specfile also in display tab - self.t.spec_file_button1.setStyleSheet("Text-align:left") - self.t.spec_file_button1.setText(self.t.specfile) - self.t.dark_file_button.setStyleSheet("Text-align:left") - self.t.dark_file_button.setText(self.t.darkfile) - self.t.white_file_button.setStyleSheet("Text-align:left") - self.t.white_file_button.setText(self.t.whitefile) # initialize "Data" tab data_conf = os.path.join(dir, 'config_data') @@ -325,10 +343,10 @@ def init_from_conf(self, dir): self.t.specfile = specfile self.t.spec_file_button1.setStyleSheet("Text-align:left") self.t.spec_file_button1.setText(self.t.specfile) + if os.path.isfile(self.t.specfile): + self.t.parse_spec() except AttributeError: pass - if os.path.isfile(self.t.specfile): - self.t.parse_spec() def msg_window(self, text): @@ -563,11 +581,16 @@ def set_overriden(self, item): def set_spec_file(self): self.specfile = select_file(self.specfile) - self.spec_file_button.setStyleSheet("Text-align:left") - self.spec_file_button.setText(self.specfile) - self.spec_file_button1.setStyleSheet("Text-align:left") - self.spec_file_button1.setText(self.specfile) - self.parse_spec() + if self.specfile is not None: + self.spec_file_button.setStyleSheet("Text-align:left") + self.spec_file_button.setText(self.specfile) + self.spec_file_button1.setStyleSheet("Text-align:left") + self.spec_file_button1.setText(self.specfile) + self.parse_spec() + else: + self.spec_file_button.setText('') + self.spec_file_button.setText('') + def parse_spec(self): @@ -593,46 +616,60 @@ def parse_spec(self): def set_dark_file(self): self.darkfile = select_file(self.darkfile) - self.dark_file_button.setStyleSheet("Text-align:left") - self.dark_file_button.setText(self.darkfile) + if self.darkfile is not None: + self.dark_file_button.setStyleSheet("Text-align:left") + self.dark_file_button.setText(self.darkfile) + else: + self.dark_file_button.setText('') def set_white_file(self): self.whitefile = select_file(self.whitefile) - self.white_file_button.setStyleSheet("Text-align:left") - self.white_file_button.setText(self.whitefile) - + if self.whitefile is not None: + self.white_file_button.setStyleSheet("Text-align:left") + self.white_file_button.setText(self.whitefile) + else: + self.white_file_button.setText('') def set_data_dir(self): self.data_dir = select_dir(self.data_dir) if self.data_dir is not None: self.data_dir_button.setStyleSheet("Text-align:left") self.data_dir_button.setText(self.data_dir) + else: + self.data_dir_button.setText('') def set_prep_file(self): prep_file = select_file(self.main_win.working_dir) - selected = str(prep_file) - if not selected.endswith('tif') and not selected.endswith('tiff'): - self.msg_window("the file extension must be tif or tiff") - return - self.ready_prep.setStyleSheet("Text-align:left") - self.ready_prep.setText(prep_file) - # save the file as experiment prep file - prep_dir = os.path.join(self.main_win.experiment_dir, 'prep') - if not os.path.exists(prep_dir): - os.makedirs(prep_dir) - exp_prep_file = os.path.join(prep_dir, 'prep_data.tif') - shutil.copyfile(selected, exp_prep_file) + if prep_file is not None: + selected = str(prep_file) + if not selected.endswith('tif') and not selected.endswith('tiff'): + self.msg_window("the file extension must be tif or tiff") + return + self.ready_prep.setStyleSheet("Text-align:left") + self.ready_prep.setText(prep_file) + # save the file as experiment prep file + prep_dir = os.path.join(self.main_win.experiment_dir, 'prep') + if not os.path.exists(prep_dir): + os.makedirs(prep_dir) + exp_prep_file = os.path.join(prep_dir, 'prep_data.tif') + shutil.copyfile(selected, exp_prep_file) + else: + self.ready_prep.setText('') def set_prep_script(self): self.script = select_file(self.main_win.working_dir) - self.script_button.setStyleSheet("Text-align:left") - self.script_button.setText(self.script) - # fill the arguments with experiment_dir, scans, config file - conf_file = os.path.join(self.main_win.experiment_dir, 'conf', 'config') - self.args.setText(str(self.main_win.experiment_dir) + ',' + str(self.main_win.scan) + ',' + conf_file) + if self.script is not None: + self.script_button.setStyleSheet("Text-align:left") + self.script_button.setText(self.script) + # fill the arguments with experiment_dir, scans, config file + conf_file = os.path.join(self.main_win.experiment_dir, 'conf', 'config') + self.args.setText(str(self.main_win.experiment_dir) + ',' + str(self.main_win.scan) + ',' + conf_file) + else: + self.script_button.setText('') + def prepare(self): @@ -643,7 +680,7 @@ def prepare(self): if not os.path.exists(prep_dir): os.makedirs(prep_dir) conf_map = {} - if len(self.main_win.working_dir) > 0: + if self.main_win.working_dir is not None: conf_map['working_dir'] = '"' + str(self.main_win.working_dir) + '"' else: self.msg_window("working_dir not defined") @@ -664,13 +701,13 @@ def prepare(self): def prepare_custom(self, conf_map): - if len(self.data_dir) > 0: + if self.data_dir is not None: conf_map['data_dir'] = '"' + str(self.data_dir) + '"' - if len(self.specfile) > 0: + if self.specfile is not None: conf_map['specfile'] = '"' + str(self.specfile) + '"' - if len(self.darkfile) > 0: + if self.darkfile is not None: conf_map['darkfile'] = '"' + str(self.darkfile) + '"' - if len(self.whitefile) > 0: + if self.whitefile is not None: conf_map['whitefile'] = '"' + str(self.whitefile) + '"' # determine script directory and script name @@ -753,20 +790,15 @@ def prepare_34id(self, conf_map): self.msg_window('enter all parameters: working_dir, id, scan, data_dir, specfile or detector quad') return - if type(self.data_dir) is not None: + if self.data_dir is not None: conf_map['data_dir'] = '"' + str(self.data_dir) + '"' - if type(self.specfile) is not None: + if self.specfile is not None: conf_map['specfile'] = '"' + str(self.specfile) + '"' - if type(self.darkfile) is not None: + if self.darkfile is not None: conf_map['darkfile'] = '"' + str(self.darkfile) + '"' - else: - self.msg_window("darkfile not defined") - return - if type(self.whitefile) is not None: + if self.whitefile is not None: conf_map['whitefile'] = '"' + str(self.whitefile) + '"' - else: - self.msg_window("whitefile not defined") - return + conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') conf_file = os.path.join(conf_dir, 'config') if self.main_win.write_conf(conf_map, conf_dir, 'config'): @@ -846,7 +878,7 @@ def display(self): os.path.isfile(os.path.join(res_dir, '0', 'image.npy')) or \ os.path.isfile(os.path.join(res_dir, 'g_0', '0', 'image.npy')): conf_map = {} - if type(self.specfile) is not None: + if self.specfile is not None: conf_map['specfile'] = '"' + str(self.specfile) + '"' if len(self.energy.text()) > 0: conf_map['energy'] = str(self.energy.text()) @@ -1274,11 +1306,37 @@ def add_feat_conf(self, conf_map): conf_map['average_trigger'] = str(self.average_triggers.text()).replace('\n','') +class progress(Feature): + def __init__(self): + super(progress, self).__init__() + self.id = 'progress' + + + def init_config(self, conf_map): + try: + self.progress_triggers.setText(str(conf_map.progress_trigger).replace(" ", "")) + except AttributeError: + pass + + + def fill_active(self, layout): + self.progress_triggers = QLineEdit() + layout.addRow("progress triggers", self.progress_triggers) + + + def rec_default(self): + self.progress_triggers.setText('(0,20)') + + + def add_feat_conf(self, conf_map): + conf_map['progress_trigger'] = str(self.progress_triggers.text()).replace('\n','') + + class Features(QWidget): def __init__(self, tab, layout): super(Features, self).__init__() - feature_ids = ['GA', 'low resolution', 'amplitude support', 'phase support', 'pcdi', 'twin', 'average'] + feature_ids = ['GA', 'low resolution', 'amplitude support', 'phase support', 'pcdi', 'twin', 'average', 'progress'] self.leftlist = QListWidget() self.feature_dir = {'GA' : GA(), 'low resolution' : low_resolution(), @@ -1286,7 +1344,8 @@ def __init__(self, tab, layout): 'phase support' : phase_support(), 'pcdi' : pcdi(), 'twin' : twin(), - 'average' : average()} + 'average' : average(), + 'progress' : progress()} self.Stack = QStackedWidget(self) for i in range(len(feature_ids)): id = feature_ids[i] diff --git a/reccdi/include/common.h b/reccdi/include/common.h index 7e8d494..85fdd65 100644 --- a/reccdi/include/common.h +++ b/reccdi/include/common.h @@ -70,8 +70,9 @@ typedef struct flow_item_def { char* item_name; // To add a new trigger/function do the following: // 1. Insert a new definition for the flow_item in the correct order in the flow_def array. // 2. Update the flow_seq_len below. -// 3. Add the new function to the worker.hh and worker.cc, and add the pair (func_name, fp) to the flow_ptr_map in worker.cc. +// 3. Add the new function to the worker.hh and worker.cc, and add the pair (func_name, fp) to the flow_ptr_map in worker.cpp. const flow_item_def flow_def[] = { + flow_item_def("progress_trigger", FOR_ALL_RUNS, "Prog"), flow_item_def("next", NOT_TRIGGER, "NextIter"), flow_item_def("resolution_trigger", FIRST_RUN_ONLY, "ResolutionTrigger"), flow_item_def("amp_support_trigger", MODIFIED_AFTER_FIRST, "SupportTrigger"), @@ -88,6 +89,6 @@ const flow_item_def flow_def[] = { flow_item_def("average_trigger", FOR_ALL_RUNS, "Average") }; -const int flow_seq_len = 14; +const int flow_seq_len = 15; #endif /* common_h */ diff --git a/reccdi/include/worker.hpp b/reccdi/include/worker.hpp index 397bf99..1a05a3b 100644 --- a/reccdi/include/worker.hpp +++ b/reccdi/include/worker.hpp @@ -83,6 +83,7 @@ typedef void (Reconstruction::*fp)(void); d_type CalculateError(); // void Plot(); + void Progress(); void NextIter(); void ResolutionTrigger(); void SupportTrigger(); diff --git a/reccdi/src_cpp/parameters.cpp b/reccdi/src_cpp/parameters.cpp index e67e36b..abddb27 100644 --- a/reccdi/src_cpp/parameters.cpp +++ b/reccdi/src_cpp/parameters.cpp @@ -419,7 +419,7 @@ Params::Params(const char* config_file, std::vector data_dim, bool first) { twin_halves.push_back(0); twin_halves.push_back(0); - printf((std::string("No 'twin_halves' parameter in configuration file. Setting to (0,0).\n")).c_str()); + //printf((std::string("No 'twin_halves' parameter in configuration file. Setting to (0,0).\n")).c_str()); } if ((first) && root.exists("resolution_trigger")) diff --git a/reccdi/src_cpp/pcdi.cpp b/reccdi/src_cpp/pcdi.cpp index f70df87..090c643 100644 --- a/reccdi/src_cpp/pcdi.cpp +++ b/reccdi/src_cpp/pcdi.cpp @@ -80,8 +80,8 @@ af::array PartialCoherence::ApplyPartialCoherence(af::array abs_amplitudes) af::array converged = sqrt(converged_2); //af::array converged = sqrt(fftConvolve(pow(abs_amplitudes, 2), kernel_array)); // implemented here, but works different than af::fftConvolve - printf("coherence norm %f\n", sum(pow(abs(kernel_array), 2))); - printf("converged norm %f\n", sum(pow(abs(converged), 2))); + //printf("coherence norm %f\n", sum(pow(abs(kernel_array), 2))); + //printf("converged norm %f\n", sum(pow(abs(converged), 2))); return converged; } @@ -92,7 +92,7 @@ void PartialCoherence::UpdatePartialCoherence(af::array abs_amplitudes) af::array roi_combined_amp = 2*roi_abs_amplitudes - roi_amplitudes_prev; OnTrigger(roi_combined_amp); // use_2k_1 from matlab program - printf("Updating coherence\n"); + //printf("Updating coherence\n"); } @@ -165,7 +165,7 @@ void PartialCoherence::DeconvLucy(af::array amplitudes, af::array data, int iter coherence = real(coherence); d_type coh_sum = sum(abs(coherence)); coherence = abs(coherence)/coh_sum; - printf("coherence norm , %f\n", sum(pow(abs(coherence), 2))); + //printf("coherence norm , %f\n", sum(pow(abs(coherence), 2))); kernel_array = coherence; } diff --git a/reccdi/src_cpp/state.cpp b/reccdi/src_cpp/state.cpp index 830c71d..73cd736 100644 --- a/reccdi/src_cpp/state.cpp +++ b/reccdi/src_cpp/state.cpp @@ -60,7 +60,7 @@ int State::GetCurrentAlg() void State::RecordError(d_type error) { errors.push_back(error); - printf("iter, error %i %fl\n", current_iter, error); + //printf("iter, error %i %fl\n", current_iter, error); } int State::GetCurrentIteration() diff --git a/reccdi/src_cpp/support.cpp b/reccdi/src_cpp/support.cpp index 378932d..43e16aa 100644 --- a/reccdi/src_cpp/support.cpp +++ b/reccdi/src_cpp/support.cpp @@ -56,7 +56,7 @@ void Support::UpdateAmp(const af::array ds_image, d_type sig, int iter) distribution = GetDistribution(ds_image.dims(), sig); } - printf("updating support\n"); + //printf("updating support\n"); af::array convag = GaussConvFft(abs(ds_image)); d_type max_convag = af::max(convag); convag = convag/max_convag; @@ -69,7 +69,7 @@ void Support::UpdateAmp(const af::array ds_image, d_type sig, int iter) void Support::UpdatePhase(const af::array ds_image, int iter) { - printf("phase trigger\n"); + //printf("phase trigger\n"); af::array phase = atan2(imag(ds_image), real(ds_image)); af::array phase_condition = ((phase > params->GetPhaseMin()) && (phase < params->GetPhaseMax())); if (iter == update_iter) diff --git a/reccdi/src_cpp/util.cpp b/reccdi/src_cpp/util.cpp index d85288a..1493492 100644 --- a/reccdi/src_cpp/util.cpp +++ b/reccdi/src_cpp/util.cpp @@ -108,12 +108,12 @@ void Utils::GetMaxIndices(af::array arr, int* indices) std::vector v(arr_values, arr_values + arr.elements()); std::vector::iterator result = std::max_element(v.begin(), v.end()); int max_offset = result - v.begin(); - printf("maximum value, %i %f\n", max_offset, v[max_offset]); + //printf("maximum value, %i %f\n", max_offset, v[max_offset]); delete [] arr_values; indices[0] = max_offset % arr.dims()[0]; indices[1] = max_offset / arr.dims()[0] % arr.dims()[1]; indices[2] = max_offset/ (arr.dims()[0] * arr.dims()[1]); - printf("offset, ind1, ind2 ind3 %i %i %i %i\n", max_offset, indices[0], indices[1], indices[2]); + //printf("offset, ind1, ind2 ind3 %i %i %i %i\n", max_offset, indices[0], indices[1], indices[2]); } af::array Utils::GaussDistribution(af::dim4 data_dim, d_type * sgma, int alpha) diff --git a/reccdi/src_cpp/worker.cpp b/reccdi/src_cpp/worker.cpp index b7e699d..1ad8d35 100644 --- a/reccdi/src_cpp/worker.cpp +++ b/reccdi/src_cpp/worker.cpp @@ -105,6 +105,7 @@ void Reconstruction::Init() } } std::map flow_ptr_map; + flow_ptr_map["Prog"] = &Reconstruction::Progress; flow_ptr_map["NextIter"] = &Reconstruction::NextIter; flow_ptr_map["ResolutionTrigger"] = &Reconstruction::ResolutionTrigger; flow_ptr_map["SupportTrigger"] = &Reconstruction::SupportTrigger; @@ -157,7 +158,7 @@ void Reconstruction::Init() // ds_image = complex(temp.as((af_dtype) dtype_traits::ctype), 0.0).as(c64); ds_image *= support->GetSupportArray(); - printf("initial image norm %f\n", GetNorm(ds_image)); + //printf("initial image norm %f\n", GetNorm(ds_image)); } @@ -206,45 +207,49 @@ void Reconstruction::Iterate() } } -void Reconstruction::NextIter() +void Reconstruction::Progress() { printf("------------------current iteration %i -----------------\n", current_iteration); +} + +void Reconstruction::NextIter() +{ iter_data = data; sig = params->GetSupportSigma(); - printf("NextIter\n"); + //printf("NextIter\n"); } void Reconstruction::ResolutionTrigger() { iter_data = resolution->GetIterData(current_iteration, data.copy()); sig = resolution->GetIterSigma(current_iteration); - printf("ResolutionTrigger\n"); + //printf("ResolutionTrigger\n"); } void Reconstruction::SupportTrigger() { support->UpdateAmp(ds_image.copy(), sig, current_iteration); - printf("SupportTrigger\n"); + //printf("SupportTrigger\n"); } void Reconstruction::PhaseTrigger() { support->UpdatePhase(ds_image.copy(), current_iteration); - printf("PhaseTrigger\n"); + //printf("PhaseTrigger\n"); } void Reconstruction::ToReciprocal() { rs_amplitudes = Utils::ifft(ds_image)*num_points; - printf("data norm, ampl norm before ratio %fl %fl\n", GetNorm(iter_data), GetNorm(rs_amplitudes)); - printf("ToReciprocal\n"); + //printf("data norm, ampl norm before ratio %fl %fl\n", GetNorm(iter_data), GetNorm(rs_amplitudes)); + //printf("ToReciprocal\n"); } void Reconstruction::PcdiTrigger() { af::array abs_amplitudes = abs(rs_amplitudes).copy(); partialCoherence->UpdatePartialCoherence(abs_amplitudes); - printf("PcdiTrigger\n"); + //printf("PcdiTrigger\n"); } void Reconstruction::Pcdi() @@ -252,10 +257,10 @@ void Reconstruction::Pcdi() af::array abs_amplitudes = abs(rs_amplitudes).copy(); af::array converged = partialCoherence->ApplyPartialCoherence(abs_amplitudes); af::array ratio = Utils::GetRatio(iter_data, abs(converged)); - printf("ratio norm %f\n", GetNorm(ratio)); + //printf("ratio norm %f\n", GetNorm(ratio)); state->RecordError( GetNorm(abs(converged)(converged > 0)-iter_data(converged > 0))/GetNorm(iter_data)); rs_amplitudes *= ratio; - printf("Pcdi\n"); + //printf("Pcdi\n"); } void Reconstruction::NoPcdi() @@ -263,32 +268,32 @@ void Reconstruction::NoPcdi() af::array ratio = Utils::GetRatio(iter_data, abs(rs_amplitudes)); state->RecordError( GetNorm(abs(rs_amplitudes)(rs_amplitudes > 0)-iter_data(rs_amplitudes > 0))/GetNorm(iter_data)); rs_amplitudes *= ratio; - printf("NoPcdi\n"); + //printf("NoPcdi\n"); } void Reconstruction::Gc() { af::deviceGC(); - printf("Gc\n"); + //printf("Gc\n"); } void Reconstruction::SetPcdiPrevious() { partialCoherence->SetPrevious(abs(rs_amplitudes)); - printf("SetPcdiPrevious\n"); + //printf("SetPcdiPrevious\n"); } void Reconstruction::ToDirect() { ds_image_raw = Utils::fft(rs_amplitudes)/num_points; - printf("ToDirect\n"); + //printf("ToDirect\n"); } void Reconstruction::RunAlg() { Algorithm * alg = algorithm_map[state->GetCurrentAlg()]; alg->RunAlgorithm(this); - printf("RunAlg\n"); + //printf("RunAlg\n"); } void Reconstruction::Twin() @@ -302,12 +307,12 @@ void Reconstruction::Twin() int y_end = (twin_halves[1] == 0) ? dims[1]/2 -1 : dims[1]-1; temp( af::seq(x_start, x_end), af::seq(y_start, y_end), span, span) = 1; ds_image = ds_image * temp; - printf("Twin\n"); + //printf("Twin\n"); } void Reconstruction::Average() { - printf("average\n"); + //printf("average\n"); aver_iter++; af::array abs_image = abs(ds_image).copy(); d_type *image_v = abs_image.host(); @@ -328,29 +333,29 @@ void Reconstruction::Average() } delete [] image_v; - printf("Average\n"); + //printf("Average\n"); } void Reconstruction::ModulusConstrainEr() { - printf("er\n"); - printf("image norm before support %fl\n", GetNorm(ds_image_raw)); + //printf("er\n"); + //printf("image norm before support %fl\n", GetNorm(ds_image_raw)); af::array support_array = support->GetSupportArray(); ds_image = ds_image_raw * support_array; - printf("image norm after support %fl\n", GetNorm(ds_image)); + //printf("image norm after support %fl\n", GetNorm(ds_image)); } void Reconstruction::ModulusConstrainHio() { - printf("hio\n"); - printf("image norm before support %fl\n",GetNorm(ds_image_raw)); + //printf("hio\n"); + //printf("image norm before support %fl\n",GetNorm(ds_image_raw)); //ds_image(support->GetSupportArray(state->IsApplyTwin()) == 0) = (ds_image - ds_image_raw * params->GetBeta())(support->GetSupportArray(state->IsApplyTwin()) == 0); af::array support_array = support->GetSupportArray(); af::array adjusted_calc_image = ds_image_raw * params->GetBeta(); af::array combined_image = ds_image - adjusted_calc_image; ds_image = ds_image_raw; ds_image(support_array == 0) = combined_image(support_array == 0); - printf("image norm after support %fl\n",GetNorm(ds_image)); + //printf("image norm after support %fl\n",GetNorm(ds_image)); } double Reconstruction::GetNorm(af::array arr) diff --git a/reccdi/src_py/beamlines/aps_34id/prep.py b/reccdi/src_py/beamlines/aps_34id/prep.py index 0f2494b..aaf0a51 100644 --- a/reccdi/src_py/beamlines/aps_34id/prep.py +++ b/reccdi/src_py/beamlines/aps_34id/prep.py @@ -70,7 +70,10 @@ def get_dark_white(darkfile, whitefile, det_area1, det_area2): def get_normalized_slice(file, dark, white): - slice = tif.TiffFile(file).asarray() + # file is a tuple of slice and either background slice or None + slice = tif.TiffFile(file[0]).asarray() + if file[1] is not None: + slice = slice - tif.TiffFile(file[1]).asarray() if dark is not None: slice = np.where(dark > 5, 0, slice) #Ignore cosmic rays # here would be code for correction for dead time @@ -95,7 +98,12 @@ def read_scan(dir, dark, white): for key in ordered_keys: file = files_dir[key] - files.append(os.path.join(dir, file)) + file = os.path.join(dir, file) + bg_file = file.replace('.tif', '_bg.tif') + if not os.path.isfile(bg_file): + bg_file = None + + files.append((file, bg_file)) # look at slice0 to find out shape n = 0 diff --git a/reccdi/src_py/controller/data.py b/reccdi/src_py/controller/data.py index e2994d7..336b03a 100644 --- a/reccdi/src_py/controller/data.py +++ b/reccdi/src_py/controller/data.py @@ -137,8 +137,7 @@ def prep(fname, conf_info): pairs.append(pair) # change pairs x and y, as the ImageJ swaps the axes pairs[0], pairs[1] = pairs[1], pairs[0] - prep_data = ut.adjust_dimensions(prep_data, crops_pads) - print ('shape after adjust', prep_data.shape) + prep_data = ut.adjust_dimensions(prep_data, pairs) if prep_data is None: return diff --git a/reccdi/src_py/controller/fast_module.py b/reccdi/src_py/controller/fast_module.py index 4cbb11a..7792161 100755 --- a/reccdi/src_py/controller/fast_module.py +++ b/reccdi/src_py/controller/fast_module.py @@ -132,7 +132,7 @@ def fast_module_reconstruction(proc, device, conf, data, coh_dims, image=None, s image_r = copy.deepcopy(np.asarray(fast_module.get_image_r())) image_i = copy.deepcopy(np.asarray(fast_module.get_image_i())) image = image_r + 1j*image_i - print ('image norm in fast module', sum(abs(image)**2)) + #print ('image norm in fast module', sum(abs(image)**2)) # normalize image mx = max(np.absolute(image).ravel().tolist()) image = image/mx diff --git a/reccdi/src_py/controller/reconstruction.py b/reccdi/src_py/controller/reconstruction.py index 49b33aa..b8f229a 100644 --- a/reccdi/src_py/controller/reconstruction.py +++ b/reccdi/src_py/controller/reconstruction.py @@ -161,8 +161,6 @@ def reconstruction(proc, data, conf_info, config_map): ut.save_results(image, support, coh, np.asarray(errs), recips, save_dir) - print('done') - # if len(images) == 1: # errors = results[0][3] # errors.pop(0) diff --git a/reccdi/src_py/run_scripts/run_rec.py b/reccdi/src_py/run_scripts/run_rec.py index cfcb92a..aea5830 100755 --- a/reccdi/src_py/run_scripts/run_rec.py +++ b/reccdi/src_py/run_scripts/run_rec.py @@ -6,6 +6,7 @@ import reccdi.src_py.controller.reconstruction as rec import reccdi.src_py.controller.gen_rec as gen_rec import reccdi.src_py.utilities.utils as ut +import numpy as np def interrupt_thread(arg): diff --git a/reccdi/src_py/utilities/utils.py b/reccdi/src_py/utilities/utils.py index 16b14bf..9d53fac 100644 --- a/reccdi/src_py/utilities/utils.py +++ b/reccdi/src_py/utilities/utils.py @@ -289,7 +289,7 @@ def get_zero_padded_centered(arr, new_shape): return centered -def adjust_dimensions(arr, pad): +def adjust_dimensions(arr, pads): """ This function adds to or subtracts from each dimension of the array elements defined by pad. If the pad is positive, the array is padded in this dimension. If the pad is negative, the array is cropped. @@ -305,33 +305,39 @@ def adjust_dimensions(arr, pad): array : array the padded/cropped array """ - logger = get_logger('adjust_dimensions') + # logger = get_logger('adjust_dimensions') old_dims = arr.shape - cropped = arr + start = [] + stop = [] for i in range(len(old_dims)): - crop_front = max(0, -pad[2 * i]) - crop_end = max(0, -pad[2 * i + 1]) - if crop_front + crop_end >= arr.shape[i]: + pad = pads[i] + first = max(0, -pad[0]) + last = old_dims[i] - max(0, -pad[1]) + if first >= last: print ('the crop exceeds size, please change the crop and run again') return None - splitted = np.split(cropped, [crop_front, old_dims[i] - crop_end], axis=i) - cropped = splitted[1] + else: + start.append(first) + stop.append(last) + + cropped = arr[ start[0]:stop[0], start[1]:stop[1], start[2]:stop[2] ] # logger.info('cutting from to ' + str(crop[0]) + ', ' + str(old_dims[0]-crop[1]) + ', ' + str(crop[2]) + ', ' \ # + str(old_dims[1]-crop[3]) + ', ' + str(crop[4]) + ', ' + str(old_dims[2]-crop[5])) dims = cropped.shape c_vals = [] new_pad = [] for i in range(len(dims)): + pad = pads[i] # find a good dimension and find padding - temp_dim = old_dims[i] + pad[2 * i] + pad[2 * i + 1] + temp_dim = old_dims[i] + pad[0] + pad[1] new_dim = get_good_dim(temp_dim) added = new_dim - temp_dim # if the pad is positive - pad_front = max(0, pad[2 * i]) + int(added / 2) + pad_front = max(0, pad[0]) + int(added / 2) pad_end = new_dim - dims[i] - pad_front new_pad.append((pad_front, pad_end)) c_vals.append((0.0, 0.0)) - adjusted = np.lib.pad(cropped, (new_pad), 'constant', constant_values=c_vals) + adjusted = np.pad(cropped, new_pad, 'constant', constant_values=c_vals) # logger.info('pads ' + str(new_pad[0]) + ', ' + str(new_pad[1]) + ', ' + str(new_pad[2]) + ', ' + str(new_pad[3]) \ # + ', ' + str(new_pad[4]) + ', ' + str(new_pad[5])) @@ -340,7 +346,8 @@ def adjust_dimensions(arr, pad): return adjusted - +# ar = np.zeros((256,256,90)) +# pads = (-100,-100,0,0,0,0) # ar = np.zeros((81,256,256)) # pads = (5,-7,-20,-30,4,-20) # arr = adjust_dimensions(ar,pads) From 9805ac6c77c28005875c46302cd3b563d7188f48 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Wed, 17 Jul 2019 16:37:30 -0500 Subject: [PATCH 175/336] added checked for coherence --- reccdi/src_py/utilities/CXDVizNX.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reccdi/src_py/utilities/CXDVizNX.py b/reccdi/src_py/utilities/CXDVizNX.py index d444793..5f3709d 100644 --- a/reccdi/src_py/utilities/CXDVizNX.py +++ b/reccdi/src_py/utilities/CXDVizNX.py @@ -353,7 +353,6 @@ def save_CX(conf, image, support, coh, save_dir, last_scan): image = np.swapaxes(image, 0,1) support = np.swapaxes(support, 1,2) support = np.swapaxes(support, 0,1) - coh = np.swapaxes(coh, 1,2) image, support = center(image, support) params = DispalyParams(conf, last_scan) image = remove_ramp(image) @@ -368,6 +367,7 @@ def save_CX(conf, image, support, coh, save_dir, last_scan): support_file = os.path.join(save_dir, 'support') viz.write_structured_grid(support_file) if coh is not None: + coh = np.swapaxes(coh, 1, 2) # investigate if pad_center before fft or after coh = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(coh))).real coh = ut.get_zero_padded_centered(coh, image.shape) From 259867062e404515b96a95241355009f38cfdc9f Mon Sep 17 00:00:00 2001 From: bfrosik Date: Tue, 6 Aug 2019 15:26:14 -0500 Subject: [PATCH 176/336] printing error during reconstruction Added separate scans feature --- bin/cdi_window.py | 21 +++++--- config | 31 ++++++++++++ reccdi/include/common.h | 4 +- reccdi/include/worker.hpp | 3 +- reccdi/src_cpp/worker.cpp | 19 ++++--- reccdi/src_py/beamlines/aps_34id/prep.py | 19 ++++++- reccdi/src_py/controller/data.py | 4 ++ reccdi/src_py/controller/gen_rec.py | 28 +++++------ reccdi/src_py/controller/reconstruction.py | 6 ++- .../src_py/controller/reconstruction_multi.py | 5 ++ reccdi/src_py/run_scripts/run_data.py | 10 +++- reccdi/src_py/run_scripts/run_disp.py | 36 ++++++++----- reccdi/src_py/run_scripts/run_rec.py | 50 +++++++++++-------- 13 files changed, 168 insertions(+), 68 deletions(-) diff --git a/bin/cdi_window.py b/bin/cdi_window.py index 99a3740..5541f60 100644 --- a/bin/cdi_window.py +++ b/bin/cdi_window.py @@ -47,6 +47,9 @@ def __init__(self, parent=None): self.scan_widget = QLineEdit() uplayout.addRow("scan(s)", self.scan_widget) self.set_conf_from_button = QPushButton() + self.separate_scans = QCheckBox() + uplayout.addRow("separate scans", self.separate_scans) + self.separate_scans.setChecked(False) uplayout.addRow("Load conf from", self.set_conf_from_button) self.run_button = QPushButton('run_everything', self) uplayout.addWidget(self.run_button) @@ -676,9 +679,9 @@ def prepare(self): if self.main_win.id is None: self.msg_window('enter Reconstruction ID and scan') else: - prep_dir = os.path.join(self.main_win.experiment_dir, 'prep') - if not os.path.exists(prep_dir): - os.makedirs(prep_dir) + # prep_dir = os.path.join(self.main_win.experiment_dir, 'prep') + # if not os.path.exists(prep_dir): + # os.makedirs(prep_dir) conf_map = {} if self.main_win.working_dir is not None: conf_map['working_dir'] = '"' + str(self.main_win.working_dir) + '"' @@ -693,7 +696,8 @@ def prepare(self): if len(self.det_quad.text()) > 0: det_quad = str(self.det_quad.text()) conf_map['det_quad'] = det_quad - + if self.main_win.separate_scans.isChecked(): + conf_map['separate_scans'] = 'true' if str(self.prep.currentText()) == "custom": self.prepare_custom(conf_map) elif str(self.prep.currentText()) == "34ID prep": @@ -809,7 +813,8 @@ def prepare_34id(self, conf_map): def format_data(self): - if os.path.isfile(os.path.join(self.main_win.experiment_dir, 'prep','prep_data.tif')): + if os.path.isfile(os.path.join(self.main_win.experiment_dir, 'prep','prep_data.tif'))\ + or self.main_win.separate_scans.isChecked(): conf_map = {} if len(self.aliens.text()) > 0: conf_map['aliens'] = str(self.aliens.text()).replace('\n','') @@ -841,7 +846,8 @@ def msg_window(self, text): def reconstruction(self): - if os.path.isfile(os.path.join(self.main_win.experiment_dir, 'data', 'data.tif')): + if os.path.isfile(os.path.join(self.main_win.experiment_dir, 'data', 'data.tif'))\ + or self.main_win.separate_scans.isChecked(): conf_map = {} conf_map['samples'] = str(self.samples.text()) conf_map['device'] = str(self.device.text()).replace('\n','') @@ -876,7 +882,8 @@ def display(self): res_dir = os.path.join(self.main_win.experiment_dir, 'results') if os.path.isfile(os.path.join(res_dir, 'image.npy')) or \ os.path.isfile(os.path.join(res_dir, '0', 'image.npy')) or \ - os.path.isfile(os.path.join(res_dir, 'g_0', '0', 'image.npy')): + os.path.isfile(os.path.join(res_dir, 'g_0', '0', 'image.npy')) or \ + self.main_win.separate_scans.isChecked(): conf_map = {} if self.specfile is not None: conf_map['specfile'] = '"' + str(self.specfile) + '"' diff --git a/config b/config index 6d139b5..52023ba 100644 --- a/config +++ b/config @@ -1,8 +1,39 @@ +// This configuration contains parameters defining the data reading and parsing phase working_dir = "/local/bfrosik/cdi/test" + // working directory will have a bin sub directory and new experiment will + // be created in this directory + data_dir = "/net/s34data/export/34idc-data/2019/Staff19-1/ADStaff19-1a" + // The directory with data. This directory will have several subdirectories + // each containing .tif data files. Each subdirectory represents separate + // scan and is numbered with the scan index + specfile = "/net/s34data/export/34idc-data/2019/Staff19-1/Staff19-1a.spec" + // a specfile captured during experiment + darkfile = "/net/s34data/export/34idc-work/2019/dark.tif" + // dark file taken at the time of experiment + whitefile = "/net/s34data/export/34idc-work/2019/CelaWhiteField.tif" + // white file taken at the time of experiment + exclude_scans = (78,81) + // a tuple containing scan numbers that will be excluded from preparation + min_files = 80 + // only scans containing minimum of .tif files will be included + det_quad = 1 + // defines which detector quad was used during experiment. + // 0: all four quads + // 1: lower left + // 2: top left + // 3: lower right + // 4: top right + // this information is typically read from spec file, + // is required if not included in spec file or no spec file is given +separate_scans = true + // in typical scenario the data from all scans in experiment are combined. + // if specified as separate scans, each scan will be processed separately + // and will have sub-experiment name containing scan index + // ex. "scan_9", where 9 is scan index \ No newline at end of file diff --git a/reccdi/include/common.h b/reccdi/include/common.h index 85fdd65..90536a7 100644 --- a/reccdi/include/common.h +++ b/reccdi/include/common.h @@ -72,7 +72,6 @@ typedef struct flow_item_def { char* item_name; // 2. Update the flow_seq_len below. // 3. Add the new function to the worker.hh and worker.cc, and add the pair (func_name, fp) to the flow_ptr_map in worker.cpp. const flow_item_def flow_def[] = { - flow_item_def("progress_trigger", FOR_ALL_RUNS, "Prog"), flow_item_def("next", NOT_TRIGGER, "NextIter"), flow_item_def("resolution_trigger", FIRST_RUN_ONLY, "ResolutionTrigger"), flow_item_def("amp_support_trigger", MODIFIED_AFTER_FIRST, "SupportTrigger"), @@ -86,7 +85,8 @@ const flow_item_def flow_def[] = { flow_item_def("to_direct_space", NOT_TRIGGER, "ToDirect"), flow_item_def("algorithm", NOT_TRIGGER, "RunAlg"), flow_item_def("twin_trigger", FIRST_RUN_ONLY, "Twin"), - flow_item_def("average_trigger", FOR_ALL_RUNS, "Average") + flow_item_def("average_trigger", FOR_ALL_RUNS, "Average"), + flow_item_def("progress_trigger", FOR_ALL_RUNS, "Prog") }; const int flow_seq_len = 15; diff --git a/reccdi/include/worker.hpp b/reccdi/include/worker.hpp index 1a05a3b..87bd159 100644 --- a/reccdi/include/worker.hpp +++ b/reccdi/include/worker.hpp @@ -47,8 +47,9 @@ typedef void (Reconstruction::*fp)(void); Resolution *resolution; af::array data; // this is abs - af::array iter_data; // if low resolutionis used, data will differ in iterations + af::array iter_data; // if low resolution is used, data will differ in iterations d_type sig; + d_type current_error; int num_points; d_type norm_data; int current_iteration; diff --git a/reccdi/src_cpp/worker.cpp b/reccdi/src_cpp/worker.cpp index 1ad8d35..4699f5c 100644 --- a/reccdi/src_cpp/worker.cpp +++ b/reccdi/src_cpp/worker.cpp @@ -29,6 +29,7 @@ Reconstruction::Reconstruction(af::array image_data, af::array guess, Params* pa norm_data = 0; current_iteration = 0; aver_iter = 0; + current_error = 0.0; data = image_data; ds_image = guess; params = parameters; @@ -105,7 +106,6 @@ void Reconstruction::Init() } } std::map flow_ptr_map; - flow_ptr_map["Prog"] = &Reconstruction::Progress; flow_ptr_map["NextIter"] = &Reconstruction::NextIter; flow_ptr_map["ResolutionTrigger"] = &Reconstruction::ResolutionTrigger; flow_ptr_map["SupportTrigger"] = &Reconstruction::SupportTrigger; @@ -120,6 +120,7 @@ void Reconstruction::Init() flow_ptr_map["RunAlg"] = &Reconstruction::RunAlg; flow_ptr_map["Twin"] = &Reconstruction::Twin; flow_ptr_map["Average"] = &Reconstruction::Average; + flow_ptr_map["Prog"] = &Reconstruction::Progress; std::vector used_flow_seq = params->GetUsedFlowSeq(); @@ -207,11 +208,6 @@ void Reconstruction::Iterate() } } -void Reconstruction::Progress() -{ - printf("------------------current iteration %i -----------------\n", current_iteration); -} - void Reconstruction::NextIter() { iter_data = data; @@ -258,7 +254,8 @@ void Reconstruction::Pcdi() af::array converged = partialCoherence->ApplyPartialCoherence(abs_amplitudes); af::array ratio = Utils::GetRatio(iter_data, abs(converged)); //printf("ratio norm %f\n", GetNorm(ratio)); - state->RecordError( GetNorm(abs(converged)(converged > 0)-iter_data(converged > 0))/GetNorm(iter_data)); + current_error = GetNorm(abs(converged)(converged > 0)-iter_data(converged > 0))/GetNorm(iter_data); + state->RecordError(current_error); rs_amplitudes *= ratio; //printf("Pcdi\n"); } @@ -266,7 +263,8 @@ void Reconstruction::Pcdi() void Reconstruction::NoPcdi() { af::array ratio = Utils::GetRatio(iter_data, abs(rs_amplitudes)); - state->RecordError( GetNorm(abs(rs_amplitudes)(rs_amplitudes > 0)-iter_data(rs_amplitudes > 0))/GetNorm(iter_data)); + current_error = GetNorm(abs(rs_amplitudes)(rs_amplitudes > 0)-iter_data(rs_amplitudes > 0))/GetNorm(iter_data); + state->RecordError(current_error); rs_amplitudes *= ratio; //printf("NoPcdi\n"); } @@ -336,6 +334,11 @@ void Reconstruction::Average() //printf("Average\n"); } +void Reconstruction::Progress() +{ + printf("------- current iteration %i, error %f -------\n", current_iteration, current_error); +} + void Reconstruction::ModulusConstrainEr() { //printf("er\n"); diff --git a/reccdi/src_py/beamlines/aps_34id/prep.py b/reccdi/src_py/beamlines/aps_34id/prep.py index aaf0a51..68d664f 100644 --- a/reccdi/src_py/beamlines/aps_34id/prep.py +++ b/reccdi/src_py/beamlines/aps_34id/prep.py @@ -171,6 +171,11 @@ def prep_data(experiment_dir, scans, map, det_area1, det_area2, *args): if len(scans) == 1: scans.append(scans[0]) dirs = get_dir_list(scans, map) + if len(dirs) == 0: + return + else: + if not os.path.exists(experiment_dir): + os.makedirs(experiment_dir) try: whitefile = map.whitefile @@ -253,7 +258,19 @@ def prepare(experiment_dir, scans, conf_file, *args): print('neither spec file or detector quad is configured') return + try: + separate_scans = config_map.separate_scans + except: + separate_scans = False + # data prep - prep_data(experiment_dir, scans, config_map, det_area1, det_area2, args) + # if separate scans, prepare data in each scan separately in subdirectory + if separate_scans and len(scans) > 1: + for scan in range (scans[0], scans[1]+1): + single_scan = [scan] + scan_exp_dir = os.path.join(experiment_dir, 'scan_' + str(scan)) + prep_data(scan_exp_dir, single_scan, config_map, det_area1, det_area2, args) + else: + prep_data(experiment_dir, scans, config_map, det_area1, det_area2, args) diff --git a/reccdi/src_py/controller/data.py b/reccdi/src_py/controller/data.py index 336b03a..dc36f42 100644 --- a/reccdi/src_py/controller/data.py +++ b/reccdi/src_py/controller/data.py @@ -64,6 +64,10 @@ def prep(fname, conf_info): if os.path.isdir(conf_info): experiment_dir = conf_info conf = os.path.join(experiment_dir, 'conf', 'config_data') + # if the experiment contains separate scan directories + if not os.path.isfile(conf): + base_dir = os.path.abspath(os.path.join(experiment_dir, os.pardir)) + conf = os.path.join(base_dir, 'conf', 'config_data') else: #assuming it's a file conf = conf_info diff --git a/reccdi/src_py/controller/gen_rec.py b/reccdi/src_py/controller/gen_rec.py index f1749c6..180e490 100644 --- a/reccdi/src_py/controller/gen_rec.py +++ b/reccdi/src_py/controller/gen_rec.py @@ -374,24 +374,24 @@ def reconstruction(generations, proc, data, conf_info, config_map): gen_obj = Generation(config_map) if os.path.isdir(conf_info): - if conf_info.endswith('conf'): - experiment_dir = conf_info[0:len(conf_info)-5] - else: - experiment_dir = conf_info + experiment_dir = conf_info conf = os.path.join(experiment_dir, 'conf', 'config_rec') - save_dir = os.path.join(experiment_dir, 'results') + if not os.path.isfile(conf): + base_dir = os.path.abspath(os.path.join(experiment_dir, os.pardir)) + conf = os.path.join(base_dir, 'conf', 'config_rec') else: # assuming it's a file conf = conf_info - dirs = conf_info.split('/') - try: - save_dir = config_map.save_dir - except: - if dirs[len(dirs)-2] == 'conf': # it is the experiment structure - offset = len(dirs[len(dirs)-2]) + len(dirs[len(dirs)-1]) + 1 - save_dir = os.path.join(conf_info[0:-offset], 'results') - else: - save_dir = os.path.join(os.getcwd(), 'results') # save in current dir + experiment_dir = None + + try: + save_dir = config_map.save_dir + except AttributeError: + save_dir = 'results' + if experiment_dir is not None: + save_dir = os.path.join(experiment_dir, save_dir) + else: + save_dir = os.path.join(os.getcwd(), 'results') # save in current dir # init starting values # if multiple samples configured (typical for genetic algorithm), use "reconstruction_multi" module diff --git a/reccdi/src_py/controller/reconstruction.py b/reccdi/src_py/controller/reconstruction.py index b8f229a..7acef8c 100644 --- a/reccdi/src_py/controller/reconstruction.py +++ b/reccdi/src_py/controller/reconstruction.py @@ -81,7 +81,6 @@ def rec(proc, data, conf, config_map, image, support, coh): coh_dims = tuple(config_map.partial_coherence_roi) except: coh_dims = None - image, support, coh, er, reciprocal = calc.fast_module_reconstruction(proc, devices[0], conf, data, coh_dims, image, support, coh) # errs contain errors for each iteration @@ -145,6 +144,9 @@ def reconstruction(proc, data, conf_info, config_map): if os.path.isdir(conf_info): experiment_dir = conf_info conf = os.path.join(experiment_dir, 'conf', 'config_rec') + if not os.path.isfile(conf): + base_dir = os.path.abspath(os.path.join(experiment_dir, os.pardir)) + conf = os.path.join(base_dir, 'conf', 'config_rec') else: # assuming it's a file conf = conf_info @@ -158,6 +160,8 @@ def reconstruction(proc, data, conf_info, config_map): save_dir = 'results' if experiment_dir is not None: save_dir = os.path.join(experiment_dir, save_dir) + else: + save_dir = os.path.join(os.getcwd(), 'results') # save in current dir ut.save_results(image, support, coh, np.asarray(errs), recips, save_dir) diff --git a/reccdi/src_py/controller/reconstruction_multi.py b/reccdi/src_py/controller/reconstruction_multi.py index 4d6f25a..a9f14f1 100644 --- a/reccdi/src_py/controller/reconstruction_multi.py +++ b/reccdi/src_py/controller/reconstruction_multi.py @@ -320,6 +320,9 @@ def reconstruction(samples, proc, data, conf_info, config_map): # if conf_info is directory, look for subdir "conf" and "config_rec" in it experiment_dir = conf_info conf = os.path.join(experiment_dir, 'conf', 'config_rec') + if not os.path.isfile(conf): + base_dir = os.path.abspath(os.path.join(experiment_dir, os.pardir)) + conf = os.path.join(base_dir, 'conf', 'config_rec') else: # assuming it's a file conf = conf_info @@ -336,6 +339,8 @@ def reconstruction(samples, proc, data, conf_info, config_map): save_dir = 'results' if experiment_dir is not None: save_dir = os.path.join(experiment_dir, save_dir) + else: + save_dir = os.path.join(os.getcwd(), 'results') # save in current dir clear(dfk) diff --git a/reccdi/src_py/run_scripts/run_data.py b/reccdi/src_py/run_scripts/run_data.py index 8d9f468..87064dd 100755 --- a/reccdi/src_py/run_scripts/run_data.py +++ b/reccdi/src_py/run_scripts/run_data.py @@ -7,7 +7,15 @@ def data(experiment_dir): print ('formating data') prep_file = os.path.join(experiment_dir, 'prep', 'prep_data.tif') - dt.prep(prep_file, experiment_dir) + if os.path.isfile(prep_file): + dt.prep(prep_file, experiment_dir) + else: + dirs = os.listdir(experiment_dir) + for dir in dirs: + if dir.startswith('scan'): + scan_dir = os.path.join(experiment_dir, dir) + prep_file = os.path.join(scan_dir, 'prep', 'prep_data.tif') + dt.prep(prep_file, scan_dir) def main(arg): diff --git a/reccdi/src_py/run_scripts/run_disp.py b/reccdi/src_py/run_scripts/run_disp.py index f57d8a9..462d5dd 100755 --- a/reccdi/src_py/run_scripts/run_disp.py +++ b/reccdi/src_py/run_scripts/run_disp.py @@ -40,6 +40,18 @@ def save_vtk(res_dir, conf, last_scan): cx.save_CX(conf, image, support, None, res_dir, last_scan) +def save_dir_tree(save_dir, conf, last_scan): + save_vtk(save_dir, conf, last_scan) + for sub in os.listdir(save_dir): + subdir = os.path.join(save_dir, sub) + if os.path.isdir(subdir): + save_vtk(subdir, conf, last_scan) + for sub_sub in os.listdir(subdir): + sub_sub = os.path.join(subdir, sub_sub) + if os.path.isdir(sub_sub): + save_vtk(sub_sub, conf, last_scan) + + def to_vtk(experiment_dir): if os.path.isdir(experiment_dir): scan = experiment_dir.split("-")[-1] @@ -60,13 +72,13 @@ def to_vtk(experiment_dir): f.write('specfile = "' + specfile + '"') f.close() except: - print ("Missing config_disp file and can't find spec file in experiment config") + print ("1Missing config_disp file and can't find spec file in experiment config") return else: - print ("Missing config_disp file and can't find spec file in experiment config") + print ("2Missing config_disp file and can't find spec file in experiment config") return else: - print("Please provide an experiment directory argument") + print("Please provide a valid experiment directory") return try: @@ -107,15 +119,15 @@ def to_vtk(experiment_dir): except AttributeError: save_dir = os.path.join(experiment_dir, 'results') - save_vtk(save_dir, conf, last_scan) - for sub in os.listdir(save_dir): - subdir = os.path.join(save_dir, sub) - if os.path.isdir(subdir): - save_vtk(subdir, conf, last_scan) - for sub_sub in os.listdir(subdir): - sub_sub = os.path.join(subdir, sub_sub) - if os.path.isdir(sub_sub): - save_vtk(sub_sub, conf, last_scan) + if os.path.isdir(save_dir): + save_dir_tree(save_dir, conf, last_scan) + else: + dirs = os.listdir(experiment_dir) + for dir in dirs: + if dir.startswith('scan'): + scan_dir = os.path.join(experiment_dir, dir) + save_dir = os.path.join(scan_dir, 'results') + save_dir_tree(save_dir, conf, last_scan) def main(arg): diff --git a/reccdi/src_py/run_scripts/run_rec.py b/reccdi/src_py/run_scripts/run_rec.py index aea5830..902124e 100755 --- a/reccdi/src_py/run_scripts/run_rec.py +++ b/reccdi/src_py/run_scripts/run_rec.py @@ -25,6 +25,23 @@ def term_handler(signal, frame): signal.pause() +def run_rec(datafile, config_map, proc, exp_dir): + data = ut.read_tif(datafile) + print ('data shape', data.shape) + data = np.swapaxes(data, 0, 2) + data = np.swapaxes(data, 0, 1) + + try: + generations = config_map.generations + except: + generations = 1 + + if generations > 1: + gen_rec.reconstruction(generations, proc, data, exp_dir, config_map) + else: + rec.reconstruction(proc, data, exp_dir, config_map) + + def reconstruction(proc, experiment_dir): """ This function starts the interruption discovery thread and the recontruction thread. @@ -55,29 +72,20 @@ def reconstruction(proc, experiment_dir): data_dir = config_map.data_dir except AttributeError: data_dir = os.path.join(experiment_dir, 'data') - datafile = os.path.join(data_dir, 'data.tif') - - try: - data = ut.read_tif(datafile) - print ('data shape', data.shape) - data = np.swapaxes(data, 0, 2) - data = np.swapaxes(data, 0, 1) - except: - print ('data file ' + datafile + ' is missing') - p.terminate() - return - - try: - generations = config_map.generations - except: - generations = 1 - if generations > 1: - gen_rec.reconstruction(generations, proc, data, experiment_dir, config_map) + # check if the experiment has separate data for every scan. If so, for every scan there will be subdirectory + # starting with "scan" that will have an experiment directory structure + datafile = os.path.join(data_dir, 'data.tif') + if os.path.isfile(datafile): + run_rec(datafile, config_map, proc, experiment_dir) else: - rec.reconstruction(proc, data, experiment_dir, config_map) - print ('done with reconstruction') - + dirs = os.listdir(experiment_dir) + for dir in dirs: + if dir.startswith('scan'): + scan_dir = os.path.join(experiment_dir, dir) + datafile = os.path.join(scan_dir, 'data', 'data.tif') + if os.path.isfile(datafile): + run_rec(datafile, config_map, proc, scan_dir) p.terminate() From e36ca33ef8732074bd67d62a524dc90cb0f400d5 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Tue, 6 Aug 2019 17:17:37 -0500 Subject: [PATCH 177/336] loading experiment from selected configuration --- bin/cdi_window.py | 70 +++++++++++++++++++++++++++-------------------- 1 file changed, 41 insertions(+), 29 deletions(-) diff --git a/bin/cdi_window.py b/bin/cdi_window.py index 5541f60..33e3c33 100644 --- a/bin/cdi_window.py +++ b/bin/cdi_window.py @@ -80,35 +80,33 @@ def assure_experiment_dir(self): def load_conf_dir(self): - if self.id is None or self.scan is None: - self.msg_window('enter Reconstruction ID and scan') - else: - # the function above assures that the working directory is set - if os.path.isfile(os.path.join(self.experiment_dir, 'conf', 'config')): + # select starting directory + if self.experiment_dir is not None and \ + os.path.isfile(os.path.join(self.experiment_dir, 'conf', 'config')): load_dir = select_dir(os.path.join(self.experiment_dir, 'conf')) - elif os.path.isfile(os.path.join(os.getcwd(), 'conf', 'config')): - load_dir = select_dir(os.path.join(os.getcwd(), 'conf')) - else: - load_dir = select_dir(self.working_dir) - if load_dir is not None: - if not os.path.isfile(os.path.join(load_dir, 'config')): - self.msg_window('missing config file in load directory') - return - elif not os.path.isfile(os.path.join(load_dir, 'config_data')): - self.msg_window('missing config_p in load directory') - return - elif not os.path.isfile(os.path.join(load_dir, 'config_rec')): - self.msg_window('missing config_rec file in load directory') - return - elif not os.path.isfile(os.path.join(load_dir, 'config_disp')): - self.msg_window('missing config_disp file in load directory') - return - else: - self.set_conf_from_button.setStyleSheet("Text-align:left") - self.set_conf_from_button.setText('config loaded') - self.init_from_conf(load_dir) + elif os.path.isfile(os.path.join(os.getcwd(), 'conf', 'config')): + load_dir = select_dir(os.path.join(os.getcwd(), 'conf')) + else: + load_dir = select_dir(self.working_dir) + if load_dir is not None: + if not os.path.isfile(os.path.join(load_dir, 'config')): + self.msg_window('missing config file in load directory') + return + elif not os.path.isfile(os.path.join(load_dir, 'config_data')): + self.msg_window('missing config_p in load directory') + return + elif not os.path.isfile(os.path.join(load_dir, 'config_rec')): + self.msg_window('missing config_rec file in load directory') + return + elif not os.path.isfile(os.path.join(load_dir, 'config_disp')): + self.msg_window('missing config_disp file in load directory') + return else: - self.msg_window('please select valid conf directory') + self.set_conf_from_button.setStyleSheet("Text-align:left") + self.set_conf_from_button.setText('config loaded') + self.init_from_conf(load_dir) + else: + self.msg_window('please select valid conf directory') def set_working_dir(self): @@ -143,7 +141,6 @@ def set_experiment_dir(self): if self.id is not None and self.scan is not None: self.exp_id = self.id + '_' + self.scan self.experiment_dir = os.path.join(self.working_dir, self.exp_id) - self.set_conf_from_button.setText('') def run_everything(self): @@ -168,6 +165,16 @@ def init_work_dir(self): def init_from_conf(self, dir): + # if experiment not set, get it from the load_dir + if self.experiment_dir is None: + exp_name = dir.split('/')[-2] + exp_name_parts = exp_name.split('_') + self.scan = exp_name_parts[-1] + self.scan_widget.setText(self.scan) + self.id = exp_name[0:-len(self.scan)-1] + self.Id_widget.setText(self.id) + self.set_experiment_dir() + main_conf = os.path.join(dir, 'config') if not os.path.isfile(main_conf): dir = os.path.join(dir, 'conf') @@ -192,7 +199,12 @@ def init_from_conf(self, dir): except Exception as e: self.msg_window('please check configuration file ' + main_conf + '. Cannot parse, ' + str(e)) return - + try: + separate_scans = conf_map.separate_scans + if separate_scans: + self.separate_scans.setChecked(True) + except: + pass try: self.t.data_dir = conf_map.data_dir self.t.data_dir_button.setStyleSheet("Text-align:left") From 8a8effe301f2e5bf1a65dbfe15a28b945bcf2606 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Wed, 7 Aug 2019 13:36:21 -0500 Subject: [PATCH 178/336] fixed active check out box in reconstruction window --- bin/cdi_window.py | 62 ++++++++++++++++++++++++++++++++--------------- 1 file changed, 42 insertions(+), 20 deletions(-) diff --git a/bin/cdi_window.py b/bin/cdi_window.py index 33e3c33..64800b8 100644 --- a/bin/cdi_window.py +++ b/bin/cdi_window.py @@ -942,7 +942,7 @@ def __init__(self): def stackUI(self, item, feats): layout = QFormLayout() self.active = QCheckBox("active") - self.active.setChecked(True) +# self.active.setChecked(True) layout.addWidget(self.active) self.toggle(layout, item, feats) self.stack.setLayout(layout) @@ -952,8 +952,6 @@ def stackUI(self, item, feats): def toggle(self, layout, item, feats): if self.active.isChecked(): self.fill_active(layout) - # experiment_dir = self. - # self.init_config(conf_map) self.default_button = QPushButton('set to defaults', feats) layout.addWidget(self.default_button) @@ -993,14 +991,16 @@ def __init__(self): # override setting the active to set it False def stackUI(self, item, feats): super(GA, self).stackUI(item, feats) - # self.active.setChecked(False) def init_config(self, conf_map): try: - self.generations.setText(str(conf_map.generations).replace(" ", "")) + gens = conf_map.generations + self.active.setChecked(True) + self.generations.setText(str(gens).replace(" ", "")) except AttributeError: - pass + self.active.setChecked(False) + return try: self.metrics.setText(str(conf_map.ga_metrics).replace(" ", "")) except AttributeError: @@ -1052,6 +1052,7 @@ def rec_default(self): self.ga_support_thresholds.setText('(.1,.1,.1,.1,.1)') self.ga_support_sigmas.setText('(1.0,1.0,1.0,1.0)') self.lr_sigmas.setText('(2.0,1.5)') + self.active.setChecked(True) def add_feat_conf(self, conf_map): @@ -1072,9 +1073,12 @@ def __init__(self): def init_config(self, conf_map): try: - self.res_triggers.setText(str(conf_map.resolution_trigger).replace(" ", "")) + triggers = conf_map.resolution_trigger + self.active.setChecked(True) + self.res_triggers.setText(str(triggers).replace(" ", "")) except AttributeError: - pass + self.active.setChecked(False) + return try: self.sigma_range.setText(str(conf_map.iter_res_sigma_range).replace(" ", "")) except AttributeError: @@ -1115,9 +1119,12 @@ def __init__(self): def init_config(self, conf_map): try: - self.support_triggers.setText(str(conf_map.amp_support_trigger).replace(" ", "")) + triggers = conf_map.amp_support_trigger + self.active.setChecked(True) + self.support_triggers.setText(str(triggers).replace(" ", "")) except AttributeError: - pass + self.active.setChecked(False) + return try: self.support_type.setText(str(conf_map.support_type).replace(" ", "")) except AttributeError: @@ -1173,9 +1180,12 @@ def __init__(self): def init_config(self, conf_map): try: - self.phase_triggers.setText(str(conf_map.phase_support_trigger).replace(" ", "")) + triggers = conf_map.phase_support_trigger + self.active.setChecked(True) + self.phase_triggers.setText(str(triggers).replace(" ", "")) except AttributeError: - pass + self.active.setChecked(False) + return try: self.phase_min.setText(str(conf_map.phase_min).replace(" ", "")) except AttributeError: @@ -1215,9 +1225,12 @@ def __init__(self): def init_config(self, conf_map): try: - self.pcdi_triggers.setText(str(conf_map.pcdi_trigger).replace(" ", "")) + triggers = conf_map.pcdi_trigger + self.active.setChecked(True) + self.pcdi_triggers.setText(str(triggers).replace(" ", "")) except AttributeError: - pass + self.active.setChecked(False) + return try: self.pcdi_type.setText(str(conf_map.partial_coherence_type).replace(" ", "")) except AttributeError: @@ -1273,9 +1286,12 @@ def __init__(self): def init_config(self, conf_map): try: - self.twin_triggers.setText(str(conf_map.twin_trigger).replace(" ", "")) + triggers = conf_map.twin_trigger + self.active.setChecked(True) + self.twin_triggers.setText(str(triggers).replace(" ", "")) except AttributeError: - pass + self.active.setChecked(False) + return try: self.twin_halves.setText(str(conf_map.twin_halves).replace(" ", "")) except AttributeError: @@ -1307,9 +1323,12 @@ def __init__(self): def init_config(self, conf_map): try: - self.average_triggers.setText(str(conf_map.average_trigger).replace(" ", "")) + triggers = conf_map.average_trigger + self.active.setChecked(True) + self.average_triggers.setText(str(triggers).replace(" ", "")) except AttributeError: - pass + self.active.setChecked(False) + return def fill_active(self, layout): @@ -1333,9 +1352,12 @@ def __init__(self): def init_config(self, conf_map): try: - self.progress_triggers.setText(str(conf_map.progress_trigger).replace(" ", "")) + triggers = conf_map.progress_trigger + self.active.setChecked(True) + self.progress_triggers.setText(str(triggers).replace(" ", "")) except AttributeError: - pass + self.active.setChecked(False) + return def fill_active(self, layout): From 8ab41add287ec690f80978f3ebb13d0ce023ab6c Mon Sep 17 00:00:00 2001 From: bfrosik Date: Wed, 7 Aug 2019 14:30:28 -0500 Subject: [PATCH 179/336] fixed active check out box in reconstruction window --- reccdi/src_py/utilities/CXDVizNX.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/reccdi/src_py/utilities/CXDVizNX.py b/reccdi/src_py/utilities/CXDVizNX.py index 5f3709d..cebb889 100644 --- a/reccdi/src_py/utilities/CXDVizNX.py +++ b/reccdi/src_py/utilities/CXDVizNX.py @@ -367,8 +367,6 @@ def save_CX(conf, image, support, coh, save_dir, last_scan): support_file = os.path.join(save_dir, 'support') viz.write_structured_grid(support_file) if coh is not None: - coh = np.swapaxes(coh, 1, 2) - # investigate if pad_center before fft or after coh = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(coh))).real coh = ut.get_zero_padded_centered(coh, image.shape) coh_file = os.path.join(save_dir, 'coherence') From c4b75df34691c2e60c987c747d9e3b77bd06dfea Mon Sep 17 00:00:00 2001 From: bfrosik Date: Fri, 16 Aug 2019 15:53:41 -0500 Subject: [PATCH 180/336] Added feature to run multiple reconstructions for multiple configurations --- bin/cdi_window.py | 182 +++++++++++++++------ reccdi/src_py/controller/gen_rec.py | 13 +- reccdi/src_py/controller/reconstruction.py | 24 ++- reccdi/src_py/run_scripts/run_disp.py | 31 ++-- reccdi/src_py/run_scripts/run_rec.py | 92 +++++++---- 5 files changed, 232 insertions(+), 110 deletions(-) diff --git a/bin/cdi_window.py b/bin/cdi_window.py index 64800b8..152ba13 100644 --- a/bin/cdi_window.py +++ b/bin/cdi_window.py @@ -43,7 +43,7 @@ def __init__(self, parent=None): self.set_work_dir_button = QPushButton() uplayout.addRow("Working Directory", self.set_work_dir_button) self.Id_widget = QLineEdit() - uplayout.addRow("Reconstruction ID", self.Id_widget) + uplayout.addRow("Experiment ID", self.Id_widget) self.scan_widget = QLineEdit() uplayout.addRow("scan(s)", self.scan_widget) self.set_conf_from_button = QPushButton() @@ -51,7 +51,8 @@ def __init__(self, parent=None): uplayout.addRow("separate scans", self.separate_scans) self.separate_scans.setChecked(False) uplayout.addRow("Load conf from", self.set_conf_from_button) - self.run_button = QPushButton('run_everything', self) + self.run_button = QPushButton('run everything', self) + self.run_button.setStyleSheet("background-color:rgb(175,208,156)") uplayout.addWidget(self.run_button) vbox = QVBoxLayout() @@ -281,39 +282,8 @@ def init_from_conf(self, dir): except AttributeError: pass - # initialize "Reconstruction" tab - rec_conf = os.path.join(dir, 'config_rec') - if not os.path.isfile(rec_conf): - self.msg_window('missing configuration file ' + rec_conf) - return - try: - conf_map = ut.read_config(rec_conf) - except Exception as e: - self.msg_window('please check configuration file ' + rec_conf + '. Cannot parse, ' + str(e)) - return - try: - self.t.device.setText(str(conf_map.device).replace(" ", "")) - except AttributeError: - pass - try: - self.t.samples.setText(str(conf_map.samples).replace(" ", "")) - except AttributeError: - pass - try: - self.t.gc.setText(str(conf_map.garbage_trigger).replace(" ", "")) - except AttributeError: - pass - try: - self.t.alg_seq.setText(str(conf_map.algorithm_sequence).replace(" ", "")) - except AttributeError: - pass - try: - self.t.beta.setText(str(conf_map.beta).replace(" ", "")) - except AttributeError: - pass - - for feat_id in self.t.features.feature_dir: - self.t.features.feature_dir[feat_id].init_config(conf_map) + # initialize "Reconstruction" tab, pass True to indicate the first nit + self.init_rec_tab(True) # initialize "Display" tab disp_conf = os.path.join(dir, 'config_disp') @@ -364,6 +334,59 @@ def init_from_conf(self, dir): pass + def init_rec_tab(self, first_init=False): + # find current configuration id and file + conf_dir = os.path.join(self.experiment_dir, 'conf') + if first_init: + rec_conf = os.path.join(conf_dir, 'config_rec') + else: + if self.t.old_conf_id == '': + rec_conf = os.path.join(conf_dir, 'config_rec') + else: + rec_conf = os.path.join(conf_dir, self.t.old_conf_id + '_config_rec') + + if not os.path.isfile(rec_conf): + self.msg_window('missing configuration file ' + rec_conf) + return + try: + conf_map = ut.read_config(rec_conf) + except Exception as e: + self.msg_window('please check configuration file ' + rec_conf + '. Cannot parse, ' + str(e)) + return + try: + self.t.device.setText(str(conf_map.device).replace(" ", "")) + except AttributeError: + pass + try: + self.t.samples.setText(str(conf_map.samples).replace(" ", "")) + except AttributeError: + pass + try: + self.t.gc.setText(str(conf_map.garbage_trigger).replace(" ", "")) + except AttributeError: + pass + try: + self.t.alg_seq.setText(str(conf_map.algorithm_sequence).replace(" ", "")) + except AttributeError: + pass + try: + self.t.beta.setText(str(conf_map.beta).replace(" ", "")) + except AttributeError: + pass + + for feat_id in self.t.features.feature_dir: + self.t.features.feature_dir[feat_id].init_config(conf_map) + + if first_init: + # fill out the config_id choice bar by reading configuration files names + rec_ids = [] + for file in os.listdir(conf_dir): + if file.endswith('rec') and file != 'config_rec': + rec_ids.append(file[0:len(file)-len('_config_rec')]) + self.t.rec_id.addItems(rec_ids) + self.t.rec_id.show() + + def msg_window(self, text): msg = QMessageBox() msg.setIcon(QMessageBox.Information) @@ -394,7 +417,7 @@ def write_conf(self, conf_map, dir, file): tab = 'Data Prep' elif file == 'config_data': tab = 'Data' - elif file == 'config_rec': + elif file.endswith('config_rec'): tab = 'Reconstruction' elif file == 'config_disp': tab = 'Display' @@ -454,6 +477,7 @@ def tab1UI(self): self.load_prep(sub_layout) layout.addRow(sub_layout) self.prep_button = QPushButton('prepare', self) + self.prep_button.setStyleSheet("background-color:rgb(175,208,156)") layout.addWidget(self.prep_button) self.tab1.setLayout(layout) @@ -500,6 +524,7 @@ def tab2UI(self): self.binning = QLineEdit() layout.addRow("binning", self.binning) self.config_data_button = QPushButton('format data', self) + self.config_data_button.setStyleSheet("background-color:rgb(175,208,156)") layout.addWidget(self.config_data_button) self.tab2.setLayout(layout) @@ -509,9 +534,18 @@ def tab2UI(self): def tab3UI(self): + self.mult_rec_conf = False + self.old_conf_id = '' layout = QVBoxLayout() ulayout = QFormLayout() llayout = QHBoxLayout() + self.add_conf_button = QPushButton('add configuration', self) + ulayout.addWidget(self.add_conf_button) + self.rec_id = QComboBox() + self.rec_id.InsertAtBottom + self.rec_id.addItem("") + ulayout.addWidget(self.rec_id) + self.rec_id.hide() self.proc = QComboBox() self.proc.addItem("opencl") self.proc.addItem("cpu") @@ -538,6 +572,7 @@ def tab3UI(self): layout.addLayout(llayout) self.features = Features(self, llayout) self.config_rec_button = QPushButton('run reconstruction', self) + self.config_rec_button.setStyleSheet("background-color:rgb(175,208,156)") layout.addWidget(self.config_rec_button) self.tab3.setAutoFillBackground(True) self.tab3.setLayout(layout) @@ -545,6 +580,8 @@ def tab3UI(self): self.config_rec_button.clicked.connect(self.reconstruction) self.cont.stateChanged.connect(lambda: self.toggle_cont(ulayout)) self.rec_default_button.clicked.connect(self.rec_default) + self.add_conf_button.clicked.connect(self.add_rec_conf) + self.rec_id.currentIndexChanged.connect(self.toggle_conf) def toggle_cont(self, layout): @@ -557,6 +594,38 @@ def toggle_cont(self, layout): cb_label.setStyleSheet('color: grey') + def add_rec_conf(self): + id, ok = QInputDialog.getText(self, '',"enter configuration id") + if ok and len(id) > 0: + if self.mult_rec_conf: + self.rec_id.addItem(id) + else: + self.mult_rec_conf = True + self.rec_id.show() + self.rec_id.addItem(id) + #self.rec_id.setCurrentIndex(self.rec_id.count()-1) + + # copy the config_rec into _config_rec and show the + conf_file = os.path.join(self.main_win.experiment_dir, 'conf', 'config_rec') + new_conf_file = os.path.join(self.main_win.experiment_dir, 'conf', id + '_config_rec') + shutil.copyfile(conf_file, new_conf_file) + self.rec_id.setCurrentIndex(self.rec_id.count()-1) + + + def toggle_conf(self, i): + # save the configuration file before updating the incoming config + if self.old_conf_id == '': + conf_file = 'config_rec' + else: + conf_file = self.old_conf_id + '_config_rec' + # save + if not self.save_conf(conf_file): + self.msg_window('configuration was not saved') + self.old_conf_id = str(self.rec_id.currentText()) + # read from base configuration and display + self.main_win.init_rec_tab() + + def tab4UI(self): layout = QFormLayout() self.crop = QLineEdit() @@ -576,6 +645,7 @@ def tab4UI(self): self.pixel = QLineEdit() layout.addRow("pixel", self.pixel) self.config_disp = QPushButton('process display', self) + self.config_disp.setStyleSheet("background-color:rgb(175,208,156)") layout.addWidget(self.config_disp) self.tab4.setLayout(layout) @@ -857,24 +927,34 @@ def msg_window(self, text): msg.exec_() + def save_conf(self, config_file): + conf_map = {} + conf_map['samples'] = str(self.samples.text()) + conf_map['device'] = str(self.device.text()).replace('\n','') + conf_map['garbage_trigger'] = str(self.gc.text()).replace('\n','') + conf_map['algorithm_sequence'] = str(self.alg_seq.text()).replace('\n','') + conf_map['beta'] = str(self.beta.text()) + if self.cont.isChecked(): + conf_map['continue_dir'] = str(self.cont_dir.text()) + + for feat_id in self.features.feature_dir: + self.features.feature_dir[feat_id].add_config(conf_map) + + #self.create_config('config_rec', conf_map) + conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') + return self.main_win.write_conf(conf_map, conf_dir, config_file) + + def reconstruction(self): if os.path.isfile(os.path.join(self.main_win.experiment_dir, 'data', 'data.tif'))\ or self.main_win.separate_scans.isChecked(): - conf_map = {} - conf_map['samples'] = str(self.samples.text()) - conf_map['device'] = str(self.device.text()).replace('\n','') - conf_map['garbage_trigger'] = str(self.gc.text()).replace('\n','') - conf_map['algorithm_sequence'] = str(self.alg_seq.text()).replace('\n','') - conf_map['beta'] = str(self.beta.text()) - if self.cont.isChecked(): - conf_map['continue_dir'] = str(self.cont_dir.text()) - - for feat_id in self.features.feature_dir: - self.features.feature_dir[feat_id].add_config(conf_map) - - #self.create_config('config_rec', conf_map) - conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') - if self.main_win.write_conf(conf_map, conf_dir, 'config_rec'): + # find out which configuration should be saved + if self.old_conf_id == '': + conf_file = 'config_rec' + else: + conf_file = self.old_conf_id + '_config_rec' + + if self.save_conf(conf_file): run_rc.reconstruction(str(self.proc.currentText()), self.main_win.experiment_dir) else: self.msg_window('Please, run format data in previous tab to activate this function') diff --git a/reccdi/src_py/controller/gen_rec.py b/reccdi/src_py/controller/gen_rec.py index 180e490..5e31007 100644 --- a/reccdi/src_py/controller/gen_rec.py +++ b/reccdi/src_py/controller/gen_rec.py @@ -340,7 +340,7 @@ def breed(self, images): return child_images, child_supports -def reconstruction(generations, proc, data, conf_info, config_map): +def reconstruction(generations, proc, data, conf_info, config_map, rec_id=None): """ This function controls reconstruction utilizing genetic algorithm. @@ -373,12 +373,17 @@ def reconstruction(generations, proc, data, conf_info, config_map): gen_obj = Generation(config_map) + if rec_id is None: + conf_file = 'config_rec' + else: + conf_file = rec_id + '_config_rec' + if os.path.isdir(conf_info): experiment_dir = conf_info - conf = os.path.join(experiment_dir, 'conf', 'config_rec') + conf = os.path.join(experiment_dir, 'conf', conf_file) if not os.path.isfile(conf): base_dir = os.path.abspath(os.path.join(experiment_dir, os.pardir)) - conf = os.path.join(base_dir, 'conf', 'config_rec') + conf = os.path.join(base_dir, 'conf', conf_file) else: # assuming it's a file conf = conf_info @@ -388,6 +393,8 @@ def reconstruction(generations, proc, data, conf_info, config_map): save_dir = config_map.save_dir except AttributeError: save_dir = 'results' + if rec_id is not None: + save_dir = rec_id + '_' + save_dir if experiment_dir is not None: save_dir = os.path.join(experiment_dir, save_dir) else: diff --git a/reccdi/src_py/controller/reconstruction.py b/reccdi/src_py/controller/reconstruction.py index 7acef8c..5989c91 100644 --- a/reccdi/src_py/controller/reconstruction.py +++ b/reccdi/src_py/controller/reconstruction.py @@ -87,7 +87,7 @@ def rec(proc, data, conf, config_map, image, support, coh): return image, support, coh, er, reciprocal -def reconstruction(proc, data, conf_info, config_map): +def reconstruction(proc, data, conf_info, config_map, rec_id=None): """ This function starts the reconstruction. It checks whether it is continuation of reconstruction defined by configuration. If continuation, the arrays of image, support, coherence are read from cont_directory, @@ -141,12 +141,17 @@ def reconstruction(proc, data, conf_info, config_map): support = None coh = None + if rec_id is None: + conf_file = 'config_rec' + else: + conf_file = rec_id + '_config_rec' + if os.path.isdir(conf_info): experiment_dir = conf_info - conf = os.path.join(experiment_dir, 'conf', 'config_rec') + conf = os.path.join(experiment_dir, 'conf', conf_file) if not os.path.isfile(conf): base_dir = os.path.abspath(os.path.join(experiment_dir, os.pardir)) - conf = os.path.join(base_dir, 'conf', 'config_rec') + conf = os.path.join(base_dir, 'conf', conf_file) else: # assuming it's a file conf = conf_info @@ -158,20 +163,11 @@ def reconstruction(proc, data, conf_info, config_map): save_dir = config_map.save_dir except AttributeError: save_dir = 'results' + if rec_id is not None: + save_dir = rec_id + '_' + save_dir if experiment_dir is not None: save_dir = os.path.join(experiment_dir, save_dir) else: save_dir = os.path.join(os.getcwd(), 'results') # save in current dir ut.save_results(image, support, coh, np.asarray(errs), recips, save_dir) - - # if len(images) == 1: - # errors = results[0][3] - # errors.pop(0) - # plt.plot(errors) - # plt.ylabel('errors') - # plt.show() - - - - diff --git a/reccdi/src_py/run_scripts/run_disp.py b/reccdi/src_py/run_scripts/run_disp.py index 462d5dd..9bddbf9 100755 --- a/reccdi/src_py/run_scripts/run_disp.py +++ b/reccdi/src_py/run_scripts/run_disp.py @@ -4,6 +4,7 @@ import os import reccdi.src_py.utilities.utils as ut import numpy as np +from multiprocessing import Process def save_vtk(res_dir, conf, last_scan): @@ -53,6 +54,12 @@ def save_dir_tree(save_dir, conf, last_scan): def to_vtk(experiment_dir): + def add_res_dirs(dir, dirs): + for res_dir in os.listdir(dir): + if res_dir.endswith('results'): + dirs.append(os.path.join(dir, res_dir)) + return dirs + if os.path.isdir(experiment_dir): scan = experiment_dir.split("-")[-1] try: @@ -114,20 +121,24 @@ def to_vtk(experiment_dir): with open(conf, "a") as f: f.write(binning_info) + # find all directories with results, this will include results directories in "scan" directories, and + # _results directories. + res_dirs = [] try: save_dir = config_map.save_dir + res_dirs.append(save_dir) except AttributeError: - save_dir = os.path.join(experiment_dir, 'results') + pass - if os.path.isdir(save_dir): - save_dir_tree(save_dir, conf, last_scan) - else: - dirs = os.listdir(experiment_dir) - for dir in dirs: - if dir.startswith('scan'): - scan_dir = os.path.join(experiment_dir, dir) - save_dir = os.path.join(scan_dir, 'results') - save_dir_tree(save_dir, conf, last_scan) + res_dirs = add_res_dirs(experiment_dir, res_dirs) + + for dir in os.listdir(experiment_dir): + if dir.startswith('scan'): + res_dirs = add_res_dirs(os.path.join(experiment_dir, dir), res_dirs) + + for save_dir in res_dirs: + p = Process(target = save_dir_tree, args = (save_dir, conf, last_scan,)) + p.start() def main(arg): diff --git a/reccdi/src_py/run_scripts/run_rec.py b/reccdi/src_py/run_scripts/run_rec.py index 902124e..1f04e3b 100755 --- a/reccdi/src_py/run_scripts/run_rec.py +++ b/reccdi/src_py/run_scripts/run_rec.py @@ -25,7 +25,7 @@ def term_handler(signal, frame): signal.pause() -def run_rec(datafile, config_map, proc, exp_dir): +def run_rec(datafile, config_map, proc, exp_dir, rec_id=None): data = ut.read_tif(datafile) print ('data shape', data.shape) data = np.swapaxes(data, 0, 2) @@ -37,37 +37,12 @@ def run_rec(datafile, config_map, proc, exp_dir): generations = 1 if generations > 1: - gen_rec.reconstruction(generations, proc, data, exp_dir, config_map) + gen_rec.reconstruction(generations, proc, data, exp_dir, config_map, rec_id) else: - rec.reconstruction(proc, data, exp_dir, config_map) + rec.reconstruction(proc, data, exp_dir, config_map, rec_id) -def reconstruction(proc, experiment_dir): - """ - This function starts the interruption discovery thread and the recontruction thread. - - It reads configuration file defined as /conf/config_rec. - If multiple generations are configured, it will start reconstruction from "reconstruction_multi" - script, otherwise from "reconstruction" script. - """ - if os.path.exists('stopfile'): - os.remove('stopfile') - p = Process(target = interrupt_thread, args = (1,)) - p.start() - - print ('starting reconstruction') - conf = os.path.join(experiment_dir, 'conf', 'config_rec') - try: - config_map = ut.read_config(conf) - if config_map is None: - print ("can't read configuration file") - p.terminate() - return - except: - print ('Please check configuration file ' + conf + '. Cannot parse') - p.terminate() - return - +def rec_for_config(proc, experiment_dir, config_map, rec_id=None): try: data_dir = config_map.data_dir except AttributeError: @@ -77,7 +52,7 @@ def reconstruction(proc, experiment_dir): # starting with "scan" that will have an experiment directory structure datafile = os.path.join(data_dir, 'data.tif') if os.path.isfile(datafile): - run_rec(datafile, config_map, proc, experiment_dir) + run_rec(datafile, config_map, proc, experiment_dir, rec_id) else: dirs = os.listdir(experiment_dir) for dir in dirs: @@ -85,8 +60,61 @@ def reconstruction(proc, experiment_dir): scan_dir = os.path.join(experiment_dir, dir) datafile = os.path.join(scan_dir, 'data', 'data.tif') if os.path.isfile(datafile): - run_rec(datafile, config_map, proc, scan_dir) - p.terminate() + run_rec(datafile, config_map, proc, scan_dir, rec_id) + + +def reconstruction(proc, experiment_dir): + """ + This function starts the interruption discovery thread and the recontruction thread. + + It reads configuration file defined as /conf/config_rec. + If multiple generations are configured, it will start reconstruction from "reconstruction_multi" + script, otherwise from "reconstruction" script. + """ + if os.path.exists('stopfile'): + os.remove('stopfile') + print ('starting reconstruction') + # find how many reconstruction configurations are in config directory + # if more than one, it will run is separate processes + conf_dir = os.path.join(experiment_dir, 'conf') + rec_configs = [] + for file in os.listdir(conf_dir): + if file.endswith('rec'): + rec_configs.append(file) + + # sp = Process(target=interrupt_thread, args=(1,)) + # sp.start() + rec_processes = [] + stop_processes = [] + for rec_config in rec_configs: + if rec_config == 'config_rec': + rec_id = None + else: + rec_id = rec_config[0:len(rec_config)-len('_config_rec')] + conf = os.path.join(experiment_dir, 'conf', rec_config) + + sp = Process(target=interrupt_thread, args=(1,)) + stop_processes.append(sp) + sp.start() + try: + config_map = ut.read_config(conf) + if config_map is None: + print("can't read configuration file") + sp.terminate() + continue + except: + print('Please check configuration file ' + conf + '. Cannot parse') + sp.terminate() + continue + + p = Process(target = rec_for_config, args = (proc, experiment_dir, config_map, rec_id,)) + p.start() + rec_processes.append(p) + + exit_codes = [p.join() for p in rec_processes] + + for pr in stop_processes: + pr.terminate() def main(arg): From ad66d87c2ac23c5745a721cd8ba5e04e0b049a49 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Mon, 19 Aug 2019 16:49:40 -0500 Subject: [PATCH 181/336] Added feature to run multiple reconstructions for multiple configurations --- reccdi/src_py/run_scripts/run_rec.py | 149 ++++++++++++++++++--------- 1 file changed, 101 insertions(+), 48 deletions(-) diff --git a/reccdi/src_py/run_scripts/run_rec.py b/reccdi/src_py/run_scripts/run_rec.py index 1f04e3b..acb8288 100755 --- a/reccdi/src_py/run_scripts/run_rec.py +++ b/reccdi/src_py/run_scripts/run_rec.py @@ -7,15 +7,28 @@ import reccdi.src_py.controller.gen_rec as gen_rec import reccdi.src_py.utilities.utils as ut import numpy as np +import time -def interrupt_thread(arg): +def interrupt_thread(nu_processes): """ This function is part of interrupt mechanism. It detects ctl-c signal and creates an empty file named "stopfile". The file is discovered by fast module and the discovery prompts termonation of the process. """ def int_handler(signal, frame): - open('stopfile', 'a').close() + is_file = False + left = nu_processes + while not is_file and left > 0: + # each process will remove a stopfile + # it is assumed that a 'stopfile' will be discovered by fast module and deleted in 1 sec + open('stopfile', 'a').close() + time.sleep(1) + left -= 1 + is_file = os.path.isfile('stopfile') + + #remove the file at the end + if os.path.isfile('stopfile'): + os.remove('stopfile') def term_handler(signal, frame): pass @@ -35,33 +48,32 @@ def run_rec(datafile, config_map, proc, exp_dir, rec_id=None): generations = config_map.generations except: generations = 1 - if generations > 1: gen_rec.reconstruction(generations, proc, data, exp_dir, config_map, rec_id) else: rec.reconstruction(proc, data, exp_dir, config_map, rec_id) -def rec_for_config(proc, experiment_dir, config_map, rec_id=None): - try: - data_dir = config_map.data_dir - except AttributeError: - data_dir = os.path.join(experiment_dir, 'data') - - # check if the experiment has separate data for every scan. If so, for every scan there will be subdirectory - # starting with "scan" that will have an experiment directory structure - datafile = os.path.join(data_dir, 'data.tif') - if os.path.isfile(datafile): - run_rec(datafile, config_map, proc, experiment_dir, rec_id) - else: - dirs = os.listdir(experiment_dir) - for dir in dirs: - if dir.startswith('scan'): - scan_dir = os.path.join(experiment_dir, dir) - datafile = os.path.join(scan_dir, 'data', 'data.tif') - if os.path.isfile(datafile): - run_rec(datafile, config_map, proc, scan_dir, rec_id) - +# def rec_for_config(proc, experiment_dir, config_map, rec_id=None): +# try: +# data_dir = config_map.data_dir +# except AttributeError: +# data_dir = os.path.join(experiment_dir, 'data') +# +# # check if the experiment has separate data for every scan. If so, for every scan there will be subdirectory +# # starting with "scan" that will have an experiment directory structure +# datafile = os.path.join(data_dir, 'data.tif') +# if os.path.isfile(datafile): +# run_rec(datafile, config_map, proc, experiment_dir, rec_id) +# else: +# dirs = os.listdir(experiment_dir) +# for dir in dirs: +# if dir.startswith('scan'): +# scan_dir = os.path.join(experiment_dir, dir) +# datafile = os.path.join(scan_dir, 'data', 'data.tif') +# if os.path.isfile(datafile): +# run_rec(datafile, config_map, proc, scan_dir, rec_id) +# def reconstruction(proc, experiment_dir): """ @@ -78,43 +90,84 @@ def reconstruction(proc, experiment_dir): # if more than one, it will run is separate processes conf_dir = os.path.join(experiment_dir, 'conf') rec_configs = [] + dir_conf_pairs = [] + for file in os.listdir(conf_dir): if file.endswith('rec'): - rec_configs.append(file) + if file == 'config_rec': + rec_id = None + else: + rec_id = file[0:len(file)-len('_config_rec')] + rec_configs.append((file, rec_id)) + for dir in os.listdir(experiment_dir): + if dir.startswith('scan'): + for conf in rec_configs: + dir_conf_pairs.append((os.path.join(experiment_dir, dir), conf)) + + if os.path.isdir(os.path.join(experiment_dir, 'data')): + for conf in rec_configs: + dir_conf_pairs.append((experiment_dir, conf)) - # sp = Process(target=interrupt_thread, args=(1,)) - # sp.start() rec_processes = [] - stop_processes = [] - for rec_config in rec_configs: - if rec_config == 'config_rec': - rec_id = None - else: - rec_id = rec_config[0:len(rec_config)-len('_config_rec')] - conf = os.path.join(experiment_dir, 'conf', rec_config) - - sp = Process(target=interrupt_thread, args=(1,)) - stop_processes.append(sp) - sp.start() + for pair in dir_conf_pairs: + dir,conf_id = pair + conf, id = conf_id + conf_file = os.path.join(conf_dir, conf) try: - config_map = ut.read_config(conf) + config_map = ut.read_config(conf_file) if config_map is None: - print("can't read configuration file") - sp.terminate() + print("can't read configuration file " + conf_file) continue except: print('Please check configuration file ' + conf + '. Cannot parse') - sp.terminate() continue - p = Process(target = rec_for_config, args = (proc, experiment_dir, config_map, rec_id,)) - p.start() - rec_processes.append(p) - + try: + data_dir = config_map.data_dir + except AttributeError: + data_dir = os.path.join(dir, 'data') + datafile = os.path.join(data_dir, 'data.tif') + if os.path.isfile(datafile): + p = Process(target = run_rec, args = (datafile, config_map, proc, dir, id,)) + p.start() + rec_processes.append(p) + + if len(rec_processes) == 0: + # return if no process has started + return + sp = Process(target=interrupt_thread, args=(len(rec_processes),)) + sp.start() + + + # rec_processes = [] + # stop_processes = [] + # for rec_config in rec_configs: + # if rec_config == 'config_rec': + # rec_id = None + # else: + # rec_id = rec_config[0:len(rec_config)-len('_config_rec')] + # conf = os.path.join(experiment_dir, 'conf', rec_config) + # + # sp = Process(target=interrupt_thread, args=(1,)) + # stop_processes.append(sp) + # sp.start() + # try: + # config_map = ut.read_config(conf) + # if config_map is None: + # print("can't read configuration file") + # sp.terminate() + # continue + # except: + # print('Please check configuration file ' + conf + '. Cannot parse') + # sp.terminate() + # continue + # + # p = Process(target = rec_for_config, args = (proc, experiment_dir, config_map, rec_id,)) + # p.start() + # rec_processes.append(p) + # exit_codes = [p.join() for p in rec_processes] - - for pr in stop_processes: - pr.terminate() + sp.terminate() def main(arg): From 44e84ab0b3571a4420446556dd9695ba97454203 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Fri, 23 Aug 2019 11:11:56 -0500 Subject: [PATCH 182/336] refactored algorithm handling --- reccdi/include/algorithm.hpp | 44 ---------------------- reccdi/include/common.h | 6 +-- reccdi/include/worker.hpp | 14 +++---- reccdi/src_cpp/algorithm.cpp | 40 -------------------- reccdi/src_cpp/parameters.cpp | 24 +++++++++--- reccdi/src_cpp/worker.cpp | 49 +++++++++--------------- reccdi/src_py/controller/fast_module.py | 12 +++--- reccdi/src_py/cyth/bridge_cpu.pyx | 2 +- reccdi/src_py/cyth/bridge_cuda.pyx | 2 +- reccdi/src_py/cyth/bridge_opencl.pyx | 2 +- reccdi/src_py/run_scripts/run_rec.py | 50 +------------------------ 11 files changed, 53 insertions(+), 192 deletions(-) delete mode 100644 reccdi/include/algorithm.hpp delete mode 100644 reccdi/src_cpp/algorithm.cpp diff --git a/reccdi/include/algorithm.hpp b/reccdi/include/algorithm.hpp deleted file mode 100644 index f866433..0000000 --- a/reccdi/include/algorithm.hpp +++ /dev/null @@ -1,44 +0,0 @@ -/*** -Copyright (c) UChicago Argonne, LLC. All rights reserved. -See LICENSE file. -***/ -// Created by Barbara Frosik - -#ifndef algorithm_hpp -#define algorithm_hpp - -class Reconstruction; - -namespace af { - class array; -} - -class Algorithm -{ -protected: - Reconstruction * rec; - -public: - // Using strategy pattern. The RunAlgorihm calls sequence of methods - // overridden by concrete classes - void RunAlgorithm(Reconstruction * reconstruction); - - // the following methods are overridden in concrete algorithms - // they are part of strategy pattern - virtual void ModulusConstrain(); -}; - -class Hio : public Algorithm -{ -public: - void ModulusConstrain(); -}; - -class Er : public Algorithm -{ -public: - void ModulusConstrain(); -}; - - -#endif /*algorithm_hpp */ diff --git a/reccdi/include/common.h b/reccdi/include/common.h index 90536a7..ba32411 100644 --- a/reccdi/include/common.h +++ b/reccdi/include/common.h @@ -26,8 +26,8 @@ struct Alg_switch }; typedef struct Alg_switch alg_switch; -const int ALGORITHM_ER = 1; -const int ALGORITHM_HIO = 2; +const int ALGORITHM_ER = 2; +const int ALGORITHM_HIO = 3; const int ALGORITHM_LUCY = 13; const int ALGORITHM_LUCY_PREV = 14; @@ -83,7 +83,7 @@ const flow_item_def flow_def[] = { flow_item_def("garbage_trigger", FOR_ALL_RUNS, "Gc"), flow_item_def("set_prev_pcdi_trigger", CUSTOM, "SetPcdiPrevious"), flow_item_def("to_direct_space", NOT_TRIGGER, "ToDirect"), - flow_item_def("algorithm", NOT_TRIGGER, "RunAlg"), + flow_item_def("algorithm", CUSTOM, "RunAlg"), flow_item_def("twin_trigger", FIRST_RUN_ONLY, "Twin"), flow_item_def("average_trigger", FOR_ALL_RUNS, "Average"), flow_item_def("progress_trigger", FOR_ALL_RUNS, "Prog") diff --git a/reccdi/include/worker.hpp b/reccdi/include/worker.hpp index 87bd159..f3e972a 100644 --- a/reccdi/include/worker.hpp +++ b/reccdi/include/worker.hpp @@ -18,7 +18,6 @@ class State; class Support; class PartialCoherence; class Resolution; -class Algorithm; using namespace af; @@ -62,13 +61,12 @@ typedef void (Reconstruction::*fp)(void); std::vector coherence_vector; std::vector > iter_flow; - // mapping of algorithm id to an Algorithm object - std::map algorithm_map; + // mapping of algorithm id to an Algorithm method pointer + std::map algorithm_map; + + // Creates map + void CreateAlgorithmMap(); - //d_type max_data; -// af::Window * errors_plot; - void MapAlgorithmObject(int alg_id); - // This method returns sum of squares of all elements in the array double GetNorm(af::array arr); @@ -83,7 +81,6 @@ typedef void (Reconstruction::*fp)(void); d_type CalculateError(); -// void Plot(); void Progress(); void NextIter(); void ResolutionTrigger(); @@ -96,7 +93,6 @@ typedef void (Reconstruction::*fp)(void); void Gc(); void SetPcdiPrevious(); void ToDirect(); - void RunAlg(); void Twin(); void Average(); diff --git a/reccdi/src_cpp/algorithm.cpp b/reccdi/src_cpp/algorithm.cpp deleted file mode 100644 index 75d693b..0000000 --- a/reccdi/src_cpp/algorithm.cpp +++ /dev/null @@ -1,40 +0,0 @@ -/*** -Copyright (c) UChicago Argonne, LLC. All rights reserved. -See LICENSE file. -***/ -// Created by Barbara Frosik - -#include "iostream" -#include "arrayfire.h" -#include "algorithm.hpp" -#include "worker.hpp" -#include "common.h" - -using namespace af; - -void Algorithm::RunAlgorithm(Reconstruction * reconstruction) -{ - rec = reconstruction; - ModulusConstrain(); -} - -void Algorithm::ModulusConstrain() -{ - -} - -//------------------------------------------------------------------- -// Hio sub-class - -void Hio::ModulusConstrain() -{ - rec->ModulusConstrainHio(); -} - -//------------------------------------------------------------------- -// Er sub-class - -void Er::ModulusConstrain() -{ - rec->ModulusConstrainEr(); -} diff --git a/reccdi/src_cpp/parameters.cpp b/reccdi/src_cpp/parameters.cpp index abddb27..b548d00 100644 --- a/reccdi/src_cpp/parameters.cpp +++ b/reccdi/src_cpp/parameters.cpp @@ -71,6 +71,7 @@ Params::Params(const char* config_file, std::vector data_dim, bool first) int count = tmp.getLength(); int switch_iter = 0; + number_iterations = 0; int iter = 0; for (int i = 0; i < count; ++i) { @@ -81,11 +82,11 @@ Params::Params(const char* config_file, std::vector data_dim, bool first) { iter = tmp[i][j][1]; switch_iter = switch_iter + iter; - alg_switches.push_back(Alg_switch(algorithm_id_map[tmp[i][j][0]], switch_iter)); + alg_switches.push_back(Alg_switch(algorithm_id_map[tmp[i][j][0]], iter)); + number_iterations += iter; } } } - number_iterations = alg_switches[alg_switches.size()-1].iterations; } catch ( const SettingNotFoundException &nfex) { @@ -122,8 +123,11 @@ Params::Params(const char* config_file, std::vector data_dim, bool first) { if (type == CUSTOM) { - // currently custom triggers are related to pcdi - if (flow_item == "no_pcdi") + if (flow_item == "algorithm") + { + used_flow_seq.push_back(i); + } + else if (flow_item == "no_pcdi") { if (!is_pcdi || first) { @@ -170,8 +174,16 @@ Params::Params(const char* config_file, std::vector data_dim, bool first) } else if (type == CUSTOM) { - // for now all custom triggers are associated with pcdi trigger being configured - if (flow_item == "pcdi") + if (flow_item == "algorithm") + { + int alg_start = 0; + for (int k=0; k < alg_switches.size(); k++) + { + std::fill_n(flow + offset + alg_start, alg_switches[k].iterations, alg_switches[k].algorithm_id); + alg_start += alg_switches[k].iterations; + } + } + else if (flow_item == "pcdi") { int start_pcdi = first ? pcdi_tr_iter[0] : 0; for (int i = start_pcdi; i < number_iterations; i ++) diff --git a/reccdi/src_cpp/worker.cpp b/reccdi/src_cpp/worker.cpp index 4699f5c..571f84d 100644 --- a/reccdi/src_cpp/worker.cpp +++ b/reccdi/src_cpp/worker.cpp @@ -18,7 +18,6 @@ See LICENSE file. #include "pcdi.hpp" #include "state.hpp" #include "common.h" -#include "algorithm.hpp" #include "util.hpp" #include "resolution.hpp" @@ -95,16 +94,9 @@ Reconstruction::~Reconstruction() void Reconstruction::Init() { - // create algorithms that are used in algorithm sequence - // and load the objects into a map - for (int i = 0; i < params->GetAlgSwitches().size(); i++) - { - int alg_id = params->GetAlgSwitches()[i].algorithm_id; - if (algorithm_map[alg_id] == 0) - { - MapAlgorithmObject(alg_id); - } - } + // create map of algorithms ids to the algorithm functions + CreateAlgorithmMap(); + std::map flow_ptr_map; flow_ptr_map["NextIter"] = &Reconstruction::NextIter; flow_ptr_map["ResolutionTrigger"] = &Reconstruction::ResolutionTrigger; @@ -117,7 +109,7 @@ void Reconstruction::Init() flow_ptr_map["Gc"] = &Reconstruction::Gc; flow_ptr_map["SetPcdiPrevious"] = &Reconstruction::SetPcdiPrevious; flow_ptr_map["ToDirect"] = &Reconstruction::ToDirect; - flow_ptr_map["RunAlg"] = &Reconstruction::RunAlg; + flow_ptr_map["RunAlg"] = &Reconstruction::ModulusConstrainEr; //This will be replaced by configured algorithm method flow_ptr_map["Twin"] = &Reconstruction::Twin; flow_ptr_map["Average"] = &Reconstruction::Average; flow_ptr_map["Prog"] = &Reconstruction::Progress; @@ -130,13 +122,21 @@ void Reconstruction::Init() for (int i = 0; i < used_flow_seq.size(); i++) { int func_order = used_flow_seq[i]; - fp func_ptr = flow_ptr_map[flow_def[func_order].func_name]; int offset = i * num_iter; for (int j=0; j < num_iter; j++) { if (flow_array[offset + j]) { - iter_flow[j].push_back(func_ptr); + if (flow_array[offset + j] > 1) + { + fp func_ptr = algorithm_map[flow_array[offset + j]]; + iter_flow[j].push_back(func_ptr); + } + else + { + fp func_ptr = flow_ptr_map[flow_def[func_order].func_name]; + iter_flow[j].push_back(func_ptr); + } } } } @@ -163,18 +163,10 @@ void Reconstruction::Init() } -void Reconstruction::MapAlgorithmObject(int alg_id) +void Reconstruction::CreateAlgorithmMap() { - // TODO consider refactoring if there are many subclasses - // this method is called only during initialization, so it might be ok - if (alg_id == ALGORITHM_HIO) - { - algorithm_map[alg_id] = new Hio; - } - else if(alg_id == ALGORITHM_ER) - { - algorithm_map[alg_id] = new Er; - } + algorithm_map[ALGORITHM_ER] = &Reconstruction::ModulusConstrainEr; + algorithm_map[ALGORITHM_HIO] = &Reconstruction::ModulusConstrainHio; } void Reconstruction::Iterate() @@ -287,13 +279,6 @@ void Reconstruction::ToDirect() //printf("ToDirect\n"); } -void Reconstruction::RunAlg() -{ - Algorithm * alg = algorithm_map[state->GetCurrentAlg()]; - alg->RunAlgorithm(this); - //printf("RunAlg\n"); -} - void Reconstruction::Twin() { dim4 dims = data.dims(); diff --git a/reccdi/src_py/controller/fast_module.py b/reccdi/src_py/controller/fast_module.py index 7792161..78b2044 100755 --- a/reccdi/src_py/controller/fast_module.py +++ b/reccdi/src_py/controller/fast_module.py @@ -19,9 +19,9 @@ import numpy as np import scipy.fftpack as sf -import reccdi.src_py.cyth.bridge_cpu as bridge_cpu -import reccdi.src_py.cyth.bridge_opencl as bridge_opencl -import reccdi.src_py.cyth.bridge_cuda as bridge_cuda +# import reccdi.src_py.cyth.bridge_cpu as bridge_cpu +# import reccdi.src_py.cyth.bridge_opencl as bridge_opencl +# import reccdi.src_py.cyth.bridge_cuda as bridge_cuda import copy @@ -79,13 +79,13 @@ def fast_module_reconstruction(proc, device, conf, data, coh_dims, image=None, s a vector containing errors for each iteration """ if proc == 'cpu': - #bridge = bridge_cpu + import reccdi.src_py.cyth.bridge_cpu as bridge_cpu fast_module = bridge_cpu.PyBridge() elif proc == 'opencl': - #bridge = bridge_opencl + import reccdi.src_py.cyth.bridge_opencl as bridge_opencl fast_module = bridge_opencl.PyBridge() elif proc == 'cuda': - #bridge = bridge_cuda + import reccdi.src_py.cyth.bridge_cuda as bridge_cuda fast_module = bridge_cuda.PyBridge() # shift data diff --git a/reccdi/src_py/cyth/bridge_cpu.pyx b/reccdi/src_py/cyth/bridge_cpu.pyx index b272c1b..97a1353 100644 --- a/reccdi/src_py/cyth/bridge_cpu.pyx +++ b/reccdi/src_py/cyth/bridge_cpu.pyx @@ -7,7 +7,7 @@ # distutils: language = c++ # distutils: include_dirs = ['reccdi/include', 'AF_DIR/include', 'LC_DIR/include',] -# distutils: sources = ['reccdi/src_cpp/algorithm.cpp', 'reccdi/src_cpp/bridge.cpp', 'reccdi/src_cpp/manager.cpp', 'reccdi/src_cpp/parameters.cpp', 'reccdi/src_cpp/pcdi.cpp', 'reccdi/src_cpp/resolution.cpp', 'reccdi/src_cpp/state.cpp', 'reccdi/src_cpp/support.cpp', 'reccdi/src_cpp/util.cpp', 'reccdi/src_cpp/worker.cpp'] +# distutils: sources = ['reccdi/src_cpp/bridge.cpp', 'reccdi/src_cpp/manager.cpp', 'reccdi/src_cpp/parameters.cpp', 'reccdi/src_cpp/pcdi.cpp', 'reccdi/src_cpp/resolution.cpp', 'reccdi/src_cpp/state.cpp', 'reccdi/src_cpp/support.cpp', 'reccdi/src_cpp/util.cpp', 'reccdi/src_cpp/worker.cpp'] # distutils: libraries = ['afcpu', 'config++',] # distutils: library_dirs = ['AF_DIR/lib64', 'LC_DIR/lib',] diff --git a/reccdi/src_py/cyth/bridge_cuda.pyx b/reccdi/src_py/cyth/bridge_cuda.pyx index 7fbddd4..533ccea 100755 --- a/reccdi/src_py/cyth/bridge_cuda.pyx +++ b/reccdi/src_py/cyth/bridge_cuda.pyx @@ -7,7 +7,7 @@ # distutils: language = c++ # distutils: include_dirs = ['reccdi/include', 'AF_DIR/include', 'LC_DIR/include',] -# distutils: sources = ['reccdi/src_cpp/algorithm.cpp', 'reccdi/src_cpp/bridge.cpp', 'reccdi/src_cpp/manager.cpp', 'reccdi/src_cpp/parameters.cpp', 'reccdi/src_cpp/pcdi.cpp', 'reccdi/src_cpp/resolution.cpp', 'reccdi/src_cpp/state.cpp', 'reccdi/src_cpp/support.cpp', 'reccdi/src_cpp/util.cpp', 'reccdi/src_cpp/worker.cpp'] +# distutils: sources = ['reccdi/src_cpp/bridge.cpp', 'reccdi/src_cpp/manager.cpp', 'reccdi/src_cpp/parameters.cpp', 'reccdi/src_cpp/pcdi.cpp', 'reccdi/src_cpp/resolution.cpp', 'reccdi/src_cpp/state.cpp', 'reccdi/src_cpp/support.cpp', 'reccdi/src_cpp/util.cpp', 'reccdi/src_cpp/worker.cpp'] # distutils: libraries = ['afcuda', 'config++',] # distutils: library_dirs = ['AF_DIR/lib64', 'LC_DIR/lib',] diff --git a/reccdi/src_py/cyth/bridge_opencl.pyx b/reccdi/src_py/cyth/bridge_opencl.pyx index c57dc0f..fd447de 100755 --- a/reccdi/src_py/cyth/bridge_opencl.pyx +++ b/reccdi/src_py/cyth/bridge_opencl.pyx @@ -7,7 +7,7 @@ # distutils: language = c++ # distutils: include_dirs = ['reccdi/include', 'AF_DIR/include', 'LC_DIR/include',] -# distutils: sources = ['reccdi/src_cpp/algorithm.cpp', 'reccdi/src_cpp/bridge.cpp', 'reccdi/src_cpp/manager.cpp', 'reccdi/src_cpp/parameters.cpp', 'reccdi/src_cpp/pcdi.cpp', 'reccdi/src_cpp/resolution.cpp', 'reccdi/src_cpp/state.cpp', 'reccdi/src_cpp/support.cpp', 'reccdi/src_cpp/util.cpp', 'reccdi/src_cpp/worker.cpp'] +# distutils: sources = ['reccdi/src_cpp/bridge.cpp', 'reccdi/src_cpp/manager.cpp', 'reccdi/src_cpp/parameters.cpp', 'reccdi/src_cpp/pcdi.cpp', 'reccdi/src_cpp/resolution.cpp', 'reccdi/src_cpp/state.cpp', 'reccdi/src_cpp/support.cpp', 'reccdi/src_cpp/util.cpp', 'reccdi/src_cpp/worker.cpp'] # distutils: libraries = ['afopencl', 'config++',] # distutils: library_dirs = ['AF_DIR/lib64', 'LC_DIR/lib',] diff --git a/reccdi/src_py/run_scripts/run_rec.py b/reccdi/src_py/run_scripts/run_rec.py index acb8288..b160052 100755 --- a/reccdi/src_py/run_scripts/run_rec.py +++ b/reccdi/src_py/run_scripts/run_rec.py @@ -54,27 +54,6 @@ def run_rec(datafile, config_map, proc, exp_dir, rec_id=None): rec.reconstruction(proc, data, exp_dir, config_map, rec_id) -# def rec_for_config(proc, experiment_dir, config_map, rec_id=None): -# try: -# data_dir = config_map.data_dir -# except AttributeError: -# data_dir = os.path.join(experiment_dir, 'data') -# -# # check if the experiment has separate data for every scan. If so, for every scan there will be subdirectory -# # starting with "scan" that will have an experiment directory structure -# datafile = os.path.join(data_dir, 'data.tif') -# if os.path.isfile(datafile): -# run_rec(datafile, config_map, proc, experiment_dir, rec_id) -# else: -# dirs = os.listdir(experiment_dir) -# for dir in dirs: -# if dir.startswith('scan'): -# scan_dir = os.path.join(experiment_dir, dir) -# datafile = os.path.join(scan_dir, 'data', 'data.tif') -# if os.path.isfile(datafile): -# run_rec(datafile, config_map, proc, scan_dir, rec_id) -# - def reconstruction(proc, experiment_dir): """ This function starts the interruption discovery thread and the recontruction thread. @@ -135,37 +114,10 @@ def reconstruction(proc, experiment_dir): if len(rec_processes) == 0: # return if no process has started return + sp = Process(target=interrupt_thread, args=(len(rec_processes),)) sp.start() - - # rec_processes = [] - # stop_processes = [] - # for rec_config in rec_configs: - # if rec_config == 'config_rec': - # rec_id = None - # else: - # rec_id = rec_config[0:len(rec_config)-len('_config_rec')] - # conf = os.path.join(experiment_dir, 'conf', rec_config) - # - # sp = Process(target=interrupt_thread, args=(1,)) - # stop_processes.append(sp) - # sp.start() - # try: - # config_map = ut.read_config(conf) - # if config_map is None: - # print("can't read configuration file") - # sp.terminate() - # continue - # except: - # print('Please check configuration file ' + conf + '. Cannot parse') - # sp.terminate() - # continue - # - # p = Process(target = rec_for_config, args = (proc, experiment_dir, config_map, rec_id,)) - # p.start() - # rec_processes.append(p) - # exit_codes = [p.join() for p in rec_processes] sp.terminate() From a1d7cbba8ed6a9ad76d279a9d7643bdc87fe19f4 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Fri, 23 Aug 2019 15:36:33 -0500 Subject: [PATCH 183/336] Saving flow array and iteration array for graph --- reccdi/include/bridge.hpp | 2 ++ reccdi/include/manager.hpp | 6 ++++++ reccdi/include/worker.hpp | 2 ++ reccdi/src_cpp/bridge.cpp | 10 ++++++++++ reccdi/src_cpp/manager.cpp | 9 ++++++++- reccdi/src_cpp/worker.cpp | 10 ++++++++++ reccdi/src_py/controller/fast_module.py | 7 ++++++- reccdi/src_py/controller/reconstruction.py | 8 ++++---- .../src_py/controller/reconstruction_multi.py | 17 ++++++++++++----- reccdi/src_py/cyth/bridge_cpu.pyx | 6 ++++++ reccdi/src_py/cyth/bridge_cuda.pyx | 6 ++++++ reccdi/src_py/cyth/bridge_opencl.pyx | 6 ++++++ reccdi/src_py/utilities/utils.py | 17 +++++++++++++---- 13 files changed, 91 insertions(+), 15 deletions(-) diff --git a/reccdi/include/bridge.hpp b/reccdi/include/bridge.hpp index 609df29..b045e1a 100644 --- a/reccdi/include/bridge.hpp +++ b/reccdi/include/bridge.hpp @@ -36,6 +36,8 @@ class Bridge std::vector GetImageR(); std::vector GetImageI(); std::vector GetErrors(); + std::vector GetFlowV(); + std::vector GetIterFlowV(); void Cleanup(); }; diff --git a/reccdi/include/manager.hpp b/reccdi/include/manager.hpp index 65ce1fe..5b04339 100644 --- a/reccdi/include/manager.hpp +++ b/reccdi/include/manager.hpp @@ -68,6 +68,12 @@ class Manager // This method returns last amplitudes in reciprocal space. The returned buffer contains the imaginary part. std::vector GetReciprocalI(); + // This method returns flow vector, i.e the actins that were used. + std::vector GetFlowV(); + + // This method returns 2D flow array (flow x iterations). + std::vector GetIterFlowV(); + }; diff --git a/reccdi/include/worker.hpp b/reccdi/include/worker.hpp index f3e972a..1311674 100644 --- a/reccdi/include/worker.hpp +++ b/reccdi/include/worker.hpp @@ -132,6 +132,8 @@ typedef void (Reconstruction::*fp)(void); std::vector GetCoherenceVector(); std::vector GetCoherenceVectorR(); std::vector GetCoherenceVectorI(); + std::vector GetFlowVector(); + std::vector GetIterFlowVector(); af::array GetReciprocal(); }; diff --git a/reccdi/src_cpp/bridge.cpp b/reccdi/src_cpp/bridge.cpp index c13c5d3..c9bb9ed 100644 --- a/reccdi/src_cpp/bridge.cpp +++ b/reccdi/src_cpp/bridge.cpp @@ -83,6 +83,16 @@ std::vector Bridge::GetReciprocalI() return mgr->GetReciprocalI(); } +std::vector Bridge::GetFlowV() +{ + return mgr->GetFlowV(); +} + +std::vector Bridge::GetIterFlowV() +{ + return mgr->GetIterFlowV(); +} + void Bridge::Cleanup() { delete mgr; diff --git a/reccdi/src_cpp/manager.cpp b/reccdi/src_cpp/manager.cpp index 2bdb05d..7ef6229 100644 --- a/reccdi/src_cpp/manager.cpp +++ b/reccdi/src_cpp/manager.cpp @@ -213,5 +213,12 @@ std::vector Manager::GetReciprocalI() return v; } +std::vector Manager::GetFlowV() +{ + return rec->GetFlowVector(); +} - +std::vector Manager::GetIterFlowV() +{ + return rec->GetIterFlowVector(); +} diff --git a/reccdi/src_cpp/worker.cpp b/reccdi/src_cpp/worker.cpp index 571f84d..8fe6bd9 100644 --- a/reccdi/src_cpp/worker.cpp +++ b/reccdi/src_cpp/worker.cpp @@ -414,3 +414,13 @@ af::array Reconstruction::GetReciprocal() { return rs_amplitudes; } + +std::vector Reconstruction::GetFlowVector() +{ + return params->GetUsedFlowSeq(); +} + +std::vector Reconstruction::GetIterFlowVector() +{ + return params->GetFlowArray(); +} diff --git a/reccdi/src_py/controller/fast_module.py b/reccdi/src_py/controller/fast_module.py index 78b2044..105b387 100755 --- a/reccdi/src_py/controller/fast_module.py +++ b/reccdi/src_py/controller/fast_module.py @@ -162,7 +162,12 @@ def fast_module_reconstruction(proc, device, conf, data, coh_dims, image=None, s reciprocal = np.swapaxes(reciprocal, 2, 1) reciprocal = sf.ifftshift(reciprocal) + iter_array = copy.deepcopy(np.asarray(fast_module.get_iter_flow())) + flow = copy.deepcopy(list(fast_module.get_flow())) + flow_len = len(flow) + iter_array = np.reshape(iter_array, (flow_len, int(iter_array.shape[0]/flow_len))) + fast_module.cleanup() - return image, support, coherence, er, reciprocal + return image, support, coherence, er, reciprocal, flow, iter_array diff --git a/reccdi/src_py/controller/reconstruction.py b/reccdi/src_py/controller/reconstruction.py index 5989c91..6fd9947 100644 --- a/reccdi/src_py/controller/reconstruction.py +++ b/reccdi/src_py/controller/reconstruction.py @@ -81,10 +81,10 @@ def rec(proc, data, conf, config_map, image, support, coh): coh_dims = tuple(config_map.partial_coherence_roi) except: coh_dims = None - image, support, coh, er, reciprocal = calc.fast_module_reconstruction(proc, devices[0], conf, data, coh_dims, image, support, coh) + image, support, coh, er, reciprocal, flow, iter_array = calc.fast_module_reconstruction(proc, devices[0], conf, data, coh_dims, image, support, coh) # errs contain errors for each iteration - return image, support, coh, er, reciprocal + return image, support, coh, er, reciprocal, flow, iter_array def reconstruction(proc, data, conf_info, config_map, rec_id=None): @@ -157,7 +157,7 @@ def reconstruction(proc, data, conf_info, config_map, rec_id=None): conf = conf_info experiment_dir = None - image, support, coh, errs, recips = rec(proc, data, conf, config_map, image, support, coh) + image, support, coh, errs, recips, flow, iter_array = rec(proc, data, conf, config_map, image, support, coh) try: save_dir = config_map.save_dir @@ -170,4 +170,4 @@ def reconstruction(proc, data, conf_info, config_map, rec_id=None): else: save_dir = os.path.join(os.getcwd(), 'results') # save in current dir - ut.save_results(image, support, coh, np.asarray(errs), recips, save_dir) + ut.save_results(image, support, coh, np.asarray(errs), recips, flow, iter_array, save_dir) diff --git a/reccdi/src_py/controller/reconstruction_multi.py b/reccdi/src_py/controller/reconstruction_multi.py index a9f14f1..69fdaab 100644 --- a/reccdi/src_py/controller/reconstruction_multi.py +++ b/reccdi/src_py/controller/reconstruction_multi.py @@ -135,9 +135,9 @@ def run_fast_module(proc, device, conf, data, coh_dims, prev_image, prev_support error : list containing errors for iterations """ - image, support, coherence, errors, reciprocal = calc.fast_module_reconstruction(proc, device, conf, data, coh_dims, + image, support, coherence, errors, reciprocal, flow, iter_array = calc.fast_module_reconstruction(proc, device, conf, data, coh_dims, prev_image, prev_support, prev_coh) - return image, support, coherence, errors, reciprocal + return image, support, coherence, errors, reciprocal, flow, iter_array def read_results(read_dir): @@ -233,6 +233,8 @@ def rec(proc, data, conf, config_map, images, supports, cohs=None): res = [] errs = [] recips = [] + flows = [] + iter_arrs = [] for i in range(samples): if cohs is None: coh = None @@ -241,6 +243,9 @@ def rec(proc, data, conf, config_map, images, supports, cohs=None): res.append(None) errs.append(None) recips.append(None) + flows.append(None) + iter_arrs.append(None) + res[i] = run_fast_module(proc, devices[i], conf, data, coh_dims, images[i], supports[i], coh) # Wait for all Parsl runs to complete.. @@ -251,8 +256,10 @@ def rec(proc, data, conf, config_map, images, supports, cohs=None): cohs[i] = r[2] errs[i] = r[3] recips[i] = r[4] + flows[i] = r[5] + iter_arrs[i] = r[6] # return only error from last iteration for each reconstruction - return images, supports, cohs, errs, recips + return images, supports, cohs, errs, recips, flows, iter_arrs def reconstruction(samples, proc, data, conf_info, config_map): @@ -328,7 +335,7 @@ def reconstruction(samples, proc, data, conf_info, config_map): conf = conf_info experiment_dir = None - images, supports, cohs, errs, recips = rec(proc, data, conf, config_map, images, supports, cohs) + images, supports, cohs, errs, recips, flows, iter_arrs = rec(proc, data, conf, config_map, images, supports, cohs) stop = time.time() t = stop - start print ('run in ' + str(t) + ' sec') @@ -344,7 +351,7 @@ def reconstruction(samples, proc, data, conf_info, config_map): clear(dfk) - ut.save_multiple_results(samples, images, supports, cohs, errs, recips, save_dir) + ut.save_multiple_results(samples, images, supports, cohs, errs, recips, flows, iter_arrs, save_dir) def clear(dfk): diff --git a/reccdi/src_py/cyth/bridge_cpu.pyx b/reccdi/src_py/cyth/bridge_cpu.pyx index 97a1353..465547a 100644 --- a/reccdi/src_py/cyth/bridge_cpu.pyx +++ b/reccdi/src_py/cyth/bridge_cpu.pyx @@ -29,6 +29,8 @@ cdef extern from "../include/bridge.hpp": vector[double] GetCoherenceV() vector[double] GetReciprocalR() vector[double] GetReciprocalI() + vector[int] GetFlowV() + vector[int] GetIterFlowV() void Cleanup() @@ -60,6 +62,10 @@ cdef class PyBridge: return self.thisptr.GetReciprocalR() def get_reciprocal_i(self): return self.thisptr.GetReciprocalI() + def get_flow(self): + return self.thisptr.GetFlowV() + def get_iter_flow(self): + return self.thisptr.GetIterFlowV() def cleanup(self): self.thisptr.Cleanup() diff --git a/reccdi/src_py/cyth/bridge_cuda.pyx b/reccdi/src_py/cyth/bridge_cuda.pyx index 533ccea..bd5e2f7 100755 --- a/reccdi/src_py/cyth/bridge_cuda.pyx +++ b/reccdi/src_py/cyth/bridge_cuda.pyx @@ -28,6 +28,8 @@ cdef extern from "../include/bridge.hpp": vector[double] GetCoherenceV() vector[double] GetReciprocalR() vector[double] GetReciprocalI() + vector[int] GetFlowV() + vector[int] GetIterFlowV() void Cleanup() @@ -59,6 +61,10 @@ cdef class PyBridge: return self.thisptr.GetReciprocalR() def get_reciprocal_i(self): return self.thisptr.GetReciprocalI() + def get_flow(self): + return self.thisptr.GetFlowV() + def get_iter_flow(self): + return self.thisptr.GetIterFlowV() def cleanup(self): self.thisptr.Cleanup() diff --git a/reccdi/src_py/cyth/bridge_opencl.pyx b/reccdi/src_py/cyth/bridge_opencl.pyx index fd447de..5feffcb 100755 --- a/reccdi/src_py/cyth/bridge_opencl.pyx +++ b/reccdi/src_py/cyth/bridge_opencl.pyx @@ -28,6 +28,8 @@ cdef extern from "../include/bridge.hpp": vector[double] GetCoherenceV() vector[double] GetReciprocalR() vector[double] GetReciprocalI() + vector[int] GetFlowV() + vector[int] GetIterFlowV() void Cleanup() @@ -59,6 +61,10 @@ cdef class PyBridge: return self.thisptr.GetReciprocalR() def get_reciprocal_i(self): return self.thisptr.GetReciprocalI() + def get_flow(self): + return self.thisptr.GetFlowV() + def get_iter_flow(self): + return self.thisptr.GetIterFlowV() def cleanup(self): self.thisptr.Cleanup() diff --git a/reccdi/src_py/utilities/utils.py b/reccdi/src_py/utilities/utils.py index 9d53fac..73dc083 100644 --- a/reccdi/src_py/utilities/utils.py +++ b/reccdi/src_py/utilities/utils.py @@ -491,7 +491,7 @@ def write_plot_errors(save_dir): os.chmod(plot_file, st.st_mode | stat.S_IEXEC) -def save_results(image, support, coh, errs, reciprocal, save_dir, metrics=None): +def save_results(image, support, coh, errs, reciprocal, flow, iter_array, save_dir, metrics=None): if not os.path.exists(save_dir): os.makedirs(save_dir) @@ -507,13 +507,22 @@ def save_results(image, support, coh, errs, reciprocal, save_dir, metrics=None): reciprocal_file = os.path.join(save_dir, 'reciprocal') np.save(reciprocal_file, reciprocal) write_plot_errors(save_dir) + + graph_dir = os.path.join(save_dir, 'graph') + if not os.path.exists(graph_dir): + os.makedirs(graph_dir) + flow_file = os.path.join(graph_dir, 'flow') + np.save(flow_file, np.asarray(flow)) + iter_array_file = os.path.join(graph_dir, 'iter_array') + np.save(iter_array_file, iter_array) + if metrics is not None: save_metrics(errs, save_dir, metrics) else: save_metrics(errs, save_dir) -def save_multiple_results(samples, images, supports, cohs, errs, reciprocals, save_dir, metrics=None): +def save_multiple_results(samples, images, supports, cohs, errs, reciprocals, flows, iter_arrs, save_dir, metrics=None): """ This function saves results of multiple reconstructions to directory tree in save_dir. Parameters @@ -535,9 +544,9 @@ def save_multiple_results(samples, images, supports, cohs, errs, reciprocals, sa for i in range(samples): subdir = os.path.join(save_dir, str(i)) if metrics is None: - save_results(images[i], supports[i], cohs[i], np.asarray(errs[i]), reciprocals[i], subdir) + save_results(images[i], supports[i], cohs[i], np.asarray(errs[i]), reciprocals[i], flows[i], iter_arrs[i], subdir) else: - save_results(images[i], supports[i], cohs[i], np.asarray(errs[i]), reciprocals[i], subdir, metrics[i]) + save_results(images[i], supports[i], cohs[i], np.asarray(errs[i]), reciprocals[i], flows[i], iter_arrs[i], subdir, metrics[i]) def sub_pixel_shift(arr, row_shift, col_shift, z_shift): From b6db1d5c43052d7d3733ebb7ec015f6c7b973082 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Tue, 27 Aug 2019 13:30:15 -0500 Subject: [PATCH 184/336] Replaced Parsl handling with multiprocessing Pool --- reccdi/src_py/controller/gen_rec.py | 10 +- .../src_py/controller/reconstruction_multi.py | 116 ++++++------------ 2 files changed, 44 insertions(+), 82 deletions(-) diff --git a/reccdi/src_py/controller/gen_rec.py b/reccdi/src_py/controller/gen_rec.py index 5e31007..4319f80 100644 --- a/reccdi/src_py/controller/gen_rec.py +++ b/reccdi/src_py/controller/gen_rec.py @@ -418,16 +418,14 @@ def reconstruction(generations, proc, data, conf_info, config_map, rec_id=None): except: devices = [-1] - dfk = rec.load_config(len(devices)) - for g in range(generations): gen_data = gen_obj.get_data(data) - images, supports, cohs, errs, recips = rec.rec(proc, gen_data, conf, config_map, images, supports, cohs) + images, supports, cohs, errs, recips, flows, iter_arrs = rec.rec(proc, gen_data, conf, config_map, images, supports, cohs) images, supports, cohs, errs, recips = gen_obj.order(images, supports, cohs, errs, recips) metrics = gen_obj.get_metrics(images, errs) # save the generation results gen_save_dir = os.path.join(save_dir, 'g_' + str(g)) - ut.save_multiple_results(len(images), images, supports, cohs, errs, recips, gen_save_dir, metrics) + ut.save_multiple_results(len(images), images, supports, cohs, errs, recips, flows, iter_arrs, gen_save_dir, metrics) if g < generations - 1 and len(images) > 1: images, shrink_supports = gen_obj.breed(images) @@ -442,10 +440,10 @@ def reconstruction(generations, proc, data, conf_info, config_map, rec_id=None): for g in range(generations): gen_data = gen_obj.get_data(data) - image, support, coh, err, recip = rec.rec(proc, gen_data, conf, config_map, image, support, coh) + image, support, coh, err, recip, flows, iter_arrs = rec.rec(proc, gen_data, conf, config_map, image, support, coh) # save the generation results gen_save_dir = os.path.join(save_dir, 'g_' + str(g)) - ut.save_results(image, support, coh, err, recip, gen_save_dir) + ut.save_results(image, support, coh, err, recip, flows, iter_arrs, gen_save_dir) gen_obj.next_gen() if dfk is not None: diff --git a/reccdi/src_py/controller/reconstruction_multi.py b/reccdi/src_py/controller/reconstruction_multi.py index 69fdaab..5a3bde1 100644 --- a/reccdi/src_py/controller/reconstruction_multi.py +++ b/reccdi/src_py/controller/reconstruction_multi.py @@ -17,20 +17,12 @@ visualization. """ -import parsl -from parsl.config import Config -from parsl.executors.ipp import IPyParallelExecutor -# from parsl.executors import HighThroughputExecutor -from parsl.providers import LocalProvider -from parsl.channels import LocalChannel - import os import reccdi.src_py.utilities.utils as ut import reccdi.src_py.controller.fast_module as calc -from parsl.app.app import python_app import time -import logging - +from multiprocessing import Pool +from functools import partial __author__ = "Barbara Frosik" __copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." @@ -39,28 +31,6 @@ 'reconstruction'] -def load_config(devices): - parsl.set_stream_logger(name='parsl', level=logging.ERROR) - logging.getLogger('parsl').setLevel(logging.ERROR) - Config.checkpoint_mode = 'task_exit' - local_config = Config( - executors=[ - IPyParallelExecutor( - #HighThroughputExecutor( - label="local_htex", - provider=LocalProvider( - channel=LocalChannel(), - init_blocks=1, - max_blocks=devices, - parallelism=1, - ) - ) - ] - ) - dfk = parsl.load(local_config) - return dfk - - def assign_devices(devices, samples): """ This function pairs device id with reconstruction run. When running multiple reconstructions, it should be @@ -92,8 +62,7 @@ def assign_devices(devices, samples): return dev -@python_app -def run_fast_module(proc, device, conf, data, coh_dims, prev_image, prev_support, prev_coh): +def run_fast_module(proc, conf, data, coh_dims, prev): """ This function runs in the sample palarellized by Parsl. @@ -135,6 +104,11 @@ def run_fast_module(proc, device, conf, data, coh_dims, prev_image, prev_support error : list containing errors for iterations """ + i, device, prev_image, prev_support, prev_coh = prev + # if this is initial reconstruction (i.e. first generation) add some random delay. Without the delay + # the multiple guesses might be the same. The value 2*i aws selected after several tries. + if prev_image is None: + time.sleep(i*2) image, support, coherence, errors, reciprocal, flow, iter_array = calc.fast_module_reconstruction(proc, device, conf, data, coh_dims, prev_image, prev_support, prev_coh) return image, support, coherence, errors, reciprocal, flow, iter_array @@ -174,7 +148,7 @@ def read_results(read_dir): return images, supports, cohs -def rec(proc, data, conf, config_map, images, supports, cohs=None): +def rec(proc, data, conf, config_map, prev_images, prev_supports, prev_cohs=None): """ This function controls the multiple reconstructions. It invokes a loop to execute parallel resconstructions, wait for all samples to deliver results, and store te results. @@ -216,6 +190,24 @@ def rec(proc, data, conf, config_map, images, supports, cohs=None): errs : list list of lists of errors (now each element is another list by iterations, but should we take the last error?) """ + images = [] + supports = [] + cohs = [] + errs = [] + recips = [] + flows = [] + iter_arrs = [] + def collect_result(result): + for r in result: + images.append(r[0]) + supports.append(r[1]) + cohs.append(r[2]) + errs.append(r[3]) + recips.append(r[4]) + flows.append(r[5]) + iter_arrs.append(r[6]) + + try: devices = config_map.device except: @@ -230,34 +222,20 @@ def rec(proc, data, conf, config_map, images, supports, cohs=None): except: coh_dims = None - res = [] - errs = [] - recips = [] - flows = [] - iter_arrs = [] + iterable = [] for i in range(samples): - if cohs is None: + if prev_cohs is None: coh = None else: - coh = cohs[i] - res.append(None) - errs.append(None) - recips.append(None) - flows.append(None) - iter_arrs.append(None) - - res[i] = run_fast_module(proc, devices[i], conf, data, coh_dims, images[i], supports[i], coh) - - # Wait for all Parsl runs to complete.. - complete_results = [i.result() for i in res] - for i, r in enumerate(complete_results): - images[i] = r[0] - supports[i] = r[1] - cohs[i] = r[2] - errs[i] = r[3] - recips[i] = r[4] - flows[i] = r[5] - iter_arrs[i] = r[6] + coh = prev_cohs[i] + iterable.append((i, devices[i], prev_images[i], prev_supports[i], coh)) + + func = partial(run_fast_module, proc, conf, data, coh_dims) + with Pool(processes = samples) as pool: + pool.map_async(func, iterable, callback=collect_result) + pool.close() + pool.join() + # return only error from last iteration for each reconstruction return images, supports, cohs, errs, recips, flows, iter_arrs @@ -315,12 +293,6 @@ def reconstruction(samples, proc, data, conf_info, config_map): supports.append(None) cohs.append(None) - try: - devices = config_map.device - except: - devices = [-1] - - dfk = load_config(len(devices)) start = time.time() if os.path.isdir(conf_info): @@ -335,7 +307,7 @@ def reconstruction(samples, proc, data, conf_info, config_map): conf = conf_info experiment_dir = None - images, supports, cohs, errs, recips, flows, iter_arrs = rec(proc, data, conf, config_map, images, supports, cohs) + new_images, new_supports, new_cohs, errs, recips, flows, iter_arrs = rec(proc, data, conf, config_map, images, supports, cohs) stop = time.time() t = stop - start print ('run in ' + str(t) + ' sec') @@ -349,12 +321,4 @@ def reconstruction(samples, proc, data, conf_info, config_map): else: save_dir = os.path.join(os.getcwd(), 'results') # save in current dir - clear(dfk) - - ut.save_multiple_results(samples, images, supports, cohs, errs, recips, flows, iter_arrs, save_dir) - - -def clear(dfk): - dfk.cleanup() - parsl.clear() - + ut.save_multiple_results(samples, new_images, new_supports, new_cohs, errs, recips, flows, iter_arrs, save_dir) From a2858282967df69b0dba427e5d7db503b5e4e2ad Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 12 Sep 2019 13:10:48 -0500 Subject: [PATCH 185/336] Update meta.yaml --- meta.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/meta.yaml b/meta.yaml index 82edad2..14f559f 100644 --- a/meta.yaml +++ b/meta.yaml @@ -22,7 +22,6 @@ requirements: run: - python - - parsl - tifffile - pylibconfig2 - xrayutilities From ece561977542ae90794e73e0185853dd76d6f416 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Tue, 1 Oct 2019 13:21:29 -0500 Subject: [PATCH 186/336] fixed the phase constraint --- reccdi/src_cpp/support.cpp | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/reccdi/src_cpp/support.cpp b/reccdi/src_cpp/support.cpp index 43e16aa..b5bed27 100644 --- a/reccdi/src_cpp/support.cpp +++ b/reccdi/src_cpp/support.cpp @@ -72,14 +72,7 @@ void Support::UpdatePhase(const af::array ds_image, int iter) //printf("phase trigger\n"); af::array phase = atan2(imag(ds_image), real(ds_image)); af::array phase_condition = ((phase > params->GetPhaseMin()) && (phase < params->GetPhaseMax())); - if (iter == update_iter) - { - support_array *= phase_condition; - } - else - { - support_array = phase_condition * init_support_array; - } + support_array *= phase_condition; // printf("support sum %f\n", sum(support_array)); } From e5c767b970e25a9196bd7200718db4975045e00e Mon Sep 17 00:00:00 2001 From: bfrosik Date: Tue, 1 Oct 2019 13:22:47 -0500 Subject: [PATCH 187/336] change variable name --- reccdi/src_py/beamlines/aps_34id/prep.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/reccdi/src_py/beamlines/aps_34id/prep.py b/reccdi/src_py/beamlines/aps_34id/prep.py index 68d664f..ef00b1c 100644 --- a/reccdi/src_py/beamlines/aps_34id/prep.py +++ b/reccdi/src_py/beamlines/aps_34id/prep.py @@ -133,8 +133,8 @@ def shift(arr, shifty): for d in range(len(dims)): ftarr *= np.exp(-1j*2*np.pi*shifty[d]*sf.fftshift(idxgrid[d])/float(dims[d])) - shiftedarr = sf.ifftn(ftarr) - return shiftedarr + shifted_arr = sf.ifftn(ftarr) + return shifted_arr def combine_part(part_f, slice_sum, refpart, part): From f8bafb7c761ca4ecdef12645f0f79094f6b0e7c3 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Tue, 1 Oct 2019 17:34:45 -0500 Subject: [PATCH 188/336] limit running reconstruction to one that id is chosen --- bin/cdi_window.py | 4 ++- reccdi/src_py/run_scripts/run_rec.py | 50 +++++++++++----------------- 2 files changed, 23 insertions(+), 31 deletions(-) diff --git a/bin/cdi_window.py b/bin/cdi_window.py index 152ba13..a87756f 100644 --- a/bin/cdi_window.py +++ b/bin/cdi_window.py @@ -951,11 +951,13 @@ def reconstruction(self): # find out which configuration should be saved if self.old_conf_id == '': conf_file = 'config_rec' + conf_id = None else: conf_file = self.old_conf_id + '_config_rec' + conf_id = self.old_conf_id if self.save_conf(conf_file): - run_rc.reconstruction(str(self.proc.currentText()), self.main_win.experiment_dir) + run_rc.reconstruction(str(self.proc.currentText()), self.main_win.experiment_dir, conf_id) else: self.msg_window('Please, run format data in previous tab to activate this function') diff --git a/reccdi/src_py/run_scripts/run_rec.py b/reccdi/src_py/run_scripts/run_rec.py index b160052..916523e 100755 --- a/reccdi/src_py/run_scripts/run_rec.py +++ b/reccdi/src_py/run_scripts/run_rec.py @@ -54,7 +54,7 @@ def run_rec(datafile, config_map, proc, exp_dir, rec_id=None): rec.reconstruction(proc, data, exp_dir, config_map, rec_id) -def reconstruction(proc, experiment_dir): +def reconstruction(proc, experiment_dir, rec_id=None): """ This function starts the interruption discovery thread and the recontruction thread. @@ -68,39 +68,29 @@ def reconstruction(proc, experiment_dir): # find how many reconstruction configurations are in config directory # if more than one, it will run is separate processes conf_dir = os.path.join(experiment_dir, 'conf') - rec_configs = [] - dir_conf_pairs = [] - - for file in os.listdir(conf_dir): - if file.endswith('rec'): - if file == 'config_rec': - rec_id = None - else: - rec_id = file[0:len(file)-len('_config_rec')] - rec_configs.append((file, rec_id)) + if rec_id is None: + conf_file = os.path.join(conf_dir, 'config_rec') + id = None + else: + conf_file = os.path.join(conf_dir, rec_id + '_config_rec') + id = rec_id + + try: + config_map = ut.read_config(conf_file) + if config_map is None: + print("can't read configuration file " + conf_file) + except: + print('Please check configuration file ' + conf_file + '. Cannot parse') + + exp_dirs = [] for dir in os.listdir(experiment_dir): if dir.startswith('scan'): - for conf in rec_configs: - dir_conf_pairs.append((os.path.join(experiment_dir, dir), conf)) - - if os.path.isdir(os.path.join(experiment_dir, 'data')): - for conf in rec_configs: - dir_conf_pairs.append((experiment_dir, conf)) + exp_dirs.append(os.path.join(experiment_dir, dir)) + if len(exp_dirs) == 0: + exp_dirs.append(experiment_dir) rec_processes = [] - for pair in dir_conf_pairs: - dir,conf_id = pair - conf, id = conf_id - conf_file = os.path.join(conf_dir, conf) - try: - config_map = ut.read_config(conf_file) - if config_map is None: - print("can't read configuration file " + conf_file) - continue - except: - print('Please check configuration file ' + conf + '. Cannot parse') - continue - + for dir in exp_dirs: try: data_dir = config_map.data_dir except AttributeError: From 17604c4677908d21cac349c89e660bd9bffaa280 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Fri, 4 Oct 2019 17:00:10 -0500 Subject: [PATCH 189/336] fixed several issues: capability to name experiment with no scans moved separate scans to prep tab copy working directory from config_prep when selecting existing experiment, but not when the config is copied modifying display to process without scan added error messages --- bin/cdi_window.py | 185 ++++++++++++++++------- config => config_prep | 0 reccdi/src_py/beamlines/aps_34id/prep.py | 2 + reccdi/src_py/controller/data.py | 22 ++- reccdi/src_py/run_scripts/run_disp.py | 35 +++-- reccdi/src_py/run_scripts/run_rec.py | 17 ++- 6 files changed, 181 insertions(+), 80 deletions(-) rename config => config_prep (100%) diff --git a/bin/cdi_window.py b/bin/cdi_window.py index a87756f..4199875 100644 --- a/bin/cdi_window.py +++ b/bin/cdi_window.py @@ -47,9 +47,9 @@ def __init__(self, parent=None): self.scan_widget = QLineEdit() uplayout.addRow("scan(s)", self.scan_widget) self.set_conf_from_button = QPushButton() - self.separate_scans = QCheckBox() - uplayout.addRow("separate scans", self.separate_scans) - self.separate_scans.setChecked(False) + # self.separate_scans = QCheckBox() + # uplayout.addRow("separate scans", self.separate_scans) + # self.separate_scans.setChecked(False) uplayout.addRow("Load conf from", self.set_conf_from_button) self.run_button = QPushButton('run everything', self) self.run_button.setStyleSheet("background-color:rgb(175,208,156)") @@ -83,14 +83,14 @@ def assure_experiment_dir(self): def load_conf_dir(self): # select starting directory if self.experiment_dir is not None and \ - os.path.isfile(os.path.join(self.experiment_dir, 'conf', 'config')): + os.path.isfile(os.path.join(self.experiment_dir, 'conf', 'config_prep')): load_dir = select_dir(os.path.join(self.experiment_dir, 'conf')) - elif os.path.isfile(os.path.join(os.getcwd(), 'conf', 'config')): + elif os.path.isfile(os.path.join(os.getcwd(), 'conf', 'config_prep')): load_dir = select_dir(os.path.join(os.getcwd(), 'conf')) else: load_dir = select_dir(self.working_dir) if load_dir is not None: - if not os.path.isfile(os.path.join(load_dir, 'config')): + if not os.path.isfile(os.path.join(load_dir, 'config_prep')): self.msg_window('missing config file in load directory') return elif not os.path.isfile(os.path.join(load_dir, 'config_data')): @@ -139,10 +139,17 @@ def set_scan(self): def set_experiment_dir(self): - if self.id is not None and self.scan is not None: - self.exp_id = self.id + '_' + self.scan + if self.id is not None: + if self.scan is not None: + self.exp_id = self.id + '_' + self.scan + else: + self.exp_id = self.id self.experiment_dir = os.path.join(self.working_dir, self.exp_id) + self.t.results_dir = os.path.join(self.experiment_dir, 'results') + self.t.result_dir_button.setStyleSheet("Text-align:left") + self.t.result_dir_button.setText(self.t.results_dir) + def run_everything(self): self.t.prepare() @@ -154,7 +161,7 @@ def run_everything(self): def init_work_dir(self): self.working_dir = os.getcwd() if os.path.isdir('conf'): - main_conf = os.path.join('conf', 'config') + main_conf = os.path.join('conf', 'config_prep') try: conf_map = ut.read_config(main_conf) self.working_dir = conf_map.working_dir @@ -166,23 +173,52 @@ def init_work_dir(self): def init_from_conf(self, dir): + main_conf = os.path.join(dir, 'config_prep') + # if not os.path.isfile(main_conf): + # dir = os.path.join(dir, 'conf') + # main_conf = os.path.join(dir, 'config_prep') + if not os.path.isfile(main_conf): + self.msg_window('the directory does not contain config file, or conf/config_prep file') + return + # if experiment not set, get it from the load_dir if self.experiment_dir is None: exp_name = dir.split('/')[-2] exp_name_parts = exp_name.split('_') - self.scan = exp_name_parts[-1] - self.scan_widget.setText(self.scan) - self.id = exp_name[0:-len(self.scan)-1] + if len(exp_name_parts) == 1: + # the scan is optional, so in this case the experiment name has only id + self.id = exp_name + else: + self.scan = exp_name_parts[-1] + self.scan_widget.setText(self.scan) + self.id = exp_name[0:-len(self.scan)-1] self.Id_widget.setText(self.id) - self.set_experiment_dir() +# self.set_experiment_dir() - main_conf = os.path.join(dir, 'config') - if not os.path.isfile(main_conf): - dir = os.path.join(dir, 'conf') - main_conf = os.path.join(dir, 'config') - if not os.path.isfile(main_conf): - self.msg_window('the directory does not contain config file, or conf/config file') + # read the working directory from config_prep, update it in application + # the working directory gets only updated if the experiment is uploaded, + # not when the id is already set + try: + conf_map = ut.read_config(main_conf) + except Exception as e: + self.msg_window('please check configuration file ' + main_conf + '. Cannot parse, ' + str(e)) + return + try: + self.working_dir = conf_map.working_dir + self.set_work_dir_button.setStyleSheet("Text-align:left") + self.set_work_dir_button.setText(self.working_dir) + except: + pass + else: + try: + conf_map = ut.read_config(main_conf) + except Exception as e: + self.msg_window('please check configuration file ' + main_conf + '. Cannot parse, ' + str(e)) return + + # set the experiment directory + self.set_experiment_dir() + # copy configuration files from chosen configuration directory self.assure_experiment_dir() dest = os.path.join(self.experiment_dir, 'conf') @@ -195,15 +231,10 @@ def init_from_conf(self, dir): conf_rec = os.path.join(dir, 'config_disp') shutil.copy(conf_rec, dest) - try: - conf_map = ut.read_config(main_conf) - except Exception as e: - self.msg_window('please check configuration file ' + main_conf + '. Cannot parse, ' + str(e)) - return try: separate_scans = conf_map.separate_scans if separate_scans: - self.separate_scans.setChecked(True) + self.t.separate_scans.setChecked(True) except: pass try: @@ -413,7 +444,7 @@ def write_conf(self, conf_map, dir, file): shutil.move(temp_file, conf_file) return True except: - if file == 'config': + if file == 'config_prep': tab = 'Data Prep' elif file == 'config_data': tab = 'Data' @@ -439,6 +470,7 @@ def __init__(self, main_win, parent=None): self.specfile = None self.darkfile = None self.whitefile = None + self.results_dir = None self.addTab(self.tab1, "Data prep") self.addTab(self.tab2, "Data") self.addTab(self.tab3, "Reconstruction") @@ -453,6 +485,9 @@ def tab1UI(self): self.script = None self.imported_script = False layout = QFormLayout() + self.separate_scans = QCheckBox() + layout.addRow("separate scans", self.separate_scans) + self.separate_scans.setChecked(False) self.data_dir_button = QPushButton() layout.addRow("data directory", self.data_dir_button) self.spec_file_button = QPushButton() @@ -628,6 +663,8 @@ def toggle_conf(self, i): def tab4UI(self): layout = QFormLayout() + self.result_dir_button = QPushButton() + layout.addRow("results directory", self.result_dir_button) self.crop = QLineEdit() layout.addRow("crop", self.crop) self.spec_file_button1 = QPushButton() @@ -649,6 +686,7 @@ def tab4UI(self): layout.addWidget(self.config_disp) self.tab4.setLayout(layout) + self.result_dir_button.clicked.connect(self.set_results_dir) self.spec_file_button1.clicked.connect(self.set_spec_file) self.config_disp.clicked.connect(self.display) self.energy.textChanged.connect(lambda: self.set_overriden(self.energy)) @@ -674,29 +712,31 @@ def set_spec_file(self): self.parse_spec() else: self.spec_file_button.setText('') - self.spec_file_button.setText('') - + self.spec_file_button1.setText('') def parse_spec(self): - last_scan = int(self.main_win.scan.split('-')[-1]) - det1, det2, det_quad = spec.get_det_from_spec(self.specfile, last_scan) - if det_quad is not None: - self.det_quad.setText(det_quad) - self.det_quad.setStyleSheet('color: blue') - energy, delta, gamma, dth, arm, pixel = spec.parse_spec(self.specfile, last_scan) - self.energy.setText(str(energy)) - self.energy.setStyleSheet('color: blue') - self.delta.setText(str(delta)) - self.delta.setStyleSheet('color: blue') - self.gamma.setText(str(gamma)) - self.gamma.setStyleSheet('color: blue') - self.dth.setText(str(dth)) - self.dth.setStyleSheet('color: blue') - self.arm.setText(str(arm)) - self.arm.setStyleSheet('color: blue') - self.pixel.setText(str(pixel)) - self.pixel.setStyleSheet('color: blue') + try: + last_scan = int(self.main_win.scan.split('-')[-1]) + det1, det2, det_quad = spec.get_det_from_spec(self.specfile, last_scan) + if det_quad is not None: + self.det_quad.setText(det_quad) + self.det_quad.setStyleSheet('color: blue') + energy, delta, gamma, dth, arm, pixel = spec.parse_spec(self.specfile, last_scan) + self.energy.setText(str(energy)) + self.energy.setStyleSheet('color: blue') + self.delta.setText(str(delta)) + self.delta.setStyleSheet('color: blue') + self.gamma.setText(str(gamma)) + self.gamma.setStyleSheet('color: blue') + self.dth.setText(str(dth)) + self.dth.setStyleSheet('color: blue') + self.arm.setText(str(arm)) + self.arm.setStyleSheet('color: blue') + self.pixel.setText(str(pixel)) + self.pixel.setStyleSheet('color: blue') + except: + print ('scan not available, cannot parse spec') def set_dark_file(self): @@ -716,6 +756,7 @@ def set_white_file(self): else: self.white_file_button.setText('') + def set_data_dir(self): self.data_dir = select_dir(self.data_dir) if self.data_dir is not None: @@ -740,6 +781,16 @@ def set_prep_file(self): os.makedirs(prep_dir) exp_prep_file = os.path.join(prep_dir, 'prep_data.tif') shutil.copyfile(selected, exp_prep_file) + # save config_prep + conf_map = {} + if self.main_win.working_dir is not None: + conf_map['working_dir'] = '"' + str(self.main_win.working_dir) + '"' + else: + self.msg_window("working_dir not defined") + return + conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') + conf_file = os.path.join(conf_dir, 'config_prep') + self.main_win.write_conf(conf_map, conf_dir, 'config_prep') else: self.ready_prep.setText('') @@ -750,13 +801,12 @@ def set_prep_script(self): self.script_button.setStyleSheet("Text-align:left") self.script_button.setText(self.script) # fill the arguments with experiment_dir, scans, config file - conf_file = os.path.join(self.main_win.experiment_dir, 'conf', 'config') + conf_file = os.path.join(self.main_win.experiment_dir, 'conf', 'config_prep') self.args.setText(str(self.main_win.experiment_dir) + ',' + str(self.main_win.scan) + ',' + conf_file) else: self.script_button.setText('') - def prepare(self): if self.main_win.id is None: self.msg_window('enter Reconstruction ID and scan') @@ -778,7 +828,7 @@ def prepare(self): if len(self.det_quad.text()) > 0: det_quad = str(self.det_quad.text()) conf_map['det_quad'] = det_quad - if self.main_win.separate_scans.isChecked(): + if self.separate_scans.isChecked(): conf_map['separate_scans'] = 'true' if str(self.prep.currentText()) == "custom": self.prepare_custom(conf_map) @@ -844,7 +894,7 @@ def prepare_custom(self, conf_map): os.chdir(current_dir) f = getattr(self.m, func) conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') - if self.main_win.write_conf(conf_map, conf_dir, 'config'): + if self.main_win.write_conf(conf_map, conf_dir, 'config_prep'): try: prep_data = f(*args) except Exception as e: @@ -884,10 +934,12 @@ def prepare_34id(self, conf_map): conf_map['darkfile'] = '"' + str(self.darkfile) + '"' if self.whitefile is not None: conf_map['whitefile'] = '"' + str(self.whitefile) + '"' + if self.separate_scans.isChecked(): + conf_map['separate_scans'] = 'true' conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') - conf_file = os.path.join(conf_dir, 'config') - if self.main_win.write_conf(conf_map, conf_dir, 'config'): + conf_file = os.path.join(conf_dir, 'config_prep') + if self.main_win.write_conf(conf_map, conf_dir, 'config_prep'): f = getattr(mod, 'prepare') f(self.main_win.experiment_dir, scan_range, conf_file) @@ -896,7 +948,7 @@ def prepare_34id(self, conf_map): def format_data(self): if os.path.isfile(os.path.join(self.main_win.experiment_dir, 'prep','prep_data.tif'))\ - or self.main_win.separate_scans.isChecked(): + or self.separate_scans.isChecked(): conf_map = {} if len(self.aliens.text()) > 0: conf_map['aliens'] = str(self.aliens.text()).replace('\n','') @@ -947,7 +999,7 @@ def save_conf(self, config_file): def reconstruction(self): if os.path.isfile(os.path.join(self.main_win.experiment_dir, 'data', 'data.tif'))\ - or self.main_win.separate_scans.isChecked(): + or self.separate_scans.isChecked(): # find out which configuration should be saved if self.old_conf_id == '': conf_file = 'config_rec' @@ -962,6 +1014,20 @@ def reconstruction(self): self.msg_window('Please, run format data in previous tab to activate this function') + def set_results_dir(self): + self.results_dir = os.path.join(self.main_win.experiment_dir, 'results') + self.results_dir = select_dir(self.results_dir) + if self.results_dir is not None: + if self.results_dir.endswith('results'): + self.result_dir_button.setStyleSheet("Text-align:left") + self.result_dir_button.setText(self.results_dir) + else: + self.msg_window('Please, select directory ending with "results"') + self.results_dir = None + else: + self.result_dir_button.setText('') + + def display(self): if (self.specfile is None or not os.path.isfile(self.specfile)) and \ (len(self.energy.text()) == 0 or \ @@ -977,7 +1043,7 @@ def display(self): if os.path.isfile(os.path.join(res_dir, 'image.npy')) or \ os.path.isfile(os.path.join(res_dir, '0', 'image.npy')) or \ os.path.isfile(os.path.join(res_dir, 'g_0', '0', 'image.npy')) or \ - self.main_win.separate_scans.isChecked(): + self.separate_scans.isChecked(): conf_map = {} if self.specfile is not None: conf_map['specfile'] = '"' + str(self.specfile) + '"' @@ -998,7 +1064,14 @@ def display(self): conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') if self.main_win.write_conf(conf_map, conf_dir, 'config_disp'): - run_dp.to_vtk(self.main_win.experiment_dir) + if self.results_dir is None: + run_dp.to_vtk(self.main_win.experiment_dir) + else: + dir = str(self.results_dir).split('/')[-1] + if dir == 'results': + run_dp.to_vtk(self.main_win.experiment_dir) + else: + run_dp.to_vtk(self.main_win.experiment_dir, dir[0:-len('_results')]) else: self.msg_window('Please, run reconstruction in previous tab to activate this function') diff --git a/config b/config_prep similarity index 100% rename from config rename to config_prep diff --git a/reccdi/src_py/beamlines/aps_34id/prep.py b/reccdi/src_py/beamlines/aps_34id/prep.py index ef00b1c..70b4ae2 100644 --- a/reccdi/src_py/beamlines/aps_34id/prep.py +++ b/reccdi/src_py/beamlines/aps_34id/prep.py @@ -30,6 +30,7 @@ def get_dir_list(scans, map): data_dir = map.data_dir except: print ('please provide data_dir') + return dirs = [] for name in os.listdir(data_dir): @@ -172,6 +173,7 @@ def prep_data(experiment_dir, scans, map, det_area1, det_area2, *args): scans.append(scans[0]) dirs = get_dir_list(scans, map) if len(dirs) == 0: + print ('no data directories found') return else: if not os.path.exists(experiment_dir): diff --git a/reccdi/src_py/controller/data.py b/reccdi/src_py/controller/data.py index dc36f42..4e5d033 100644 --- a/reccdi/src_py/controller/data.py +++ b/reccdi/src_py/controller/data.py @@ -114,6 +114,8 @@ def prep(fname, conf_info): except AttributeError: pass + except: + print ('error in aliens configuration') try: amp_threshold = config_map.amp_threshold @@ -143,6 +145,7 @@ def prep(fname, conf_info): pairs[0], pairs[1] = pairs[1], pairs[0] prep_data = ut.adjust_dimensions(prep_data, pairs) if prep_data is None: + print('check "adjust_dimensions" configuration') return try: @@ -154,14 +157,17 @@ def prep(fname, conf_info): try: binsizes = config_map.binning - bins = [] - for binsize in binsizes: - bins.append(binsize) - filler = len(prep_data.shape) - len(bins) - for _ in range(filler): - bins.append(1) - bins[0], bins[1] = bins[1], bins[0] - prep_data = ut.binning(prep_data, bins) + try: + bins = [] + for binsize in binsizes: + bins.append(binsize) + filler = len(prep_data.shape) - len(bins) + for _ in range(filler): + bins.append(1) + bins[0], bins[1] = bins[1], bins[0] + prep_data = ut.binning(prep_data, bins) + except: + print ('check "binning" configuration') except AttributeError: pass diff --git a/reccdi/src_py/run_scripts/run_disp.py b/reccdi/src_py/run_scripts/run_disp.py index 9bddbf9..450f724 100755 --- a/reccdi/src_py/run_scripts/run_disp.py +++ b/reccdi/src_py/run_scripts/run_disp.py @@ -12,6 +12,7 @@ def save_vtk(res_dir, conf, last_scan): imagefile = os.path.join(res_dir, 'image.npy') image = np.load(imagefile) except: + print ('no "image.npy" file in results directory') return try: @@ -53,19 +54,25 @@ def save_dir_tree(save_dir, conf, last_scan): save_vtk(sub_sub, conf, last_scan) -def to_vtk(experiment_dir): +def to_vtk(experiment_dir, conf_id=None): def add_res_dirs(dir, dirs): - for res_dir in os.listdir(dir): - if res_dir.endswith('results'): - dirs.append(os.path.join(dir, res_dir)) + if conf_id is not None: + dirs.append(os.path.join(dir, conf_id + '_results')) + else: + dirs.append(os.path.join(dir, 'results')) return dirs if os.path.isdir(experiment_dir): - scan = experiment_dir.split("-")[-1] - try: - last_scan = int(scan) - except: - last_scan = int(scan.split("_")[-1]) + #first check if the experiment name contains scan + if len(experiment_dir.split('_')) == 1: + # no scan in the name + last_scan = None + else: + scan = experiment_dir.split("-")[-1] + try: + last_scan = int(scan) + except: + last_scan = int(scan.split("_")[-1]) conf = os.path.join(experiment_dir, 'conf', 'config_disp') if not os.path.isfile(conf): # try to get spec file from experiment's prep phase @@ -79,10 +86,10 @@ def add_res_dirs(dir, dirs): f.write('specfile = "' + specfile + '"') f.close() except: - print ("1Missing config_disp file and can't find spec file in experiment config") + print ("Missing config_disp file and can't find spec file in experiment config") return else: - print ("2Missing config_disp file and can't find spec file in experiment config") + print ("Missing config_disp file and can't find spec file in experiment config") return else: print("Please provide a valid experiment directory") @@ -130,12 +137,13 @@ def add_res_dirs(dir, dirs): except AttributeError: pass - res_dirs = add_res_dirs(experiment_dir, res_dirs) - for dir in os.listdir(experiment_dir): if dir.startswith('scan'): res_dirs = add_res_dirs(os.path.join(experiment_dir, dir), res_dirs) + if len(res_dirs) == 0: + res_dirs = add_res_dirs(experiment_dir, res_dirs) + for save_dir in res_dirs: p = Process(target = save_dir_tree, args = (save_dir, conf, last_scan,)) p.start() @@ -149,7 +157,6 @@ def main(arg): experiment_dir = args.experiment_dir to_vtk(experiment_dir) - print ('done with display') if __name__ == "__main__": main(sys.argv[1:]) diff --git a/reccdi/src_py/run_scripts/run_rec.py b/reccdi/src_py/run_scripts/run_rec.py index 916523e..8376547 100755 --- a/reccdi/src_py/run_scripts/run_rec.py +++ b/reccdi/src_py/run_scripts/run_rec.py @@ -38,12 +38,17 @@ def term_handler(signal, frame): signal.pause() -def run_rec(datafile, config_map, proc, exp_dir, rec_id=None): +def run_rec(datafile, config_map, proc, exp_dir, index, rec_id=None): data = ut.read_tif(datafile) print ('data shape', data.shape) data = np.swapaxes(data, 0, 2) data = np.swapaxes(data, 0, 1) + try: + devices = config_map.device + except: + devices = (-1) + try: generations = config_map.generations except: @@ -51,6 +56,7 @@ def run_rec(datafile, config_map, proc, exp_dir, rec_id=None): if generations > 1: gen_rec.reconstruction(generations, proc, data, exp_dir, config_map, rec_id) else: + rec.reconstruction(proc, data, exp_dir, config_map, rec_id) @@ -79,8 +85,10 @@ def reconstruction(proc, experiment_dir, rec_id=None): config_map = ut.read_config(conf_file) if config_map is None: print("can't read configuration file " + conf_file) + return except: print('Please check configuration file ' + conf_file + '. Cannot parse') + return exp_dirs = [] for dir in os.listdir(experiment_dir): @@ -90,6 +98,10 @@ def reconstruction(proc, experiment_dir, rec_id=None): exp_dirs.append(experiment_dir) rec_processes = [] + # index is used to find which device to utilize + # it will be used for case when multiple reconstructions are running for the separate scans + # but there is no GA (because the GA would utilize the devices) + index = 0 for dir in exp_dirs: try: data_dir = config_map.data_dir @@ -97,7 +109,8 @@ def reconstruction(proc, experiment_dir, rec_id=None): data_dir = os.path.join(dir, 'data') datafile = os.path.join(data_dir, 'data.tif') if os.path.isfile(datafile): - p = Process(target = run_rec, args = (datafile, config_map, proc, dir, id,)) + p = Process(target = run_rec, args = (datafile, config_map, proc, dir, index, id,)) + index += 1 p.start() rec_processes.append(p) From fdc7dc66f41902f5b5d80088ac0c6e03258a1be9 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Mon, 7 Oct 2019 11:46:34 -0500 Subject: [PATCH 190/336] added optional parameter rec_id to run alternate reconstruction in command line mode --- how_to_run | 12 ++++++++++-- reccdi/src_py/run_scripts/run_disp.py | 11 ++++++++--- reccdi/src_py/run_scripts/run_rec.py | 8 +++++++- 3 files changed, 25 insertions(+), 6 deletions(-) diff --git a/how_to_run b/how_to_run index bd73ca7..a113c6a 100644 --- a/how_to_run +++ b/how_to_run @@ -30,12 +30,20 @@ python bin/run_disp.py example: 1. running all pieces source bin/everything.sh opencl B 290-290 conf/last -2. running one by one + +2. running one by one (when envirenment is set) python bin/prepare_34id.py B 290-290 conf/last python bin/run_data.py test/B_290-290 -source bin/run_rec.sh opencl test/B_290-290 +python bin/run_rec.py opencl test/B_290-290 python bin/run_disp.py test/B_290-290 +3. running reconstruction with alternate configuration: +Note: the configuration should be in conf directory and have name _config_rec +python bin/run_rec.py opencl test/B_290-290 --rec_id + +4. running display with alternate results: +python bin/run_disp.py test/B_290-290 --rec_id + How to run using GUI: --------------------- 1. source bin/cdi_window.sh diff --git a/reccdi/src_py/run_scripts/run_disp.py b/reccdi/src_py/run_scripts/run_disp.py index 450f724..79cdef9 100755 --- a/reccdi/src_py/run_scripts/run_disp.py +++ b/reccdi/src_py/run_scripts/run_disp.py @@ -12,7 +12,7 @@ def save_vtk(res_dir, conf, last_scan): imagefile = os.path.join(res_dir, 'image.npy') image = np.load(imagefile) except: - print ('no "image.npy" file in results directory') + print ('no "image.npy" file in the results directory') return try: @@ -45,6 +45,8 @@ def save_vtk(res_dir, conf, last_scan): def save_dir_tree(save_dir, conf, last_scan): save_vtk(save_dir, conf, last_scan) for sub in os.listdir(save_dir): + if not sub.endswith('results'): + continue subdir = os.path.join(save_dir, sub) if os.path.isdir(subdir): save_vtk(subdir, conf, last_scan) @@ -153,10 +155,13 @@ def main(arg): print ('preparing display') parser = argparse.ArgumentParser() parser.add_argument("experiment_dir", help="experiment directory") + parser.add_argument("--rec_id", help="prefix to '_results' directory") args = parser.parse_args() experiment_dir = args.experiment_dir - - to_vtk(experiment_dir) + if args.rec_id: + to_vtk(experiment_dir, args.rec_id) + else: + to_vtk(experiment_dir) if __name__ == "__main__": main(sys.argv[1:]) diff --git a/reccdi/src_py/run_scripts/run_rec.py b/reccdi/src_py/run_scripts/run_rec.py index 8376547..77ae14e 100755 --- a/reccdi/src_py/run_scripts/run_rec.py +++ b/reccdi/src_py/run_scripts/run_rec.py @@ -126,17 +126,23 @@ def reconstruction(proc, experiment_dir, rec_id=None): def main(arg): + print (sys.argv[1:]) parser = argparse.ArgumentParser() parser.add_argument("proc", help="the processor the code will run on, can be 'cpu', 'opencl', or 'cuda'.") parser.add_argument("experiment_dir", help="experiment directory.") + parser.add_argument("--rec_id", help="prefix to '_results' directory") args = parser.parse_args() proc = args.proc experiment_dir = args.experiment_dir - reconstruction(proc, experiment_dir) + if args.rec_id: + reconstruction(proc, experiment_dir, args.rec_id) + else: + reconstruction(proc, experiment_dir) if __name__ == "__main__": + print (sys.argv[1:]) main(sys.argv[1:]) #python run_rec.py opencl experiment_dir From d1e96e9a38851f08c98730049402e3822b8fd56b Mon Sep 17 00:00:00 2001 From: bfrosik Date: Mon, 7 Oct 2019 15:45:47 -0500 Subject: [PATCH 191/336] changed det reading from spec --- reccdi/src_py/beamlines/aps_34id/prep.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/reccdi/src_py/beamlines/aps_34id/prep.py b/reccdi/src_py/beamlines/aps_34id/prep.py index 70b4ae2..bc06ddf 100644 --- a/reccdi/src_py/beamlines/aps_34id/prep.py +++ b/reccdi/src_py/beamlines/aps_34id/prep.py @@ -53,7 +53,7 @@ def get_dark_white(darkfile, whitefile, det_area1, det_area2): # find the darkfield array dark_full = tif.imread(darkfile).astype(float) # crop the corresponding quad or use the whole array, depending on what info was parsed from spec file - dark = dark_full[slice(det_area1[0], det_area1[1]), slice(det_area2[0], det_area2[1])] + dark = dark_full[slice(det_area1[0], det_area1[0] + det_area1[1]), slice(det_area2[0], det_area2[0] + det_area2[1])] else: dark = None @@ -61,7 +61,7 @@ def get_dark_white(darkfile, whitefile, det_area1, det_area2): # find the whitefield array white_full = tif.imread(whitefile).astype(float) # crop the corresponding quad or use the whole array, depending on what info was parsed from spec file - white = white_full[slice(det_area1[0], det_area1[1]), slice(det_area2[0], det_area2[1])] + white = white_full[slice(det_area1[0], det_area1[0] + det_area1[1]), slice(det_area2[0], det_area2[0] + det_area2[1])] # set the bad pixels to some large value white = np.where(white<5000, 1e20, white) #Some large value else: From bc187e6724e53237b1ce156daf20bef76a674cc6 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Fri, 11 Oct 2019 17:22:59 -0500 Subject: [PATCH 192/336] removed det checking, changed class name, samples to reconstructions --- bin/cdi_window.py | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/bin/cdi_window.py b/bin/cdi_window.py index 4199875..47ce456 100644 --- a/bin/cdi_window.py +++ b/bin/cdi_window.py @@ -32,9 +32,9 @@ def select_dir(start_dir): return None -class cdi_conf(QWidget): +class cdi_gui(QWidget): def __init__(self, parent=None): - super(cdi_conf, self).__init__(parent) + super(cdi_gui, self).__init__(parent) self.id = None self.scan = None self.experiment_dir = None @@ -389,7 +389,7 @@ def init_rec_tab(self, first_init=False): except AttributeError: pass try: - self.t.samples.setText(str(conf_map.samples).replace(" ", "")) + self.t.reconstructions.setText(str(conf_map.reconstructions).replace(" ", "")) except AttributeError: pass try: @@ -591,8 +591,8 @@ def tab3UI(self): self.cont.setChecked(False) self.device = QLineEdit() ulayout.addRow("device(s)", self.device) - self.samples = QLineEdit() - ulayout.addRow("number of reconstructions", self.samples) + self.reconstructions = QLineEdit() + ulayout.addRow("number of reconstructions", self.reconstructions) self.gc = QLineEdit() ulayout.addRow("gc triggers", self.gc) self.alg_seq = QLineEdit() @@ -718,10 +718,6 @@ def set_spec_file(self): def parse_spec(self): try: last_scan = int(self.main_win.scan.split('-')[-1]) - det1, det2, det_quad = spec.get_det_from_spec(self.specfile, last_scan) - if det_quad is not None: - self.det_quad.setText(det_quad) - self.det_quad.setStyleSheet('color: blue') energy, delta, gamma, dth, arm, pixel = spec.parse_spec(self.specfile, last_scan) self.energy.setText(str(energy)) self.energy.setStyleSheet('color: blue') @@ -981,7 +977,7 @@ def msg_window(self, text): def save_conf(self, config_file): conf_map = {} - conf_map['samples'] = str(self.samples.text()) + conf_map['reconstructions'] = str(self.reconstructions.text()) conf_map['device'] = str(self.device.text()).replace('\n','') conf_map['garbage_trigger'] = str(self.gc.text()).replace('\n','') conf_map['algorithm_sequence'] = str(self.alg_seq.text()).replace('\n','') @@ -1081,7 +1077,7 @@ def rec_default(self): len(self.main_win.working_dir) == 0 or len(self.main_win.id) == 0: self.msg_window('Working Directory or Reconstruction ID not configured') else: - self.samples.setText('1') + self.reconstructions.setText('1') self.device.setText('(3)') self.gc.setText('(1000)') self.alg_seq.setText('((3,("ER",20),("HIO",180)),(1,("ER",20)))') @@ -1562,7 +1558,7 @@ def display(self, i): def main(): app = QApplication(sys.argv) - ex = cdi_conf() + ex = cdi_gui() ex.show() sys.exit(app.exec_()) From 7843f77d187bb9d1025104e24d42ce8b8a5fa1eb Mon Sep 17 00:00:00 2001 From: bfrosik Date: Fri, 11 Oct 2019 17:26:29 -0500 Subject: [PATCH 193/336] modified fitting, trimmimg entries from config file --- reccdi/src_py/beamlines/aps_34id/prep.py | 38 +++++++++++++++--------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/reccdi/src_py/beamlines/aps_34id/prep.py b/reccdi/src_py/beamlines/aps_34id/prep.py index bc06ddf..97fd07e 100644 --- a/reccdi/src_py/beamlines/aps_34id/prep.py +++ b/reccdi/src_py/beamlines/aps_34id/prep.py @@ -27,7 +27,7 @@ def get_dir_list(scans, map): except: exclude_scans = [] try: - data_dir = map.data_dir + data_dir = map.data_dir.strip() except: print ('please provide data_dir') return @@ -150,17 +150,24 @@ def combine_part(part_f, slice_sum, refpart, part): def fit(arr, det_area1, det_area2): + # The det_area parameters hold the [beginning of image, size] in both dimensions. + # the beginning of image is relative to the full sensor image 512 x 512. # if the full sensor was used for the image (i.e. the data size is 512x512) + # or if the image overleaps multiple quads, # the quadrants need to be shifted - if det_area1[0] == 0 and det_area1[1] == 512 and det_area1[0] == 0 and det_area2[1] == 512: - b = np.zeros((arr.shape[0],517,516),float) - b[:,:256,:256] = arr[:,:256,:256] #Quad top left unchanged - b[:,:256,260:] = arr[:,:256,256:] #Quad top right moved 4 right - b[:,261:,:256] = arr[:,256:,:256] #Quad bot left moved 6 down - b[:,261:,260:] = arr[:,256:,256:] #Quad bot right + # check whether the image was taken with a single quad, then no shift is needed + if (det_area1[0] + det_area1[1] <= 256) and (det_area2[0] + det_area2[1] <= 256): + return arr else: - b = arr - return b + b = np.zeros((517,516,arr.shape[2]),float) + tmp = np.zeros((512,512,arr.shape[2]),float) + tmp[det_area1[0]:det_area1[0]+det_area1[1],det_area2[0]:det_area2[0]+det_area2[1],:] = arr + b[:256,:256,:] = tmp[:256,:256,:] #Quad top left unchanged + b[:256,260:,:] = tmp[:256,256:,:] #Quad top right moved 4 right + b[261:,:256,:] = tmp[256:,:256,:] #Quad bot left moved 6 down + b[261:,260:,:] = tmp[256:,256:,:] #Quad bot right + + return b[det_area1[0]:det_area1[0]+det_area1[1],det_area2[0]:det_area2[0]+det_area2[1],:] def prep_data(experiment_dir, scans, map, det_area1, det_area2, *args): @@ -180,12 +187,12 @@ def prep_data(experiment_dir, scans, map, det_area1, det_area2, *args): os.makedirs(experiment_dir) try: - whitefile = map.whitefile + whitefile = (map.whitefile).strip() except: whitefile = None try: - darkfile = map.darkfile + darkfile = (map.darkfile).strip() except: darkfile = None @@ -197,20 +204,23 @@ def prep_data(experiment_dir, scans, map, det_area1, det_area2, *args): if len(dirs) == 1: arr = read_scan(dirs[0], dark, white) + arr = fit(arr, det_area1, det_area2) else: # make the first part a reference part = read_scan(dirs[0], dark, white) + part = fit(part, det_area1, det_area2) slice_sum = np.abs(copy.deepcopy(part)) refpart = sf.fftn(part) for i in range (1, len(dirs)): #this will load scans from each directory into an array part part = read_scan(dirs[i], dark, white) + part = fit(part, det_area1, det_area2) # add the arrays together part_f = sf.fftn(part) slice_sum = combine_part(part_f, slice_sum, refpart, part) arr = np.abs(slice_sum).astype(np.int32) - arr = fit(arr, det_area1, det_area2) + #arr = fit(arr, det_area1, det_area2) #create directory to save prepared data ,/prep prep_data_dir = os.path.join(experiment_dir, 'prep') @@ -232,9 +242,9 @@ def prepare(experiment_dir, scans, conf_file, *args): scan_end = scans[len(scans)-1] try: - specfile = config_map.specfile + specfile = config_map.specfile.strip() # parse det1 and det2 parameters from spec - det_area1, det_area2, quad = spec.get_det_from_spec(specfile, scan_end) + det_area1, det_area2 = spec.get_det_from_spec(specfile, scan_end) except: try: det_quad = config_map.det_quad From 95f9164d68f6a0c168f0406d798fb4dcc30b111c Mon Sep 17 00:00:00 2001 From: bfrosik Date: Fri, 11 Oct 2019 17:28:31 -0500 Subject: [PATCH 194/336] renamed samples to reconstructions --- reccdi/src_py/controller/gen_rec.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/reccdi/src_py/controller/gen_rec.py b/reccdi/src_py/controller/gen_rec.py index 4319f80..fff6de3 100644 --- a/reccdi/src_py/controller/gen_rec.py +++ b/reccdi/src_py/controller/gen_rec.py @@ -134,10 +134,10 @@ def get_metrics(self, images, errs): def rank(self, images, errs): rank_property = [] - samples = len(images) + reconstructions = len(images) metric = self.metrics[self.current_gen] - for i in range (samples): + for i in range (reconstructions): image = images[i] if metric == 'chi': rank_property.append(errs[i][-1]) @@ -158,7 +158,7 @@ def rank(self, images, errs): # metric is 'chi' rank_property.append(errs[i][-1]) - # ranks keeps indexes of samples from best to worst + # ranks keeps indexes of reconstructions from best to worst # for most of the metric types the minimum of the metric is best, but for # 'summed_phase' and 'area' it is oposite, so reversing the order ranks = np.argsort(rank_property).tolist() @@ -213,11 +213,11 @@ def breed(self, images): breed_mode = self.breed_modes[self.current_gen] if breed_mode == 'none': return images, None - samples = len(images) + reconstructions = len(images) if self.worst_remove_no is not None: - samples = samples - self.worst_remove_no[self.current_gen] + reconstructions = reconstructions - self.worst_remove_no[self.current_gen] - ims = images[0 : samples] + ims = images[0 : reconstructions] dims = len(ims[0].shape) ims_arr = np.stack(ims) @@ -367,9 +367,9 @@ def reconstruction(generations, proc, data, conf_info, config_map, rec_id=None): nothing """ try: - samples = config_map.samples + reconstructions = config_map.reconstructions except: - samples = 1 + reconstructions = 1 gen_obj = Generation(config_map) @@ -401,13 +401,13 @@ def reconstruction(generations, proc, data, conf_info, config_map, rec_id=None): save_dir = os.path.join(os.getcwd(), 'results') # save in current dir # init starting values - # if multiple samples configured (typical for genetic algorithm), use "reconstruction_multi" module + # if multiple reconstructions configured (typical for genetic algorithm), use "reconstruction_multi" module dfk = None - if samples > 1: + if reconstructions > 1: images = [] supports = [] cohs = [] - for _ in range(samples): + for _ in range(reconstructions): images.append(None) supports.append(None) cohs.append(None) From eeeac20744749dfe823950fc0264c9ec7c7138b7 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Fri, 11 Oct 2019 17:31:03 -0500 Subject: [PATCH 195/336] refactored algorithm handling --- reccdi/src_py/controller/gen_rec.py | 1 - 1 file changed, 1 deletion(-) diff --git a/reccdi/src_py/controller/gen_rec.py b/reccdi/src_py/controller/gen_rec.py index fff6de3..f4c625b 100644 --- a/reccdi/src_py/controller/gen_rec.py +++ b/reccdi/src_py/controller/gen_rec.py @@ -372,7 +372,6 @@ def reconstruction(generations, proc, data, conf_info, config_map, rec_id=None): reconstructions = 1 gen_obj = Generation(config_map) - if rec_id is None: conf_file = 'config_rec' else: From f4e3ebba04cf099238b098068322e79317333bb6 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Fri, 11 Oct 2019 17:33:22 -0500 Subject: [PATCH 196/336] renamed samples to reconstructions --- reccdi/src_py/controller/reconstruction.py | 8 ++-- .../src_py/controller/reconstruction_multi.py | 44 +++++++++---------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/reccdi/src_py/controller/reconstruction.py b/reccdi/src_py/controller/reconstruction.py index 6fd9947..26eeb64 100644 --- a/reccdi/src_py/controller/reconstruction.py +++ b/reccdi/src_py/controller/reconstruction.py @@ -116,12 +116,12 @@ def reconstruction(proc, data, conf_info, config_map, rec_id=None): # how many reconstructions to start try: - samples = config_map.samples + reconstructions = config_map.reconstructions except: - samples = 1 + reconstructions = 1 - if samples > 1: - multi.reconstruction(samples, proc, data, conf_info, config_map) + if reconstructions > 1: + multi.reconstruction(reconstructions, proc, data, conf_info, config_map) else: cont = False try: diff --git a/reccdi/src_py/controller/reconstruction_multi.py b/reccdi/src_py/controller/reconstruction_multi.py index 5a3bde1..270b62b 100644 --- a/reccdi/src_py/controller/reconstruction_multi.py +++ b/reccdi/src_py/controller/reconstruction_multi.py @@ -31,7 +31,7 @@ 'reconstruction'] -def assign_devices(devices, samples): +def assign_devices(devices, reconstructions): """ This function pairs device id with reconstruction run. When running multiple reconstructions, it should be distributed between available gpus. The GPUs might be configured. If not, it is left to Parsl logic how @@ -42,29 +42,29 @@ def assign_devices(devices, samples): devices : list list containing ids of devices - samples : int - number of reconstructions (each in own sample) + reconstructions : int + number of reconstructions (each in own reconstruction) Returns ------- dev : list - list containing devices allocated subsequently to samples. If the device was not configured, it will + list containing devices allocated subsequently to reconstructions. If the device was not configured, it will be set to -1, which leaves the allocation to Parsl """ dev_no = len(devices) dev = [] - for sample in range(samples): - if sample < dev_no: - dev.append(devices[sample]) + for reconstruction in range(reconstructions): + if reconstruction < dev_no: + dev.append(devices[reconstruction]) else: - dev.append(devices[sample % len(devices)]) + dev.append(devices[reconstruction % len(devices)]) return dev def run_fast_module(proc, conf, data, coh_dims, prev): """ - This function runs in the sample palarellized by Parsl. + This function runs in the reconstruction palarellized by Parsl. Parameters ---------- @@ -72,7 +72,7 @@ def run_fast_module(proc, conf, data, coh_dims, prev): string defining library used 'cpu' or 'opencl' or 'cuda' device : int - device allocated to this sample or -1 if not configured + device allocated to this reconstruction or -1 if not configured conf : str configuration file @@ -151,7 +151,7 @@ def read_results(read_dir): def rec(proc, data, conf, config_map, prev_images, prev_supports, prev_cohs=None): """ This function controls the multiple reconstructions. It invokes a loop to execute parallel resconstructions, - wait for all samples to deliver results, and store te results. + wait for all reconstructions to deliver results, and store te results. Parameters ---------- @@ -213,9 +213,9 @@ def collect_result(result): except: devices = [-1] - # assign device for each sample - samples = config_map.samples - devices = assign_devices(devices, samples) + # assign device for each reconstruction + reconstructions = config_map.reconstructions + devices = assign_devices(devices, reconstructions) try: coh_dims = tuple(config_map.partial_coherence_roi) @@ -223,7 +223,7 @@ def collect_result(result): coh_dims = None iterable = [] - for i in range(samples): + for i in range(reconstructions): if prev_cohs is None: coh = None else: @@ -231,7 +231,7 @@ def collect_result(result): iterable.append((i, devices[i], prev_images[i], prev_supports[i], coh)) func = partial(run_fast_module, proc, conf, data, coh_dims) - with Pool(processes = samples) as pool: + with Pool(processes = reconstructions) as pool: pool.map_async(func, iterable, callback=collect_result) pool.close() pool.join() @@ -240,18 +240,18 @@ def collect_result(result): return images, supports, cohs, errs, recips, flows, iter_arrs -def reconstruction(samples, proc, data, conf_info, config_map): +def reconstruction(reconstructions, proc, data, conf_info, config_map): """ This function starts the reconstruction. It checks whether it is continuation of reconstruction defined by - configuration. If continuation, the lists contaning arrays of images, supports, coherence for multiple samples + configuration. If continuation, the lists contaning arrays of images, supports, coherence for multiple reconstructions are read from cont_directory, otherwise, they are initialized to None. After the lists are initialized, they are passed for the multi-reconstruction. The results are saved in the configured directory. Parameters ---------- - samples : int - number of samples + reconstructions : int + number of reconstructions proc : str a string indicating the processor type (cpu, opencl, cuda) @@ -288,7 +288,7 @@ def reconstruction(samples, proc, data, conf_info, config_map): images = [] supports = [] cohs = [] - for _ in range(samples): + for _ in range(reconstructions): images.append(None) supports.append(None) cohs.append(None) @@ -321,4 +321,4 @@ def reconstruction(samples, proc, data, conf_info, config_map): else: save_dir = os.path.join(os.getcwd(), 'results') # save in current dir - ut.save_multiple_results(samples, new_images, new_supports, new_cohs, errs, recips, flows, iter_arrs, save_dir) + ut.save_multiple_results(reconstructions, new_images, new_supports, new_cohs, errs, recips, flows, iter_arrs, save_dir) From 9d9e986bd8f531b2b7fe7beffe7a9eb77ff58804 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Fri, 11 Oct 2019 17:34:41 -0500 Subject: [PATCH 197/336] Added verification of config files --- reccdi/src_py/controller/data.py | 6 + reccdi/src_py/run_scripts/run_34id_prepare.py | 12 +- reccdi/src_py/run_scripts/run_disp.py | 6 + reccdi/src_py/run_scripts/run_rec.py | 7 +- reccdi/src_py/utilities/parse_ver.py | 799 ++++++++++++++++++ 5 files changed, 825 insertions(+), 5 deletions(-) create mode 100644 reccdi/src_py/utilities/parse_ver.py diff --git a/reccdi/src_py/controller/data.py b/reccdi/src_py/controller/data.py index 4e5d033..c43d2e6 100644 --- a/reccdi/src_py/controller/data.py +++ b/reccdi/src_py/controller/data.py @@ -19,6 +19,7 @@ import numpy as np import reccdi.src_py.utilities.utils as ut +import reccdi.src_py.utilities.parse_ver as ver import os @@ -72,6 +73,11 @@ def prep(fname, conf_info): #assuming it's a file conf = conf_info experiment_dir = None + + # verify the configuration file + if not ver.ver_config_data(conf): + return + try: config_map = ut.read_config(conf) if config_map is None: diff --git a/reccdi/src_py/run_scripts/run_34id_prepare.py b/reccdi/src_py/run_scripts/run_34id_prepare.py index 103f2ff..52814ac 100755 --- a/reccdi/src_py/run_scripts/run_34id_prepare.py +++ b/reccdi/src_py/run_scripts/run_34id_prepare.py @@ -3,6 +3,7 @@ import sys import os import reccdi.src_py.beamlines.aps_34id.prep as prep +import reccdi.src_py.utilities.parse_ver as ver import shutil @@ -14,7 +15,7 @@ def prepare(experiment_dir, scan_range, conf_file): def copy_conf(src, dest): try: - main_conf = os.path.join(src, 'config') + main_conf = os.path.join(src, 'config_prep') shutil.copy(main_conf, dest) conf_data = os.path.join(src, 'config_data') shutil.copy(conf_data, dest) @@ -34,9 +35,9 @@ def parse_and_prepare(prefix, scan, conf_dir): print ('configured directory ' + conf_dir + ' does not exist') return - main_conf = os.path.join(conf_dir, 'config') + main_conf = os.path.join(conf_dir, 'config_prep') if not os.path.isfile(main_conf): - print ('the configuration directory does not contain "config" file') + print ('the configuration directory does not contain "config_prep" file') return try: @@ -49,6 +50,9 @@ def parse_and_prepare(prefix, scan, conf_dir): print ('enter numeric values for scan range') return + if not ver.ver_config_prep(main_conf): + return + try: with open(main_conf, 'r') as f: config_map = cfg.Config(f.read()) @@ -57,7 +61,7 @@ def parse_and_prepare(prefix, scan, conf_dir): return try: - working_dir = config_map.working_dir + working_dir = config_map.working_dir.strip() except: print ('config file does not have "working_dir" entry, defaulting to current directory') working_dir = os.getcwd() diff --git a/reccdi/src_py/run_scripts/run_disp.py b/reccdi/src_py/run_scripts/run_disp.py index 79cdef9..d056841 100755 --- a/reccdi/src_py/run_scripts/run_disp.py +++ b/reccdi/src_py/run_scripts/run_disp.py @@ -3,6 +3,7 @@ import sys import os import reccdi.src_py.utilities.utils as ut +import reccdi.src_py.utilities.parse_ver as ver import numpy as np from multiprocessing import Process @@ -76,6 +77,11 @@ def add_res_dirs(dir, dirs): except: last_scan = int(scan.split("_")[-1]) conf = os.path.join(experiment_dir, 'conf', 'config_disp') + + # verify configuration file + if not ver.ver_config_disp(conf): + return + if not os.path.isfile(conf): # try to get spec file from experiment's prep phase main_conf = os.path.join(experiment_dir, 'conf', 'config') diff --git a/reccdi/src_py/run_scripts/run_rec.py b/reccdi/src_py/run_scripts/run_rec.py index 77ae14e..7778a94 100755 --- a/reccdi/src_py/run_scripts/run_rec.py +++ b/reccdi/src_py/run_scripts/run_rec.py @@ -6,6 +6,7 @@ import reccdi.src_py.controller.reconstruction as rec import reccdi.src_py.controller.gen_rec as gen_rec import reccdi.src_py.utilities.utils as ut +import reccdi.src_py.utilities.parse_ver as ver import numpy as np import time @@ -81,13 +82,17 @@ def reconstruction(proc, experiment_dir, rec_id=None): conf_file = os.path.join(conf_dir, rec_id + '_config_rec') id = rec_id + # verify the configuration file + if not ver.ver_config_rec(conf_file): + return + try: config_map = ut.read_config(conf_file) if config_map is None: print("can't read configuration file " + conf_file) return except: - print('Please check configuration file ' + conf_file + '. Cannot parse') + print('Cannot parse configuration file ' + conf_file + ' , check for matching parenthesis and quotations') return exp_dirs = [] diff --git a/reccdi/src_py/utilities/parse_ver.py b/reccdi/src_py/utilities/parse_ver.py new file mode 100644 index 0000000..0d22085 --- /dev/null +++ b/reccdi/src_py/utilities/parse_ver.py @@ -0,0 +1,799 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + + +""" +verification of configuration files +""" + +import reccdi.src_py.utilities.utils as ut +import os + + +def ver_list_int(param_name, param_value): + if type(param_value) != list: + print (param_name + ' is not a list') + return False + for e in param_value: + if type(e) != int: + print (param_name + ' should be list of integer values') + return False + return True + + +def ver_list_float(param_name, param_value): + if type(param_value) != list: + print (param_name + ' is not a list') + return False + for e in param_value: + if type(e) != float: + print (param_name + ' should be list of float values') + return False + return True + + +def ver_config_rec(fname): + + """ + This function verifies config_rec file + + Parameters + ---------- + conf_info : str + configuration file + + Returns + ------- + True if configuration is correct, False otherwise + """ + if not os.path.isfile(fname): + print ('no configuration file ' + fname + ' found') + return False + + try: + config_map = ut.read_config(fname) + if config_map is None: + print ("can't read configuration file") + return False + except: + print ('Cannot parse ' + fname + ' configuration file. Check paranthesis and quotations.') + return False + + try: + data_dir = config_map.data_dir + if type(data_dir) != str: + print('data_dir parameter should be string') + return False + except AttributeError: + pass + except: + print ('data_dir parameter parsing error') + return False + + try: + save_dir = config_map.save_dir + if type(save_dir) != str: + print('save_dir parameter should be string') + return False + except AttributeError: + pass + except: + print ('save_dir parameter parsing error') + return False + + try: + cont = config_map.cont + if type(cont) != bool: + print ('cont parameter should be true or false') + return False + try: + continue_dir = config_map.continue_dir + if type(continue_dir) != str: + print('continue_dir parameter should be string') + return False + except AttributeError: + pass + except: + print('continue_dir parameter parsing error') + return False + except AttributeError: + pass + except: + print ('cont parameter parsing error') + return False + + try: + reconstructions = config_map.reconstructions + if type(reconstructions) != int: + print('reconstructions parameter should be int') + return False + except AttributeError: + pass + except: + print ('reconstructions parameter parsing error') + return False + + try: + device = config_map.device + if not ver_list_int('device', device): + return False + except AttributeError: + pass + except: + print ('device parameter parsing error') + return False + + try: + garbage_trigger = config_map.garbage_trigger + if not ver_list_int('garbage_trigger', garbage_trigger): + return False + except AttributeError: + pass + except: + print ('garbage_trigger parameter parsing error') + return False + + try: + algorithm_sequence = config_map.algorithm_sequence + if type(algorithm_sequence) != list: + print ('algorithm_sequence should be a list') + return False + for s in algorithm_sequence: + for i in range(len(s)): + # the first element in each sub-list is the repeat factor and should be int + if i== 0 and type(s[i]) != int: + print ('algorithm_sequence configuration error, the repeat factor should be int') + return False + if i > 0: + if type(s[i]) != list: + print ('algorithm_sequence configuration error, the sequence element should be a list') + return False + algorithm = s[i][0] + if type(algorithm) != str: + print ('algorithm_sequence configuration error, algorithm should be str') + return False + algorithm_options = ["ER", "HIO"] + if algorithm not in algorithm_options: + print ('algorithm_sequence configuration error, algorithm should be "ER" or "HIO"') + return False + algorithm_repeat = s[i][1] + if type(algorithm_repeat) != int: + print ('algorithm_sequence configuration error, algorithm repeat should be int') + return False + except AttributeError: + print ('missing mandatory algorithm_sequence parameter') + return False + except: + print ('algorithm_sequence parameter parsing error') + return False + + try: + beta = config_map.beta + if type(beta) != float: + print('beta parameter should be float') + return False + except AttributeError: + pass + except: + print ('beta parameter parsing error') + return False + + try: + generations = config_map.generations + if type(generations) != int: + print('generations parameter should be int') + return False + try: + ga_metrics = config_map.ga_metrics + if type(ga_metrics) != list: + print (ga_metrics + ' is not a list') + return False + metrics_options = ['chi', 'sharpness', 'summed_phase', 'area'] + for metric in ga_metrics: + if metric not in metrics_options: + print ("ga_metrics list can include only following strings: 'chi', 'sharpness', 'summed_phase', 'area'") + except AttributeError: + pass + except: + print('ga_metrics parameter parsing error') + return False + + try: + ga_breed_modes = config_map.ga_breed_modes + if type(ga_breed_modes) != list: + print (ga_breed_modes + ' is not a list') + return False + breed_options = ['sqrt_ab', 'max_all', 'Dhalf', 'Dhalf-best', 'dsqrt', 'pixel_switch',\ + 'b_pa', '2ab_a_b', '2a-b_pa', 'sqrt_ab_pa', 'sqrt_ab_pa_recip', 'sqrt_ab_recip',\ + 'max_ab', 'max_ab_pa', 'min_ab_pa', 'avg_ab', 'avg_ab_pa', 'sqrt_abg', + 'sqrt_abg_pa', 'max_abg','max_abg_pa', 'avg_abg', 'avg_abg_pa', 'avg_sqrt'] + for breed in ga_breed_modes: + if breed not in breed_options: + print ("ga_breed_modes list can include only following strings: 'sqrt_ab', 'max_all',\ + 'Dhalf', 'Dhalf-best', 'dsqrt', 'pixel_switch',\ + 'b_pa', '2ab_a_b', '2a-b_pa', 'sqrt_ab_pa', 'sqrt_ab_pa_recip', 'sqrt_ab_recip',\ + 'max_ab', 'max_ab_pa', 'min_ab_pa', 'avg_ab', 'avg_ab_pa', 'sqrt_abg',\ + 'sqrt_abg_pa', 'max_abg','max_abg_pa', 'avg_abg', 'avg_abg_pa', 'avg_sqrt'") + except AttributeError: + pass + except: + print('ga_breed_modes parameter parsing error') + return False + + try: + ga_cullings = config_map.ga_cullings + if not ver_list_int('ga_cullings', ga_cullings): + return False + except AttributeError: + pass + except: + print('ga_cullings parameter parsing error') + return False + + try: + ga_support_thresholds = config_map.ga_support_thresholds + if not ver_list_float('ga_support_thresholds', ga_support_thresholds): + return False + except AttributeError: + pass + except: + print('ga_support_thresholds parameter parsing error') + return False + + try: + ga_support_sigmas = config_map.ga_support_sigmas + if not ver_list_float('ga_support_sigmas', ga_support_sigmas): + return False + except AttributeError: + pass + except: + print('ga_support_sigmas parameter parsing error') + return False + + try: + ga_low_resolution_sigmas = config_map.ga_low_resolution_sigmas + if not ver_list_float('ga_low_resolution_sigmas', ga_low_resolution_sigmas): + return False + except AttributeError: + pass + except: + print('ga_low_resolution_sigmas parameter parsing error') + return False + except AttributeError: + pass + except: + print ('generations parameter parsing error') + return False + + + try: + twin_trigger = config_map.twin_trigger + if not ver_list_int('twin_trigger', twin_trigger): + return False + else: + try: + twin_halves = config_map.twin_halves + if not ver_list_float('twin_halves', twin_halves): + return False + except AttributeError: + pass + except: + print('twin_halves parameter parsing error') + return False + + except AttributeError: + pass + + try: + if not ver_list_int('amp_support_trigger', config_map.amp_support_trigger): + return False + else: + try: + support_type = config_map.support_type + if type(support_type) != str: + print ('support_type parameter should be string') + return False + if support_type != "GAUSS": + print ('support_type parameter can be configured "GAUSS"') + return False + except AttributeError: + pass + except: + print('support_type parameter parsing error') + return False + + try: + support_threshold = config_map.support_threshold + if type(support_threshold) != float: + print('support_threshold should be float') + return False + except AttributeError: + pass + except: + print('support_threshold parameter parsing error') + return False + + try: + support_sigma = config_map.support_sigma + if type(support_sigma) != float: + print('support_sigma should be float') + return False + except AttributeError: + pass + except: + print('support_sigma parameter parsing error') + return False + + try: + support_area = config_map.support_area + if type(support_area) != list: + print('support_area should be list') + return False + for e in support_area: + if type(e) != int and type(e) !=float: + print('support_area should be a list of int or float') + return False + except AttributeError: + pass + except: + print('support_area parameter parsing error') + return False + + except AttributeError: + pass + + try: + if not ver_list_int('phase_support_trigger', config_map.phase_support_trigger): + return False + else: + try: + phase_min = config_map.phase_min + if type(phase_min) != float: + print('phase_min should be float') + return False + except AttributeError: + pass + except: + print('phase_min parameter parsing error') + return False + + try: + phase_max = config_map.phase_max + if type(phase_max) != float: + print('phase_max should be float') + return False + except AttributeError: + pass + except: + print('phase_max parameter parsing error') + return False + + except AttributeError: + pass + + try: + if not ver_list_int('pcdi_trigger', config_map.pcdi_trigger): + return False + else: + try: + partial_coherence_type = config_map.partial_coherence_type + if type(partial_coherence_type) != str: + print ('partial_coherence_type parameter should be string') + return False + if partial_coherence_type != "LUCY": + print ('partial_coherence_type parameter can be configured "LUCY"') + return False + except AttributeError: + pass + except: + print('partial_coherence_type parameter parsing error') + return False + + try: + partial_coherence_iteration_num = config_map.partial_coherence_iteration_num + if type(partial_coherence_iteration_num) != int: + print('partial_coherence_iteration_num should be int') + return False + except AttributeError: + pass + except: + print('partial_coherence_iteration_num parameter parsing error') + return False + + try: + partial_coherence_normalize = config_map.partial_coherence_normalize + if type(partial_coherence_normalize) != bool: + print ('partial_coherence_normalize parameter should be true or false') + return False + except AttributeError: + pass + except: + print('partial_coherence_normalize parameter parsing error') + return False + + try: + partial_coherence_roi = config_map.partial_coherence_roi + if not ver_list_int('partial_coherence_roi', partial_coherence_roi): + return False + except AttributeError: + pass + except: + print("'partial_coherence_roi' parameter parsing error") + return False + + except AttributeError: + pass + + try: + if not ver_list_int('resolution_trigger', config_map.resolution_trigger): + return False + else: + try: + iter_res_sigma_range = config_map.iter_res_sigma_range + if not ver_list_float('iter_res_sigma_range', iter_res_sigma_range): + return False + except AttributeError: + pass + except: + print("'iter_res_sigma_range' parameter parsing error") + return False + + try: + iter_res_det_range = config_map.iter_res_det_range + if not ver_list_float('iter_res_det_range', iter_res_det_range): + return False + except AttributeError: + pass + except: + print("'iter_res_det_range' parameter parsing error") + return False + + except AttributeError: + pass + + try: + if not ver_list_int('average_trigger', config_map.average_trigger): + return False + except AttributeError: + pass + + return True + + +def ver_config_data(fname): + + """ + This function verifies config_data file + + Parameters + ---------- + conf_info : str + configuration file + + Returns + ------- + True if configuration is correct, False otherwise + """ + if not os.path.isfile(fname): + print ('no configuration file ' + fname + ' found') + return False + + try: + config_map = ut.read_config(fname) + if config_map is None: + print ("can't read configuration file") + return False + except: + print ('Cannot parse ' + fname + ' configuration file. Check paranthesis and quotations.') + return False + + try: + data_dir = config_map.data_dir + if type(data_dir) != str: + print('data_dir parameter should be string') + return False + except AttributeError: + pass + except: + print ('data_dir parameter parsing error') + return False + + try: + if not ver_list_int('adjust_dimensions', config_map.adjust_dimensions): + return False + except AttributeError: + pass + try: + if not ver_list_int('center_shift', config_map.center_shift): + return False + except AttributeError: + pass + try: + if not ver_list_int('binning', config_map.binning): + return False + except AttributeError: + pass + + try: + amp_threshold = config_map.amp_threshold + if type(amp_threshold) != float: + print('amp_threshold should be float') + return False + except AttributeError: + pass + except: + print('amp_threshold parameter parsing error') + return False + + try: + aliens = config_map.aliens + if type(aliens) != list: + print('aliens should be a list') + return False + for a in aliens: + if not ver_list_int('aliens', a): + return False + except AttributeError: + pass + except: + print('amp_threshold parameter parsing error') + return False + + return True + + +def ver_config_prep(fname): + + """ + This function verifies config_prep file + + Parameters + ---------- + conf_info : str + configuration file + + Returns + ------- + True if configuration is correct, False otherwise + """ + if not os.path.isfile(fname): + print ('no configuration file ' + fname + ' found') + return False + + try: + config_map = ut.read_config(fname) + if config_map is None: + print ("can't read configuration file") + return False + except: + print ('Cannot parse ' + fname + ' configuration file. Check paranthesis and quotations.') + return False + + try: + working_dir = config_map.working_dir + if type(working_dir) != str: + print('working_dir parameter should be string') + return False + except AttributeError: + print ('missing mandatory working_dir parameter') + return False + except: + print ('working_dir parameter parsing error') + return False + + try: + data_dir = config_map.data_dir + if type(data_dir) != str: + print('data_dir parameter should be string') + return False + except AttributeError: + pass + except: + print ('data_dir parameter parsing error') + return False + + try: + specfile = config_map.specfile + if type(specfile) != str: + print('specfile parameter should be string') + return False + except AttributeError: + pass + except: + print ('specfile parameter parsing error') + return False + + try: + darkfile = config_map.darkfile + if type(darkfile) != str: + print('darkfile parameter should be string') + return False + except AttributeError: + pass + except: + print ('darkfile parameter parsing error') + return False + + try: + whitefile = config_map.whitefile + if type(whitefile) != str: + print('whitefile parameter should be string') + return False + except AttributeError: + pass + except: + print ('whitefile parameter parsing error') + return False + + try: + if not ver_list_int('exclude_scans', config_map.exclude_scans): + return False + except AttributeError: + pass + + try: + min_files = config_map.min_files + if type(min_files) != int: + print('min_files should be int') + return False + except AttributeError: + pass + except: + print('min_files parameter parsing error') + return False + + try: + det_quad = config_map.det_quad + quad_options = [0,1,2,3,4] + if det_quad not in quad_options: + print('det_quad should be one of the following: 0, 1, 2, 3, 4') + return False + except AttributeError: + pass + except: + print('det_quad parameter parsing error') + return False + + try: + separate_scans = config_map.separate_scans + if type(separate_scans) != bool: + print('separate_scans parameter should be true or false') + return False + except AttributeError: + pass + except: + print('separate_scans parameter parsing error') + return False + + return True + + +def ver_config_disp(fname): + + """ + This function verifies config_disp file + + Parameters + ---------- + conf_info : str + configuration file + + Returns + ------- + True if configuration is correct, False otherwise + """ + if not os.path.isfile(fname): + print ('no configuration file ' + fname + ' found') + return False + + try: + config_map = ut.read_config(fname) + if config_map is None: + print ("can't read configuration file") + return False + except: + print ('Cannot parse ' + fname + ' configuration file. Check paranthesis and quotations.') + return False + + try: + crop = config_map.crop + if type(crop) != list: + print('crop should be list') + return False + for e in crop: + if type(e) != int and type(e) != float: + print('crop should be a list of int or float') + return False + except AttributeError: + pass + except: + print('crop parameter parsing error') + return False + + try: + specfile = config_map.specfile + if type(specfile) != str: + print('specfile parameter should be string') + return False + except AttributeError: + # if spec file not configured, the parameters will come from config + try: + energy = config_map.energy + if type(energy) != float: + print('energy should be float') + return False + except AttributeError: + pass + except: + print('energy parameter parsing error') + return False + + try: + delta = config_map.delta + if type(delta) != float: + print('delta should be float') + return False + except AttributeError: + pass + except: + print('delta parameter parsing error') + return False + + try: + gamma = config_map.gamma + if type(gamma) != float: + print('gamma should be float') + return False + except AttributeError: + pass + except: + print('gamma parameter parsing error') + return False + + try: + arm = config_map.arm + if type(arm) != float: + print('arm should be float') + return False + except AttributeError: + pass + except: + print('arm parameter parsing error') + return False + + try: + dth = config_map.dth + if type(dth) != float: + print('dth should be float') + return False + except AttributeError: + pass + except: + print('dth parameter parsing error') + return False + + try: + pixel = config_map.pixel + if type(pixel) != tuple and type(pixel) != list: + print('pixel should be tuple or list') + return False + if type(pixel[0]) != float or type(pixel[1]) != float: + print('pixel values should be float') + return False + except AttributeError: + pass + except: + print('pixel parameter parsing error') + return False + + except: + print ('specfile parameter parsing error') + return False + + return True From 98808788bcceb5c65395bfe44ec68a1ea208e0bd Mon Sep 17 00:00:00 2001 From: bfrosik Date: Fri, 11 Oct 2019 17:35:50 -0500 Subject: [PATCH 198/336] removed determining det quad --- reccdi/src_py/utilities/spec.py | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/reccdi/src_py/utilities/spec.py b/reccdi/src_py/utilities/spec.py index f21f1bd..cf69f2f 100644 --- a/reccdi/src_py/utilities/spec.py +++ b/reccdi/src_py/utilities/spec.py @@ -53,21 +53,9 @@ def get_det_from_spec(specfile, scan): det_area = ss.getheader_element('UIMR5').split() det_area1 = int(det_area[0]), int(det_area[1]) det_area2 = int(det_area[2]), int(det_area[3]) - if det_area1[0] == 0: - if det_area1[1] == 512: - quad = '0' - else: - if det_area2[0] == 0: - quad = '1' - else: - quad = '2' - else: - if det_area2[0] == 0: - quad = '3' - else: - quad = '4' - return det_area1, det_area2, quad + + return det_area1, det_area2 except: - return None, None, None + return None, None From 4b1b8f17cbaa4de2305e99015f0db4e45928a0c6 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Fri, 11 Oct 2019 17:37:04 -0500 Subject: [PATCH 199/336] changed tuples to lists in configuration files, added config with experiment info --- config | 9 +++++++ config_data | 22 ++++++++-------- config_prep | 20 ++++++--------- config_rec | 74 ++++++++++++++++++++++++++--------------------------- 4 files changed, 65 insertions(+), 60 deletions(-) create mode 100644 config diff --git a/config b/config new file mode 100644 index 0000000..7add4e7 --- /dev/null +++ b/config @@ -0,0 +1,9 @@ +// This configuration contains parameters defining the experiment +working_dir = "/local/bfrosik/cdi/test" + // working directory; the new experiment will + // be created in this directory +experiment_id = ab + // a string id + +scans = 2-7 + // a single number or a range defining scans, optional \ No newline at end of file diff --git a/config_data b/config_data index 0635875..fdac27a 100644 --- a/config_data +++ b/config_data @@ -1,9 +1,9 @@ // GENERAL -data_dir = "data" +// data_dir = "data" // directory where prepared data is saved, default "data" // PARAMETER FOR DATA PREPARATION -aliens = ((170,220,112,195,245,123), (50,96,10,60,110,20)) +aliens = [[170,220,112,195,245,123], [50,96,10,60,110,20]] // comment out aliens for no removal, otherwise input them as // aliens=[[x0,y0,z0,x1,y1,z1],[x2,y2,z2,x3,y3,z3]] // will remove two instances of aliens given by the pairs @@ -15,22 +15,22 @@ amp_threshold = 2.0 // min data threshold. Values below this are set to 0. The threshold is applied // after removing. -adjust_dimensions = (-13, -13, -65, -65, -65, -65) +adjust_dimensions = [-13, -13, -65, -65, -65, -65] // optional - // enter adjust dimensions tuple + // enter adjust dimensions list // If number is positive, the array will be padded. If negative, cropped. - // The parameters correspond to [x left, x right, y left, y right, z left, z right] + // The parameters correspond to (x left, x right, y left, y right, z left, z right) // The final dimensions will be adjusted up to the good number for the FFT which // also is compatible with opencl supported dimensions // powers of 2 or a*2^n, where a is 3, 5, or 9 -center_shift = (0,0,0) +center_shift = [0,0,0] // optional - // enter center shift tuple + // enter center shift list // the array maximum is centered before binning, and moved according to center_shift, - // (0,0,0) has no effect + // [0,0,0] has no effect -binning = (1,1,1) +binning = [1,1,1] // optional - // enter binning tuple - // defines binning values in respective dimensions, (1,1,1) has no effect + // enter binning list + // defines binning values in respective dimensions, [1,1,1] has no effect diff --git a/config_prep b/config_prep index 52023ba..4e7449e 100644 --- a/config_prep +++ b/config_prep @@ -1,12 +1,7 @@ -// This configuration contains parameters defining the data reading and parsing phase -working_dir = "/local/bfrosik/cdi/test" - // working directory will have a bin sub directory and new experiment will - // be created in this directory - data_dir = "/net/s34data/export/34idc-data/2019/Staff19-1/ADStaff19-1a" - // The directory with data. This directory will have several subdirectories - // each containing .tif data files. Each subdirectory represents separate - // scan and is numbered with the scan index + // The directory containing raw data. This directory will have several + // subdirectories each containing .tif data files. Each subdirectory + // represents separate scan and is numbered with the scan index specfile = "/net/s34data/export/34idc-data/2019/Staff19-1/Staff19-1a.spec" // a specfile captured during experiment @@ -17,8 +12,8 @@ darkfile = "/net/s34data/export/34idc-work/2019/dark.tif" whitefile = "/net/s34data/export/34idc-work/2019/CelaWhiteField.tif" // white file taken at the time of experiment -exclude_scans = (78,81) - // a tuple containing scan numbers that will be excluded from preparation +exclude_scans = [78,81] + // a list containing scan indexes that will be excluded from preparation min_files = 80 // only scans containing minimum of .tif files will be included @@ -33,7 +28,8 @@ det_quad = 1 // this information is typically read from spec file, // is required if not included in spec file or no spec file is given separate_scans = true - // in typical scenario the data from all scans in experiment are combined. + // in typical scenario the data from all scans in experiment are + // combined. // if specified as separate scans, each scan will be processed separately // and will have sub-experiment name containing scan index - // ex. "scan_9", where 9 is scan index \ No newline at end of file + // ex. "scan_9", where 9 is scan index diff --git a/config_rec b/config_rec index 5ba9922..fb732d2 100644 --- a/config_rec +++ b/config_rec @@ -6,18 +6,18 @@ // configurable parameters. // Trigger can be defined as a single iteration, or multiple iterations. // examples: -// (3) trigger at iteration 3 -// (20, 5) trigger starts at iteration 20, repeats every 5 iteration for the rest of run -// (20, 5, 40) trigger starts at iteration 20, repeats every 5 iteration until iteration 40 -// Triggers can also be a combination of any of the above, ex: ((4), (3, 7, 24), (6,20)) +// [3] trigger at iteration 3 +// [20, 5] trigger starts at iteration 20, repeats every 5 iteration for the rest of run +// [20, 5, 40] trigger starts at iteration 20, repeats every 5 iteration until iteration 40 +// Triggers can also be a combination of any of the above, ex: [[4], [3, 7, 24], [6,20]] // If a trigger is not defined, the feature is turned off. // Adding a new feature/ trigger is described in common.h header file. // GENERAL -data_dir = "data" +//data_dir = "data" // directory from which data is read -save_dir = "results" +//save_dir = "results" // directory where results of reconstruction are saved as npy files // if samples > 1, result from each thread will be stored in subdirectory 1,2,3 etc. @@ -29,22 +29,22 @@ continue_dir = "cont" // directory from which results are read for reconstruction continuation // if the directory contains subdirectories, a thread will start for each subdirectory -samples = 1 +reconstructions = 1 // number of reconstructions to start with // typically used when running genetic algorithm -device = (0,0) - // IDs of the target devices for each thread (sample). +device = [0,1] + // IDs of the target devices for each thread (reconstruction). // If not defined, it will default to -1 for the OS to select device -garbage_trigger = (10,.5) +garbage_trigger = [10,5] // ArrayFire memory management is not reliable, the way around is to call garbage // collection per defined number of iterations. Decrease this value if out of memory // error occurs -algorithm_sequence = ((2, ("ER",19), ("HIO", 10)), (1,("ER",20))) - // defines algorithm applied in each iteration during modulus projection by a sequence of tuples. - // The first number in a tuple is a repeat, followed by tuples of pairs, each +algorithm_sequence = [[3, ["ER",20], ["HIO", 180]], [1,["ER",20]]] + // defines algorithm applied in each iteration during modulus projection by a sequence of lists. + // The first number in a list is a repeat, followed by lists of pairs, each // pair defining algorithm and number of iterations to run the algorithm. beta = .9; @@ -53,49 +53,44 @@ beta = .9; // GENERATIc ALGORITHM generations = 1 // number of generations -ga_metrics = ("chi", "sharpness") - // defines which metric should be used to rank the reconstruction results (samples) +ga_metrics = ["chi", "sharpness"] + // defines which metric should be used to rank the reconstruction results // supported: 'chi', 'sharpness', 'summed_phase', 'area', ('TV') -ga_breed_modes = ("sqrt_ab", "Dhalf") +ga_breed_modes = ["sqrt_ab", "Dhalf"] // defines which breeding mode to use to populate new generation. If "none" // there is no breeding // supported: 'sqrt_ab', 'max_all', 'Dhalf', 'Dhalf-best', 'dsqrt', 'pixel_switch', // 'b_pa', '2ab_a_b', '2a-b_pa', 'sqrt_ab_pa', 'sqrt_ab_pa_recip', 'sqrt_ab_recip', - // 'max_ab', 'max_ab_pa', 'min_ab_pa', 'avg_ab', 'avg_ab_pa',= 'sqrt_abg', + // 'max_ab', 'max_ab_pa', 'min_ab_pa', 'avg_ab', 'avg_ab_pa', 'sqrt_abg', // 'sqrt_abg_pa', 'max_abg','max_abg_pa', 'avg_abg', 'avg_abg_pa', 'avg_sqrt' -ga_cullings = (2,1) +ga_cullings = [2,1] // defines how many worst samples to remove in breeding phase for each generation // defaults to 0 -ga_support_thresholds = (.15, .1) +ga_support_thresholds = [.15, .1] // the support is recalculated with this threshold after breeding phase // defaults to support threshold -ga_support_sigmas = (1.1, 1.0) +ga_support_sigmas = [1.1, 1.0] // the support is recalculated with this sigma after breeding phase // defaults to support sigma -ga_low_resolution_sigmas = (2.0, 1.5) +ga_low_resolution_sigmas = [2.0, 1.5] // list of sigmas that will be used in subsequent generations to calculate // Gauss (assuming algorithm is GAUSS) and apply it to the data // This determines low resolution generations number -ga_low_resolution_alg = "GAUSS" - // algorithm to use to apply resolution. Supported algorithms: - // GAUSS - - // TWIN // twin feature trims the image array at the current state by zeroing half of the array in each dimension. -twin_trigger = (2) +twin_trigger = [2] // twin defines at which iteration to cut half of the array(i.e. multiply by 0s), // Comment out, if don't want to apply twin. // when running GA applied only in first generation -twin_halves = (0, 0) +twin_halves = [0, 0] // defines which half of the array is zeroed out in x and y dimensions. // If 0, the first half in that dimension is zeroed out, otherwise, the second half. @@ -103,13 +98,13 @@ twin_halves = (0, 0) // Support area is an array that defines region in which the image is meaningful. This area is recalculated at the // trigger iteration. The calculation employ an algorithm defined here as support_type. -amp_support_trigger = (7, 5) +amp_support_trigger = [10, 5] // defines when to update support array using the parameters below. // Comment out, if support feature not used. support_type = "GAUSS"; support_threshold = 0.1; support_sigma = 1.0; -support_area = (.5,.5,.5) +support_area = [.5,.5,.5] // initial support area. If the values are fractional, the support area will be calculated // by multiplying by the data array dimensions. The support will be set to 1s to this // dimensions centered. @@ -118,7 +113,7 @@ support_area = (.5,.5,.5) // At the begginning iterations the support area is modified in respect to the phase. Support area will exclude points // that phase is outside of the defined bounds -phase_support_trigger = (0, 1, 45) +phase_support_trigger = [0, 1, 310] // defines when to update support array using the parameters below by applaying phase constrain. // Comment out, if phase constrain feature not used. // when running GA applied only in first generation @@ -129,14 +124,14 @@ phase_max = 1.57; // Partial coherence triggers recalculation of coherence array for the amplitudes in reciprocal space. // After first coherence array is determined, it is used for convolution in subsequent iteration. -pcdi_trigger = (16, 14) +pcdi_trigger = [50, 50] // defines when to update coherence using the parameters below. // Comment out, if pcdi feature not used. partial_coherence_type = "LUCY"; // partial coherence algorithm partial_coherence_iteration_num = 20; partial_coherence_normalize = true; -partial_coherence_roi = (32,32,32); +partial_coherence_roi = [32,32,32]; // coherence area. If the values are fractional, the coherence area will be calculated // by multiplying by the data array dimensions. @@ -148,17 +143,17 @@ partial_coherence_roi = (32,32,32); // The iter_res_det_range is similiary linespaced for the duration of low resolution iterations. The values are used // as sigmas to calculate Gaussian distribution and applied (multiplied) to data. -resolution_trigger = (0, 1, 40) +resolution_trigger = [0, 1, 320] // defines when to apply low resolution using the parameters below. // Comment out, if low resolution feature not used. // when running GA applied only in first generation -iter_res_sigma_range = (2.0, 1.0) +iter_res_sigma_range = [2.0] // used when applying low resolution to replace support sigma. // The sigmas are linespaced for low resolution iterations from first value to last. // If only one number given, the last sigma will default to support_sigma. -iter_res_det_range = (.7, 1.0) +iter_res_det_range = [.7] // used when applying low resolution data mask while iterating. // The det values are linespaced for low resolution iterations from first value to last. // The mask is gauss with sigma of linespaced det. If only one number given, @@ -168,6 +163,11 @@ iter_res_det_range = (.7, 1.0) // The amplitudes of the last several iterations are averaged. This trigger defines at which iteration the averaging // starts. -average_trigger = (-65, 1) +average_trigger = [-65, 1] // defines when to apply averaging. Negative start means it is offset from the last iteration // Comment out, if averaging not used. + +progress_trigger = [0, 20] + // defines when to print info on the console + // the info includes current iteration and error + From 3068c314f4d59e9ed2b206709cc56ead4597cf30 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Thu, 24 Oct 2019 13:28:40 -0500 Subject: [PATCH 200/336] Added configuration verification added load configuration of each tab added set experiment button change priority of config_disp parameters, the spec parsed parameters can be overridden by configured --- bin/cdi_window.py | 1258 +++++++++++++--------- config | 2 +- config_data | 14 +- config_disp | 18 +- config_prep | 10 +- config_rec | 52 +- reccdi/src_py/beamlines/aps_34id/prep.py | 2 +- reccdi/src_py/controller/data.py | 6 +- reccdi/src_py/run_scripts/run_disp.py | 62 +- reccdi/src_py/utilities/CXDVizNX.py | 53 +- reccdi/src_py/utilities/parse_ver.py | 234 ++-- reccdi/src_py/utilities/utils.py | 52 +- 12 files changed, 988 insertions(+), 775 deletions(-) diff --git a/bin/cdi_window.py b/bin/cdi_window.py index 47ce456..3486b1e 100644 --- a/bin/cdi_window.py +++ b/bin/cdi_window.py @@ -9,6 +9,7 @@ import reccdi.src_py.run_scripts.run_disp as run_dp import reccdi.src_py.utilities.utils as ut import reccdi.src_py.utilities.spec as spec +import reccdi.src_py.utilities.parse_ver as ver import importlib @@ -32,12 +33,20 @@ def select_dir(start_dir): return None +def msg_window(text): + msg = QMessageBox() + msg.setIcon(QMessageBox.Information) + msg.setText(text) + msg.setWindowTitle("Info") + msg.exec_() + + class cdi_gui(QWidget): def __init__(self, parent=None): super(cdi_gui, self).__init__(parent) - self.id = None - self.scan = None + self.exp_id = None self.experiment_dir = None + self.working_dir = None uplayout = QFormLayout() self.set_work_dir_button = QPushButton() @@ -46,14 +55,12 @@ def __init__(self, parent=None): uplayout.addRow("Experiment ID", self.Id_widget) self.scan_widget = QLineEdit() uplayout.addRow("scan(s)", self.scan_widget) - self.set_conf_from_button = QPushButton() - # self.separate_scans = QCheckBox() - # uplayout.addRow("separate scans", self.separate_scans) - # self.separate_scans.setChecked(False) - uplayout.addRow("Load conf from", self.set_conf_from_button) - self.run_button = QPushButton('run everything', self) - self.run_button.setStyleSheet("background-color:rgb(175,208,156)") - uplayout.addWidget(self.run_button) + # self.set_conf_from_button = QPushButton("Load conf from") + # self.set_conf_from_button.setStyleSheet("background-color:rgb(205,178,102)") + # uplayout.addRow(self.set_conf_from_button) + # self.create_exp_button = QPushButton('create experiment') + # self.create_exp_button.setStyleSheet("background-color:rgb(120,180,220)") + # uplayout.addRow(self.create_exp_button) vbox = QVBoxLayout() vbox.addLayout(uplayout) @@ -61,53 +68,103 @@ def __init__(self, parent=None): self.t = cdi_conf_tab(self) vbox.addWidget(self.t) + downlayout = QFormLayout() + self.set_conf_from_button = QPushButton("Load conf from") + self.set_conf_from_button.setStyleSheet("background-color:rgb(205,178,102)") + downlayout.addWidget(self.set_conf_from_button) + self.create_exp_button = QPushButton('set experiment') + self.create_exp_button.setStyleSheet("background-color:rgb(120,180,220)") + downlayout.addWidget(self.create_exp_button) + self.run_button = QPushButton('run everything', self) + self.run_button.setStyleSheet("background-color:rgb(175,208,156)") + downlayout.addWidget(self.run_button) + vbox.addLayout(downlayout) + self.setLayout(vbox) self.setWindowTitle("CDI Reconstruction") - self.init_work_dir() +# self.init_work_dir() self.set_conf_from_button.clicked.connect(self.load_conf_dir) self.set_work_dir_button.clicked.connect(self.set_working_dir) - self.Id_widget.textChanged.connect(self.set_id) - self.scan_widget.textChanged.connect(self.set_scan) self.run_button.clicked.connect(self.run_everything) + self.create_exp_button.clicked.connect(self.set_experiment) - def assure_experiment_dir(self): - if not os.path.exists(self.experiment_dir): - os.makedirs(self.experiment_dir) - experiment_conf_dir = os.path.join(self.experiment_dir, 'conf') - if not os.path.exists(experiment_conf_dir): - os.makedirs(experiment_conf_dir) + def run_everything(self): + if not self.is_exp_exists(): + msg_window('the experiment has not been created yet') + elif not self.is_exp_set(): + msg_window('the experiment has changed, pres "set experiment" button') + else: + self.t.prepare() + self.t.format_data() + self.t.reconstruction() + self.t.display() + + + def is_exp_exists(self): + if self.exp_id is None: + return False + if self.working_dir is None: + return False + exp_id = str(self.Id_widget.text()).strip() + scan = str(self.scan_widget.text()).strip() + if scan != '': + exp_id = exp_id + '_' + scan + if not os.path.exists(os.path.join(self.working_dir, exp_id)): + return False + return True + + + def is_exp_set(self): + if self.exp_id is None: + return False + if self.working_dir is None: + return False + if self.exp_id != str(self.Id_widget.text()).strip(): + return False + if self.scan != str(self.scan_widget.text()).strip(): + return False + return True def load_conf_dir(self): - # select starting directory - if self.experiment_dir is not None and \ - os.path.isfile(os.path.join(self.experiment_dir, 'conf', 'config_prep')): - load_dir = select_dir(os.path.join(self.experiment_dir, 'conf')) - elif os.path.isfile(os.path.join(os.getcwd(), 'conf', 'config_prep')): - load_dir = select_dir(os.path.join(os.getcwd(), 'conf')) - else: - load_dir = select_dir(self.working_dir) + load_dir = select_dir(os.getcwd()) + missing = 0 if load_dir is not None: - if not os.path.isfile(os.path.join(load_dir, 'config_prep')): - self.msg_window('missing config file in load directory') - return - elif not os.path.isfile(os.path.join(load_dir, 'config_data')): - self.msg_window('missing config_p in load directory') - return - elif not os.path.isfile(os.path.join(load_dir, 'config_rec')): - self.msg_window('missing config_rec file in load directory') - return - elif not os.path.isfile(os.path.join(load_dir, 'config_disp')): - self.msg_window('missing config_disp file in load directory') - return + # load the experiment info only if no id is entered + if os.path.isfile(os.path.join(load_dir, 'config')) and str(self.Id_widget.text()).strip() == '': + self.load_main(load_dir) + else: + missing += 1 + conf_prep_file = os.path.join(load_dir, 'config_prep') + if os.path.isfile(conf_prep_file): + self.t.load_prep_tab(conf_prep_file) + else: + missing += 1 + conf_data_file = os.path.join(load_dir, 'config_data') + if os.path.isfile(conf_data_file): + self.t.load_data_tab(conf_data_file) + else: + missing += 1 + conf_rec_file = os.path.join(load_dir, 'config_rec') + if os.path.isfile(conf_rec_file): + self.t.load_rec_tab(conf_rec_file) + else: + missing += 1 + conf_disp_file = os.path.join(load_dir, 'config_disp') + if os.path.isfile(conf_disp_file): + self.t.load_disp_tab(conf_disp_file) + else: + missing += 1 + if missing == 5: + msg_window('info: no configuration file found in load directory') else: self.set_conf_from_button.setStyleSheet("Text-align:left") self.set_conf_from_button.setText('config loaded') - self.init_from_conf(load_dir) + self.set_conf_from_button.setStyleSheet("background-color:rgb(205,178,102)") else: - self.msg_window('please select valid conf directory') + msg_window('please select valid conf directory') def set_working_dir(self): @@ -115,319 +172,135 @@ def set_working_dir(self): if self.working_dir is not None: self.set_work_dir_button.setStyleSheet("Text-align:left") self.set_work_dir_button.setText(self.working_dir) - self.set_experiment_dir() else: self.set_work_dir_button.setText('') - self.msg_window('please select valid working directory') + msg_window('please select valid working directory') return - def set_id(self): - self.id = str(self.Id_widget.text()) - self.set_experiment_dir() - - - def set_scan(self): - self.scan = str(self.scan_widget.text()) + def load_main(self, load_dir): + conf = os.path.join(load_dir, 'config') + if not ver.ver_config(conf): + msg_window('please check configuration file ' + conf + '. Cannot parse, ') + return try: - numeric = self.scan.replace('-', '0') - numeric_test = int(numeric) - except: - self.msg_window('enter numeric values for scan range') + conf_map = ut.read_config(conf) + except Exception: + msg_window('please check configuration file ' + conf + '. Cannot parse, ') return - self.set_experiment_dir() - - def set_experiment_dir(self): - if self.id is not None: - if self.scan is not None: + try: + self.working_dir = conf_map.working_dir + self.set_work_dir_button.setStyleSheet("Text-align:left") + self.set_work_dir_button.setText(self.working_dir) + except: + pass + try: + self.scan = conf_map.scan + self.scan_widget.setText(self.scan) + except: + self.scan = None + try: + self.id = conf_map.experiment_id + self.Id_widget.setText(self.id) + if self.scan != None: self.exp_id = self.id + '_' + self.scan else: self.exp_id = self.id self.experiment_dir = os.path.join(self.working_dir, self.exp_id) + except: + pass + if self.experiment_dir is not None: + # this shows default results directory in display tab self.t.results_dir = os.path.join(self.experiment_dir, 'results') self.t.result_dir_button.setStyleSheet("Text-align:left") self.t.result_dir_button.setText(self.t.results_dir) + self.update_rec_confis_choice() - def run_everything(self): - self.t.prepare() - self.t.format_data() - self.t.reconstruction() - self.t.display() - - - def init_work_dir(self): - self.working_dir = os.getcwd() - if os.path.isdir('conf'): - main_conf = os.path.join('conf', 'config_prep') - try: - conf_map = ut.read_config(main_conf) - self.working_dir = conf_map.working_dir - except: - pass - - self.set_work_dir_button.setStyleSheet("Text-align:left") - self.set_work_dir_button.setText(self.working_dir) - - - def init_from_conf(self, dir): - main_conf = os.path.join(dir, 'config_prep') - # if not os.path.isfile(main_conf): - # dir = os.path.join(dir, 'conf') - # main_conf = os.path.join(dir, 'config_prep') - if not os.path.isfile(main_conf): - self.msg_window('the directory does not contain config file, or conf/config_prep file') - return + def update_rec_confis_choice(self): + # this will update the configuration choices in reconstruction tab + # fill out the config_id choice bar by reading configuration files names + rec_ids = [] + for file in os.listdir(os.path.join(self.experiment_dir, 'conf')): + if file.endswith('_config_rec'): + rec_ids.append(file[0:len(file)-len('_config_rec')]) + if len(rec_ids) > 0: + self.t.rec_id.addItems(rec_ids) + self.t.rec_id.show() - # if experiment not set, get it from the load_dir - if self.experiment_dir is None: - exp_name = dir.split('/')[-2] - exp_name_parts = exp_name.split('_') - if len(exp_name_parts) == 1: - # the scan is optional, so in this case the experiment name has only id - self.id = exp_name - else: - self.scan = exp_name_parts[-1] - self.scan_widget.setText(self.scan) - self.id = exp_name[0:-len(self.scan)-1] - self.Id_widget.setText(self.id) -# self.set_experiment_dir() - # read the working directory from config_prep, update it in application - # the working directory gets only updated if the experiment is uploaded, - # not when the id is already set - try: - conf_map = ut.read_config(main_conf) - except Exception as e: - self.msg_window('please check configuration file ' + main_conf + '. Cannot parse, ' + str(e)) - return - try: - self.working_dir = conf_map.working_dir - self.set_work_dir_button.setStyleSheet("Text-align:left") - self.set_work_dir_button.setText(self.working_dir) - except: - pass + def assure_experiment_dir(self): + if not os.path.exists(self.experiment_dir): + os.makedirs(self.experiment_dir) + experiment_conf_dir = os.path.join(self.experiment_dir, 'conf') + if not os.path.exists(experiment_conf_dir): + os.makedirs(experiment_conf_dir) else: - try: - conf_map = ut.read_config(main_conf) - except Exception as e: - self.msg_window('please check configuration file ' + main_conf + '. Cannot parse, ' + str(e)) - return + self.update_rec_confis_choice() - # set the experiment directory - self.set_experiment_dir() - - # copy configuration files from chosen configuration directory - self.assure_experiment_dir() - dest = os.path.join(self.experiment_dir, 'conf') - if dir != dest: - shutil.copy(main_conf, dest) - conf_data = os.path.join(dir, 'config_data') - shutil.copy(conf_data, dest) - conf_rec = os.path.join(dir, 'config_rec') - shutil.copy(conf_rec, dest) - conf_rec = os.path.join(dir, 'config_disp') - shutil.copy(conf_rec, dest) - - try: - separate_scans = conf_map.separate_scans - if separate_scans: - self.t.separate_scans.setChecked(True) - except: - pass - try: - self.t.data_dir = conf_map.data_dir - self.t.data_dir_button.setStyleSheet("Text-align:left") - self.t.data_dir_button.setText(self.t.data_dir) - except: - self.t.data_dir = None - self.t.data_dir_button.setText('') - try: - self.t.specfile = conf_map.specfile - self.t.spec_file_button.setStyleSheet("Text-align:left") - self.t.spec_file_button.setText(self.t.specfile) - # set specfile also in display tab - self.t.spec_file_button1.setStyleSheet("Text-align:left") - self.t.spec_file_button1.setText(self.t.specfile) - except: - self.t.specfile = None - self.t.spec_file_button.setText('') - self.t.spec_file_button1.setText('') - try: - self.t.darkfile = conf_map.darkfile - self.t.dark_file_button.setStyleSheet("Text-align:left") - self.t.dark_file_button.setText(self.t.darkfile) - except: - self.t.darkfile = None - self.t.dark_file_button.setText('') - try: - self.t.whitefile = conf_map.whitefile - self.t.white_file_button.setStyleSheet("Text-align:left") - self.t.white_file_button.setText(self.t.whitefile) - except: - self.t.whitefile = None - self.t.white_file_button.setText('') - try: - self.t.min_files.setText(str(conf_map.min_files).replace(" ", "")) - except: - pass - try: - self.t.exclude_scans.setText(str(conf_map.exclude_scans).replace(" ", "")) - except: - pass - try: - self.t.det_quad.setText(str(conf_map.det_quad).replace(" ", "")) - except: - pass - # initialize "Data" tab - data_conf = os.path.join(dir, 'config_data') - if not os.path.isfile(data_conf): - self.msg_window('missing configuration file ' + data_conf) + def set_experiment(self): + self.id = str(self.Id_widget.text()).strip() + if self.id == '' or self.working_dir is None: + msg_window('id and working directory must be entered') return - try: - conf_map = ut.read_config(data_conf) - except Exception as e: - self.msg_window('please check configuration file ' + data_conf + '. Cannot parse, ' + str(e)) - return - try: - self.t.aliens.setText(str(conf_map.aliens).replace(" ", "")) - except AttributeError: - pass - try: - self.t.amp_threshold.setText(str(conf_map.amp_threshold).replace(" ", "")) - except AttributeError: - pass - try: - self.t.binning.setText(str(conf_map.binning).replace(" ", "")) - except AttributeError: - pass - try: - self.t.center_shift.setText(str(conf_map.center_shift).replace(" ", "")) - except AttributeError: - pass - try: - self.t.adjust_dimensions.setText(str(conf_map.adjust_dimensions).replace(" ", "")) - except AttributeError: - pass - - # initialize "Reconstruction" tab, pass True to indicate the first nit - self.init_rec_tab(True) - - # initialize "Display" tab - disp_conf = os.path.join(dir, 'config_disp') - if not os.path.isfile(disp_conf): - self.msg_window('missing configuration file ' + disp_conf) - return - try: - conf_map = ut.read_config(disp_conf) - except Exception as e: - self.msg_window('please check configuration file ' + disp_conf + '. Cannot parse, ' + str(e)) - return - try: - self.t.crop.setText(str(conf_map.crop).replace(" ", "")) - except AttributeError: - pass - try: - self.t.energy.setText(str(conf_map.energy).replace(" ", "")) - except AttributeError: - pass - try: - self.t.delta.setText(str(conf_map.delta).replace(" ", "")) - except AttributeError: - pass - try: - self.t.gamma.setText(str(conf_map.gamma).replace(" ", "")) - except AttributeError: - pass - try: - self.t.arm.setText(str(conf_map.arm).replace(" ", "")) - except AttributeError: - pass - try: - self.t.dth.setText(str(conf_map.dth).replace(" ", "")) - except AttributeError: - pass - try: - self.t.pixel.setText(str(conf_map.pixel).replace(" ", "")) - except AttributeError: - pass - try: - specfile = conf_map.specfile - self.t.specfile = specfile - self.t.spec_file_button1.setStyleSheet("Text-align:left") - self.t.spec_file_button1.setText(self.t.specfile) - if os.path.isfile(self.t.specfile): - self.t.parse_spec() - except AttributeError: - pass - + conf_map = {} - def init_rec_tab(self, first_init=False): - # find current configuration id and file - conf_dir = os.path.join(self.experiment_dir, 'conf') - if first_init: - rec_conf = os.path.join(conf_dir, 'config_rec') + self.scan = str(self.scan_widget.text()).strip() + if self.scan is not '': + scans = self.scan.split('-') + if len(scans) > 2: + msg_window('if entering scan or scan range, please enter numeric values, separated with "-" if range') + return + for sc in scans: + try: + numeric = int(sc) + except: + msg_window('if entering scan or scan range, please enter numeric values, separated with "-" if range') + return + conf_map['scan'] = '"' + self.scan + '"' + self.exp_id = self.id + '_' + self.scan else: - if self.t.old_conf_id == '': - rec_conf = os.path.join(conf_dir, 'config_rec') - else: - rec_conf = os.path.join(conf_dir, self.t.old_conf_id + '_config_rec') + self.exp_id = self.id + self.experiment_dir = os.path.join(self.working_dir, self.exp_id) + self.assure_experiment_dir() - if not os.path.isfile(rec_conf): - self.msg_window('missing configuration file ' + rec_conf) - return - try: - conf_map = ut.read_config(rec_conf) - except Exception as e: - self.msg_window('please check configuration file ' + rec_conf + '. Cannot parse, ' + str(e)) - return - try: - self.t.device.setText(str(conf_map.device).replace(" ", "")) - except AttributeError: - pass - try: - self.t.reconstructions.setText(str(conf_map.reconstructions).replace(" ", "")) - except AttributeError: - pass - try: - self.t.gc.setText(str(conf_map.garbage_trigger).replace(" ", "")) - except AttributeError: - pass - try: - self.t.alg_seq.setText(str(conf_map.algorithm_sequence).replace(" ", "")) - except AttributeError: - pass - try: - self.t.beta.setText(str(conf_map.beta).replace(" ", "")) - except AttributeError: - pass + # read the configurations from GUI and write to experiment config files + # save the main config + conf_map['working_dir'] = '"' + str(self.working_dir).strip() + '"' + conf_map['experiment_id'] = '"' + self.id + '"' + self.write_conf(conf_map, os.path.join(self.experiment_dir, 'conf'), 'config') - for feat_id in self.t.features.feature_dir: - self.t.features.feature_dir[feat_id].init_config(conf_map) + # save prep config + conf_map = self.t.get_prep_config() + if bool(conf_map): + self.write_conf(conf_map, os.path.join(self.experiment_dir, 'conf'), 'config_prep') - if first_init: - # fill out the config_id choice bar by reading configuration files names - rec_ids = [] - for file in os.listdir(conf_dir): - if file.endswith('rec') and file != 'config_rec': - rec_ids.append(file[0:len(file)-len('_config_rec')]) - self.t.rec_id.addItems(rec_ids) - self.t.rec_id.show() + # save data config + conf_map = self.t.get_data_config() + if bool(conf_map): + self.write_conf(conf_map, os.path.join(self.experiment_dir, 'conf'), 'config_data') + + # save rec config + conf_map = self.t.get_rec_config() + if bool(conf_map): + self.write_conf(conf_map, os.path.join(self.experiment_dir, 'conf'), 'config_rec') + # save disp config + conf_map = self.t.get_disp_config() + if bool(conf_map): + self.write_conf(conf_map, os.path.join(self.experiment_dir, 'conf'), 'config_disp') - def msg_window(self, text): - msg = QMessageBox() - msg.setIcon(QMessageBox.Information) - msg.setText(text) - msg.setWindowTitle("Info") - msg.exec_() + # this shows default results directory in display window + self.t.results_dir = os.path.join(self.experiment_dir, 'results') + self.t.result_dir_button.setStyleSheet("Text-align:left") + self.t.result_dir_button.setText(self.t.results_dir) def write_conf(self, conf_map, dir, file): - # create "temp" file first and then overrite existing configuration file + # create "temp" file first, verify it, and if ok, copy to a configuration file if not os.path.exists(dir): os.makedirs(dir) conf_file = os.path.join(dir, file) @@ -438,24 +311,35 @@ def write_conf(self, conf_map, dir, file): if len(value) > 0: f.write(key + ' = ' + conf_map[key] + '\n') f.close() - # verify that the temporary file can be parsed - try: - ut.read_config(temp_file) - shutil.move(temp_file, conf_file) - return True - except: - if file == 'config_prep': - tab = 'Data Prep' - elif file == 'config_data': - tab = 'Data' - elif file.endswith('config_rec'): - tab = 'Reconstruction' - elif file == 'config_disp': - tab = 'Display' - self.msg_window('please check the entries in the ' + tab + ' tab. Cannot save this format') - os.remove(temp_file) - return False + if file == 'config': + if not ver.ver_config(temp_file): + os.remove(temp_file) + msg_window('please check the entries in the main window. Cannot save this format') + return False + elif file == 'config_prep': + if not ver.ver_config_prep(temp_file): + os.remove(temp_file) + msg_window('please check the entries in the Data prep tab. Cannot save this format') + return False + elif file == 'config_data': + if not ver.ver_config_data(temp_file): + os.remove(temp_file) + msg_window('please check the entries in the Data tab. Cannot save this format') + return False + elif file.endswith('config_rec'): + if not ver.ver_config_rec(temp_file): + os.remove(temp_file) + msg_window('please check the entries in the Reconstruction tab. Cannot save this format') + return False + elif file == 'config_disp': + if not ver.ver_config_disp(temp_file): + os.remove(temp_file) + msg_window('please check the entries in the Display tab. Cannot save this format') + return False + # copy if verified + shutil.move(temp_file, conf_file) + return True class cdi_conf_tab(QTabWidget): def __init__(self, main_win, parent=None): @@ -511,9 +395,13 @@ def tab1UI(self): sub_layout = QFormLayout() self.load_prep(sub_layout) layout.addRow(sub_layout) + self.set_prep_conf_from_button = QPushButton("Load prep conf from") + self.set_prep_conf_from_button.setStyleSheet("background-color:rgb(205,178,102)") + #layout.addWidget(self.set_prep_conf_from_button) self.prep_button = QPushButton('prepare', self) self.prep_button.setStyleSheet("background-color:rgb(175,208,156)") - layout.addWidget(self.prep_button) + #layout.addWidget(self.prep_button) + layout.addRow(self.set_prep_conf_from_button, self.prep_button) self.tab1.setLayout(layout) self.prep_button.clicked.connect(self.prepare) @@ -523,7 +411,7 @@ def tab1UI(self): self.dark_file_button.clicked.connect(self.set_dark_file) self.white_file_button.clicked.connect(self.set_white_file) self.det_quad.textChanged.connect(lambda: self.set_overriden(self.det_quad)) - self.layout1 = layout + self.set_prep_conf_from_button.clicked.connect(self.load_prep_conf) def load_prep(self, layout): @@ -539,10 +427,9 @@ def load_prep(self, layout): layout.addRow("arguments (str/num)", self.args) self.script_button.clicked.connect(self.set_prep_script) - # elif str(self.prep.currentText()) == "34ID prep": elif str(self.prep.currentText()) == "copy from": self.ready_prep = QPushButton() - layout.addRow("select file", self.ready_prep) + layout.addRow("prep file", self.ready_prep) self.ready_prep.clicked.connect(self.set_prep_file) @@ -558,14 +445,19 @@ def tab2UI(self): layout.addRow("pad, crop", self.adjust_dimensions) self.binning = QLineEdit() layout.addRow("binning", self.binning) + self.set_data_conf_from_button = QPushButton("Load data conf from") + self.set_data_conf_from_button.setStyleSheet("background-color:rgb(205,178,102)") + #layout.addRow(self.set_data_conf_from_button) self.config_data_button = QPushButton('format data', self) self.config_data_button.setStyleSheet("background-color:rgb(175,208,156)") - layout.addWidget(self.config_data_button) + #layout.addRow(self.config_data_button) + layout.addRow(self.set_data_conf_from_button, self.config_data_button) self.tab2.setLayout(layout) # this will create config_data file and run data script # to generate data ready for reconstruction self.config_data_button.clicked.connect(self.format_data) + self.set_data_conf_from_button.clicked.connect(self.load_data_conf) def tab3UI(self): @@ -573,7 +465,7 @@ def tab3UI(self): self.old_conf_id = '' layout = QVBoxLayout() ulayout = QFormLayout() - llayout = QHBoxLayout() + mlayout = QHBoxLayout() self.add_conf_button = QPushButton('add configuration', self) ulayout.addWidget(self.add_conf_button) self.rec_id = QComboBox() @@ -603,12 +495,22 @@ def tab3UI(self): self.rec_default_button = QPushButton('set to defaults', self) ulayout.addWidget(self.rec_default_button) - layout.addLayout(ulayout) - layout.addLayout(llayout) - self.features = Features(self, llayout) + llayout = QFormLayout() + self.set_rec_conf_from_button = QPushButton("Load rec conf from") + self.set_rec_conf_from_button.setStyleSheet("background-color:rgb(205,178,102)") + #layout.addWidget(self.set_rec_conf_from_button) + self.features = Features(self, mlayout) self.config_rec_button = QPushButton('run reconstruction', self) self.config_rec_button.setStyleSheet("background-color:rgb(175,208,156)") - layout.addWidget(self.config_rec_button) + #layout.addWidget(self.config_rec_button) + llayout.addRow(self.set_rec_conf_from_button, self.config_rec_button) + spacer = QSpacerItem(0,3) + llayout.addItem(spacer) + + layout.addLayout(ulayout) + layout.addLayout(mlayout) + layout.addLayout(llayout) + self.tab3.setAutoFillBackground(True) self.tab3.setLayout(layout) @@ -617,6 +519,7 @@ def tab3UI(self): self.rec_default_button.clicked.connect(self.rec_default) self.add_conf_button.clicked.connect(self.add_rec_conf) self.rec_id.currentIndexChanged.connect(self.toggle_conf) + self.set_rec_conf_from_button.clicked.connect(self.load_rec_conf_dir) def toggle_cont(self, layout): @@ -647,18 +550,31 @@ def add_rec_conf(self): self.rec_id.setCurrentIndex(self.rec_id.count()-1) - def toggle_conf(self, i): + def toggle_conf(self): # save the configuration file before updating the incoming config if self.old_conf_id == '': conf_file = 'config_rec' else: conf_file = self.old_conf_id + '_config_rec' - # save - if not self.save_conf(conf_file): - self.msg_window('configuration was not saved') - self.old_conf_id = str(self.rec_id.currentText()) - # read from base configuration and display - self.main_win.init_rec_tab() + + conf_map = self.get_rec_config() + conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') + + if self.main_win.write_conf(conf_map, conf_dir, conf_file): + self.old_conf_id = str(self.rec_id.currentText()) + else: + msg_window('configuration ' + conf_file + ' was not saved') + # if a config file corresponding to the rec id exists, load it + # otherwise read from base configuration and load + if self.old_conf_id == '': + conf_file = os.path.join(conf_dir, 'config_rec') + else: + conf_file = os.path.join(conf_dir, self.old_conf_id + '_config_rec') + + if os.path.isfile(conf_file): + self.load_rec_tab(conf_file) + else: + self.load_rec_tab(os.path.join(conf_dir, 'config_rec')) def tab4UI(self): @@ -676,14 +592,18 @@ def tab4UI(self): self.gamma = QLineEdit() layout.addRow("gamma (deg)", self.gamma) self.arm = QLineEdit() - layout.addRow("arm (m)", self.arm) + layout.addRow("arm (mm)", self.arm) self.dth = QLineEdit() layout.addRow("dth (deg)", self.dth) self.pixel = QLineEdit() layout.addRow("pixel", self.pixel) + self.set_disp_conf_from_button = QPushButton("Load disp conf from") + self.set_disp_conf_from_button.setStyleSheet("background-color:rgb(205,178,102)") + #layout.addRow(self.set_disp_conf_from_button) self.config_disp = QPushButton('process display', self) self.config_disp.setStyleSheet("background-color:rgb(175,208,156)") - layout.addWidget(self.config_disp) + #layout.addRow(self.config_disp) + layout.addRow(self.set_disp_conf_from_button, self.config_disp) self.tab4.setLayout(layout) self.result_dir_button.clicked.connect(self.set_results_dir) @@ -695,9 +615,360 @@ def tab4UI(self): self.arm.textChanged.connect(lambda: self.set_overriden(self.arm)) self.dth.textChanged.connect(lambda: self.set_overriden(self.dth)) self.pixel.textChanged.connect(lambda: self.set_overriden(self.pixel)) + self.set_disp_conf_from_button.clicked.connect(self.load_disp_conf) self.layout4 = layout + def load_prep_tab(self, conf): + if not os.path.isfile(conf): + msg_window('info: the load directory does not contain config_prep file') + return + if not ver.ver_config_prep(conf): + msg_window('please check configuration file ' + conf + '. Cannot parse, ') + return + try: + conf_map = ut.read_config(conf) + except Exception as e: + msg_window('please check configuration file ' + conf + '. Cannot parse, ' + str(e)) + return + + try: + separate_scans = conf_map.separate_scans + if separate_scans: + self.separate_scans.setChecked(True) + except: + pass + try: + self.data_dir = conf_map.data_dir + self.data_dir_button.setStyleSheet("Text-align:left") + self.data_dir_button.setText(self.data_dir) + except: + self.data_dir = None + self.data_dir_button.setText('') + try: + self.specfile = conf_map.specfile + self.spec_file_button.setStyleSheet("Text-align:left") + self.spec_file_button.setText(self.specfile) + # set specfile also in display tab + self.spec_file_button1.setStyleSheet("Text-align:left") + self.spec_file_button1.setText(self.specfile) + except: + self.specfile = None + self.spec_file_button.setText('') + self.spec_file_button1.setText('') + try: + self.darkfile = conf_map.darkfile + self.dark_file_button.setStyleSheet("Text-align:left") + self.dark_file_button.setText(self.darkfile) + except: + self.darkfile = None + self.dark_file_button.setText('') + try: + self.whitefile = conf_map.whitefile + self.white_file_button.setStyleSheet("Text-align:left") + self.white_file_button.setText(self.whitefile) + except: + self.whitefile = None + self.white_file_button.setText('') + try: + self.min_files.setText(str(conf_map.min_files).replace(" ", "")) + except: + pass + try: + self.exclude_scans.setText(str(conf_map.exclude_scans).replace(" ", "")) + except: + pass + try: + self.det_quad.setText(str(conf_map.det_quad).replace(" ", "")) + except: + pass + prep_file = None + try: + prep_file = conf_map.prep_file + except: + pass + if prep_file is not None: + self.prep.setCurrentIndex(2) + self.ready_prep.setStyleSheet("Text-align:left") + self.ready_prep.setText(prep_file) + + + def load_data_tab(self, conf): + if not os.path.isfile(conf): + msg_window('info: the load directory does not contain config_data file') + return + if not ver.ver_config_data(conf): + msg_window('please check configuration file ' + conf + '. Cannot parse, ') + return + try: + conf_map = ut.read_config(conf) + except Exception as e: + msg_window('please check configuration file ' + conf + '. Cannot parse, ' + str(e)) + return + + try: + self.aliens.setText(str(conf_map.aliens).replace(" ", "")) + except AttributeError: + pass + try: + self.amp_threshold.setText(str(conf_map.amp_threshold).replace(" ", "")) + except AttributeError: + pass + try: + self.binning.setText(str(conf_map.binning).replace(" ", "")) + except AttributeError: + pass + try: + self.center_shift.setText(str(conf_map.center_shift).replace(" ", "")) + except AttributeError: + pass + try: + self.adjust_dimensions.setText(str(conf_map.adjust_dimensions).replace(" ", "")) + except AttributeError: + pass + + + def load_rec_tab(self, conf): + if not os.path.isfile(conf): + msg_window('info: the load directory does not contain config_rec file') + return + if not ver.ver_config_rec(conf): + msg_window('please check configuration file ' + conf + '. Cannot parse, ') + return + try: + conf_map = ut.read_config(conf) + except Exception as e: + msg_window('please check configuration file ' + conf + '. Cannot parse, ' + str(e)) + return + + try: + self.device.setText(str(conf_map.device).replace(" ", "")) + except AttributeError: + pass + try: + self.reconstructions.setText(str(conf_map.reconstructions).replace(" ", "")) + except AttributeError: + pass + try: + self.gc.setText(str(conf_map.garbage_trigger).replace(" ", "")) + except AttributeError: + pass + try: + self.alg_seq.setText(str(conf_map.algorithm_sequence).replace(" ", "")) + except AttributeError: + pass + try: + self.beta.setText(str(conf_map.beta).replace(" ", "")) + except AttributeError: + pass + + for feat_id in self.features.feature_dir: + self.features.feature_dir[feat_id].init_config(conf_map) + + + def load_disp_tab(self, conf): + if not os.path.isfile(conf): + msg_window('info: the load directory does not contain config_disp file') + return + if not ver.ver_config_data(conf): + msg_window('please check configuration file ' + conf + '. Cannot parse, ') + return + try: + conf_map = ut.read_config(conf) + except Exception as e: + msg_window('please check configuration file ' + conf + '. Cannot parse, ' + str(e)) + return + + try: + specfile = conf_map.specfile + self.specfile = specfile + self.spec_file_button1.setStyleSheet("Text-align:left") + self.spec_file_button1.setText(self.specfile) + if os.path.isfile(self.specfile): + self.parse_spec() + except AttributeError: + pass + # if parameters are configured, override the readingsfrom spec file + try: + self.crop.setText(str(conf_map.crop).replace(" ", "")) + except AttributeError: + pass + try: + self.energy.setText(str(conf_map.energy).replace(" ", "")) + self.energy.setStyleSheet('color: black') + except AttributeError: + pass + try: + self.delta.setText(str(conf_map.delta).replace(" ", "")) + self.delta.setStyleSheet('color: black') + except AttributeError: + pass + try: + self.gamma.setText(str(conf_map.gamma).replace(" ", "")) + self.gamma.setStyleSheet('color: black') + except AttributeError: + pass + try: + self.arm.setText(str(conf_map.arm).replace(" ", "")) + self.arm.setStyleSheet('color: black') + except AttributeError: + pass + try: + self.dth.setText(str(conf_map.dth).replace(" ", "")) + self.dth.setStyleSheet('color: black') + except AttributeError: + pass + try: + self.pixel.setText(str(conf_map.pixel).replace(" ", "")) + self.pixel.setStyleSheet('color: black') + except AttributeError: + pass + + + def get_prep_config(self): + conf_map = {} + if self.data_dir is not None: + conf_map['data_dir'] = '"' + str(self.data_dir).strip() + '"' + if self.specfile is not None: + conf_map['specfile'] = '"' + str(self.specfile).strip() + '"' + if self.darkfile is not None: + conf_map['darkfile'] = '"' + str(self.darkfile).strip() + '"' + if self.whitefile is not None: + conf_map['whitefile'] = '"' + str(self.whitefile).strip() + '"' + if self.separate_scans.isChecked(): + conf_map['separate_scans'] = 'true' + if len(self.min_files.text()) > 0: + min_files = str(self.min_files.text()) + conf_map['min_files'] = min_files + if len(self.exclude_scans.text()) > 0: + conf_map['exclude_scans'] = str(self.exclude_scans.text()).replace('\n','') + if len(self.det_quad.text()) > 0: + det_quad = str(self.det_quad.text()) + conf_map['det_quad'] = det_quad + try: + if str(self.ready_prep.text()) != '': + conf_map['prep_file'] = '"' + str(self.prep_file) + '"' + except: + pass + + return conf_map + + + def get_data_config(self): + conf_map = {} + if len(self.aliens.text()) > 0: + conf_map['aliens'] = str(self.aliens.text()).replace('\n', '') + if len(self.amp_threshold.text()) > 0: + conf_map['amp_threshold'] = str(self.amp_threshold.text()) + else: + msg_window('amplitude threshold not defined. Quiting operation.') + return + if len(self.binning.text()) > 0: + conf_map['binning'] = str(self.binning.text()).replace('\n', '') + if len(self.center_shift.text()) > 0: + conf_map['center_shift'] = str(self.center_shift.text()).replace('\n', '') + if len(self.adjust_dimensions.text()) > 0: + conf_map['adjust_dimensions'] = str(self.adjust_dimensions.text()).replace('\n', '') + + return conf_map + + + def get_rec_config(self): + conf_map = {} + if len(self.reconstructions.text()) > 0: + conf_map['reconstructions'] = str(self.reconstructions.text()) + if len(self.device.text()) > 0: + conf_map['device'] = str(self.device.text()).replace('\n','') + if len(self.gc.text()) > 0: + conf_map['garbage_trigger'] = str(self.gc.text()).replace('\n','') + if len(self.alg_seq.text()) > 0: + conf_map['algorithm_sequence'] = str(self.alg_seq.text()).replace('\n','') + if len(self.beta.text()) > 0: + conf_map['beta'] = str(self.beta.text()) + if self.cont.isChecked(): + conf_map['continue_dir'] = str(self.cont_dir.text()) + + for feat_id in self.features.feature_dir: + self.features.feature_dir[feat_id].add_config(conf_map) + + return conf_map + + + def get_disp_config(self): + conf_map = {} + if self.specfile is not None: + conf_map['specfile'] = '"' + str(self.specfile) + '"' + if len(self.energy.text()) > 0: + conf_map['energy'] = str(self.energy.text()) + if len(self.delta.text()) > 0: + conf_map['delta'] = str(self.delta.text()) + if len(self.gamma.text()) > 0: + conf_map['gamma'] = str(self.gamma.text()) + if len(self.arm.text()) > 0: + conf_map['arm'] = str(self.arm.text()) + if len(self.dth.text()) > 0: + conf_map['dth'] = str(self.dth.text()) + if len(self.pixel.text()) > 0: + conf_map['pixel'] = str(self.pixel.text()).replace('\n', '') + if len(self.crop.text()) > 0: + conf_map['crop'] = str(self.crop.text()).replace('\n', '') + + return conf_map + + + def load_prep_conf(self): + prep_file = select_file(os.getcwd()) + if prep_file is not None: + self.load_prep_tab(prep_file) + self.set_prep_conf_from_button.setStyleSheet("Text-align:left") + self.set_prep_conf_from_button.setText('config loaded') + self.set_prep_conf_from_button.setStyleSheet("background-color:rgb(205,178,102)") + else: + msg_window('please select valid prep config file') + + + def load_data_conf(self): + data_file = select_file(os.getcwd()) + if data_file is not None: + self.load_data_tab(data_file) + self.set_data_conf_from_button.setStyleSheet("Text-align:left") + self.set_data_conf_from_button.setText('config loaded') + self.set_data_conf_from_button.setStyleSheet("background-color:rgb(205,178,102)") + # # save data config + # conf_map = self.get_data_config() + # self.main_win.write_conf(conf_map, os.path.join(self.main_win.experiment_dir, 'conf'), 'config_data') + else: + msg_window('please select valid data config file') + + def load_rec_conf_dir(self): + rec_file = select_file(os.getcwd()) + if rec_file is not None: + self.load_rec_tab(rec_file) + self.set_rec_conf_from_button.setStyleSheet("Text-align:left") + self.set_rec_conf_from_button.setText('config loaded') + self.set_rec_conf_from_button.setStyleSheet("background-color:rgb(205,178,102)") + # # save rec config + # conf_map = self.get_rec_config() + # self.main_win.write_conf(conf_map, os.path.join(self.main_win.experiment_dir, 'conf'), 'config_rec') + else: + msg_window('please select valid rec config file') + + + def load_disp_conf(self): + disp_file = select_file(os.getcwd()) + if disp_file is not None: + self.load_disp_tab(disp_file) + self.set_disp_conf_from_button.setStyleSheet("Text-align:left") + self.set_disp_conf_from_button.setText('config loaded') + self.set_disp_conf_from_button.setStyleSheet("background-color:rgb(205,178,102)") + self.parse_spec() + # # save disp config + # conf_map = self.get_disp_config() + # self.main_win.write_conf(conf_map, os.path.join(self.main_win.experiment_dir, 'conf'), 'config_disp') + else: + msg_window('please select valid disp config file') + + def set_overriden(self, item): item.setStyleSheet('color: black') @@ -763,30 +1034,14 @@ def set_data_dir(self): def set_prep_file(self): - prep_file = select_file(self.main_win.working_dir) - if prep_file is not None: - selected = str(prep_file) + self.prep_file = select_file(self.main_win.working_dir) + if self.prep_file is not None: + selected = str(self.prep_file) if not selected.endswith('tif') and not selected.endswith('tiff'): - self.msg_window("the file extension must be tif or tiff") + msg_window("the file extension must be tif or tiff") return self.ready_prep.setStyleSheet("Text-align:left") - self.ready_prep.setText(prep_file) - # save the file as experiment prep file - prep_dir = os.path.join(self.main_win.experiment_dir, 'prep') - if not os.path.exists(prep_dir): - os.makedirs(prep_dir) - exp_prep_file = os.path.join(prep_dir, 'prep_data.tif') - shutil.copyfile(selected, exp_prep_file) - # save config_prep - conf_map = {} - if self.main_win.working_dir is not None: - conf_map['working_dir'] = '"' + str(self.main_win.working_dir) + '"' - else: - self.msg_window("working_dir not defined") - return - conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') - conf_file = os.path.join(conf_dir, 'config_prep') - self.main_win.write_conf(conf_map, conf_dir, 'config_prep') + self.ready_prep.setText(self.prep_file) else: self.ready_prep.setText('') @@ -804,47 +1059,24 @@ def set_prep_script(self): def prepare(self): - if self.main_win.id is None: - self.msg_window('enter Reconstruction ID and scan') + if not self.main_win.is_exp_exists(): + msg_window('the experiment has not been created yet') + elif not self.main_win.is_exp_set(): + msg_window('the experiment has changed, pres "set experiment" button') else: - # prep_dir = os.path.join(self.main_win.experiment_dir, 'prep') - # if not os.path.exists(prep_dir): - # os.makedirs(prep_dir) - conf_map = {} - if self.main_win.working_dir is not None: - conf_map['working_dir'] = '"' + str(self.main_win.working_dir) + '"' - else: - self.msg_window("working_dir not defined") - return - if len(self.min_files.text()) > 0: - min_files = str(self.min_files.text()) - conf_map['min_files'] = min_files - if len(self.exclude_scans.text()) > 0: - conf_map['exclude_scans'] = str(self.exclude_scans.text()).replace('\n','') - if len(self.det_quad.text()) > 0: - det_quad = str(self.det_quad.text()) - conf_map['det_quad'] = det_quad - if self.separate_scans.isChecked(): - conf_map['separate_scans'] = 'true' + conf_map = self.get_prep_config() if str(self.prep.currentText()) == "custom": self.prepare_custom(conf_map) elif str(self.prep.currentText()) == "34ID prep": self.prepare_34id(conf_map) + elif str(self.prep.currentText()) == "copy from": + self.prepare_copy(conf_map) def prepare_custom(self, conf_map): - if self.data_dir is not None: - conf_map['data_dir'] = '"' + str(self.data_dir) + '"' - if self.specfile is not None: - conf_map['specfile'] = '"' + str(self.specfile) + '"' - if self.darkfile is not None: - conf_map['darkfile'] = '"' + str(self.darkfile) + '"' - if self.whitefile is not None: - conf_map['whitefile'] = '"' + str(self.whitefile) + '"' - # determine script directory and script name if self.script is None: - self.msg_window("script not defined") + msg_window("script not defined") return full_script = str(self.script) script_info = full_script.split('/') @@ -853,7 +1085,7 @@ def prepare_custom(self, conf_map): script = script[0 : -3] func = str(self.prep_exec.text()) if len(func) == 0: - self.msg_window("function not defined") + msg_window("function not defined") return current_dir = os.getcwd() @@ -894,7 +1126,7 @@ def prepare_custom(self, conf_map): try: prep_data = f(*args) except Exception as e: - self.msg_window('custom script failed ' + str(e)) + msg_window('custom script failed ' + str(e)) return if prep_data is not None: tif_file = os.path.join(self.main_win.experiment_dir, 'prep', 'prep_data.tif') @@ -911,27 +1143,7 @@ def prepare_34id(self, conf_map): for i in range(len(scan_range)): scan_range[i] = int(scan_range[i]) except: - self.msg_window('enter numeric values for scan range') - return - - if self.main_win.working_dir is None or \ - self.main_win.id is None or\ - scan is None or \ - self.data_dir is None or \ - self.specfile is None and len(self.det_quad.text()) == 0 : - self.msg_window('enter all parameters: working_dir, id, scan, data_dir, specfile or detector quad') - return - - if self.data_dir is not None: - conf_map['data_dir'] = '"' + str(self.data_dir) + '"' - if self.specfile is not None: - conf_map['specfile'] = '"' + str(self.specfile) + '"' - if self.darkfile is not None: - conf_map['darkfile'] = '"' + str(self.darkfile) + '"' - if self.whitefile is not None: - conf_map['whitefile'] = '"' + str(self.whitefile) + '"' - if self.separate_scans.isChecked(): - conf_map['separate_scans'] = 'true' + pass conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') conf_file = os.path.join(conf_dir, 'config_prep') @@ -939,92 +1151,89 @@ def prepare_34id(self, conf_map): f = getattr(mod, 'prepare') f(self.main_win.experiment_dir, scan_range, conf_file) - #scripts.run_34id_prepare.prepare(self.main_win.working_dir, self.main_win.exp_id, scan_range, self.data_dir, self.specfile, self.darkfile, self.whitefile) + + def prepare_copy(self, conf_map): + # save the file as experiment prep file + prep_dir = os.path.join(self.main_win.experiment_dir, 'prep') + if not os.path.exists(prep_dir): + os.makedirs(prep_dir) + exp_prep_file = os.path.join(prep_dir, 'prep_data.tif') + shutil.copyfile(self.prep_file, exp_prep_file) + # save config_prep + conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') + self.main_win.write_conf(conf_map, conf_dir, 'config_prep') def format_data(self): - if os.path.isfile(os.path.join(self.main_win.experiment_dir, 'prep','prep_data.tif'))\ - or self.separate_scans.isChecked(): - conf_map = {} - if len(self.aliens.text()) > 0: - conf_map['aliens'] = str(self.aliens.text()).replace('\n','') - if len(self.amp_threshold.text()) > 0: - conf_map['amp_threshold'] = str(self.amp_threshold.text()) - else: - self.msg_window('amplitude threshold not defined. Quiting operation.') - return - if len(self.binning.text()) > 0: - conf_map['binning'] = str(self.binning.text()).replace('\n','') - if len(self.center_shift.text()) > 0: - conf_map['center_shift'] = str(self.center_shift.text()).replace('\n','') - if len(self.adjust_dimensions.text()) > 0: - conf_map['adjust_dimensions'] = str(self.adjust_dimensions.text()).replace('\n','') - - conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') - if self.main_win.write_conf(conf_map, conf_dir, 'config_data'): - run_dt.data(self.main_win.experiment_dir) + if not self.main_win.is_exp_exists(): + msg_window('the experiment has not been created yet') + elif not self.main_win.is_exp_set(): + msg_window('the experiment has changed, pres "set experiment" button') else: - self.msg_window('Please, run data preparation in previous tab to activate this function') - - - def msg_window(self, text): - msg = QMessageBox() - msg.setIcon(QMessageBox.Information) - msg.setText(text) - msg.setWindowTitle("Info") - msg.exec_() + if os.path.isfile(os.path.join(self.main_win.experiment_dir, 'prep','prep_data.tif'))\ + or self.separate_scans.isChecked(): + conf_map = self.get_data_config() + conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') + if self.main_win.write_conf(conf_map, conf_dir, 'config_data'): + run_dt.data(self.main_win.experiment_dir) + else: + msg_window('Please, run data preparation in previous tab to activate this function') - def save_conf(self, config_file): - conf_map = {} - conf_map['reconstructions'] = str(self.reconstructions.text()) - conf_map['device'] = str(self.device.text()).replace('\n','') - conf_map['garbage_trigger'] = str(self.gc.text()).replace('\n','') - conf_map['algorithm_sequence'] = str(self.alg_seq.text()).replace('\n','') - conf_map['beta'] = str(self.beta.text()) - if self.cont.isChecked(): - conf_map['continue_dir'] = str(self.cont_dir.text()) - - for feat_id in self.features.feature_dir: - self.features.feature_dir[feat_id].add_config(conf_map) - - #self.create_config('config_rec', conf_map) - conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') - return self.main_win.write_conf(conf_map, conf_dir, config_file) + def reconstruction(self): + if not self.main_win.is_exp_exists(): + msg_window('the experiment has not been created yet') + elif not self.main_win.is_exp_set(): + msg_window('the experiment has changed, pres "set experiment" button') + else: + if os.path.isfile(os.path.join(self.main_win.experiment_dir, 'data', 'data.tif'))\ + or self.separate_scans.isChecked(): + # find out which configuration should be saved + if self.old_conf_id == '': + conf_file = 'config_rec' + conf_id = None + else: + conf_file = self.old_conf_id + '_config_rec' + conf_id = self.old_conf_id + conf_map = self.get_rec_config() + conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') - def reconstruction(self): - if os.path.isfile(os.path.join(self.main_win.experiment_dir, 'data', 'data.tif'))\ - or self.separate_scans.isChecked(): - # find out which configuration should be saved - if self.old_conf_id == '': - conf_file = 'config_rec' - conf_id = None + if self.main_win.write_conf(conf_map, conf_dir, conf_file): + run_rc.reconstruction(str(self.proc.currentText()), self.main_win.experiment_dir, conf_id) else: - conf_file = self.old_conf_id + '_config_rec' - conf_id = self.old_conf_id - - if self.save_conf(conf_file): - run_rc.reconstruction(str(self.proc.currentText()), self.main_win.experiment_dir, conf_id) - else: - self.msg_window('Please, run format data in previous tab to activate this function') + msg_window('Please, run format data in previous tab to activate this function') def set_results_dir(self): - self.results_dir = os.path.join(self.main_win.experiment_dir, 'results') - self.results_dir = select_dir(self.results_dir) - if self.results_dir is not None: - if self.results_dir.endswith('results'): - self.result_dir_button.setStyleSheet("Text-align:left") - self.result_dir_button.setText(self.results_dir) + if self.main_win.is_exp_exists(): + self.results_dir = os.path.join(self.main_win.experiment_dir, 'results') + self.results_dir = select_dir(self.results_dir) + if self.results_dir is not None: + if self.results_dir.endswith('results'): + self.result_dir_button.setStyleSheet("Text-align:left") + self.result_dir_button.setText(self.results_dir) + else: + msg_window('Please, select directory ending with "results"') + self.results_dir = None else: - self.msg_window('Please, select directory ending with "results"') - self.results_dir = None + self.result_dir_button.setText('') else: - self.result_dir_button.setText('') + msg_window('the experiment has not been created yet') def display(self): + if not self.main_win.is_exp_exists(): + msg_window('the experiment has not been created yet') + return + if not self.main_win.is_exp_set(): + msg_window('the experiment has changed, pres "set experiment" button') + return + # check if the results directory exists + res_dir = os.path.join(self.main_win.experiment_dir, 'results') + if not (os.path.isfile(os.path.join(res_dir, 'image.npy')) or self.separate_scans.isChecked()): + msg_window('Please, run reconstruction in previous tab to activate this function') + return if (self.specfile is None or not os.path.isfile(self.specfile)) and \ (len(self.energy.text()) == 0 or \ len(self.delta.text()) == 0 or \ @@ -1032,53 +1241,30 @@ def display(self): len(self.arm.text()) == 0 or \ len(self.dth.text()) == 0 or \ len(self.pixel.text()) == 0): - self.msg_window('Please, enter spec file or all detector parameters') + msg_window('Please, enter spec file or all detector parameters') return - res_dir = os.path.join(self.main_win.experiment_dir, 'results') - if os.path.isfile(os.path.join(res_dir, 'image.npy')) or \ - os.path.isfile(os.path.join(res_dir, '0', 'image.npy')) or \ - os.path.isfile(os.path.join(res_dir, 'g_0', '0', 'image.npy')) or \ - self.separate_scans.isChecked(): - conf_map = {} - if self.specfile is not None: - conf_map['specfile'] = '"' + str(self.specfile) + '"' - if len(self.energy.text()) > 0: - conf_map['energy'] = str(self.energy.text()) - if len(self.delta.text()) > 0: - conf_map['delta'] = str(self.delta.text()) - if len(self.gamma.text()) > 0: - conf_map['gamma'] = str(self.gamma.text()) - if len(self.arm.text()) > 0: - conf_map['arm'] = str(self.arm.text()) - if len(self.dth.text()) > 0: - conf_map['dth'] = str(self.dth.text()) - if len(self.pixel.text()) > 0: - conf_map['pixel'] = str(self.pixel.text()).replace('\n','') - if len(self.crop.text()) > 0: - conf_map['crop'] = str(self.crop.text()).replace('\n','') - - conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') - if self.main_win.write_conf(conf_map, conf_dir, 'config_disp'): - if self.results_dir is None: + conf_map = self.get_disp_config() + + conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') + if self.main_win.write_conf(conf_map, conf_dir, 'config_disp'): + if self.results_dir is None: + run_dp.to_vtk(self.main_win.experiment_dir) + else: + dir = str(self.results_dir).split('/')[-1] + if dir == 'results': run_dp.to_vtk(self.main_win.experiment_dir) else: - dir = str(self.results_dir).split('/')[-1] - if dir == 'results': - run_dp.to_vtk(self.main_win.experiment_dir) - else: - run_dp.to_vtk(self.main_win.experiment_dir, dir[0:-len('_results')]) - else: - self.msg_window('Please, run reconstruction in previous tab to activate this function') + run_dp.to_vtk(self.main_win.experiment_dir, dir[0:-len('_results')]) def rec_default(self): if self.main_win.working_dir is None or self.main_win.id is None or \ len(self.main_win.working_dir) == 0 or len(self.main_win.id) == 0: - self.msg_window('Working Directory or Reconstruction ID not configured') + msg_window('Working Directory or Reconstruction ID not configured') else: self.reconstructions.setText('1') - self.device.setText('(3)') + self.device.setText('(0,1)') self.gc.setText('(1000)') self.alg_seq.setText('((3,("ER",20),("HIO",180)),(1,("ER",20)))') self.beta.setText('.9') diff --git a/config b/config index 7add4e7..45d24be 100644 --- a/config +++ b/config @@ -5,5 +5,5 @@ working_dir = "/local/bfrosik/cdi/test" experiment_id = ab // a string id -scans = 2-7 +scan = 2-7 // a single number or a range defining scans, optional \ No newline at end of file diff --git a/config_data b/config_data index fdac27a..911f7d4 100644 --- a/config_data +++ b/config_data @@ -3,9 +3,9 @@ // directory where prepared data is saved, default "data" // PARAMETER FOR DATA PREPARATION -aliens = [[170,220,112,195,245,123], [50,96,10,60,110,20]] +aliens = ((170,220,112,195,245,123), (50,96,10,60,110,20)) // comment out aliens for no removal, otherwise input them as - // aliens=[[x0,y0,z0,x1,y1,z1],[x2,y2,z2,x3,y3,z3]] + // aliens=((x0,y0,z0,x1,y1,z1),(x2,y2,z2,x3,y3,z3)) // will remove two instances of aliens given by the pairs // #0 and #1 and another given by #2,#3. Accepts as // many as you like. @@ -15,7 +15,7 @@ amp_threshold = 2.0 // min data threshold. Values below this are set to 0. The threshold is applied // after removing. -adjust_dimensions = [-13, -13, -65, -65, -65, -65] +adjust_dimensions = (-13, -13, -65, -65, -65, -65) // optional // enter adjust dimensions list // If number is positive, the array will be padded. If negative, cropped. @@ -24,13 +24,13 @@ adjust_dimensions = [-13, -13, -65, -65, -65, -65] // also is compatible with opencl supported dimensions // powers of 2 or a*2^n, where a is 3, 5, or 9 -center_shift = [0,0,0] +center_shift = (0,0,0) // optional // enter center shift list // the array maximum is centered before binning, and moved according to center_shift, - // [0,0,0] has no effect + // (0,0,0) has no effect -binning = [1,1,1] +binning = (1,1,1) // optional // enter binning list - // defines binning values in respective dimensions, [1,1,1] has no effect + // defines binning values in respective dimensions, (1,1,1) has no effect diff --git a/config_disp b/config_disp index a77918b..e1537a6 100644 --- a/config_disp +++ b/config_disp @@ -1,17 +1,21 @@ // PARAMETERS FOR VISUALISATION +// typically the parameters will be parsed from spec file +specfile = "/net/s34data/export/34idc-data/2019/Staff19-3/Staff19-3d.spec" + +// the parsed parameters will be overridden if they are configured // wavelength -energy = .13933; +energy = .13933 // delta (degrees) -delta = 30.1; +delta = 30.1 // gamma (degrees) -gamma = 14.0; -// camera distance (m) -arm=0.6350; +gamma = 14.0 +// camera distance (mm) +arm=0.6350 // angular step size -dth=0.000174532925199; +dth=0.000174532925199 // detector pixel sixe -pixel = (55.0e-6, 55.0e-6); +pixel = (55.0e-6, 55.0e-6) // size to crop the image array //crop = (120,120,120) diff --git a/config_prep b/config_prep index 4e7449e..04b4bc9 100644 --- a/config_prep +++ b/config_prep @@ -12,13 +12,13 @@ darkfile = "/net/s34data/export/34idc-work/2019/dark.tif" whitefile = "/net/s34data/export/34idc-work/2019/CelaWhiteField.tif" // white file taken at the time of experiment -exclude_scans = [78,81] +exclude_scans = (78,81) // a list containing scan indexes that will be excluded from preparation min_files = 80 // only scans containing minimum of .tif files will be included -det_quad = 1 +// det_quad = 1 // defines which detector quad was used during experiment. // 0: all four quads // 1: lower left @@ -27,9 +27,13 @@ det_quad = 1 // 4: top right // this information is typically read from spec file, // is required if not included in spec file or no spec file is given -separate_scans = true +separate_scans = false // in typical scenario the data from all scans in experiment are // combined. // if specified as separate scans, each scan will be processed separately // and will have sub-experiment name containing scan index // ex. "scan_9", where 9 is scan index + +// prep_file = "/net/s34data/export/34idc-work/2019/test/a_9/prep/prep_data.tiff" + // tif file that has been already read (prepared) + // this parameter is relevant when using GUI \ No newline at end of file diff --git a/config_rec b/config_rec index fb732d2..66996cd 100644 --- a/config_rec +++ b/config_rec @@ -6,10 +6,10 @@ // configurable parameters. // Trigger can be defined as a single iteration, or multiple iterations. // examples: -// [3] trigger at iteration 3 -// [20, 5] trigger starts at iteration 20, repeats every 5 iteration for the rest of run -// [20, 5, 40] trigger starts at iteration 20, repeats every 5 iteration until iteration 40 -// Triggers can also be a combination of any of the above, ex: [[4], [3, 7, 24], [6,20]] +// (3) trigger at iteration 3 +// (20, 5) trigger starts at iteration 20, repeats every 5 iteration for the rest of run +// (20, 5, 40) trigger starts at iteration 20, repeats every 5 iteration until iteration 40 +// Triggers can also be a combination of any of the above, ex: ((4), (3, 7, 24), (6,20)) // If a trigger is not defined, the feature is turned off. // Adding a new feature/ trigger is described in common.h header file. @@ -25,7 +25,7 @@ cont = false // only applied if generations equals 1, or not defined // if true, the reconstruction start with previous results stored in continue_dir -continue_dir = "cont" +// continue_dir = "cont" // directory from which results are read for reconstruction continuation // if the directory contains subdirectories, a thread will start for each subdirectory @@ -33,16 +33,16 @@ reconstructions = 1 // number of reconstructions to start with // typically used when running genetic algorithm -device = [0,1] +device = (0,1) // IDs of the target devices for each thread (reconstruction). // If not defined, it will default to -1 for the OS to select device -garbage_trigger = [10,5] +garbage_trigger = (10,5) // ArrayFire memory management is not reliable, the way around is to call garbage // collection per defined number of iterations. Decrease this value if out of memory // error occurs -algorithm_sequence = [[3, ["ER",20], ["HIO", 180]], [1,["ER",20]]] +algorithm_sequence = ((3, ("ER",20), ("HIO", 180)), (1,("ER",20))) // defines algorithm applied in each iteration during modulus projection by a sequence of lists. // The first number in a list is a repeat, followed by lists of pairs, each // pair defining algorithm and number of iterations to run the algorithm. @@ -53,11 +53,11 @@ beta = .9; // GENERATIc ALGORITHM generations = 1 // number of generations -ga_metrics = ["chi", "sharpness"] +ga_metrics = ("chi", "sharpness") // defines which metric should be used to rank the reconstruction results // supported: 'chi', 'sharpness', 'summed_phase', 'area', ('TV') -ga_breed_modes = ["sqrt_ab", "Dhalf"] +ga_breed_modes = ("sqrt_ab", "Dhalf") // defines which breeding mode to use to populate new generation. If "none" // there is no breeding // supported: 'sqrt_ab', 'max_all', 'Dhalf', 'Dhalf-best', 'dsqrt', 'pixel_switch', @@ -65,19 +65,19 @@ ga_breed_modes = ["sqrt_ab", "Dhalf"] // 'max_ab', 'max_ab_pa', 'min_ab_pa', 'avg_ab', 'avg_ab_pa', 'sqrt_abg', // 'sqrt_abg_pa', 'max_abg','max_abg_pa', 'avg_abg', 'avg_abg_pa', 'avg_sqrt' -ga_cullings = [2,1] +// ga_cullings = (2,1) // defines how many worst samples to remove in breeding phase for each generation // defaults to 0 -ga_support_thresholds = [.15, .1] +ga_support_thresholds = (.15, .1) // the support is recalculated with this threshold after breeding phase // defaults to support threshold -ga_support_sigmas = [1.1, 1.0] +ga_support_sigmas = (1.1, 1.0) // the support is recalculated with this sigma after breeding phase // defaults to support sigma -ga_low_resolution_sigmas = [2.0, 1.5] +// ga_low_resolution_sigmas = (2.0, 1.5) // list of sigmas that will be used in subsequent generations to calculate // Gauss (assuming algorithm is GAUSS) and apply it to the data // This determines low resolution generations number @@ -85,12 +85,12 @@ ga_low_resolution_sigmas = [2.0, 1.5] // TWIN // twin feature trims the image array at the current state by zeroing half of the array in each dimension. -twin_trigger = [2] +twin_trigger = (2) // twin defines at which iteration to cut half of the array(i.e. multiply by 0s), // Comment out, if don't want to apply twin. // when running GA applied only in first generation -twin_halves = [0, 0] +twin_halves = (0, 0) // defines which half of the array is zeroed out in x and y dimensions. // If 0, the first half in that dimension is zeroed out, otherwise, the second half. @@ -98,13 +98,13 @@ twin_halves = [0, 0] // Support area is an array that defines region in which the image is meaningful. This area is recalculated at the // trigger iteration. The calculation employ an algorithm defined here as support_type. -amp_support_trigger = [10, 5] +amp_support_trigger = (10, 1) // defines when to update support array using the parameters below. // Comment out, if support feature not used. support_type = "GAUSS"; support_threshold = 0.1; support_sigma = 1.0; -support_area = [.5,.5,.5] +support_area = (.5,.5,.5) // initial support area. If the values are fractional, the support area will be calculated // by multiplying by the data array dimensions. The support will be set to 1s to this // dimensions centered. @@ -113,7 +113,7 @@ support_area = [.5,.5,.5] // At the begginning iterations the support area is modified in respect to the phase. Support area will exclude points // that phase is outside of the defined bounds -phase_support_trigger = [0, 1, 310] +phase_support_trigger = (0, 1, 310) // defines when to update support array using the parameters below by applaying phase constrain. // Comment out, if phase constrain feature not used. // when running GA applied only in first generation @@ -124,14 +124,14 @@ phase_max = 1.57; // Partial coherence triggers recalculation of coherence array for the amplitudes in reciprocal space. // After first coherence array is determined, it is used for convolution in subsequent iteration. -pcdi_trigger = [50, 50] +pcdi_trigger = (50, 50) // defines when to update coherence using the parameters below. // Comment out, if pcdi feature not used. partial_coherence_type = "LUCY"; // partial coherence algorithm partial_coherence_iteration_num = 20; partial_coherence_normalize = true; -partial_coherence_roi = [32,32,32]; +partial_coherence_roi = (32,32,32); // coherence area. If the values are fractional, the coherence area will be calculated // by multiplying by the data array dimensions. @@ -143,17 +143,17 @@ partial_coherence_roi = [32,32,32]; // The iter_res_det_range is similiary linespaced for the duration of low resolution iterations. The values are used // as sigmas to calculate Gaussian distribution and applied (multiplied) to data. -resolution_trigger = [0, 1, 320] +resolution_trigger = (0, 1, 320) // defines when to apply low resolution using the parameters below. // Comment out, if low resolution feature not used. // when running GA applied only in first generation -iter_res_sigma_range = [2.0] +iter_res_sigma_range = (2.0) // used when applying low resolution to replace support sigma. // The sigmas are linespaced for low resolution iterations from first value to last. // If only one number given, the last sigma will default to support_sigma. -iter_res_det_range = [.7] +iter_res_det_range = (.7) // used when applying low resolution data mask while iterating. // The det values are linespaced for low resolution iterations from first value to last. // The mask is gauss with sigma of linespaced det. If only one number given, @@ -163,11 +163,11 @@ iter_res_det_range = [.7] // The amplitudes of the last several iterations are averaged. This trigger defines at which iteration the averaging // starts. -average_trigger = [-65, 1] +average_trigger = (-65, 1) // defines when to apply averaging. Negative start means it is offset from the last iteration // Comment out, if averaging not used. -progress_trigger = [0, 20] +progress_trigger = (0, 20) // defines when to print info on the console // the info includes current iteration and error diff --git a/reccdi/src_py/beamlines/aps_34id/prep.py b/reccdi/src_py/beamlines/aps_34id/prep.py index 97fd07e..d6ddd0c 100644 --- a/reccdi/src_py/beamlines/aps_34id/prep.py +++ b/reccdi/src_py/beamlines/aps_34id/prep.py @@ -267,7 +267,7 @@ def prepare(experiment_dir, scans, conf_file, *args): print('the detector quad can be configured as digt from 0 to 4') return except Exception as e: - print('neither spec file or detector quad is configured') + print('spec file or scan is not configured, and detector quad is not configured') return try: diff --git a/reccdi/src_py/controller/data.py b/reccdi/src_py/controller/data.py index c43d2e6..652022d 100644 --- a/reccdi/src_py/controller/data.py +++ b/reccdi/src_py/controller/data.py @@ -131,13 +131,17 @@ def prep(fname, conf_info): return # zero out the noise - prep_data = np.where(data < amp_threshold, 0, data) + prep_data = np.where(data <= amp_threshold, 0, data) # square root data prep_data = np.sqrt(prep_data) try: crops_pads = config_map.adjust_dimensions + # the adjust_dimention parameter list holds adjustment in each direction. Append 0s, if shorter + if len(crops_pads) < 6: + for _ in range (6 - len(crops_pads)): + crops_pads.append(0) except AttributeError: # the size still has to be adjusted to the opencl supported dimension crops_pads = (0, 0, 0, 0, 0, 0) diff --git a/reccdi/src_py/run_scripts/run_disp.py b/reccdi/src_py/run_scripts/run_disp.py index d056841..d870b70 100755 --- a/reccdi/src_py/run_scripts/run_disp.py +++ b/reccdi/src_py/run_scripts/run_disp.py @@ -13,7 +13,7 @@ def save_vtk(res_dir, conf, last_scan): imagefile = os.path.join(res_dir, 'image.npy') image = np.load(imagefile) except: - print ('no "image.npy" file in the results directory') + # print ('no "image.npy" file in the results directory') return try: @@ -44,10 +44,9 @@ def save_vtk(res_dir, conf, last_scan): def save_dir_tree(save_dir, conf, last_scan): - save_vtk(save_dir, conf, last_scan) + if os.path.isfile(os.path.join(save_dir, 'image.npy')) : + save_vtk(save_dir, conf, last_scan) for sub in os.listdir(save_dir): - if not sub.endswith('results'): - continue subdir = os.path.join(save_dir, sub) if os.path.isdir(subdir): save_vtk(subdir, conf, last_scan) @@ -65,44 +64,17 @@ def add_res_dirs(dir, dirs): dirs.append(os.path.join(dir, 'results')) return dirs - if os.path.isdir(experiment_dir): - #first check if the experiment name contains scan - if len(experiment_dir.split('_')) == 1: - # no scan in the name - last_scan = None - else: - scan = experiment_dir.split("-")[-1] - try: - last_scan = int(scan) - except: - last_scan = int(scan.split("_")[-1]) - conf = os.path.join(experiment_dir, 'conf', 'config_disp') - - # verify configuration file - if not ver.ver_config_disp(conf): - return - - if not os.path.isfile(conf): - # try to get spec file from experiment's prep phase - main_conf = os.path.join(experiment_dir, 'conf', 'config') - if os.path.isfile(main_conf): - main_config_map = ut.read_config(main_conf) - try: - specfile = main_config_map.specfile - # create config_disp with specfile definition - f = open(conf, 'r+') - f.write('specfile = "' + specfile + '"') - f.close() - except: - print ("Missing config_disp file and can't find spec file in experiment config") - return - else: - print ("Missing config_disp file and can't find spec file in experiment config") - return - else: + if not os.path.isdir(experiment_dir): print("Please provide a valid experiment directory") return + conf_dir = os.path.join(experiment_dir, 'conf') + conf = os.path.join(conf_dir, 'config_disp') + + # verify configuration file + if not ver.ver_config_disp(conf): + return + try: config_map = ut.read_config(conf) if config_map is None: @@ -123,7 +95,7 @@ def add_res_dirs(dir, dirs): f.close() # read binning info from config_data file in the conf directory - conf_data = os.path.join(experiment_dir, 'conf', 'config_data') + conf_data = os.path.join(conf_dir, 'config_data') binning_info = None with open(conf_data, 'r') as f: lines = f.readlines() @@ -145,6 +117,16 @@ def add_res_dirs(dir, dirs): except AttributeError: pass + # get last scan from main config file + last_scan = None + try: + exp_conf_map = ut.read_config(os.path.join(conf_dir, 'config')) + scan = exp_conf_map.scan + last_scan = scan.split('-')[-1] + last_scan = int(last_scan) + except: + pass + for dir in os.listdir(experiment_dir): if dir.startswith('scan'): res_dirs = add_res_dirs(os.path.join(experiment_dir, dir), res_dirs) diff --git a/reccdi/src_py/utilities/CXDVizNX.py b/reccdi/src_py/utilities/CXDVizNX.py index cebb889..f4375d7 100644 --- a/reccdi/src_py/utilities/CXDVizNX.py +++ b/reccdi/src_py/utilities/CXDVizNX.py @@ -54,32 +54,33 @@ def __init__(self, config, last_scan): pixel = pixel.split(',') pixel[0], pixel[1] = float(pixel[0]), float(pixel[1]) except Exception as e: - # print (str(e)) - try: - energy = config_map.energy - self.lamda = 12.398 / energy / 10 - except AttributeError: - print ('lamda not defined') - try: - self.delta = config_map.delta * deg2rad - except AttributeError: - print ('delta not defined') - try: - self.gamma = config_map.gamma * deg2rad - except AttributeError: - print ('gamma not defined') - try: - self.dth = config_map.dth * deg2rad - except AttributeError: - print ('dth not defined') - try: - self.arm = config_map.arm / 1000 - except AttributeError: - print ('arm not defined') - try: - pixel = config_map.pixel - except AttributeError: - print ('pixel not defined') + pass + # override the parsed parameters with entries in config file + try: + energy = config_map.energy + self.lamda = 12.398 / energy / 10 + except AttributeError: + pass + try: + self.delta = config_map.delta * deg2rad + except AttributeError: + pass + try: + self.gamma = config_map.gamma * deg2rad + except AttributeError: + pass + try: + self.dth = config_map.dth * deg2rad + except AttributeError: + pass + try: + self.arm = config_map.arm / 1000 + except AttributeError: + pass + try: + pixel = config_map.pixel + except AttributeError: + pass try: self.binning = [] diff --git a/reccdi/src_py/utilities/parse_ver.py b/reccdi/src_py/utilities/parse_ver.py index 0d22085..bb030a7 100644 --- a/reccdi/src_py/utilities/parse_ver.py +++ b/reccdi/src_py/utilities/parse_ver.py @@ -17,7 +17,7 @@ def ver_list_int(param_name, param_value): - if type(param_value) != list: + if not issubclass(type(param_value), list): print (param_name + ' is not a list') return False for e in param_value: @@ -28,7 +28,7 @@ def ver_list_int(param_name, param_value): def ver_list_float(param_name, param_value): - if type(param_value) != list: + if not issubclass(type(param_value), list): print (param_name + ' is not a list') return False for e in param_value: @@ -38,6 +38,69 @@ def ver_list_float(param_name, param_value): return True +def ver_config(fname): + + """ + This function verifies config file + + Parameters + ---------- + conf_info : str + configuration file + + Returns + ------- + True if configuration is correct, False otherwise + """ + if not os.path.isfile(fname): + print ('no configuration file ' + fname + ' found') + return False + + try: + config_map = ut.read_config(fname) + if config_map is None: + print ("can't read configuration file") + return False + except: + print ('Cannot parse ' + fname + ' configuration file. Check paranthesis and quotations.') + return False + + try: + working_dir = config_map.working_dir + if type(working_dir) != str: + print('working_dir parameter should be string') + return False + except AttributeError: + pass + except: + print ('working_dir parameter parsing error') + return False + + try: + experiment_id = config_map.experiment_id + if type(experiment_id) != str: + print('experiment_id parameter should be string') + return False + except AttributeError: + pass + except: + print ('experiment_id parameter parsing error') + return False + + try: + scan = config_map.scan + if type(scan) != str: + print('scan parameter should be string') + return False + except AttributeError: + pass + except: + print ('scan parameter parsing error') + return False + + return True + + def ver_config_rec(fname): """ @@ -141,7 +204,7 @@ def ver_config_rec(fname): try: algorithm_sequence = config_map.algorithm_sequence - if type(algorithm_sequence) != list: + if not issubclass(type(algorithm_sequence), list): print ('algorithm_sequence should be a list') return False for s in algorithm_sequence: @@ -151,7 +214,7 @@ def ver_config_rec(fname): print ('algorithm_sequence configuration error, the repeat factor should be int') return False if i > 0: - if type(s[i]) != list: + if not issubclass(type(s[i]), list): print ('algorithm_sequence configuration error, the sequence element should be a list') return False algorithm = s[i][0] @@ -191,7 +254,7 @@ def ver_config_rec(fname): return False try: ga_metrics = config_map.ga_metrics - if type(ga_metrics) != list: + if not issubclass(type(ga_metrics), list): print (ga_metrics + ' is not a list') return False metrics_options = ['chi', 'sharpness', 'summed_phase', 'area'] @@ -206,7 +269,7 @@ def ver_config_rec(fname): try: ga_breed_modes = config_map.ga_breed_modes - if type(ga_breed_modes) != list: + if not issubclass(type(ga_breed_modes), list): print (ga_breed_modes + ' is not a list') return False breed_options = ['sqrt_ab', 'max_all', 'Dhalf', 'Dhalf-best', 'dsqrt', 'pixel_switch',\ @@ -279,7 +342,7 @@ def ver_config_rec(fname): else: try: twin_halves = config_map.twin_halves - if not ver_list_float('twin_halves', twin_halves): + if not ver_list_int('twin_halves', twin_halves): return False except AttributeError: pass @@ -332,7 +395,7 @@ def ver_config_rec(fname): try: support_area = config_map.support_area - if type(support_area) != list: + if not issubclass(type(support_area), list): print('support_area should be list') return False for e in support_area: @@ -462,7 +525,13 @@ def ver_config_rec(fname): return False except AttributeError: pass - + + try: + if not ver_list_int('progress_trigger', config_map.progress_trigger): + return False + except AttributeError: + pass + return True @@ -505,7 +574,7 @@ def ver_config_data(fname): return False try: - if not ver_list_int('adjust_dimensions', config_map.adjust_dimensions): + if not ver_list_int('pad_crop', config_map.adjust_dimensions): return False except AttributeError: pass @@ -522,7 +591,7 @@ def ver_config_data(fname): try: amp_threshold = config_map.amp_threshold - if type(amp_threshold) != float: + if type(amp_threshold) != float and type(amp_threshold) != int: print('amp_threshold should be float') return False except AttributeError: @@ -533,12 +602,17 @@ def ver_config_data(fname): try: aliens = config_map.aliens - if type(aliens) != list: - print('aliens should be a list') + if not issubclass(type(aliens), list): + print('aliens should be a list of aliens(lists)') return False for a in aliens: + if not issubclass(type(a), list): + print ('aliens should be a list of aliens(lists)') + return False if not ver_list_int('aliens', a): return False + if (len(a) < 6): + print('each alien is defined by list of six int') except AttributeError: pass except: @@ -575,18 +649,6 @@ def ver_config_prep(fname): print ('Cannot parse ' + fname + ' configuration file. Check paranthesis and quotations.') return False - try: - working_dir = config_map.working_dir - if type(working_dir) != str: - print('working_dir parameter should be string') - return False - except AttributeError: - print ('missing mandatory working_dir parameter') - return False - except: - print ('working_dir parameter parsing error') - return False - try: data_dir = config_map.data_dir if type(data_dir) != str: @@ -703,7 +765,7 @@ def ver_config_disp(fname): try: crop = config_map.crop - if type(crop) != list: + if not issubclass(type(crop), list): print('crop should be list') return False for e in crop: @@ -722,78 +784,78 @@ def ver_config_disp(fname): print('specfile parameter should be string') return False except AttributeError: - # if spec file not configured, the parameters will come from config - try: - energy = config_map.energy - if type(energy) != float: - print('energy should be float') - return False - except AttributeError: - pass - except: - print('energy parameter parsing error') - return False + pass + except: + print ('specfile parameter parsing error') + return False - try: - delta = config_map.delta - if type(delta) != float: - print('delta should be float') - return False - except AttributeError: - pass - except: - print('delta parameter parsing error') + try: + energy = config_map.energy + if type(energy) != float: + print('energy should be float') return False + except AttributeError: + pass + except: + print('energy parameter parsing error') + return False - try: - gamma = config_map.gamma - if type(gamma) != float: - print('gamma should be float') - return False - except AttributeError: - pass - except: - print('gamma parameter parsing error') + try: + delta = config_map.delta + if type(delta) != float: + print('delta should be float') return False + except AttributeError: + pass + except: + print('delta parameter parsing error') + return False - try: - arm = config_map.arm - if type(arm) != float: - print('arm should be float') - return False - except AttributeError: - pass - except: - print('arm parameter parsing error') + try: + gamma = config_map.gamma + if type(gamma) != float: + print('gamma should be float') return False + except AttributeError: + pass + except: + print('gamma parameter parsing error') + return False - try: - dth = config_map.dth - if type(dth) != float: - print('dth should be float') - return False - except AttributeError: - pass - except: - print('dth parameter parsing error') + try: + arm = config_map.arm + if type(arm) != float: + print('arm should be float') return False + except AttributeError: + pass + except: + print('arm parameter parsing error') + return False - try: - pixel = config_map.pixel - if type(pixel) != tuple and type(pixel) != list: - print('pixel should be tuple or list') - return False - if type(pixel[0]) != float or type(pixel[1]) != float: - print('pixel values should be float') - return False - except AttributeError: - pass - except: - print('pixel parameter parsing error') + try: + dth = config_map.dth + if type(dth) != float: + print('dth should be float') return False + except AttributeError: + pass + except: + print('dth parameter parsing error') + return False + try: + pixel = config_map.pixel + if not issubclass(type(pixel), list): + print('pixel should be a list') + return False + if type(pixel[0]) != float or type(pixel[1]) != float: + print('pixel values should be float') + return False + except AttributeError: + pass except: - print ('specfile parameter parsing error') + print('pixel parameter parsing error') return False return True diff --git a/reccdi/src_py/utilities/utils.py b/reccdi/src_py/utilities/utils.py index 73dc083..e106b74 100644 --- a/reccdi/src_py/utilities/utils.py +++ b/reccdi/src_py/utilities/utils.py @@ -15,6 +15,7 @@ import tifffile as tf import pylibconfig2 as cfg import numpy as np +import scipy.fftpack as sf import os import logging import stat @@ -63,8 +64,10 @@ def read_tif(filename): def save_tif(arr, tif_file): + # arr = np.swapaxes(arr, 0, 2) + # arr = np.swapaxes(arr, 1, 2) + arr = np.swapaxes(arr, 0, 1) arr = np.swapaxes(arr, 0, 2) - arr = np.swapaxes(arr, 1, 2) tf.imsave(tif_file, arr.astype(np.int32)) @@ -128,41 +131,6 @@ def is_correct(x): return new_dim -def get_opencl_dim1(dim, step): - """ - This function calculates the dimension supported by opencl library (i.e. is multiplier of 2,3, or 5) and is closest to the - given starting dimension, and spaced by the given step. - If the dimension is not supported the function adds step value and verifies the new dimension. It iterates until it finds - supported value. - Parameters - ---------- - dim : int - a dimension that needs to be tranformed to one that is supported by the opencl library, if it is not already - - step : int - a delta to increase the dimension - Returns - ------- - dim : int - a dimension that is supported by the opencl library, and closest to the original dimension by n*step - """ - - def is_correct(x): - sub = x - while sub % 2 == 0: - sub = sub / 2 - while sub % 3 == 0: - sub = sub / 3 - while sub % 5 == 0: - sub = sub / 5 - return sub == 1 - - new_dim = dim - while not is_correct(new_dim): - new_dim += step - return new_dim - - def binning(array, binsizes): """ This function does the binning of the array. The array is binned in each dimension by the corresponding binsizes elements. @@ -413,12 +381,12 @@ def gaussian(shape, sigmas, alpha=1): def gauss_conv_fft(arr, sigmas): arr_sum = np.sum(abs(arr)) - arr_f = np.fft.ifftshift(np.fft.fftn(np.fft.ifftshift(arr))) + arr_f = sf.ifftshift(sf.fftn(sf.ifftshift(arr))) shape = list(arr.shape) for i in range(len(sigmas)): sigmas[i] = shape[i] / 2.0 / np.pi / sigmas[i] convag = arr_f * gaussian(shape, sigmas) - convag = np.fft.ifftshift(np.fft.ifftn(np.fft.ifftshift(convag))) + convag = np.fft.ifftshift(sf.ifftn(np.fft.ifftshift(convag))) convag = convag.real convag = np.clip(convag, 0, None) correction = arr_sum / np.sum(convag) @@ -427,6 +395,7 @@ def gauss_conv_fft(arr, sigmas): def shrink_wrap(arr, threshold, sigma, type='gauss'): + print ('in shrink wrap') sigmas = [sigma] * len(arr.shape) if type == 'gauss': convag = gauss_conv_fft(abs(arr), sigmas) @@ -551,18 +520,19 @@ def save_multiple_results(samples, images, supports, cohs, errs, reciprocals, fl def sub_pixel_shift(arr, row_shift, col_shift, z_shift): # arr is 3D - buf2ft = np.fft.fftn(arr) + buf2ft = sf.fftn(arr) shape = arr.shape Nr = np.fft.ifftshift(np.array(list(range(-int(np.floor(shape[0] / 2)), shape[0] - int(np.floor(shape[0] / 2)))))) Nc = np.fft.ifftshift(np.array(list(range(-int(np.floor(shape[1] / 2)), shape[1] - int(np.floor(shape[1] / 2)))))) Nz = np.fft.ifftshift(np.array(list(range(-int(np.floor(shape[2] / 2)), shape[2] - int(np.floor(shape[2] / 2)))))) [Nc, Nr, Nz] = np.meshgrid(Nc, Nr, Nz) Greg = buf2ft * np.exp(1j * 2 * np.pi * (-row_shift * Nr / shape[0] - col_shift * Nc / shape[1] - z_shift * Nz / shape[2])) - return np.fft.ifftn(Greg) + return sf.ifftn(Greg) def arr_property(arr): arr1 = abs(arr) print ('norm', np.sum(pow(abs(arr),2))) max_coordinates = list(np.unravel_index(np.argmax(arr1), arr.shape)) - print ('max coords, value', max_coordinates, arr[max_coordinates[0], max_coordinates[1],max_coordinates[2]]) \ No newline at end of file + print ('max coords, value', max_coordinates, arr[max_coordinates[0], max_coordinates[1],max_coordinates[2]]) + From 9bf68b878280b8355e4dc5a75a39375edc4e1c44 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Thu, 24 Oct 2019 14:45:57 -0500 Subject: [PATCH 201/336] fixed typo --- bin/cdi_window.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/cdi_window.py b/bin/cdi_window.py index 3486b1e..626c8a7 100644 --- a/bin/cdi_window.py +++ b/bin/cdi_window.py @@ -121,7 +121,7 @@ def is_exp_set(self): return False if self.working_dir is None: return False - if self.exp_id != str(self.Id_widget.text()).strip(): + if self.id != str(self.Id_widget.text()).strip(): return False if self.scan != str(self.scan_widget.text()).strip(): return False From e836ea77af3d163bbd07eac415c0576503b22054 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Thu, 24 Oct 2019 15:22:53 -0500 Subject: [PATCH 202/336] fixed --- bin/cdi_window.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/bin/cdi_window.py b/bin/cdi_window.py index 626c8a7..0226122 100644 --- a/bin/cdi_window.py +++ b/bin/cdi_window.py @@ -121,8 +121,6 @@ def is_exp_set(self): return False if self.working_dir is None: return False - if self.id != str(self.Id_widget.text()).strip(): - return False if self.scan != str(self.scan_widget.text()).strip(): return False return True From 06a48974e907c0a3160b857cecf83f4e84875877 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Thu, 24 Oct 2019 15:23:44 -0500 Subject: [PATCH 203/336] added check --- bin/cdi_window.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bin/cdi_window.py b/bin/cdi_window.py index 0226122..626c8a7 100644 --- a/bin/cdi_window.py +++ b/bin/cdi_window.py @@ -121,6 +121,8 @@ def is_exp_set(self): return False if self.working_dir is None: return False + if self.id != str(self.Id_widget.text()).strip(): + return False if self.scan != str(self.scan_widget.text()).strip(): return False return True From 09f2966d786327b469a79280c816c53d9eeffdac Mon Sep 17 00:00:00 2001 From: bfrosik Date: Thu, 24 Oct 2019 16:15:26 -0500 Subject: [PATCH 204/336] fixed checking for the image --- bin/cdi_window.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/bin/cdi_window.py b/bin/cdi_window.py index 626c8a7..4723e7c 100644 --- a/bin/cdi_window.py +++ b/bin/cdi_window.py @@ -1229,9 +1229,14 @@ def display(self): if not self.main_win.is_exp_set(): msg_window('the experiment has changed, pres "set experiment" button') return - # check if the results directory exists - res_dir = os.path.join(self.main_win.experiment_dir, 'results') - if not (os.path.isfile(os.path.join(res_dir, 'image.npy')) or self.separate_scans.isChecked()): + # check if the results exist + is_result = False + for (dirpath, dirnames, filenames) in os.walk(self.main_win.experiment_dir): + for file in filenames: + if file.endswith('image.npy'): + is_result = True + break + if not is_result: msg_window('Please, run reconstruction in previous tab to activate this function') return if (self.specfile is None or not os.path.isfile(self.specfile)) and \ From 0296e476b697f0260c4efdbdb2ad2b62875a8a0a Mon Sep 17 00:00:00 2001 From: bfrosik Date: Mon, 11 Nov 2019 17:03:13 -0600 Subject: [PATCH 205/336] Modify processing display. It will process all images of of chosen directory --- bin/cdi_window.py | 51 ++++-- reccdi/src_py/controller/reconstruction.py | 3 +- reccdi/src_py/run_scripts/run_disp.py | 183 +++++++++------------ reccdi/src_py/run_scripts/run_rec.py | 7 +- reccdi/src_py/utilities/CXDVizNX.py | 30 ++-- reccdi/src_py/utilities/utils.py | 1 - 6 files changed, 130 insertions(+), 145 deletions(-) diff --git a/bin/cdi_window.py b/bin/cdi_window.py index 4723e7c..40aecfd 100644 --- a/bin/cdi_window.py +++ b/bin/cdi_window.py @@ -354,6 +354,7 @@ def __init__(self, main_win, parent=None): self.specfile = None self.darkfile = None self.whitefile = None + self.binning = None self.results_dir = None self.addTab(self.tab1, "Data prep") self.addTab(self.tab2, "Data") @@ -765,6 +766,9 @@ def load_rec_tab(self, conf): for feat_id in self.features.feature_dir: self.features.feature_dir[feat_id].init_config(conf_map) + # set the results_dir in display tab + self.init_results_dir() + def load_disp_tab(self, conf): if not os.path.isfile(conf): @@ -1201,21 +1205,37 @@ def reconstruction(self): if self.main_win.write_conf(conf_map, conf_dir, conf_file): run_rc.reconstruction(str(self.proc.currentText()), self.main_win.experiment_dir, conf_id) + + # set the results_dir in display tab. + self.init_results_dir() else: msg_window('Please, run format data in previous tab to activate this function') + def init_results_dir(self): + # set the results_dir in display tab. If GA, set it to the best results dir, if separate scans + # set to experiment + ga_feat = self.features.feature_dir['GA'] + if ga_feat.active.isChecked() and int(ga_feat.generations.text()) > 1: + generations = int(ga_feat.generations.text()) + self.results_dir = os.path.join(self.main_win.experiment_dir, 'results', + 'g_' + str(generations-1), '0') + else: + self.results_dir = os.path.join(self.main_win.experiment_dir, 'results') + if self.separate_scans.isChecked(): + self.results_dir = self.main_win.experiment_dir + self.result_dir_button.setStyleSheet("Text-align:left") + self.result_dir_button.setText(self.results_dir) + + def set_results_dir(self): if self.main_win.is_exp_exists(): + self.results_dir = os.path.join(self.main_win.experiment_dir, 'results') self.results_dir = select_dir(self.results_dir) if self.results_dir is not None: - if self.results_dir.endswith('results'): - self.result_dir_button.setStyleSheet("Text-align:left") - self.result_dir_button.setText(self.results_dir) - else: - msg_window('Please, select directory ending with "results"') - self.results_dir = None + self.result_dir_button.setStyleSheet("Text-align:left") + self.result_dir_button.setText(self.results_dir) else: self.result_dir_button.setText('') else: @@ -1230,14 +1250,18 @@ def display(self): msg_window('the experiment has changed, pres "set experiment" button') return # check if the results exist + if self.results_dir is None: + self.results_dir = self.main_win.experiment_dir is_result = False - for (dirpath, dirnames, filenames) in os.walk(self.main_win.experiment_dir): + for (dirpath, dirnames, filenames) in os.walk(self.results_dir): for file in filenames: if file.endswith('image.npy'): is_result = True break + if is_result: + break if not is_result: - msg_window('Please, run reconstruction in previous tab to activate this function') + msg_window('No image files found in the results directory tree. Please, run reconstruction in previous tab to activate this function') return if (self.specfile is None or not os.path.isfile(self.specfile)) and \ (len(self.energy.text()) == 0 or \ @@ -1246,21 +1270,14 @@ def display(self): len(self.arm.text()) == 0 or \ len(self.dth.text()) == 0 or \ len(self.pixel.text()) == 0): - msg_window('Please, enter spec file or all detector parameters') + msg_window('Please, enter valid spec file or all detector parameters') return conf_map = self.get_disp_config() conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') if self.main_win.write_conf(conf_map, conf_dir, 'config_disp'): - if self.results_dir is None: - run_dp.to_vtk(self.main_win.experiment_dir) - else: - dir = str(self.results_dir).split('/')[-1] - if dir == 'results': - run_dp.to_vtk(self.main_win.experiment_dir) - else: - run_dp.to_vtk(self.main_win.experiment_dir, dir[0:-len('_results')]) + run_dp.to_vtk(self.main_win.experiment_dir, self.results_dir) def rec_default(self): diff --git a/reccdi/src_py/controller/reconstruction.py b/reccdi/src_py/controller/reconstruction.py index 26eeb64..8030d2d 100644 --- a/reccdi/src_py/controller/reconstruction.py +++ b/reccdi/src_py/controller/reconstruction.py @@ -76,6 +76,7 @@ def rec(proc, data, conf, config_map, image, support, coh): devices = config_map.device except: devices = [-1] + print ('device', devices[0]) try: coh_dims = tuple(config_map.partial_coherence_roi) @@ -87,7 +88,7 @@ def rec(proc, data, conf, config_map, image, support, coh): return image, support, coh, er, reciprocal, flow, iter_array -def reconstruction(proc, data, conf_info, config_map, rec_id=None): +def reconstruction(proc, data, conf_info, config_map, index, rec_id=None): """ This function starts the reconstruction. It checks whether it is continuation of reconstruction defined by configuration. If continuation, the arrays of image, support, coherence are read from cont_directory, diff --git a/reccdi/src_py/run_scripts/run_disp.py b/reccdi/src_py/run_scripts/run_disp.py index d870b70..605bcf4 100755 --- a/reccdi/src_py/run_scripts/run_disp.py +++ b/reccdi/src_py/run_scripts/run_disp.py @@ -1,153 +1,130 @@ import reccdi.src_py.utilities.CXDVizNX as cx +import reccdi.src_py.utilities.utils as ut +import reccdi.src_py.utilities.parse_ver as ver import argparse import sys import os -import reccdi.src_py.utilities.utils as ut -import reccdi.src_py.utilities.parse_ver as ver import numpy as np -from multiprocessing import Process +from multiprocessing import Pool -def save_vtk(res_dir, conf, last_scan): +def save_vtk(res_dir_conf): + (res_dir, conf) = res_dir_conf try: imagefile = os.path.join(res_dir, 'image.npy') image = np.load(imagefile) except: - # print ('no "image.npy" file in the results directory') + print ('cannot load "image.npy" file') return try: supportfile = os.path.join(res_dir, 'support.npy') support = np.load(supportfile) except: - print ('support file ' + supportfile + ' is missing') + print ('support file is missing in ' + res_dir + ' directory') return - reciprocalfile = os.path.join(res_dir, 'reciprocal.npy') - reciprocal = np.load(reciprocalfile) - # reciprocal is saved as tif file, so no need to pass it to cx module - # saving amp, phase, and square of modulus in tif format - reciprocal_amp = np.absolute(reciprocal) - reciprocal_phase = np.angle(reciprocal) - reciprocal_sq_mod = np.power(reciprocal_amp, 2) - - ut.save_tif(reciprocal_amp, os.path.join(res_dir, 'reciprocal_amp.tif')) - ut.save_tif(reciprocal_phase, os.path.join(res_dir, 'reciprocal_phase.tif')) - ut.save_tif(reciprocal_sq_mod, os.path.join(res_dir, 'reciprocal_sq_mod.tif')) + try: + reciprocalfile = os.path.join(res_dir, 'reciprocal.npy') + reciprocal = np.load(reciprocalfile) + # reciprocal is saved as tif file, so no need to pass it to cx module + # saving amp, phase, and square of modulus in tif format + reciprocal_amp = np.absolute(reciprocal) + reciprocal_phase = np.angle(reciprocal) + reciprocal_sq_mod = np.power(reciprocal_amp, 2) + + ut.save_tif(reciprocal_amp, os.path.join(res_dir, 'reciprocal_amp.tif')) + ut.save_tif(reciprocal_phase, os.path.join(res_dir, 'reciprocal_phase.tif')) + ut.save_tif(reciprocal_sq_mod, os.path.join(res_dir, 'reciprocal_sq_mod.tif')) + except: + print ('info: cannot save reciprocal space') cohfile = os.path.join(res_dir, 'coherence.npy') if os.path.isfile(cohfile): coh = np.load(cohfile) - cx.save_CX(conf, image, support, coh, res_dir, last_scan) + cx.save_CX(conf, image, support, coh, res_dir) else: - cx.save_CX(conf, image, support, None, res_dir, last_scan) - - -def save_dir_tree(save_dir, conf, last_scan): - if os.path.isfile(os.path.join(save_dir, 'image.npy')) : - save_vtk(save_dir, conf, last_scan) - for sub in os.listdir(save_dir): - subdir = os.path.join(save_dir, sub) - if os.path.isdir(subdir): - save_vtk(subdir, conf, last_scan) - for sub_sub in os.listdir(subdir): - sub_sub = os.path.join(subdir, sub_sub) - if os.path.isdir(sub_sub): - save_vtk(sub_sub, conf, last_scan) - - -def to_vtk(experiment_dir, conf_id=None): - def add_res_dirs(dir, dirs): - if conf_id is not None: - dirs.append(os.path.join(dir, conf_id + '_results')) - else: - dirs.append(os.path.join(dir, 'results')) - return dirs + cx.save_CX(conf, image, support, None, res_dir) + +def to_vtk(experiment_dir, results_dir=None): if not os.path.isdir(experiment_dir): print("Please provide a valid experiment directory") return - conf_dir = os.path.join(experiment_dir, 'conf') conf = os.path.join(conf_dir, 'config_disp') - # verify configuration file if not ver.ver_config_disp(conf): + print ('incorrect configuration file ' + conf +', cannot parse') return + # parse the conf once here and save it in dictionary, it will apply to all images in the directory tree + conf_dict = {} try: - config_map = ut.read_config(conf) - if config_map is None: - print ("can't read " + conf + " configuration file") - return + conf_map = ut.read_config(conf) + items = conf_map.items() + for item in items: + conf_dict[item[0]] = item[1] except: - print ('Please check configuration file ' + conf + '. Cannot parse') + print('cannot parse configuration file ' + conf) return - # remove the binning if found - with open(conf, 'r+') as f: - lines = f.readlines() - f.seek(0) - for line in lines: - if not line.startswith('binning'): - f.write(line) - f.truncate() - f.close() - - # read binning info from config_data file in the conf directory - conf_data = os.path.join(conf_dir, 'config_data') - binning_info = None - with open(conf_data, 'r') as f: - lines = f.readlines() - for line in lines: - if line.startswith("binning"): - binning_info = line + '\n' - break - # write the binning line into 'config_disp' file - if binning_info is not None: - with open(conf, "a") as f: - f.write(binning_info) - - # find all directories with results, this will include results directories in "scan" directories, and - # _results directories. - res_dirs = [] - try: - save_dir = config_map.save_dir - res_dirs.append(save_dir) - except AttributeError: - pass - - # get last scan from main config file + # get last scan from the config file and add it to conf_dict last_scan = None - try: - exp_conf_map = ut.read_config(os.path.join(conf_dir, 'config')) - scan = exp_conf_map.scan - last_scan = scan.split('-')[-1] - last_scan = int(last_scan) - except: - pass - - for dir in os.listdir(experiment_dir): - if dir.startswith('scan'): - res_dirs = add_res_dirs(os.path.join(experiment_dir, dir), res_dirs) - - if len(res_dirs) == 0: - res_dirs = add_res_dirs(experiment_dir, res_dirs) - - for save_dir in res_dirs: - p = Process(target = save_dir_tree, args = (save_dir, conf, last_scan,)) - p.start() + main_conf = os.path.join(conf_dir, 'config') + if os.path.isfile(main_conf): + try: + config_map = ut.read_config(main_conf) + scan = config_map.scan + last_scan = scan.split('-')[-1] + conf_dict['last_scan'] = int(last_scan) + except: + print ("info: scan not determined, can't read " + conf + " configuration file") + + # get binning from the config_data file and add it to conf_dict + binning = None + data_conf = os.path.join(conf_dir, 'config_data') + if os.path.isfile(data_conf): + try: + conf_map = ut.read_config(data_conf) + conf_dict['binning'] = conf_map.binning + except: + pass + + no_gpus = 1 + rec_conf = os.path.join(conf_dir, 'config_rec') + if os.path.isfile(rec_conf): + try: + conf_map = ut.read_config(rec_conf) + device = conf_map.device + no_gpus = len(device) + except: + pass + + if results_dir is None: + results_dir = experiment_dir + # find directories with image.npy file + dirs = [] + for (dirpath, dirnames, filenames) in os.walk(results_dir): + for file in filenames: + if file.endswith('image.npy'): + dirs.append((dirpath, conf_dict)) + + with Pool(processes = no_gpus) as pool: + pool.map_async(save_vtk, dirs) + pool.close() + pool.join() def main(arg): print ('preparing display') parser = argparse.ArgumentParser() parser.add_argument("experiment_dir", help="experiment directory") - parser.add_argument("--rec_id", help="prefix to '_results' directory") + parser.add_argument("--results_dir", help="directory in experiment that has a tree (or leaf) with reconstruction results which will be visualized") args = parser.parse_args() experiment_dir = args.experiment_dir - if args.rec_id: - to_vtk(experiment_dir, args.rec_id) + if args.results_dir: + to_vtk(experiment_dir, args.results_dir) else: to_vtk(experiment_dir) diff --git a/reccdi/src_py/run_scripts/run_rec.py b/reccdi/src_py/run_scripts/run_rec.py index 7778a94..1087d53 100755 --- a/reccdi/src_py/run_scripts/run_rec.py +++ b/reccdi/src_py/run_scripts/run_rec.py @@ -45,11 +45,6 @@ def run_rec(datafile, config_map, proc, exp_dir, index, rec_id=None): data = np.swapaxes(data, 0, 2) data = np.swapaxes(data, 0, 1) - try: - devices = config_map.device - except: - devices = (-1) - try: generations = config_map.generations except: @@ -58,7 +53,7 @@ def run_rec(datafile, config_map, proc, exp_dir, index, rec_id=None): gen_rec.reconstruction(generations, proc, data, exp_dir, config_map, rec_id) else: - rec.reconstruction(proc, data, exp_dir, config_map, rec_id) + rec.reconstruction(proc, data, exp_dir, config_map, index, rec_id) def reconstruction(proc, experiment_dir, rec_id=None): diff --git a/reccdi/src_py/utilities/CXDVizNX.py b/reccdi/src_py/utilities/CXDVizNX.py index f4375d7..4b0c35b 100644 --- a/reccdi/src_py/utilities/CXDVizNX.py +++ b/reccdi/src_py/utilities/CXDVizNX.py @@ -4,7 +4,6 @@ # See LICENSE file. # # ######################################################################### -import pylibconfig2 as cfg import os import traits.api as tr from tvtk.api import tvtk @@ -25,7 +24,7 @@ class DispalyParams: construction """ - def __init__(self, config, last_scan): + def __init__(self, config): """ The constructor gets config file and fills out the class members. @@ -38,13 +37,10 @@ def __init__(self, config, last_scan): ------- none """ - if os.path.isfile(config): - with open(config, 'r') as f: - config_map = cfg.Config(f.read()) - deg2rad = np.pi / 180.0 try: - specfile = config_map.specfile + specfile = config['specfile'] + last_scan = config['last_scan'] self.lamda, delta, gamma, dth, arm, pixel = sput.parse_spec(specfile, last_scan) self.delta = delta * deg2rad self.gamma = gamma * deg2rad @@ -57,34 +53,34 @@ def __init__(self, config, last_scan): pass # override the parsed parameters with entries in config file try: - energy = config_map.energy + energy = config['energy'] self.lamda = 12.398 / energy / 10 except AttributeError: pass try: - self.delta = config_map.delta * deg2rad + self.delta = config['delta'] * deg2rad except AttributeError: pass try: - self.gamma = config_map.gamma * deg2rad + self.gamma = config['gamma'] * deg2rad except AttributeError: pass try: - self.dth = config_map.dth * deg2rad + self.dth = config['dth'] * deg2rad except AttributeError: pass try: - self.arm = config_map.arm / 1000 + self.arm = config['arm'] / 1000 except AttributeError: pass try: - pixel = config_map.pixel + pixel = config['pixel'] except AttributeError: pass try: self.binning = [] - binning = config_map.binning + binning = config['binning'] for i in range(len(binning)): self.binning.append(binning[i]) for _ in range(3 - len(self.binning)): @@ -95,7 +91,7 @@ def __init__(self, config, last_scan): self.dpy = pixel[1] * self.binning[1] / self.arm / self.binning[2] try: self.crop = [] - crop = config_map.crop + crop = config['crop'] for i in range(len(crop)): self.crop.append(crop[i]) for _ in range(3 - len(self.crop)): @@ -349,13 +345,13 @@ def get_crop(params, shape): return crop -def save_CX(conf, image, support, coh, save_dir, last_scan): +def save_CX(conf, image, support, coh, save_dir): image = np.swapaxes(image, 1,2) image = np.swapaxes(image, 0,1) support = np.swapaxes(support, 1,2) support = np.swapaxes(support, 0,1) image, support = center(image, support) - params = DispalyParams(conf, last_scan) + params = DispalyParams(conf) image = remove_ramp(image) viz = CXDViz() viz.set_array(image) diff --git a/reccdi/src_py/utilities/utils.py b/reccdi/src_py/utilities/utils.py index e106b74..0668d8e 100644 --- a/reccdi/src_py/utilities/utils.py +++ b/reccdi/src_py/utilities/utils.py @@ -395,7 +395,6 @@ def gauss_conv_fft(arr, sigmas): def shrink_wrap(arr, threshold, sigma, type='gauss'): - print ('in shrink wrap') sigmas = [sigma] * len(arr.shape) if type == 'gauss': convag = gauss_conv_fft(abs(arr), sigmas) From 79f87c5c040fb5bdfa2b1775e0ca3a7d4fadc6d4 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Tue, 12 Nov 2019 16:03:41 -0600 Subject: [PATCH 206/336] Added seed to random number generator in fast module --- reccdi/src_cpp/manager.cpp | 2 +- reccdi/src_py/controller/reconstruction_multi.py | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/reccdi/src_cpp/manager.cpp b/reccdi/src_cpp/manager.cpp index 7ef6229..6f7310d 100644 --- a/reccdi/src_cpp/manager.cpp +++ b/reccdi/src_cpp/manager.cpp @@ -38,7 +38,7 @@ void Manager::StartCalc(int device, std::vector data_buffer_r, std::vect af::array data = abs(real_d); af::array guess; - af::randomEngine r(AF_RANDOM_ENGINE_MERSENNE, (uint)time(0)); + af::randomEngine r(AF_RANDOM_ENGINE_MERSENNE, (uint)(device * 100)); d_type test1 = 0; double test2 = 0; if (typeid(test1) == typeid(test2)) diff --git a/reccdi/src_py/controller/reconstruction_multi.py b/reccdi/src_py/controller/reconstruction_multi.py index 270b62b..f780624 100644 --- a/reccdi/src_py/controller/reconstruction_multi.py +++ b/reccdi/src_py/controller/reconstruction_multi.py @@ -105,10 +105,6 @@ def run_fast_module(proc, conf, data, coh_dims, prev): error : list containing errors for iterations """ i, device, prev_image, prev_support, prev_coh = prev - # if this is initial reconstruction (i.e. first generation) add some random delay. Without the delay - # the multiple guesses might be the same. The value 2*i aws selected after several tries. - if prev_image is None: - time.sleep(i*2) image, support, coherence, errors, reciprocal, flow, iter_array = calc.fast_module_reconstruction(proc, device, conf, data, coh_dims, prev_image, prev_support, prev_coh) return image, support, coherence, errors, reciprocal, flow, iter_array From 9919e90c68fdbd4ad5008d2013cffa62ab0c944a Mon Sep 17 00:00:00 2001 From: bfrosik Date: Mon, 18 Nov 2019 16:51:46 -0600 Subject: [PATCH 207/336] added multiprocessing if multiple scans or multiple reconstructions --- bin/cdi_window.py | 34 ++-- reccdi/src_py/controller/gen_rec.py | 65 ++++---- reccdi/src_py/controller/reconstruction.py | 106 +++++------- .../src_py/controller/reconstruction_multi.py | 153 ++++++------------ reccdi/src_py/run_scripts/everything.py | 2 +- reccdi/src_py/run_scripts/run_disp.py | 2 + reccdi/src_py/run_scripts/run_rec.py | 139 ++++++++++------ 7 files changed, 234 insertions(+), 267 deletions(-) diff --git a/bin/cdi_window.py b/bin/cdi_window.py index 40aecfd..7dd9761 100644 --- a/bin/cdi_window.py +++ b/bin/cdi_window.py @@ -216,10 +216,10 @@ def load_main(self, load_dir): self.t.results_dir = os.path.join(self.experiment_dir, 'results') self.t.result_dir_button.setStyleSheet("Text-align:left") self.t.result_dir_button.setText(self.t.results_dir) - self.update_rec_confis_choice() + self.update_rec_configs_choice() - def update_rec_confis_choice(self): + def update_rec_configs_choice(self): # this will update the configuration choices in reconstruction tab # fill out the config_id choice bar by reading configuration files names rec_ids = [] @@ -238,7 +238,7 @@ def assure_experiment_dir(self): if not os.path.exists(experiment_conf_dir): os.makedirs(experiment_conf_dir) else: - self.update_rec_confis_choice() + self.update_rec_configs_choice() def set_experiment(self): @@ -338,7 +338,8 @@ def write_conf(self, conf_map, dir, file): msg_window('please check the entries in the Display tab. Cannot save this format') return False # copy if verified - shutil.move(temp_file, conf_file) + shutil.copy(temp_file, conf_file) + os.remove(temp_file) return True class cdi_conf_tab(QTabWidget): @@ -475,9 +476,9 @@ def tab3UI(self): ulayout.addWidget(self.rec_id) self.rec_id.hide() self.proc = QComboBox() + self.proc.addItem("cuda") self.proc.addItem("opencl") self.proc.addItem("cpu") - self.proc.addItem("cuda") ulayout.addRow("processor type", self.proc) self.cont = QCheckBox() ulayout.addRow("continuation", self.cont) @@ -1154,6 +1155,10 @@ def prepare_34id(self, conf_map): if self.main_win.write_conf(conf_map, conf_dir, 'config_prep'): f = getattr(mod, 'prepare') f(self.main_win.experiment_dir, scan_range, conf_file) + if self.separate_scans.isChecked(): + self.results_dir = self.main_win.experiment_dir + self.result_dir_button.setStyleSheet("Text-align:left") + self.result_dir_button.setText(self.results_dir) def prepare_copy(self, conf_map): @@ -1204,7 +1209,7 @@ def reconstruction(self): conf_dir = os.path.join(self.main_win.experiment_dir, 'conf') if self.main_win.write_conf(conf_map, conf_dir, conf_file): - run_rc.reconstruction(str(self.proc.currentText()), self.main_win.experiment_dir, conf_id) + run_rc.manage_reconstruction(str(self.proc.currentText()), self.main_win.experiment_dir, conf_id) # set the results_dir in display tab. self.init_results_dir() @@ -1213,15 +1218,26 @@ def reconstruction(self): def init_results_dir(self): + # if alternate configuration was chosen in reconstruction tab, use it in results_dir + if self.old_conf_id == '': + res_file = 'results' + else: + res_file = self.old_conf_id + '_results' # set the results_dir in display tab. If GA, set it to the best results dir, if separate scans # set to experiment ga_feat = self.features.feature_dir['GA'] if ga_feat.active.isChecked() and int(ga_feat.generations.text()) > 1: generations = int(ga_feat.generations.text()) - self.results_dir = os.path.join(self.main_win.experiment_dir, 'results', - 'g_' + str(generations-1), '0') + # if only one reconstruction, it will be saved in gen dir, otherwise, + # the directories will be enumerated + if int(self.reconstructions.text()) > 1: + self.results_dir = os.path.join(self.main_win.experiment_dir, res_file, + 'g_' + str(generations-1), '0') + else: + self.results_dir = os.path.join(self.main_win.experiment_dir, res_file, + 'g_' + str(generations-1)) else: - self.results_dir = os.path.join(self.main_win.experiment_dir, 'results') + self.results_dir = os.path.join(self.main_win.experiment_dir, res_file) if self.separate_scans.isChecked(): self.results_dir = self.main_win.experiment_dir self.result_dir_button.setStyleSheet("Text-align:left") diff --git a/reccdi/src_py/controller/gen_rec.py b/reccdi/src_py/controller/gen_rec.py index f4c625b..4ccbedb 100644 --- a/reccdi/src_py/controller/gen_rec.py +++ b/reccdi/src_py/controller/gen_rec.py @@ -340,7 +340,7 @@ def breed(self, images): return child_images, child_supports -def reconstruction(generations, proc, data, conf_info, config_map, rec_id=None): +def reconstruction(proc, datafile, dir, conf_file, devices): """ This function controls reconstruction utilizing genetic algorithm. @@ -366,42 +366,45 @@ def reconstruction(generations, proc, data, conf_info, config_map, rec_id=None): ------- nothing """ + data = ut.read_tif(datafile) + print ('data shape', data.shape) + data = np.swapaxes(data, 0, 2) + data = np.swapaxes(data, 0, 1) + + try: + config_map = ut.read_config(conf_file) + if config_map is None: + print("can't read configuration file " + conf_file) + return + except: + print('Cannot parse configuration file ' + conf_file + ' , check for matching parenthesis and quotations') + return try: reconstructions = config_map.reconstructions except: reconstructions = 1 gen_obj = Generation(config_map) - if rec_id is None: - conf_file = 'config_rec' - else: - conf_file = rec_id + '_config_rec' - - if os.path.isdir(conf_info): - experiment_dir = conf_info - conf = os.path.join(experiment_dir, 'conf', conf_file) - if not os.path.isfile(conf): - base_dir = os.path.abspath(os.path.join(experiment_dir, os.pardir)) - conf = os.path.join(base_dir, 'conf', conf_file) - else: - # assuming it's a file - conf = conf_info - experiment_dir = None try: save_dir = config_map.save_dir except AttributeError: - save_dir = 'results' - if rec_id is not None: - save_dir = rec_id + '_' + save_dir - if experiment_dir is not None: - save_dir = os.path.join(experiment_dir, save_dir) - else: - save_dir = os.path.join(os.getcwd(), 'results') # save in current dir + filename = conf_file.split('/')[-1] + save_dir = os.path.join(dir, filename.replace('config_rec', 'results')) + + try: + devices = config_map.device + except: + devices = [-1] + + try: + generations = config_map.generations + except: + print ('generations not configured') + return # init starting values # if multiple reconstructions configured (typical for genetic algorithm), use "reconstruction_multi" module - dfk = None if reconstructions > 1: images = [] supports = [] @@ -412,14 +415,9 @@ def reconstruction(generations, proc, data, conf_info, config_map, rec_id=None): cohs.append(None) rec = multi # load parls configuration - try: - devices = config_map.device - except: - devices = [-1] - for g in range(generations): gen_data = gen_obj.get_data(data) - images, supports, cohs, errs, recips, flows, iter_arrs = rec.rec(proc, gen_data, conf, config_map, images, supports, cohs) + images, supports, cohs, errs, recips, flows, iter_arrs = rec.multi_rec(proc, gen_data, conf_file, config_map, devices, images, supports, cohs) images, supports, cohs, errs, recips = gen_obj.order(images, supports, cohs, errs, recips) metrics = gen_obj.get_metrics(images, errs) # save the generation results @@ -438,16 +436,15 @@ def reconstruction(generations, proc, data, conf_info, config_map, rec_id=None): rec = single for g in range(generations): + print ('gen', g) gen_data = gen_obj.get_data(data) - image, support, coh, err, recip, flows, iter_arrs = rec.rec(proc, gen_data, conf, config_map, image, support, coh) + image, support, coh, err, recip, flows, iter_arrs = rec.single_rec(proc, gen_data, conf_file, config_map, devices[0], image, support, coh) # save the generation results gen_save_dir = os.path.join(save_dir, 'g_' + str(g)) + print ('gen save dir', gen_save_dir) ut.save_results(image, support, coh, err, recip, flows, iter_arrs, gen_save_dir) gen_obj.next_gen() - if dfk is not None: - rec.clear(dfk) - print ('done gen') diff --git a/reccdi/src_py/controller/reconstruction.py b/reccdi/src_py/controller/reconstruction.py index 8030d2d..1424f2d 100644 --- a/reccdi/src_py/controller/reconstruction.py +++ b/reccdi/src_py/controller/reconstruction.py @@ -31,7 +31,8 @@ 'reconstruction'] -def rec(proc, data, conf, config_map, image, support, coh): +def single_rec(proc, data, conf, config_map, dev, image, support, coh): + """ This function starts and returns results of reconstruction. The parameters must be initialized. @@ -72,23 +73,17 @@ def rec(proc, data, conf, config_map, image, support, coh): errs : list list of errors (should we take the last error?) """ - try: - devices = config_map.device - except: - devices = [-1] - print ('device', devices[0]) - try: coh_dims = tuple(config_map.partial_coherence_roi) except: coh_dims = None - image, support, coh, er, reciprocal, flow, iter_array = calc.fast_module_reconstruction(proc, devices[0], conf, data, coh_dims, image, support, coh) + image, support, coh, er, reciprocal, flow, iter_array = calc.fast_module_reconstruction(proc, dev, conf, data, coh_dims, image, support, coh) # errs contain errors for each iteration return image, support, coh, er, reciprocal, flow, iter_array -def reconstruction(proc, data, conf_info, config_map, index, rec_id=None): +def reconstruction(proc, datafile, dir, conf_file, dev): """ This function starts the reconstruction. It checks whether it is continuation of reconstruction defined by configuration. If continuation, the arrays of image, support, coherence are read from cont_directory, @@ -114,61 +109,44 @@ def reconstruction(proc, data, conf_info, config_map, index, rec_id=None): ------- nothing """ + data = ut.read_tif(datafile) + print ('data shape', data.shape) + data = np.swapaxes(data, 0, 2) + data = np.swapaxes(data, 0, 1) + + try: + config_map = ut.read_config(conf_file) + if config_map is None: + print("can't read configuration file " + conf_file) + return + except: + print('Cannot parse configuration file ' + conf_file + ' , check for matching parenthesis and quotations') + return - # how many reconstructions to start + cont = False try: - reconstructions = config_map.reconstructions + if config_map.cont: + try: + continue_dir = config_map.continue_dir + image, support, coh = ut.read_results(continue_dir) + cont = True + except: + print("continue_dir not configured") + return None except: - reconstructions = 1 - - if reconstructions > 1: - multi.reconstruction(reconstructions, proc, data, conf_info, config_map) - else: - cont = False - try: - if config_map.cont: - try: - continue_dir = config_map.continue_dir - image, support, coh = ut.read_results(continue_dir) - cont = True - except: - print("continue_dir not configured") - return None - except: - pass - - if not cont: - image = None - support = None - coh = None - - if rec_id is None: - conf_file = 'config_rec' - else: - conf_file = rec_id + '_config_rec' - - if os.path.isdir(conf_info): - experiment_dir = conf_info - conf = os.path.join(experiment_dir, 'conf', conf_file) - if not os.path.isfile(conf): - base_dir = os.path.abspath(os.path.join(experiment_dir, os.pardir)) - conf = os.path.join(base_dir, 'conf', conf_file) - else: - # assuming it's a file - conf = conf_info - experiment_dir = None - - image, support, coh, errs, recips, flow, iter_array = rec(proc, data, conf, config_map, image, support, coh) - - try: - save_dir = config_map.save_dir - except AttributeError: - save_dir = 'results' - if rec_id is not None: - save_dir = rec_id + '_' + save_dir - if experiment_dir is not None: - save_dir = os.path.join(experiment_dir, save_dir) - else: - save_dir = os.path.join(os.getcwd(), 'results') # save in current dir - - ut.save_results(image, support, coh, np.asarray(errs), recips, flow, iter_array, save_dir) + pass + + if not cont: + image = None + support = None + coh = None + + image, support, coh, errs, recips, flow, iter_array = single_rec(proc, data, conf_file, config_map, dev, image, support, coh) + + try: + save_dir = config_map.save_dir + except AttributeError: + filename = conf_file.split('/')[-1] + save_dir = os.path.join(dir, filename.replace('config_rec', 'results')) + + ut.save_results(image, support, coh, np.asarray(errs), recips, flow, iter_array, save_dir) diff --git a/reccdi/src_py/controller/reconstruction_multi.py b/reccdi/src_py/controller/reconstruction_multi.py index f780624..0079fec 100644 --- a/reccdi/src_py/controller/reconstruction_multi.py +++ b/reccdi/src_py/controller/reconstruction_multi.py @@ -18,10 +18,11 @@ """ import os +import numpy as np import reccdi.src_py.utilities.utils as ut import reccdi.src_py.controller.fast_module as calc import time -from multiprocessing import Pool +from multiprocessing import Pool, Queue from functools import partial __author__ = "Barbara Frosik" @@ -31,38 +32,7 @@ 'reconstruction'] -def assign_devices(devices, reconstructions): - """ - This function pairs device id with reconstruction run. When running multiple reconstructions, it should be - distributed between available gpus. The GPUs might be configured. If not, it is left to Parsl logic how - the GPUs are utilized. - - Parameters - ---------- - devices : list - list containing ids of devices - - reconstructions : int - number of reconstructions (each in own reconstruction) - - Returns - ------- - dev : list - list containing devices allocated subsequently to reconstructions. If the device was not configured, it will - be set to -1, which leaves the allocation to Parsl - """ - - dev_no = len(devices) - dev = [] - for reconstruction in range(reconstructions): - if reconstruction < dev_no: - dev.append(devices[reconstruction]) - else: - dev.append(devices[reconstruction % len(devices)]) - return dev - - -def run_fast_module(proc, conf, data, coh_dims, prev): +def single_rec_process(proc, conf, data, coh_dims, prev): """ This function runs in the reconstruction palarellized by Parsl. @@ -104,47 +74,20 @@ def run_fast_module(proc, conf, data, coh_dims, prev): error : list containing errors for iterations """ - i, device, prev_image, prev_support, prev_coh = prev - image, support, coherence, errors, reciprocal, flow, iter_array = calc.fast_module_reconstruction(proc, device, conf, data, coh_dims, + prev_image, prev_support, prev_coh = prev + image, support, coherence, errors, reciprocal, flow, iter_array = calc.fast_module_reconstruction(proc, gpu, conf, data, coh_dims, prev_image, prev_support, prev_coh) return image, support, coherence, errors, reciprocal, flow, iter_array -def read_results(read_dir): - """ - This function retrieves results of multiple reconstructions from read_dir sub-directories and - loads them into lists. - - Parameters - ---------- - read_dir : str - directory that contains results of reconstructions +def assign_gpu(*args): + q = args[0] + global gpu + gpu = q.get() - Returns - ------- - images : list - list of numpy arrays containing reconstructed images - supports : list - list of numpy arrays containing support of reconstructed images +def multi_rec(proc, data, conf, config_map, devices, prev_images, prev_supports, prev_cohs=None): - cohs : list - list of numpy arrays containing coherence of reconstructed images - """ - images = [] - supports = [] - cohs = [] - - for sub in os.listdir(read_dir): - image, support, coh = ut.read_results(os.path.join(read_dir, sub)+'/') - images.append(image) - supports.append(support) - cohs.append(coh) - - return images, supports, cohs - - -def rec(proc, data, conf, config_map, prev_images, prev_supports, prev_cohs=None): """ This function controls the multiple reconstructions. It invokes a loop to execute parallel resconstructions, wait for all reconstructions to deliver results, and store te results. @@ -203,15 +146,7 @@ def collect_result(result): flows.append(r[5]) iter_arrs.append(r[6]) - - try: - devices = config_map.device - except: - devices = [-1] - - # assign device for each reconstruction reconstructions = config_map.reconstructions - devices = assign_devices(devices, reconstructions) try: coh_dims = tuple(config_map.partial_coherence_roi) @@ -224,10 +159,13 @@ def collect_result(result): coh = None else: coh = prev_cohs[i] - iterable.append((i, devices[i], prev_images[i], prev_supports[i], coh)) + iterable.append((prev_images[i], prev_supports[i], coh)) - func = partial(run_fast_module, proc, conf, data, coh_dims) - with Pool(processes = reconstructions) as pool: + func = partial(single_rec_process, proc, conf, data, coh_dims) + q = Queue() + for device in devices: + q.put(device) + with Pool(processes = len(devices),initializer=assign_gpu, initargs=(q,)) as pool: pool.map_async(func, iterable, callback=collect_result) pool.close() pool.join() @@ -236,7 +174,8 @@ def collect_result(result): return images, supports, cohs, errs, recips, flows, iter_arrs -def reconstruction(reconstructions, proc, data, conf_info, config_map): +def reconstruction(proc, datafile, dir, conf_file, devices): +# proc, datafile, dir, conf_file, devices """ This function starts the reconstruction. It checks whether it is continuation of reconstruction defined by configuration. If continuation, the lists contaning arrays of images, supports, coherence for multiple reconstructions @@ -266,24 +205,41 @@ def reconstruction(reconstructions, proc, data, conf_info, config_map): ------- nothing """ + data = ut.read_tif(datafile) + print ('data shape', data.shape) + data = np.swapaxes(data, 0, 2) + data = np.swapaxes(data, 0, 1) + + try: + config_map = ut.read_config(conf_file) + if config_map is None: + print("can't read configuration file " + conf_file) + return + except: + print('Cannot parse configuration file ' + conf_file + ' , check for matching parenthesis and quotations') + return + + try: + reconstructions = config_map.reconstructions + except: + reconstructions = 1 - cont = False + images = [] + supports = [] + cohs = [] try: if config_map.cont: try: continue_dir = config_map.continue_dir - images, supports, cohs = read_results(continue_dir) - cont = True + for sub in os.listdir(continue_dir): + image, support, coh = ut.read_results(os.path.join(continue_dir, sub) + '/') + images.append(image) + supports.append(support) + cohs.append(coh) except: print("continue_dir not configured") return None except: - pass - - if not cont: - images = [] - supports = [] - cohs = [] for _ in range(reconstructions): images.append(None) supports.append(None) @@ -291,19 +247,7 @@ def reconstruction(reconstructions, proc, data, conf_info, config_map): start = time.time() - if os.path.isdir(conf_info): - # if conf_info is directory, look for subdir "conf" and "config_rec" in it - experiment_dir = conf_info - conf = os.path.join(experiment_dir, 'conf', 'config_rec') - if not os.path.isfile(conf): - base_dir = os.path.abspath(os.path.join(experiment_dir, os.pardir)) - conf = os.path.join(base_dir, 'conf', 'config_rec') - else: - # assuming it's a file - conf = conf_info - experiment_dir = None - - new_images, new_supports, new_cohs, errs, recips, flows, iter_arrs = rec(proc, data, conf, config_map, images, supports, cohs) + new_images, new_supports, new_cohs, errs, recips, flows, iter_arrs = multi_rec(proc, data, conf_file, config_map, devices, images, supports, cohs) stop = time.time() t = stop - start print ('run in ' + str(t) + ' sec') @@ -311,10 +255,7 @@ def reconstruction(reconstructions, proc, data, conf_info, config_map): try: save_dir = config_map.save_dir except AttributeError: - save_dir = 'results' - if experiment_dir is not None: - save_dir = os.path.join(experiment_dir, save_dir) - else: - save_dir = os.path.join(os.getcwd(), 'results') # save in current dir + filename = conf_file.split('/')[-1] + save_dir = os.path.join(dir, filename.replace('config_rec', 'results')) ut.save_multiple_results(reconstructions, new_images, new_supports, new_cohs, errs, recips, flows, iter_arrs, save_dir) diff --git a/reccdi/src_py/run_scripts/everything.py b/reccdi/src_py/run_scripts/everything.py index 0e1e1b4..acae99e 100644 --- a/reccdi/src_py/run_scripts/everything.py +++ b/reccdi/src_py/run_scripts/everything.py @@ -20,7 +20,7 @@ def main(arg): experiment_dir = prep.parse_and_prepare(prefix, scans, conf_dir) run_dt.data(experiment_dir) - run_rc.reconstruction(dev, experiment_dir) + run_rc.manage_reconstruction(dev, experiment_dir) run_dp.to_vtk(experiment_dir) diff --git a/reccdi/src_py/run_scripts/run_disp.py b/reccdi/src_py/run_scripts/run_disp.py index 605bcf4..c471662 100755 --- a/reccdi/src_py/run_scripts/run_disp.py +++ b/reccdi/src_py/run_scripts/run_disp.py @@ -48,6 +48,7 @@ def save_vtk(res_dir_conf): def to_vtk(experiment_dir, results_dir=None): + print ('starting conversion to vtk') if not os.path.isdir(experiment_dir): print("Please provide a valid experiment directory") return @@ -114,6 +115,7 @@ def to_vtk(experiment_dir, results_dir=None): pool.map_async(save_vtk, dirs) pool.close() pool.join() + print ('done') def main(arg): diff --git a/reccdi/src_py/run_scripts/run_rec.py b/reccdi/src_py/run_scripts/run_rec.py index 1087d53..e041831 100755 --- a/reccdi/src_py/run_scripts/run_rec.py +++ b/reccdi/src_py/run_scripts/run_rec.py @@ -5,26 +5,27 @@ from multiprocessing import Process import reccdi.src_py.controller.reconstruction as rec import reccdi.src_py.controller.gen_rec as gen_rec +import reccdi.src_py.controller.reconstruction_multi as mult_rec import reccdi.src_py.utilities.utils as ut import reccdi.src_py.utilities.parse_ver as ver -import numpy as np import time -def interrupt_thread(nu_processes): +def interrupt_thread(processes): """ This function is part of interrupt mechanism. It detects ctl-c signal and creates an empty file named "stopfile". The file is discovered by fast module and the discovery prompts termonation of the process. """ def int_handler(signal, frame): is_file = False - left = nu_processes - while not is_file and left > 0: + while not is_file and len(processes) > 0: # each process will remove a stopfile # it is assumed that a 'stopfile' will be discovered by fast module and deleted in 1 sec open('stopfile', 'a').close() - time.sleep(1) - left -= 1 + time.sleep(.1) + for p in processes: + if not p.is_alive(): + processes.remove(p) is_file = os.path.isfile('stopfile') #remove the file at the end @@ -39,24 +40,7 @@ def term_handler(signal, frame): signal.pause() -def run_rec(datafile, config_map, proc, exp_dir, index, rec_id=None): - data = ut.read_tif(datafile) - print ('data shape', data.shape) - data = np.swapaxes(data, 0, 2) - data = np.swapaxes(data, 0, 1) - - try: - generations = config_map.generations - except: - generations = 1 - if generations > 1: - gen_rec.reconstruction(generations, proc, data, exp_dir, config_map, rec_id) - else: - - rec.reconstruction(proc, data, exp_dir, config_map, index, rec_id) - - -def reconstruction(proc, experiment_dir, rec_id=None): +def manage_reconstruction(proc, experiment_dir, rec_id=None): """ This function starts the interruption discovery thread and the recontruction thread. @@ -68,7 +52,7 @@ def reconstruction(proc, experiment_dir, rec_id=None): os.remove('stopfile') print ('starting reconstruction') # find how many reconstruction configurations are in config directory - # if more than one, it will run is separate processes + # if more than one, it will run in separate processes conf_dir = os.path.join(experiment_dir, 'conf') if rec_id is None: conf_file = os.path.join(conf_dir, 'config_rec') @@ -77,8 +61,14 @@ def reconstruction(proc, experiment_dir, rec_id=None): conf_file = os.path.join(conf_dir, rec_id + '_config_rec') id = rec_id + # check if file exists + if not os.path.isfile(conf_file): + print ('no configuration file ' + conf_file + ' found') + return + # verify the configuration file if not ver.ver_config_rec(conf_file): + # if not verified, the ver will print message return try: @@ -90,55 +80,98 @@ def reconstruction(proc, experiment_dir, rec_id=None): print('Cannot parse configuration file ' + conf_file + ' , check for matching parenthesis and quotations') return - exp_dirs = [] + exp_dirs_data = [] + # experiment may be multi-scan in which case will run a reconstruction for each scan for dir in os.listdir(experiment_dir): if dir.startswith('scan'): - exp_dirs.append(os.path.join(experiment_dir, dir)) - if len(exp_dirs) == 0: - exp_dirs.append(experiment_dir) - - rec_processes = [] - # index is used to find which device to utilize - # it will be used for case when multiple reconstructions are running for the separate scans - # but there is no GA (because the GA would utilize the devices) - index = 0 - for dir in exp_dirs: + datafile = os.path.join(experiment_dir, dir, 'data', 'data.tif') + if os.path.isfile(datafile): + exp_dirs_data.append((os.path.join(experiment_dir, dir), datafile)) + # if there are no scan directories, assume it is combined scan experiment + if len(exp_dirs_data) == 0: + # in typical scenario data_dir is not configured, and it is defaulted to /data + # the data_dir will be ignored in multi-scan scenario try: data_dir = config_map.data_dir except AttributeError: - data_dir = os.path.join(dir, 'data') + data_dir = os.path.join(experiment_dir, 'data') datafile = os.path.join(data_dir, 'data.tif') if os.path.isfile(datafile): - p = Process(target = run_rec, args = (datafile, config_map, proc, dir, index, id,)) - index += 1 - p.start() - rec_processes.append(p) - - if len(rec_processes) == 0: - # return if no process has started - return - - sp = Process(target=interrupt_thread, args=(len(rec_processes),)) - sp.start() + exp_dirs_data.append((experiment_dir, datafile)) - exit_codes = [p.join() for p in rec_processes] + try: + generations = config_map.generations + except: + generations = 0 + try: + reconstructions = config_map.reconstructions + except: + reconstructions = 1 + try: + devices = config_map.device + except: + devices = [-1] + + # run the reconstruction concurrently if the config_rec has the parameter "reconstructions" configured + # to 1 or missing. Otherwise, multiple reconstructions will run for each scan per configuration, so the gpus will + # be utilized for the multiple reconstructions. Therefore each scan will run separately. + # Also to run it concurrently, the number of configured devices must be greater than 1 + if len(exp_dirs_data) > 1 and len(devices) > 1 and reconstructions == 1: + # index keeps track of the multiple directories + index = 0 + not_done = True + while not_done: + rec_processes = [] + # divide the reconstructions over devices + for dev in devices: + if index == len(exp_dirs_data): + not_done = False + break + else: + datafile = exp_dirs_data[index][1] + dir = exp_dirs_data[index][0] + if generations > 1: + p = Process(target = gen_rec.reconstruction, args = (proc, datafile, dir, conf_file, dev)) + else: + p = Process(target = rec.reconstruction, args = (proc, datafile, dir, conf_file, dev)) + index += 1 + p.start() + rec_processes.append(p) + # start the interrupt process + sp = Process(target=interrupt_thread, args=(rec_processes,)) + sp.start() + exit_codes = [p.join() for p in rec_processes] + sp.terminate() + else: + # start the interrupt process + sp = Process(target=interrupt_thread, args=([],)) + sp.start() + for dir_data in exp_dirs_data: + datafile = dir_data[1] + dir = dir_data[0] + if generations > 1: + gen_rec.reconstruction(proc, datafile, dir, conf_file, devices) + elif reconstructions > 1: + mult_rec.reconstruction(proc, datafile, dir, conf_file, devices) + else: + rec.reconstruction(proc, datafile, dir, conf_file, devices[0]) sp.terminate() + print ('finished reconstruction') def main(arg): - print (sys.argv[1:]) parser = argparse.ArgumentParser() parser.add_argument("proc", help="the processor the code will run on, can be 'cpu', 'opencl', or 'cuda'.") parser.add_argument("experiment_dir", help="experiment directory.") - parser.add_argument("--rec_id", help="prefix to '_results' directory") + parser.add_argument("--rec_id", help="reconstruction id, a prefix to '_results' directory") args = parser.parse_args() proc = args.proc experiment_dir = args.experiment_dir if args.rec_id: - reconstruction(proc, experiment_dir, args.rec_id) + manage_reconstruction(proc, experiment_dir, args.rec_id) else: - reconstruction(proc, experiment_dir) + manage_reconstruction(proc, experiment_dir) if __name__ == "__main__": From 4d95252ec661a8c112196bed1d5bc15c9df5d765 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Fri, 6 Dec 2019 17:47:13 -0600 Subject: [PATCH 208/336] created double pool for multiple scans and multiple reconstructions, handled Nans during reconstruction --- bin/cdi_window.py | 13 +- bin/run_disp.py | 133 +++++++++++++- how_to_run | 2 +- reccdi/include/manager.hpp | 2 + reccdi/include/worker.hpp | 14 +- reccdi/src_cpp/manager.cpp | 100 +++++++++-- reccdi/src_cpp/pcdi.cpp | 38 +++- reccdi/src_cpp/worker.cpp | 59 ++++--- reccdi/src_py/controller/fast_module.py | 6 +- reccdi/src_py/controller/gen_rec.py | 13 +- reccdi/src_py/controller/reconstruction.py | 6 +- .../src_py/controller/reconstruction_multi.py | 12 +- reccdi/src_py/run_scripts/run_34id_prepare.py | 32 +++- reccdi/src_py/run_scripts/run_rec.py | 167 +++++++++++------- reccdi/src_py/utilities/utils.py | 35 ++++ 15 files changed, 490 insertions(+), 142 deletions(-) diff --git a/bin/cdi_window.py b/bin/cdi_window.py index 7dd9761..96990a8 100644 --- a/bin/cdi_window.py +++ b/bin/cdi_window.py @@ -439,8 +439,8 @@ def tab2UI(self): layout = QFormLayout() self.aliens = QLineEdit() layout.addRow("aliens", self.aliens) - self.amp_threshold = QLineEdit() - layout.addRow("amp_threshold", self.amp_threshold) + self.amp_intensity = QLineEdit() + layout.addRow("amp intensity", self.amp_intensity) self.center_shift = QLineEdit() layout.addRow("center_shift", self.center_shift) self.adjust_dimensions = QLineEdit() @@ -713,7 +713,7 @@ def load_data_tab(self, conf): except AttributeError: pass try: - self.amp_threshold.setText(str(conf_map.amp_threshold).replace(" ", "")) + self.amp_intensity.setText(str(conf_map.amp_threshold).replace(" ", "")) except AttributeError: pass try: @@ -863,10 +863,10 @@ def get_data_config(self): conf_map = {} if len(self.aliens.text()) > 0: conf_map['aliens'] = str(self.aliens.text()).replace('\n', '') - if len(self.amp_threshold.text()) > 0: - conf_map['amp_threshold'] = str(self.amp_threshold.text()) + if len(self.amp_intensity.text()) > 0: + conf_map['amp_threshold'] = str(self.amp_intensity.text()) else: - msg_window('amplitude threshold not defined. Quiting operation.') + # msg_window('amplitude threshold not defined. Quiting operation.') return if len(self.binning.text()) > 0: conf_map['binning'] = str(self.binning.text()).replace('\n', '') @@ -1237,6 +1237,7 @@ def init_results_dir(self): self.results_dir = os.path.join(self.main_win.experiment_dir, res_file, 'g_' + str(generations-1)) else: + print ('self.main_win.experiment_dir, res_file', self.main_win.experiment_dir, res_file) self.results_dir = os.path.join(self.main_win.experiment_dir, res_file) if self.separate_scans.isChecked(): self.results_dir = self.main_win.experiment_dir diff --git a/bin/run_disp.py b/bin/run_disp.py index 975c751..605bcf4 100755 --- a/bin/run_disp.py +++ b/bin/run_disp.py @@ -1,7 +1,134 @@ -import reccdi.src_py.run_scripts.run_disp as disp +import reccdi.src_py.utilities.CXDVizNX as cx +import reccdi.src_py.utilities.utils as ut +import reccdi.src_py.utilities.parse_ver as ver +import argparse import sys +import os +import numpy as np +from multiprocessing import Pool + + +def save_vtk(res_dir_conf): + (res_dir, conf) = res_dir_conf + try: + imagefile = os.path.join(res_dir, 'image.npy') + image = np.load(imagefile) + except: + print ('cannot load "image.npy" file') + return + + try: + supportfile = os.path.join(res_dir, 'support.npy') + support = np.load(supportfile) + except: + print ('support file is missing in ' + res_dir + ' directory') + return + + try: + reciprocalfile = os.path.join(res_dir, 'reciprocal.npy') + reciprocal = np.load(reciprocalfile) + # reciprocal is saved as tif file, so no need to pass it to cx module + # saving amp, phase, and square of modulus in tif format + reciprocal_amp = np.absolute(reciprocal) + reciprocal_phase = np.angle(reciprocal) + reciprocal_sq_mod = np.power(reciprocal_amp, 2) + + ut.save_tif(reciprocal_amp, os.path.join(res_dir, 'reciprocal_amp.tif')) + ut.save_tif(reciprocal_phase, os.path.join(res_dir, 'reciprocal_phase.tif')) + ut.save_tif(reciprocal_sq_mod, os.path.join(res_dir, 'reciprocal_sq_mod.tif')) + except: + print ('info: cannot save reciprocal space') + + cohfile = os.path.join(res_dir, 'coherence.npy') + if os.path.isfile(cohfile): + coh = np.load(cohfile) + cx.save_CX(conf, image, support, coh, res_dir) + else: + cx.save_CX(conf, image, support, None, res_dir) + + +def to_vtk(experiment_dir, results_dir=None): + if not os.path.isdir(experiment_dir): + print("Please provide a valid experiment directory") + return + conf_dir = os.path.join(experiment_dir, 'conf') + conf = os.path.join(conf_dir, 'config_disp') + # verify configuration file + if not ver.ver_config_disp(conf): + print ('incorrect configuration file ' + conf +', cannot parse') + return + + # parse the conf once here and save it in dictionary, it will apply to all images in the directory tree + conf_dict = {} + try: + conf_map = ut.read_config(conf) + items = conf_map.items() + for item in items: + conf_dict[item[0]] = item[1] + except: + print('cannot parse configuration file ' + conf) + return + + # get last scan from the config file and add it to conf_dict + last_scan = None + main_conf = os.path.join(conf_dir, 'config') + if os.path.isfile(main_conf): + try: + config_map = ut.read_config(main_conf) + scan = config_map.scan + last_scan = scan.split('-')[-1] + conf_dict['last_scan'] = int(last_scan) + except: + print ("info: scan not determined, can't read " + conf + " configuration file") + + # get binning from the config_data file and add it to conf_dict + binning = None + data_conf = os.path.join(conf_dir, 'config_data') + if os.path.isfile(data_conf): + try: + conf_map = ut.read_config(data_conf) + conf_dict['binning'] = conf_map.binning + except: + pass + + no_gpus = 1 + rec_conf = os.path.join(conf_dir, 'config_rec') + if os.path.isfile(rec_conf): + try: + conf_map = ut.read_config(rec_conf) + device = conf_map.device + no_gpus = len(device) + except: + pass + + if results_dir is None: + results_dir = experiment_dir + # find directories with image.npy file + dirs = [] + for (dirpath, dirnames, filenames) in os.walk(results_dir): + for file in filenames: + if file.endswith('image.npy'): + dirs.append((dirpath, conf_dict)) + + with Pool(processes = no_gpus) as pool: + pool.map_async(save_vtk, dirs) + pool.close() + pool.join() + + +def main(arg): + print ('preparing display') + parser = argparse.ArgumentParser() + parser.add_argument("experiment_dir", help="experiment directory") + parser.add_argument("--results_dir", help="directory in experiment that has a tree (or leaf) with reconstruction results which will be visualized") + args = parser.parse_args() + experiment_dir = args.experiment_dir + if args.results_dir: + to_vtk(experiment_dir, args.results_dir) + else: + to_vtk(experiment_dir) if __name__ == "__main__": - disp.main(sys.argv[1:]) + main(sys.argv[1:]) -#python run_disp.py experiment_dir \ No newline at end of file +#python run_disp.py experiment_dir diff --git a/how_to_run b/how_to_run index a113c6a..f469cd3 100644 --- a/how_to_run +++ b/how_to_run @@ -32,7 +32,7 @@ example: source bin/everything.sh opencl B 290-290 conf/last 2. running one by one (when envirenment is set) -python bin/prepare_34id.py B 290-290 conf/last +python bin/prepare_34id.py B 290-290 conf python bin/run_data.py test/B_290-290 python bin/run_rec.py opencl test/B_290-290 python bin/run_disp.py test/B_290-290 diff --git a/reccdi/include/manager.hpp b/reccdi/include/manager.hpp index 5b04339..83d2515 100644 --- a/reccdi/include/manager.hpp +++ b/reccdi/include/manager.hpp @@ -18,8 +18,10 @@ class Manager private: // A worker instance managed by the Manager Reconstruction *rec; + bool good_reconstruction; public: + Manager(); ~Manager(); // This method starts calculations. The Manager uses workers to perform the calculations. The parameters define // calculations type. diff --git a/reccdi/include/worker.hpp b/reccdi/include/worker.hpp index 1311674..5b49e8e 100644 --- a/reccdi/include/worker.hpp +++ b/reccdi/include/worker.hpp @@ -96,6 +96,12 @@ typedef void (Reconstruction::*fp)(void); void Twin(); void Average(); + // Runs one iteration of ER algorithm. + void ModulusConstrainEr(); + + // Runs one iteration of HIO algorithm. + void ModulusConstrainHio(); + public: // The class constructor takes data array, an image guess array in reciprocal space, and configuration file. The image guess // is typically generated as an complex random array. This image can be also the best outcome of previous calculations. The @@ -116,13 +122,7 @@ typedef void (Reconstruction::*fp)(void); // First it calls Next() on State, which determines which algorithm should be run in this state. It also determines whether the // algorithms should be modified by applying convolution or updating support. This method returns false if all iterations have // been completed (i.e. the code reached last state), and true otherwise. Typically this method will be run in a while loop. - void Iterate(); - - // Runs one iteration of ER algorithm. - void ModulusConstrainEr(); - - // Runs one iteration of HIO algorithm. - void ModulusConstrainHio(); + int Iterate(); af::array GetImage(); af::array GetSupportArray(); diff --git a/reccdi/src_cpp/manager.cpp b/reccdi/src_cpp/manager.cpp index 6f7310d..990df5e 100644 --- a/reccdi/src_cpp/manager.cpp +++ b/reccdi/src_cpp/manager.cpp @@ -12,10 +12,16 @@ See LICENSE file. #include "util.hpp" #include "parameters.hpp" #include "common.h" - +#include "unistd.h" using namespace af; +Manager::Manager() +{ + good_reconstruction = true; +} + + Manager::~Manager() { delete rec; @@ -28,7 +34,13 @@ void Manager::StartCalc(int device, std::vector data_buffer_r, std::vect if (device >= 0) { - setDevice(device); + try{ + setDevice(device); + } + catch (...) + {// leave to the os to assign device + printf("can't select gpu %d\n", device); + } info(); } @@ -38,7 +50,7 @@ void Manager::StartCalc(int device, std::vector data_buffer_r, std::vect af::array data = abs(real_d); af::array guess; - af::randomEngine r(AF_RANDOM_ENGINE_MERSENNE, (uint)(device * 100)); + af::randomEngine r(AF_RANDOM_ENGINE_MERSENNE, (uint)(getpid() * 100)); d_type test1 = 0; double test2 = 0; if (typeid(test1) == typeid(test2)) @@ -56,8 +68,15 @@ void Manager::StartCalc(int device, std::vector data_buffer_r, std::vect printf("initialized\n"); timer::start(); - rec->Iterate(); - printf("iterate function took %g seconds\n", timer::stop()); + int ret = rec->Iterate(); + if (ret > 0) + { + good_reconstruction = false; + } + else + { + printf("iterate function took %g seconds\n", timer::stop()); + } } void Manager::StartCalc(int device, std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector dim, const std::string & config) @@ -67,10 +86,18 @@ void Manager::StartCalc(int device, std::vector data_buffer_r, std::vect if (device >= 0) { - setDevice(device); + try{ + setDevice(device); + } + catch (...) + {// leave to the os to assign device + printf("can't select gpu %d, can be not updated cache, try restart\n", device); + good_reconstruction = false; + return; + } info(); } - + dim4 af_dims = Utils::Int2Dim4(dim); af::array real_d(af_dims, &data_buffer_r[0]); //saving abs(data) @@ -87,8 +114,15 @@ void Manager::StartCalc(int device, std::vector data_buffer_r, std::vect printf("initialized\n"); timer::start(); - rec->Iterate(); - printf("iterate function took %g seconds\n", timer::stop()); + int ret = rec->Iterate(); + if (ret > 0) + { + good_reconstruction = false; + } + else + { + printf("iterate function took %g seconds\n", timer::stop()); + } } void Manager::StartCalc(int device, std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector support_vector, std::vector dim, const std::string & config) @@ -98,7 +132,15 @@ void Manager::StartCalc(int device, std::vector data_buffer_r, std::vect if (device >= 0) { - setDevice(device); + try{ + setDevice(device); + } + catch (...) + {// leave to the os to assign device + printf("can't select gpu %d, can be not updated cache, try restart\n", device); + good_reconstruction = false; + return; + } info(); } @@ -119,8 +161,15 @@ void Manager::StartCalc(int device, std::vector data_buffer_r, std::vect printf("initialized\n"); timer::start(); - rec->Iterate(); - printf("iterate function took %g seconds\n", timer::stop()); + int ret = rec->Iterate(); + if (ret > 0) + { + good_reconstruction = false; + } + else + { + printf("iterate function took %g seconds\n", timer::stop()); + } } void Manager::StartCalc(int device, std::vector data_buffer_r, std::vector guess_buffer_r, std::vector guess_buffer_i, std::vector support_vector, std::vector dim, std::vector coh_vector, std::vector coh_dim, const std::string & config) @@ -130,7 +179,15 @@ void Manager::StartCalc(int device, std::vector data_buffer_r, std::vect if (device >= 0) { - setDevice(device); + try{ + printf("can't select gpu %d, can be not updated cache, try restart\n", device); + good_reconstruction = false; + return; + } + catch (...) + {// leave to the os to assign device + printf("can't select gpu %d\n", device); + } info(); } @@ -150,8 +207,15 @@ void Manager::StartCalc(int device, std::vector data_buffer_r, std::vect printf("initialized\n"); timer::start(); - rec->Iterate(); - printf("iterate function took %g seconds\n", timer::stop()); + int ret = rec->Iterate(); + if (ret > 0) + { + good_reconstruction = false; + } + else + { + printf("iterate function took %g seconds\n", timer::stop()); + } } std::vector Manager::GetImageR() @@ -178,6 +242,12 @@ std::vector Manager::GetImageI() std::vector Manager::GetErrors() { + if (! good_reconstruction) + { + std::vector errors; + errors.push_back(-1.0); + return errors; + } return rec->GetErrors(); } diff --git a/reccdi/src_cpp/pcdi.cpp b/reccdi/src_cpp/pcdi.cpp index 090c643..6b7cf1f 100644 --- a/reccdi/src_cpp/pcdi.cpp +++ b/reccdi/src_cpp/pcdi.cpp @@ -74,6 +74,7 @@ std::vector PartialCoherence::GetRoi() af::array PartialCoherence::ApplyPartialCoherence(af::array abs_amplitudes) { +try{ // apply coherence af::array abs_amplitudes_2 = pow(abs_amplitudes, 2); af::array converged_2 = af::fftConvolve(abs_amplitudes_2, kernel_array); @@ -83,10 +84,18 @@ af::array PartialCoherence::ApplyPartialCoherence(af::array abs_amplitudes) //printf("coherence norm %f\n", sum(pow(abs(kernel_array), 2))); //printf("converged norm %f\n", sum(pow(abs(converged), 2))); return converged; + +} +catch(af::exception& e) { + fprintf(stderr, "%s\n", e.what()); + printf("ApplyPartialCoherence\n"); + throw; + } } void PartialCoherence::UpdatePartialCoherence(af::array abs_amplitudes) { +try{ af::array abs_amplitudes_centered = shift(abs_amplitudes, dims[0]/2, dims[1]/2, dims[2]/2, dims[3]/2); af::array roi_abs_amplitudes = Utils::CropCenter(abs_amplitudes_centered, roi_dims).copy(); @@ -95,9 +104,16 @@ void PartialCoherence::UpdatePartialCoherence(af::array abs_amplitudes) //printf("Updating coherence\n"); } +catch(af::exception& e) { + fprintf(stderr, "%s\n", e.what()); + printf("UpdatePartialCoherence\n"); + throw; + } +} void PartialCoherence::OnTrigger(af::array arr) { +try{ // assume calculating coherence across all three dimensions af::array amplitudes = arr; // if symmetrize data, recalculate roi_array and roi_data - not doing it now, since default to false @@ -125,9 +141,16 @@ void PartialCoherence::OnTrigger(af::array arr) //prinf("only LUCY algorithm is currently supported"); } } +catch(af::exception& e) { + fprintf(stderr, "%s\n", e.what()); + printf("OnTrigger\n"); + throw; + } +} af::array PartialCoherence::fftConvolve(af::array arr, af::array kernel) -{ +{ +try{ af::dim4 dims_input = arr.dims(); af::dim4 dims_kernel = kernel.dims(); @@ -144,11 +167,18 @@ af::array PartialCoherence::fftConvolve(af::array arr, af::array kernel) af::array coh_padded = real( Utils::ifft( Utils::fft(arr) * Utils::fft(kernel_padded) ) ); return coh_padded; +} +catch(af::exception& e) { + fprintf(stderr, "%s\n", e.what()); + printf("fftConvolve\n"); + throw; + } } void PartialCoherence::DeconvLucy(af::array amplitudes, af::array data, int iterations) { +try{ // implementation based on Python code: https://github.com/scikit-image/scikit-image/blob/master/skimage/restoration/deconvolution.py //set it to the last coherence instead af::array coherence = kernel_array; @@ -168,6 +198,12 @@ void PartialCoherence::DeconvLucy(af::array amplitudes, af::array data, int iter //printf("coherence norm , %f\n", sum(pow(abs(coherence), 2))); kernel_array = coherence; } +catch(af::exception& e) { + fprintf(stderr, "%s\n", e.what()); + printf("DeconvLucy\n"); + throw e; + } +} af::array PartialCoherence::GetKernelArray() diff --git a/reccdi/src_cpp/worker.cpp b/reccdi/src_cpp/worker.cpp index 8fe6bd9..2a88b6a 100644 --- a/reccdi/src_cpp/worker.cpp +++ b/reccdi/src_cpp/worker.cpp @@ -90,6 +90,7 @@ Reconstruction::~Reconstruction() coherence_vector.clear(); iter_flow.clear(); algorithm_map.clear(); + Gc(); } void Reconstruction::Init() @@ -169,17 +170,21 @@ void Reconstruction::CreateAlgorithmMap() algorithm_map[ALGORITHM_HIO] = &Reconstruction::ModulusConstrainHio; } -void Reconstruction::Iterate() +int Reconstruction::Iterate() { while (state->Next()) { - current_iteration = state->GetCurrentIteration(); - if (access("stopfile", F_OK) == 0) + current_iteration = state->GetCurrentIteration(); + if (access("stopfile", F_OK) == 0) { remove("stopfile"); - break; + return (uint)(getpid()); + } + if (anyTrue(isNaN(ds_image))) + { + printf("the image array has NaN element, quiting this reconstruction process\n"); + return (uint)(getpid()); } - for (int i=0; i*iter_flow[current_iteration][i])(); @@ -198,46 +203,47 @@ void Reconstruction::Iterate() { VectorizeCoherence(); } + return 0; } void Reconstruction::NextIter() { iter_data = data; sig = params->GetSupportSigma(); - //printf("NextIter\n"); +// printf("NextIter %d\n", (uint)(getpid())); } void Reconstruction::ResolutionTrigger() { iter_data = resolution->GetIterData(current_iteration, data.copy()); sig = resolution->GetIterSigma(current_iteration); - //printf("ResolutionTrigger\n"); +// printf("ResolutionTrigger %d\n", (uint)(getpid())); } void Reconstruction::SupportTrigger() { support->UpdateAmp(ds_image.copy(), sig, current_iteration); - //printf("SupportTrigger\n"); +// printf("SupportTrigger %d\n", (uint)(getpid())); } void Reconstruction::PhaseTrigger() { support->UpdatePhase(ds_image.copy(), current_iteration); - //printf("PhaseTrigger\n"); +// printf("PhaseTrigger %d\n", (uint)(getpid())); } void Reconstruction::ToReciprocal() { rs_amplitudes = Utils::ifft(ds_image)*num_points; - //printf("data norm, ampl norm before ratio %fl %fl\n", GetNorm(iter_data), GetNorm(rs_amplitudes)); - //printf("ToReciprocal\n"); +// printf("data norm, ampl norm before ratio %fl %fl\n", GetNorm(iter_data), GetNorm(rs_amplitudes)); +// printf("ToReciprocal %d\n", (uint)(getpid())); } void Reconstruction::PcdiTrigger() { af::array abs_amplitudes = abs(rs_amplitudes).copy(); partialCoherence->UpdatePartialCoherence(abs_amplitudes); - //printf("PcdiTrigger\n"); +// printf("PcdiTrigger %d\n", (uint)(getpid())); } void Reconstruction::Pcdi() @@ -245,11 +251,11 @@ void Reconstruction::Pcdi() af::array abs_amplitudes = abs(rs_amplitudes).copy(); af::array converged = partialCoherence->ApplyPartialCoherence(abs_amplitudes); af::array ratio = Utils::GetRatio(iter_data, abs(converged)); - //printf("ratio norm %f\n", GetNorm(ratio)); +// printf("ratio norm %f\n", GetNorm(ratio)); current_error = GetNorm(abs(converged)(converged > 0)-iter_data(converged > 0))/GetNorm(iter_data); state->RecordError(current_error); rs_amplitudes *= ratio; - //printf("Pcdi\n"); +// printf("Pcdi %d\n", (uint)(getpid())); } void Reconstruction::NoPcdi() @@ -258,25 +264,25 @@ void Reconstruction::NoPcdi() current_error = GetNorm(abs(rs_amplitudes)(rs_amplitudes > 0)-iter_data(rs_amplitudes > 0))/GetNorm(iter_data); state->RecordError(current_error); rs_amplitudes *= ratio; - //printf("NoPcdi\n"); +// printf("NoPcdi %d\n", (uint)(getpid())); } void Reconstruction::Gc() { af::deviceGC(); - //printf("Gc\n"); +// printf("Gc\n"); } void Reconstruction::SetPcdiPrevious() { partialCoherence->SetPrevious(abs(rs_amplitudes)); - //printf("SetPcdiPrevious\n"); +// printf("SetPcdiPrevious\n"); } void Reconstruction::ToDirect() { ds_image_raw = Utils::fft(rs_amplitudes)/num_points; - //printf("ToDirect\n"); +// printf("ToDirect\n"); } void Reconstruction::Twin() @@ -290,12 +296,11 @@ void Reconstruction::Twin() int y_end = (twin_halves[1] == 0) ? dims[1]/2 -1 : dims[1]-1; temp( af::seq(x_start, x_end), af::seq(y_start, y_end), span, span) = 1; ds_image = ds_image * temp; - //printf("Twin\n"); +// printf("Twin\n"); } void Reconstruction::Average() { - //printf("average\n"); aver_iter++; af::array abs_image = abs(ds_image).copy(); d_type *image_v = abs_image.host(); @@ -316,7 +321,7 @@ void Reconstruction::Average() } delete [] image_v; - //printf("Average\n"); +// printf("Average\n"); } void Reconstruction::Progress() @@ -326,24 +331,24 @@ void Reconstruction::Progress() void Reconstruction::ModulusConstrainEr() { - //printf("er\n"); - //printf("image norm before support %fl\n", GetNorm(ds_image_raw)); +// printf("er\n"); +// printf("image norm before support %fl\n", GetNorm(ds_image_raw)); af::array support_array = support->GetSupportArray(); ds_image = ds_image_raw * support_array; - //printf("image norm after support %fl\n", GetNorm(ds_image)); +// printf("er, image norm after support %fl %d\n", GetNorm(ds_image), (uint)(getpid())); } void Reconstruction::ModulusConstrainHio() { - //printf("hio\n"); - //printf("image norm before support %fl\n",GetNorm(ds_image_raw)); +// printf("hio\n"); +// printf("image norm before support %fl\n",GetNorm(ds_image_raw)); //ds_image(support->GetSupportArray(state->IsApplyTwin()) == 0) = (ds_image - ds_image_raw * params->GetBeta())(support->GetSupportArray(state->IsApplyTwin()) == 0); af::array support_array = support->GetSupportArray(); af::array adjusted_calc_image = ds_image_raw * params->GetBeta(); af::array combined_image = ds_image - adjusted_calc_image; ds_image = ds_image_raw; ds_image(support_array == 0) = combined_image(support_array == 0); - //printf("image norm after support %fl\n",GetNorm(ds_image)); +// printf("hio, image norm after support %fl %d\n",GetNorm(ds_image), (uint)(getpid())); } double Reconstruction::GetNorm(af::array arr) diff --git a/reccdi/src_py/controller/fast_module.py b/reccdi/src_py/controller/fast_module.py index 105b387..7f05a31 100755 --- a/reccdi/src_py/controller/fast_module.py +++ b/reccdi/src_py/controller/fast_module.py @@ -129,10 +129,14 @@ def fast_module_reconstruction(proc, device, conf, data, coh_dims, image=None, s fast_module.start_calc_with_guess_support_coh(device, data_l, image.real.tolist(), image.imag.tolist(), support.tolist(), dims1, coherence.tolist(), coh_dims1, conf) er = copy.deepcopy(fast_module.get_errors()) + if len(er) == 1 and er[0] == -1: + # run into Nan during reconstruction + fast_module.cleanup() + return None, None, None, None, None, None, None image_r = copy.deepcopy(np.asarray(fast_module.get_image_r())) image_i = copy.deepcopy(np.asarray(fast_module.get_image_i())) image = image_r + 1j*image_i - #print ('image norm in fast module', sum(abs(image)**2)) + # normalize image mx = max(np.absolute(image).ravel().tolist()) image = image/mx diff --git a/reccdi/src_py/controller/gen_rec.py b/reccdi/src_py/controller/gen_rec.py index 4ccbedb..b997e48 100644 --- a/reccdi/src_py/controller/gen_rec.py +++ b/reccdi/src_py/controller/gen_rec.py @@ -132,6 +132,7 @@ def get_metrics(self, images, errs): def rank(self, images, errs): + print ('ranking generation ', self.current_gen) rank_property = [] reconstructions = len(images) @@ -208,6 +209,7 @@ def breed(self, images): child_cohs : list list of child coherence, set to None """ + print ('breeding generation ', (self.current_gen + 1)) sigma = self.ga_support_sigmas[self.current_gen] threshold = self.ga_support_thresholds[self.current_gen] breed_mode = self.breed_modes[self.current_gen] @@ -340,7 +342,7 @@ def breed(self, images): return child_images, child_supports -def reconstruction(proc, datafile, dir, conf_file, devices): +def reconstruction(proc, conf_file, datafile, dir, devices): """ This function controls reconstruction utilizing genetic algorithm. @@ -392,11 +394,6 @@ def reconstruction(proc, datafile, dir, conf_file, devices): filename = conf_file.split('/')[-1] save_dir = os.path.join(dir, filename.replace('config_rec', 'results')) - try: - devices = config_map.device - except: - devices = [-1] - try: generations = config_map.generations except: @@ -423,7 +420,7 @@ def reconstruction(proc, datafile, dir, conf_file, devices): # save the generation results gen_save_dir = os.path.join(save_dir, 'g_' + str(g)) ut.save_multiple_results(len(images), images, supports, cohs, errs, recips, flows, iter_arrs, gen_save_dir, metrics) - + print ('g, generations, images no', g, generations, len(images)) if g < generations - 1 and len(images) > 1: images, shrink_supports = gen_obj.breed(images) if shrink_supports is not None: @@ -439,6 +436,8 @@ def reconstruction(proc, datafile, dir, conf_file, devices): print ('gen', g) gen_data = gen_obj.get_data(data) image, support, coh, err, recip, flows, iter_arrs = rec.single_rec(proc, gen_data, conf_file, config_map, devices[0], image, support, coh) + if image is None: + return # save the generation results gen_save_dir = os.path.join(save_dir, 'g_' + str(g)) print ('gen save dir', gen_save_dir) diff --git a/reccdi/src_py/controller/reconstruction.py b/reccdi/src_py/controller/reconstruction.py index 1424f2d..c3d4667 100644 --- a/reccdi/src_py/controller/reconstruction.py +++ b/reccdi/src_py/controller/reconstruction.py @@ -83,7 +83,7 @@ def single_rec(proc, data, conf, config_map, dev, image, support, coh): return image, support, coh, er, reciprocal, flow, iter_array -def reconstruction(proc, datafile, dir, conf_file, dev): +def reconstruction(proc, conf_file, datafile, dir, dev): """ This function starts the reconstruction. It checks whether it is continuation of reconstruction defined by configuration. If continuation, the arrays of image, support, coherence are read from cont_directory, @@ -141,7 +141,9 @@ def reconstruction(proc, datafile, dir, conf_file, dev): support = None coh = None - image, support, coh, errs, recips, flow, iter_array = single_rec(proc, data, conf_file, config_map, dev, image, support, coh) + image, support, coh, errs, recips, flow, iter_array = single_rec(proc, data, conf_file, config_map, dev[0], image, support, coh) + if image is None: + return try: save_dir = config_map.save_dir diff --git a/reccdi/src_py/controller/reconstruction_multi.py b/reccdi/src_py/controller/reconstruction_multi.py index 0079fec..7c36b8c 100644 --- a/reccdi/src_py/controller/reconstruction_multi.py +++ b/reccdi/src_py/controller/reconstruction_multi.py @@ -138,6 +138,8 @@ def multi_rec(proc, data, conf, config_map, devices, prev_images, prev_supports, iter_arrs = [] def collect_result(result): for r in result: + if r[0] is None: + continue images.append(r[0]) supports.append(r[1]) cohs.append(r[2]) @@ -169,12 +171,13 @@ def collect_result(result): pool.map_async(func, iterable, callback=collect_result) pool.close() pool.join() + pool.terminate() # return only error from last iteration for each reconstruction return images, supports, cohs, errs, recips, flows, iter_arrs -def reconstruction(proc, datafile, dir, conf_file, devices): +def reconstruction(proc, conf_file, datafile, dir, devices): # proc, datafile, dir, conf_file, devices """ This function starts the reconstruction. It checks whether it is continuation of reconstruction defined by @@ -245,12 +248,7 @@ def reconstruction(proc, datafile, dir, conf_file, devices): supports.append(None) cohs.append(None) - start = time.time() - new_images, new_supports, new_cohs, errs, recips, flows, iter_arrs = multi_rec(proc, data, conf_file, config_map, devices, images, supports, cohs) - stop = time.time() - t = stop - start - print ('run in ' + str(t) + ' sec') try: save_dir = config_map.save_dir @@ -258,4 +256,4 @@ def reconstruction(proc, datafile, dir, conf_file, devices): filename = conf_file.split('/')[-1] save_dir = os.path.join(dir, filename.replace('config_rec', 'results')) - ut.save_multiple_results(reconstructions, new_images, new_supports, new_cohs, errs, recips, flows, iter_arrs, save_dir) + ut.save_multiple_results(len(new_images), new_images, new_supports, new_cohs, errs, recips, flows, iter_arrs, save_dir) diff --git a/reccdi/src_py/run_scripts/run_34id_prepare.py b/reccdi/src_py/run_scripts/run_34id_prepare.py index 52814ac..e230cd6 100755 --- a/reccdi/src_py/run_scripts/run_34id_prepare.py +++ b/reccdi/src_py/run_scripts/run_34id_prepare.py @@ -35,9 +35,9 @@ def parse_and_prepare(prefix, scan, conf_dir): print ('configured directory ' + conf_dir + ' does not exist') return - main_conf = os.path.join(conf_dir, 'config_prep') + main_conf = os.path.join(conf_dir, 'config') if not os.path.isfile(main_conf): - print ('the configuration directory does not contain "config_prep" file') + print ('the configuration directory does not contain "config" file') return try: @@ -63,7 +63,6 @@ def parse_and_prepare(prefix, scan, conf_dir): try: working_dir = config_map.working_dir.strip() except: - print ('config file does not have "working_dir" entry, defaulting to current directory') working_dir = os.getcwd() experiment_dir = os.path.join(working_dir, id) @@ -73,9 +72,32 @@ def parse_and_prepare(prefix, scan, conf_dir): experiment_conf_dir = os.path.join(experiment_dir, 'conf') if not os.path.exists(experiment_conf_dir): os.makedirs(experiment_conf_dir) - copy_conf(conf_dir, experiment_conf_dir) - prep.prepare(experiment_dir, scan_num, main_conf) + experiment_main_config = os.path.join(experiment_conf_dir, 'config') + conf_map = {} + conf_map['working_dir'] = '"' + working_dir + '"' + conf_map['experiment_id'] = '"' + prefix + '"' + conf_map['scan'] = '"' + scan + '"' + temp_file = os.path.join(experiment_conf_dir, 'temp') + with open(temp_file, 'a') as f: + for key in conf_map: + value = conf_map[key] + if len(value) > 0: + f.write(key + ' = ' + conf_map[key] + '\n') + f.close() + if not ver.ver_config(temp_file): +# os.remove(temp_file) + print('please check the entered parameters. Cannot save this format') + else: + shutil.copy(temp_file, experiment_main_config) + os.remove(temp_file) + + copy_conf(conf_dir, experiment_conf_dir) + prep_conf = os.path.join(experiment_conf_dir, 'config_prep') + if os.path.isfile(prep_conf): + prep.prepare(experiment_dir, scan_num, prep_conf) + else: + print ('missing ' + prep_conf + ' file') return experiment_dir diff --git a/reccdi/src_py/run_scripts/run_rec.py b/reccdi/src_py/run_scripts/run_rec.py index e041831..d0477a9 100755 --- a/reccdi/src_py/run_scripts/run_rec.py +++ b/reccdi/src_py/run_scripts/run_rec.py @@ -2,33 +2,30 @@ import signal import os import argparse -from multiprocessing import Process +from multiprocessing import Process, Queue import reccdi.src_py.controller.reconstruction as rec import reccdi.src_py.controller.gen_rec as gen_rec import reccdi.src_py.controller.reconstruction_multi as mult_rec import reccdi.src_py.utilities.utils as ut import reccdi.src_py.utilities.parse_ver as ver import time +from functools import reduce -def interrupt_thread(processes): +MEM_FACTOR = 1500 +ADJUST = 0.0 + +def interrupt_thread(): """ This function is part of interrupt mechanism. It detects ctl-c signal and creates an empty file named "stopfile". The file is discovered by fast module and the discovery prompts termonation of the process. """ def int_handler(signal, frame): - is_file = False - while not is_file and len(processes) > 0: - # each process will remove a stopfile - # it is assumed that a 'stopfile' will be discovered by fast module and deleted in 1 sec + while not os.path.isfile('stopfile'): open('stopfile', 'a').close() - time.sleep(.1) - for p in processes: - if not p.is_alive(): - processes.remove(p) - is_file = os.path.isfile('stopfile') + time.sleep(.3) - #remove the file at the end + # #remove the file at the end if os.path.isfile('stopfile'): os.remove('stopfile') @@ -40,6 +37,38 @@ def term_handler(signal, frame): signal.pause() +def rec_process(proc, conf_file, datafile, dir, gpus, r, q): + if r == 'g': + gen_rec.reconstruction(proc, conf_file, datafile, dir, gpus) + elif r == 'm': + mult_rec.reconstruction(proc, conf_file, datafile, dir, gpus) + elif r == 's': + rec.reconstruction(proc, conf_file, datafile, dir, gpus) + q.put((os.getpid(), gpus)) + + +def get_gpu_use(devices, no_dir, no_rec, data_size): + rec_mem_size = data_size / MEM_FACTOR + gpu_load = ut.get_gpu_load(rec_mem_size, devices) + no_runs = no_dir * no_rec + gpu_distribution = ut.get_gpu_distribution(no_runs, gpu_load) + gpu_use = [] + available = reduce((lambda x,y: x+y), gpu_distribution) + dev_index = 0 + i = 0 + while i < available: + if gpu_distribution[dev_index] > 0: + gpu_use.append(devices[dev_index]) + gpu_distribution[dev_index] = gpu_distribution[dev_index] -1 + i += 1 + dev_index += 1 + dev_index = dev_index % len(devices) + if no_dir > 1: + gpu_use = [gpu_use[x:x+no_rec] for x in range(0, len(gpu_use), no_rec)] + + return gpu_use + + def manage_reconstruction(proc, experiment_dir, rec_id=None): """ This function starts the interruption discovery thread and the recontruction thread. @@ -56,10 +85,8 @@ def manage_reconstruction(proc, experiment_dir, rec_id=None): conf_dir = os.path.join(experiment_dir, 'conf') if rec_id is None: conf_file = os.path.join(conf_dir, 'config_rec') - id = None else: conf_file = os.path.join(conf_dir, rec_id + '_config_rec') - id = rec_id # check if file exists if not os.path.isfile(conf_file): @@ -86,18 +113,19 @@ def manage_reconstruction(proc, experiment_dir, rec_id=None): if dir.startswith('scan'): datafile = os.path.join(experiment_dir, dir, 'data', 'data.tif') if os.path.isfile(datafile): - exp_dirs_data.append((os.path.join(experiment_dir, dir), datafile)) - # if there are no scan directories, assume it is combined scan experiment + exp_dirs_data.append((datafile, os.path.join(experiment_dir, dir))) + # if there are no scan directories, assume it is combined scans experiment if len(exp_dirs_data) == 0: # in typical scenario data_dir is not configured, and it is defaulted to /data - # the data_dir will be ignored in multi-scan scenario + # the data_dir is ignored in multi-scan scenario try: data_dir = config_map.data_dir except AttributeError: data_dir = os.path.join(experiment_dir, 'data') datafile = os.path.join(data_dir, 'data.tif') if os.path.isfile(datafile): - exp_dirs_data.append((experiment_dir, datafile)) + exp_dirs_data.append((datafile, experiment_dir)) + no_runs = len(exp_dirs_data) try: generations = config_map.generations @@ -112,50 +140,69 @@ def manage_reconstruction(proc, experiment_dir, rec_id=None): except: devices = [-1] - # run the reconstruction concurrently if the config_rec has the parameter "reconstructions" configured - # to 1 or missing. Otherwise, multiple reconstructions will run for each scan per configuration, so the gpus will - # be utilized for the multiple reconstructions. Therefore each scan will run separately. - # Also to run it concurrently, the number of configured devices must be greater than 1 - if len(exp_dirs_data) > 1 and len(devices) > 1 and reconstructions == 1: + if (no_runs > 1 or reconstructions > 1) and devices[0] != -1: + from functools import reduce + # find size of data array + data_shape = ut.read_tif(exp_dirs_data[0][0]).shape + data_size = reduce((lambda x,y: x*y), data_shape) + gpu_use = get_gpu_use(devices, no_runs, reconstructions, data_size) + else: + gpu_use = devices + + if generations > 1: + r = gen_rec + elif reconstructions > 1: + r = mult_rec + else: + r = rec + + # start the interrupt process + interrupt_process = Process(target=interrupt_thread, args=()) + interrupt_process.start() + + if no_runs == 1: + dir_data = exp_dirs_data[0] + datafile = dir_data[0] + dir = dir_data[1] + r.reconstruction(proc, conf_file, datafile, dir, gpu_use) + else: + # check if is it worth to use last chunk + if len(gpu_use[0]) > len(gpu_use[-1])*2: + gpu_use = gpu_use[0:-1] + + if generations > 1: + r = 'g' + elif reconstructions > 1: + r = 'm' + else: + r = 's' + + q = Queue() + for gpus in gpu_use: + q.put((None, gpus)) # index keeps track of the multiple directories index = 0 - not_done = True - while not_done: - rec_processes = [] - # divide the reconstructions over devices - for dev in devices: - if index == len(exp_dirs_data): - not_done = False - break - else: - datafile = exp_dirs_data[index][1] - dir = exp_dirs_data[index][0] - if generations > 1: - p = Process(target = gen_rec.reconstruction, args = (proc, datafile, dir, conf_file, dev)) - else: - p = Process(target = rec.reconstruction, args = (proc, datafile, dir, conf_file, dev)) - index += 1 - p.start() - rec_processes.append(p) - # start the interrupt process - sp = Process(target=interrupt_thread, args=(rec_processes,)) - sp.start() - exit_codes = [p.join() for p in rec_processes] - sp.terminate() - else: - # start the interrupt process - sp = Process(target=interrupt_thread, args=([],)) - sp.start() - for dir_data in exp_dirs_data: - datafile = dir_data[1] - dir = dir_data[0] - if generations > 1: - gen_rec.reconstruction(proc, datafile, dir, conf_file, devices) - elif reconstructions > 1: - mult_rec.reconstruction(proc, datafile, dir, conf_file, devices) - else: - rec.reconstruction(proc, datafile, dir, conf_file, devices[0]) - sp.terminate() + processes = {} + while index < no_runs: + pid, gpus = q.get() + if pid is not None: + os.kill(pid, signal.SIGKILL) + del processes[pid] + datafile = exp_dirs_data[index][0] + dir = exp_dirs_data[index][1] + p = Process(target = rec_process, args = (proc, conf_file, datafile, dir, gpus, r, q)) + p.start() + processes[p.pid] = index + index += 1 + + # close the queue + while len(processes.items()) > 0: + pid, gpus = q.get() + os.kill(pid, signal.SIGKILL) + del processes[pid] + q.close() + + interrupt_process.terminate() print ('finished reconstruction') diff --git a/reccdi/src_py/utilities/utils.py b/reccdi/src_py/utilities/utils.py index 0668d8e..013567f 100644 --- a/reccdi/src_py/utilities/utils.py +++ b/reccdi/src_py/utilities/utils.py @@ -19,6 +19,8 @@ import os import logging import stat +from functools import reduce +import GPUtil __author__ = "Barbara Frosik" __copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." @@ -535,3 +537,36 @@ def arr_property(arr): max_coordinates = list(np.unravel_index(np.argmax(arr1), arr.shape)) print ('max coords, value', max_coordinates, arr[max_coordinates[0], max_coordinates[1],max_coordinates[2]]) + +def get_gpu_load(mem_size, ids): + gpus = GPUtil.getGPUs() + total_avail = 0 + available_dir = {} + for gpu in gpus: + if gpu.id in ids: + free_mem = gpu.memoryFree + avail_runs = int(free_mem / mem_size) + if avail_runs > 0: + total_avail += avail_runs + available_dir[gpu.id] = avail_runs + available = [] + for id in ids: + try: + avail_runs = available_dir[id] + except: + avail_runs = 0 + available.append(avail_runs) + return available + + +def get_gpu_distribution(runs, available): + all_avail = reduce((lambda x,y: x+y), available) + while runs < all_avail: + # balance distribution + for i in range(len(available)): + if available[i] > 0: + available[i] -= 1 + all_avail -= 1 + if all_avail == runs: + break + return available From d033347a29d46ba4f457d6dc7ebe2132e5609885 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Tue, 10 Dec 2019 16:00:11 -0600 Subject: [PATCH 209/336] updated license file and meta --- LICENSE | 62 ++++++++++++++++--------------------------------------- meta.yaml | 10 ++++----- 2 files changed, 23 insertions(+), 49 deletions(-) diff --git a/LICENSE b/LICENSE index afd5044..b569fb8 100644 --- a/LICENSE +++ b/LICENSE @@ -1,44 +1,18 @@ -# ######################################################################### -# Copyright (c), UChicago Argonne, LLC. All rights reserved. # -# # -# Copyright. UChicago Argonne, LLC. This software was produced # -# under U.S. Government contract DE-AC02-06CH11357 for Argonne National # -# Laboratory (ANL), which is operated by UChicago Argonne, LLC for the # -# U.S. Department of Energy. The U.S. Government has rights to use, # -# reproduce, and distribute this software. NEITHER THE GOVERNMENT NOR # -# UChicago Argonne, LLC MAKES ANY WARRANTY, EXPRESS OR IMPLIED, OR # -# ASSUMES ANY LIABILITY FOR THE USE OF THIS SOFTWARE. If software is # -# modified to produce derivative works, such modified software should # -# be clearly marked, so as not to confuse it with the version available # -# from ANL. # -# # -# Additionally, redistribution and use in source and binary forms, with # -# or without modification, are permitted provided that the following # -# conditions are met: # -# # -# * Redistributions of source code must retain the above copyright # -# notice, this list of conditions and the following disclaimer. # -# # -# * Redistributions in binary form must reproduce the above copyright # -# notice, this list of conditions and the following disclaimer in # -# the documentation and/or other materials provided with the # -# distribution. # -# # -# * Neither the name of UChicago Argonne, LLC, Argonne National # -# Laboratory, ANL, the U.S. Government, nor the names of its # -# contributors may be used to endorse or promote products derived # -# from this software without specific prior written permission. # -# # -# THIS SOFTWARE IS PROVIDED BY UChicago Argonne, LLC AND CONTRIBUTORS # -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT # -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS # -# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL UChicago # -# Argonne, LLC OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, # -# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, # -# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; # -# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER # -# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # -# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN # -# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # -# POSSIBILITY OF SUCH DAMAGE. # -# ######################################################################### +Copyright © 2019, UChicago Argonne, LLC +All Rights Reserved + Software Name: CDI Reconstruction (reccdi) +By: Argonne National Laboratory +OPEN SOURCE LICENSE + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. +3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + + +****************************************************************************************************** +DISCLAIMER + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*************************************************************************************************** \ No newline at end of file diff --git a/meta.yaml b/meta.yaml index 14f559f..5197ae7 100644 --- a/meta.yaml +++ b/meta.yaml @@ -1,9 +1,9 @@ package: name: reccdi - version: v1.0 + version: "1.0" source: - path: . + path: reccdi build: script_env: @@ -25,12 +25,12 @@ requirements: - tifffile - pylibconfig2 - xrayutilities - - python - traits - mayavi about: home: https://github.com/advancedPhotonSource/cdi - license: UChicago Argonne, see LICENSE file - summary: Implement and parallelize genetic algorithms and phase retrieval methods for Bragg CDI techniques. + license: BSD + license_file: LICENSE + summary: Implement and parallelize genetic algorithms and phase retrieval methods for Bragg CDI techniques. \ No newline at end of file From 6c453a7843ac42c4eadae14acf1f0b14691a6a87 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Wed, 11 Dec 2019 16:48:29 -0600 Subject: [PATCH 210/336] changed library path from chosen to lib --- reccdi/src_py/cyth/bridge_cpu.pyx | 4 ++-- reccdi/src_py/cyth/bridge_cuda.pyx | 4 ++-- reccdi/src_py/cyth/bridge_opencl.pyx | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/reccdi/src_py/cyth/bridge_cpu.pyx b/reccdi/src_py/cyth/bridge_cpu.pyx index 465547a..3219efb 100644 --- a/reccdi/src_py/cyth/bridge_cpu.pyx +++ b/reccdi/src_py/cyth/bridge_cpu.pyx @@ -6,10 +6,10 @@ # distutils: language = c++ -# distutils: include_dirs = ['reccdi/include', 'AF_DIR/include', 'LC_DIR/include',] +# distutils: include_dirs = ['reccdi/include', 'lib/arrayfire/include', 'lib/libconfig/include',] # distutils: sources = ['reccdi/src_cpp/bridge.cpp', 'reccdi/src_cpp/manager.cpp', 'reccdi/src_cpp/parameters.cpp', 'reccdi/src_cpp/pcdi.cpp', 'reccdi/src_cpp/resolution.cpp', 'reccdi/src_cpp/state.cpp', 'reccdi/src_cpp/support.cpp', 'reccdi/src_cpp/util.cpp', 'reccdi/src_cpp/worker.cpp'] # distutils: libraries = ['afcpu', 'config++',] -# distutils: library_dirs = ['AF_DIR/lib64', 'LC_DIR/lib',] +# distutils: library_dirs = ['lib/arrayfire/lib64', 'lib/libconfig/lib',] from libcpp.vector cimport vector from libcpp.string cimport string diff --git a/reccdi/src_py/cyth/bridge_cuda.pyx b/reccdi/src_py/cyth/bridge_cuda.pyx index bd5e2f7..eb71e65 100755 --- a/reccdi/src_py/cyth/bridge_cuda.pyx +++ b/reccdi/src_py/cyth/bridge_cuda.pyx @@ -6,10 +6,10 @@ # distutils: language = c++ -# distutils: include_dirs = ['reccdi/include', 'AF_DIR/include', 'LC_DIR/include',] +# distutils: include_dirs = ['reccdi/include', 'lib/arrayfire/include', 'lib/libconfig/include',] # distutils: sources = ['reccdi/src_cpp/bridge.cpp', 'reccdi/src_cpp/manager.cpp', 'reccdi/src_cpp/parameters.cpp', 'reccdi/src_cpp/pcdi.cpp', 'reccdi/src_cpp/resolution.cpp', 'reccdi/src_cpp/state.cpp', 'reccdi/src_cpp/support.cpp', 'reccdi/src_cpp/util.cpp', 'reccdi/src_cpp/worker.cpp'] # distutils: libraries = ['afcuda', 'config++',] -# distutils: library_dirs = ['AF_DIR/lib64', 'LC_DIR/lib',] +# distutils: library_dirs = ['lib/arrayfire/lib64', 'lib/libconfig/lib',] from libcpp.vector cimport vector from libcpp.string cimport string diff --git a/reccdi/src_py/cyth/bridge_opencl.pyx b/reccdi/src_py/cyth/bridge_opencl.pyx index 5feffcb..1a0d9bb 100755 --- a/reccdi/src_py/cyth/bridge_opencl.pyx +++ b/reccdi/src_py/cyth/bridge_opencl.pyx @@ -6,10 +6,10 @@ # distutils: language = c++ -# distutils: include_dirs = ['reccdi/include', 'AF_DIR/include', 'LC_DIR/include',] +# distutils: include_dirs = ['reccdi/include', 'lib/arrayfire/include', 'lib/libconfig/include',] # distutils: sources = ['reccdi/src_cpp/bridge.cpp', 'reccdi/src_cpp/manager.cpp', 'reccdi/src_cpp/parameters.cpp', 'reccdi/src_cpp/pcdi.cpp', 'reccdi/src_cpp/resolution.cpp', 'reccdi/src_cpp/state.cpp', 'reccdi/src_cpp/support.cpp', 'reccdi/src_cpp/util.cpp', 'reccdi/src_cpp/worker.cpp'] # distutils: libraries = ['afopencl', 'config++',] -# distutils: library_dirs = ['AF_DIR/lib64', 'LC_DIR/lib',] +# distutils: library_dirs = ['lib/arrayfire/lib64', 'lib/libconfig/lib',] from libcpp.vector cimport vector from libcpp.string cimport string From 8ddd6124bb8fa56c15ee7e72ff83c072990c0907 Mon Sep 17 00:00:00 2001 From: Service Account for David Cyl Date: Mon, 6 Jan 2020 13:30:46 -0600 Subject: [PATCH 211/336] Not sure why there are so many files being added. --- bin/cdi_window.sh | 2 +- bin/everything.sh | 2 +- bin/run_disp.py | 1 + bin/run_rec.sh | 2 +- bin/setenv.sh | 3 + .../src_py/beamlines/aps_34id/__init__.py | 0 .../reccdi/src_py/beamlines/aps_34id/prep.py | 288 + .../reccdi/src_py/controller/__init__.py | 0 .../reccdi/src_py/controller/data.py | 200 + .../reccdi/src_py/controller/fast_module.py | 177 + .../reccdi/src_py/controller/gen_rec.py | 449 ++ .../src_py/controller/reconstruction.py | 154 + .../src_py/controller/reconstruction_multi.py | 259 + .../reccdi/src_py/cyth/__init__.py | 0 .../reccdi/src_py/cyth/bridge_cpu.pyx | 72 + .../reccdi/src_py/cyth/bridge_cuda.pyx | 70 + .../reccdi/src_py/cyth/bridge_opencl.pyx | 70 + .../reccdi/src_py/run_scripts/__init__.py | 0 .../reccdi/src_py/run_scripts/everything.py | 29 + .../src_py/run_scripts/run_34id_prepare.py | 119 + .../reccdi/src_py/run_scripts/run_data.py | 29 + .../reccdi/src_py/run_scripts/run_disp.py | 136 + .../reccdi/src_py/run_scripts/run_rec.py | 229 + .../reccdi/src_py/utilities/CXDVizNX.py | 374 ++ .../reccdi/src_py/utilities/__init__.py | 1 + .../reccdi/src_py/utilities/parse_ver.py | 861 +++ .../reccdi/src_py/utilities/spec.py | 61 + .../reccdi/src_py/utilities/utils.py | 572 ++ .../reccdi/src_py/utilities/utils_ga.py | 219 + .../src_py/beamlines/aps_34id/__init__.py | 0 .../reccdi/src_py/beamlines/aps_34id/prep.py | 288 + .../reccdi/src_py/controller/__init__.py | 0 .../reccdi/src_py/controller/data.py | 200 + .../reccdi/src_py/controller/fast_module.py | 177 + .../reccdi/src_py/controller/gen_rec.py | 449 ++ .../src_py/controller/reconstruction.py | 154 + .../src_py/controller/reconstruction_multi.py | 259 + .../reccdi/src_py/cyth/__init__.py | 0 ...bridge_cpu.cpython-37m-x86_64-linux-gnu.so | Bin 0 -> 1983176 bytes .../reccdi/src_py/cyth/bridge_cpu.pyx | 72 + ...ridge_cuda.cpython-37m-x86_64-linux-gnu.so | Bin 0 -> 1983256 bytes .../reccdi/src_py/cyth/bridge_cuda.pyx | 70 + ...dge_opencl.cpython-37m-x86_64-linux-gnu.so | Bin 0 -> 1983408 bytes .../reccdi/src_py/cyth/bridge_opencl.pyx | 70 + .../reccdi/src_py/run_scripts/__init__.py | 0 .../reccdi/src_py/run_scripts/everything.py | 29 + .../src_py/run_scripts/run_34id_prepare.py | 119 + .../reccdi/src_py/run_scripts/run_data.py | 29 + .../reccdi/src_py/run_scripts/run_disp.py | 136 + .../reccdi/src_py/run_scripts/run_rec.py | 229 + .../reccdi/src_py/utilities/CXDVizNX.py | 374 ++ .../reccdi/src_py/utilities/__init__.py | 1 + .../reccdi/src_py/utilities/parse_ver.py | 861 +++ .../reccdi/src_py/utilities/spec.py | 61 + .../reccdi/src_py/utilities/utils.py | 572 ++ .../reccdi/src_py/utilities/utils_ga.py | 219 + .../reccdi/src_cpp/bridge.o | Bin 0 -> 534856 bytes .../reccdi/src_py/cyth/bridge_cpu.o | Bin 0 -> 1080720 bytes .../reccdi/src_cpp/bridge.o | Bin 0 -> 534832 bytes .../reccdi/src_cpp/manager.o | Bin 0 -> 481616 bytes .../reccdi/src_cpp/parameters.o | Bin 0 -> 708488 bytes .../reccdi/src_cpp/pcdi.o | Bin 0 -> 286384 bytes .../reccdi/src_cpp/resolution.o | Bin 0 -> 218368 bytes .../reccdi/src_cpp/state.o | Bin 0 -> 213304 bytes .../reccdi/src_cpp/support.o | Bin 0 -> 196056 bytes .../reccdi/src_cpp/util.o | Bin 0 -> 255400 bytes .../reccdi/src_cpp/worker.o | Bin 0 -> 999584 bytes .../reccdi/src_py/cyth/bridge_cpu.o | Bin 0 -> 1151360 bytes .../reccdi/src_py/cyth/bridge_cuda.o | Bin 0 -> 1151432 bytes .../reccdi/src_py/cyth/bridge_opencl.o | Bin 0 -> 1151632 bytes reccdi/src_py/cyth/bridge_cpu.cpp | 5917 +++++++++++++++++ ...bridge_cpu.cpython-37m-x86_64-linux-gnu.so | Bin 0 -> 1983176 bytes reccdi/src_py/cyth/bridge_cpu.pyx | 4 +- reccdi/src_py/cyth/bridge_cuda.cpp | 5916 ++++++++++++++++ ...ridge_cuda.cpython-37m-x86_64-linux-gnu.so | Bin 0 -> 1983256 bytes reccdi/src_py/cyth/bridge_cuda.pyx | 4 +- reccdi/src_py/cyth/bridge_opencl.cpp | 5916 ++++++++++++++++ ...dge_opencl.cpython-37m-x86_64-linux-gnu.so | Bin 0 -> 1983408 bytes reccdi/src_py/cyth/bridge_opencl.pyx | 4 +- 79 files changed, 26500 insertions(+), 9 deletions(-) create mode 100644 bin/setenv.sh create mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/beamlines/aps_34id/__init__.py create mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/beamlines/aps_34id/prep.py create mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/controller/__init__.py create mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/controller/data.py create mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/controller/fast_module.py create mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/controller/gen_rec.py create mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/controller/reconstruction.py create mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/controller/reconstruction_multi.py create mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/cyth/__init__.py create mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/cyth/bridge_cpu.pyx create mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/cyth/bridge_cuda.pyx create mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/cyth/bridge_opencl.pyx create mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/__init__.py create mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/everything.py create mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/run_34id_prepare.py create mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/run_data.py create mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/run_disp.py create mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/run_rec.py create mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/CXDVizNX.py create mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/__init__.py create mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/parse_ver.py create mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/spec.py create mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/utils.py create mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/utils_ga.py create mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/__init__.py create mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/prep.py create mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/controller/__init__.py create mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/controller/data.py create mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/controller/fast_module.py create mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/controller/gen_rec.py create mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/controller/reconstruction.py create mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/controller/reconstruction_multi.py create mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/cyth/__init__.py create mode 100755 build/lib.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_cpu.cpython-37m-x86_64-linux-gnu.so create mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_cpu.pyx create mode 100755 build/lib.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_cuda.cpython-37m-x86_64-linux-gnu.so create mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_cuda.pyx create mode 100755 build/lib.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_opencl.cpython-37m-x86_64-linux-gnu.so create mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_opencl.pyx create mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/__init__.py create mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/everything.py create mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/run_34id_prepare.py create mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/run_data.py create mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/run_disp.py create mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/run_rec.py create mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/CXDVizNX.py create mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/__init__.py create mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/parse_ver.py create mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/spec.py create mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/utils.py create mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/utils_ga.py create mode 100644 build/temp.linux-x86_64-2.7/reccdi/src_cpp/bridge.o create mode 100644 build/temp.linux-x86_64-2.7/reccdi/src_py/cyth/bridge_cpu.o create mode 100644 build/temp.linux-x86_64-3.7/reccdi/src_cpp/bridge.o create mode 100644 build/temp.linux-x86_64-3.7/reccdi/src_cpp/manager.o create mode 100644 build/temp.linux-x86_64-3.7/reccdi/src_cpp/parameters.o create mode 100644 build/temp.linux-x86_64-3.7/reccdi/src_cpp/pcdi.o create mode 100644 build/temp.linux-x86_64-3.7/reccdi/src_cpp/resolution.o create mode 100644 build/temp.linux-x86_64-3.7/reccdi/src_cpp/state.o create mode 100644 build/temp.linux-x86_64-3.7/reccdi/src_cpp/support.o create mode 100644 build/temp.linux-x86_64-3.7/reccdi/src_cpp/util.o create mode 100644 build/temp.linux-x86_64-3.7/reccdi/src_cpp/worker.o create mode 100644 build/temp.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_cpu.o create mode 100644 build/temp.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_cuda.o create mode 100644 build/temp.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_opencl.o create mode 100644 reccdi/src_py/cyth/bridge_cpu.cpp create mode 100755 reccdi/src_py/cyth/bridge_cpu.cpython-37m-x86_64-linux-gnu.so create mode 100644 reccdi/src_py/cyth/bridge_cuda.cpp create mode 100755 reccdi/src_py/cyth/bridge_cuda.cpython-37m-x86_64-linux-gnu.so create mode 100644 reccdi/src_py/cyth/bridge_opencl.cpp create mode 100755 reccdi/src_py/cyth/bridge_opencl.cpython-37m-x86_64-linux-gnu.so diff --git a/bin/cdi_window.sh b/bin/cdi_window.sh index 21fa991..50a7cb0 100644 --- a/bin/cdi_window.sh +++ b/bin/cdi_window.sh @@ -6,5 +6,5 @@ p=${p//"anaconda2"/"anaconda3"} p=${p//"CXDUSER/anaconda"/"CXDUSER/CDI/anaconda"} export PATH=$p -export LD_LIBRARY_PATH=LIB_PATH +export LD_LIBRARY_PATH=/home/beams/CXDUSER/CDI/libconfig/lib:/usr/local/lib:/home/beams/CXDUSER/CDI/arrayfire/lib64:/usr/lib64:/usr/nvvm/lib64 python bin/cdi_window.py diff --git a/bin/everything.sh b/bin/everything.sh index db91bd0..fa8e682 100644 --- a/bin/everything.sh +++ b/bin/everything.sh @@ -6,7 +6,7 @@ p=${p//"anaconda2"/"anaconda3"} p=${p//"CXDUSER/anaconda"/"CXDUSER/CDI/anaconda"} export PATH=$p -export LD_LIBRARY_PATH=LIB_PATH +export LD_LIBRARY_PATH=/home/beams/CXDUSER/CDI/libconfig/lib:/usr/local/lib:/home/beams/CXDUSER/CDI/arrayfire/lib64:/usr/lib64:/usr/nvvm/lib64 dev=$1 prefix=$2 diff --git a/bin/run_disp.py b/bin/run_disp.py index 605bcf4..eada1eb 100755 --- a/bin/run_disp.py +++ b/bin/run_disp.py @@ -107,6 +107,7 @@ def to_vtk(experiment_dir, results_dir=None): dirs = [] for (dirpath, dirnames, filenames) in os.walk(results_dir): for file in filenames: + print("file", file) if file.endswith('image.npy'): dirs.append((dirpath, conf_dict)) diff --git a/bin/run_rec.sh b/bin/run_rec.sh index 19e495e..24725d2 100644 --- a/bin/run_rec.sh +++ b/bin/run_rec.sh @@ -6,7 +6,7 @@ p=${p//"anaconda2"/"anaconda3"} p=${p//"CXDUSER/anaconda"/"CXDUSER/CDI/anaconda"} export PATH=$p -export LD_LIBRARY_PATH=LIB_PATH +export LD_LIBRARY_PATH=/home/beams/CXDUSER/CDI/libconfig/lib:/usr/local/lib:/home/beams/CXDUSER/CDI/arrayfire/lib64:/usr/lib64:/usr/nvvm/lib64 python bin/run_rec.py $1 $2 diff --git a/bin/setenv.sh b/bin/setenv.sh new file mode 100644 index 0000000..cd90992 --- /dev/null +++ b/bin/setenv.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +export LD_LIBRARY_PATH=/home/beams/CXDUSER/CDI/libconfig/lib:/usr/local/lib:/home/beams/CXDUSER/CDI/arrayfire/lib64:/usr/lib64:/usr/nvvm/lib64 diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/beamlines/aps_34id/__init__.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/beamlines/aps_34id/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/beamlines/aps_34id/prep.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/beamlines/aps_34id/prep.py new file mode 100644 index 0000000..d6ddd0c --- /dev/null +++ b/build/lib.linux-x86_64-2.7/reccdi/src_py/beamlines/aps_34id/prep.py @@ -0,0 +1,288 @@ +import pylibconfig2 as cfg +import numpy as np +import copy +import scipy.fftpack as sf +import os +import glob +import tifffile as tif +import reccdi.src_py.utilities.spec as spec +import reccdi.src_py.utilities.utils as ut + + +def get_dir_list(scans, map): + """ + Returns list of sub-directories in data_dir with names matching range of scans + It will exclude scans within exclude_scans list if provided, and directories with fewer files than + min_files, if provided + :param scans: + :param map: + :return: + """ + try: + min_files = map.min_files + except: + min_files = 0 + try: + exclude_scans = map.exclude_scans + except: + exclude_scans = [] + try: + data_dir = map.data_dir.strip() + except: + print ('please provide data_dir') + return + + dirs = [] + for name in os.listdir(data_dir): + subdir = os.path.join(data_dir, name) + if os.path.isdir(subdir): + # exclude directories with fewer tif files than min_files + if len(glob.glob1(subdir, "*.tif")) < min_files and len(glob.glob1(subdir, "*.tiff")) < min_files: + continue + try: + index = int(name[-4:]) + if index >= scans[0] and index <= scans[1] and not index in exclude_scans: + dirs.append(subdir) + except: + continue + return dirs + + +def get_dark_white(darkfile, whitefile, det_area1, det_area2): + if darkfile is not None: + # find the darkfield array + dark_full = tif.imread(darkfile).astype(float) + # crop the corresponding quad or use the whole array, depending on what info was parsed from spec file + dark = dark_full[slice(det_area1[0], det_area1[0] + det_area1[1]), slice(det_area2[0], det_area2[0] + det_area2[1])] + else: + dark = None + + if whitefile is not None: + # find the whitefield array + white_full = tif.imread(whitefile).astype(float) + # crop the corresponding quad or use the whole array, depending on what info was parsed from spec file + white = white_full[slice(det_area1[0], det_area1[0] + det_area1[1]), slice(det_area2[0], det_area2[0] + det_area2[1])] + # set the bad pixels to some large value + white = np.where(white<5000, 1e20, white) #Some large value + else: + white = None + + return dark, white + + +def get_normalized_slice(file, dark, white): + # file is a tuple of slice and either background slice or None + slice = tif.TiffFile(file[0]).asarray() + if file[1] is not None: + slice = slice - tif.TiffFile(file[1]).asarray() + if dark is not None: + slice = np.where(dark > 5, 0, slice) #Ignore cosmic rays + # here would be code for correction for dead time + if white is not None: + slice = slice/white + slice *= 1e5 #Some medium value + slice = np.where(np.isnan(slice), 0, slice) + return slice + + +def read_scan(dir, dark, white): + files = [] + files_dir = {} + for file in os.listdir(dir): + if file.endswith('tif') or file.endswith('tiff'): + temp = file.split('.') + #it's assumed that the files end with four digits and 'tif' or 'tiff' extension + key = temp[0][-4:] + files_dir[key] = file + + ordered_keys = sorted(list(files_dir.keys())) + + for key in ordered_keys: + file = files_dir[key] + file = os.path.join(dir, file) + bg_file = file.replace('.tif', '_bg.tif') + if not os.path.isfile(bg_file): + bg_file = None + + files.append((file, bg_file)) + + # look at slice0 to find out shape + n = 0 + slice0 = get_normalized_slice(files[n], dark, white) + shape = (slice0.shape[0], slice0.shape[1], len(files)) + arr = np.zeros(shape, dtype=slice0.dtype) + arr[:,:,0] = slice0 + + #for i in range (1, len(files)): + for file in files[1:]: + n = n + 1 + slice = get_normalized_slice(file, dark, white) + arr[:,:,n] = slice + return arr + + +def shift(arr, shifty): + # pass the FT of the fftshifted array you want to shift + # you get back the actual array, not the FT. + dims = arr.shape + # scipy does normalize ffts! + ftarr = sf.fftn(arr) + r=[] + for d in dims: + r.append(slice(int(np.ceil(-d/2.)), int(np.ceil(d/2.)), None)) + idxgrid = np.mgrid[r] + for d in range(len(dims)): + ftarr *= np.exp(-1j*2*np.pi*shifty[d]*sf.fftshift(idxgrid[d])/float(dims[d])) + + shifted_arr = sf.ifftn(ftarr) + return shifted_arr + + +def combine_part(part_f, slice_sum, refpart, part): + # get cross correlation and pixel shift + cross_correlation = sf.ifftn(refpart*np.conj(part_f)) + corelated = np.array(cross_correlation.shape) + amp = np.abs(cross_correlation) + intshift = np.unravel_index(amp.argmax(), corelated) + shifted = np.array(intshift) + pixelshift = np.where(shifted>=corelated/2, shifted-corelated, shifted) + return slice_sum + shift(part, pixelshift) + + +def fit(arr, det_area1, det_area2): + # The det_area parameters hold the [beginning of image, size] in both dimensions. + # the beginning of image is relative to the full sensor image 512 x 512. + # if the full sensor was used for the image (i.e. the data size is 512x512) + # or if the image overleaps multiple quads, + # the quadrants need to be shifted + # check whether the image was taken with a single quad, then no shift is needed + if (det_area1[0] + det_area1[1] <= 256) and (det_area2[0] + det_area2[1] <= 256): + return arr + else: + b = np.zeros((517,516,arr.shape[2]),float) + tmp = np.zeros((512,512,arr.shape[2]),float) + tmp[det_area1[0]:det_area1[0]+det_area1[1],det_area2[0]:det_area2[0]+det_area2[1],:] = arr + b[:256,:256,:] = tmp[:256,:256,:] #Quad top left unchanged + b[:256,260:,:] = tmp[:256,256:,:] #Quad top right moved 4 right + b[261:,:256,:] = tmp[256:,:256,:] #Quad bot left moved 6 down + b[261:,260:,:] = tmp[256:,256:,:] #Quad bot right + + return b[det_area1[0]:det_area1[0]+det_area1[1],det_area2[0]:det_area2[0]+det_area2[1],:] + + +def prep_data(experiment_dir, scans, map, det_area1, det_area2, *args): + if scans is None: + print ('scan info not provided') + return + + # build sub-directories map + if len(scans) == 1: + scans.append(scans[0]) + dirs = get_dir_list(scans, map) + if len(dirs) == 0: + print ('no data directories found') + return + else: + if not os.path.exists(experiment_dir): + os.makedirs(experiment_dir) + + try: + whitefile = (map.whitefile).strip() + except: + whitefile = None + + try: + darkfile = (map.darkfile).strip() + except: + darkfile = None + + dark, white = get_dark_white(darkfile, whitefile, det_area1, det_area2) + + if len(dirs) == 0: + print ('there are no data directories for given scans') + return + + if len(dirs) == 1: + arr = read_scan(dirs[0], dark, white) + arr = fit(arr, det_area1, det_area2) + else: + # make the first part a reference + part = read_scan(dirs[0], dark, white) + part = fit(part, det_area1, det_area2) + slice_sum = np.abs(copy.deepcopy(part)) + refpart = sf.fftn(part) + for i in range (1, len(dirs)): + #this will load scans from each directory into an array part + part = read_scan(dirs[i], dark, white) + part = fit(part, det_area1, det_area2) + # add the arrays together + part_f = sf.fftn(part) + slice_sum = combine_part(part_f, slice_sum, refpart, part) + arr = np.abs(slice_sum).astype(np.int32) + + #arr = fit(arr, det_area1, det_area2) + + #create directory to save prepared data ,/prep + prep_data_dir = os.path.join(experiment_dir, 'prep') + if not os.path.exists(prep_data_dir): + os.makedirs(prep_data_dir) + data_file = os.path.join(prep_data_dir, 'prep_data.tif') + + ut.save_tif(arr, data_file) + print ('done with prep, shape:', arr.shape) + + +def prepare(experiment_dir, scans, conf_file, *args): + try: + with open(conf_file, 'r') as f: + config_map = cfg.Config(f.read()) + except Exception as e: + print('Please check the configuration file ' + conf_file + '. Cannot parse ' + str(e)) + return + + scan_end = scans[len(scans)-1] + try: + specfile = config_map.specfile.strip() + # parse det1 and det2 parameters from spec + det_area1, det_area2 = spec.get_det_from_spec(specfile, scan_end) + except: + try: + det_quad = config_map.det_quad + if det_quad == 0: + det_area1 = (0, 512) + det_area2 = (0, 512) + elif det_quad == 1: + det_area1 = (0, 256) + det_area2 = (0, 256) + elif det_quad == 2: + det_area1 = (0, 256) + det_area2 = (256, 512) + elif det_quad == 3: + det_area1 = (256, 512) + det_area2 = (0, 256) + elif det_quad == 4: + det_area1 = (256, 512) + det_area2 = (256, 512) + else: + print('the detector quad can be configured as digt from 0 to 4') + return + except Exception as e: + print('spec file or scan is not configured, and detector quad is not configured') + return + + try: + separate_scans = config_map.separate_scans + except: + separate_scans = False + + # data prep + # if separate scans, prepare data in each scan separately in subdirectory + if separate_scans and len(scans) > 1: + for scan in range (scans[0], scans[1]+1): + single_scan = [scan] + scan_exp_dir = os.path.join(experiment_dir, 'scan_' + str(scan)) + prep_data(scan_exp_dir, single_scan, config_map, det_area1, det_area2, args) + else: + prep_data(experiment_dir, scans, config_map, det_area1, det_area2, args) + + diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/__init__.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/data.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/data.py new file mode 100644 index 0000000..652022d --- /dev/null +++ b/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/data.py @@ -0,0 +1,200 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + + +""" +Please make sure the installation :ref:`pre-requisite-reference-label` are met. +This module controls the reconstruction process. The user has to provide parameters such as type of processor, data, and configuration. +The processor specifies which library will be used by CFM (Calc Fast Module) that performs the processor intensive calculations. The module +can be run on cpu, or gpu. Depending on the gpu hardware and library, one can use opencl or cuda library. +The module starts the data preparation routines, calls for reconstruction using the CFM, and prepares the reconstructed data for +visualization. +""" + +import numpy as np +import reccdi.src_py.utilities.utils as ut +import reccdi.src_py.utilities.parse_ver as ver +import os + + +__author__ = "Barbara Frosik" +__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." +__docformat__ = 'restructuredtext en' +__all__ = ['prep'] + + +def prep(fname, conf_info): + + """ + This function prepares raw data for reconstruction. It uses configured parameters. The preparation consists of the following steps: + 1. clearing the noise - the values below an amplitude threshold are set to zero + 2. removing the "aliens" - aliens are areas that are effect of interference. The area is manually set in a configuration file + after inspecting the data. + 3. binning - adding amplitudes of several consecutive points. Binning can be done in any dimension. + 4. amplitudes are set to sqrt + 5. cropping and padding. If the adjust_dimention is negative in any dimension, the array is cropped in this dimension. + The cropping is followed by padding in the dimensions that have positive adjust dimension. After adjusting, the dimensions + are adjusted further to find the smallest dimension that is supported by opencl library (multiplier of 2, 3, and 5). + 6. centering - finding the greatest amplitude and locating it at a center of new array. If shift center is defined, the + center will be shifted accordingly. The shifted elements are rolled into the other end of array. + + The modified data is then saved in data directory. + + Parameters + ---------- + fname : str + tif file containing raw data + + conf_info : str + experiment directory or configuration file. If it is directory, the "conf/config_data" will be + appended to determine configuration file + + Returns + ------- + nothing + """ + # The data has been transposed when saved in tif format for the ImageJ to show the right orientation + data = ut.read_tif(fname) + + if os.path.isdir(conf_info): + experiment_dir = conf_info + conf = os.path.join(experiment_dir, 'conf', 'config_data') + # if the experiment contains separate scan directories + if not os.path.isfile(conf): + base_dir = os.path.abspath(os.path.join(experiment_dir, os.pardir)) + conf = os.path.join(base_dir, 'conf', 'config_data') + else: + #assuming it's a file + conf = conf_info + experiment_dir = None + + # verify the configuration file + if not ver.ver_config_data(conf): + return + + try: + config_map = ut.read_config(conf) + if config_map is None: + print ("can't read configuration file") + return + except: + print ('Please check the configuration file ' + conf + '. Cannot parse') + return + + # saving file for Kenley project - AI aliens removing + print ('saving for AI') + d_f = os.path.join(experiment_dir, 'prep', 'prep_data.npy') + np.save(d_f, data) + # zero out the ares defined by aliens + try: + aliens = config_map.aliens + print ('removing aliens') + for alien in aliens: + # The ImageJ swaps the x and y axis, so the aliens coordinates needs to be swapped, since ImageJ is used + # to find aliens + data[alien[1]:alien[4], alien[0]:alien[3], alien[2]:alien[5]] = 0 + # saving file for Kenley project - AI aliens removing + aliens_f = os.path.join(experiment_dir, 'prep', 'aliens') + with open(aliens_f, 'a') as a_f: + try: + with open(conf, 'r') as f: + for line in f: + if line.startswith('aliens'): + a_f.write(line + '\n') + break + f.close() + a_f.close() + except: + pass + # saving file for Kenley project - AI aliens removing + d_f = os.path.join(experiment_dir, 'prep', 'prep_no_aliens.npy') + np.save(d_f, data) + d_f = os.path.join(experiment_dir, 'prep', 'prep_no_aliens.tif') + ut.save_tif(data, d_f) + + except AttributeError: + pass + except: + print ('error in aliens configuration') + + try: + amp_threshold = config_map.amp_threshold + print ('applied threshold') + except AttributeError: + print ('define amplitude threshold. Exiting') + return + + # zero out the noise + prep_data = np.where(data <= amp_threshold, 0, data) + + # square root data + prep_data = np.sqrt(prep_data) + + try: + crops_pads = config_map.adjust_dimensions + # the adjust_dimention parameter list holds adjustment in each direction. Append 0s, if shorter + if len(crops_pads) < 6: + for _ in range (6 - len(crops_pads)): + crops_pads.append(0) + except AttributeError: + # the size still has to be adjusted to the opencl supported dimension + crops_pads = (0, 0, 0, 0, 0, 0) + # adjust the size, either pad with 0s or crop array + print ('cropping and/or padding dimensions') + pairs = [] + for i in range(int(len(crops_pads)/2)): + pair = crops_pads[2*i:2*i+2] + pairs.append(pair) + # change pairs x and y, as the ImageJ swaps the axes + pairs[0], pairs[1] = pairs[1], pairs[0] + prep_data = ut.adjust_dimensions(prep_data, pairs) + if prep_data is None: + print('check "adjust_dimensions" configuration') + return + + try: + center_shift = config_map.center_shift + print ('shift center') + prep_data = ut.get_centered(prep_data, center_shift) + except AttributeError: + prep_data = ut.get_centered(prep_data, [0,0,0]) + + try: + binsizes = config_map.binning + try: + bins = [] + for binsize in binsizes: + bins.append(binsize) + filler = len(prep_data.shape) - len(bins) + for _ in range(filler): + bins.append(1) + bins[0], bins[1] = bins[1], bins[0] + prep_data = ut.binning(prep_data, bins) + except: + print ('check "binning" configuration') + except AttributeError: + pass + + try: + data_dir = config_map.data_dir + except AttributeError: + data_dir = 'data' + if experiment_dir is not None: + data_dir = os.path.join(experiment_dir, data_dir) + if not os.path.exists(data_dir): + os.makedirs(data_dir) + + # save data + data_file = os.path.join(data_dir, 'data.tif') + # np.save(data_file, prep_data) + ut.save_tif(prep_data, data_file) + print ('data ready for reconstruction, data dims:', prep_data.shape) + + +#prep('/local/bfrosik/CDI/S149/Staff14-3_S0149.tif', 'config_data') diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/fast_module.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/fast_module.py new file mode 100644 index 0000000..7f05a31 --- /dev/null +++ b/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/fast_module.py @@ -0,0 +1,177 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + + +""" +Please make sure the installation :ref:`pre-requisite-reference-label` are met. +This module controls the reconstruction process. The user has to provide parameters such as type of processor, data, and configuration. +The processor specifies which library will be used by CFM (Calc Fast Module) that performs the processor intensive calculations. The module +can be run on cpu, or gpu. Depending on the gpu hardware and library, one can use opencl or cuda library. +The module starts the data preparation routines, calls for reconstruction using the CFM, and prepares the reconstructed data for +visualization. +""" + +import numpy as np +import scipy.fftpack as sf +# import reccdi.src_py.cyth.bridge_cpu as bridge_cpu +# import reccdi.src_py.cyth.bridge_opencl as bridge_opencl +# import reccdi.src_py.cyth.bridge_cuda as bridge_cuda +import copy + + +__author__ = "Barbara Frosik" +__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." +__docformat__ = 'restructuredtext en' +__all__ = ['fast_module_reconstruction',] + + +def fast_module_reconstruction(proc, device, conf, data, coh_dims, image=None, support=None, coherence=None): + """ + This function calls a bridge method corresponding to the requested processor type. The bridge method is an access + to the CFM (Calc Fast Module). When reconstruction is completed the function retrieves results from the CFM. + The data received is max centered and the array is ordered "C". The CFM requires data zero-frequency component at + the center of the spectrum and "F" array order. Thus the data is modified at the beginning. + + Parameters + ---------- + proc : str + a string indicating the processor type + + device : int + device id assigned to this reconstruction + + conf : dict + configuration map + + data : array + a 3D np array containing pre-processed experiment data + + coh_dims : tuple + shape of coherence array + + image : numpy array + initial image for reconstruction or None + + support : numpy array + support corresponding to image or None + + coherence : numpy array + coherence corresponding to image + + Returns + ------- + image : numpy array + reconstructed image + + support : numpy array + support for reconstructed image + + coherence : numpy array + coherence for reconstructed image + + er : list + a vector containing errors for each iteration + """ + if proc == 'cpu': + import reccdi.src_py.cyth.bridge_cpu as bridge_cpu + fast_module = bridge_cpu.PyBridge() + elif proc == 'opencl': + import reccdi.src_py.cyth.bridge_opencl as bridge_opencl + fast_module = bridge_opencl.PyBridge() + elif proc == 'cuda': + import reccdi.src_py.cyth.bridge_cuda as bridge_cuda + fast_module = bridge_cuda.PyBridge() + + # shift data + data = sf.fftshift(data) + data = np.swapaxes(data,1,2) + + dims = data.shape + dims1 = (dims[2], dims[1], dims[0]) + + data_l = data.flatten().tolist() + if image is None: + fast_module.start_calc(device, data_l, dims1, conf) + elif support is None: + # pass image + image = np.swapaxes(image, 1, 0) + image = np.swapaxes(image, 2, 0) + image = image.flatten() + fast_module.start_calc_with_guess(device, data_l, image.real.tolist(), image.imag.tolist(), dims1, conf) + elif coherence is None: + # pass image and support + image = np.swapaxes(image, 1, 0) + image = np.swapaxes(image, 2, 0) + image = image.flatten() + support = np.swapaxes(support, 1, 0) + support = np.swapaxes(support, 2, 0) + support = support.flatten() + fast_module.start_calc_with_guess_support(device, data_l, image.real.tolist(), image.imag.tolist(), support.tolist(), dims1, conf) + else: + # pass image and support and coherence + image = np.swapaxes(image, 1, 0) + image = np.swapaxes(image, 2, 0) + image = image.flatten() + support = np.swapaxes(support, 1, 0) + support = np.swapaxes(support, 2, 0) + support = support.flatten() + coh_dims1 = (coh_dims[2], coh_dims[1], coh_dims[0]) + coherence = np.swapaxes(coherence, 1, 0) + coherence = np.swapaxes(coherence, 2, 0) + coherence = coherence.flatten() + + fast_module.start_calc_with_guess_support_coh(device, data_l, image.real.tolist(), image.imag.tolist(), support.tolist(), dims1, coherence.tolist(), coh_dims1, conf) + + er = copy.deepcopy(fast_module.get_errors()) + if len(er) == 1 and er[0] == -1: + # run into Nan during reconstruction + fast_module.cleanup() + return None, None, None, None, None, None, None + image_r = copy.deepcopy(np.asarray(fast_module.get_image_r())) + image_i = copy.deepcopy(np.asarray(fast_module.get_image_i())) + image = image_r + 1j*image_i + + # normalize image + mx = max(np.absolute(image).ravel().tolist()) + image = image/mx + + support = copy.deepcopy(np.asarray(fast_module.get_support())) + coherence = copy.deepcopy(np.asarray(fast_module.get_coherence())) + + image = np.reshape(image, dims) + image = np.swapaxes(image, 2, 0) + image = np.swapaxes(image, 1, 0) + + support = np.reshape(support, dims) + support = np.swapaxes(support, 2, 0) + support = np.swapaxes(support, 1, 0) + + if coherence.shape[0] > 1: + coherence = np.reshape(coherence, coh_dims) + coherence = np.swapaxes(coherence, 2, 0) + coherence = np.swapaxes(coherence, 1, 0) + else: + coherence = None + + reciprocal_r = copy.deepcopy(np.asarray(fast_module.get_reciprocal_r())) + reciprocal_i = copy.deepcopy(np.asarray(fast_module.get_reciprocal_i())) + reciprocal = reciprocal_r + 1j*reciprocal_i + reciprocal = np.reshape(reciprocal, dims) + reciprocal = np.swapaxes(reciprocal, 2, 1) + reciprocal = sf.ifftshift(reciprocal) + + iter_array = copy.deepcopy(np.asarray(fast_module.get_iter_flow())) + flow = copy.deepcopy(list(fast_module.get_flow())) + flow_len = len(flow) + iter_array = np.reshape(iter_array, (flow_len, int(iter_array.shape[0]/flow_len))) + + fast_module.cleanup() + + return image, support, coherence, er, reciprocal, flow, iter_array + diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/gen_rec.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/gen_rec.py new file mode 100644 index 0000000..b997e48 --- /dev/null +++ b/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/gen_rec.py @@ -0,0 +1,449 @@ + +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + + +""" +This module controls the genetic algoritm process. +""" + +import numpy as np +import os +import reccdi.src_py.controller.reconstruction as single +import reccdi.src_py.controller.reconstruction_multi as multi +import reccdi.src_py.utilities.utils as ut +import reccdi.src_py.utilities.utils_ga as gut + + +__author__ = "Barbara Frosik" +__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." +__docformat__ = 'restructuredtext en' +__all__ = ['read_config', + 'reconstruction'] + + +class Generation: + """ + This class holds fields relevant to generations according to configuration. + """ + def __init__(self, config_map): + self.current_gen = 0 + try: + self.generations = config_map.generations + except AttributeError: + self.generations = 1 + + try: + self.metrics = tuple(config_map.ga_metrics) + if len(self.metrics) < self.generations: + self.metrics = self.metrics + ('chi',) * (self.generations - len(self.metrics)) + except AttributeError: + self.metrics = ('chi',) * self.generations + + try: + self.worst_remove_no = tuple(config_map.ga_removes) + if len(self.worst_remove_no) < self.generations: + self.worst_remove_no = self.worst_remove_no + (0,) * (self.generations - len(self.worst_remove_no)) + except AttributeError: + self.worst_remove_no = None + + try: + self.ga_support_thresholds = tuple(config_map.ga_support_thresholds) + if len(self.ga_support_thresholds) < self.generations: + try: + support_threshold = config_map.support_threshold + except: + support_threshold = .1 + self.ga_support_thresholds = self.ga_support_thresholds + (support_threshold,) * (self.generations - len(self.ga_support_thresholds)) + except AttributeError: + try: + support_threshold = config_map.support_threshold + except: + support_threshold = .1 + self.ga_support_thresholds = (support_threshold,) * (self.generations) + + try: + self.ga_support_sigmas = tuple(config_map.ga_support_sigmas) + if len(self.ga_support_sigmas) < self.generations: + try: + support_sigma = config_map.support_sigma + except: + support_sigma = 1.0 + self.ga_support_sigmas = self.ga_support_sigmas + (support_sigma,) * (self.generations - len(self.ga_support_sigmas)) + except AttributeError: + try: + support_sigma = config_map.support_sigma + except: + support_sigma = 1.0 + self.ga_support_sigmas = (support_sigma,) * (self.generations) + + try: + self.breed_modes = tuple(config_map.ga_breed_modes) + if len(self.breed_modes) < self.generations: + self.breed_modes = self.breed_modes + ('none',) * (self.generations - len(self.breed_modes)) + except AttributeError: + self.breed_modes = ('none',) * self.generations + + try: + self.sigmas = config_map.ga_low_resolution_sigmas + self.low_resolution_generations = len(self.sigmas) + except AttributeError: + self.low_resolution_generations = 0 + + if self.low_resolution_generations > 0: + try: + self.low_resolution_alg = config_map.ga_low_resolution_alg + except AttributeError: + self.low_resolution_alg = 'GAUSS' + + + def next_gen(self): + self.current_gen += 1 + + def get_data(self, data): + if self.current_gen >= self.low_resolution_generations: + return data + else: + gmask = self.get_gmask(data.shape) + return data * gmask + + + def get_gmask(self, shape): + if self.low_resolution_alg == 'GAUSS': + if self.sigmas[self.current_gen] < 1.0: + ut.gaussian(shape, self.sigmas[self.current_gen]) + else: + return np.ones(shape) + + + def get_metrics(self, images, errs): + metrics = [] + for i in range(len(images)): + pop_metric = {} + pop_metric['chi'] = errs[i][-1] + pop_metric['sharpness'] = sum(sum(sum(pow(abs(images[i]), 4)))) + pop_metric['summed_phase'] = sum(sum(gut.sum_phase_tight_support(images[i]))) + pop_metric['area'] = sum(sum(sum(ut.shrink_wrap(images[i], .2, .5)))) + metrics.append(pop_metric) + return metrics + + + def rank(self, images, errs): + print ('ranking generation ', self.current_gen) + rank_property = [] + + reconstructions = len(images) + metric = self.metrics[self.current_gen] + + for i in range (reconstructions): + image = images[i] + if metric == 'chi': + rank_property.append(errs[i][-1]) + elif metric == 'sharpness': + rank_property.append(sum(sum(sum(pow(abs(image), 4))))) + elif metric == 'summed_phase': + rank_property.append(sum(sum(gut.sum_phase_tight_support(image)))) + elif metric == 'area': + support = ut.shrink_wrap(image, .2, .5) + rank_property.append(sum(sum(sum(support)))) + # elif metric == 'TV': + # gradients = np.gradient(image) + # TV = np.zeros(image.shape) + # for gr in gradients: + # TV += abs(gr) + # rank_property.append(TV) + else: + # metric is 'chi' + rank_property.append(errs[i][-1]) + + # ranks keeps indexes of reconstructions from best to worst + # for most of the metric types the minimum of the metric is best, but for + # 'summed_phase' and 'area' it is oposite, so reversing the order + ranks = np.argsort(rank_property).tolist() + if metric == 'summed_phase' or metric == 'area': + ranks.reverse() + return ranks + + + def order(self, images, supports, cohs, errs, recips): + ranks = self.rank(images, errs) + ordered_images = [] + ordered_supports = [] + ordered_cohs = [] + ordered_errs = [] + ordered_recips = [] + for i in range(len(ranks)): + ordered_images.append(images[ranks[i]]) + ordered_supports.append(supports[ranks[i]]) + ordered_cohs.append(cohs[ranks[i]]) + ordered_errs.append(errs[ranks[i]]) + ordered_recips.append(recips[ranks[i]]) + + return ordered_images, ordered_supports, ordered_cohs, ordered_errs, ordered_recips + + + def breed(self, images): + """ + This function ranks the multiple reconstruction. It breeds next generation by combining the reconstructed + images, centered + For each combined image the support is calculated and coherence is set to None. + The number of bred images matches the number of reconstructions. + + Parameters + ---------- + images : list + ordered (best to worst) list of images arrays + + supports : list + list of supports arrays + + Returns + ------- + child_images : list + list of bred images + child_supports : list + list of calculated supports corresponding to child_images + child_cohs : list + list of child coherence, set to None + """ + print ('breeding generation ', (self.current_gen + 1)) + sigma = self.ga_support_sigmas[self.current_gen] + threshold = self.ga_support_thresholds[self.current_gen] + breed_mode = self.breed_modes[self.current_gen] + if breed_mode == 'none': + return images, None + reconstructions = len(images) + if self.worst_remove_no is not None: + reconstructions = reconstructions - self.worst_remove_no[self.current_gen] + + ims = images[0 : reconstructions] + dims = len(ims[0].shape) + ims_arr = np.stack(ims) + + alpha = ims[0] + alpha = gut.zero_phase(alpha, 0) + + # put the best into the bred population + child_images = [alpha] + child_supports = [ut.shrink_wrap(alpha, threshold, sigma)] + + for ind in range(1, len(ims)): + beta = ims[ind] + beta = gut.zero_phase(beta, 0) + alpha = gut.check_get_conj_reflect(beta, alpha) + alpha_s = gut.align_arrays(beta, alpha) + alpha_s = gut.zero_phase(alpha_s, 0) + ph_alpha = np.angle(alpha_s) + beta = gut.zero_phase_cc(beta, alpha_s) + ph_beta = np.angle(beta) + + if breed_mode == 'sqrt_ab': + beta = np.sqrt(abs(alpha_s) * abs(beta)) * np.exp(0.5j * (ph_beta + ph_alpha)) + + elif breed_mode == 'max_all': + amp = np.amax(abs(ims_arr), axis=0) + beta = amp * np.exp(1j * ph_beta) + + elif breed_mode == 'Dhalf': + nhalf = round(len(ims)/2) + delta = nhalf * ims[ind] - np.sum(np.stack(ims[:nhalf]), axis=0) + beta = beta + delta + + elif breed_mode == 'dsqrt': + amp = pow(abs(beta), .5) + beta = amp * np.exp(1j * ph_beta) + + elif breed_mode == 'pixel_switch': + cond = np.random.random_sample(beta.shape) + beta = np.where((cond > 0.5), beta, alpha_s) + + elif breed_mode == 'b_pa': + beta = abs(beta) * np.exp(1j * (ph_alpha)) + + elif breed_mode == '2ab_a_b': + beta = 2*(beta * alpha_s) / (beta + alpha_s) + + elif breed_mode == '2a_b_pa': + beta = (2*abs(alpha_s)-abs(beta)) * np.exp(1j *ph_alpha) + + elif breed_mode == 'sqrt_ab_pa': + beta = np.sqrt(abs(alpha_s) * abs(beta)) * np.exp(1j * ph_alpha) + + elif breed_mode == 'sqrt_ab_pa_recip': + temp1 = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(beta))) + temp2 = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(alpha_s))) + temp = np.sqrt(abs(temp1) * abs(temp2)) * np.exp(1j * np.angle(temp2)) + beta = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(temp))) + + elif breed_mode == 'sqrt_ab_recip': + temp1 = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(beta))) + temp2 = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(alpha_s))) + temp = np.sqrt(abs(temp1) *abs(temp2)) *np.exp(.5j *np.angle(temp1)) *np.exp(.5j *np.angle(temp2)) + beta = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(temp))) + + elif breed_mode == 'max_ab': + beta = np.maximum(abs(alpha_s), abs(beta)) * np.exp(.5j *(ph_beta + ph_alpha)) + + elif breed_mode == 'max_ab_pa': + beta = np.maximum(abs(alpha_s), abs(beta)) * np.exp(1j *ph_alpha) + + elif breed_mode == 'min_ab_pa': + beta = np.minimum(abs(alpha_s), abs(beta)) * np.exp(1j *ph_alpha) + + elif breed_mode == 'avg_ab': + beta = 0.5 *(alpha_s + beta) + + elif breed_mode == 'avg_ab_pa': + beta = 0.5 *(abs(alpha_s) + abs(beta)) * np.exp(1j *(ph_alpha)) + else: + # The following modes include gamma; gamma is in index 1 + # gamma = zero_phase(gamma, val); + # ph_gamma = atan2(imag(gamma), real(gamma)); + + gamma = ims[1] + gamma = gut.zero_phase(gamma, 0) + if ind > 1: + gamma = gut.check_get_conj_reflect(beta, gamma) + gamma_s = gut.align_arrays(abs(beta), abs(gamma)) + gamma_s = gut.zero_phase(gamma_s, 0) + ph_gamma = np.angle(gamma_s) + else: + gamma_s = gamma + ph_gamma = np.arctan2(gamma.imag, gamma.real) + + if breed_mode == 'sqrt_abg': + beta = pow((abs(alpha_s) *abs(beta) *abs(gamma_s)), (1/3)) *np.exp(1j *(ph_beta+ph_alpha+ph_gamma)/3.0) + + elif breed_mode == 'sqrt_abg_pa': + beta = pow((abs(alpha_s) *abs(beta) *abs(gamma_s)), (1/3)) *np.exp(1j *ph_alpha) + + elif breed_mode == 'max_abg': + beta = np.maximum(np.maximum(abs(alpha_s), abs(beta)), abs(gamma_s)) *np.exp(1j *(ph_beta+ph_alpha+ph_gamma)/3.0) + + elif breed_mode == 'max_abg_pa': + beta = np.maximum(np.maximum(abs(alpha_s), abs(beta)),abs(gamma_s)) *np.exp(1j *ph_alpha) + + elif breed_mode == 'avg_abg': + beta = (1/3)*(alpha_s+beta+gamma_s) + + elif breed_mode == 'avg_abg_pa': + beta = (1/3)*(abs(alpha_s)+abs(beta)+abs(gamma_s)) *np.exp(1j *ph_alpha) + + elif breed_mode == 'avg_sqrt': + amp=( pow(abs(beta), 1/3)+pow(abs(alpha_s), 1/3)+pow(abs(gamma_s), 1/3))/3 + beta = pow(amp, 3) * np.exp(1j *ph_beta) + + child_images.append(beta) + child_supports.append(ut.shrink_wrap(beta, threshold, sigma)) + + return child_images, child_supports + + +def reconstruction(proc, conf_file, datafile, dir, devices): + """ + This function controls reconstruction utilizing genetic algorithm. + + Parameters + ---------- + generation : int + number of generations + + proc : str + processor to run on (cpu, opencl, or cuda) + + data : numpy array + initial data + + conf_info : str + experiment directory or configuration file. If it is directory, the "conf/config_rec" will be + appended to determine configuration file + + conf_map : dict + a dictionary from parsed configuration file + + Returns + ------- + nothing + """ + data = ut.read_tif(datafile) + print ('data shape', data.shape) + data = np.swapaxes(data, 0, 2) + data = np.swapaxes(data, 0, 1) + + try: + config_map = ut.read_config(conf_file) + if config_map is None: + print("can't read configuration file " + conf_file) + return + except: + print('Cannot parse configuration file ' + conf_file + ' , check for matching parenthesis and quotations') + return + try: + reconstructions = config_map.reconstructions + except: + reconstructions = 1 + + gen_obj = Generation(config_map) + + try: + save_dir = config_map.save_dir + except AttributeError: + filename = conf_file.split('/')[-1] + save_dir = os.path.join(dir, filename.replace('config_rec', 'results')) + + try: + generations = config_map.generations + except: + print ('generations not configured') + return + + # init starting values + # if multiple reconstructions configured (typical for genetic algorithm), use "reconstruction_multi" module + if reconstructions > 1: + images = [] + supports = [] + cohs = [] + for _ in range(reconstructions): + images.append(None) + supports.append(None) + cohs.append(None) + rec = multi + # load parls configuration + for g in range(generations): + gen_data = gen_obj.get_data(data) + images, supports, cohs, errs, recips, flows, iter_arrs = rec.multi_rec(proc, gen_data, conf_file, config_map, devices, images, supports, cohs) + images, supports, cohs, errs, recips = gen_obj.order(images, supports, cohs, errs, recips) + metrics = gen_obj.get_metrics(images, errs) + # save the generation results + gen_save_dir = os.path.join(save_dir, 'g_' + str(g)) + ut.save_multiple_results(len(images), images, supports, cohs, errs, recips, flows, iter_arrs, gen_save_dir, metrics) + print ('g, generations, images no', g, generations, len(images)) + if g < generations - 1 and len(images) > 1: + images, shrink_supports = gen_obj.breed(images) + if shrink_supports is not None: + supports = shrink_supports + gen_obj.next_gen() + else: + image = None + support = None + coh = None + rec = single + + for g in range(generations): + print ('gen', g) + gen_data = gen_obj.get_data(data) + image, support, coh, err, recip, flows, iter_arrs = rec.single_rec(proc, gen_data, conf_file, config_map, devices[0], image, support, coh) + if image is None: + return + # save the generation results + gen_save_dir = os.path.join(save_dir, 'g_' + str(g)) + print ('gen save dir', gen_save_dir) + ut.save_results(image, support, coh, err, recip, flows, iter_arrs, gen_save_dir) + gen_obj.next_gen() + + print ('done gen') + + diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/reconstruction.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/reconstruction.py new file mode 100644 index 0000000..c3d4667 --- /dev/null +++ b/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/reconstruction.py @@ -0,0 +1,154 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + + +""" +Please make sure the installation :ref:`pre-requisite-reference-label` are met. +This module controls the reconstruction process. The user has to provide parameters such as type of processor, data, and configuration. +The processor specifies which library will be used by CFM (Calc Fast Module) that performs the processor intensive calculations. The module +can be run on cpu, or gpu. Depending on the gpu hardware and library, one can use opencl or cuda library. +The module starts the data preparation routines, calls for reconstruction using the CFM, and prepares the reconstructed data for +visualization. +""" + +import numpy as np +import os +import reccdi.src_py.controller.fast_module as calc +import reccdi.src_py.utilities.utils as ut +import reccdi.src_py.controller.reconstruction_multi as multi + + +__author__ = "Barbara Frosik" +__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." +__docformat__ = 'restructuredtext en' +__all__ = ['read_config', + 'reconstruction'] + + +def single_rec(proc, data, conf, config_map, dev, image, support, coh): + + """ + This function starts and returns results of reconstruction. The parameters must be initialized. + + Parameters + ---------- + proc : str + a string indicating the processor type + + data : numpy array + data array + + conf : str + configuration file name + + config_map : dict + parsed configuration + + image : numpy array + reconstructed image for further reconstruction, or None for initial + + support : numpy array + support of reconstructed image, or None + + coh : numpy array + coherence of reconstructed images, or None + + Returns + ------- + image : numpy array + reconstructed image + + support : numpy array + support of reconstructed images + + coh : numpy array + coherence of reconstructed images + + errs : list + list of errors (should we take the last error?) + """ + try: + coh_dims = tuple(config_map.partial_coherence_roi) + except: + coh_dims = None + image, support, coh, er, reciprocal, flow, iter_array = calc.fast_module_reconstruction(proc, dev, conf, data, coh_dims, image, support, coh) + + # errs contain errors for each iteration + return image, support, coh, er, reciprocal, flow, iter_array + + +def reconstruction(proc, conf_file, datafile, dir, dev): + """ + This function starts the reconstruction. It checks whether it is continuation of reconstruction defined by + configuration. If continuation, the arrays of image, support, coherence are read from cont_directory, + otherwise, they are initialized to None. After the arrays are initialized, they are passed for the reconstruction. + The results are saved in the configured directory. + + Parameters + ---------- + proc : str + a string indicating the processor type (cpu, opencl, cuda) + + data : numpy array + data array + + conf_info : str + configuration file name or experiment directory. If directory, the configuration file is + defined as /conf/config_rec + + config_map : dict + parsed configuration + + Returns + ------- + nothing + """ + data = ut.read_tif(datafile) + print ('data shape', data.shape) + data = np.swapaxes(data, 0, 2) + data = np.swapaxes(data, 0, 1) + + try: + config_map = ut.read_config(conf_file) + if config_map is None: + print("can't read configuration file " + conf_file) + return + except: + print('Cannot parse configuration file ' + conf_file + ' , check for matching parenthesis and quotations') + return + + cont = False + try: + if config_map.cont: + try: + continue_dir = config_map.continue_dir + image, support, coh = ut.read_results(continue_dir) + cont = True + except: + print("continue_dir not configured") + return None + except: + pass + + if not cont: + image = None + support = None + coh = None + + image, support, coh, errs, recips, flow, iter_array = single_rec(proc, data, conf_file, config_map, dev[0], image, support, coh) + if image is None: + return + + try: + save_dir = config_map.save_dir + except AttributeError: + filename = conf_file.split('/')[-1] + save_dir = os.path.join(dir, filename.replace('config_rec', 'results')) + + ut.save_results(image, support, coh, np.asarray(errs), recips, flow, iter_array, save_dir) diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/reconstruction_multi.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/reconstruction_multi.py new file mode 100644 index 0000000..7c36b8c --- /dev/null +++ b/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/reconstruction_multi.py @@ -0,0 +1,259 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + + +""" +Please make sure the installation :ref:`pre-requisite-reference-label` are met. +This module controls the reconstruction process. The user has to provide parameters such as type of processor, data, and configuration. +The processor specifies which library will be used by CFM (Calc Fast Module) that performs the processor intensive calculations. The module +can be run on cpu, or gpu. Depending on the gpu hardware and library, one can use opencl or cuda library. +The module starts the data preparation routines, calls for reconstruction using the CFM, and prepares the reconstructed data for +visualization. +""" + +import os +import numpy as np +import reccdi.src_py.utilities.utils as ut +import reccdi.src_py.controller.fast_module as calc +import time +from multiprocessing import Pool, Queue +from functools import partial + +__author__ = "Barbara Frosik" +__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." +__docformat__ = 'restructuredtext en' +__all__ = ['read_config', + 'reconstruction'] + + +def single_rec_process(proc, conf, data, coh_dims, prev): + """ + This function runs in the reconstruction palarellized by Parsl. + + Parameters + ---------- + proc : str + string defining library used 'cpu' or 'opencl' or 'cuda' + + device : int + device allocated to this reconstruction or -1 if not configured + + conf : str + configuration file + + data : numpy array + data array + + coh_dims : tuple + shape of coherence array + + prev_image : numpy array or None + previously reconstructed image (if continuation or genetic algorithm) or None + + prev_support : numpy array or None + support of previously reconstructed image (if continuation or genetic algorithm) or None + + prev_coh : numpy array or None + coherence of previously reconstructed image (if continuation or genetic algorithm) or None + + Returns + ------- + image : numpy array + reconstructed image + + support : numpy array + support of reconstructed image + + coherence : coherence of reconstructed image + + error : list containing errors for iterations + """ + prev_image, prev_support, prev_coh = prev + image, support, coherence, errors, reciprocal, flow, iter_array = calc.fast_module_reconstruction(proc, gpu, conf, data, coh_dims, + prev_image, prev_support, prev_coh) + return image, support, coherence, errors, reciprocal, flow, iter_array + + +def assign_gpu(*args): + q = args[0] + global gpu + gpu = q.get() + + +def multi_rec(proc, data, conf, config_map, devices, prev_images, prev_supports, prev_cohs=None): + + """ + This function controls the multiple reconstructions. It invokes a loop to execute parallel resconstructions, + wait for all reconstructions to deliver results, and store te results. + + Parameters + ---------- + proc : str + a string indicating the processor type + + data : numpy array + data array + + conf : str + configuration file name + + config_map : dict + parsed configuration + + images : list + list of numpy arrays containing reconstructed images for further reconstruction, or None for initial + + supports : list + list of numpy arrays containing support of reconstructed images, or None + + cohs : list + list of numpy arrays containing coherence of reconstructed images, or None + + Returns + ------- + images : list + list of numpy arrays containing reconstructed images + + supports : list + list of numpy arrays containing support of reconstructed images + + cohs : list + list of numpy arrays containing coherence of reconstructed images + + errs : list + list of lists of errors (now each element is another list by iterations, but should we take the last error?) + """ + images = [] + supports = [] + cohs = [] + errs = [] + recips = [] + flows = [] + iter_arrs = [] + def collect_result(result): + for r in result: + if r[0] is None: + continue + images.append(r[0]) + supports.append(r[1]) + cohs.append(r[2]) + errs.append(r[3]) + recips.append(r[4]) + flows.append(r[5]) + iter_arrs.append(r[6]) + + reconstructions = config_map.reconstructions + + try: + coh_dims = tuple(config_map.partial_coherence_roi) + except: + coh_dims = None + + iterable = [] + for i in range(reconstructions): + if prev_cohs is None: + coh = None + else: + coh = prev_cohs[i] + iterable.append((prev_images[i], prev_supports[i], coh)) + + func = partial(single_rec_process, proc, conf, data, coh_dims) + q = Queue() + for device in devices: + q.put(device) + with Pool(processes = len(devices),initializer=assign_gpu, initargs=(q,)) as pool: + pool.map_async(func, iterable, callback=collect_result) + pool.close() + pool.join() + pool.terminate() + + # return only error from last iteration for each reconstruction + return images, supports, cohs, errs, recips, flows, iter_arrs + + +def reconstruction(proc, conf_file, datafile, dir, devices): +# proc, datafile, dir, conf_file, devices + """ + This function starts the reconstruction. It checks whether it is continuation of reconstruction defined by + configuration. If continuation, the lists contaning arrays of images, supports, coherence for multiple reconstructions + are read from cont_directory, otherwise, they are initialized to None. + After the lists are initialized, they are passed for the multi-reconstruction. + The results are saved in the configured directory. + + Parameters + ---------- + reconstructions : int + number of reconstructions + + proc : str + a string indicating the processor type (cpu, opencl, cuda) + + data : numpy array + data array + + conf_info : str + configuration file name or experiment directory. If directory, the configuration file is + defined as /conf/config_rec + + config_map : dict + parsed configuration + + Returns + ------- + nothing + """ + data = ut.read_tif(datafile) + print ('data shape', data.shape) + data = np.swapaxes(data, 0, 2) + data = np.swapaxes(data, 0, 1) + + try: + config_map = ut.read_config(conf_file) + if config_map is None: + print("can't read configuration file " + conf_file) + return + except: + print('Cannot parse configuration file ' + conf_file + ' , check for matching parenthesis and quotations') + return + + try: + reconstructions = config_map.reconstructions + except: + reconstructions = 1 + + images = [] + supports = [] + cohs = [] + try: + if config_map.cont: + try: + continue_dir = config_map.continue_dir + for sub in os.listdir(continue_dir): + image, support, coh = ut.read_results(os.path.join(continue_dir, sub) + '/') + images.append(image) + supports.append(support) + cohs.append(coh) + except: + print("continue_dir not configured") + return None + except: + for _ in range(reconstructions): + images.append(None) + supports.append(None) + cohs.append(None) + + new_images, new_supports, new_cohs, errs, recips, flows, iter_arrs = multi_rec(proc, data, conf_file, config_map, devices, images, supports, cohs) + + try: + save_dir = config_map.save_dir + except AttributeError: + filename = conf_file.split('/')[-1] + save_dir = os.path.join(dir, filename.replace('config_rec', 'results')) + + ut.save_multiple_results(len(new_images), new_images, new_supports, new_cohs, errs, recips, flows, iter_arrs, save_dir) diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/cyth/__init__.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/cyth/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/cyth/bridge_cpu.pyx b/build/lib.linux-x86_64-2.7/reccdi/src_py/cyth/bridge_cpu.pyx new file mode 100644 index 0000000..3219efb --- /dev/null +++ b/build/lib.linux-x86_64-2.7/reccdi/src_py/cyth/bridge_cpu.pyx @@ -0,0 +1,72 @@ +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + + +# distutils: language = c++ +# distutils: include_dirs = ['reccdi/include', 'lib/arrayfire/include', 'lib/libconfig/include',] +# distutils: sources = ['reccdi/src_cpp/bridge.cpp', 'reccdi/src_cpp/manager.cpp', 'reccdi/src_cpp/parameters.cpp', 'reccdi/src_cpp/pcdi.cpp', 'reccdi/src_cpp/resolution.cpp', 'reccdi/src_cpp/state.cpp', 'reccdi/src_cpp/support.cpp', 'reccdi/src_cpp/util.cpp', 'reccdi/src_cpp/worker.cpp'] +# distutils: libraries = ['afcpu', 'config++',] +# distutils: library_dirs = ['lib/arrayfire/lib64', 'lib/libconfig/lib',] + +from libcpp.vector cimport vector +from libcpp.string cimport string + + +cdef extern from "../include/bridge.hpp": + cdef cppclass Bridge: + Bridge() except + + void StartCalcWithGuess(int, vector[float], vector[float], vector[float], vector[int], string) + void StartCalcWithGuessSupport(int, vector[float], vector[float], vector[float], vector[int], vector[int], string) + void StartCalcWithGuessSupportCoh(int, vector[float], vector[float], vector[float], vector[int], vector[int], vector[float], vector[int], string) + void StartCalc(int, vector[float], vector[int], string) + vector[double] GetImageR() + vector[double] GetImageI() + vector[double] GetErrors() + vector[float] GetSupportV() + vector[double] GetCoherenceV() + vector[double] GetReciprocalR() + vector[double] GetReciprocalI() + vector[int] GetFlowV() + vector[int] GetIterFlowV() + void Cleanup() + + +cdef class PyBridge: + cdef Bridge *thisptr + def __cinit__(self): + self.thisptr = new Bridge() + def __dealloc__(self): + del self.thisptr + def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): + self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) + def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): + self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) + def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): + self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) + def start_calc(self, device, data_r, dims, config): + self.thisptr.StartCalc(device, data_r, dims, config.encode()) + def get_image_r(self): + return self.thisptr.GetImageR() + def get_image_i(self): + return self.thisptr.GetImageI() + def get_errors(self): + return self.thisptr.GetErrors() + def get_support(self): + return self.thisptr.GetSupportV() + def get_coherence(self): + return self.thisptr.GetCoherenceV() + def get_reciprocal_r(self): + return self.thisptr.GetReciprocalR() + def get_reciprocal_i(self): + return self.thisptr.GetReciprocalI() + def get_flow(self): + return self.thisptr.GetFlowV() + def get_iter_flow(self): + return self.thisptr.GetIterFlowV() + def cleanup(self): + self.thisptr.Cleanup() + + diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/cyth/bridge_cuda.pyx b/build/lib.linux-x86_64-2.7/reccdi/src_py/cyth/bridge_cuda.pyx new file mode 100644 index 0000000..eb71e65 --- /dev/null +++ b/build/lib.linux-x86_64-2.7/reccdi/src_py/cyth/bridge_cuda.pyx @@ -0,0 +1,70 @@ +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + + +# distutils: language = c++ +# distutils: include_dirs = ['reccdi/include', 'lib/arrayfire/include', 'lib/libconfig/include',] +# distutils: sources = ['reccdi/src_cpp/bridge.cpp', 'reccdi/src_cpp/manager.cpp', 'reccdi/src_cpp/parameters.cpp', 'reccdi/src_cpp/pcdi.cpp', 'reccdi/src_cpp/resolution.cpp', 'reccdi/src_cpp/state.cpp', 'reccdi/src_cpp/support.cpp', 'reccdi/src_cpp/util.cpp', 'reccdi/src_cpp/worker.cpp'] +# distutils: libraries = ['afcuda', 'config++',] +# distutils: library_dirs = ['lib/arrayfire/lib64', 'lib/libconfig/lib',] + +from libcpp.vector cimport vector +from libcpp.string cimport string + +cdef extern from "../include/bridge.hpp": + cdef cppclass Bridge: + Bridge() except + + void StartCalcWithGuess(int, vector[float], vector[float], vector[float], vector[int], string) + void StartCalcWithGuessSupport(int, vector[float], vector[float], vector[float], vector[int], vector[int], string) + void StartCalcWithGuessSupportCoh(int, vector[float], vector[float], vector[float], vector[int], vector[int], vector[float], vector[int], string) + void StartCalc(int, vector[float], vector[int], string) + vector[double] GetImageR() + vector[double] GetImageI() + vector[double] GetErrors() + vector[float] GetSupportV() + vector[double] GetCoherenceV() + vector[double] GetReciprocalR() + vector[double] GetReciprocalI() + vector[int] GetFlowV() + vector[int] GetIterFlowV() + void Cleanup() + + +cdef class PyBridge: + cdef Bridge *thisptr + def __cinit__(self): + self.thisptr = new Bridge() + def __dealloc__(self): + del self.thisptr + def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): + self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) + def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): + self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) + def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): + self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) + def start_calc(self, device, data_r, dims, config): + self.thisptr.StartCalc(device, data_r, dims, config.encode()) + def get_image_r(self): + return self.thisptr.GetImageR() + def get_image_i(self): + return self.thisptr.GetImageI() + def get_errors(self): + return self.thisptr.GetErrors() + def get_support(self): + return self.thisptr.GetSupportV() + def get_coherence(self): + return self.thisptr.GetCoherenceV() + def get_reciprocal_r(self): + return self.thisptr.GetReciprocalR() + def get_reciprocal_i(self): + return self.thisptr.GetReciprocalI() + def get_flow(self): + return self.thisptr.GetFlowV() + def get_iter_flow(self): + return self.thisptr.GetIterFlowV() + def cleanup(self): + self.thisptr.Cleanup() + diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/cyth/bridge_opencl.pyx b/build/lib.linux-x86_64-2.7/reccdi/src_py/cyth/bridge_opencl.pyx new file mode 100644 index 0000000..1a0d9bb --- /dev/null +++ b/build/lib.linux-x86_64-2.7/reccdi/src_py/cyth/bridge_opencl.pyx @@ -0,0 +1,70 @@ +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + + +# distutils: language = c++ +# distutils: include_dirs = ['reccdi/include', 'lib/arrayfire/include', 'lib/libconfig/include',] +# distutils: sources = ['reccdi/src_cpp/bridge.cpp', 'reccdi/src_cpp/manager.cpp', 'reccdi/src_cpp/parameters.cpp', 'reccdi/src_cpp/pcdi.cpp', 'reccdi/src_cpp/resolution.cpp', 'reccdi/src_cpp/state.cpp', 'reccdi/src_cpp/support.cpp', 'reccdi/src_cpp/util.cpp', 'reccdi/src_cpp/worker.cpp'] +# distutils: libraries = ['afopencl', 'config++',] +# distutils: library_dirs = ['lib/arrayfire/lib64', 'lib/libconfig/lib',] + +from libcpp.vector cimport vector +from libcpp.string cimport string + +cdef extern from "../include/bridge.hpp": + cdef cppclass Bridge: + Bridge() except + + void StartCalcWithGuess(int, vector[float], vector[float], vector[float], vector[int], string) + void StartCalcWithGuessSupport(int, vector[float], vector[float], vector[float], vector[int], vector[int], string) + void StartCalcWithGuessSupportCoh(int, vector[float], vector[float], vector[float], vector[int], vector[int], vector[float], vector[int], string) + void StartCalc(int, vector[float], vector[int], string) + vector[double] GetImageR() + vector[double] GetImageI() + vector[double] GetErrors() + vector[float] GetSupportV() + vector[double] GetCoherenceV() + vector[double] GetReciprocalR() + vector[double] GetReciprocalI() + vector[int] GetFlowV() + vector[int] GetIterFlowV() + void Cleanup() + + +cdef class PyBridge: + cdef Bridge *thisptr + def __cinit__(self): + self.thisptr = new Bridge() + def __dealloc__(self): + del self.thisptr + def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): + self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) + def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): + self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) + def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): + self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) + def start_calc(self, device, data_r, dims, config): + self.thisptr.StartCalc(device, data_r, dims, config.encode()) + def get_image_r(self): + return self.thisptr.GetImageR() + def get_image_i(self): + return self.thisptr.GetImageI() + def get_errors(self): + return self.thisptr.GetErrors() + def get_support(self): + return self.thisptr.GetSupportV() + def get_coherence(self): + return self.thisptr.GetCoherenceV() + def get_reciprocal_r(self): + return self.thisptr.GetReciprocalR() + def get_reciprocal_i(self): + return self.thisptr.GetReciprocalI() + def get_flow(self): + return self.thisptr.GetFlowV() + def get_iter_flow(self): + return self.thisptr.GetIterFlowV() + def cleanup(self): + self.thisptr.Cleanup() + diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/__init__.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/everything.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/everything.py new file mode 100644 index 0000000..acae99e --- /dev/null +++ b/build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/everything.py @@ -0,0 +1,29 @@ +import sys +import argparse +import reccdi.src_py.run_scripts.run_data as run_dt +import reccdi.src_py.run_scripts.run_rec as run_rc +import reccdi.src_py.run_scripts.run_disp as run_dp +import reccdi.src_py.run_scripts.run_34id_prepare as prep + + +def main(arg): + parser = argparse.ArgumentParser() + parser.add_argument("dev", help="processor to run on (cpu, opencl, cuda)") + parser.add_argument("prefix", help="prefix id") + parser.add_argument("scans", help="scans to preocess") + parser.add_argument("conf_dir", help="directory with configuration files") + args = parser.parse_args() + dev = args.dev + prefix = args.prefix + scans = args.scans + conf_dir = args.conf_dir + + experiment_dir = prep.parse_and_prepare(prefix, scans, conf_dir) + run_dt.data(experiment_dir) + run_rc.manage_reconstruction(dev, experiment_dir) + run_dp.to_vtk(experiment_dir) + + +if __name__ == "__main__": + main(sys.argv[1:]) + diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/run_34id_prepare.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/run_34id_prepare.py new file mode 100644 index 0000000..e230cd6 --- /dev/null +++ b/build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/run_34id_prepare.py @@ -0,0 +1,119 @@ +import argparse +import pylibconfig2 as cfg +import sys +import os +import reccdi.src_py.beamlines.aps_34id.prep as prep +import reccdi.src_py.utilities.parse_ver as ver +import shutil + + +def prepare(experiment_dir, scan_range, conf_file): + prep.prepare(experiment_dir, scan_range, conf_file) + + return experiment_dir + + +def copy_conf(src, dest): + try: + main_conf = os.path.join(src, 'config_prep') + shutil.copy(main_conf, dest) + conf_data = os.path.join(src, 'config_data') + shutil.copy(conf_data, dest) + conf_rec = os.path.join(src, 'config_rec') + shutil.copy(conf_rec, dest) + conf_disp = os.path.join(src, 'config_disp') + shutil.copy(conf_disp, dest) + except: + pass + + +def parse_and_prepare(prefix, scan, conf_dir): + id = prefix + '_' + scan + print ('reading data files for experiment ' + id) + + if not os.path.isdir(conf_dir): + print ('configured directory ' + conf_dir + ' does not exist') + return + + main_conf = os.path.join(conf_dir, 'config') + if not os.path.isfile(main_conf): + print ('the configuration directory does not contain "config" file') + return + + try: + # convert it to list of int + scan_range = scan.split('-') + scan_num = [] + for i in range(len(scan_range)): + scan_num.append(int(scan_range[i])) + except: + print ('enter numeric values for scan range') + return + + if not ver.ver_config_prep(main_conf): + return + + try: + with open(main_conf, 'r') as f: + config_map = cfg.Config(f.read()) + except Exception as e: + print ('Please check the configuration file ' + main_conf + '. Cannot parse ' + str(e)) + return + + try: + working_dir = config_map.working_dir.strip() + except: + working_dir = os.getcwd() + + experiment_dir = os.path.join(working_dir, id) + if not os.path.exists(experiment_dir): + os.makedirs(experiment_dir) + # copy config_data, config_rec, cofig_disp files from cofig directory into the experiment conf directory + experiment_conf_dir = os.path.join(experiment_dir, 'conf') + if not os.path.exists(experiment_conf_dir): + os.makedirs(experiment_conf_dir) + + experiment_main_config = os.path.join(experiment_conf_dir, 'config') + conf_map = {} + conf_map['working_dir'] = '"' + working_dir + '"' + conf_map['experiment_id'] = '"' + prefix + '"' + conf_map['scan'] = '"' + scan + '"' + temp_file = os.path.join(experiment_conf_dir, 'temp') + with open(temp_file, 'a') as f: + for key in conf_map: + value = conf_map[key] + if len(value) > 0: + f.write(key + ' = ' + conf_map[key] + '\n') + f.close() + if not ver.ver_config(temp_file): +# os.remove(temp_file) + print('please check the entered parameters. Cannot save this format') + else: + shutil.copy(temp_file, experiment_main_config) + os.remove(temp_file) + + copy_conf(conf_dir, experiment_conf_dir) + prep_conf = os.path.join(experiment_conf_dir, 'config_prep') + if os.path.isfile(prep_conf): + prep.prepare(experiment_dir, scan_num, prep_conf) + else: + print ('missing ' + prep_conf + ' file') + + return experiment_dir + + +def main(arg): + parser = argparse.ArgumentParser() + parser.add_argument("id", help="prefix to name of the experiment/data reconstruction") + parser.add_argument("scan", help="a range of scans to prepare data from") + parser.add_argument("conf_dir", help="directory where the configuration files are located") + args = parser.parse_args() + scan = args.scan + id = args.id + conf_dir = args.conf_dir + + return parse_and_prepare(id, scan, conf_dir) + + +if __name__ == "__main__": + exit(main(sys.argv[1:])) diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/run_data.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/run_data.py new file mode 100644 index 0000000..87064dd --- /dev/null +++ b/build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/run_data.py @@ -0,0 +1,29 @@ +import reccdi.src_py.controller.data as dt +import sys +import argparse +import os + + +def data(experiment_dir): + print ('formating data') + prep_file = os.path.join(experiment_dir, 'prep', 'prep_data.tif') + if os.path.isfile(prep_file): + dt.prep(prep_file, experiment_dir) + else: + dirs = os.listdir(experiment_dir) + for dir in dirs: + if dir.startswith('scan'): + scan_dir = os.path.join(experiment_dir, dir) + prep_file = os.path.join(scan_dir, 'prep', 'prep_data.tif') + dt.prep(prep_file, scan_dir) + + +def main(arg): + parser = argparse.ArgumentParser() + parser.add_argument("experiment_dir", help="experiment directory") + args = parser.parse_args() + data(args.experiment_dir) + + +if __name__ == "__main__": + main(sys.argv[1:]) diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/run_disp.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/run_disp.py new file mode 100644 index 0000000..c471662 --- /dev/null +++ b/build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/run_disp.py @@ -0,0 +1,136 @@ +import reccdi.src_py.utilities.CXDVizNX as cx +import reccdi.src_py.utilities.utils as ut +import reccdi.src_py.utilities.parse_ver as ver +import argparse +import sys +import os +import numpy as np +from multiprocessing import Pool + + +def save_vtk(res_dir_conf): + (res_dir, conf) = res_dir_conf + try: + imagefile = os.path.join(res_dir, 'image.npy') + image = np.load(imagefile) + except: + print ('cannot load "image.npy" file') + return + + try: + supportfile = os.path.join(res_dir, 'support.npy') + support = np.load(supportfile) + except: + print ('support file is missing in ' + res_dir + ' directory') + return + + try: + reciprocalfile = os.path.join(res_dir, 'reciprocal.npy') + reciprocal = np.load(reciprocalfile) + # reciprocal is saved as tif file, so no need to pass it to cx module + # saving amp, phase, and square of modulus in tif format + reciprocal_amp = np.absolute(reciprocal) + reciprocal_phase = np.angle(reciprocal) + reciprocal_sq_mod = np.power(reciprocal_amp, 2) + + ut.save_tif(reciprocal_amp, os.path.join(res_dir, 'reciprocal_amp.tif')) + ut.save_tif(reciprocal_phase, os.path.join(res_dir, 'reciprocal_phase.tif')) + ut.save_tif(reciprocal_sq_mod, os.path.join(res_dir, 'reciprocal_sq_mod.tif')) + except: + print ('info: cannot save reciprocal space') + + cohfile = os.path.join(res_dir, 'coherence.npy') + if os.path.isfile(cohfile): + coh = np.load(cohfile) + cx.save_CX(conf, image, support, coh, res_dir) + else: + cx.save_CX(conf, image, support, None, res_dir) + + +def to_vtk(experiment_dir, results_dir=None): + print ('starting conversion to vtk') + if not os.path.isdir(experiment_dir): + print("Please provide a valid experiment directory") + return + conf_dir = os.path.join(experiment_dir, 'conf') + conf = os.path.join(conf_dir, 'config_disp') + # verify configuration file + if not ver.ver_config_disp(conf): + print ('incorrect configuration file ' + conf +', cannot parse') + return + + # parse the conf once here and save it in dictionary, it will apply to all images in the directory tree + conf_dict = {} + try: + conf_map = ut.read_config(conf) + items = conf_map.items() + for item in items: + conf_dict[item[0]] = item[1] + except: + print('cannot parse configuration file ' + conf) + return + + # get last scan from the config file and add it to conf_dict + last_scan = None + main_conf = os.path.join(conf_dir, 'config') + if os.path.isfile(main_conf): + try: + config_map = ut.read_config(main_conf) + scan = config_map.scan + last_scan = scan.split('-')[-1] + conf_dict['last_scan'] = int(last_scan) + except: + print ("info: scan not determined, can't read " + conf + " configuration file") + + # get binning from the config_data file and add it to conf_dict + binning = None + data_conf = os.path.join(conf_dir, 'config_data') + if os.path.isfile(data_conf): + try: + conf_map = ut.read_config(data_conf) + conf_dict['binning'] = conf_map.binning + except: + pass + + no_gpus = 1 + rec_conf = os.path.join(conf_dir, 'config_rec') + if os.path.isfile(rec_conf): + try: + conf_map = ut.read_config(rec_conf) + device = conf_map.device + no_gpus = len(device) + except: + pass + + if results_dir is None: + results_dir = experiment_dir + # find directories with image.npy file + dirs = [] + for (dirpath, dirnames, filenames) in os.walk(results_dir): + for file in filenames: + if file.endswith('image.npy'): + dirs.append((dirpath, conf_dict)) + + with Pool(processes = no_gpus) as pool: + pool.map_async(save_vtk, dirs) + pool.close() + pool.join() + print ('done') + + +def main(arg): + print ('preparing display') + parser = argparse.ArgumentParser() + parser.add_argument("experiment_dir", help="experiment directory") + parser.add_argument("--results_dir", help="directory in experiment that has a tree (or leaf) with reconstruction results which will be visualized") + args = parser.parse_args() + experiment_dir = args.experiment_dir + if args.results_dir: + to_vtk(experiment_dir, args.results_dir) + else: + to_vtk(experiment_dir) + +if __name__ == "__main__": + main(sys.argv[1:]) + +#python run_disp.py experiment_dir diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/run_rec.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/run_rec.py new file mode 100644 index 0000000..d0477a9 --- /dev/null +++ b/build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/run_rec.py @@ -0,0 +1,229 @@ +import sys +import signal +import os +import argparse +from multiprocessing import Process, Queue +import reccdi.src_py.controller.reconstruction as rec +import reccdi.src_py.controller.gen_rec as gen_rec +import reccdi.src_py.controller.reconstruction_multi as mult_rec +import reccdi.src_py.utilities.utils as ut +import reccdi.src_py.utilities.parse_ver as ver +import time +from functools import reduce + + +MEM_FACTOR = 1500 +ADJUST = 0.0 + +def interrupt_thread(): + """ + This function is part of interrupt mechanism. It detects ctl-c signal and creates an empty file named "stopfile". + The file is discovered by fast module and the discovery prompts termonation of the process. + """ + def int_handler(signal, frame): + while not os.path.isfile('stopfile'): + open('stopfile', 'a').close() + time.sleep(.3) + + # #remove the file at the end + if os.path.isfile('stopfile'): + os.remove('stopfile') + + def term_handler(signal, frame): + pass + + signal.signal(signal.SIGINT, int_handler) + signal.signal(signal.SIGTERM, term_handler) + signal.pause() + + +def rec_process(proc, conf_file, datafile, dir, gpus, r, q): + if r == 'g': + gen_rec.reconstruction(proc, conf_file, datafile, dir, gpus) + elif r == 'm': + mult_rec.reconstruction(proc, conf_file, datafile, dir, gpus) + elif r == 's': + rec.reconstruction(proc, conf_file, datafile, dir, gpus) + q.put((os.getpid(), gpus)) + + +def get_gpu_use(devices, no_dir, no_rec, data_size): + rec_mem_size = data_size / MEM_FACTOR + gpu_load = ut.get_gpu_load(rec_mem_size, devices) + no_runs = no_dir * no_rec + gpu_distribution = ut.get_gpu_distribution(no_runs, gpu_load) + gpu_use = [] + available = reduce((lambda x,y: x+y), gpu_distribution) + dev_index = 0 + i = 0 + while i < available: + if gpu_distribution[dev_index] > 0: + gpu_use.append(devices[dev_index]) + gpu_distribution[dev_index] = gpu_distribution[dev_index] -1 + i += 1 + dev_index += 1 + dev_index = dev_index % len(devices) + if no_dir > 1: + gpu_use = [gpu_use[x:x+no_rec] for x in range(0, len(gpu_use), no_rec)] + + return gpu_use + + +def manage_reconstruction(proc, experiment_dir, rec_id=None): + """ + This function starts the interruption discovery thread and the recontruction thread. + + It reads configuration file defined as /conf/config_rec. + If multiple generations are configured, it will start reconstruction from "reconstruction_multi" + script, otherwise from "reconstruction" script. + """ + if os.path.exists('stopfile'): + os.remove('stopfile') + print ('starting reconstruction') + # find how many reconstruction configurations are in config directory + # if more than one, it will run in separate processes + conf_dir = os.path.join(experiment_dir, 'conf') + if rec_id is None: + conf_file = os.path.join(conf_dir, 'config_rec') + else: + conf_file = os.path.join(conf_dir, rec_id + '_config_rec') + + # check if file exists + if not os.path.isfile(conf_file): + print ('no configuration file ' + conf_file + ' found') + return + + # verify the configuration file + if not ver.ver_config_rec(conf_file): + # if not verified, the ver will print message + return + + try: + config_map = ut.read_config(conf_file) + if config_map is None: + print("can't read configuration file " + conf_file) + return + except: + print('Cannot parse configuration file ' + conf_file + ' , check for matching parenthesis and quotations') + return + + exp_dirs_data = [] + # experiment may be multi-scan in which case will run a reconstruction for each scan + for dir in os.listdir(experiment_dir): + if dir.startswith('scan'): + datafile = os.path.join(experiment_dir, dir, 'data', 'data.tif') + if os.path.isfile(datafile): + exp_dirs_data.append((datafile, os.path.join(experiment_dir, dir))) + # if there are no scan directories, assume it is combined scans experiment + if len(exp_dirs_data) == 0: + # in typical scenario data_dir is not configured, and it is defaulted to /data + # the data_dir is ignored in multi-scan scenario + try: + data_dir = config_map.data_dir + except AttributeError: + data_dir = os.path.join(experiment_dir, 'data') + datafile = os.path.join(data_dir, 'data.tif') + if os.path.isfile(datafile): + exp_dirs_data.append((datafile, experiment_dir)) + no_runs = len(exp_dirs_data) + + try: + generations = config_map.generations + except: + generations = 0 + try: + reconstructions = config_map.reconstructions + except: + reconstructions = 1 + try: + devices = config_map.device + except: + devices = [-1] + + if (no_runs > 1 or reconstructions > 1) and devices[0] != -1: + from functools import reduce + # find size of data array + data_shape = ut.read_tif(exp_dirs_data[0][0]).shape + data_size = reduce((lambda x,y: x*y), data_shape) + gpu_use = get_gpu_use(devices, no_runs, reconstructions, data_size) + else: + gpu_use = devices + + if generations > 1: + r = gen_rec + elif reconstructions > 1: + r = mult_rec + else: + r = rec + + # start the interrupt process + interrupt_process = Process(target=interrupt_thread, args=()) + interrupt_process.start() + + if no_runs == 1: + dir_data = exp_dirs_data[0] + datafile = dir_data[0] + dir = dir_data[1] + r.reconstruction(proc, conf_file, datafile, dir, gpu_use) + else: + # check if is it worth to use last chunk + if len(gpu_use[0]) > len(gpu_use[-1])*2: + gpu_use = gpu_use[0:-1] + + if generations > 1: + r = 'g' + elif reconstructions > 1: + r = 'm' + else: + r = 's' + + q = Queue() + for gpus in gpu_use: + q.put((None, gpus)) + # index keeps track of the multiple directories + index = 0 + processes = {} + while index < no_runs: + pid, gpus = q.get() + if pid is not None: + os.kill(pid, signal.SIGKILL) + del processes[pid] + datafile = exp_dirs_data[index][0] + dir = exp_dirs_data[index][1] + p = Process(target = rec_process, args = (proc, conf_file, datafile, dir, gpus, r, q)) + p.start() + processes[p.pid] = index + index += 1 + + # close the queue + while len(processes.items()) > 0: + pid, gpus = q.get() + os.kill(pid, signal.SIGKILL) + del processes[pid] + q.close() + + interrupt_process.terminate() + print ('finished reconstruction') + + +def main(arg): + parser = argparse.ArgumentParser() + parser.add_argument("proc", help="the processor the code will run on, can be 'cpu', 'opencl', or 'cuda'.") + parser.add_argument("experiment_dir", help="experiment directory.") + parser.add_argument("--rec_id", help="reconstruction id, a prefix to '_results' directory") + args = parser.parse_args() + proc = args.proc + experiment_dir = args.experiment_dir + + if args.rec_id: + manage_reconstruction(proc, experiment_dir, args.rec_id) + else: + manage_reconstruction(proc, experiment_dir) + + +if __name__ == "__main__": + print (sys.argv[1:]) + main(sys.argv[1:]) + +#python run_rec.py opencl experiment_dir + diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/CXDVizNX.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/CXDVizNX.py new file mode 100644 index 0000000..4b0c35b --- /dev/null +++ b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/CXDVizNX.py @@ -0,0 +1,374 @@ +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + +import os +import traits.api as tr +from tvtk.api import tvtk +import numpy as np +import scipy.ndimage as ndi +import math as m +import reccdi.src_py.utilities.utils as ut +import reccdi.src_py.utilities.spec as sput + +__author__ = "Barbara Frosik" +__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." +__docformat__ = 'restructuredtext en' + + +class DispalyParams: + """ + This class encapsulates parameters defining image display. The parameters are read from config file on + construction + """ + + def __init__(self, config): + """ + The constructor gets config file and fills out the class members. + + Parameters + ---------- + conf : str + configuration file name + + Returns + ------- + none + """ + deg2rad = np.pi / 180.0 + try: + specfile = config['specfile'] + last_scan = config['last_scan'] + self.lamda, delta, gamma, dth, arm, pixel = sput.parse_spec(specfile, last_scan) + self.delta = delta * deg2rad + self.gamma = gamma * deg2rad + self.dth = dth * deg2rad + self.arm = arm / 1000 + pixel = pixel[1:-1] + pixel = pixel.split(',') + pixel[0], pixel[1] = float(pixel[0]), float(pixel[1]) + except Exception as e: + pass + # override the parsed parameters with entries in config file + try: + energy = config['energy'] + self.lamda = 12.398 / energy / 10 + except AttributeError: + pass + try: + self.delta = config['delta'] * deg2rad + except AttributeError: + pass + try: + self.gamma = config['gamma'] * deg2rad + except AttributeError: + pass + try: + self.dth = config['dth'] * deg2rad + except AttributeError: + pass + try: + self.arm = config['arm'] / 1000 + except AttributeError: + pass + try: + pixel = config['pixel'] + except AttributeError: + pass + + try: + self.binning = [] + binning = config['binning'] + for i in range(len(binning)): + self.binning.append(binning[i]) + for _ in range(3 - len(self.binning)): + self.binning.append(1) + except AttributeError: + self.binning = [1,1,1] + self.dpx = pixel[0] * self.binning[0] / self.arm / self.binning[2] + self.dpy = pixel[1] * self.binning[1] / self.arm / self.binning[2] + try: + self.crop = [] + crop = config['crop'] + for i in range(len(crop)): + self.crop.append(crop[i]) + for _ in range(3 - len(self.crop)): + self.crop.append(1.0) + crop[0], crop[1] = crop[1], crop[0] + except AttributeError: + self.crop = None + + +class CXDViz(tr.HasTraits): + coords = tr.Array() + arr = tr.Array() + + cropx = tr.Int() + cropy = tr.Int() + cropz = tr.Int() + + + def __init__(self): + self.imd = tvtk.ImageData() + self.sg = tvtk.StructuredGrid() + pass + + + def set_geometry(self, params, shape): + lam = params.lamda + tth = params.delta + gam = params.gamma + dpx = params.dpx + dpy = params.dpy + dth = params.dth + dx = 1.0 / shape[0] + dy = 1.0 / shape[1] + dz = 1.0 / shape[2] + dQdpx = np.zeros(3) + dQdpy = np.zeros(3) + dQdth = np.zeros(3) + Astar = np.zeros(3) + Bstar = np.zeros(3) + Cstar = np.zeros(3) + + # dQdpx[0] = -m.cos(tth) * m.cos(gam) + # dQdpx[1] = 0.0 + # dQdpx[2] = +m.sin(tth) * m.cos(gam) + dQdpx[0] = -m.cos(tth) + dQdpx[1] = 0.0 + dQdpx[2] = +m.sin(tth) + + dQdpy[0] = m.sin(tth) * m.sin(gam) + dQdpy[1] = -m.cos(gam) + dQdpy[2] = m.cos(tth) * m.sin(gam) + + dQdth[0] = -m.cos(tth) * m.cos(gam) + 1.0 + dQdth[1] = 0.0 + dQdth[2] = m.sin(tth) * m.cos(gam) + + Astar[0] = 2 * m.pi / lam * dpx * dQdpx[0] + Astar[1] = 2 * m.pi / lam * dpx * dQdpx[1] + Astar[2] = 2 * m.pi / lam * dpx * dQdpx[2] + + Bstar[0] = (2 * m.pi / lam) * dpy * dQdpy[0] + Bstar[1] = (2 * m.pi / lam) * dpy * dQdpy[1] + Bstar[2] = (2 * m.pi / lam) * dpy * dQdpy[2] + + Cstar[0] = (2 * m.pi / lam) * dth * dQdth[0] + Cstar[1] = (2 * m.pi / lam) * dth * dQdth[1] + Cstar[2] = (2 * m.pi / lam) * dth * dQdth[2] + + denom = np.dot(Astar, np.cross(Bstar, Cstar)) + A = 2 * m.pi * np.cross(Bstar, Cstar) / denom + B = 2 * m.pi * np.cross(Cstar, Astar) / denom + C = 2 * m.pi * np.cross(Astar, Bstar) / denom + + self.T = np.zeros(9) + self.T.shape = (3, 3) + space = 'direct' + if space == 'recip': + self.T[:, 0] = Astar + self.T[:, 1] = Bstar + self.T[:, 2] = Cstar + self.dx = 1.0 + self.dy = 1.0 + self.dz = 1.0 + elif space == 'direct': + self.T = np.array((A, B, C)) + self.dx = dx + self.dy = dy + self.dz = dz + else: + pass + + + def update_coords(self): + dims = list(self.arr[self.cropobj].shape) + + r = np.mgrid[(dims[0] - 1) * self.dx:-self.dx:-self.dx, \ + 0:dims[1] * self.dy:self.dy, 0:dims[2] * self.dz:self.dz] + + r.shape = 3, dims[0] * dims[1] * dims[2] + r = r.transpose() + + self.coords = np.dot(r, self.T) + + + def set_array(self, array, logentry=None): + self.arr = array + if len(self.arr.shape) < 3: + newdims = list(self.arr.shape) + for i in range(3 - len(newdims)): + newdims.append(1) + self.arr.shape = tuple(newdims) + + + def set_crop(self, cropx, cropy, cropz): + dims = list(self.arr.shape) + if len(dims) == 2: + dims.append(1) + + if dims[0] > cropx and cropx > 0: + self.cropx = cropx + else: + self.cropx = dims[0] + + if dims[1] > cropy and cropy > 0: + self.cropy = cropy + else: + self.cropy = dims[1] + + if dims[2] > cropz and cropz > 0: + self.cropz = cropz + else: + self.cropz = dims[2] + + start1 = int(dims[0]/2) - int(self.cropx/2) + end1 = int(dims[0]/2) + int(self.cropx/2) + if start1 == end1: + end1 = end1 + 1 + start2 = int(dims[1]/2) - int(self.cropy/2) + end2 = int(dims[1]/2) + int(self.cropy/2) + if start2 == end2: + end2 = end2 + 1 + start3 = int(dims[2]/2) - int(self.cropz/2) + end3 = int(dims[2]/2) + int(self.cropz/2) + if start3 == end3: + end3 = end3 + 1 + + self.cropobj = (slice(start1, end1, None), slice(start2, end2, None), + slice(start3, end3, None)) + + + def get_structured_grid(self, **args): + self.update_coords() + dims = list(self.arr[self.cropobj].shape) + self.sg.points = self.coords + if "mode" in args: + if args["mode"] == "Phase": + arr1 = self.arr[self.cropobj].ravel() + arr = (np.arctan2(arr1.imag, arr1.real)) + else: + arr = np.abs(self.arr[self.cropobj].ravel()) + else: + arr = self.arr[self.cropobj].ravel() + if (arr.dtype == np.complex128 or arr.dtype == np.complex64): + self.sg.point_data.scalars = np.abs(arr) + self.sg.point_data.scalars.name = "Amp" + ph = tvtk.DoubleArray() + ph.from_array(np.arctan2(arr.imag, arr.real)) + ph.name = "Phase" + self.sg.point_data.add_array(ph) + else: + self.sg.point_data.scalars = arr + self.sg.dimensions = (dims[2], dims[1], dims[0]) + self.sg.extent = 0, dims[2] - 1, 0, dims[1] - 1, 0, dims[0] - 1 + return self.sg + + + def write_structured_grid(self, filename, **args): + sgwriter = tvtk.StructuredGridWriter() + sgwriter.file_type = 'binary' + if filename.endswith(".vtk"): + sgwriter.file_name = filename + else: + sgwriter.file_name = filename + '.vtk' + sgwriter.set_input_data(self.get_structured_grid()) + sgwriter.write() + print ('saved file', filename) + + +def shift(arr, s0, s1, s2): + shifted = np.roll(arr, s0, axis=0) + shifted = np.roll(shifted, s1, axis=1) + return np.roll(shifted, s2, axis=2) + + +def center_of_mass(arr): + tot = np.sum(arr) + dims = arr.shape + xyz = [] + griddims = [] + for d in dims: + griddims.append(slice(0, d)) + grid = np.ogrid[griddims] + for g in grid: + xyz.append(np.sum(arr * g) / tot) + com = np.asarray(xyz) + com = np.ma.round(com).astype(np.int) + return list(com) + + +def remove_ramp(arr, ups=3): + new_shape = list(arr.shape) + # pad zeros around arr, to the size of 3 times (ups = 3) of arr size + for i in range(len(new_shape)): + new_shape[i] = ups * new_shape[i] + padded = ut.get_zero_padded_centered(arr, new_shape) + padded_f = np.fft.fftshift(np.fft.fftn(np.fft.ifftshift(padded))) + com = ndi.center_of_mass(np.power(np.abs(padded_f), 2)) + sub_pixel_shifted = ut.sub_pixel_shift(padded_f, new_shape[0]/2.0-com[0], new_shape[1]/2.0-com[1], new_shape[2]/2.0-com[2]) + ramp_removed_padded = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(sub_pixel_shifted))) + ramp_removed = ut.crop_center(ramp_removed_padded, arr.shape) + + return ramp_removed + + +def center(image, support): + dims = image.shape + image, support = ut.get_centered_both(image, support) + + # place center of mass image*support in the center + for ax in range(len(dims)): + com = ndi.center_of_mass(np.absolute(image) * support) + image = shift(image, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) + support = shift(support, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) + + # set center phase to zero, use as a reference + phi0 = m.atan2(image.imag[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)], image.real[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)]) + image = image * np.exp(-1j * phi0) + + return image, support + + +def get_crop(params, shape): + crop = [] + for i in range(len(shape)): + if params.crop is None: + crop.append(shape[i]) + else: + crop.append(params.crop[i]) + if isinstance(crop[i], float): + crop[i] = int(crop[i]*shape[i]) + return crop + + +def save_CX(conf, image, support, coh, save_dir): + image = np.swapaxes(image, 1,2) + image = np.swapaxes(image, 0,1) + support = np.swapaxes(support, 1,2) + support = np.swapaxes(support, 0,1) + image, support = center(image, support) + params = DispalyParams(conf) + image = remove_ramp(image) + viz = CXDViz() + viz.set_array(image) + viz.set_geometry(params, image.shape) + crop = get_crop(params, image.shape) + viz.set_crop(crop[0], crop[1], crop[2]) # save image + image_file = os.path.join(save_dir, 'image') + viz.write_structured_grid(image_file) + viz.set_array(support) + support_file = os.path.join(save_dir, 'support') + viz.write_structured_grid(support_file) + if coh is not None: + coh = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(coh))).real + coh = ut.get_zero_padded_centered(coh, image.shape) + coh_file = os.path.join(save_dir, 'coherence') + viz.set_array(coh) + viz.write_structured_grid(coh_file) + +# a = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') +# remove_ramp(a, 3) \ No newline at end of file diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/__init__.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/__init__.py new file mode 100644 index 0000000..7f0dc87 --- /dev/null +++ b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/__init__.py @@ -0,0 +1 @@ +__author__ = 'bfrosik' diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/parse_ver.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/parse_ver.py new file mode 100644 index 0000000..bb030a7 --- /dev/null +++ b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/parse_ver.py @@ -0,0 +1,861 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + + +""" +verification of configuration files +""" + +import reccdi.src_py.utilities.utils as ut +import os + + +def ver_list_int(param_name, param_value): + if not issubclass(type(param_value), list): + print (param_name + ' is not a list') + return False + for e in param_value: + if type(e) != int: + print (param_name + ' should be list of integer values') + return False + return True + + +def ver_list_float(param_name, param_value): + if not issubclass(type(param_value), list): + print (param_name + ' is not a list') + return False + for e in param_value: + if type(e) != float: + print (param_name + ' should be list of float values') + return False + return True + + +def ver_config(fname): + + """ + This function verifies config file + + Parameters + ---------- + conf_info : str + configuration file + + Returns + ------- + True if configuration is correct, False otherwise + """ + if not os.path.isfile(fname): + print ('no configuration file ' + fname + ' found') + return False + + try: + config_map = ut.read_config(fname) + if config_map is None: + print ("can't read configuration file") + return False + except: + print ('Cannot parse ' + fname + ' configuration file. Check paranthesis and quotations.') + return False + + try: + working_dir = config_map.working_dir + if type(working_dir) != str: + print('working_dir parameter should be string') + return False + except AttributeError: + pass + except: + print ('working_dir parameter parsing error') + return False + + try: + experiment_id = config_map.experiment_id + if type(experiment_id) != str: + print('experiment_id parameter should be string') + return False + except AttributeError: + pass + except: + print ('experiment_id parameter parsing error') + return False + + try: + scan = config_map.scan + if type(scan) != str: + print('scan parameter should be string') + return False + except AttributeError: + pass + except: + print ('scan parameter parsing error') + return False + + return True + + +def ver_config_rec(fname): + + """ + This function verifies config_rec file + + Parameters + ---------- + conf_info : str + configuration file + + Returns + ------- + True if configuration is correct, False otherwise + """ + if not os.path.isfile(fname): + print ('no configuration file ' + fname + ' found') + return False + + try: + config_map = ut.read_config(fname) + if config_map is None: + print ("can't read configuration file") + return False + except: + print ('Cannot parse ' + fname + ' configuration file. Check paranthesis and quotations.') + return False + + try: + data_dir = config_map.data_dir + if type(data_dir) != str: + print('data_dir parameter should be string') + return False + except AttributeError: + pass + except: + print ('data_dir parameter parsing error') + return False + + try: + save_dir = config_map.save_dir + if type(save_dir) != str: + print('save_dir parameter should be string') + return False + except AttributeError: + pass + except: + print ('save_dir parameter parsing error') + return False + + try: + cont = config_map.cont + if type(cont) != bool: + print ('cont parameter should be true or false') + return False + try: + continue_dir = config_map.continue_dir + if type(continue_dir) != str: + print('continue_dir parameter should be string') + return False + except AttributeError: + pass + except: + print('continue_dir parameter parsing error') + return False + except AttributeError: + pass + except: + print ('cont parameter parsing error') + return False + + try: + reconstructions = config_map.reconstructions + if type(reconstructions) != int: + print('reconstructions parameter should be int') + return False + except AttributeError: + pass + except: + print ('reconstructions parameter parsing error') + return False + + try: + device = config_map.device + if not ver_list_int('device', device): + return False + except AttributeError: + pass + except: + print ('device parameter parsing error') + return False + + try: + garbage_trigger = config_map.garbage_trigger + if not ver_list_int('garbage_trigger', garbage_trigger): + return False + except AttributeError: + pass + except: + print ('garbage_trigger parameter parsing error') + return False + + try: + algorithm_sequence = config_map.algorithm_sequence + if not issubclass(type(algorithm_sequence), list): + print ('algorithm_sequence should be a list') + return False + for s in algorithm_sequence: + for i in range(len(s)): + # the first element in each sub-list is the repeat factor and should be int + if i== 0 and type(s[i]) != int: + print ('algorithm_sequence configuration error, the repeat factor should be int') + return False + if i > 0: + if not issubclass(type(s[i]), list): + print ('algorithm_sequence configuration error, the sequence element should be a list') + return False + algorithm = s[i][0] + if type(algorithm) != str: + print ('algorithm_sequence configuration error, algorithm should be str') + return False + algorithm_options = ["ER", "HIO"] + if algorithm not in algorithm_options: + print ('algorithm_sequence configuration error, algorithm should be "ER" or "HIO"') + return False + algorithm_repeat = s[i][1] + if type(algorithm_repeat) != int: + print ('algorithm_sequence configuration error, algorithm repeat should be int') + return False + except AttributeError: + print ('missing mandatory algorithm_sequence parameter') + return False + except: + print ('algorithm_sequence parameter parsing error') + return False + + try: + beta = config_map.beta + if type(beta) != float: + print('beta parameter should be float') + return False + except AttributeError: + pass + except: + print ('beta parameter parsing error') + return False + + try: + generations = config_map.generations + if type(generations) != int: + print('generations parameter should be int') + return False + try: + ga_metrics = config_map.ga_metrics + if not issubclass(type(ga_metrics), list): + print (ga_metrics + ' is not a list') + return False + metrics_options = ['chi', 'sharpness', 'summed_phase', 'area'] + for metric in ga_metrics: + if metric not in metrics_options: + print ("ga_metrics list can include only following strings: 'chi', 'sharpness', 'summed_phase', 'area'") + except AttributeError: + pass + except: + print('ga_metrics parameter parsing error') + return False + + try: + ga_breed_modes = config_map.ga_breed_modes + if not issubclass(type(ga_breed_modes), list): + print (ga_breed_modes + ' is not a list') + return False + breed_options = ['sqrt_ab', 'max_all', 'Dhalf', 'Dhalf-best', 'dsqrt', 'pixel_switch',\ + 'b_pa', '2ab_a_b', '2a-b_pa', 'sqrt_ab_pa', 'sqrt_ab_pa_recip', 'sqrt_ab_recip',\ + 'max_ab', 'max_ab_pa', 'min_ab_pa', 'avg_ab', 'avg_ab_pa', 'sqrt_abg', + 'sqrt_abg_pa', 'max_abg','max_abg_pa', 'avg_abg', 'avg_abg_pa', 'avg_sqrt'] + for breed in ga_breed_modes: + if breed not in breed_options: + print ("ga_breed_modes list can include only following strings: 'sqrt_ab', 'max_all',\ + 'Dhalf', 'Dhalf-best', 'dsqrt', 'pixel_switch',\ + 'b_pa', '2ab_a_b', '2a-b_pa', 'sqrt_ab_pa', 'sqrt_ab_pa_recip', 'sqrt_ab_recip',\ + 'max_ab', 'max_ab_pa', 'min_ab_pa', 'avg_ab', 'avg_ab_pa', 'sqrt_abg',\ + 'sqrt_abg_pa', 'max_abg','max_abg_pa', 'avg_abg', 'avg_abg_pa', 'avg_sqrt'") + except AttributeError: + pass + except: + print('ga_breed_modes parameter parsing error') + return False + + try: + ga_cullings = config_map.ga_cullings + if not ver_list_int('ga_cullings', ga_cullings): + return False + except AttributeError: + pass + except: + print('ga_cullings parameter parsing error') + return False + + try: + ga_support_thresholds = config_map.ga_support_thresholds + if not ver_list_float('ga_support_thresholds', ga_support_thresholds): + return False + except AttributeError: + pass + except: + print('ga_support_thresholds parameter parsing error') + return False + + try: + ga_support_sigmas = config_map.ga_support_sigmas + if not ver_list_float('ga_support_sigmas', ga_support_sigmas): + return False + except AttributeError: + pass + except: + print('ga_support_sigmas parameter parsing error') + return False + + try: + ga_low_resolution_sigmas = config_map.ga_low_resolution_sigmas + if not ver_list_float('ga_low_resolution_sigmas', ga_low_resolution_sigmas): + return False + except AttributeError: + pass + except: + print('ga_low_resolution_sigmas parameter parsing error') + return False + except AttributeError: + pass + except: + print ('generations parameter parsing error') + return False + + + try: + twin_trigger = config_map.twin_trigger + if not ver_list_int('twin_trigger', twin_trigger): + return False + else: + try: + twin_halves = config_map.twin_halves + if not ver_list_int('twin_halves', twin_halves): + return False + except AttributeError: + pass + except: + print('twin_halves parameter parsing error') + return False + + except AttributeError: + pass + + try: + if not ver_list_int('amp_support_trigger', config_map.amp_support_trigger): + return False + else: + try: + support_type = config_map.support_type + if type(support_type) != str: + print ('support_type parameter should be string') + return False + if support_type != "GAUSS": + print ('support_type parameter can be configured "GAUSS"') + return False + except AttributeError: + pass + except: + print('support_type parameter parsing error') + return False + + try: + support_threshold = config_map.support_threshold + if type(support_threshold) != float: + print('support_threshold should be float') + return False + except AttributeError: + pass + except: + print('support_threshold parameter parsing error') + return False + + try: + support_sigma = config_map.support_sigma + if type(support_sigma) != float: + print('support_sigma should be float') + return False + except AttributeError: + pass + except: + print('support_sigma parameter parsing error') + return False + + try: + support_area = config_map.support_area + if not issubclass(type(support_area), list): + print('support_area should be list') + return False + for e in support_area: + if type(e) != int and type(e) !=float: + print('support_area should be a list of int or float') + return False + except AttributeError: + pass + except: + print('support_area parameter parsing error') + return False + + except AttributeError: + pass + + try: + if not ver_list_int('phase_support_trigger', config_map.phase_support_trigger): + return False + else: + try: + phase_min = config_map.phase_min + if type(phase_min) != float: + print('phase_min should be float') + return False + except AttributeError: + pass + except: + print('phase_min parameter parsing error') + return False + + try: + phase_max = config_map.phase_max + if type(phase_max) != float: + print('phase_max should be float') + return False + except AttributeError: + pass + except: + print('phase_max parameter parsing error') + return False + + except AttributeError: + pass + + try: + if not ver_list_int('pcdi_trigger', config_map.pcdi_trigger): + return False + else: + try: + partial_coherence_type = config_map.partial_coherence_type + if type(partial_coherence_type) != str: + print ('partial_coherence_type parameter should be string') + return False + if partial_coherence_type != "LUCY": + print ('partial_coherence_type parameter can be configured "LUCY"') + return False + except AttributeError: + pass + except: + print('partial_coherence_type parameter parsing error') + return False + + try: + partial_coherence_iteration_num = config_map.partial_coherence_iteration_num + if type(partial_coherence_iteration_num) != int: + print('partial_coherence_iteration_num should be int') + return False + except AttributeError: + pass + except: + print('partial_coherence_iteration_num parameter parsing error') + return False + + try: + partial_coherence_normalize = config_map.partial_coherence_normalize + if type(partial_coherence_normalize) != bool: + print ('partial_coherence_normalize parameter should be true or false') + return False + except AttributeError: + pass + except: + print('partial_coherence_normalize parameter parsing error') + return False + + try: + partial_coherence_roi = config_map.partial_coherence_roi + if not ver_list_int('partial_coherence_roi', partial_coherence_roi): + return False + except AttributeError: + pass + except: + print("'partial_coherence_roi' parameter parsing error") + return False + + except AttributeError: + pass + + try: + if not ver_list_int('resolution_trigger', config_map.resolution_trigger): + return False + else: + try: + iter_res_sigma_range = config_map.iter_res_sigma_range + if not ver_list_float('iter_res_sigma_range', iter_res_sigma_range): + return False + except AttributeError: + pass + except: + print("'iter_res_sigma_range' parameter parsing error") + return False + + try: + iter_res_det_range = config_map.iter_res_det_range + if not ver_list_float('iter_res_det_range', iter_res_det_range): + return False + except AttributeError: + pass + except: + print("'iter_res_det_range' parameter parsing error") + return False + + except AttributeError: + pass + + try: + if not ver_list_int('average_trigger', config_map.average_trigger): + return False + except AttributeError: + pass + + try: + if not ver_list_int('progress_trigger', config_map.progress_trigger): + return False + except AttributeError: + pass + + return True + + +def ver_config_data(fname): + + """ + This function verifies config_data file + + Parameters + ---------- + conf_info : str + configuration file + + Returns + ------- + True if configuration is correct, False otherwise + """ + if not os.path.isfile(fname): + print ('no configuration file ' + fname + ' found') + return False + + try: + config_map = ut.read_config(fname) + if config_map is None: + print ("can't read configuration file") + return False + except: + print ('Cannot parse ' + fname + ' configuration file. Check paranthesis and quotations.') + return False + + try: + data_dir = config_map.data_dir + if type(data_dir) != str: + print('data_dir parameter should be string') + return False + except AttributeError: + pass + except: + print ('data_dir parameter parsing error') + return False + + try: + if not ver_list_int('pad_crop', config_map.adjust_dimensions): + return False + except AttributeError: + pass + try: + if not ver_list_int('center_shift', config_map.center_shift): + return False + except AttributeError: + pass + try: + if not ver_list_int('binning', config_map.binning): + return False + except AttributeError: + pass + + try: + amp_threshold = config_map.amp_threshold + if type(amp_threshold) != float and type(amp_threshold) != int: + print('amp_threshold should be float') + return False + except AttributeError: + pass + except: + print('amp_threshold parameter parsing error') + return False + + try: + aliens = config_map.aliens + if not issubclass(type(aliens), list): + print('aliens should be a list of aliens(lists)') + return False + for a in aliens: + if not issubclass(type(a), list): + print ('aliens should be a list of aliens(lists)') + return False + if not ver_list_int('aliens', a): + return False + if (len(a) < 6): + print('each alien is defined by list of six int') + except AttributeError: + pass + except: + print('amp_threshold parameter parsing error') + return False + + return True + + +def ver_config_prep(fname): + + """ + This function verifies config_prep file + + Parameters + ---------- + conf_info : str + configuration file + + Returns + ------- + True if configuration is correct, False otherwise + """ + if not os.path.isfile(fname): + print ('no configuration file ' + fname + ' found') + return False + + try: + config_map = ut.read_config(fname) + if config_map is None: + print ("can't read configuration file") + return False + except: + print ('Cannot parse ' + fname + ' configuration file. Check paranthesis and quotations.') + return False + + try: + data_dir = config_map.data_dir + if type(data_dir) != str: + print('data_dir parameter should be string') + return False + except AttributeError: + pass + except: + print ('data_dir parameter parsing error') + return False + + try: + specfile = config_map.specfile + if type(specfile) != str: + print('specfile parameter should be string') + return False + except AttributeError: + pass + except: + print ('specfile parameter parsing error') + return False + + try: + darkfile = config_map.darkfile + if type(darkfile) != str: + print('darkfile parameter should be string') + return False + except AttributeError: + pass + except: + print ('darkfile parameter parsing error') + return False + + try: + whitefile = config_map.whitefile + if type(whitefile) != str: + print('whitefile parameter should be string') + return False + except AttributeError: + pass + except: + print ('whitefile parameter parsing error') + return False + + try: + if not ver_list_int('exclude_scans', config_map.exclude_scans): + return False + except AttributeError: + pass + + try: + min_files = config_map.min_files + if type(min_files) != int: + print('min_files should be int') + return False + except AttributeError: + pass + except: + print('min_files parameter parsing error') + return False + + try: + det_quad = config_map.det_quad + quad_options = [0,1,2,3,4] + if det_quad not in quad_options: + print('det_quad should be one of the following: 0, 1, 2, 3, 4') + return False + except AttributeError: + pass + except: + print('det_quad parameter parsing error') + return False + + try: + separate_scans = config_map.separate_scans + if type(separate_scans) != bool: + print('separate_scans parameter should be true or false') + return False + except AttributeError: + pass + except: + print('separate_scans parameter parsing error') + return False + + return True + + +def ver_config_disp(fname): + + """ + This function verifies config_disp file + + Parameters + ---------- + conf_info : str + configuration file + + Returns + ------- + True if configuration is correct, False otherwise + """ + if not os.path.isfile(fname): + print ('no configuration file ' + fname + ' found') + return False + + try: + config_map = ut.read_config(fname) + if config_map is None: + print ("can't read configuration file") + return False + except: + print ('Cannot parse ' + fname + ' configuration file. Check paranthesis and quotations.') + return False + + try: + crop = config_map.crop + if not issubclass(type(crop), list): + print('crop should be list') + return False + for e in crop: + if type(e) != int and type(e) != float: + print('crop should be a list of int or float') + return False + except AttributeError: + pass + except: + print('crop parameter parsing error') + return False + + try: + specfile = config_map.specfile + if type(specfile) != str: + print('specfile parameter should be string') + return False + except AttributeError: + pass + except: + print ('specfile parameter parsing error') + return False + + try: + energy = config_map.energy + if type(energy) != float: + print('energy should be float') + return False + except AttributeError: + pass + except: + print('energy parameter parsing error') + return False + + try: + delta = config_map.delta + if type(delta) != float: + print('delta should be float') + return False + except AttributeError: + pass + except: + print('delta parameter parsing error') + return False + + try: + gamma = config_map.gamma + if type(gamma) != float: + print('gamma should be float') + return False + except AttributeError: + pass + except: + print('gamma parameter parsing error') + return False + + try: + arm = config_map.arm + if type(arm) != float: + print('arm should be float') + return False + except AttributeError: + pass + except: + print('arm parameter parsing error') + return False + + try: + dth = config_map.dth + if type(dth) != float: + print('dth should be float') + return False + except AttributeError: + pass + except: + print('dth parameter parsing error') + return False + + try: + pixel = config_map.pixel + if not issubclass(type(pixel), list): + print('pixel should be a list') + return False + if type(pixel[0]) != float or type(pixel[1]) != float: + print('pixel values should be float') + return False + except AttributeError: + pass + except: + print('pixel parameter parsing error') + return False + + return True diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/spec.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/spec.py new file mode 100644 index 0000000..cf69f2f --- /dev/null +++ b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/spec.py @@ -0,0 +1,61 @@ +from xrayutilities.io import spec as spec + +class Detector(object): + def __init__(self, det_name): + self.det_name = det_name + + def get_pixel(self): + pass + + +class Det_34idcTIM2(Detector): + def __init__(self): + super(Det_34idcTIM2, self).__init__('34idcTIM2:') + + def get_pixel(self): + return '(55.0e-6, 55.0e-6)' + + +def parse_spec(specfile, scan): + # Scan numbers start at one but the list is 0 indexed + ss = spec.SPECFile(specfile)[scan - 1] + + # Stuff from the header + detector_name = str(ss.getheader_element('UIMDET')) + if detector_name == '34idcTIM2:': + detector_obj = Det_34idcTIM2() + else: + # default to this detector for now + detector_obj = Det_34idcTIM2() + pixel = detector_obj.get_pixel() + command = ss.command.split() + scanmot = command[1] + scanmot_del = (float(command[3]) - float(command[2])) / int(command[4]) + + # Motor stuff from the header + delta = ss.init_motor_pos['INIT_MOPO_Delta'] + gamma = ss.init_motor_pos['INIT_MOPO_Gamma'] + arm = ss.init_motor_pos['INIT_MOPO_camdist'] + energy = ss.init_motor_pos['INIT_MOPO_Energy'] + lam = 12.398 / energy / 10 # in nanometers + + # returning the scan motor name as well. Sometimes we scan things + # other than theta. So we need to expand the capability of the display + # code. + return lam, delta, gamma, scanmot_del, arm, pixel + + +def get_det_from_spec(specfile, scan): + # Scan numbers start at one but the list is 0 indexed + ss = spec.SPECFile(specfile)[scan - 1] + # Stuff from the header + try: + det_area = ss.getheader_element('UIMR5').split() + det_area1 = int(det_area[0]), int(det_area[1]) + det_area2 = int(det_area[2]), int(det_area[3]) + + return det_area1, det_area2 + except: + return None, None + + diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/utils.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/utils.py new file mode 100644 index 0000000..013567f --- /dev/null +++ b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/utils.py @@ -0,0 +1,572 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + +""" +Please make sure the installation :ref:`pre-requisite-reference-label` are met. +This module is a suite of utility mehods. +""" + +import tifffile as tf +import pylibconfig2 as cfg +import numpy as np +import scipy.fftpack as sf +import os +import logging +import stat +from functools import reduce +import GPUtil + +__author__ = "Barbara Frosik" +__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." +__docformat__ = 'restructuredtext en' +__all__ = ['read_tif', + 'get_opencl_dim', + 'binning', + 'get_centered', + 'adjust_dimensions', + 'crop_center', + 'flip'] + + +def get_logger(name, ldir=''): + logger = logging.getLogger(name) + logger.setLevel(logging.DEBUG) + log_file = os.path.join(ldir, 'default.log') + fh = logging.FileHandler(log_file) + fh.setLevel(logging.DEBUG) + formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') + fh.setFormatter(formatter) + logger.addHandler(fh) + return logger + + +def read_tif(filename): + """ + This method reads tif type file containing experiment data and returns the data as array. + Parameters + ---------- + filename : str + a filename containing the experiment data + Returns + ------- + data : array + an array containing the experiment data + """ + + ar = tf.imread(filename) + ar = np.swapaxes(ar, 0, 2) + ar = np.swapaxes(ar, 0, 1) + return ar + + +def save_tif(arr, tif_file): + # arr = np.swapaxes(arr, 0, 2) + # arr = np.swapaxes(arr, 1, 2) + arr = np.swapaxes(arr, 0, 1) + arr = np.swapaxes(arr, 0, 2) + tf.imsave(tif_file, arr.astype(np.int32)) + + +def read_config(config): + """ + This function gets configuration file. It checks if the file exists and parses it into a map. + Parameters + ---------- + config : str + configuration file name, including path + Returns + ------- + config_map : dict + a map containing parsed configuration, None if the given file does not exist + """ + + if os.path.isfile(config): + with open(config, 'r') as f: + config_map = cfg.Config(f.read()) + return config_map; + else: + return None + + +def get_good_dim(dim): + """ + This function calculates the dimension supported by opencl library (i.e. is multiplier of 2,3, or 5) and is closest to the + given starting dimension, and spaced by the given step. + If the dimension is not supported the function adds step value and verifies the new dimension. It iterates until it finds + supported value. + Parameters + ---------- + dim : int + a dimension that needs to be tranformed to one that is supported by the opencl library, if it is not already + + step : int + a delta to increase the dimension + Returns + ------- + dim : int + a dimension that is supported by the opencl library, and closest to the original dimension by n*step + """ + + def is_correct(x): + sub = x + if sub % 3 == 0: + sub = sub / 3 + if sub % 3 == 0: + sub = sub / 3 + if sub % 5 == 0: + sub = sub / 5 + while sub % 2 == 0: + sub = sub / 2 + return sub == 1 + + new_dim = dim + if new_dim % 2 == 1: + new_dim += 1 + while not is_correct(new_dim): + new_dim += 2 + return new_dim + + +def binning(array, binsizes): + """ + This function does the binning of the array. The array is binned in each dimension by the corresponding binsizes elements. + If binsizes list is shorter than the array dimensions, the remaining dimensions are not binned. The elements in + a bucket are summed. + Parameters + ---------- + array : array + the original array to be binned + + binsizes : list + a list defining binning buckets for corresponding dimensions + Returns + ------- + array : array + the binned array + """ + + data_dims = array.shape + # trim array + for ax in range(len(binsizes)): + cut_slices = range(data_dims[ax] - data_dims[ax] % binsizes[ax], data_dims[ax]) + array = np.delete(array, cut_slices, ax) + + binned_array = array + new_shape = list(array.shape) + + for ax in range(len(binsizes)): + if binsizes[ax] > 1: + new_shape[ax] = binsizes[ax] + new_shape.insert(ax, int(array.shape[ax] / binsizes[ax])) + binned_array = np.reshape(binned_array, tuple(new_shape)) + binned_array = np.sum(binned_array, axis=ax + 1) + new_shape = list(binned_array.shape) + return binned_array + + +# ar = np.asarray([1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9]) +# ar.resize((5,9)) +# print ('ar', ar) +# b = binning(ar, (2,2)) +# print ('b',b) +# c = binning1(ar,(2,2)) +# print ('c',c) + + +def get_centered(arr, center_shift): + """ + This function finds a greatest value in the array, and puts it in a center of a new array. If center_shift is + not zeros, the array will be shifted accordingly. The shifted elements are rolled into the other end of array. + Parameters + ---------- + arr : array + the original array to be centered + center_shift : list + a list defining shift of the center + Returns + ------- + array : array + the centered array + """ + max_coordinates = list(np.unravel_index(np.argmax(arr), arr.shape)) + max_coordinates = np.add(max_coordinates, center_shift) + shape = arr.shape + centered = arr + for i in range(len(max_coordinates)): + centered = np.roll(centered, int(shape[i] / 2) - max_coordinates[i], i) + + return centered + + +def get_centered_both(arr, support): + """ + This function finds a greatest value in the array, and puts it in a center of a new array. If center_shift is + not zeros, the array will be shifted accordingly. The shifted elements are rolled into the other end of array. + Parameters + ---------- + arr : array + the original array to be centered + support : array + the associated array shifted the same way centered array is + Returns + ------- + centered : array + the centered array + """ + max_coordinates = list(np.unravel_index(np.argmax(arr), arr.shape)) + shape = arr.shape + centered = arr + centered_supp = support + for i in range(len(max_coordinates)): + centered = np.roll(centered, int(shape[i] / 2) - max_coordinates[i], i) + centered_supp = np.roll(centered_supp, int(shape[i] / 2) - max_coordinates[i], i) + + return centered, centered_supp + + +def get_zero_padded_centered(arr, new_shape): + """ + This function pads the array with zeros to the new shape with the array in the center. + Parameters + ---------- + arr : array + the original array to be padded and centered + new_shape : tuple + a list of new dimensions + Returns + ------- + array : array + the zero padded centered array + """ + shape = arr.shape + pad = [] + c_vals = [] + for i in range(len(new_shape)): + pad.append((0, new_shape[i] - shape[i])) + c_vals.append((0.0, 0.0)) + arr = np.lib.pad(arr, (pad), 'constant', constant_values=c_vals) + + centered = arr + for i in range(len(new_shape)): + centered = np.roll(centered, int((new_shape[i] - shape[i] + 1) / 2), i) + + return centered + + +def adjust_dimensions(arr, pads): + """ + This function adds to or subtracts from each dimension of the array elements defined by pad. If the pad is positive, + the array is padded in this dimension. If the pad is negative, the array is cropped. + The dimensions of the new array are supported by the opencl library. + Parameters + ---------- + arr : array + the array to pad/crop + pad : list + list of three pad values, for each dimension + Returns + ------- + array : array + the padded/cropped array + """ + # logger = get_logger('adjust_dimensions') + old_dims = arr.shape + start = [] + stop = [] + for i in range(len(old_dims)): + pad = pads[i] + first = max(0, -pad[0]) + last = old_dims[i] - max(0, -pad[1]) + if first >= last: + print ('the crop exceeds size, please change the crop and run again') + return None + else: + start.append(first) + stop.append(last) + + cropped = arr[ start[0]:stop[0], start[1]:stop[1], start[2]:stop[2] ] + # logger.info('cutting from to ' + str(crop[0]) + ', ' + str(old_dims[0]-crop[1]) + ', ' + str(crop[2]) + ', ' \ + # + str(old_dims[1]-crop[3]) + ', ' + str(crop[4]) + ', ' + str(old_dims[2]-crop[5])) + dims = cropped.shape + c_vals = [] + new_pad = [] + for i in range(len(dims)): + pad = pads[i] + # find a good dimension and find padding + temp_dim = old_dims[i] + pad[0] + pad[1] + new_dim = get_good_dim(temp_dim) + added = new_dim - temp_dim + # if the pad is positive + pad_front = max(0, pad[0]) + int(added / 2) + pad_end = new_dim - dims[i] - pad_front + new_pad.append((pad_front, pad_end)) + c_vals.append((0.0, 0.0)) + adjusted = np.pad(cropped, new_pad, 'constant', constant_values=c_vals) + + # logger.info('pads ' + str(new_pad[0]) + ', ' + str(new_pad[1]) + ', ' + str(new_pad[2]) + ', ' + str(new_pad[3]) \ + # + ', ' + str(new_pad[4]) + ', ' + str(new_pad[5])) + # logger.info('old dim, new dim (' + str(dims[0]) + ',' + str(dims[1]) + ',' + str(dims[2]) + ') (' + str(arr.shape[0]) +\ + # ',' + str(arr.shape[1]) + ',' + str(arr.shape[1]) + ')') + + return adjusted + +# ar = np.zeros((256,256,90)) +# pads = (-100,-100,0,0,0,0) +# ar = np.zeros((81,256,256)) +# pads = (5,-7,-20,-30,4,-20) +# arr = adjust_dimensions(ar,pads) +# print (arr.shape) + +def crop_center(arr, new_size): + size = arr.shape + cropped = arr + for i in range(len(size)): + crop_front = int((size[i] - new_size[i]) / 2) + crop_end = crop_front + new_size[i] + splitted = np.split(cropped, [crop_front, crop_end], axis=i) + cropped = splitted[1] + + return cropped + + +# ar = np.zeros((81,256,256)) +# new_size = (40, 200,100) +# arr = crop_center(ar,new_size) +# print (arr.shape) + +def get_norm(arr): + return sum(sum(sum(abs(arr) ** 2))) + + +def flip(m, axis): + """ + Copied from numpy 1.12.0. + """ + if not hasattr(m, 'ndim'): + m = np.asarray(m) + indexer = [slice(None)] * m.ndim + try: + indexer[axis] = slice(None, None, -1) + except IndexError: + raise ValueError("axis=%i is invalid for the %i-dimensional input array" + % (axis, m.ndim)) + return m[tuple(indexer)] + + +def gaussian(shape, sigmas, alpha=1): + grid = np.full(shape, 1.0) + for i in range(len(shape)): + # prepare indexes for tile and transpose + tile_shape = list(shape) + tile_shape.pop(i) + tile_shape.append(1) + trans_shape = list(range(len(shape) - 1)) + trans_shape.insert(i, len(shape) - 1) + + multiplier = - 0.5 * alpha / pow(sigmas[i], 2) + line = np.linspace(-(shape[i] - 1) / 2.0, (shape[i] - 1) / 2.0, shape[i]) + gi = np.tile(line, tile_shape) + gi = np.transpose(gi, tuple(trans_shape)) + exponent = np.power(gi, 2) * multiplier + gi = np.exp(exponent) + grid = grid * gi + + grid_total = np.sum(grid) + return grid / grid_total + + +def gauss_conv_fft(arr, sigmas): + arr_sum = np.sum(abs(arr)) + arr_f = sf.ifftshift(sf.fftn(sf.ifftshift(arr))) + shape = list(arr.shape) + for i in range(len(sigmas)): + sigmas[i] = shape[i] / 2.0 / np.pi / sigmas[i] + convag = arr_f * gaussian(shape, sigmas) + convag = np.fft.ifftshift(sf.ifftn(np.fft.ifftshift(convag))) + convag = convag.real + convag = np.clip(convag, 0, None) + correction = arr_sum / np.sum(convag) + convag *= correction + return convag + + +def shrink_wrap(arr, threshold, sigma, type='gauss'): + sigmas = [sigma] * len(arr.shape) + if type == 'gauss': + convag = gauss_conv_fft(abs(arr), sigmas) + max_convag = np.amax(convag) + convag = convag / max_convag + support = np.where(convag >= threshold, 1, 0) + return support + else: + return None + + +def read_results(read_dir): + try: + imagefile = os.path.join(read_dir, 'image.npy') + image = np.load(imagefile) + + supportfile = os.path.join(read_dir, 'support.npy') + support = np.load(supportfile) + + try: + cohfile = os.path.join(read_dir, 'coherence.npy') + coh = np.load(cohfile) + except: + coh = None + except: + pass + + return image, support, coh + + +def save_metrics(errs, dir, metrics=None): + metric_file = os.path.join(dir, 'summary') + if os.path.isfile(metric_file): + os.remove(metric_file) + with open(metric_file, 'a') as f: + if metrics is not None: + f.write('metric result\n') + for key in metrics: + value = metrics[key] + f.write(key + ' = ' + str(value) + '\n') + f.write('\nerrors by iteration\n') + for er in errs: + f.write(str(er) + ' ') + f.close() + +def write_plot_errors(save_dir): + plot_file = os.path.join(save_dir, 'plot_errors.py') + f = open(plot_file, 'w+') + f.write("#! /usr/bin/env python\n") + f.write("import matplotlib.pyplot as plt\n") + f.write("import numpy as np\n") + f.write("import sys\n") + f.write("import os\n") + f.write("current_dir = sys.path[0]\n") + f.write("errs = np.load(os.path.join(current_dir, 'errors.npy')).tolist()\n") + f.write("errs.pop(0)\n") + f.write("plt.plot(errs)\n") + f.write("plt.ylabel('errors')\n") + f.write("plt.show()") + f.close() + st = os.stat(plot_file) + os.chmod(plot_file, st.st_mode | stat.S_IEXEC) + + +def save_results(image, support, coh, errs, reciprocal, flow, iter_array, save_dir, metrics=None): + if not os.path.exists(save_dir): + os.makedirs(save_dir) + + image_file = os.path.join(save_dir, 'image') + np.save(image_file, image) + support_file = os.path.join(save_dir, 'support') + np.save(support_file, support) + errs_file = os.path.join(save_dir, 'errors') + np.save(errs_file, errs) + if not coh is None: + coh_file = os.path.join(save_dir, 'coherence') + np.save(coh_file, coh) + reciprocal_file = os.path.join(save_dir, 'reciprocal') + np.save(reciprocal_file, reciprocal) + write_plot_errors(save_dir) + + graph_dir = os.path.join(save_dir, 'graph') + if not os.path.exists(graph_dir): + os.makedirs(graph_dir) + flow_file = os.path.join(graph_dir, 'flow') + np.save(flow_file, np.asarray(flow)) + iter_array_file = os.path.join(graph_dir, 'iter_array') + np.save(iter_array_file, iter_array) + + if metrics is not None: + save_metrics(errs, save_dir, metrics) + else: + save_metrics(errs, save_dir) + + +def save_multiple_results(samples, images, supports, cohs, errs, reciprocals, flows, iter_arrs, save_dir, metrics=None): + """ + This function saves results of multiple reconstructions to directory tree in save_dir. + Parameters + ---------- + samples : int + number of reconstruction sets results + images : list + list of numpy arrays containing reconstructed images + supports : list + list of numpy arrays containing support of reconstructed images + cohs : list + list of numpy arrays containing coherence of reconstructed images + save_dir : str + a directory to save the results + Returns + ------- + nothing + """ + for i in range(samples): + subdir = os.path.join(save_dir, str(i)) + if metrics is None: + save_results(images[i], supports[i], cohs[i], np.asarray(errs[i]), reciprocals[i], flows[i], iter_arrs[i], subdir) + else: + save_results(images[i], supports[i], cohs[i], np.asarray(errs[i]), reciprocals[i], flows[i], iter_arrs[i], subdir, metrics[i]) + + +def sub_pixel_shift(arr, row_shift, col_shift, z_shift): + # arr is 3D + buf2ft = sf.fftn(arr) + shape = arr.shape + Nr = np.fft.ifftshift(np.array(list(range(-int(np.floor(shape[0] / 2)), shape[0] - int(np.floor(shape[0] / 2)))))) + Nc = np.fft.ifftshift(np.array(list(range(-int(np.floor(shape[1] / 2)), shape[1] - int(np.floor(shape[1] / 2)))))) + Nz = np.fft.ifftshift(np.array(list(range(-int(np.floor(shape[2] / 2)), shape[2] - int(np.floor(shape[2] / 2)))))) + [Nc, Nr, Nz] = np.meshgrid(Nc, Nr, Nz) + Greg = buf2ft * np.exp(1j * 2 * np.pi * (-row_shift * Nr / shape[0] - col_shift * Nc / shape[1] - z_shift * Nz / shape[2])) + return sf.ifftn(Greg) + + +def arr_property(arr): + arr1 = abs(arr) + print ('norm', np.sum(pow(abs(arr),2))) + max_coordinates = list(np.unravel_index(np.argmax(arr1), arr.shape)) + print ('max coords, value', max_coordinates, arr[max_coordinates[0], max_coordinates[1],max_coordinates[2]]) + + +def get_gpu_load(mem_size, ids): + gpus = GPUtil.getGPUs() + total_avail = 0 + available_dir = {} + for gpu in gpus: + if gpu.id in ids: + free_mem = gpu.memoryFree + avail_runs = int(free_mem / mem_size) + if avail_runs > 0: + total_avail += avail_runs + available_dir[gpu.id] = avail_runs + available = [] + for id in ids: + try: + avail_runs = available_dir[id] + except: + avail_runs = 0 + available.append(avail_runs) + return available + + +def get_gpu_distribution(runs, available): + all_avail = reduce((lambda x,y: x+y), available) + while runs < all_avail: + # balance distribution + for i in range(len(available)): + if available[i] > 0: + available[i] -= 1 + all_avail -= 1 + if all_avail == runs: + break + return available diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/utils_ga.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/utils_ga.py new file mode 100644 index 0000000..747ad80 --- /dev/null +++ b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/utils_ga.py @@ -0,0 +1,219 @@ + +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + +""" +Please make sure the installation :ref:`pre-requisite-reference-label` are met. +This module is a suite of utility mehods. +""" + +import scipy as sci +import numpy as np +import reccdi.src_py.utilities.utils as ut + + +__author__ = "Barbara Frosik" +__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." +__docformat__ = 'restructuredtext en' +__all__ = ['get_array_from_tif', + 'get_opencl_dim', + 'binning', + 'get_centered', + 'adjust_dimensions', + 'crop_center', + 'flip'] + +def cross_correlation(a, b): + A = np.fft.ifftshift(np.fft.fftn(np.fft.fftshift(conj_reflect(a)))) + B = np.fft.ifftshift(np.fft.fftn(np.fft.fftshift(b))) + CC = A * B + return np.fft.ifftshift(np.fft.ifftn(np.fft.fftshift(CC))) + + +def conj_reflect(arr): + F = np.fft.ifftshift(np.fft.fftn(np.fft.fftshift(arr))) + return np.fft.ifftshift(np.fft.ifftn(np.fft.fftshift(np.conj(F)))) + + +def check_get_conj_reflect(arr1, arr2): + support1 = ut.shrink_wrap(abs(arr1), .1, .1) + support2 = ut.shrink_wrap(abs(arr2), .1, .1) + cc1 = cross_correlation(support1, ut.shrink_wrap(conj_reflect(arr2), .1, .1)) + cc2 = cross_correlation(support1, support2) + if np.amax(cc1) > np.amax(cc2): + return conj_reflect(arr2) + else: + return arr2 + + +def dftups(arr, nor=-1, noc=-1, usfac=2, roff=0, coff=0): + # arr is 2D + [nr,nc] = arr.shape + if nor < 0: + nor = nr + if noc < 0: + noc = nc + + # Compute kernels and obtain DFT by matrix products + yl = list(range(-int(np.floor(nc/2)), nc - int(np.floor(nc/2)))) + y = np.fft.ifftshift(np.array(yl)) * (-2j * np.pi/(nc * usfac)) + xl = list(range(-coff, noc - coff)) + x = np.array(xl) + yt = np.tile(y, (len(xl), 1)) + xt = np.tile(x, (len(yl), 1)) + kernc = np.exp(yt.T * xt) + + yl = list(range(-roff, nor - roff)) + y = np.array(yl) + xl = list(range(-int(np.floor(nr/2)), nr - int(np.floor(nr/2)))) + x = np.fft.ifftshift(np.array(xl)) + yt = np.tile(y, (len(xl), 1)) + xt = np.tile(x, (len(yl), 1)) + kernr = np.exp(yt * xt.T * (-2j * np.pi/(nr * usfac))) + + return np.dot(np.dot(kernr.T, arr), kernc) + + +def dftregistration(ref_arr, arr, usfac=2): + #arrays are 2D + # based on Matlab dftregistration by Manuel Guizar (Portions of this code were taken from code written by + # Ann M. Kowalczyk and James R. Fienup. + if usfac < 2: + print ('usfac less than 2 not supported') + # will throw exception + return + # First upsample by a factor of 2 to obtain initial estimate + # Embed Fourier data in a 2x larger array + shape = ref_arr.shape + large_shape = tuple(2 * x for x in ref_arr.shape) + c_c = ut.get_zero_padded_centered(np.fft.fftshift(ref_arr) * np.conj(np.fft.fftshift(arr)), large_shape) + + # Compute crosscorrelation and locate the peak + c_c = np.fft.ifft2(np.fft.ifftshift(c_c)) + max_coord = list(np.unravel_index(np.argmax(c_c), c_c.shape)) + + if max_coord[0] > shape[0]: + row_shift = max_coord[0] - large_shape[0] + else: + row_shift = max_coord[0] + if max_coord[1] > shape[1]: + col_shift = max_coord[1] - large_shape[1] + else: + col_shift = max_coord[1] + + row_shift = row_shift/2 + col_shift = col_shift/2 + + #If upsampling > 2, then refine estimate with matrix multiply DFT + if usfac > 2: + # DFT computation + # Initial shift estimate in upsampled grid + row_shift = round(row_shift * usfac)/usfac + col_shift = round(col_shift * usfac)/usfac + dftshift = np.fix(np.ceil(usfac * 1.5)/2) # Center of output array at dftshift + # Matrix multiply DFT around the current shift estimate + c_c = np.conj(dftups(arr * np.conj(ref_arr), int(np.ceil(usfac * 1.5)), int(np.ceil(usfac * 1.5)), usfac, + int(dftshift-row_shift * usfac), int(dftshift-col_shift * usfac)))/\ + (int(np.fix(shape[0]/2)) * int(np.fix(shape[1]/2)) * usfac^2) + # Locate maximum and map back to original pixel grid + max_coord = list(np.unravel_index(np.argmax(c_c), c_c.shape)) + [rloc, cloc] = max_coord + + rloc = rloc - dftshift + cloc = cloc - dftshift + row_shift = row_shift + rloc/usfac + col_shift = col_shift + cloc/usfac + + return row_shift, col_shift + + +def register_3d_reconstruction(ref_arr, arr): + r_shift_2, c_shift_2 = dftregistration(np.fft.fft2(np.sum(ref_arr, 2)), np.fft.fft2(np.sum(arr, 2)), 100) + r_shift_1, c_shift_1 = dftregistration(np.fft.fft2(np.sum(ref_arr, 1)), np.fft.fft2(np.sum(arr, 1)), 100) + r_shift_0, c_shift_0 = dftregistration(np.fft.fft2(np.sum(ref_arr, 0)), np.fft.fft2(np.sum(arr, 0)), 100) + + shift_2 = sum([r_shift_2, r_shift_1]) * 0.5 + shift_1 = sum([c_shift_2, r_shift_0]) * 0.5 + shift_0 = sum([c_shift_1, c_shift_0]) * 0.5 + return shift_2, shift_1, shift_0 + + +def print_max(arr): + max_coord = list(np.unravel_index(np.argmax(abs(arr)), arr.shape)) + print ('max coord, value', abs(arr[max_coord[0],max_coord[1],max_coord[2]]), max_coord) + +def zero_phase(arr, val=0): + ph = np.angle(arr) + support = ut.shrink_wrap(abs(arr), .2, .5) #get just the crystal, i.e very tight support + avg_ph = np.sum(ph * support)/np.sum(support) + ph = ph - avg_ph + val + return abs(arr) * np.exp(1j * ph) + + +def zero_phase_cc(arr1, arr2): + # will set array1 avg phase to array2 + c_c = np.conj(arr1) * arr2 + c_c_tot = np.sum(c_c) + ph = np.angle(c_c_tot) + arr = arr1 * np.exp(1j * ph) + return arr + + +def align_arrays(ref_arr, arr): + (shift_2, shift_1, shift_0) = register_3d_reconstruction(abs(ref_arr), abs(arr)) + return ut.sub_pixel_shift(arr, shift_2, shift_1, shift_0) + +# ref_arr = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') +# arr = np.load('/home/phoebus/BFROSIK/temp/test/B_78-97/results/image.npy') +# l = align_arrays(ref_arr, arr) + +def sum_phase_tight_support(arr): + arr = zero_phase(arr) + ph = np.arctan2(arr.imag, arr.real) + support = ut.shrink_wrap(abs(arr), .2, .5) + return sum( abs(ph * support)) + + +def get_arr_characteristic(arr): + lev1_norm = sum(abs(arr)) + sharpness = sum(abs(arr)^4) + summed_phase = sum_phase_tight_support(arr) + support = ut.shrink_wrap(arr, .2, .5) + area = sum(support) + gradients = np.gradient(arr) + TV = np.zeros(arr.shape) + for gr in gradients: + TV += abs(gr) + return lev1_norm, sharpness, summed_phase, area, TV + + +# def align_iterates(arrs): +# #assume arrs[0] is the referrence array +# alpha = arrs[0] +# for i in range(1, len(arrs)): +# arr = check_get_conj_reflect(abs(alpha), abs(arr)) +# shift_2, shift_1, shift_0 = register_3d_reconstruction(abs(alpha), abs(arr)) +# arrs[i] = sub_pixel_shift(arr, round(shift_2), round(shift_1), round(shift_2)) +# return arrs + + +# def test(a,b): +# alpha = zero_phase(a, 0) +# beta = zero_phase(b, 0) +# alpha = check_get_conj_reflect(beta, alpha) +# alpha_s = align_arrays(beta, alpha) +# alpha_s = zero_phase(alpha_s, 0) +# ph_alpha = np.angle(alpha_s) +# beta = zero_phase_cc(beta, alpha_s) +# ph_beta = np.angle(beta) +# beta = np.sqrt(abs(alpha_s) * abs(beta)) * np.exp(0.5j * (ph_beta + ph_alpha)) +# +# a = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') +# b = np.load('/home/phoebus/BFROSIK/temp/test/B_78-97/results/image.npy') +# test(a, b) \ No newline at end of file diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/__init__.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/prep.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/prep.py new file mode 100644 index 0000000..d6ddd0c --- /dev/null +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/prep.py @@ -0,0 +1,288 @@ +import pylibconfig2 as cfg +import numpy as np +import copy +import scipy.fftpack as sf +import os +import glob +import tifffile as tif +import reccdi.src_py.utilities.spec as spec +import reccdi.src_py.utilities.utils as ut + + +def get_dir_list(scans, map): + """ + Returns list of sub-directories in data_dir with names matching range of scans + It will exclude scans within exclude_scans list if provided, and directories with fewer files than + min_files, if provided + :param scans: + :param map: + :return: + """ + try: + min_files = map.min_files + except: + min_files = 0 + try: + exclude_scans = map.exclude_scans + except: + exclude_scans = [] + try: + data_dir = map.data_dir.strip() + except: + print ('please provide data_dir') + return + + dirs = [] + for name in os.listdir(data_dir): + subdir = os.path.join(data_dir, name) + if os.path.isdir(subdir): + # exclude directories with fewer tif files than min_files + if len(glob.glob1(subdir, "*.tif")) < min_files and len(glob.glob1(subdir, "*.tiff")) < min_files: + continue + try: + index = int(name[-4:]) + if index >= scans[0] and index <= scans[1] and not index in exclude_scans: + dirs.append(subdir) + except: + continue + return dirs + + +def get_dark_white(darkfile, whitefile, det_area1, det_area2): + if darkfile is not None: + # find the darkfield array + dark_full = tif.imread(darkfile).astype(float) + # crop the corresponding quad or use the whole array, depending on what info was parsed from spec file + dark = dark_full[slice(det_area1[0], det_area1[0] + det_area1[1]), slice(det_area2[0], det_area2[0] + det_area2[1])] + else: + dark = None + + if whitefile is not None: + # find the whitefield array + white_full = tif.imread(whitefile).astype(float) + # crop the corresponding quad or use the whole array, depending on what info was parsed from spec file + white = white_full[slice(det_area1[0], det_area1[0] + det_area1[1]), slice(det_area2[0], det_area2[0] + det_area2[1])] + # set the bad pixels to some large value + white = np.where(white<5000, 1e20, white) #Some large value + else: + white = None + + return dark, white + + +def get_normalized_slice(file, dark, white): + # file is a tuple of slice and either background slice or None + slice = tif.TiffFile(file[0]).asarray() + if file[1] is not None: + slice = slice - tif.TiffFile(file[1]).asarray() + if dark is not None: + slice = np.where(dark > 5, 0, slice) #Ignore cosmic rays + # here would be code for correction for dead time + if white is not None: + slice = slice/white + slice *= 1e5 #Some medium value + slice = np.where(np.isnan(slice), 0, slice) + return slice + + +def read_scan(dir, dark, white): + files = [] + files_dir = {} + for file in os.listdir(dir): + if file.endswith('tif') or file.endswith('tiff'): + temp = file.split('.') + #it's assumed that the files end with four digits and 'tif' or 'tiff' extension + key = temp[0][-4:] + files_dir[key] = file + + ordered_keys = sorted(list(files_dir.keys())) + + for key in ordered_keys: + file = files_dir[key] + file = os.path.join(dir, file) + bg_file = file.replace('.tif', '_bg.tif') + if not os.path.isfile(bg_file): + bg_file = None + + files.append((file, bg_file)) + + # look at slice0 to find out shape + n = 0 + slice0 = get_normalized_slice(files[n], dark, white) + shape = (slice0.shape[0], slice0.shape[1], len(files)) + arr = np.zeros(shape, dtype=slice0.dtype) + arr[:,:,0] = slice0 + + #for i in range (1, len(files)): + for file in files[1:]: + n = n + 1 + slice = get_normalized_slice(file, dark, white) + arr[:,:,n] = slice + return arr + + +def shift(arr, shifty): + # pass the FT of the fftshifted array you want to shift + # you get back the actual array, not the FT. + dims = arr.shape + # scipy does normalize ffts! + ftarr = sf.fftn(arr) + r=[] + for d in dims: + r.append(slice(int(np.ceil(-d/2.)), int(np.ceil(d/2.)), None)) + idxgrid = np.mgrid[r] + for d in range(len(dims)): + ftarr *= np.exp(-1j*2*np.pi*shifty[d]*sf.fftshift(idxgrid[d])/float(dims[d])) + + shifted_arr = sf.ifftn(ftarr) + return shifted_arr + + +def combine_part(part_f, slice_sum, refpart, part): + # get cross correlation and pixel shift + cross_correlation = sf.ifftn(refpart*np.conj(part_f)) + corelated = np.array(cross_correlation.shape) + amp = np.abs(cross_correlation) + intshift = np.unravel_index(amp.argmax(), corelated) + shifted = np.array(intshift) + pixelshift = np.where(shifted>=corelated/2, shifted-corelated, shifted) + return slice_sum + shift(part, pixelshift) + + +def fit(arr, det_area1, det_area2): + # The det_area parameters hold the [beginning of image, size] in both dimensions. + # the beginning of image is relative to the full sensor image 512 x 512. + # if the full sensor was used for the image (i.e. the data size is 512x512) + # or if the image overleaps multiple quads, + # the quadrants need to be shifted + # check whether the image was taken with a single quad, then no shift is needed + if (det_area1[0] + det_area1[1] <= 256) and (det_area2[0] + det_area2[1] <= 256): + return arr + else: + b = np.zeros((517,516,arr.shape[2]),float) + tmp = np.zeros((512,512,arr.shape[2]),float) + tmp[det_area1[0]:det_area1[0]+det_area1[1],det_area2[0]:det_area2[0]+det_area2[1],:] = arr + b[:256,:256,:] = tmp[:256,:256,:] #Quad top left unchanged + b[:256,260:,:] = tmp[:256,256:,:] #Quad top right moved 4 right + b[261:,:256,:] = tmp[256:,:256,:] #Quad bot left moved 6 down + b[261:,260:,:] = tmp[256:,256:,:] #Quad bot right + + return b[det_area1[0]:det_area1[0]+det_area1[1],det_area2[0]:det_area2[0]+det_area2[1],:] + + +def prep_data(experiment_dir, scans, map, det_area1, det_area2, *args): + if scans is None: + print ('scan info not provided') + return + + # build sub-directories map + if len(scans) == 1: + scans.append(scans[0]) + dirs = get_dir_list(scans, map) + if len(dirs) == 0: + print ('no data directories found') + return + else: + if not os.path.exists(experiment_dir): + os.makedirs(experiment_dir) + + try: + whitefile = (map.whitefile).strip() + except: + whitefile = None + + try: + darkfile = (map.darkfile).strip() + except: + darkfile = None + + dark, white = get_dark_white(darkfile, whitefile, det_area1, det_area2) + + if len(dirs) == 0: + print ('there are no data directories for given scans') + return + + if len(dirs) == 1: + arr = read_scan(dirs[0], dark, white) + arr = fit(arr, det_area1, det_area2) + else: + # make the first part a reference + part = read_scan(dirs[0], dark, white) + part = fit(part, det_area1, det_area2) + slice_sum = np.abs(copy.deepcopy(part)) + refpart = sf.fftn(part) + for i in range (1, len(dirs)): + #this will load scans from each directory into an array part + part = read_scan(dirs[i], dark, white) + part = fit(part, det_area1, det_area2) + # add the arrays together + part_f = sf.fftn(part) + slice_sum = combine_part(part_f, slice_sum, refpart, part) + arr = np.abs(slice_sum).astype(np.int32) + + #arr = fit(arr, det_area1, det_area2) + + #create directory to save prepared data ,/prep + prep_data_dir = os.path.join(experiment_dir, 'prep') + if not os.path.exists(prep_data_dir): + os.makedirs(prep_data_dir) + data_file = os.path.join(prep_data_dir, 'prep_data.tif') + + ut.save_tif(arr, data_file) + print ('done with prep, shape:', arr.shape) + + +def prepare(experiment_dir, scans, conf_file, *args): + try: + with open(conf_file, 'r') as f: + config_map = cfg.Config(f.read()) + except Exception as e: + print('Please check the configuration file ' + conf_file + '. Cannot parse ' + str(e)) + return + + scan_end = scans[len(scans)-1] + try: + specfile = config_map.specfile.strip() + # parse det1 and det2 parameters from spec + det_area1, det_area2 = spec.get_det_from_spec(specfile, scan_end) + except: + try: + det_quad = config_map.det_quad + if det_quad == 0: + det_area1 = (0, 512) + det_area2 = (0, 512) + elif det_quad == 1: + det_area1 = (0, 256) + det_area2 = (0, 256) + elif det_quad == 2: + det_area1 = (0, 256) + det_area2 = (256, 512) + elif det_quad == 3: + det_area1 = (256, 512) + det_area2 = (0, 256) + elif det_quad == 4: + det_area1 = (256, 512) + det_area2 = (256, 512) + else: + print('the detector quad can be configured as digt from 0 to 4') + return + except Exception as e: + print('spec file or scan is not configured, and detector quad is not configured') + return + + try: + separate_scans = config_map.separate_scans + except: + separate_scans = False + + # data prep + # if separate scans, prepare data in each scan separately in subdirectory + if separate_scans and len(scans) > 1: + for scan in range (scans[0], scans[1]+1): + single_scan = [scan] + scan_exp_dir = os.path.join(experiment_dir, 'scan_' + str(scan)) + prep_data(scan_exp_dir, single_scan, config_map, det_area1, det_area2, args) + else: + prep_data(experiment_dir, scans, config_map, det_area1, det_area2, args) + + diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/__init__.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/data.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/data.py new file mode 100644 index 0000000..652022d --- /dev/null +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/data.py @@ -0,0 +1,200 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + + +""" +Please make sure the installation :ref:`pre-requisite-reference-label` are met. +This module controls the reconstruction process. The user has to provide parameters such as type of processor, data, and configuration. +The processor specifies which library will be used by CFM (Calc Fast Module) that performs the processor intensive calculations. The module +can be run on cpu, or gpu. Depending on the gpu hardware and library, one can use opencl or cuda library. +The module starts the data preparation routines, calls for reconstruction using the CFM, and prepares the reconstructed data for +visualization. +""" + +import numpy as np +import reccdi.src_py.utilities.utils as ut +import reccdi.src_py.utilities.parse_ver as ver +import os + + +__author__ = "Barbara Frosik" +__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." +__docformat__ = 'restructuredtext en' +__all__ = ['prep'] + + +def prep(fname, conf_info): + + """ + This function prepares raw data for reconstruction. It uses configured parameters. The preparation consists of the following steps: + 1. clearing the noise - the values below an amplitude threshold are set to zero + 2. removing the "aliens" - aliens are areas that are effect of interference. The area is manually set in a configuration file + after inspecting the data. + 3. binning - adding amplitudes of several consecutive points. Binning can be done in any dimension. + 4. amplitudes are set to sqrt + 5. cropping and padding. If the adjust_dimention is negative in any dimension, the array is cropped in this dimension. + The cropping is followed by padding in the dimensions that have positive adjust dimension. After adjusting, the dimensions + are adjusted further to find the smallest dimension that is supported by opencl library (multiplier of 2, 3, and 5). + 6. centering - finding the greatest amplitude and locating it at a center of new array. If shift center is defined, the + center will be shifted accordingly. The shifted elements are rolled into the other end of array. + + The modified data is then saved in data directory. + + Parameters + ---------- + fname : str + tif file containing raw data + + conf_info : str + experiment directory or configuration file. If it is directory, the "conf/config_data" will be + appended to determine configuration file + + Returns + ------- + nothing + """ + # The data has been transposed when saved in tif format for the ImageJ to show the right orientation + data = ut.read_tif(fname) + + if os.path.isdir(conf_info): + experiment_dir = conf_info + conf = os.path.join(experiment_dir, 'conf', 'config_data') + # if the experiment contains separate scan directories + if not os.path.isfile(conf): + base_dir = os.path.abspath(os.path.join(experiment_dir, os.pardir)) + conf = os.path.join(base_dir, 'conf', 'config_data') + else: + #assuming it's a file + conf = conf_info + experiment_dir = None + + # verify the configuration file + if not ver.ver_config_data(conf): + return + + try: + config_map = ut.read_config(conf) + if config_map is None: + print ("can't read configuration file") + return + except: + print ('Please check the configuration file ' + conf + '. Cannot parse') + return + + # saving file for Kenley project - AI aliens removing + print ('saving for AI') + d_f = os.path.join(experiment_dir, 'prep', 'prep_data.npy') + np.save(d_f, data) + # zero out the ares defined by aliens + try: + aliens = config_map.aliens + print ('removing aliens') + for alien in aliens: + # The ImageJ swaps the x and y axis, so the aliens coordinates needs to be swapped, since ImageJ is used + # to find aliens + data[alien[1]:alien[4], alien[0]:alien[3], alien[2]:alien[5]] = 0 + # saving file for Kenley project - AI aliens removing + aliens_f = os.path.join(experiment_dir, 'prep', 'aliens') + with open(aliens_f, 'a') as a_f: + try: + with open(conf, 'r') as f: + for line in f: + if line.startswith('aliens'): + a_f.write(line + '\n') + break + f.close() + a_f.close() + except: + pass + # saving file for Kenley project - AI aliens removing + d_f = os.path.join(experiment_dir, 'prep', 'prep_no_aliens.npy') + np.save(d_f, data) + d_f = os.path.join(experiment_dir, 'prep', 'prep_no_aliens.tif') + ut.save_tif(data, d_f) + + except AttributeError: + pass + except: + print ('error in aliens configuration') + + try: + amp_threshold = config_map.amp_threshold + print ('applied threshold') + except AttributeError: + print ('define amplitude threshold. Exiting') + return + + # zero out the noise + prep_data = np.where(data <= amp_threshold, 0, data) + + # square root data + prep_data = np.sqrt(prep_data) + + try: + crops_pads = config_map.adjust_dimensions + # the adjust_dimention parameter list holds adjustment in each direction. Append 0s, if shorter + if len(crops_pads) < 6: + for _ in range (6 - len(crops_pads)): + crops_pads.append(0) + except AttributeError: + # the size still has to be adjusted to the opencl supported dimension + crops_pads = (0, 0, 0, 0, 0, 0) + # adjust the size, either pad with 0s or crop array + print ('cropping and/or padding dimensions') + pairs = [] + for i in range(int(len(crops_pads)/2)): + pair = crops_pads[2*i:2*i+2] + pairs.append(pair) + # change pairs x and y, as the ImageJ swaps the axes + pairs[0], pairs[1] = pairs[1], pairs[0] + prep_data = ut.adjust_dimensions(prep_data, pairs) + if prep_data is None: + print('check "adjust_dimensions" configuration') + return + + try: + center_shift = config_map.center_shift + print ('shift center') + prep_data = ut.get_centered(prep_data, center_shift) + except AttributeError: + prep_data = ut.get_centered(prep_data, [0,0,0]) + + try: + binsizes = config_map.binning + try: + bins = [] + for binsize in binsizes: + bins.append(binsize) + filler = len(prep_data.shape) - len(bins) + for _ in range(filler): + bins.append(1) + bins[0], bins[1] = bins[1], bins[0] + prep_data = ut.binning(prep_data, bins) + except: + print ('check "binning" configuration') + except AttributeError: + pass + + try: + data_dir = config_map.data_dir + except AttributeError: + data_dir = 'data' + if experiment_dir is not None: + data_dir = os.path.join(experiment_dir, data_dir) + if not os.path.exists(data_dir): + os.makedirs(data_dir) + + # save data + data_file = os.path.join(data_dir, 'data.tif') + # np.save(data_file, prep_data) + ut.save_tif(prep_data, data_file) + print ('data ready for reconstruction, data dims:', prep_data.shape) + + +#prep('/local/bfrosik/CDI/S149/Staff14-3_S0149.tif', 'config_data') diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/fast_module.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/fast_module.py new file mode 100644 index 0000000..7f05a31 --- /dev/null +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/fast_module.py @@ -0,0 +1,177 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + + +""" +Please make sure the installation :ref:`pre-requisite-reference-label` are met. +This module controls the reconstruction process. The user has to provide parameters such as type of processor, data, and configuration. +The processor specifies which library will be used by CFM (Calc Fast Module) that performs the processor intensive calculations. The module +can be run on cpu, or gpu. Depending on the gpu hardware and library, one can use opencl or cuda library. +The module starts the data preparation routines, calls for reconstruction using the CFM, and prepares the reconstructed data for +visualization. +""" + +import numpy as np +import scipy.fftpack as sf +# import reccdi.src_py.cyth.bridge_cpu as bridge_cpu +# import reccdi.src_py.cyth.bridge_opencl as bridge_opencl +# import reccdi.src_py.cyth.bridge_cuda as bridge_cuda +import copy + + +__author__ = "Barbara Frosik" +__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." +__docformat__ = 'restructuredtext en' +__all__ = ['fast_module_reconstruction',] + + +def fast_module_reconstruction(proc, device, conf, data, coh_dims, image=None, support=None, coherence=None): + """ + This function calls a bridge method corresponding to the requested processor type. The bridge method is an access + to the CFM (Calc Fast Module). When reconstruction is completed the function retrieves results from the CFM. + The data received is max centered and the array is ordered "C". The CFM requires data zero-frequency component at + the center of the spectrum and "F" array order. Thus the data is modified at the beginning. + + Parameters + ---------- + proc : str + a string indicating the processor type + + device : int + device id assigned to this reconstruction + + conf : dict + configuration map + + data : array + a 3D np array containing pre-processed experiment data + + coh_dims : tuple + shape of coherence array + + image : numpy array + initial image for reconstruction or None + + support : numpy array + support corresponding to image or None + + coherence : numpy array + coherence corresponding to image + + Returns + ------- + image : numpy array + reconstructed image + + support : numpy array + support for reconstructed image + + coherence : numpy array + coherence for reconstructed image + + er : list + a vector containing errors for each iteration + """ + if proc == 'cpu': + import reccdi.src_py.cyth.bridge_cpu as bridge_cpu + fast_module = bridge_cpu.PyBridge() + elif proc == 'opencl': + import reccdi.src_py.cyth.bridge_opencl as bridge_opencl + fast_module = bridge_opencl.PyBridge() + elif proc == 'cuda': + import reccdi.src_py.cyth.bridge_cuda as bridge_cuda + fast_module = bridge_cuda.PyBridge() + + # shift data + data = sf.fftshift(data) + data = np.swapaxes(data,1,2) + + dims = data.shape + dims1 = (dims[2], dims[1], dims[0]) + + data_l = data.flatten().tolist() + if image is None: + fast_module.start_calc(device, data_l, dims1, conf) + elif support is None: + # pass image + image = np.swapaxes(image, 1, 0) + image = np.swapaxes(image, 2, 0) + image = image.flatten() + fast_module.start_calc_with_guess(device, data_l, image.real.tolist(), image.imag.tolist(), dims1, conf) + elif coherence is None: + # pass image and support + image = np.swapaxes(image, 1, 0) + image = np.swapaxes(image, 2, 0) + image = image.flatten() + support = np.swapaxes(support, 1, 0) + support = np.swapaxes(support, 2, 0) + support = support.flatten() + fast_module.start_calc_with_guess_support(device, data_l, image.real.tolist(), image.imag.tolist(), support.tolist(), dims1, conf) + else: + # pass image and support and coherence + image = np.swapaxes(image, 1, 0) + image = np.swapaxes(image, 2, 0) + image = image.flatten() + support = np.swapaxes(support, 1, 0) + support = np.swapaxes(support, 2, 0) + support = support.flatten() + coh_dims1 = (coh_dims[2], coh_dims[1], coh_dims[0]) + coherence = np.swapaxes(coherence, 1, 0) + coherence = np.swapaxes(coherence, 2, 0) + coherence = coherence.flatten() + + fast_module.start_calc_with_guess_support_coh(device, data_l, image.real.tolist(), image.imag.tolist(), support.tolist(), dims1, coherence.tolist(), coh_dims1, conf) + + er = copy.deepcopy(fast_module.get_errors()) + if len(er) == 1 and er[0] == -1: + # run into Nan during reconstruction + fast_module.cleanup() + return None, None, None, None, None, None, None + image_r = copy.deepcopy(np.asarray(fast_module.get_image_r())) + image_i = copy.deepcopy(np.asarray(fast_module.get_image_i())) + image = image_r + 1j*image_i + + # normalize image + mx = max(np.absolute(image).ravel().tolist()) + image = image/mx + + support = copy.deepcopy(np.asarray(fast_module.get_support())) + coherence = copy.deepcopy(np.asarray(fast_module.get_coherence())) + + image = np.reshape(image, dims) + image = np.swapaxes(image, 2, 0) + image = np.swapaxes(image, 1, 0) + + support = np.reshape(support, dims) + support = np.swapaxes(support, 2, 0) + support = np.swapaxes(support, 1, 0) + + if coherence.shape[0] > 1: + coherence = np.reshape(coherence, coh_dims) + coherence = np.swapaxes(coherence, 2, 0) + coherence = np.swapaxes(coherence, 1, 0) + else: + coherence = None + + reciprocal_r = copy.deepcopy(np.asarray(fast_module.get_reciprocal_r())) + reciprocal_i = copy.deepcopy(np.asarray(fast_module.get_reciprocal_i())) + reciprocal = reciprocal_r + 1j*reciprocal_i + reciprocal = np.reshape(reciprocal, dims) + reciprocal = np.swapaxes(reciprocal, 2, 1) + reciprocal = sf.ifftshift(reciprocal) + + iter_array = copy.deepcopy(np.asarray(fast_module.get_iter_flow())) + flow = copy.deepcopy(list(fast_module.get_flow())) + flow_len = len(flow) + iter_array = np.reshape(iter_array, (flow_len, int(iter_array.shape[0]/flow_len))) + + fast_module.cleanup() + + return image, support, coherence, er, reciprocal, flow, iter_array + diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/gen_rec.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/gen_rec.py new file mode 100644 index 0000000..b997e48 --- /dev/null +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/gen_rec.py @@ -0,0 +1,449 @@ + +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + + +""" +This module controls the genetic algoritm process. +""" + +import numpy as np +import os +import reccdi.src_py.controller.reconstruction as single +import reccdi.src_py.controller.reconstruction_multi as multi +import reccdi.src_py.utilities.utils as ut +import reccdi.src_py.utilities.utils_ga as gut + + +__author__ = "Barbara Frosik" +__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." +__docformat__ = 'restructuredtext en' +__all__ = ['read_config', + 'reconstruction'] + + +class Generation: + """ + This class holds fields relevant to generations according to configuration. + """ + def __init__(self, config_map): + self.current_gen = 0 + try: + self.generations = config_map.generations + except AttributeError: + self.generations = 1 + + try: + self.metrics = tuple(config_map.ga_metrics) + if len(self.metrics) < self.generations: + self.metrics = self.metrics + ('chi',) * (self.generations - len(self.metrics)) + except AttributeError: + self.metrics = ('chi',) * self.generations + + try: + self.worst_remove_no = tuple(config_map.ga_removes) + if len(self.worst_remove_no) < self.generations: + self.worst_remove_no = self.worst_remove_no + (0,) * (self.generations - len(self.worst_remove_no)) + except AttributeError: + self.worst_remove_no = None + + try: + self.ga_support_thresholds = tuple(config_map.ga_support_thresholds) + if len(self.ga_support_thresholds) < self.generations: + try: + support_threshold = config_map.support_threshold + except: + support_threshold = .1 + self.ga_support_thresholds = self.ga_support_thresholds + (support_threshold,) * (self.generations - len(self.ga_support_thresholds)) + except AttributeError: + try: + support_threshold = config_map.support_threshold + except: + support_threshold = .1 + self.ga_support_thresholds = (support_threshold,) * (self.generations) + + try: + self.ga_support_sigmas = tuple(config_map.ga_support_sigmas) + if len(self.ga_support_sigmas) < self.generations: + try: + support_sigma = config_map.support_sigma + except: + support_sigma = 1.0 + self.ga_support_sigmas = self.ga_support_sigmas + (support_sigma,) * (self.generations - len(self.ga_support_sigmas)) + except AttributeError: + try: + support_sigma = config_map.support_sigma + except: + support_sigma = 1.0 + self.ga_support_sigmas = (support_sigma,) * (self.generations) + + try: + self.breed_modes = tuple(config_map.ga_breed_modes) + if len(self.breed_modes) < self.generations: + self.breed_modes = self.breed_modes + ('none',) * (self.generations - len(self.breed_modes)) + except AttributeError: + self.breed_modes = ('none',) * self.generations + + try: + self.sigmas = config_map.ga_low_resolution_sigmas + self.low_resolution_generations = len(self.sigmas) + except AttributeError: + self.low_resolution_generations = 0 + + if self.low_resolution_generations > 0: + try: + self.low_resolution_alg = config_map.ga_low_resolution_alg + except AttributeError: + self.low_resolution_alg = 'GAUSS' + + + def next_gen(self): + self.current_gen += 1 + + def get_data(self, data): + if self.current_gen >= self.low_resolution_generations: + return data + else: + gmask = self.get_gmask(data.shape) + return data * gmask + + + def get_gmask(self, shape): + if self.low_resolution_alg == 'GAUSS': + if self.sigmas[self.current_gen] < 1.0: + ut.gaussian(shape, self.sigmas[self.current_gen]) + else: + return np.ones(shape) + + + def get_metrics(self, images, errs): + metrics = [] + for i in range(len(images)): + pop_metric = {} + pop_metric['chi'] = errs[i][-1] + pop_metric['sharpness'] = sum(sum(sum(pow(abs(images[i]), 4)))) + pop_metric['summed_phase'] = sum(sum(gut.sum_phase_tight_support(images[i]))) + pop_metric['area'] = sum(sum(sum(ut.shrink_wrap(images[i], .2, .5)))) + metrics.append(pop_metric) + return metrics + + + def rank(self, images, errs): + print ('ranking generation ', self.current_gen) + rank_property = [] + + reconstructions = len(images) + metric = self.metrics[self.current_gen] + + for i in range (reconstructions): + image = images[i] + if metric == 'chi': + rank_property.append(errs[i][-1]) + elif metric == 'sharpness': + rank_property.append(sum(sum(sum(pow(abs(image), 4))))) + elif metric == 'summed_phase': + rank_property.append(sum(sum(gut.sum_phase_tight_support(image)))) + elif metric == 'area': + support = ut.shrink_wrap(image, .2, .5) + rank_property.append(sum(sum(sum(support)))) + # elif metric == 'TV': + # gradients = np.gradient(image) + # TV = np.zeros(image.shape) + # for gr in gradients: + # TV += abs(gr) + # rank_property.append(TV) + else: + # metric is 'chi' + rank_property.append(errs[i][-1]) + + # ranks keeps indexes of reconstructions from best to worst + # for most of the metric types the minimum of the metric is best, but for + # 'summed_phase' and 'area' it is oposite, so reversing the order + ranks = np.argsort(rank_property).tolist() + if metric == 'summed_phase' or metric == 'area': + ranks.reverse() + return ranks + + + def order(self, images, supports, cohs, errs, recips): + ranks = self.rank(images, errs) + ordered_images = [] + ordered_supports = [] + ordered_cohs = [] + ordered_errs = [] + ordered_recips = [] + for i in range(len(ranks)): + ordered_images.append(images[ranks[i]]) + ordered_supports.append(supports[ranks[i]]) + ordered_cohs.append(cohs[ranks[i]]) + ordered_errs.append(errs[ranks[i]]) + ordered_recips.append(recips[ranks[i]]) + + return ordered_images, ordered_supports, ordered_cohs, ordered_errs, ordered_recips + + + def breed(self, images): + """ + This function ranks the multiple reconstruction. It breeds next generation by combining the reconstructed + images, centered + For each combined image the support is calculated and coherence is set to None. + The number of bred images matches the number of reconstructions. + + Parameters + ---------- + images : list + ordered (best to worst) list of images arrays + + supports : list + list of supports arrays + + Returns + ------- + child_images : list + list of bred images + child_supports : list + list of calculated supports corresponding to child_images + child_cohs : list + list of child coherence, set to None + """ + print ('breeding generation ', (self.current_gen + 1)) + sigma = self.ga_support_sigmas[self.current_gen] + threshold = self.ga_support_thresholds[self.current_gen] + breed_mode = self.breed_modes[self.current_gen] + if breed_mode == 'none': + return images, None + reconstructions = len(images) + if self.worst_remove_no is not None: + reconstructions = reconstructions - self.worst_remove_no[self.current_gen] + + ims = images[0 : reconstructions] + dims = len(ims[0].shape) + ims_arr = np.stack(ims) + + alpha = ims[0] + alpha = gut.zero_phase(alpha, 0) + + # put the best into the bred population + child_images = [alpha] + child_supports = [ut.shrink_wrap(alpha, threshold, sigma)] + + for ind in range(1, len(ims)): + beta = ims[ind] + beta = gut.zero_phase(beta, 0) + alpha = gut.check_get_conj_reflect(beta, alpha) + alpha_s = gut.align_arrays(beta, alpha) + alpha_s = gut.zero_phase(alpha_s, 0) + ph_alpha = np.angle(alpha_s) + beta = gut.zero_phase_cc(beta, alpha_s) + ph_beta = np.angle(beta) + + if breed_mode == 'sqrt_ab': + beta = np.sqrt(abs(alpha_s) * abs(beta)) * np.exp(0.5j * (ph_beta + ph_alpha)) + + elif breed_mode == 'max_all': + amp = np.amax(abs(ims_arr), axis=0) + beta = amp * np.exp(1j * ph_beta) + + elif breed_mode == 'Dhalf': + nhalf = round(len(ims)/2) + delta = nhalf * ims[ind] - np.sum(np.stack(ims[:nhalf]), axis=0) + beta = beta + delta + + elif breed_mode == 'dsqrt': + amp = pow(abs(beta), .5) + beta = amp * np.exp(1j * ph_beta) + + elif breed_mode == 'pixel_switch': + cond = np.random.random_sample(beta.shape) + beta = np.where((cond > 0.5), beta, alpha_s) + + elif breed_mode == 'b_pa': + beta = abs(beta) * np.exp(1j * (ph_alpha)) + + elif breed_mode == '2ab_a_b': + beta = 2*(beta * alpha_s) / (beta + alpha_s) + + elif breed_mode == '2a_b_pa': + beta = (2*abs(alpha_s)-abs(beta)) * np.exp(1j *ph_alpha) + + elif breed_mode == 'sqrt_ab_pa': + beta = np.sqrt(abs(alpha_s) * abs(beta)) * np.exp(1j * ph_alpha) + + elif breed_mode == 'sqrt_ab_pa_recip': + temp1 = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(beta))) + temp2 = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(alpha_s))) + temp = np.sqrt(abs(temp1) * abs(temp2)) * np.exp(1j * np.angle(temp2)) + beta = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(temp))) + + elif breed_mode == 'sqrt_ab_recip': + temp1 = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(beta))) + temp2 = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(alpha_s))) + temp = np.sqrt(abs(temp1) *abs(temp2)) *np.exp(.5j *np.angle(temp1)) *np.exp(.5j *np.angle(temp2)) + beta = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(temp))) + + elif breed_mode == 'max_ab': + beta = np.maximum(abs(alpha_s), abs(beta)) * np.exp(.5j *(ph_beta + ph_alpha)) + + elif breed_mode == 'max_ab_pa': + beta = np.maximum(abs(alpha_s), abs(beta)) * np.exp(1j *ph_alpha) + + elif breed_mode == 'min_ab_pa': + beta = np.minimum(abs(alpha_s), abs(beta)) * np.exp(1j *ph_alpha) + + elif breed_mode == 'avg_ab': + beta = 0.5 *(alpha_s + beta) + + elif breed_mode == 'avg_ab_pa': + beta = 0.5 *(abs(alpha_s) + abs(beta)) * np.exp(1j *(ph_alpha)) + else: + # The following modes include gamma; gamma is in index 1 + # gamma = zero_phase(gamma, val); + # ph_gamma = atan2(imag(gamma), real(gamma)); + + gamma = ims[1] + gamma = gut.zero_phase(gamma, 0) + if ind > 1: + gamma = gut.check_get_conj_reflect(beta, gamma) + gamma_s = gut.align_arrays(abs(beta), abs(gamma)) + gamma_s = gut.zero_phase(gamma_s, 0) + ph_gamma = np.angle(gamma_s) + else: + gamma_s = gamma + ph_gamma = np.arctan2(gamma.imag, gamma.real) + + if breed_mode == 'sqrt_abg': + beta = pow((abs(alpha_s) *abs(beta) *abs(gamma_s)), (1/3)) *np.exp(1j *(ph_beta+ph_alpha+ph_gamma)/3.0) + + elif breed_mode == 'sqrt_abg_pa': + beta = pow((abs(alpha_s) *abs(beta) *abs(gamma_s)), (1/3)) *np.exp(1j *ph_alpha) + + elif breed_mode == 'max_abg': + beta = np.maximum(np.maximum(abs(alpha_s), abs(beta)), abs(gamma_s)) *np.exp(1j *(ph_beta+ph_alpha+ph_gamma)/3.0) + + elif breed_mode == 'max_abg_pa': + beta = np.maximum(np.maximum(abs(alpha_s), abs(beta)),abs(gamma_s)) *np.exp(1j *ph_alpha) + + elif breed_mode == 'avg_abg': + beta = (1/3)*(alpha_s+beta+gamma_s) + + elif breed_mode == 'avg_abg_pa': + beta = (1/3)*(abs(alpha_s)+abs(beta)+abs(gamma_s)) *np.exp(1j *ph_alpha) + + elif breed_mode == 'avg_sqrt': + amp=( pow(abs(beta), 1/3)+pow(abs(alpha_s), 1/3)+pow(abs(gamma_s), 1/3))/3 + beta = pow(amp, 3) * np.exp(1j *ph_beta) + + child_images.append(beta) + child_supports.append(ut.shrink_wrap(beta, threshold, sigma)) + + return child_images, child_supports + + +def reconstruction(proc, conf_file, datafile, dir, devices): + """ + This function controls reconstruction utilizing genetic algorithm. + + Parameters + ---------- + generation : int + number of generations + + proc : str + processor to run on (cpu, opencl, or cuda) + + data : numpy array + initial data + + conf_info : str + experiment directory or configuration file. If it is directory, the "conf/config_rec" will be + appended to determine configuration file + + conf_map : dict + a dictionary from parsed configuration file + + Returns + ------- + nothing + """ + data = ut.read_tif(datafile) + print ('data shape', data.shape) + data = np.swapaxes(data, 0, 2) + data = np.swapaxes(data, 0, 1) + + try: + config_map = ut.read_config(conf_file) + if config_map is None: + print("can't read configuration file " + conf_file) + return + except: + print('Cannot parse configuration file ' + conf_file + ' , check for matching parenthesis and quotations') + return + try: + reconstructions = config_map.reconstructions + except: + reconstructions = 1 + + gen_obj = Generation(config_map) + + try: + save_dir = config_map.save_dir + except AttributeError: + filename = conf_file.split('/')[-1] + save_dir = os.path.join(dir, filename.replace('config_rec', 'results')) + + try: + generations = config_map.generations + except: + print ('generations not configured') + return + + # init starting values + # if multiple reconstructions configured (typical for genetic algorithm), use "reconstruction_multi" module + if reconstructions > 1: + images = [] + supports = [] + cohs = [] + for _ in range(reconstructions): + images.append(None) + supports.append(None) + cohs.append(None) + rec = multi + # load parls configuration + for g in range(generations): + gen_data = gen_obj.get_data(data) + images, supports, cohs, errs, recips, flows, iter_arrs = rec.multi_rec(proc, gen_data, conf_file, config_map, devices, images, supports, cohs) + images, supports, cohs, errs, recips = gen_obj.order(images, supports, cohs, errs, recips) + metrics = gen_obj.get_metrics(images, errs) + # save the generation results + gen_save_dir = os.path.join(save_dir, 'g_' + str(g)) + ut.save_multiple_results(len(images), images, supports, cohs, errs, recips, flows, iter_arrs, gen_save_dir, metrics) + print ('g, generations, images no', g, generations, len(images)) + if g < generations - 1 and len(images) > 1: + images, shrink_supports = gen_obj.breed(images) + if shrink_supports is not None: + supports = shrink_supports + gen_obj.next_gen() + else: + image = None + support = None + coh = None + rec = single + + for g in range(generations): + print ('gen', g) + gen_data = gen_obj.get_data(data) + image, support, coh, err, recip, flows, iter_arrs = rec.single_rec(proc, gen_data, conf_file, config_map, devices[0], image, support, coh) + if image is None: + return + # save the generation results + gen_save_dir = os.path.join(save_dir, 'g_' + str(g)) + print ('gen save dir', gen_save_dir) + ut.save_results(image, support, coh, err, recip, flows, iter_arrs, gen_save_dir) + gen_obj.next_gen() + + print ('done gen') + + diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/reconstruction.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/reconstruction.py new file mode 100644 index 0000000..c3d4667 --- /dev/null +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/reconstruction.py @@ -0,0 +1,154 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + + +""" +Please make sure the installation :ref:`pre-requisite-reference-label` are met. +This module controls the reconstruction process. The user has to provide parameters such as type of processor, data, and configuration. +The processor specifies which library will be used by CFM (Calc Fast Module) that performs the processor intensive calculations. The module +can be run on cpu, or gpu. Depending on the gpu hardware and library, one can use opencl or cuda library. +The module starts the data preparation routines, calls for reconstruction using the CFM, and prepares the reconstructed data for +visualization. +""" + +import numpy as np +import os +import reccdi.src_py.controller.fast_module as calc +import reccdi.src_py.utilities.utils as ut +import reccdi.src_py.controller.reconstruction_multi as multi + + +__author__ = "Barbara Frosik" +__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." +__docformat__ = 'restructuredtext en' +__all__ = ['read_config', + 'reconstruction'] + + +def single_rec(proc, data, conf, config_map, dev, image, support, coh): + + """ + This function starts and returns results of reconstruction. The parameters must be initialized. + + Parameters + ---------- + proc : str + a string indicating the processor type + + data : numpy array + data array + + conf : str + configuration file name + + config_map : dict + parsed configuration + + image : numpy array + reconstructed image for further reconstruction, or None for initial + + support : numpy array + support of reconstructed image, or None + + coh : numpy array + coherence of reconstructed images, or None + + Returns + ------- + image : numpy array + reconstructed image + + support : numpy array + support of reconstructed images + + coh : numpy array + coherence of reconstructed images + + errs : list + list of errors (should we take the last error?) + """ + try: + coh_dims = tuple(config_map.partial_coherence_roi) + except: + coh_dims = None + image, support, coh, er, reciprocal, flow, iter_array = calc.fast_module_reconstruction(proc, dev, conf, data, coh_dims, image, support, coh) + + # errs contain errors for each iteration + return image, support, coh, er, reciprocal, flow, iter_array + + +def reconstruction(proc, conf_file, datafile, dir, dev): + """ + This function starts the reconstruction. It checks whether it is continuation of reconstruction defined by + configuration. If continuation, the arrays of image, support, coherence are read from cont_directory, + otherwise, they are initialized to None. After the arrays are initialized, they are passed for the reconstruction. + The results are saved in the configured directory. + + Parameters + ---------- + proc : str + a string indicating the processor type (cpu, opencl, cuda) + + data : numpy array + data array + + conf_info : str + configuration file name or experiment directory. If directory, the configuration file is + defined as /conf/config_rec + + config_map : dict + parsed configuration + + Returns + ------- + nothing + """ + data = ut.read_tif(datafile) + print ('data shape', data.shape) + data = np.swapaxes(data, 0, 2) + data = np.swapaxes(data, 0, 1) + + try: + config_map = ut.read_config(conf_file) + if config_map is None: + print("can't read configuration file " + conf_file) + return + except: + print('Cannot parse configuration file ' + conf_file + ' , check for matching parenthesis and quotations') + return + + cont = False + try: + if config_map.cont: + try: + continue_dir = config_map.continue_dir + image, support, coh = ut.read_results(continue_dir) + cont = True + except: + print("continue_dir not configured") + return None + except: + pass + + if not cont: + image = None + support = None + coh = None + + image, support, coh, errs, recips, flow, iter_array = single_rec(proc, data, conf_file, config_map, dev[0], image, support, coh) + if image is None: + return + + try: + save_dir = config_map.save_dir + except AttributeError: + filename = conf_file.split('/')[-1] + save_dir = os.path.join(dir, filename.replace('config_rec', 'results')) + + ut.save_results(image, support, coh, np.asarray(errs), recips, flow, iter_array, save_dir) diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/reconstruction_multi.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/reconstruction_multi.py new file mode 100644 index 0000000..7c36b8c --- /dev/null +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/reconstruction_multi.py @@ -0,0 +1,259 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + + +""" +Please make sure the installation :ref:`pre-requisite-reference-label` are met. +This module controls the reconstruction process. The user has to provide parameters such as type of processor, data, and configuration. +The processor specifies which library will be used by CFM (Calc Fast Module) that performs the processor intensive calculations. The module +can be run on cpu, or gpu. Depending on the gpu hardware and library, one can use opencl or cuda library. +The module starts the data preparation routines, calls for reconstruction using the CFM, and prepares the reconstructed data for +visualization. +""" + +import os +import numpy as np +import reccdi.src_py.utilities.utils as ut +import reccdi.src_py.controller.fast_module as calc +import time +from multiprocessing import Pool, Queue +from functools import partial + +__author__ = "Barbara Frosik" +__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." +__docformat__ = 'restructuredtext en' +__all__ = ['read_config', + 'reconstruction'] + + +def single_rec_process(proc, conf, data, coh_dims, prev): + """ + This function runs in the reconstruction palarellized by Parsl. + + Parameters + ---------- + proc : str + string defining library used 'cpu' or 'opencl' or 'cuda' + + device : int + device allocated to this reconstruction or -1 if not configured + + conf : str + configuration file + + data : numpy array + data array + + coh_dims : tuple + shape of coherence array + + prev_image : numpy array or None + previously reconstructed image (if continuation or genetic algorithm) or None + + prev_support : numpy array or None + support of previously reconstructed image (if continuation or genetic algorithm) or None + + prev_coh : numpy array or None + coherence of previously reconstructed image (if continuation or genetic algorithm) or None + + Returns + ------- + image : numpy array + reconstructed image + + support : numpy array + support of reconstructed image + + coherence : coherence of reconstructed image + + error : list containing errors for iterations + """ + prev_image, prev_support, prev_coh = prev + image, support, coherence, errors, reciprocal, flow, iter_array = calc.fast_module_reconstruction(proc, gpu, conf, data, coh_dims, + prev_image, prev_support, prev_coh) + return image, support, coherence, errors, reciprocal, flow, iter_array + + +def assign_gpu(*args): + q = args[0] + global gpu + gpu = q.get() + + +def multi_rec(proc, data, conf, config_map, devices, prev_images, prev_supports, prev_cohs=None): + + """ + This function controls the multiple reconstructions. It invokes a loop to execute parallel resconstructions, + wait for all reconstructions to deliver results, and store te results. + + Parameters + ---------- + proc : str + a string indicating the processor type + + data : numpy array + data array + + conf : str + configuration file name + + config_map : dict + parsed configuration + + images : list + list of numpy arrays containing reconstructed images for further reconstruction, or None for initial + + supports : list + list of numpy arrays containing support of reconstructed images, or None + + cohs : list + list of numpy arrays containing coherence of reconstructed images, or None + + Returns + ------- + images : list + list of numpy arrays containing reconstructed images + + supports : list + list of numpy arrays containing support of reconstructed images + + cohs : list + list of numpy arrays containing coherence of reconstructed images + + errs : list + list of lists of errors (now each element is another list by iterations, but should we take the last error?) + """ + images = [] + supports = [] + cohs = [] + errs = [] + recips = [] + flows = [] + iter_arrs = [] + def collect_result(result): + for r in result: + if r[0] is None: + continue + images.append(r[0]) + supports.append(r[1]) + cohs.append(r[2]) + errs.append(r[3]) + recips.append(r[4]) + flows.append(r[5]) + iter_arrs.append(r[6]) + + reconstructions = config_map.reconstructions + + try: + coh_dims = tuple(config_map.partial_coherence_roi) + except: + coh_dims = None + + iterable = [] + for i in range(reconstructions): + if prev_cohs is None: + coh = None + else: + coh = prev_cohs[i] + iterable.append((prev_images[i], prev_supports[i], coh)) + + func = partial(single_rec_process, proc, conf, data, coh_dims) + q = Queue() + for device in devices: + q.put(device) + with Pool(processes = len(devices),initializer=assign_gpu, initargs=(q,)) as pool: + pool.map_async(func, iterable, callback=collect_result) + pool.close() + pool.join() + pool.terminate() + + # return only error from last iteration for each reconstruction + return images, supports, cohs, errs, recips, flows, iter_arrs + + +def reconstruction(proc, conf_file, datafile, dir, devices): +# proc, datafile, dir, conf_file, devices + """ + This function starts the reconstruction. It checks whether it is continuation of reconstruction defined by + configuration. If continuation, the lists contaning arrays of images, supports, coherence for multiple reconstructions + are read from cont_directory, otherwise, they are initialized to None. + After the lists are initialized, they are passed for the multi-reconstruction. + The results are saved in the configured directory. + + Parameters + ---------- + reconstructions : int + number of reconstructions + + proc : str + a string indicating the processor type (cpu, opencl, cuda) + + data : numpy array + data array + + conf_info : str + configuration file name or experiment directory. If directory, the configuration file is + defined as /conf/config_rec + + config_map : dict + parsed configuration + + Returns + ------- + nothing + """ + data = ut.read_tif(datafile) + print ('data shape', data.shape) + data = np.swapaxes(data, 0, 2) + data = np.swapaxes(data, 0, 1) + + try: + config_map = ut.read_config(conf_file) + if config_map is None: + print("can't read configuration file " + conf_file) + return + except: + print('Cannot parse configuration file ' + conf_file + ' , check for matching parenthesis and quotations') + return + + try: + reconstructions = config_map.reconstructions + except: + reconstructions = 1 + + images = [] + supports = [] + cohs = [] + try: + if config_map.cont: + try: + continue_dir = config_map.continue_dir + for sub in os.listdir(continue_dir): + image, support, coh = ut.read_results(os.path.join(continue_dir, sub) + '/') + images.append(image) + supports.append(support) + cohs.append(coh) + except: + print("continue_dir not configured") + return None + except: + for _ in range(reconstructions): + images.append(None) + supports.append(None) + cohs.append(None) + + new_images, new_supports, new_cohs, errs, recips, flows, iter_arrs = multi_rec(proc, data, conf_file, config_map, devices, images, supports, cohs) + + try: + save_dir = config_map.save_dir + except AttributeError: + filename = conf_file.split('/')[-1] + save_dir = os.path.join(dir, filename.replace('config_rec', 'results')) + + ut.save_multiple_results(len(new_images), new_images, new_supports, new_cohs, errs, recips, flows, iter_arrs, save_dir) diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/cyth/__init__.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/cyth/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_cpu.cpython-37m-x86_64-linux-gnu.so b/build/lib.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_cpu.cpython-37m-x86_64-linux-gnu.so new file mode 100755 index 0000000000000000000000000000000000000000..8e05b7d3fbe1c99f5814200d4a0e6ab7608959e8 GIT binary patch literal 1983176 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

feP` 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¬wC=l3~vVbJ@9UCqv9u_e!re#O)wG>=Ofy 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

GRS6E?R#lT{>KrP5iZTA8X<{ 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µ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 literal 0 HcmV?d00001 diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_cpu.pyx b/build/lib.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_cpu.pyx new file mode 100644 index 0000000..615cc26 --- /dev/null +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_cpu.pyx @@ -0,0 +1,72 @@ +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + + +# distutils: language = c++ +# distutils: include_dirs = ['reccdi/include', '/home/beams/CXDUSER/CDI/arrayfire/include', '/home/beams/CXDUSER/CDI/libconfig/include',] +# distutils: sources = ['reccdi/src_cpp/bridge.cpp', 'reccdi/src_cpp/manager.cpp', 'reccdi/src_cpp/parameters.cpp', 'reccdi/src_cpp/pcdi.cpp', 'reccdi/src_cpp/resolution.cpp', 'reccdi/src_cpp/state.cpp', 'reccdi/src_cpp/support.cpp', 'reccdi/src_cpp/util.cpp', 'reccdi/src_cpp/worker.cpp'] +# distutils: libraries = ['afcpu', 'config++',] +# distutils: library_dirs = ['/home/beams/CXDUSER/CDI/arrayfire/lib64', '/home/beams/CXDUSER/CDI/libconfig/lib',] + +from libcpp.vector cimport vector +from libcpp.string cimport string + + +cdef extern from "../include/bridge.hpp": + cdef cppclass Bridge: + Bridge() except + + void StartCalcWithGuess(int, vector[float], vector[float], vector[float], vector[int], string) + void StartCalcWithGuessSupport(int, vector[float], vector[float], vector[float], vector[int], vector[int], string) + void StartCalcWithGuessSupportCoh(int, vector[float], vector[float], vector[float], vector[int], vector[int], vector[float], vector[int], string) + void StartCalc(int, vector[float], vector[int], string) + vector[double] GetImageR() + vector[double] GetImageI() + vector[double] GetErrors() + vector[float] GetSupportV() + vector[double] GetCoherenceV() + vector[double] GetReciprocalR() + vector[double] GetReciprocalI() + vector[int] GetFlowV() + vector[int] GetIterFlowV() + void Cleanup() + + +cdef class PyBridge: + cdef Bridge *thisptr + def __cinit__(self): + self.thisptr = new Bridge() + def __dealloc__(self): + del self.thisptr + def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): + self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) + def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): + self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) + def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): + self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) + def start_calc(self, device, data_r, dims, config): + self.thisptr.StartCalc(device, data_r, dims, config.encode()) + def get_image_r(self): + return self.thisptr.GetImageR() + def get_image_i(self): + return self.thisptr.GetImageI() + def get_errors(self): + return self.thisptr.GetErrors() + def get_support(self): + return self.thisptr.GetSupportV() + def get_coherence(self): + return self.thisptr.GetCoherenceV() + def get_reciprocal_r(self): + return self.thisptr.GetReciprocalR() + def get_reciprocal_i(self): + return self.thisptr.GetReciprocalI() + def get_flow(self): + return self.thisptr.GetFlowV() + def get_iter_flow(self): + return self.thisptr.GetIterFlowV() + def cleanup(self): + self.thisptr.Cleanup() + + diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_cuda.cpython-37m-x86_64-linux-gnu.so b/build/lib.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_cuda.cpython-37m-x86_64-linux-gnu.so new file mode 100755 index 0000000000000000000000000000000000000000..1313da4c956f8dd959e9b233ea942592671b8924 GIT binary patch literal 1983256 zcmeFa33OCd*7sdRN&^Ck2#Pob49K96gai^GT7d*A5TGD{h(jeL1qo&-lL`b>j0TjV zj2&@k8f}fVtvF$%9T2AgY5-e}Xe;6r=PH62u|-7Ny#Ianxm7!ry7tp=ziWN#TkE;q zMcv>3?z7Li=j=1wA?5X1Ia8v#b+Z`T36_g2M2%0eV$%mUq@APpEEbz3)zSn14z&zX zw%vnAy6&Xj&6@FTiDjldthC!e|6prS{|3J^4se-_Z<$WzR};kv!oKG(X4&|b=}yF< z0d1Uaz%QM@>(AhH^&|P)NJmzb&acz?bvolaK^MdLj@HSkjPyy>$HTwlwVm-zwzN6E z@)Xj3&Rv`^{QFBP3^wE2NH-hl^dUC*H~;Epu*}idbkT zm6luIx^+U)WhYKQuqETwhhO=6PwjwC(HHPQ9a zeJp?J`^xOZgm~+>lTK)~td8#XN=tN9-`Ef5*Ch0cUw?{ac0z2=lLicr?mNjns3|Hh zYT4+XQMGNB8+PBG5dTaKilE9v-xR!2`h-rvw^i?-i0_l|iN>cVJ}2YT3m;?agZ)^1 zPQm9?eEQ>a8a`*>b0$7#;d2f?=i)=#ApJcU-|>2X2)@tP`@``)5}yn4NyKLiKFRo` z;4=;%+EVeIruQf4?{s`$jL&3zGV#g6X9_-ce5T1dksEo@$unv z3qE!D`~e@@*6Z&(@Vx<_KjE`cYj@-O9(?|+`CfeAhtDR>59;sD_E72kiu=V^SN#b+Bn+wplGpZ+I&`o(W&e{fOTBTw6(JLi_7mwx{gXcW`28ODJXiO9pXYxZHm2ph*(YSAZ@K=3tN#Alj1iwZ zFS+*e=D3H)Hol(zeUGJQ6<<{P>Be49Hs5(<)fLuvHhlW{sW10??8U;5*SvAfi_iDG zxnsl)w{E!iA?L$?A61(CT%WHS4v+uf_P7;q3`^|S^CkP~l@t3HX~B#^v{J zzWRo|JFcJc=hI3X-8%}OY<}a>l~0~>*|Nhoj@wtg=d1hR*_WPGdHFBteZD)i z;G0jcyl>^<@rBp4kK6jy;lf)#n)K0axpy5Jx!7^h6NQsMdiq#q-r@&~hga@?B6i^- z*RDUkQvCMLU$d8`uG*0H-S98IiOYKZ@DFQ#PCn)KM~@wO{mvsdf4?s2gR2*u<@weZ zQ?`4#_qp?9*6#jo&-gvFi?*DyI{%{h+uBP;6+XIl(NkYX-}~C0_a5p|a^${AOIlX< zPwDeUR^0SAyVu?PChQ&iJa?t{dhEsP@=9;|^0)W<-*M0I?eBH8Uy*xS*@T7ne3G{J z$g+R#n|0Qv`+D{mddBwIscEAw98;QlV8FqJ%j4EMgp5{(?`-ii? z{CVBBt*wnZ9n!= z_4466s`=9#z6R}yjSFD?q^^ZgK|4i=a-fh~lSvM?b{yCxL znNu&g=;NOX+U7kQn>6!P@8|yFn?8B({(|*aKJ#VYzkafJ&wDcpPmcce>ZiWnw#5D7 z#`O(H&rG|&_S)FTUaTFmWmewoUy5HWEWPQBU$4sO-E_3}gO+`#zi{uz({6V?I^e6{ zz8KKp>T~8>U;oQ__b(}rBs_HaWv|}#+HGgOzHFQGrla=^X)Qa=_Q#QfhU}bk)5F={ zeV$M>_wvN+^6ucC5&7Tu2U{$CBOIc!#+WnY;U6#&MAG+Qxe&=uYFuP}?7+x+H72!4 z{;3Z~(kGrB+0SuIRFUkz9unF9zSAS?V~0i77Y~Z8ufHI&{Ww6n%M6)iMKRVW~4YD2tSeZf|$s9vPqnrZDK##q&(l4)c;b{Po#G5j{1*O zPPa+BFEVNOwI=#ACha%}?SrAF%eKZO&aX6y&)-gqT>j>BBkTK3{M=x2z5$c-+7cJp ze}YMS-H!T?RL@bpBF8OVHbrW$f10%WrzZL`lW};dNxys7rKY(3ryq*lX355lX#wwi@8Yg8DkQMeQT@VGon|dDtWl zTTRB#U(bqM{zj8_+-nk_x0{SJcbU{frHQ@6q<+dw;_Z*;M=t+llkyKkc_PKnhbKpl zlZQ;=VY12iL)YDr+Wl3N`1}rfr1ESwIj<{B+TDpvBl)qKjGyP4%*)rCjGw=n#LovN z?Q*_Jf1hO1zVDjUPqzV)&ug|x{p>NBXFrXP?B`jN@*g)T|4x&9^N}x>5M8$87=I$Q zOPonNK5kOakC^!R3OPoKw<}HB@qo#B^*3pk)h2QNgNdJEgH8I;Ns;Sehe^KC=S8+3 zZDRk4$vAdrTx37ZCgaZzlW|}N#($i0m+g%qk^P@KD6-zoB+gfxj2o*>;;qpn-`ytj z>2oM~q&V@IwC|55@%aan@$g2I^J+F3mv)=Xr*@Nh`Bam58;Ws0QvaG~a^GN^N%`M2 ziJ#3Taq^ML{Bo5^J6>cm&g?X)pWjT{>ySxY-Dz^Z-LO84R6n1Yj3+;vlyga3WIvCX zl=BZJ@z59X8L2#{nY7~vCjNVx%wKe`K2n_DZQ_5b$#^@{q+K4v_<$j<%QnztUG%a^ z+`ezJo1 z$#{kCYr!dZ*_N5qTe3+!95>1L3_Sgc6t^!$M~=69P5RMgCgtyCQvcIU#^DJj_56%U ze@`(P--eo8PrYU0=XI0vJZKUR@0*nKPLq15K_f=0XLRd`?K{B4KGnqjW0UfKY0{48 zn6%4dCid%1)+f(l{S#?iy2eDGZxTNPPo?_lWvQo!XxI?OYP-G<>o%>UIn;Kc8sBdM+{SH8?F5`=<|9~>r|J0@z#Q+ zK@0k8r(v)2g@xLFM8O8be*!%y#YWE$X?uLM&UX?QBuba(d37C)at>l)3Y%L#9?bTw zr)Yb9VjJVNpX2PrldnZFWT!w7U;P&ZM%Bw`k{x+*z8*O3}d}X$N3rB&vsp(?s7J)LwefYMm$hCm+fIj z3DowH8vjxLaqNJ`3))UZKPCG-9iK+OxKsPd3+pd?&tv@>L7i_e9sf1wa=x?GQM|{Z`&XXsU&i?JI{Fcnv;Hc!H~QDdiJWg! zHtQ4l%d&Kc)_>!C>AeivJi7kF`^)%Ix*is@gB{vFQ;#PtgIT{s_lv1IZX51rLo}b- zem3GctR5~<&mB;2e`Wi>Yx`wGb-i_C|MzJ9bRBQ4y;z^4%X5jgcWZlNE_+Yso2T}em>n4Jl&sSIv?i>dKCjy=K@a># zbo`{N>r-^fFFD_Sx}KW`aXG`sG1p+$!^h!sv>%)9k5B6Jb))0QS_WD+_tP0_eX>5U z20hOj?cT2YU6by2Ms+6W_G;Dr^kMBMN{`R&{ka~F==$uX)_a)OqFFG;rQSv$I<&Ru^Nst8g%W*wKO&GQPApfjK9S8W{cwMe z{4^Y3{b#K|egWGjBy+yTd^bwBqw#W*5pS8sys)1A{Od$^be10XYQp;ask$Gv4`BcM z`O6Y_A?I78&)4X`S7N-Sawh2cF;17W4!Sz8PdH!W{jRTd|BBV^QmE~p*W-Xgmj|b# zwqv@UYxFwDXx{?ur~NE0;LY0pn>fz5{#(vhPm`9V=d<2;65BUu`xo^15I!Fb)$Lvr zwytyPdTR))x6L{Z>%+$X$r$IUewvnZzSX)uzt`h)%`g_O)8(0<`(0i))^&4PZbpMr zeddML{{@3sZ}^VS*LY2IjS-*e?8j)Yje32Ru%GR-_{*|H*MFm)7mRrBi}*YR{jpW| zM`N5x!TN;GtL6iCFi`u+)BURBZf`G3&y*+4JEVcVwb;S3$;mf>9fMLJ`j zwr|(t?OA#tzD8XaV4e-@r?Gn8kL$^P{>ERH5?%iZdcBS0YCGFxzRTC~(5_$DGsd5X z^t^1zVaM&-kz4ndJUy`+^|@ZhTfJWA(DfK?V|s9XwqL^aV5}3C=ziT0Ha85ccYwRG0szeY}fPeliGfWE~l*zpVxR@ z&N|&*^}4+f#%gov>jIk||5Nn9H&Dl?L$BYewf$5bR}EqP$f4t>@lwu^-VvqkK};=? z=9i0NSa<9B&X}k6=>F3589P{{{j5QSP`fmI$if`m{1@r@B7A-F1Ljk*x9IcL-PDq; z=Zo;`spGo*d6%(&dS{llyY>0T>2b`c|4NhjWj5-0kfo2M{!T6+x~JOqpxvoFu|=%! z(Eg9>_G;1XXpClNc#!z*E94u=Dv{gb)CTFsnGS@qUSGU zr?z`^ytyCX0vhK#2ooQ*qb;mImg;p*Jv}(X_L%w??+okyWeHn<-lh9vo}N#Qe*L-j z(=dqrJgof;(DRX_8|y~>EZ657-XCv5Ix1(4F6UtFC!p;UbUojz^_4n)n!>JkEKcW= z((*EAr6<3_<8)e_#bw1Fi*qr)EY9q?Gn|F43fGe2N{_2z?u^ML^*D=dN(OAeUF@!?`XG z%!|vGfOE>rmM8;lo9S{_xC-(;#pPv}!Hi1!3OUzR8mxuPV$?ILCEMdF4T|KQ zD!zD8l_!)1ssaaGZmOXf`8aFURC9|eT=|8$o_vps+6y^lmmwNZm-sg*XJ_g{XP3Im zD?COKXOtIKmAITUUCa6OV5B9uqM|{VTjgdG?2Gy&e<%@(9!#pvWu~i|Qq3zXE+{W_ zIWsEtp3rpVstB4~%&B@FTx;Q=EV3&qn%P*Wrdv>J-(=-905A7YPGP@TyD&x!~;~87GX9v)ElxUXWjs z-MOARADq+q;25NwTwa9HuB^b-xfauKNVRWerz9k2m!jr6XA_hu1B@oi@=Kib4-J-T zNC_%xY*A7+Rxn{*Q+G($Vgw|O|ENvR*kxFOlviXgMzt)?%F55BDoAu%N?oO;<;yS* zEX?&Jj&nLy%sUt57dqA8sDdSwx)`a8Me0bd6UU$#ipwfpSYhQ?RcFmiLui*(p^sHl z24%GLC~+1e=<=yRj>RZO7D_{-sfuD(*|iSV=)TB2$#u8JZy}ckza<< zqJk%|g)6TmkAvrB=z4UO zx*UuRJ;MALJQQhc4<3v-E0`P&D@)k)8cY;nLN<s|s)_>Y&6MMq{6&>) z#Hpw+lWzDx&P!Y#x9ZTOCnlkTqW@-Darcuek>`*SmD_e!P2#$qLFblJaL$?if@qcn0 zo+O#3a@2&o%7fJqXG~Wm6)BZ8qj2klCmP4Iql=GrsXAF^D zq+uqs_%v}xMruj^d!EL@h?+gzP)ArIo!rc-(nYR{;L^!hoAUTT4ko!g`CJGi84Y#% zlrzvUoez>veUNSvR2G$&6n3^q30dS8FDVU6PbX$LFImz#C0)BXiZIpBC@wQQl3(5F z$k^;k2d-Z`X{yag%_vz?t}fm>A5NfbaClC+NxGS8-HN4H=X6wCl+L6w6Y13E;`-5^ zU$V^AxuVq-2a1!syjb0R>g+fPCs9(~`Qm{aC=rKnFS1B$14m99bx(_Gip zoxRf}NC(vQBp<>G$~k9|(^KJcW#{4>EJ9T#=3SYcb{^T>0gq%NKYOF(P1uf|Oi> zWic$XuofaED-~BIxKzNkp92ZT7|w7#QV5T*pdmt6fH9LAs3+dgWS5wLc5_y$hNBD; zkima?HGxE`V8L19zdpsJWSrv?m&dsJswykKy2|Cm1#i|InpSYFS5WH4d7=V>wTUZc ztgUIZqRaTgaa89P~h85wjrkV=<^Q;JK_pQjg4 z7)|eDG7f!VPC3RNUyR^j9PTxG@W`ZK*`h9qjbp{tzmqTxS?6Fa>M8oY z^lE`E%5AtVSf(eTh{rIfg`bd-a4f3263ZT{67+T~<*8=6oVc;@PF zrj+B#ypyR~Glnj&lb09e>yW^TIHc=Af9`x*nulaHFXVbcf-yOCvNCG4vzWjYmPmo` zDW>~)`X-^_Bf=5gp}HR7D*$obKuwGM)Rh&2ajE8%%A(@Mo=%J0Vr}|sU>~Lfp*7b2wtL5nyxjJn20cNRN&&ZysA>3g^4*WGlKJjSyRzk zKe#CDnrBiXZoikT2yfu<+)+V^iHjHGYM^XcIaY$5st^NmA`G0Ufo1e4#-*zyx$$SUN)PTjRah45=T9cpATts*tuHOPJ<=Tcg&7s9vj~$=d#iS3(=qTD;e<*%U!Ccx zjgur7M@ZAP_7W55F;v;IoT`EqG6$427_f^=irt+m!3cD$8fD$gnQkOW!Q&cNwF>f3 zAn7{gxGXS=t}Im-M+5M)#r>%?<_>J{o*-w5#t$3?&AT!m1$tW)`P{RHzV&B0-G zFI})O>p9brE6<43U0MPamk_!F z3y$?tGe&u#1)s(71+ofe=||nAq-(Csd|aFtcRtm!eD$1D54Gc_=2ul#W@0Iz-g%%| zoy>U_7LhSj&+|I=&0LJV|t_lyTybv}uSboaKRQ00@Q4vf?HMo>kf8I7>T5F#d9 zG;?Ss#htm(0BAmwa+CeL2|-0ouqb>7Q%6+fq8PSDdj(kszrl%#dQ73aJaTL@;xq*T zUzQYU(7@T2begvVUvz& zOfyN2Vl^Yt{Y+KC#^NsMBuVveT1!lcI5T&tlTc04ZTYSKKQ{#!~w6sRa~NdCc|J%r;`npKZSKuN?qD{`qTj*y7`@yUzru2W{j)4^BRgy zCzK?a9(x3~B$GOa*0a6A;rv+vr^@J%{@zX^f<|lQbP8OJzAW#YDB@gxT z3SF?O2`v0pdnygzG!}E|!Vf2o3(d2};)YiVVb8!4ll2(-`&LQnPV>L9nOh!yr=D8H zSW&9QBN|Y(XqWOP(!Ju}^`A7gAlMSAh3Y}v)X64ipF-C=a2UMiiFod*bIUV}Rp(QO zQP?hP&B%pKRWFiMRbrq)o8iTOyf23lQgjh$H@N)_%faqN8c z;0DhSbTG1a(GS%lExev%JksjoA~onDcrO7?@(VDY1Ro0)SI*3z*=dZ@gV(tHGQ6Ex z<;q^v=t0#7VZCJ6uL znFK5%#bxM3f;XA79k`upJQ2ZLaFObxONqvYN<@<)l?l?nDHANzz#V*_EMi{di=Mgs zr^{g^Qf(EyPab|E<1+9v4!v-w28B>l{%$FF@=E4s4Z(u{Pvho4J_o#9MfHet;4H(> zL9gQVnjI6OaV>;hJ%P%{E&mUj_P=^)fODFoZ(+#d{lDo5|5eG*PxRxAu7g+VWcA)y za3Rl6f$)$ae=)tsJgTyM)EG4@4}Qc&QmRCc86chraz zlq0rtx^R~yA2($d;eJ6Sy`f>jt0{$+sgox=$G~!GPWGh9&ZJREqf#uB7c9t_lI`&eL!dI!a3DXlI{>wRw5iB62Fu zgMG7wVP||B{=?bOjc@W{4LgGUW8?gcW1-y5>nqCA?SKFG|5*)iOHm7CsJ|7pSmGc#hOWS0UY=yR0UB*|e3m#~ zHLw_ek$9rTD~^xra=d$|gu0ohuEq7|oGkiV%lrYND0H)3O z@AepfU)bKNWJ{d>`&2`(-^2Q_Fumn<))T_?*f&{E4bvShtlPr$rhTm2!*t6(Sa*c! zw)a_I5T@6Bzad(~a`9hUxD9e7^oL-6&^!m~NEQ za&qK)iw@I`a>j<~MmYzB=|(x@!gQmY!@_illPumxT z>Bf1v!*ruO)nU5fzadO-(f&7w=`;SoGsW&Oy-C}*gz0hGzCBED)b_{1^rlwXtnIgj>3Q0|DNL`? z_N`&ML)-hq^k=kvbnnjfW7GDrVfqSfpAe=eX#3PKeVn#m5T?gz`@ArHv9_-X(_^*$ z+A#e}ZNE88w`lvuF#U0D-x8*`>+xZKnErsaKNhC9YI{qc&h=KK<1H>sZ_)O{!t^_} ze|wnTr0pGHdYQI&hv|*lzB){|X!{LedV{ua2-Ev&`=&6xUfb^u(?@7~f0$mQ?c2lj zR$V`_F`etpt?dVd>GQS!)G$3y+uOqQyS4r9Fn!D|JPx#m>2cbRKU|OH@(t79#=JRh z8_%<;VfwI_S+5S$tG%3WeVFd}jP32GbglH%;c> zNr(&6AJX>2!t|C=Y;OzGcdupt_AtFw|G-sVn0}A;UlgW0PGbKxVfw|oUDk%_wqN*s z8^ZMI+J1AGUVohJo5J))}|F$r_PTSkV^p>C4J}*qaSKAkb=?y=!eNCADkhWhNrnmo-?Hj`Mr?vg& zFg-!Xb5of9qPE{1rrQp)|JE@5Ep6`)(;E)4z41FV6is*IWBiWE2EFbj-S`bRO3@&6 zqX|iO>)&l6d#Udh_J5>{eZ5BrQRU?NWDe)G5(u{MFQ7 zgl_yd8R_5xp$`gLTP%4(*FTk_jur_$LD;*6ewrv}wa_OD`x>FA3w^E7^-!pe)(hPx z>^BHKOXv+kPZ#CcEc6+|zES8;3HxnApC{~_guX!NyM_L&@Y5o6Jte4A`-Pq_{Im*v zkPN5GIdW!Iq zAoTl$y-ny32;DC9%|dqw{ZXMW5W4XjM07Y$==!JARH`DO|4sOD3*GqbBRX6y^y|cV z)d>AH;b*PT^(_*0v|i|M3HuE~|5)e^LT?rNW}){MMpN(y;&~d{zxYY~2 zS5U=&r&;K|h29`^{DfL?+br}`MZS$f$4~7Aw{1c<)^v2RN$AFJvXQ=9=zU4hTZ_=E zM85llj-RRvZmmK$ert{n`i0&q%kn z5PF=jUm*0sLeCTW#llaK(4P>xTj=KrKh;9NQ`pxCUH@dQO0`z#@xo8N(DhIMtD_r) zK1A3z2z{u~Hw(R1l&4YX=L`F7LO(;;Hwk^1u-`58;X-c_`nkf-exc(h4TD>&&_@PU z#J|ul5PG}NdkO!?gpQx43~f=NI2jdEEzv^9PjCmfSfM8dRm8v0lY|~8^f5voCiG;X zCkXvaQT|k+rwDtS(8mhhF7$CicL+UI=nI5y6Zz%|Jx$mb34OfK-9ld>{8S758ll$+ zeTdN43VoW;>xCXI^bJD)o6sACevv5WW}$Bt_KiZnSlDk9dWO)Ogg!~=yM;bk=q*Ce z7y0fNdZw^%6}nZ}`-MJL*tZMaF7#tU&lbAngi!qF2t8Wp`X@)#(O99+6!rszK1=9v zLU#y#n9wg3=anGzxk67B`fTCHCiFQ%w+r1V{5XW3E9@5teS@&i6Z%|XUnKM;!rm?P zg+i|udY#Z~gg#&RUn}%WgkCT7ONG8c=u3tF2B9w$_M3%%na~@BK3e$MCiKgNeUs3y z5c+PRUn%q!p*w}XU+6_5-&UdL346cL3xwV-^g^K@6S_<2mhPeWUn2Bqp%)1~R_Mh- zA0YIlLXQ*rT5(>(gnpHse=pLbO5c+iCzd`6#!hW;RmkYg7=qrT2 zP3YGMy-DcT3VpZGyNU9&2>m)?zhCG%!oF4LtAxE@=+_IqUFbDJKPL3^gnx@Q6#q8} z`)HxxDD+sNPZWLz2z|TI!ALPy<^d7=~fzXqMo+tEjp%)2#qbR3a=*xwDwb1Vo_BBHPv(VQH{a&Hh z3%#H4zd`5?!oET1R|)&gLVrf+jY2<1=-Y(8Oz2HQKSAibg?_&%Pm9nu34OoN|0?uW zp+6{eztA5Ndb`lwqCCfho+ot6Nul_ESonz+`XfS*75WyT4-k5q@E<4iCxrblp*IRW zLFi8kJyqyig>Do2B$2OO=uZiIhtQuE`U0UpBlJ9>KP&Vip>GqqTj;5xJk>(KK zA13s*Lhmm0dZ9lg^bJDaF3Qs&^s|KhW}znty;11T3qRY0K2F#-2|ZiryM_LO@Y5pn z7lpoG=rO`itI%H(_I{zCE$rKc{<5$?CiEtuTcShpzeDKJLfnF7!VM{|=$=74{2+{<_ffgnpawQzY~^guPqn zZwkFy=q*C85&GLgUn}%|La!J47*U=LLcd$+4MKlc_}MJlXT#La!G3S3<85`qx5VEA*8j-+G}R6!sg0evzZ#aoF_B(72X2r*3` z0k`5!#L>igiZ>GXAa*ETPu!E(rg$Ck$;1hYZzS$T9H)3Cac|;S#TCSTh%Jhj62}m? z{{~^mBH~!$R>cd6Pa$qmJcqb1ag*X{#HSKBDxO4)O2+vs9#7n#xL$D*@oB_0iboKi zPV81Zn0Nqjp5lSTXAnCS_az=kY*XBm_)Ovi#Zkm(5yvS$ekJ&9;#kE;h|eLmC_YGh zE^+(6==?t?jw5bWe1Lcmaf{-8#Dj^O6z?TIkGN6sPU3jt2F2TnhY;5*-by@_xJL0K z#OD*c6>lOQMx3X3Bk^!zhvN0bBZzH^*Ab5-PEdR!@ddkT{XJMe!WsB;qE;(}>3qH!7Y)oJ`!Hcsy|malPUs;<3aviboKS zBX%nuOq@!br+6T78nHuhU*hq^HpM-OClDtnjv}5&9H;pB72tH@Sj9((FCw-mK1h5q zar-Z-{fTYFt%?s2XArk2-bXx%xJmI|;>pB~igyxc5;rK`PMk$tuXro*6yh4ij}T8K zb}QaQY$wiBypcGY*r9km@ibza;&sH+i4zpxNSs3)r+6jt4B}YD6~r@%EsB>C&mwL= zuG*j2LENf%A@OYD7R7Uj=MXn3o<^KY+^BdG@m%5t#p8+R5!WkDBA!oNqj&`ICB$yU zgNYXq=P4dYd?~R*abMzv#5Tn}i7z8gP#i^kIdPog@s(2ys)x<4|=MYyAHz}S*TuI!hcoMOPxIyuF;ws{L#Yx1=h-(y&AYM-FRy>%v znmAAKK;jj|4#jl3lj6O^wZx5zcM`8AZcx0PcnxvA;;qCt5!Wbwg!pD+x8hC2 zYl-s|ZzT2-I~1=cUPo+GypGsMoS^td;#-L06t5(%BaT&EL3}H*Me$PNKM=PcRqan) zPu!|_A@Oa*EsEz5uP1I&JdOBv;zq@ji0>e7P&}UaPU3pSNyK*%*C-xA{6}K9;=#ll zi1QQ=B>oezLvdf?jl?#^J&EroPEZ_0d=GJ);^Pa!e5L*;4C4Pdq{hzA+ zi5rPq6)z-ylDI|j9OA9SO^T-x|Bbj&@g(A>h#M4-Cw`i^UU3rfGsHEDM-V?t>{dLO zcpGt^;(^4^5jzz3CEiYKQ{0pIdEx}cQN%A0$0Q@oLQ53xh>dg8srHpT0RUnfpbd?WGSiQ^QnBz}W9R&fRKo5U8yONrkiZa<>h zpSXp%Rq;aNw~1R6&mrDN+@yFK@jJwgiYF1jOWdG%Jn=t>>lG&vzeil7cm(nL#BRld ziT4xdDIQ4t0kK1IU*ZGAHpM-OKO|0297X&Qah&4g3&0-}$0|NT{0Xr|@j>EGiQB(d z?N8iF+^YBh@n^&>iuVzJPTZt;FYy<|jf!^?e@Wb+csub|#Py1|5`RrxqxccxZ;0KB zHxc`Z^Av9+4iGyOuO~i8Y*W0BxQ#eL@r}fXh~pHmB>t8-R&fRKVPcEorNrM6x3{bI zCvGQhRlJb+d*T+wbBK=+Hz}S*`~z{L;z`8+ByLbVp7=-Ndc{e^M~Q0`k0Abu*sXXl z@iF2&#RG|dCUz+9OMINzrno2ZFT@FoqlkYcj#GU667au>V-+7E{*Bn8_#klyar<|w z{fX&MX9BH?4-nHUSb-MB`-th4jzE**y~OnBKG3LmCow&84Kyg;PE4=f2I>`WC8kF` zff~h+5T8WsR=kNgnmAAKMq+x^BH&QGp13EmP4PNndbKE!p!i1OUc_;VR}%Loj#XSi z+=tkrcquVGG7YpJR_#wrk30gciWd@}LfoQw4l%t#7-&*FjhOxfCeWyO5;4765ol06 zo|qmP1?m+i5uZj}qj&@{Jt_;h6%QsJK%A#|An_T*4#j6Mg#O>s|RdeuFUpg4+{ z9#se86d#`trboPiSj9((>D7#YMe#vm`cr~H`?sq7iQ|Y{6(1lTMBJiyAMs$~CdGS+ z>6N%ZqvD;!@x%>^w-XN`u2;O3m>zuvY7{?0d_J*T@g`z=lpn}bypeb~u|x5C;t|9) z#p{Si5+^9Wk(gc)2*fE~Nqix3tl|pdQN$L-ONmDlw;xjNPfU;W1Feb|5+@S3D4s){ zMBJo!8ZkXe4KymAL`<&$1sW8OCr%-*SDZvlkMaUFiboLBD**ww;=#o9>O&w;@jzmF zB_!Zb+?RMfu}yJLVtR!%kf1nBO;$j}X%%u7E}HLE?*v+uKz86WfSe z6(1nZAZ}5-kC1_PYL$@9k#E@$PsDr$dPooBWsIA{v>+w~dF@*UGB*`Q*AT zW!UTZ^6q83+cDYLJ5G*SQ;ABp`zA-*y`OeC5(0&U-u;*DnrHX^n2X!B1MI$(v3XGz z|M$2($EC08<9`5amBc3dnh!nW+WKveqU^ng?cQepHModf(^UP5-FLFRZZ;C^vwKgi z>TCDqMtd{kdr>ZP5`45*`^tdJuGnQy`^l4O_x+Jx)`PKUpxrku7M{~~U)Rf?=GjT7 z+tJkaU1HNNyYFS12Pj2f`fh|%f91}$`_g0cQR)ey zQlE($DSbc&DvJg`M5slS=x5F|Aqjy%uXb*r|tDDuy^dNn(FU`>ZW*0 zM-kgH{e`%Ns3T0ZhFvx87<=7(qb1_HwnQ7XMeJpP4pbGYl=gRJ%**z^kuf*h`%k;~ zy?L45S5+wZzdacAKWWXkRXywzted7pSv;|J?|~fe;T-Qb{)HID+M?j6Qvi&KknOqD z9!O2K+z)Ml)9B%!j<`&0YC8ev!x55kdBzpHGUm?9MHizM@E0TW?7r$)KaIzBU;iF+ z;G*_;N7X5Iul3j2fR3iBApsgf>}f3?YW0hzs#d>#H#g}LEHnc&#o*A%xIIl37;W#c z1ZY}Dbc}qPqT^G42h}+B*H>d!(+Z5@`()K`W>~VluT=H4`?An)zC*v6vF6K|)wIf| zD)`2zC8WER($)3;xCJij`hSM63>B$%?`xFB9jJ43m#bj%cQ$!bn4k?m^rG{8i6|Hr~XlV+?wNUZMz`b*FD}|=TO~uU$(bjeAOA*zPa%@ zk<9pL6d(Q5jt&~F8j*tGij2#5Wn7Z&?Z}v)F%K=F28Oz`-b8CGu-9eA+j8nW@d-I~ zCGl}~FC68-(ExjMW_%pZ-9kGF#*R(xcu@dfa(s^W`yB7V9B+sJGz_V0nqpR?Ezl-8 zSzQ3Im6&ZJ6Dg z6Cdk;|7!|d4{UL+vFoOUJWWxarr7LhJE|sfPRcCRKN&a2)-ZR9-Z9TH_NG;G02HCX}<1I03Zb1at(>{(_O;>gZ+kbc3Ild*aZRg`( zTiYQ2`Kr8>#4SNnNh&2iLBjxP_T#lN=SId8NH&ih>dmtWB-BP4_a%$4eNZMN*R zSE|nAQt8v3i+f=>-P8ReG5q3mW7bThGpKzvI*>xA{Ue8oZs}WJ?Ph5^rIYj_B*ep) zlPDf&V%&sI$%D!Qis+0hGOo;U?xG1U+uLqW`#vXT#!h>k^&vpbKhKJ^ij?cty#{6vWQQfWnMWvw`Cdb!M17i#-m^tA$ai1=6;Fd2tI{Ztp zP|opPSdY^9>~VFoyJbw6XYo4XR`s*jrO!dB{7+*z_3lh;TC=aJGI3vy_b5iGjE;9P zlKDpu0MlnA*BbMK8+c6-*|sNH5SvTaf03Jr!wmjqe@bi;1)pOR5Tk+D8If;^NYVSah(ZEp3Cu-Vx^Lk z=BJg)<*yF#q^p%mR^pd4(hgl0H_hky3gw-m$0sVlOoVhGQ@h7k^~6r!)XexO&muM8=hRuBq+ILz@5R>)?`L*z;3W#E950q< z{yHR0?9kzU*gp!mO*!+oe=)?>J02sEjwz%94oI zv0+^Gqvfrym{HU0*_Cm5M@^`oL_W_Qwzn8K1IQ!d7{@moRE^;E_hLVHB zD44wi-2%O3Re(pJO6 zd4`Ae%0ml`*~2r~d!IerM;?|0Jv3uEeRX_y-Cs8&*7rO-wz>(mM%ccbW`pw#z8L75bS-(?)qRiK=&TkO&-*9a-7|F zO|++==9tg_dr#`r%< zoi8O#eWias7pL{cXLMRIUb=sZQyaR2TB{I8_|&Fh?{hx2G1#@&ray`=i)SYGZc}^b z+I_tTV9(b-i45w}$H0Xzr9Z&mbS`C^zJd;{>F}i4J7Vn3*2O^Ds)o~GhNULfA*a!3 zi_sX9zje_>@{`im#C_j~B?>L#(-SEjE{t&f(PmYpt%gan^%C7+^_rz9bHVw0Mz z{CDwbA%j~Sx)2X4FU3f}g_woCx7kZ7d7+nC5Il!qZ+LM8y^J-y%nsiF8G_RhhPz}lI_D@3|HXul&qGL)u#8!LD>*O zXCgUmRs9ez$J5X(Y1RU0F{|@2A<*?b5+U+B=&P>(Hr#aZfAL8$H=D|B6%KN4h1ffd zbDM$PK!3{3moghCg|e=s)UTq~CGJDT$E>+rWpVa&%GQ^1&n$dl(tCiq<(j5!?`t01 z>quEca$WjGl-7%dhibB&o<-Sduf?nx$c4N?CoSfrbX#ODk}l<>Cs5LvoHX0}s>g0m z+vS;szXFt}@* zsY-eW4RW7yH^il2%akJ|*a=n^e)1~JcT#Z`%W2j&HQYNxZf3i{6zr1of2Zs{bc@&)EYTUo+ zBbBxHMN0jZU)5<9h9B$0Y0t} zTTJBY`u3TteT+PK$b&DX72N@C(?bQsPX7%bQUzgpSz)tx?8dTwfpT+~c7qUX zwypqlSDr9$_jZC})(lnNjI#)wPKfl>5GTZ}sp)+5YC^B|N8Er2+>ZB~D7XTpJT|zg zJQy_B^VRQ~vmqybh;A?r*8cVAfPpHuoWdnPA64KVj|p4F&5C~n;&C|J`yOIh2W?<3 zCAi@gS}w|~oVxV$aHAz~E0$x6N5!1G8iz4CoNGg;vu3JE?0lRXZOzscT>;J3$=IV6 zW3zR()^IAvXQ0$|)>Bm~(m55?4cnGtuRBE8e!{lxY7#N@X6rSupmfbvZ^(8#+rF=C zNv91ywzB>a5+> zY`z2%ZOzsy>~VQ&vBxoSo7PaW@z_PGchsapI;XlXX!|(!bo`vdwvEcx(3`E#L#A}i z);%HH8b71O&+rA+TJEn;e6TFSJKsf6k8Ol3@OG8HrJ zW^#d=tuF&Oe%`nZHAF=?cupQi58Hk>)}k% zOhZ7;)()&6IevOW=Jq-hdsJ^I_aPicN{g};`bVt)h^ZDD=>U_T>0PEa zruRTb{G`uDTj9o8v_An07|idtji#*o_Z>-JDPwTd|KNTcsk1J`jfiIJi%3jcv-NfC zamhcx9!J_YT0`mTu}f#KQjyN7ehk{4fb-Rn=3(0tm93#STTjt7g7r5l$Zo#o8reRDwnFcex!W7T+GSfLs&x4w+{Q(?l z=V6cAD-nA-(xTY*E@dn9BeV{#v-;TMKbdZ1I?S}1shw#R(?O;im<|!)UOJ+!Mm1BN zwI6QOHCune0ot0a)?lel#U4k|Ag!TZ_p-k)o~2ZzbE?rn+jQ*dDB8ldP0H5Lo2}Df zLFt;UmxgTDvF$_3mUP;X-;J!_4;^%E$O^QIX)_o(Na6HFearGGN!dmMNBs`EoHifsgUV9ro~JZOnFQznHDi!%XB%@DyA!$RxmAK zssc4zX8|~huD~8g(N)-^dPBJ})+sS%9bkGYSE6__!MSN@`}d;+}E;gtg;n)3F}t&SjP10Q|ercn0{kg%5;pWkm(nu z#h_sP-0?Rm&vHn#HCxwUkIQpA_Bej-*BVMT4ZDbm0+ot%PW434_C@UJ_!-5vHf3w* zm?t4qx@PMKA={p8d%m(Ioi^kb#rh!VpkLKp1}j;Ceq$QObc`v1={VD9rhhV}Fdb#O zim9DxC=t`U`$76eatTkNu13Yo;SitxU(6K4#&RZJx`?~ol|`mwEY+M zbo`XDtwq@ydb9OpgaoB)ww{4KZ99!^ziFh>kWL%&o5cEO&_NSJR-lWR{Cq5xshw#& z(|1hCOg}P>Wg3Zc!AkmB{(+H;Lnc|sVWE#q}l_`#C zJCnMPRcC#H=`23>64NPdK!f1V*rkyv$4nRH4=MNZz%V#>J1lby|NYhA=cNh z$HPq5GWnTSF&$*8X8Mxp8m6y7!T9O-1eNC}NVH-76D-fE*wgDDt)XOl+0z$WDAge7 zoN9E?HXVC9CbqC`ld?5*tbbrZ>9GC@*{);ThmDCSQ8|!92~z`88Pi&(BBmRemNH$#RLFE4(_*FyraY#V zOpBPVWxAYc71NbWE0`8ARe`Yn0dV|Wfjy3&tFTA)hH_72TZgh0`UR|KvByzN6PboF zUBonkDU~UnX#&$wP%wVpeT>RO_c&?8`UiVlo?Ptd^^ew2vYyz*`12Q)Dj&e9%7eDo zVNb`;VS1Yk>mOxn=ve>2g3@9A6SCdQwo8;P>9irgovi0W2fYxo0=>jk#K*QVxtX>z zl`}oXRK@fR)1yp{OpBSeGEq5@!(&W&Ok0@jOq-b|F+IXGf$0IJbfyQHl9(Ep#xv3T zdZ?p`O!qKd#B?uH8q)@*6cE-w0FIwOV~^YGQS4E@q1@N9ZLG2tx_ZB_&T3_kWo-59 zqv~9Xn0{kg%5;pWkm(nu#h_sP6eZIMq%XwRJp1rtcz*%!UiMiYg?CAP)`{ohAl{}p zaz#h0zQ3Kw_9KM-j$^o;ztg_s;KlZCE%vvMRjI`N$En2okQgtabbLyK`k!bf7zw~3ev1xosm1!6cTnE^#G~E@x5z#2vR(8XujD0q8sXX8c4)D> zA8fp+>AM~dZZ=-0u~n7xTQ${3Yx%93^283mdneq|Gr(6oS$J5;FGN22GQG2QK|J2P zdeu`v50miRdq(up8#tX?ztNcd3Ka=&2jE3Udfe}wXYov?Cmy@F9Cq&~M1fwgqZYXg zb+`X4)LmW5p!>R6a0m~*0#~9^#iOgX`g-`pTPEL8TD)|U(9w!?4V>=&dnsxU@WZmX z@Ef>BwOgh|v^T%ElkNQ%z3TM$dES5IdVfG0R{Ja8L`8j=jmLd!@SN1L=G&OnbMRO` z!|TT*A7A<*1dn>hp$(0e>FfP2IMe%P?cr`QYu)H~_JY^!J6gMEre&TK9dir)x!Rhe zF}Kdgk;Hv%r-lONx>URlmiFGNq2Bi4E#4hF@S5xHw~y8JinSN)AO}9A&rEAt^}hGb zwD+z*kdf9Db6-=;GfmxgWTfp`b+x@_(|nqJua@eS2<^bGc7Z&3+7#p>In8!l$`^*BL#;@6XcDQ2~fm}>Dr3XQZH=fJPa z`l&7XS@8ZfAI7ZtGm_(}qrU|@9_8YBWX$Smm>19#XQL1~zTPL|3$NKF?n&I2cr>xY zTN0m|gMSio@Oq^!$Lop5i1{?zs^^;_aLj)p(PC;>02+<#d!EnJ0-}1cd=BW#) zp7EVW-&7HfY~R!(2t|glz@N2Cx95(S)%0JUr8jPT)>(8XHErsEm^C};^nCqCk+5c8 z%<2;q_rCWGGT0ll`f+kSq5qTt{4V(W{--dM(9?hV!()2Y6?tC2Alr9I9_2m5i-LKV zFQ5YpP-N^E;qkC?RA%MuaET%rB>R4 zC#xCW{TX=Ir4hTRFVU+5SF86E@b?tnX1p@k_9l%7`11=Fnizj<02x(c_rBjTTfO(} zXv4cevy_V01n0&(w2smOI8|N$iT7YIs7qh+7yA2)!`=_@uG?)G3K6b>9Avi!?}{(*BVVbKh$j-Hv9ZwXf=z&24V)wlj0W(&(7g|3qA5 zPO!d<+D3fEtfs%t%}D#r``dMc5gr&5ILwaXh1b}2yYKQ?OoHg)-pga7t3H`gaJ06$ zTlS8xyL;1bg@>GO?U~*pJe-eHJvoqw@?_VJ>K3!6i1zqtKE+kwFDPM__qDdws6R|6 ziF*Pc;}2Fcyhj7`QB|Sm{((J6=-;F!h5mP+ju7yrygLe`0}W(8Wa)qK1&oeXJc`b! zTVO-A+Y5fMqd@*owy7|SS^XIOC5+d46sf#tAHu)B^w05c;520PGOaWG@4T!{Z(!5c zaTxdR@vjZFf%kW?M-yD9bDIZSdSme}j72=6#H_v%8e02Na^p+60Lkbj>^!?~{s8}* z6!v(3I*(QZUhAw2=v*+^*)VEYXM+NLRP3bucp)80--6Ws!0WnXKhv{zoE+jO&%XzrVj96{7cWcy4=0uNN}r+P%l- zf$;*YHK59F$6IlGt{?PrH0=DRQT3+;BTgr5e+lMWkeY{43IFO%eEM4_EMLzaJ%Uyn7p@&f)rjSNyWF2Q^F{o?Ufeas(Tg&i$vKgHzG@egXyzri-c*DoF~?AHdm z-Ee$2EWCJmf6|+)u1VVwbIT3NGv>1Y!`!>TM^Pm4;|XLXDmVc_@f|hZC5jr*C=sFw z1enE*q9P)qA}EJ%)F7xlg4q?;aWKA4&u4s{oTB0>9-?4)1{D+^r-&j^L3&vrC@Kg- ze&26(&+H^5diwkQKc9b;otmEN>gww1>gwvAp3NR0uLnZQ{>3*S#F2WLkKE94kFf)7 z&hsW@p8z^xUu^8=4|>sT++#aa2GG!Tx;>blHU}0J`^C7=9cx)#YqTeZsY=@X9oX=H zE*NkpvDw>!OK$p4+<-fdlOT}(0JaHVj!r<==dVZy3)3dM`%iWR-j<|{kp5p#%Pkf)66fp zz29q}yU{RcpY4BXp?%JnEA2B1MhN|8`&D?nC=5Lc;~xCsSB>@2?&UuK@aq zEbs>`Jb?S(Y@eKe2ioU34j1(1O#7_2qH6S_@N8%h8V7R%JJ$AsvSu|-?&k+aO0SlFT#5%7~uHc z4+go=cQOk73#wBjjdVAl32j9<DK7^9SOG#${Uzc!<{QxHKN2TCya+hWD?o@wC zPD9>e$=lk`n>eOb+F0bB$DcW*hsIorM7*()xEAH{b)uB~Pw+$s`FCk5|5lX$-&&CW z*^qz#5k0HbZRi(&Q2KA~Dg9TPNPpBr>>|g3aV?YffD&3JJ91i({?~ZmblS<^f^|f4 zi}r#BLi$tiwv#XYV_{j?6O8nC!~E5T<^x}s^c#qIb@L|Jk6Po|Wnf7osU_CnG1~T$5uu0~^DN@>nO`Am02~ z_lI@m=M#S`J4CfLq(+6HV!BnV==;&~@yBbody&X?)1wsRK#!TC_!ni1arZ-Nz8mUwx0vajRWQ?q z5cRxac&n;5bUm{3wl;J=Af|yBI%5yqsh_cXJMsE%_!k_i;O5gU9m+7o8g&)>B(CR* z!#^I0DAnR5B2%5fqPdkCZA-heD4$U_-n*eW(}a%~$VYGTaTiQ^ZD{?GtcOuEO!0$eq z-;>C13Hco${GJNlc&qtsC;aY@Up`gyuoJpjemfa{i<l7TjW);Y*yWtZOZfipcM5vjjrS}2u zG~Y4269EfYS#%sofy4z_X-AviH!0)YhihLh&!EX=p`>62CMGf9+ekb6rHdKjUK2;~Q#Ba@9^vCZ?|UnohIF+dHZ~@=J$oWz;6NhRS31zhWddw-fDgi6Mm1zFQ2OS z*SEm$F^1o=-{;rUhueSLQ@&qOw_DJMtFS%-LPjyRLD)kDw%JwLg~q$CPJ!n7fjPOHoh6s~>l>95vU^*x5*S^uUw#SS z=#NB3^vM$53v0@+^s1ET1{{nxZqYq4ctk(KAawnRbFK+UPy7U5LgM^gYxv^YKEyR~ ze=U(jJuo68CS;WruD7Dkp%xxt;;-UENG6x!QVN49S8{%kv8om!J9UiqClS8Z@6|@2 zG;jfzV0da>Fc?w(vRKW;&Zu|TY5SR7nU0B7+fVJv1?l0!6_b)(f97&cd$^Ecrwp32 zumssLx}4L1Nm&WX%|=P$t4Iazl==YcplJq2~%Lz0I$nA1w$Lq+n|AgMv~)BlW(YiXCA;e;;~V0D z6>(6K7gcf4>pY#>(XnQvHDsxELc1_Lu&q}6NKS_3NK6U74URl1&nez&Wev^Az_Xz| z{v@5AKb)I=kUUV553nnjWY}0vgZ{6E{#r4fJ6KjYCew;N3+%EUS7cf4L4Y8$&i$Q3 z>txQ&89Anw`^pr+ivEKYaY7GM0)@SibuhH|2P><0maHq7b+OnLNL57~2if5-z#SZ- zVhmdFf3U_tnZf@-?Av9Wi9d6g2A6v&62Sn#)d;J!<2Z-*6!qx?mE-&6=vKE+LASd2 z8+4|LNbuS#HH}D+E%qC2RLxSM~CU?bjxlO z=ybCSw^*@`kcFBG`Fr$bb+P<(QpAxoaJST|rmis9tqR66EX3lNcaI(>;>$iXRC2p|yxuey=S0iEd#UDw%bp~Qvge5jBv zPhPMG2QNNH4t$0l=Pfj937e%yXv(kYkmnevJJv8%SI9?%44ZKuW$Y9~(`VNKq^%ne zu0?1bBIGgom_w@J@ZD+9zGT5}=n9NKwV_7g6Rpq z8i_nzCC`sY(Ro$@8cucKk7U3aR6O(_X4$}E-Oz3{JLdm>mgfKsV;27CEa*m|D3USc zB|b*3pnuzJe}*XT+Nt|D^8=odV9qSFrsR>th>Sb1P}oq%`G{v8 zut){7a2hGVEVPO@G6#v_XxouhIB{XyDvpOZe`~RtI0G_g_dSf6+|cAZDEv~y$94BT z7SOL0K7YLKyEhV3-S;eHY1Dnk3aO%3>hwO8hd#`&!*OaW>}@OU z5lgX@SGd%QUIqSC7lbk63uJ*r+ZiCscRRfP**L$S`FLbb&PTmc-7PT-IwZs?z`$9aBaU1gz+*aYXv2`g%iaJ%( zDd%B3hwMmMmqDnxI`$dJ-G7HSU|;l9R^9qfGSRGk`QT|hf_*{b|8e^=oKf^n;~AQ# zeHj5DaXGl9eb_|r$HaNJneM)vHiJ>r_yP>+hgz}E`M?i#!p-i?`wW)A=FF|em3{$i&fByPjcv|&&*uC~@Wr@gale3=*A=w9DdRSuw_rX& zX~RA(fNMzm^e`*sh89ENYC}`AJX>=epp8&lJD!}!t7o73BR$cR%(|g_B+o!U&uM@@ zq`vbfWuFdYmc4bBOC-yYewH?XK42F9r0mmLhTLJFen7<<+ozFMeT_tYO(^8Q*b=tY zp1iR$`%Ublk=CSW&K8JD04|wZvG?F)z%PLsY|pS_dVHP;UwmSA#JLWE%S+&7hwl9u ziifk?1|Y8hvX6u*!@QKy9xzUT${Kh#(VPn2;EygzcIp5oYy>(AP7M+Qwx``*NO3!z z2A9`AGm+NG@84n#vF~Ra5Zr=OZk5BiTHnsQcHd0qrBff=mCWV}7g`$oFy44v+TzaJ z*nUg*^K8#cfKCGg^Y{ace=qJqWCYOQ9W0xKX%LN+I&Bra;~Km}PXPv;er-R*_nMJY z1?1^>RyeGNki~lGHcon3|KgutZ;#K*DelwJP0U)GRxvPE)C|ziarE#5%x}kM zx0 zUisjPq)38SW@q`#>X-i?3^^ztrG}k}7-sHojP7do!||1+@$b}C4*(fmKq!jc9sHP1 zp`5f*_mz~;->?DB=4Mv9p>Q^A_f|GTXCzy(S49)YL(W2Ef62mbCbt>9jjv1$ggxXq z>-0O+xxn`WMyx2oK9s^0R_qa!$>$}Nze4&Yz*e7g6vPP{Z*d5=qQ@f*ru!oJ8Q34b z54N=+3(i*nG(=m9Q2^m!Uxtg*={DZDMUTR4I0cvBM(zD648|9U(?D%xRjKp0&dGaI z<8x!a=%0A3MXy8#59`7*XUgxt0CWJ4pTf*4A%J5u=-_1FK1El)e)Q!JqY~h zaYVN(*45miCvSp0GM=D3%AbKOlK+L@sVYHPVo7guD;D?MzJkROR0>l-ZM|NG(G4kQ&V;oU zs8@GD%%G?@$xemIvZkGbUnI4%qSYE|jinH$V8&h?h3aKDT?JT1<9LN(Rw(nFjp>Nk zSa%;ql`?iAf-B37INH+K&ZEL#BDxKY`~=O7@g~oLUeGz4M6Z_S9-Re#1?E7<@`>+G zmO7W`WF`(^nj5+s60Hp_2Wz@7zY6GL-IpH)m^cw=>W35XK(qhG*|P^+}-bOGN2v|?k3?8m1PBZXS%31ow+)rM99N!OqT z(A7HUznC-HgQ(o466;DRwJql;+^WToBP~`lvdW4*Lyp=uk8)@IdL}yUs?3xCaL)as5$4X{tA?J_X{FuQ||-+jx7H`3P_%5gYZKMdimsJ_e8I6APjL22;ZU8dD9yd5Q1A^Rx}Ii! z2ks3m@qnX{u;3*MQMeilRWPBDY}V@tSrfbAKJw)cK=*=a-kJfZlDDY-3+TA)ot-F# zi>X+79<{ghsE+aKSv3&o$;Z*#AH+EG24ti6WXUO;YAly@+|bI=Z2bdJzkEEe4gHE5 z9HiTD9mCTF_4rNLA_n7P%6jgYCld@Xt29_F)Y6JglNJsYZ3qfc(=T;ZY$MQJW>26T+(;!>7B21Nyy0~3eC06V?5yLLmo|Mo;@X-qTv z3wKuZ2Vki4;1(nlAR}n_Tv{7M)*)E^#CSe6&IQgDz4m5d|5&*Gh~RS+8Vf%N^^4Dv zN`$7PVzr^~T6vr<1C*yZodq!Q9_U5lDlvO2=)&U6M15I0{jjU?EU~W?Sd@W+-he^` zg|U_%w;SpsMO6AlTnXq1UBtO8ViYLATBpYQk_)=lyn&^tH2LU|f@)_I zL@=1qo9zCqq@_#I{~ENm}mf4 zOX-V+WgNo|0F#i?92?#D69wVH9jpc`{3ASFg91|){9}5JKpI}^!DceI!n+4vod=_g z(elC(5|x(-cuN5GeNUuw=;5FFU;@j`GD(E918{Bt&JV!F0oV?}0|M}{06Z!HL!sr* zidJP&vi$-R&@Z`|j&s?mYu=&#Fh;W^Twm`Sqi3PL#(=Q#tk{D*ppId*IL|TVz(1vTMy}8&Ucmf_F{t4(lOg-lD2lLY( z$b#E$A<)oaF9(r1L{tyIXXd9=sAlG;p#5l01*)w5KA5Oc>sjDiIn`t#{*@Yh7w*v? z1WCN<*Y80Oo&S*35tG#RzypzL5RsYF8g+~zQDaDSG9-wi9rBwlBy&j zUG+0eomj%Lh6rRUM9_8Cs9ZxN+Yqr05kV3n|0I!DJRX&P4=ZEh7K}bMhGh7|~h1jRtiF(1l)yd{`|s=agG_ z_aQm?UIgc}`HTQ8QdJtgazlFK2*7kq!A%6<1%UJ>qt~N$Wqk8fA^_jPBufOKBP+c} z1OWX3l`yLO?iZB#HLzfMx8@L$c~nqL9N@ukDK8$HtY+wrZ^do|a(}w2QAPv%FezL*5J{wQn@3SEt32fx1 z*pMtJy4oua@bmyY(}M$StZ0D^(jXhmPd1p>XXB6*8)<9-u#uT!L$aXg8m~COO9Su< z4-T;L3nnVfNrN=V2J@2*=JnaQpEg7{N*zQ^HaIexMv*Kiy3Q*OunNFiJUGC{@D`*& z8f1g{$p-WKY_vxxa18g`gNP{%U2J@2*=JnaQ zgMCU%qnflKjp?`=HY5v*<4DRs7R@&?JviTk18h9g0vn`3HkhAmFt5)>0}P6=!G-(u zuOkRld5uW?h^t$~Mmnp59TBC7>EhEeHl7R<`Cj9_K#G(KNx|fkkE`VdFO&|cL?Ni4 za3VH))SWtoH1)_f$fVRUli-w^lo~&!n@JJEf|G4hDtw&%Ov*4n<<~gN3LUlv#@dUd z(L2)t&G)~eA&bL0l0z9~gz^%}g>i;GMp9lgDbkfCZW=aj!* z>P+g4cT4>Bw8s3Ic%85qy$o!qFJOGZb7CNQ0>8{(vTcpL3dQ?WyzYF&_0?Q7n8fS) z;f~Mk*{luzbe!#1j)U%@b5Rx4V2zqEmCdOQd&G%~VTT6$(YBlzF%uW=@Zv~K=snSd z-tmSWo1XL_4V1G7z1zW^j!QM6*Q*J=)l)QoR0`6gscnW{ZA<(e+=QNM=uz!RFSmJm zTUz4pMz(xFeno~}4WvYRG=9zSSAYp*v-K@zR|(MDbce2QouQ|ir*}z9^WLxD;W?^J#zwT z;P2OdJ*lTJ;INXC*=`Nx*!l#ovM+V_<<91 zbWpXA1XZ7hU?r&fZK5?eLSsh3OPc9_$;gJO^I$Bn~7>z3!8Nhou zg-5orIGCb0tv*HX#uOf_YDI5ilj(B%2I%!q;ZZzR^n+Bn*9Gv7O5stYR`iNgxu*p1 zcEtSpvKg#sQHtK~0Dm8)@Yr-#w7~Eu(dxM%Zqp#)kvF!GT!X6V5pgk~8Y(KzM+cZlFsmE76=)J9p583kxX z=Mhzc#IH3fFYzpHRW%0_8jH#w$V{m2Gf;F3(l5dVA>#HJx)T+!TnrJs5yTZ zpcTsigMq;KPsppXZUL1|TgXUgybze<6Q~CCwk8kS}vulv=u(u>ww$@s7eL!Igi$x0j-kr&?;y#bBJu2SQtTxwFP{gg73QsJlcFe$_Q zlsrihC$>E2dI=AIcbg_nH%5D&875n?pYj9Pm7eOS)R`1ID>~QvCZ!G|g-&_Pq}2E+ z&zqELKjk5&K!jtIW8s5{inFc;C27S-f{svr?h$eQ8uSFZs=cwsW$7A=_Y`<98iDV z(60k@3Tp71cq1uvBBTR;)8?e;q-i>r37sc=Ix#?lG@a`JV!hEVYRBxbqrvR+>7V1f z9Fl#QpS>@jQ9ApH02Ae?rn({uT$&DhI{+v2?8jm{mJHIS<5SA+GCp#Po`Rjy(fAan zgLF~6p|a&pEerx7Yf6C3Vi`xXX;N1<(k5Kumx|x z+65_0(iG|-1@wQPLI$AWn!=_8D0CwQs$4Xu0tEOqKfbf|A@nHmG3~53`!wqfox3gsR<6FTm;qS7na)4)^iYs*E)rjig;$iWpl=v1bxq zQdVj{Z`Nm4Q($hv&*#Yc%)$$K*X}8~bjpJ6>dzzU^_g34230rI|2+1}sVK4wSgs9S z2Z$zc9)I9lol9oic1HsZU92M-aSjpHj#te33>BdH^_dy6ebTaED(y0?3jC~ z**9w4%Z7yXD8=zZ9mye&Hnf28c5EUn#&ff?EoMkm8xms-38H8cA7flmU%}1_iOVQ* zkQgQ;us&0-dKnTmhD0|*f+(6q6-hkek=Q0HXEXezrfd>fzCu@}&Jfu|M*-ca!Y6Vj zi45|HIEF|ypJR~+GoX4k)euQzBIGgM5D_GaMD0Z)?L8t#kO+Nar(iWA_ZX^!nIv{i$d{S`TX%O8o5)XSb4esyFNsXh=uM`=*0cip&3aR0 zcYv}a@*Y-YQcEHqLrY~zWHc9R_E-`bnlsF-hs;4(jO!toxXS4j{YBc??X@=t6@0AAt2fe`Oxj8M(S-ARjacex_&j;kNy zJ(Mi99Cv3Huu+Gr$A${Pm^SM402}>VV1qOy?k-ov-EsBVc;GgljT%s-$}h#$i@P%m z*x)F`Kf;*-ILm_rZ0z3x8+xQd+#Pus@Md10jr~$=RI?ngF&$Sg?#?VII@>D_aBcw3 z_uv2u2D!s;_h-q+#Oe+jVZVK(x@t4r~0BuT4s|pYnl8sqj7>d+eiaHa-t@bq{P41`|I%k2DOM z`$srzo`dy><53FEc?R^Q9x=1INa3_Q2p6Z*NxX53z8t`r$^p1h^PiXa{I1;y=lSvY zKN_F!fkEMai_b5G=c*37$;9X9;I5hY{J}Kqfq3xh(UkIQvj5;W;@@Y$No+R0EVKUr zJ$!>!=+!}1q^H<2d&cK)Zi(Kd)QkYVB15mn&|BI(J^I7V^4F>fy-n9^{;CbV>CMwy z+Y-Hv7@UIqJ!a@t7vo-)KnqM$tJyWc>SQ z$-wycNYo$||CSeZ^nPN_l9rFbQ~FdV;7;Nj{Nk#_zp>eQ4r~CLV~sjxzJ!Jo)u4)a z_qK)TmEL~heHO8c{tR;+41Rxy`=-I~nP?n6_J4{zsj+`j|3L8D(MU~3{E0{C;5Xi6 z!j9q>AypInKFHM5>?i&bUFw{EkjHB<5QumGlksi@!}0x4(3N=iTrb{zS&dXGIorg$ zFTEYpn*%UgH}UQ^)|6UlzR;=XHjZ~=W)hV>32=&v36G)?bb3o%dzgkLu8psiGaX(X zLZBMXCM@RK#I?nw!t3h*w;OToy(F%kM(gW_zJk9V2(%ZRunI=Q>^AN|RoBix$yw2L zl!}fo{}a1UJ-iK6IgLjauzNLyH!Xm-AcaS^@on`K-s>w<^d3&(v8q<|c{aT+_qqVR z8&h}`j}`5f!n-+u*FS|fTJSD4h&tVZB3yvqK3zOB3KG zn>nRzIB!fW{2m(L3$C+>18>k3!ss#DeAF$t>dn;*H}|w+o%qCGYGSy#XCj?xZm3&d z8u-zufj01i0DYqk{22ff2Wzx_fhOVRzCLCbKwC6sCxBM8orZ?bx`AKo#P_62aY4BGscWFF?O`YwZss;#?%W;C-Z~azK%xv!)P5rXrT@rh zp@2@KiflqR%?bP156Cn46S|JXXt7` z0fx41)eN0ShBnB}dexZ{pNT=BN*xE0oA_upbyl2{L02LX?o*ndQfg9Cu2DCWl5&l* zC56!lwCvdu^ICm{Aw>3s^iJ?W(seY|l9DhfHGaxxCZ*a>S!_}&{FGOj0_FJv9+4V3 zoHq*-He;6;nwv7*RH-w~-8s0UUF~7+&%?dc8#5;_LU$s#mG^?w6}ppie|>N1TA`=s zi8e1P(c1h8>Y6wkkAlIqyWk4JpkE*MLWdZgWjP{EmEOijp=Wzh3%>oY7o>Ox&_lX8 z{|(S7cniOY^Xu7WDp8N+CeS;A^q^+4dSK}Nc&pGmU+CTE)4K)Gy_()|fJq$uR#b=a zR)>;P?99^H50LBw{p_a!x=Uw28ejrlmJB>j3Q&b012<_3pFke9p$X9N=ph-v0LO%wXO(t^q9X8*{EMKpgYHdR^2FWft_=#r22M*Nb9 z>a@p9{E`j2NBpwu7ZLXvZEO*)!%0i))!uKgyzw-9->F|O*6LG7cElVH!GNHyxJv3t z`?nc2B#ktXhoK~e+S#O_1E3`GA47yFnn))S$<{=ySk#c90^u!el871-)hL%F$_)vk zXc8a6P^;A(Qs`5xHzbPr95u-#5$i3@M~xvu`z?LTC*qRGLmrXaKt#MGr{MArAVzwo zsqNV3;c4n^?860D0*}LHb9~N#^^7>fI!o+s8*PF!3a|0;V;lOFY`%_NCh6Gl-6O=$ zW=7(d=M1o-FEh1As0t}~*@sg$=X~#V?Dl@-QC`Q!X*S%9Jpu1iU2bL{1%pw(%svi~ zv#R$7HHfV7+t?Wz+na{$RYd)_rd>hrM8_RR0hE`qZ${0^;=AReEmrgeXjd7&O%gqr z6{fSox3N(JIpCJ36&9OTFTwkZ=Iv|=K!1oL8Tu?Xv5)qzvwG|h>MtCe*=%=WO^_ci z;P*Oku2OuP9HReP4qJ>ZMK0NkhoQyzM|e~K9__(_*wQOrYzbdxSljiTaQZTD7dD$6 z!6g!i#GlDwW)occK|Rf$+uRmc9N(_9u%u;J`^*C4>fLC~M;2rh1F_!Tib-zK-gIO?X@XGvTfO&leI%oz^Y}lEQ#rMb> zp(DsQjM;ImW_DLMjveokgZD_T7);$Wi;!Zrp1wq<5Lp|LdrV4&pEAj$2w}-}t)zse zy$WlPist1TjXnd(R_s3M(fQ+(-o+H_1$rQX5s zNG4dw3Ql`7#a;8aI%R{BM7)N;Tpmy@_oo3 zC50r0wvxJlgYMzrA%^A^R)|XKS|DtGT>)oS;GT(|4iYL1uM!=^ccMU z0lbMRJhE*?cc$o_8^9Zs!edqO&8ZaLkO1BZDLjhDie72(BsR7X0~I4&S`ylLN6<;h zB2O65lAEC=tLGGYDUcJ4%*4|OUZ|6_HKf3zUsL}P4%;7QNxYf(LLlPgs<-hV&{43H z`Ow4*(pf?|C(&?HR@!jdfDX}yvn#;F0*$t-8_|0BXh#A%SflMjv_~}Br-IheN87PD zJ?(If_AS6fInY$$0O-}TjEQ0XFB$ku7yk~R!*qs!GlK*h+|Wcpd&@_A3ece%%^}*M zEWWa6^NWz24nq|{wt=WmgdNp|Jq3aqJO~V&h7@{YU?N+nU*c0Q1$3gOemp=cHkY`* zzm|AOh=meep@^|fwV@n8=RSbC=$u;@(I!+9Ro?N7jU(tgl8GyEtM=n4NP9D0hX~I? z1u#vzJ|7o^2q$4wPn?bsgCW9^zp@HE3I!cyAjY4>t$2c3Z=d1UdOM&%t)n7jQ|sa9 zBg>6QQ8pStLOpK<_BGrDq0oaEMq=U%TqY@;W}?&+C46-_qD10muxkoZPm`_MPdV14 zRQM^KCB+~5_vS4kRb63{c=Es_tP93>ZJ%E_+h?v?vw{x|Vk}Z0k$(wjP1Pu3|8>gE zIz^5;Rd47{XT`pwRyd(wUJ#)ke4-ZWu@`{OPol3yTTk%%rodM$ffBYtHLrB_l)eus78uZY97r^t6#Noi!t0<;mXyAB9 zX}!=aFi{)Yy1=9QIiPPe)dc{P(<$9L6zBz0ZpQE<=gdapTM{pCVTBq8J>2MDAF`grB$8W=IRK9j5AA`~U z9}X3C%VRKBbBL1nz3ujV*`EIk4$XR}e7Ws*bde0DtX0on$hK>Z=hI0k`I^a(Z)emq zYrv6QY)x6uT<*y)>fGDZqjaBQn>gOY9wNE}FN9~mo`eTyx;;;h#E%A9RO_}(afi)! z-t777TFHi;4JwZeAk@&hhah!D=T5DcgVUHUYqLrNA_ajm!cK%CjwN>9ZmC%1cfW>P zpPa*b>N;Zi4DFTJAH;Nh;WXNza27q{Lk%ob+}3UHTl8@0<#F3 z_UM;YemO?o^1X3bbn&k^LK;U*XSKrDcz?BBJHyV~V8_qQwDEN@goMiv$M-66p!#N@ z!SS;5R?y2D4!)2F2}tgP>GGm1FWR^;pwEtF=PmV4uZu2bmvK+VLDE~SJC@@n9N!qO zT?{+h5YAf`p8qR4Nj;As$W+}pra323(s(HiuS-GsizLEGhh%Bl37%*{&dgj?~>0dHMWTKNdJO4E13%?I?b>xFOb@AqaOUjBy_hmB^waxhqKyP zZ4VP?@mjG1@Te?ahpD6;f1mTSW0Ao5nSboePv*=U{0u zw3cb94yL6{8_mOT6u-Dh+i3gnr`zRWtfT#2yJR>W;#tkL3CG9(y-gb6ZZ&C>WsyDF z2J@(nNZw8#;SOjbW6N21J^}OYi-E8yh;Rj_17-30kyT;ml(2J& z>a_a_LfELJbd)kaInsc=$Uga(6$oLV|E7ggUpyFkohMuO$`b>)4*B+twjO_D8IkkHXk>fFIO`guG8gumn`~}V|P9V zJWSou91(o=d_G({8{;MxId-Dxt~HUoB+HjfD8B-k`G-ojCJ$5ft?*Fg!4&^gxL{|w zJ-xy!mO}?RuFHWvmPr)`s1TC#?GxgbNp2_tj)Bu%auV>~`hOeXTo|5Q=|gUGR}Te{(B* zF#RLjZA%|G&C10W6LBDq)ghxziFE+KDt{p6H2h-35L`!=So=r%q~UU4q)#UAO8aE- zuCxz6PEeC&7k)bSEl>`-9q$girOV+lzi$`5SAH@E)MNP-Z)?aVc+Njq?Qd&g~-?mh$U#hELs;gh>SAVWw{fuQ&`_HBJN9o$H z)wR$5{o14XzLXX3Lk2A)3dVNJ07$zdQnhah)< zH=}#Fa1ls83XQq9^tez+0eeWp6xWj9d=xENH2FSI~9w-CB|4?GJFJFvW;j^EG3&*UNH`PW~1@UsC){wQ(u**|u zD*5D|^tyoFCerJ&$Rno`SHK9!Oh0JXrj;TQmadvolxf>|lTzcST!j?hu3aoQ#;y$@ zu4mVJ^9EMoYPdt{=OQUA`E->^8t{4bwSoSvJ~Pm)kyYwF1HZ236T;5CVJ1Qmg;8%% z$=e}{%b2_|6T^V`4_Ar*kPZK#OC)cd%&0kQK9Eby_{@>^ zAIh9znO!%P<^4)`n}OJv-cf*8Na$ZoNGo%$rGrtHw+ml+l@D9S{!6 zqCw29^CQlv%y8aMegTi602Yn^ar|~TeYtT&>X;Q{JIO@iGlYb3M0Tjz9D;ECwQ~&} zkzeE!Odc}Jt3f9I5nif6f$7cguPng8Ms#R6BHg8iIxBqvW+O>vp(BF&!q+j5NOzVm zjtDpy0OoN#J#ZxtimXN+{;~M!8Web@fx~&5%-43U*rvwCS2J5Pe$Wo>Cul$D4GueA z@x^}eEQ&=|;L1P3Q#B}Xm4VCh*7?Q%9f}sHeFd`_Plz>Q7E}9_8+KZ-c=$x7_AKf* ze4=pPYQNOnV5L2uh;_ zlDP4W%vW;r1wAQz&y+Wl7qPPkJSi`}Go`3fWBkvW;Jc)|QIMmg(G>p`;D;sjRj)21|5)CUXewkV zSI!Skv7JeXD#+v>gXLV(Nn|(mr-a|Db@_h1+Ohm(bLAf)_IMs8{*kkQW>>zme~M`s0p4F>LI@z*?mWhwL%JKy22%>#s(+n@8-e$QV4VePJo zzY;E7{^z_ku)mS|UYy8pS$WSn2^TK=bKY8iw{#tB7B(d( z+M`O1{8jXuOIZQG-vG<^*PiYv{Ssp}{j~wsG@gi^^4DgFL>3xCPs@StNpEiPm_%~Au}eWb?WbAouhIS-6b|%wkTYgPjlHt( zPNS&^Zn62qq|{NKVrCa0#W$g|AZ<=^sVSaxR2nhQG5$t4Cz$db80#hu9oU? zvXq~kueuuOA@x@SRl{F9M8oo3Ywj1{SKkK)0V@h4)S$Y7s>IQiI*B9~Nt`WlGoO8m z6m+A+ExdV$Hylz}ZB*qowXG0`i@zxN>IFP)+27OgqEQ$E0`a0^_E#8_R-}$OEZR7Np?2$}WaH6SK>=j~mK%P5H}`1LfBV zCz=-(fVX(C7d4#JSPINXDKHN?Ab$D5oFPD2;IfLloUisK50C>IcWBNq-(i$oD7^-` z_(w@B)u6yD3>*v_zAwX>-wZX(1_qdo3@}R*e>Gp-iBZolew1Ilv zOV`ZsFsL9F;3>axu(kGS2fLUK_9L);0b`1l)C4SSlVMYcc$PNAAQ=9XHdpGfebzJf%EXE`5`524f6e2`g5O{Xt zx*d(ZQ_^NeV`z_P*TCMdAb8q^?1306+5BnCxut@xJm^IBo?vy{=IDXmJmq<@fBECO7z&0W6 z|Eu`rr(^ewU+REvHyywHS;sH)C4M=?gtH}n-87tyIfjm34oJ-V*^9$9k<0U}hNl-( z^Nn6$o>Yq*b`!nuqPSVG$67D=`Iu_{m$^N^N?hU9f6w_$leqJX z+Fl3odLlmE!1#2}C4PK5IepJKwm;u$6c^_XxYP=CkghlH3dYA1r^C3ak$*)?cws8p z|Auk(p5t|5HN`I@O|aNbIDY!4VfAe{H3 zADKT4`4KVQ(s=~ATF~Ma=@M)6Zc!M zI)R4lcJ=KM;+cqFJrBI_{I%Fcv|fEr(h#@pOu)3?dqczfDq`X#_NzerNAe$o{QcdI z>qI)JTPDXlZ07sSj(5yaPk^EX#1>l9{(|hb!;eD)3l<+ss`D}YJ=rJ@^g8J1$k+@( zU`paZ^|EdU-&nsZ5*YWenwySQyYxn@b}dJNJ{wz${erJV;$MS-t=J40F8oo#VyD^e z4Op{-n16;P?=EBBjWG4UUc-$o$6$g$0pB(Ropd`vVY$5XGGguem;GF>6e+lFc43I{8IVP5FsP~&4K)l zDeXP8;AlHtu^EZ`l{(wbE&t<=qSS|Ux59H^oW?h8=B3RV zbQI1`mr94hJA%0SHf}RV60vb_cScY3@YG%$?{FLp8DoU(7=8}2fK?gxvm2#{t;Fh6nKjV2i~~6-qhs_Z&lLNrH=Vg z7v^uYDrv`8siVBQ;2ot$r8sVNG}th=s)X(o263Sxmh*#S5TtT1&&dxv2XNBvUXxR7 zs=Hp@3ym^wEFO1i!?n#BHm{3_t`;9{79+2^iyFuml{W#5 z;B|-5k@zoj;Nyb*uQ`>j{24kx%xeZ=t@)B6g+5>lC}2!%1RN)mNcBO^!s zQyACl?pVf<`GX|Ara$V3AcL%gO=Nc7P`huy&D)GlslQ5c1a0Y@oD+_JUKZct1&k15 zP*ceX_J~3c#aOSgsb3KtP_9~p)}wTnNk6Sui*V(j^A_*-SfoqYuhe)Y z-|3~CFs{wTg~Nj?%3%Q~$*y7l7_t7|M|wXM-?Dmb5BuohI!J|QwL*6?L>zt_b@zy*Vrfkf1b7#>NbiGyWCzSl3VoF-sx$j z@y+;b`*7q}7ej`LSHPwj8WyTUkT3Zf$f*)Mt4hAfCm2x?DN+qIk`7}=IPw!IS!x1s zm;!`_Y`tr7Pi?tE($RWD1z=m8YoJ`!U7EOF6*C0_=#DFenUAZyACr6n-eZKmsq~&p#EYq zkA@)*ppZf~me18*@?6_Sy$)g|o6D!UM(|a_biK+H78_Z|F_JVxtfR5J!zBr?EJ-fd z&~55$BnfkCR4G7hEO*eefFbPc8OjZ*!7xh=r3BHzpp*F0i}brJ)dq>A*MLEh7G#@T z8&o~#J_y1CxraK6H*V3}A(+a)LrCfzQIH<$a}-EZ`8gO9Qwa*QBqt5!3kJ$oPa3GZ zdeA`m$_2!(8e_`jMeH<`{x#|&G78yjj)x8EZWQM2jY>oms{94qIXA=Dn_w0MP+MMWoOC14EeRa?1uc( z5=)9R(^L*5n%DuOLi33Jw@`fp1DnLRY!<3aJWIan+s#Z>OWP}rsO@H^>LXgqX4Q7H z0QYRkXkK0nMU?@vS7_Og!M9Ki|`a)L$Jlh9{1N2fhb&09+frNca&y+xV{W*GQ4Jht%x& z{i&rf`fE4J07%>8`<}#8chUyJgOkkgPl8r-m0Bjs^_G4rim?yy`^47L^IWgm9RU3q zMg8$6s;EqzR0S*m{yo?8(H2Go((s%~jtEpte?)jrCMOaqfc@8~YdmZi6tzSYA?SJz zgt@1=#0Ef^(XWir^L)tesw1^oo73H5P7#iUF;s17qQunTp=VCHU(548X-+@us51x5 zsov5BgG__@A9=oqIfY}n8f-;ey$3(+oUfgK@mXP?&|v&pb2X|?>-MA=Wqf{8?qT%T zsQo1SGuo!2?WpoQfEIyRRtOpnC#qNLnZyl!_3BH2+Rolfa@x)&%Hk>zBcUVnqs%5! zb{3;lmU;q-r1zj)*Q>jU1U9A!vaz#sC^5I_0_c-E0kBGl3iVJopg`K$1Q?^8Wu3}| zQiJLv6yP8A6o6g0n}KrmcmuPNtqwP7XfHyO7v(~O0|qw`522m3raXkQ5MmJjRH7j8 zveiQevF40p^^w2|U2pS+yZ)|mGoKUFTin=w)9$8x-E$g~@hNoCj%q#(FZW-t_HNNN z4Qa+t-C@Csq|xqHbigBRcct@5_j-YL7Bc;fAfx#6GUG3;*wTs9<5mBhuoFVSF=>q7lL z8X}>k@;r6zWA6KzYuH@RZyZADES^-s~Z7 z@rkjHz+%hiDtvRSUB-x$OB2UIpMQk2JviVgzJg~GDZoJ;0b@;Kv{}qfW6i9-g>hxNJvboS!@Pme3ox6JkTfV<=I8LiyuKGciX)!yg=Hilp`#iYJ^0wT z>*9?6!{iK%9v%g8w{O979#~fendrB)*v+2?M>O*ll8V#Q>QxmwC?9R-SSRrWSMT>| z;^Jp<%-TvJIMJMkSZ7F@11$dtZ`Yu}X?V^*8_Ev!YNB&r`!K8%q~iRmkt|#4y>@^C zQvRgMD=D%aNKM)S6;X8@fzS>ZgUT<8*`8!ZyHj)$} zjWl|Hip0z?Fd@vQ?Mot&J!XY)0KwL)m4f$-b{v40MWHPu9&R|7SFhtnkCN9&G8PLM zwW&il^ESrQ1b-kysF>h2;dmQ03HPKmRw`Dnu9y35>TkG)oio%ER0p@H=P&5V`vX?* z!$R`GAe6$Pk^3%nx1<-XP9z;bS?U;}1pn8h!2dN+ceS^HvQ>kqoA|$gWD9bmIEx++ zgJYOWo9_2vzyF#+aE1(m6<{hb4$3+Mq9*=2MObLupV|k~&30~0?T0o8N+}G7jF<0A zXVEPh3XPZzB57(vCRl|%Xi%f~#UqYfaEwlts?e|@jl~ioFmj5sJmKcpltPpf%4UdgwWVmQhxCFALNfL!97Ny!!-aOhr&MD4i*+h z=y8S`mj%9QU>B&}Fl@;;)qnO83XG>DMr*v}BfbHV!D!6K$@@6;awuHNT(1+_%n@>& z&XGVA2t^r%)+1OHjxNr71bza{lFI~`g#=)(7OE_yB_Mq29PiV3-^$?0TnzZXV)$de z-MGs7pLs*uyq*mUbPD6Ja5L72<7?G;(6IISQJ0}8n!9Y6JDQiSv_rVQ0j6=KV>^wF ziKIK^x?X)nRWPrMGnQOq*TO(UTD9=^c;#wcZSO3BW1GgDgT3v!vSQadf@<0eyt3a4^fNT+}^qga%&7^w%e6qyGHE`u^gv9S~PEYi{-GNeoBH zX=;nYbZVCc_m02d7f@cJ4LSR)ii3~{~LMUgz=)0JQsjAEB!8q zwm&1!bD$59=bSdkACTt;+GQ=z>q#2&Yy%+}c@C8%9Dsytv+~3mO~pj`CGnkBY!dY3 zZ7PmhN1{9^Y;k$JAFQlU?8me;tOKT1HBm6Z_B2erj9d|S7(H}m}W^y$kC=F|E_y$STsdtimAPX~dt(WlKEy^!>sT-U49sq6o5 z^yz4jY@|;&f;RQ(R+jZ=^eG+v0s3@R2>Ap0^stNy(m#)oYOIm@w9%)wl2orUaBWtf zey4xl)tV9#c^)a+lCpOtXhO>K9T+tu&&O%sko0%Cu2-9>0sn90`7yd33@CCG!er%2M}Y8SF7m z=Ln}ORD?M>3G(~BH;!QbGka;DrRPrdsl@|q?A4~lGB74UvXYUehU z+APWBxTNx%vO5Nyy*b$h{KP%vb|lOw<#wlNk_n zZ)?S#^^;7FODexvzdq=Ef3$uj7zlO!o=fxVS28fD&V%5!plt@_x5)So>}L9C%w=Jm z;iCsFsxtyr@Y5#bhYPotWAymNjxX@qpT`^Rg{=&ByqjG)KNBy{XNC)xj!|}HEhcE& z!}C>ZyfRjUArR+qVZ6~QUYu$t_(=;yzyAxFplhsGx9kNs@;10oYE8rLruq$iTn0Q} zA924tc<)SE!P{W}p29U~PoL2rrmSpo&ocpn&+7vBP1}D9p6T{ig#KvzOD4x9mEUfE zn72RN{usDS`@`8b`rVX&9hztV2FG_4o#w;U6}5 zEanC~)zLKgE)R2iQ%l}>@wL5kAxyLhPlCnCuukuMJN~9_CVY^|={*3+gKej>O0X(v zT5u;7p+i^6x|CZCFwW#yY{<)m{t2BhlUXETnobZ>k}yFMZX2K)q$$e8;mlVD=i{CHsLYH)8+aP)2C3$pIH@I5IpZP8K$f)MLvb-wsVv z&!9;e>qK8XX8Q#^C32jK6t1^o-;z1E03lt-KyqK%C^zRnYNVIj&vr3e-z`{{%GRw> zwsy>R;vU)F)ulb0%C?iWXA^ zbz~54MivbiEIjigK|6pSIHy$4F*mEXVfW-4H%OTtAVx? zvNUKs7bZXy69iOjv$~2zF?7HQDq5bxey%Y#B6fn^li2WGi2a0zUEV!F_YRp5Z&n?M zd5fMMYiV&u625Ew3*`W>=o~mofkQcy3zGj$ew_R;`9UBt0o))`q8Ew|K8M;hx*vf1 z;P?+eXPw@oCZ|kd7P%F#Do)_HIiNn(J(WzlXTyHaeF$Jv7pS(M>49gX2cC`f z`w!qH7+Mi9{%mJFR4-yojl{RWE9!J^lEc%u&f(g= zSwuk?2)Efd*EgSg(+7 zcPTFX1MV_&<><&qD|p2p@=$(A;jqWzRd>#K+!%R~(C`vF9ak$>dlCe#tiSjsl4EVqrTrSnm4F#DijjPK?Fl zeE|#yvF-q!SfT$ad zsXT7-E)bgI#hn`If?o3i;h2V5Y*y{VKx=+M0=A*K_ZQ;q(&PkKr z1psy{Cd@%ze79xOm_?C7p>0L^CQ6twZ>ocH7S4Hi-;TeFJ~j+R3&CER;9t3j zAI^IxJoy(P-5CH$TX%7qQyO22X!O+E0ou-Cd!K{v`(WtHjrW=9h*08vUh~@58QtCP zF}m1_wq}KKB1jwCp%TC+H43lUTR|#!bLSj*D#k^<|I6-% zL>(YZX1w5g=h zLb3K~>4H?m5qMn@2fn(!I@pzUTkJf{r4S(hR!u@j z#d@e++ouY-Fg*34`R28nS8Li}@MXQO2VBE>t=Ks}jyTgrbR#NQX65(kQ(b9lw+#C3 zRu8)j4PhPA6~NUv=Lg-yfP zd~LUXM){D+hE}z`uv3dkIB>atW_iELhSs&cWTbUR??O`B@{=nYGHQFZ)mS(-w|`do zk(CX5)%KD>*d4tSNgc=R=Z@Y1pmS}nj>IgiEx$Z(dr2Js&o2Q#z1*I(7-{ghyNtB1 zKjy7(d03(6H^?`TXCJozCQuyK6&G8+1y9@EgN85YKv)#T8wdo`ntC_ez zj^?W^5q8Vl)RqX7roFKqU~75XmC_LDTCRmI8`_%o7D$BS|4q0QIkXU_+=|wLEN*b< z;X*6Q!4{fn13{g^QPa~%aWHIWww{SJl($v+u#o=a+0xdiR$JA%Q964ICm3y2TBCHT zlulO|Lwq{pWNy+{ecUKfrYLRIykO$!EDl6((&vYr`WU>b{a|dcST+aig6bQ1*=jEQ z&BTw}XbiNyQOPZWGJz;>6Xju|dd%PmOIQCcOi?3qLU@=NSr%m()8V)RP z6aOGF5(|D^8)$StOuP%&BRxV~3){Je0!Ca-cFP!XVa*7gkrHO7WYh6lBUh(F3diBi z_%=@j9jR-L|C-s6hf?cK&Xt#&`pk^P$JEGLl3p)XV<8u>LEJHXJljSL2)d(|NgI0J z(MAlT>K{Lf{fh0vm%l3J(gnw>_u;hzET28|cBVKj_};n9sSscH$t5pn0j zXM@<6a0B>{I0V$N;QI*gpk5fmh~@bR@wv1DII%?GM3FL_85IAL?g4keI+tQl$4QN= zFq(g&%IoPZjX9X1%e*?f2s9>5>Sz~%BnI(K9oVs~sq1hpi*Gir#+cV4@o&rGKN_b2 z-%N`*QeJsjTnBp8&UKj9A~?Lkw)%do_S2;tAf+f%N?TpZ_>OR75NSOuVdKLGqrDoq zFAigU=yKJoiBwL<49{5E!w5YJPo+Jf;~zi;&G4Ks!*g4xKVDFWs7MCX9Z>g%=h!C) z`4SV4#OPGmok*`DKAFC{6&nYvR9kIdg$8+c1Igl)9`QKPH2I*8FmuG6$$m>-ZwId> zcn8nTg=q@zfH(&sgX#*zl-@u0Inv)pI&triMv6V~U?Yts+3YVnlSkX{Zd@0Emd?`cy2S&@cOqD`Y1~`a! z^h$`WAB`GBa6Lt#RUU`T7u$#-&(yK8KGHEKRO!1@0hp=hfD^^}qGL&DZD7h3z zfr}o@Ism-?AL`ybzN+f_`zI1?wCIgfjh#$eYKdAK97&OyNRV^&Mscvx7VvURoiN{)wb55;`nu}VGPcI;@BFT$i7}Miq#-0{NA6n_qn+VNx#27|2(fJ zuUGClXAf)dwf5R;t-baH(DOvs?C56k!J$ycRZ$u%stZHRiP44Kz7puw@nmhXC4qMg>hd8$GL8E@r!_WM}|bBNMxZ9vWOjrsF;&_ ziaDxRF?R^UHUYw?Jo_sK#W2XN4o&kSiL98Fgy#0AN}kGx?cgb~eXc-(D0^+WsOW_j zZ9IssktrgE>xS4+#5zZt`z<$V(CYd!!8vO5xG^Pznl5m&Fn@FNDaxJdYoYZxhp5&C z9+{;|w$DtJuG__5|S^mY@%h?Pe?qAkX$8i zMGm+8T~X#*Lp{A9%AV(I?G!rZUZtgvyM=J=p=Ok5HsWc;)G( zt!*=3h_b#q@6*%si`;%P)37XA-{Za}()G|wyu+ME?HP2iSz?*o62n%Kvw1t;mJuu- zve0q<1SeUJ_F2lzUu~S%Z9pNqS3d%+iv%SbFzIlo5RogD4b~HOxU{FQNi2N4)XClP znJ3^Cg7gRto;h$`HrkjzcwJ#RZlj`Z65B!O)AVswfd`+)YEVy~BX%z^pV|lJ+f63Y z#nu*&D~OgJ{jV4y+O>D>L+ z=HGZ0KM;OyXgpY1rha7A%$=@h^XLt=hWj*_u(_z7o6F5G-C#D&b-zFoLP$1WGP*J(yR=ubS+iitT)Brj z-b4MdlK=G0KFW9^m69@^%pSB(cOV!`6MqSuye1w53#b~NKTPYTgIV{>f;ipsPOS9K@75UW@=(PVr{#ikQJ zM%BErvj4)}kI{y9(qX89226SE(*?=&i*A3ZN-Y<7%k%Y3Or59#C#w%+N8czyjikzM zJ0&d8`@5(xH&EH(xTgF6^XMXCT$8N%mmkBdaC32UQ3S_xxTxxt0Y(>@{fkBy zQTE31G@We->~NLu6cnuuLm6EhM=Tg)8shJj_>%K4O229p>UMvJ<9(ME7)BT02YO+2 zaW9-3Xw~27qHYR4tq;l8JbLVC>$uV$-1yg9dnB%CSEB3#VlsCpq9ga90*rs)OlvSn zno*?AJr^m9`Gfr==+8-39|BljslYqL+LF=;PH`b+(S(iJM?_%TO zsUAgnB2>xLDP{Wbb@|!3t;_*(d_``1uWH<$GF48HpT!j1Z@%nX?f4El|5p^3QVxqd zFT@?7xb@f+xh;q@e{QZ!byO<9-Z0VH5E5@o;-2P5n((#H8jNOFCdSS@t{|HK_SdcX zeFAI#<7#Mf5*RQqm3*2_W zNUD%<52CztZ%Rekg52iO_fs|M!L4As_U177-1EzK1buNa^yWfi=U<{ABVeJR?N!kB zu0aJ&_XSydil_ z@Fs*;5QKmAReiNu0{kEQ6-lUj0OcN*LGX3jwWt0q-93(lKSeCGo*6*tk`g0Z6no z5LHmS#hDW=ujYx8vp>DLriOYAe?I_lZX5EBSRO!WHPg{^GTYY7zu?;kW=p?~8#%hZ zy|kJ3MVtF^hxZ8AES<@K|GnH>IcBq%5X^eyHO<1Z%10TA)(a>k$~4VkRpIqLYYG!Brx0G3J%1Po zjA*OReEm1fThx_&mYnoLd+F6yXJ%Duo;v59+^&LP;$Xe;Q@g8%_%4sxl$-FDO(E4o zjEjjZ;?mrjcMF6~&yVRIXvECSL_#g z$W+yOu3FO?vqVc9ImyPM#yG;5q!q5r&0or6L|a34XnS(fOVMB>U0tTGw2nn)+3l}J z>tDV`G)gb4OV1y0USbtVn3qWJS)Z+i-Iqy`=q!*5wy|xq01Y>0g#M z4o?5F%y1WJOBO?|Xq3%>CN84wxQen_<}I;P8{o^@Vty zT$UwCVNQEiNPpYQ@-4EJq6^CxSnf0;yc{?oBxxl{9S#)V!Rj+}mr$FrHQg6{c}%u+ zzu(q%Z>USZ>`My$6lnE{dh2a&#{lI3tJvT~3pe&EcYXSTxfkpmWryt9re0_qR-azq zcqFsneik~vS$ckb$;v_x&z5dkU-QBF?=>3%N^*!P$qud%24eavk{{*=Yr1~0p+aJ& z2rpQgo=@kzJ{r|@vt&jAToZ@DTsuoJ!m@*JVDJDWKQEp?DNxTHfmZcIiKJhl^Ay@G zh$~Hfr$v*RC5h}wG;zt2-*$hhveHM-Effc)(Gvws6RrCiFZg;jHu~YlSA;-7FG@FE z?+t)Zd5FDB0a~JEZ^kC_W<6d@9u^IHVLuo?EcB7bUQw~Ipk^xrffCYk2%#Z&Jl@kdEh@J@ z{XsGJWvnvwB_Gt+tV?A7LIUcN|Cd$N?HQ{06RNl=S6nb-Adc9#r_jb-dTX$_-TYiw zZl|{qDG#ZtfgKvRDdHJ1i_WCz)u0V4u`_OuCe6#=Hv+;go0D^Lx%5snoJ3-u+(Me% zT31c+GmThjieJC*A6xfjT6cZ!UTRgWmF}gLi@)D~gQ`D+G{ia@UJdCZbFKZ3w_X-f z;)+SD)D+$(yMo5b9if2c(QCO`n_OBi*vMOvg_yWv3!kT&?&OYFo^?`+@qlWOdYK2q>+@p}cVDaasgJFK5 z`{!~|X@RSUhPktWQjGO+7#u{>s2b~m)!mRO9$VcDi|0;Ic=PBTV&od9_Cl;$)e8=( zix9!NofVMr{@#KudMWo*WAx5rK#*Jg9tncc`vlk;q5Cs>jaYjCv$xTk?lBr)Djo^_ zv`+)K@=e7j_#zmIeLJqWjl^zLbg1}~h{@b#%3l~R{j;zhrf5G?^XlVZ=ZMQ5MkZRe z9;~X@4?B!O_-!2M7Nx(iV-2(tlf^={6}H=p^|pzYdn5(5^tLFtBGK}oAP`(p6kLhf z8-go~f`=zsekxLF5mQlcb)uyr1hb)evQ|_jTJDA=8ZxKw@lNCUx=)NP!R*Uv90xTH zr6FjET!tEj@fwq;$;_`37|M82@)svFV@Y>PPqJTFvM!glWE?r$kbXCJxEKtOATUt`sw_a= z$;hV7z{iCQd+5N`Y8*Pbt;rSl%kk?l2Cq2I;Ba!CTaSFpB?H*ueZV#yp{=pQ-H-rs zD}fv?khh8>gj?SnmY9Yr{%5gHE#f9B2QjF|Nirqwtk!}eU6?+-+Mv4qymQSI1;c-RBFi_i$ zT?17TEkEg9{>%qG%7;>R{`QywXZ>>%25gGt2|LybWB@dia^Tqfvp}ES16^x?dSNF; z;Y(PJ{L4MSr^l{!c{*A*6EBcxwUoI0O~SOIFQ&#O748k{SHQGFm>yy1YNbRKC^9o z=HSvOTgU3i^-&e86~~mZ1dp*mr5>shYN?HTCJQ z)Ta;SG~9(1@#6f<0m<|;NxKnousT`mTZkQY(A7OwrkAQOwDB4d6V5c*dziZhD(E6> zb_S-hwLJD7rXwS`rhHK{TfYXgvrQxMZ8`QwcY(Le1r8UNGZyyyw&YmdydlGGyDeGe zW&4g&HH+DIl;w8z^xCM3t7%xN;|3?QXDkB5bB+5DoJ_k|ZVG-Xvt!5 zLC*vbB+JN^PoaNPmv? zr4>Fp7q8~CRN|nw@wvNOo;GJVJCoNHoZ%PV1BeO+C3wl(YFn_E-{L;@rqk^R(r!1! zXZe9HBbv>W-^Q62qKF)q>=sx<6Zq`as^y#)t+<_aej@z}ReQCdpOqA_Bif2ZPxkDx zczmSZ4G&MQXskxZQM!9%sW@louvBJBrQuX%%atI2uz{IbIF$PdwbA+A@7Z|>{m_$p z&UF~?XPi4;=3b`L!%)nfHJ${nbw;$tGoGlX%I>}AWq~obzlc3;m5s=QRc@DO7$&G@ z>9OqIIRuX2Xpr~o5q0~wle&4#@DdP%5nYVdBS?-x&_cl@mdBw+oLR)6eAwDlGrutt zWzJzw0S7f`B@|1tQ#D_Bq*k~=PgxV~lC0_)Tm4B`m7TcaXmAZHv+Eu#NnAFTZw9#Y z+|G<1!cj-7e!@KhNCRT?~1-VjxGSxoBYu`yL_8=zm^0doZW>9^qjN8ul3 zYBW{j(U05Im4E?^2>Knx=%3LC{RzF$Ka?-(>FSqwOrLoc^mkNygMOEhp~H1zO@w;X z9V-c9XX+)>wk1Yv@)2xOVT)<*lm^Hgik0#0ROaU{nK@&ai_*`TY~z%c8g4su4T*y| z5o^BgD=u?~P%!(cxasSjQ@fh zEUKHwqdx64?e(C+cx98G#`$B`{}b63QY33mq(8pG+*ISsYUNqr9%ZJ}YqS*3mZKfU zgfml%Lx<68mbsf?UMRe?Y8zGMBEL94am95i&M(kEe@k1NpB8);KsH}cF(^umU64%F z|4Ut&vU>5hCh5{&2a(*_{2-sG6GpO(T-9g~I6AU^OpVYErS$5vn4()_Q-I}G9aSdL zsw$+a)1MJ+(`NnX98%DeAhy~cDg^K zE_JRn(x=;15O0T?cDgL_3Th4U7`5Do3RS~#duN9DQ%v0=VsvuLm~wZt(gU}_o?ULN z#dC5u-pe8GuWA;y{1-JPr>&4TmHybteo@wKL)I;OWj#Y#srWV4#TMn?MQ-L{!A1F} zIk8Z+dri6&8<3?i^pbA(6yHg0eLKB2e}fN8WhadcLGBKs^DTw_ygEOvyPy)eXf8Wx z3ft9gqcL>K(kwkG{uFh0j*HSamHh{UGQ!79QP`#aeY)Pw+n#P#GJRfeQO!!>zAd?* zvD}PgFh1rb=j9Gamdr~o`!q$5aV0$oB;27;a^CwSSnN6_94#xZ8_pXqPcGXa!)D$Z zq8GU(AsWU`EkE_ZH+D+ww`{9!g6?aMI^;!M-ZMUJh04KsnCW@VVUGrg}MY3w{C%aor6Hn!Ql% zUBsOTb4AXy^c`+Tc!ts?;?E!`kAY(!C+Xv*@Nonmtk;1jO&5&eQ=}MW&n~x@(y~`{ zfi1nrua5UqV~?3)NTxqFuCh(M*^{Q&1ty5JJf?w;p-y+0rwgV}&g-Jt+ugFB7~_{^ zu>Hd1ywyZ5boUn`xfXoc=j;}tD?~6%1jAexBE>A6AO^F1IySvBof9Q%d-KdQ^uJ{G zSK~$eN^5yLTM6yb4*VQAcGc@QH`6f`5X*68p{9U9`<=qy}v!|v*5j+^9wdT zpX1?0mXGr}c79@$^9v-pZ0k1$Xq0{l6er@6)U=@of)2QI={nO|DG9~t{A{gRnqq7&yCL!sHL z*Fo|42ttj2P=lRrHbP7?pQ<68>}0*O2paLaUz+tZDyof>U8zj9J6dRD1~F5*`9}8& zHTG$KRGel+aT@hUmVq^YHkfG-3R!A}SUWsv&VsH4_R!bkS~ z*sxjD$p+0q(odlzlk#2e&(qpIRTM;jdl(9`n}(jhC{c ze?Wknh0<^{2#{&2UBxR>>Abt0W>IthNzJ3s_wv8*l^{(-o<&`7HW@a$b1ehwuk6YB zX3D4o_1sC}t-|;r|2Ll}zkGn_iy?friM1D0iEjvkl*wy3&MXoqQ>chjYK75#-?LN5 zt(83nA2|nJwg|<}Z1$m_x#bEy3Lu6Q2y;xQdz?TuDTL=%=@tG=K9y%d3*3!8@hi;7 z(2Ei?1(L%zdlT^I3jGXA6m;C@qBr&ZH}&=QXp|ktA<-`*n9|P$@6qhlYt19qtY58mM<0?%M7r&aWa+omcGoh)k&< zzwWW{JIw~OyHbKM`>g@#b&_eh+xs8lf-ZN1bQleBjp5PdE(`dy@EprT?d9LHn)~xa z<735jPU+1Qtiw4giPwqOk{X2zy}+qDj29q2Lj>H5lDi%5PW*ss5XtDRy6#ZrW#AMY zSc)BVnH|aKrm)mGbkS?Ax_H${ywQzAlS+taW22cH@4FX`U$`&jLFMUorOdktzsIDr zDPAKfN%EnxdmvsL)iuUYwM_hPYc+$dA)7nJv!A;_*~!*q&klDc&t_&FN^n-}Uc*bG z^{Zkz&Rds6Gem`^*=y<}p~m}A9ff~ia7g?Ci9;Ko7sSC^{t5d2#C2B^(rRB@NPDQ# z1jM84HN#e_OcTnkS*_Z>-ECA51qVvVhg5ov z>jX6Q&}#92>ebL$9^T5_5+5zuQBx2q`R7cybeK?k+ucf<{Ni3gS1RZ}b?WbV0B&bm zpqFkw%OcRiYuqHCMs+xj*W5H;k`(d3(89)+iyG)z@7-q{iK{J@{=%K{fal9$27>dOX0)1=*NWu(2qsV~;UJKbO-Q>S~KzD?92ku)}wWk=bK zC~FfZE}=WqIk@iCwPR>$lvWv}!^;l~3#KC3KX$)fyWK(wL-l`qcDnoZ^oDtt`yO4r zc}C?{jo(rdlaD;FR1fNHf1f%>#f*nzYwI&JhO5fES(Urpk@pH<@cJ|( zT5g-iKEYnWZjprD(`wS~cIC;mhRt@X_^+y1p4-~9Lp~IllSjKZL8XtnKNN|Fy5H|F zafdroCMSpU6X33da_%w(1lZl~A83^P@A!5{Nw-j&6zvJiQ6WO{UAx~a$qN?LZ9yB{ zr36tkal{4oYGaIZc#XI6h#6!dh#6Me^TpgqF>AU#_amM?J{t2c_<`LqsqC~VrV;Uf z(nc~wHUh_}4vW@og?*N4<; zWS|GS?S_Pk>n(1Jvc72!Ot1 zfXv$b+yt);+3Sc^4RhjtYWAi*JKd}H>~_mU#@P!+(!O#We!9?I31{}&bJvgl+^8@@3|r0ZJs+7{sp=7H}`z6;aj-BtME&E@~_Z0-Ob8{T6*SAffE@I zF0N)w>+Un9$OVYK$HVd;CUtqLJo7KgdsuDW!{7pIA6EuB*|a{cJUlDxNfq8wb7VOZ zEp`GeQ|o1C)KV+A$RcNqH~K}{8B^R|5(5aJ%2awU8((y}>bnJD2Ce_T+a5NPU}h7G zJcdom&m~6}AQgFX5Sv?W%{S`OF~i(AsFfZw+yqRQdlfJyEQ7uGr0PKhf2r_vS6zCc zdyvA%wlG<*Gr6M7R0iua$|IPv)?-!Q=gQZp=tzF{_v*R>=F;M`;O$KQlx*2vm%ic! zasN_x(h=~+{f!K{xc*hi++gtsR?|dbNmkr&d`$*j-jCD!6kdp}A2ywr$&C$e3c50X zP_QGjVSEOyUNNG0XQT&Ia6$qoc0vkP?13CJc~c)(fE!OI;&*7DhMTVEK9D+!7p=Jb zt{j}gVd^Y1Y8BCPAEESI_V4N*7$qCs5jHy0uqZMjpmE=Iqb)G@1K%WxPRq2bm#ML( zM``ai*Gf$OVOon2S4O7%oxJ7m)(@A}Ey_P)Wb^5pmgX-n%;zz?Qgqzt9DEL+a+o{k zG*Ra-<-Sk9=n=*?|2*VX;=PC5(zq>1Lk~SZH;77DMCJg_`NLvXz1yI0W#gCOa<|em zqiS4sd~P{kr_SlypQ6mTifGa&Y=|tK%NdZ&x0-)BHEC^f-m1;&j)sl!K}6|iW9jdw zUm5jGc|u*w9e=w~6m2T0vF09WQ+s_2N%&Ee*p*|EzVy+7i656%C$?|n{_VA6659-2 zoorsj@g!diZdz<2KV<(q*%A2r7=^8@1i5Q>O%Q^4YMlogz{J;q4M+NRJ zjW;vZob8Kxkq^B zmm(5_lH^ufGf|2I>*fR_(z6S6MwvY3Iv3*=6w3fge zZcnOtt^}8tLx1-@gZ;7f!#JNsbe5F|x1@#*4aX(CW+b;J-*|^eAp6&Z;zU|g6uRv$ zdj=@KkYJZ(SAe24*8m0C3KPHY9tvQpJ(!&Yrm#2%O~Ek|B(x&FKrJJ0{l^FT09J*y z1S_wUlw?cYOT^@#^i{L4rq%gJ{5)1)O%W3$y&t*+g~V}xLq(ZDp!RXQ>kF;aq9?+6 z9N5z7##LCS%biY9^xKcZeUYIZDkE;0n2Ye?vWN7Tp|X5`M#qVm=+1lz)!_D4-J2Iy z_U)g=>sf|pjxEa`Sdt!BmKisc{lp{MYMyG`E6VJbnsgd|2{_|jH#9&6?}IXDbe7g< zI9z>*TY+vFTl4Ni>R8mXxp1yzX3Xxo`X${}pPg7zpPsZkXCJxtzxk>im?`Z95cLDZ zRnmTBG#K7s!84s1H@ugBIwSE`biQ(5e>Dv(e>KW%Ab&NRBcAN%Jn3@$)fKV7T50S& zX|_#CQnb^3-8M*w|J`5BdAt5R>5#S4Z2@9Bcl9!N_HCQ^t8L;tGp!;THLcPlPFdsE zwG5z?kIikdOqxh$UPF6JIsk)vX2_DS!k7B3P$?#3%7K~A9*8z;< z^vgLiYy7$>8?gchFDi?J{8kZ;%9!`oV0wnHKvacvXm{U6-H``@L-1HM$inj2j4V>pE#b%>NXDk5MPk|P-fRZ=AaSuMz%V!2zDO%~{I&Cg(P_3y$*ondHP$ebR~|jH zGFTwBj)gy~RC|gp-%OQ-=$1jT&i->yicv^c0zCW zG#y6zTkc3w(+YHE4#ifl9pWmfK|{&MW`Iq?>N>qV_Z2E?{g&y2y2oYfg=+hIs-7TP ze>C!j#3kD4CHxqlR6UcN_iicY6;b>riPjy7;W`-;pwF=ZC$}2`2G_5D@Us*e6JwWJ z7ly@xiOFyPCg#$1H^*caYdyS0S?*>^6lQ1O7~kloDpKpEy4+;zlcSJ-%sl5!xY@_{ z?ktd&n!@x!EL2D%%}_VPWi$)ig26alJ_wCp9^RZlSUn7`I^A>DMzYMe-=-bKCeJ+Oxft_|EyQm@1XLOes4X=kJX1SP$A#8#9i*GTP=mA zG!rD!l;**Vhg9elCO6Fg@xEJ2It9LmI%yxHH4p&CUm)$W$pj|GT`W&2&IGl)2LO5e z!g#TC(afJrEp@mbimkj(yn-OXyu_Xx-ApBs{&7vbX=>9{=VW~_gw~ML9dBv7%pZ_v zkzBY?IllfbI|EeUn_sqXDf0bf=maSeG-ZTDS77Gci)eGmTwf(eI z*DZSObe%G5;?)a3AwHNI&l4}Aw}<#jef-eJi*$E~_`e24dXv%t?>c)zZ-q0xRp|HT zcE^zY$TfzfXN06DD=D_e=OPgp;ay*l*T73fjw6y?^E5o)jT{Q@OD0G&X-tKU1 zJd>Fpx$BJr48vuFnarzojc~f+&Nn{RonHvrN|IPSgzIwm+zdF%Ew@6Ki3MWHdH{o6Exyam2Wx5z$=r@1C}GbIr}ha^ zpVNIclM5Zq3$t3?*}Fd9RMZlxqcOva`jG!H|E5~v9)8r~kNf2AXlntSi`>6X5JMAN z$Y+HxA5KtCTOOo;(L6=^7Ncrhd6E3rcp3rqnVW=eV=>gG_64)CX36^j^^qf9N9Bz) zs+PG6|Da6RTSLD7g)V$4N8lg#q|F_Yf;Avt(Bs$2$R`fP$M4W#YZE_ShW~HAVEhZc zw1BmMOd~#N$9!AsbAIk$1lUg%cA2^Fu97Tc(M@5l)<*tC>s>V7_pLR>|6o@oB1Znwl*sLP3;qpTn2CbP$q78fTlVIxg=E(5{%u2IW*2J5yFy-%vF zc!tKG+x9DiXe@lkO}-|#C^xBpZ&2>E36X%rr3S!H=@{UR?$4o0XNJ_8>a==r%2wH>oSc2*_XcvWuw#p)2m-8ZaZq>*${ zANR9Md4Q|tNDA%mzDJb=+0PFlvlokE!`)$_`yP7(@w7(AjXX`hUkhB-?F2*xOqcR= zRxmp9;>0Di|7Ctk>PB*iYNsf@sgdKYM)-q6NSRAoNT;h)h@V$cN8zT1utYQT&2K55 zG9MPTq*=sckNsYNd9!9VuYFCSmeR-MU@p_WW2$+h`=^4eBFim=^R%(Yoaryu`N z(0B?0Y#tS~D1Vm~xyb#VMETnl^5-C+(gKjq%k5_B?p&p~T2ke5Q0M7RQ%E{Q|Adcl zyox11m~WBjK!yJlp`x6$7~QWPx5;5X#5TI18w9RGDYZi-KrGX@W^RbgjnESW%arnc znkQG)lkyFH?-WvQ`UI;S6Hw-@zlf~>r;I^BnADnfruVJdXCb(>g~kk5+^kaDYhA5p5^;5`L>M^(%o zSx!0u*MO^0N@N-q5$G z!wAa1P1axubh^i(Y5Xv~?vZ1TKKkhH_XuCNbJhH8 z=@B*UP2YQ1ftHW(jXQVes@A8MreE&P6(?(ao7|^yGJMFrY`yYdMgH9$R&a5C;))>@ zk~Vg*xjk`B+kzw0pXE1ayp5KD5^vBdEp3f!rRRcug1@+D#S!|$b`hM2lW=pH302H3 ztlx}N0cP&Ugk|QK^5hfHSAPfi{87ydjfZfw4yOkW*5Da+R+>yt7*>Y=s`-o3rjF#K zs4O{Yd@0mVPO5I0RLgm_*wQpO!o9HSh=uMR9%k0VrNC*ZVzuOk&9t-a>x`!MO>$D< z#qX$q_IX-?Td;?@O+bq+PliX5tQpi0DgDYJ+3n|QU2s(Oflgz!%^>~=Vg@rBn0+&q z-P_!rHa2FnKzgnFP*Rpm8Y9c7KP;Q7E>-%fHzKN{QSEMIlgkJ;tCGon zuVq(2hFu@{SMgmOlKuJ!8O%EtQo7U87P{8jC(CZnE;%KKVo5FH$SuSTn__$KC0ajn zaCYd&DlWGJA9jlre7jmK}VVB$1~{o@wNs^OEW6f52hn<*xb0~ z_K8-j4ggziOg{!o!kVwkrF>ota)0@&)udK=zfE4`LY(&&Y092)r-Vs4d1dFYw^7?o zB%k0LNS}xBZ4R6RdpEeYLS*!pa|!;`!ehNo;ymw(3Op_#agRIIC!mQ}*51An)HNutP#tfJ_-8*xctMHjeeB!nqFw;?F zf~&TA<`VUjH+aRmh2p$0B3ql7FpoEc0Bq*`U4Y==IN$ zObs#|9P#9cUX zh%6mB(&6^8YO_+?`RS5;T?tR7i{~}?`l^Kbx`sRBzoCp7Zi?5!ptjtvQO2GxwDs~;&5)iB zqlJM*wYZUnTLSsDix@GF`vdiM3G@(dazo!iWd6;3M?C*@EE;B+=MI~o51kci`DM&_ z2X^?MW_54QAsE3dUioHPmUuI@jF%;nqz$2Wl-3-bxYXXpyQ|e~l9X>q4Xz})R$X@E z&Xg`jWRm5_L&gG`3}HpyO@;s-Cv$Ng&X+V?8+mOVW*87}Ay!3)Ym7{FhJ1RF6eI0| zF4rh@r^^+el9RTP^9!`XDOSx=-jQ?2N2!tFZiBU3m;1z?8{PZ%?DqU1n@i+;mHuzM zTlbj6g$lu&W%KD$c+_N82(Hk_obbUE5(%lGX7VWwvxX5%IaL<5Y|yK(g(k!XuToycdxwL9mBN=ZU3B$cX7RrLAzoLr8@_D~(j{9g|FGe^Kb=*`iRl+jyC> zLV`fy4n(N(z@r=7TF53<{+_x$iQlpY)KLVlgtrR!TzD&Y3+>G)#QqoKLDqlb0b#ut zQPv(^?hgi&`(Krses(!e9lI5=#xd_OHqCsOB4zwI`+&@Q*Zh%Y$*w!vnH zyUcS0N!^=1Nael&kZr23Ot;^+;An2lN~^anruJC=!}X&%y%t@ z``>v|5E&rr0=Kn3kqHa(cx!!qp6D}vXFUOHtHY8V@4sUr1;+Oa3DVs(jIsTl!=@1G zX3%W#n1a$B+C;ix#Ov-sn#?aHzRUy|+$VD%0*3uVT3q%^xW+f@X~l^Ow$;*T*}A%_ zh4tx^Z>V+kg~UH3asA**1&#Fnz5uP zcO8T?^f9x4L7b5@21tC_uv)P5W985dl;b0hTUv{%T5vE{syQP8vSpE8aQ2J=z6n^!%w;fwgY0?<+Auw_mC!>nBkz;<;b&R4u-( zZy2Z29T(mz+}7c3xT_Cu7 zlmCZaB^~lh?E9I4_&@!eP2c&EEnfD}3s6Ynd+QBugK?#5d8-XW`sMR9Ld)~{%;H4- z^ZA5A;v+~rFrRPFhGOH3Vm`m(3P`XCpI5kU!ec&veMZPQFrQbtgA7nFKCcXXUhe)T zXo1hOF|>jCe7IXDEzq0Khl^$tJ)rTifzZR}`vO*c9>&T4V*q;i{Ci|9@HuCxNci;T zbDhE%`21ichA-x`iduYr@FkuHFXE|M{7~QU*Kju_yp_9M!ds=A5Z)@>wt54O<)_I1 z#OHreL&N7k!tmGLd>xSJj z8^?CIpDVO^;dJh?>?K2Nb}waFy4*WZxQDW{=_nO z8uiigifh^^r|V+|SkCfwNE#sKb15%t^xMlibISmmVo8IWou#h*xaW1 z7MIr7;7@KUYuqo&G~q59OX6J@aB>9K=CFk9qr`DAx)oK<<%wxr^Ih&!@FzDpo1U5j zLTJF?HwC2&Ab`!u4{_TV3w5{}nt?$}i&%$+k=bcv;E2+h)o!LJ!YbTLP#s~hVPcy@ zM&b+JBTiq37j4>bZ-+FmMhJC^@u1AlXuw&Y0N&=cEu!x+f}hGxi-OnPT<(l-z{#fl z-*&H>VzpV64FE8A6b@#y_MtC4p3GjrgzGAI_eGxOe?|HV(VOha`UgFmi`G4add&>! zb_6U6o90pv{<#lT4?dAs+ZB_4KOV1&{!^0a&#j)ws|m&oYOX7@Dix!w(>-V%ufu)Q zKvDG$w;fm{5wG;(H{4fdDJk}~1Oe$k(X*#TjA(CJT$ei!;$cXTT+;fP5W3Kw_)mG?OhM$I_db2edN(^hN36+IYkk^tK=7xY-XNiuVL|^pXs2+#h8zLolgl>LHNRhy z8DHAEoI`cU5LSh;-puELf<60k>YCSZ@LAXvn%U?3uiNfVjY$x&?eamCyGn66BNdI3 z+1s}TX<|o*DuR*BUx0U(6wvI2Vt^u3L;cpb=5rE#a$?0tTUb*@%hqJd zbd2>DxGsFcKa&uzpheU6w6YqTmTvh9X$mcUp@-Kq4i2obI#bIDXo;2_XDAgCA8s&* zixYAm65&}|-D+IWtOpq56tKD3Q~>-Bk`R;#R-e@uk*wCBgof9T4}e)R+`Px_-ax9fr7n~nWoY7xLP(jrO)P+ zL@{h`KWY)n@1FTxB)E4mMkWX*_yuUkqeHmDk^QZz4Q{sa4cSvB$444qig?GLEs8{@ z`6WR3IIjljWOnRCBwH%2dDlhC%%_I?w!=zYM%P?>KGph`3irhf6%w3wcnYi04p_U@ z)S6Z&A97!+dn`;wK4Y+x`95Vf-*k$bEgh3KKRUI2|^n1%*}jc&dvQ~KjZ*GW6;xpBIl-R_dmst1TeB(Dh54AbibY0=LcYRXD)7j#ik?}!A-)D0 zy+1-0Dk05%lCOtY^qq6#s{GD`rK&Q=-l)nYylCjsuBp1knyOore+*h{s&0|S<%={` zwgkyGL|DzO}u}fwuO>Y+Vj@I;D?xc|CX1K=$8uo=GR(4Ev%tX}7 zx_Ui+?P@W1_OT$0VM=qOKVpV(w~b%Lf?EpVpjo^bz*;czqyFG|wRtVg;_7HZgVCA7 z_h0LNDOpO!LEtP#jqoX1A6e|#WE;bz#h+N9vf_z9?RyHX}-S^ZGHr(CtD<4+vjtF6uE(&iI z?)^qps?+@{q^fnhTigt->>N|;o|CEtBAmIweQ0dG(QTn5U{n&ol)G-P2F27xYLIb{ zV85nFy3jemGFDsQ+Kr{yPpc^5@Swd2hY8fkWTDLb?Hj?BiaNJKvwGq?kp*oxaZNsYHdwuoPN05+H`ijyv9TTozFxHJ$tdiQ~o)j zT=-Jujt}K}Ir5~jkSW4W_qp^4eR>v2touDLPkgz%)w=OD!)_*AeXyKkfHh+Z&McvF zt?2bs!8BG+em+IMGWVE(W9@zr@*yKIRg-DX)HzBAc+lZrZb-l6u8}AZ<{e5f(w!U> zcP#vBty(3U6iZ1$&dcQu$(J*G7=)yDnf*;r*rqkevn_W_+A0n)8HC< zaV0@v^{Vy9a(!<>KP(!L`|~Z$%Alh)ua0DlYE408fLkao?8q&F~gwo3AIcLWi>ovGM3A^QZ-6nr~AHI@o%(l~ct6x^P-Vk!}(A60aGzAa+ikCC2IpKo2$SSF?$4K0NB zBGsmOVN}FUeq91f8*yr0%i`YoRu)HCuag9*TE<>7)+|1mXkA0ZA=&+J4h80~kp%2@ z*+k+Jss2N=`~R7wbo-5N2g=1F%q?d$W$R56$L}Ra-UMx9Cq?;h7k2_aFPu=jZCSGZv|@+tpBRT zQS++LqY_ebn0Eo$7Ok4(8mO!gaXVXn%Xn}P0djK;DeoWUux*ux7;_&=e@wXdwwkT`@%JHx2IHo4$ZV|9^VZwHo(@-ZYmyh2F&d8jo5)rn!yqLT?%z zS#KI_OxCU(ndXNqW9Uu9yf`gsz3Ecln-o1q=8^A57m0=Ae)O>+&U~!uF>pUxK|gxR zO6k>)v?nvss+G8K?@IVpMfK@NtS6%1OXSm!-X-4p(X*7Re)LMOe)PTKe&jRi7Rp1j zdxwnO?iw=2{b(t`Vlr7j`W}&?A9-Rv+NLDFUe=Ea{{OHu*7v7`L`%kMPk-`cmxPP^ z)4JmRWJtGs+4m>OvqA288)RBW`cq7Z9AiD0ztEoshyL_O8_%deg-VKQx#Roxr}GS` zPs7#Ot>09C(ob=J`oeP6Q-}QNqNw$!xynf|iD*>!g2IdX(_qwfp+8+5Qhrm-?=w#g zL0=|llm3*-o;|TgM@{#0Z_M9Z5XW9Ls0+Adb({^b+pmE`mfcM!nk zUs_G8B2qA<+}mfFba5G;=6ZJ@V)E3su*UBmvBRV>$Fb;e4YI2iRyWa^EnTYfZ8Ej& zcjm5wb)~jNxe?Oz*ssyNH%p_Er=rYeQRcj|sHEez5;R9<$0$?3*~X1a1(ucg(IoDb z{!f5w=AFZ3mY}lxp?K&H2H9@*06N6!;a|-+hSbOCWw8 z+o4Sh8yEQo_3;J{zLFm%v}okWB9mP zIYpZ56q*TE*{}8CNNn?I+V40qV!z{5(@UG|cRVu6{E8vdXKoC9YKvQYkCzmWm*F#a ziwe^|l1<|w+GlP7B-9F^sRuG;nvP)Wdn!FR#a$%2V?r`fuxh%l z^>Knv$a|cy%sm+r&I<`^m2hvL5K-n6qDuZ4()~818?SUjNr&E=Y&Hq!AB8kcAr1Li ze}Ga?Wlx`CY1sc5(j2ZdndVva%~a+V)5w`SmRf%|bx54V4`*T~YgR{TKiCUqRoaZz zM9bGmV0KKBGpNjVJDtLqKC9r~mZtZj>>VowFmvArJW}afJb2D$hW8nGIz_fOD^h>F zmSHQ{tG3NHuTx;USxyr76LaGjAR#qL5PW?@?YYn*(eit8NMhR+GFGA2;It$&-$Xa% zqRgX)sKvC22ZMQT0eAZVVeOImgAbTh2*?s3mAiut)7cLoZjeeUwHN8&^-?_M&-g%Z z=+&Y@Ej7AQ~_kO*hI8)Y0G1lIpHCbINYlyfz&1(~e7)+_C z-dnm=>OC2K76x*S37`4tqNo_J5H&ZBGJQ*Kw};h7aBzx77)+r-b3f-j%x-K+8tw?o zzatjQzmZ=T!q=KXxH8X;Si=?IZVAbcJ$bS@yx+Fxt4M_SR+YC9&Fnb7V^^df)hn?PKE6m{aCI<$#3danqSk$GzhBi@*{;Gl7SZ$9&q!YP>Gj zg>cdLm#luBI1SwXbdM-(g3+a5$dyE^{0@a9`v^HCJ9PKPO0zPt4Ka~GSKBb%9+FlX zW@-;6z3NgiX68|~W2$N%(-GS25~V)~gG=oMJ&}c5%h_4e_-*T_+_T)yCCoS#OPJ0- zu5@8EX@084;e9MQ=WQ-X)c%r63wqNAP;luJ^|8SG?utx? z$Tx)_wk#m`4MEQl)Z6|moIjb$o;^IAL8-&>xQPXem1U2*^$7brMems+HehZoj1el` zNj?Cs$Hi@4?BVVZABF(8fNJ+cA21~ZjC55N5X;J0LYqHirCMKqyoz%A<5kj2e;S0e zo6y!5uea&RpDNmJgIs;_`jDRd@!DoD_9{84KSCw7^~dWg{%ugZ)h7h@E5D0{cl(&g zCml0h&-O9L`N#ASTC1mPo1oUR8R`dkwaI#agiS5E#jWy zwcNlWgU3q<9_M?5Mwg8{*;K@a5gR$(uoQ=v`=|P&QZ}TgF|IUJ{n||bYI@;17?E{_ z@T^-sk=wx+T`)0~c~n$Mje1lRk<-X9(~IGzmx-!I;|}zyM5_+E$A#OL|5M=S3=+wP ze#~^Qa*L$yRgHYs$3Ia`UU!xiyqB@UA~)xF=#xEJ+mCb!AEKtyolkuvhZt1b79Q4@ zk>`n#%3W=_x3m4aOfqR&#SKOIr_xiAh+S^H;XcY;4}-O|HSHF)kEu|VwS;omNfy>X zSfz#a(PNZWq4I~Sv^k`3^M5K7I4hM&B3OBmJKRjT(=FM%=*|3JJyO5*2}7!kStF-c zZlWkzBy^v6Fc=Rgyp<~EbSkS}d!NK@vGQIkO7y6^A?{5dFiSA38JAiB(JylG+d)xki34hTNCj<%vbwM^my zXr5bu6eK*KXZ)ADkB{8n`SE;}JB@rr{-E5|L>cFS9%M?iTtk@ ze4J?cI%%6PtlTVd#kRb$IC>Q44@B(;iTyGC4jLY1t~SUNMW*fZ)uI3NhPzpBxQ$x^ zb8zBv-TtfjNLG3n_s}WJ2P=#h&+5EX5-`Y(5g#(ykY3z42}x1+IMo@HXxW{I^(HeR z+`ptdn%AwA;h`SP(R@f4CJO;$2AAHbGoO0H6GX?$)x$~OIYv3nzAaH`X2?BU{L~B6 zf^IEZuiUrxn^CKNYTv4^ZnaOe{Eu2R#-Q=XMYZ4g|G4(29Nnw-xg%9Z&5Fi9v2QeU zU?n#zl-DJ0Si~H7&5DHXy4lz}!md@9CXL5$e%0pe)fF^{>lAc$bvm$%vP}2dbM)LF z>GPUlZQ#t(4#ny(;{Aj8J^h$P+oGLz#gwUil}ef-O5ZSS9ZB^ZM1&Ib=rzA|M2X!F z(l??XwXfTWgfacN$evFxPgg1tjZb%EwMr&lFfxXg_h31Cm$r`=l%e?HgR;8BgIukx z#fm!F(S7YG0rB-Li89O_t9}`O|55uG&-bdynBj?*i(t|yGeL+fjj~%kI-1Yy)Ux~z zbOP^>)+~LdR!5Lx;MYWzQ|VuJc{lw_rTd-GiyOC$Y7VVTTs(FM0c4mGWrv(;(88q@ zqOT~ypV8O9Lb$M%_TN8=2_)=KE27T{fb{ffLqGMR&q_h#IAYO6&|~`e4&6U}K0Bg+ z`s_7VHS0~E*7WuS8k*TDXm5|#qx%yG+t}2)I6^&HrSq;;I`$4;HmdykfOvI$CC1As zO>w&$cLu=gJKP1i30_-oM_^yP$^u@MDg|7I$GGsW^&2r>ig)!t z9;m%m7TT-4FJ1;Y;3eoWUV=UlUWXjse|!C2R~+?iuWPp@urFSRk0Oxvs#PiA67e)# zcpo3X(_V^qXB;;WUVjI+=fjc0y|}#$a==T_W4r`?AiSoI?;o!*{o%Et96){Xy7-3# zg4aZq0xpwz#&}JM-@!}q?wVrPn#kimW+v{0)+~YN#ute2wt;P3V2=0GsbI9{0?4< zcb`jL2D}zG{-Vh4J-EEOW_nmRl&0C2RnsKnLAMtDQqe(AhhR)F@r%{yK{Ao$z@_T@k)BuRW@Pt9- zrXBJ>h}R4DjPJJ|b#Uc{U9sC>ZK`HN;})YB%w%s>Ei*^4kA&*43wc^cPDva$!%DTTx8R>m{EF3qUA6KhQ8x%G#g^wN{#NY0|Y8PzEbZ3$2+4tHn#cq z>coQ_W?}m!I1PiPb3k*W57K0lA9FCeBgh75a$_8WADA@_p5RgXnqf_F3&$L-j#6^e%SVWUl--WG{&1~1g-#%g3@W$_YAEMv-G7>U`t*!67 zcE52Zc}eVv=AIv`lwIyRl>nS6I>!<)-1jK0D{mC%3(A@# z=o}@=_|6ghe@aBiEb)bT1pi?n_lGgK2=jH>Y_k{2Em1UW*W+*Q8L{gKoa~VEmjKIZ zfsn`y9oe*PzFK~cV!u}e1OKYX?=^}_GawfaH?L$Po_Ls^rqL@Lto|sj6?^DU?@PnG zJ5yS?bvYairzmTIixGc;i)+jRiMiOo1uhoIn2QCH_rS%>DM3fJ{sca58bdifUJCd) zw-?2oI%h;%?wq*F?j&kc%#R69F3p`zbVE&dqUAQe>M{pa)_9?jxIs{^CNL!eBw7xY zi~QQKMV{DKcnqCvf;<~L zEc!m-@{sau=>w0X_bcM9bFe;=)VymKpMsn~MvlhvTC0 zuA2F{YO3NYK-Sm;iZ>DDqMCy%r@kj~#v%N@iunE7xQHwDmKidxZxKDNpwYYckK%wH zARJjA#o)KpTV_bxANpX>1ODUP{%i2r0{CVR{>_2G-~Hc%-~8Wk?LYV6?;RNYl>Z+5 z%mVl(y=8`cZD8=j{(JE23gF-O;Ex&@{HwbL+N(zf=U$@aEcH4$_+XvdO<3pBu9!L( z>Mb**{>A~@wzOaPzxYp;!AE^Gdt7G{4>Mb*5=nVtb ze^3m+Pw)N@tp9KU{M{b>7pxQMksMObk{sq_oj<(4>aQ_}cX9QH{Bd9yBm0G+ts(<7 zAq#G6*9h^kCJt+{k?ImxEz0d?fdx54vMb-~NwyN1Z^_QLz~W^0S|uJTNklRWlVxkbA1atflHjxhfMaj}wy0Os~-7ealsRG-OWWR2?sq>ErCh0oe_X!s4 zA>3QV;nSJ331z=s2xXOdS8l4L2xu}cnGC3Q_i3HavsKvc<@_E|lCb>CCwZwj36*o< zbVnK5A<2EkNr3C@I9Sh?A<3NLBuGn_yESkwB=-fK8Io+Nx(v^qsrbUQrmZXQF{O=O z{|~ii37(?3JzH!0v}dCQY|@@55WH!7jtimvw`Wy|{SWQAd2y2d+w<)MinyZx_G~Lo z(tms27?S+=?b&nV9b9-AgWJQ(?vf?4hsj^s#LJAiu2wU~1Bm*15a zF27S{8aejj8C$mhew_GN60>}bbvK2(?}kx}K6l@3MP=vccGk!7#19J9_V?cXgDCwm z1>7Cqd&lXh&uTf8(0g}?P_*S8RV2$L_zCj#7_Q3Gq7EHX$AXT}8XIs`&=7lYV`Y>% zgl1Whs#+6OeadRZQln?hv(tV_3~je0URlMGyj@`PMC)CmGxyLI%}?9mbh=5$c2eLQ zDoth^hYX7M`?UT}S*q5C#!j>@&^MR$MI|)IjI#XWUS9ycrAtxqLO^g`l(?jmAnqme z%elJU=+VaYv_+!zk4hb@nHTrBEoFPB(%%6pSj{N2)jKMQrBu3dWtlV)TrhZ)#U3ac zv0rngkDu@EQM~ZZj7o|>qV#i7)dsd{evllDAFc<5meFL@84$3on-QSGNik%HRP33* z*S=s+Mq_#&m7xt`A%+c-i;3K>3xci>*BuN_^fSdS+0|?EypO^QD=kX z-op|tCAc!wHZ31wA#f_6<50a1qV};+hwt{WW#K8Nq9MAYz$vZEP@J|Zl^vgJMm(7; zdDbqHZlHl1Sblb9dE?d~sYP_xNk66MrAj_jR5F+{67k>Q^`bQ~)_c_FiLJKS zqB6Ilj+BWXk`kj(qHcH6?qundYAckpncTO1p$(an0a@~D^w1r*`#(!7Uz1C6D_?52 zVZ(IqV=8g?O7!>4n%vVATHsGmlYFN4u3^EXE{SB>ty_#5OAX$Q{H)bE9V6m8@X;V7jml@NCNTXD@vRh!>%@Mm{!=YuE$ZsEh)xK*emnh$tuAB z9r=MtKpddE?ImVPm2e|V+#MRXFeciU)YQ(w*0_->y>si$ z8a|tQ@2Q?s+;mt2D5mJ8rK-ke{pEU-u_Gxh@-)L)@p+8{x=sx-G=Lqv#md@&I4 z{U;n2*A83fVFBSN|8zTY)2>yPl`>T-EAEX4k%UFgKS-tNYloEEj%6>8Xb(2$=2sN@ zM^SgDzAuZJ(_ff;pr}KwzI&xa>_T-@3|;2EU7CBG>dIebBU{wLBLxPj;`lArNhj`p zPaUK6e6tXDALcjo6-8$EPl}n!qj{Z!-CH9;!1y=Ked+aQvR!cRdAe2LY?z`f+HE`4 zye-+TJ30p?+YhpS#nbmIugVgw7sKGGl0^;a%^T7Op<>R$0NYDag%g3RJ`DP*afc}V zv{VFWh}HL_VbKrCl24jy>uf&%{EjK@L$&nz=N!2l@U9+DRnoB8VHuZgOq)(I@>D+iakvsMWf@!lI3%qP;RVj>d?vkn-{7U8rj-eXHLaJr%PU75$dkAK``>mBGMN#t#i&7DrItA8n z-de?qK^ZLO-1r}|n*UMDwZMIca#f?_$<0NfKK&beD?KC}guh*+bk7jtb|j-p`aviO zczsK{)pEuqt&*G}!v+;*@S5i4e=9rFjSA)8GK!IW4%}T;2)U9F)#%BPsevioQKxSD&0I8->PrL=!jkHml; zbynrnD8-%C$r`pTe}IB!J}b?A%z`~?GP-nr;^G%c46`<$S1~9`j9tJ#rbE#U(y{#g z)sLdgu?+9mCR)C09K!wZBYNO8YyGa^u$dSb^P@z4Z#V+VY}AP5v7sK{lifUX_@KsZ zqRdH^+S^?-rZRES_0%beP-8XY>xq{AR9t4y{8zpGhqir!5Ey~E%ME&whw2cj_Te-x zx)@V|)_9x!D3}A~==r9K{4r{uq-Hik#wWG>{~660k?Z4g-cg*gy~{jhZ41MSx0;57 zOU=ho;-IC;#6b(KJ-uEcJpGyti8+{#^bIwu8n@SoeYd?dAfX0RDz)bN3CNAknQJCq zz1#-Ob!g?)3}?!B;iJ$Q(m$R-Chnn2Hfk<~x0PEgZA`60n-sztdBr z#W^OoY)1<9WqV{3)sJePqrM$cVjQdPU&|pCs82pA2C@N7BPzDTwd_fwnbn$!p!lBo z#SQ8A4G$LbCt41I&$O!k1d>sz$7XT98Hix>7D6D*%l8?FIum zFyH0RLkZCO56m~{!h;HYH!Sd73B5Hy$bRF0VY`Ap{LlQC5dUR16Zc&vCr=Oejidmm zw1cd?9=_Y$sr;lijV07Ir7iZmVT>8^LGUPqp2({k|Mxs@tQU{q=$U z_1yo!chdY$$$l<<-!i}CtF~4vw)6Xu)$*nN`CsKC^BV^98!pTbKBgh_e*A+-?h^IzD6ITDxy}^<|m$!;&;~3m&P_~lz*>(Tj1Xo__qcAZGr#mS|B+& zE2l6y*_oeSSd^cWp61NS&FPFNXL#YnymV)1RM+U}f`}-mGbuCOnKCvjJF9S_voKfk zJ5zF;SvduTDLJX>&fE-VinE|FKP$D+Sx_`KH9MuCfFem+R)I4uJug2!HKi~;EfU$% zoa0j_I>)9%(D>Y9l$(`<+!;mCBHdY>o?noan?sosCl+Sr=0vgN8YeJ+Bb;k3?q_A}6VupORIO-piTpPIFq#JHDu( zkXjK9U#rD0kz!Rev>-gfIS%5+7iAY_<)J>Jg$kS*x%tk!(tg- zZJqaK!G?+oo$2}cs4NUEapG{nmfRP;V^sjAnVOc>r64~wId5W@R9Ib?vH4kP2t6N++?3ySh2j}UB?A7zyvMde4;Dgt(tJ3bE;F3cKVGdx1Y@RH`)0nLP=+QFHYi}s`v z#-|jfW;*kWa_VHNRbHd@&6_yEs_)G?DPz&jV$4|8xG&wAmz8?Auxc`%P+aw>^TPPWwe2l)!p3*nFo(Q(3cNC|(x-2C*kqSQLM87qcW z<>p5f=E6Ln9NH&Y`jccUDOn^Xr{xx*z5YJG+Y|j=`5ACMqriLrVR8C;76*r@%j1RsHArtSU;oYq)=;WxM;w zZF|%<|0EyT_}|qJLpQ%L8C{ra^}s*RmrU+Hd0Y|ZU$^CBsAgK?{tG=CkOx`+lU{#6 zKclu2YlOn|aadSj^2krWrzi_fishtWE})s(J*A|jXJlasClat=5{s04_&v56$3XZobXY-db`ez}8Rd^dW3my|QAsi;Wqe+>&A7R4 zvL>xBMgo7*?eDwF~WIg&CabIJ8?qHFqK+SnYKQO)r)k%4an+s)2av)@si{ zMAvvp3e{>TOG2#(ON^LJh_z-qO3hAB$tlW%@zkBHlVPt7P5*NA*9WCzmFt&?Dpv*Y z4`49x#$+JwU+=7Py^DJu?i}3xa655-b4QiyE!`% zYVU-8x~E7io@C=CV@gVKw`6i*CW^_-%}%S1DaaZ(zE(Q=iCMmRe98ox&uGt8<7|@Y zIHQ5+{M@VtVsmoy$79EKU%KTiGgGpQ(+fl!q64w4prVtlUJ_o3B5`aWqsFEerpT^z z(v<5Q*kyRFY0c_nD+PKMq}NK5HGof+SN)1uJxTLePSJQw8_o{(+pvQZ`Cv2XblUG) zB^JQ|XahkibDycceSb4vi~b98!z2E=^7Os=@gkSvA=4$)kEkX zNsW%`5$U`tDmsb=4e3ea@5&OY>kY-C@Dm!=70@|8=|b=yTO?kO2aNRYef1p*PuV9g zFMDF5)rozp_k0-{g?(|tmoEN4=GBW$cE>*S9&)K*I6&0ELg&@t|=Kkt55l? zmjaO#XC)uG-oi82cd-chd1Omx>vE?j3kq}d$e|FewA8LSg4eCS z0=>_ya$N)+-v;XsJ7a0U-oX2TnZP^SR=HLJcL4VQ9Zsx+fHwiX@JdQ9kX}t09gH;< z@JHY@V0L?~xlG6nt8$G7&I1+#cL1jWmv^Xg?E}6FJOykKUgZkFz&!*!1nh{{14?|5 zA2=Vs3{pyOus9go-UDkkf5vpYigKnEekKsFuWWZRw*I;**Ro*7D&wkLMtjC$@K$I* zDAMtY@a}M=52$j*;tTA@2SHEhuj30OrNH^X&Cqu~zWiB;a`l@~jwfSDcx3wku=18F z*CycnTdQ1^KnH%SDF)wQpFbM>z-4!0jRj0fhTcGZ4Azm}&^HDD8V`&ai}fY&IB-62 zek#fX#^dMsjsq)!Ua04?bjStH&#ZEd!Y@#yWutyT{T|4{8$a_Ota2>^mSVkl8d!)m zU>w@z_!h{e{8+E;1Ey`m8Ws5*JE~l(f$Mhy!B+`91dREl$`##=v5+rNf8hF)Rjz|T z#}8O1Hb*)z0hk0#0~P{Hfb)Tif$M>rfct>^fR(^AK*x`$2l^)l7!FJWjs_M2^MK2M z<-qM{P;a1q4*k&r@-ATQO^AObI0V#nmn#y#AeDrFN_hb2u(@2Dfib{?6c4NfF0IGlYn0MWwSJ(6ByzJdB93w2~fw|=JSCL;7UpdZU)8x_WZG(Jxaqt0PC9oX0eyGc}6}WGh%Vo4hc_Un| z(S*04J%LHLx?Bw7Yv1iIR}!!im`CI7PP9MdZU>G69tUOv^_fk{ALj7vuf z+8Y>;H@P+g>5Z;Ez-7SWz~ex@9pY2bp1}FQG~hDe1Yla4%XON|2d1UMSF4__Br z37n5tGA{xv?{&GN!_eLnp%*X-SOP2rE(XrO-{m?3T=o#k=>UA#Q7-HeL-_OFcui|DCz~A4_pb1pAPxJN?>?L|fq z23P@10&WHt0uKV`11l;1d6z3B3jE7a4sai^6gYnc^Z~91?xA?#X<#LAW*4;kYV>O~ z=W1{_$q;M!0n$xZ{YmT&|ksz7iGHi|dhk)ZkRG=o9wy1+ z5#JZ_KgswhDBG!iY3bL`v%e()HiGm#@aln8t~tbegOBelwVzMGOl^RVvrLco37^8_ zed5%7pKui3$0q;`H~1LQU|orPwBDsuooT8&Ow0jhh0a_sgSQ2p`0`Hz1 zaP9-TZXWeM578{(9^e^YO%L?!1A4fSlHfVAI=;UrL?qyjR$ zIZMC6CwwOF;}czGi}#70Vo&fXSF{bPPb{MP_=JPy26v4tyLkXIjZAFH z_itV0f_aLI%B3Gjxf*fbQVhzSP36v_a%bugUd9Lb#3gz7g!ipgNY6zsCmRRtg1^;`Jf0l|uW>SC1 ze(dKHJqr4uW2^hIpXca$G3w|``#KHs=0kP>`Yp?5=`x38%Qo&uZ48CVY<;PX`}?d_ zG+ps%sF4SGYCRfG8Q>}U@*>JPk2(zVs9#P^U-qGL2KlU2wJr@7WBCbc2IaoQA;OE; zpZYbQv6gOMLiS7JjMkR@P^SJn9KC2`j8SRBYX53m!-z)v;$E!7eg{>#o|HCUyN%K3 zG*+T%m{F%!H*&nE$a@fZW3X2Jr+Is$TnA@t(NL`CWVy4+AJn!r81xjIIvXX!KB|pN z=uP>PkpJK?oOND4|IEhnCn8@!B7PYjcB;>_+Ny!NC#qX43DtF%zL5O)Df}MJbI?W4 zKz?`y@=0;`SG!EnADh6JH$w6aZW9#c9{MG=UJatJOeFj>-*@=3@ zCdqP|HCztaM*{e^y7?|(ktkfwl73ql#vgHeGWx$z#moHr|{vFzY_U(z53tfk3;?#OfU)Sv0th#A7#`Y zAE?a~8yvEFyN9S(Z7l|Sin%F<#wYfQ+sPlKVd2N~K{I^}Zv0*(?b4%tf$Si-P z%JnntJ0EuU$z^12<(hH@nXPP?Ul(Hy*$gs&aLW{R7i$JFpNW1JYX<14YoA`G?zDzn zkNIk4FkaTD@g*;s!>6GvhW;lT*Tb#xS*AjNS_e8Y8_RVd84UHyCh+@$|7zHcZh*h0 zuSLJq=qBdc0X`L~cC6w04sy4l7sl4b&FB{sGMipbrm*XQK3i4oC#^xdrsEZ%=NQOb zgmZ~mWItUmC)2H`rp@OK%7jO@WRefr_ZgnS(fE77EmN%J>eOBIOMjmVMeE&gzX-oV zYxp5pP#rl?#6@z- z5l7`WB!_G^8+PS|a#|si{)>Cui}hihev|7q*jI4F_61LD*}_)HJopvH0m)2ukI{x~ zLCS=Gy1HSRn6)gK4vf+5N2*-QN#-Yw$Q0{XA#;Gw5mn1*SY}_6IRtkmWIAyU_m>Sa z2iLb*v1Y9;vs_dEYH%0~@FaPgAaBoUoa52D<~z4M(Ux`gGg8Mq^>v7=KUZT^kvs#6 z?)gc|+x5T6BOf-3_NGskS5xt@Bda0lIQe-Je+3=c_IIsJgV1v44zTHHe9bgNE_Wi8qFJY9()Gp z^R?#_~?9kE8;L*#YKEu5w{s}n8K>#_91Q);@tHi z-A^HIJ>p&`uDZHEP_4Tdza%#R^L6}hm&%PqTpZ$R%Z)=^Z^Zo_xugfJ19pS|ooYR> z7I3#=X|*2xXv~uy72wbQ&!u{-M_gu|xLt@#L!4VT%6kZLV-Q!nz0M$Rbe%XI=klZK z#04NOsaBlmf5ass?(f!hH29DFP5vR!cP9API$f@#WC%5Dk%oMcSPwfJ_Lnu|AM%`) zc&-C+)|{m7qzO3|!ShIq33a)4$hC64{Ut5mQ>-0C?fvB#pQqyLFAj;V>WE4J!<>0zIgzh58`wy zwr{<1FiOeCZbmt~(MP3NOX^<*i*jbEL#oem#07}U?K6IYHou$#2$crt1q4zdErbbi^?DDPY#l#VJJUABuFdoHz!|bILXw9&4Kg$PxLjBYh>PMTATAAYFhg-s*)tKB zhd3w2B+!|~O`>cX8)+D~Ast;V`qsAoW_^3;Pv>Gdb1Sp;qw^}-SC=Zu#N|>PZ%Zb9ysk|W={|_K- z6P4G+U0#h1)vR%aoev_rywZM|o};d8dFi@`_8J!v@4U`sowJLxwoL3<22}4^TH*O= z9MWlBuk(Kug(xDdqsopBxq{$1d&1pkX@L()->@tWr&m@6-LCP#MZg~lNNOY-n+&Y3Q( z!O}Y%X~%1|G1&sWHxP~I>i%S_vB7ezHF~x)lx%fy!?qyKPsm>lfg%^Y-%CRIkyuBPz*sLK7~VM4XF zQ2UO;_#899<@$|$?jEOX-#T+t%^GN^5B%e;9=$>bFbH z`SAd1myPw?rJpCYODx`naNyl1_n4!&A&85{`w|tP>7sTSgSgFz6XQ*cEqdaM_QFl? zS8PR^+h%L8BWu=8Vm_gDB%D(NHIwJIr6?d|n9H?}Z1EGPY^yqcv*tW`kWY!OvCGUQ z(a^6I-s>ncn(WzDtd9=TT;BqGmd{IXK7#_|MTnupq` z6nS=yaJk@GrT?+kJ(N~~wA~G)B_fU9XW4_aK&o?+Q`Wg=POe#t%e5!Y(C=+{{E0m) z$=nT@i<4X~6%I=8=9XDArfcROA#*4_7kuF|Hb*k)eVb9EV8^8ABDYLo#|^D(F{f!- z^kw>nWEMiEj(2S6Ikdj*5}89TotK6E3?!M&E+doHZ@VC~{0_Xw0$TssEmO2-jh;2* zEgsKa)yEn%%08YnFOA0Vin|kQFVOU^1D%GFKZu4uNI?7}p!K($(ze92Q1}G#JYOB* zQOmS2dV7O66ZtBT?>)*l*UBg7BH>HKJV_&EKIS6CR67&oCml{hp9(y0caK>_i7`s= z69wS?Bb>}g`%4pJlyp6WG9!^T3$)(FDRo8PRlj>6HeOVgH4IP|<#S+cmm*&p<#RNc zZxX6lJDbQyK4dfU-AMV)!1%=)SCl8(2F-t0-F)QNN|En4@~xtLyRCe)@j`)noeMuJ zpNr8t7cVw6FmI6FyCG-D7?*1`$yx0#A2uNCOB=Z1brkRgZvvKT+mX+`$Duhq0NJ-9 zu0P3o3<0!InF?9ry_8hzu)}(Vg;5<6z;Xoqq7Fq?+5b%)%8@l81@8?}xi?#KX43mG zwd&BXP911W?E-5#^4&u7O;0P|9D06I@0pT&jjuKK{HOZ-W=shDNg8|<u{g?40B$M9bJ9U@Kl}_#Wn_Fg0{ls3i z#*Ym0Dc7`qSCC2X1nN0Bb0L|xLTRCAjm#QfFZ-rM(V`k|v+C!4n;?_ny*?o`;qS=| zyMjzF_>zlwC-7_P+aC30in`ad=Ky+t#ZGmve?lYrmgc}^a7@$ieqr6U6{T%O+RR4M z4k4|)k+kzjqjwhT%A|4Y=z#S%(q0E``JYiJ#tM499zqf0w@y{G0v(|1$6= zO!#~9sZI8Q{~-A5){WB6Ang#+nt~>OG)1j>M(2fdog)pT(fA5S+WZQaYY^oVKDox9 z++%q%tbzK8*T>uw0j=@IAm3`_dq=VI)n4P(v)MfDd8MH@nUIynRVIAN80eQyWAz3& z>MM-_*w*FF3rIhDm-NuH|GR!9YY1eGdCui};j(oV>n7SU;$^S~UX8=k)FF_Sghyt_ z@vf{&BcWtsPE5H+m=a3h#_yV!UKGCHy$G{c-41iFa6! z*`d#hM)axiX#;%Vf0{Jx)5P<%G$%QcY^r}p>Ywsy*?|I_Xf%Vr013mApA1Mx&qoHH%-KX%aRNkmg zI46G@b1?ev^5x+;xb9jc-m|!V?F>)Tp2Y-_dqc8^V4=-Xg(i)YHdRDU?eLdT_RP1jS~ z6{WbD4R3Pt3yKoQu^$=T1>bQ|_*6A;uY%!Sq7u1D<@+@Dmdf#y;zw0}RAU!aEUXr5 ze22!~*7#nHxir2;XUlZHR%ajS{G!f&)A?l1UgZ2s&h~Kr4QDfK{0$phYvWsN3`25~ z*ZrQ8JSLfwj7j!Mwn==FK1rLTPQrN>oLT_x%7HjX0$v0j#O($86mXx6r!ZYEm(rvu z^a=P*-Ken-v^WvvO;LgTQH4!{U4y4ygkQHikE(2;!Z)a_4AoNE*Ho>BSnK8eKM~Pv zic+bq;cP!gsXy?mL89ztFR3T>H|^}Gonq}ABx0v1bJcjpCTskCKQ>$A=lt38S}^F3 zHNG;4ozQlx2yC|TR|DDSwzi-jGdaG{@v6r=3Ia>K_(Fen((4Hgf&ISMF!ou~bwq#B z0xSFNek8TT9|cbHCvvVov2Uk{837@P_#lA(o)CKcp&ZcYea3m5uZU#NasEkH_683I zeUkH2UD;oPUS;DOyRxme_K5%4#&>sPQ|&~rv-5S`*aw0>Z|6^TV{;6Of6L&LyRm)7 zUKN2?Jo&+B_K9a((7!h4mC@`2zxNdc-VWd!BH8RfD*13Ae=?G-3F12#I(v(~(ZZG$oQUJRV7cmPQiG+DIy3 zYa|Ih7C95uTo4t4`2A6DV3~*7zouMN=?&IxI-eTCKGXT;2=;>>40-|Q+rrsPoaiq& zKON4_@b;jW*!cbkw!ud9F&lp_g8gaRts?NL$!CSI(`H-HC!6r8NNDZvv15LxDc}1+e?ft@t-sU}C~rq8d)lK;``Z)i(e{+>OnVYh z5;6oVzlS_+>HfU(vAPIZ=j!~+w(J?5R|K<-dVA2vb^b#zyPyYyUcvc0!R&2L@uxX| zr5&3BeG&N5;8WVMvql@x2fX~Cr46M_ZwpQ5wj~8B+ERvXZ7K8qwpStMS?5YjJZNPvA8-Zo2-X9L@U5ks z&+%nzZ2Tu5cG$+hY{F*S`H3d%4Lkp(3A_-p25}#iDjpppU&p{Nlry22o*^Ky)HzWQt&4|CGIq^T&ocK31C;oSvqtGMGsSp(U zgmT2>Zv?O}J^73vw%m(99>n%~@n?eA5^w%x5c}Ahe;356y!qK6w#J7~ZOIP%@O43K zMiag!2=5|57KDEg#9nN{R|T;R0hBm72+?IhB(Xe*Bt98L5|;&$#H~S;b4L(m+Cz-{ zgDB_GAS&og5EWF?k_v)$Al9^w24)DTV)dVn_Ab`i6iQ|dlWoQHTP!|Mh=VzBovsl#qXc~^Ny;ad&%jl$=7uquUrXDU-@I(uB>vpm^*REKXg zKGlijPcnySyD44wbv!M@b_2@g0j{<4<-I&qtbsDeNtigf&Wda4+ie@ z9_&#M=vUn*rxfL|^0va?@?u{q{Gu04&%dh52UMS_8lUdXrfVM9h{ADsk%|rse6bgM z-rx(p*vkg5@Wh+Te7P4pBw~(>)YF2q(g;JY)h7SKi)}PX+S?|Tvdg3r_nK7tA;fsG zlV)ee_IeOwiKibjJ>>~4=X&8|pBKft>*`WElT+--x2dcbe_LfY@Kq`sO4QBXh(oVp zEGb_2BMA&k;Sc|D1|L6U9KtIUHctut??n8wGRZfzRvcHM*na%1qD)o!bd^0$`q$Ju zHUz;Qe6!BRf+*tiboK;QcD2Ia)!7~*kHMsM_6X&BQsr;!>;>v;A-e;JYxq7zfy?<` zVU@)0mi^R9U3pZWqPO|o!B*(}!)AOV#$+eFOz!>j_4Z1ApE^Cx{+b7Ob+n)H;9EM` z4|@{5*PECY(br8@Irvu&w%fsfaIjAu6uq+reY*VOjtyh`{r$hb#{P96e`A<^P7r@* zxcy{M_=iL7Pq)1N&z9!gR*^GW+bdgf#FVz?pf|MU%Z9TzT65(6sI~Xe2>aRA-m@d@ zPq%qQS>D#Z-bo4joZicV?d8E7O1~A%E5q5l!F>@wtDX1s5c`gHi3d8^SGP}mF4Vp~ zgySoldqeo%F!o~z`Jym(IFw?Rb!ZCyS>b$g1e+U9G0VdPzX)d=BKU_L z*|rG&Vn=o`A{g;&#bRhfC#v4-kwTM5@8hxd3z6PaW9=_=4q4g5{#EBeE27M|qr6vj zvCr+o5wo-l2mM(WzOe^8*oAWa*v0#s9`?D>-rIWEUyt^`(8K;_SN?rB`%hi@i5UC( z7(S~zdpCx!y_$U$L;U-DQ0ePp`O0h9JF)zcYuJ~u6hEUU-_nac(UULf#a``6F{Qov z`b0LjH=mctUhPdWpY~p_LEU40Z!RCgK8}B0{b(S2binrtLbC@3A#iZu8V!M|!`nVR z9By8nq)gH#>eySb>#(Q7ed=1AzvISq*Q-6pH*cc&Gb-!e4Ad|_LuDh0%E7jX6;o=N z!p|vew!(i^*aC&0R@irBaL9c}*atAXDy78&ojt4aN}au;@?UheL*;w16%zD*5&yLs z3LdzxZ91E)1%h6q!7$nD8pR*i_$r;9)_g%@GbNmxD4?ga6a~Dfv{<6Dj}?AMWrr31 zxypV}IQ~)nH$nd?;vZHyc&5{6Sxq0Vr+O+;?fJus(u>bjwL!d8)o$iH6zvY8(kX5{ zrM|5ARVvISN6;j88V3}vr=}^&q>i(cw>9N`g|FdwtARhxHB9ZZxQ2;kD%a+z{4X6R zI{d7zy{Yn_bZw`~U&r?aR6ft9eWCLIaP3=_e~nx!e~)Xws(hzSyP)#5HVw_NT-WAe zLejM-F+*`}sm4*(FPh&W8~e@%^-=3dY>d$5prU-FT*Kez%258Zsg30)P3=B@*wp4K z{D7&gQ1~`eds*Snnc8a#FEh0*3O{LR@6mj&J%eHm?L+tvLpz}IjfQqycT~dA zT!MZCJz;2bv=-obUE_b*wVfLO)UIK71^NI~Gql56XUJKg^EGyDi5>v@b)7$D*FF&R zd7aO*Yg0HsXwznJqUZ5u;CX?Q#+Z_z{9pX`ckFC8ZS1IWrPzkKo=R743*uFp63hRi zX>k!hYFZ&brfCoH*EH=Bg~&MyN9;ny2?i`wzW8l^K0`(%+OU-<=N=`!{bXgbrmR(3pu;{>sKel3zt*)M6~05){)3IMt}RsgOS%U8 zd0N-jV;!h#ThPIphPijUrtKBgz;Y2lP}|J z5PycVk^D){l7nIVs1;r@TB7s>jp=}!T4Otv7NAcm{27h?tnj%Sn+!EIHdE!(G=_G-*SydUpjV0bS5yxE*J(f;6QjbV zw7enasKOrLi&adB5g@l=`KK~iwNQEt?GbzP$269}=j!aHuCsLTwf#e5?FhIy^0$16Jk>RQ8g>A4LNw{AYz$6JWuBW=t&7OR35j6hiK2N+_N-_vfV? zKJXhmyOV!zhx>ca&K~3&>}Uf1lAS%L@Tcu?M|_r@eW38EIHC(6(8k`z=(ACCyl!KMRKD8AFa{Uf7{=g28+#Z_IvX0OCuoegsYum$ z3GF)gLQd;d&@*+4U!Zpe&rY36+=Cc9t^T0ZQS2M+w1UMNi%wH6(8o_S(9qVydjkjY z$5l3hjN>-vF_o3Taj0yX;sA{*y{S@_K)TKO9T+Lk*g5)u$f9l~ zuygErmg?*rxkm3m+pFF1P@L(k6kDjeTA#CShpXV~X_Y-d=Y;TuS^RKC`|S+VxwIg=qGfFe-7&`8+!@+ zARBv4Z-%^kb?WV}bw1z5P6+xZy%*wN!XXJ~8#o8Og?j5d`j|tG|7qE8_ebL;lHt>p z{g@Xq=W_P6%D?064II^>om75^vnd+?T(s_9w7teZ;_NVXt(<+Y@gH>dtDyf7@sqKq z})CKSx>6QncIsoq;{3D{tv+pTa-m)JPw5YMA#q`wZ?- zD6xg(`{Dcz&X#F>180~v)^dh!#pI7}1&wY+JQM;C6axPRjq*;_NzNRdWTNpP|5=@* zES#Q-;=6SK#&f*bm&AWp*f??(g?u-;1yFDch@7c3NBUA4&Y0^&HZ!`*-Rxl*@WlMM zMuAZyO{4|}fr{kgSuBSE$AL(|lc)QwtiEBuYxs@uDEMJR85al)=hv}l;1DY=q#dv` zFGl`lVz6}(R&MCQIUKnFd}A=25*X$-fX4wG98l{e@18DD*Q>E_UstC(5hUg zscVLg9~a^;YUEQuZx`{qRpQwP&!UqbMc$L}I66B6@1wInR1WczX^L4c=b3;O2!!+7 z(0}9Eb-?}zXW~ZFo=~V$_lS*a{VI(le}WAF;7-RQ|AyVY&DhXA3pwc}}KKg)Y%JXgD9lpVEj2 zV;%e$>&QDrCpoipn(P+pBp+iPWv$Yw+;w^z=&+B*{U7x4AF9MwssvQOo(5YN{)`QV z4Sla~dX`)B5qcOTj&yKTcLwJkaE6oxha8A_iO5StbS4p3lZb0c#2OV0ON0pc^(%@< zZF4=IrSc0py9@gu_KV6t(^;v;4|29h;~#QXA-o(;`&M!~FME#Dq%oVb4+Z_1M*LrE z@HLefS2|{POi9P6vghan9V{xlSZU3-8LT^h$6&+x76X?0mO*p%DuX?)@FfOYrSRDX zdqv?h4O$OQHfS>Y)lTck{dOAI9}3gNLlgAi>vo17TxVxXRQ{ZuEm!%ocD7E%qMf~q zK_yHUZ;fJtsN}4SlUJTC4!9QL)W~4Z3X{SUEL2!3*fRow7+U`I=J*@bcwhWMDaHU6 z94dcRBS(RVk7(@e732>@{zV_;f1gTGZkd63(#vx4SgC;gi{Hc8YbO81TiNT$U-wZy z_u@bJD961hvC0dNXD)d2sXkhX53#JrX>b#E!iO(xqLnlu_PI@n-CA{vMx3Kq>(>(o zOQdR~@Tn%t=VuM}6?UTrc?_IJVvl*oq;t#t;=C1StQRoiOg0DSd?r=>C6gZBtu$$N zo@KHRMa*X$dnuZ#KZJj<@l%-hZTtc}08T6ow$a9y8th#gUt!QG@oIyeqfrPe9!7^M zZz^*G-|fb}2;$#&!O8PZePtK6wk@C5m2GO<0`zBX`T48Z(Y9BEe%cvw>MFL~=@0r_ zCqH-<``&pK73;f#x|F*#YeJyb2h^2G+`xfr`&_dsjElk{F;nuwt zvi%mueQsgN7c%`TnSR*9wMS%FLdga7(un_;LYRNVW$$XCJM32{99}2fqfWR_o$&BF z;ba-c*X6~vT86!3m{nMW`#Vyx_gVGFt2E*YknMqk4snf=h@Gam@?<*Rx)GNl5nr>+ zC31{xPWL3V_9}}(JP-wmC!ylP(ZpTsbU-6i&y zI8tJU#A1nM5*J8ZE^(v8oe~d7JSp*@Kmt#E}v+Bo<37lej?Qa)}!y?v!{y;z^0;B-&n-HAzC(*W6mM<|(Vt0xCC61JsA+cCunZyMWmrL9zai_!s5>HAzC(-tbEMH=n z#O@ONOB^XNLt?SSGKmW$E|<7b;!cSNB%YLbPNMBqS-!+DiQOgkmpD>lhQwltWfB)i zTrP2=#GMikNIWU=oJ89?S-!+DiQOgkmpD>lhQwltWfB)iTrP2=#GMikNIWU=oJ8At zS-!+DiQOgkmpD>lhQwltWfCnZ^*^zX5m)^bD`t$JCWt(Vz7m}h6D5{NtSjeA`SV&> z@*9)$PxDtuJ<6}3ms`)e@*C5`&0iPy$a03xQALtjmw`@}acz}+PRZxd2;W-Cw{^B9 zuX!VU?s~o{<>`&^x!WQB3i_4Ea%W3Edn5AlB;O-f;B&WY$rbn#rM!)jk2g|ooaCE$ z1$ohuuZQIGZbY6_@?}UqqY*w|$#>@!_?YB-N%A#j2WO`Qnl-{#A^Dm~KA%ST$|YY%$=6talt{iKvc8T+ zyNs{{L`@2x>wHCZKlVtdPX-8%y~=8@~hZ zebcqIuhmm^Yq3J6?}=(SeHY%#qw5I$U>dHv`4`LliS~xmua|ZkcR^%lb$em3OfUbl z;q+T%`jI~xP9N(||E=Nl9GM>7Nd5<8ddc~Q^Usp$dwy>?eThu3INNag3YmVUvf=a% zGClg+hST4Y>2W_doc@Ws{L@x?J%46J|Ns7TK;OQ-oZ$n8-5lYJiHeQ78vlEE)z#76 zyLNMik4R5*CZrTv@twQ%j9`mlYnEAB)pa)>E3)djRxVoIhxYHu@G;p8FKn=gaWdR= zqeTpt;W09dcP_;Bj10RUO1vqG{^34{y%lk%# zyIRq#>01^dZG!zK!(KAIN`_NqIOT1Ncu$7i&RhJE3F3<1w-Vg>qeohbi7&q+>C7#c zhS%O|g~cBlAbrg3Rv7P%iOc=a>>61gE4JpdH%OJ8yFqn77P-U9xHQD#aX)OkeEvtr zYBK*?*^uwFw(`3l(lwT!np0&zeXh&=CC^ype|MFYzixf=KDE-1O7Ar0fE5-$28%3p z>mPm4N*6!)iu95%tT6pJD_s>|T7>jDtOBnJ(_^M6Q?l2sulu29W9>Ht`BWBPV3*}5N_p2v?_bw`+z&@D zFK@{}L&_^ZZ|Ofq*8j|(R#^P-8OnA)WNl2IWnZJ5rj%E4(aP^BSEcTUvyJ7q>i7QF z?)+=*mLdyf`_{Gpt@0snWAb*3_6j)a;cl-smb{7qRtKC(x59(0AdAbe!tYpWGvCZh z!$+iHh#$^Cp1SQ*ez(QHLFP{!Z-tM^T~}O@6{a6^rEBZG79oCofgc;Bx8%C}* z6b!{c9rOY7@oOi2VYr!;yXI1h?_tbiUkqY2!#-jfKryn10aSZY0zkLlA|h=$B9ec8 zH!SN!KK|P*JPVn0ooD3~A}_t(#Z=EEB+Sesvd4oUXAud(?TZ=XhFXBaJU39B%~(Mx zimeD@)q57>w+W)j$J)n(Jm`I{7wT&Sjb_aIcPfS%^o@J(i_a2itn3W>FQR=7Z*+-w z710641k4`ZE~1_0beNboQz#H_rgcF;5rJs)B{*qsRRm(qzNn+OCIWG070KlykYGL* zfq+c}63s@jXdlN=t zneqOuZdx~9TSPQf)G*$!rhQqH?|MP$r|gG&K!*3T)E9=g2cnh|$&A6&kk3)C7)ItY z&?`tcU)UYKzkpAwpU{n3SLjBuq>6|g?2c`Y*c%b>rFy7EuwSo?1t4w4IEp2quzh?o z^*am--|ZBmeueSmyF=RkP>dfTw8Aaaj_mku3u`K(Uvo!$Gxc3>#CD@*P``wXrakb% z)S(YB)+}ix_|%`S19=C1MPJkPl?xS=u9slt->eXCq&J^B8H3)q7d*`$Aw`&RdkfIh zh}Mmr_~EYRj}mPdZzhADPPCVCe=E>4i1szcps40EiFO$GJ_vdi(E&z$d(g9qZe{Sh zK+hrCX>^?ndM?#8-00;4dLA`hG_zOT262wNmXksQ218snDb0*|9YBxoVF$^YZ@_pd zR~)w~6gEGH9**0U@t~PGssMq}3P}qv-}6V{4uvE*%|}wJ1L5XKG?*hrNd-ikj)4e_ zRZ0+uHNzqhNL5}zAkMrPfW! z&In{Ho(N=`QFkCPUTKOzp1EfL0{19k$TPw8eF%YkWgE0EF@Ja(fdV0In)&=}1PYbU zQE0h&br1qYiVyNEGR;y1CMf=pR$+b_h`{{{_4G<}I#qj;sP_a~0QSVrLhhR!2 zCMx8COPHiOLkhw9D!%Q2;%2!ymsfL=aEsG^ElfYrv9X7VzsDR~l))UY&4*CtpF8$0 z=Ga7xhJSW?4s*ONTH2USL;nq;1B`20gWgO^IE^*bi*FGfVl=_mbsTR$3p(7edm(-c ziH|l`k%ep}I@Yj3g5w>ce5V*J8lA}&A1hxqSpB! ztWFSA7V;wbTEwbj%fP>L3P_vrC_V$8z()-)Q|D0?eq1IPUcjdi_;xiD)tRYxCxGen z`-15cHxs!5OOj|L_3cSu`sruEgrDt@z3$;=5;6s6pi^<2*?bd*y(b!UE49N}GDc=p zg@Hatv|(i20{VBNeT`q7pwAN>V6^N4`VXR=2L14-<4-cwaHDtz=nD^mjyAeOxZ@(x zu|~HJp#LH|&gk$s=qj?=1moLIpj{N7Xg-6&9ZXq*z$i0i4g!h@j4|c|8K{6dM1&=6BSK?L{EKe3)jU5YdoMvt@4tLKSiY;pP)L2!x50X!8uI*Fho6 zjx}v0EkcNnGgr`f>nNlpu%JZf;^?GQ!s=QEI65o%#S^xJbn8W9AWG_nZ#pnX7pdD8 z>=PW(3b_?u7PJ`|99Jpj$O8f0ltl>JydmJdSR}-V24d#AyAinBYAtgPd4=vG00B>u zfF8=HB*53vQ*mK+(~AVe4MRdNB>`1n=6w$%aE&qn0fPl8G^~0n&A=AqxE=KM$_UUl zV-!9EXrbXJMpcj}&FFDTu1GARL|S-Qo-N3mH0-a;6p3^3DaQGWZU#R=WubHkUW3n| zbJrq6f`T7JLCiMFK(2t+4%V0_hsJ_F>;NwCtm9EHRGh*@C;-JPDttw>3XQ&H@DK`m*TZw_RqQ!+( z28H}YHG(Q>c`@9Qy8+rb5-qv|O)fVoG>-)x=nQ&(SvYt`$pBh-i&$t*RE2v@sy< zdvh>C{5)y(WV{aJ@$(YW{KusiGC%LfS|i%OfM}nMpnd(*a#NXK6CusGWfAy&$)21L zcQ-@?9d)9D>l9juv}%pjP-`U_ss0yRV@=a0!2d4}G(4fTe-%aHeHi#b4fje3b!heEebr`G%Hd6vYwCn0X?v{dASKF|5 zf53tQdstzuC2MyO10t}u6;^^+yFQrF0^?*jkhME`7sCByH~@p4sukEo5vw@!!669v zTFqsCHUNR93XOmO^N$S(3{rq{TT0_;q!OA+&EfWG0mB%JB z_A(gELfBm3jY806m8 zBcN52JsAGo5hX;m^0gMSJNm-Tn*M++SjgfR!dR;(|){QX9 zmJ}VpylMCsgOr7+2a%(7a39Ja-o}4M8+_~DoxhDVCCc9>h@u0G#gjpIAhROtCt>O= z&HmirNu z^e(B0^%eSdnFB@#IX87HX2KSJ4~qPy?)*#Z=eJy|N=~T7_2f)EqFZDPgvRH>zGv>l{GcX=9orAO%NH~*#=)uDg&5S<_Ko21|7;gO7 z74%S|qmA7#cIPlsC)RLH0X>`=AkLU^4d_G?lVGUWUpa3)W@0UA#6*G~L2JxWMi;8q zO|+F91I?*;m5O&JO$X_b7u@2|ZH&D|nvfL*`&o@K4udq= z9SYh>^eDp##~vI^^cdrLY&nD55uM4@!_YD~!T~)!!rOVxpN+FqKdEy&Z%gOLVYlsk zh~L-f4%2AYgy;a{!}g$sX*!v@06E(=-32-7$8n6c=kw9Dm_5uIRkO$RNSFVUC}LkVrO0_u)3et8^p zTcU3@jy(igG}9R4Kugdeq;971$J3xY5}j@26MrY7^NeTE+@X<_x6pVD1{d1-Ug$X? zbT--`G>W`froudqgtQJAj4vExelSX7Q13RP5sYJ)uS1+f>&8ouf(|CyFkT_L9T?I0 zvwjEN-kQyi27wkDIgM}QK!*~4h@rrYL&As-H}D&$ETjX`k;bV3pv5tIwDHURpd%htQ%SQA8&gm8fM%G)+~B#tF1a z$W;_S%J9aJ3F$^v9AkJ>9bFGo}trA3!t(FnqH_mvLYAU>M z0#kp61|fGJLsi3)vkGwb9deI1?9%Xo0}Lr3k{OGAK^N|a$1(h~(pX6GgBn@R%K3=C zm*@b4R$L(y=&uT$#%Aix`z(EaB#XM=(&sDKe#irsK7Wk>J&EWzqbar0gG477@51&& zCQ~~k8n2P1mF9sSW!#PN7xHKX=rKkX_1X;L&or7LIb?7Luf`N@(T-2rQz& zE+zD?U<96QiF)o)Lg!W>u$VmkK_zrdTLhl|3XOC`3H`A<0u_|!pc(oUb@{UtIAVsL z&qrV>1x}fv`c()#PaCi^W@x#Az;a4CZ-x%V#1yiU76Z%!rc(eV!;%XNa84PrPjrNH zAQ(O;QuftB5p5{r5dTF12EMP6OUiy_Ik`pDXoskNPGfQg=&x6R4l$PBjL&a~4mIAU z_-~0P+&GGPJ>(?Ok;Y-7zau)@h%5&E{W+8yYuwfs^bbVG8LMfC{Ycs;7$Mh!K23C@ zv7L8%S!A>- z2VF%vRG4!ogJ$A%bfuYv;zJa1`n=Y3+=qas5ZflR;tm9K!M4@B18y^R zgw1%5n5ZX?R5Ouw*5QNAcmqb|OVf@=d030So)`~ppgApT!sN2X|9;T^B*E7h2{pq4 zh;|qoia-Yv9bjx506K{1R>q0jLANB@X;i|j!&(s?Vk{wA%*)}1&uGwMSrcu1HW0K} z*2Eg+cY+qnnmEIIA?RSzHNl7(0$R-1iN^g{?u3QYq3b9EzZ}iNB8X>7RI#a_;Fz%ZII*Q^;jO#{%?n?2~m`Z==5Z3KSG*Ng#VHzG49)!{n z9pdN-KtzWbvyBxdN7~6j1TLfM-t#SjsSJB04M!6R@JcfEVr-uzH4oHOmF8 zeMi76-wJs3f`D}`##8q7T?A|xC}3l%fY;^;*tAN(>$?QJ@tuG-Z8?;0^Hl=g8X{oJ zI05fGEa2Ux0=B&?VEa)4I}|j3M2DUJ0^aK(VAm}I-oIDC2MYy!xJJP49RfZ&Cg5W= zkFtN_6tL%dK*tV-;==x-V+T_S!egb59Xym?z)tk<=iQ_2Poa;M@bB+yhk>vdo<01> z73gEN*(8vs(Q_>F)-fP|^TG<}7bix-cx3h~zz6f)f^g^bdsz6npWp%}BCaW%w@9=& zI%gNM@ISx4-b#$RG%-qV0l`&oVoOft+(@Y+}hDjt-eUzA=VHurL&mxx+ zbBgG+3q)T{i|$VMC_jU#5_k9Jk07fRTcGF=)&#eR^$Vn=|A(^g0I#apzCUwL$_*u4 z+67S&1*L^fLJ_1`2sKoZB7`c0o)AJps8W;=5Gm3^v(OY#RK$v)=tB?-PZ3eEBiMa* z)c;z0X3o8r#P@#xeBZg*v)7tEd-|LvF&)tHrSYawgzH->&S({%#8%^h!OV%f07e zYep#FB#^>b?WZLHcs0AX<9r6?`7rP$=8Tx*Z;Zwk4NxY)X^9b%Ot$-Z2+$Ai!C1&z zssZ#G%W&EiD9kejNnQI4n43dR7L7)G-$1Dc}xpp_6^2xN(mb~uA-iD|8RVO-e^?E^%Z zu+uTS29OTwH1KT;Vt!I9^(!*R@T^$OtOfOID(BzBw|4q-@- z8K<@*sd**gH>U%is-8sq+v?-u>NaG_x#5>tz!$0K7CO#BA7|->_+#(_wP`i-?Bi#N z^T*)J)cMkwBeAyD{>ezhAA_$@^%brG`MCHm`D>&w=f&KkE=$r@F199u#h>mw*%>SL%LH zcKNhUR3|;6o`&YI)#{FyEYJ@1Hq;;aP{&2^Pec3E_fW^xwZ0LG$b=@nph6%t{s&TI zO2<@tu=@E-zqTVuC)6kqvZF~d2I%D8QwxBt^Krk*wUL|ZCZH6mxoQ^}Pgs_oDN=7k zS;k!D4nhs4A}i`R@Kcr(l8kFkJ@@W@hVvuvzkH6=t>z@VpP+8VPL+CS1UPgJZbSJw zsU4m}TDQ7MXrF9w>RR9(EXTlO+^qv~Wv6GnTgU&n(eMx31|t_8wklD>o)^ONHO2Lzj5vJ z2nf$ak#N?8t``&VvgVjH{tf&+a%3#;va1u)_(>haN<)1I^&ipEyQFZUtm$>Zz@mbX zLpbz!o4WoGp!(j9ih9^njQ}MR7R#xl;{dnz{+y1>Gt68MKm#nSySwIe^)6s)f03L_ z;4{hbbLn&*Hr0tq_u5=<%&Y>uIoga+vb@jA8!Jx&J``;wm5(aN+~@VS4gECmFMN*f z48nQHyCc;!bf*CxRmGvb(Vam!Pk2+-7)~wVjeL&o47o@o=?2vsjY2w1D)2r&N2ev6 zeu~eJ3THgmp(jLhAj zI9~w&#pgsct;eB^xh&=zOoNIm%_=x_Sx7#+4oF8nf4DWz*l7f~wNKI6BqgR>%wK3e zl2#w!W1={b*%X7Wy0(&G&joY2&yL8Zm>m;yb2mfW3DV1vF`U zvgx#fk6U6!rXia@f)GHj)Y;@kg(ln zL=P*L!B(+>DrO*dvB0l@BceETN!*V22V;82KHlD#tq;<*K2b`7KTfI;hsO>mWi0ju zX{b+R0c%duLRB=`aHa#lBZ{L}F{x8f-!ZFVN8D^u-2&1RKG9Fr%x%Kn6?-F=UQ$NK z!TjbQ*pW5Ccu7Sn2P6Xh<@ zca{)EvJv4}ZrrOkm?(!pf4_t%Qdqk6Nnza{w|$O@@-yhcX2o+JUM+WAhz6Ln-n}BA zqtpSrqaP#OK*G82*bXCi(ss87N|m`E2=>$xVuUNCQ8$cRF-PKtSJo$4YrqcoRK5CZ zIPH2^U6a^aQ=Tq?lFI8qNpHFjpfS@ObpoU>nKCD7z0CI=cDgLc0z1yFRtV-_U?nuS zskE+z_BI>3~Lu zVP5)5I^zz-)GDsd2DH+`a!MB2OUaH&iC_JF^#Wp|u8_Z?J*-omMt?oU#$`H4M^rTOWaCB`|IJ!B$1FA~We*>hCd}4&7 zBqlZTw%%xnzk^gR#b*6tN5$-O@vC|nb{#NV7H2!DLVP2><4uOx3#4H_F~ZUOOgMTb zeqe7y%mZn$PmFMs#H8!IcWfKE7o;bB;>C`N*}vk`a6v)mAIy)6vz=5SmJgh$Y>2;u z#Of_p_0v|v(JKNk*sRwCshLlVaFoQPK3)~;Xg83C`NWGI6|>g`+9cWhgSogk+esC( zL%m;84e?%(_WHz#5^WuTqeB7{mKfqukWTx=2uDdw%J9;IhWHamrCQpoU+k!uof$~K z)39rT*{nF*NfooRy|i(L*bSt?J~6`4wYS32je+a>!VL}z*&r?OiL5r$J$P9?=8?bx z454Gu7u80PcKAf*$Vnw9X@&PMR2nIDfuW;{9MJ(q7d-GC4CIbquo?6py#IKzMl!G?*}*?$fWq&)dT=nXz2muJPZ3`WGX=d0i5bsch4pC%}-hF6)O+h-}tqTw|r7}F;UMclBi z2?qL-g_D9?sHR6NQJrSjFaxSh2ah1;-~R=K@)qmUcktV1!q9$tsg03CAr z-cc8!v5L)1^&UIXX_%vW(oi6nf`7dyWusv7v?}P-ZPYs(UAS(eJ{j__uiR{HG`K)Q zqwbe~W1g3PV^82;d@5Fos`2<%ZE=yUIqIKTf|6)d+uR;kyX? zKTf}SJqZ70;kapl{U4{_4D`yzlP^a)V!Rm&DCGY*H-9>nut1ftZVLH7@NrNQoN3ZO z?mEZm|8fpa76;L*X*6{vS^HUn!{WNr|ArBaKtH$H2n;B{?9QCRCV9{01dBMwLZ|e&0BF~`QQ@| zS!sUeKgw}GbmVI3HY<26&*Q=;&Prq$B!=%0qprNx)|NxbKO+dg@kl$DqOYgFk8w zNE#i;$?nw?P3)fl{o%)!tEcXD zE?-s6rSVGbas3mAE@lmPa(|qJw;BmI1JsJJq@BvEr*2Po?{E{lH=tX>u>~IBeuuG3 zVow2-6OPS`tL_5#{u)>j(D+?|R)=9;J#`nmkM%V0!+;+5VYx8s9&iT_Ma&~mpCZJ@ z5t5>1&FZV8?!VpJR~Z{Wg7h1S+W+;3ki-XWsoLfeXN3;v0ys20kQYzmI(%~lQb>Zf z1ra|5N3L$VuGi*n+}))AJ%JA@iBsOoLZk0Y&Q##D$)N+{sng}5+u=nOuk{f8TM2Aa zG|tPPZauH=l_r^efDe)qc10*{ye*wgDyIN{MoKu9)bS_-x06>7gNS(h7x0*l#*Cxk zG_UlP#>C}-Y7*8Z^?YT-?(fZ5V`8@f)G-`e;Gy1gH=5Xk01XSr=82;_(QAk~_G*?w z9-ukl*aA=Uj?BVvMR+ZsO@8byyiVyZ@H%oRc?|03ZA|IOPM7AF0N>&DnF9O-uu~Ry zy7KZ^+_+YlqNH#90K~=ErHhU#V}d;QZ?E^QFi{1Bq-avOvv%bLuegN|Y&I5e05L6! z>}bl}iEu{}y$x_q6eUExJ{x!Y#?fjmcT`N(BH#}Kd(`4im!f;% z?=vyqEW^K-p?=3gy76;_a|VvaI2?B>vp+cJf&bxiILMle|Jo9q{VJ|KNI{JJSL28% zop8pxyix|t>(n?V*&3`a(afq$GWCjXKwHLEZ>Ia3I|8IE68(m#@4a?;3U%$?6uV|T z{@nq>3f~$Vh%@MT9RQPJ7;ql}b{L1uU7SS1Enm-e)Hy-=I(TT`$@u0yxLhc60&$vd zKmlN0djiGW?An{5vGbZN?#;aRApkqCRnDi($4T6eYKW}owfZ9Kd5sGMJFjsPwe#B2 zTPX8^3ipc@A{U?6^80~f=d}gsG6gtNzGDIU^V$Zewpn%PXJWyz2>bKevk1KD6K;hR zx&W4;evjhv=e4r{fApy?7BS&@Ee7ZA<#0&yQS;i(eX%eHSJejG)KWqc-Og(_4glT> zSbrb)J@MzYr&r=}Dowl9V9-D7s*8|j;u#Ro# zHMDYx-5F3?IJTMBg6MB74K)VP#4v2;wI?v23%m$Wp%2@6ZPZ4@+zR!hgqUtfik3C& z&ug>L3dP2&Aid$+kXv_{*9x#E;1dh#9H8%f*vxAcQNbz(=UC-%gj4Y6wH^ZXQQpyd2LOOG4nR?)7FeXuX&Y>iJt)dVNE!xW?mZ@GO;UR3ay62)U=t`W{xqj zx!X!B!qP@l&Aiq=4PTu@y{O)RxZRD3ZRWKFTX3b7g){|Fjvw33YnSt!cnQ?^*qG9j z{dw)4HNYPP_Nc|}yw?c}+N7%)BPsESv@5PoH#A#_hb;yeZ68z#MTE4&4NW zxq+o)=e2e4pJnD=3sP4S{pKD$ua!fKb<;r@=UZa~aR#N<0Wc|s0ryT|8*#|I#z`dH z^7V-sbxx28%DgrfA(_`WfnfI_OfpU1m?x7PXS!yCF&g`m8(-42Cv6UTvYp&I-cDIh zZrw%JliMvK>&dOnd~*1-p!-<|k@ZR2!-J^TliOn=7oXgUIO*BRZFo1_4#tr(n-%X* zZhX;ozEy`75DVUfus^x2L*QYb&>B*x04zg&4Q1v}ZZ83R-KQ?6E&rtLBj~@fSk&b9 zI8KM|0awLz$M}asJPb*6JGmVj0=yQm=05Iw;!kcLmcr#!B%!*4)W;J2$&J%Pi12to znS_f9;h~+}E{ip>3jlHB6q4P+fHs>7UKd8jsFYKaX+@5+`6H^ zUq$#Vpl`yl%}Lweb4={`9(YdzhfZ71eFNMtFtJMPYXBt?)@hr`Z3fOBSQ_d^KwZPI zncVi=V_#&ac2->fR_$m04+xT)=4N=P!#p6pLc-5#6r69OSzcI?R$*g?q=Y7e2z?Ry6nv4 zcFk=dy#&H3pCqLd&bXc2JY2$XzXj{>Xl8x7Y$vywQ*?iGtD?^8;0QPO=*evZ^5(V$ zA(bSlQ#KGiNpaqhNs1GJ({xEqltcZ&mHY7ID+`+FXZCqfvHmb#t<>{V{o(N(IPswV@P&%(MLGq5j!IdM3E_J3hj0!)+{`I#F)Tvd|M22Ro&Dvm~i8NzJqcauYk59=mdVnd9>S`3Ma5-1LQuG z1A&T{LGDXAIE1m>o5w+(f+M9Pz0%5obD$`&%1|ni_VGM(9JLKg=8Zsh_-GHJ*Zu@! zk6NA12Cl>M!ff~V5heHUFBhRD~HfuHAsvUi^gN^RgxeU3O+*L{fIM%uSDn&9xDJK;49CBYc@`byPIPwLL3k;pl`K(B2cg1t5X!cLP_`Xp3FNzRq#UMK zrh{yO;z6qn9VKEqNP0Xj0|GhXqi+(G4)T`OMR$-=xOx-(7MSTE-yv)|NGE7*2chGp zgEX3s*%W5$-~v)Z94Q|#4bwpu4aI902;T^xE5T1SxB`}Pzk(bGI^P`zZNQ9ptH|=pd=U`}iE&L6|D~0!`!J?}&+iEJpleft7Sh!^?Bs zJEMJd-@yXlt*EAlp+g7hKL8zM)m*4c>L9!+XFG^I-DKVdyIS`0wjJalq`jBv_oG*)gB*n7m{o=b5iuQPwsM>^K+gN@%FINe2fG=T90 zvot6j;I*Hc~0(Ob2-giYKiyluKJdS}+~tD8zSsII@F$4(-oT zh>mSKNGvKQh(i*K>L5+f!&w8hfi|^_s1DMr3;I8hem+WmR0rwR9UWvW@Toq>b`YkD zzChFXcPV1xABz$HSYXmYqL))ap5k}^W*mOb)P~ zu1mNqX!<;tQ!ZCiO%HGd)$JZEQ>b&|QN=7c-V<*LS!-fvrvfbRR2ivJ1v)7M%#_tOxoUeHKH_g8NVCC|7`oqyM_4QZTI`^ zPTWw)TMkR%r#EO@H^F|pssmp6TqGP$(dUKQAcoU#M=jcV-;$Yf#8V^vDq@Omys}if zNh;d0F!_MkI)J&iab8_Z_Mei`O`+c`3_p!m-W&;s{R)${Uqx7>HO|YnWL90ob2a_e zV*qQsa%&_Uu8c5Q`}KGZZM|U0{xdl8G>+46Jeon{mET0dVvD0^_<@~J8fT64Dicsc zl@)t^*z^-bA}3QjlV^#1q2)ygXKR&;yD=UnACP$&I; z1W_^6aCfGQDn_?!RE!@Zq7$U|#7YtsL(^(RannQF0NyU9+XDXoGJSOe#62i+Cn2s> z%zt&Je-*@NGLD?h^o13}K={$D=qxztuVXSp#ZY~w#2Dd@6CE`qy(gV_;ZZTfYK$x? zMX4B``Gm_%OA^2TR~3=PlgD>E&h>~ci8V)03Q;3JPI@pCl*)=z$8aXWy7LDFC;f+d z0&{knYhlhydYVe#l>u1yxn}`iRQ?>k!+q|e!92Yv0dZ?6E(A`OU^?Ie-md6NRb1%2 z$TWQr)8eb|ksj{SA4n0eIS;i!T*;I_GCAo#vA0)Noa%12Fef=Z=cT`l?qu5Q-NjSp zbR#KCja@YPqO1k3GlD9ynT9o#|bQUz%*rG*bGC-^L+AkW{1 zA4NjVnzt{-*7^Nf- zcom``(KIW4>L%d7NZcEVb9Z9{y+)|4$28Ij$&ax;8j2vf>H8{!)zu}7yJtyUH9I_BrcP$896w2 z*6*6tg$p4Dk@xL%ZQ^RMCJ2k$b?Lmz3o>D9dUj8c#>zHz9Z2F240OW3pjg?B*&uO^ zSefEm5h-jXE#~b)A9SI~F3hObff?^gmk*2+xO{ zMi(JocOWZhq%)BSYp>GUg}R8tz1AYEr9asVNPmye9eyN+G>JNt^HTf^^4?$icr36I zuaF$=u%?{;N!_5`$OK>UjY#3qlGA_fAixidg~;vP!pU<>6TsiFX|85$Zu1uQTf^z& zI@7o$S)aHRqDYKxy9$#_-+}Qe5%27jyjuBPpHW-b1*8Z89U0eS-mS8Q+`|m-hXc=;4ji& z?o=0Ho+>AOZFj(nrB_!WE}bO3?CsFrDB2d(`nfa(_P`y$JB!o(OS1Yc*2IZD1kWi6 z=e^y;-h$ub<1(UZuU=!f93TyzyXHyy7z^KLKb$9O?xJVZ4HK@1`V4>RCpXs94%491 zXmA?PIK_X2x#3v?&w#y_OE(lKV>%db7f<{x?U15jMnuUa2jixT!^ajTGv7m%8qDWTcY}b zCa)cvroP4(mb4w2ct26>$sfHE(wX(r-Hn*G!wYr?y)?{74yg ze+DB*_koG9Rd5&5Y~EsD*w!e<(zZnWXInh`bmBjZ6AQnEE%XX|BjP_>kW9rF)f5YS zFu~;K%dih3{<8&^kJI!HTJTyQor=8jVYuja%GI%Lr|}~5QoPq8{9uFEQ9syV+UW{- zvKB{5b+G+*x&xZWtTt3jAk$7?g!;IJqS~o~XMKREFYxmNDfJLBG!Bw&r#&GKC8ZSH zuZ%-ea)hGWX~s%pr2*i!q|mcaCs3l=X?g%=dI87FDu%CmM-Vpa) zk1~B_Aw||h@{zkKo~8KeMvAP#j(y%frBl*lPolq)BrpO19W`mpj z@oL1|=i8F&ZSnE|OY*ssP|Gtc$>;xu=l=Pz)9=pmi2BY2;J#94LR^)C4ZkNby76_q z^Z266)9Ty4#%W^K}xP5usBydzhsxR*`1&+H4Jz4c-IR;*Lt4M&ioC0sSWf-{W z8uZS9z(eCOQD>W?^H3+hPS=uQghL$>cB(p--5R zU_&G=J67S_a^28PC9S0(t@VuwF?Ho)7%SzSTWJz}6!^2z#!|nc&xzip7`VjF+rU4% z$j(OEso;HsHYSe$4m=js9N|=IHX3svcDGRj=uKA;jCNs3>ZOEaYm1B zi5O@wd~C%w7>;t`1|wshZ7@erBz}WABLUN3{>^~jVD3SpMNIf!7M9;&c0le!ws3TV$;7%wO!NUhz;gTsa|ur6#Y85cnHG+2Fb%Qxl02*izJ(m-A#{Kl2@Xa2 zw!s{LENMLt(h=X75N(4QUeP4@3Gi>CjoAkCMk`|{9@SR?hb~xc$26E<(~X__#Ce3B zvJIw8Wjv?G;!6YG&vJBwVf}|2Ow;c>fabOSZAOWcB`=`Z$&%MY?V>LHkdxPO137y6 zmZlCMvBOMoD;u3%)V&SOM^+o!E|8flzlZvQg;F9HblZ8zmz8Kls&&{R;OCd(W&DK!iDQlG=bg=imc z?*~y&mfI-m$#O46Jy||aQBRi3AezatM;Sakn~x<04!QUkN`Yi2%a71UX88zt2G*11 z4=9s0QLvpXXQEVT=nnqTe%|``@VxJbXcwQA6UY6m0nAi_sq-366cdG zjO}E(Kmum$%VWSF`&Jv6$U{yZ`ka`V2C&;;6U^Di4 z$YeI*ukrI^7&c?yRGb9V1YecG33de>I$=BZoku~jU8wqmEF3-dt&cG#(t!7~9DnQ^ z23Sl?1e9yx=&^73a+8Ou`|?VY;D^A^ zMH{nY-|bb59S_x)h(ofi6HGN@UozUOI9?lgQ*y#i*|D!Q8b518bp_tba`f0I*Mm7( z@+mfF^vF)S!SE3_+h91#g&T~FdA7l{jBGGHA{)&0Q4QurBzlAif60l$pDg+Lm(Q&_ z^er*lV4lYsaV;SAH-2L0AnNY|n+DUX8t%Rlt`4YH7&Z-NRjh+y3vgRN*Ate6ZG&k6 zm|a2*26UT+qZ>>QtV+ei9N-Hr$8RtbYZ()p0PVDJbc30($>iY>@Yl#;9zt=_V3r_# z+hE?tkR)k+1=24h(p^oo4W?mplVA{4!!H>{7_$v#&je$qIq-JmMA$J6=8}7iom+s9 zxX6xKU9Gti!!bNi`M~E{j&3llf0-<$!8ARHo{P!yn%hg9Ecpb4oh++~tj{dN4?KDu z^#hOQ%<^j__9GK)0=7R{dh^i!afmk5LLf6)R)@N-g;F9X%eV3!=OLI<9RPPDr7a?c zUV_R_mY1T_?k8m=;7LB^4Wa1Cay;UQl|_K>A%&iWwtx~fS>BfkGrNF4?QB1m-;gtt2@ZKMB{Tw(oh%z* zJ+jM3$TP5>EEi12$8n=zJ6XQd2W=0?2Shuw5X@xRa6K+pBm9dGn91@1WUD-~qn$`& zlz4ftHThgq=2B0V9R@^}Mfe4e?$g@gg3jF-=7L<|26=iB*}JQGHmpn1jiAhJCgNneQ3JTS-O>C?Xf$^H1KbCS^0`(TSd z&af}x1jw8|{3l8L?iH%MA4LA(n&noU@+7{hYT{Iud&lc5pZdD z`ablF#B=IS-~&s*NBue!t*HgSJu)_><%2blT1Mb`{L2V@i(gN<)$it~iWrD906)PI zpN^BU^cM0ZjKK2MXeq6?ATB;vhRXmguB99Ze2zkI(SdR>Fbb>17M&#TY+nI8mKmy}-q1-s|G2?cn+%kXya$0nw+&)lg2;}aRQv)p+x5qZfJpaV^38!(XhtoDQtlrpMLWYO z-x6?XXC&nTfvag}H06PTwX`#a@}R(B+L=Uoa3Gm>CR4uE>E9DGT8o)eU1%rXLuoe|)5!ngphZe|2{wK>lGa+9@;0KYX7BpHy%s6@m--CRm&J7A@Y@yRL0Ktux)!9`y>hVQv}!KmxXlosnge27 zU?F~kD0-*=F7$&|57WW>q0=|%G9Wqq=UoQmecqYiE?FAkmRe5#`9w}p=Ehk%>-`_1 zpzG;@L@sgP8uwbNCM37J1C3}GX8VL>`iD;guU1Zi4DETU_V*B3(JA5Ms&6%vnMx@cYPQ;ehPdBi#UzvD$jJ|9Bl%NE2T@&!a} zbfHipyn0MRRZ zjWp;AAZx?uH7$T%^;;7ZGD<`}0%TtpJ&&=vb7ApZ`dpIid8*3rui`ZbUr z!|3ZouijGEp!^0#c^tZSy1v*R=rteoFlb#Mjl$>!G@916`C<;UsX77a9!4)mt7%gP0y54=CpNeqXuU~jFlvUcb-Hie&344L6BoD=Xz> zwJJyh_*$50*#aHEs+#B}7ogem6KQIa*ESxhCUizEsmUH2aL_4L=IYXcrC8X57Fbyu zJLi-c3z8G)m1NnDQNQdJ8z=chs<&5W{C~oP-l-5^7?MwppzrIBHVN-GEviM8ZKeIpz<>8QlZG z6rni@0~#QZDS?=TM`t0BC9D8EVG3~pUOSHql*I{bkYa`?GDHy<;3f5p0B>=`nP0v| zm=WMhof!ejaRI(#m=XAw{A!tZ`r`t8dhf zT>+&#ysCz8?#`z|t9iW;B|D9pH%Z~D2v3;^MXPxYIxfJKSw`R|Qh2%%7w9Pzt$u9| zHC(r41gfI326+k_7w9Jxt>(%3v zMv;}b2W?Mv78F_iayUYHv8p+F4LVDJGK!@vI!?~aE1-I+6u&j7M*EznN|BS5S5yP) zrv-(rUy~48Q%)@*kDq^5Ys+yA%jNwxwN59Q^TQeh`cz~O@Ty`CpE8|6CNLwD16ORN z8K>z-LZz&{(W@c!t;imdcc5liK8aPQ>L>dAZ!lTqO+oKbMHOi;|8FFp$M0{e%@uzx zk7V-8lOmce75VjeC%=iWxxeCMD6;Yn)4UD<@8#pWD>e_~Iskl%kME0&uLHoB`}l## z_&Nam5g-3oWPBX}{)Ugg85v&(=&t1Ey~wyaKwqa%8#dlie@PKfpE?24%HLAHS$QW> zrOK_u!scIGpgIaH$Rf$v$U6E-H^1)CP8pSncK?&Kv|N4;)W}Xwn<@xAC|}j~#(|l; z<{n?+%#6Jh_l16u+PxEC)~t_uLGc@9B*pH6MI!>UdH$0*5M9sXsnHzOS@BGYCs1?L zN$_GD(+Jo?M-pNO60>IQ#=qF>$%bK`b9t5T_6_%l;P(*2lTTvQR8wMA zBd~PSpAsu2GxYCn&@S{wS zYOZ?bc7*=0p;Yz?PbN%Yiw7fA!-jbBs_NL#;yV#)tV22ZRS~#L2L`V|;#F=Eh4h;1 z+d#go+>Gt;N>wPAmG{$H2rK1t==o*9&f_=-NS zWhdtl<^pv^X=X`PNBwI%SCp2KDFwA^Ky9mKX=AH~#L%{`5;@;NY@NdfqCgHLcdaC3 za;F25gRH(V{-qw{miQ@uDPx>Y&9$kW6P8ZxE0Oaj`ltt8Qg4H_!>tErJ36;Ve zbyqK}{aW(8ZN8cciKQ?{aRky@C&*K{Z0_gd{f!t2m_Z~u1-!A0K9L*~gdd9ptpVb6o7scFM25#?H(DZ=QTt;;>GbTsOj7FB3F-7!9=Tv*7 z6NkbH;*esHTx4_0J+C@+b*x^T%YJV%^eND_w|WX#Z7qT^K1k;EL3nf|I1RgCJDi}M zY<_0cn+kA|C5Ye?g8VRPHt&3U>%ia^O5zg*Qu@!$@Y6gT?yUV-vW z%hoyI_QBp6=*~s!+rk^~SLiBYnIYCG=(goe2tTnCIQzBtgMuU>am6$R{#_e99o3_b$9Uq1}m$(s)4I?IkI|G6xGJ-d5z zNpOOEMkkXG_;~Li>_5drKZfCMC6(I0*uPn7eWKF(#9OD(+3T!AY5ilURrH-Novk?0(CCV=axd1TH} z4U(+vWb&O}Z($_YuQd~CWke*AL!>)FR#*0SaM)Xm@Vz*sRM_QEAnb~dK=)##K4Nsa zv>ga<0{qMpLF}YWfa*2hhmH|Gj4(b7wLV-gY~8+Y6ghv7??YN-Iy&I{kRFNY0DZ{j zbKc%*m^hC^ikY)?h#_1%;T+4)fO~%-TxpYGa3I!Eajs_B^H@j-BJ5cCr*CPKKfYSHosbYU(S1(rn@oJESC#PzcIVQOzP zpq&<`-~{Fis$ka!m14=u+)&p6qobwnVrq4xboqs+o@r24OhBIqKOEmXIfS zfy&9`w>i8yP)i@=6{(0XaAcNB2l`+nYWpCWwhvNvGV7B2c_g>k_!<#ur6fhV9$zzm zqJJ(H$ksm&#!hCdTcN%rLd`2;PA0z@;_)_!xXnvo5jz-U-kc6}L?mk6Ceyl2*~!c% zw6-u zi4bO8PZn>%dlkWGXj!zSXL4^s_?CM%H>~m6fHcGsDQKd*i#y;@4zCKii_ZeZjfgN> zPX%?6jVD6b4eo4|$?vduJHe15=VK1x4IG@ztt`g3BT-xAWZEL9>}0+`Zt&g+OH$;# zm}?@fjEE$1h;(cRiul>Quj182xB(6+TV~VA=3YYHwb1p5)Q7u3_Uqk17z}WdC5RBt zCwENDIZ*{8WtQ@l;XdM?ZQr0#jWlcL$#tU1IlnEl|pF&JMT33u54RydDDQiVy zI)I!wIeSOIha)mgtNi<{4@V+a1Lw_Z;0wDNcvaZihhrk=4?#@r!#j~Pz7F_4oQ=eE zKzwL+JA7CwpmOfFJ}iy!;bG&$F6+ZGVQU|ji=6+l@5B1YbacS?;lW5u2gHY29()K1 zsOI}Vgd%)sVSH$2eW)UA?ZYJ^=Z{8AT@E!P)6oInhvt!(4u}s6Tf>J_0a=*^9o*6i_Ykeb^Y` z!}G?6r>zg0gspwpB69vj#MI@mD>5A&@O^kD64L?tkj=M0ymc_K2ZwaKh%=-GJVSCa z`Oby+7H~afC!ezNWW063^B}XB=EJex=iptiwjxgd7Vyl*$>bxc-WA)zwyaEBJby8Z zx7&F}(iFTlIDEgH?43Lj=>lC}tLKS`lRcOVc|P4R-s*YYfh7eO@_EqBw|c$6-ve*F zyP?})_4L)rewB;iozOjI^;`_&na-P`KM37XtLNI+$>w&0-YMulwR*kCnL6*(oHKr(IUwJ=T}A@>ZZu z;^!#7g@zjDEu47?2%-i~%Eyf$=nOhjKFG zhr`6JC7SS;T2c>Yn-0m1mBo~jk`2*@S$1`z%_mE=>2C_8ZR-7lw9SfQCs%A%(lT#m zG^wm;%5-u*L+`zc@V{|L+oj+H`M7*`M}lV&_I4T2jsO!KZ$$XP{A})4>6Hhmwk5LL zn1zgK*oAD^*8#T;TQBVvF>gbl_8&8|4O<9znDYId3 zriqk?O7g*9jN69IIJyx!QkuFEDv?99VHW0RXmfdqHvLVNY{L%QtQcXll9o-wrYSSy z@I6rPK7{w;@CW4(Lr#z{fo5|HZ0|6_r!9kXkDe6kXHkhWMiRO8wD&E-vAc~aPDYyO z4y4ivrjp3lX}qck*S19Vmk>kP-+~P8D(tmJxTj@sKC)?2=>+*wMmBfz^+q6^Yl)no zY?@T!5-^CFd_~e*g|Nnw-=}OG=Z4DOc7z|rA!R_p38piJ)$IYkgfRD^5>PIFX9PxJ z;LqevSDt#9O%^XPH%BaOKmH_@l!rUm?)H z4u_;i!3lm!XZV31uQ$SjEvPR|^Q|c_1G=eJPr(U3RtO(o;A!1m2-^`wpDkZc*Y`jz zBMPTaJEG{RlsjyBuUnjPEUx2oi!HD2o?;!J501!)!=c`eI8@pZM`Y=@dNZzzM;va> z<#mQ(aV(s04W$$223+3C;t3O#ge5OBhi{iCcEk}=X2g*^X7d4hZ!1hah(ijSf)nI} z{+XRQ62F45EjN9-&JDi2vrvnB9Gz{s=#iS6czJL?}F(6wSDKEO?>Kj(WlVW(MQ+k;@ImS0_Z&rdmQ3S#43Lw zSNUcbUr2%z9E~QQ$=%kxyAZyp^Z0F8roaEuhRJatT2Bel~-8MWbZNt;DRJK`da5Fcr-+wbOF2aD3#el!s;P!6beI=SG zw%VXA+wepdQ)ab68)iwsuSt0a5WYaWYYwXI55jzn)0+wAL z9LAhX?!xCyfiB#oi*I#jOIEtK^vLUEV>~@AY5C%k8aFYbM__@_GW1l4T749U@z@ zL~Y6TgX{!pNq(}k(G$Hf2xj6CYNBI}+Cc|C-~RNK6Odpp%nzH}bYQUaq~y zJ!@-Yb9}fqG^lIC$iH;)Bjv7$kPFv_^-^Poe+?F9CXw84=7eRbNzKvMchAJ@8vQ)p zT<6^)p6QyrHy-WX(KUHrJfE4@HF>|5r6wQHvee|Zcs|pfCpEcU%Tkj&G-u5^II>gg zw^H7v(~8Z6{GgWO`aph2%LAz29WSk5CbLrWO242Xu|<06fm0PqwszW03?M z0KS^Iw1U?Kck;LUnm3K+72n23kv4PyHqQF^$C0=W_^sfRNK6Odpp)}!5P3TsC#~T0 zbG8*6jtjQ}4eC~4WN8IPmR4Y7X$3}>R$yeQZ7u6s4#ewPcWrIIEFS3E{#RVMwvWVx zYx`9#OKl(3vefpmxNvR1re&$^90pR0_ORfGOI7S0s^B<$x=-cojYeolP<2fIXiNtlluhrN{Ob4V^ z>vPbIk)+hR1GZLUB5GBGx>k)WwQ6LkRU=DH8d+*m%en@yi_+`nuY6)m+ueJ{8n$Q8(UR9Kb zuD$w^1RVfgkGRxcL&2T=Hom5@(G2!&w2QQ%1F(_rrVenAAn0t@YZaqQNxfiTCt;kKn z2@F7adc9RIk@@mSZcY4{NHbEkFd#pxp*)l5qhAvTxy(xy)Yo-Cq%dO1a6|@voGXK{T9t_10iP#aYn^CkPFJq*f;|J z7naMKK5kSlUcHn^y5OdjW8FH=JP7MpHAv*Fyk}b=aH|CJ_N{|FL<}Jhv+5(%#JmH*bY!*HL|&)Jb@Bz|w3AzA zo-dm*q^ZP$jkYrYJ)p~>;6-pNkh@KnLjx}CwwDuqA6Ci^tuH{!Qaj5@ldeU-cWJ++ z+#VG7bQ%3#ZpK}7|Ce&+3HSJ*F2uiV;q4ZS`o$V8>w2k6#A(V}a3+2z{y{R7YHZzD|xOrCWJb_!2TIZnGccJH% zW@Gz9QqGIx_;f+b?a^J;pIV+D3;8cC^I=@|x0Y{UaXJ;4O5Qc>uuA0oA#g#@B1xh! zWv2rux>-KnAQIOB;2V9sVI-~tz@PK+Mv=G<_{G^c64L<|=bh?mwk79f6w?Fj#g|lJ zZRf7wK(1vcCmYqLu9XJvwE%OkvocgT!WZR(OTP-uLNEH24#z@Lz2h_lo1(tz?kVlnYSbtv0h|X+^T4Kg~@{*pj~$ zs;CAid&KNSP*$qe%dq{-MKrayRDtRWfM$zZDO9%r!@d^ID%I9R^hVIUg8YXI3kR1^I6O7NUHY#8|4=-bHyjg$m$y8$(I^PQTC zQ11lKhFD$7B(NGWH>zt)Xp3*>J`)qkY*H_Bj;ma@r>SC7!zlX^ud?j1K&o7p^}JWg zVveEV`honVfV5d%gUed#GNHN4Z`rK=YLANwHk`gijpD0=Haupl;wy`5j3rx4>WZ>| zOBGxNutE%5Enn*`Mw=RYuc{4TmD*w~>_f&_t}9LWD8jYj7Ye2y++o?d%hOqC?(#8+ zx8Lx-V7&X(VH50Tqo5i$suM=*wvp1;mAhPZx*0kBQbysOrd)3`MWHt2A7zJ;rPY@* z*d`+zckAY;6%(OYqV}4Y{Y^|ZPz>(p#Oza`tWX=;BAxSMBo^K2e$^Pu9C z^_dCP2p5Hv=`=>^rJBOpVtM7eyh$aE3E)p{=zNS_>2XXyPr;7|)bpH(`rfb7fqsrO z3)K;5ew1wRDmDMA>3_i90TzlQ>mx|rAu+pc46nN3-78k_l~jtO>m`MiY8EV998*1C z`ChdaK!I9@-^r2yGs8F2(@ip1S<9c=@RMZbZ(u9HykB7=b=E;wsLG%{{s7%Zm2G0N zP)#Ax=b1*0`Bwf46wO?VZdDvxFXlF?H6~8D|34k>@x9z>Vra3vhrY>BF-OXu+K~Mk z_S{w5;Fra=tA`PKKo#LP?sxufTB0_ah#?bky?PSBdiA3GzK-9G>IuUMj~^%PAjPuc zd+<*i%GZAS17ByUGL<37r1oU>J`HP6?pFs8Y!BWJNp$v3N!8h@m@JC-JN&+ITxuVR zFJWe#`qm^=3K;)9!G8eWCxGBO^_w9u#J^fXh(T2?(FA3js39;u{3(PG2zxZ)N<+BB z5Jn3j1%$UqSfW}RLM=lmRBrcR^bE{NegL7m?u$>9EN6(_^ zAtv0?H~lT5wnfxJ^#`P>kk+Xz!>Vam)m|qaSdP~WfNxND8Jrzj=A>0>gi&#>-sl@( z)%hf6m)dMtZ0HY4<;i%!N?wU=ysTN1tlDt!4XI>c$B=M=+5ssJRf8T6skcZkKq?UF z7^HU~-LGmWd~_Uf3)Ly;YL=$-Ii&j`tyAYrIyQU1N%npOeq9-6FaAmGfbV&cI%J~s zLpfds!-VKM{&VHk3wi$BP$t_!EMND}nf%vFifM@|YfN8ZvWOOpWQQSHow-FKF>_kS z%zl|& zoAVmZh1^eMc09gT-NG1{ixTCZ+Ti`0&Q=8Woj7&{q&8(yd#XO9b*iI@kuH2}yZ9!u zpm<7zZr=g_)~oLLU8z{PmfX#dRbJu}--1;ZsxzQwBaMgD2}lWEdMUVzzg4P}N$oz# zZch{1gV08GrwN6}6=$v#gT!5;wi>*w$yJej#E%XrLi^(i$f(hOUyB;f2FB#rp@ZPsPBweJwG{}2Eez6Fw7pY1n zJ$BO8C!%a)mSFQv@IDPs9at>B8xGx~n!rSh2op2^!Nh;UkznF{IHXMsj4*NFA56qA z))fq&VB(Kx6B|`tgo%g(@-tB-Dtcl#bc-yH9Oq%R{6)t(^N}w9@AW@)iaXzCquB_o zHfm_QItFQvdI7)q_XPhHsGazC9_Vhh2X&0a2g198GF-vw04x-$v(WV`PfiW!3RV0| z_(d2C8icq0o4QKSeF@zLRrIlTK(fMiP^5xJ^&KklY0wG5_ab$*0b<*_&c_D8pai_H zD4Vfxa|*s6sj)4&!t zO_I~FPqUgDLCDYqj;8%EQ`~K!aNpe??z>nF9&(%~O=X@$!u(Sk9y!T!ejM04aG^lG z0I6n0O7B8iBhqJ(UKi6sn0ZT%j_DvIPc*LjDTX z42a3VaL!^do#=(AP?E{HPBhtsBvEIp>}O=l3k55G>eq6eq%vk>1uzZ?6sRmn%OIg) zR5KZzf=uLqCJke@v_&t+iIbKl(`IjX7WsLG&qldL^Kr6TW1g;f(qoq2F*^>qm}Pt; zlT#S41m9(JY1%cklilyqp#;?8W8&JCtj`d24Is4=sTHJ5NPAReNNS0?$C$a^m?=~@ z0eBvihg5G!rM#wQyx6o+or>@S{=wVn5#E}W14bwt1)N(d;0g|w5jiA@?BzMJE~dT+@*?_7Ln9BJxjzWXU=^bcV1RVc-yh{i(Nqbfo| zMlX(1sA>QpxlkoRdR3&BBv+;G21qR+EmgcH&cD`3g0&*o9C~A1c~q4*kXD1USnje} zwHZ)RH^bkfQ@ak}gGjJhp!Pxf7}6ef2oeWIkBJ^fp#LS5-h)&K=@E55C<&O(;CDowO;jP`GE*4~Bx}mHepuT==k9)kI+qGk&~m za-cTc@&Vgib6`W^e1U2Yspe(8pmz&e`D2F9%WUem$|K$+0i@mPfcWto!rKvEDcLFaytdD?PX4KHE9>lh0E*6zdj%zC=W0kx)WuPB z)>46OR8@>Qn>Af)u)9mGc}@~=cA|?F&vnifn$z*Jg(09R-m4R^ZK|{L`?Uw+#J9-CE%wiX(6TK#|#G za3T~p2%!;?cLzpGfSyl&rwu?=-rN77^-jsn9DUPC$+a@QvyhhMrjr)4@^GUT+rj0cz@8hK+aUJk)Zj_G1bb#*Xe9N3Jt-#yR>U(BE zb_ZQ5C7zWh`-UzPRNt$+O8~^{-w+XUb;Wc)gLtwjXl?~=9hxg!hiXvU({fhcA6Fq( zp2V6yVJz-a8+jB8!pN{avnN6U`Y|z)``bL|U(@oY=W*Tl zHQ|^Wcz;yL%Db#T7{|p_UW02Pzph)wleGAT$oa3qeSK%(S6!|7XMD|XM&rN@T?rRN zV=6%h{6hXS64L>cu`_vYXQZ~Ff?CbYNC9uqPD}Z25cjfl0T=1Q!R>f0{LASG2OsqZmu$_4eCpd_)@M;MV9OA zE2xkj<;V_LCu&e3C9Fho;Yuo`n3Y7CkIFPfUA5wF^&PCNP*UJ-MYbom78NNOaKWp{ z1m6*b^x&9^?7_EVf>^8Aa{`};gHGcZumcs3!{GvT1i%lV>{e9cv#N{Z zhG}!j`x4nD?6x{ILC8#IVf6-;^|_AAK@5|VSUCV{=dhJ(Vr7q5abkTdTKzfHEDd(1 z;HQ)wr#(ojbj7PbV|M19!KVf4Qkn*dpNK6`8IZ=+qcjB4?wFdI| z`poWqkaChJ?SV9~0kgUp{Ey&dp?U$jOVF=3s29I**%`-q15uW!i}6DBgTc5IsA>$ph?!wLWLvOBs&NFe z&>~2(NG&kPDa1K$5Y-ql`^qm)WFceOiC>(zFH>$#9a*cnIgMSOR=7DWd2zc)eQ0Vk z`8wArgW_l630~{)X@6hg^YTXEc2{yo%beIYs*JOuaOgQB>gIsDK{mQ}GgnrkliG1jg%7ZB(u)pl&E#6j0w%Sx%rvtw4=yn%5%S zz`&z5+|T=egk1-CR>ji(Hh~lf7*HvKh+Ra|@g*byw)JO1xGGkaP-@jOqy%+K;t%$=c-d1|8MS>!c$6Z{%5NRrQeG#|}uwvH()JYgw7Q3@RapPmLI|l;hr`2%H4bBnr*pRW9m}85F4uFNDekRfIv$5=W*IcRbwV;l_*xsHcQFA5_-KOwLkZPJvX+ zV!-cQ_@So|z8m4505?(1^KcGDP~+gcTu@!%SK>=d6;_#Au+<#5#mV_LX- z!_6n{=2(K3BDHDvrMZ~)wA=oi!JwGPeS8oqrGgsj$(+k=qx2>G!-LN;i~+#uuw zgw*CJueMI^FAqYR)J;9%*1%>DTTLBsB||O!?@IUifyMtS!loi?7rFO9EpngYceXpp z(5Pkd9I~C$_+KLo*>jx*hA*+Lt$k#(F~~x{&sSEB;ypxBJ*-k9y=uK8HS+4H5{bA$ zd)C}sq|C=KRoSqQt?r9EqT+qPV%He(?5Uf_EOrMAwROyFx6u?tn;=h5@Gf@8Nche% zW$t?mKLVwH48p`nWJ0P(R^AJ6p+i^{?GR)VyjOnq#L)9%_6KML*Ju>ym?258h9XWua`R>rajj<`$KrStBT6e4hhIWMi-L-edakD zVZ(K*+O7I8<=(41=1XQ`GN9634){nbqZzW>E{SoU*1`PubC@%0&q~+QWDkR8X?Lc% zCc{-GFU*W`9$c3qLMX{fmv-X}wn3Pto9iRE@XU72O@V{y#PcY4(VtC+%_2^8rP5HG z1NTO_$x&e(chQNb#aHC`3pV_hs}z-Z`t1FpH|QbdV+AASouuvoT(nsh3u zpFs8QNGj`j6sAyhK@B^Ne*1uWU8qAqoqjs~jsf*9s0D5y;{EJv`ke;9erGVd7g?NG zYmo;dEriWPSgEVBFe&UY44xhM?WOS4aouxPb_JU*v6y%9Dbh z?Yy5KM%^LuCVX|gB}LuXzNcMX%bP(6DRW1fi|U`MxM<3;&(Q!J!j-wM5%|FB z@G>{R0E~B%j~5x0b~jrHCzZ>buT@<3SgtrOklZFMCsWwy#W3x!TTJ>6)Y3wV5ycPH zbwJ~70HzR6nQL#wTMmyyQ0)`NTkaMcfFm#jqO%Ojo>jCWA0IacUx_;qZT0JCvbmsN ziEC}{Quk^#vzqPRG{0t=l+;p@Q4c&nK}MK+I<&v(UTE*$|32>=&` zfG-X3A|%XE0E+f%4@kT9>ojuac3IF#auRBNAnz=132E2adM`B`Kk(u}?z=#G6mFUN z1)?u^_n3?J$dY9u`3xM_8I9R(HQaWLC`X@wpAlD$z{gZ3)u2aebeF(qa*ZFwr%&K> zca7AK#QZz(nNp*+_>2#HrqyU5KGOrA88!A7p9O)>y)}*$pQi$!nKh0VpBDq4*)=+f z&z8Waw8pvg8KU}@*XTtTZV?9nU*owB1xPW#0+slTN-vP*~?NlZ9Px`Ki=8$eGEVx49Bg_p{im^JL3F zgEhxHf~#BSV&ID1T?qIMkYYCm)R||K8U*S#P)i)4bKJdf&vN{z#yAtvmm-R4wuFfJ z?nVS)Rsvp&+(^)sZajVu-L47LkPWB%Tp2OINk!n_j9?+f!U zG3Gr@abrH#oSu2DFh2xl*M)g-f`x0$J>tw4oAYpsd6zKH1oJ_{d})k%WSsd{bNZN1 z{Ds+f2benv^PMr~d2!}SbGEXWM+oyxV7^|MABiz*LV17cFF9&mpFn=0jPQ{C= zra4<%%-;!fS1>OX=323GJ~+iTbp)0tyJrZ zbq$Y{ahWSI7t44QqF@h{pFJsT<);}yP4h@guh?>#n`H6q1<6a5yQeF{%5~ZTo;OeJ z@^_dox3zDLgruFXXlgsYdNP(Wccy8;o@HNDYN&{@&A_l{c`>3Qvbx;)Hiz4C6g|!o z#N^4FFgG2sI(cZJmC1_oxn1hkn&y-yea{2#TJu_JDrMWQOb9M@TSC0V zR36mZqmZUR%2d}JYPh}RQ!^D-hO?dO;z|qtalTk?HbLb%-(@~F`;eqvw+Elu% zIYjL(qTYk|GWnX%Lnf3E*Qho&DY2BfnzaO=j2lQ2J(cCVTw?uU55 z{b;T{2(&C>dD&Dr@)dJx5r(vz{}pw`Ne3C!t~3|7Q=DNUBHJl2`p4@TA8ymQ;qT*U zY%tw6QDiPw5Nea39oaU4F(uNr60+vF?~zBP?l)5+C}QkDG%xO7eKU*}b~?^NXxU`I zqQ|^5^0@cBk3r(i&UxCReWbk?PkdsyF@n3i>ahsvH znal?w>bUc1GW>8;XA??@`v@ngTEUZIl&jL62zMS{{rITgL+*6=p=i6}-vCHbL+NFb zQU#FoW36?&5{9w@NHvt5pq4n|)KE_7>J23gD(wcDBsG+@xsHZF%V_+I8A@4%A?;2x zZPidNF&7PGfQg71$|DA#p``ylj^zeZLwVa=e`6>ekhV`DYmV!OJSugw4Q~4L{pKyx znTGOL7%dE?xsNF@lx+X{e5QTZQ?!()XN$b?uoi5IQ!ZxSn$I zF^3riFYQ#E&Mx0mfH{5S0?aNC_^S#IM`(*~fgN5gaV!-N`2^av;;~0}BIIV6>x5;2 zc*ylI*GD|$u8IEQ@wFi2!igJ1#*hm*kM(UD(V9xIZF$_t0vybT75;_5W<6++o`Mmx zHnlg7HBjA+EqG7R-4Sq&pw9%g9u#)E08rxkn7hPX1FE1W`=f0p;#A-E>m;kb#9&|y z#@fg`>vzV9$`^vO)D1Pxz)BXl=5;WYFK9U~HAT?;s?HJ#G9l{yrU+?6!pFk-leWZRLT&_D|6qOLG)(-4{3}++Ues>?|}#?cU#OA zwsVKwj=`)xg;PstW)GJldpC<3eJ!S20y8VA5t!NL0y-u`B{Q>Boi5+0BsH_&VP;Du z31Viiibd=I-kQ7DB#uEB(L>Dazv8i3JjBf25SFV^Tc$fPvo|9iVrFlN$D@J}GkaTP z9D6a%j2{&nZ%GKu?9+nxvuI}H5%>XMAq6wzSHvDMj#ORb!xsf@vx$BV0f+rdnnrlz zI1b$1;KuYNs0yLB81={&y{pWxHO1~Im?L6oydgoUQ0t{z zt#>M@a(A_5@84K&UogH1v1T$~N=|G6XQ}(%B9B<_6rlG&0ou-oKLlOx5^BI86QbU| z;a%!VE&8bSt^u@XDCJL)GF7DP45g^|7Ll?jD#fgKu&GDu9RO)&z2)v=1Bdq7D`Kx% zu-D;zvXP&&C0=)BO_v%eZQ$$z(t69v{}re`K39O764>C)5u?#>u9ga?-n>$-w3yyp z#fa5aC@lteztUoB^8`Qo5X7V#be2dhuvEt6Rd zf4&Ktc9Ks3Y_(k2!>Xz)ZBUEVP{yMQsn;hMT&PE9c%X^e107gC3%RU0#GNJLCLm~; z+dc=Md^5p>xi0zG6AVv^S|Xg4F1HkmEI&{yzOe5B7w1j*D5AtQg5T5NC~*gY%DI&0 zJ`F|qlZoz2(S7p|&0{T^kAPDE!AKO|mF`ivr+u#i7rCe4(vT9j2J|E#OWY<p0}{}Q$ftW2U6Gle*|3STGS+Fn7v*6=HFJs2I_ zrS7sQ-w^6l=Ki#DV^#bW{8kmyu8ZlW9SP@T_=FX6VpuVe^ZfRhFWFiOr5SuKX25Tc zJpm17IDWb;3CpT*#g5-EBc#eTnwbeQ-yH(~Vs|2b-Ib(TfjSCQmE(sD?=x*{THIMn z<~x4Ou-MfBuB&i3P@_R%(#X(y%A1x${qMCjHV*Z#L|rO&)PF7*RsSR`(4P?1zsw}n z_u5oM^nGz zreh&9EV(KxIbeEZ*Xo;(|J}0kPQX75Wq%1)^}$o_d}EM!c`iUSZiu|T>@;2GtKt}% zzF817Rto70rR_~fJ!ZjUf$IzNTn(%>RyT>b*ATSKJzthe$*eJi66S{EZRjm{QWV+@ zcvZTO;XdX^jkeP5fa^wcDWb&v0KaBevl67rQ>j}(&2#*cT3y2hB|W)TNo|%izohma zU^Cp<3@|BaevOTgDwjJ8AImgJds*tUP}2NPWU*_3-@~pU)eKY*P*slKpxoCud@W%~ z^E;ID-5>ZZc02Jq0_e0mz>vO_RritRyN}QB$+gZ!CN31+v!`~QtGXv)(0!q!?u4lB z<4sc3N<-aC1KnQ;biczmqE<@Xi$(Vx!a@BTUQ7Lp6Z)6A9P>GM5(e>5TC5ZeQJM24 z@)5?e<0B#EZm{u$_PaA?zmsdJ{hpT5ey1CE!hSJSNx9?2;3^Ce+V8!41oo?tc1Vud zuX+rD2lkS}3daI#_FE+49zoDD$B*nSFu{bm6Jfu-;Ym>#aEbk11NTP;s&xN`Yu}%= zP!)l_ckufK93}2HP`$46_WO)+HTE{pwbr?Hz5PA~nA$)R7T7N#Y6I&{QfB+jy58Gw zOHgXRFB!+~?6*76Y4@5T8BO+^h;0zob^6OyG$U_0M}m&e=dg1r%Gr%>a6h6Ofp5}} zkqvBEIT>^?+JR5N_#6J@?pc0AP;XtX@fAJw(|}Xm`%@sHRROm_b~ROQLMR_>Hs6aC z<>@?uaGGMT{=v)PMFqotR@_rgzOUY+fD0yka7zR1fBT*ex4ay7FPK{waN;9-YQ@-5 z=?mdLx_~>^ty&!;k>3T$I%q#u0_V9;pmASQiPf2pJEq{L*&F~Ab%y5rpfYo@) z&3CUMV7_}Ezr~JUOeCCxS=RmmCU+;R?kNSM>rv)o2sq;g!Ye_|05#i9HsC?z#d9N& zi`_E_&zjl+7mh-!vHD0W2%_%8&^b4Md1 zJftR=_|#~U)vi8a{Hi5kGhDyBGr*3*Fz(+7AcSoo4f97+s4t>}oMQJCJogvyBP@f65WH@}{Au73?2CH2gO%d~vft^*1aGPM(_G*NA?PB5XKNc<%sJ z3JOiuI*?Bp1L}k_^my964gaylZWI2k26D1Xf)=|^5r%snSbXD5!ab-sthOj!_|KCp zooHcuifqZ&OM-0u8M4dW9D^`R0`}Q~cT?k>9?+qb2)aszbb#X4 zRjS8Gcr0*R>tQP?uvVx45OI$qXqmeS(%vw^gt@=)UV1w`DGFQs;8p3S!d?Ft&8A8> z3$Am`rHB$Y4}QDAQR0?>x^xgr=R8nfo9Ljc+^g1zy=l$-4C5-mW;lMuF$t5dlAm%U zq{{Kbm*1PDXjjQ^T^74;_{|$k>I_iFf~s;gLH%hQwXA$O)Z=F~=exu3TkM+Rw-?Z9 zmu0E(U5)B~vH1pFWGECSFyB7tVn758%!z1Y;8=yei$^aIZ5^rP~*-Kh33x5_bsv z-UbJDHi9a;$=h$a;R5@8JHM!rx8M5!Q~OQA0{bOI?RUOO%51+M0jKs`cc{1D#m2Ea z`#lEew0qo;ar@2xRr5Kp-?#IBf$mBBO~NwRZ#|QQ%#??(S)u)22pv@STLax27)NIN zT_7B^-&aNdCWiL+!!Om}!658+9nEk$Oui7VTJRt!d!FGMTgkc7 z{9pF*_B#kLwcjKxuwO#delIXdneBHaaB2hFgoEvGALH1a{T7U%{a$WJU;f(uE;rx6 zeoOPKnpC&nBrJpdt~E)S?YA{_P~9&9rF{qYZ}7=%zhi}i_WQ8tzcHad_HK9|*zapl zI<#M()wJI)BOw?87*A-w&F{<-Ex?Uel~S|c6EoWH>&Bh1-%s%V>S~L@apwu2(0<*1 zf&D7vWhBS!S3Pn^(tZabo?6*L~bwJQE`7-dQCYUg{2kf`r0vxe|D6D&m{q76* z0l#VNmF{4;`j|@*C9Wm>CPQF}YX|B}P-+9aOmt&qPPv2ftM>Kw+hvru-y|%sUqaM= zvn|HV_IodIY6I(pgZ5j;ICf{hp8=hA^$i)f-|NhGpHTM^$i!s(n}lVs-$5oRv;Ee( z+3S8BD7D{V#*x{6FBT5k@9m(lx7pBMe@tjvzSo-sgMiYZ{raq?{XP;2DR-Bfl+b>A z#q9SWv)|)0+V2G8PT23AnDTe8$mc<(7$UUawfhJ5tB^%Vj@hqzd9{7|t(~uS%y)Fk$ZXykeJz4N?@=9>jj{hx;`HRk{b^s`I-Rsv=6<Y%_PfNm0{h*TH=?<>--E|^`%S_E`z1u}_dg~nv;7VPPVKi;IB37CjAM89y9Q|7 ze`H8s{;GRpOXEJ?ez)ZnArq7Kn}lVs-~CNeX8Zjl(7o^$Z@-5aM`rtN1DuZEF9Vf! zM;O}cU*;BCioWOg7fOfr>$6(Mzmbq~SKp+B_B$nJzuWR41yl8HGum$(<4)M`G|U{j z>0)pl3=!Jz_=5ubRmiPKj@hqzJPi-*yhX-c53Jem3=#JOf|fack^Br3Oqjb5_S+bq z6os`bvEPH~Hc+KI3a(Y=QbdV64t^cR(tbOF;&h1Gz@>%@?Dvtpq65AC{sowhACj=Z zehE?gy}~4Aw%^X|J_8-J?rjI9y1!{0neDgEcyGTafJ(b93H{65h34}H$G<4~(0+YZ(|(VP zgp|8=#uM7_3o-kB#O#;H8LKZfeQew@`yGDh88E3ja=DPpKNwS;S75HQj(lE2ze-U@ zzDhA@KtFoRS2^UX8+CkASiTSVD|9aK9E#c$onZqJ$5(fdiqffT**;C@*#~q zl~EV?4;BZqe3JWO4X(d56}RcA2veZv;S#Q5_Zz}4ku1$wi`#>4W#-lgRRyZjwE%VJ z9}t3PscQxo>P2c#+Ikx}#!eu03aBT9>I`a^P#1!_?KXy94l3_k|LbQ~_0+Cw4au7FdKTdt zru?+Rrw{chuLs-KlpiY;Q+~ZrO!)_(u(vEo`Q8|bXv!}YiYdQWD5m@!p_uZ*Vy1j2 z_%1_Cn(~X`SL&XRru-I3c?0v(lpkR(ro0TyOnHr|RbzQSUJvZ##=maSv=23WkaoGB zj0c&RtBuU&bnoSD=K31>v?r`qa@DrO`D@MK*IhUL_R^#A7wcsjn4-T2cWC5gp)pOn z$q~6}_in^h?vAw5;0{m55ZT?CO09HP!UEj6b-7kB>_sSvC)lS^dJnXE*xhRWZ994i z6?NXT0%qf6u`g0^IQXOC3yJ+0q5L@C2h1##m-Zh z^QPqf2Cii}k@MWLK>D@9KvKd!Fh^7bb0jK)Ir1<>l)Hh|b0o-$x)0%| zcFT%!%!-$LAH}S=2>u^}8{h2!)o>b1xjm?2*9O1m!oAFGL^`9qM`s~*f5B7X--Cj6 z;g@jiV}tIXt8@H;CWnl78=i5DXCZ#eYBJ`29{E>V+pB3ETJemC?SQjgo+(Y zN8v1;7~GeR!dW`l4UgYY{}RWNnIOq$$;8-w$tXKZrr5DmqU~oM#xy@l#LAJr~GRLp3M`enU)e4}y5Io;~hhJ?FV^H59s=jOxiya%oACNrNSsTL^ zD1L1WW9;6*lsz=CC_4@8asd#O++L3@azi9Ty(i`|~avlZEwv$|Ne*Uf}9 z-D3B$P~4){;9kB_aEn?aMrPiNUzV5O&~CLT*8k@4)#v-Ad@p9#jZ1`9YUP~s%I&6d+Xsim*m9W0ZV?s@+W}Ga%qxBh(ScdRVpm3E7ehJ5t4#cl@S0tIx zrrsCu6bsK-<5}xiQc?AeM!U*V(im7u#f~MU3bBNu=%9oY&JrqiEFFcjbYgH{Itpj$ z6g!qosK1uX97#S)CdTe0kX+D@IUb$u-rZP z1O|=&Vu<6)O_~_ev93U_-zkg^asG=!YjCk!ad7nBPCwWR)nDg z-z8;T4*?W}%K$-?4b2YxYsd{d z@C9anz60+Gl{~sHWwQe>hi9pXoMsx&cXxm)cBAmieO1d`eNa(GF}O1Wcso$@T}%98 zt1jfOb+0ZSq2KZkQI^TVT-?eT^5(z_l7JkgS`L0TkkKlKiJ0pPE|`c5h(H9vWDbodz}v?B#A)yxRX`2hN?x zuX{T~_OS!!&fTSuraO;66N)>JTi(wOoI8)-HjZcq&fU8sfr#!tE`>Yo-ZOOAf%Evy z-~%s1$8%9pwKwoKS>YSF(b9pp$#Ro}4!muazJU+zjOvno6{Mu`CmRqu-;1-6mt8g> zl~q*p_EUr&Lb?lv1w%$1(HXXPa!tN%^Zor`{9kH$_K5Z&cz=HavO1pXyMMmFuSQCy zIbLd*)86%j)MoQ|_)cEv+dE==&*wJ2O(yGHipMjt9jCfiO#ULG=X5vr1lIA#5!mDb=KueJ>L%1Ppo&3Nx$85qwtc(UjR?5-S#aeVZ(KC2%b&vK zR;JzN#?Yq=x+Q+}YQ01-3DoaG-2$r50_T$pOnV7(+y3$?XA_ zKj5jc>;$E;d;*HGVAdYWl(>9|m@cu_L*~asbb*MI;He^7gHjO(fr^Sa8}6qdqTJQ} zmlkF4K0nOznA`K(SRiISe|Y>$ zJZ^!6FE6Q3IRFa4Q5-v)D3_G8|P`N?gGr(0$AeigzE(e(E~?b z26Op9-fcLADSa4$mrF!*LGfk3*i8quNT@qOZ3H#LaS9|U z0h|Y^Ccw{yC>!TOl#TNtWW#qv5{g&J+(^>*Xqz8V zIh-F+Ih-S*oGO_ksm5jVB+A8k66NAti7L&xk|dY(gq+b*HqMtQ8|O@vjUm<8*eh~Y zOW8PYqHGU?B3t#e>O9KV2%8~ue$_O#YiC_T#bqmPO7Wx4wh7owg8F>}Wf^gre=-EEH{rC9zCwCn_MY8)c^5C^PLw znQ1r5OuLCOdz(=f+KjT$X2^oqEhwpTXfZ~!5#=LN`Di0_={#DD!|X#jXdlW!`%vX* zA5o6LHk5_7p)9lwWno#xSiD^*3++N#XcuJB^r$Vo0k=+h#6);IP!Y5P6+t_QieTCQ z3K6&fIbQa`0?Ft|$?*kNonjm^(_ zln9n{9!rJd(Y!67(r%}5_+e9FBMg6r&h3ctPEU+C`r}W=I~<;1yfY$|b$d2FQ-vb{ zoa%ZUj2ZH?Yv-Wj+PX_)eHH@{KCbl2v$$OUbe=%Ch_VZD>S5=_we3{?GNxI zjrAS8S=tf(uC?!iB6pzUn(pMpbT?ti$7I)ZC {*X9r^8*^auT&fB}|I+k8IeA>? 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�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

URY5OXcgRzV}pnA?k@ls}2NUD~Z_%68k2e^29N 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

    !fet?DXsYPFIz`1Ah(8fl(ehoW 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

    h9%UeQ?|OlBD)L6y}>x1%vpwc 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 `CoDMGuL24R%uv{nM&VDw0iaxu}?DEHcf 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%0D`nU=x0Gf+>*F|lnFzWUU7J^E@=)Yx>>*Au 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 Q@=sLp#2GUR7$2Sg2RKssUH||9 literal 0 HcmV?d00001 diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_opencl.pyx b/build/lib.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_opencl.pyx new file mode 100644 index 0000000..ddcc913 --- /dev/null +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_opencl.pyx @@ -0,0 +1,70 @@ +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + + +# distutils: language = c++ +# distutils: include_dirs = ['reccdi/include', '/home/beams/CXDUSER/CDI/arrayfire/include', '/home/beams/CXDUSER/CDI/libconfig/include',] +# distutils: sources = ['reccdi/src_cpp/bridge.cpp', 'reccdi/src_cpp/manager.cpp', 'reccdi/src_cpp/parameters.cpp', 'reccdi/src_cpp/pcdi.cpp', 'reccdi/src_cpp/resolution.cpp', 'reccdi/src_cpp/state.cpp', 'reccdi/src_cpp/support.cpp', 'reccdi/src_cpp/util.cpp', 'reccdi/src_cpp/worker.cpp'] +# distutils: libraries = ['afopencl', 'config++',] +# distutils: library_dirs = ['/home/beams/CXDUSER/CDI/arrayfire/lib64', '/home/beams/CXDUSER/CDI/libconfig/lib',] + +from libcpp.vector cimport vector +from libcpp.string cimport string + +cdef extern from "../include/bridge.hpp": + cdef cppclass Bridge: + Bridge() except + + void StartCalcWithGuess(int, vector[float], vector[float], vector[float], vector[int], string) + void StartCalcWithGuessSupport(int, vector[float], vector[float], vector[float], vector[int], vector[int], string) + void StartCalcWithGuessSupportCoh(int, vector[float], vector[float], vector[float], vector[int], vector[int], vector[float], vector[int], string) + void StartCalc(int, vector[float], vector[int], string) + vector[double] GetImageR() + vector[double] GetImageI() + vector[double] GetErrors() + vector[float] GetSupportV() + vector[double] GetCoherenceV() + vector[double] GetReciprocalR() + vector[double] GetReciprocalI() + vector[int] GetFlowV() + vector[int] GetIterFlowV() + void Cleanup() + + +cdef class PyBridge: + cdef Bridge *thisptr + def __cinit__(self): + self.thisptr = new Bridge() + def __dealloc__(self): + del self.thisptr + def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): + self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) + def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): + self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) + def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): + self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) + def start_calc(self, device, data_r, dims, config): + self.thisptr.StartCalc(device, data_r, dims, config.encode()) + def get_image_r(self): + return self.thisptr.GetImageR() + def get_image_i(self): + return self.thisptr.GetImageI() + def get_errors(self): + return self.thisptr.GetErrors() + def get_support(self): + return self.thisptr.GetSupportV() + def get_coherence(self): + return self.thisptr.GetCoherenceV() + def get_reciprocal_r(self): + return self.thisptr.GetReciprocalR() + def get_reciprocal_i(self): + return self.thisptr.GetReciprocalI() + def get_flow(self): + return self.thisptr.GetFlowV() + def get_iter_flow(self): + return self.thisptr.GetIterFlowV() + def cleanup(self): + self.thisptr.Cleanup() + diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/__init__.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/everything.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/everything.py new file mode 100644 index 0000000..acae99e --- /dev/null +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/everything.py @@ -0,0 +1,29 @@ +import sys +import argparse +import reccdi.src_py.run_scripts.run_data as run_dt +import reccdi.src_py.run_scripts.run_rec as run_rc +import reccdi.src_py.run_scripts.run_disp as run_dp +import reccdi.src_py.run_scripts.run_34id_prepare as prep + + +def main(arg): + parser = argparse.ArgumentParser() + parser.add_argument("dev", help="processor to run on (cpu, opencl, cuda)") + parser.add_argument("prefix", help="prefix id") + parser.add_argument("scans", help="scans to preocess") + parser.add_argument("conf_dir", help="directory with configuration files") + args = parser.parse_args() + dev = args.dev + prefix = args.prefix + scans = args.scans + conf_dir = args.conf_dir + + experiment_dir = prep.parse_and_prepare(prefix, scans, conf_dir) + run_dt.data(experiment_dir) + run_rc.manage_reconstruction(dev, experiment_dir) + run_dp.to_vtk(experiment_dir) + + +if __name__ == "__main__": + main(sys.argv[1:]) + diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/run_34id_prepare.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/run_34id_prepare.py new file mode 100644 index 0000000..e230cd6 --- /dev/null +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/run_34id_prepare.py @@ -0,0 +1,119 @@ +import argparse +import pylibconfig2 as cfg +import sys +import os +import reccdi.src_py.beamlines.aps_34id.prep as prep +import reccdi.src_py.utilities.parse_ver as ver +import shutil + + +def prepare(experiment_dir, scan_range, conf_file): + prep.prepare(experiment_dir, scan_range, conf_file) + + return experiment_dir + + +def copy_conf(src, dest): + try: + main_conf = os.path.join(src, 'config_prep') + shutil.copy(main_conf, dest) + conf_data = os.path.join(src, 'config_data') + shutil.copy(conf_data, dest) + conf_rec = os.path.join(src, 'config_rec') + shutil.copy(conf_rec, dest) + conf_disp = os.path.join(src, 'config_disp') + shutil.copy(conf_disp, dest) + except: + pass + + +def parse_and_prepare(prefix, scan, conf_dir): + id = prefix + '_' + scan + print ('reading data files for experiment ' + id) + + if not os.path.isdir(conf_dir): + print ('configured directory ' + conf_dir + ' does not exist') + return + + main_conf = os.path.join(conf_dir, 'config') + if not os.path.isfile(main_conf): + print ('the configuration directory does not contain "config" file') + return + + try: + # convert it to list of int + scan_range = scan.split('-') + scan_num = [] + for i in range(len(scan_range)): + scan_num.append(int(scan_range[i])) + except: + print ('enter numeric values for scan range') + return + + if not ver.ver_config_prep(main_conf): + return + + try: + with open(main_conf, 'r') as f: + config_map = cfg.Config(f.read()) + except Exception as e: + print ('Please check the configuration file ' + main_conf + '. Cannot parse ' + str(e)) + return + + try: + working_dir = config_map.working_dir.strip() + except: + working_dir = os.getcwd() + + experiment_dir = os.path.join(working_dir, id) + if not os.path.exists(experiment_dir): + os.makedirs(experiment_dir) + # copy config_data, config_rec, cofig_disp files from cofig directory into the experiment conf directory + experiment_conf_dir = os.path.join(experiment_dir, 'conf') + if not os.path.exists(experiment_conf_dir): + os.makedirs(experiment_conf_dir) + + experiment_main_config = os.path.join(experiment_conf_dir, 'config') + conf_map = {} + conf_map['working_dir'] = '"' + working_dir + '"' + conf_map['experiment_id'] = '"' + prefix + '"' + conf_map['scan'] = '"' + scan + '"' + temp_file = os.path.join(experiment_conf_dir, 'temp') + with open(temp_file, 'a') as f: + for key in conf_map: + value = conf_map[key] + if len(value) > 0: + f.write(key + ' = ' + conf_map[key] + '\n') + f.close() + if not ver.ver_config(temp_file): +# os.remove(temp_file) + print('please check the entered parameters. Cannot save this format') + else: + shutil.copy(temp_file, experiment_main_config) + os.remove(temp_file) + + copy_conf(conf_dir, experiment_conf_dir) + prep_conf = os.path.join(experiment_conf_dir, 'config_prep') + if os.path.isfile(prep_conf): + prep.prepare(experiment_dir, scan_num, prep_conf) + else: + print ('missing ' + prep_conf + ' file') + + return experiment_dir + + +def main(arg): + parser = argparse.ArgumentParser() + parser.add_argument("id", help="prefix to name of the experiment/data reconstruction") + parser.add_argument("scan", help="a range of scans to prepare data from") + parser.add_argument("conf_dir", help="directory where the configuration files are located") + args = parser.parse_args() + scan = args.scan + id = args.id + conf_dir = args.conf_dir + + return parse_and_prepare(id, scan, conf_dir) + + +if __name__ == "__main__": + exit(main(sys.argv[1:])) diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/run_data.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/run_data.py new file mode 100644 index 0000000..87064dd --- /dev/null +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/run_data.py @@ -0,0 +1,29 @@ +import reccdi.src_py.controller.data as dt +import sys +import argparse +import os + + +def data(experiment_dir): + print ('formating data') + prep_file = os.path.join(experiment_dir, 'prep', 'prep_data.tif') + if os.path.isfile(prep_file): + dt.prep(prep_file, experiment_dir) + else: + dirs = os.listdir(experiment_dir) + for dir in dirs: + if dir.startswith('scan'): + scan_dir = os.path.join(experiment_dir, dir) + prep_file = os.path.join(scan_dir, 'prep', 'prep_data.tif') + dt.prep(prep_file, scan_dir) + + +def main(arg): + parser = argparse.ArgumentParser() + parser.add_argument("experiment_dir", help="experiment directory") + args = parser.parse_args() + data(args.experiment_dir) + + +if __name__ == "__main__": + main(sys.argv[1:]) diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/run_disp.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/run_disp.py new file mode 100644 index 0000000..c471662 --- /dev/null +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/run_disp.py @@ -0,0 +1,136 @@ +import reccdi.src_py.utilities.CXDVizNX as cx +import reccdi.src_py.utilities.utils as ut +import reccdi.src_py.utilities.parse_ver as ver +import argparse +import sys +import os +import numpy as np +from multiprocessing import Pool + + +def save_vtk(res_dir_conf): + (res_dir, conf) = res_dir_conf + try: + imagefile = os.path.join(res_dir, 'image.npy') + image = np.load(imagefile) + except: + print ('cannot load "image.npy" file') + return + + try: + supportfile = os.path.join(res_dir, 'support.npy') + support = np.load(supportfile) + except: + print ('support file is missing in ' + res_dir + ' directory') + return + + try: + reciprocalfile = os.path.join(res_dir, 'reciprocal.npy') + reciprocal = np.load(reciprocalfile) + # reciprocal is saved as tif file, so no need to pass it to cx module + # saving amp, phase, and square of modulus in tif format + reciprocal_amp = np.absolute(reciprocal) + reciprocal_phase = np.angle(reciprocal) + reciprocal_sq_mod = np.power(reciprocal_amp, 2) + + ut.save_tif(reciprocal_amp, os.path.join(res_dir, 'reciprocal_amp.tif')) + ut.save_tif(reciprocal_phase, os.path.join(res_dir, 'reciprocal_phase.tif')) + ut.save_tif(reciprocal_sq_mod, os.path.join(res_dir, 'reciprocal_sq_mod.tif')) + except: + print ('info: cannot save reciprocal space') + + cohfile = os.path.join(res_dir, 'coherence.npy') + if os.path.isfile(cohfile): + coh = np.load(cohfile) + cx.save_CX(conf, image, support, coh, res_dir) + else: + cx.save_CX(conf, image, support, None, res_dir) + + +def to_vtk(experiment_dir, results_dir=None): + print ('starting conversion to vtk') + if not os.path.isdir(experiment_dir): + print("Please provide a valid experiment directory") + return + conf_dir = os.path.join(experiment_dir, 'conf') + conf = os.path.join(conf_dir, 'config_disp') + # verify configuration file + if not ver.ver_config_disp(conf): + print ('incorrect configuration file ' + conf +', cannot parse') + return + + # parse the conf once here and save it in dictionary, it will apply to all images in the directory tree + conf_dict = {} + try: + conf_map = ut.read_config(conf) + items = conf_map.items() + for item in items: + conf_dict[item[0]] = item[1] + except: + print('cannot parse configuration file ' + conf) + return + + # get last scan from the config file and add it to conf_dict + last_scan = None + main_conf = os.path.join(conf_dir, 'config') + if os.path.isfile(main_conf): + try: + config_map = ut.read_config(main_conf) + scan = config_map.scan + last_scan = scan.split('-')[-1] + conf_dict['last_scan'] = int(last_scan) + except: + print ("info: scan not determined, can't read " + conf + " configuration file") + + # get binning from the config_data file and add it to conf_dict + binning = None + data_conf = os.path.join(conf_dir, 'config_data') + if os.path.isfile(data_conf): + try: + conf_map = ut.read_config(data_conf) + conf_dict['binning'] = conf_map.binning + except: + pass + + no_gpus = 1 + rec_conf = os.path.join(conf_dir, 'config_rec') + if os.path.isfile(rec_conf): + try: + conf_map = ut.read_config(rec_conf) + device = conf_map.device + no_gpus = len(device) + except: + pass + + if results_dir is None: + results_dir = experiment_dir + # find directories with image.npy file + dirs = [] + for (dirpath, dirnames, filenames) in os.walk(results_dir): + for file in filenames: + if file.endswith('image.npy'): + dirs.append((dirpath, conf_dict)) + + with Pool(processes = no_gpus) as pool: + pool.map_async(save_vtk, dirs) + pool.close() + pool.join() + print ('done') + + +def main(arg): + print ('preparing display') + parser = argparse.ArgumentParser() + parser.add_argument("experiment_dir", help="experiment directory") + parser.add_argument("--results_dir", help="directory in experiment that has a tree (or leaf) with reconstruction results which will be visualized") + args = parser.parse_args() + experiment_dir = args.experiment_dir + if args.results_dir: + to_vtk(experiment_dir, args.results_dir) + else: + to_vtk(experiment_dir) + +if __name__ == "__main__": + main(sys.argv[1:]) + +#python run_disp.py experiment_dir diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/run_rec.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/run_rec.py new file mode 100644 index 0000000..d0477a9 --- /dev/null +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/run_rec.py @@ -0,0 +1,229 @@ +import sys +import signal +import os +import argparse +from multiprocessing import Process, Queue +import reccdi.src_py.controller.reconstruction as rec +import reccdi.src_py.controller.gen_rec as gen_rec +import reccdi.src_py.controller.reconstruction_multi as mult_rec +import reccdi.src_py.utilities.utils as ut +import reccdi.src_py.utilities.parse_ver as ver +import time +from functools import reduce + + +MEM_FACTOR = 1500 +ADJUST = 0.0 + +def interrupt_thread(): + """ + This function is part of interrupt mechanism. It detects ctl-c signal and creates an empty file named "stopfile". + The file is discovered by fast module and the discovery prompts termonation of the process. + """ + def int_handler(signal, frame): + while not os.path.isfile('stopfile'): + open('stopfile', 'a').close() + time.sleep(.3) + + # #remove the file at the end + if os.path.isfile('stopfile'): + os.remove('stopfile') + + def term_handler(signal, frame): + pass + + signal.signal(signal.SIGINT, int_handler) + signal.signal(signal.SIGTERM, term_handler) + signal.pause() + + +def rec_process(proc, conf_file, datafile, dir, gpus, r, q): + if r == 'g': + gen_rec.reconstruction(proc, conf_file, datafile, dir, gpus) + elif r == 'm': + mult_rec.reconstruction(proc, conf_file, datafile, dir, gpus) + elif r == 's': + rec.reconstruction(proc, conf_file, datafile, dir, gpus) + q.put((os.getpid(), gpus)) + + +def get_gpu_use(devices, no_dir, no_rec, data_size): + rec_mem_size = data_size / MEM_FACTOR + gpu_load = ut.get_gpu_load(rec_mem_size, devices) + no_runs = no_dir * no_rec + gpu_distribution = ut.get_gpu_distribution(no_runs, gpu_load) + gpu_use = [] + available = reduce((lambda x,y: x+y), gpu_distribution) + dev_index = 0 + i = 0 + while i < available: + if gpu_distribution[dev_index] > 0: + gpu_use.append(devices[dev_index]) + gpu_distribution[dev_index] = gpu_distribution[dev_index] -1 + i += 1 + dev_index += 1 + dev_index = dev_index % len(devices) + if no_dir > 1: + gpu_use = [gpu_use[x:x+no_rec] for x in range(0, len(gpu_use), no_rec)] + + return gpu_use + + +def manage_reconstruction(proc, experiment_dir, rec_id=None): + """ + This function starts the interruption discovery thread and the recontruction thread. + + It reads configuration file defined as /conf/config_rec. + If multiple generations are configured, it will start reconstruction from "reconstruction_multi" + script, otherwise from "reconstruction" script. + """ + if os.path.exists('stopfile'): + os.remove('stopfile') + print ('starting reconstruction') + # find how many reconstruction configurations are in config directory + # if more than one, it will run in separate processes + conf_dir = os.path.join(experiment_dir, 'conf') + if rec_id is None: + conf_file = os.path.join(conf_dir, 'config_rec') + else: + conf_file = os.path.join(conf_dir, rec_id + '_config_rec') + + # check if file exists + if not os.path.isfile(conf_file): + print ('no configuration file ' + conf_file + ' found') + return + + # verify the configuration file + if not ver.ver_config_rec(conf_file): + # if not verified, the ver will print message + return + + try: + config_map = ut.read_config(conf_file) + if config_map is None: + print("can't read configuration file " + conf_file) + return + except: + print('Cannot parse configuration file ' + conf_file + ' , check for matching parenthesis and quotations') + return + + exp_dirs_data = [] + # experiment may be multi-scan in which case will run a reconstruction for each scan + for dir in os.listdir(experiment_dir): + if dir.startswith('scan'): + datafile = os.path.join(experiment_dir, dir, 'data', 'data.tif') + if os.path.isfile(datafile): + exp_dirs_data.append((datafile, os.path.join(experiment_dir, dir))) + # if there are no scan directories, assume it is combined scans experiment + if len(exp_dirs_data) == 0: + # in typical scenario data_dir is not configured, and it is defaulted to /data + # the data_dir is ignored in multi-scan scenario + try: + data_dir = config_map.data_dir + except AttributeError: + data_dir = os.path.join(experiment_dir, 'data') + datafile = os.path.join(data_dir, 'data.tif') + if os.path.isfile(datafile): + exp_dirs_data.append((datafile, experiment_dir)) + no_runs = len(exp_dirs_data) + + try: + generations = config_map.generations + except: + generations = 0 + try: + reconstructions = config_map.reconstructions + except: + reconstructions = 1 + try: + devices = config_map.device + except: + devices = [-1] + + if (no_runs > 1 or reconstructions > 1) and devices[0] != -1: + from functools import reduce + # find size of data array + data_shape = ut.read_tif(exp_dirs_data[0][0]).shape + data_size = reduce((lambda x,y: x*y), data_shape) + gpu_use = get_gpu_use(devices, no_runs, reconstructions, data_size) + else: + gpu_use = devices + + if generations > 1: + r = gen_rec + elif reconstructions > 1: + r = mult_rec + else: + r = rec + + # start the interrupt process + interrupt_process = Process(target=interrupt_thread, args=()) + interrupt_process.start() + + if no_runs == 1: + dir_data = exp_dirs_data[0] + datafile = dir_data[0] + dir = dir_data[1] + r.reconstruction(proc, conf_file, datafile, dir, gpu_use) + else: + # check if is it worth to use last chunk + if len(gpu_use[0]) > len(gpu_use[-1])*2: + gpu_use = gpu_use[0:-1] + + if generations > 1: + r = 'g' + elif reconstructions > 1: + r = 'm' + else: + r = 's' + + q = Queue() + for gpus in gpu_use: + q.put((None, gpus)) + # index keeps track of the multiple directories + index = 0 + processes = {} + while index < no_runs: + pid, gpus = q.get() + if pid is not None: + os.kill(pid, signal.SIGKILL) + del processes[pid] + datafile = exp_dirs_data[index][0] + dir = exp_dirs_data[index][1] + p = Process(target = rec_process, args = (proc, conf_file, datafile, dir, gpus, r, q)) + p.start() + processes[p.pid] = index + index += 1 + + # close the queue + while len(processes.items()) > 0: + pid, gpus = q.get() + os.kill(pid, signal.SIGKILL) + del processes[pid] + q.close() + + interrupt_process.terminate() + print ('finished reconstruction') + + +def main(arg): + parser = argparse.ArgumentParser() + parser.add_argument("proc", help="the processor the code will run on, can be 'cpu', 'opencl', or 'cuda'.") + parser.add_argument("experiment_dir", help="experiment directory.") + parser.add_argument("--rec_id", help="reconstruction id, a prefix to '_results' directory") + args = parser.parse_args() + proc = args.proc + experiment_dir = args.experiment_dir + + if args.rec_id: + manage_reconstruction(proc, experiment_dir, args.rec_id) + else: + manage_reconstruction(proc, experiment_dir) + + +if __name__ == "__main__": + print (sys.argv[1:]) + main(sys.argv[1:]) + +#python run_rec.py opencl experiment_dir + diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/CXDVizNX.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/CXDVizNX.py new file mode 100644 index 0000000..4b0c35b --- /dev/null +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/CXDVizNX.py @@ -0,0 +1,374 @@ +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + +import os +import traits.api as tr +from tvtk.api import tvtk +import numpy as np +import scipy.ndimage as ndi +import math as m +import reccdi.src_py.utilities.utils as ut +import reccdi.src_py.utilities.spec as sput + +__author__ = "Barbara Frosik" +__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." +__docformat__ = 'restructuredtext en' + + +class DispalyParams: + """ + This class encapsulates parameters defining image display. The parameters are read from config file on + construction + """ + + def __init__(self, config): + """ + The constructor gets config file and fills out the class members. + + Parameters + ---------- + conf : str + configuration file name + + Returns + ------- + none + """ + deg2rad = np.pi / 180.0 + try: + specfile = config['specfile'] + last_scan = config['last_scan'] + self.lamda, delta, gamma, dth, arm, pixel = sput.parse_spec(specfile, last_scan) + self.delta = delta * deg2rad + self.gamma = gamma * deg2rad + self.dth = dth * deg2rad + self.arm = arm / 1000 + pixel = pixel[1:-1] + pixel = pixel.split(',') + pixel[0], pixel[1] = float(pixel[0]), float(pixel[1]) + except Exception as e: + pass + # override the parsed parameters with entries in config file + try: + energy = config['energy'] + self.lamda = 12.398 / energy / 10 + except AttributeError: + pass + try: + self.delta = config['delta'] * deg2rad + except AttributeError: + pass + try: + self.gamma = config['gamma'] * deg2rad + except AttributeError: + pass + try: + self.dth = config['dth'] * deg2rad + except AttributeError: + pass + try: + self.arm = config['arm'] / 1000 + except AttributeError: + pass + try: + pixel = config['pixel'] + except AttributeError: + pass + + try: + self.binning = [] + binning = config['binning'] + for i in range(len(binning)): + self.binning.append(binning[i]) + for _ in range(3 - len(self.binning)): + self.binning.append(1) + except AttributeError: + self.binning = [1,1,1] + self.dpx = pixel[0] * self.binning[0] / self.arm / self.binning[2] + self.dpy = pixel[1] * self.binning[1] / self.arm / self.binning[2] + try: + self.crop = [] + crop = config['crop'] + for i in range(len(crop)): + self.crop.append(crop[i]) + for _ in range(3 - len(self.crop)): + self.crop.append(1.0) + crop[0], crop[1] = crop[1], crop[0] + except AttributeError: + self.crop = None + + +class CXDViz(tr.HasTraits): + coords = tr.Array() + arr = tr.Array() + + cropx = tr.Int() + cropy = tr.Int() + cropz = tr.Int() + + + def __init__(self): + self.imd = tvtk.ImageData() + self.sg = tvtk.StructuredGrid() + pass + + + def set_geometry(self, params, shape): + lam = params.lamda + tth = params.delta + gam = params.gamma + dpx = params.dpx + dpy = params.dpy + dth = params.dth + dx = 1.0 / shape[0] + dy = 1.0 / shape[1] + dz = 1.0 / shape[2] + dQdpx = np.zeros(3) + dQdpy = np.zeros(3) + dQdth = np.zeros(3) + Astar = np.zeros(3) + Bstar = np.zeros(3) + Cstar = np.zeros(3) + + # dQdpx[0] = -m.cos(tth) * m.cos(gam) + # dQdpx[1] = 0.0 + # dQdpx[2] = +m.sin(tth) * m.cos(gam) + dQdpx[0] = -m.cos(tth) + dQdpx[1] = 0.0 + dQdpx[2] = +m.sin(tth) + + dQdpy[0] = m.sin(tth) * m.sin(gam) + dQdpy[1] = -m.cos(gam) + dQdpy[2] = m.cos(tth) * m.sin(gam) + + dQdth[0] = -m.cos(tth) * m.cos(gam) + 1.0 + dQdth[1] = 0.0 + dQdth[2] = m.sin(tth) * m.cos(gam) + + Astar[0] = 2 * m.pi / lam * dpx * dQdpx[0] + Astar[1] = 2 * m.pi / lam * dpx * dQdpx[1] + Astar[2] = 2 * m.pi / lam * dpx * dQdpx[2] + + Bstar[0] = (2 * m.pi / lam) * dpy * dQdpy[0] + Bstar[1] = (2 * m.pi / lam) * dpy * dQdpy[1] + Bstar[2] = (2 * m.pi / lam) * dpy * dQdpy[2] + + Cstar[0] = (2 * m.pi / lam) * dth * dQdth[0] + Cstar[1] = (2 * m.pi / lam) * dth * dQdth[1] + Cstar[2] = (2 * m.pi / lam) * dth * dQdth[2] + + denom = np.dot(Astar, np.cross(Bstar, Cstar)) + A = 2 * m.pi * np.cross(Bstar, Cstar) / denom + B = 2 * m.pi * np.cross(Cstar, Astar) / denom + C = 2 * m.pi * np.cross(Astar, Bstar) / denom + + self.T = np.zeros(9) + self.T.shape = (3, 3) + space = 'direct' + if space == 'recip': + self.T[:, 0] = Astar + self.T[:, 1] = Bstar + self.T[:, 2] = Cstar + self.dx = 1.0 + self.dy = 1.0 + self.dz = 1.0 + elif space == 'direct': + self.T = np.array((A, B, C)) + self.dx = dx + self.dy = dy + self.dz = dz + else: + pass + + + def update_coords(self): + dims = list(self.arr[self.cropobj].shape) + + r = np.mgrid[(dims[0] - 1) * self.dx:-self.dx:-self.dx, \ + 0:dims[1] * self.dy:self.dy, 0:dims[2] * self.dz:self.dz] + + r.shape = 3, dims[0] * dims[1] * dims[2] + r = r.transpose() + + self.coords = np.dot(r, self.T) + + + def set_array(self, array, logentry=None): + self.arr = array + if len(self.arr.shape) < 3: + newdims = list(self.arr.shape) + for i in range(3 - len(newdims)): + newdims.append(1) + self.arr.shape = tuple(newdims) + + + def set_crop(self, cropx, cropy, cropz): + dims = list(self.arr.shape) + if len(dims) == 2: + dims.append(1) + + if dims[0] > cropx and cropx > 0: + self.cropx = cropx + else: + self.cropx = dims[0] + + if dims[1] > cropy and cropy > 0: + self.cropy = cropy + else: + self.cropy = dims[1] + + if dims[2] > cropz and cropz > 0: + self.cropz = cropz + else: + self.cropz = dims[2] + + start1 = int(dims[0]/2) - int(self.cropx/2) + end1 = int(dims[0]/2) + int(self.cropx/2) + if start1 == end1: + end1 = end1 + 1 + start2 = int(dims[1]/2) - int(self.cropy/2) + end2 = int(dims[1]/2) + int(self.cropy/2) + if start2 == end2: + end2 = end2 + 1 + start3 = int(dims[2]/2) - int(self.cropz/2) + end3 = int(dims[2]/2) + int(self.cropz/2) + if start3 == end3: + end3 = end3 + 1 + + self.cropobj = (slice(start1, end1, None), slice(start2, end2, None), + slice(start3, end3, None)) + + + def get_structured_grid(self, **args): + self.update_coords() + dims = list(self.arr[self.cropobj].shape) + self.sg.points = self.coords + if "mode" in args: + if args["mode"] == "Phase": + arr1 = self.arr[self.cropobj].ravel() + arr = (np.arctan2(arr1.imag, arr1.real)) + else: + arr = np.abs(self.arr[self.cropobj].ravel()) + else: + arr = self.arr[self.cropobj].ravel() + if (arr.dtype == np.complex128 or arr.dtype == np.complex64): + self.sg.point_data.scalars = np.abs(arr) + self.sg.point_data.scalars.name = "Amp" + ph = tvtk.DoubleArray() + ph.from_array(np.arctan2(arr.imag, arr.real)) + ph.name = "Phase" + self.sg.point_data.add_array(ph) + else: + self.sg.point_data.scalars = arr + self.sg.dimensions = (dims[2], dims[1], dims[0]) + self.sg.extent = 0, dims[2] - 1, 0, dims[1] - 1, 0, dims[0] - 1 + return self.sg + + + def write_structured_grid(self, filename, **args): + sgwriter = tvtk.StructuredGridWriter() + sgwriter.file_type = 'binary' + if filename.endswith(".vtk"): + sgwriter.file_name = filename + else: + sgwriter.file_name = filename + '.vtk' + sgwriter.set_input_data(self.get_structured_grid()) + sgwriter.write() + print ('saved file', filename) + + +def shift(arr, s0, s1, s2): + shifted = np.roll(arr, s0, axis=0) + shifted = np.roll(shifted, s1, axis=1) + return np.roll(shifted, s2, axis=2) + + +def center_of_mass(arr): + tot = np.sum(arr) + dims = arr.shape + xyz = [] + griddims = [] + for d in dims: + griddims.append(slice(0, d)) + grid = np.ogrid[griddims] + for g in grid: + xyz.append(np.sum(arr * g) / tot) + com = np.asarray(xyz) + com = np.ma.round(com).astype(np.int) + return list(com) + + +def remove_ramp(arr, ups=3): + new_shape = list(arr.shape) + # pad zeros around arr, to the size of 3 times (ups = 3) of arr size + for i in range(len(new_shape)): + new_shape[i] = ups * new_shape[i] + padded = ut.get_zero_padded_centered(arr, new_shape) + padded_f = np.fft.fftshift(np.fft.fftn(np.fft.ifftshift(padded))) + com = ndi.center_of_mass(np.power(np.abs(padded_f), 2)) + sub_pixel_shifted = ut.sub_pixel_shift(padded_f, new_shape[0]/2.0-com[0], new_shape[1]/2.0-com[1], new_shape[2]/2.0-com[2]) + ramp_removed_padded = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(sub_pixel_shifted))) + ramp_removed = ut.crop_center(ramp_removed_padded, arr.shape) + + return ramp_removed + + +def center(image, support): + dims = image.shape + image, support = ut.get_centered_both(image, support) + + # place center of mass image*support in the center + for ax in range(len(dims)): + com = ndi.center_of_mass(np.absolute(image) * support) + image = shift(image, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) + support = shift(support, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) + + # set center phase to zero, use as a reference + phi0 = m.atan2(image.imag[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)], image.real[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)]) + image = image * np.exp(-1j * phi0) + + return image, support + + +def get_crop(params, shape): + crop = [] + for i in range(len(shape)): + if params.crop is None: + crop.append(shape[i]) + else: + crop.append(params.crop[i]) + if isinstance(crop[i], float): + crop[i] = int(crop[i]*shape[i]) + return crop + + +def save_CX(conf, image, support, coh, save_dir): + image = np.swapaxes(image, 1,2) + image = np.swapaxes(image, 0,1) + support = np.swapaxes(support, 1,2) + support = np.swapaxes(support, 0,1) + image, support = center(image, support) + params = DispalyParams(conf) + image = remove_ramp(image) + viz = CXDViz() + viz.set_array(image) + viz.set_geometry(params, image.shape) + crop = get_crop(params, image.shape) + viz.set_crop(crop[0], crop[1], crop[2]) # save image + image_file = os.path.join(save_dir, 'image') + viz.write_structured_grid(image_file) + viz.set_array(support) + support_file = os.path.join(save_dir, 'support') + viz.write_structured_grid(support_file) + if coh is not None: + coh = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(coh))).real + coh = ut.get_zero_padded_centered(coh, image.shape) + coh_file = os.path.join(save_dir, 'coherence') + viz.set_array(coh) + viz.write_structured_grid(coh_file) + +# a = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') +# remove_ramp(a, 3) \ No newline at end of file diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/__init__.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/__init__.py new file mode 100644 index 0000000..7f0dc87 --- /dev/null +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/__init__.py @@ -0,0 +1 @@ +__author__ = 'bfrosik' diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/parse_ver.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/parse_ver.py new file mode 100644 index 0000000..bb030a7 --- /dev/null +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/parse_ver.py @@ -0,0 +1,861 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + + +""" +verification of configuration files +""" + +import reccdi.src_py.utilities.utils as ut +import os + + +def ver_list_int(param_name, param_value): + if not issubclass(type(param_value), list): + print (param_name + ' is not a list') + return False + for e in param_value: + if type(e) != int: + print (param_name + ' should be list of integer values') + return False + return True + + +def ver_list_float(param_name, param_value): + if not issubclass(type(param_value), list): + print (param_name + ' is not a list') + return False + for e in param_value: + if type(e) != float: + print (param_name + ' should be list of float values') + return False + return True + + +def ver_config(fname): + + """ + This function verifies config file + + Parameters + ---------- + conf_info : str + configuration file + + Returns + ------- + True if configuration is correct, False otherwise + """ + if not os.path.isfile(fname): + print ('no configuration file ' + fname + ' found') + return False + + try: + config_map = ut.read_config(fname) + if config_map is None: + print ("can't read configuration file") + return False + except: + print ('Cannot parse ' + fname + ' configuration file. Check paranthesis and quotations.') + return False + + try: + working_dir = config_map.working_dir + if type(working_dir) != str: + print('working_dir parameter should be string') + return False + except AttributeError: + pass + except: + print ('working_dir parameter parsing error') + return False + + try: + experiment_id = config_map.experiment_id + if type(experiment_id) != str: + print('experiment_id parameter should be string') + return False + except AttributeError: + pass + except: + print ('experiment_id parameter parsing error') + return False + + try: + scan = config_map.scan + if type(scan) != str: + print('scan parameter should be string') + return False + except AttributeError: + pass + except: + print ('scan parameter parsing error') + return False + + return True + + +def ver_config_rec(fname): + + """ + This function verifies config_rec file + + Parameters + ---------- + conf_info : str + configuration file + + Returns + ------- + True if configuration is correct, False otherwise + """ + if not os.path.isfile(fname): + print ('no configuration file ' + fname + ' found') + return False + + try: + config_map = ut.read_config(fname) + if config_map is None: + print ("can't read configuration file") + return False + except: + print ('Cannot parse ' + fname + ' configuration file. Check paranthesis and quotations.') + return False + + try: + data_dir = config_map.data_dir + if type(data_dir) != str: + print('data_dir parameter should be string') + return False + except AttributeError: + pass + except: + print ('data_dir parameter parsing error') + return False + + try: + save_dir = config_map.save_dir + if type(save_dir) != str: + print('save_dir parameter should be string') + return False + except AttributeError: + pass + except: + print ('save_dir parameter parsing error') + return False + + try: + cont = config_map.cont + if type(cont) != bool: + print ('cont parameter should be true or false') + return False + try: + continue_dir = config_map.continue_dir + if type(continue_dir) != str: + print('continue_dir parameter should be string') + return False + except AttributeError: + pass + except: + print('continue_dir parameter parsing error') + return False + except AttributeError: + pass + except: + print ('cont parameter parsing error') + return False + + try: + reconstructions = config_map.reconstructions + if type(reconstructions) != int: + print('reconstructions parameter should be int') + return False + except AttributeError: + pass + except: + print ('reconstructions parameter parsing error') + return False + + try: + device = config_map.device + if not ver_list_int('device', device): + return False + except AttributeError: + pass + except: + print ('device parameter parsing error') + return False + + try: + garbage_trigger = config_map.garbage_trigger + if not ver_list_int('garbage_trigger', garbage_trigger): + return False + except AttributeError: + pass + except: + print ('garbage_trigger parameter parsing error') + return False + + try: + algorithm_sequence = config_map.algorithm_sequence + if not issubclass(type(algorithm_sequence), list): + print ('algorithm_sequence should be a list') + return False + for s in algorithm_sequence: + for i in range(len(s)): + # the first element in each sub-list is the repeat factor and should be int + if i== 0 and type(s[i]) != int: + print ('algorithm_sequence configuration error, the repeat factor should be int') + return False + if i > 0: + if not issubclass(type(s[i]), list): + print ('algorithm_sequence configuration error, the sequence element should be a list') + return False + algorithm = s[i][0] + if type(algorithm) != str: + print ('algorithm_sequence configuration error, algorithm should be str') + return False + algorithm_options = ["ER", "HIO"] + if algorithm not in algorithm_options: + print ('algorithm_sequence configuration error, algorithm should be "ER" or "HIO"') + return False + algorithm_repeat = s[i][1] + if type(algorithm_repeat) != int: + print ('algorithm_sequence configuration error, algorithm repeat should be int') + return False + except AttributeError: + print ('missing mandatory algorithm_sequence parameter') + return False + except: + print ('algorithm_sequence parameter parsing error') + return False + + try: + beta = config_map.beta + if type(beta) != float: + print('beta parameter should be float') + return False + except AttributeError: + pass + except: + print ('beta parameter parsing error') + return False + + try: + generations = config_map.generations + if type(generations) != int: + print('generations parameter should be int') + return False + try: + ga_metrics = config_map.ga_metrics + if not issubclass(type(ga_metrics), list): + print (ga_metrics + ' is not a list') + return False + metrics_options = ['chi', 'sharpness', 'summed_phase', 'area'] + for metric in ga_metrics: + if metric not in metrics_options: + print ("ga_metrics list can include only following strings: 'chi', 'sharpness', 'summed_phase', 'area'") + except AttributeError: + pass + except: + print('ga_metrics parameter parsing error') + return False + + try: + ga_breed_modes = config_map.ga_breed_modes + if not issubclass(type(ga_breed_modes), list): + print (ga_breed_modes + ' is not a list') + return False + breed_options = ['sqrt_ab', 'max_all', 'Dhalf', 'Dhalf-best', 'dsqrt', 'pixel_switch',\ + 'b_pa', '2ab_a_b', '2a-b_pa', 'sqrt_ab_pa', 'sqrt_ab_pa_recip', 'sqrt_ab_recip',\ + 'max_ab', 'max_ab_pa', 'min_ab_pa', 'avg_ab', 'avg_ab_pa', 'sqrt_abg', + 'sqrt_abg_pa', 'max_abg','max_abg_pa', 'avg_abg', 'avg_abg_pa', 'avg_sqrt'] + for breed in ga_breed_modes: + if breed not in breed_options: + print ("ga_breed_modes list can include only following strings: 'sqrt_ab', 'max_all',\ + 'Dhalf', 'Dhalf-best', 'dsqrt', 'pixel_switch',\ + 'b_pa', '2ab_a_b', '2a-b_pa', 'sqrt_ab_pa', 'sqrt_ab_pa_recip', 'sqrt_ab_recip',\ + 'max_ab', 'max_ab_pa', 'min_ab_pa', 'avg_ab', 'avg_ab_pa', 'sqrt_abg',\ + 'sqrt_abg_pa', 'max_abg','max_abg_pa', 'avg_abg', 'avg_abg_pa', 'avg_sqrt'") + except AttributeError: + pass + except: + print('ga_breed_modes parameter parsing error') + return False + + try: + ga_cullings = config_map.ga_cullings + if not ver_list_int('ga_cullings', ga_cullings): + return False + except AttributeError: + pass + except: + print('ga_cullings parameter parsing error') + return False + + try: + ga_support_thresholds = config_map.ga_support_thresholds + if not ver_list_float('ga_support_thresholds', ga_support_thresholds): + return False + except AttributeError: + pass + except: + print('ga_support_thresholds parameter parsing error') + return False + + try: + ga_support_sigmas = config_map.ga_support_sigmas + if not ver_list_float('ga_support_sigmas', ga_support_sigmas): + return False + except AttributeError: + pass + except: + print('ga_support_sigmas parameter parsing error') + return False + + try: + ga_low_resolution_sigmas = config_map.ga_low_resolution_sigmas + if not ver_list_float('ga_low_resolution_sigmas', ga_low_resolution_sigmas): + return False + except AttributeError: + pass + except: + print('ga_low_resolution_sigmas parameter parsing error') + return False + except AttributeError: + pass + except: + print ('generations parameter parsing error') + return False + + + try: + twin_trigger = config_map.twin_trigger + if not ver_list_int('twin_trigger', twin_trigger): + return False + else: + try: + twin_halves = config_map.twin_halves + if not ver_list_int('twin_halves', twin_halves): + return False + except AttributeError: + pass + except: + print('twin_halves parameter parsing error') + return False + + except AttributeError: + pass + + try: + if not ver_list_int('amp_support_trigger', config_map.amp_support_trigger): + return False + else: + try: + support_type = config_map.support_type + if type(support_type) != str: + print ('support_type parameter should be string') + return False + if support_type != "GAUSS": + print ('support_type parameter can be configured "GAUSS"') + return False + except AttributeError: + pass + except: + print('support_type parameter parsing error') + return False + + try: + support_threshold = config_map.support_threshold + if type(support_threshold) != float: + print('support_threshold should be float') + return False + except AttributeError: + pass + except: + print('support_threshold parameter parsing error') + return False + + try: + support_sigma = config_map.support_sigma + if type(support_sigma) != float: + print('support_sigma should be float') + return False + except AttributeError: + pass + except: + print('support_sigma parameter parsing error') + return False + + try: + support_area = config_map.support_area + if not issubclass(type(support_area), list): + print('support_area should be list') + return False + for e in support_area: + if type(e) != int and type(e) !=float: + print('support_area should be a list of int or float') + return False + except AttributeError: + pass + except: + print('support_area parameter parsing error') + return False + + except AttributeError: + pass + + try: + if not ver_list_int('phase_support_trigger', config_map.phase_support_trigger): + return False + else: + try: + phase_min = config_map.phase_min + if type(phase_min) != float: + print('phase_min should be float') + return False + except AttributeError: + pass + except: + print('phase_min parameter parsing error') + return False + + try: + phase_max = config_map.phase_max + if type(phase_max) != float: + print('phase_max should be float') + return False + except AttributeError: + pass + except: + print('phase_max parameter parsing error') + return False + + except AttributeError: + pass + + try: + if not ver_list_int('pcdi_trigger', config_map.pcdi_trigger): + return False + else: + try: + partial_coherence_type = config_map.partial_coherence_type + if type(partial_coherence_type) != str: + print ('partial_coherence_type parameter should be string') + return False + if partial_coherence_type != "LUCY": + print ('partial_coherence_type parameter can be configured "LUCY"') + return False + except AttributeError: + pass + except: + print('partial_coherence_type parameter parsing error') + return False + + try: + partial_coherence_iteration_num = config_map.partial_coherence_iteration_num + if type(partial_coherence_iteration_num) != int: + print('partial_coherence_iteration_num should be int') + return False + except AttributeError: + pass + except: + print('partial_coherence_iteration_num parameter parsing error') + return False + + try: + partial_coherence_normalize = config_map.partial_coherence_normalize + if type(partial_coherence_normalize) != bool: + print ('partial_coherence_normalize parameter should be true or false') + return False + except AttributeError: + pass + except: + print('partial_coherence_normalize parameter parsing error') + return False + + try: + partial_coherence_roi = config_map.partial_coherence_roi + if not ver_list_int('partial_coherence_roi', partial_coherence_roi): + return False + except AttributeError: + pass + except: + print("'partial_coherence_roi' parameter parsing error") + return False + + except AttributeError: + pass + + try: + if not ver_list_int('resolution_trigger', config_map.resolution_trigger): + return False + else: + try: + iter_res_sigma_range = config_map.iter_res_sigma_range + if not ver_list_float('iter_res_sigma_range', iter_res_sigma_range): + return False + except AttributeError: + pass + except: + print("'iter_res_sigma_range' parameter parsing error") + return False + + try: + iter_res_det_range = config_map.iter_res_det_range + if not ver_list_float('iter_res_det_range', iter_res_det_range): + return False + except AttributeError: + pass + except: + print("'iter_res_det_range' parameter parsing error") + return False + + except AttributeError: + pass + + try: + if not ver_list_int('average_trigger', config_map.average_trigger): + return False + except AttributeError: + pass + + try: + if not ver_list_int('progress_trigger', config_map.progress_trigger): + return False + except AttributeError: + pass + + return True + + +def ver_config_data(fname): + + """ + This function verifies config_data file + + Parameters + ---------- + conf_info : str + configuration file + + Returns + ------- + True if configuration is correct, False otherwise + """ + if not os.path.isfile(fname): + print ('no configuration file ' + fname + ' found') + return False + + try: + config_map = ut.read_config(fname) + if config_map is None: + print ("can't read configuration file") + return False + except: + print ('Cannot parse ' + fname + ' configuration file. Check paranthesis and quotations.') + return False + + try: + data_dir = config_map.data_dir + if type(data_dir) != str: + print('data_dir parameter should be string') + return False + except AttributeError: + pass + except: + print ('data_dir parameter parsing error') + return False + + try: + if not ver_list_int('pad_crop', config_map.adjust_dimensions): + return False + except AttributeError: + pass + try: + if not ver_list_int('center_shift', config_map.center_shift): + return False + except AttributeError: + pass + try: + if not ver_list_int('binning', config_map.binning): + return False + except AttributeError: + pass + + try: + amp_threshold = config_map.amp_threshold + if type(amp_threshold) != float and type(amp_threshold) != int: + print('amp_threshold should be float') + return False + except AttributeError: + pass + except: + print('amp_threshold parameter parsing error') + return False + + try: + aliens = config_map.aliens + if not issubclass(type(aliens), list): + print('aliens should be a list of aliens(lists)') + return False + for a in aliens: + if not issubclass(type(a), list): + print ('aliens should be a list of aliens(lists)') + return False + if not ver_list_int('aliens', a): + return False + if (len(a) < 6): + print('each alien is defined by list of six int') + except AttributeError: + pass + except: + print('amp_threshold parameter parsing error') + return False + + return True + + +def ver_config_prep(fname): + + """ + This function verifies config_prep file + + Parameters + ---------- + conf_info : str + configuration file + + Returns + ------- + True if configuration is correct, False otherwise + """ + if not os.path.isfile(fname): + print ('no configuration file ' + fname + ' found') + return False + + try: + config_map = ut.read_config(fname) + if config_map is None: + print ("can't read configuration file") + return False + except: + print ('Cannot parse ' + fname + ' configuration file. Check paranthesis and quotations.') + return False + + try: + data_dir = config_map.data_dir + if type(data_dir) != str: + print('data_dir parameter should be string') + return False + except AttributeError: + pass + except: + print ('data_dir parameter parsing error') + return False + + try: + specfile = config_map.specfile + if type(specfile) != str: + print('specfile parameter should be string') + return False + except AttributeError: + pass + except: + print ('specfile parameter parsing error') + return False + + try: + darkfile = config_map.darkfile + if type(darkfile) != str: + print('darkfile parameter should be string') + return False + except AttributeError: + pass + except: + print ('darkfile parameter parsing error') + return False + + try: + whitefile = config_map.whitefile + if type(whitefile) != str: + print('whitefile parameter should be string') + return False + except AttributeError: + pass + except: + print ('whitefile parameter parsing error') + return False + + try: + if not ver_list_int('exclude_scans', config_map.exclude_scans): + return False + except AttributeError: + pass + + try: + min_files = config_map.min_files + if type(min_files) != int: + print('min_files should be int') + return False + except AttributeError: + pass + except: + print('min_files parameter parsing error') + return False + + try: + det_quad = config_map.det_quad + quad_options = [0,1,2,3,4] + if det_quad not in quad_options: + print('det_quad should be one of the following: 0, 1, 2, 3, 4') + return False + except AttributeError: + pass + except: + print('det_quad parameter parsing error') + return False + + try: + separate_scans = config_map.separate_scans + if type(separate_scans) != bool: + print('separate_scans parameter should be true or false') + return False + except AttributeError: + pass + except: + print('separate_scans parameter parsing error') + return False + + return True + + +def ver_config_disp(fname): + + """ + This function verifies config_disp file + + Parameters + ---------- + conf_info : str + configuration file + + Returns + ------- + True if configuration is correct, False otherwise + """ + if not os.path.isfile(fname): + print ('no configuration file ' + fname + ' found') + return False + + try: + config_map = ut.read_config(fname) + if config_map is None: + print ("can't read configuration file") + return False + except: + print ('Cannot parse ' + fname + ' configuration file. Check paranthesis and quotations.') + return False + + try: + crop = config_map.crop + if not issubclass(type(crop), list): + print('crop should be list') + return False + for e in crop: + if type(e) != int and type(e) != float: + print('crop should be a list of int or float') + return False + except AttributeError: + pass + except: + print('crop parameter parsing error') + return False + + try: + specfile = config_map.specfile + if type(specfile) != str: + print('specfile parameter should be string') + return False + except AttributeError: + pass + except: + print ('specfile parameter parsing error') + return False + + try: + energy = config_map.energy + if type(energy) != float: + print('energy should be float') + return False + except AttributeError: + pass + except: + print('energy parameter parsing error') + return False + + try: + delta = config_map.delta + if type(delta) != float: + print('delta should be float') + return False + except AttributeError: + pass + except: + print('delta parameter parsing error') + return False + + try: + gamma = config_map.gamma + if type(gamma) != float: + print('gamma should be float') + return False + except AttributeError: + pass + except: + print('gamma parameter parsing error') + return False + + try: + arm = config_map.arm + if type(arm) != float: + print('arm should be float') + return False + except AttributeError: + pass + except: + print('arm parameter parsing error') + return False + + try: + dth = config_map.dth + if type(dth) != float: + print('dth should be float') + return False + except AttributeError: + pass + except: + print('dth parameter parsing error') + return False + + try: + pixel = config_map.pixel + if not issubclass(type(pixel), list): + print('pixel should be a list') + return False + if type(pixel[0]) != float or type(pixel[1]) != float: + print('pixel values should be float') + return False + except AttributeError: + pass + except: + print('pixel parameter parsing error') + return False + + return True diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/spec.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/spec.py new file mode 100644 index 0000000..cf69f2f --- /dev/null +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/spec.py @@ -0,0 +1,61 @@ +from xrayutilities.io import spec as spec + +class Detector(object): + def __init__(self, det_name): + self.det_name = det_name + + def get_pixel(self): + pass + + +class Det_34idcTIM2(Detector): + def __init__(self): + super(Det_34idcTIM2, self).__init__('34idcTIM2:') + + def get_pixel(self): + return '(55.0e-6, 55.0e-6)' + + +def parse_spec(specfile, scan): + # Scan numbers start at one but the list is 0 indexed + ss = spec.SPECFile(specfile)[scan - 1] + + # Stuff from the header + detector_name = str(ss.getheader_element('UIMDET')) + if detector_name == '34idcTIM2:': + detector_obj = Det_34idcTIM2() + else: + # default to this detector for now + detector_obj = Det_34idcTIM2() + pixel = detector_obj.get_pixel() + command = ss.command.split() + scanmot = command[1] + scanmot_del = (float(command[3]) - float(command[2])) / int(command[4]) + + # Motor stuff from the header + delta = ss.init_motor_pos['INIT_MOPO_Delta'] + gamma = ss.init_motor_pos['INIT_MOPO_Gamma'] + arm = ss.init_motor_pos['INIT_MOPO_camdist'] + energy = ss.init_motor_pos['INIT_MOPO_Energy'] + lam = 12.398 / energy / 10 # in nanometers + + # returning the scan motor name as well. Sometimes we scan things + # other than theta. So we need to expand the capability of the display + # code. + return lam, delta, gamma, scanmot_del, arm, pixel + + +def get_det_from_spec(specfile, scan): + # Scan numbers start at one but the list is 0 indexed + ss = spec.SPECFile(specfile)[scan - 1] + # Stuff from the header + try: + det_area = ss.getheader_element('UIMR5').split() + det_area1 = int(det_area[0]), int(det_area[1]) + det_area2 = int(det_area[2]), int(det_area[3]) + + return det_area1, det_area2 + except: + return None, None + + diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/utils.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/utils.py new file mode 100644 index 0000000..013567f --- /dev/null +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/utils.py @@ -0,0 +1,572 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + +""" +Please make sure the installation :ref:`pre-requisite-reference-label` are met. +This module is a suite of utility mehods. +""" + +import tifffile as tf +import pylibconfig2 as cfg +import numpy as np +import scipy.fftpack as sf +import os +import logging +import stat +from functools import reduce +import GPUtil + +__author__ = "Barbara Frosik" +__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." +__docformat__ = 'restructuredtext en' +__all__ = ['read_tif', + 'get_opencl_dim', + 'binning', + 'get_centered', + 'adjust_dimensions', + 'crop_center', + 'flip'] + + +def get_logger(name, ldir=''): + logger = logging.getLogger(name) + logger.setLevel(logging.DEBUG) + log_file = os.path.join(ldir, 'default.log') + fh = logging.FileHandler(log_file) + fh.setLevel(logging.DEBUG) + formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') + fh.setFormatter(formatter) + logger.addHandler(fh) + return logger + + +def read_tif(filename): + """ + This method reads tif type file containing experiment data and returns the data as array. + Parameters + ---------- + filename : str + a filename containing the experiment data + Returns + ------- + data : array + an array containing the experiment data + """ + + ar = tf.imread(filename) + ar = np.swapaxes(ar, 0, 2) + ar = np.swapaxes(ar, 0, 1) + return ar + + +def save_tif(arr, tif_file): + # arr = np.swapaxes(arr, 0, 2) + # arr = np.swapaxes(arr, 1, 2) + arr = np.swapaxes(arr, 0, 1) + arr = np.swapaxes(arr, 0, 2) + tf.imsave(tif_file, arr.astype(np.int32)) + + +def read_config(config): + """ + This function gets configuration file. It checks if the file exists and parses it into a map. + Parameters + ---------- + config : str + configuration file name, including path + Returns + ------- + config_map : dict + a map containing parsed configuration, None if the given file does not exist + """ + + if os.path.isfile(config): + with open(config, 'r') as f: + config_map = cfg.Config(f.read()) + return config_map; + else: + return None + + +def get_good_dim(dim): + """ + This function calculates the dimension supported by opencl library (i.e. is multiplier of 2,3, or 5) and is closest to the + given starting dimension, and spaced by the given step. + If the dimension is not supported the function adds step value and verifies the new dimension. It iterates until it finds + supported value. + Parameters + ---------- + dim : int + a dimension that needs to be tranformed to one that is supported by the opencl library, if it is not already + + step : int + a delta to increase the dimension + Returns + ------- + dim : int + a dimension that is supported by the opencl library, and closest to the original dimension by n*step + """ + + def is_correct(x): + sub = x + if sub % 3 == 0: + sub = sub / 3 + if sub % 3 == 0: + sub = sub / 3 + if sub % 5 == 0: + sub = sub / 5 + while sub % 2 == 0: + sub = sub / 2 + return sub == 1 + + new_dim = dim + if new_dim % 2 == 1: + new_dim += 1 + while not is_correct(new_dim): + new_dim += 2 + return new_dim + + +def binning(array, binsizes): + """ + This function does the binning of the array. The array is binned in each dimension by the corresponding binsizes elements. + If binsizes list is shorter than the array dimensions, the remaining dimensions are not binned. The elements in + a bucket are summed. + Parameters + ---------- + array : array + the original array to be binned + + binsizes : list + a list defining binning buckets for corresponding dimensions + Returns + ------- + array : array + the binned array + """ + + data_dims = array.shape + # trim array + for ax in range(len(binsizes)): + cut_slices = range(data_dims[ax] - data_dims[ax] % binsizes[ax], data_dims[ax]) + array = np.delete(array, cut_slices, ax) + + binned_array = array + new_shape = list(array.shape) + + for ax in range(len(binsizes)): + if binsizes[ax] > 1: + new_shape[ax] = binsizes[ax] + new_shape.insert(ax, int(array.shape[ax] / binsizes[ax])) + binned_array = np.reshape(binned_array, tuple(new_shape)) + binned_array = np.sum(binned_array, axis=ax + 1) + new_shape = list(binned_array.shape) + return binned_array + + +# ar = np.asarray([1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9]) +# ar.resize((5,9)) +# print ('ar', ar) +# b = binning(ar, (2,2)) +# print ('b',b) +# c = binning1(ar,(2,2)) +# print ('c',c) + + +def get_centered(arr, center_shift): + """ + This function finds a greatest value in the array, and puts it in a center of a new array. If center_shift is + not zeros, the array will be shifted accordingly. The shifted elements are rolled into the other end of array. + Parameters + ---------- + arr : array + the original array to be centered + center_shift : list + a list defining shift of the center + Returns + ------- + array : array + the centered array + """ + max_coordinates = list(np.unravel_index(np.argmax(arr), arr.shape)) + max_coordinates = np.add(max_coordinates, center_shift) + shape = arr.shape + centered = arr + for i in range(len(max_coordinates)): + centered = np.roll(centered, int(shape[i] / 2) - max_coordinates[i], i) + + return centered + + +def get_centered_both(arr, support): + """ + This function finds a greatest value in the array, and puts it in a center of a new array. If center_shift is + not zeros, the array will be shifted accordingly. The shifted elements are rolled into the other end of array. + Parameters + ---------- + arr : array + the original array to be centered + support : array + the associated array shifted the same way centered array is + Returns + ------- + centered : array + the centered array + """ + max_coordinates = list(np.unravel_index(np.argmax(arr), arr.shape)) + shape = arr.shape + centered = arr + centered_supp = support + for i in range(len(max_coordinates)): + centered = np.roll(centered, int(shape[i] / 2) - max_coordinates[i], i) + centered_supp = np.roll(centered_supp, int(shape[i] / 2) - max_coordinates[i], i) + + return centered, centered_supp + + +def get_zero_padded_centered(arr, new_shape): + """ + This function pads the array with zeros to the new shape with the array in the center. + Parameters + ---------- + arr : array + the original array to be padded and centered + new_shape : tuple + a list of new dimensions + Returns + ------- + array : array + the zero padded centered array + """ + shape = arr.shape + pad = [] + c_vals = [] + for i in range(len(new_shape)): + pad.append((0, new_shape[i] - shape[i])) + c_vals.append((0.0, 0.0)) + arr = np.lib.pad(arr, (pad), 'constant', constant_values=c_vals) + + centered = arr + for i in range(len(new_shape)): + centered = np.roll(centered, int((new_shape[i] - shape[i] + 1) / 2), i) + + return centered + + +def adjust_dimensions(arr, pads): + """ + This function adds to or subtracts from each dimension of the array elements defined by pad. If the pad is positive, + the array is padded in this dimension. If the pad is negative, the array is cropped. + The dimensions of the new array are supported by the opencl library. + Parameters + ---------- + arr : array + the array to pad/crop + pad : list + list of three pad values, for each dimension + Returns + ------- + array : array + the padded/cropped array + """ + # logger = get_logger('adjust_dimensions') + old_dims = arr.shape + start = [] + stop = [] + for i in range(len(old_dims)): + pad = pads[i] + first = max(0, -pad[0]) + last = old_dims[i] - max(0, -pad[1]) + if first >= last: + print ('the crop exceeds size, please change the crop and run again') + return None + else: + start.append(first) + stop.append(last) + + cropped = arr[ start[0]:stop[0], start[1]:stop[1], start[2]:stop[2] ] + # logger.info('cutting from to ' + str(crop[0]) + ', ' + str(old_dims[0]-crop[1]) + ', ' + str(crop[2]) + ', ' \ + # + str(old_dims[1]-crop[3]) + ', ' + str(crop[4]) + ', ' + str(old_dims[2]-crop[5])) + dims = cropped.shape + c_vals = [] + new_pad = [] + for i in range(len(dims)): + pad = pads[i] + # find a good dimension and find padding + temp_dim = old_dims[i] + pad[0] + pad[1] + new_dim = get_good_dim(temp_dim) + added = new_dim - temp_dim + # if the pad is positive + pad_front = max(0, pad[0]) + int(added / 2) + pad_end = new_dim - dims[i] - pad_front + new_pad.append((pad_front, pad_end)) + c_vals.append((0.0, 0.0)) + adjusted = np.pad(cropped, new_pad, 'constant', constant_values=c_vals) + + # logger.info('pads ' + str(new_pad[0]) + ', ' + str(new_pad[1]) + ', ' + str(new_pad[2]) + ', ' + str(new_pad[3]) \ + # + ', ' + str(new_pad[4]) + ', ' + str(new_pad[5])) + # logger.info('old dim, new dim (' + str(dims[0]) + ',' + str(dims[1]) + ',' + str(dims[2]) + ') (' + str(arr.shape[0]) +\ + # ',' + str(arr.shape[1]) + ',' + str(arr.shape[1]) + ')') + + return adjusted + +# ar = np.zeros((256,256,90)) +# pads = (-100,-100,0,0,0,0) +# ar = np.zeros((81,256,256)) +# pads = (5,-7,-20,-30,4,-20) +# arr = adjust_dimensions(ar,pads) +# print (arr.shape) + +def crop_center(arr, new_size): + size = arr.shape + cropped = arr + for i in range(len(size)): + crop_front = int((size[i] - new_size[i]) / 2) + crop_end = crop_front + new_size[i] + splitted = np.split(cropped, [crop_front, crop_end], axis=i) + cropped = splitted[1] + + return cropped + + +# ar = np.zeros((81,256,256)) +# new_size = (40, 200,100) +# arr = crop_center(ar,new_size) +# print (arr.shape) + +def get_norm(arr): + return sum(sum(sum(abs(arr) ** 2))) + + +def flip(m, axis): + """ + Copied from numpy 1.12.0. + """ + if not hasattr(m, 'ndim'): + m = np.asarray(m) + indexer = [slice(None)] * m.ndim + try: + indexer[axis] = slice(None, None, -1) + except IndexError: + raise ValueError("axis=%i is invalid for the %i-dimensional input array" + % (axis, m.ndim)) + return m[tuple(indexer)] + + +def gaussian(shape, sigmas, alpha=1): + grid = np.full(shape, 1.0) + for i in range(len(shape)): + # prepare indexes for tile and transpose + tile_shape = list(shape) + tile_shape.pop(i) + tile_shape.append(1) + trans_shape = list(range(len(shape) - 1)) + trans_shape.insert(i, len(shape) - 1) + + multiplier = - 0.5 * alpha / pow(sigmas[i], 2) + line = np.linspace(-(shape[i] - 1) / 2.0, (shape[i] - 1) / 2.0, shape[i]) + gi = np.tile(line, tile_shape) + gi = np.transpose(gi, tuple(trans_shape)) + exponent = np.power(gi, 2) * multiplier + gi = np.exp(exponent) + grid = grid * gi + + grid_total = np.sum(grid) + return grid / grid_total + + +def gauss_conv_fft(arr, sigmas): + arr_sum = np.sum(abs(arr)) + arr_f = sf.ifftshift(sf.fftn(sf.ifftshift(arr))) + shape = list(arr.shape) + for i in range(len(sigmas)): + sigmas[i] = shape[i] / 2.0 / np.pi / sigmas[i] + convag = arr_f * gaussian(shape, sigmas) + convag = np.fft.ifftshift(sf.ifftn(np.fft.ifftshift(convag))) + convag = convag.real + convag = np.clip(convag, 0, None) + correction = arr_sum / np.sum(convag) + convag *= correction + return convag + + +def shrink_wrap(arr, threshold, sigma, type='gauss'): + sigmas = [sigma] * len(arr.shape) + if type == 'gauss': + convag = gauss_conv_fft(abs(arr), sigmas) + max_convag = np.amax(convag) + convag = convag / max_convag + support = np.where(convag >= threshold, 1, 0) + return support + else: + return None + + +def read_results(read_dir): + try: + imagefile = os.path.join(read_dir, 'image.npy') + image = np.load(imagefile) + + supportfile = os.path.join(read_dir, 'support.npy') + support = np.load(supportfile) + + try: + cohfile = os.path.join(read_dir, 'coherence.npy') + coh = np.load(cohfile) + except: + coh = None + except: + pass + + return image, support, coh + + +def save_metrics(errs, dir, metrics=None): + metric_file = os.path.join(dir, 'summary') + if os.path.isfile(metric_file): + os.remove(metric_file) + with open(metric_file, 'a') as f: + if metrics is not None: + f.write('metric result\n') + for key in metrics: + value = metrics[key] + f.write(key + ' = ' + str(value) + '\n') + f.write('\nerrors by iteration\n') + for er in errs: + f.write(str(er) + ' ') + f.close() + +def write_plot_errors(save_dir): + plot_file = os.path.join(save_dir, 'plot_errors.py') + f = open(plot_file, 'w+') + f.write("#! /usr/bin/env python\n") + f.write("import matplotlib.pyplot as plt\n") + f.write("import numpy as np\n") + f.write("import sys\n") + f.write("import os\n") + f.write("current_dir = sys.path[0]\n") + f.write("errs = np.load(os.path.join(current_dir, 'errors.npy')).tolist()\n") + f.write("errs.pop(0)\n") + f.write("plt.plot(errs)\n") + f.write("plt.ylabel('errors')\n") + f.write("plt.show()") + f.close() + st = os.stat(plot_file) + os.chmod(plot_file, st.st_mode | stat.S_IEXEC) + + +def save_results(image, support, coh, errs, reciprocal, flow, iter_array, save_dir, metrics=None): + if not os.path.exists(save_dir): + os.makedirs(save_dir) + + image_file = os.path.join(save_dir, 'image') + np.save(image_file, image) + support_file = os.path.join(save_dir, 'support') + np.save(support_file, support) + errs_file = os.path.join(save_dir, 'errors') + np.save(errs_file, errs) + if not coh is None: + coh_file = os.path.join(save_dir, 'coherence') + np.save(coh_file, coh) + reciprocal_file = os.path.join(save_dir, 'reciprocal') + np.save(reciprocal_file, reciprocal) + write_plot_errors(save_dir) + + graph_dir = os.path.join(save_dir, 'graph') + if not os.path.exists(graph_dir): + os.makedirs(graph_dir) + flow_file = os.path.join(graph_dir, 'flow') + np.save(flow_file, np.asarray(flow)) + iter_array_file = os.path.join(graph_dir, 'iter_array') + np.save(iter_array_file, iter_array) + + if metrics is not None: + save_metrics(errs, save_dir, metrics) + else: + save_metrics(errs, save_dir) + + +def save_multiple_results(samples, images, supports, cohs, errs, reciprocals, flows, iter_arrs, save_dir, metrics=None): + """ + This function saves results of multiple reconstructions to directory tree in save_dir. + Parameters + ---------- + samples : int + number of reconstruction sets results + images : list + list of numpy arrays containing reconstructed images + supports : list + list of numpy arrays containing support of reconstructed images + cohs : list + list of numpy arrays containing coherence of reconstructed images + save_dir : str + a directory to save the results + Returns + ------- + nothing + """ + for i in range(samples): + subdir = os.path.join(save_dir, str(i)) + if metrics is None: + save_results(images[i], supports[i], cohs[i], np.asarray(errs[i]), reciprocals[i], flows[i], iter_arrs[i], subdir) + else: + save_results(images[i], supports[i], cohs[i], np.asarray(errs[i]), reciprocals[i], flows[i], iter_arrs[i], subdir, metrics[i]) + + +def sub_pixel_shift(arr, row_shift, col_shift, z_shift): + # arr is 3D + buf2ft = sf.fftn(arr) + shape = arr.shape + Nr = np.fft.ifftshift(np.array(list(range(-int(np.floor(shape[0] / 2)), shape[0] - int(np.floor(shape[0] / 2)))))) + Nc = np.fft.ifftshift(np.array(list(range(-int(np.floor(shape[1] / 2)), shape[1] - int(np.floor(shape[1] / 2)))))) + Nz = np.fft.ifftshift(np.array(list(range(-int(np.floor(shape[2] / 2)), shape[2] - int(np.floor(shape[2] / 2)))))) + [Nc, Nr, Nz] = np.meshgrid(Nc, Nr, Nz) + Greg = buf2ft * np.exp(1j * 2 * np.pi * (-row_shift * Nr / shape[0] - col_shift * Nc / shape[1] - z_shift * Nz / shape[2])) + return sf.ifftn(Greg) + + +def arr_property(arr): + arr1 = abs(arr) + print ('norm', np.sum(pow(abs(arr),2))) + max_coordinates = list(np.unravel_index(np.argmax(arr1), arr.shape)) + print ('max coords, value', max_coordinates, arr[max_coordinates[0], max_coordinates[1],max_coordinates[2]]) + + +def get_gpu_load(mem_size, ids): + gpus = GPUtil.getGPUs() + total_avail = 0 + available_dir = {} + for gpu in gpus: + if gpu.id in ids: + free_mem = gpu.memoryFree + avail_runs = int(free_mem / mem_size) + if avail_runs > 0: + total_avail += avail_runs + available_dir[gpu.id] = avail_runs + available = [] + for id in ids: + try: + avail_runs = available_dir[id] + except: + avail_runs = 0 + available.append(avail_runs) + return available + + +def get_gpu_distribution(runs, available): + all_avail = reduce((lambda x,y: x+y), available) + while runs < all_avail: + # balance distribution + for i in range(len(available)): + if available[i] > 0: + available[i] -= 1 + all_avail -= 1 + if all_avail == runs: + break + return available diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/utils_ga.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/utils_ga.py new file mode 100644 index 0000000..747ad80 --- /dev/null +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/utils_ga.py @@ -0,0 +1,219 @@ + +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + +""" +Please make sure the installation :ref:`pre-requisite-reference-label` are met. +This module is a suite of utility mehods. +""" + +import scipy as sci +import numpy as np +import reccdi.src_py.utilities.utils as ut + + +__author__ = "Barbara Frosik" +__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." +__docformat__ = 'restructuredtext en' +__all__ = ['get_array_from_tif', + 'get_opencl_dim', + 'binning', + 'get_centered', + 'adjust_dimensions', + 'crop_center', + 'flip'] + +def cross_correlation(a, b): + A = np.fft.ifftshift(np.fft.fftn(np.fft.fftshift(conj_reflect(a)))) + B = np.fft.ifftshift(np.fft.fftn(np.fft.fftshift(b))) + CC = A * B + return np.fft.ifftshift(np.fft.ifftn(np.fft.fftshift(CC))) + + +def conj_reflect(arr): + F = np.fft.ifftshift(np.fft.fftn(np.fft.fftshift(arr))) + return np.fft.ifftshift(np.fft.ifftn(np.fft.fftshift(np.conj(F)))) + + +def check_get_conj_reflect(arr1, arr2): + support1 = ut.shrink_wrap(abs(arr1), .1, .1) + support2 = ut.shrink_wrap(abs(arr2), .1, .1) + cc1 = cross_correlation(support1, ut.shrink_wrap(conj_reflect(arr2), .1, .1)) + cc2 = cross_correlation(support1, support2) + if np.amax(cc1) > np.amax(cc2): + return conj_reflect(arr2) + else: + return arr2 + + +def dftups(arr, nor=-1, noc=-1, usfac=2, roff=0, coff=0): + # arr is 2D + [nr,nc] = arr.shape + if nor < 0: + nor = nr + if noc < 0: + noc = nc + + # Compute kernels and obtain DFT by matrix products + yl = list(range(-int(np.floor(nc/2)), nc - int(np.floor(nc/2)))) + y = np.fft.ifftshift(np.array(yl)) * (-2j * np.pi/(nc * usfac)) + xl = list(range(-coff, noc - coff)) + x = np.array(xl) + yt = np.tile(y, (len(xl), 1)) + xt = np.tile(x, (len(yl), 1)) + kernc = np.exp(yt.T * xt) + + yl = list(range(-roff, nor - roff)) + y = np.array(yl) + xl = list(range(-int(np.floor(nr/2)), nr - int(np.floor(nr/2)))) + x = np.fft.ifftshift(np.array(xl)) + yt = np.tile(y, (len(xl), 1)) + xt = np.tile(x, (len(yl), 1)) + kernr = np.exp(yt * xt.T * (-2j * np.pi/(nr * usfac))) + + return np.dot(np.dot(kernr.T, arr), kernc) + + +def dftregistration(ref_arr, arr, usfac=2): + #arrays are 2D + # based on Matlab dftregistration by Manuel Guizar (Portions of this code were taken from code written by + # Ann M. Kowalczyk and James R. Fienup. + if usfac < 2: + print ('usfac less than 2 not supported') + # will throw exception + return + # First upsample by a factor of 2 to obtain initial estimate + # Embed Fourier data in a 2x larger array + shape = ref_arr.shape + large_shape = tuple(2 * x for x in ref_arr.shape) + c_c = ut.get_zero_padded_centered(np.fft.fftshift(ref_arr) * np.conj(np.fft.fftshift(arr)), large_shape) + + # Compute crosscorrelation and locate the peak + c_c = np.fft.ifft2(np.fft.ifftshift(c_c)) + max_coord = list(np.unravel_index(np.argmax(c_c), c_c.shape)) + + if max_coord[0] > shape[0]: + row_shift = max_coord[0] - large_shape[0] + else: + row_shift = max_coord[0] + if max_coord[1] > shape[1]: + col_shift = max_coord[1] - large_shape[1] + else: + col_shift = max_coord[1] + + row_shift = row_shift/2 + col_shift = col_shift/2 + + #If upsampling > 2, then refine estimate with matrix multiply DFT + if usfac > 2: + # DFT computation + # Initial shift estimate in upsampled grid + row_shift = round(row_shift * usfac)/usfac + col_shift = round(col_shift * usfac)/usfac + dftshift = np.fix(np.ceil(usfac * 1.5)/2) # Center of output array at dftshift + # Matrix multiply DFT around the current shift estimate + c_c = np.conj(dftups(arr * np.conj(ref_arr), int(np.ceil(usfac * 1.5)), int(np.ceil(usfac * 1.5)), usfac, + int(dftshift-row_shift * usfac), int(dftshift-col_shift * usfac)))/\ + (int(np.fix(shape[0]/2)) * int(np.fix(shape[1]/2)) * usfac^2) + # Locate maximum and map back to original pixel grid + max_coord = list(np.unravel_index(np.argmax(c_c), c_c.shape)) + [rloc, cloc] = max_coord + + rloc = rloc - dftshift + cloc = cloc - dftshift + row_shift = row_shift + rloc/usfac + col_shift = col_shift + cloc/usfac + + return row_shift, col_shift + + +def register_3d_reconstruction(ref_arr, arr): + r_shift_2, c_shift_2 = dftregistration(np.fft.fft2(np.sum(ref_arr, 2)), np.fft.fft2(np.sum(arr, 2)), 100) + r_shift_1, c_shift_1 = dftregistration(np.fft.fft2(np.sum(ref_arr, 1)), np.fft.fft2(np.sum(arr, 1)), 100) + r_shift_0, c_shift_0 = dftregistration(np.fft.fft2(np.sum(ref_arr, 0)), np.fft.fft2(np.sum(arr, 0)), 100) + + shift_2 = sum([r_shift_2, r_shift_1]) * 0.5 + shift_1 = sum([c_shift_2, r_shift_0]) * 0.5 + shift_0 = sum([c_shift_1, c_shift_0]) * 0.5 + return shift_2, shift_1, shift_0 + + +def print_max(arr): + max_coord = list(np.unravel_index(np.argmax(abs(arr)), arr.shape)) + print ('max coord, value', abs(arr[max_coord[0],max_coord[1],max_coord[2]]), max_coord) + +def zero_phase(arr, val=0): + ph = np.angle(arr) + support = ut.shrink_wrap(abs(arr), .2, .5) #get just the crystal, i.e very tight support + avg_ph = np.sum(ph * support)/np.sum(support) + ph = ph - avg_ph + val + return abs(arr) * np.exp(1j * ph) + + +def zero_phase_cc(arr1, arr2): + # will set array1 avg phase to array2 + c_c = np.conj(arr1) * arr2 + c_c_tot = np.sum(c_c) + ph = np.angle(c_c_tot) + arr = arr1 * np.exp(1j * ph) + return arr + + +def align_arrays(ref_arr, arr): + (shift_2, shift_1, shift_0) = register_3d_reconstruction(abs(ref_arr), abs(arr)) + return ut.sub_pixel_shift(arr, shift_2, shift_1, shift_0) + +# ref_arr = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') +# arr = np.load('/home/phoebus/BFROSIK/temp/test/B_78-97/results/image.npy') +# l = align_arrays(ref_arr, arr) + +def sum_phase_tight_support(arr): + arr = zero_phase(arr) + ph = np.arctan2(arr.imag, arr.real) + support = ut.shrink_wrap(abs(arr), .2, .5) + return sum( abs(ph * support)) + + +def get_arr_characteristic(arr): + lev1_norm = sum(abs(arr)) + sharpness = sum(abs(arr)^4) + summed_phase = sum_phase_tight_support(arr) + support = ut.shrink_wrap(arr, .2, .5) + area = sum(support) + gradients = np.gradient(arr) + TV = np.zeros(arr.shape) + for gr in gradients: + TV += abs(gr) + return lev1_norm, sharpness, summed_phase, area, TV + + +# def align_iterates(arrs): +# #assume arrs[0] is the referrence array +# alpha = arrs[0] +# for i in range(1, len(arrs)): +# arr = check_get_conj_reflect(abs(alpha), abs(arr)) +# shift_2, shift_1, shift_0 = register_3d_reconstruction(abs(alpha), abs(arr)) +# arrs[i] = sub_pixel_shift(arr, round(shift_2), round(shift_1), round(shift_2)) +# return arrs + + +# def test(a,b): +# alpha = zero_phase(a, 0) +# beta = zero_phase(b, 0) +# alpha = check_get_conj_reflect(beta, alpha) +# alpha_s = align_arrays(beta, alpha) +# alpha_s = zero_phase(alpha_s, 0) +# ph_alpha = np.angle(alpha_s) +# beta = zero_phase_cc(beta, alpha_s) +# ph_beta = np.angle(beta) +# beta = np.sqrt(abs(alpha_s) * abs(beta)) * np.exp(0.5j * (ph_beta + ph_alpha)) +# +# a = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') +# b = np.load('/home/phoebus/BFROSIK/temp/test/B_78-97/results/image.npy') +# test(a, b) \ No newline at end of file diff --git a/build/temp.linux-x86_64-2.7/reccdi/src_cpp/bridge.o b/build/temp.linux-x86_64-2.7/reccdi/src_cpp/bridge.o new file mode 100644 index 0000000000000000000000000000000000000000..69db455483b073e1b85ecf8671407c3aed6ed293 GIT binary patch literal 534856 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

    k;5;{;aBGH>vQ-mIsD!n{%{U|F^B&x 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 literal 0 HcmV?d00001 diff --git a/build/temp.linux-x86_64-3.7/reccdi/src_cpp/bridge.o b/build/temp.linux-x86_64-3.7/reccdi/src_cpp/bridge.o new file mode 100644 index 0000000000000000000000000000000000000000..b2c315366c8bfd610ba76e95579a2657959e3176 GIT binary patch literal 534832 zcmeFa2b>he);`=lv%8F>8FrU6gk5kK0TU=lFae^@>f$1zvVbgkL835-1PLNxT|qH> z^(uy|m@$WIKroAn@hT?FB69WWH7k72b1HOC0_5f8#sA0rw!5p&dCsX*Ri{E%SNG07 zy7ZWU>pJG=I!8EO%upTY+rp5Ibdyjwr-f4}*hZG)I48%d{&*q+!b!1tUx&UVCsy@r ztZKCmp60~nJrx>o+Ui)<)3K@#HT4_0h6}nm-B0a)O0TMyyPsTA^-}k~C%4~pQf%(m z)rXW+4+_PeJ-28jjmMAS=TuO_ zYfZS#_cnpg0*=#u%hBzBZ2xZi=VR`RvH4qKRp*NeUMU`{y1Iy>@w&09S4ykClPt%o zo{UuwEQ*x6|7pJx;uefFmzi`BUhWI8&|y^qK`DWbNdLISwc8;Qt5Tx8Qj97o5^sb= zORGMY>L@LWsPwB5Dy{mBmai;rvyosCLYi|R#2+#lWEm_{Q7MB9O_;^M2o7_?;=@eh zb0~wvi7%~sw20VvT}k}kNL;5ou&A9%6bK??&-N@DjH?7jnZQH|z%JUrw7v$xrUi*u zRnMYPrErRgl0>Y^m&Cb6g|Ms|&JtUEe$gCA#uoQ28eEFVN<>N*tAe8Rs9052QLMUW zQR`TBXKmq3XrI3&o~@&g7R`ZBB4t?$Wn}`T*ZfWKP-&HN?_TpiW#kK`kDQq1#O6Ll z;(*h-5A1$g_d(q&R*wu9oC^xlduWUL6~wx%4lk?$PcL2E;eE17t9}wy8@}GWWlIM9 zIduGFeDBQof$8u!{E~)RZoYPOaMH#IP2|_F3*-M&bl^y@v4$8PlqpF8Cn%ScP*SfHt)Au z;RVkyRP{ml)YoE9{yWfqW&77+i)-J{^un!I#pbPYyN7eLYIF}b=vgBaZrHP^Te$yo z;r_Ue>>kc5J=(#gVd>E!#(EwdVXWuTjbigwMq*vwn))a-mn_b|pk#5+mz-Femt$RC zjCc4x9BCU{e8QG+|4p&^&wm%L*LqeVXw$P|^EL;<{kMQ}Rw!Nvr2e6B|927X7wNTl z=KIcu>wnv_W#olP^;rx3PHO(23NJYU=;ZuArSo5C^WWf4=0BqI&#dOv?kU;tsj}Zw zWxuD*{$n=#S!*Qs??~=js@#97a$mUZ+@t#5V=IkpnDZ<0l<3b5k%3ZO|D^!+3%4mP zYFApd#W(|oiBdGne&HoeAbs58tj;A}o`TA&;Sn+G5uc;Rl}EhC5Iy2udPKN2v>BJ6 zdxTrBHg1tcx5x^GbKwzd!~LHe8P4kqj|eyH3x`nt;B$xXCOxIfDtOPW8N z)c#$}A3_)gWd3lv%pVFdf7q|I&1bPE|G@lVQ+R&E8gv?rNHTxuRXsS=ep9bDzn47u zdjOqwc>Yg%e$ku!vz=bm<2b?S)#i^9Xh0typ8qEMO-wMll~m{SsvZwECj%vIFvo%O zTG%yc?#D0AIs!7%B;t`6hNpg|Rll0fJXU>fQ8$>&0e3xonLmalpE~@lP(iP5S6V$P zRMO@Lo50_Z0F%bwruNU5xG(96$a;!mY^R#is@sdGLQh0~71ijmORL9nBJv9-A~Jg+ zgK4kCl|P1`Q$Y!@)!|+~1HMLs#zdsEm zR8Ybf>Ts_%pV{OuL(TbeKZjy^CdA|^qH~{a8iw3sPNZ|sq_#3ADrxh+O|`W@(`HV@ zyiL@3{UEid>1Q!m3-{YkW<|u0GE*ZnUoul9I%_C~`OF_Jk&G!_(8}P^Ja{H3`L8~jN z!hB_m8lAtyd<`AkT{2%Y^Ofh|pC$ADzucF;l zFax&T0F^Xf!?3oR^R?dLCAaEBlETVqc~kVN~UW^ zMG)?Jl%BqRHwhyz-2v0JtQTeas@!1*W@}lvE9PYFqn}V7{`r@kr*)8d6&lo(FE>0U zjVEC~XXa@|n0sT$*)h%)57(}s`(ro4*JHRQ^Fk)yT@fLE89JivNDCT zK7o?C3++|)HKsn^Eof=gXSl!ib)@>%RGb{?Z+y~*uCSqHdcFq!hH;pZ;r`C>Xx$uT zOZeO)?ZmC439-}Qym!NyhJt3aVVaF_-p6bsyZ4FCjduuM!kOoLYQ1O_h5+AsQ8&!@ zO8x6aokDav%r!Et7d60ykkh%rnbwQy>_x!XqEWr7kKlR{mu|3tQHUHn3F}H2XSl3T zSn7T&Ycp^pPWono!qu3~k{=Gn%V9ILlva0+Vg1Ul;})dVtLi5;-z9Vfpq!0xfZ&f| zj^!rY+k~szQCG~jPL&ONI5}LIxK5>pn)5{q*Quz1bB9&3RMoR+qL|5sJ&_Z|s^3c8 zCoxkgZS%dFsxfu5OjKx6hgGdj7|T+Kw$st@{HJ9csohzxS5bx&CE__zB2Z71%rsG% z5W{-aM3%uajT8x}b`UrD5Bb6o6HYCQxn{1MSQgYo8>oe4K@G`MWv)HwDPz=dajLB0(lJ{;F5|Tf+=pncUYNs@|_>!VIT8h$~Mz3ca*JTnncS1dj8gUxk z4T2n0uoj>eDH)Low(>qT!S3cwux)4RTaKjWKQ|n(Q=_ zWBRw93!I~nO2V}KT$qo9?R;C-6A$K{xNkjChCL}P%!50nn+G42G!Itml0W3I7CQW$ zNtjy*mT}>R@tD;4*C7@D72uQ8U6DTBEH(drB1w;0pIs{Hs`X5JUy+BkJhMJw^Q-XJ zro)d)JO7sQnVAm%aN7C3;QOb;*Gz|3#PKa<{TBBFk7M>1 zOIp7*_XBUE*{jt$_CK;(x1H;^g?jz6a7WfJ)#~kbP5`~t+Y-HgIe5djm;ff#-x^h3 z?<+sUy*KB>y-m$a$0F;OgTqUzA)RUc@)%nphnW(w^Wokxy`=p=TEBd2YU=u>TF^a6 ztzZ7A)-T)1`elE;oGt6u$;;We$588+y*E7mqgjVbDwkWCjTFDYebTd#NcIb}t{*{v zto$N}p+B*%-%k5QJNm_ruIr~Oh|_gJY{D|@C{++cv5?DE*TE4y7*GW1cfLdQ*M8h#SfAd)_36W&vFpwNL_!Kd7zsLCJDOE zp6z~0_o^TH2>%Z}!jDzG#8votUyq7a*DS3biuLL>c4htVGR8J7LS^guK=l;dx{bgC zc&xxkH6ai)f!++1wE3@*yo2j4Q}ivo+uu@R=zKwy_CZ%=~X!Aav5#YfyR`{zyz+|xy5t&Hv)LN#b@dl+;AETAZ6t%Wm zsgG6HE-JyJ0s>ldeYG&Q7-sdV`nhM-kIEF@19}rF&a1llq6zon^PU=&Fm+1mXRt2w z9Lk||agkp4`$AIK&4syM{s=7pBvzGG zv|*sk&ANH(JK;#tTs0u5+8 z(+O9^%g@cuz98bU zSM~;kYi9qD>pWgFdw!m?v1ayioNH%4lIQ$fmy_nTxx}x_CH~V~;=j!$eoh|oH{=n2 ze;)Cx@{s8IJSKufuXNY%mHkK~XI-uA>Zo&5?d(gV&TF-^uZ=p_)X82KbzZKM{YBK- zTqpa7sB>rC?D^^rE9yZPl)n&lZmXYtOVqi)5t(zNATNkgVF#F9M z=l9^Vm^iJ@A!Th2DdR_+6?aa+sU$vPk~3+<!>Xs>AcBH|1=bHpTn zqTN;8LB=XkoRe*$y+QEWM{F@F&vBlWvlqfJplNVR9U?7OCBO_)9u~JvX|bfMv{3&# zlnDz!l8(gG|Nk6QW$2ZrS6?jG#FFvKJCXiBjICz<*xv;Ou0wMihpVKH4l|VWqkT@O zT?d@$F3#IEe!L$NB3t991!Sx6@6CGwsKS3R98uxT3^!8YEescmOV)5)Mp~Z7bB>BMb{9a~JQZo?UWUjb6=~%LPIsIORpdao78G2e zBJCuyOhwvDWVwnQB#{*=ae$a5trO^3PVL#a@TjvA&J%QUTr7k+PTj2R(c|MPU$qA9 z3qJm!^7O^H<^;sNaA*Z05$X(w{>dQq)SDb1?(F4+j&q#c+TE@ICAW5Ufm{|V;*#dV zyP&IFF07Qx(sSf;(Q>(5yjm`od?=Sof0N5)^^T{q%bUsNilgLmv0R=zS}xCzkjo46`Z*jW~7HV^UQQ^Aom=K%83R!&B+W0qZ9N`fEk>Ny%Q>iQInu1vb zOg1?Tq@+;SV%lWH0X2VS8lzImq1Z&y+fWvcb;3X)4RARK#v-? zz{y(>?B))fhR&tsTsW%Z?oCo|1@oiB!wOEf;o-#$7YXJJw;RNc!BKoTsE(pec25Ci zh@nQ0BCC}MOmoK>amBavM9 z0V+BHs-qk?RU(d}3?nL;RF-@|E^DMexPuKsTk^4CP6cD3 zVM^Vp3X}$r-vT*?Fl@OE7}2gy;z`Q9O@urS_VWp9oc&49e^lDU`(S;U$UcDVJk^QN zN~b1rk3;4BKyveC=$1T04M&+M*>sc&)e5QND1b@`?0Y(-6<4)Ma)*F3mfZf}imPhK zeqtgsc`n%J5#m#DkZ>EIvaSbbc@p;!%Uuc1GnOlv&+97Ob)c>%hY9O6y9T`7 z21_+)vXo;f{utpunvowD{(F`$rgHdll>9>B|8Ds#+bB<(UoHHmwN3gh$>&M)FA)A= zme0yn^{MnNktl!^xXNkxDk+>Sk_p& zj$%FN?hA6a1ePxo3iPDg8-UX@fK(G#$d}ydKwV&wwzmDCH{5FhxGNFlGxuHh3Gm*q zd|Ty8i7JI?!2Jw}Zw*R~I~`aQc`fN4&Lrg0-K#E&28Swn$+*I_^)UN`-`QfMZWX4Z zhdB}affghFr!c1ph7RXW0e^v&1lf@=Qo*6pR_x0>=>x&)NVaq;ihZpo zeF9j0lcZl1Hmk-R2iD{y_NyNIe6TJ`V!!3FZv*RY%RYoA=S%rI?lU02MV553)(sp1 z<^4x=xElfZF#)8DJ|v^CSQw6A9LAxtuhRHInw8rY!M{EMlafs}a}o4E zfqc=Tle0O>Q~N1E-y{HaQJm#rLV37b#Nqi?RI;I3&~+-C`vcI!f@A>o3Pd^4tDedM zK#s9!0s6B2g$FzrplecrDS5B-YUM$|*CdK07eGX2`%+S$0r^8JT9?8;9DF zPvj85kIx{Yb8w`G9uDNJH0b0U4EIDX2mJ0dBHpA^Rrh#LCuIXvvp-o;%D;lv5b{GBh?HUeYmzX{aqD8iY;PPgNUPfrYp@#a z^K%64b_VJwB4sRQK6P2Cb!eLE4g`Ow(WcqCZ1;|^XMi;~iQQP(-_e%8fwe4=oxk2Q z^N5MNfwxtbpBp48jFq904=jXo3vz0tDWnqeHh5+Q_%{T-`rFCF+ks0V6vgh zJdL%Yxb?xIvYu?{fu6<=0F_u^T0K=v5Dh2i4A17MN@(7liP{5oh;4 zfS$6zWJ8be41FJ#DEt)V>eUCJRh9bdaYprz!4waHOyL(>;v`0@Tw2 z(;9lVr}i`;$EBjRp|d@;3jn&z0+S8BMl{Z1)!zls6BbBs@HdaU1;`}^_icbau|O8R zPW56*RWQGUUk}}+%C%MIn;_(0@1ffQS&{*r-1X$&=gAF)%s4B@BGZ;zsh1f zOMK|pJ@kD*zMKKAiX*}W*v@oVmZb#vI79-nqTGc%IYn5m(yi4$g2CJdeXc}l?fSKE1;9U|M@w{9{eIl39KjR{Hxedq8#h}!cY8y@*fuN)%Pg(5AIaINQ_1t9C zojn;fjZQtGz;O;EuF(JrK5kSUGQzKuv8bE~G6GchjS(mxtOXDcE+M|676a|zfs_|e;4DS!n%$S4eU(?fe(h3!8uj< z!;y#B@cKrl*ziYtd*P1{@WP+a8ZG--?{XXdygn?_^e>`b_)G5rM&PR^FhV`F2>k5+ zfGq!pqxeRa#Svne-Ga|n1wz-U5a;&>&8K!ZFp)qsuTE5<7GTQ3aop1A?^fmC{slI5HbTF%FNq+5WHtC z-&&$tRv;?={CC*nt_SFI1Jvxjg?$UzTfoY0fpk{ULRm`+?B_{02dju|DJaG6=t&4(93B1w9_uvr@J z+hBc=#6Hhs{{+?_maU3*rLf)Hmhf2|s_3O?S+lzA-t=@F3Q%_frR-GpJ`lDn`1A*B zuw@?!4Nl|kJiBpFXOqKHjWPwTJP;&*KJC8({2S6?>Ir5kF^_`(EHN}d=}|dpD44)| z;C+$E=VDNxt(VLeuxsv}V2VKanup^^DlNg@pAat&W} z?EsX9x`^BH>1RZO`{*R1U8&2CPx+u17+%Ww)D2j-6WBcrM2V|v(Bspo;8j|_wM18{ z8lMh_3GN(#78syrtMRFX>}$dL2ieEaLjU+A(vO4nl$G|6Pa^$3Sf5zw4$$D}@o5N^ z{|;85wJB!BR^!vjWH$k;1=*6eVyp2@owMXSfBdq7@A7M&w1Ma!DiWv9j`(eW-oA6XsBe&6`?D_GoDpt7eLxEi1G zK`kK1rl6Ip@u`^hcLx8cbQm>0wI^mE_?5)40L4<>+34|UCU^@I`M&WI36OSUverCg0q zB7GECB}vk1e5%7z7z);?BxyB1H70v5SPQMRs%bqwT@CWhMp9a`E18Q2vG5J_3vt;eT0 z0JANK{fXx5@#zxq{$}`^rN^hcKz_ool=F+J{_*K`@ISGbH8}|xH{;XK0MywpL&l{R z8td_?B~S+?BHu_JpIByr;{h5#pmp~&{@>5Z&+IkrlWU^jmSLaSDTp@_O&) zO7{Lmn3(FTFUbl#5BvvPlbObWUBQ>Q?$3bM!JwBh2^m#n#NbaM)afjJ<}V_(8gq8Wk~Yege|J4LSN4d65-}D*%SgEG$4b#vyXi8^MaM21-La zBW{Py0|D!5q0dv79X5{#{S?DX88%-5)*TP_Gy{o>c*3x`1iWi3-&&%3EH!M#VUPPD zK#v)qW~*Uy4%u&k^&Z)8(n9~RDbhcH^_!LU51S&Le;_iCLrHgl1~Y74LFEU7)rD*+ zX2n*+=J{mz0jpnG-=`V6q9CP}MdQ=~5h>#`(iHEgmp+`GWKKZ&h|O<}(b)*F_c zFl=rB`4_TiwW?&+tS&n>Y>JNDc9@mkyao10gm|X-hD}N37qGM1C#0gQ zQie@Y(+vE*iSgC68a746VPN$zDs*1euqo05z#5Vyt%gmJo(|TWBxyBl_GBqs3D&hq z(rVc3P4+`zJ#M8FhRxSO{=i5|OV;J5ht2Q7`^E76!=|*2dT7rraHygq$*)2Wn}+~! zd?JXxqmb%GaRHl+XdDLM_yn+j*c8YDurEu1L`m0n>tXXY03NU)_9vRJhs_tkd)4qY zOAni$gZ!gmc|DxtA2w?qj11sV8JA&`y`WNLhRp*3=xISxI$p*ThRt%IMkgYNQJr!! zbz4W#z&QY2M4)x|G{ff20Ni7>(Lr>-i(zvO=pW&b!HR2yDhJ*IrW!Vx7>WQXV%Ve^ z^>JjBNgOs01hnVY;4-Snu*s27v~p;2a-)MW?Zjos?Gt$!_Mlvbzap0rpUP$AuX3r3 zoI%K_V!4byR4%6vl*^cza+z?sTqZs$mr3u*W%BQGiMO0Y@iRNiW$FoXIjdYQ(=D5hsGIof+i96?(WBMXHYE(|xAwGof z5@`C+Bfapj2-q)+qI`<5BI@HaQ ziUOzXi*S1!#nWk(BKGeF!tsU}okLC!98Lfe8SH_!oCV}KVrHOMol~IoOz>3v`0o){ zhTQl$jZ)*T}rWV@@M;F^C&*d}Eo) z`k9+S$U=Xm)G6ZZJP?{2V)Pp7ico`MpK}mchg&xL3C&qh3hKZFj*?b_*Ny?}Ov6_7 zr!sIeZDdI=2KNeskasuKUi83iMBE0>KP{Jd1(8lHa4#XjSHNFqF=AY9;5DX-3svJX z7m~QJ7;#~NrCA}0@TmpXf6P-NK9*_0C>p{C@T8XU0gUWTQes2k6A;r7ZbeP%@UWLX z`f%PrxH4@;LzoA3RXB>j2Gur%D?z!@P@~^@tZD9jAU|PP=^Fy)?D$hJ)1dwsHw~dZ zIwsQ)xWrXoCiuD`kYE}D!=@oHY#KrbguCJ>-b|}h?e;GLp|2rEv*O_3UIV@>4WSa8 zNtRoa+@r{yVQ4BFrhzoTs#@f7@N@(D9dX@2zG1d>1EJx*1`>hVwGeuXN*gc@Ujv~< zo51*<%%&c58qK&9#F|}^CJx0^xtdu(0uNEAh_gF@aHJtdTT)kq8Wj7SlfW8e+5QGH z4%D*~I7(UxUVA=Rmm79U17Qu^3GTxNkYz6Jj`i!lv^siG}VH7?gf z5*HRDE-bKgH-ua^1qEXcv#ExhBA_-f$({vrVs7og@>Kyg@<#hU>nGd zP4Q5%(?EDLTVIB9 z-9Sh%4TNFSKo~X+z$d<}#a)jb@`K{$$U^O(~Bb6$bO zzF@SsOqHvd-9R{oL{X=Rvrh(Lupvh8rmhGzDE2vVux4Afzkw_P^_m2Zl2(G(-T~G_ zhMm$tSOc$syUrj|8ptMa{;*u)QyWMAA&Co%5f>I%nyFue z3nabdVU$;Cwe43IQ!tplo!vA z*;dEvbTpqG$AUA4I>Z6R4u(?gcy+a>gLUiEQ4P*r)FE|lYu~4%p@W~BHP$WYfj1Kv z$(ragonIhkN3bZ}Qk}$_MjFV1v8^~tmsck#I$PGmpjwsF>+~m|efxq_hC{Z&cpm4o zPdEN|Zniq!-QVU>%6bAg7gI-uJle8;XQQX%5Nn6%xEGv%QHS`uloLbN4p(ndnqCv* zi?EqP@et)Em;;~%T++$U_6o)WFNB!Ub&3JANPWASw61x6wpSA#_-BZzJxO(+zX}cT zIwQb>h`ur1<30=S6Nbx-MNgk$xJ~-s1nw7xE3)2+9j!{EN&nY?3!_ME@umFKtzn$s>ES5ywMnD{8$J`aZ$kYn{-JuawLg`X(c>Y zN)(NXKS2b|w!X_A<0d0-{lu0#JEf-$n_a8wos{$pY4q+fDdo56!=WzVX83+$w_C)x8n@eO;@vV|@Orynw@R!-f%BtM1^DyPPx$-}zx*WrT`MQpA0!@8IZ@1@27{WDmF=njNfez!FnJ26 z^wbGb^6#X|Nhfpz2oYix>i7Ur{92F5`i<-(EPla9v8d%(EjB}Vzoq4UB{uO}Kgt|< z3pPc3D^!)}1@b+n!-=?`xvRqyqbLY|a7dxX35uTwQU#F&RiM%GHK$nw@dO3u;u7(+ zTp?QSv|1$OPmpSruAjw3etIaSFgFW}pCb~M78od{z^@Z23q`HJnC1(B-z`#g;OEs3 z(g*l4qbLLZsv9n1r;#N-BK5~8viGcYl)D8rFAYj%=M3TV!$?WiMMaeYJtiQ2Hp#Ql z&mSxNPb}Xj`mnJ0jU^@OV@;Amx38F~;?xy98<~~%RO>4G_Yu8}eaxli+(4(~hnhU2 zG-o9_{B~0c=VEH(=bTh-ecFC!z3>Z9J{gt!Q-fr^XoYMAMoB|yzluxbEu2c?QO$7Sa$MUc|8a8d$R`hSgF|v-23Pt?<3?vuOy_2Y4%Oj{D_fJWx|YW z_GOgj$F7p4RgqmINp2=z>Q_QiZn}P1@Cu5LQ9&)gl$BEOt6Z*@@ldSp2;mE9lErX{ z7AO_ZyL|q_!;e!%tq@U{=qe%@@WB-S4VQ(-!(*vlE+>?YM0G;%xctTuKiQQGQ@;8X zv%*h#`BITWQ>mOM-B5OK@Y$HP(xZi1OsX_tIr*eY#P*}f_iXp^PZ0iyjQl>rpKtjx z1o-63rG@gdVv@e;yw4FbKQpGua`RbhJxhZo^2=k&U@BA}nX09}iA6TQNap27-MQBK z$_VpAWhuh-&}k{%{D7HHxH;*y4zuhNE!)crZE$LT$4{Q+*8W+2`OMW{J`2c~&vLW( zTox=WH@K>5{BqwPJ`DQ?X^Sn0(f0%~!wljthv`AP`6`-9z?kWLVc-VKs^ zlAnDVA^#wxH`oI#8SHt4(6Z=aK%$Lk2&O5>^*Em0%fY|dVkjm+o!lA3 zP|$q>n5T)OMOwpLa@}`8-H@n(<)bn41@i~^A(XeWgsET}ht1OL?41Zd1{M@t^G@YJ zwPCn<*A-x@;Gtgd$P(yQ)NZ88oQ^$~Zw1uo`iG~h%1RyT1=H$cJGa(+;c2iR$7+74 z7fh=`GG%ON)7O~Wwayq5Jk$%O)o}7CpACEvu1h4>)8GZuYG8+EJ^lBS(|S5@pNyw_ z57M){dk@mHdw37hv&-Dou;h6h#iu~hdipz{d}^rCfgbA=_rD--F{~6%p9hZH5Vp0% zQ9Kla(W^l6d-?^0bOrlp3%S{Yh^LE|)4(1_2rY|F1tite=Yqe~Vkjm+zo%2sy#<)N zh@(Xbp1vB?*Aq3cd=fnU3-G^7z$j0beF72IrSgn|X}l$)uQ>(JcI{|_&mCifFZ8j& z7YEtkngbA&4!K}0h53YkD2`~HIq!my`gCH!>*UV09OC@!b!1Y^nkmtTc!E;l{_%ca#zS*W`*kQ~gK(K`g63h-4sOcx>i zY(Snt1ke{Fwnk#Eio6t`e7K>~$`PLwb8iOd9;-}%3R6=slHiNrzm=#=Vd{E%z5)N&bb4|FAxFoNr_5A7au!(b2RMC7%vl~=`N({-|G+8OKas6`WESvl zQ?Oc+EeR{-%178F+(W@S#<2Yrtb9aNRDeIiU=n;pRLlaa%CP+^l#fUrt_S}PVwi{M zxy(pp4ANKjC?AouUIgeZt4x3jqkKdX{097A6O}29@)6OKhZ<{+L$a+BR2bzWqNfx1 zJ&5s)QW)hUtPOVn_(Kdvxdt7;^AR)UeNK=ME7G*HW_Mky~jGm{R8CCKrN6m5S|aNTL|{PgnSOc=#3!x2f`}| zIST9(EM$cT83wQ;T1J9>CLy#eItP%{f$%)=|7I~16QF+}q@a5bFb@$&ixLLHHK4wi zsDb5^Fc5wV{%;8w)%nX@EyBhsjodAm#uYW`%?h493U#J}&z0HW3j=KM#Y!7o(+NS} zK**guV{pidT(k#5{(DYl#T-6MO_o0ij1K|^1WNqM0 zFY;>O1x9Qqw`h>#EWuH{IS$2Op&~F4UJKH#h8)de<5%rWb#kYH<*vr*d1AsITXk}$ zll?JHUna3tCs&`X)UCivusBr0O1bLf=m2gZSo<2bzlTztoT%st{&5DA(8-C4VPK6n zY`+TC$w?j-f`1V)%tN#ZGZNvGdu5O6|c{R|P5$iAy55}`09K}6ZSV!Oxhgl2KyEud#J&rtOvvQav zV7dRr=~rS-_Sni{t|B{c2-*P-KU+D>0Ot50usV}12`lBwVc0(06Tup2*#6p94kIe2 zfIq`v5*$WUTmsg$hV56O97gi+5csQ!VIHDGn32d_q_6Bz4kKxO1kl%3nE(|=IgBKj zjjD;@@F`Om{LV@p=flhk)IkkSP$1J_3?|RJ@araqizrVYNh$OhN+Lr{%Ua(lQR(wd7yo)Jd-A>*UIANZ+W)_}7-vgj&?7n1k#nBjoYB&gED8*j#Sh0Lx`ml(G;v zmF)gagP3QI_`YGGF)%JI8ZbIjF8PdNRM{x@_Y}>ir0n$T; z9NmY!4mg~k>fFYF<-Us3zlb@=W2?^XEV94F>Bl6t>fAcBb%sY`5fFz;SSeSX8+R+X z2Y}VZu>C!g>fA&{AMpDbOhV@-D$W3FreXV4sLoCDa4Go9h+!V0M=&FiK}cWOqdGT9 z>v4ddx5@;lFsgHt1V09UQ=&43QJtIU$wBqi!y(yL2`Y^0+(b`X@H-OY8Kp3)b7O6| zCxGAAU{s&R`WLU^{zoUmJJkqB*9etH*lk95M{zWmPH;|;cfWT)gNP*DQpz?UwHK(7 z2HU-T2}7>z2vXaE^ostA?srhhLoH&f=N9U*jwD>`6SpxI_jq^+RXGXI8@_V80m35{ zR)a?6xFL1PkxL+(m*aRU?8N_-aYA9|RauCYh4_CV%0k_7&T*wf2}>lb8T^+K(i#W1 zkpJ93A*V%GE`zJbS1k@@SUr1b(VbzHpBBe5tR79Zh%u}lN3|$nSUrwvaU8?#l+NQB z?ySP440luEUJS=n_yjJV_EzCChEG)C6B+KK!Y46&k_w;9uzGE+#i>q2SH{aid{PnC zXMR+yEX4nz5#c7$aESk6A{_b!eQ-F$&x(aZ{3KbKK9gQ1^x9n5o`)p*0K$)&MM%IO zhUyMp@R1t<35RaQIr23!a+m<_qJ__crk+LfgJqiYegQcANSWgBi)Na$j$wYcOcjn& zbQ?vv`mKl&u5?FO65@i5aypIzPl`LIBTHC^4`KSs1#>!)9zl`7p*!~hyqGfTX(M40 zVjdcTEOVStapbmfaFcPBlbqtbA0|Muh~mW!+{=KunmT?XRYvM!Y4q+2P~R{dRmog$ zih3u`x})wyD;K3s_e;ps8>=;DmP;0HD#FDO?6;l5Vo0)@=AvdSR4hoN#zS`^uDDRn z`@`yMfWFa4s5wuulpQ-$_fc?GC2?C)mNvNSz*(Qf-P>yZ8Jx{YTvhti+yM2`6o)E* zWfh7Q1adoo(>00P%5wXF(=Um;54p^yI}w~Slen!dcL_L`SnkQ9vn|i=jh3pMC(n#kB*rTL@08BraxzTJ{KVdM0sYwk94p5S*b&-0oI(IyiHZxIHcR3UIDT z;vQ?c4}kM%68AWAnN9Z%aMoEa9)KVVy)5_NmV?fS9Z)zl9-Tv3h#!NJS#3B}1OBvE zWS<5U>V&Yk);`z%~Oen#?!EVOf=Lr_&mZc& zXX(~Mo0!6kFTFr7%75^$_`SQ0iS7qXH$t5S{zRC-S_}nlYIvV5% zgJnV}6GAw|N2_HaKI#tZGv8`13-M+0vJk`J(B~39;}B9*nD0i1L+gag_qNMId?7g; zVz*KjYFNl~4>=bIm-KLm;c$qBRi@9}iVzNQRl6+2rwn0z=DKcKi0|>1g%}Qp_*!XM z=pwZLG9BjYr{NIaatw#~%4}JP?|g|)A7{0>`Lh#y-k3w0AN>0t?nL%dfGhx*~x zC&FNv5Xyvrso_vkxV#hAXWmekh4|JaiVf#*h%fP#h3=KJ3iD;ZaER}eg+qKnu`I+l z?7|`T;bkFy-=-|YkJyxjh6tDRu!J#3Mc-5w`hw=L_QE0Fu44i#WIlg{A%jS%IRy~j zOoc=EC%qsjGFN89A>Oc+h4v?eH+A9A83Ivc-mZp2yqzlx^(KUiTH(-{0#Rfx*M&p8 z*((c8CWKFe!l4-gQDi>nDnAyzaqtQNp2Puy3JhQ%r!)O>U>pHfvybLPINdDgv*h3# zko(HWGH_Z&#b~aMeuJlsUGX+Jr za>}1ZO$EDwd6EIxfB+(VUA3Gavk8s_VxmDY;6(Vfi*kM-E;tYI#fHg%6X6%6%K11T zxD4?J43hzqmwyV7PYWVh$X5BID2(9CAiizT3^)-!aVqEYui!?+H~X2syxa&k57wTF zWg#3ww*i$GzMEdoC7IwsK*S7+0b@}wgq;XiY$99?DCZZ3f`dUk-Jm7s<@|0@@GQ{I zNu)n981xH4yUEZQFxqcJ*opL{cCMqA^Rs`!$3c9~prz=_`7y!ZTcE8^q;sJ$_;1ic zXZh-SU`545?78yR70daGXRrYbXF4hN$`voLtRS?=n;dj=ey+H8!|BBMf=&hB+zNi;N7@BC zg}cNPkzkZyC&DGZ@^vsa_#@-fbU848PB~w@4b}y%g`e(o5k9{R9tdWM0nov80eX)s z%OCCv+^N7!H8=)z0rI8vgaYJy^@I3j02JW)z+H<&614$Ufc(@z1;48uTm?jDSnRN$ z^1W+T!8g`|U;DYb)ClwioeI9L7A%_X(_^3e=>qgbE|Fvib|QRySpIMq2zNrfJC6P| zg!yyI`C@;t478zsx&R~#Pv5MnNlrbm5_xZ}X}2 z9wU_VrS0HH!2D=%x+$am-Yo66oDbZCSu^qSFAhnE0Vl#|>*ai?A8dj6p@ykFp6SdP z0E=bcW;wr}5G(;^kilt>_tI%z4#-%r&omGQu$F`TRLntn1Xmy~MUk-RIT#==i;}Ct zbA$JbBr8v9u!65c1~(XS)-O!M1BL!c!RTGQAF0@kTh`zfzy($J4UXSVMUQTv)<4@) z%Ljv6z7Nj9y+Pd{hZGM3PJ|CcE4WM>tVCSQW;2lh=Rp*v+2pG5+~8P|WbH~7SMWW} z;4&jl2he6G1-02PbOZbWz_r=z;+%>;xStHJ@u;-Iskn^Pk3A|2!YSwCb?{qIf5jo0 zVZe!SJ-cE-H!$nZGV0$`rNVbagB?MYoH5D4kl+i7DtW#d8a&zXDP#Cbz8Cp-f{!a6 zd17S(&r`GlnsY4H;{O&`r3*txN z5JzIbiSVNt6|WBma}eUv@fECRP=0)%f#Fyd_Ij=uj!2U?}l?%vrBK&MdIiDs6 zZ$$h~93sMi6X8?uin?_3=Mh&;;=S_0U{&z7+u#OJrIgtqNT$!K#=+NWgL}=@e99QU zlIMH1!J*)z-u*ty3B7$AP>IZNNlX`JQprBcH*$mLq$XVGs)YI0ZSbYkgvm`xc)5tE zgcHLmk94TKF-a;3mX>!qFdO3E=;c(`UJpDwsRZ z`YeNbQ0Iq?g2jj*jYH(TvCZ$ZWIK_T)OJV@hzv$tx#b(|&z*|tq@HQ1?@6Cr@m3b7 zuY)R`3x~d>-sw1(#KF+u;Q!eB!))L~Lc%C@x!-umaLxd-dbtlmAAS{l5jyxiB2sru za4_j;2`X{E=o~CPH^tM_m@&hbbYfV{7%F;g@61=EgJYpMDd9q$FkgcXKA4&?%}UDu zauHE>Cx%t`$XBL=KSPxiU>XIhdB82LoAi z0Uj{nuvH~aPKqQJxFgFZ7PwQwQGQQSIa^>w7QZ}+r1^!^^3SPo07U0)Md2krg(@87 z$0mn4<@}CPa4AG@!Xakp@nMJ)m`$1<6fQXwxQ7v6ZE(CzaLW0QT!OEH_O78b;6(VZ z5Xzq|1oPjB|D3=q=huvbISb)HIBeb}pl(}&`v9;Hm|YFP2Gp$?zlvV*IGgv$KuBTN zeNQ!dzVaTN0;-fQX@g-9TcG0eb@$-Q;P)iin;)?wOzQI0R~-fumz5e$9&7lbeDL3? z2^Z>w`7(U4%c7KoX;xCg%SA*boETP}Jzty;PKPRKfoT-1@+n9RD+T-qOu>hsz!s7O z$kfe_N>hS*tQp4Sf7*)l7*E<4G-D0l#19@*l`ip=v4)DI9MA&2upVouLya{Rd{;j> z#jjJ0Z!*bRqJmC2zl0tuCh?E}a*!W0Oqg(l8R8H^^#Jd?B?}nXn{+Ej2383{ebmqV* z=YPQnjs$ID0(}H{j=K~zDI0f~UC&fOXV3zyXS#Kq>j1gUh%(?r_)vT#Mg2d_N#*BW z{W>@us`0NED9Ya`b-_wzf$Mw^;%N6|x0`diA=dyHqyQYwLXQWuz@x(!^&1R2vC`r2 z3%Y^hftrp(oR)p16rR_CF7bNnfC^(t4~2SxOQ~T_gx}6B|DqLCEe7ER9JbPcJj=nq z(;^W|=>+lvhrtIBf6)NF3CX>3Q(v*RJ0SJWXN$zkj4ar}G#+1r@}{eaVYW5hg-mk! ztq3I4935kz09rcYuz4~Tk?2JD1^04(Q7#xm{4@jfruEt)et{}@1K5e98Z7c|`Vzyw zX@#+9EO$h>xipTyjv;k*uYL-OFS^Zf#*rW{g6nuj++60KKONY$ z4^M@tib({PI(UGFuUI0Che;sk^FafDDq24=+Q397(*>rF(YjylCzBcXo zWV2UfeaGa#(DcgpbYS`;Sh(^3nw%Mb8>IM4I8C3C%p5%B29R`?r(EuZp<*hhZT?^2 zfvn2MO@jC6K>Q{I;(xYBlZ6pO{r{apaq2H<20R9 zVE?btX_Xr_DgGe>@z-&h%89i9m$k;Nyw$+2A?zZ;IMMh2vTk=P+Z$Lh0+o$*OiVoM z2pyZsn-c#oYXS6YTKpOWDlgJ85meGoB?(ytGuLaMA|3z^*`DXU8xPQ{$m%T>=GMbB^w}rlFO~PzDl+}54+W-SIMSl zv0l4N6-b-i-6gg&HPj-L^IEt>>ON_+|c*5IaL$?n{6&j zSGL<=uS+tuIfF^l=2F{9gU>G89otErOLu8IS;FLYW;>Y;g?riwJZsmDO_OKq-raPF zZo}#;QLUG0awR9={7su8{lALv9O&$}zZ|x5uY#PMX$_M`KtT4r0?N8*dgTEoz~w{! zX7;f29=+8U#K6Lfpt!Q!Or7`uQGU~xCm9=9RQZH4ls5qUP3NOI|1WTVoKNB^`)K;~ zykx-gI3MX%cGUFBwmOh7SBoMioU7r!z}Vxcxf*5~T-o*i0*ASkZ)jTOb2<=z6oL2( zoThRe+5h9jX_kRaCTtW=QsUFOXzl-D;?&JRI}+L!r|DcJ_x~_)at-PS@ZuYAn##3y z|Bn-=m6{g6kFe#0@mYZX$BEOi26iX{l?UpWn0QuS9h=HKF#nGeryn&f{uKh1ALy78 z4B|e8zcK29^yOyq#K0^=kn3dLy7_-@!%kO2S!+$MBK+!UaGQ~Auy|D%@{&QX-gd>x2~5QzT{ z=u|$T^Z)3jFKAl)2?XNz;UpzKosR?kKX~c+20E9}GjW>E=a2p$ytJ1=btkGLPE+|5 z)BmHF);2JQu>S%vl}}myKYHoKnigM(K;;Y_Q_i+b$ENbG-2bDOF4DC4Oav+?>X;I| zRL7FMv~OT0YGpfo^}}nRa=UzW9=v)RzB=viQ1+*MwGSnBnXmRhY8iZWy5Cn>0ek#( z*ZAq#+vlg%*KMz#?tASv{j_-5pY_vUp>)^z=~qZCgP$h!sZHpp`0er4UE`}~rt#I8 zd_rY@VI6QA9)3L>h7YRvJDa-~&Cg&0%iK!tVB~KWw|SahO&tgcTF&LIHw`KA-i+fki&*v4Vf?PR9^C|}$AL3S6^YeKHH^EjO zWzd~MSukZlk$8q{`dLP!$2AqKM;W&M`()h2P+0cL4E1s>4 zOK@Y8mRtY+-Opfs%a-2Yh9hs9P_?GRbw zZAZZt0|Lwz14?0w0spK0Y<@OC&DS9O*@zDJBv`^2~>!Cm)OMuEp1{m6| zsCjxm$Can)QO22FV`Qdumok)Jq!*wjH{lD;Vz3F#w_MP-_z1a~f zc0gBZ18f$(H>CmY1`pSJ+`Tg#f4d*9uV!*Pvzgxqg=pq@V{6aD_5X_vE#|?w+k7Pa zJAIoonC*JF-n_>HyJI^!{k~n=PBt>Ro!L&_gF?2Gv-h+UlAewNnrBjn6LVOZoyd(qkX&ra(p#U58_nG`7nPXGnIR% z{XcGz+yq+uBb+K_N3_LqSGNDh{gKxZdnvKpiOrwrJ?mZ_n|8boC?*VFk+tAK$c(1U zAkCb9hF(Q7DC|tU0HpZ2I88q&nK`(!za~|l;PIxVJkGy6EBhg&!e{#YZSA>!C76ohVl{&Vwp6v4(Hf{y8mR>O{htEziIZytjZb>O@{wNH)tXd(xEh%aC zn_Tq>kbio=Nq|zj*?yDrU=w{3O(E&_CH-cc$AR~4#@VwaMS084a@=HBP2;7nJ)YJ} z(`=kN9scaAt8^QuhCjAdN1mLz6{-s*cG-5QHb^afm+8z(zo{!t1N;Bg#;HnfoZ@ds zHcwS@^OOj0*9NM-(#@v$Y|1vO!dXwkp6%M2()9eOUSE9yUcC)peQMR8_0=mWvCFnm zRUx%KzA6ndzWZ(Y+orF+_00DA>Y4EBZTRZMr~j<49!-f|=Bpi%+V=RWeIm7Id+ILP zo;n$|k~{}U*dSrHNx6lKo`u8wm9|n9c6~0B#k=VaiNddUV~f-7kSM(7d6e;Pxx4Q@7U&2DF~EUqPO z{xXH*7UsXS+ZjALjZ2t*)-8M{qrnD~(IxD*lI_}rlI{8N_HM*Y-%p(NGK%;w)w8vI z<*#9}b>o6}Gg@pgyG74tc4N8C&tIFV-5E?qH}(MA>e*@~y6_J4Y$h$Y+2OD5b_S>G z+04#3xA5N?4K|pJCF}vVRl=rxwr_h~x}MG4sJMm8UdvR%29wd?JX6uz)w9`taJ#qH zC5(3YIx)Af&+C~iHkgbS*Zxx$*D&bqw%ATI_^(uCL*UnE>kWa+)P_Lr3&e&%?hC|* zKY4S}*TFce%GO1CkP4ksG}$MT=~xO;1>oW;76aj$+AC2~f{P4_XJy%Rr%vv=ah zaJCUOd+qdgzP%H-^NBERo=A&a&5f8S4GJu6bOxCN5uPNd;>7KItrDaABt}~s1LnHJ z@SnuoHin(L_o(=We_;}}`)>aG*PC$Kow?iLIVeoOB$4jRI;C$R`8}Ke@O=3Hh0TA( z-@w_^Z$t{RmEo6WBU1V=>$E!b?H$mS+5lTMd^e>5?gpFxj(lflIR18T{#(i9c4jlb z8w%0P_k3Ar*L^W0p`DnGeeOQP;NR)noWZ1NbE)lQpCdom9otFed%Luqe97c?W;=NY z3iq@Vc-Ag#C;rWUX54XGSHr*U2EeoZ8vqSvyEXx~p8FAUv)gR~yx>FRj++4a``_OP zSa&^A*_j&wx4?c*8?gd9L-K%=dS_(MMnF{_J8M7H$yrP1oQ*AjeX#{F^&={h)@1*; z4oPv_JPoh6qs&zQHxtRp$bh zR}zx<$)xE|Z~PjLvR(aYi;Y13>Hc)lSCHDx`qKz<@@M+fp1|+vPvOV%9PEGL!n?o@LEq!0^sOoHA++T`B-p+=z)kS)ZOj3deG6rOY7Q`k61!{;FaoJ%^4dM`AsDya z_45GrIoG5fHq}?}`S14nY9Dy@Hhi`8`#2<+5!+HaMulhm8UcKDO7ZCCx}ERO%O`<8Lq-MVdC{R)f!O1pL2zP%e;?Ejdu zX;p69^M3oQdBtJB@4jB)FJrwC5s$An(c-kdo55u4-8{gyw!i+lS0~K79{z?GHr;XS zWq)KUVuPW_KvfCLv zb87~-y?6IBc&oe4+m66TKGQe5`r6YoHoO0$Nkv09lf|aP-rX#IemAz*-?y3abKA}c zpp5@glZyR=yRXIm0naPr4{34Q0ncFm@BBEuS1ir?Ym~7a@Y?jq&Q!(*ld+6Fz^E2?(eii)|Q$N1Nw7*HSzupzQn%u@ zTU-w=vRzy8_7B5LxBfZ6eIiiyryj%q4yC*9anaXEErajv`452FM;vF@KZaMIt;XX)qaQjsNQ_JO2AiV~yMHKeTwqZhm|g@5291*Y5hfOl9od zK4$nYiymNGGxI;UXwBI&ehE%t78Kleee*LJY%sfD(-;zD;ZT><5$s-#d%7qif<(EsIitEAD!Ww~)$LGb>ov)g*{mHYyTLnG-CY^g z1$M-`%^B70P-c5I%~WFjcvF%r;`=6+5gBXu;V1tWEJq$ML^9od_ah>jF7Qcp*U8Oha=R*dB7 z$UcnZ>qu)x>gz~bMjRd4ml0P-_G82tx<4Z(3kUjT+WBSL`(+OD%N)!|R_%tEaNOM7 zb?U4{Y1DP9RGA!iIY@ii?phl#kRsvp1QJ?4XQJci@GT5iyL+FcI{j+*02{i{h90${ z?`>$a4R!2mWV`85GZNa!_*e_+a(s%e;oE<*2Gyp5Y)-bKYm)No*QY1(rw@b>vpYmXswbwly06ItXr!Vqb{OZbu6!Q zEyu~$(d?2uMstdsTD6XVGRLVAM$mCWS{DG0vsa$0G>xxIT{Ro(C?mBz#g0?kbxZO{ zt<%CO$vY5w>T1onsR>gv)kRu?2|w%N21CZa+>payBhd3Cn9X2*9;{YL!^fIJjMg^j zqVwW74Q(#7nQWs2+#?%H8Nlwt8aqzo1D#-qiAA#|%_bI5Ykb|q8dIjJki?Mjbty$+ zGe6D{n_FVGhb%b2L6Q{LM8_#i#yL)lKtgS_R9QI)nc3T`G)9Z8Y^{T89oBfblx8uF z?||&IO6EGwK9-bCxZ||;s`kjn)B!*A>gdSEB(xQy#aC2L9A{sv2PMNCtEBhylMQiy zOGKUx@c=*3Q*dA^*>T$WiK@igTa#=#9^|3CvN+fhrGSQMJ3CmihVJvFpkqDfB;Les|QtiIMh#YoWs1RaiPN#Nse=bC1f)xlbs_i8CG~U zbhGY`%sWnZ4`phhheuLX<2XktQU}yL{iA0)$wyPjA8o!pZL-w!$IfDPFRyE1CQj&TTYgzY_Yl2pdgw4%)F-xr z6@6OZbdt4Mnup``g??$hs&hEm5z%Smzbfm9beV%FPMA?qq4ZJpV68%cL-0J&8QMW970NIa ziZdJ(aatxb;s6wHhsK4{laD;WZJ#&3Zap`*Mz==8^Dgfp=2m7q?ehW{1V&Yz<6>-R zFCE9|^UlGi6&o$>fl54GF=)UTgTbA(u`@~EINHcghdRe=gOO)OC+Ljo=tLhE>6}r^ zJ-H!MnWQtNVUwG|s6OEJt5q%;iPL1C`{nM?jIy zK&BjK9E)M(FheG(vwZ~UoaKu`a<(diq!O6p`mzc0=DNB{bbiipeOkoR=ef#+OM5h? z73aFD+LT^hPxGO*eI6U%0u_Qe3w@f&S;V;ZF~+NW@c=A2&lgwyc{M1wtv z{-PXtv8Av&*_cv(xMNSIxsF{PFsv-+d-vpPP0U=k8)yW~HBF*HXXzrn3D=-7(MdJ# ze}wZitB~vHDVxWD{`=C{v2$@=aw-&1yATq{K@_=N=`oz04>X$1HK6uEn5bL>j^1VC zqtd)SzIaC9PFJ{VQclg&3wGWaR${82JC#I}-r8isJvj-OaIF;l3omLc$e7lHD96BtWhuCrQWwNdzXF zy|Sr|y)YON8OD<`OsmuF1rzE+ z=aPR>mp(IJ=0h_V$sa`lb)#;Em|VV9gx41Y^P(u?c^N)d^r{mRAQb6*ttZQNM5-ug zE{?Q4f;&W@QRd>HnSQW+Ww3ulcx(M;P&9S=?reXR@g3@;ATYETalnd#)A~fRKrni5 zBRyA$vcYG?6vBTqD4Mz}MBI1LLKr4I;=2|E5znnCXk8mAm(jud1!*e8z=&vnq9tjg zWN{Zna~{#Pn{*r(xl=*V-GW`nO2qps2u{M}TruVw#W1c-STZ|BTV3(8A4Q%}7X^V) z>Le&pLY-HAK3cM6jgr}dSdx5)k$mOxenzM6G{Us|1gp(~JUPV_i-MFjkar2TeC2yef0%AkkI0h4w7RWJbyZoWmuYx95fm*^Dgiyl=>OI~KA z%t=Y8>}A^DMayMqF*5Au<7GzDV=wb;!xwX|a@k<|Cf3Wezl#>)w?G|ETlPQ}@Gktr06J!?cVJlMG=(`Bo-gZw|2$^Jq+HqX|XEpn@QR@T$)1FEZvE zc{B=_Py8vO2KEfr#0;t<2h%sPo`L-x>cdc(5$fpm40}9 z)5M8lZfLo1!`Vh2Bg=NSVAm;TC~-*=3)&j9Y2rkq*^aoh+q&u>RNSvM7+7|oq2kB| zTLo+Lkj5O?RZ$RZwwmm`f&Qdx#)zL|Z5lgEP^2&@jkKz+FihXrJcA^j8^?p#+rU-1p`M$O(5RHt{yWmZZ!k@@_Z;} zs2eRXi zNHEe^K<+fc+jV7}v987RjqZXXJ#9+yes)zEL%A*3b&474X$9n)KIYG;!(^y9IGZ+% zCLA%04!9ZXBv}CssgH4)dv=uUs$!_$8FshpqoI*#Y!^3Vv9siJZPznzbQ)VvcD69{ ziN>c$NX(47C6U70TLVf`hG`jH6Gig1i*fRpu3ZE9RJPI1>_qX_aaqilW4eYmX+p4m zZNHVKc{jujlxGTgienLM1%4#8lGLzTa###QkI4`w)Fb-9n7IEl z-ie;J+8BNA1f<%}4hYjjD+!XcwTwyGQba%6y68@AZ%U%=c5a9&B5ik^q^&Vb%9e_2 zv-xto8#Su@+UYrGV-one2a+V6Y={O-jT_%ieQpEwxlz&niqceN801h{WXrlZumz<9NLh>gj|?^1DSw|3)kF(f0O_X>THpQpNB7EMKDz&mfW#?Av(kcy9yE_=#6M^rc_hse>^)3?j`Q*n7}Trz;C~*XTh3tu zU3#S7I-Q_P38J23ALpmt%+}EXCQh8_7I^T$$#ywEa*R4O9vbd6!nEVu=w8m6%2y9P zrC&_fimWDOm{zwnrhLvduw^l8AKTLoA{zybm^K#HaJ3DDS9QMDjos!(wj)yc>^6_2 z$Ggp~$LZZ8Tq6h5H?h0T?e9<@hRTdJk$iTWNA|Dqb7*l7)5V==kl$$sk&uM3@6y;# z5Odl=B(;9Q%J|a`tivecE{Li>^30#x(A<04fuRDYnCMvrwz}eFqbV306OAsA&wZk` z9NE}v-ZUbWD51zwyIpwWj<#SvG;yL>l6*adeC6?erk#tJs$^1_cJFBis1fUPzBQPy zJl-?k>p$-DJym{8H>n3@$zfW_`kNtz3FTXPc)hVvA(@{aO(>NBp@^j`i{W)iv)v`H zG~x}hS8BOE?3L0tv0kbDU9?<=79*ZgK3-`gJ@!g__H+bee2Ij7lY6C+)cOTy#e1ce zza4i$RQ(BkihNv!d}J|0`F8K_lE-`)i%FeEn0DOh2y|p8ispX^LhKcobnod1^h+4s zbmnGUI;itFxy{9UDu0-+HNqujm{zxS!+ez<%}8XhHT)L?MH7mQS;o--cva{1mn_>6 zseIyFkr9kN32UfgPr^P+$%TgE&R{})7%DR+_glOt5gCuW6yJ)Z){oX=V^8z64!elE zAgcZzI3&S&64CP*@YeZu@EgJm$kV)}x0J=74tcd?m7Vx+fssIO!7)U6I3kCTJOj z!DVQ@dMQGqSTz)Oc>iK48cYv@g%+RB`vF-PdB?jNQj55@$NMG>-Z1dV4gw zrJZO`Q7qDyrt-M_V7`qJF&U!ARv%x}Z>@QR9p1#QgnaDJ7FXZhX!H$ze*%gRx*_S2gN9&iqK1XB zZ`Ca+B+l99Rh6xjjZyuRQu2|ti*KZW#ZNHiC)*U&ol=-dYxwPMhWG47%h;X)?uqZP zD4T1X!+h8s-3Sxdf;~kso105r-F06qkKK~bSsQb*Z_kQTdyluN?jHKgd;4bk%>sc#_NbS4oTRM*Ov;wZLr?i>Vv9b1Gr`(g0+FP;i<8Tj zV~rYgh=wcMSQF1-8vMZK4Xl5m{1QG#2!eJ%3@egqb%*% zLzGTrp4vCDol4TSWtddn*1OkcWmNdl+Ln*0Z7^mq83oE8)CSw}Yf+l|)8_JAH$>-M zm^;^>;^#{!onY5swR*k>A4wZIm&rOLm4@4mYx?2!amTSH6}9eUrinN1(qX6FetN2v zpesh?M~y!k!7eEWH642r>=t-vD?M3i9ZpMUOeDrw{Ql%Jud%NGqk})`zKhXets7g+PSDZlnaS4m7PHf| zBrRsB$4)S@(yY5gn{Z@OYGlMfi4uxzg0M?uWi+{@kvaR~Zf`DDzAa{F$C9*I;__J+ zV>R`(kBax}w7-??LcHC_;|OK*a6~N1M_p5&wEOjRdH&nd-`wppsqddu4$G6w;3Sj6 zwDWB%c)c-l8Eb|HiYC;17-a8ZkiJ!zEjhA6W<2T=^J6C;<+LlIUupYYTLO*t%Y;R; zd_22A$t4ZzVqI*pGR}Uk{p)7 zXwfKQ1$!)JIG~o;=3-c^k4rDhH=kHeqlUW^;qCIx?&gyJsPm2Yvxb|lFigKE>zFoi z7t`-8MBUFmL9;<)#bdv~!gSHiOny1ucyqPRp1yByIde4-r|(>;ATY)_<8gNbMH7m| zDiV1dBd)`gETe%kNwXcD*|&6w4W~7+%*MtsK)N{n+KO^<&ggK9y*jWH@bd3)QW6P zMXV@Y%`Wm3Wh8y{o@meispQa4KQI=d#c?S^=seCrkKrqjemE^V?K;wq0@*g z!TL4*Xrp7lfn^6qCS`bMTTfl@;N4tNNiC%%heiHx(QLHb5jPn{XmxIVWP_|B)a|=y z@gChh`@r;#Hh?1C)z{S+aZSNfQ5+s;0`rr(;lfid>G&6gAw%C6qc*gC91&|+8+L!}0y4jx-6n4+y3 zqQ)53Q$wI}D?0;rW^CTuy@_JkWA}>0vR$N`ezfkK*dO_B=O^vlwe<79=bUY(jQOCr=%xINi^P0b};j#@s5+UwT4OAQeD<*p14-I#3d>?k<)MlEdgd1WW7Kh_?kn~9sA9Lp#cU}>M zE!h8|vV4L(m`}P#@zIX_AIFi~7-bEmx#OJ|MWTv^V6xlh?;(ZH)7DPc|urk72_U0qqjDnaIW8|Zd}zwj!WTf7qSVU3+QcwMsEiYy-* zIWqE{&q0HcNA~!jLF*(tK4_4>i9Kl0{tn9?qqB%PoS+35voGfvN5hlRv?DG~?}e(QkCj#sNs=DFnmdaFRb8|4f zE!{G_uCcPdt*Ux><)McTA2n?3u(ILH>sr%s-&L<}4I~x0Fh`O<)YmN^URzl?eD&Bd zsWGDtYpJeUQPFx>eO+VQYJZE-defY1vpI;tW_s;qwyJu0TWxM)UOZUdQdd=5JY^{Is%uE7Ul6RSTv6ffPV$xh@1Q^Z z)!dwFJ-xX))!I@)RYG4w=29*{UPQihspLpgrB*gI*3{L~#q>0LrOR-AwM#slc}kX2 zs;f+;TU+WHoh*{p%1XYu`@UvX6^l?-UH)8hPG@u{N}#Q>HJj76#=6G3*1C%Nx-+Wf zBGI&@Sn1WHDX7-DU^Q)xl~OSGXKVH9%IaoGytS^u)dcCQv8|!Hh4P+J5>c;DUFLv2?x7eDlX>DqtWL7n`xQvprxNs~d4Q2&37^>ZdipGlCYN{{(n40E_ z&PondIHgIg#1$>N!)ZsYo9(vHx{fX^4X$RFX5<@_>*;-1(f00M_fZ}Si+-|p!g=TUPv;J&k6$Q!nm)X~ zW-H-`n({*mj8Tj>@P=vIr1?piaU==!zp!h3y2ei_i0 z?OppcUAnmFvVz5OS@E?#+qsu4S>kWLcsObBhBZ%99RIe4@tR&=zckol{i=$mIdNM*aWxU~5D+5aeG8-wCu^xgeu z7q2farCh&Q@GyP+s@Lm_1rrK~@6vK#;fXuUKH{k9BaWYa&ItPQ%WI3zjh9`DvUE?M zZt?n@gh%aCe8lX+g<0w1|D0cZMDbC@LyKn@52c(vwf5nnj5>B^u4nkzqr8t{SV*bf6$lPb3xISzQw>o(V)bz8QxoJ)c| z*;&FZUVCb8lh5s;zK3=Bq7M7kZEK2KNjFy(7Vktg`Lgd@>k10TP<3m6=#I{1_RV&h z9c4*-VL{PdzVAI4xIR-n4g210-1q(-;xTL-}W}@k#4A@VQzhU zJ-3}FxJU2UJ-F5Z^vhVj6ZC~Rpfidh&E^hrFKW4?4 zkajY{@1kd5N2*={-C;fUgIlkMtTbmdxaT*z<87@~M5qBGy1{yV4>c0HySUQ|#( z%6~T~UQF%ng0r2!eRJQLmf?7q2Kt%eAIn&1yT=)S^BGF{GVdJBB(14myqMhE4#(2_ z)=-8Di#}U8ld|=;A4=a0if6`*q&dT@Dx#ohifePDiYM?;m(#}7Wh~Aeuf}>ea9(H# zdg%QB_}X(L`*`&F^uF5oS*df1@7-_wkxPn?&ih~I9`rlc|NAZX@4nwEETk|+c$W0% zprB8`qD2LTKj=f>q?XQE&{|rSI^NIH{p@f?-GYi4b>-z*TG!BAPoIuWrB_unr>ZJi zE6V3DC`$$PG&x&IQ{U=}mg<(4z^65aXQ4A{D3O}-@^Q^==@pc0<*DWKXVo~7SqoZK zMs74JO>@}tmAThf(e+j3EnQtzmMbUs8B^Dou5M{9pEE9%s%>mb zRjyuLdUz_;*woTck&QXbm{+r)G*xb7MUu(MN>%|b8Zbk0M9ChTs%)vQXsxDMeN#(C zZFPBr&r{m#h_rEPilPNou0#~=2vRk5_0^3{!JN4ZQw!(Mm^Q6^er^#&4P#oCSJ&1x zvLZStMqNaS-s~9*7fmfs&6_)8!GgJSg4Tvqy1LS5pMy0iipEseHnp5SA*0?Sj)|@Q9;eBx~giY*-#71w4#h^u}QcbnztY>MacwovZXqQ&LQEg_Un}TR|Ph9&muMIsqX~78;EssWesJ2WKP&~MrC>Fh^lI7 zc-7_eD%rwhET<@NY;zOUzB8^XgQjNgswFNomXn&)uCLWd9h8nFbH>IqRnfM(LjzhR z29)fvZ&0IZ>Kd!cIe(pKGNYVn<=R}39+jG3-R#V3ZA-;+vSu^{RF=DehEPj&jWZy8 zSJZ==?NycO#>$3f5d!(pB zMW-1}NglGDD@EaB?f&hW;dTrpn|3nkEq=JEXsJz+D^TG}pQe_zfQ`O0MQLip3ka}g zN=rilb*f};Me}A=Hh620s;RH2P1BeGk%1w%W<_=7sVUVLIb5MN2F_4L`&N;1 z0wXmMKTPvC?o*I8Y`NV;9jwum6W`xb739m1b(u%T27NARN4cJ>rjVg=o@-9`)R84w zAFuNUFgNGgxpZtI|EVrrMGdUBrKzo%7IuOZt&N$r3r|EQ8XQVN&7wXcj zP4)FIX&U#yddV$HW2_fn1CDi$N11K8Qr=PCkzW~zr`E0w=&05D9P8b6beDn2>$-GA z*4voTkr}nd?ef{nOUug-Ckx_7j0K0=HdYJOP_a7YCJw%y$PdZ*e;qqErsb{k&UH?+ zks8Tw=F#A1K{Vphl*%>gW@pG7y(Q0jW9?Q2yK1J(+ObPHw1k!stGy=>8h;EUK~uNG ztGJ1J2W?)Bv=g#EC^bsdm{_>B@>mKb;Qgz^Fzyjdy(} zU0qKT{8Uq;x8lyVBA;8w7#hEIJ|@#LUt6Sss-}iiMP((aF*9>awN}(p`^mM?E{BI7 z%WJpe$PFoPX=$Pn-%Wsd)|VN$Wug(8VL<)WgzC@DUcJ(C8(mIHG}WLiksP}{(P=|j zMXQ^olYi;$hwF8#Yg*W=PFE}_=lM}cnWj%>4F6Q=ZrV)>2wfag6C_g|HoCf%TiVSJUbeq)-5$-ZfaEvbwD>fc6@K@%w&JfdoM^QbZxak2J@@EH{y09 z)HOA7oWX?{eETjP#ns^2xSvimG&EEOE8T3%@1|g>(P3+x9hao%b5%{6J#Fs%84IT$ zo8sASelu?8UFMod8Z|Q8FebRKWu6xDLp`R5f^YrVNxzfGOy6>?j@3wvIcEcp9_*** zw&Jdtdhr>te|s&r<~8IRxuy|!M0mso+Mg4Fbi^kkY9xxSQcZgg{K z^)+48fuY-nljQywaY49{dk-T%q`5G%c4lm|4|WYbC`165<|iWZ8OEw8BJB5?OhCmq{; z=Wy{dv36{m$jD7{8<|ooC@|IH)zr%4Kt>^w$?!a$VuqQGJ>(wL(9ERD$9lrS9qMIi zrw6B*klnG`qhYfoR7i=)5D&?KF|N$I0`n?^))h@{X&M^RF7y<%xaq&UoRnGW9QW`P zqP(GjsxPRa*|s0VB7?9xwWV}nCfL#7G}YQv#czJ5+uC$0e-h_7Jtp0@ocw3Hfg6f4 zVd)@iHKxy)%h^I*vx%x`tgYs}(y)-dYF_#LDdlq(rY0>~NSC|mt8Bb-#w=AvHC$8I zLVkTJ)v`jzW#_2Wg)CZZDU-}fq?x-xbVdV(mgoCHw4v+1R&*}c{!Fetk3SrArNDoa z-Kg1)XYHt;MvRKMQy32(8sT2`7t2BS&_`6W_9f>>1UY^%1F=Rix8( zwT;dNPY2Cy6qzUY!nZ&)R0$n3UeV$<>;tG{ofWQcYOHqma1m5Ler9V|RqtFiTAHd) zNsg%D*9DbrEiQgY3ks(zLn?Bg|L^eJ(*=s{}}nOe7h z*7*h8HC-m_>&UKo6Q1i;MLOG9oy|wu2Z+{`kJX!&)6hesINi6dG2qd{-8x%&?HHf> zOe^NhdbLtpAUjW^9+jlpE$&4|4OT+lQ#?0BQqmOQcC)*nw3K=f4Q_6Iu{CIGbgiYj zszjSfJCj~2eMnI<9Sh>8aW22%SzBhn$+%dy<>e0K{-t`SnTQK*QC4ZxrpO`JZ>B9v zW6Mlj*ijhiyapahDc)J`eLO$l@YU(VX~%anshJ%J-+mKSTsmBF*(+$s=f((8(D<3L z%VwqwY7S-cO?5?+e2J2#$P@BSqJowxxdHgrQs(BPF=E;wF$i8(eHwMyO1I$AQoWos z6kfP#r{3#AlV$3{bYt&?`P}3;3y2B4dlomREmWRRUFNlGK)>r$*Btc`k=9#ayP;L0(Ko@jjV(%LhO`)BBLdL>$+KkmW$`%bUQ|ri7 z(}J6CLiq>nvsNZ2`oT3OL91}v)99!%c*{guqws2ZT_5OZ+^mX>n+csy)0c|42_)qs z6+=rx-e&%>&^c}vPwm?G1-HgZy`7o?kK zv-9Q*ir)sr{VS6LsiMq~x2VxwOQFX!Jx{~U1nMYv`tKiQs%uO&RMS&WE2}fXXBul8 z$zgOg;~tI5O-X0c&ad)LT{ehN?$;dL4ANbueWBgJQ-0OzdQc`H+3Z3b6!WIXv8W7f zTy_e?yRtV{*H*OF(Q>QvX>#+gN|S1%+=|x<^9F7IajOHlo}^XZMs@o=A#1}CLg&m- ztUqXKrS)`|(~O^#@r}Z57}EsMFGYQLgeszM#}}b{CRgb@1WtbVZGLfMaAHS~SCxj7{H;R@wyMXP4A=YG@w=$FlSLfO`c`!`sdSyVgB$r=5Ak7N zE1Pjqw?&6Hv4SFg*rzy{gm;hUnn?TUt=p&IW_aANA`v&W5|QYFU!a$S zN)HdsLc}5RGZAu|D8|_Wo2a;hx@)B)m5!p!(P~ItbBlZKkt20g;tq5!1i`*YsJY1? zK9a|9+To?aw!D^Y{FJ~??0vvE8|&(*?)^|pPCeNowuhnqmr zmD;j+niVlR8psZk8He@?=?nz#fZ>*v9>bfp$R1Bwv|!=fV?$A?*^8zuNzI#Ietf{Y zU!28mZEB;~W|AF0rVA+RjqUXt3XSW&5!tqt*|jOF+}_5r7L6$>e=DH@-$L3qr5z6T zl;=>>SfyTdjgP%b>wvY#($ebF+@?D3`%}xWb0HbmyLgAH4-rsZ(mt3>jFrFEf!~=- z-xx;wC;!>eqW0u>i1<76dRRC;-E6}#Tk0L{OGaMs;e6Mys0uUdLt!tFxNjA%jr-ZZ>*{U|k}CBScOHU^ zNCv4Xw9%ZR$2=;oO`!ICYd?bv!jv3s7c(rM>`3eT@6x=?$8s`fi4x` ztXABg?51VvRG}d|X@hPSk60ITU0YTcq_m9MxtmiTLl4Zzu4!@b%0_1BYg=RWk+s#-6zeMKV?|5liX-U=n8U`5DmkpSV8my>Kp!%eU1&MjKhhCursFbAG2Hax;tt&Icm&d&3A)_<>65r*sG^bdRDm0)bWe!i znS2z*kel7}Yfvvb4feZ%=qg!tYii*=RMgb{?qpB->hZNJVa-;}~SQ_fDJ!)0?P*tEX{hfdHC*y+0grnLoFO-$Nn}ZUyvR_Oo&33-dF^`{d@-#-W`l`U338FA zOXmAoUPFvwdaTWAu61A!^&XhJV>bNU;CFoRP9mCT)4E7z_DO=7aiWykorWT)&DdeN zMRR5xGk5;6(*E2;)J3RCJgv(YF&kbc_(#$BIe`2XVg>1N(8Ue&+C=kt>cKtPgn?vg zB;sVLD-|9{^Z_;22-e1EwI8%8HvAkTX&}^FV5F)k56{eNOPDP=R~ z4=)poOFPrtBeiUpnp2f&T8ON!tR_S3BXyaF;xw-^pyh-jadh6KEe#ZAoSmh%?A$lgoI>)GSZ0s^G=vOmCCAmbOC*a`xQ2;IapUqn|G2jJY#{ zn_gMeSltuu&ZN=m7_am*qQNBTKE)2^MQe5MO3qUzRCt}OWlEOYD_m}9D|$&PwX%YC z7tuO5J*<%XDPTJr)~G9XytSzeH9Ehg2>0WdQ6fL*B^OY_L~4;jx3RjHWyTvCXlq+l zoqL4DJ=d9aJTf|vu9dT?+8d9~-ECz+OL*>v6a`DGwKI%9$Jyl347aV4PCBGV+(?vy~aeNtB635Vwz;pFMG9&e%%lgozC!m)Som*j{t2 z${GBsoImVU2+O2uZee3JiG~`5VPok@k?iO#5p2pkZGrJmn&cOh@ai!GF#el%)Jb7Z z5?Mt~!D()vRmSC)C{)HQ`{`W7CU^e6PM5m61O8riOP=h_@^?8ZAkT#sv)wasOGEPule zdLu6Yu}y~9txCy75N*jgif+fCD@BSTjoIZO-Qw@|=}W%icd?Q~ zu@1BmQzjqE4B45El&X(8vRUO4qkp2|Iq#cOR{aA`?xEL45{g2``qR}C*oQ-zs(-QdEy9LJ%~HN{Lw5u@AmB%Rx{ zPel`VlUx7_I-g1_A&$|ZLzyAZ%{S=yFT35dH&ou>z0s&w7+z1wC&blZU-aED)LuXp zRj@JD*(%@g<-uH}-9=6cr zeP^Cjkr_j#JBrcH35jI~zcEXWK3GaVc5@SXsyWqB|&-wL?TlvdH8x^iW!|HCVD(;O`LOAdJj2xu@h6 zfwpGq7=osNYs5nijYJ%FcK42nxyb&^tOm4I=_xaC_**1Y#N|?FL@a=R{1qPiB2$p* zhoTH{*fL{2dFeDXHU!I?=;1JJb%)YJeqe@tKkLxC7_%T*s|~9qac>mD?cP@pS6*+@Sj|$2; zn!Jst-p~7^oin>JbwP^49TcLjsCU1I!J+C7I-*q_?#W7?GWpXp$jH*hhgLdDAu~Cn zPh=C_b5Im)_PD2vJ2DF5dnlyWMYW|`*3;gCm7k|(lEeq0a?{`C+dq9qS zQ`_=}#?VtD8wZ8Mo0qqoO1nz@b7jr~x;wc=YFHzs2FE&;ILKIv ztRIuz8qr~wHue+ok&CWenImlI9097tOcSbh`)QghS}RwyUr#!iTZ0?xF1qaQ;vo&x z2Iv&p>_I%4ky@u{^6+;@EtU`e@)J2%QJG}Kxbo^^#PRE}>Lb&IOsnHk=?DRp;X==D zo~HX+!Vk3Z>XZw4y672s^l~nsZ(x~xYn(9iI8i6`;N}S<%gAQ=d{CS-cjHpd58!la zKN25c>WpBHNonT+-nz_lpp>^%PKYjdc4fJjh85K3^WBf-r2MfaZrUEV&XPUe#?_5~ zkd^EN9%V>5i~1#zhTwXte<;CkB+RH-Rs$&6=8CFPek*w}Y5}YoXFDG`eYitvhr^tVv4dwrMNyQug6m_Gp-YV*3AK;Rc6x3bVi7WD2|2eob2NQ)xi2(Bh*(tLi!^wc zbs*hy1MV)NoI$Uk0|&gT-$Vy=vHc6lT0^Q8oRwYXK78y=0y+-uyMol&On*Iopz^~g znIw2T);XeN*h7angjX{B>ICatC(_b{GczskW7GbcRh9lJKN#Aa9j7tZAAzU)2Wb#? zy2mjmvl}Yo z^3;q}$cA<@U0pj3`vK5s!$(T;FHuCs2sKW)m=!s>z^DheJ4qkpl82?JcI2!-3s!o^FYJfOxJjW1vcU2{Tc|~vz1=W(ItL83da*~kBQun!p9?zgLk51siO&xogr_@W++)F^b8KifnhB<5cb?9t z@JUm{B!ARu*hgxoJ=cZW8*RqoGY~T_<)J|hdtA`S$hPr=OD?BbmAB(I@LbBf4bFBp z)}?t-SDLEpE6#jo+Nz&ML}QWq+!bwm_vduEC)TM!*S9q^#xF#%I`#Oa(DR`*c6zg$ zdjfv$o;4po?Np!1Z5-KEy-?3_?aqk$xv(B}lI&p08_MNa!CakN{-E1`lR3f4weg1R zgy>r2j@I+C^ENvwi{^7Xmp(;+ZFS$ldFP_n;N9V8K;y{1M{g;Il=>w zx?36uz`jKjg4y)T!?aCSrb}UCPA4wV!*ni?oSHjlws&i@ZkG%|*%gt5!7pB~qaa|F zi%j`Itr1A&2}^XdNr!H2yCZfajzqf$>)kU8eiyVmJC>dmZ;2d_ZVl5$YgC^+Q!A0D z;Y~r_Ds*Kx$eoKu?EEt#F zZl+JP`qMI;z9kTtIk_5_05UUu>YH4nZnIa1C$49I8I0pQeqtlLVJOn!w)Xi0`rNcF zYx=tJ7#(%3`S!e}BD*;~G+3J!LN~6^hANK3)`dbXkv1RRVjJ#kqPv6(*Q_%6xf`lQ ziSTL57ZVZoGoojNWi0|9*ccwLbq$}|NycouvF4~qNW|M?k?|3c&@d-u3J-G~j}$&Z z=!t6d)e2HR!p8$}Q_f84#JcGGTB}3PU*a410VMBb5T}D&Q%!`!#CgV_oLimn6hxgI z8PCT=e^1HlA~dGKTr7NIVJ3hY4d-dh$E`ThENTk%{DtP=5T2bx+InbXRph(S7Nn$6 zuk12(M+~J4hE8Gkx?|f9)1jcYsi}&z<*k_h%77bKGCfOL zqV59ks3g2*7kQ#r+jE}3e-=v3&!zl%0aU&2WLSSvYxc-i>Xf{lhJN?Zjauy3IFqiA zH`LV7qW=nK%^G-FDY_*ux4nnw%yntrEkHMyXq-GDL3SzgG-2S~CfT+Z4o%aj><$Bg zmH_>fVkVhDA9?UATiq$A8E1or*R;(0oFD9Ffc}RsL)O_H_}l1KKJpIkMGaiU30I@X zZa8ll51)LR8zT+71))H~JP9K3*&J3oGtT*}3)W_yc%}pK>%e7|TV;*Q^17-zYSC_^ zMCjK@-P1|A)vI~TcR7{^V)97ocR$@(gZ_|us;2;6)22*0qU2yYdEk(aj~$>(2g>CI zXUv;DKPXteL;tTjve#bQ_Ag#v5ClW%!(fq_K<|Cr-;)OHa6#dW0ehTRG<879;;jel zL15B=;z`>C!94nUp_8H4=wgwdJYa`Q3nvfQ%td zxrdwNs$=vIlXkyB(bjRl#|Ma|e*h1NYrn$LM8!r}blf*UXoh*L}X7@3elb zG#_l|x=rnTr}cwrx^nL!dfwk%@5{b$>jA~HwxMPi>_BL&d_TU>3B|$8cXWk?)Fvog>VFqF~n;zIzOJEjjus3S6n9ucAzk$bNUQ|1+xR!-Qjv zl?g{p94>r6|DOG4g7A@9Zg$gdY!lmhgJu&YlKA|KN1si-cbce5vrOfG-pN z4d6U}^bhU=&iUvc{6F9=lFt3WR}23s@U_Ap1%AHpKLWo<_@98U7ycITFAMJ*YWEIZ zEqqtt*9+eVINPuO!NI`4E%L*Ge^>Yf;P(oj1bn0L{j2 z|0yC%fUjQ@*ePVkxV;9!^ThWn%=Ry}EFTbeHW6PtQ_>dSGlm}$!$-vMSLlXT`bU$z zmH#=yCrU=0ui;*o$E1Hv4F5w6|EHvXj->1S4)-djA;HS$1;kxGn|ES4=To@XrWpBy z$UpGqD)D08UvPh&Ox#NU%ObyQ5X-CO{Z@?pPeuM5kpE+h{69s01ITYf4xg2uLBw7D zH-h|;G4hK=eiO*I#>ihL^6GqQdA}Va|ES2949?ZhUt;9@li_#yp9u1M6SvAcO5~S; z{M;D%Q$_w9k>8)Q6`T_zAEeq@FP}Y@LP@J=3Rn{in>}TO`=`|XQ|A5|>HZnz{u%B5 z8RPyr-2F4w{WH$}Q_7e4YfAk^rT(f?e_5%&uGC*x>aQ&ImzMf#%lx%vd_R9}nZLHo zUt8v{E%Vow`D@GkwPoYntS21zpL)VD3Z4w3VCw4CDLUmg?dD1J8w#nFw2fTKKKGbo z7L+ecEu1uYcDdWXCJ)`{*4QbfE-))UoftWCU2n!hdhgP%JYua2np70cgB|>kIeW~5 z+DmEqnnF1cFY<8~$#i!eL)Y1SX0~-@>a6>Jgs+n-q^vo$>b|o~2JMQ7k3uD@K#2Th z+i>o$wT1LNE&MBP+1x3XCwww@2d*JC!kOQ>2)8!iB3=py7lf`bzS4^#&)9@7v%b^| zbJyJcA=p_3SVv@M)Bs2}<@h-IPx%P3?~Wf4;$uU6e25=P{)Kxv`J?GSP3P7aK8XAX_d$i_htr=R{Q-jb12! zT?~IC#HY}8s?QHYJY23FxAn>sFD8$3*SA=*t{Za`z zx_pN1!*65wrzNnC@_&lql@hu{`9H_-irpw9^g{VfG5k0Qfjaqe`cLgiWr&CM&=$il zjNw_58~i{-+rJW(+Ud zH+$c3`n$&PgJSro7(OM2&x_$F#qd*NcuRUKQhsW@vLpU$}@nHHuFK3q)(0^L*2Zy*@n^HbK#7_wE6(PPP#4ir7#Nz3`LeUFF674yr@k4Xt|LQ$yV4|7Q8z27IG@J{$ONs>z$@x4OwkA}FDpDLf93~@K)YWlwqaVNh}K0hDgt}UtjD80zcE}aADKb2n$^7lDmdZj}AK>DomH6iZO*Y?p6;?5?hd~1k1`KRbV_c}Ag52nv5 ze{P67`4^lpy*?Y_htOx0cYCnhOZD?t{uo>l;zNk3{IwzO(tls%Zw&E6L-MzUxRclR zbXSNE4awgV;!eI;K0g3l+s!Y5>%N@d0^dbG|0%=|3*Gm{5O??0eO7M(A1I&S4)I~3 zbp8|KE}fzBxvx_&z1-Vy`cL(_ZHPPhQ6j%{h`X^u^e^{OLWcgcgf0C}plw;i|EqtyaG0C=pD~)hbbq^-^0Jfo zvm0C8OZjWgS)i9pUp(KQKF^!rvG0TKFDJhPBmeIZ`CHRzbd8-}a{EmBPcLFViQh8( z%f$?w593~%&W~2`XXi_}m+~J-IyycoubIMfr}0}xe$z1w)&QU8j0C+d;T_>ZLj$fM2)l#ls@Yk994nC5Bj?XH;%sEZ;dXe8U@_!o0 z;P1dIrTu&e{L*>`+sgNv{!hfA(D6d~=`}2WAjl7u0cj-g4_xD=*F@kewqbrO@bjg< zmID8gRCq1$hlHzr)_nd__&Sh(O86zf{~-LUz%P+@ax?H-Is3ugz`rAoo7zdu&-jUa z!NVZ`OW{ue|I1MYB{1E1Q0sqBu%u9gp z=!_`6)Q)NTU)Y=ZM3DdVbmp^w|I`fv^g03fNs^yR;58L2e=hK^yU7Z@E&+ak*s&{t zA5zZpHvxZhBJ(q({c5>>F8%Rb;HxTG{vzPN7lU*S@R~N3za99WMQ;xPzeD2Pj{tw) z8Dn}q13V?hxL;rXUi1Hb$^TBke_zCMZeNUhsr+#z{$p@3@X^AD0sozh3$uZ1Jf#l! zCK(sj0Y6pj(uKfxn$P+9I`9{yo!<)l*JD`zhrm~lV*XR$Et1Zkf&W|j-Cuw&7W>ez zAE&2!`^*gfydCiKcVRvRxazYMc!l(rIl!yM&MyM~4=Ha0@I7bqeOrOwUd#MK;1^5& zF99Buvi!GzzjZkCyMaF;_UL}#8>?9Um%!Ejyas%i$t?da@M&Y2Zzs->>VNM8nC}UE z_G!!y0RA1Z|E0hiWt^H8!1pGX)lm7rdY#hsf2we5Hjr0%Iv+8Yk;5Uf=2LXSofzuxje75LkJn)yL{Y(S? zn%K7mz)w1n(@z0E`V{7;0)JILuLeGJA70v{;trvmtaQr=qNpAmcU8Q|lkeO?NDz)a5PZNOiz zW_~B|Az}|70sg-9>nDJpA@Y9#ev{<$4dDIv+Af6qhs^8nyKcR??D4F!Jh zH0C3L-zfgWOyDYi9Pqm1Ih_XJ$Cfj11^$5a)6W6_qU8Szz>nOW)42useS?|b4*Z1i z%zp-a>O|(h0)D9Q=Yi{b$t%Eb8^Y;qCF6kmdPn+i83A>eyTe}4@4lc#VxFU9Zz@h?=*DnBrW zPm1BE#_;tq{Pr0B8{k_@`+O7l61NCIuXliN6#efi^CT^o$`1to6=_%FfUEpO;QXLu z5S#@3d1>cW!1ei%vw*AodBFc5{`2*~j}(9G$G}tK_x=v}i!vYI1pIkv2k!t^`452~ zIFj|eyNnO2&*w^*?*sftvzU(ouJT6$e=o)Ii-7MU_6M%=hX8MsavcL)<&On^nT(sK0RO+~ zoR8ChuakPY1h~py4t$=--v?af9{~RMIecH;2dH{b`M-kvbn!#B+KI12`5l1IC}p`a z;I~LS9|ycz<|*@mk1pYK76Y%Bajgxw%AW;%@(@nv2H-0HP2kfdp7SVhm46cWOQ&)A zZva>Mw}H2c-Pm(yzE1Udz(W390{qQGnNI<(@-u<=-IL|(fvbEP_?}0z{B^)p{wClL zi9P%!aFu@w`0Z0U{eJ;h`4518K zuJXFCRns}+7?!^%M*cG3|B?Q3KX6U|LExvzc=jrAmH#{NA!VGOePsTm`BeD>fFCRI zf!V-SegW{WHgNi916TPAfEVn~@^=DP`Fnsb9K-T20$2IJ0{`<&mfu6>yI9_Rfv=SL z?=0X)%D6lq_)M`!Yk*IbapZj9^JLur4)B5U`EKC4{JJ0Wc;cG`TZ(5ol}6%l>Txq@bgBo z{AYpB9?tx0z;)f>X5jaaW%$DDKN$FUiAT)@ zK2h57alofFa{6iDDt`v>>ZPI|;3|JJ@FkO2{t@6R{{-+d(f>byKhehNybFBlsmuq; z{8II!@`HfCw}|Cu0$2ItfH&>K@@e2Ie+KYp#jWXegp7d9?$%zz*YWH;75r* z{{dX(-vz#h=yRa>WvU;Q9|ZjP!#O|Yz~2);WH#_iPiFZ>;40q+{1Nf1uLiF2HvoTY zi0B8n%0CKx%BNZWHQ>XCF@FpA`OVCC7e89{qw@Oz|K5o#Uk+U5X9Hg?{kIXg%C`Z3 zaX(J~3g9ov=WBuAA^mzIa9xM}8StkhKJx-_m46lZ8u3qdl5t!0qw;$KZ&`C$KUCt9@5k`HOSs&cAC;dT!>fRQLG*tPaE$|B0DPCK zz`t$)K3YD16Zjv*FMSxe#(^ILK5OC-zVE@Y|!A4+Val%onBt z*EsMj;M2ulssyg`rvR^&etItO=Oo{s1^%GSYrY0t-7Xm-x1eX6gaFxFm_&zeOJq-M3t(?wdz@HVr;x*vYWSrVj;=8KPDKd@> z1OECDPJc9TT~9q0xXLdC{(}XaPCfA1lbNT1uao-y9B`HY0`Rt3oX$6a>%8&~;P=UT z#Lt1N{NuoP6FaESZK>Wg?)o~&OLq+Pc`lV-Hi7fGz4SljEfSX*1YF~IhXDUBClky9 zuJZGN50iDfHsBg(I}`YY;%9#axXND(yioe@M&KGZ_!;nGndfW*uInZ*1OKD+ulInz zv5XZ_D1MFV^9S;|1o+*DvHXF+pOrY_RN%)CW%*ga*NJ^@1pd0jE82iRRL|*r5%_P0 zF~16Uk<5ec1Ah1pEdK!TgT!vW2weT%*MT1^{iX0gPEYlw{?7p5>i>KSxcWZ_0$2a1 z47mC~M*&y=XC`pi;wXSO4b>;OhTe09^fY6tfd5kL^(5dbKOOjG;{PlIuKrIg za0wR$X9HLN=K|nMOE~}60$2a%M&Q$BfO!D8`ah2V?=zRv|1)s)fBpizPR6N%L-;z? zzxqG@fuAGecnNUzXAS~Bc6&~DDsYvb1^f?3u>1<(>i;wWA1M9h65!LPaXNPZe^Tt~ zuYjvR^Bdp?ihuYw;41%5;8*wI`))gg-&LRL&+H8R2=RXo1+MaC!1on$T>YQ#06$H}rw4$mKl5|o-;lW0tH4$M@4)|Y zJm+Uuu|r$aM;FRhe`YV>Z#w~cjRmgqM*;uac$QxVT>YO~;MdG!`E!7)|8pVm%SN&M zSAnblb3O1zneS`_uKv$Mz+V!7?*-uM|GWzP?=pWGAogDMss7Kd!2c%oH4?b`KSuyx zdK8!UMBwWGR07{#{IRouf9V)b=VIU*7rGtzIx*Zo2Cng?KLLMhIH&&xaFyR({7u!5 z`eO$IFB!<`j03LzSUGU@$BqN8{@6*t)gP+^uKrjXaP`M@-@WEv{jrNdUj4BvfvZ1u zBXIS{?f|a-*!{rOAA2%}|1*Z~EB>|SU(*>6T>Y^VfU7@t67Zem^BKU^A6p0ffrVVZ z*8x}m>L%cym-+Y)fvfyafj^t#^j`pewb+3oX{V}(J0`OHUclAA+8_9;rvBBoz^{|}`(WTIe<<+% z#XqBizWqznSO01z@W+~2ZaHw3uLFL}wk*F6xcXP00e;nvEWZJ`%6|iRx%f*z0Y_^fPb?u%fAa;{i~pizgN9ID(!iH;3|Iz@Oo*_vw^FBH6QqlxqQDS z;40q+eCPfwe+6*$$F2olC;s{OfvZ3EL*REE&FTLdxcXzi13ppg@Y}%EANv6K4bm_6 z8kwtS^~d%H{`x5_SB_l#pV`3wCiQy?aP`Md1Fqx!7lErkb`|imUBjT)UBLfwGV=$4 zt3UQK@H513e+RhwSG$Q{tnIK!`rSdmRela|^~VN|=6q>7drN#{ICANC)0=as;BmUzo`z@Khq`TKz1>Z-B-RjuJ!vB;A&5FKZ}-E?a6mQUhT=fz|}r% z1b(87v(Erm`DcMYE%T#)0#|$TF7QfOzuQsbvYLOj8wbYl@)(|q;cJ1bJ^2c7wI|mC ze_#sN*uB8jo@@mE@8vB2EO50a{|o%Z0W5#8j901$wI_!I|J*W`p8$M?*s)`P-@YHq zF9ELhq#C%kx6^>DJy`=>?a60>t3A0KxZ0CjWB5bB)t)>L{EB_KT>l4L?a5of)t>Z~ zd8F$3I$3wv5xDmELBQ3X3RJk1FrUD zS`4p=;pfEg>wv30xd*t~lOF-UGsXG*18}t`&jTMio#p=nT_f;CkOZfa`tt2VN%q zXBcq3?>OLk->Ja$zH@==eU||Lej}H+8o1uK8Mxl}OyGLo3xMl=*8|^H=9O0i*Lwd3 zaLv!1z%~8*fd572=???f^q&N-=|2Zt(|-l{ReQ4D{t0}MjN=~yzfT z$Dj8AuJ_#!_;{Iz4h24WCZ{tNxaMaHaLvyQ;D6kg(>W2i=BFCC=BF9>MKUiw3%KUz zLg1R8i-CVh{D2L>H9xli*Zh1J`1@iHHv-rE`~tY<=Lz74pBVVp3&1r$e*>=hc?bAY z6+W4ukJwjj51OCtfopzt1zsufu7iPVeoBFBekK4vVg=`CI&jU;0^ph-eLhU{|L0+x zPCdwLe%gR*e$D~@tNEPH=YeZ}t^lt2xd!-o;;-KhT=R1eaLvzyz%P<<{0ZP+*^2Y| zF7RU|-c>T0zgPY2KA1lb1+L{f9JrQCpEuQXp5B?$nFsRgmN8!fT+3Aj{8jnf3|#Yb zCUDKqI^Y{V&G-Eh@O6@(Yk+HhZU#PD)~&t^T=VlI;F_PG0xucG`S~sIb&{Xwfop#L z3Vgb>!?%HJym}j%UuwPl_*lO0ZopN3Eb!GbPD}x=@+SaaEpfl)z*Sz)@zwk+mpIiI zLH@ZDIG@)8-@B0c9l%w7Bk(a2mwycS1=XC+E5PR*%KUBMD!+ro+cf{*+JWUufUjG| zd^m7Df8l80DnAGKjeBr9Cj(!2GV_aoPn0;=RlqgAwj4g@t_I-OKr1 z^)OiM*nz-xU1K*chRS(l-JlX-c>S15tkIrE|3PLS#M)jcj*;DkY{LB(g=MdnUP8o1bX9@5I@#j|n z*L2PTK6U`#_w&G2Z(jwz?>;PlD{$4@Gr+$t`gs|+rvESCw^nlc{bumH>POQr1OCLP zSgs2AvQwF-foJppT=jW5@V#6H=yfA-P3POdHJ#r8zi%F=^8#>9=L6u!pT_b9|E6M!TbR6E45sE9K`%+;4es=aS8Ad^(>zTeoueq7Xv?H2=i|M ze_YznpMmdI$nviNA1C>F7x*rRvV6Ze{I2C1yM#aQ1bm(7b06RnMPEaJkCgFp4DiRL z9Zm**{5E{wIlz~#V7?Uiv->fx1wKpc_8Q>xC7r8*|EeFS^8?`LZpZxhz^e{n-ghp) ztKOzcT&M*2<+7fBB=Bn_&N&_U)goUF{30pWDZp|q`w>p{9dt3#{hq01gBF2{7&&RE&yIC?OFHl>wR~V_WfOu z-&5wH_r~yF1AkfO7r%?)ZvwBBe*Ja~-(KR2n$J@uF0oq-9|rtSlAqBrd_M5zzO2u4 zfv;Z5{1V{0j(HVujWgc_T-P!01g`Pt9|G5P%twHqET1>U@b`d^7kjds!~;~HPmktu z4Fo>nVCLh1tNhWxzaahMMBt6mo|gmHxZ(N0^&IevfS)1tax-w<|NL#>uS&Td0{&NN z&yNCsU;5+!0Y5?foHu~?7yGcs0@jo2Q-5!MF!0|>yka=;2gR>F0{FBvr&|uZYB=+G z!2i{U`BLCZrC+Cj|GA3gtAJl9<4ZGe&HtIeHUAd?*Zf}wT=Rc5aLxZsz>kpe<4)k3 zpZkGpejWy{`FRq!=I1%!nx9vIH;X^^PvDxL4}oibwwAbvwiC_IuD~@vCBQX5LxBHX z{EacdH9wPpYkp<}*ZiCST=TOWxaOxG_(1WCRs&Z%c|LHplk0)2oxB>j+R2-NtDXEV zaJ7?<#PAn^tDOvF+|c?`yVno+={s;g8U$SB4*~w@a+W^^xZ26t!0#By@{PdNPPPIs z6u;;Tz|~HE1^Bo3=Jam|u6FWn;9r(?-lu@8o%}uUf>uty@OXY#eLg3C_yFMA9`*#T z?O`x*Z4bkNYkN2XxVFP`;Hv*w$ZI*@mB3a1`nwidt_#Jko(uA-pU(h)Tm0m!fopwT z5BxQmuYC{rgFACRe*pZsCg#5a-e1PEr+`1WBg?-6T=!l76S(eo+DgVZ)r0Q$*ctdW z#hiW#@R!7H3bwxVDq!z_qHHYD_P2+DKXxF?Zvy^+)Yr?vKP~p_L*OdkPvRe1FR#k@Gzj=;>9<3GzkM3#XEJb= zp8@0buEt;AdI0{(b4=ks3Rcc0As8Q_Hr{i5*GTt3yao^!M>aP1cd0$(BXM?DW!)6sr06XfUa$@g0hT>HhT zz_nkr0bd~fdL3{b_b&#n?fgpM>Tlc#T>Hx%z}4TlAGrFTPsZ@qfUEzxmF&||y*)je z^|L+j#m&rz0$2Gm;5Y5d@^gW!|Fa1A@_HPX?~- z)NlhU3~0X-f{hWC+iUiGhj>At|97QgfW;P(vRdYKGd<);JRL;QdJy)V75`bDRL{9guf`WFLN zzvzp=pP9|_cK}yE=lj6_XCTWz23-Bp-vHPBss8}3e%HT&j~c=0?^ng|THY&5`SW4G zwLOdluI*t8aBUBBfNOhL0$kf+6>!!6DZpo)!udQGxa$8iz<<3J%YO~H>gOB4)gJu- zxYpN?fe$^5(|-!M`lY`I{@Z<6{%^q5FZ~DbCE|zlm-&j;mp%u&GjR1w4+gG&X&G>R zZt8I03nZ>L6}XPG^MUI)n*y%mY&~#oC#M6~_NM!qwY)mcUIX&V?*Xpk>_*_VGXMH5 za2;p=1pF|GJHHKF$Jze??>mU=cQ@HLq4`(&y@5CG&+n>11h|f~PXPb+D3*T>xQ?@L0bkXh<#&?x5Y?xS zvwH%6V_TLV16;@1BY{6Cai~SW*Dd38P6n>y>^k5-6aV}&;F``=z%`w3179QK{=L98 zodqZzk{!d$as; zz{{k4E(ZQgn&nRdeu<3NYk`lIxZ>r&kK|;6uK}+Y|KVG}%XZ@n?g5?>{rnX8g9owv z6To+nar{}}rP5CR0{o_-oX%Uo|9BMh0`Zr%Uj8HF`gXt@4rKW~fqz5R7Y+dat0I;! z1^%=s?nvPG9mn!BfIr^Ed=c;qCor!7K3UpT1Mo@ZEPp!im!&=EJVW*H1IhnoAU|8; zHP-;YP4s&U@Da25zTX4BN!Cq%0{pn`S^kf}CrKRRZ@_gO>mA_hx8ih)q+e>e^f{{m zz@L+LdnxcsrN3VVe5~mCcHln{eLezwEnz+#xTfC(Tz_Bo!We!H@Jl5>HvnHR?eI6i|3~cGAAs*9 z^|F)bTlMh%EYANPz;D`x`4Zr}ihq~_eoPC?UkH3JnTK8sy!23(zY+M4WqiLC_)nx< z4*=gVgwy#s@a;uE&jWu!{Kl7oZ|u+MdKN|SXC$s!Y;3|I>@B^g2?gy^& z4*=gv?CPt)wf(#a`~%V3Rx&PWdA0p)4?I1T^M4RyWF5}cmz^lX`UIToo*uAd+|C;!j_XGdQeq63+fqzEy^8xUoqR&BM=d@fq z@5Ski1AerO$8&*yN7~g=;P)NN=`;iXmW-R{0zYF0%U=O}sf^=y06*vemVW?viRj_? zz_*pS&xgSGlkskAsZZ6z_vUl@`vPAxlKGWw{I2p-aLNbzl$&wPvWM2{ySqhQJz9f=8$&!*KB>LYo=k@CUp4abt?&D#`ecsnR z&-=X3`F!r3duQ$h_>_))mhAHWtqLJ|~>>eM30sJ4`s|J3%<-yI45q^>u(B3h+OLvk&Rt{NH_x5zhXU z7S4L&gfsuRaOT?!=ldtTA)NggDV+UzS9m8pj{I17Ydl}NMmX!-B%F2rD4ca(7tT79 z4Nlrm)|p8->%3n$J+*|>^Q3TkItu6eHoPL7=kwQubKJLtbKG&lIqq!X9QPC99CxK~ zj=NDf$K4^ERZg?}c-J9uv;| zHQ~(P5zc(hA(6xjzc1i^jup=S)D+HjsV|)UX(pVtU&850{#Mey(UVU&_hC`t+=pd_bKLudbKFOTbKDlfIc|I59JjM@j@wr_ z#~m!3$h zXPv8s$KC7eJ1%@kd(VFr&N}Z3=l;+CcGCH>&Jw~|XC>jR^AX`ZPFo0Po$ZCQ&ew#q z&dI`A=S<i*;rY z&f`6&aQb6})BlWc*4bJ({T+qV-%B|ClZ4Z=Ho*4>_#XkDW<=8d(4SQ}zmF~@ocW5v znSVk!kN5V%d4A|DocVa+JU`43&VDWs&VGI_ocrx-;XIH1D4cbk7S1|v31^+TMkehu z>ntLib(R;-I-3ip=Xv4uyds>QVZym@#|!82^1g76J4-mnT_T+0ZWhjQcM9jY2ZeLo zlfpUfMd2Jb`KYA*=eQY!bKFA0Ic{m;9Ji`)j@w)~$89H^{w~7le_J@~94DN|<9ovC zpCz3By~0`NkHYCcEu8+}h0~v9bkhFQ^FV+%4)B))yqEBbP5pQSg-^=m`EcP)ig-Rt zIO|*~d~g?^Ujv>jdNsL6i60M}d?v$>Nj?W|yC(b|@U&z6f9S`{iIEuLHIc6ko<4d# zTl62-v7vCztC?`FV+Y|}$MM4H`69qi2&ey|aQbfu=W&#Bte+s~wX2rD9wVIfJRab^ zgtMMO!dcHK;jHI9;jCv7IM*xAml@e2dDgkhaJNtJGFfE5;cgwDYvM&m4R`rF9!E|Y z?()@;zi7D24|9b@FP9B>`B$Dx#F4)ZcloT?)c+dp@>P&eH_m^ZTNjrvmBL@oEBqRG zA;X=g?Xx~#*6=JIC4Q`8xXTZ%?{9qA@Jvy}zh_a~aF@^7-RBz_?(!W{dH%HFENCPs6SMZ^JW1=bIt5Z$ygm{CYA_WY0o|oY%CY=8A;*UYTs>wTl zEcSn#;m-el8b9#k!v6q&TKI!$eZB=a=hX<~_7L6}`L~3(_L|6O<9BuTM4i(NcXhrE z&urm8fPWJ3e{S;D|6L%zFOWZOxZ4jKaQ%YtwYYu*pV=S0EExIMTYHK1)?Rn!WSr}FxXb^E`3?lvc?~sr7mdT? zrOAdnPou2S57EmE;WNSK2K-A*-ugEM^4kOXgND0$Qe;akCvsePAMgv{oG+f%h+Hvw zS5HsOH~A#*<39Nro(#g-&z#`&$Kdf*L6dj>z3`Vb+||D#yB{xBcm{k!Rb6-s@Q1-U zZXCvKDf}_qpLP{K%?}&tWBjhptayAo*l<^80>&LF{3Q7FfPc2hTmMqSou8idhTHts zfPYUQf5dR>zZCFXH+eg5WU_A*_XF$90nYxjp9M_bdP*8@>!}g&)G~SNdD3v}X)U}o zeh#yP;nvf|aOY`?R~*FclEo)LyS&-?I95#9sOS4=b9dS(Xr0>hoZN^ZX%o4{FT zg2$0#lK&m~vw{5GKtA)kUP%8O_;Z81{ov|vkK?6^;jYfX_&J~IhTD9tfd7d=zP;hr z-_daEe8mwB)`eKdQM`#Wej)zHu?P* zR2I&D))aqCN}sP|^3ERz-q>*G-vxh5;l&GhPY2<>z+VFAyy%Y?ULE%@lZCJI`p9(S zcXh_2&iRJBI@e;{Wy1dk-yHDoFnQ}gWVrLwbJlR1|0CeP5y&Th&rgv1f&N_J>>K+~ z$mH#~r3|-qJ{a)SHhJr5Y`FD2AMkWBdFy%AaO-(ncmyf8-ud@pKPP+N2e=>7 z7RGhq8^CjbtG|HBJAW)5*WEAqtzI8_Sn~Y42~QgC=G7#|e?bf3X^ME>Uic{R&fu(* z9@xw-DntbAVVZMtDclEQ*6~gKNGT{HlThR1|Hb`60pS&JUX2x=#(iP*QVsmS$04Yvj^VDJ z*%-Hx@GAEvY9j3e{!S+E=Gz|rzJ@zLJwpw*`LO~2yMg>n!>xaLz_Zrm?YLVEx1PfR z&qbm4G+wD{58W}J$Etg9pPt-yK1738}W@H?-v@B@H`7R`@?bbn7pfV zBgQRZxEq)L3c~5H7VyWJd}1GPo@rvZ^|ulaAGdcfdFSZ~PcOrr=P2eoKzPoQ(Ho=6DE#{EG&gW)-D@@`%U825tVZeATr`8ux(=ik*z zJ>B2V^`$>EIL{CC=QrH>=_zfvt*27JUn7uz%y8>(8Su0>c{^@b!>#AdfM>YLThAoJ zt!Hk)v&7`BXN}?3vsL(r(tbU58g4xY4R@ZukUtKt>v-1Wt>=p2ww}lgKR(X`tS6P> z)|1(A=V@NXe|-*c*0U7*wx;mU!Rr{0^Y6uee#UU;?+<@#;pf3S2K?Pk-uYwkI><=L ze}Q@?NWLfX35L6R29%9{h+Y;7&tJ~-<-!MnuLEa)IPPYXcXgh`xcd!v<7O`J{XYrs z1%4*r|IOr`Kh7<5^zx74)}QJ_e>>}p$9XRkxchSFnE+2A!<{Gjeg5l92(JNNR{XQ! zuPr=3_CpKdTd`j4jNjF>5%qL2+||SN>LYwK>UmTA|G+=o%hvC*!BH+2t zseyB z^{g`7dG?^5b>OV0Bwoik6X3rYkMqai_14>lJO35i7yC$F52l(e0Zv9Kd(*)`xhR_P-N6l}z5vD{*s0KRs-?o7ZL3Ur%_mD$yIG zmuC|aKSk94JUGu+^uJ=b^V2iPa9huCaP^N5#9e!=2|W>VFwL8R{90eLF$;ci@Y~)3j>z3!|6M1NohjAAtNp$?t~$Ps!)J z-~0a-{w8>eS^oB9(N9is0G`6&JfF`-zLfBN;N`*TISfy&0B<9nzuH2>%UyrFedUXP@M=RrCHM!XE)YA)X8HTnq3lv%Qafei5F$;Or+o zv63H+e09lR!MM#Ne-rt(!b?>5b-XN|8}JO3d;{di3hxg-Q9S>^GcUlu7SBiUY!Bp5 z2l5vspE8A?SDHCV`}__3S%qH#&j-%_r-P@eynQ_ogYYk9r7PZo zxjg3egyc&j-&pchk?$&e8J?#dE}n+)yc5XJ59F6gel`3%CEpwVgTfQQkBjFkc>b3B z7UWaRPujPu;Az3xw@vUA3h-*;$@`G^J{rik3gn-c{Pr~7^QPnoEreyZf_!vC@4Z=%jklJAWCR>?=w`Z|9O@Vnv}3s0Iw z{_EHudJ2Q{ev0{0f&Al={~Z3OC7%j)_L2M{4R`td$lqtU%k%dNs~PU{ZE8h7L@y5+?(+P- z!g_|ge81W*9f>qFJhA@7ZtxZ( zB$IcjC;T58o+-+Q)pzMgWS;P2;7f&A+bJ{nxg z@~)nfnf-h^8Sds=>Iu(#3GW2{Hn{r7n!NQ-HQf2>nQyqwFAMlr2lAT@xBedjp5rEO z$31Vj_52g?q+IIzX zylC>))6;P0Dcr!%|4rdHz=s-cJtG5rqT$Z}Wkc^@49+?~z<&N#@~<}X`8|RBuaZyp zq|e`w{6_e*FY~v%^>y{MZtSlY0B1eSSC;%-pny;oeg*6_Gprb zBd-{4^RI!k9{L9d@>2}A{%M9=|LlN&aUlP-;nx4H;nu&$aF;*P#LxFIxX$aO$vaQH z`w+ccHr#n0d@2z~ZV4X;p8PX^yZY0E^SGwJa3EhYkgsI8tLM+B{CE!v@9?ze^}t!r zR_v3;Chw-Y4D)SgxbyFWr;~8@vzPeyX7=OuH+iSdn$`2S4Nvqxbo&ZCCAI@e>|UxeQUzZvjHmiu{d-RaM0xbxFf zz;IhnF>ub8^_L6eA28hdp9pxKHhDX48^f)qXTbBi$y?9chFj130nbd6x1Pm@ThAKd z^_uy#{!!>#{@;VxgimG5)pbN`v^!oH;i=Xu~V`j*#l=NSS|5#ec` z_1-c8e`T9o~?)(Fv^L&DE z_VWYr?{!}ky?ku)&L0o|Cx*Ldfz~b^JuZd!0behC1NdfeuH$8ldrWw#?B0J__-*vz zrt!NvH=@pzEB)8;xK7)~U(Y1GK6nf`>!H7t$y zXMoAuafcahJyQdo1e3R(PYk!74FS(qleeA&hFi}m;S;egXAQTWKMZ%Ct;pX5*L94n z`v3dEdNLaBJpaOzU-+T6{_6`HZau{Uyu9JgKck)Z)B|Uok#wFnHhJgIiv8c#aOY{> z-sfKqczT$;^$axJdd7$+1?rh>^3D^7dOkDUdG?{6RfgOAhJb%-Ab-qo>pyL{^2oo532_K@MuGa8<{0nd{rZ#^#r z@?8V@R}FXLKJdJ+f3WcR;A6y}hWo+fT|Ij-ui1t>f1Ve-{}bWt+e-0o%;@u9nY{DI zV` zqW}7m!smk52>5H6yz2w~Pa5w0^t3VD=3ff-pAj>-jO@Ic4(JbIEY)xh=dTUe}1M@$07Ro6d0ONkBe3xbBnuCU5I0VYscQig4Cb z-EixvWw`U?e96~c51jSHVc!lCULSmz@i>1x_Vc@jJO2ale<*xE_`HDsQAxfVdw9~U^*(y|zI<80xgR1qeJ;P@ zu71{euW;5`F5s_X@~%Ja;jd%3^*0hvjJq*e(!L{@w5$lFypU*K^2lS4uzBc~W@WZa#lC;J79Ba^q|wlv&&x&}ObOx}718*V+5 z0-k9mZ$0x2x1P_155c;uG2D7K8SXrDklz8WeLi6F)^oyeThArotmlg1)^po%=ZWhc z{opQN`cJH9HTLWss$6aLduFjqqca7n0T>3W&r+-Jlf57Au z`vCvXhFkw{;<=2+f!9pld1CVTd8Pcyf9Cn&IOdy4cxaz z;m+Tvk6({Z!C7ZD?DIpy9|AvNJkB4F{r|h+&fgRM8^UjbM>hEJIWGNa!MPt!!hf&i zYoVU9lFypgdml91)iblN=XHdC(a-Zn!WX>id2?{q$#L77d}1FkZg<1oxb(j&oc_T9 z{|J+J{*&;(Z@Bd*h^ME!F?v~G^3D^RFA+yp8}6cwU-SHH;UmDm75`-Tj|;z!^Y9hn zjj>+oHu`bgRj1&(WEcJ;#w`TS{*QpCxXHVDwa2_F8t(il`$s=SFEutMe){kCNmC5) z*BgPWznRHfe+R>zpPrtE+kAg;^$!W;#~N<^GXtLaCU3`GZn*Vq33zsyy!HHOxb^%N z@LV%_>xq0FNxX2~*|*HXOJH4c7;ZfU4R`e{K)yJ5vM5U){l|S$-sG*Py5V+S^@OvY zhK5^DGsB&y;K1mI=;c}PWYPb-dcMHE9V+}w@G-{Y{1dRBry1`2zrsITc#k)tH%2d? z1pJ?yyz^g%e~;w9Mm>ilACo^(ANkdAS5NLio?jMz7W|g*-EaDQ@=gA8vgjw*AC8+I z+?A2o2aKD~a5pafMTOH}7F_+6O+K*?@Ygon`WuR8Djwf9HF@WWD-it zh$G#Fe+}MS{OjN!ExcoP@A*jhZmicz@pE0)3r`>KJ>Q8Zbq3G(nY^1;ci}6 z<9+_D@M%LlzZLK&+w5=W`qH1taObC|py9Tj;^16g)?Yr5uV%RQHwbv1F?l;~Tf?oV zSHRQX-ofR>sc%OE3C@~!>wnV;m*UqU%L-n`~0KHThA|s+j_1F zXFWF!x1MC*{QrI8JpJGD*HeSDp8K(HD+qrO`~l-}{sipjx`sP{#-ZNdSoj;@Ed&1c zChz=_g5EPw@^PqVsN`djpKQ3RC)3;BGeh_w@VUaX4fFX=!Py^g?v4K7;gPH#gpJ}beApu6VDG#;K^#Zi_XG)^9er!eh)bNuo?dQ zg{Q)K^$FpPuwEU&T|G|0b?G9U{ply3H{cm$@~%JenAa%7oj>dF=!fWKlJI`ua|8Y* zCU5;~40nEdwi#~o`vU$S1Nk$CTmOxK=UXK|Cao{EOs zdg=r`4Ncy9S{iOWFA1MI+}GXJaO>%7xby5reh|3MYnaJf&qTv*Ju`)~o;ikF&l1C( zC-n$l|8j8FGaLK%C*jw?{}NA2c>WFK^KA9w@Hl!C`517Hdkg-WlFvKRfBj>^-vWP9 zJa^&gBKi5q_Yuy&OZvKaQsD8}xBy=up1{(i|< zz_?FKzTj9t-gCk`fxjr8D)7WhejM_ngs%f1FP`e~%ntDN;yDS=)m;9jyzk35l5c`Ke~~=@p5g_`w?sbm4)0^%$cuodkKUXq`mZI%EfdJsl6*Y!4FdUY zl0S@mKgqX2o$pEhHuBRY-x2vQ0(`%C?s>=0|EECys^se;|4$%aXs7qFZ^Mx<0nR>m zL7nv^zYzI`lJAXtrvM)+o}KWF4dmwp@=F5w-IBis{~^i0meJ4ursVTX@cfSC2P2FUsd?C;17%EHF%zt{9xo?5YE4o z*GW8Yz%wYor;2Ak{2vGMYXbRAl7AcH9+&)0_ye^A4z^P>f9jt^T>ZA`RT}?4Dj3H$vD~f zG38$Wnf;-sAUO9q^Th-Cx{|K~e`Cofpw6C>Z-IP2$uB^DqVUDwpNMAwJSzkFU4i@$ zf&2~0&w@X)FKOSFp`Ie(?AsRPOGth-^0kDo18)OP&pCKr3gq7m76=ldmJ8Tmt!--i5E;c2sbPv-spGw0PDo;={(hs;+9OANRXJ{!}1;LGq2Wdr#^EN&8$M z{w%^@15@BLo%L-g{y;V#ej`MGJh%m0o19m8Fo@AH%9`{5^OM_f=TG^8&lfN}vHmQc7dPDH_aa}zaF;*V+~*$`zOAU|Ers)afnGA) z4Y>@@yY?{L`T4#;{S9~Z@b8GcX}HVteSt(V7T=+HQe=cF#6U8T*vKb^3Jmied}kq^ZW$Q zo5JZIA^wwi-T57pcmAw}qaUJ|X@)!h?U{)N}0T^r;6d$Q%iWs zS-y^XhFeb)!<~okGu{eZ>*-+f*3;c^=b3_W2MX^#+t(9sxb+MR@bQK_f2BFzvjCiR zj>3N4EcxG%-xkYU5&4ye5PQzV3%OXGD zgW&8l`*zIaohK&7=Pw!VJa5ADmvFxC=f44enjgK7=WY56f@?j+0{IGtyLuj9?7h{5 zuK}+k{x7f(8=AbEZ<84BX>GXk^ZhP63THoG5&y}2-t(%-JO8p6&xaW9{O6Z=K3aII zPd%S3d=2N#|g`Yuf+b}B78ggu*>*eotI<$xIY^1>ddv&^V7ncfnN{!@0h&x zr#s?(JP**5*KnIJ0?zre{?dVb6~kTq^w$e`8k@Ww_gTZOr+dKD&*ZIVh~d`rZoo6c zMAaJl`X~3tanr(B!S>l;O^kahV_Y58-FPuNiJVw*ox* zPu|CUvhXv1y&yR2+>8DEfaG6T?(=bhd`rpSzryD`N&b8Idz!qfKdy++k2l=)Vb15C zPd41f&@+j;(< zfWGB2+-V$a*7KX;&hsSl*THoi@0h&xq&x1%;XWA-PaffIzx26+hFedO054;>tMlHkyr&L0 z>%5Hp+)nbxkna@8#|QEgB!3nDsV490UxwplmEo?=Y3qHR>kPN~Z@^hU{W}Bs(}r9B zuZCOy<$(WYAfNe!ub1n{`g0g={RIto^*p`7e|>RqomY92cb?1W+e3ys&vba|3NNzJ z`x}F+zlF(Lf44xsZy-O|a92-Hj5|_zsjq!K?~4Bh_Q?#BclE^F>+_!&?))d=St*?T zTrd9D^Lo#>Chz<`;ooPt^H1I6^GAdq2LD-j*3CYD4xD|Sj&UO={q5w#3j6Chgcr!+ zc>!?Vza*f}l7_oF>tftk;rHR^%WH#kT>2ZByz2w~Eev;ldR{Wz=6isv|FuB=EyJyU zO2G4>$=h)k7;Zi50-nt#Z#{bqx1Q4h&jpjWp1%yYo|LB|i5H$9Zev~28E!q<4R;>? z9Df1uWKotp`j6{)ugP0a1;cGU4+&>IwG6kO28KJ&Y5e?p6YylHrz-aC@BklgJkGxt z`}sq|oj(ZvBl6xBljayZkp>eckQAb=;Rt-g(-i zZ?75dJeBeD!STZBA0_@sAwTX!lXw1&@Xs*Z`7gphS2%wT_*3EQ@N={)z&WoNjJr$t zcATG239pU)b4UDnw)^^1|Li~WcpnL#1)Ss36C2?5#FK1?_cjrJ9=x@9TAp=2r*&8w2?rhFkyffak2q+j0Li z+y;0@Mm}V`kpr2dY&`fc_twLBDl`0 zo5@?x>xMheHh6{$Pr%RljWOJMCIt8ghC6@9J$_y*z*%P}?B{hR@BB@$pSK(CJcajq z&jI1P!H)*~XH4GtH^P6-aOYpO&-?EPPjSHW)W7)8|D6ZGvw-Wo%1EC6%EEi%=L{Ya z&ouPsF_U-o?=9}@XkxglpLMnpJ`#0456(L2?_%=KA6vrv2N-VsL&dWIkB7&Yyz|7v zGu?3K;p_KvgrCRj>kGxd75=YYAN#r*e?&{&|Tib;5`Sg9lhvIqLBjBu)+>-1>`&=Q7T3t^bta&QH%}!)^Xnz@O~AuZ!!Rfci5UZvBP9xqsM) zk|uA*tz@|MJQnaYGI{H1Ww`Zp3wZjPy!FHzZaw3LZ^61uHr#q<816jJ;_>=iaP7|$ zleeBVhTD3!3THh#4Y!_yhC9z`)N=%!^|ZsjO>x1mJ9%I54B*@kdrSLVe#4zV6&_#S zD|{<>IdJt?F?m;iTp91LW4QBA#p9bs!r#LETyxR>u3c8*cpv#1o72@J}Z1Jdv{AbJ1|; zS&#F=HQ|4O-x7ag__JN~KGr`F=iw55b;v&@`S!@SG2GSv z1orn!!YiZh{@|>W{vjss>Y;y};m%Lb48v`HZot1JkY8=M_3sFH4w$?h_qgHK^JlA_`kK0EKx1RcjJ5PVC<5S>TPb-tRo{omw zdin@wJ+B*XJwpt4o=d1_I5_M18T)pj@U!5b8ISWXD;xa~y=*kx`Lkl3z7swbe1E`y z#N?enrkt}!BG)B<74_Vad=um|UGiVY{lIm~Eqp7!zOe8|alI5ivp*a+*5qBC8!_%9 zhG&X$`s)j)|0!_ww=(&}K9u+K>1=o=6$Y zKYYG0IOj!wNt3t!%7$l(D(In+Zt~Dy#k*8CU3`m+i>f7Kj4{Z^47E1 zaO+tg@O*3X*0bMm>-kA|<3IemoDtp^{Ji1Tf5mX;KaBisa9!UNxZUj&>&arctuwE1 z)>%Y2>nve-mgpGVpA`&u{%V(_AEK8k;H>jy?DKZQyMe!KJXxY&zqfp%Ci1G`&i@?z zgN5$^9|_KJ>7QWoS)!iU`@Da#6_Rg{{AR;lJ+1%ro}J3Ccz#fL#jBnl2WOoe z_pHfhiAMKg-0OxXjtl=?;q<3LKh&QEockoUg0H8r;nrVDJn=YB#+tmVGajBe!<}an z=KHwtzrmjr|7`eQ5`GWY~9HU)G-voa@W_a~f{_B?F!cCU3{BVYu}) z3V52Cy!CW2+9qTgPaO;_4xbu96{1R~O^GcJqp05qJ_3RPO zdcHT@dX5?HJf&~=eRUd~^_<1N&4BX(`9<&?;M@-+>xne;M_(lYCF)dl>HO`3mE{F1+6@?;j%kiN8G`4bDDr+({O6^YKQ`Qr zOaCI_^sfl`*O`1`A1eBKb{KB`-;1XS&U;5q-gzd#^PAz$^AqNKU3iY$e%!ys-v|Ee zIPbDQzwr41;diiJ4}rV=W7nmw@QxVwDe+Xz?dxe}@@`%mF|Uq>JAbu*eEt>TC%}gU z{G&|X`llG~{PfH*+~$`A{3`?bjfPwQfq>^HlegoZHQah`1w6@cKgQ#l{mf*z^~8X4 z-MKEMOy1U0#c=DXB|P~Zzh3nWx1J`3J5O8WTY+mm9ZcSOx*Klm87Q3f#2aosqYQVR z^{8h&IP2+%efx#*F5nxC$N4W~Kkqi&`JcKQ{Sdtz68<&#$$+FGgGJtbG#3Nt8a97XM|N5^lCVUfkdEvbiU!jad?g!U#A2#{KK49ENhP!d;Z!Vnv zb^-s(CZE`c%D(>B47dJx@xc{gqhme?K?47xT(yxSQ8F)SqAY74Y)lTwnUDn!M{9 z{f`>%{PZ+2+~!*a{2c=MZiZX`;DBd@$=h)!8E!pu1D+)&Z#`=ax1OB=&-W&8Jtqyf zp5KM%O78dJRl}|4AH$ue0rIKvI8N6w6FAQgT*rKd+j>e0XFcT%xAjyt+@Rw71&ky2x9-b?b zAB+5L;cLMocs$EKybMpS0FMRd!9*Ki`VN z=Y!V}&v1B}OMWNv?S%gg{-Susz|%j#-xW{cw7$*{1NoJbe+>EclAnxmk4Szg@;?jD zm(Gv-n|P+elNR5Xu>TJupG|l-@Z8{Bmk;478{l=tGZCJ~f&9yo{{s1*lAnul$4Wj! zdOzPO!drlUB%Vd^td;y5$Zr^B(X7GKeCww7z6Y+crPdCZ$M!ui$f4~Qb=WBT03GhYYDU#9GxgwC?A^Cd9e=qs( zFz#i^4@3Tz@DxQZ z!vp#GlHZK{GRYrCo%U$Sqvk?N zgZ-o@J-$z6|C!GL&iqA;TS4+a!(UB!wj91ckBa9qJZ&U@Kk_dLe-XT^c&@_}AK=r) zGYXzLf&7<&{1(aI!MLX+zZCup!jFMp6;JZQ{ydWf-^a86$#eR?iim*OK3j{C460fbS7cK6uUq_`l*Q zlFRowEuNoXKk119=ejUoTJl9O?qia#2mh18`+>I*PYHPXNPZgfZwTK8K14ia;dw8> zKNHU-c=&t|`#{hBK>nwI{~yWc%I*8i=XL0hMV%$^{0;kD4f(R*%vVFcUVuL@p6B4{ z8psa~B3xegA&Lormu;f6Z{`=~}>h z?tr^%$)o>r$3#CwFRAc6pPR4qH-W#n;TfX*JiflH;Wl3dT>Uiz`KE?j|Fec${|fGJI@64ZH3{^a{`_(h10)9{CkT;zbJayW%AB{ z8UDkDJO2X(U1gETDdFwFF9;tB{s%bcm8@u@CX$xVk4CS$eUj;3&kG7K9OHR4a2_x7 z;D1zjwnDznCjy?X0sgk}xOMD+>l1{x#`O>Jne(cQI_H|a>t}3LU;k%@yMDfgI@b!H z3BD`fKWOsSf68#@r{}WaHh(MNPlo4xd7QHTjD}l(VQ}q3Nt3tZRx;dr9t(IHnY{J1 zGTeH)1w4IC-g@EK})Yr2__?O_T zgg<<*&u;){-#G3O$s60J-4eDGBP|9X?R{_Tc4KRrJhZu6%D{tJQpb;GScEna`%`mzsM z!Fm2?9|{<5J@*AX_nW+}zn0LN5P55@K%NvGU&oINC=MwVc!L>i{ znY{JPGThd)OgQUVX}I;QH{5xu7x(*ZGdSz{C?I6N*H3tU_#8Y7ILDQ^dBbowF8#xV(?34of6wF-`vCtu!>xa*csdpF^?YIS&T|r;t%f^K z|B}8xdxd`neo*{l;J+liKF){9@VX8AwminylNX%(f$LI4IQvshJg4BPV)AZYS*v@0 zoZ)U>$xHcpJuduZ@YVtUizaXVJq>q$dIlSA^CJWP34#1{!>#|*fM=D-+i|}(+P)JkN7ovKVeXg@ljBx)e3s)>GDS=h=vS6>zPm zrpa4ReZy@%&4sg`=M1-=7Y%owo2aKVIO|DM#C16mnIyb4_!9BlSK57L^!?-l`Q4Il ziu@tT-v|Fy$xlN5AK@FpQ{iGvN{t9ru9>_kYESt=2 zhe&?BKIX2ub)lycxaJ=Wp`I z{x`|z!u?KKyxzq=Oocz2@NdEMgR`Ic;kjS(=aGLzc%E|ZDy^5^ z?`MTTp05*XzDXe8OZ@l2KS1)8QRj5YKZSgP5FDhrb%e)*w=*8=f7x*7UjlzO@r;FMgzyCLS;k}iiwt-Ev+yq! z&nNI~7rqhv7vr)1ONKjt;rsmlxgwsO@MOa4Iqd&Q@KWH~|5(GFza{)t#q%3HO@#CP zy}KHZt-p`q&OZ_U*Ts{uSoFr|WwP)X@K24$`d1n5{M+GQC!TWf{2)9I{7>Vt{#%AS ze~Jpe|98dH5T1N^J&OHr4_*aa`(M*==dTI>qvGiXPix`v;IA2vt$(oL&fgFIx5YCN zo)3gi17Bb~&j0H3(GStfCnlf9qr{I}1N>5eUpIdD_%jaQ@1(}-a;~4LqyJJR+9Q!d z!hs{@4NplJ{an**B_Z$GFW*-i=!%`p;du3D4|teelwTyKx@^uL#a@V=-q{+K+S0jHz_zLheczx3K z-;Fx~Jh$O)+|JA#xcIfx$Qj`$;JIeF8}~4H3cOzG z`tQb_0-gb!<2J##1x?(%EIyEJ(1dmyKyhW|Fq$5+*z)G=;c{(jvJ40yPCWk z7vH8w-V% zyCC0Hcq{OMhP!c_fKM@gcVASuN%TYXGE4ZL+@3ELp02&;Ukcw>!SnBge~{htAB1mf z=K0UUA1vhgW#P-acz#EC^OrqOj}7Mf=H`_ukLP)m?g z`q@Bub?lRt!n-2hQTR#BtGDneP5roog};qE;IYEDqyGzqKZ^dZ1b1b){lLox$$wDC z-?CHqFVA>>SoqL~JwGS>?~a~d5&mgQ&;JqLGq2~V@%lFVUoyYvS%r7$xo*@sbw*Ay0?vIRd;)|2X@AmmB{N$I}r1 z@rLLR@Ao(^d7J~$3pxAHD8QQuXCK-JcqifP&oJR}iB-7w`SAa7pWHrYA3g~1kA<^8 zp9c6U;q1ev0N*a0{W%oiCxo*<7X$pNaP}uFP9pAR_ushaKX=J1oc$>l;N^rb_L@kw z0FM)XPb&WfjRL%xaQ44LfOi(o{`U*;LBcD!2W!#Gr~scRye;w{1^7JSOORh4;A@3H zjN^T4fbS8`{qs|R|16yQ=Z^rtA-pl_NrA^r+&|<>>PY!nxmS26!Fe z+z(F$cq`%D4;=%%yKwG@fdM{LIQPSZ0G}%SE$oMR0sg6QuJ5`4-z=Q#yC=X83FmrU z6VCPeM>y9jEgp1oKagh?o_I$PUHgIoUQGC5j8`$hs|(MI>yHI^BjJT`{n-G2UO4yL zD*^thaPGIa0(`V^o*&)|@Q;L-!ST2_z*h+8{@D=VTZMD~90>5Ag!4S`Yk>bDock>! z?gzMkp26daoWh?6zc;|k3g_`#LpYDqTEcleb`V|{*Ed<6JC!r6xs!Z~h5;T*TR zaQ3Z^aPD&+f2@=H^JU4i{vN_7qW%Hk?)z5v`v{fsg!14(euVJl@JtdzLYQSq>zl7V~$;XHn8h==`oMDjeJ*AvdiflrHv^J)>uw-e6e zqKkM~Pme(UHQ_vt*eCXx{dr&V+$S@IbKMt#t7oa?xn5rgXC0dYo~@E+ANC06yp9As ze@LG5x*?qNN`d=l-ESF$v;I87S!ZG4tn)$Ptf#hc*2DXAt*5!sc+F^ZY?L>p3obH0r!4ob_B4&VEMlgq!v=t#I}; zmvGi!NI3ghLpUE7)e_En8iDI^^t9x896c+Xb#@GR21uUuyd|8E)5Zn(6ydBtK{)GN zAe?n>7S4Kh2&exC;q)IDPX8_8^e1x-j$XL#^k))Ie=gzlR}@Zvb>Zx1od9nroR1q? z2>%23m+gcn!}+UAfcF-j6ZydbK0^4t$iFL`{h1;BdF1B@_)_7#fBHJWzY{(X{$m0D zi*T-2I``nutUK2$n{f8Opm6rTm~i&LLV!OYoc*s8;0=Yd|E+|x{~d(0|J?$-uWB|@I}Je|J}mb{~v_2|EGkr|L29X|JMTiAK~nOnv6;J19=wV?0-Sw?0+%g z?00v%YHXkalIQVquW%kO_XRwaCC~XjD4g}z4R{(zp2y2G!g;*34S4!Up8Xjp zoc$Rto)r`Q!jF+W`@^6AV*lBnj{=_A;$eRl3uk{;1w88{&;D!{&i?EUcz%}rMC|j6 z!uk5eU*h5U_I4nj0zaR~{_ypS%;4OId>%W8rmoydoaf(?{}Ua9$lKoac?<;$b~w0{O|pxeq@Q59?VW zd9KSk;q3Fb0nZM}vp)xfvp>fJo}VSpK3o*edHogeWWWzla^G@ZIfQdwg@v>JlEPVk zW#O#zLE)^kg>cr>PB`o7BAoT~7S4JG31>aSg!6tpK{#I@Um%?ItN`cn&i%7m@~m^C zaMrma;5jLI)^kocU$4I!;J1ad{?s{>K8|9YnT4~?(!yC!Md9?<6i$B~;qF*<){(-{je_uHLGljFCivoPP@R4{P;49(B!M6y%48AwO4+~F$=eK_e@Jqt8BmcK> z_9uC+r0YH!&l_h7@LadEujtz8wj8PDq~p{8c#nc_rXUgWq#v{mZcrvk2b`o?keB9<``&u1k60?0;3^?0=l_ zD%e-`h1UdsK{)qGSK&Nf`Um(B;h$o@;{*IX;p>o}FP!~ZD*O@r+~Y>!obNW_)iB@l z!a3hRg|A0FcZIW_)cJgX>z)sfTXG2JdKD1P^(rNt^~Vb5er_b3^*0mF{nH+t$K%O& zecc@;&pNvcXPvJHJcA_9<9e8I9@i5Bo+*;&as8oi_F+N5vqbVdu2%}@alJ9%IVgGd z`IvC_`J8xuLZ2^5o_)S9oPCbu_v^#;q9+wN_Z$11NjUqQH{dBGdG@)uaP~Pi;HfHk z_W2><>~sBqr;X%!{_H56&m;8|5AUb?NuJLm4HC}v8X546lRVdJig2!1LclXu@_gQA ziE#FLb-=Sr@;v_>6wY~_40wK#Jm+;uIOlaU;JG7tp085j7frc8Ij^kX+|OLE;*#gQ z$_wYbstafRj|yk~jfAt#X2Mx#FX61Gzi`&`ws6)nRygZm{~Y1$|Iz^eLOA>XO@Qwd&i?->oc%u~oc;eTz^@5s|5M|A8hHLE&n%q%FB;%w zgtPxo3TOYD3upg32xtF03upiP2KXDo+5Zs%{*G|=e}-`Oe~xhWe`$b!A)I~Y-__Lq z?~y$Fe=@+&31|P);_ouizuq6_k*vb``>uDmgmZt64e)n`v!Ansv!9EEv!APlv!5G68UPvxh`?SZ=~@41_Azz@Vm&rB%FPFMR)}~k2Fd+=Q~k2 zkH?t-K3_PG$K?UORyg<1HsRbqdxdlV92d_0b5=O_!!_aD5B~_~e#l?cuS2rvCwGeB zdKDGU`tK9Y{@*X0^*k+{{%3`AKXeT6?!vhr;)S!Gk;1tjW(&ukA&M*(&i$|^z`qvG z{jf8@zZcFvoEFaga6$N4+~3_4&ixR%H|aXE51EB?Kjaq9{ZK_X`%_am-gY32&i*VC&iS9ca-@ zs$%}L9(P&6`TPKX9wV3J*@r^H*@sdAPkG6+KUIaZKYYJrt>-bxvu}-rvu`cI)ze+_ z>`y=8E0X(u4Gr)y!g)Nt7vLWW=YIP{IQ#s$aQ1nVaQ1V%aQ5@CaQ5w_aQ5x4a6Z49 zx_Hw4vlaU)8@Tp4cOZX{@apJuY4Py+!21IE`-Q)r!q@kxc=&thbp!b)g)e}om3UZB z+d%#$;auNd;^Fc2s^q!uZwlXp^YAF~a9-mj&;9V8aQ@!-$Kv6<<^}Sf3g^CBBOcCc zz2v#yz7@{>wog2q*ICJPAO0@<3+%&N!nuygN+jL4T$hZ(*`J)kOW|={;Q%iwoc(Da zob^8=oadPi0p3|S&og}k{0-rp?`YxNZO2=HaXx!=|W_-5g+(29M4&mI- z1%z|mO9yyG;auNGgmeGb6VCnLQTQ~R$GQv8gY_C1;6sHEKz?F?e;}OuVSa!w70&&z zHo!LtuZR7xH^2`I=l(ex;J*v!{`p5Z_e09kN%zCDH2!*a;oJ}Tg>yfY63+FF72YMS z_dguqb%k?3yeORep__2N-{=V8%)cW%4*j1doa-`6IQzLoIQzL$`1k1NM&az|HsS2& z0paZDPr})szl3wXcZIY5^ktH+JL}Ibob}%$ob{Iw&iX3}XZ#@pI?cG`+1Y(+2`%TdB1;9Jgn!4 zjijY;hb+T;jF*EaIWu& z0Dng~*LPZg&l1l0E)&l6T`ipJ`>k;HXSZ<9_o#5L?-}7--{kitU0<$Odf}`;w{X^T zk8svgLpc4lgwx+hIQ`9pb3e2X@J_;6&uHO1-X{s?_ooQ~zCbv?A6XUP>xFawd>7#R zgtKoa0{mCu?B{ji+;4Y;^L{5og{1p|{m&ts{VXD!`>nKa?zeiv`F&zz;rxEEO@Mb4 z&i?la@PWeF|KR~XUO2z+m=WM}gmb-?3uph=3g`EC+k~^9dxi7+wc`PPRyg~gGB)Y@ zvi}){m%#VqC51CzL3k~Ezg9yy`&LUh`_o7``_oJ~_h)`y1*obOQKtbdGf*7Lq_ z)-zK$>sc(E^{f!idiDrsJ%@zz{`87)KJNWnIO|VU(XX#QPD>BY$7!5bcHx{?p@65T z9m!a3in0nZbX=e(X4&f~g$fOitkyl^vcZ9S4w3Yt%zA6OHeZ_ed7yb~=53vDWP58se zHx$nENmJqMTRY+G&&$GjzU>|01BA1ms!Z2ZVE8&4jc5Hp2P$jb0bde7ta;PsRvmJ(GpAo==6-ze+ggyGc0x z+lAAARyh5?3+MUsR)8m~nsgmG-(133Pa)wvUzG~*SmCU{sqpXcxUscx_Gf@_=HC*2 z7@i3MK2`Vy-7_zKs^n{3PMrCkX+*Ksfiw3UJ*gs{{Fs!nsd&h===RZyegpnzgfrh?IP*h=d2}{EBeq{}#@Co*GH}mJXi6!kK?eIP;B!Gv7rx_h)b6obMoT-G`GTPtP>r+|P3Z zo<)KDa^c+1Ux|nNc~c<2T{!1;P(0kv7bMSlT@lXb%`!chbiHz5y>ba>A7TT%nsC-x z8=U>;d|OJM{`SJzx2^$C&p`fl;jCwx9RkZ<~d){^J3DRygbY z6P$fxovCXkT`&4G3+LnT(!$H5&WggTf;SY-?+2R-=l9XQg|EiXw+s;eHF$z><`)QO zev9z0;Mpad`K!X2zb%~kybmSqC+8I-oUe;LEPOlasVn>dcsJq9_Z80kMB)59TOSB# zeuHr4w+d(ejBw8DH{txb*7Of2?axunE4%Ptz^e&oK2A9EZG@kKr=xJ@#|USBvT){? z3Fo|43%`nSH-q!IHktVJ%@y+g8zi@OyGYD=kpB7}!tIQz3-IQw%%IQw%pz<(Fc{@f1m6t$A>2lgjR zfaej;{uB%Fa>Ci4Y5^W6oc(Ddoc-x2oc-w);QfW4!|^yQz{d&So7wkkT7b_I&i;QI z;H!kQ|C<7QyYLfPeLX(}_;KN>vibbQ0KY1{8S?)Ic$(Tt_fJ(E?>Pg!pm6S=QUM+- zocpI{fY%XT5A`$&@Rq{4-}(vXej6m5`)yQ!PZZAm@KJ!z6VCmxJiylq=YH50;CqF0 zKO772Uxb&&ez+Row}o?k)7DA4Psp(wm4+X&B;&ez>J zz2Q{g;**9Q0|;rHTr*%RQ0gmWE#4)BY@xxP07 z{9oZbelt9lbpMd&5YGJ&D?A0xlhuT02d@|4jfM00YAc+_(M!U4ybKfm7w$*K36J3M z$&3J>Bb@tZg>a6$PB{0&5#juMZ>NPvQ0JckeoHv-AJf)Nx?b#CR^jYh1>r?;+&v(C ze8&Gr*PVdfTy>2fzYWP)3L%-2LKKaL2B{1UhA2`Y6-q@S6lJIgiAGToicqGCCNxW? zN~I(+WN0unDb%0N{`P;*_j*>>)%(0Yt=7HwT5Ip~JLkSBleeLKbn>S1Mai#`|B(C! zIp?>hoVxXsk4yLAaQWBCACYsuCd!%TX>#WIBRT&)=}+VzrRSM%3{!)9W~AJRC}=UfN=C-;HBIqyZ2Gl$ftgyL7G z^Ilf|bMh+6!@g=Lp8Mf+InUMggFF`o@t4Xur)`vneO(j8-yr8)cUK}!{t_5Uen{f9KkoIqNw~&U!A8vz}&h*3(+fdV0v8%AeWKopPSThss(1C^^r)&&XNN^Kzau-;=YR zrScEcI=_;$p6}$;^Jh8r{9R5x^IY`5`&&p(J*&uhj;$$YJ@t|oJn&@-9r&B`SYPq1 zv$33YwhZ!gQ9SGEF6X)WuD}P&S^r2m>wH|!I%msS&uen>zb7aEQaSmz$jQG$PX4`e z^5?lYyYJ*LFDL&Aa_V_X;C1EA()*eVZfHocaut z7fi34j|Kj;yj+T(8TdT;u_^xJz(14IuRrAU>mNDwFL+6I->LtRa_V0;@XB)Pe@ftW z<Th{mTYkSx)^=5BzL7^=}&Z6>{o-hn&yZ?w0fV{y^ZP<-E?04}6N8 z=Yctazb@xFVR7IqR1h`=9}^ZGk6@M&_+-Tc58$(jGA}!{pTGIXUZjQOdG%z2)2+gOV3Kuu%o^^`n^U^KyA5z_R%bCN!)N_}d_5UenJ$Wz7^q2EeVs_@&1(NgmC+Fn|Ip^h=AWucb zv)`(6)_+=%r;g$|FXzcQFP8*)u2nqsxlvAidMZ!RRG+?zr#=Ja)MrGHXSCv}&y#ZM zGdalfg5s&qY&rFLGsyFa;<-=0lJotPP0GW4yDf;{CFlDo`;>>z!*jLFzJK_BN&z|F zPbr?9c_vS3#q<4?igM0x^&n5JAij>A`ME%Os818cGe0fl%+J-z!@jOnJo9s-ocpAw z^01!1isyBIpq%etj8GodGg|SLj?DD$Njdk}o>6kvGfvKWCdpaP0y#fl@qwK6e3IOC{zCDr^IJLV+!o~dTk)(X-{sl! zz|VUe5qN1i>pxD;I;+cBXCpc5X(lIsTRHhV%E{kfPX7DkDOa&>OVnF{in*Q|J=aekW=Tyfv=QP|Fv@JzgbTGcLu&k zPW=nE&YlPSNICUCKJb&|)c-O$^=~Vu{x`^}|1EOr-zV?^a_T=k@JHm-e}bI)PnA>u zxq-hSr_LV-{+XQmZwmZJIrT5xCcD3Uj#OOE=SbxPKS9px?CElzC(oAiJbAI4b+(lA zxzM$8o)2%7^Sazy&ij#jhrmr z`m7J~Y*svV`$W)JRs*BJrVeL`OoR|oEd??EZ>{r-D-}o^=kFv(CqZJmVD4xt=8FT)!0LnX7ot^&4{P@IjF0W5si>Ka+E=zYX&IqIl}O zS5BStU6rXTb*`Q2TqwCe_bVo+&gFtUl@w2%Pn1*VGlD$z6i=Pcms97aL7tY1r_NW& zsdJ|w&s~b={v0glbFGoe!|T)|isy5!adJM_dOpZAUGbdvxpMlxAjtEs;yGU*%jx?U zL7p{=r(YZ8e2(;Ukmnc0bI^QoNmd@W}^o8_$M zCpqiMe@*u5CcmGhsGRkbNzQ%9{8Ugp>#QPYou>wQ8Y`alG?(-HYpx3XIyvjVRn9u^ zkh9Lwa@O;tocxpJdcIPX0sNW%r$W9vS%2^4f=G{{71G zk;!YwCnT>OczyZY6n|;pm&@Nt@g3#V=O+1vqM7yg3cSDkj}-q<;7`c+rugZB&y~}! zFXi-Wot*k_ms9`Ua_YZ7@I%^X&ja;8GVr72)c*uI^*>oo{p$waKu-Nz1%9=h`gae! zkDU5HC8z$A<kf%=ySysVu1 zpA`5Ra_WDDJSV+hYbXEj_ZJ6#o1E9#d*nQC50Ot#pWi+v=Q-_ZIj^(R`EuP$YN-Lf^ zRFqSP>Or3K6kj^kr-}Ub*UmDdyr>`;;GLca_W=&x=f$xJNqh`JlBDLocqAv+z;jDcc%NH zn(}aeo~(Gz^Sc;#to_a@I38$TL&% ztY@B_^}H+R>wYZf>u!;ge}|m>f62+8`})kBFb~|@W#uQOd8jPs>()%pyuFlOXHQo= z>p5G_d2Afyxm59-$IIp8((6u#AkPhor=GXSIgfpUJpC2VdAv`~c^nnwc~0@v`9(Q@ z9>sh)e;&mmIeqz9PW?ZVQ~z(})cJckb>1bXo`1@zXWkpK=Z(4*mQ%MAkS_IstA{dSVG-&^JE_bxg69V}8glAiPfq>Mms9^1a_WDjocec`Q~z#q>i?je=dQ=(E7P1m z8~6)y>hp4Pzb?O~c$n!}M|COBcvMKN%<$Ql?PvALSvge2X7E12@7F9fb zFC`zDo*ya&d8#O$d8jGhl=9RI^3)IF8_W5AR;$3Tmj5@0$z6w=70-P3lrx|A1bH4+ zJahY$e0ZAMDS^+FKbYd*motaU#dM-{th{Z~3;=$I>@u&l~%#DCeF$ zIq);(+>;FgzevtKc}3vugzkaLcn2z&uzv zc5?dLNj@+2eW0B92js+0mJ>fiPQT{M>DMAT{aPxgU#sNwYrUL)ZIyFh{VJzl`{eX1 z|1H`5rC&wm^y?To{W?xgzv|1WXJh%S)UWI0JpXrv!)34`)Jku3VALq*HLIqa_U?< z$Wu=7)c<%n^{*A=IYaUE`g^~e z{*DgvJg<2A{*t^wdcJy1PJiE))8D0X>b6S0Aw8e03w(>5Iv47mnM3A{^%s+K&r}S& zs+@b~w7}1jb1p8DQ=iM^)Te`-IqxE8&hL;j&v(n2=Mi%1|EQdLPLwmB)8x$Od^vNt zNX{I7E2lo+%c;+9IqUyR&iaqKEqflwUrtW`s&ewzk~5!Y1%82?^>mT*KBc>y`Mf*u z`{m5%=)j+pGoMrB%-c*k^Y)gUd3#^Z`-{)y%+DG*^RrFP{Opo5KZp0o?l1K$DL*sa zSEtB{uPZ+_#kZCd-(Jr5F>jLdeas$m>fc{Z{qK`g|50-4KSoadC&{V*bUF2ZRZjgE z$f^HVa_aM)oc;bJXTQJ6*>A4fv-`__3&`1T2|4>MD`&q|F=SvGV{gr=a?dyUmuy=^(h&|mzOgq)s%;Qove7~=S+E< zBQoo0pgioWk>Z)FX7c?hPg~{TzG@%Dca}4sJ(P!i^;SG{dyo98BQyIN7UX#-h<`%P z{7+OK>N8LAoQs9>x6`>;68NX`p@lQ+|6a~K|14)dbKjBq_n0^4u%MhdED?BFIrCOa z&Ro@zb1z*gXMQf1?@9C1A@DA8=A@sTdAL_jAE(Oc*DN`&3kw4OK+fyJCxL$@r(av- z^lOKl`tO%h|3i9b_nrC|lT-gPa_U)CPCaYMsb@1e>u)V*-ma6gp00B4lOb~QKO`sr zSULG8%9*zp1Aj%%dcKk~Ki|p!Oy_+^;D5-wrPsSd`egSJFCu>}#g_@ZlAQTGDeyDo z+%p#heu9p&_^d*FTK%>Vsz=6|G|*R`kQ%)?|k{hbr|>vGP^Vmaq!rJUEJ zZv+2c&iTsQH+vo?rnxFCubAfH=)jMak4*731FtP--WmqpRL;Cz8Thqw=B-=cz2(f? zeRAgNK{@j?PR{&Hk~2TE<;=-z^8D#}<3l;~utLr}tPOm#oO#G|=l`CELh@JBoE$G_ zeom6}yirF^U(SRv)`P%vgd^T9wTSJ$H{qKJvs0*<;>5;a^|O{ zoO*VaQ_pU4>N!|WJ%`Jw=Xg2woFb>5Z^)_VyK?HeMb7)*9dh>jSMr0$^WYWC`-p!O zPaO{Jm)%F|aAb1lDXDnsQ(jJess(vYRy=h(Q%>C)1bG@Mo_aQuQ_r?Ro^Fb#&b{sF zb?v^uAC&VtH74*0a{Bm^oPND3r(f^M>B~|%efe5W{Wr*||4un|-Xo{ZNA=I1E1p-& z$@v_nYI4upNkRM>a_)iil!y2A4TJcma_WDj@^FsYDW1M`lGB&ll!x`)p?Larx18sM z2b72Pj8r^*d|XZ+pH&{#^St8e?@Mx?D_#roEC}L1kTWNrC=dJkUh&M&&+_`|JpLJY zuDi46a9H}>qlBFKDJy3ls>tbkO*wtPKu&)zk<;JSfwz})es7o4_q*iu{UJI1eL_xu zrw2Y)P9K-c>DL$X<*8qr0{>CY{rN}W|H$cAk$bZHPQOaX=~pE={W?)j{p-l7|9Nui z-%L*ZTg$0uFFEtsU(S9XkhA{La^~%6IemXl&U)UKv!0LStY?*+^?V~|JzM0gXNR2i z6daJ?LQO`^%Z<;d1K#h@ARA zD`%cxkTcKofcGu=KwwB)W4sc`j3@U&x!KW)BXIGocQOhqvX_KjGQ`5lC$6Ga$dh)4Sa!|`g|&<4qwZg zrO(MX2mX_sx*c)f|DK=Ha?aNYfuAhreANxSft>klE~ox&z{_=_G`E87x_zChM>AX*uv!1zf*0Wqr{x9V0cY~b#+vViXH{^f! z>o7U@RcSf-E6TYast10Wob|Mk|C;LDLC${fmJ@%!JWs0sqk%sqFOlM>1wKdKCdDrb ze6jq76#rRrULW~fZgmj9Ufv_+`9XR3d99s6{2n>=%ri7I53Gmhy;8|@9r(w&5B&XS z>PrQA?zEmW2T+mLH$u2gzB_Fgfd)BL6$Bf2N%H&*j9gl@tG$oc-p0 zAp3k#=L&M-tH`Ot8G)Z8XAUn3yp^0eY@eLIGl$m)@i)tv!`{ln9QF(1@0C-Zhm?mo zoUHglX&z?CnX7l?)N_fPx!Nfw{~kH{OAO2IZ_%`#vU1|jmlJ=nocJzs*56%D-A2lZ ze_YO-Ob&d8oH?17yx@UtA3Q?L$(up^dvfMvh4L^btAhA%s6W>gJY|7tSPJDkk@%PDzpC~^e<)0>}4vXc)uawtGdA<$&d-=sF{@1|w z$yv{#BQkX^nC9fA8JS-nlbqL)lT-fV)$G;ZuuU}o=@Trlhc=D0zXbp{*#ltFBd5Oyuz7vTq38=J>rbAe<@~;|)8)<6zRs4nN!}*#4szDn zH970#z8#==@(-1BZ$A>`856`$kaKTOS03)|SwZ}KIs1B7dAPS%E1rF=mk&$z+$+B( zd7g)|`$!$i1%AAob=FEw{n>9r#go6OoVr~ZbC;vV<@0UxC%I;(Dw9fMKdy?0c^L@7la=yRZLEa(# zykZymjmbyKiGN&9{9O4BDbE{n;=hv&V$^ZL2Twe6Z%=+$? zmrXuRPW&7>@hjw|Q=Tv7#P63Af5>CmbtC>*IiGV@lk<6IV>$87I_!2qw`8@Eo za_aM!ociQ`B6}XF&tZWdC8s`>0zXksea;O0Tsif*B=A;p>eC_cE^_K~pPc$UD5pM8 z2L7ykO*)S+2L6hCb?Hn$-U)n(oceze__uQEzdi8X^4)2k{|-FgnC$u4TQ>9SVu6>D zS1y-{KOyjw<#(j`vjV?B{#=T09(Wu1GwD9LA@Ez|lTv)&zz52wr}&Y9KQ4bI#ZL@; znw;}8FYtwO&dbMvewhO$Iocpjx;CIR|O8484z#oz` zZ{q@=B-f zGMTT}Kz?lU7J*+W=lZ$)6AWB{}EoEjh3I@5`CzP4aT- z9Q`P-l6-IAd7jGdBj@o*Ip^YNId!WeFIFs*_dI#8QW?KY{#^35a_+0Ha@KjfJ>3uY z%BkB3Is1BAPT!xCH%hP9ugdR8zCb=8`3m{4{W&>v`=Xq_&zEyg zE|OE{HFDO!QT}#X|If+!TRvyL;AXIjcrPx0IX=gYYVnkokG{_ss2b z=IUjUMXJ|741pUFAb-zpFF z*%-wCAm<+VU3pl~-XK2D_{=_-bI$c)$vGF)r&thQM$SEOyzJd5b$DaxE zObX(s%ekLlRUYd6MiBq5ocnya^3eCsg7`J^CFL{y`d)eH*IvbQ&*YhqJHs{~Jxc7M9U0lw3j*;_zt*)H) zG?2fZ*4a$XdRoh==k;>xd9$2)_LZ~#fpY5kjGXt0&&yfQ?BqU2uPUB(E|9a%kAghk zDxURxFXw&huE774v;Mpjv-{3E3(HyO33AqRvYh;N<>YT5C;v5a^4}mQ|7~*e_mz|X zF**64mQ&BEfzOh+FO#X`8}gaS-<7|ee0kts$XBKKje-9l-pDpGfhQ1Fs<;m*US0yosEC-6E%7z2ww?fSmddl~eym0v{)*{!;^=C8z#x$*KSQ za_YY_@YQnazdi8Xa_XONa(3VG!{pTe6gl;;E2sV!%BlaQa_ZkE@D6h7-!<^t<Af0Xk%|F3dh-~S2x(C4!I&g*Q6z{|>c9;gy{ zO*yZ#=LFtR&htZyz^|0^xl?aB^|?n*eTD`8uzXf}KA8~sRQZw=KUcmo`5SV+@BBgF z%jKu1&sDw&e3P8dLv{wfN6zOY`JT_76Z|kapKlx;__6YTN@w!ckTZv;%bB&cm# zJrAs>kevIon4J5wT;Rvcxj#<}{46>5XXC(|%eg1p1>Q+coqGg+r=0rVC+FUKP|p1} zF7Qcm?zfi$e^t)?_KuwUZHb)w?Tf&_m2(qDCZnq7I<4Z=j#SJ_thcW28vca7!DVRQMj>Gkd^IdgcOoVmJN&OF>N=RSW_&b{}PocnE>ob}9+ zGyf~)tY@`+RjU7HIqUgJPW}IqQ~%u4v-?i{50_K_l5*~WwM}C!A_qB@WJl-hhJoXIo^i@3PaiE;@I3mb1TJfC6C*_>S$w8ji6isK!?)!;?=4jx_Vq~+|CK$x&)uXv>}y*Pze~=2 zxKDZ5SFRVc=b88da-JKDCug2nPw61OqMUPDU3sWaEyeSESVzut-~~aRCP91)`J?Ie z_iE)~U)L(0@4w$D=k=v$kf(1DKTyu=(Fo(rBSUZ*Apd0q(OXUn+{-&7v@ z^|s=<4?mLgee+eyL!GxNo^!fO&N&{kkB?bEV>`&$V*ubBmlh^paDDfpYfyfSmn4CTCwy%h}g!a@PO0ob@l2 zv;I|b*1t~9`nSk=-rg-|{eQ_>e~FpdbH&dImzA^rD#<-pH5AXjPM5Q<`azz{70-IE zk@IuQT>|eeXZ?4{S?6Fm>wHGedY+e)f3}?bugS^3N>2W7pqzUq0{?AN z-b_yYuMPZ0IrZ-!_c1iI?Q-h>hn)KVBd7ia z=VZ?Vex#iG9~*czIrXm>`1x|`f1RAq=ex@JeEyEW@0RnrJVMUdhydr-qz22>q zGykjQyk2}C_|Nih(|-2`p6Au$8X%`%L*?}AF*)mhTFyMbE@%Dk$hohUCFeZW{U%elPZiI;zLs-eZ4UBm zS3LLCZaMqiALPkBFMA%iuL{b!uSz8MzK&Kr_tmj-?yDL>o>LUheN|V^eRW}w=OV?^ z-^=9m_nIJ2N5ykr-6ZF}>J{V}rg-M(VL9{jwDO#u=4YbfnV)HL=I50l&+Ce3e%_HY zKg)tVpDLdD`C88WY!32lS3L8xTh9FK5Ax)mpFPjaPeD2JQzAL@Or4KbJo9s`ocXB{ z)|7z3V9F`+&D756??Ig7`b-d>`;W<>B-EVT$K{$HQ{oUp%cm ztY=~nKTXc}0bfxb*7LgJIT!E9dA(SsJgn!_ApUE6`u^Q!zFE$4M=e~>5l zYuWQmd_g(qv_x{|nSC9tc;0s$E9d=1jUdk{L3~{~-*>xEd8p4tis$=om&rNr*93Vw zDxPzClbmzfOL?fzor>q24wCbIt_PKeeN9w6b2v@T9KNDFtmk#b)Ax7e^nF>7=TpT~ zpReWAXLFF}FU7O3+^=WPC;K`~&iap%v;Je{th1V&bvBf3)c>i#C(Eh-D}lcy zr~Yf@JJaVXo8|mDggXP@Bj^2Tz6II+&jcD&zBm@ zdH>j4&hunDIqwrY$$6jHQ_k~YKRNH?#>)9zYoeTbzL=cnfpM!cb(^Dj>ioJr)%pD( z&l1H`|4-%Ae{GOwgW~DSb~%0dEy(ki;^|lJh1qjOzltPxeU4N-eLPxDA1eoWswtlS zo+78eX9syMQ+&Z#N6!1W0rH{cGhcU{oH?8%=N_0H_-pcf zY5gArzFf|qE4WV1ez(ZSmddPukDUGHEXw@zTnGLq_kq9fEuZ;y#YLI_#o2FF`T1%6 zXUJL4IdbZMv7Gg^l=D8iyPWm(k#i3WPR^WnT$l6jUqcnoJuu3i?tyX1oo9mLxd*1o zxd-M3dFCsgdti~Ad*I_B&q~E}53H7R4{QwbY*jq>z)m^$z}_HF&f7Wv{>A)o59F6~ z4-`x8I#*FVeXl8}@AZ`Dn$-9Dil^_5?WylAgFI~%Pv1Mp>3i28Pj|)B_das^J~+rT zRPpqEl$^eg3-U}*Jbj-kr|)xvJo6P#-xta0`^Q0^^@`{I-zp!Q?w?fL7w`G=l*Og=l*ONR*<tiuL*McH9g2POYziazMT5J8{}E7c-FIC&U${7^L2lf z^L2~9n>~l*FC`~`B{}&|l=IxuP+lpWm!@*Q?v=?s|LqjddOFFuhi?n=+@W~R(cSiR zjvff|j8r`5=y5sc=-D98^NQyleo4;HBfS>nS)h3C;Sc2W>yseQ7m8<2zLj$xw*`5A zRy_Cl?{e<*T<>M((0$LBJlBDLocqAvoa@8n+~=i(JSQohIXpwo9G)*{-Y%9iZ*Anv zRR?>Tt6SvEPcJ$1Gf2*y43je_Pso{v@p9&2hMc~?ET`{p%jxe&a{Bv)oIZXlr;mH( z^efN%+4mLC|K;SwA1|lBr^xAVT{-=2D5t+o?WwF*#p{T(K! zzmLo5?=y1xJ55f1=g8^r0y+KtKu&)*$m!R1Iq$Cz`5?RR{5)+DIsGjyr@s~D^tXnb z{+=%9=UVFr-dN7hZ?uv#4_C{Xhc0sFp}U-U=qG0$?v*nSqvXuP7&-GWSyQap2VwVXNW9OSuK@yt(8IrDQ*kmp{-Ggl+z%+(V? zo~IPgyiJxfZ!?2D?U`+Y*rzQ)Vh*Bf%y|E@i)f4Q9Xe<5f6-^p43HaYjwuX5JEPtN*FF3FxNo(Iay zTc>-trkwrOmh=49Fz}}G@~J-U<*dK6{G)Ua43)F~QS!EF{ZGqT|8w%+(|YE}>DTLW z`t_lleyxx*Z{Nt-?G zPc6k$&pP&0&kKS)O%zX^Tga*N)j^(X75`kh%zkf_^ZeE`$kSKxJiiT;^ZYg<$TM2; z!_wS7DQ6xg2YFslJkM{lb1lvE zhv$Fhuz;L7ES{WsCQoU_Glv!JX%4Fgd1@)1IjkdR4lfAuG*LWr*h0=6ULEAQR`JZ? zjdJF&XOO3_;+eyNa^`SEkY}{wnZqaL%;Dr9&kKrY4rj}m!#9IGpD3RHzS~!FJ|Ebm zJiMRXrg-|kOHSYS1$mBGmOam`r?i~^-rRA4SC_N?Gv%!FTsiA(D`!0&<-FeAA}4<@ zIr&G)$v;NU`X|fDKSNIb#d7kmlvB?&fp3&|N%z3d@&(C%m#<8oYk78m@dEOVDgLOy z%gJ}A_!H&S=Tv#M^tyIV;0@*Hrua62caWc-;(G?(Pfouk$m!QqIrX0_r~Yrqsq+Vc zFPBsQHGyxGQ~#ZE>c2-${qwBIo(H^;ocfmyyt177*9rVQIrYCmPW^9@Q~y44>OVkE z{f7tsh@ARA6ZrFT>OWUb{ojyN=MMs3E~ozA2L8RA`u`F5KXU3{er5JN@V?^&InPC> z%6a~&C!dpkzN=y2P31fyJSQxdQ~xjI)k-I@Zxgj;aEBIP)$yM zYs=|xeL4MYDyP3!$m#F(a{7C-oc`V^r@w>b^mmk;{*IB;-&f`QT+jk}&*GW7FA4lp z`TP{WHt@~zoD!M*y8{1HUL~F1yq{+NJ>I|Yb4LY|^FE09Bjj~co?`+(PR?A_lrvYg z<=ivp2Y#`mc{Lpk?4GQuMQ9N`0keoRmCuhzl$(i$+ za^`%VoH>6dx%c~_;+g*y@=w!#*95*%&UyJcxxa3n&oX^u-Z)2v>%udEKQHHXVRqoJ$+`bO2zNP69$6Zq?L=HdOom&tiuSQGe0IrFni&iwo- z=RQC5^X&TpKU~hdm6bDZmF3*qr^=bPdUEEiiJW=b^WH(u zdB0W8dA~!>dA~RC5pvG^G&%D>N4_SVi)C`+KbI4~Q%?LIIrElxb#{N5x59Gfp_H6? zs31QvJzrIq|JPqR{jD#jzm4Vex0Rg!UM;7;UF7t)yPSTFkW8 zzmuHjaK7*Gq2lSw3ORlGI>@t5@$_qpoPO;N^8BHA`uLBWJ{J5cGgsc%;mLWPq`xKQ z^!L~x&k2gB?x?BUqDM`5Y~0zfa29?_@dapCM;HKa{in6>{ctZQz^b%;(O) z_sE&gL%z+P2fT=!`79%+o|WXxXDvDNSx3%%Hj*=+&E(AIHFElOgPeZdE@wXPk~5zV z$m#EBIrBMFPJQOdnYVZ4tp8&<>;F>Dde+H#{n{&MJ$cq;_nq||CTBfI$yrZDIqRt^ zXZ|mcb3b1qe<3|@w+);>KZe(xD(ShpyW;Ua@+m3){=i4d_ow)$0-r4B9L)@To}B0T z_XA%h=RB^F)8CD9`nxOeKjl1!AG$t!PVmF!ebV!G*}yByd9FS+@OtvqDSs0=_el#m z&&llr?=0texR;#!r@x&0XSkg6@`#-C@~oWu=LI?U&pbKjYoVO;zAW(1e4EzT< z&!2w=p6k1ufB)h_x0J6)@z(}^qnz{JJMeqt zocCdYKP>0GPY8Ufob&#woO8WE&N*Eg_$oQ)cSGRY<($Voa?WGUhU|IZJRTPKQSyc5 zGXMT@a?WFQIp?viob%N{&iQIC=Nz?>b6z?Heyg1G(l79P<(!v^a?Z;%dAoFu-j@@< zOkTNErk<e*3FeQuRgpF8B#XONuw43krz$K}-L89DWtCZ|4g6x)MvY#_g{x>%Jex`>N`L0S47Uw^_2>|f}FXn9{6c;eje}Kz#GZwZ%aA-y-H4h zJIm>BH#z;iOHO|W%jxe!a{Bv(oc>Od)8FZG`um}reyx!6esgW$o8_0L@0;ule2<*h z)4ZFr=Lat=r(Z|Q>DRGx`c+d-ziP|rS3^1dYAUB+SIgX^vLr%Z$l+&*|hV7s;8E%aeQkZ57Y_bd)ncw*+|xDW16+CVw?O zhddVe({ko;mYn&SFK?8dTiy-)V|mjQ|DBxrZPWHeSwrPLcDu-z$N?C1;*L zmNU7vK~9~!26?(Gp8EHZ zQ~$w1o-vB2&J*O^OD_ffs+@c2?Z7{h)5kC6^lP1*e*Gk;FTcs@OP(LI=Zg9ll2iZE za_U@BPMyz{^E}hYo}POzOYXUCt$6CtUQQiu3i5PQJoV`chPLStA#Z%`M^4rq)DZZBTy0$@1J%5r@x8LNve&zi1zvn8y{Q30$rC8u) zPTLSMT zXZ_>kJoiqLGoP~qe@)JOz8CmXIrI6oocY`!r_MX&)NPNP=g)jQvir`w9VTbqs>`X* zY4T3#zG@~XzO}q#iti~WzMq`>JRqk&qvh1+89DWNUQT`H%BjyAa_X~M&idEOS^tl6 z*8i)V_2=x&?icINFK7M5<*ff0IqR=2XZ`i%ydGU8=jYz9le6Djlk=Rw&wt*ochp-4`aBclnWT8?HeF8LUJdemta$44nY?WJKE-!|Z#Z^O17uTtQAftH`P68FK1&j-0w(E$8R2u9x%sAi5>@{PYas`^ouz5JQw_#HvhP zMg;MX%Bkmg<>BY6Co7&h&yY7xKVLL2$n$0p|DL>0%Ckaw*w?Bc{u?=c-=aL6(;pSj zJp3x>=bHXe9_o{KclI1ICxzww{6op)^qoA%1o6ko`MHRbm52JA7Q~+=XKouQ5B0fP z@&C=Ud}n&S>lS!#dByZTYq*@bdPL4VObL9ZoW8#EpL@>c2bizvO$; z`-?+<$(|Fuh@8IEl2iXWa_-wkfj5(L-?k0Bqn!JpyPSUYkyHQs<`YQ&jUY)d6=AeI7-eu92a-W z-&`WIzFXwP_mcB^JwQ%9hsvqXBXa69PQEeyoa*y(>hqGE{eC28{h!F0hqZFnzgf=u zcgb1*pK{iJ$RF8#XZ=OwtiP(9_1BW~e05gf7s%;X8#(*!AZNclDP+nJSX#fyGrrw>l-=y+7jgXQSt2eS2_FrC&-g`&;RawVL5duncVxT zu6XKmn!H5G%-3rW_(gK=&&vb9Mo#^^%Bl11a_T%#PCXxxQ_m;l%+Gi^b$d(BbI$v6 z-WRV-?mB-S#IKc8hpo!P`?a4GPknxq^ZJtWXQpqghdhTQ=jVHgFCwSTrId$rQC9KP zzp|X?lbXuIdQMk7eK}js>r~?)&!s{9<#PJlL3!9$FU8aM{_<`|W$HUL@KN$gr84o8 z<@9leoW3jye6gH!<_9k(-;F zb1!uWyo;QB>Gr_yl5-v(kkhZxa_T=`PW`9IssAf->i?FU`mB*NCmZFgXNR1A{UIlR zvAx;-C4U(?`Hz>A|0Fr{P$%&7!4&iuSC zXMWz1Q|Fa|ua;B)@8!(f&vNeJeRAe4@4oE5)5jwNKUz+|YRh?lS6|NixTb+$A*Wy0 z2Y$1he)SIg9y$GbP)@%dlhdzBa_T=_&ik_0U4tbd}M z^)HaK{tx6lKYSASS91FGlbrqjCTG6|{?48U_Ire!{Z^K<-x_lE+d|Is@Rf4h#P>YQIrosW`J&vJ6=SzS)uPLor&%jCR{x0SR08LF)e{ewJ% z6wiK#$=UB?L7uUSrw$Y4)ZxV-&pV2zK1<}~())|g179mIpW=7PsoS4&>XtX>;FEvO zzyJ5(?+d0rh2^i5`!_77WZ>oH)bmt1b*m@;x_l;o!@!%$sdEoG^}JKgc^n$}C^_eG zT;P-B%=2tH^?yxH{Xdjb{}poTxmHd+H_NF{o?O}eWj%%Dtf!=${N?53uO}z}`Ev3% zm6QJpIrDIB;5W)y&x3NFOCOUn50e6)E@vKI4Sa!|c~~l^zpLatPwtkp{=eiK)AM18 z+}ZslzO0=4p^BXK)ReQHi{<2RDQCa!<>c=yC;wnM`G?E74<8Tw89Do%BWFFY%emj) z4}6)N_3x5jo<3jwQ%-$K=E?3C@#W>6Q=S@upDyp4;?EEKV)@Jze`Vm;%0El--2(3| z-;v@6CFk}1zdx5Uh<`}FFXb7lJbb=4K8T+pFOXgz=O_<9uQD%)Unr-KOO%JtKi4V# znza5c@=nS3%jx?ed9&xFPl_)ir|*^I!%}=5IekA*z9_|amb3nDa@IdW-ZABQR8IWs za^l~S6TePQeYVKy%OQtk*Nylha_Uwl@Je#(Rx9v2a?VSmz?;cAFKv_iytEJEJIgsQ zJ(P#@(mRO1N6vW}raYXNhl2PgjNi zV!rJ8VLesltf!&8XIg(#Iq^N^#P^dE|D>G#J}alr3+2RrD5nme2fkL$JpT~*FY+C! z4u2>2Jm)zyyUxTHk~7aoB_|K_TqcOGBxjyaQXb~{)F8f|oH{pD9_INf#Sct%xK7S| z_Lb9@fpX?^ik$p2<>X%~zdx;Km7Ms$~`8 zb@I1U{B42vm9J0nLjr$D&icnDXAb#&sWTP-NXkD?{#5d1a`yYV{G}BCgPi^TBL6hS zmoAXqFV<60&U(&~k4bqN%89>OPJB-}@uTJJ_enW*o+l@Mp`1D_3;c6Aecu@P4|3M? zdvf=^P{HgvKbPuOOimxG%2|IcIely`Cx3f6`TNPIrS;q^Cw`io_&IXoSID`qzLZn9 z-{i#am-G5ks8Du2@nUjbFUlpSFTB5~6vUq>-bg7`^t z>hqHFa30@PJoWil&Y%DJy?k}*`_FRbxxiuBeaDZGv(96Z(?{mHmg31%M^2tA{UGb z%5!*jfBC*}Ir*=t{>RIy!+C)>k+aTL$*Dj4y;1SxzfDfv`UQCg2JsKbS$XIiFYGAm?-G!E)k<%NL~Y>&=!E|C*fmRr1$Uo^RyD=RP8P&WSH5C%&?rebtcj zeX)z>AEx!Rl&?(QS5EvuIq}cPm!>?=%ZXnqCw`Tj_+4`L^{1SlGc0*zc0IpJ>nSha zko-b9@t4Ypze)aW%F{zm{1`d$6Xe9dC1+pn%YRE>ccc7=}#}~KQCpbe1BTcJbAwKee<<);y25Q&s{vbKDkq#f^y<( z%89QnC;oCd`?^NXpKp1W{P47%!SYhcUyu_&TTc9PdGVCz3pw%oo$^COx{dhEqO0F@%`n*kCh*v@=TNyzgSNEN;&aA$=TO$^4jU^<{Xu&8?T$Z zzbKLX;6FY1x=Eh0a`M!c*G&2A%Za}#@ayD_Ql49rvre9$2P>ZZ!{y|eDsPbT&yo|r zEb!0etx}%#$yq1Q&%Y_2{QKqPDOECio-axHE69nj7x?+|Yg3-4$yq1Qnb#?v{9Wbb zxnF)|%0E(0{0o84mhrJ&oIJnEJEe8*li!-WWU1`>=Ttaw2oC&J zUVdtYe>taG;HSvjRm{Yn9r%Uv>r#Bnz^{@oPw|}szg4~`#rF+-pge!2%=$+J{;0fg ziXR{N6nWbe|BgH-)p?1W`hOnyT6u@G->re~lvDq|1J74F*S`fh_ zj{Wyv&p9se>T>FTX5i<_ssBZRUnZyix5%k~FFExe82AHn>hpNu&&YpB{hAi|969w_ z82E>B>hoFPYvj~tkDU7C9DQ&S{{PQymap*dFLMe9UR>Tg#a9TtihNY6&*_1mE&nLR zHwnCjoPM4Bdu=e#ryyt$nEcawB5Gw1KgndfzK@^6u^O8Ivu=ecED`hM^qis$_PBj@WD zJSH;_&U1Kj=7e)pQcnGk4f33+c~qcfOUqgR@p9IGlAQI_3;cXJ>%1)RwsO|r zTh95tM^64>$vwB@6;GZia_)gSfxj;2>wYdL|62K`bkA%Le7BtZMapIOk^Cj(#MhD& zUq{Y!5)Vc<>W)c-0u^}kL|{cjEY z4mtH78u%zV^`9L03_0~*Dd)VbmQ(+Ya_awsocjMB_}_BsU!X$vJm5#jsed^+^*>%t z{c8nYM^62l1l~eU{W}JJlbrewljo%8nTO@PPCXs?b8=q4<_7+ToY& zNzUuqj==wr^Bh&8V)i`LPxUD)=Y3q2z-!8R4m>CDhH~D=wFvx5IrZ->=lQCe{L*xP z_7D6%Iq%Cx1wKYjJztem&js>w6?6XmYiZ!Ca$)&-9 z{J*&m{C!h}e}9=%NzOc+6!;l(=HY_CFOf43tpjf_XTP_|*>5j7^DsE@;d18T@xY&v zQ_nZ$)bl<0ovF?%0{>FpFU9{Pr_R60r=Fr(cug)N{I={PX10XQ7<@YvknLD5oz!2mZU9eib+_ zyT7dG2s!<#E+3ud>NGk1Y7qEEa{6_7;Md5hLsvQdx?O%!nzw=S^OHXyrw&u(?02U8 z=~Ra$a^gRg6aSN(_}}F0H&^BCezD&Ia`sz7&VI|v*>4>=>p4&Uc-rsP@;S+`m$UwE z$^E{#r{dXHKRNpv666`7c=r3Koc)du^1Q5g_VuQ`bh`JJ1pcXuHeOeQcz7*4a$XI@<<$+AE&*cb2pM9zmWVif3OB z$=jwrj+I}Re4?B>yeMbCugFWJduEZGeJz$>oZ>$Ve2tts{4Hm{`A*252j;eT;K#_B z+YDNFx>v>R4{>S9xpDicIsN@I z@O5(5lerZ9zHxEfshLIsH8`@Kfc~;XFD0Z6Yt9=DD++^>>r!OXqHwocM?3 zSEl%<<*es9IqO*@C;wtO`&}g`|2J~-?~#)~r)qW|xqk}D$zM#)eR7h#YO2E-a@OBU zPW;vKMk&utf%lM;zkhPSE>h z;QLnM%gBkZEw7#O*Oya=cJi}Rd?$IsAw0vPW*B? z@!RA_r#!pl#Fwm|U1#FU%ZaZmXI~BEyqB=0A`KKYQqAClje z;$M^xNdAia-sFn{Uo0P;;=h+qNdB{Ya`Ha|&vjCEzhbyicSwGL{QBh00&gw9Eyeee4@ll$J|g+hz(>i)rub(9 ze_lQ@#plbkKZkoJ{W7O$`hN~q``~j0e^p5T&p|&F{6GIoe6wWv)BoZv(yyKW%H-*{ zWBvDf-645}^uOe}G5xxVd{O#!P5Ha&*R|!R=gB~QdGq9r<-O8|I>^~?7diXwF26ec zx{tg=`t<-g`yDDLZj`)2YU~(!?bNgh@(#(T%7-SOCBG=uVZOXs@|E`V>(z4VvtCZU zw#xgaU+pvn$?3}kIenQbACU6Tl2eEIa_X>1P8}A@ndg;q z=6SW8dEO}>oYuKVJ|Q`m;K6@<@II_?Nai2pPnY9=&iu&vx~1f^()p?&KPR1|DsuW> zU(Wg)%ZH@(H0)()k)Ar!TYQtbe|I zYFhsy`Sj$A<#Up+my>6!oIE?_(?!mD2FR(~Q2C-%&rx#LIY!PpC&*dnR5|y| zEIIQ$U(P(Ql)szSxmte8!Ga(7YrXu;Y`PX5Mn@^_Ha$1ZaE*j-K^ z`^Y)(1LU0dp>odqC^_eSjGXg6OU~DwFX!tnlJj*J%lW!1<$T@M@|V**td}oLzE%EV z@||*C@At^*d(NSmi-LJ8pYE&ta{69DPJOD#sZULL*R)Pv2l%=@k~dd8^=u=jo*m@W zvx}Us+g;Ar?IXV@t!IFIP;#CVS^wDNqZCj5$H=Mw1UdDeDyRO7KXTKHX?6-=X{nnJT-`euKQoriUS$|_W>u)Y+ z{cYr|zq_3LedOdHASeG&Ir%5Z>El#6eViqykMrf+KPv-YEnk@Gxn9n_v{imWdVjc6 zUMu+?d7b1r1+wp}0qK20emQk6Dld`pmXcHFnsVw;TRxBZk-wR|v7Guemw%Sx+sMC6 z-d)bu?IY*w4vn?NC^=tujC@~O&jk5D$*0Oorhd(m)35n*`n5<-zZT2s*Lpei z*(#?#JLNml`uE7$@4w$bI52Vt!wznV{pLUTjfDe$;q14loc)%Pv)>AG_FF~He(THG zZ(}+8Z7yfOZRC7D*g?+vyU1C8cRB0tBWL}i0<}^P3gYvBJY)afSfuEl~+&e93^j+e2o06ikrbGk%BT@v2#QWr zkboVHGIcVoVuY#VIXBPu_U1cx|1vXolYDZ{^Lw7>_d6%Kxw(6Da{6DC)1Q)@{*>j^ zTai<5RZhJ%IrY}%)Z36#Z&OaaEjjge<<#4gQ*U2Ry#x8pF<(PD`H$q}KbDjKL{9#5 zIq?^A;xFaIU&)D|T)4Y_n8%!)dCbe1$AX;mPg&lN^FT%ZOW{@d`@(B-UI*9ZAByc8 z@@hQaH|4ePmi$C`TYf6MBfmTP+m*9!dh+8>-S&Mbr#~Y({Ta)DJ?fpv>CaS7e`fM& z#F@+I7j5%g$d~!8FXg$XY<(p!hp*+Yj6Q7S*N5kyyp6}}F8WiD)1RVz9CelC_lB3{ z)LW515`C!3`G84HenIr7E~nmxoO;`G^6ALQrz`-nf6)6a#R zb+eQ|9Q|L(zY)Hc)6b2Ze&*x2XT6b6K~6qJIr)_2*z*o}BeOls^#jK9VQ#ygZikd^WMi{7&V|xIdF~9+=CojN@w|XI|EF z^54jLzbuL4nDz7ZsF(5ahr)~6o;W2rapRJ8rKB7Rj)KWlQH*X#0!<9VI=WZZ9r zH?=+eY{}_oS57`XIr;SE>(xwVd_5 zk>}!mKGrYuLY@Wr1#x^8<@xZE{ORFUIdN)o;?(8DX~_3q&&#LrI=m%chqvX-M@Rk- z(VxDY{0H*KN4-P&h2bMP^^WD#JCR=+aprQyUC0@CDJRZK{_KdqmebFToPH)3@4h~# zpE)`GEXs*rk`uoyCw@gv{JQ+PQCCC$yzr*{NO()mdh5#h{;?9t%8PLxp2^$cbNK^tTrA}O5x$nwpN*XUBv0F2KW~XVbMkkD z=jA^gUXb_0i}Lq|m*gJ_FU#pqMNWUJa{5z~)1RiCdRubpZOf^*BmeoxzbhyIo}B#q za`GR@$$u;-{zU$|SU*!a@n>@4FXbFBD>;2z%jw%jPT%rR-(7F4lY*ReQk1h!N^*|h zvYg|$BIo$6$~k^(a*p4ooN-%n#%;?Pwj&qKl<|P!w2%$g%9PN=SOnZ z)mYAXej;aG&E@oGA*Vk}`G3Z7w32@-Jh^0d{m{>xoPOrz^s^vm+@hRuOY&Uwvn+p7 zctw6?cvVjSYjXNum(%}-oc_1v^rs`IKV3QX_T<#tms9URPQ61p^^WA!JC;-LL{7bP zIrT2&)Vq{Z?@Iodn6I^*{5Nv)PvY;t@p_*8b8_-8%86f+6Td7cenn3Fx}14z$eG8c zoOx`?IsbIe;XOI$rM{f=5`UMNzI`V8Kh*Yr5p{+953VfXw-oPwNw7UlGlzk^3V8MmzM8Mh*TXXI0rzbm{ZzbCvd zr~eH({cpK)3dcO<9Yv7CA*a_XJRsdpx)-ld#+S90oI z%c*xGe@Dz$a_R1RBmbP7{PS}1FUZNiEGK?NPW-Bz_%%84n{wu{C1)Pna^|rk=ls(@ zhY#eOmxglAOC$Nq;`0P!`K!Yx^4Ek<<@|heCg=P5x%^G>KEguI&qLR8`mmAT&-(fH z-SzWOcuxL5;YB%dN^<&HmebFQoN=pi#;wU87yYcupAg=VUlHDv)Bl#7{J^^WD#JCRfGR8GA!IrYxv)Vq*V?^;g18#(nRm+h`M>dnc|kNL{W z$-f{c|Dv4yOLFqB%86f-6TdDeenU?Dww!tF$eG8koO$fYIsXjL;UhWcrLmmz(nLOr z{!iuihR@{ph0oT7N^SrQ<=iKkcZav+?+I_q>3>H~|GRSf-;>k-p`8AVRrjHH+kmndZXT)oO<(e>Mh7SF<(VF`IqG6UzU@9MNa;8Iq@5E z;y2~QZ^?<@l{1e$IrG?;Gmir~=by3s?l=!jv?8Up2WJ@$V=f#argQ3Be7jh{)zCSocv4jPe%S_`KQ7w z^83T$xOnJy+#ljCrrg z*Q_@=$8|%V#Os5mydK9x`@hdfKZ|nmDapyF zEGM6eoP4Ts@~O$mrzxjzEjjD6Eho>8oIJa7^6bf3&wV-Tc_3#!kL3@?yierU#_Q^- zyc4f)XL5cXFqiXuzmUHxo{!dY^4ZA$JMv7f++8OZM4tS8GuG7;!;9LUI3+o8%5vgV ziIq`dP;t%DQMO`EL<>6!bmEjXP>t}ur zU&vn(ahCFG_)30Vc=DXx^+24QoH%(oaSC$2KP}2R?n?G}9x2OtUaQDCPOEZWhu7qP z9mh*kPQ5KT^|s}&jlOl{H-vZP)Z3F6J^-ksFGn13gTuwd< zIr%K*cRxlYdiA{w+EAcjd(I$v+>jbNX`P59Guj%Q;>qa{4xv)3=$NzAfdfla-uxvX-+> zHgb;NCa65zY%9Cr~fNCX%&;^==~ehu%>%fCOoC}+M(a^|ZnXTBhOrz$6YO-}r}ocIkn@!N8a$Bvx7b>;M} zC#P>iIqPsFXC02^tiy?%^Z8uPd3zz}=Y2~#Kkr+~|0U*kE$8<=Hu8sK`{en%>xbV1 z$;p%We1BeEj@KatIqw4$<#)yF*pi(00jhHPQ@TUBC!&~xChqvYT zg?HqC7v7cApProl^yTztAg4cLIrUED)H{_^?@T_4{O5A=U&zUSDJTDxocxm)?5;QB z=j1oUy2{ImUyu{OEa!Ns$mv^EPTy*B`qq@QPFix-Nn6f3>Bu>LyK;`-o}A;iFX#9j z$T@z;a>kv=8FwmY+?kwl=W@nf$WO%iWGTNZd?o+M@U@)J<8I{3czv6^aCg1&bJCpr z!}0!DQBHqKa{5!2KPU36$V=gMIsI(N>1R_;KU;FfZOa+ABfmEC>B=kNJ$XI6FQ@+l zIsG5X>HkPh|EF^LGn3Pwxtw|za_U{msdpu(-nE>1H*)GtUUZK2Ca2z_oO(-g>MhHu zw<5nf=Bp|v|C*fq>vHC+At(Q~ocJ9%@w;;3_vFMM%9+QJoOv9}na7Eo^UwSozL0ZX zTFN;ut>j;i{;%c#6~2)_5}q8{T|eD8kLBd_IWK=OUSAdDe7>tJrwmgBp`8AYkFk^&`I`@@&XU;cYo_I&%8imDA6joN@bd z#vRD7jeLgkO87`#4HH*(HP$u+y{hx1ZS{%_I$y!?^yg8Z@Z`{6}-G1gm2PM^zi zevV&})91RJJ~ZT~SU+<9e}|U*w`2RRoH#u>{p`!>=RnT5LpkG)bZrtpRQ_VA_rO!!KE zXL#~m$=>C>^xyN-FUHNu88Wt*lmAdo{v$d0Pvyj)$v+wEd@d*cLQed(oO#^H znaAX%+j(ZaF^@Sp$8TQF@mr8{{Fdd!smO^_l@q5Xe^T_PF25+eA%9wUQ_k~mOU}Hs z<=4geq$6iu`f}hVs7*AIZNMK9v(^Ca0fsIsIJ78FwjX+?D*Rk zPQ86O^$z6JJCsxJNdD!hcPuCWiJbhWa`K)lRjN6mPud^q8 zIdKN^+amr@{?71`{8z%q^4|!b$Uhi9my_p0epPJ0loMwq|D)JG`JU~K?EI6>7jbfO z<|QvDPC@=p5x*>F9xL+eWBaO{I5qhWBaz8I34*VSwqrGUrwBXoOL*q z6K5p9CgM-!tgD&)%r>25E+@`H{@RGYmJ??q|A~m7yli`e^+24Q{Pu`nloO{U=eQ`# ziBpmPOvJCtIgT1~j-#fWI4$`-5x;v5@5%3v?fde-4IjwA6h4*{XCnXe*nTP}&P@K# zvHe{BVE96Q{`uQ^UCSAFBd4z9<-6;FI63*{5x*!W&yt)x%W~pW|hj`ic5ps_%jt83A2&A{OZL_cTQ@0O1 zA=Xi5+4f)Ca`MIlo;{Wnw-5Zt0nfJY#{KC5&$e&I_Y17+%(5?jkC(rTi}U-sPs<>^ z;M0gxmM_D9K%T^U;O{FErx^ZI+P)e-lsCgaBkzWP>45L7lOt!|e8<^iHzr5UoISn0 zZgK1M@e{|6oITz-n;g0M*x6&rksHsPNsiol(@jT@cWye~K6^CX{>1U*$mvtr!&!i< zk6fMJWw%t0oj!YKJLtBPx1BwD?DXklZw|Qm_>Fhodi1uFx134`*t>n~#v4x`zia2= z6Q^$4xqs~Rv6HtRPxIItX1m)VbmF#?X=dAp)5O?3%kxz?r2F1-0@`Kk#9YH zDlP2)e|c%T4tec&Fj_V4#9^}cYo^)p`j~L8i|PGrDL*cpt9snve1mg5a{sdQMi#3I z#P#%twkMp?MO(N$y~>sl`4nQi?AO<_@wZzCrdJQex_eZ%x8ktd=NG28vY6hV7kn-4 zP~6{hdm}qPWt+tEe)Q3+wl_!GUw4!1V*hI%-E;5OC@UXBo_y3*8i+e?*HwnJvsey|M>hr+ozlCUAWKn@l+2R zzkSCxBJ-S$|HSl*{qP@8jb5ZT_b>dO!F!*z`{?eyB)KcyK{h^`Pe_J{~75Q`%{0GkA~O_-LGx?Ka3r+kJDXy o$o@}A&F9W6K>77s?Qaj`jP@?BKRc!l+kgD5?ZDrw9dtMOKZdiF761SM literal 0 HcmV?d00001 diff --git a/build/temp.linux-x86_64-3.7/reccdi/src_cpp/manager.o b/build/temp.linux-x86_64-3.7/reccdi/src_cpp/manager.o new file mode 100644 index 0000000000000000000000000000000000000000..3cc9e3b40cd48e9a85c7609b98dbbcfe877dfa00 GIT binary patch literal 481616 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ⅈ^7Z$Muf+M)ui~61=fycsZi#cAJQU|VNi-w&ICGw)5$8N9 z81U-ioF{F?x!*gAcf>f17H58}cACo`7lPD^I?)W=flV1 zoQDg=IsQw;b652J-zLuS-zDB)x6hvy=lEO_--Xv1JQU~tiu;kT$Ne%Xj{iQbI3Mq1 z62Ds2=ZlE*@lFZxYM382#rb(Mjm7zR=M8Z_-svO$8Lm?e6i>O?_wz0B&ZE7L73Y4O zCeHaYPn`2-nK}`QhT6&u@!&>g)6K#W_E}5Pxx@&wnS*^<;9dXXXSHwB~t;DC{aY|otj{jishd5rQh;w{C z65qPZkIOP~?yuG2g)kqsi*r5MD;^i?`6+R(Cl|!8x*Zg`JrL*ntmDu2Kj(hrdXiC` z>q&0$BT4-47Z5*<>!hW``Fun*aX#<=k~p8IcvYP9q^mgR+dy$XPcbRrOT_s+#VYZ_ zi~aWQ7U%O62gT3!_xa1>eBR-fc=<#=p9qf&xnG!1EwGWX=ZN>8#5bSuepK9RRMctl_cQpP zToiu`kH>F_SH?K}DSmjHuah9gf8~7GkLMFpi7%+>Q9)tORLVU;;U+0SWNj&bmCqBP|&&QkVzjFVk!aPVRz7z8>t9XG9{`a31 zul%IxmPm%w@2ZSf}?`}~tQzPW!#;PG2B z@sCRSd`9sa_&%?ADcpZl7oUyymDCo0?qy%UiTG9iT?X;tczyB*;>U2_zD#_77GM8o z@p${a|0ezh?tlLhPl*0x`qcj($L)H4|9vU(N6$X-_y>)|vo-Pg9^!46dmkhI8s^Vr z@tZe%ey#X+Jl}Lo{4B=jq4e(62a0{@l$&$i5e|GfAS^#2v{6If5)6i?gM*O?*yGagrd zDc%FmyX+BPwB2Jz*Ke4WPP&kgn7R=hjrXE*V~FZldG@o8zj zj}d>fl=sQvrSE#5E#3_Cd69VB>OQ|leB@8ww}?;0`v~@mAAiQ@kBSe(`Rz^duhRQ` zvd{cij`Pv4{r82%3w`Iku6Uadyblm>jQRYb_?EwYezo`x_&)KaKl}U*@iWLL``rJW z{lAUJQ$@r}PxQHZ;yvE;-d;R)T)$q87O#TmgXW8uJnQRh6EBVVc}{!>&JX_TB(577k>@weB*$36ED%i_oq+5$B94lm(PC~@D<|OC;R+v z@%->B;;BQ4*z{y@f<0m=V_%Q{)d`1}~jN2AVU@j3XM^V#Bi z^7}fA#Czaz;u`VzI6vPap5TtJvsWCa15v+y>?C1F{@y&;Q{-O93tV@Y- zoF$ILQbqnNg!6|q;ztMgI@!gijq+Yd{0^?SmJv^b{a#JH7LKEa;?=PZw-O(A!nfO5 zd;^{b=__8Uq|c8Kukw}m3F50UUZ0Dv`_1Rqi^u1>A>In}aG&^Etb0er_gwS!&x@x% z=l!O5aoivLEuMXs&nH;ozjFUB!SS0)e8^~@%O-y3S?^uM)5Y`NPrNVA>qdy*sO$3+ z#qZ*ERx`v0B=q@D#9QOK&;s!!_+Xx!%jWAuE%jeHAKF*+-zN|+ zi2JFh#haA#`848NF%L6|SNPrMbBh0!)2~+r#lOb=bs6zHb$y-p#E;_o$#n6%bA3KW zy!AEj3&mq_KCo1L?rxu7C*JLQ@7u*^;q?If#g{Di`6J@nI(t7MJ_qNA=fzjH@%gLb zDQ|nfEuL(f_Xpy|ll$?HgY}8?A#Q7*e_Fge9?xbF=jX0JC!P+E(<_LxPFHb$KKVfL zf6w^-%oRV>-FqgCEBnvSrOzRr%x`W~1#w>QttS2`yZ?n&;=KOcPW-!czCXjoS^sVE zs?B}=Q*l1Out@y$(?0)$cz;~K+9Q6XzR#Z%Prl0gW%0{c-x96xKj(NpdE9@WMtpm; z_Z;GNfAOAIye7`CiixvM(}4FDZ?ehPpCHb0m?GY`u+J|MXZ}m^MF05wE^*GQ{o-Yj zzb4N7ZSmC)eEsAr{a21N^J&GGUH7?S;>?#3f3LmIHxXyPrT7*69khYs%nuWPe!s6j zOPu+6;){^qB+mTz;yaN)BhLIq@d+58c(`7oTJ5dvA!d{vGkL=ugVk{`c4}^XbIDK)!@H^X0@7qd!f>nQtxL1Np(?%#RSCi2Ntw z%+D9k+R|_57IEgci~o!I=fwFu?`84r`24g4YhsTl^GU_y;CYGy;><^j7sKaV)fH#H zk@(GzeLs4NGv81A)s#N}p*Zt1)sy=3mao(g`#Rr>*F*kSan?U6-W~aW#F>wS$J3m* zqwsp&tm4e)7XK9a%Hqt|5O0C;?;y^67x4+`|GVPMPY_>*{9p@l(I~Tq$wpUl3p3*5{jxGv7wM6XwBCapp&f z^YsBS;><4;&zjlyXRA2#JH=bQ=JOZCnZK%ze4=&!_jEjyiTA+xJS)!n&xub&zP>o~ zjm2L;f8G>let`HF$WIk#{$uf7$gdM;exrD1TzC3SocYt@``h_(d?Y^fsP`w=#~$Y& zd;9ORi!+~B{PmtbUsas>TH-yD_EgUUnl1hS_jg~5Grw6p1McsRi*tQAD_$AvL)5pi$CLT^ z;{1E|ImNlZ@{1qEe5fwYd>!!z$oCK*P{^N0jTe8Rr1u5lotOCSSuB1F>(y3qzTa=B z_}M65|BQIXWtg|(9e(p3wITL+roi=|_~JD$`&<@r=5vXU8SC?v#HZ%<{-XGI!@a*M zezTn4t`6d9EBpLV@wf2=*eLNS#eJQR#h=0FZp{_Xm&@nZi+`KSx4TKa4zAB15x<3T zJ1*Wct*>)OylhqPe~a(@(R-?m{wvp$zJL4g(~D=w>Ak4<<;C7hiT{z!Z*P6^g{OVK zvG}Oe-n)tSitp?67O#r&e_y;LK1XY^`2Eqo{vz=w-}Js*{M|j?w~M#=(EDETr8s`i zi_gNiUlHeZ(zv*e$nn3?#@A0Ier%%m?Bbj8dZfJKE6{EQ@dS7trR8mj~o%t(ZJ`gh(9Xt{g(I{d>?PK|2fC` zxi|dxNyPWX@t$A&&Q$Mp#9Pew-dVgW=2Z{z+Bl9Ti!(o6d;-q9Hi=)tae7Al$>*XT z-~JU}7RMh)@wWJ%a~z^)`S0_JGhayj*gc=GFV6YeSo}1ePk&RK`2phD@H(-n;`4L( zc0U$RigD)a?6_UbZML%x7l33%&(zZLLL1O8*c9|b(? z*8jWz6$9R1d`Kq$`_shp<9uM5IL|lMhz~5~>+BWh`Nkpfd6C@9YSbK(<T=|FX#EFN^bhH9w4TAb$_9mEgj_W7aWJl_~CejDclGsM&X;_J*2-`U1HU+>KEVScORXIAt1Q{v43 zE`GJ1&!^h%ziRyq;y;x3xw_(mk9+SWUJu(lL7e9aQ^j*l_jT5aGrv)M7S8{F7th_? z*GYo&L~hrgKY7n5&hvyK;@wjCd_!^On~I;o_zx22dBO<4)=ley!6X$ut zPVsoD{Q7@IocTY*`?c}gn*qlS$1Ud(@1?|Fxa_^Dc%7fU_Z8om-urlQUeB2#p6M%} zUn$P~I`OOj`21mU=8uVIF5>g|#hH)V<$um`I6TyUpIMywT;l(tKb6FpuOXiMp|9UT zocXTerICM6ocT%OHSoHWrQ*!57XLN7@6Q2o=6?}SiT>OXXZ|1Y+Q_Hh9ebRa&nDg) z`4_~QuPS~M`L^QBcM^|_^O-T?%#Ra4g7I7=&io4TQRvTJab9mcB)%B;*SEx(zbBpt z=bvftxIb}ZSly)=<}-;8tl-DJj5zZZ#nYzr`Bvi0w-+yi{)`Z3p4TVXPyRiy1%dn$ z@i$R_r#S2H7k`NJv1{VY|0&MvN-6gG?PfojPbXdn{V5^N{PW`VV|?9a;>@=ZKaBcA z#hD*1-fFn7KUbXj&&7Kp|GhZ#d&Kk4_4O}_Gk;UO7V0O({Wiyw*TYkbr^DmJqTY{??VT;o{Cx3O@%V9zIP*KiUwpy$|GYT!SH(X- z{Y3kGzjQp4i|@kt6cT6s;^N1VZz#@uQ}N>He_wIthlqDXex^9{G2*Fk{<%S%`EBAu z%J^|PEzbN!@n6v&zVB1V^Qrx@$9WL)`Ndg3T6{e6b;bF7&CB9(`1!V8ocYb-vorYoadGC)iJwM)p1|{R98cyGiu3aybBietc?* zGv7e`bM&X1IP-nPzd?SoIP){a=VN_XBhLJ{;)BuuU&Wa}B|ZW9hvLjXc`)|;ypMc# zapv=hKZWbV)x?>vBfc8-JBu^lQ+zw}&c$IQKe^{LPW8zEd z`TTux=A(X!J)X-m`tLJ~GoMR*TtlC)B+h&d@j1wM5NE!t_)=`|d*aMb63>kMQgP;2 zi$^1WK%Dts#9v4LjyUuGh;K$d{h`?7%zQTSpOAk+ocXHaPd)GJwiRc-lXzC-$A~jO zPW%G;vq+rz72@}i-z(1dH5?K@hxhed6~Bqs72FnI*UE2ilEbmbbI>{eeM<3_H@z1S z=kriS#e3m;PBn2p4^>C}v$4K@dvQK5)G@%-k;;^jAD9K`wfbiMdE z%>U!!$#9+Xl6cN1ef>M)3m$lX0@sZ=KCF{jeEle&&o9pUCB#|3k~r(UCLTS}*Y76I z{7~`BulfAD;_Uy2;&+z&{2cL%wY@JE=kqn|#F_sw;P(Qa>KES*$C-7CiSv1`GUCPf zeqnLuUlC8g#JAT&yvN_(`--G7mdfzVoNm}oF#fx|KenGr!H}6-)^X2uP_&0ow zd~v%l29F=Jito$lbJ5~C-}7EW{K{GH^~5jY`qC@n(+l~0EAa(bw_g`$zN>hfi@wef z@dX*ZPZ3Yq+x2#h;;Df}g;&c2y5^qo+ z+a+EO{rFD&=q;b$p^p7~K>X}fpFbkr7=A(gjm18HRs6G*ew^=$=fLrj__+T)j?d`q zKA&8?E#^rf@n(1Z?-v)}63=@bah?w}5+97$(Y-Ft^Mr2V({R7=k@)xbeY<>L2)FB1 z?3d$`Ka|bqFN?EI{uBP^tn=9h|9x@s=ds?_67P?B-d=peGrrDS;vanG{X_B14ZN=w zU%cD<9`VWe`%ve^`M&WzC;jhny9T)biQI08Kg2rum-vG2J|E|l|H?Y4*7@(B7SBA# zdj|2!3%&Of{~V8ZMu<|}Ci&b+ygw_x9P2=7@qU>1RmDqT zooOKc7G5XQQhY>J-)<-Ihikp}5l`90`*86qxE~oOo^_Vb&k#>F(EEJxwDJ7<{Dt_r z%s#(C{F#>Cw~GHX-TO)L>zBNr7oUvrjDOz$ocrtDYX1AD#9vSDJ*)UDxIfA*UUZ4i zmln@C#Cv)13*)^v7N4Hjk53End3gUqck#F>e7=wPcI?M@#K-6J`SIerus+0ympS13 zxlsJ6eBRfK=g0ljCh^`lt`CYIf5F%JMf}zn?^nd*WW0<2qP5@lXEt`Fi4ews?P8JZ7Hvj^f|pdHinTT|f2t;o@b6dVgEI zVI1!>#k*tv&k^5%=Tp8E?}ztUtP@{~*A?#;?}zs(91u@Y%lGG;IM@GFzx$tae@(!6 z78WnL%IAuUZ`hIkU(U)K{~gxAl%F1~SvuhUh$UJCD{#cQ|qK2|(G*0*`$IWqg> z?sM_(r+l5w;=d2~{)6~%%%2nDn=1JHIq_yQz5gTr89tXO4jvD2{7>!i`3&OmT_AGH zCf=~2_tN485_vB#zMzx$CgQi_dv7Uz?vD39;(OlkK1lps9Csgxcf#Y28R9ed`a0Le zH%EK_TRi4f?+I`}!*RRX&3h{Gl2{M3iZ^@P=L?FbndZHec(HfAR}o){?X54q3g_o7 z#Ph`UbvlYK$N5Qb@sBWXhlwYwVk`={dk9JFu5?{4(@E#jx~ zc=lKE>6rH?#kXKS-xYuPGhhFq_#2pqX|DO7bAL6$@sd%z{2rexCVuRc_cG$k@qI(_ zE4O_974cqJuX>1&#rn`!d^+wQ$BVC7=Iehbp7xRVW#VQ2^}b&G1lGxI;zQ>9{66uo z@i_CS_^vN~{txkvMZG@~XFm0H|8wq_wK@FvMZ`zrezt^oxA8vTQJnd1;=ki@<$Q7G zzYy;|*w?=z&ipO$zjph4`WyZ$x9b<2Uu6})h~ub~cw6LO5WkA?Y%I?6=N958alG^v zFWk-dZ=m>V1-wrdpPt&^pH3I=mec2#ix!N{$$_;`GdL=*99nS8#b_|u-FdWtW^ zanetGcqji0W5q9}_4{R#I>vdC__^x7&T{dAE4*(NzliI8JH-nx@cFaiBU5<4E8f4L z_lM$#v0qYPz2yFyQ`zUA5g&|!ixw~3%jZjq|D4BreeoAddT%Vg9>;HY@kx7qzK{5H zoTrT!XZ;Vw@me?^J1EZj$HY?>^>w2D@?W(-iN)jN_48T9t71IM zi?iKM0skQ2%LBeA;D^OIKG($ApTESJPj&bI9*5|FzZ&rV0iPJ~jRF5T;MW5lALsA7 zA9Du0V!#`VAHe5wPZsC=StHJIJ{a&P?*HH8oLHRuC9gQ^M~gFGSDg920bd;O)#9xG zqj&+_KVA#?UGYgt{r1Pj<2LTEGfli_5NG{D;;d6foON1>|8E=u{+2kmcbYisYz+8~ zfZr2m{iJ`#o)6sKX9HeRoa0bgoa4|;ob|hkv(5l<)|n;FaabMj4dUG1!{V%y^`F?| zK(7?=&H;Zv;Hv`ui+FiAAtSfD;lYU1xRn-XzJWON&Bd92Q=H>GQJmv8OPu4jNSx!gPMq`M zfH?d4n>hP68~d4Aoc$~y&VDu)XPwu?S*M3M>%1er;SE3k`TkM%llLPZ zNuKR46lc3%inHCF;%xVzINLoY&UP<~v)w<%*=|yN&K9?e?WPrHyZOc0Zb@;rTSc7h zb`s}tG&kUf0)92%cf@)Bn;6%nxV@Z*dBwS1#l^W@mBhJS4a9l8bQWj3Z;P|t55?JT zj5yofEzUZ>h_lXlan^Y#&iN4kNq@bEy`f=4;E+r+2XA8ojBXwEzbRNNc`pB{JMQYoc*~X&i>pJ=l+U^&-LUu zFDT>d=Md-lOhIv;&y)~ne=3W!KlR1gpEtxgZX*LeTb%dT3&qRe`T7;&z2^As-5_2O z*CWn|vp)|4o(8X@=y`-eE&jfcN?$MI*oDaF}tR&lo5Mx4jXhXG$4@YUix z&)Fn?t%W~+cZsJv?fr;2-|ulpoc&CM*Uxes%B1jhlEU5DLL5(z|E(l>)~O}V{x=h! zh3ko}q<(U=G1TOfnRZ7>K0AIkQ@j9tjj7|Fk6=Gf20Rg7C&h8#d`K(K`H)kb^Wi!1 zBzgS#){AhCXGQe0o#ffiF2>zB)Iq+NakpJ_pZ7l)Y~1CKB0s{o%Xi%3fAGF>m!Ipq z8TGOFWbFL8#$BBQ&-glvjk`M2;(A|c98>D?556((>I}m3N;|~)zJ`OwUHyBg|BG=~ zr|w&i%ST-lpO()1J#oH&A>mVg!@1vo#`VoS;(72sk!a(tKP{j1^-CIe{kes4u4vrm zs~dOuA^808HpX5480xG4k@AhMZ$E`+1 z?KSTDnKGXL!4dH^@x7l8)W2l%u6~S(FwhmhikjdC4UU{+l${togPwW3i{dK$nB)~3HW)bzY6vL6)%l>o(8Xj;P`*x z%SUB~bHDFLe+n3P{mGQX|3Y!`V^4Xn6{!D`$-C`k{a1~<`mEE-xXlj^)E^bdPc&}p zF9_6GYVx+-^~Pzh%3ka%hLOOe~?K>cwh@1hM*{|m|E>6fT4B|i!I zt;St{K1}Iajoc54CvkV?k=qgRmhjVXjx*bRD0$XTfY(!VKeA3rIP0`={}Z`oFnPDV zG3b9D>imNBe~9GQrj8Vg+};-d4L(ll+(n%) z#QR|!zBF}QKckV~WZd;LeHzzlR1{yg&T;OO*89mo{ohR;TmMhvu0HF;$AQUplKn{z z=YC}W(*^RmjNAHU19d8!yzOT_DVt{ z8@F|~8FzKQM*c^*j`PnZZ|j^jZu@gvoc+0P+}4SU&-3QIijT)liQw$dCz!W|#W%rg zNuB(t^Ku~HEs*ao`R%AbRr1yFxM_}fFZd#x%D$cM`t{Unu?%{;haC%(sK$N#Pg8)58B1&k0YO z&hJoeR}pwl)#;6V5%Dqb+Ts)8&BW)z z`--oEzc0QOK39AbZz;1|R%!XJs>gr~;)fjHmp!3&5#9=ymnRTM9T$=FD| zG3xXcZ-e|~xLb$aLjqp!ooU>iZ;ZhDJjb}p^LpxZMkum=k?z8#$Enr z{luMBe0=@^=fkcXZfhggb;Pg3)51B|yi+1yr@Ht_ z^uL~|@A}gd{b^y`ZP&9oeVq>CTXT6I9H>9aw7Gw>RLrU2mGatuxHH?axGU_GhYbTW5}OSEn)hvjEQiB*6UKC0-tW zLFx=ZotuGtB7DvekGuSN9uGrQDmdG%j`~FgXFBU%wUlXXm!Q@^2o2dVrvsv%?``s~{v^~NW8BuCD0LEIonI>X^D_o4jpzm~mTYYM{<+lecxgFmCH?4%FFU^0v-l_cZ|C_ zmy!P$uKO`T4!?hOKc+Tr`;$wY{V8DF_NTaUSEpp*$Ul)=SvdQ15cBp`aefZiV5!p# zb;bnpp9J!sOa5=P`-9}`6!HDsFFpW%RO&?G__`c z$p0?+im0DDmmg=2C;L+x&ikVd=zn?14@LhQh-bw-=_1banVI6PkY6SK8hnd5=lL1& z%$N`Ha>w4T67W3Y&EYl02f@3F&wx)8{~W$V{2TaA@gLzA#81QH;&p=DFIVB&#Q%bq z6Hkr(J3u@?e1dpU_TgP#y@4*%0Q9;!W_=>Hmbk2_vPK55?A`>`WD zqxfKWQSmYGn&K1TZN+E82a10RpDex@{+W1P92aZETf=u7#}t1&4nG@r<1ilibK;-C z9~gIa@;$B+xxSk(_P8xUK7;s1cuDac@T%g!!rO>nf%g;t8$M1vu3K0lw|U}8;OoRw z!G9Fb48I_r7yd}RC_F8mkmB)G4qjNi3cQl|7;INN@fhTX!QHp+x+1UZzGK|ouf2

    #$CI--djwZ*L$mo^LlS1abE9jC(i4=y~TOGca(VhQ@)=cit{?~QsZvB zl9crMwQ$boU6_ZPOx}&>evIcYf&8gJ{+{HIpng=r|MrWkpB%?Ua^tR_mC(-&;@9B0 z;Osx^KWp-?{v_0Y!MLseqWGy&kzb138j7>s7I1C1oykAmE^KdarCF&uZaHdGH&Z1k~-0NJ>fBve?0!EbKSVB zbE{0`pUCZ=c$%`_A4&bDsGs3kKYuv>r{K}zx6y8Cxck=iXEVHsulR#VIhRu0O0FW8BqeoiB~s{I`Mn+XDIh#%=uzfjZYs-nRR|xUG}C zQ0)D}@k|Hj_;Y)68@F}J1?p5WdE1``#%-N8;+gS2m)DKkIz5fMIu(&01m}F?c8xT7 zTW6wi+n+h&?9T$@w$5_nt`7fB-x@gkQxEg=sQ763Us7i|wkrxRq+uQA)5G2Vdfe^{ zk^hO@a!P(2>Q|Ed6BT^Ews;44W2rM4b$UzwJ>-XquYr$}I@3^RruY*0TvNx5b4B<{ z<8FI@Mg4EYU#;l3>-#|cy(aJK4@dngl3xM8E&0vxCyV&wh~qz?l5h8E@kj7<;`J;0 zd=5DGFWW6IdDgEX&N_{x&Tr^v3zK)-yC2@sxEoLQvzIvQ4-V8HW%90mHoO33s&QL? zj?@{B`-KgX?^MN)&vx-~@V!!J4(ePHzs3D%>bQQkK|iCSWADdZsGnGTZ&lx)Y;f)` z*3W11wtflYZX8(WMdLQ#Fi^i)Am72btv@(WXOzj?b|)IQbruBbEH!ys=WFA(&i+81 zUrgTCId9z7xg&lP`{i%rwobgFvG;GPYJNW^gX?~L#^i0CT*hsGii@*9WsTc9RgJqk zz0sdqaP}uX=4TJ_vheq%&NS4S8ptmT<`BByVxSbMT4!g0UU_w(gIzFQ#QU-DN_f2!nbqW&E5{_rJI=O*f` zHhDK6Vz6C%0{KIM{G~wtmgM)Nex_o6{5hWNPenNIzhZ1{|cV4WbEzw z4xYuhy*`}ZxVtX89r;q?`{32Y&%#@XUxD`${}cYM_#=3XctXtob>b=E`^7WCFN%K; z|4aO5_*13+8@Kp=348qSGsfNcJmu~*BDZ4VS>QFr3&UR(FA47}UI{)XKBI_$1n@_O<)hSCvtmW z+~s*a`N=YVJh}dts`)q`mDsq;^Llb>*ahGrVsrTmMx9~pAH^lk*6$6dC``;)W@1u;n`n>);Nu1Z8KQiw6xv8Ej z7P&t+?&|RR^9pfZf8H$4>(BeedHwm6IIln76zBElsIvdC|J>s2f001_ zQYP>EzaRB$8n^WuNu2@imm;?oChsVl`=!XOn{h{*nmp#H{^DohL#6&4)Sn@K6Ym#Z zCO!k>_LZscN;E)!4oUtey67rXfJIelw@BeM_#Lc`XdOr4kWc?Iy?nlr*Ye#LdIR4S?EtOIQ#QA z=515)BCc5E)<^1WLY=n)`RS6s)!f&aEBR8Wze(~lTKfD>@v``Uq@SeD^Qd!6@~x5o zTYN11iSn_JuS%%%jQACJRyg<9emAI*TM^@qmZ5$b@s_P0$D^tQ>en`T*JN_+m(G&E zf&TQ8JkK*n8h8CE-PX4|PQ2!8-lvIw1doApp0M3-CC~ali1+K@>mQIh8F2pgtI4}f zYJ=@PZ`}2t{k$R0e%=q%f1-llzuaFdP(PJ%TR$_L+glO$3*{t#?RCFh)x=YD^j=%) zv_qZF;?Wp~UZ##4hnwi!bd=;+s49c0UQ!Uug2S{wm|HKI?pM+~)TM>K_T@ z&l3!1#`e`({kPQ5^#CMIv|v@>q&^cFvh{W8$F ztuxBFs}sMo-;d+rx?NLE-qx9C-1g^7arS4Oaa-p*GJW-|p z_M@w_5_M9+S%>*&C0`nkQ%XvH1nR#m`8T@xaceDp5Z+1Zyp1|SaaU(>ugE`<+Y0ej@UNu)XQ;nld{J6o z=YsfjjN5fn-}Pq_`twv3zaP23)*+u7&ild5$Y(e1`k&xU-)=$iW$;RY`ZZ17^@sJF z7m>>fASZTPJ?i z*vBKsEv@(g?3YZ&ZJj*EU4Q;WJ{qp`q_oM~I@OHZ?P@H}{vS;g>U8QI`6qJg z0%w0tVct#>&w|elTOxJdN1d+%`F(->uaeJ$`gbLtsE_aG6V+nxms0Q~aQ43->g1Pv zOXQ1*kA;_!I?2)VUF;bJyf;ohPfu-Y=~4G@Sc|{Yh)`u1-btC!cZGpL*!ebK*nb z&j;$ak^CIwUzhwmjL!h^8}JXL&UdIYE0A9k$ZwMT1Jpk*`HQIkyLj4uk->=EZb_ZE zc)fSB7h{iq8RXN8cZ6q!bH5}+oucBY+|G&I>WK5YM1S!X$d5N}pZA$#++E+^iTqOW zqwuZ9-Se1ux;W~vaaZRg@@K`*!EcH4yf0lv(*ecpV%aW_8yAiqyM z3D&*y;;G<&i)VzVs1tj9a>MhB7lBt2F9m-^yb`>Jcy0JQ;*H^R#9xK46(0@%N&FZ1 zb@4Osf5fw4eNI_7_BcetbBlLGoqBNhxWg?C{QDiRi1T^yw&MJI4c*20_ZsGlGrv-t z`HkZI`wn}>`S%^pz};56dDQ^h`$+QafBbrWeBAcB^M|qhBL75gPZ@W22|ck+rZw(p zyZfccEsyxMsotZFyXaQbFE9R7f1j@bXaB!M{~MUR>rV{&^SW_Y{~y%pDV}G5uRln< zC49JXSD)we6X4pPX@UGAHg_nvWA zC)YqfZgJ}Sd7}ME4CmwYidfIH8@K%_7^qXsd>@Z|h$*ZtMRe z&iZj0{x=_Nou`buIu$Wb(!zCrWifeMr=W4$pK{{tPbK5FPHp3^PJ8sHA)Nhrh~s61 z_$K&!rjDzB3dd25aaW)B7heSGd};Ew&Nkz=&VH%GmV8UB4=G;yZ-2S^ zUm%}R{AYM>ILD_g>Qs^ZedOzk=N=qsBywvcbzVoE4&r?<&cnoq!DGZH!ncS|hyNx% z4}MGh3wVM?etfvSJg>+u{xteuPCPBVp*TN>yrcMN9RrW8C$p9qPX&J`+CL zxNUa=T-%)%$S*Q(+g&BjcGnxX?QS*h>YPD8_rkS5hfUtqIfZe%YTWkcuRxtgCU5H` zZ|qw9@AKt2o|)k6Ph!lITqf`8B*){j62@JBI1UxWxxF=|{&3W9EBSP9x!y&t=Zlwv z_Z5E?K3M9{LH()X3*n2zi@{f#`fht0V0$+jciTG>?d}j?2meLS3HhJ6b zUE{7@)=$tR_I_mjq{eNXXW-gy)Qytv^GY_2&iZe_`^r{#xU<{&sQJ-)r2~Ibz(^d4zd#8m{~6lF8dTe;K#^iT}#~ zJx`u8ZtJ8q?&{f(5*Bc2TYvZ>?h565xT#ki}_`-{GTIzvs~)|qJB z*7;cK@OWP>`D)m%jgnu2{vVTkC*&`PPl4Z*IxA7<>87#Ae=YLq#LvRBz&Xxep-!~; zHk^ml65j{!B7PD+PW*THLh(P~--xlFEWD9X#pX@Kr^Vr$q+^+TF%%2VTzi{sNo7gWITg2X8 z*2!ty9oO-P`*Fx`+^qvEu$~k%?#`cg9ryVcjJrCWhI@Yz&i*`+!Fy-P-$K53Ape2n zi;nPhW{I=Tyg;3elJAB(JH!{j4~k!h9}Cn!XYy{`PGQ{c7A z8mK?USx1ttuuL7zasj-!?>%z68%3YehYpqQ2(6CyZSv*|Bi86 z|6lP2qawc)xg~1l=Y!ktF3)yT!MVS^D9t+U>^t8)?k*(!B9V|#y>e3CJdUy9tWNxm2IN!s}R!f~4f&kc9$s(b5c zQQRL#2lBN8`6hwa7k*g$bNCbD#E63Bg zn{WHEo_}TB)p;v{AD8XoUzLvhFmgL++|~aF^-qged;4)b>I$6W_EJXgw@u#lCkp4` ziC_C~zqtA(-tqa=;;+K9h);#*GVbbEME&RB+Mlw4d|l(NKPOQC74g*X`hK=DZrkk$ z*LHgZ@*|DgcE^dc-4Bf0c4rxPby}gH3*p+IWhU?H#9-XMH*Wj0FHq-*$=f=YjN3YQ zq)v0plZPhn>g-2z@*5 z{R_rzottoN_g*0XWc%3rm+ht&XS-S8T0f7;+x|Rf+-_H8an`RBsQvS@1>-3R2Jl@Ak zelxafy5#>s|JO+VEb^PglZ}mZDstN?b)LxN{ddVfhx{$^*6_PhCqC*VdOh|yr$#?> zif4sa6)ytsAYKYSOuRCDs(3BuSQ_M3^DHJVNcBGw~gELx9Q^Pqx|;FGw$ktjruFaA`In5_c3X|0B99~Ewm)+Mbv`qBTW7s-TjzVJ^9AO~UXyoqdZIrkjJrAD3!AFRvo)Gz^$nAYN`^k1cG#q=J{jZGMI-B9z?v6nIka64YIdQgo zJy8EIlehhe^G59b&h1Jm&ia|)+W%Z8Z|fH|Zu?(Job_u5>NhfZTfdEQTfe6`>-RHm z>kK#U>XgDf84K6#{lMgHojJyBf0m20KWmKJI-88UIxWzj@8RsvH5@N@#FxV#nmVrj zDI7%$ny&qaQs_+I!- zsnZa3)=K^+@>|3+O^j?r*H}O93TjE3DPj-vFy`AAX#3#Ya!`=OkJ%6ii+|8>B z*e`XY&Mee4zfsK40cU7fqTBL75g%S}F^r^o;94*2bW z|845K<10D#SJLkPjc2@w=Rq5}#k0dp8h;YzzEn5v`svzmw|a1%?=?WXZA{*^TlsN1 zGEU+};O`lC?c%a%)J)^9T`WIQbKz_^2JNmgdDm_y)ZZ=sGW?iv*KRcYs&UtDZup;Y zw!0tg#_th(oN@XPl|{Ti>J%~V+N}YvVBEF)0{lfd+l|7!YG(3odzT^KOZ+4FNaL>E zHt-LOyLMlMe*|Z{(P(#x$-8!UAiqug8~9=4uH6Cf^Tu7f4dK_|Y_|>C{nzAOyT2m; zOwZWke+Zt>xNCP3ytHxGZfAH!INRkq^ODKCb}u0RhWH8iVB@ac&*ASIckT9ue+Xy0 zo3XtMOy0Ho5cv(_*Wf=IckOP5pD^y)9SXkyXS+Ai?md%t?WXm^8~Y4!*{JNs zUAw=aeo^DD-Kp?0aJHK*i~m7wlXvZwM7!<8^T7KUckSLp{n5rTx2nmz`uH}gr8qA8M|Csq+AWRxLyfz3&%(#R+3roW`=QCZcHc*S zvG^ePx5iz&9EV+|zPmrIwl4Bdms3S@HV6dw)@U96nd!W$`CB`+QsRVLy8BF8)DW-=D$ai8FhDSA1w=UuUX#iMPDZ z6R)$y`*QKBZlEH!Z^h5l^uANP@x50D(}VM?zh~$;_U^^V|}I9#9!Lzy{q``aa-f^be{jx3%F3^mfwH*U!Go6 z{5gDIN4z4w=Xo*f^StO)$kIJwOFfH&$c=sj`TPMdDqalZ z$@3c4p}#2k8pyvCaJ;PhfBoV9#bx9F&vBahKmP#r2TOhWC~@wux#ATck4jY3B5}@- zH38osUfLaek=xFI9}wsMIuY;-;$LEa{Soj7;%P8G@zF2$WB0%Gr^UG+GX^}TIFH{V z0WT%a{aZEQb;P+Jn+Cj%coiIv-2&cMobzF_c*V#Vx!X)}&W8m7Un-7=|557$zD1n# z;m3ggEYA6GCg7LFlVd*o74S#moDWGb?>K+xsl>~ne%65J73X{?9`NVIhogRtfHx3- z2l-Y3?;t)F`Cb7ZD9-saO}ygc*%SG^Tk#n9qJXay=X}@{@a^K94+jH&RGj_4C!QGV z2v2so-`Ss}7$^Dx{65zeI_F6a$#cIK5Fdc=ONnzoRuE_ZTZ-qyJZ>+}{<9tSll|uW zqO<=~qz>05o?kG35xEtT=Xu3C@#0voj)`;LpA+Z2zah^4-xbe3~-h=lItPcoT8X=e7awEY9_&QJ5DynJIDhC# z#W^3M#o3?I;#_~K2fUs**PmtqZ!6CAr)$9bh;#iJ8St^&0hrR(HD$e!leeu#bulrD(*IVX_bDk^`=X_Wl@NdPxLA%=nzE7Ozy~hK7 zUOX|*KW+y6o;c5IDG z;#_}@iSu|rCw>6yz`x?mCrBE5J}{p{ocRLcJRVDm^LQ*T&f}|=IFGNF#JRoQ#o3>J z;_UxqabDk>DbDlZ`2k-d&hz250pBFf@!2cR@i{Ec_3Bi>FN$+K{}Si=^GJLE&Sw%m z9ecm?aaIa(u2-1?o=cqb|G9vd73cnKEYAJaN_-RUk2(dsr#SCl1_ykUIQQ3Naqh2~ z;@n^J1HMF@`|E3Q?yv8}xxe;`bAKHc=l(hs@QdQSf4Lp-zr}g~lE}TNH*({;N>3rq z`R9XMbK6XMcK% zKZAA$h%-M+oca0U%x@MijQTsod7Y4dcbelv|4s5-e=do0{kbL1>w*6S{K*utk5jHc zDaE;NWDw{0mlo&tRut#?f4zV=5$F2cHsGDbIX?ZxIX=V0xxM4XxxG`xxgN#@{Bv=x zdtU{7qd3kP?{+}1;{J$p7?M>od>>IgpzjJ$2iR0y_QCY;<|2*P<;Cf@xfR_>f3;CAf z>`!}fu0L-Ee2_TTpD_U+FV6k-u{gK)Q*n;}N^y?=dU38l+XB8voa@igfS(cPI&&@H zcf`5Q#7!N0KG2hhbNxvhaQ;0y&MU4n&q|(NT%7Ang@C^(&h@8pz*~uP{pl2N{v96n zpX<+ClBd5d&h=+kH_l)|4W?5WBN3)=L4@3W*6u2 zSR~-3#Cbec4tOnb9*<4MISy^ac|3L(=keH2oX6vcfWIfs<8gYx=ZN!o{376Aiu1VJ z9Pl0DJRW}v_;2Do?k)xVmN<_`{@p(w7xX9bxw&*6k0}G5L7c}U|Lz~_&s;Hzc?Qc78U35{(QizigSBk66f|d7w7hN66f~v^L@EpJl+RO zo<2&P$NS`f&lKnJK0n|~#Cg2)@4~U4^zS6k<9%YPc6>lI%~l5it~7{CcfP@6uH$E=k*8vy(9LAdH($(I`dPd&K}gCEzbNF zaprf5Gk;#Z9In$|6X)|yN$~lC>}M6^Q;9QQMx6Od;>`2!53oL+e}8~p2knlKI&I?l z@qbTzGJHzFXNmLm0gD38zZb#&jKTBenyHI~cz}Ja$fBh`Z{dGe881~oYfd3(07q1U{6!7?X0~_ZF_gAWb zXB0n!{hK%7{CqpsuZHm{CwY1maqiy+0dFeKen$LF%!iu+zbDT55D#y7R!HQ;r`IUkw_{55gT2Y%iU`%mvLdCrG10Us~U`M}TnVSPG3?}yI$uvzMGKI{-b zjP>DAz>kUd#eBFJ@SEb??+*hWFSEZNX8*b0Qv^J{IOjv|fENK6$3bK=~O6$1XE_ZLkt)MvPLoxBZSPv@& zyry^z?oVG1cuR2}cW(szO>xfip#dKw&i(aaz&{q}{nx^PFB9ke*S7)RCeHCcDbDf# zU7W|`AL2ZY9*Cd7`VcRB)Z-iPAL&WOd43Wt&i<4Z=X|Ih@Ot7?Fn^i_ysh{t~#rZy#8R8tz7;(n`$iGPpdy>Y->iF1AE67b&QTp!*F_}k)KAEt*FB0%l;#|)w2fUUz=XukB zw-M)h-X-9@#d*9;7Ox)PkJn7``tYUVJdW0gKbgSS*(uI`9uQ}L?uxTN|BACe8S};7 zzqQfNoZ`&CD9(I+apt>-zlQp~#d$sIt$@ER&h=r6IM;_+;=CU9S-_WzbA8w#&g1%f zagP64ac=Jwah?y~5BL-LWA7KPpHBrmwK&Hohd9TlfH=3ev^cl7qBz&9+5vAQ&h@Ho zz&nd`z3LP2A>v$@#s>TYajsXh1HM3<>(#1&eW6^;D9-ijSisMTa~-%5@Vnxi zpJ@ujo>#oilUba{W4?e#i*vq}7w3GdF3#hzVZfV-bAEOd=ltv;&g~s9&h4El{u$P# z7;*OhbMYLB{5Y-(_&4HtkUt^L{#+2}`tWDK{}Jc%)wI$B1)%SQhZF#JN6f3HVNN zt`A27eo~z4!{vbgAP@lIQD9*dn>3S6q}L+N zq-z6Z7G4{$@q3PEy}f*157*=I`{T#sp@;Kyo&DK+?X~yka{xbl2G@H0&hh`kwI2U; zeE;sjdeC}o?fBtvt;eGs?*`X;90dQ}*2Q4B-v377iZ6gGela|BKw_NB;fk+>E4~V@ z`0wHRIfS3!`uhJNX~8^Cw(G$5aK&f96`u)Le4gXu;WO;Gh47LC6a6cK|7!lAvqTMqb?+@>0`MJdLA@KVwKF{&-@XZ!~qvNySbrwJ0@kMauf4SpN!Z+G{ zt#N!UT=TUBuKD^3euU+Jr{lZfBU&WpYyX~!N7aM;Ah_nMz2is1&$oPbbG#S)6^lR1 z@$=xC-zyv+4%hm<*73=3&2NF@g>cR9LdO@wPqg*;xZ|tgs)zUCs)vp6qpTjjaQs{N z^#>*D;8(~0hN~W0oD{4dc^mi@HosxVQ{k$IUXGs$S3R8X_@!{wL$2dv;i`vej^7O5 zWb1vN;|t-choz1`4p%+A4OcyU2=8e1u-Wl#@HcFK_|frS;hOg*C-1u+TEJBgDUOHX zs)rLCKN+ri=;!#kaMi%@ju|Ihon=2^&?M)s~$Qy-UY6D=;8ROaMi;A$1i}Z9)>tR0S31ScfeH-E8x0c>MFSA>t*;1+qd6-u(?<4?d<&(Ayl3S9O4j^iJ}HNQLH%Ky)B-50oV?_fR1o5R~$JsjqEC%EeT1jkQ? ztFHPwJ`k>aUgr2!@Rw{| zu6n42>-@C~u66f2{6bq_P1A$*BX0@Ud8Y?l{W%q`IvnWuMexnG&kS*V1pFAg9*a00 zh3h`8v*60l9dOnE{f;k%tNvFxz6P%S>NU9TPr44S{i+(S^Ggli;98Gu9Pa?vdOXhYo^Y+lK8_E7YrnnJ@uBc7mY>m%Pk?`A@iQEs4X?HMyBxm{ zzQf`lb$lhf&f?1*uYmt-@gF$;F~Zn)OVp{E7wNAVru+GkQ7PlId!xfI^d z_Kl%%?LT83zYgBQ_LCWo&xULNS>X5saP2>j!j-p`aP24Mj#t37pS%m#ezF0s{p1U{ z_LFbn+E0FR{13SHjRQ{))`R>Ixb~Bdj(3G?KRLFPcw>o|&T>D9}<0WwICr>&4JY4(9tB$_|*M9Pe<6Gg{Pkw`I{qA>0uuk;*GdjW* z-xaR-47lPm;o6r5!?hlV!L`2f;aXo2xW+pVuKp~9tN*LudVjhGuIu^N9A5|5c&p(W zZw*}g&vwUm!IhszeS-6-{iGRO`#@XAJHz#U`8c@tfu3-!_dbpffa`kxQpbnFbv-}Y z@d@y~^#IrWE`*V+aMeQ_xay$;T=j5_+8nZT-9(uK4HRivJf}@t?v=t^F_H`ug7Yj{gML{u9aw=3o0y z5?o*3Ywh^qaP2?Gz_tH$hil(B9j2xY{``>R zkHM9n)o|tK1-SO-HynQtu6%BSE1&;?Yd_rK_|I_dhmHG%_I&93@ABqw?T3ds-U+V# z@C3(ChHF3U>-a#p_QT5@zY4B;i^BDFumZT&;~kFQ16RF03|GCafNMQI?f8pu)!SQe z)!PT~z4Zg%TR(8+=P$VO)AX!ho%~??SSz^3+YbJKef_hG<0rr$viOVO>dzH$?GJg5 zkB4i%qHy)U0IvOEzT=DFny;mB&DY~_?GMj7{xV$iyAH1TT@Tm(u*LDO;MxavIsQ9b z`$N;SgLNWr3D^G6!SOC|?GN1@?+w@fFu?H(;Hv+8xauJSS3S&wD}Etd_5ZNrE8wdC zb#Q&%Y&~4{U*mW!T=l;Tu5tYiS3NiFADmy+b4$4Dxt-%jz*W!P;i~7}aMkl!j-Llt zJ!d-c22>UpN)bK$Dzg^n+VtDc{5{AsxA`F*(RXCpktuD9#pim!(&zV(1$ zJt+Qgxa#c~xazGtT=jN3T=jM~T=jDiT=jDWT=|&{SO0H>YrKo#djIkeT;qKluJNvh zYrHSRHQqPiT3;VJ{s~<9`3kQ5?0{>1)jJ+KCphm~Uo9O!46gNcgyYA;wZ3{g-WRU* zb)Mswz_q?|9M6aA{q-#PS+-!hy!na%e#c;)64_EvxaK$fnd^!9lJMLO|mVMvT&7_z3v%ha~zx-tnpM zj6)OgvmCzzKGfnDIsOoQyTw20__Odji(l*b+weONOZ0!E<6GcMEWXz9I{14Q|Ci%U z&rKY^QS4#A*q?7KzLn$c;HtOYaMfF1_y<;R=R1BWT=kag_*l5=ZJOgZ!|$NgsVOWIX)QvqxC1(@v-oOZ2!F8@mt`BTKqi67s5}m_+^ei0oVF^8?N>B zA-u}g*Jj7J!L`12I=&mO_0{zJU_HoN!XL8r)!y+V;g_{ew43I5I$Y~(fa4dy^?S~S zIzAGv^%ZeE3fKCYc55KZQ!c^BOE^#uKGX4@jh_X z=McE+a|B%b^90AI!BwBL9iInRectc*Qn>1KrQ^@R+u8Nc>yEz*SAAAHUIW+l&kv6O z0#|)DzA#uP^5$^WXFJD_fU7>cIo=Dd>!1FP4}z;cuXH>YuKJwl`1Nq@&$At$2iHFQ zfaA;Hs{gg{?sndP8$QN-gX5dws^?nxtJY2(T=V`1e2kqpn_LvElUvM_;o4_X;CesR z1-{AJIRUQxWWv9*b(97F)qE&i>tZDQ-}ZjtX81LB9-ISLJ{LIt0Q?`8=SLl13D;~eh^SACx8_&IRx zR~I{eC0zSep5x=;MOL>_#|z-9|9Ortgm19+A9j2NTDZzT>DJpOM>+yZw}Y| zwspKST=RRp<0rwjU!CdrIdIj(C5{h)FR=YE&++ka?T6DHp9$A~IM4Bg@b0!hl)!a8 zPzu-n`K;qF!?l0D?f8dqT~};&d>i~Z>;I2%t-D|0+MgR=8mu>YbGY{B!yNAf*ZzE* z<2~WppZhpI0IvPvV#lw9A7o!o%Y$p*7!TL}Fc+@%em7k2*A~OI-j~A{wMyiDmE&vR zdjGWvuKxT7uJcZvp|WeuJchl$B%$(zdFJ3li}L0&T{-bxb~mR9KQ;# zb#blZli{kjn;oA6S6wZ1d@)@0w!-mMaGj6dhpQeo!c`C39N!Mty#E4MJ^uw)J+!zi zSU>VM@b-r!;yOEi41Bc3pW=8Q__EfC_A?#Nf^WC@s~sN=|I^~Hb9_2n^?aM-cfnQ9 zOB{a`uJhwFaGeKVg6n+u4qWHEkKj7rZFT$`xW51RGhFAjKjAumHNQMqKU$});cwdc zu9M?O!*yOe+3_>rTJHlLzX-1L%T;jg19|Yn?R*q*JPPk>@pBxX4?o`G?{|DDT>H;j zxYqmIaINcYaK&$j>wNc%k|0+w*Oq^ zcphB))nvzSgm19@WRBzW;o7ejJH8yQ{c4rtYv9_i-gNwZxb~}R$7|sFI@NZ^cfqy4 zHOdawgZ8&(@UDj?;@ZNszjcOde>>6fQ{dX)&W3A$J0GsE_g)Uy{&qE7``cK@uY+rU zyT$R_;M(67IQ{@!`&%ho`&$`Y``b&7zYf>__L1YC!nMDB>G=0>?QaKO8LS`eCx^g) zvwh}7xZ+QND?SUZ_-wfL$x(3aKjYx4|0rDbUjWzj;bOS@vmCDeuZ8dZ`aE3w=X%FC z!8P7mxW-!t*ZYOv9dA4&IFH(|S~=bhuKlWu<0rtC|I^^g|5@re3t9fh#KcHdy&8Uoae+RDpZKLB`;QIbTt>blY?N@)mwO=*4Iyf&n|0ct= zU!}mcUv+_Nzd8Y~dPs+B-^hUL{51@&{Evd`{o^FZZ-6WRw>o|&T<4bu9e)I_{67U( z{-1|8w*Bo@$KQc#zCM9#zP7@zvG%`n{J-#V79ScOtP^<>e4@p-cKmSobryfD<2~S0 zEdC6~`@^SM{3VVLfvcYL;Hu~G@F%VPsN)52eZ6kJf>G*T-bjweLFK~ zKg@A_K3wO!2OM7p*Uu-cbo@EE&X2Fcb$)yY-re?-jc}dsw!pQYe+$=sz7wwf`A@j^ z)%`~V>qq-xE4cQV1Fq|_BFBs2TECCLwSNBz*Y()* zj=uuedVkOHf5UY>w$<@(;MzBScKlDcuE&x_1?x(l4A=hC39kL;Xt=J&dN_V6T-RL# z9lr>!>#-q@kAQ1Gj5r>J>w0XK<9EQduio$YQn;?io^!*zcA$?-qnIzJvbI#?$MD{pJy%JW*dzCX3j@%3=6-x|2qZ!Ns5y`TC8 zuJ!vDT0tdTE9IVKMk(+n+ezY&4O$FUJcj!9Szs|z0UFJ zaIN3l9KQ>$_4|P1%ivnS6>zPWO86D_esCLH@!R2wZ#p(Ozlv`OS3S3ftDcX9t3JEI zRiC}!dOvj*T=jV#T=jW5T=jW1T=jDeT=g>vuIr8YaOGzaT=`rL*Z1RIfGeMGz?IMU z;L7JGaOHC=T<>SUbNs(>SkaJ)ZU?`JP@ zd-}c4YlHPBZw1%;%?^%tfouQo>G)}Iz26+*_yusCM}|5+60Y;h1jnbr zb$*%c_&m7IFZVhAFkI)Cm5x6L*Za*1$1CA_zxlD_pTqTj^IOMv!u5XhZ^sW97pyD2 z-#o2U4m8F2j^#rck33fKOh3)lWX7Ov~VDUQ#8>wIxLT<41ga9tmkz_tIE z!nMCW57++o3S8HR@4&U6d<54%u+{Nz;MyPl>-cYQ?GH)ggLR^HoebCdJ>2o5;99>u z96uGV_1oX^L2#|#Yv42OI&czPKmRiauDYEM*U$efhbzxd!u9h!>*4CpCb;_Z3w)0C z|1Y@WkDL&kFU21RSNu6}ec$auxYpwkxYpwcxW4~2-tnn$t;d;gt;f0W?sh$JFI?+! z30&*(ak$pwYPhZ+{sq^1d=swq@&#P^{1&eF*S|XcH(c+p51bgBU-=<$%~u$%`AUT= z|GnVK|Cw;*e-K>x9}HLiN5GZ;Yv9U%6t4Uiz?J`p;QG4dV{ql?X}I$9B3$+SrsMC! zmCsM%%I6nw<#PvI`TQBKd^U;%>p}T!23I~0g)5&O;mYT!aOJZf{2BZIM}r(641dnz zuYoK7li&~A_gimr{8sp57XKhz`FRAc^Y1HgjrT3M*6+U^{|v5m`i zuM5t*>a8_g^>#R1^>!>=_0|Kfdg}{UJ_o{8Z{g>dXx3?Vs0Iqub60ZJy4_AKf#!Ihuw@E`5^v)Pp3{2p!pFQ64%?-zQ*72g-G_+jwl z+a!)R3a?D84yd@u~1Pt^G8(zFvJH zT=AE~6+Z*6_}Os9KMYqtSHPEAKVO6E{op#d)>kcD@pW*$e>`kjFrSL=1Xuj2@W%FY zp8ep89|KqXM7ZK_hi6&)3*e*7mpJ|?yf`H>&e!2ftetn^OU*xa{Bw9$YyVq#s`*a% zSo0Rw2lKD-wttaxcZstcotm!ALjTd_;l;fb&gMm-(vB%I({d7 zzQsS__%it27XOsv&%^Jr_}3kO7rw~iKXH63T=n?}{OPud`e+gj*2!A)qv4A023LKa z3fH{%gYTVRxY{2DSG`Si{Cc>K`wz!&hpRu2!Z%qSR>C#ja=4CL0ayE*;c9;yT;u)0 z@n7INZlmeJd6YMUt3O@f>dy)A&MAp@d&AX!U-&SK9|BkW2)O!l6I}7P!WF+1uK35{ z>dzbS9X7x3!Il3{9N!ApaesrW{rzqT&dVQm+>UU?cZI9oGT@5OgsVTJ;EEpy*ZkfF zSKjV|EB{Zx75_9m&+6f0xZ*#DD}FaT*V<`xV=$kJ?+RD^iEzbd!b`0EEcmnLLmeLp zuWgs;-%R)pYiBNer};w17sIDo`zzp4^HuN{%-6v+-u3X8tv{bT{xy7pwf|qoe}k)^ zO=kq>QQi`+{eia{vt3Rj16@NBd@x$SY9|Ko^{sHe}{k$En{NL;N61a|A4p;jX@IiLm z&2YtUgR9>Df-Ao1E&I;%k#NNy2iN=#fGckoz?J`exZ)%5=WM(S;fh}jSNt0IYHMdL zT=CoBir)@beA9wp-s-IVmhc1HC*s;Uegu5F#dmkSH++`GpXK;@@KTG)=J^>){&jPPoRq8?O8}nHk#iabWE4gJOSr3~jXM zc{B6)v;AU!blg^O9k+uy+v$OL_2*Q$`ZEx&<6Z>UamT~e{#3Zyp9xp{bKz?LQFtrM z|4O*#x7_gxxaRj=xcajJuKxT0SATwitDal^W6yMk8reK5KkeYE=Pu@)$5RoncKX4U z=L_H(*JW^x>pHl`H65<@XPdL1a}lrO-VN7r7d!2&M!fR*0$lxh!)fOo#H&9a!PTG7 zoOX61Uj5k(pKA5lWL9wAZb-@g?wfHr^*3e;VG|;$Lz6EqFJJ-{AOWcn^#J#_=EF zCt3U-jyJh2SUmaJ9b#u6iqV zybP}6zU27paP{YN_zjkaui+Z+PPmS{8?N@-6b9!}?RS7{yvI1+9j@b^=J;7~_2(+M z`jZD=Yk7#kb=)ZY4~xGCuJ{Mx>d*6V#lHeq{3f{K{{vTl{)FFY{oH?Ua9))EWXDtB zI_^nuwSPK%u^snvxZn)u_+ofr$HX{agx_iHyavD9{C&qa z!Vk6fYv3v7weTy=8{ZMkzsB1fKFs>l*745pme&69j-LcqKl?g95U&1T>iAIjSnE%| z;}Q5oi=W~6Z1~L&HL~0RpuS% z1?xxgUE!+FG`QwH9lm#d;c9;*<;p)#~_&UqOa=6C33a;a>fvf%X zaJ9b)uJL~5_zt*^Tkm-2&fq+%KZnEBpQGRhTfKFI>$tt(gDn1HxZt)B((lbR%;5PrIO30(azg^#u8WpLYGLgny<_PheV#GY5e zOYC_KT*s}2>$r7r9k(8?O%g6c`|&Zc?$eZ^DtcVl?vB2S?g7F^@ahHJbz@Dl51K756F1g`!^;p%?@T>USEtN$f%wO)`5tJzV_{**b_HE*_%(C&4FMf0E(qPYPW9NrNj7>2T#C1Fk$| z!d1^%aMg1*T=g7*XIkAx;g^{gz|Y=4mZaE6AzbI{61dtgg{%EC_=VPfIb7{m!Ed$r zYWUseHSk5|weS&k!Bq#(Gp~pLGbxdWkmX7BQ(>M2zc+p%7yAgq)&ErZoz~AZ_*3TT z@YUuS@VCu159;T8<~fMhar5EIX9TW%M&asb0bKnogsY!LaP_koevr*e3H%WAQh0mw zGPvfe9G=uHF<%w%k>-`~Yt3um%4aQH`K*Kg%jTsX{)TzT9yO2a?RgS>qdgD9HD9T4 z%~u*+^OX))KQrL!XC_?pn+4bWX2UhE9Jt1n58rCfBk=#&^CBge(6waOJ-iuKd@*mH&FU@*lEwqk2>Rli;7(>yzQiX9`^T z48xVrRJih)0ayE(@b7FN&VsA`Y`EHwz*SdKxaz6^uDU9OYriUjYriUn@7=H9IvrWY6{V9j5KUHw$p&G6{)WDU8TDa=34z7BxhpV2GZQZNhqE@#l@LSEp@ELZUmI~MP zTLxV1XTsHf7W_7AKO3(0Bk*+=ABC?sFMxkyUI_ouya>L_yck~EJh5&|;7^*D!aKA~ z#FxR-%*)~DBq!pl;2Li=T;r{Q|7!iOh5u$=2S3RAUk`6(o@{lY`cXbp;L2whu6(A# z)z37z`k4+_KQrL!r`DhPIoSH2h4?GYv*EesIdIKaKD@x@F#_Lgu63aPY%?!Hyz*HL zS3XPN%1 zeU`x0ekok-SHQL2E8$x2RdD6G8m{$T16Q7F;mUK!@~V1J-6p|Rx5;qTZ3Y_uH#n2b=(@bj#~@gY0vB6KiTtocniya$R1U1%6}4E`47X@ z|5Uj8p9WX|)8Ri@|1#j}PbOUb$$={m`EcbS0#_cQaMg1GT=iTCS3Q@&>#S}|;eVQ! z!B4d7sB-w;>nph0uZFAr8hE<3Ukg|J`sTFiVUoos9h6w#@*B*P;d9MX;P;w`;l<{u z@SIkOdDw2)@|z zQw)FDybP}Vm&29+3b^uL3DnaOJZWUS;{IgDXGvaOEd-aB$yK zev;tIPZ+NDQ{j(UJ*UCdemY$3XTi08v*B95IdJ7UAFez{;L39pt~?jPRky`()olq} zbz2J8eo_Y4eo_wCeo_V3{$CBh`jEuD*1*S_*TSzeuY>D;r}gl{Llf;MTit0tQGZh4 zKUzJ6;jQhssc`-N$29m+7M~73+B^%c<7UHk+#I-$n-AAO%FSJS4$Y&&hDr za|&GboCeqRPdZ%JKN)ac|760q>G}$;`(0#+dw zx{r4u{Kdl(>$e21{FK6#pE9`aGhYt>r}e)AzS6uBUT$6mf62TWuKPLHz?Gj`xbjm6 zSAOc@%1^SbSLIpbO@V8?VYtSd3fJ!u(E3pO>VG=o)&C5*`kx6`|8wAKKOerz>L&tM z`%$>sFM?~m6vLIb61ehK3Rm7L;Hr~Kxay<|t~#lPYyH;1wSH^iTEBI0t>1dM)^D=a zujW_xVNQW7&tbUooC?={o-^QTKNGI@v*5aqbT(Y=N8q{kzAp+tEG4m@6u{HW3*ovC zZ3$fWeJzFmX~!*thpc_oh4S3QyaMs+PbFOUv8;isKece(7q<@nf%UTf@{3laE&(tS36O-@>u{^ehT4R ztv^L@jkg%C@s`22Sv%$Mugxpqx^HSFT=P`}*SKoo%3B>=d8>yj56QMqtA1A7Jf^@$ z+x^PI@B;Hxxb6d~>pQit`z~f8{sLG5#xaO+>u5lH@l{ft!3FSw5 z)9-(fD-UI8NB0LShhJy+d#QjInODMfzoQzs+OLH-w|45_EzRrUy3d$?KdQ#1c2aEr zldGLDT!yt}ni20z)n9IpFfRl(IxHC*k~z|~GIT;r{SYrOSvjW^lOC(6J2lLA+N!f^FR z_Z?R|{VWd|h*$fWaJ8QWSNqv;wI6{i4^g=CPykmR3gN2H630v7s@pQS>b4xN{h7Y{XA8&w=YcGx>0hHv-pqbst|HSK}=}yvADy|Hb-K0@rv;;X^FG46gB( z!!_P2xZ0_PE1xxR<);>Yi}j}tuJP8xHQr=f_sZKWYbOOh$6WiX;&tDcRK#n(GT<6l zCR};Tf-7&?aOEKazu5l2yzb|xem3oB?|%^=HZO$hJ{To%-FHIgf3?5Ej$4NKI`eY) zPv#YH^`{c9|3_Z~SAS~Zx-Ul^{1rQHJ^VHEkj=BkrTaW2!8P7wxW=0T*LcHljW-p3 zj?GI3T;t7zKVkjPf@{3laE&(tS36O-@>u{^ehT3qT7Qb*8gDUN<1K@4uy)GfADdUe zb>D_cxaO+{u5s1EmA5*$@>UO59+ItJ@%phJiQTjCQsDOG+)x=K}ffk<(S39~-iQ4(i;?oeXcGBS&TYLsw z?PS6aiytWVkpovd`Eb=?1g>_X@SfIw5nOdu44<6nPN)Q~c1qzFTKg4nwNnYd$=a`i ztDS22HP(I|T%is9QVz68F*ycE9Qeu=zSz;)b8xW-ilS3A}4PS$=M zT>Y$vtDm9H!Fo_TN$}IH{cr;}+S5QPT=%_6Yv2vfN9l02|2F=gY@&Ce(4q!EU(v7~ z{d+v^xq1?N4BO}NJ~r&<$#DC&duVtA?{A;SAEq?$csm*PT!kji!1t*gze2 zn>>B|l-v=aZj+}>N<8N4vq^d5a=T5*i%to38k)jK z9_lt`VeFLQxsxX4PT$+e$jMV;P3(EW zsJszV#|$4kVf4hi4$_ijh!-m__VZ8w~-UakI$PB%f^I>Q}VhE zyzsIUV4$AD71JUDuusTghwh9<|@ewXf)T{JJsTW`@8XYhOwfS|pr+_(Q|mvM*DGj*fZ!_*Ry& z&k`T4Y+u)NJ=*ft)6faA&*Ed`>%;c?e7qpM_mzoHdc+>$AwA)GeGy)-r+UnAUSDSC zfl+8z^P$&YWUr6srr}4MaN=2eO_=>7o`y!pJl+=PFRe@B1v>xO%R`*M+}J|4O0P$#0EWeEjxf7_rY1AJPBEX0E#Qr}LGqxF{(3cM;be{eHk+{V_82kJ_EFKqGk%(M<)QrLw*L1@;u9TT+$8qmef7W8`mc2wj=dm$>7&=nkGJEq{}DTWHyy|x z<9&^P=<#HGeM0~D_e1vj|4HIAy-t3vy&l64mDuYmu(7HCdVT-c>-RPO3LAgK8V<)^ z5I-g9^%{S?KRkAfLOFILs&ZTZN5t%m*dM+=z9*xLF$slIo=xa`wtw%z*kAGEHT;OL S>3zLE?V`jBhu{Tx8u~weiV5QY literal 0 HcmV?d00001 diff --git a/build/temp.linux-x86_64-3.7/reccdi/src_cpp/parameters.o b/build/temp.linux-x86_64-3.7/reccdi/src_cpp/parameters.o new file mode 100644 index 0000000000000000000000000000000000000000..6b82c379c7ddd4af6c450451fcbb24a145233c83 GIT binary patch literal 708488 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 literal 0 HcmV?d00001 diff --git a/build/temp.linux-x86_64-3.7/reccdi/src_cpp/pcdi.o b/build/temp.linux-x86_64-3.7/reccdi/src_cpp/pcdi.o new file mode 100644 index 0000000000000000000000000000000000000000..7cceb8efc17847bbedbaf134fed26ddddfde1542 GIT binary patch literal 286384 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 z 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 literal 0 HcmV?d00001 diff --git a/build/temp.linux-x86_64-3.7/reccdi/src_cpp/resolution.o b/build/temp.linux-x86_64-3.7/reccdi/src_cpp/resolution.o new file mode 100644 index 0000000000000000000000000000000000000000..955d22b75c8891462fba22254836da0b274b6bbf GIT binary patch literal 218368 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 literal 0 HcmV?d00001 diff --git a/build/temp.linux-x86_64-3.7/reccdi/src_cpp/state.o b/build/temp.linux-x86_64-3.7/reccdi/src_cpp/state.o new file mode 100644 index 0000000000000000000000000000000000000000..4306da007b5b5d98156a3f70ef2528de3ef21392 GIT binary patch literal 213304 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 S-Fv>r?`dFqw>&^@#{LK4Ju4Rg literal 0 HcmV?d00001 diff --git a/build/temp.linux-x86_64-3.7/reccdi/src_cpp/support.o b/build/temp.linux-x86_64-3.7/reccdi/src_cpp/support.o new file mode 100644 index 0000000000000000000000000000000000000000..b3c4a23524bc430e9b247964d37c143730d0ed5c GIT binary patch literal 196056 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 literal 0 HcmV?d00001 diff --git a/build/temp.linux-x86_64-3.7/reccdi/src_cpp/util.o b/build/temp.linux-x86_64-3.7/reccdi/src_cpp/util.o new file mode 100644 index 0000000000000000000000000000000000000000..eb4e487db4b2bc616168ccfdf83258ffec59291e GIT binary patch literal 255400 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 G`~Lt1wME(h literal 0 HcmV?d00001 diff --git a/build/temp.linux-x86_64-3.7/reccdi/src_cpp/worker.o b/build/temp.linux-x86_64-3.7/reccdi/src_cpp/worker.o new file mode 100644 index 0000000000000000000000000000000000000000..6dd12c240343471543c88145130e6f03d910c356 GIT binary patch literal 999584 zcmeFa349dA_BPx-$%H|Xi6{z#O2D9?sGz9if|>|uk4zK=6n792Q1%3oD+-!K7{@5$ zzTagZ z-PJuz?v*+w;<}FgbDbld;L4^tPEqH$e^Dy2QZSDYZZlj{W>*vLX2KRGOqg&F6Ygcg zA``YX;h_lodbJbUd+Fc2+R2?(;o9*s-6V|fIy-*a>p#VJ?%nnDdFLG%Z(U8)DeFgp z{(UJ@wYtbluT0gRTU_X+my1-U?*K1Tf#k1K>6NOl_To;d^a_dlX$H$wfPHaMZhl_X z{G!v(EIVVKm&U)fswTbEsz9nl>%X0T-gL2Npl?sl%+LW|?TF&SpW=nbc7-qs(6czE zDl!)r_Dp}{rGEhECtCg6$@9GFIprVN-%J0|7v(RM{L(AE^tUF9OEe2DFKS1VtL7J) z0xj@NL2SXM$6J>=A^j(#eg~#%CwOK3lj%Ro`k`o5t2;@Vpw7=Iy}~MB{THRuKcQT< zev`GAjM=)*ZAJPvb)rpWXO^9XTHea8WO@PAm8Vy03DRp*ritr6N~Y)6|1kZ$c+m$Ln~;TBUJaHRTW{&;c<$CG4wOWDa~{l(ia zTYV7*w-h?@7G!;J$_zk1mBsg)@6}!} zV!U_<15tCT^3tCq(;s^2e#I?}mg|e3L^_-xl|Gk!F&*Q{`yJPN__)xG;rkig}qP#i%^=yj1!Zli`TsQe4=kwduAxtZpyU zU9IrgbyXBGJHSpdwUDe@1TXm`bvX^i(u-7b&<{%_W4{T(QF{Y;*& z=p;~%Dz{U&*_=wl8Liuz(WGB-k?Jb~4V}w&j%Q70gNtf+NY%bvJOvalQ(4?XN}#SQ zrrM|tjfmA|=X`U`j*{Cwf?i~2tjp%J;zK@2;po;b{riTXsRhi5`PAYILdO2{((P z3}_~}r0wB;7+!}30vwB~=F2*yp=ninm?;q^4X*bvUmQE8>|`&!(99QDh+ek(X81MR ze~g4ON5ND5=I1cFMLfb*kB0E#DKI&37h|tXKA8$MJqAhRB{qc2OvuP`%hG#vO4X_p z!7l0QJ&Qe)#miR~=y#&j4MLoO7?{f5knU6bi|jPk2wI>X>VysO|%bPVBa)=5g(1#=e0 zlFDF7AcKi|AM2m9u~dXO+W@~ar~O3&d^A-|;HUUma&M!xXh(veU!v1?RnxM%Z+kz@ z-YiWj*4vk0KD1896w^qVi(|;ShrPmdXQxH$5Z22mWEK*a&8Jgm4GHsn-KGnPtLfd) z|8N<$W2ha&((~#jY}tY_DhMw!*MB$RBn|5?1F8NBoTk@b$>=pa&5-LGkrN_P(e>Ac zE^GnoCPGQ5;Psew=GA|VldSJgmn_y=6?J`u9bETN6Y9D#WNllf9mjI+$7Fs?)s7xh z)(`HcH=38N9>A_(7GazV>7jn()b>F4K#rIQu|$-Tq_A?uEg5eV5 zv^NkPhdoi|)SkxE(3PQG`hj{Qy6|lB(8EeS4p^3NycPH|;ARLw=acS z!Y`R`AJFXxV5b|I2<`-AfplaNv~RM{+rh6?`aFg}I~!;Bc>>ve zo^8K%7Z0s&wM>5NfNrZ|QgP7xO&y!bflBRo5bpCb!Pt33rvUG=`E;T`-M{~b?G3zA z$5ZyHt9ZJWryF^?6{qR-cQSf6Pxs69!;C(`)6;VOJkGhwLcO@IWlsNWjO)<-c$xG! zS!Ku*CXb8J6mDONxP~jV?b~^YxU;QN+vxThozE;mQ?$0Uqaylur^=RIhF<%tbZmP==i!bj=G9i+3}MpR zCrcJq_V+TgBq3AvAah8+o$Rn$^69YAo3k;JESVpl`VJ*BRWn6!uGisLZ_ckkKAdoZ z7;y!R@Y1sg$6HUq8RYK8p?jp7HI*?tXV`%eD=9DJPWpVtt6AdJR^H&mYvxi*`ln=i zBS(M^?|XALMLgU!)vN)~ySDpGlVSb!909!-(JuTuO6=v-e|&BCf6$bmbr;kv!QGVH zN6_r*)-*d?u!{(GF@oAo;9{*AuX&vonac8S|6s}CskGK$dKPQY*j2X)c}@4`d=tSS z%G!>tqBT%36G1AYtspIe)qjVDUe$`-5QVPiP(@~m;pw{EbIVI-E~d&1|aaHEYnDD!;WYUH_SMF0Dm7UrAE7@PFt}Ew=7Yf4(;@V9jm2H|1sbrawUb zU+qm#LdNe+C!l>LAyYLQ>3(m@^Q1TBiFYodM5gLR5j4FC$cGb>(wnAfZz4SXzw1XI zp&z{|xn%XDJn2X40l<5g!C#qGPCsfbmU75PKUxkvs~>%u)sOZK_ahbTuKmaeX7{7T zP-d$sw;yR`&YDe%+9mx6gM<1v`cqzRf1>s1Pg?C9;cS1}817F}=;|G{KXE+s`x6Dx zpKL|cP0Q|2%rCn?86%l*-RaxtPr_k;+Kc^(r*MDzL!|IL`u|LS!g_FEFh^a)NAP{H zlc6J0&Fu7oc=gvPOuRMP#iW`CFr7D~dkhdG`Fv?LS`|YI7E+RA7aQ{ET~bP`*Tid{ zqB{)kF`)Asn8IpzErqMU4((oT{$ejv=w(V{UWdh)TJk;WtVGoW&!fFLU*~)7n_ed3 zW&R%X+@%k?m^m`Ldzqe*En5~-ZPfzT8~o1p6_?Bz_nco8DPT=oy!*6kM?5K&`@j`1p;&NAy;%(IBQY6+FX{dqjyoyT5$_GL zJ~X$`^6VkQ6(*kb*ooh)t^B8ywS6xVLCstq-`KT+O)^6#R&I7esepkN#e;)v0e{%7 zy10eIN!YBHs^(vmUKN^tO?yi#$_dX;K5r-y&w1u?ac6S3`Zy(+D%*AvD3BKQwhro_ zK}!9PxU@+9-JuKr7PmeVT9wtWq7e7fu-mk7pqKtlbb9GePnWx@z@PehnG12tv|Sue z8Mcd~(zc10_3PDnHlEmGhiyIbx_YMg$Zy{MSKrLoqDD9)I5uX&LJ4&#GybGaP@Oe?KhSevWA%JY?+$BZFjX^4oSOo?VH37`>} zvF)@`TQN-5Bz9qK4I06{PQ6IgUVvu76l5?PW~!#3Z>BQ$zRr%Gd1Ntzv`mMd-jbB3 zS0+nVBW_#cI5|71CrKlgu0y+}>gPtVOEikMZAowT~~Hf(I9mf zoA7*u4cvdGYKIQ&kM);%aj0w6u@_-K9gkOdFADv(TcL+#_d%vZ!jVi^uscHs1&2&-Vt;O_i*|(?@sQ zx8-mie}RfyPhRLeYfFJ=G+jgPeBN|wejSgHXaZ(<7}wpClx}|D6t^pZCidH-v z0ZW;>*=Ri2jrMH7bkm!(39ww`b9cX7wySOZ#@5!))0629W&KmNquZDD!&?tn>Agd* zV5g~Cjpe%BAf#;Xk-=W3gd)@UJ>d0t#4Ty7zp^&q-9h<<9Ki^LvY zKx$op2jh2m@LtrzQ)-Vs3>Wnnput5ZwUps1o-d$F?8yudHHG zy{g%`1<+_{8t4X}6@JNrO9rMgvq(*Ko5dR8LnA2}BT_a-1_E&^o1<67Yx-d*!z0|; z_4gQm&R|56TR-e{o7c2xaDA=fuXTc~vF;FY1@rQS+^VN9fGma@?VKEkN@df+jzh0? z4WxJR(sig+@j1H*TM>*{=5@*H+2i;37WHUBlkF>%NGnHLk)-9!W7r~TVe@}&IvCbg z*(8E1n{Czf1wO6*fo&DaOJ7igktKVg#7jcYye`)0oL@U@na#%Uwg2mrH`^Nfv-QT@ z2DU;#C=%3;E&eUCJk~H)38QYHOi zwyIe&zGa<<>CD>er9bvECt)GJq%vOh_ab-l54glCWy$y-y^{6u>OH`%y0j<~zor>t zUM31H=uXGb{jmr7*LigutjYNDo_2N zu)eM@^C=wrx#e1l&l0v#F41htMeVj+)QPPMZM(fhvndy~+j3F+UsA3c@ae}k+pCnhpe!CjDGTC# zY#ikxzMXPC4&B>mFVSquMeVj+)c%*0Yjfdt$~BO=pe(}>+H#Gtag>YrcFNUz+vO6? zrd-r+%SG*fNx2r{Bc5%x*A(W0a!o^M%QfA`Q7+=!DOaOymrFF8a#6c27q$N-<$9*c zcFHxAxu9GRBDCdt(#BCP;@c@#Z0BwIp=dVcqIO#@YX3{h^|$SnYc_L1xn4(T%eC0X zQ7+=!Dc7a&@on@k(QL{^?Y3Oh{+E<%&W=zd(^&)K{4(Z(a;-vW%eBtNQ7+=!Dc3vj z@okh#G@Ei!yDb;B|0U(}wpT8P3j>rZhR~L)(8f_N;@c@#k8PJrG@Ei!yDb;B|0U&m zZwDyaR(lmO7nG|#LR+p*HjZ);-%h!DHr-}>iDpwSYPaR0_P?ZDCvUG@rOXB8@(|i` z^|5i3i}-fR)g66z8-6I7O}VJumW$f|WVv+7>}4?d(@ML}ob9FiwvX5Jz_#Qz+iM_m zLAiz@RO#yCF*c5J5#LU^l32EGqg<-#qCy*1eSz5w4K*joZ~D_r|>@f29eTjC^M z7~J1C?RH$z zrEBeDgP&3*n=2c4!_7?XeY6sH;VqIde;F>)SE+eu)CZxQe{A3KwFbBk=AH zg~Z(*lK2{RhL15$?u5rgyq{u)d+Fo%bS8X7!!q z{nNmI;~pIN!q9WCZZH}*1RJrHPRdRpAb5TfuWq{0W}eSj&gjesm3Ty>k80+IAJw2*?GsQuO+?|mlH-ahzUOd; zkG!+8xa}vK#kGtzkVONJf^v$u%_l&3koB`wzXM}`wfb6LebxVj`htI3>wo{BP(RsM zKc2C_x^g!9>VNq2>e(aB!@YR*DE2x&;DhUwZsj`D*4o;+l(9c&ewO~R+tuIa2dn=W z#{M_-r^NNQWq;{vtN$>@{+#|l@A@zK>Yw=Y>a(h64X4_y>euI|SvwUReX<|aX6fLk zBH23p0R}JJmabvJd&zKEiseIDe8z&h{UtF>yY~BlwhUvw&?ZS@nD(@E5~B@+tI+O{ z#4zpNP^JTIrdKnOFLnNz$&<4dmLBVnhnb)46g;o~z0mlE60Q)}QJZGk%-)y8uuUsN zHchd#C0kX*7;$vfHrvupm&CBPHtRz5Wob<$F-&{-$ADI3>+1$d4AUM7X>%;?MkaD? zr*E>#{#*E(TX5m)dvmUJ3oe|^eWBKyVzaqstJeF6OcPoK11)X3B!;y$4Y^E_t%6N; zEO3|>mlW0JSlX|vEDcXy>gKFuN#@l>r8j&Yul{xg;iGj9x8C?J6T#XGY@}uVZQ0_s zOrYy@jE;1=M$x>bhKt@+MoH+n-pt(uG7s=V8=gBj-)j zVI${f)L|p%I@DVu=aIbVKN~rV^P*2Ta#rU>A8zDK%a7gzG{5N9M$Sw5(W?ub#raXh zKb7>a^U0~tCx3lDWw+#0PdX|(qtt&#lzIIl%6y-Q7Qu!kQQG-=l-7U8%1#&HbVDPY zzKr37T6o?)5Rs#!_4#nTj|!YKqYDb0Aq(HRBK1Ci)e1|v7CdrE;{*|P!$|L8; zJo10bqij_^_0;B5=S}(4e>VzT;5?Mie4okR3pRY14-+@>^fL=Fn}vYsN3pXV6uqke zjtzT{+IfA{c|L+Pv@oJe^P;r{&blb$RTP<4z=X#b%~EjyRUAqcM^MG%RB@-M_~cKh z7`)d}4*cV{eCPZP7@pQfq95ct)p^lRqt4BF(YK<`%)IDxQRkt&=z~$`#k}afQDg zV$Kvd`cTZd!HwP-a~^V|SI3;E+~`#?{OC^fvY4~PjsDok`P_|u)QBDXEpg3Rjo5-O zHDU`s)5y6q61}&PbAKdycO&PSNc6Tw&RldVaoH^e&ZfNRzoX6-(dhiBb9FTOWz4xL z8vQ8d+$}Ek2yI(y3@qt@i!RZ%c~1A}zw(@(g`ecH4>-cnqS4yM&Rdf5K{UEB=B$iH-@^D%5M5Q^+)@zz4I@B7bVkg1z94!}%$ZvdeIVv6 zE{HxFb2hLS!i$gJ72zy*M$5T}IG-h=bq6`$Bo^jBc#!jC>*%zDoflg-NBo1<(T$y* zZ(1LU_#H*Xt2#ULi*`r+>!RqVot?U(RS{f#cMvq`-vRnpG;p8Zu(Y zNXU0A8asY?zT?M?89lDjUiLvoL+nMr(I*WVJe=AFjd1!5K6khU z7>Er zaifPiqhOFT&Nt@lN@LBSkz>xTP>cMuF*Iqb)XLFkBMW2P*%f034Ibi*ff0ciZ5%cF zY$iHG2aP)infqYHkjk^iz+6H7ROmcc3^)1)jTkz5-0;d_Bb`c=z^4t;lK9uCprI&B zg`a>X=PRH5tvG&lkZJ9ed|7$0zE_*+7JA53HLnGr@!#9G&>QnvlKgBDBlEBr)ECg8 zFXwylu6Xw6;THn%^2c@PPh6qlv4*_S!6!4Zc=Z{Q?5E&CihOPva9YHxe}bhUsiJuG zD@aLYE^5J-5vyn5qC7Jc7vEK0kj&tRi}-oNaeQu-%8W$vn(;f-x07<=7kQGI@pv6l zSM}wY@%Xq*pYfH~Y#6@`eB9&Mgf*4XRC-PQKdICI2#va<$@J>_8denfz1m~pa`=ibv!9na4VS0jmHhAV8wq#`881TOqvd?Q zJK5nA=?bYdZh_Kg@~5Qm`;7XNmh!W4J+ULRrT%Goo}6jqb(n+C|DXYzC=1|oUTycr zUdg8T74P5zJt?_p0d7RMBs(lh&e?*On{h*mHx#wA;R!Q38-74=Wq!H)OJ&nkW`|Vf zq*!@6UYbk28B^^MWeJ9a{C&wUDoS!ax?#5<2~ z%V&H)gvodvAMX+4gT`Q3EO*zZ(ud&7M!dXyL1EoaFm`$}{Y%*^c(cGUX4my(M}8G2 z{^6CjU*c1X5M%k$@9_0*7H@f!MU>Z7I{>VUFTeKzu~JT^|ccMJ`L4>FeErB3~-T(&9X<76`|K?Y+ml6&DLas5qH z`Tf!0eRMAq*Buuq!X}%xQy0f8S!dg6HQEVJkkL+W<5xBCv1e90p&_u^}z*k{A5+1Rwv z2K~=%v>ObSc_5kocNvz!Y$q{W+vzpH{KG`J*|yVad9LN2w0@^mP-ymdO{FD|u(a zSRm+YuiH2K@kz)&m}cTNk3prEzBm?oKk`%CrQ}Os>`mt5M?rD7X}&kFxs@Uvelndi zUNeu^bC%<)b2QAwvHDkZeuwtzwS-<|f$<05To9kS5=qH4JfEKvm@j{7)}ZgiYwjjH zyezf)HZJqfrBDc9|2MR1{sDKm4a6Ee5-jCX0hP?QU2}+EHLW1iiy{hLqQ!+)8+R* zzN_nkxYUEtP%!&v=Q~{$r9Z&S;GQgwx{XF5yA;Q(U2LVXZK{976Dlt=ewCNGWSzID zmuNs3V+0`w0W<_%UV3)T`&j76S5f%Iku{y)NV@No*Ua|PTvGQIGWGovMdSJi zqwN}eu!E5et*xJPr}FlPJl++*0E@nxAmdflW9sR{L+#?aHKVYZOo!z$j2y|^_xD^!`)|5eCkxZIDjAT)N-4xW4K5v(`%iVo|Ejb zE{Ot^bK+W&U-v7wC{S6ahn1kbxCw?5wazR>LBkhTnCJM5ef%*7V_ayFj*sjPN~O`) zdKbzs=ID0?Xb=22O#MfG{|I$=*o!-BxZfW#KG>`>hoo59zPTwpI-m1xe%&iDm;0r% zvx4dSpT2{1z|X(pJH7Z5-?L-XOp+CS$720Ki4a)ZJxOOOMCZ*j{zm^z&%virBk^+; zUFKj7UO5_05%c!ng_h4wF5)i>JIO`I#7wCDN|zq-nk(SoDR)76x}ZFL43-3=Fh3r` z(X{gy`tt(ldv8=W_tI~1sz5QUt7EQ6x}SJf`hw};|JAoAou;b+{Mpsn_n=% z_t%;6=uT_AOgWs9KVG2PF_S}k*x8}I++D>VF5t@zp4>lm#Ncr+bbB>lRN}+k{wQOA zYC|c#MQ8^gi+V^Y5oVRL`a=3;sO9Fyr}jm`lj)Dbo`y{8Qe@Vq4!{ikPW%e_r4klz z(IPITJhVm7t+mNkc`urNj(Y;Us31R}gq{E5a@_M^rPl+uBfL|=w}mBj_%tw?esBDM zx|d+BjGyH$##>WAm;xNT88Q>E+2E1(4)TIWSjLV?^p-!7lRt=wzVT1i-@^NXto-Zh zQ1+}8Ymq1K`oycxVe8BMh);Itql99TMpR@8RWe#gn zKr1oDE>)+LRcppWjUQaUusr>Plmj1<#;cEkpV{>@a@Eo-tgnJbl;#@@0x+I`|H1z< z`@#DzIXc_>u;Ny)F-~*!dr*X8ZO8eXOONsWt~lg(MnmnM|H1A2`EdLG7pMPaBJ{qi z_)sqJzOKjswbY!eyuj}Y#FTk(yOJL#e`mZ7?o*0({!e~aM!zdrKWVvjyA_lR{ElvS zJlyX1`E_fhk*B~QRudZaDwab(t zjOF}AVnWNyj}9MIskC^fqd^kq`LyYVd61WTfTq86qO8V$AN3kkYy1z!3pKu(@fI52 z!gvur1#q0Ej?0Vodg01NC%uTsMOVGZlZ#Tlh{}bh7X@ggH)rpF`H=T zK`!;~5Np<#mzN;EV}7%f&qatY6C9`60KytQgQ#ZPtY6?2&CcwF^n7QhS_C|r@;{!* zb0V%-C63nYtP}94Id8h<4PnO{BaT459E5UuwNbtZ15fy;CGud?A8ec8R$=qSx%QOJnx{33qV&A>@C^=D54|)v)=g;=gY5vmb;fG_MtR zFiC@FF$u2$;m;%ueV0k3I?ir9?bB&@25xlc$j;#4Q+9BhM|MBZb?`~O<77n=yb4ZM z>uzmVI83M@XD-N2yge?}6y8Pg z6)n6ELRczMks?7@gLsWh1y#EBkkRKkyK!x-f<=t%*51EXmLo&e?q!WQdNpft=<86_ zti@sL|IOg=IEG{;9Np-rIgZnYI^33L)L?LF`z9RKarb6Y%d=S?6CZpQq)hzWa~Urd z&R91Ev6FDLn}k$HQ!CtakTTMyCN3wmj|fb3C)(t8Y-iL+6bWKPEHUOcxPdruEK%rw z0H8Thhli7BE)$xwuUs^9@qU=ot`@2joHaEQM@&ylYyr$|FT_3F)x3yP8~%aW#=Vgd zrC!7gv}B2ki-Y*2PCa68tZW&&*q?q`RLm~miVX? zKJhm}S0HsY5oT=iEE9yq$lnoD4-PR}D|Zfyts0WTYY+U0Yz{>eLez4e=qv0G;*hP$ zCgW3u$06+!aHjb@Q6&RG;vAto2uM3LA$2UpFA)6oZQ_-Jukvv*mD86@C{ALk;4v)D zR6pxB!IQx=g17ha1Bvrw@M{G3e4LG|?Wy+h)gi2^eO&C9@`+O?ZW5f_spN=xJZY7; z`cUB806mFAy~XEfJ*aCh6yki4-n2xgGqX-SEC>gMgXQ`;*R2QTN1t{GlUqIIx;w$~ zacC~msbu7C^^m&Ge3;J>|5MJH!lA>tmjRz@IgY}^1g5{aGXdRCSO%0s zhm1PcNsI}kUjwwjmsa@VK>8~{-}%z2yjoyxPq}{p%8Q#an7qYG=Wm4f0MwSSV zB!5Fl23g+?93dsR369)<0U=TtCYj>v&sT|st$?>7M~bg`te0-(9){$yY;je;cb=#} z8Q2*XH=6esh{K*c9?->vLlyfsfp=rQUk~Um3u|}R%I__l9mshR_&jp_QaXnYs&o4Pg{%%fVypSEzqB-3s9O(>gfgj*=LY?8UfO8D+6MasoGdv$~&Idl; z=LDUhRZpo?$?Iz1xA>eOuU7p7&eOmbWpP47k67QTL%?1J<~pD4k1VE5ehAEK+zgW- zj@b)xqJl|#Xt;IoAoD)!2NI31*iw*H%DGLLJlAz4SL}n zK}(cFW@rO)xy^wuM(`)KJO%U{wjpBbWL?019L(1nV2gF3`i|gs)nxEB=o@?yX&5<$ zO5QwR$9Kd16%H+Vz|Jkfeu2o*pr5i05mSPr0`?d%uWW#wTY_@~k$XXZr2&y((W%Wn zDiHY?^mPr0NHIe0J~0q!jC<|9apacVuLDz-sz9VW=qEQI60DXFWHYq7P3BxS_b9NZ z`4WK}2BlYt2Yrc|VE?lLiJ(DrMg69j#VYv5W4!4CrYijzbv<-E}n(uQlt)B zEs>0Aj++4KARIDD>urK>ur4NA6$sny3DyZ@%3REHn!3`b&@|N@27Hv&X5eP*_m03* z0oCTfEd}08TkZ$+Xg1txSzzh{K%ZM!Zpm`T%fw-#ObYfhn0a^ts0H);v@xnzK->eQ zjy^G{ajmLfg8X}d)ZZscwKFH9ad4n<6iAo)#GI^KHI~^}Y`h7iM}4B7wG_*!y)00> z0L+iJW-GDPUV+*lK-%mRa}AvtXxu%4TOS+^)={g20*$30_4kPl8v1IWb`+SGZp}6& zdOslE1kwXOG1t�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�HaA)O$1_){@CnoG;`X)Mpn(07PY-us6NothXZLdFm-Wk zU&_#-i4p*g-6!C{2Nl;~fq9=~w@WaZSQ`SJ;JP8v1UhRy7&5P)*TGzt(-plkuL z^Ev>>TH1*A#_d|8H@>q#PArck!S!_WePi_@R_9^k3*mF zhfM}~E`?j$>u}=VfyVfN>FqW+DWTOpHZpZCDl0E!=Z3Envyd_mW%`olf^FsL#z|HH zk~}HLrUSVz%4mCyT|CL7(FQJ3=VJA^()UJZnB5<0Dqq@X%W6y1Z)pKYTa}U#08W1=;40I&AdV1WRra8lwd} zWZ~f%0B=a*n5XO)x&H~gA|Z)UzNEkifS?Y!QDT*d86jl@;puS?y6{JAHwbD$&1EDC z$*QJNlW2J?jHR|zEMV1O+cjpL9XZ!+tgo#1k2BO*Yp>qZ?ussRfzFI#8QwdeQ5`-n z9b7$f#?3w{IVB)XYgpsMR>rBBxTDxAOt=AY2G!i9C;GV&WLFi8aZc8i@mG&}IVoh3 z?WcT@wn5Bc#WZ0Lpm-O%W%NY}xjR-(_=JYz+G)#)>LxGsn~jqQ2`nJpQK3j$Blt#9 z{^>BhOA8!%Iz6C<5vaV%)HIQ2NIgmG8#ZXBXR<5&m7!M55$3a4w?6j*3j;&rfw*UM zRkKRfT82@mnI0M`o$rBt&#OYzU1IwkO^>!E!G~aQ)jQ}=EKiv&e9rhnBgA$r+9cb` zgqtvuW1o6ZB$s1j;1Qr#0dYen^+?DDD_~BmOY62m2_DByw-viPvwB>iBimin$8Rtz zJi!I8j0OY3DekH4teEN{A4=hg_cmee_2|0lW*x~~PDKS-JF8TmQfo9IzG7jYk!a~` zM=XrDfyI})vvVq1k!pHmGg(a{o=xIc9hNMUxU8&ueX${-Bt@1!Wm*cuDMiaK)dDaq zlC$#S_DxR4YRi;tYquTS9tp1WaA;J=#^4mKxlXc$nX-{T=4d1=sbtb1BUtsIf%t(l zD5gKwOJ~tVa+h=}qn7MCWts{Hu&YoBA!i&U-&DXd+S0wL0d2>>39kZ)8YO_kv zBc^jbVM}6(Bt)Ebl4lawk05`W+0#KvN)E^Ipk)D9 z%k=qQ5_u8Tq45I$u|p|@2QgQc`{q!=J+;>Dx3f^A>|)2m3vZT?;0w1D*a1#JFxkA6 zEU1jC^kR~Pt+t)iQ)5s0Wga6{a4tg?)N-s0L$}uUHGRNji)V_P>+BJ;sU7XW`SxKE`|FE&*D>qT@ zg_g5wbC~l3!Y0Fb#9OFR8WEiK%Amape;n0a4eFeVe)hRm3lN>B$mL3o_^aPt@8PH< zXb6W5l8h)0HHRY2=wg0Gok*gqc1s5=e{yea$bN>dg-5M~A0ynws@TnkxM)R^D%iSp7xJpSKpW(=ozk+j%Uq=5ni1dnl8xX z>6K}xg2DWmh$mF|q9+pNZ zlmZB|U~RF7c2?NfeJxboUE~v{oL46y?Gdu^$cdx-jR6qy9~|oEcLfF0gN6g8b6(vL zIeHZ>)`#OE%y$Ym^K+zXh>q=GVST3k*wgZd6jp-_elm$zkRCY#ARfW#5`+G7yESk* z4dO-w2Pfn2N`E$wU`oY^Lbzp^{_+(>f|KOG)Ev}v$jOcYYU9#s3u0?0Hv*z`gXrpy zQ=gRJHsAp{)iGI@U?(PPO%yvgZN+)>j4BzU4G94Vw3G3#(ml}n} z1jKk2C7OQ$K3B;;^Ow$Fteh*O2T$5HHVY2$fs3)yM zor;LiKRO>UZ-k`ec!&@#3)vM@hJ2}Bx64W93sv}Mo%U)?XQ|A%wsS=zcXS$r3u3ic zNhEWo3)MzCK0)tk4Kqu49^#~Y`XT|c%FffS*3kT1%I}3|CFj+RAAX^vnw2I*>l|j} zh2dFKdJ~Ovo1JC{6+|LJG;3x>M)WB-gv(*EYO704r$w(iB9_cbb4Z5@3zN;z8nm%x z)zmzBIodg(7kJ?D@62eMoTI3)F+&uBM#@nA;jPHbT3E~q%MY3pErl~Xhp1T zMBO5v1R@D4{k_-i)b$Cb%^c(`WILzqwL3NF=#AV)U!M!0!z~HCo|?6%67$eEh5A{# z6H^GqAwX}G&|iik=ffo4fc6o}Fz+8k4>gp$pw%OXgjSkY_Mr3WlIj&q;KfM<#uzz6 z7sooLz9Oxljo&Co0W{csMB?H2A*bz%gN!TV_7BucsVFAckLx>^_Ja~Ai><6S+Vy7N zb)e@M7s_mhswN3{108Lc&L!v2;19j9HX8u9#C_t0j08Beg-!0DvTSHk5hCfLT!Vf= zS@5LLlNKj+J0~!o!a=}h+gOOyqeK$F6jm0AE@`qMq_ecop0bBcsPbQNxm|JBnb3J3 zj+>Nzp|eq>+=FPUWABH-01C%L8+q$6yJhC!g(zwA>aWtI)JPCKG z^*L-dG9@Fjt7Vxqs|$Ey2J2}`_j9U3hQkJ-$5Ln3dAvkH-z7G0>$0VPFT0h^wUt^O zXHBoG^Tjg-_o7IV&?KvvCp-G8kC#fUg!l7{mOsdK0 zU7K|QwTNQG3~R9oE^Os03O`F{A{6F^vWAF{<|Ien`Jr!b`1fUm=yb#1n{;4m(RFT4nBMExP?i$lf;-92!G zP7{%GUaMZXkXNSRQP4V7Ae{b%%XeYBZljekHmxF^%vsDkI>vPYt$bDxK%*jg#!V=J zJW@hv#j!4uwmjd?)i&TN)lBZl%kGr@!s2n{R83t&hR$XH)sZg5i80h*`d`wQ`j^Uu zXsrRKq7F-8QIu7-nj&OgDi#aQR`6(L2vi#nfHh5iK&Y_?&BG3{ztP?(UtzUqKP*MI znBQEm${%OMVrGEfBoC$CM?p#WaTW7%?IJQKsZ>cT?5 zBT=QfZM8e7QXGc@I26zt1)9y~{l(DP1lL0_o(Rah8@Gr}Xg6*`i9PY;o~&#PY|T_H zy1kew7c$FHF_3KH$)$Qa7~P0ymdriAlpJHx~fRFMkL5BuC`miA|;#$ zbRw!6V+*hBIAyD(cF5N{GAYm0oF|B9=&md2WzE(xLX0Is1h8u*KrEJzBa3{tpC@Js z(Lyd9scVx#LiGo9fCo_VRaM%Xl5PN_B%=D2^&^XqC{dg3B9sjuCGSL0pZ=^OP}&~! z`QvykGhKl-R@d)R2C5ppy1*tu3EfDT`F81U=4rT4f$y|q`j|1T;k~<$Aln2S0cmli z0>ya|8F&)r$9&Y@Njf^VD~o=OJz^hH4h%T9GzWLQrjBQErZxIM(eJ zK3xvDF6m4ZsGBy3O1F~C<`Z?~5O{8JqbEo|(U}3>2OK6}_zbv+aXrSTbXvS4jbUr8 zDe$sIlS0_s!FGSK+g%}C3BK!!YOmr5p@>1`0(FkL#j?vt7)EO9gov)SC9>!`5@USU z!#YV=aIsywOX`uRl*-GIvg+CPDvqWC!I_C168hx058o0fj;uSPB=<=FptYpwLUNXl}oV5#D}fEMEt#R|y0v5Mv7VnC%m0+(f!1 zX1v;5stww(?g;9n>!Y#WS;EfrX4dQJb;5L@&bW!yGj2JbY{|Qk-@;9ZxC9%YZJcbe zL8r0IQC%%~$R(qy5{txwDmvmrj(c=P#TuLnBhK zDOW|G1jmDplB%Q+$UO<%Q6l6ZTwjjUMVx7gTvc=fmoXE@FeOv_DCx?Bo_L|j+u5uq~L2cj| z%n?}_h0>G~%9m+V4Vi(HW0_uX2(jJQ!OlRie(wzYF{$c(>8gfw*mA zgX6Uq#p|?8r8Zs0<~nU`fikRGG#Tsz5|%E5%p#G!Y;Tarwfiv=84!pt;9wQ#Nu8G= zEkG#np>>?n;JUvEJFUGw+xX7L@yRpaQc7u~)8BI8(%jsI`HR%vlAlH2HgW3IJk?=$ zcl)L|27R|D@s1^FI;&Fy7@Y7E;a4Apw$tugp5bgEphV0Sk+`=dsG7vX%#9*-MK zkc~(brP6?lXkWP0+o*AoOk8XN7-7!O3andoK4c&IWGWvRfJWBvTvgVK(!Dd# zy(f@ck9MWqRqCifED~yPIoF7kropPE7$g{?{=jCf*GNmKPXzHPRZ!x+R`j@7i%yDC zPu*RUJ{)_1*}%%DX^ut(Hq)J-dg5wm3~ibVaFPO|r-SAdsS(m?R{KCVRc?tLs87lm zJ}sY+q@&~q-2pNdDS%pCUFY-~$E#9iwA0%y{Rvz`#FYA|+)X(Q z2eGwA?yBL~+ya&6BFC7RHbybZKeo+CX(GdeoeA1KHJjXN9Aajcq=+OuFXF|zLL>Rq zJL!xAJCPeXS{QS#Jb%1={-Oy!-*O90(lWK}O6is=5|#vQC^oshIJyG_{t{Nm>Q|OZ zZf2pbLd35v*~aKWY99m7?A~EKh;wQX0~nVUB)342&|!UIR9Isqt68S{MOza&m76Ut z72n!gy`vu^#hHl}j6EJ&TsGNZhK7$EOuw8FspxLyTyZi8g-aaGmgH^w!=tW#lMJEM zsk4=t@@V0v)bU5>*ni6JJKRf0^z|`Pv^kYPtvsP2lx3qnWq4kh(VO|EJCleO51Agz z-IVEV5&VI!9;+=_8S2E@stHT(DB;hhn?bIh<17x?PZSf|9?oJsu!wHN=P|{I&p0My zGF`M%^IBRuN&<+)>1ZlZZB;QTnIn!w8;`u>PQL{OAhXQ5v@Xe+8Ii4s-S zRE_NrTD$bfKx0j1QnSq;ciDMqSX)s?(cEE)DwQ7KmTffBYV~S$6{)A$xcYu1LyVi` z@}`kwGHz!OEmnucr5@d6*T-s&N*CEk-CiweL~fa9Rzk|MdNj+m`yNKKKByV7m$Ydr7ox%07Dn0<17=dfy5ooLf~tR{;VkEX z07nK{80Jd@HnYc_ApQ+XnY^P@ic*q{>zE+8Q1@W=G zry^Av7gshEs{@gen%`0_#jIIVh+T8=mokkhj6Dt=#$7F-A3N(EZkJ`eY%#5ovIeAE zV^%esT$$YLt#9SZG3sd+?TxG~ZKI_RO6k)xRC?%ds^&@?cJMy{cwo1h(vBVA7# zlhqJtLI_D`_(SpekL(Ri6oZWzIg2HG`u42N@gyx1N%!#m0F#0GLwkS$QcWT22-0Jl zVptZJHwTU9n0gW_C=9bHvZ7fLQ}^lI`9(0tdN|#F9^sm9=U5$GP5R>5LZp*Fi+!gg zPm;ecR@|1(pg}1iTiZj!ANn|VdQMkvj?qInz}4fVr^4CvyL3D5vE=L-f2&X^)`e3r zzBpSi+!WPQs^&UsDfU3bWzKM=1vWC?LKg)>^csI(T0_VoE>ZZKGm1@kk9!BvO0cZZ zDml>@frVNQbt%`sP=YNZk4Z8<9XpNt#shk#66GrcUFBBMR?bJIsgCe@U{6>lNN-=* zY$JdSP!YE=+9G6AG|)7SYNFi!`Aeu40=$SVMwyFJuUO^I7G@0onQ|9gt{n~430cG> zWj*=;g;XkUAb0MhDMuV!ESFfV}qM+ zLHtLk9Fg6Ph>MFhAD!w_3lclrjU+`1FwYJ4&!kp!QJ^2V7|sX=QikTFoGz@g4evg7 z@%TMVaKo!1es`LCf@56P9Zx_YJlI3$!2 zs*6H^NS9shu0GW4p^_e=!uAd$&$Hd<3<)@%4jzS-p&aZwdI>ZnD`th}NDH+<4Jx?I z!nE_8uiky;{E6zh%ECFlATF)Ps7p26biA6g$&V2}^`v`Ib0f;?=Z0sJ3W>NGo`M7> zK1%}B z<-n4v*4UJ?+3JJZ(p^;EpkRGicdCwG3S)RbqDZudy!()b)Z`#oCtUJ_>l{JsA$>-l zKa`Jms7eXJ#E<$EK$!-vcGn&5JE z6BR&SsBXgFZAvo`kjI>6GUFDYx#))zt`fBSmd13w>tz3%# z29KHynaY_2kJ}ZyVs%5qaqvr`n+Dx7CSYYeirMWIPdi%6b)RFcRWYHyW!_@5$g&4#Wa>CO*`!zQ{52-jD@AtNV-O=Qk<+tYLQcEBuxN^74W(b0YH*MAGSnH zQ(cMWPAnIoCpy*svH&0i)U>Fv@RH5erh}mAHG? zEENzHw;mHv5j<7PJ&@`ySk!8+#Cedt--M;XsPqFe+4QmCbN zH1@8VnHh~xQfVg32x_zk^ z2IW1ow5_zgJR3%YNYqu)w?rK6@$>tTrcV*wXE$Tw-j8$=KBL?LzclAq+G378qcnIp zG0I{x08)lmweRD$Q=&l^l_CWAx<_yk;YNaMrc8}bFmx;pj}wM&NXFdYawqgOXvz_$ zF6xyLgB3Rkic@pB&#E#VbGaBCJrV}p&LXj>giUAZ05Dfapoc>bu{65Ec^2&;muP+`s@z^{RIH9h~95}hcI)t9y72pwZ=k5+CLyfv0oWF3fdU3vT>J*)2 z5{>Q&QS}~6rDnM7)bNG_?g>}!65$LCiUR^Qn;`Q6hx%wBnlm|a(&-bOWI;AQ;07%W zP-j~4nsi#weMwG5nOy_WyL0XKZUTx8I zevx1BPLs>!d?HHY0>%$J+$8JL*Un>jgmK2LPeq*;Yy~QU7W6m*6vJyJPe+^Ts)yxX z6G@pX4JCc-J+itOdV3-4ve;gQonoqpchq=N%1F_rXi&qboS?JQ@z`y1Ie9#;j%4KA z%@j`A%_)qS2!c4f{tT~S3`yFNA)V_0i(cw=*Vj-G3AU~^8sLV0w=R%_kUl|v|89vSV~w$UpcPsvR; zv`XQQd?={d;%5BS-ZIb+AVtv{x!C4nRkSCYal5_r$4J7%Zrma^q20I%0l~nQB@lMV zg!-5noHPq6tXQHGRXJaPzTKUidg4FIkr#l@@A}Nbgy@&s)K$Uag<#)Zni2<*R3va% z=@*%Z@RM%SMRB=()SH!eIY-4F1c0rDM#MBTNZ4cHFgJ4C%B>v#`1jC4C9Hcln+8s%>0(Fn%sA(~Cs&1_I9pMtX)}D)C8*+LmhgqD~Mg%Cy zH!Hal^n@E{*Xx|j>}MTS=7|;Ze_!8#%|z1==SdK`{67$06rAh74_U32Ry*1%Smn+8 zOEt5!2NmJwk<27}+!*`~V@|pyBMSmwlPV4;{4s%9p_m2Wk95GzId_JU!|+w%x_$m( zxKy7%3RmazN2Zr#Sl&9U-Wc)NMhz)Ye?Ew>n?kZXW?}IfFLFg&$#fH z55Lzb_tdeq0`^+y!*7@5Xgl*#iD74HTRuyN6;M$md{t$eM0i50zH0RfIjp^Io7H?3 zrVfkuG+T673X5C94b*>;8cpjICuB{!LXMNB;wO&`6I2M#M6kY6m6D(oasw2;7H^ut zpK9pF?%1r<2M{Bs-^hjLF6gYK9kHae-=b1Rh&J-lh(w;WcM_V2Ia4*&vdYXJfs4?q zF$DI;{ADpWiBOb1Ob5rnsH0=mSGdu$v?Y)DvLoqi%9YT08hB!@8wfa3C@r2AB(c4r zP93|nuz-yAvuB4esn_lZN3;0}h>P@zF_q!TS#=avs>rIIEhSpI`6{%8Ffl?$;*hcD zWP$SBE#T}ERUDB6O;T}Hy`{YmOG1x>!ZweWm82a`JJsLxVz5^^1*X9yhlRL}}0=G}Ho|!{%*hpD4V(tpZXis6(7@ zxmkZewJ4OO)X$#C9|UfzFq=DZAEyEc=dH4fOoHO@ucZ4F_A zj?@E`cbpZV_f#&(Q|`#4pqxrF{IRy~(WR-GS*(3k9+qM@S6hS0Z0{mq49%Lfq+$Sq zeSx{Uc9C{Ki;Y}&fZQpf0lW%MtUV0*k5<0}@+&&EH9o`)+aw`n$)=F)Mq5vEC0utc zgcpy;3e}w<=vHuRT(7u1S0A!f7OHG}s#Xtu?Yoj`Bp6tVzG{TjZ!e6f>6E`z7D`x> z?ZC6lW(ngk0&0Uha-?0twI&0~8sI3q6156GVr>)I&CUV!p|5@F-(V>gxaR!>zO>CF zTzxi@{pHD}x@vkw?H)c_aKH86_umipTNaXv=ecFG{g`xUGh|I z0;I?gnhy2~3pGC=u1ndyht-+Xt6mdeGJrs`dvQJury4X7*bUEM^>nga?{fP9VjmSY`8`fMyaNI)8j?ua)tl8InavJHa+ z?$okcB+^~E{#Kt+278JrPsd>rpV8%OvS4RoOr*+4k_FieG8-jbmMQEl2^CZWFkH$| zt{Ky`PfjW)S0l_5U9&NI5fNY5K%OC3htZN9=X6_mMuA8vHEwisoGO;K z22bjf4Dlvn-Yj3wj;sl|V_P?C4^)BGxUhIaFjAWj6uYB&>)0jU%QHl6DL6-ZaicBT zN=~~=4Ncn&;)966BYFT6BkINPMjlH957>=c#MWXrZldyWT7xD~N^ob)n%b^b*9zp~ zTFCZ-zl4K>mRT4$wv1Ak){aE7H&&25%RV4ZB&9TUyKSm()5jFyl1S4Bm(MPiP-X#=lD(@k5oy}mams4hxwtw!QIFNd4l2;kRW!+3q7Z}ueVv9M*^7Yb z`8EDq!g_K8!gK9akcew)jITy<2wfwupUN*7AyWvkQr@{+v#d~(1n@}&mK z1DTvOH5=O4p)E|INn;6ja^k0;tkd)pQj8h7jkY&qt`6NyE=b z*nvYw1;pAW3_H`7Fp1kQX@L8~n1 z93kQ}kv$cvI^zv%v?GAt?(_4~);(mqcm#dyMjTxc%Waur z!G1(@b>p^7i7BO$WW6vXgq1|tpBYl?1?{7X>p!#*!a2@~KmycS^{V}?&SF>Dk$PAq zC7pH>`Wt1>08BTsnhv{gb%<~IrODm=nU>fLsqT(QS}_VECc6>BuicYjh@>BjPp6U+ zj!;y9L#V(!AiU^E1){NOTR^eQ6K!M#v={j>O)g92U`n}x1W}n1{leih9|?RIkZz+x zGA2r40!g?m!#3Wd(hLPsSmisCwQFkfywVZInNDE|b%}FICB~-GaBM?83tr2u z;nWJ{3qpesRgKM}HLU@_iD2vlEtS$y@J+;?YMxM^r}-^u_KvT+P6_#S#PqaBuY`U zvSttI?gNelQO!gXC&nI)#X=$-43zva4P6HaDF9{Q1of-NGUC!4P}emCMq=A=;~r-* zd>hVh{Fr@)g|VQ_S;Sf(1FM5&Bz(g~Yltm~o`nQYv{l1IZ5qm+hp)qhpVVaq1?=bq zP8@`V-r?Tl7(l2!KE{kCWnzym97jDGbi2t!x0^PWMx+m#gD^Ax38!YLIq!&@X4x23 zkwE+OV{!|~R1Z1k#7H}vFZzk7`k^5_WW}4osRb4~uT_toJzJf>bbbM+8=!LrVi+z7N9Slebw-DyrtNdOtPE6><%sRz&Mlv(&3`U(lF zXq5s6+2}&)@^p>G6k=>-Y)D%LP5*7*HlvS$>@q~o%Unh*=l(zj?nLykufd`RXCMnS zI|ix4T9%6m+c z)7agOK6}uE%B!Yan0yW4~b-yb3SRzDnu(PEj3146&7H=2T zSM}2QGv_b7o)x1CKg{gI3Z3n4&NusL5JPpB6q3=?+?hql{j@mEGkn|uhd2^q43dkN z@@1N#feLl5`O<;YJ;3aV7&_EK2YJ&fK(d$`h`2dGzZgG%x}7-$e@agx0oZC#d3P5^ zM4fSwli1Rtag=+-Ij7^n&w=<*)DT7;8VAyGF^It>)rOlaHAevY#L2c!6RNO(i6teD zrHCjWP)tB2%s;B`&T&H>E=!_bXIw?ZYwN4;jFgU5`4kj@MZG?bz2Rd$bJg?fogBAn z*c}$JMmx2aX*BDY{|eAo2vWY`_S0>3tru(tV7KkA%sXl&&ajO`DKUX_n$p@p;7f=P+guQlM1&OoJboU58b{ns_`qz1B9U->OWBR&mBXpF}Mn zRJhW^G;v&IGP$`y&`J$GTl=*Zypl7`tqU#oN^>6d>dhd?G-JJ+BrFo*`;qWP?yaeBDS`L?zO2g6MhJ!2ydGy=E(17zK-2XrB?mMuGV*MZgNkT_MlO`x#I+D-@k&@7) zcLan$s8Rx<7wJvuNH2oY1wo2{C`~C!7eQ21l#7apf`TZBerNWXck-NfvX*=O{Qmgu zy)m3up7ZSNoIQJHW@q>4_pNt&Qi|w(xzykM`q%%DP7@{ny2_EkjJ=vKW-?!J*d^f> zJTd_wVdPu7t#U*PK9ypo;uVwH{)>rEX8*ER>ijzmp%V6b26tHcSKC)f4s~96h3m?A-;Tn;Dl2zAuAR!C$rkldqYCmWDnLgllSjj-SCFR0)Sc^TmDU-lgU~x8}Xo zL4VDCyg7^0x4*fd#k+C2_uXW6)V4#ThV|RnmXdUaJ9u3z`xrA?;u?dF}D5eD0k^WLFbbA}-K?zXw4!hNM~!eJq(6PI{K&s3^HA=^poGt<$W#aKsT(Vc7Y^^<|H#Ta3aPpGoScz<0f{-iMgGY{RV{i z?mh5*IREu{Q{q&I|8dfUI_+qy)GLtB*;I^xnW2;9FChB!>1P$asV(MW?7`+f!{#f! zy&h%4c+P;JV^ia<^*fc;7gk`jCMZgue@pItpWLlS_=*jg3v7-t6}?VfOrHUD%|tIV z!&7dV7v0K6#rb@1N;N1yHJ~U$onQ`L8l=jSa*JSUm_Fpxl zW!N}oNRQqFd;e(*B>D1secn#?ELq|Wi~RdSUUaODuF=Jgy!-W;yf|~vF!$t2yz8jB zu~!%0X#(n&zNWU!(4Lt&IK-|f@oTgOCUZO2e{i*t*GrZrp&8_;Q8&W=CsGb2I3By< zLg?A~c=_r31+oHS0f{QY~8{AG*RwYUHB(i_wG_8qElCruLC447&Y zd3Z?XLwvKBEp_3 z#F+TsIvbwcw|crlbZFWo&WzLA)lmt$n7*88rh27wEyaW`-G6uSx;HYR`@wbxH@95D zX;Jh3!wug3$I||f26>vro9;_zb2`rZK3Fu!=yERK)}A-+;&WwXOl;4A<~{;uU^b># z=fv;Q_`3u3iB~*${e=IvZNQiD%GrX1{Vk{!?RDhLCzGCiZMFbk1zFY(CYsMfd(SvM zbL$^_o&4oapxq|t$wnr@cd0|fn^l|sO zO?;XD^lg>c$HB3oM<4SUX>V-h9k5*MH2H=%8mGygo(*c`datN=i+J-Q+HWT^FQRu- zUa4g|5V!_`*S|)~&Rn3!Hxj~o{J$t%!uh%2Qx3K?32$26+f6{%a?^1hc^@#rQG6Lx z!la+xaRa2ER(lLQ*%eCIxz#pOO~lr)I9Y8_wlAGKS>3FLj!kA%Q>+YtLo^fhuba;-5Vb#O) zj!RKHyjp0Rbm4ichvzVvYlNq%o<3lo*UrY8CD#1-JZ~gD&3oPp-m?OMCP|+cW!D!K zUb-hgFUrIobI)6+o;N+TUU-gaVbS4vr>3YLUSwj*>fxowrHTsg7}_#jcxfYM3u=Vt zFk6&Z?gvbr*=2+INi27rgzb$o+uMi=kkQ1BcF#*`pKO*A=BJ~xTISzgE>lAjLrt!6 zVP-Qrr}L_;x>scZyAAgBvdjOv4d-2+AtqPiHbez&Lo{teV-uS()UG`cXcd3tY~e zHnCakdWJYFWqzZ4GeXUC-Fl*vtS2;VXh^c_F?(CU+i#A!oFmO+J>-yU#p#^jz?+UIZfeOurC zZI@l2cf6}@_apE46FNfPw&sWtW$V$#kNAi28~$PZg?|ul>*T&v=09dhZo7-Pzh$xk zUR^dysLLpyzuDt?NB6gS_IX~NBpy%tB~(dt`sxY)uAaV*30>fxx8EL<%=7g7Jjp&A z7q%)Sxuc1Bs@-2VyIft&Ywo@5f0b`@NZ8AN^1ia=tC-sS$1MMA`E0K7F4y`$-PR~M zb~X-em+TR(R{B6Slk1er^@__i-5wvO+2gSLEHlTCajER5Z`-7wWlyFL)HgXUx*VZC z??tcvqwR6Xl_@UtZn9;nnLbd(t{+72y{0;@3@?|lI|1U@jLNY>uqDbaI;T*l6=nU>21-I z`7pBwqF!cQv1!eJ%rew|)|h?Iy(YEnYm&JA_BE-S^fjrQesEH(o<7Q;DWh(Qc*keE zz7O2`ywA%&U0lN{aP-*H_W3FDjk+k6Eg??VD!zxv93DH!($>@FL?<)(h_# zR>yn**y5UxR#PN%7<@9leQoQz=Uz7-^ndHMJ(VhKe#T_0+w8s4p8de(tZd8k7t2HD z?(@9e@JM2y z`d3(>h4tH#(5j^ZqA=3@9n$` zdA#%Pik9Wmz{4RU+4S~`6lNV$hSMc zPQKguJ@Wm|Lqmf9aM*b|^5f1QBtPT4H2Fu)tC4^1ydL>w=dH-EI`2k)!*fEw>wW-=wWgvlpll0St7TtlD!5*Ba`-z4rDcuAb!?Gg|c;CCR-cVsv11y^<-g|R z+09FmTznB9ujAuy`{ZwB;%)uxbLEe9zeoDyS>fWbpEq&w2YuqNx_CV%WS^43>{7{X zS3w_t!pH3xg)M(IvmU!_kY9n}KJjyW{J6_=-Q~d^{FP7qFD@Q$jaqKKc}$}*x$SCb z+?KPkd7fS5xE2WX_KBb5E4!N)V0Lr-$sRno_+`gj8$Z*JVyC;F;6r8)!gKJmj`JQ_51 z4ACyDeB$5m@iRXDosXw9huY-oA)k*w?&BSd+wCpw4!L%`(k_#H;+OmQTQ1LLm&cA@ z+U2}Yd?s@sO|JZ9e7wGo_xACLKEBwv-QK*e>tx47?XuJPOxJLa=#%HJk7qL< zX~}KZqds22$E*5yl#jPJ?(Mf(rQ9h0B%kf;ZZ{UEt| z$mipgeY~BIPxkR?KK_D_FE(!LEn{xkPV^hza9*1H3+Ii=)1{X@apc8}Csz;ET>MNI zze`ph=`*`a6ZG7T5gE#JJp7X46`?_3r>$PL7c9~~9xpJ=b@oheS!pFb# z@f$uKYKCT#E9Zm8^Q&T>geW{;cu*=6_glZZSs| zx8CCN7jI0{{IiDf* zs@Lz(A%0+|4t4GQw4UkGzf|YAxIn4;HA~z7MA-jC+W(ZX|0!$#Q{Mikg8ffL`=3ho zKM@k`g-3Yt5#AFbyk|s|^J2UwMtIMR@SYmsJvY*OZltWrdv2un+(_@ak=}D7z2`=H z&yDn+8|gi_jQ89!-gC=HIlbqW@t#|zoXlFmq=~;f2Q#XiOkLtBhZS-Aefwuuca3V* zYG&p^H?Ll!ezbR8N5V`FneZWVvoQ%seMw}q9^HD!B)^`B3Q6uYU;?9Bl`>zOUCLb0 zJY+}*^99uLefz}p>M>wwhe4(7W+u+X!fjRzMwCv>6k+dVZ)YFbdvQefNSr@oE+A90 zN1`HJq4ZND-BYE|W=2bkKK6^W%&f_Ha}!Pbe6FjAvTnw7&ICFE7F4cR- z>8qk+y{R%uGDUi~-%mDAM1&;rB6KRBOwIc?HMi}E>)+Q*LX^!+c)4mu*!el~a>+d! z%G&D@bW&GO=H?kZV?DVFNIE~&tgDRq{^g)&dv#}bj{)Yw^@Lk7MMk>qBInX@T}9UJ zoUmCHW4jFM(YZ_Qn(p;1Yc}1^8tp%@vz>kxQO@3p$xKLVZ04Q!=sVC&M@xF=iHHbw z%cj37Kt)_0Co7eTER%daCNuLtxq3|gj({c-JCn~>ubSGXSIS-g%avBPx!IScyy{I9 z+oQLu61;is_ZHjGI^Mlr6YKe(UK?Qw=FPn{Q;+clNoBpMc6c9p^Y6U<(ab)zR}kVI zYX5EAT}qg+>v}U#?Ijf66Qk|bz25(k&$|{kXojYDZ1UbC2}y$fj)Q>xtCv)PErfd* z+sk|fc`~n=zG53!tS57bsFcjjT%=lEmD@R!_EL(3x~3P@-5T1I(z|3W@hTGcN}E4; z_s&WDgS&BJ!gisS-32W{HAdAM^tYhek|Vub_{}?)-GqjH`}gKIjwwNzI5T@*A4$B4 zi1rWWpjy{lVeT%kQDx)oW$hbSYA5L%H!`AnTwJfAd~D&8xEs=#awdP93h%R_oB2Xm zx=P2q?zS3}?p&P**^8jO9iyE0-5C)P_R!NmHrih0Wp6yBp6T7<+8uUz>w<2|#(#_` zpYZJ??vqAVnfMltjEOgsmXp0GsciSY@dN61jgD^Iyn|dikgzF1Ul-e@x1AGg3LG2b z?dg36+j-C47cB67laqZTL{v;DWWurC@8yapYhHpUyY%nVrI&Y?V%{7nv)L_BX0DOo z`;bW0m$glnpx2_3SxZg1T~WeRWD^k6xwHGiL|YTy{aJ%vardHCi0L!5xtRi6w^MSv zXF?^`jIjH!x5voEVU3?`?#-i*?>n%+xod#A)Fa;Bbu_L=Y`{!nmO4(-hOoCzsoOiI zo6nt9e2)8EEfMxDm{9wwYB|u>jJJ!r=&i?Z+3lev)jA4XS1O2fBRt{ImOKi})_F_V3NiaW(lp z-qyC=vHY^wrlkFwdLa_0!2j(QdZeuVzj&r=-v0ZSt=U^m$fd-MletBy`*Iep@F=$- zvajJ&7A+e*PI_!l_={?#!`$nIhw4q4{7Z&FT_ykG)%Sm1FXpzn_Rx~}LjLJh5dZW$ zI7~ahTpnkSM6N}UxE?pl|DR@*dwe#1()$$SS5tox!{6Q}X+6kAe2K;TyYGa5T7FX< z=GuF&M(ip(bRH68zQC@V`3eJbLAkx6!IS=7yl(|?kIbFp@z_z#3gHJ+6<~;;5}e3;$1BZtvpic2a&V zBP!PPz9PrmiAQcm+aSh%jj7#cv&zJau;RPeyB(Q#h`9$uOfP%S{Z2mHZ}!-x&Ac%p zURT+=_6{-L=c#M9B|_3;zeLksYTh8`n#du^cN-Eu0=(9CY#?DKq8;9CVt#)6Ll$>> z$vbV`RQZ$U-*&O_EzA$%+gmh?^_J!b-ov6%0JUM(kuX0@;%qOyW^m^NjAfa-kl&D%Y<|ALTkf&Li0T9aWx*D!z;I>B@DUc|N}0$G0fg^{`L5 z&VR(mPbt@VE-Ke~zEQ5@A8_Z>Z9VAv%&XiU6Hw1ZlV}4N2#g+F} zUQxN;-fGJAdh7UjJ0Fi#uD7eNa-Dy*a{C#9@^4k%U-?1h@yahMAD|r9X4yY$uVCgO z*~LtA2n;koSTC;0vhjnIxAlqd?wsT8{3^THw@qI2gZy@Wm0fK7VDkfiRk>d8VV^uF zRlLsgrE;Ao%*;2ki(RjslZN$XQ9e|8F6G0N7f?Q2d2!_fFAM@~QgIXXa_y#nziX z?iEu$#{3PhR~zMHm5)+BPWcSwdjHv>e7uT3tbBs@8in#>l>|H*M9@$dVg!7T<5X#((Gc(sq=JGuJiQs@nJqb*2iD;@iofz ze!fk)F8^WWy8Q1e*X93Ixz1zf&)J3R;YZ~<&u>1S(#$_Y9vxpxd8`S*>)X(|eP85P z-bTewQ68iGIpuwo>-7%y@mW5;P`R%EmCAK~JKxSOw%+u1-B7OE;lC=^c`}*#aCWhI zI+`EUPa)+~m6uem^VoTNcH#20Q{K`19r^n!pQe16a-DyykH4aPy2`U#xjqhjqFf&b z?kb<5@)R`l^Xy``OXrVLuJgB3u3wii%Jq7eD%b1XrCc9Z-%&omb$$M>T*s#g zH7gVnEm+(wYbn?DyimDb?`j`^)yMbv_yr&T&c{<_ zNUR@So^a*5{Ed|B<4eA4)0X1kE>^tcQj=}J%6TL$KO(} z>-i5KPn*dkHH+O|9iLgbet+dwuHy?T*YCSh%5{82AFrWYueY9ZoxizqoxhXvnP%Hi zZ@rbzQa(_*&NJJ`7b(~8msQGjo=rZ!%f}BW*Y$8rxz7KAa$P^4DcAAe`1p^?^?L6p z*ZEVJdDwR0{pUU(e?Ymew>HXkIb)RT_+H9&{0JZ4s=SXWFZPFh%3n}^M7hp?O8HzB ze?j>?<(16*Z@bv~nQwlu-Yv=(DBr7Gj~g6TuFF&50rO%LIA&a+Or-mce`>->9^>-_I3*YT&7 z>-ey2UNw02zeH_Uxbhatvnkj4A6C9p#TQdPPx&O}^OfIGuJ^0d*-emH?0%x_Cxdcb zo>9v6eznub&nnmX@6X|_Hp%|qz{iLC_)9*1TDjgIE-2UA^&jQ>b-bcn=lNB+-mX+R z6Sqs}4_B`9=Txra^C{Qyjg-G=R)zOV7v;;9_i}E>9||ZRq~cd7pQ8LF<+GH(tbDO@ zUH;M!njo{-{Ysa!m-2q*Zz%s%Cde$d9<+!1_=C#z=TRZ$dc7r;>-^=E&oS#pJx3{Dth}9byPp(P9;4z{ zDetO$weo%{Ptg9R;@7D7;mUQMsmk?sy`a2}%JZUf9lu7oj^CnO$G@Rm#~)O#pXXr>pUslrIU8OI?p8KI?rz9I?qAnI!|qPJu7e5aOFDB1m!x7YaW=z`bhHwFPzsrFpKrw<_G?0Uh}{#9A7Q3 z$DY4w{)zZH%60xW%HLA)G0Js(KjnK={7~gOexmZdDt?jjCdyw@-b(o<wkyx zou*vaAHG%IRr#;Vb$tH(cB_)^Z&iG}fsa4!<9&U6uyVbD!yf*#BwfB-dVYR-#w#T zm*;}=w^g37M-ubv&!dNx>->)>*ZE5+*ZWl&<@$52rgEL z+vwx_ef)hNzvSb`3Mba5K7M}aW80)7zb5ZlaEY>@kAG|MeE7$o;D?hH{t0>p6W0dj}D!#SylgdXc@2LDa<+?nJ zm7h}aYn1EqY*nuF>{otT<+-6;A3uLpzC*>QD`p;;#nz{OeRKJE2_LVdT$jJ5k2mn~ zRzBXr$Ga(SW3~bN!%*eAJX4hG?OpHVDT>?LNm@S{l(_mq^7ATww{x3+wDQy?%>%R8*H`B+sa)sprd;PgsQg2d3+24vJk*#y zw8LwcG7rpR*L%kNzwQhRUhlik?RGU%d9FFP>$QhK(^)7a9*K6Oh@FOaZUhj9x^?J?SV7$eaN3XZ8bGzQo<_G!Xo!j-=w=#UW%5z5f zJIeKX)0Q3Vx`xeJ~8$0LyYJhUR-d)P|dQUsI>+P!Y-*s-+Yv1BnZ;|rmfmwLH^_A=O&Qh+| zyUw{?Z+G*9{AZlo_1d>M9Jj*d^%ksPg3MxFueXPCz1}g-?RtBfALM_uuxQuD7@OLH=>h?RxE77QR{K(d+#{xn6J1O6JLC;q{t3 zDS3-sZ=Cr-{)oJyp^Cqu{JiqCkC_K%vFm-u{2+fB=XSkily`J) z%dgivUb$ZHyUO)?FF3dBeOBfFRmE>rp02WaU>3XH?dAvN%%c3L@{(1|1GCupbLI!} z4V3G0&QPw)S>bV;Me=-Xej`tF*M@R6|axaXH>jCKIf<@>$UlH`=pHXP~*CNGDO99Fn`1A zI7h|ncGP(luiKeFsrVu)PlYJ+z$~^r?adGJH+62yQ&jnI72izxJQc6o&po0|kXcfg zAN_tA?&H&x?>EmudFCo_qkKj!^S~@NzkZ*-=;NDwe6Nq+uoYkyo4=d+L3wVawkkf# z{D$ZAH0k!b!+DZ=ctyqURC#tN*Y$S9$3OS+TRxs8ME=09OL-sH*AeUTjPQwn(Z}`n z?l(n1z5V}ndpoN7pRcy}fO362PowHh$CvZ*I?DCy@|4Q2^Sq&4ulKHU9bZ)C*Iq@r zUhhejN9X@WxsFe-^631!+b|U7vG&e4TP#&exUe{J$&L`Fn;*McCtm_RGq3{+c$>EcTc7oyv8d z&MCd{B=KjI>-am$b@?-;O3b6ZwQ`-Oi*mg`=<7Fi9)1008?!3xKSzD?*!%L^#cuXt z^Mm;BmFxV!DYwUV#D}QQ7hTS@%HLJ-nUw4GKCE1?x3rI!Q?AQnzYoAJyj`u8>-=4n z>pXpwA2#{0yEhw zp!~Dc`(4LZRPQhC9eli!O>P#OU&jykH0gS$_^h{rPkz7ky0^7AUR2hs3)_{}t=Fcr zWx|rh{R5uEJ${JX4Q~btlh<*NZQsEz$bHA zMzsrkraTNh?S8}2|LUUL4rO7z&nUO`u+}{uNWRZKwrxVYApd!J7kbk9%uc`9b*BtS`*x=S>&iLAmay zcU5lVv48Yd{GKDJVa_hYH*Kor|BZ^5}7Z zWy)>--(37E<@Q*F{2P?pcv5z9mD~JLE_XYFn!*X5(cPe{5qZJE0&U4JxDSwSqFz+-Ao>RSn}*3AMVO&zu(a=sE3nofb%r@LH9ZG zJ^7|W^88!m=R1gJcE=m!?>AY>laqW{Q;9E6j{1C@eE0K`=PB}Sb0tp<`Kv1>ekl15 zy~Ib8zv2#fbIA9)pby7wTW$pK$H2`Q#m4 z`(!=&tFEE6gBQd&oPw^`0Y7l|%C2K5VGZ22tX- zD1L&gH{5Rx@#9tgeyK6Ifm#Gr}F8OTtd2xz7vwNRjA-^0id9IV+94nsI4RD}75ucH~ zvuigNB}aT|@*59J{nsT&d}H$dVG`eiJY^N}IP%i2ojIAjjU7ZZ%M9|;ak9Oyk>8po zzLWe-H(+y=9G@5Oled0H*82(h_Q~Qu`uP3#%imG|h%e&f4SamCk1z4@H+}pI@^0Cr zeD}y(O_zF05guIr(I>?7kt4nc`Lt9LA5D(<`s77izp@AU?mwg)apX~Myk#;u;%AU= zckLP6-wdzI%;l2*IK`iJ`}t+^Y!hU=aDOx8SzlN3q{tw@;fPO9e!Y&w6(E10oOm(v zL$$?gkR!e>`IsUSA47h?p4>1?ck<&c#7C2(-#3Z8TeQ@}i{!@s{Mr{nJoC zbKUEBkm6UYkvx~k5&tduzPS<~mQmJ&{QF;WkI7#hEb;bxk?n%`WADr3qU3F>i`O7; z=1w%#C7o;&YRK;@Xo{$=5z7&yOa5 z&$WM^Cdar(EcvR^l4lG#;wO`r9Vhj?i5&5-lMfjn@#o1A|2cX8OH!WS$PpiwMgET0 zapP8bT!?(sdRcD?@+m(`d?Rwiw6XU2ziMogDFf$*T^M z^2{Sg{8I8f6D1z^f8+9>qWJ4WCH^)!^8Zf0$L;^PpBv|oaP2|(K-Z6MO^*B>$alJN zjOWP_KbyR*8xP+@j`)M*ReMPN-ylc)FXW|qBNXeRmDIZ}?@81g_F|koEqTg* z5?7l1o@ZdVzPj_5uMV{_HiSJAP%Leg50Sb)U0;koSp_JgFX(->5fyFGUe@#6L>@#&LOm zOLD}wCogbE;zyAqej@n;CnbI@`2siovx$6_8$ZPT{jgn#KTq+c-TwRsIpS003a+2@ z&E#PGM{@D`}--P_^MtR*^lkd4B@x#awKZd-gYj3Y5NBk!8$!@&*G&$nWlV|%- z%5#T&t2?fS*v7G0P|xqqlIu8>!CUw0F2ej{HtNb-cZaUImp^@6fp z>B+fqYm3+w4 zdWAgBM2`H$$Va*MNhNaRsX>lBZOQBR4|q#Ya^#68N1mzVkGb;*i^-8^B{}lEMZRQt zz*~-yBhOiKk!4anP^6>m+xvvP>{hgk9j6D2;5{Nz^g5#;9|l01{hJ5-kVY2>fC&*kOhh+j>9 z*PXxIMSicIlyf){tZV$y+{-`zxY6 zn3wVs#gEG_<@}BOntQ*ecAsy^v&x-E$WC6oqU0$+-rmi(DMvoT^_Q!Yx85gt8jx>t z@2@uG$lu4uCzGdJC-py_d~!)zMb$ah3YJ^w^r?Gwq9(e01epLcYY_-y2HS0%nJIofYM$#1yvrIF;j zdrF=uTWf*i+(jpR5!>>|hftApg2e|4H1^RGT7$NZ}+bd0e@;JMXSM>4DK0b;(hx?peOpf!pE68Wnl-GR^ImYu3l1I3C4!Ex-whQNTzoqyN z56bq277nfl#HS^na9rYwkiYNF@75+S>^|Q+kmG!ASMrD4Jkn>$5kGuXP*aQ>7$pX-;6AjkRKvEaa*PijBY)w0$^Rd6#9t-<@jcnzuwwE&98Ylm6!%|+fBl=p z6`=T$(c;C(U%Mh+l^o~SqR1~Fk@&9Ui0@6lf1#9rCOOWR%_A@AUiYo!h~Gv2$%|5+ zPslO;|0Vg5s#2c2D_7aI2-wM?zr&~`7C!luS{N|sjRm;`6G5k zX6ZnFcdd9=@+*%@o+;#IT)TWGd02bN^D23cFU7Z$zxSl%|B!rOfAP=Ao4R)9ZSskC zB!8L`@*DMu{&jKk!kNMIQ7AYf?P?X>#-j zhmv1uC*>PUj{e{@a`Xq6k~iEhdDfAmzqXqk{lUZJ=ntMDM}P2ha^%11mU8W z2gtv6@9Pre=nqyW$LrgK9R0y|pK^Wc4o{$K`j>_554aeOFDj^jfaavUF?AV+`jNpkcD zTalwb*qI#t!M@};?hPl${yd2s{lTR^zQ@O}_;|{Q;Qb2y!F=TC4;Ci>y|BDqQRL_k zK1se{hpev$Ir?{Ty!6;Mat8I9R0yK@}_Pc&J6O$VSP*&u~KW9dh*V-XlM;LE^t7NBmFZN8I>!HaA|2`a%CLH~HsBrTmr1 z5&r~vOV@viAxD3(J9(?mr2J#Z(I1>le&!j8UqX)l;LGGMESB=`Cr5wqF!?9xB>plv z`h(w*_j^;ylcBu)Mt!0`n2kJgk>oE+j{aa}@?RE8-uC3^55|&@eq8d8B;VlXA5JGn zfABT(D=*1<50In3c9DF;P>H`qj{I3F1lLc$C*?8j!;gAH{wFCO?Y9=>dB;eer^tWb zB_2yYdcXK!a#pG!3tszHyZ!0<4dwa>z-aAT;_TGo&XzyJjM|qUKeSU3d~%q)ADfe-{f6&TKs}ds<7x3e@x#cUckQ>? zPwB!BS>DfesSh~G)REKK50k)yr$A$eN&dH(}B+Iv5f&zm6m!ygN-Pqg>4lE1W0 z;_!VCs5i9t9;5i*YDoPzB}aR&4f(7llD{80+Ixe^zfL3ZGs)3@n@`^8w8U>CNBnN` zSx-p(d2+P(J|{o0TH=2v-`Yy*A)lLnfqJX9MB=NGqx}|5zThFr)1DmhvE*0Zm;58h z(SF1A94Jpi*S=cp6aNx<;pLM54RW;K_LDEGBk>=RBmN?J0oR`Sg&gg@Kgfr*d#yBmPzLJdLIN zr^wOX`;fe*8~?vfj`rSd@v%J41eShs1wJp5|pKXNa4RkL^Nx ztRy+wS5?Ssy8c5Wa4TpKmVQ_@i)o8nkM^y`fBnUuM5V{ zGm-BtB>9VwW8C|3A8+U5gM550ImXX7kz@RPJ9(-(QqI%l7(f4z{LUnaze$eq^E>3H z#|FIRiR$tj^@ig^L-NAsB`$^>{i)vM*nftSULr?-Y8`pN zJw8m1{?Q5YWo<&d6?{dG_-o|Px$AN6s~KDm>)d``oP2`of7K*Mf2tn&XImt1CvwF1 zAfM{y+l(Pc|7bFKPB$L3oE-6M$giG}^6Vu?f9eom&qS=^F8j7qd%1* zD!862HkHTu$(|n&jwD z)g%A*lB};cIr>ur$Zs~2_}S#>Pc0tY@uFTYLlN08%snOZ(RlDy_?l4mA4`dO=ed_Ot* zSr^Ekb^Fg1a`dxqlB1vXJNc3sQqFXB-EZ?NxA{SQL2|@bAjft!@bT{C*sjs!`}RpW zrjp-oCq9?_p7Uko$Mee$v6j518)tiiJk8@0zmL4Jo2Po6d|+oOPiQ^)js0-r3V9q( zzOTA?e)3V{#UCX<+)T<-ll;zQiEm8a*^O7UC$HzmJ$jO#>M8k0`}lJ5Tm@vkYse#> z72i$X)6Hi-Lw?lN{{`|-7D#!%CP%;ESMq{`B|fD)-<8f3!|u1}7iS^I^@e%Lah+gE z@~_=>%8!ww|5cwH{iZhL3+qZbyOKvgC>~Fa{?2G}^uMN&qyM#t9Q~{{vxkEkC)f?3_0RICU4bC;(sK^_`t8^IT}iQruy<5uVbw#Qa?G!AAVZAH2K0^;uXl_ z=7~2Z|J=0?TaiEIK1c?T|8YplH=KNb74a9yKX&88i^&IXl=z+GSF4HdCExnA_=n_( z|BU?Ama@G+lmGCY4dgfKAMv@#pXn`eWy#BYC|;So-Et{UGjhZ~MPBT% z~#TezKW7>m13mgZxK#UGPbA#GfN?kXQ12Pd>o4XKs;C zye08z-TMIb{~vdLCnNdAViI4FJiF_c7AG(5+G$UaBfb{-hF>NBQ{=^G%Ig?I9{Zxi z4pn-mAV>T+$t-j$=~rhKJGrpvy&tKVe(q{Mg{b2Sa_9{6_NRC;vXXcv12; zgCu`6Iqnx-pZw(|lBYNML3ds40P@>yB>z|#;e20bKfuVkB}q2BzejT5?_xT<7Q3B zQ@eRZJ;@Q@kG#jLQts!-5kHH(R9h*}tK^8^PM)oi#GfHY{Kw=~k4SlbAxHclY*0F^^bACg5*v5NL)p7+*j}k^0LoMd^>W)cP4+tjc<%5ubNBhVG{XQp^|?kd6pQ7 ze}%kN2k|51h(AfbC{pr&N8a*H$@3HWW;Z^Nv86l@`!nLRlRtP{;>wbLI7PfN`My%( zt;rGJfxOZ>i6228npb=r`Nd7LU5m*Zx%T!-a*XqABpxe{YlHJaT9&Sr1;X>2`3%EccURd?N?>nmCCs>EpG@YfqK> zX+R#`T0EBgl}h40$t&d$A45LRwcjR@_jm2pW#ouoNj~0{b02x{in88ACa zLyrAwDmlir=96Q8dx;$T+eY&Fg{1rkeEfos-zCrB+I1mqg6sL&)ABe6IriH;6{?BBQ@)Re>_idCWe{+RA|1t8ilVd!&C;9co5f?3(3(RTu#2Ts^s5Ej{e|Y@*%4w{zG!iOZkla zlcExzs=fS1Js)w$pQ7aH-8gwIa?D$3K)y0U^7bW1{2=n|*`Y zlHd7B@^m7<^ojT|a`dOhkk@eS`DNsYUq${zE2;kjgZND3$KRFmlp;resvP-&$`ap{9Pw?)`|Xr+3?fH=Y9#rlpCx_~IpSB4 zFB>KCd&s+{75|VN{j4kG=r{dHj($@}N6Cl%Ii(vndw?9Dr+LZIUM)e6`Lq?u(e8~R z$9dt#WPA3Kk7_S@J|oZV zj*~x=<8%BT`PNgCKWiuXje0|TZt|1vxLTGRpW~Iuw>~T7Y(|dwr^qKRk#h7W$LIJ^ z^1AN)_$+dKjxQiT=EgBLlVd*Z4)V(Gy!=^m%%{CT{%&8{-kaoTx7;N!>&|ax=^R}D zm`|INd~&Gdk0eJsq!M`xcmB5}IpW)spHC^}7)Flyv}4Gln@V|>ljm3@{x*k+{HJR2eB3_+`#<8ND1K5I$={9~^J6=c zf93iS!^sgpmi%XTznVqlm`}Tce4-mSeuEtIY4?+tdriuJmK^QIPsoc7m-@L!j`$Q^ zg6ls+b$MKv9PPl8F>`}lrx%;&s7-fV-c_cA%= zsa_|?ywgDU;PTgS*VAPoM>&i7coaFx*^WG``@HB*j(Mm3$T9D97&+#hjwfHgL0+$U zLclK&g>iFw6;BgZ__v^|3B8S_Z9kz*cd0dmYEt>oiv z$T5$!Bl*RBQjP)Sm@hh#9P>pdlcU|ch#d1pSCeDD=r(eUd+#U5e9;r+7{~jB9Q})H zYl-`3+9VHK#ul&K63OgN|B>~QJEb5h&trxceEhK{LgmmJ7s?xz&>5J zXE^zXQ^n_yV|;HBd7)Mkzl9w0MR$=8cE`!nsfBSWE#J@#;-ktY6OOE-U7sywqmGayqNBmv#GibN>lINlRG5_;H^0e-JaU?n7 zE0LEOF7?@j9P>Y0lQ(=x;^W8>KbZW!u~P0C*JapRd7OZ~$WcEP$&0-q<*84O z`e{bqsD$M2MvnQPeaP!pm;7VN5kG~zZGDMfN{;!TE6LFg-bs%5z2rOImi%YPw^x?! z`k4I0O7Xkom@gXINB)lY(Oa*}b+j`^Yk$uGKc zFDA!)(U-`(+$ZIKn;i2+-y@&+sKkFoj`^b3$e&Fi@!@^tH|h=ZMYEDuDI;+u$ua-4 zEcrXDrGB0wM|=$VHy0)UBy!CEoKF5kHOaq?9Pzu!+rKFBUyx(I=r2D0a9nWxApS9O z%olA*j&Z{FImQ*wk(VwaEBKxq;}W;XFS+wO;r-=#sDI2C%}T!OoWwr5@+XhT>)VnX^F`Z}mv!e)N0DQ`=tS~qu06b#9P>Xnk$2iAuC$bI8ad8CzCgaieZIa%j`*GAzy2us&ywT(;|20( z9+CK8$q^rL2Po`^*;Y&ZL*$`(#S4;mcjIwY$Z;MsnjG^*8#o6%Zdso;yVHPbTl~<{wTYzqCN|%qHKqUGgj=$9$@F zz;9N zaQ);NDvuu}zwXYP)Fwy!ry+UE`I4tAIpTYhFDW49nLv*A&s6fguD`#M9PzJ^pF1w) zd7B*VrT55-rj_!1Nsji?74qN1BtB$FaDAe^l!iRtB8kgOj`Na*$>+H5{b@wre2e7i zPrl!cJHJ4V^Hz(=Gq~f=TjYp;hy3(=vfi)A@p*lX{CH-mpHy!D!ut{N_mh{bBJst@ z5g$Q*rnZ!)5jonQEy<_2>n8e=qx~?5eArgW{~S5`JG01hjFR|uUlR3?_DOc~)fFVZEIHa6mC5g$C-JSx5#NFQW`w-H zBgoO-7)O4-k;E@2NBkP{xJ*)>cgWG+I7KW)iz9Oy=l<3Kz)jsv5}(XM`;9PR4)=7CeLmy3fjrUVm_Hdqj&^=G^2XoG>pGqs^CzDt z&)~+v){&##zM1^6o3C<&9PuZ~UvDPm`JVhIH=pVL(ZT!SjAF8X79vNxy##r9UU_~L zIpUurkC`s{JCmc`-jh5}&49OzB}e=e@^4Q_{0efk+t-p0ODW~qM~-&;Ve&5zN&M&J zm_PXy`S0#{l44B2Td==j{$zUcQ*PX;06F?8#mHkjhIn~vkYoO29rBfKdt=Da@90i` zpPN@OfgJHu$@`56@yfG~9P=kPllNL7@h8cv)sp)9kv!Lf;u*%uZ`3E|LuMnN;EuPY z$Pr(Tym1=I+khPNA)Ax$`&8n4kt05yy_0P3^W>NhIh(wn8~0mJj`-KeCs&m6yi1Px zlc&hb&Xe+7A;*Q}ul=u|mg6kjs#B}7V+e=&ta>SP*pFdyXTau&S*N!~ZXA(b@ z9Py*bH*}ZsuOLT1aV`0=29ke2Ir@o5$P1Q~_zUEiKY59KM3lsbjF;copD}+jHTky< zC9V)T=1-O&fBqwhZ$ysylP$@|U6S|#oP5Aisn4b4m_NCayhe=VKSYl9&nfas zcP0KT`K^uOpOcr#ApRpc+7-W(qrH@Ff;eFaC?D@Yj(*cH z@=!OvJ&qjxrs?G9H!UOo-qp`~a`bE7BuBsL2s!#qACRNpbdenSZ~1tJiNW=cep6QR zs5sf*N|NLI9cqx{^=(Ry{#1K%^rw1|qy0I69Q~tVT9^rtTR_#Zx=b5d~qBTq$g^rxDVqd(P}Jlb7{JAfShsbS<#7L{_$Cr5v3 zDS7n;68|MRjwd(BTbGx5`5LavV<{Li{nXV@>ktBb9VAm`{nt$$xB7c`>qH%?w5}HRHZXd z&uxBizw~MpUw)h9f07*cOYi98^T~Vfkn*f2$8lz#kAFgr`Ha*&rzDcf6+9Pw4j5#NLy+ttm-$C6{a7LmWxSIV=R9M`REBFA+rJIQg~$^r82 z`K8`IAjfqpACtFr=XcUglX9V+kGu9(Zt{&QB(4bgzUtyt$WN7&^3)|?;QEK{$#I=a zPjX!6GMF6Kxr`^rbuNp1{0(wk=dzzXZv)w`v*fs6`ZaP~|MD|Au73%c9$e384`d<7 z^)GqI@wrfv9M``*Mvm)WYLjE$1-|ziuRF$vyHY&b74hV_{$(^du78f0;|Z^#_T6l^oZijhxr@3*StxSl1N{QY}UjyB|o??}G?4~ZW@j_X;5 zlh1VHgfqwyKaV{BZrR@Tt7C$*KZ^7Uz6kdm+#4Ooyh}pp}beBdsLt3rmnid`L~nznUD^vuq^)-1W20kR$$M@|AVv^$olbTtB#; zB{lg0H?CWf9Pwqzw+xj0Pm$w#mVQ1y-^aI-d92(2 zGtUjKADp+%N&e0SiHjgdd`0r2#U#EJ`4u;Ba1i<1%_V+1InLY8C69Ve;y02bej7Q) zXOEHNyzLqCtL}Jvl^pRul1E0${*Z2-lnd`ioF~mhe$SnUDoT#?!llWJw~_pH$Z=k{ z5qaENiSI^^^Gbcl$2OMuN#wZxWjgu6CbFHckmLH7E#$+xN&HE2T>o;8ytLcjej&&8 zFMp8#@RsDy=g!xm{&77^5%M+tWqYfUBfd8IUDrN|CC7QaXUK23`NQMM5&t}Sj#w$r zN^-=%LO!XaZ0`|r#GfQDH&EiQkt6;ldCgoBpV^IPqdpOzlYDI|iLXG8^O9A`%e&)q zQ*z7~Z9_iP-OqUtIpRl>&wWG6vxpq?OIMH=e^=u7kYm2+LGu5Ml-KJ^a>QRDKkwQ} zsTRt5P@kADdO!L7?)_4X9Ptt4bI(fNhUAzp+JgKAJD6vd{^W=sNPO@l7rjJ&)XlH{fgIx-cgS&H>s0Q13tlgr zAIU_HaroTixPNtFa*S_8lH-2qwS7E>9QU2>M*j9>dA*(`$9<>AlSjFEDT~Q*AL$k3 zOG`-po#cq$L!REne@u@1NM9u1I7af{CP(}|@)fTCl5?@_cX+*U-|0N$=e9{)HFDf{ zx)%9WH!r0ZdCvQ!oI}X5UyUQjel?RE`_*D{>{qMFF|PF*Irg_V$+5p3Cdd8KFZlS+ zKAv?+a6RLG>AA?`R!jXvl4HNEM1IT7ziLd5{k9c(%YKr-4>|V3f#m;rOv*i#9Px9= ztGf725D+nd8Z5BoXx+dSkG_e%a~@@*x= z>ybBd*WWcK-&jG`+lKt1uO-jZE$Mt=~$Z>t&L~@KX&n8b7BkNs8 zj`8R9qM za>UOhzu)yYw~(VhvWq3|ULDJ{t{p3|QE)lPj{ekQ@(ndInC%_pB&RN}XhBYrn|+m#Z3o*ef}zd??ER@lq(Jk%%pP4|(b-;|5|hf(tU z!sNBwcyuH=+N+O~qkUV4yy3nOZw0N$3%@4o?M#mK_94f5hmvEx$jlqb~fN7x@wp8LqNACmgd zL5}qnAjf)3kz>7;$g$p<iX7$XLXPr0LtgDe+0JLlQJzWU zD9>#2c88=q%g9llb>t||Ch~mldbb1QD9=%Hl;<3I^MbNnUy{!%Cw_(eVb|aIo%{!P zy=S`B!TSUD|E%QL|MQY#|1VCC?J7t9#(!je)yYwx^~q76P025hlssL?vEDx9sL!F~ zWn8~y0(sTbl7Bim=Fu%6|8bV=C$ErW9^Dr5TkgK2C&&?hmORcKH*S!B?b<(qHNmgr z<#(h!_mN|}vXW!F@{rf>E_ox#QO-)_J10qe3v$G_BM)`wFNct0yC#vhcHavyhaCIQ zGIH!cE6Mx+B<0*ej{RpJIrg8Uayi@V(YJ&Z9h!P&~?0f;`gg&rgt}Jax!Xo@V6D-j{NBAV+z6lA}CvSx~&nM)^tIO;4H95-jBRR_R3wgI$ zQl9kdE9dEA{p ziX!ji=7%&R&yh)<---OjOR`=4$amEde~$b;H?Fdf9QoIhzcxkIyMrA0Pm!0ZD(k&S zj^o%5o&Z@`rAgzvKO~BcD7jOTKx4cun$zdLT!Ab|J5sLh=kGN1kWN zk!KZozsizl8#(eEA)k;%_J{N2i2s5d>;0DeMh(f6#*L4n-iFN-e}w$)sp1jj$RABU zcAUgFCP#dK@~1~h{7mxOccgxnlVd;GL|(YP$bXPLdu1ulS#p&BKjcRP5`U8%@nLQr6UzDWFey)# z|3}w-!0lMRe;j|JvMM4go2*KR?2N38Y$8NtmZ*pnS;;8;gp!rfG9sgl$R-pSr3jHU ztdb(h|G6B;_uqMcUR}@Y_2cL5@I8;~yv}Rf*L^=vaP?CKezK$0H-szyVfdt_*3T1g z<-Y;HXOrd6g{xkl!&3iyYFd5jW%j!~*LnMMR=CcedEq)=m4{co*K+E>mD2>SoM+*K z-mrO?2QTFB!>xjAdr!dUpR<0lf0($vU7FdSi@?=qNx1r~3qQWZ`g{nkoQ`nijDqWP zgdfB29&Y(N;M(2`@GMW-cBTF(aeGx?8h+tn%kK=&H_yBeT-!AeuI+ja-rw(M-hnG; z5nMT6!JjH&{hWX+=PX<~7vZ|TXI-8+KehdRfx>W|Z%e>+zO4gqQ^s;z!F9ZMg(uaq z`hIZjuQ~9U{`!3>T=^T|ulehUJ#gh;fv+E7{ghmhI6pb++Mlb!HUD+sn*R>)ao5^@ zd5_cGmoBxbly}m469-&Yv5kTbVcy%DDxuoQm)gb!~g=!Ijet zuAH`Tt=s3|Y5QA$qv2W)Z@`!P>x8**t%on+Q;%AH>Q#yJP^`UeS2noDEeu~7U1*ZO z%EC2nHMowux^NwL9pP>KxyRFR^)m#1B(wE19wjBUl!h?gRO_k z@T6|$t>EpRHSY;e_owBLhUY9{z63tU--lWbe|wAN?}69YYJQPk+465$ZNF((Upe`<^UIWPPZ zf1XnY{zPNTc@Vzc?;D?n&+cdWW8gpBW;sjY$Nh7Xd*N-C*5s{#?Bw{IgfB&pz(f2({GM|jUai43SA+h7Z@X;yx30I}wY>*-+n>wB zbNco+glB)w@_WK>_SYR_;Rn2*h49M0o_E5ht+xCh;CW_QpO@kHZ8lHo&$G2%@*MEN zzgd0$7_R`I?$?E?G2RlcpXb#s#{0ti`1NjJj8B2rY-IDZ9e(^(^RM9gzJ_CPeJ zTtA2K5?r4bO107EPxIWWr2RP)yo+yF(HO4*Z}@`cw1XErYTgN+daU^nxavp14^*=G zc?jrCs& zp2we`mWNM%&*~q6Pv~lW_JGgy``do--5V`uD7>COM;HSy(#h&4!|zICNlv^$Xycr(69Bxcc7+SN}WV>i-+K`acd=|7YMWGg_aQ;OggkKR;>zs-K(T>L({$ z{S=0)pOWw<1;p*ppxcX@dS3eKK)lWCL`gt0@=rQZ(1-SYd1y?^4;p*p2xcZp~ zS3k?(=ls5L9bD(h&)_;weht@o@;F@Q$zS0*PhN)WJekSwyR}Z_cfoa@tOM71uOa-j ze-8O^xayyRkLY2?*I2mDlM~??CRqJPaGfVt!|VF}zyY|vP)6;94i^ z;aYDy;lF3FdHf;9Q*29|XMKNn8hGLS)_*>@zQ4N&yqTX*s>1dC+O^@2)V4m_!ByWG z-ldk+4~6UdwMW6fuW$X&f~)>L_$~faXW(i5Inp2SzNxIAOxqLZ zzwyiFx58Wa{ZCo=o8_&(GW>yFmfITM+VeZW|5{@?FTe{7x18bdHF?da!}VPB9r*ap zmj3~KmVfSR4P3{|4!Dk&ui-jget_$EIS1GAlC;CNBW?0;Ig|gV<0Wg1mxAkfsQ_;> z(zdq=T*pf*_^H}f|0G=NzaM=0JnMTLT=lQP&&{>^rEsnPRq$5nte-t_)qewj)vp(S z!gaj-10Pnw`pNs5{jT}f@lqJRpo7)bfa`dv2k(~8`tJ(Y@zN9i;1sKW8Ls2yRrvXQ z*3Tlij+c+%AGEdnop2p5`{6oXj?y2qaZkf_Kkye^>-_r96X#j?AsOL1UUI{AA96cf z_n%c`yfs|+rO&{1pZPqzP{ySh=pC$c1 zF!j#F`P6;RP4I_`TU{Zz?o0245Abzf7q0uRM)1Z3EWaPT*b>{WVQ{U7v2d-2H{e)@GFTc2OUHUEdi?3UVv+U{(=8k-0Cy#vfs5IwZF2#fAjmv zJK(x6EeS8W*K%vXbzfQ+p6h>B|1kWgHs;;ox-WeJuKUlC^yQW_39jqu9JsEhAHa1z zT?5y8*bdja+7H+D^h}JW`@;Iwe$n+bBm9j6R(CsG*VB^lmj+pV9k{NKjo_uWS$$Wy z>U+Y+`~CFGa9tl?h1a{&*7-cR>KDV?-C^}R={H-SU&6=u`xF=8x}IKvZ_Z;mIsLi5 z=3m#-0`RZiwSKC?bv>;OuTaS9ABF3B`WXBhfB$g=T-VdF@RVO#|L?$cJzWIX^>ihC z|A6&=FQMitmGjJU*f5UaWq}gNRYyNe-vaIOEr@U6Go{+$e0{hRRhMXi1{T1;3x42-op472d<&2VVi#@v;^^ zq>}ZsAFku&JGhRQU*O-CwVXfUy6&gkXMeBx)H+WO*ZoEgxQ>^?aNTc|g6saXPK-Ya z*Zt=UaNSS72rqxVt&>@B)xQfL`moh+g6sZgJ3R9+o3B%F-T$0}U*q3@bhDrTG|#%9 z$qIk{dF!V*T=$>%z;7;O{WOK^{;C!HmD{a;Fg%YRpRd5R9$trQJnMyLEw&A8&m=4cGnW2zZ4WHtu}5?n^&}PaI?U8{oRmegW6@^blO@ z;TO2p)dje&r|JE33OZiocffT$y&FE{5$nG$T-Vda@GNs}e!9VRee4ClK9|*xfUABi zJbU!8D*0+5B@!nrB^4^T1DbvHD7I zT~DjS``%~s-yW{(X&3knGp&9YT-Q_m_iWYYoBo{hUDWG(x)9#e?>Dx%5%~UeI43 z6@cqHTNFO+1M8lUtc@(KLG53T-NxYo%r__IG-{e9mi&gW@=zx5&bey{Hg*ZO%1uJtnzuJtnt zuJtnsuJtnuuJyA##`nOreon)+9)5>U>}&IK^P$A~QGHhUJb#^48m{$I0e;s@wjSER zwSGFlmpy8I41#O@42SoA*6OFjwSMNn8=SHF^>D49t?-J|tpBs{dd)58Z@AV;>cjT; zI!|hy+yd7+$qUyyxf8B+QVy2R%+xp1wM58+xT>)~1_pTo6IzK`)MaIKSDze~FMrS+`+o)`X9N1KOx z;i|6=@8F-)ZV%Tw=?vf1!ul8i*E$&k&wbJA=fky57Q-`Tzvk*c*ap`+*#&>_Maw@8 z*E;zfes6oL&*`7f)qIxo^;`t5^-v0~^-vkE^-u?{_0SBib=VHB`R@cj@QC$40IvBT z3g6_7R$L4%dEc2-o^)4cGeV0@wO^ z8m{&80$k^li7~ziuJg%uxXuq>zze6dc{mMM{qOM2b8Wxe{C(p7(t6Gcf6YICTpq6V zTm@csq2;!PYkhWv5BT2co-0<0@s@BsZ)^uod)fNv3)l0;f$&+2t$q?*&kv`; zm!!A)WpLGh48L%b)qf4w^TQ+XZY8b$0$lZ1;J5d%`kW{1cg??^Hx_^&-(vf>CS1=O z>%&Lqx7==UJ#Xv*V8F*T_0z{ zm-utwHE`8$gx7h?_RDv0ozG9eQ~LK2r1>dvo^?J?4ujoDZ2YvzzvWE+ zpVrAOaILp|a9wB1#dtHguCuM-o$Fg4Ps4Sc?GGQH%Ie3%b={l{|6q;Pe*jnga(Ls_ zR=*Ff>*hiDnY^}Neuu065`0)5tIu}Q#?k!iI-3Vxq=VH}gX=nbKYZ(S%kKo&b@p-i z690U~NVu-E z0N3%78?NK!4!Dk&a&R3lHQ_p5n!t6ubc^v9;W}PkhWE*0+cgKS<7FQFo%UA00j~AG z4Sx44wtkMnRsR#bNq5V?{@;@co6XekEMT%Q|@B1=i0YxQ>_O@clKcK83$;p!wACk_P^{e_vic zxQ>_G;W}PQ!=G-R zt&>0C#r<{kO}{11r`E|W@ExC8-Q94llXCFayIK7Rc=ZZ453j>@UYZHld1)EE=W~|7 z39g*a;mSD*&z{NpISp6NpK#^ea4vD)au%~c7lrpPYJL~I+Lz{y;13ulHHZIQ#`^3F z&-J4DKzK7heqMyX;@{WvGQ49Y%lRLCoqvDvVt9IA|DVG9MlTwYzxKh8r?C9*;O914 z{VDj1o^uhN`VGsu?sxllI^U+LY=6EP-q@e#eaZvisg_#*BjK$!m`{Yi@6XL=!bk42`UUVjtF50E z@RR;nl4^AAFwgush*{ zd>xjBr>RUx6=JXyZvbyM|JvSPD_VVF_)>qKRvUh0lhyZtZyRgdI~4xB&;Mk2 z@%mOj2cBV=<*$S{dB*B@z@NX?{5$xyzWtZrX@^_=jsAHG%|jvoKA_v+rI%Yjb>PpX zHg5*M$)D$UgSX9Y^)unKN|`T&r@qI0Is6kp?|lJ((O+L5hJXL2<@^X&&NYA8-)kNY zjkZ6hhgW^v<}DjsIVIsO{QGSy!SC_UVb+FETWI;c;IE7^e-?h~ChPMB_&_Z@U4Kry3I0qW z8+QkM(jLp-13&kw`8V)0CC$Hs-|Ei^e}t#nZ1rd0)mxhX0q^GP;WGSWQ|tfQOZM-y z4rk3ZzX9Ie&sVp?dp~3UzB~NMZ_N9_tNVF)F#O%NHttLCCVt;C2L9rmRzDfus(|?% z_-ij%Ka1e2u9$Cy*YoTCKDcsH_A?>EZo-U6q9o@aySf_=A4jEr-8vo0YT= zuIEk%;E%pz|KJ>4&%rLjR}{AXvs|{{wOz{32|qT{>dM3QoU;l%wV!9&z&HB+LkIXX zhb+H8ymngKu0ilVADhpB@Al_!^Wf$ExL6K<&p+p|8h%YK>*rIra!$v18bAMOKGXZ> zvTlQG9&U%9s$t{a2Uq?5@Miw=Y1_lKt~$eC^!lN2)sKW<>}m7-HeB`d;bq%d{ikr% z?}VRu&9?U>T=l=fbNg|c-j8F=v+6U$5BPoZ-Eh^HgLm=ob7>A&eQWqjUf&O{`hoEM z{yJp}T=g^I^S%EyaMf>w@Amos4zBtW@OQlbYm;ohaX!<+w|ISFxblm^-@3%vvv z2)@bdd%*Sl|7rNM{`zwqT=kRS9nRW%TLM@83V5U5R{tej^#|cU-eTK(5w7|x@Rff4 z$$3rU{Hs1cyqEV=1+My<@V`e{{~h3}?+V}N`7gp%KN_CF>)(Z|{(X1}uip+={TJ|Y zUVj>{`rqN_z5Zr@exUWN`mFHGeQbV8!&P4a{`kvQ{~%oTZQ%p`eyKlP?>Ff=hx#nG z%+|rQnEKi9O#XdvYvIb@3~#v6@{hq){}cSQzprt9%Ea}l`WxVn<+1rG3Rit`_~lWS zTOY3aCh&@*t-dE*^?l&2y?#7g^{>P8`TQ({t9})HocF&UuKGjpzMg*xuKH`PO`PZF zy#L&A)!zo6;`P<%{IZSrC|vd3;Tg7A{Y&t5cbUHe&w9Q2T)65N!QZcL^`F62 zzXv{hf~~i+aMk|-KXrrUXS&XQ*Kw!%?C|yed4)1?)mMUdyvzD&1y_ALc<+f;|2$mv zL*Ns$dlLtIrEpeIa;?`u6Xu!&P4g{T~$}a`Kkme>u47E5rMFeQUVtAAvuT+2&^;T=m1? zgS~zxT=(1Wz_0iF?Tv8NZ-W=|`V(;7|D1v^?PL9?O_R88Ri6RA*XxVHbv-HtKjGKA zMsU@)fT!~7-P3TLAD)G`on-w_f~$Tie1O-lfNOt!0{_+5!$G*}kHT;E{d=817tuPb z{*ldZ0eI%6)_+C#z5Y6+8vJWNU$ugl^XGf*;LH2jxc%To{62CZyp&(xC&9<{wLYi9 z)A;*eOW~?t3IA+|<$MMIsiOI}@F8o=&%>*HX4`cM{@|llpDA79dhX<(FUk(@wZZC2 z!k-*rUKakuJoAR|zw_F-&EdZ`u=*bG(>`xc!!zDyIiunA{rTYk;GdVY{P*C+o-|(w zf8rj?-vVFf&&xi8A9~Ajj>9+kb?O)R=lLu@rQgSC{r_*U<)neP*lwN=-e8J(VYvP~ zG*#fE=h?V5;XC}kr7isAeyi^Y-{{BtbMR~YyfGMF&+oS;!{2_@@@K%8?lJ!e{y+a5 z<7)T`e}8iyyksGpp9An^zTVEkzwvp#2!9}#UB>DQ!&P4lp5*sk&Eci}d2c`X!Mc_|5&lYl>thQ1^AlFT8m{^c@Ewm^&T;tq z9Ol2k_pdQeo!)-eJgELA_;s_b?hg1he*P&5pWyS{6t4PK@E`nrim~v;RczdM;d8U254HMPaNR$=2jA=W3G3jh-wIFV??)ep>we=Tyg(=G z=h}>k^QrrdbnvNttgZlD_Zzpv2i3Fu`{26Yr~_}~@4r6+*ZoFUc)m-PKM1b-jhEml z{BxNz;JV*<8~(+2mcItB`;AR-{r8E#h3kIfd-y>Ayv^Tm-EXAKl(=6e`|I!=aNTd@ zhbL9H{wu(BzflcdewdBd3a zIf_{S`{26YI0#?X!|H#B>we=B{EhOqy_x)d6`c=tzi}(PxZe-l1yAkov)lt8*p)D>JP#1^!iJ1)u-^+Lz>SjUY`f9`aIzYwna58<7>eh*yr-@xzdWApzfT=oCJn|pnZ?1}4E_4(l){Bu54;Hs|$ALadb zgzI@@cX&$wyv<8+)sKN^{Mh!_Jhfp!bvY*2MW# zeQtO?udfJK{eAF^_}5A>HZw9`cd$@zCG{2RsTM`ocFUGuKL~ZcTU-So`I|W z5BNII&*ZODbskXtt?&~5`Npzv)mMhkUTyufhO52+Bb}>VJdxeAepqIXKOy>a+NB7x^pxIo?um)mMNQ^Vg3L!d3q; zyodMy99;E7;4dw<{WSxw`nTaf`u)ZRxazmTFM0h5xav>CAM*aw`ExbRo9Z*dU-A0l zaMhQAf9Lbr6t4P*;0OGEwJ%)t1L4QKpDA$F&!T(%C-m~Rt~SG$c>OWB-mm!?-Z+iz z-&DC1&!4Kl3Et^ztG@%T`n%z6CR=VpxawQL7fiMKr{Sva5AWywyareObofcHUj5AZ5ppVH4OTA!*<3vc4}`o1OB--Y_8{rpf5uKXtOjQ+k=Pq^xzffw}p zSK+FE1Af`-KZ2`%4LrjETR#Wjsy_;^=lNIQs=q#O;<|m<>kGj3e&X%$TJ`PU*M_UU z0lb8N-@#*W)jtKl!(ac7g{yuNy!f3qKTF`MUkPvZyw!gNSN$RQ<6eIWuKE=D66f;; zug?QleIa;SpP%Y*)z^jR^7<}t)jt7m>h+`Hsvi#@@TSerLb&QbgqLq+^?Tr|{|4S- zkk$VQSN%WmBM(`9j{J%9tor=$elJ*k6}aka!GHGtJHqvS4c+16=2{;^;NOlm9|^y2 zjP)}Up1G0LzYFj7i1}K$-iO)(U*OMk4#4$3)KT~uf4}=LxZW4jfA2`=)x}>~|CtL| zU-If-nCFC#9&BC_uGhWy!FPUc^&R0A{QaPwaDAV}b8yxF5B|(P%byQd{gxO%8snE^ zJlk!F^P~Jy@aO$GLV0)*zpr}`{;I#;=n2>B**@^pZESld!#^u${uX@Cb><(yf9`49 zvl_0Pui?G?`_qrZmH#VT`Iq6!$z3pUKKJgnK8wOtUmo7qpMTbXtN(`Z-q+c9t>JG! zW#e{%>;0YHaMh2B@ue}oGse%r^}g77__@K>|Be1WypB`VXM#U_#kT7Xc;P24N6*)l z^Ga2#uM<<>5I(h{<#d6U^86m~0gqY!D0tFMmNO1MxrO-xxbAb7z{}^g{9SOpF8&fe zcbes&gX?w2MR@ZmmY=1t{X5N@er{Dx_-nnazC2v@Rp1M}{|@k>D=lXbJiULu;tlw& zKdpW-eBlW5HSoJ;*!Fw@f48OiPjKa5iSb+g{U6Pb>Z`Y|Ifdb~yINf__&LA-xf|Z! z$1M+kZG+`BhO5t(@b8XWKfU0?Qkg#kujKh}z?DA}p4~sUvjVRBtF`dc{(N9RT<49$ z@Xj~b_WlFU{eXFv+wFJF|9k$tG$(vr72Do2@OQS_zrPoL=r5~p4j(_;>f6Ap`1P?T ze59WT`oP;|wfwR0yiF{BBK$9ZzvokUTEC7b-H|vC4gGT)H^9f=ZR2K#E2lYp?46d| z1OD^#<}boGrto_IciJxv{eHL~yj&Zr9|k{tkNG%w2|wPa!j-cIo^z$;Y=eK`=dUl} z`rOD-_!*z)({SZKTHMCb_CDw9p%*-zKi?h?|J^?)Fav(S`#ktMl7;6wcT$~VBT zc;7qW^%h&s0r-Xa<|p7c-)igU3jB?AR-dkf{jPav>pzzxE4)%B%P9bF;r9c@;RkD3 zZbf*;)#kO~y@#4Ng^%iL%^8{v1&Gd}`vTi^T#c=x3?ZYqC2U;FDqH>CbzQ!*%|@rIh_U z?XOxspT*(L(^}m<@B#jQMjd#~Uu+&4!t48apbI>8D$DNyzvO>@5ng42<&TCp9%wnU z;aB{1$9wR<>RSCe_&aMXe+&H5S@Xm2l8=}lhyVPY`DJ*H_iWshetc{GbNF>G2mHAV zmXi;j+n*1YhtEiF^;O`tmYY8aZ;;NsE&RT2)@L7hmzh@o9Q<9se!U9c=j(7X`~kmC zoPig)-}3*4xA>oVYQJC8yrp^D{1$kT;pTba_iQ%56W--p^K$U|oopUzz`yYAZ3ORL z&~n9$>q;0OFV^)bAr zzb@JeALr-2z3{o~E&mAo*ktSHB)qDBf6xW^;9YYrde#QAB0~zX?_%b$k+K_@aENRyOPS<@0$Nlo7kVT!K-aF&kY~;oOv1e+TGSqCHURr zt-cw2!ZNFW2>!6YU-J|^@0(WN5B_Zd%O3|XP{Qgb!Ke9k`F;2Szpq#duk5c^cfhy3 zZuz_63-_A;3_tFlH#iILzr*@ZUCw^jep%Ji{(KXBW-ZGv1i#+jC%O~}O{l51f_{le|&n&(_wZD4$@sbn%dNIo{4L?`UyaN29pZA); z=lOHUmhf7uEvFa!E5Cnx2L6*@AIHG=`*WBH@UDF-o@Pp$$Ve7B9;6#m(4^H%U4 z+svPY&s}8R7e2u6m&U?3U1#+Z;aMIrUjTp3zprWue3Z}s4!G`cbj=rMSkW|s33{1<}EiLDF_oynsiHEGNB7Dy@pHKJ(f4$ZUzTeM#?clfhb*e91ulokT$DFZoUx#n^<9ZHU z>+NH>*2z|Qfzg(~7vA3UkH8=C`+<}2*L-^~z*9bJ^Lg#PiSvI`0UI|1{GP4mIpKOA zxd^=IQWb?&ln5u;`fv9!jJm=& zgFoQUTTa21le$XcJeT(S?E>)U7g$|U_@`gl{M3WLpLhtDZ(^+(_vcAEbMe{z?3c7G179Us$N|sM$?Egbr&&K0;eGtLs0P2??+;tU zhx+rVN8sQ3`<~CiYm~5Y2g5u0bCoG@<T~-08`@v0&kvvC_0`~d->^13TMf&91b(oUZC4j~Zhx-wJp6%w zEN2LOw6F82@TPvBKMVeq-xr;(W8-Uk7x{C83-F5md@Oa{#QJgb?9X?=m-~6330(PY z;0O9y&QtK+exLs;Tsezl{7{Ui_4^cVZ_yZU6yrT(T=zlDUl~*Xb&TIyKXIP5y{%)s ze~b@bJmE|3i$Qg)1lR1OL5Ux4>0j3a)XR#Q5VeK0L=Aj*2^Uw{h`jv3ie;wm#{eF$>_7=GEOTm?YFI@Fw;HqB`<2z#f zml#j$*A4cc7oO)`+aDd_&Fk2CbtGJUz8m9T$M_kz#x3Trv(=}@Z3@@8PsRA`7~dP? zr(-;|pV!ro#w``&U1I!6xc2*Kxbi=a@l!FLs_B0pNBLsBevA)_@lkN~KLeh7nyr&H zF}@Z4jz7oS3m@#y6Mlg!{~x$=()#l@?Jwn&fNP%X#&|Qhw)Y9Ra{9sb-%}e0SN{uR zd<9(FwF$26ItW+(8MtyT!IhJ*`G2pUiZNajuK8&P*Zg#YYko$x*8ed zufnz7X27-HK7=d(Q@C>W!Ig6fu6fAp_r*F7$n(Ipz2)JmZyMuI#rX4Z0(cS|=~W_(-_c&qTP^ z&wRM@KY=S}J6t)x!Zi=+TL1U)m>I6^Ee=;sdARDE!c{*o#$S)|Ph&h=oB!^=BfLd5 zyYBagYd$B(_-wf5c_Cc$ycw?iui?r$4p&Ype}1O*ss8iCcp13HZ64$8;OgfwxcV6a zSN=q}a%RGnvjMK{It5AsY8|Mz|`7UNIBkG$)z7vS2iSK->O8E|dahj8Vr zg)3(VTsg<#%DDhn&b93l=RrBQ!!>U;V!Q!d$8T4-a-M?gerYUR_3y>_h8RB@LIQ z)#1PUxj)9Ai186IJ}bu8#rT03KOf^);93vaJO1}})rj%OV*JGzp90r@`3SE4@@0%) z^Jq+;G2Su82gLZy7~c`&zrnNl`${)=O6+sR{r2Y^aGl2r!*w3JAFlc76651zd|!vu65fP zzO|Uu4~47$ad7oN4X&R*G9P~EZ@XS^f~(J+aP@ftu0F5rnm7;Y^JcjE%netcb>PZr z0as2(xN@F@x14F)I}EP-fiZB6`vzR&z75y7tKk}VGhE~Df@|D^aE<#TT;pETEph%e zZd$m;%>~!Ex5G7VS-8e+1=qM8;mYp`SN{CRNYAB3yVAK=PA3s?SS zxbpLLPn>_{+z;1r)DEuWt{YtSgW)>vro+|eJh=K?4%dF%0@wNB2wZ*s3|F5i9!s1D z^_d5*KJSF9&+>5f`6ygDPr{Wm5U!j_aIJ?KaIM4l;2L)sT;r~TYux>Cjr$#3h z?7F!HuKvG^@xS12`TL32KJnl4SuDnT#CTu0UU&Qtu0B`A_$Ih=4#So66I}Hvd;a%! z<%;pLG2S@FAB*u9V|+%8uZZzIG5&ju{{z=NWb5_c^N=5|`bu!kb1k^)+rV|*c^a{g=?Nahb#X= zjHh@ial4e06Rw;>aMeErSN-xB-yP#wpHA#YIVEHKkrI^u0CIetIx@B z_4zhjeXfCP+%0g8`vqL%9)fG!U*H-yb-%>@rSn7n7{3>;^;ru(-k*y#g0J!KGi?k1 z!CyBHgR7tEF}?z><6<9NIcMRjPxWl#JZQUahO53PT=k{ks;>vvdg}_;e(VF+ejEbV ze*7O?>wGR;eJ+Ko&mC~}`4e1y{sC8?Df=hRr~1qb*M6x8S3gbQ>c0(K^}XS$9|%|d zB)GPB30&K|7Ow6646f}x2-ki&4_BX8;OaB$bBXh*K1;*ZXEnI`YyelEo#DzK3RnI( zxbmmLmA@6PoPBWR9EB_AFSuS8r+hwfesmvxBV6NVhilw|aE)6Du5oL^HEu(=#%&GP zxLx2HcMx3Tj)ZI6sc?<^9$e#o2-mm=;mZF3uH*MIT;rx4khotoZg#lFtqE676S#8P z!Id)^u0FTJwa$NpYuxj2jhkX%;&y4=VsPbDfGejqTsiIFEoa(&Y*)DU%TsWTI}omM zN5M7jOt{9K3)i?y;Tm@>T;uM5Yuw{-je8odaj$tHasD;#O>m8y1Fmta!IfVRuJzLa zu5o+9HSR#T#+?dR{)aJs2(EE|fot3gaE+UJP~yC4+{Q6JBF5*(_*XIh4_w!^%!3pA z(eZdUT-#d(uI;T4*Y>uC>-yUpu5tC>S=HxTH12fNYutHojr%2BImh72ISW@#>LH2q zqvPUcxYlhBxW+9E*SMwN8n-T7<2HqB+_rFy+YPR9`@l8s7`VoL4X$zL!Zq$kaE-eW zu5o{WYuqz%je7yE=j|zmChjlwlOC>qa>CV5QMjJB*MjSHVneuIC$@sCpU!ag^E6!j zjDzdEF*n9H!F7N8Ib5$3_rvu%@i<(s6K@!nIM3>*P>ffD>-^Iau0A`!Ro@@3^Tum% z&GQ_%=J^A-=6Nk#=c}*b>hl;}eO`jA&ulLy&YSuy2v?tX!_{Y7xN^F~mD3lloUw2n zcdx^B+|7b(-1p%ccO_ioegW6G-@rBQ_i&AS7OrvshHKo+!xQIU&sOTN$o# z>%ledSh$Xt%`tuuuIH||zLeO%zAx_~_>(`|{pvGtZSMeg?s{ zPF{nnpE+>#vjnbwcEEKW`x376*lD=VW9ddF&a?W-23J1?;p(RmTsdvw%IOYQ&Jeh+ z%cJ4CE>DDO+*xpqyAZB%zk+K%zk_Q&FTypSDMuyFr~1DEuKu&Y)qerF`Y!=j|5f0+ z-nE2lyE?$NUH#$Ou3>O(*DG*s*K2TX*BrRE>jSv9>vOn{qaR~D<>wf{jXOugg)dKGz1GEvVm&9RId}q!aM${%@`sXX9&J|1oSyx!m>KL*o_L_2G}W_kj0s9|P~>J_kO)eIx4lUfk>hWBCbfkp*>FiC;HllG!*jYXh2Q4>1-yj&DR=gNKJcjjc3yu8ISt%% zjko_3{Ti*?w(gbTo!pzj{q4e}?r?wnmGlzacT>`AclJLo@TmX2KJEv|`N(}Ie7*Zw z_&)b+uiF2KevP*GJNF9kpWGY4e|7H+zv%uv{ANEHjE84;pARqWz8-$J`$2eB_Y3Zv z&!h>~Sme=sPVxHd1NR^8o&2{+Nf`pqnf&K`z3kuTagY8KMYQvrYVhvv9pF#7_k#~` zp9ml2z7Rg%eG~i*_XF_v-G7B|bWb(Wwolu&!#x-Ld-oFX58dm+_qsm{Kj}UMe%5`u zJNM(;fk*qXfdAac`N%o%IqTs`UVkXaiT1Cq3qJ%N<+t(rlgP>De$%AHdArTM2>ed> z%J9nW&EU1%pMp1XALGvXnG|@`{}*0A6*+y~SHg$5AAnDEPx)Hn_Re%K2!GGLBK!mQ z#_$#HUEu0}0Q_sOe+_=ZeF6M8_pR_G|GC`XyK_EI1|H4l>t6p`;L&-bYV!Z0ufGG2 z)|GzF_6@Hm&RZVODFiR>-Vk2N{YiKY_m|-H-KW9ZyDx!1?YpsR`%QsI^VTc*f6-UAz@vH7&wnlo*MH}w0=!Ea>!TjLdeN)#Ni718`pI;? zd7Hqaaa)uz?-Kac{=L3O;8A_o4OZVT@TmTAuOAqARDbDy>vLq_QT$CeO{j``IqFc^zQ2O6|XOb`a8V7EWDNb zy~r8wIZfe>y}lQ62D^E}s&yAtq^-0Q(Vb?*oN-u-oWHa||6!yCEpf=Z)Lp2Rx@PJcX~r?(pL7qu_PiXTo*-eguEo>pz1( z=Y9-6)cqp-W%mp-61R7fdlC4X?p5J)-J8R^x<3s+;y%`$*TL5UkItWU{dk{-oQs~b zFmT@`SI@WW1HXD}>p6#l{OJ1f|M#(hN8{?}d!GzEy8i09!5@J~Il6C2^`_0Iw(G@D z?a$fZl{=dkb&viO^{Mk)b@*N0e`9!C_h;eie^j3%=ZaIefeOPWYGZKfu3pzYIU=e#`8{`T4{BPIywZu#>-Pz|*+5 zgwOMwXW%8gUjLnQ9WOc_-|+g#qvJ8N=gfmQaQ^`Lbv=I%ysi7Sa}u|=lY4IX)9$6= z&$-uyPjqh&pXS~l{;vD0@I~$m-J?H-=c|tbkLKqkpNG|fN9U^}$^VPKwgevK==sc7 z@E`qo-wF7f_ieuZbdUZNov)62pSSw^D)RI072%iN8^bfFOAbr^dIDb5eJs4B`&;lD z?wjH5-H*ecali5H#Pu-Hy#Rc;dwKXm_YUw+++Tnnc7G3k#eE07$PG3>=i&Fe-||jk z|Lxt&!e4an2%qWxB7C*``|z#qJK@LNPs2~Ur++uG&+Bfq?J5Yr(Y+!(i+dAzUia?s z+ueu2OS``Tuk5}Ue!u%RcoX-d@Q2(lz#nzb@Lu9PJmsDn{(^fo_)G2&!pFMzfKPUR z5&oh36!@p^AHctG-va-}{Sf?n_dnpL-EW$kI1d-x3&B&|Wb33d{08?H@GS06z;n9~ zgBNk13NPWl7+%hOEBrq9Bk*bNf57Lu-!Lz69u~Xjhp%@p2S4K80Dji}QFz+)HlNSJ z*ZBOu3a{%q3*Z?&XFEKv`w4emzs>|6UB7nvxaR|pu3viJ>Pq0z^-I^I4D%D`t*MV& z65hqV5xl>9Kll*$G4N6DbKr~JKZCD#{~3PN{gwrZ{in!a`=uum4fE(RKf0_p0!(+}pvAx(|Y1be{xI>2F}a55LiUGdzp?xA45~ z=ix=%(=AM#|GV7_z$>{|gx7L!3UA=v4c^jyFub$-Soo9fi{Q_?Z-!5DKL~%%{Wtg$ z_q2-==V7&be)wkh^6*{mjp6&+@+x z;i^9aSN-2`eV#4dVw)fJdBV>ZMd9kR8vO5m_U{|Q_4%Ui?om~Ao*C!!GaU8G9}{?V z9XaFYlL>)G*O5UsY|?_jqw7eMJoXpM1CMeJ`+oewUHu&Ke!dRsqx@Z-e>U(ar>WQf z1)uDG?GpQk(R@brf4Qd(Jj%}-O-AxpHh1=uH>SQ=;8Fh1nXbkpm4%nM#k?B)f9|yd z5Bq8C&VE|O)OQX%?57u8{q%>cpFx3#{fr7c${+0iJ&_6S>~m^RALWemd0r5B*yl%Z z^|>x4|I?s8%-5L4B0J*89J9Y2v!t=JRk9T=SF7UGtO8_j}%; zKFZJF?+f1+rwY<{(Hl3_4WLGkRSC~)%zS7 zc+}@MANN)Gv8++|NlCNeRib~C{I$SceQMlgL47#x`oN{V!JYZpg8HzZ+X4^sOT(34IVQhWP#@+u4Lr>62v>fOnEXCL zeV9Ka@GyToT=}mD9_GvnJjz)b{gV7O-<|WhG^h`A)&(B+^95Y}d=+?@^IhOqTk#Ki zo^V$`_xkaY=R;c$@>703DeN9ykD~luejHT@Jj&N~szyvs{h&U~c{uPe=P~3o@IIdo z>Z6=Dy`N!$M>z$2d&j^tMgJ)IYeL`=W$^cNrw1P8to8bL-8DZCc|VJS`lz&*=X{3x zAzuFn{D1EMAm>fb$@@{_eo=i9ckLI|*N&-g7*pRS@MwGM}GtIs8H^|>POFn>efQGT)LW-$5dQ+M@Q z+^;)l;YWNwUI=oc{9V2uQ!lsusQbDBo}UrE**z!x9{=y*7IIfV8uzZCJ{-4V;L&zz z+?sHW+YqjCTe)-GM}qor+$RDL$L$B#xI^F?cSPV}{`kP7{KtHLrnLOJ`#D_W?sw<7M}qor+*5&vScxW=szc$i-!@F>4-o~vyqHE?I2ErR+mr(@t@pFQB} zvoBnI4hTHVe<|=Ne~9<_io5!}#;+r91@%!*2|un^p#FY8KdeK2FRwoqcr@;EANQxg zqkPq$3p}d7CU5dD$zPY<)u+b2ZdD}zo`2T*xH$t4$1UWpoW|b&T|s@+PX_;xPSwDp zoVt0Fe@XtT3!jwtDkn8Ues9n34xi@pJP@w>;X!`XPb2SVa^T_oyazw*{Va*eUlr7c z`C9`I^S=o^tp7eH|71-4g}}r7n?APvsQsdO$l|X1NzFt4z{8w!F*#L(`mp~80uOUK z#^gK})Q36!0uOUWz_aJGbuuRKFz5Baqnw6bKg*r-GdHLYb3O_@>}LyH{d^X9nDbTO zQO--=&$sUCr-iTQn^#AYeB37gFM7oDlCS^l?%I#zd_5NoJj!3~`NiQE-OIyk=1=}d z$zRpoHSWtkZfn#(=k<@lXSzR$96iSy4u8b&e-^+$bl-;jjh??Zrv6k+{hu-Qnb$;H z`tSAeXV1?A&sN}SSyEAV&Ce?Dvo`80dVOPfH}?mTv%z!vz;%8bkDQl1XKGCSvY7f$ zV(Py|{bJ8Q0YBpYD{|iQb({W^#Q98lo6TExcuDs>?wZd9o>LzFkw33!3g777AHKtV z9DJ|)T)3X|Z-i?d9)@rC{dFEb&ihZd*5*OmwbDHw{4@8`@Ymh-^8l2y-n}d8_qo5~ z9-SYemzphS+Wfx;*ZV0m;d-CweYoBy`W~+OU*W3%2d?*(Zd_;cqdxV%(j9R1SskwT zl^VnKzS86Fnzti9KO<1D{BeOt=g(%oJ|_hpozK_$`F3I8(L66GZ1cP_@F=H7LGwNC z>gO(hE`1=VkMcA4=bV2FJjz+_Ie)|dald~3zw;T@w<~1h-Vk_{ukV|<)t&w1kEt&n zc$DAJx3@feqI-4tAMSMm5Bq8A&VE|Q)OQU$?B^-C`gtC%eue}d_VaS!QT`7_Y(6Ks zv(M>4eU!7y_v6CA!#-EQ)#rwo{Ov(~nEzGaVg7e;<)1=+8DEFzgZd~x$v^LX{f5MK zRlKOpLk76!=T>*kPkVo#C4W#KI7E_eFyw ze?0^5>hmx#$dCFQhvbP@6P%BFsKi6HUu8_vj?tz zz79OhITm=7)5-h!$zA=7_TwerCR-2kita_-^*UvdA4in}kMeb$suh#dAgGV}R8ITA z!<-(-nd<%Y3F@PqBi_&Oz@wZIzP;n%{fZ_3W%Adgz@wZ-X|8h8n}J6;1@AJS>#q5E z*ZWx<)L-2$&)JFkU0#0ye%L)}v(3Ne`H1J_ch|V8zdfeDPE38{nEHnUkGA)H-`=k9 z@7hp!@FO$E1gBS7Z)L%hPl%FBmp~+uqxBR<*qllxPe+&GM5?9NUa>L(nFXFC# zG;WEYJ{SWxW;Ym&T%^i_2Ia^0uRUS57)TE;2L*S;9>rRz@z+KK0njl z+2`9qeVDT(@UYL-aP_$bu0B5tJk0+p@F+iZN!!2Qx~tEdqrXi4x(u)4>*~6#QRTnS zb*uWi${ctUF~;-rz_+;dyxr)pz##EAHx3#T5+<}MV7I9b3 zWbeO3P#^Wv$aC%sJjz+<{nUqFa&LnCk3Ii!_^Bu?`D+kd^&^7(sGo7(&y>K!`I!f= zQTl3p(z2NR)j@rjzb)`E|6t%@{SPtur(^2>3Ovluu-*2f_KW5ro4f8mH4nE19_Cbt z$+<765BqNzc$m{ECZ|VGALjHAJj@vdAL#pKT;O5O8-YhTOTB)MJLhM9P#@;32t4fP zQ@Hxs8F-lUb>LCXN$=;dyZU)M`pe|6Ogj?y<4#}yIo!1$clmlQ9C#Fw|DLNcNhRSA zyH|wIb+75Je)jsfZBc*3>wCbjFJt3AjhwGNX9Rqqzdl+B|Hpj?@{4-@mofEcV(Kr( z)Mx$7<~f?rXxY)BjuWt(f+`ScY(s@o_xXy1Akn^kOOpmGm zD5id0O#NZhXDw^{@h5mq_jAZO@9XyF&lBgftJmj%Pjb)auKB#|IThilvRFUO;TheZ zf#2%>GCaTg+i*SSUkledJOIy>)%y7re#HAvwbSN7+m+To2b&9?%e@5rN6)DX&*=4! z!V9_&hL>=k<{qu{=zS2qpYm4V(U2>Azsw6fI*%p!_ld6#JgR@DeDs&eKgYmb+q=le z-5JzJIaNL9aNtqS0?+vg{*(Lf$Y1aIe+TtZelO3z!N2iG$Mv%nlK(RKD@%;$b65XI zJiiL+fA*YusIM6fp8VA`sE_DP@26wn(e~b0F{(~V>Jj6;1CMfcdCtJVqy2dCMq6iN z;QBt?>F(ODUf$;?@Nw=(;d9)t{ldmk&I?z!Nfx|f1~;a&%R%)K4_ta~5$MfaEC*GD@!`D+Hesjtrk z@NVv_;Qigd2;ATLx|)A9@D$1Nir1&ylQ=&U-E+ZbxR-*L_We~2p4+##HN2?%^YD`H zAKb?@F>5M=XXF(ThAE;@8v!<$O-f3 z1Rmx0@%*{S8Q?j)g8DG$?-;-J%YWBZG!NrEr;I!2vvS~3Kks`#_akS#=QIlHqeE0b zr=@M+QBJLUlYdG6>H zT?O2=T~)mPUU(h%Ch+%t|8_^d=D9aq+dBw3(>!NHP#$v+m!g8{9R|>i?FQ`n-XM`DJ2q zDhKu9xOD>$bK1w`bPejmoIZhvIiq88UJdHQoHqjxbLPTJR85}Lm4f8{mW8v$$)XwOzS``e@v7KJHzCN8>8L z99;SL#pKrw>aWh5=eG$w%D5QU9%P*Z)v|#p~z6)A;v!t%X0~_4|>pc|Ho) z_MS#gThI9;sE@WcLk8O~w;ZtjrTN$Q$K`a7?l+?PMqXbu@MwNA)v%mW@H*~wV)7dY z^Fee-Qao;cb;UBvf2|UcdJMbv~u-8{|=lZD;)Q35Z0}uOb4OgF?;Og_S zz{C7Lfk*i%YufsJ&Ru*1`9>%gP@EuNDb-n+Kt7lE&KzuR5&rtPW_)JNM@)qg%u z-N2)9mER1m{D))mI|ubw=gsr`1s>)PLC%{#|L>qa`~9}P3sC=w*KdJ;>V6P@m;3L? z*F66N*Y>78Wcy3=naguBy6b$q*0;9=>N|RUIn*a*wC$=Hcr-r^eR~_iUv%#jliwq# zkLF+b{R5BkmGg4oVg00-{OK|Ea{~|a*T&>*4eG;j_XZy3{2Y_>TTmb7TnRkP$$U6* zKWe|^a@T&;yxksnm{S`5uJ4!1@C)uW0uTFa5O|cIqfWHblE1&iUF%JKwh!vVoF0LP zefEW`&%to@`BLCv{{I4x@~e2Cueqzw(Z0^t!gskJ406Kr^Y?*A`5ip}G;(%(&L2U2 z)Mp7lj#3`6{TuDaDCaNFxe@+O-Q>Sa{>tjE{*|96sE_jB^!yTmNBJr1MJY*172u29 zYrrqMH*n{;ErR-J+_OGz=fIrBkMubg)S59=4l>Kaf1x$zSaQ z5A(YR9_2si^}XG>z0U{rVa~|F!#-bytIuh0^*KB6Fn>YdQT}t@=Ms1IS7IYRyYi=b&h79;?zMuPFuy_IQU9krzZr5q_ME5SyWGbFIbr^! zz@z*^4U&IJ{+f!MgPyZKs1I{?!1dp;Jpiwh+UDzUke}Lyy!z{vpg!uSo%fUGd;53M zuTi}}7D~F=UB{7reo_9wqny7y=T7*f3t#{FwTUG4-Fv)Srl{{}uKAHeFKszaTuk(S zvcuQ87jV}+=e@dBNlDdEf5GeP!EbA9|DZ8)3VP1t@Vni62RYGx%y5hS#o)lBIj-&b zqhoSj4eG<3w*rrH-t(M=@RChz+!e_8w=0vrLVXvn{|>&y{RDEVT6|LKAO77h;qhA< z{%0$zE9V~lDUD}DzqJhNqwV_A$L#>m-_-t5*TAFssp|9mRNzrg53hgTUE>z9n51Dr zeU!5(v;D=yz@waTo-+e}!2PYjqnsrF9Mr{nhP?{!#MR z?!Y6;*X$}M9fUvbel+kXr@em;;bh=Z&RDPi!(ILOWjyJhpgzjc=Va2Kh${d6{QP3i z$qv8lo+t3D{rG`hH1MdOyv?u1CY5qmKMxxxRSfE{&QG-HlE3N)9_3W`oEGpg?rj2( za+3UcSLeW^oDaOdm%IAu75$s!uYN&&l(WclMg|_`?Dd>i;b~h$DM?9_1HZameqTL1 z@F=I4*Dr8aKLf6&Bqc2i>Z2UJ9^4#wl+(y_cEN|ce;N4Ie*AiUB=9KbJ+J@SUH!b| z{rncxU!5P%N%><``S1GK;W;8EH0?B@bS=l_LQ|CE$;JA9*ib$4C& zXZpAgz&E--7?aZr^~&iFSI)4QoN1_6&O7iE-p>bc<$r|y9lpI^!VkEgK~B0>_7@l7 zce$thIdPtqlha-EshmP^<&=oYse^juG=(?ze%iv7-x2x8e0zt$e|4XNoIala7W{Sh zg)uo>QLmicaOE6~$vKaDjNkmw7+S;L2Zx{6W6G2jNrP&m-q+&%Xly+da)``-jo5(Rx-+ zes>)g%DEG+oH8*v4N@E594^XZ!ZP7SxBYLubPE9BC0e_sur$(jY%Y zGM)AN)xAM|wq$SVeI7!6m3)@-e{|gmoXzF?KJbIco_&|GXUUR%iIH9Q>`Nv~b_Q9p zj_g?)WsMk1MIu{DqDl71S_+jUL>PN2{6F_R*Zp;$>-T@o>-9a~=IwGl_w#%{=ggSU z1(VMe(E14Hca2NWvd+#!*B_t1tgAgK;d1`cb2cJ)3Ld$QOV5k=1yWJ!sfT$=o4oX7 zfY&rGJ<;fCNIgxEZ(;J%69w;XTzc|$37&$-0P5+A{4kSGJRkT3u&e>UQf?qPyRRKGJmhA;3;@qp`NMOZ?XiL@bRyMc10zA z7)l4%`88kIlP~SbH}K?JQhqw-iKhI2m}eyUGq1QgCsI!=dX`hZ3-TY6Pls=$p1J5b zOx_WG()7r6JPW^QT+V+T`fqr8?wh>yWGLYFmG(xG#DCEDy>?xl=YY$P%6&Bu>z1ed z802es@|`JPyqoLqP5CA0A7t_}XC&qvZ(R1<3_a7S=Y90NWAf4ygPu6!w&w%t*@m8- ze zvw-qx2DqN(c6j_0^>jkdc~Aa0yz3}tYd>*)-=ThX0P(BU%>rnnS@=eJj2f2CLQBPL%45NHE+-*`CF7LPY z`*Z7aEtI4al#6%PwSH{rx0s zOkR3ov9B+UOV0`P>>(#eaGj^Blmw4UCZD*kqR#Id zm!2NzN%qiP7ul2edUz`1(i4ddXErYRpYEvACpI6lb4?6#S%GG(YW;7MNcGo zt)VVo&v@cI#ho`dEKm3 z48z?|C{JDwUe&ntoJCI^X``KEB4XO626wJ~|=DO1}0Ku_b+GXp(?$S=W%8<(Ca z^o%zyJ!wX`{^@X?XOrX5D$3VFek1vC_?MoZ?jUtjG>OTHHK zWFy!9JaFCbHte?o`6uue*<+KdF@$7u03l!J-aBcJ>QX+ zz&t;aYyU6Qe-Qh9KzfV zJ{R*$B-j2ossDHEcQyG9_)hBCivEM-XW&10dahGmd+w8KPqL)${PjF_o;+~9F4|Ls zJkvfS{x9Z< zA=m!N)L#|*{gAvhJf3>;jdJ(N0rD5%Cp3#1bhJXEJ6PW@~`12zeyDjHjm|<+bM}a_#Bt=@~|O?TH~DfqC8}*Zx@Q z*WXX_waLq`L-oHC_Z_+Zcj8Wy>whQiGP(YD;!>t~{5~W7`uF6NBJY>XopTFvo#$n8 zou@Ck&NGr+=a~tY%bmt8nfSb#@;c`R<2i!lVx045#${js;S1B9#wGtR^2f=K;};%3 z8P65uWAXLy@5ZIScQuIsiX*LAzWb=`*8?`X>R#hjDLSHNS*lgGHCcRl@^ zD6jq7$+dqkx%MCR^k1gD_TMJg{)gn+|3u2i?{9LS>-pq@>-*a?*l!_E{&~vlJoU+S zo)+XfPg_raf66z;JVPko-CdSYEcsOUa?>NP7kxkZguHERlEk0!g>ktLSH&c9DBigA zG+yTXTjP?y5##)*@x*oU1;-iVlFu^U$?Au>$)k@BuyMZ&so>aK(6cNg7doND6jp`lWTu{a_w*8>F?(8QPiXBP9oQJ z-y+v_7kc_PP+t4Dk!$~Ma_v9t>AysI?Y~K`{r{0`e~Ps3I`VbN2iNPX{l&<&zZ|*t zSMl^Wqx>Y?pY1*Q!Ial|Mw9D2lgV|S8J_;-lwXZ`R#85!98~Z);qf!3N8Ts(zmIm+ zxV%puME^bV>+mG$!e3vRCd#V8=O*%o@T_pXjyh*vlehB}H*V)CPpskn21x z;XF?VlehEqG%oY#x`W7d-BIMa?s((2e>$A!dB>AqYTVAVnq24EM6UB}hx59-P2SFV z)VN*uG`X((2f40$9nS0CGkLr26Y0b6H$DIK#-+a>UN1f1JZFECw>=|`+c_ta>zuR5b-QOElI!;w){yJ>6ONMWuT##$WxTZRXxwv#$FCQeQ+rYxm+Lqe z`%Q0L^7?&=oW>=88~Nhox$rL_%fNLW>5@l1lNZzPOSCX9{VUMZ(bF@6@~4o0gFFL% zfi#1>5qzGfe;wtu|8sKf-$}0h-%)=>IfUTxgUQS5D?`~t4*hOi&fyKrd6oPN_&xGG z(_BxIjE`RzazE(0so?Uuu$>IPdfj#1>Lzd3ZD`!C`x3dX+nHR~ z?PlEe_ct#6Epa}>;XLO!leaxHjN3Wqk?Wjsu!JGKIfy==U+w8<%{pH-o3(k;Qo8y7)duKI4*q z9{FN$-IvZ^*5u`UBJsMYV_d$Upx?*nVBF@r8<%ybVBG<5UUvaG;-O8ZN7ikKkM~kO zF8DEd95#8GCmQo#FfQ|4!U8v_XM>akkNYMsJ!jFAI`iY}B0bMcmvnF);JPpEd5-df zkgrZY2i|~scDVXbck)y4@znDy|BUk5|24Vxe@m|YC#nA;=D$t( z{4?ASJS49JPnjkB{CmPPk-rJg1J~=K>sFw=u3M8_*KJ6y>%K&;>vo3oy2B{1{W0X) z|0cQi$9nod@c0hu(RKHc>$=Ctb=@Be(`nytI`}>h=|1fgxAMNRXoAPUMe=hdqKc&3R^A)+yv!7h&Iqd2GgYri)&lSo) z!s|49Hg~=Bx~S)arw(%RJ{j?x`w3-?%lqVQ^j9U%KGWsvkXMB_B_9ND2j_XBOy17Z z-?*J;IJwR+Ujc`@e(pJU@8y=ZxEV z{vy|T?vm>~q3r+v`y?ft?~^RX?Yd8s>$=a7>$=audB0Un-kwi=<96K^Hi#aUWDtM&&odpkIXs3@2iUNl5n}Nq~|nxDw02hN0JwtCGDY5BkHe){;rg7 zjC?=xf$(AE@4`n@eso4kD8uHPTnWAd`|s6sMjD0I$~zieF2VLR4MFfQjGh4<%w zjLW(Yin)Q(!>OaGp?f~Vk7n7lx&^U`qn+0wWf^H(x?nI|6eG&L^$ ztI*Sq{4aP{@(QzqpA+AHzBPV)|vyXv}%VxXk$#*1bdi2%bE5`1Nh@j+^HxxX!8TW;c1e zZXx5cuJ)HF*Z!);ZBHFIuiMy@Z)e=D+lyS+9qj2JY4UcS$;NH}JaX-i^YpJWdE5V~ zaofL}T>B4u`cIm??LTka_TMJg{(p?yo+t8z-zT$ipQMNL^~z@Qwx^(RJ5M=sou`U% z+f&=P^z6qx4dFV^O}t*ln7s7F;q?-0JaHcMyh}Z)@c!@_AK9pE2QPiFM&qI@j!-+BCd>M4Mp+mye6o`;k#gM9Xq#5}@oPQ7U;+TIFd42e7@(%EoNZu9x5U#(D&|lYN z%m4U(kY8W?hd;nji2UIDa#F#6_nSQJH;EjIgi9)&qr~SZlb83&&bYpP$hX3yjm!IO zhVrg#q;culvcUO7xUQSoacG9gOHUMf78{qI`U~Ap_`u^Es6Q|Ix0-z7=PC5>H!l6T z-*rFXxW|8?{%Yv|hw?4Z^F)Ei*Gu}~`&S#6{w#~#emB8+ zzuQdS_Utom=R8KPbDkmBInNol{eKyk{>GT|CS2##Kd+aw;N$l_d7ZxIwiU_`m-h$h z&rrerKw0C`{~7wLkza+^CGYT_>uCnpd34>jCU4j6ZrrXrfLzxdK^}{B-+=SFZ<@Sa zcfN7E?lN*+cMZ9&yTQ2a-)3C;_h8Q5aGvv!$=jY&#_gQv$#u?a?${^`bT&s;dK`<^Gi+PGbJE4i-wji>)xlehDnG;aGZl577BPycf`ujI(n!NN!R1BVi$BV|L zKYN^LDAbxfDlU;jUC2L%_kioZj=Okh9QmiXUhj}=ev#>yIioP=D&sQe9jv>NT+ewY zd5L9ipo4Ip^MuLUb$>H1>uUck<2L`m)1SQPf-@!MOA+LVg>Z&*vMHw>?LU+j-8C>pT~X z+nxmD(sLa1+=c5rv*aIwNAYLEKkuJ&9C{9}pWowfpVu%h{i&9_pU{B3CcGv26nH1N z&ZECy=rzh8Lw+Lp9r&Bn^B3m-*yQsBroS%!(c|~Y%kFjul(bmV#6~#>>8S`$ORm2! zIw!gQzUU(4`un15lk1$l$@TX)zCqq@S>kx1>Euu2>$xOZ;e{!sFKk1%vIcNR-*hz~&K7YwSv(n`=lgGnz8kg6_5!|;0 zjZ44&e(cI{ogd#;2}PQ`^fa&J)@@;2<{9~c^N!>-K6KuL{4@AKIIlb0jN5f* zlIyzj$#vaja9tPQ_71H!d0BTo_WP-ES+@wjAoz+r3cladf7IlqKLP#MDGv_aqkNgl z?mSbL2)`fZVcksRN8owL^RIS2Mc{f4y6y{<*Z#)j+S8VL+PL~q7n7I$Mq>WH#^pS9 z&Y|SmKhD!X#pI-E+CswQvy>l>GT?P+h^=DT_N z`+D-jjobd2o}RfTZ`WOB-1dCt>G{g!ZO=jDw&$Fu=d#J$o_oe^&y&wSzK-ILa9z?F zw>{a7OTNHI!Bg zn;z+Jj{AABap~`k{tw9S!Pk5GKR0>lUyuI%#-)Gon&2sT948Nb?EGi)7VwL3-LLNJ zy2&S=TUFQd$hciMRjKg%LHo17wf}&t3FR?)=|6&fJ!4$@b^hnbwZFQjzmCaEe{;;= z#<=Z|qMoyOe;Z5rgE+UTfoo#Jldbfxb$mJDdRR@+0!5C$u~A``@4F2`k1_3 zcbIY8GsDv}$K-9#GUK-AGf&S~CU1KV8n-=X$cN*)oHK5F{xU8-?;?K}&e!pw$=jYZ z_`*Q0ubn41xz3Z{xa}!nTzW2Gp0aSA=V9<;@@PYzN&>;-Wz!@55!DhoG|;&8r&{Oy zb@Gz%X`cSsCU5(f7`Oea$hH4-Pk+40+x|nwZU0Gf?f>1l?YU}PdS1tV@4@w)^*kS$ zyzNO_HvIj0H+r&>SNz1Ca{=SFr=)S2=OpqK;W|%kT;CcdFFi51zAqY=p3dvtx~<87 zfOj-5J)!C@-@~}{)Wg}UUyutEtFq?{IBGz;QyK) zxxPIyPx5l%=k_N2De@EWoN%d4AN)`IpQF6?S0~s0dgR*Q+|%Ei^4dRyT>Hn6YySjK z|3b>&!+uwI@?TP3=h;K9^Bf`9d4BNp|3&%So80|;lk#8U`erI0{&mPccs26x;cemi z`KvwpUm+h2?@PWEK9u|$_&B)UC%Wze%4`2}a_#?^T>CeA`uBPKEcNKRm&tYA+vK|L zLr;IU3gNFK?T;YW{^I1?Umniq)`arf-F=J`ZrVl z0`8L?p8QG5>pZ`a>pWM;b)FlZ{wFJjU$4}g-RmnIT+bi>Ir30plb845c)Sl+p?tKf z4b`H20`lFA%lq)NShu%v>DT-azfAU_H}LjCj6f0?{DzTfqbT=OX^J-%Lv=Z|@E8n@?DjQq(@6OSQO z4zA}mAM;c*dE4K>xb5#?+~&K(xxb$$Kf<`}pXKS9XYzL4<;HE#=boN;leayGjN6{y zJv~=U-uC=$-1elb{P;SGm&A2RZ`}6eFfRFK$QOX~ITts1+f&K7ou@vz&eO!W?P+UV zdWK-0&TyS)E$*w?zDhMw7!{|fm<#j@0gC>ez;z*qWHdL zF_V{l#bIAnjZ4p>t-(|9s6&1W-juxN7cSq*xb1)0xb%OGd@nf9`8Ih?%)f?uYHV}s z?x1`F>{4b#=TUpVTXJoz)8 z{7p|jP0jFg(|zTK^Z8WuGaRw>@*=yzYCR{A%NN z-L2%`<2=7IZr9y!TzblW6Fdcv<8YlP!xPR=o4oYI*K&Tvxb%!g&mHpX@JF8hCu=>v zf22Rd3$8!2ap^C*%XvXK&soCcr6&qK)s0Kf1oYG+{}tZG)Bm!`OaFTG4=^tM+B24V zqH&&+Owx)0X@IytAi&2<5LLKgN@vNBIfJ$C2wiACc=k>plH@D4%hUyFU+7 zzCP}g1oB?+zfF(a|IxVrv($0tujhOcUyoIU>-QPTW8LbWd`pi`!?@hcU>~W^*pblr!3`LAzzI=240JL zZlb3xxn8dxuY zWZbUXid@%?GH%!HV_bTU;rw5N>pW#}-A9|e^n~ijQz-Pdap|eGKaoR=Jv}Q;UV56N zXNz&^Ifb5hPtQJ+Puv%Jel;#V4G*|^{v;mf;UZ=8O&6o1z>v+7Ar)RJy|E4D& z=gDvN@ zzc1x0V4gvg?}__oF8Kubd!|QT7whY~eQl+DE!@xFo4njV?Xd2zm zqURUNuS5P4`6>7{>gj}@CteJ{&-MCdBJYEI1o={UW%5h7uUfO6lry+mKlTXt){JzzER=D1u+F#0(uT1&dn5PZp zzs5XK|dJ`&!;(=&$h+B1b*duDrj zR(tZBJo$s3{124Rf&Jd5{Cn8fL-PIblug6mPx7Lt2wdL>t|DKCJm*n&y(&^q0rWKW zcwg#y9zCPTqu`UMr#SjoQ+^WipHRL$@`uPb!T0mb zcQED8AwSxapX13d@#H`AKcA38ITQA8PXQ_2EHW zmvQ7%PPqIu^8euPkPrIa<=-Q}5C4$7><=!#0j_gi#GG4AUcT-Xh4WM&pu?N4^+buls47Pg%-G)^|O%jLSTgPCI{* zd@{T>^@pBu`OYSvI1l;<7?=JZ(KCWP%Nf`6266q^IXsleg<$F>ZU3w0755ua}-@D!6=|V0*F|w>>32J>^Z_ z_S7U!FA3$xX(|Le+y6ACj2^ffjVMPrf(hAEJK|D! z)YBbvE~5NP$iGiM3BHDUdZXuS^2zX@sb>{>E_(8hJo!{@!_Qg!^TYL=wZ9bQ>y~im zP>=HWFi&$&zPBeogz`<$Kb!J-es$|EB5w+RpL*J$=NrloLjDl>3ixsA>4=^Sc2mSfr`nu43B~QMVC*R(af0goWG0z*6fB&pI&l#TlN>6^BC%?y& zKTi2`#oW5rDIfov^ZTBBlJ<|!Q{I1K8@PNr5QHep8Qo${vPFvVBM@8!_Rp!`ty+=fER=7`IkUXeac@&z6E*iKiv7WrJgeA=}jJo zU(b#s-vFOaz8k)l{0I1Ma{Ye7&*Vq&e)W)Cf4!EklRGy(hjVxzu0oywZ$|zEUhjj+ zv%zPRN5I#RmxmuEkAz<&ZvekT-U*(pbNId{!V8ekf>$SB3U5!o20oDdGx#*}-SDO4 z`abz7`SZAc4w2V~|3TgY{(!tAJnPHh=g znc)ZFse_kQp5TA_eaJ`TzwC3byFy(a@9QZ?iO-R6?rC6L-iK@8_1o0AtotASe0qE1 zlAm!Qu|Cv?y#7V!(Z=QTX*@ok4l^$Om)grKEfgAWT>3X$O61TKaz2$Dht`>V;;%azxgYq-xb)<|?0h%%)I`r&^1^Ogp-ZMm`a|fy zV_f=QNB<-8PvOa<-1SWzWNpt=#-%6emEb9O>zg$lxxSrcg?5jED zcOl<~@^g`oHhGyp7UwY1xLn6)O1pI@8JB(ih5omwf1Hbl=9|3qN4)5MV3l#{>2cNh zI_jC?IJBR98RkD~dZa%N^Z#O8`nRM168U}jHRHDDZ{yNa`kEUk=_`+~yZ91#TJnG3 z*~ph)cRdksy^i?w7pg+}8_3tBd^a~ns53dzPNs5*|k$!oMH+h7L7j8*Xgv&ny2BJf4Q@`)vZ|FJWBzC!)Usc|5$DahX$l>Kd1xboYa& z;L(hHG`v0ekMM5f{r+)1{o%T=N!Zt9%5Ot{2IcjA{sWVj`D1X->y68G)c5Ue#${i> zqklK`4|ijR4w=04XK3nv;1}c4)9GL5=cz~E{~wX--vjn!_s6eC>5s+yS&U2nX7oQz zo&Yao-1d|*E+(7%y<-a|L%=f-W%PUF&(>-m(! z`*5-zkFUF|n}B>OxaO-NU)kj4e%ANf*E~L!T;FfsC4Vc*&AFXi`xD6L;4i|<{;C^H zezyEmbcx_8c$9<7`;wirn(@SQPU6ri(lZ75(Qv)K*`G~ZHnfoPPd(x0UqN00zLq=&{u%ih z_;xt2`zv_?%yZH7$iB+pd>$H?eI-rq=6s@;yN-IjG@k{o>uP@<%15EUoF`w+lW$;L z=6MG5v?Ff}f0_ErV!tCj{)Xw1bBM#7bB)Wo(db`FJ`cW%`uk$t@5s}@?~?z8*G2B$ zkIz}wJ%avc;Cjwi@H#DH@-qJs%wOHO^yEw7u46s&F7U?2ZBHBH(z74=C^*m4%jBge zqDAl&JjNN99$j~ur)Rdw+n$xiZO=MS&lZ!nJ%^1;PqHW7`TRuQ7=D5J3*dTPGkNKc z!hRnam;QO^d8$wN_5A~$6Rzi}{rOE^`s2`F%DC;XL7qRQ+gBaqwx_9a>4`?Z9bD&W zjr~TMy!4#KJcEo&&wccaBCmkISa}k84E!zfGw`{_?Ye8=I%jvxxry=_S_VS}j|0YK z&K#-T`5ZAW{hB}P>AytzNc2DQ4x?v-r)R6l+n(LVZO>s(&qpPVKyJ<;eXZCrZVrgJ?NjN5!oZ4OMi3pZ#QoH50PvCapTexhn}B}OV44< za}loR*0xmegTdpv$xBZHdO`!kulvLd?)+1e$HTLbr^@K^Pm|Y#7cy?wEoEHhe;xT6 zaGn2E%>N4I7bD-(lb_)6>83~KiD(-<1&`&P{70VrXU1jzotS4Y`33kP>W{|0{`B|_ z(<5^>$DB_@hhMMMncVrOCocof4%hSi6zjf7{vv!7`Sbl!ZUV0L+?lI$b-7}t^^CoY5?isf|Nd~!d=6O=V_1B3yPXXi7 z(*^q~NxlwVh5E~t4t`SbsAcjpXY+Q69BOG?`qN}_=hl_H1H7N7|231B{y6lHH*Wi9 zlWYHc?exLx!H9+@W^=kTg0Kfse8WnAW2 zi+QG#ABE4R{#fj5t;at#Ju+t;=G^5?w63y0_S`gk5@K5GEY3tp_wP&)|2mUT;@-o$DPA#!uk0dsCJF6*{I|2Fc`@Lklu7VG{^UI(6USor&126$1pzQ09u3KkC@k;Y}7Em*e+ z^&CP^Ym=9KHAhch;0hX&NO-HS&wyB8n^4N^Ym;n zdE2w!xa~Ra={arkw&%8S>8Xl+JtUt7PcuCHdi{=b&J5S<73wU96#TuR#-;xPddibm z$mh_ID%K{@%u=Ck{PBj7!fz%rgeA*SBcd;0J@pB$Jn(1oX@^ zEr*r{#|5T)&_t9U&7SD+gMWWT`D@5u@Z^(@3V)qyPinZnPNSm|>qGfH z`C^`YMdLDmmZI()>XBE5H>Um^*jF!)N1L9+`v-GQFfQwMLjO$iH{kQAzcbc7KzA#Gg6l21#W0m4=-3)N~ND|tg!{ntu0sV!I+x`mV+F#AM^h9C^V&kW;s-Fe1k z-P*{10N431VE+A-e--(|p8OS$-!eTiPdv^c^;o%jp%AZ|39j#ln$Krk=AVIiN|UdL zSD^j`?5l;x+nXMlGXZnslEf8gV&ze2g-Ck2m9ozcX z=~<6;yBN3Y_V)A)GI`rG(YWoI<>{Gc^0wy_mWmu8iAnNAlEVo%bMr2|keg6ZlZ$cHMEtW!*oKe+#bj@4);UDWCQ^ zH_zvu{0WbrF+DO*h91FF@VMp4|Le)89RK+G%KXn^o*d+D;7`MKU;D7HsvdvA^vIl% zn6tHUS$8D*yO77hdr^P7^1)9E9*fCWVxDivqv7A0ewim4^PD#>^PIxEH>l@Xtb5<& zr6&$OPrVU-o;Az4>zmcM&F3>N>lP~S^2OkK&bn?{lb4>*tMU~5wMxdNN7rrX>FHqd zwx_>w+cVtLGtT5~&jRDp^D_3eoO~_(6Y8&xbN@}6?ML$V@N=I2 z%O)@Vap=Ei-1a{?A^iGke>&sRlYpM=#--;S%#$Ck*LMo`Tg>F8C$eYo6g;XLm!7f} z-G1wk_lGwn-vVz(o~e@SdD*yKx0i8Qw=wb~;5z?2%)f~81Cd|m$#3`gZqp<4MB^OJ zc=G2x`5VS%{<)YZ$;9yMxE1~+T=x}+eHHY03DYBU#$nDH#%0}~(cgePS!H+rEvWww ztUHN(H2h=o2Jp?MU*G}+h2RH+$2pUio=`7&3WfeQE zr<@di&Qq$m{bqveIqSN)OkR4Tux?r7cHL^8p4ujFd)gScJyD*XUM6pQ#v7NOud%P` zB(Kgo##d4Hh;so>i9>f_go^u%M` zT*mFXh2Y#%(&TMVP2;wwp{J*X$=jYj#-*n!_VpV1H28SxzlC$2X7bXXp>OaMJl-`f z{TI;l5qX73cb=O){a>2A^hcq8zj53D6S?;PYFv8OqvucK(lZeA+=AuVmWe>n=ToYPo%7BaebdkgtXpCr|!@>nUU0u3Oc(tXmWLMsS_K9_H^) z`L4(h@#Np~_n!+)aw=GfOAk3TRyGG`R#%t(0bFpq)@{;heVF3N`o-fHOpnYNk2&ufmvtMVKiSOi>kTW0P^|d8(m1&#lI7{u|?x zzm5DMxb9ci{odrICkE^OW!$cN*VFURfle^XG>1JOxeO_Ea}6^OS1j&Y>Rp z82C%nzXIpn(d4E72=?30xb&Yw&uH>uFS>Ond-`XYy!1yz2T#Fck#XC4+RZn&Q3MeO&G$xBZ>dVVo3Jvkb?eO)4N1;0uD9{fM@`|zZ1J-+UC-L%GK z-EvLbx_RI_|6R;qlk#nluj|Rb;_=?5N9IYuImCGKQ$6{)#%2D|nCE@+IQSas4^<9+ zQt;U8@x!J^=8PDW7!RE@F6-_>|6k;n;diLNF4ip;>#mEQ^BJ6TbMjU2cJS1}nlevw z%rnTi%u}eTyN+Y2rw7)ZZ1U0*gPz64rDqy?mK(SEkBv*deKWW27P#(9*WF?A(sLH; zesA2a`>UttqRHEye~jCnCuWDAv(A$iuIH)q6gDnB?_gi0$IZOERaJ{}? zVZU2UUV1VN37&$-UgOg9N(;B&qvY?wPm^DO|3UsjOV@M7xLx;-aangX^2y&0zaPHC z{LjGUevtf9-MCc z=dtcUlb3xRLC+-P(sK+w(~aBwT;r0T*~*>6Qn-91JJfYQG+bXP z95H#@^Sg1|bJf#x$K-8K`Z?~p=zYEy`^rI{t+m^4VYu%1C7koKCNKTb*l!KvGUqz< zG$nrkZ|CWcGI{BbM}L3gwtoz{_D?V_JsE}uPr+lRap|el#_e}LT=zR4`(0}C(i4TA z^~R;=1bV(8&(PNO?;>vx|Bn1q_zB~7-CvB$y4R7v2G{vN!2B8KhF|wg?c6-s;hZn$ z@oJ_==845QwDjaVc=A1s%lwrw&v5ci@G;cC9{XD8@nxn*=8VUjn~lr5G3ehx{sDY1 z_20p||B}yu7nm3RzSj<39Io$g37Dt0ahc~V)@@EbS*r#=7(CjUyzDDtSR#i87?+;9 z?cMc#&A82vH7@xp$WMjq{h;f{n!NPHVBHUm+jTd1dbXOp?Kx=N_Wa=K`NiaI&pqSP zQ@DdWha~gE@Bi1}>EXKH5>Z*ZmH}ey5te^u(iQp>gTCgPs-SWjne3t|cD{ z|BUK`qlm{aDDwo zj0nntM+r~9oF^Y?T;^$yd76`tfw!Ulso3vekB>Axvacx2In%hTyA1vF$@jwJsQ(bw zJwe_b{x5kMc(R3$Uw1N3Eau5$T;@sgvb(;8jY~cr`AWtm|0?pe;Cerls22QS@MviA z($oC)L=Lq#E^Io@nFp_frjscl{%cOMmh%ZeKCRCEsYf%fD${^7WCA zH7@H$jCA=W#w9-!`IW{cACLSx+(JG%oY>z&zE-r@>#K{_Hh_pAt> z0Dgt~zeoQqlb8M&^gr=l_;nnMp7i9K;W@|?;054%-F4mKCU4iRXk7NC>qe66x{b(n z-Ij1&cRcR%ekL#LuE%}{8_yHCex904J@xSZIm_g2&%4HD{vtixby-Q?2L6$8+q2oY z^t_Gy4!G`1=h-IJ->yAXv>*QPD6FmLX zO&-j?@qYxw+deG2TWdin#TlB!Q-@X=~;-L zKghp_UnhUMms|Hfc`NuM<96LtOT+JA|I6f`!3R>$(=`&0Gc=v@w~(Lf$*-e)&OUCxpHsdF z`hTE&Yvj+8FN0sEo)YLuxh(wt+=F~3^4stna6Qj5=qcs#M%0tDuiIBEPrkn=Kb-QF zvF=>T*F^tP^8WDE)bl)g_EP?BF3UWs3$+mlV3pjZs^}a`LgJbC+`A3Ks~+CbBXd3k-tg45&k#z z^hZzn72&UU_2O`SU7tixc~8EHC*PLxL$U5q%0EE=IPwzx-T6IYl0T^G?$0Rl^!U1E6nS>| zH1cZCyPo;v?ckfqd%(XV?+-suJ_erT{qXy0D!c&se0XK@rSO*IAH(~R?}bkzKL-DZ z{096W`F;2~@-%qg_>VjrJnskL`_<2D<;dTu=gz+&`3iU!@=fre93?(~!`Cat}MxikI&)BfKoXQUflQ-F!{f# z#%0co_^}t@|NFl8c=rRXOkUR2z4aqsik>mXWnKB2Odd0hOGoZR4SxSPT-S}px*wXn ztXl~AugEvTj~JJA%fQbXmvsxnFTr))IIR1R$;-Oskk7O#{QUR83mTVo8^FsMmvwRb zhpNGK-6L4HiOI{lk?83`eg;0wxU3rmpKM&#tq-3C*L6d0xF3i!d0Dp!@}H9@!1o)M zbw|K|GA`@3fd2;9b<1GgTP82-wnskA>hN=Z0MBDw){TXiG%oAvA1f>m*L9$(Y8x2DO$(vW+(2)eysSIkap)uRNc3zoF6*X*e`{RU{ThB8 zuIo0(x__9wtUDF!J|J&|p7d)TpTDdd0e{-Ktotpz2wc~V#k!SEUe=w7b(@ppw~d5e zF)r&?M*kq=vhMHj*WtQuJl36J^0Kbp4@=4MZH&-*6g!^Z%+=Mg2w^! zyjk2pKaj7@;QYyt-FeEK((`w;v;=>j9QkiCE}x%#BVHJ#$p6FdAFD>bAfM}RK)yYX z>u*gy5r3~sSMs<~Ev@~} z=XB2XS$?+Lp_7#O0rj-_IJ3v~>t)UB*Re$?uU?8=bB)Q%;Nw>0FW_U`rXgKdy(i@t z;^V;{A4&cmKGx5Z+OMu(->JtTzleI&SCFsA#~VD3m(&0DwFS9dlvh7Uz8xQ5CXdI* zH_6Z9;|Cs3E*lLVy5Ds87@yw$kLRF#MtqF7oB!q2@iO?IF0Tg$$gHu!_Z*rQ6EW;Z$pMAd3+}M0DQd2Ie|!t|T-Q74 z@n6Ze;^WI6ze#=qABU0!H%IW$`$Rn@`CrHvBu{{sAioW-=F`Cc-Vf?o$@d^%(Bmb@_ak4?<2A^2|BXG~iu?@vyLh}O`EBHfdVCD|edHIA>n|GO z$g|_)H6GtYuKU^H@jc|N@$m_dpCNCDk1u-sI(aXA{J`VMlZU@=^hGX%$8(U6K)xb* z47>*U`|ySyZ$aK6g`2OF$GelSKz^{tN0P5ZeyYb~$*ajXIfBO`kFOwai2MeRZzb=A z{9cbACjS`uQyxD@z6JRNkN-`668X$HCw)ITh3lA`JPm$+Me-252Kg0uL-MQmxCObM ze?M|v_cij8=zq)O^T|&mzma?bKK_DS@1GyZr{d$Yd>YrX{eO!Sl^ z*L-_&&A&pf`LX0J@bP4Fy+2oyx53AHKkB}^z>j(Ir^q#bkGvy3enhVM!uW->uB-WH z$u-}I{49D~l3#~+_IMBS`^Zlq58>nKhV70+CPPS zJ$l|EKMQ}?}M|pe#c?aa@di*`|&d9IwxZZbq z&Rvn;NqO}H zKke}%$3i@OW|ZCCFFzcpdVU$T#zN zTk;(8n=FDyZ;uZm&yBo(p3(iPPo#WaG)P!pQ&N@n6V` zBA?)KeSPRT6h}T8?mPB0+!YX3Ey*h&-`V3m$SWZ~+~ecO zt0MoV$KNKej{HiGe@tEz`OiH575NLuANBZ8m&cr<0&$@*Pq@ejgZgi z@tow1kuTx#a^%gBui^1}|BxTX^-Y1Fr}vL~dUCxV^z*ak)eBO766V*>Gn&`yuJ8Bidc9tvp0oJ4BY9TL zKY%<-7Iz;GBQF47NUr_M$n_l7di+yzJ%^nhKR~YM^8>k_&oAV9KL3#G{7G>hdY;Sh zaXOFd`DtF~FGzXy66F1Go)tY_gZvZZ8+*JJd0pH;T|C~Cyf5-YJwAqf2=Y@s9!ow7 z`6V9zfLyQd26DZ=Tgl%;|1OUoB-i`lGI?5je3M+ScXC_@z3%#YNk^`)montqUzuEA zFLgZLm|X9x_8xzQT+g#Vxt`}xay_5fPa=pF{$o2X*C)d|YM~`m-x!!LN$@Tt8g+BnR?_+xZWF*)9<{{Vp79!XAYm)2y z^~v??jh8&$kzDuH%j41Hy5G^{y5EW9y5CrG-R}Z&-S1{{-S3y=I?q0Go#zO-&U1!b z=Q&TV^MrDSzdz_aDarNoV?pw!xUWi(>-$?pkJljA>($uft;qF!x{&Mn^d#5!x4|AC zNv`j2Q#~F_uJ1pKJidZl-+wlEd@H%W|LpSkL2|txPLb>VaE@Hxf3AA`4!PbxndJ}p z2M>LJ(EA}b`75|jig>&fxqknuy2tB~>;2Q(>-lsd&w)9+lk5EB$hCh8x%ST|*Z!sCdJbQaYyVzy?LS7Y z{in#a{|>qKKOoosRQU6YdL6YtBf0iJORoJD$hAL`T>Bf4>;3kU$2*ei_0m6osq^do zKZ)}C^>eJp7mz=RuUA))>*s|vP*k?TCS$aS87$v?w9De{KD zKdYxF*ZC`u>-^7?>-$Lqa-F9+xnB3aHn7YyT8-?O#Ez=e&me2F`zr$9ItH z{d2_QKa%V9`iorWzfHaw*XxnTpL{y}I_mW*My_*~CD-$;N&XwwtxvA!*@ImB`;(_Z z&j@nuk0B4?eRvVM_OBq<`8Sbk|2A@+|1`Pw|4y#g>zc>!lIuK4@b@U_`;X3(iu^Xt zCyU4PkpG8#QID4<*Yj*duKR6CuJgZ4uJgZ2uIKp%`9r*p-Xz!lx#aqN%=gH3{?Ezv z>yvnLeI0#EuAirllk3+TzmPA$eRzRfzurg^5&pUxiR+SzJVviCxz3Y^yfxM>>haR# z`s;;8HC`YkyyI?Vm!f z{cn+L|GVVcznonAx06r7{kfZ5U%$u6JL7e6nq2$ulWTvH0^!$X2G-3^uKoGQwZAU8 z_BSDqMSnYT?T;eY{!!#Q=LB;7_gKrwHNTo%=h;QR1@F%X$@S~5%jBBBNxl<3ISPiK zv*shnk0M`gzrx%T%a*Zd&zZ_qP?Tz}m?hg{zuHj-=p3-XU~AD$)G{3UYjPgW@W zeBMV-8glI~ORo7Uj1X|G2{A zYsfDlzt!Vklix!ApvO;;KSKVT$1js7#rMDNc>Do*Cgjr;4!`dS{~qT*hg`4wVsgD+pOfpqcZ?_RhW#EV z?}UAwChr4(NUr@UiiBTBJ)cY-&qc21Q`F<7$@P4yk?Z-?CfD=nLay`oB)^XH8SL?q z1p1qQ98O%aZH;(2Tr;z7LS=>!lC5zFr2C>+5AMx%R(DuCJHX9^XK& z_uCGS?;+RoJVvhPd5T=m=PtR<|Bzf?FR7jhzrN}j$#wpG9xqC+ub1aMUX@&5FAY52 zoLpZo9X;NSTwgDPJpMYlzFsDJdi>-{ywmdcu)5vxHmE=1A$K?9;#^)Z7C)a%) z^7!}Uy5HZ(b-#a->wfQ$>wX`Q>wa^V48Kowzxl~^o@dE*o(kkTPc3qtry;q{(}P^+ z=})eoAE%P*@3V|0*Y~$Y9$!JO*K32vx037m?D~In-37E&_4D`fLw9#~BQ2$*bR*rJ zBBgXoi-eR22ns0O0wPMc2+}P|qmqh9KU~jz{*U{;e#2VUi($@uXJ+rS@8w>Et3QX} zy1$)v{1ROEx7&_CgzNqjdM!9#c}%$OKgk_W57+%Cm*WND+J`c5?L%d_?murk-W0C= z=?~XF42Q3__rVE{PlN08S6?{36t4aG*72Qi?axne?avvw`gt9$e%^uW^HH~w7tp$S3QN{1uTC>$7{k>Ph+_1X$_BI^}OTwdvMi18?O2nz;!=a30FNE;F|kS zaOFP(SN^MT<^Kb&{4om#=cPU;gqN`Xr*S+BT>JC7Msjd z{wi?ItDfV{;Hsx1T=jH^SFrOAaC`*3hQ)v6_;k4Xxf-tXZi1`+U2xU^16=*Q0k33p zzYACXC-67yT#*Y0=dSwG!S#HS4X*2`09@}=#o>D1cnf~h>ZuOb^F~MbPCIXR_X9N16Tf!;mZFhT=~C-EB|+J<=+oi{-5B= z{|8+8|AH(3OStmKcs)2@<uKY9Mik}Bp{>|_L_H`pW;ML3zIer3O+rFRVlH)hvO)UPQW{ULI$Y0s$G5;$&u?(O?gRK$t25pk!TwiF9sciR@G5qFWr2@0&jZ(ezJ%lD z;JW|Ua=am2_y6{ecZ2KxKLD=#_6WG{&yyYh1g`7%Yj{GtuD^pPGvDX<5qMgQzv%ci zcxH=_@@8UN+{KE02aP@PO2K>EPVu@!_e`h2v5=o(Zmg=5@RXT=mz6A4nU1-9~WL*}?I5;o65mj*o<^ z{^^d-g=-&{Ild0Aec0~!ez^AGl;c0c)z4>e^)qUj|2_8vaP=VtT<6UU*ST`TRewde z>Zu9Wd>cF78m|3($MN^zI@eIg$H3LkFW}0v6t4b!4Of4@gR4KM;a6<`FTr)*-yDAc zSDo?72IsE)$>6c=dM^N1d~vw0uZoV>gx|GuHFmr;T=fixtDbRi#V>>_emPwI*$3C3 zzigPVkkHFQ>i;iD|tDk>5 z{uHi$#ws74LnPZ1c_O&_nIEox7K5vwjZ<0(`u^?lidS z|HAR5aP7k;$G5>%|4)vefomVGJAMbQeR$@0)VKck+!H&V8m@j8hpV4u;p%5~xcX2J zuJg8p>s%e-+S?Iu)iWNhdZs%*7q0zW?D%T9&h@S1JK^f*MY!@@gR4LH;OfsmaP=oi zh2Y%v=iQ`%>%7?=&j(kXRpH8C7k<#LyKZpBzYo{-HNx@n@YR-oy5n=en>e&rf z{3W>JZ@|@`C>4YKUvG8Bfh&J@ctU$$%LlJzUc&Km@NO1g!}0p?&n&*J<6YrfExwQA zL*TnDew^b|;QK9pj^hjA2P}RoT>ab&S3gfUegUq2{^s}txcV8TQg9#Sap3A_D#tUy z)zAEn7lW&x6&TsiS05(B zb>7)=V~hfHwwCof$6DFRo2 zYQx*v{x^c_yloxt3fFl@!gQ^>`uVNnJK;@iUOzg160Uy!;`mLt>W@-AICuRyjB((q zKb7N|;M#}$ju(Tg{wj{wfomUHI^GekeR$vT!Eo)vhmKE$tDkG&>gP9b^>Y_oefR;c z^PYn1TtCBA|6{o7iBuyvchwWu@uYC=X9mY}z;&)dj+cb1pAF#3(*mykbcU-xJ>lxl z1b7y^?xw+Y-g%CH1y`Lr;L3jhu0MzLDqQh@z;%5+c05we;C%JxpT>1ODO~jwfvcW3 z;fikrS9~kD`ZEY#*!n*buKe@hQ!M@~xc(f~wT^Fw&$T@J96thIVDY!%Ys??Qzcvrm z3eH6y6TZXZv%`Nf&j&wYUc&Km@Lw&y)qgx@xU_%&-U*(>ey+FU1L5}NF`?0pPlT7X z{Bs;%2)9o+g;qJf5pJK32<>+K5ZoSvL#G|T1h==>&=YukJ6Gh|;eUzveTRrXtDo^4 zPX<>%Gdi9VUN-!4p`wnLhO3`d9j^;lKU+E839f$jc6=aQ{hR?;KR<()u=6f~s}F17 z_S*!ZEpVM{7hLuH3|BqZ;hOJ#xbi=SD}T~D;e%*Tls_%pzDzfi1FrMthud$5g-XIz zPkFfNX#v-{I>2*T|9d*#A8y~a7McN1V|hM%FPtZQ*6Z<%N1W-XC7U;zv3@0j@n+3RnGW;i`X+<3Ga7 zSUuO^I@fKu>W}nx_!nv}@>p=yUl6YPOTbl61-R;|0ayM`aQilmP!G8JGt%)1aMiOO zuKZizia+%qk7YfM_{Y!i4EA%k9KR3W6w&ZkKb|=rwO;t=Bf=tHcZbDihKHjW`q#n}Sf0&r*{@8HUlMTMx^1KFD{wnb47GDQG$Gn;2 z?cfV7zPsan;ae%9BmI@b}n>OTixZ?Ah9u6mxsl|NeJ@GsOH zl|La|`BTD`zc5_+-+(KBCAjj}f-8R)xbpXcEB_F<@{fiq{}*uW=Tf-lwHvPZL+}&f z_J(f26@M45{BfFuf1&1b-tr`Y>-x$ESA0?U@0O=7T=7ld%HIdB`{xk2?pL$mivJuQ zDdK>yek_MaH(w7|{=;zPKLuC(1GwJ5p1}2fk<1=E)PKdNgD1B-i^COP7Owow;d*{( z57+zeFu3B!!b?~^QyrfTuVC?;;L5)Zu6oYH^}Kfl-ox_0fGa+Fv+(>Q!XnwqX#qW0f5PXxxpLYBb{Hn#@cKji{YnE_-LM_7oj2K_! zSAWT4!h2YJa>vudi)Rhz&EJT}Y#EA8CE=2_ItKAFlq7aeNY7{h#ajBDng$&hc;I>i-XpABU^|zrxl3TX6ON zk>fAn>VLXc!MUrS+2C>P{!`ZRDsc6`q2n##>VG%K--oOJA2|LYT>YQp_(Hh)zZS0k zZ-%S?`y4+4*ZuIK$IpEr#ig4{uP575~opy#R zz9(GQ`yj_h!dKaTPJ(OhGvS)=7jVsYDO~5>4Og9q;Gf!gPdk1IKF{Kx!6%qUZ4>(U zN2FJOk9Z%SZk`ja_yX`L7XPN>72wL>3a&hz;EJCBSNt@%;#a|&WeT5jBV6~B-HsoE z>wa?9@n7M(pWJc$Z@BgN8(jC3!j8WI*M2sJtDmjm+S?)U z9+|@D84Xwer#U_cuKq7|d@Wr4-{$x}xcYp?@n7KT{~fsc|2JIykJ>IcUwK@(`kx!F zeinkO|Fz-kt^bYSQ8S0@XzO@axaQU0@!@dIYm(zL;hNVX$5+5LudR;ng==0X;F{M3 zxaRVk;}76^{|&Vd&Q~52uJ_;Mj;Dv~eKxP-Mc{h>E$?_Wxc03x{EqEUPq_AHkmDoa z+Mkad{}itMS?u^~xc29J$M?XsKc^kP1lRuDhHHNw!nHq9It2GY9tW;HN#%GZxb`Q% zJHu6_8#@%eD=!%D|Dz_ky%9RC5XeYoKGRk-%y z0bKj=1g^QqwBIm|^lB|4zxqp_5Uzbl?|62&_MwR5Z^E??)f|5tu6=0jcxSlwVGLX! z_f3L-W$#Cy!ZnvK;OhShxcdJ!T=g7*tDe*Fq*l*mxa#>0{lD1+l|LSQiN&Xc zD}P3~&YK6W^A?8dytUvuS3`JitEY|QUEoD6ehfUV`6PHY^L22=e+$oK@p~OV3|IbJ zaOJrVSA4S0!Fee@9bECn;p#(K_?K3HEyo+eb$@H`csIE2Zv!3w0It272G`!sfotEE z!nJQ};ku7)b9^6M_qUUdUxe%a_PgVM!gYU()Fn7yc`Uf@Zz&wl0N3?Z3a)*q2rpy% z@D5z@@4*#63I2xVnF&|?cW}k;hAaLOysYKF0oOi1bo@D7`y8ihu>bNTaP4y@$8*88 z&n4m7=kjpva~-($xiMV(+|lvwaP9M8$49}n&r=RXGRk-%y z4|rSKlP8WxekVA0?N36-Q^K_;*&KfjuKg+LczL+?rygAU(+sZt=>pgO^nz=DhB-bK zuKk(r_*}U5XPM*c;M$*Uj_-qOe@;4n5w87t0>`i{3me5&xb4iTX6|4$r`{BH1i)cz-d zYyZ>0wg0)`+W&%Z?SC1^E5o(_^&M{x*Zy~Pyf<9?Kg{v5aP9vL$3KH>|G$Md);_@7 znBRme{vKTMak>ZR*uwH8fh)cQT=C`Lif<0r_1GS+eeUh}K)CjKtmBj6+UL2BFM?~I zH^8;e-@~=fKftxm$Kl%NUmd>%*FOL4_zSr9Ic|^OeC0{u+UHD;=YngWi#c8fu6=F} z?_&Gb9W;mThHuKexb$t=%1aK(QNSNx}N#eWUYVEMm;tDgrQKL%Gn|Ac3^ z{7>Np%ro^4_EYh>;6*IH0$h1&z!l#Ku6gx<>%2o89}U-ezk-*uI#8J@v@?ls3>hwJ-@sM>ad-pk z+j+S1{|&Ei=XwFRFY^w?>JtvoT;z%1`hLCij%SDK>(9%TeG(WasS$SN^eZ z`)z{IWVn5p7Mkt&0=T|kZ?)r_;QD@nV{p}T4zBti!V}nepTm_uW#8bu>}@@i5&qcb zp2zXRaDD$pEx7VGgsYxj@cZ_<1K`R(9X`b3=fba;FLr!2{I1OKm46sq`9Fj!|5Uj0uY@cA2DtL?fGht2xbk0vYd>$pHLsWhLjV5IycC}h zej*$e$^%z?VYu?whM%`Qjo`Yzdczez5dOR6nE_Y)XK>};4A=d02VD273vk6>h3otE z?!xu`dXM1BpLk&SAnL#Jr-m!OC|vJfrQv$NXaZM!8@Rq-Z!lc(qu|Q_Ib6>VOW=C{ z-33?t4{&|I-YLg_hU@$Fp2C$s%AjDMRZj-Ep7(OVdqfQA)sOOU#aDwjxA+E*w}9*W z^#;O~{{y({nFrVN`B(6%R?iN&;t#;}{dy-HzW~?w>pg}mf26_T{%OxuPdd0hp2`Ma zXZ4qbE4~VRfyLKzyct~Iuh$>0{KMg@XYPMIPWXub{(TWVhyC1Y$2Y+%TKrDO55leO zp)-#E0$*nRc?#DNqS%96MA(1N72omX@I00%3%sa#9(a56qK=n_>*I^6j@O0Tr#nI| z;p$sQ_!6tdBg23wSwu-41YFkMBD^7_R-C3r}zP z7s3DU{^0l~xa!&I_(8bpIRn=me}Rv(I-kPRn@1TI{uj-+oq0mI@~4C=|Lbt&F9lcr zDsbhm16Tfc;Og6Z@K#p;P{+r>RnJ1W@-K($`ufK4?eH2_&kv3thqto$UmU*)SN+k3 zhkv2wsQTluV$1YCPnAFlZ3aK-nBAG7?!;X3aexZ)SWV?-SM)sL-k#qWim42OqKIsP+T z^*n~(v^|%Z~pB*Vh9)a{MJ+`jItK+@l>i=-Z$HCQ~g>YSW%i%4oKN}t23fJ{@4xZNX zT!!oZcH8lXa9xiH#|7uB{3+oL?RB#`{u*58tp->Ax8cg)!toAp<^KS#{(lHp{uz#c z23P)X;mW@guKhpa_-S|v&C&7S;Hv+T<1gW=KkfM7d{uu|xZ?9WUJTyF>VF%q{7vDC z?+Y(yd4|HPnU8n;W4QYBrQ<8%I`2`qKK?oje_-`og?G05@E>s9pC7?Lw)mHD-A__~ z7=9t$Z%^6lW`^s2RSK^7itrnjr;g)|;V&(|Jv^q>-wmGEd@Nk=%ah@H|D6rjxfa0H z&sC0ZgzM|~b~t_juKwSIe{Oxa2Uk5$&11icOaAJwxCtYNf5n9GKQzaQ)}NSgy>1e7 z=E;e8^{oJ0eR~70{d^0q`fI_ppAF%vvlm>~%K*6ca5`M^bK#2r27WHw#?W@S&U+rN z_$%;7mgfar@zFmD&g+H6XM*cG$^}w*JcBELiiyEKD?S5U_mh%v#g~W2x9h8>;|<`--wUq%1K_HEI$ZH{ z;fntTp4jT#4p%+r;YBU}3S9YLz!e{TQn1fuEKe@D;tRqRUjzPz<*5%ZYu*E{_va#pA81~1<^Kz= z`M!kfyfHow&P(+thHJj5;hOL3aMe=^uKZQZ_1u^`RrvX{CgSzF4d8m+)=r*2h~IAg z9|Esw{Tv5Zf2P1ES^ONh=Cu&6Jy`|Uxi-ReuA^|(e-^HOUNvVwZy{cM00UJ#RXB>LOnCG=Zz04sgBhyKuekc)0R^3|IcSaOGbF zSN?7Av$mi6;CkI-=IrNb#H*f5aP7%&PM(*DS3NPN1?R5&XJWXnm(+08pAD`$UxTa8 zDsa_P2d?{DGq~z$2Uk7a;i{)ET=jemS3RG?mH$h)@~?y|{{gu2ABF3FbpfvPUWMy^ z^%Ac581{`15s$$Uci@?Je@o(c8o17z9j^1{gX_Fi;i{)DT=|=ubN|~QUa#8)uGf9v z$ul1D>chwIZ>&Fa;U~=(!7rI_gDd|&xbk0yEB-h5TFd{?@#k>mPdy`eT`PZPxcdK^ zIs0D-@#=p`xcXnw$0Xnp7dSO2HLV_EzxcxLmj9A5=je>R)5KU)#6 z{_KUTKS!NB*BNhh-ht;af8u!LnZdd1ev%HZJlWuie+ypBUbi~Df_Y2FJHnNJ1iY!` z84uTeW4bx}zZCJxvlg!RwL|b$_PQtFoy_mT_3`o}xaJ$#KC#R?Q<&>MtUMXu%2N`a z+CCmB4_ADP|9HIc3jF)`4)ApLb3GmJ4{vYrBORXr?`H8c9iIo^V4t7a47W6)9q>l> z6Nel>0arbj9sdnJ!16zI{5gD~#mAf#{+Ed3MD$;t5PrR_5e%9jiIbIb0?-zEy z`ZX0CuL0NBr!{iC6}-RAtE=O^;qxtixZ~sCUt9b%$LGMcKO5ostZ!T4jm!_gwI@g6 zvn~DtT=TsOk81Vbb^H-Lw#CQ#H2gvl{~57A@%!l#J~x3Ye|xy{cY|vm`oT4qVQ}?-HoThE zvjDDoR>PHl6I|EV3AplKfGhtkxbokJ>$-m7c=S2pgJ{00Co5d_5mj^*n~FpGoHi z=cxQ?;mV&AuKWey%3lMn{Pp3=-wLk$o#1-^>h1VIxcdK*u!ZB|6aKAAB8Lb zS-A551y}xOaOIC_-;fniUc~dT@+X9=KY8I3t^Y;f%3lUv$NEqi-rBq^TzR^}bzkiR zSDi!PdcK+kSN_l8%D)`0{OjS$e;9t&`g00?$^2Ki^525%>&O0b{25%&!zn%wzmVp; z)?POQ{E~TYxauhcSN>9PeVtfExcbu?u6jDdRnPly)iW5bdd9(3&lI@oSpio)U&B?; zHn{592Uk7E;Hu{wT=hJJYk!`@RZq+>LjV5Id{s|Exa!FRSN_6qg#T`NR>4)zM!4!Z2G{GJ zga2XqAHo&?9Ikp&+8acqSHC{K<%sx4MtCv%xjc>+hU?FLD(!eBc)rNt7pU)eb9hgS z@8oz7_!)~I;`nHIhA82BrZ_$e-rC|9I=&pfJ8C%pM#s0pFIxNo$B)9>M-S(};P_Se zNQ-~q_!Ia+i;uP_{5sknc|7=)7~!~_@UVtL1>i~TC*E-UEqF$YuM4+NlZKkWH(Gpq zxaQss{%(};FX#u?9EZW9M+?V)2v2W56`s}nGq~pRC48dwe>>cc71|H)YCmz@@$>LA z7JuFGJ8)gU&m52XWjLYsq^@0$2^>!W*Y%#+@!W7-@5LQ23r}wIt?qa|xb~!t<6YoI zEdTqC4~G9>@napI4A&lh=J=Oz?dKZDzk!#uecS8!VYu!;XC40)u06l&_#^lct0(eT z!M&2lhIh65PfEu#!UtP?9>)vAr&@eD$E(6WvH1FqH;3!~IS`)RuG0_TdcU6N_zbw- zuRnKu2|R;czZ>DY4{U|&`aR(IQMj((OOD@w>w0|P_!D>zyS}0=4(^ZkHXeLX^l)4n zxZdxwz_o{^;n{6omEh;h>%rB}W^nbhGhBV^3IAKqKXCPJG+h0e3fFmO!*$+GaGiG> zT<1Lq*Ljb@b>53`o%b4C=e-BldH;dyyit|}_d(~41J`-8!}Hr5^TG8T@&;VzeG9Jh zwuUQzXSnje2Uq?pj(caq~X;X3bT_+Xpw4!F*H0j~I~ z@Nt&sC0y|_mIeE)_{?y{=Z34EN^r&3f-8R)_%O$a z@ilNge{OMn7hLzTqj0@{orUZD>k(Z2c?pkW*H^sd!8yv4!4p_~M#po))z6}E^|Lfw z=dA(PdF#V<-rn$oHur&W?ZartC&E?#9JuOV2-iNWb$l~i`>@;bLvZ!y99;dm3|D_b zD}wV?e`3NfSl^Psb*?n<=e7^o9nS}kWY1%D;i{(zTzlBb@g8vP=Rn6lfNQ=};F|9& zxcdJUT>W1KSN{*e)z1@f<-Z44{6BE@Kg!DBeC2WA>VH1?eVcnxc(I5NQt8Y8un%6vEgX{Ai>8x*w z;Ob{yxZ;bzGg+Q;j#q_e)4UvS4p%(`;HqZ?T>YO2SN~_g)&DQx>i<%>`o9ORdVYkz zW9L2N_%Cq%dGfa%e+bukL#u=H)p=vWb>1X!oi`1gPDer@$lI`^9H)_47-(`ne9Setrw@V*NY~f6eyf61=JTZ;n5Jx3Tz_ zj>lLN+>?JSKC$De;m<5S2VDKh4_ALm!quPhaP_AJT=#(vaP32H#|Of-4`Usl4A(x) zh3mYF;5zSGxX!y7uJfLP>%2e1b>3T!--qkGFC34)HnYgxZ*3o6<-6c_)hR8cCH@qE#@D>6+ace*5VgAz5=fNC*aC| z0lwYxKY}a%C0zTK#y)_J_~r3m{iXOUaMhpB@uG0m-voZr>TCm7J%izj9|gZ}?Re$WSgL`|y>P!s3X8syn*Zb>mUGHV#y56h6b-lNPe`e1K z@4#1>_jP10D z6<-9d_}XyAH-anvJ-Ffr!4*FfzQ+1L4}Q>mGhFdI;F~S}8eH+W;fjxCUlRAVusdAwec=P``F}24@r&S!-v;k%dG^5-e;cm&hj7Iw z{3h6+=Jt88l<>ahS>O+%hJSq?xPE`XDEv#SzcgIG&(#F3*KGsW*Bf+)>vj9WbsrlE z*YBfEfa~|Wm%vre8u*{qpYI*t16Tb=;VGkq`*{|g$NZ|}f55L={9|}Y>wl!p!MUqH z@!{%Ea(Lz#;a{H_Ucx*#TwniC%<(dCef>iX$LqsK+v~Q0>+2%A!1eVHeH|YP*FMaF z>-TLJ!qv}J=CNP3EBULxnym`ou+}49Uw^U%uIpm2ljjG-YhK6Us{dyv&!33bxt_vx zt{C42_eb?7fUEvAaMhUwt~$%WRZnHOzV7jD$D6`+-F0yMUAVsPvA^TP;p)!>xcV~< zuKvt}t3O}C)t?>kDt7-l0N4Heq~jOi`Z~j#@B?i0IC=IWex}XqFkJmP>*VbnDuKU9?xcV96``~=lp9FCACpTR66oTvPS4%lw5w7~{!Bu}VxSpfB zINl4c^A3jVyrbZHUYhFoY`C76zI1#gT+c;Y9Nz`k^U`6*Pr)^>zu=nJGr0O6V{339 z)c*u<^)oeG{mcwkJ*D8IY@aK_wLf(nZw%M-e@D3Xq&r;o4}fd#BjB3vM{vz?I$ZNw z4cB=$!BziGxavO$SN$j9s{bNf_1}c6{(ErMA7@)|AC}v^lE5{u^p0nT>%2waI`5ls zowqVv=dBIbd7Hv@-nMX^cL-eP9S#55`Y;8q`e(tL+57lHxawIBpJ^XY?S-qJ!*KQU zEL`>c3Rge>fUBQ>!PU=~aMd4UdvH(G&&+VulN+vjio#V-X}IdC23I|A!&Ogrxa#Q( z*Sto+m47^3^I8PoV|%g!u6gZ)EB*-lrseq!uJ{LVU5_sukG>=H?+<;R^RVSlM0IaJ!RpFZw6OQ6hk z`tuH4{pk-^e}===pNVkwX9isTSqE2tzJvcbN{8PB{ zf93cpxaPGPuKw?UtN(}K>i-G2`hOR$b3KBqpHX)Q=Pr*6*Licm)zAF!x>3VQIv>E5{|P**UBAip1ovUK%d3A>?e_#03=;69YIz9oedS=2^&pf#5*$mg~?tuRtJzUQr$4|hYTKs+ZP4ma_ z`{wEP1?Q#sZ1CF_U(oRqaOJNLSDxl@#Se!oejHr!3*q|x%H?o9k8OnO`D!a%&sPWF zdcHae9~~py#|v;hUtNXk`RXNH^~cyBoQrHV;W}>)xXzm&uJgVL*Lf?zb>6yg zowo^G=j{vEd56MP|9H6S{}`_N=fYM0BDm^b4Ojh};Hv)^T=k!WYhKqJzYW)U|AFhg zp##Bv(0Sv)b>1X!oi{yP=gkhEZTnmfu5(p|4~Q17ufF5W;X^IHi{riEmn?p;gT6$^>Yzi{agW8KR3bE&uwt^^Bi3LybSMU=e-RdY5owd{)Frs#3H>KN5t1_ z>AW%FI&TuV&YK3V^Ja(Zy!qfdZ&mmTtG_P%lzDTw>S+%jW&1e{u6~Y%tDjThs%JJ_ z{rnQHey)V8pWnb$|8}_g`2$@2JPubs@4z=$-~NWH{>VQB?;EN=HeB^5hpYbdaMhn1 zuKEkXb^ojdSN#p)+J`o9)zby8eHaBVZ~gfQu62=evn`I zzB^p`$HSH9V|ZlycxtZWi{NoAeh2(7tMdT-x%q9l;vd2vTYRJ=!9L4l!IeKNT=99~ zimwA#d}Fxc--D|UgW&4_Ot|9b!IN4)cfu8a5U%)Z@PwAU8m{=xaK(>yd?LJvBs6@TbI9{JVLdu9)x z{{(!Z`6b71z~9Xk&hx+?%kdxJI`1jRe}?P4&)_<5)RV!v>%0jZPXWJe=gsVRZn(}{ z-0`w-owvH<_24>hFSyP-0Iu_na{MFsT|4h5j?af{AC@`34zB)ecYHrw{WVE~tYrvJi3%tM0r59Z9kHZ`v3)lPLEXO~G>-}++ z;~U|6f86Kz5xCwTFFJk=Udrw#f5Y`Y^#ZPai+egacisP!!mnBW%y8{tZn)-E1wPB> zRR^wlwRF5AT=VMZ_%OKUHPP`IaLwy0$5+8MukRe+4cEL*!ZojpaLwy?xaRdIT=R-_ zCOBWsD;8Yy$^pM&?}Pc_npY{uE5bFehK{#{YhK+Pe;=-Sjdpw@T=Saa_(Hhm^)+1c z`VOvn9fWIM$KaaRFL2H4CS3E1el|E?%_}~VZedk4PI{BQU=^Q0Go z^Hu(|aOKYhSN?)<<*x--{)TYnZv$8UE^y@^1y}x$;PvgiOW}%N3s?LhxZ+R16@L$& z!Cv~*)o zmH#ZfmBs%G*Y)@UuK4Ib2m9RF@)Uq8zBpX*_2BI-PcyjUN5d6A5w7?paP8X~xX$}M zyua162d?|iF}UtO=is{kJc8>!{}QhFw3mW?R(w`?Q@an>f-AluT=Bi&4K2?AxZ)SW z6~7#=_`PsF#~z03`R9V;SK)g8dFc3axSoIF{1WV^JPBOSKUp2m3)k~cNyp2>_54#0 zuIHa-a6SKYf$RCF7hKOj!{B=U84K6*!x#Q7(4gLEg;_Kofe&6K(=I(eJxb`8h<3-@whw_eBgKHm}!L<+V;M#{?aP7kY zxb|TzT>CH?p4;vNpE>>|T>G;fe%XFsX+Qj)`6nkG+VM(o$cf;eEpM$H;%kcab zAM;AE&&r<=uKao6u`EwvxZ<0@72gJ~_`&e_mVXpn{haFfY`FTl1)j|E?}Dc{zXezP zeYoP|UJdp$wdF|)SA0ph;>*Jo-vX}rc7Urt?>RmQuKvu0XSezn!L>gJ;fg;7SNv^w z9?Sm_uJ|<9g8fu{7P#U||Hl)Af9bz}uLLh?KUdfBCh%q!-`??V@D3I~!0{3A&K5t} z@lW6%So{LVm%*1?{07Irhp)8wgN`4Aud(=F9KQ+w)8hYh{3$$Jr0_3@em(rpi2sb3 zuRK1yx5cM%JPZ5-i_hnHQTTF;f6MXe@NAL8bvJapB|N9acX7NIe1OG&1P{MzC^Q{j z+J0g_ypj20xb}aYE=JemzbY{|KDE0?_2!uaLxTsxaRu;zR2bn{YE%p z#D7NYmFAlWt~sWH+aDJf$_npcbIA+Wyeh-(SfSeR*X<{oI^Gtp`$m zo)(_b;&V8jAFe$t<#n@NX^tp5y<(cUpY3Tj77vp2*|D?aRqRsU6P@*ZnX*T-QZ0 zxc0w-<2B&Ae>QQv4P5)*9j?9Y3)lPINVxWJ0$lsH1fJ9Syary${Cmguz-w9jF~`rr zwQo1z>i=DMYrCI3gR9R`e+%x(bc@dfFJ^V-f~%e)=CNPJC4cqTx6ZjWae|sm-0K}`F5pdNr8Lrp;1g_WJ09XF+;d-9j@Ayw})pHT9dal7$ zPvqZ&^VRFdhL^OyC38F-yu8Kdbi4q(fyKY!_*-!8Z7sOY+Ymn5^7n%4yaV8QEq;{a zAHmh1PvGjqe7MfL46gdu!Bzi{aMgbjuKIs<{1#mGC-@_{52`-}yt4Hti{p9VI&WRL z&f5g8^Y(!&&k(rw|3kR)Ooh*|`sX{o7_RGOH+-VyIRsbyY4g~2-^2I#S^|!taLA>f54cGhr6erIN#H;?#;Q#mj?&SF%@v3JJT=g7>>vhk=^}3JY${*=Y za37REE?oJO!j(Tie1pxm82o^FdB>~4k6L^K$6LTJTYP87d%_=B{2;i_I})xvoCnu= zzk+Me*E+r#uKw(Xs}G0ZI`3(?>c0e6{ZHVkKl0t+KB)fqjwgq!{x{*OzXJTE^}mke zjo~`)P`J)J2CnlifGf{3xb}Y&TzR&^+u42TkmD!dx?b+Xn^~U6aK%Tx7oLmmV+q@Y ze?cnqh&Cp8_17=quuvwro)7cFb>1Ryef(a=@yc+09Mr(^7I1z1-r4bTjZ z*T>_N9sdNbkH^=;)z2+(eZF_Equ|5>>D|0`Vm{KN6T;QDy;rQ)7qg@@JM!DS8==!Jf6ijbG#i~{p=1`Kl{St+x0a9u0D^4tDlSDI`0a& z_FG#FuK$nQ_m1y@r?dSz1}|iO4*sV34ae`obv-_V>w1i81JWFI zJ!XOzvDeK7SNjd ze^(1RUJ|Z7tm1ebxc0M|G=4cGnZ zC|uXYS-9>$*WudpJ8=Cz<5S0@JPPiK_Bo;BDdETMT-h9d4X*oPNw}_y@^I~cZO0qI zb^mPdcsIEAe*j#2I|8ovyGd~E;Y_&pZ9P1@^=%9ME%W`3{{*jY@fRJx2G_nlfUEyc z;EnBm662rn3+aBMJ|}>GWbt|7uUnl(;Em18nCm%tPuuW?R{`;=vj$vy(#Xlv9Pz5Z zJ$#nc-^0l>3h}DvBe?3B4cF@~fa`U)!h537-V_LG`DEm$Ck2bv!Rz=dA+QdF#M+-fnQ^ zc^|I*9|2dM@o@eA;7rHo!F9cCf$R4%cfl2Z*j)F$7WN75D~RuE_sQSkqs{+uJoGd; zuZb2P&+%mN*%qG}u8%u%!#CO7i^28&SO%`olQf6-v)648*K%)Jw{H+}C1ix?bz2Q3VK)CjB23+U;46Z$2;`kc4`m+VD zKJ0?)yocec{}f#H--oOI$8gmj?Rjt?aM|(S;Ogf?xcd1VuKuKa8Qd%T_Owt&xIGqz z@;F`?9?kBTsi*Lf$ywGXo$UjSEsR>IYX4RD=z zJ6!eehpYZ8aMk}iT=hS4{3TrVrwN4z7xDLq-`7z6S>Q2kzWE(52G@D(!FAqdaGkdw zT>CH#uHR?;$noj$w6;HAzzdo$h3o4mHafl)uIup!xUR?Ja9xl0;DxQ8f8fd=B~o}0 zdLKF0KKu((nn(O>g!Ihw>Tj=pWP~3!&*OMu_)mGmc}hE834YY#>pR{Ye#+vzI^G+; z;16}--YYE@gj%kuK8}UIVOYayqO)( z4gcNp6odD*K9_+HGH(u_WO>@dXPNhKydQkA#ZQGR|7^JOf9d#2xbkmydhtp=7cN009^4k;EJygSA0)+ajU04T=6sEik}CsV0o51z8I|JAK?YiT4 z;JTkYc05w_;B};VWq@C_`$i79>MUfg=c2?b!p}v;5U>1Y;Ci2}=HzLGc-7MhuIGn7 zjt_zB`Qbyyr^0pKg>ao~Ib7#D08e7?Q%B*M&3}e}V}2d3dZNS#&he(rD-Qggd2+|o z!yj0DF2@VPUs`+(xaz47SN>LxcY-VbdyWr+=dixbgjX@22d`ni)bX`&&1D;0`>+qL zeYgf!J-6Y?{}itLQS1Xl-B*=A6I}Uo!FApuj=u?4J=Nf<=WV#^=?SlCeeMr$Z$8%X z$?)D5Ki~1i@L?AJ4Sa<8cDT-a6t450h0nM9|6_Oq%O5FL@H$og1aRd~0arg?hbw<6 zxcXDY@j7tT(*mw~I>1%WaJcFj2iJV3IX(xj`oDs!o>g%5f3xE|;Hv)uT=idtt3MCm zs^9hO7U39X||L|1UUx6|Vl@clc}<5}VAe<8<9!qxvq z@O;+)R&e#dtK+@l>i;mu$HLYB8IFGjSO1qez7DQFZ+Cn@T>U@k_(iz-|GVRV!qxwT z@q_!I{-=cZv$ry2e|q<3f{=h^$}csn+;bz z3*dU)?QrGa5AR{Gd))E!aMg1iu6pjkRZpx$!8xj)L~!j-TDbCOg{%K%;L2YauKMf4 zmA^S$^$&on&Jl3sp9@#~BDmsr!WDlIuK4S4#ovJ|K6c_@|NGh86T=l>0IvAr@DY}$ zqT@B;%HI`!((?3%>;62<@v(5-pJzD!8C>`0Wsa|d53}e0?Qq?<_rrC6KI!;HxbDxt zJN_qJ_p5|Sg7Zz2KYTw-2`_A(4gRzFYw$P)!g)%AAqZ#la616XSDin!d3r0xayB%U+@z#<%r*TX=Qnm zz~3=X?|62&=34}Q#ojmHgvYl1ZwgmEZQ;t_1Fro2;L1N8-rLSK7v9f&h2vkt$5{Ms z#}C0LTl{&ru9qwD>lXjO@h9-x79TrV@cLDM62ouWTrxYJ8?JsUjp&ykaB|&R3oQ zuKIJsRevG4`cnq3dMd+}zdc-i=muB*v2evthAVz0T=5&=ia!ch{8_l-AHp@4=WxZR zNfGS7;8^HBG+X7zM^1tKwdvM*)hdMq6uKVqDxb|T#T>J1X{Grvk z6Rzj6BaWYj>v`;&-iCE2Unfj;mW@suKr(#EB_t1 z`t#WFNNIv|R6TLwswXL2_2h@Eo?>v#x4h%k;61GW4dAM$1zi2_?08SO>Yo5t{nOy; z&*yN}vjndEd*JHBk8tI`30M3*xZ>ld4bD;V$>EAG1Xp}XxZ)eaHJ6rf#SexneiVFw z&G%!+KZPs*M!4Qbw!$-5{zHzRfb0Hz$?+R--9I0~wGYqX+J`ju2NXn1E#mV7KU$qx z;Cg;5;COMkp5H1tUJI`G*=F#o_CDJVuIIg;aJ>)qhwFK7G+fVn6XAN^o9*}lxSsdc z!1cWM4P4KAdmR4}uIIh;j$eUm?jiewB{knk1z!#M)sL9)E#}GKDebu;9lWx6Nx1f> zJY4%(2d?=xhCjEtcXYfvJgU_*9~ z^^}7ve=E51cY>>*y&WG2S3RTQs%Iix^(=v_o;7go!xqPP!7JOm4#QQ?DY)kKtK+xe zsy}L`;2c$dT)6s^3a)xG!Ii%>Tz#knSN=9|#dm=#ek@$^li`YA4p;noxZ;n%HJ8(H z#Xp2A{yDs^%{O-DVE^Tb;mV&MuJ@5*@JIF>RnhU9aNW-vJKh?u`)zl)_MtCa`!F5; zrS)MhT+e$;9bXIA^WHYc_rdkNcLM&Fy$@c1>v``MT+e&=;dv=DU z<7wb}-pd8o^Ik!?p7%;SUJ0(}z50$fhimQw;2jHvpZ7+*3m; zEpYAU0l4OS6yDtCe#!A0@OBm-Icso^swXyF^(2Gqyy@UA?YueRs=okS^}pfxTX5B1 z+wn$l?SF6h4ZD5^!v8cM?f68v_F)cO*VjV$73=>Fxav6oSN>CQ<^LJ3{7>Oe>|9Z@ z1?T?KJc;9J;PGw$^Eh4@p2FhG!*zXCgLk+1CXTm(_p$h1aP?;Ze24XayyG9k)z39> z_3azD&b1e=dJe;t{|~tG{{>e+UpgKmdvLz0Cox?0q=u`W*Ws$C6kPjI#qm1u3^uQ3 zaMjZeu6cELyf0k!e+*aspTgCjui&a@64zBz8HOFtmb-#TI z*FHqa8JvsuArpLv^&uBr&xb`FFAdl8VGYOY!}Y%020qH(m%G6AJlPkn=e?nDJ?~9$ zd>UNOdtboyytfpt=e>=NZ-wi5?~vms;CkM>4=-*11Axcycg&;b3eNp;`S9~$e0Wal za~`<%p)g$gRt~OtRfT_M`5QUj3ckqV2f|g)2XNIh5w7#jfWNRld=6LrOW>-1z2jTp zs(+v3N8sA$-{9NqdVB!?!Th=7(Q*gpu6;-XFKAzZHZFKTm%lqWbx zc`Ug4nG>$Q6@cqprQxcl5?uM)!b3l_%OKY`4FyprovUvO1SFT0M|ZjcYHtm zk?q5Axav6%*IceUeh04lW91FbSM?`?t3T=CswX>K`QL)857pty-x03(?r_C_1XuiY zxZ>Bq75@!f@h9M#%LTaNpTHF#`L$r5BiZ$s!0{Atd=e<>qZ-nc4Z@1%z;Cf#^3(sor`@h2Ve0T@0=e@t- z>O+)#!MUpsao~F1O9j{SUM9Gn_wqSj6t3sJ3Xa!+>v^vWy-4`^trz?)^P%vqWyA4f z;J3{e!nF^};o7&&aLsE6yp+xHh~uZ>6)gS%T=hJGtDb22gY(sS&J1@3Z(qj+cZVvG}Tv*M%py>#?=to#E*%zQ5zc z;n^&H3S9l41wUx>UF`U3xaM^juKu5b>%3Rts^<^5^2aXtzvr76u6d<%JR4l~6o9Lq z;&9bd53chzgKOV9I^G?w{TTpPJtN?n*GG;|hpYb8aMiyFuKw(XtDZw}<-Y}2AMV4I zKW?Gmd=;M*uJ}T5#g~LDz9C%kE#ZnE2-jRbfGhrUxZ;<<&)WTAgX7=BmH!-E?`xOg z!z}+j$Nz!r{US=?VE^TD;JTluf@>c#!L<)%;IG+zsWM#8ll2{M4%hQ!SI2w9^}at0 ze#_qX$HMjeIUTO&$+>VnPcDV)d2%gW&y(BWdY;?|SD#P7)#nRvJ%8SE{61XIpD!Jc zQ6#u0dj8A`zhm>w3r}PJ!?_ahbmhX&pXJ~+%v-{>KON!P&-dY)?_hXj%m1O{Q{k~J zekEM>Y=Ent?QqqzAFg_iJANLndTuy=7oOSbkNtY2e;Xe0_lU3W?P2pu3?F2k&hcz; z&9^Xoo;_E*0oOh^fvcW2aOLj~SN^_m<(~%sz|J)XKGuA>1OJ)t}*xkAth8 zX>ipu2d;WH!d1^!xaNDn@uTp?*8dA|)pHfD{@-={5nS~rE*6}x>Q4<(edtZ-9HDzwGX4<+J^=3X!bt746f(5O^$Da>-p_R$4|ob z{B{{$rCj*=;WxOR-yXsB{Pq&A=eM{eg8QK7x1?}Azh#E&`7JkGeJ%#q^II9Xp5JOX zULUUKx3-RVh3olkEPSuccQX7>^SSWB*8fHD<>ou!+Mfe(?dNH@=6ea=#`52G{2{!v z#V0HoDe(NGdQ!qwPZqf9$pim?t=$Q@+f}*m@c<%0tV9rqC=gL03YL^HfY5*z0wM&; z5C&~ZTS&FEIc<>u3K1FN!$AU0Q2~P}MjXgNhNv8fg2x~VaR8&JvJ32^J>AJ zPaE#|Pr@DlH*nYUnHj#x>!;Vz`MePBd|m=~K6}BP&jE1v!{IahX!yliuan@;=Phur zSAK>U;LiU_xbuHM-1Vu!olhO^_+N*+4&R15ejo1f1GvY(=#c4k^!V-J9=|u-;}3#+ z{K;^y%Uj_d|4z8aUkZP(*7uqj{t>w2-wF5Ek$d2KDgL)+`1j#H&mW)RzkvI^{UhA{ z@He>o;bn(Tuh&nM=PTj9-%HH!B;5CVN6heJ;lAHH9scRV#`k;6;J)80zp-y8NH*E0-% zP`(}fG1Y%3_zU!Uxr5;DpTptq&kWq_n}xS@-Lq!+YWO!a{=IPLa}C`2TnBePpM*P~ zTW9!PaOZR141W;bQ~poFchS212EK>%gAHcm{Kbzsdf;<1s51(E~=RXhb`s@gIKD)vle<9p; zI1=voXTm-HZE%k-!#%zN_xR7jJ^psM$9LdfmoD7n{{;8=zr&YmeYbkUbp7qy!W};W z_t%jmd<(@tVul|J_j!Km3||WOdAkPgemD>Ae)u5#4&`}0-1mF8%<$XbzTa!j@HX7{ zdyl}MultIhzE4c6Xeh2sc-m`Gu?``qM>2>%0-ga=`@9hNl{oZTguJhh--|sD) z;YY%Kzjx9Me+%6Adl$gpalrU~?-KY;@~hzoss0~^uaw^ocmLcCcYl5p?)CjHd>6&< z&G0^aH;vzH(eyexpRM4|XM4Ew*%|J9UNgfNz@5(_Gkg(zq4Lkc|E&F(hi|6!S~tTl zgnND83ty`HifiER&s*Wn=PtP8-w${EZ^0e^m+%*8UQfffmTz*z^!nPjgzv2JFP-79 zfbXvH3Ap!55`K}!A34L1gI}icOW>~0+3>TpF6Yhgi{Y;44RF`zX1M2dJKXu)4R`z> z!5#l+aM$yx8U9DO^9da}y}r&T40k@Sggc)-;O>Y0XZWG;y|i9O!JW_XaIe=HGkiJR z`Cklo{#U?VpAW#D&vkIe{}SAF_$u7-e+>8dpTj+V)AaOudHf6D9={vhg;Ql&t8~kyd+pQVihWkAK-VA>X?(_DSaQDO0aQDO3 zM@_HSRjR`daNqB}YKHF#_x;{MGyHJ4@Ar;_uh7@QQ{cYeTMqaA-YU57_s)m=e(&9I z-|t-w_x;|7;lAJdB;5CVpM!f{z6AHWd==i-`Ty_?{{h_hdw+l*n;hTo{S|(pe9NP! z`{5(1|BK;m`FyzhXMec+^Nnz??=kR;6#ujtekS}fjei&1`CJBfJ{7q0sluJlO*8zn zaOZQ^48IqCgYy3o{9*0KpTQrKKQ+Vu2>1GK_NM9eb$@OJcYnSH?tB)&9sf|c;~xQc z{AKW;XgGj(;ND@y~#}o@dYSHE`#10o?gq0(U;w!=2Bk z;O>XU3~$1>(0bhmcRmloy_j`YV`+jfBaT zxbNRih3|IY`2KAve6f5r{Pfg#{5#-R$=?rmKYR@Ce)|mE>-BH&pJ*NLo#Eer|6JpL z26sNcf;*o-!ad)=!E>5#I5WMz&OZWo{x6&1uY^1Qy=M3UaQE{G@K0+$o(BJ-e8mhu z2kw5j5bpi*9=P|*jd17l8Mx!$33vQ^;Ew+o{L7lx6YzWGzn|fMfj^}2TOB{WzV>b5 zKhXGH;oe`bh0oXiIuP#p9tPi9ug6;o_qUp8Z;qK?Z!JW_MCr_`t<8K3Z{2k$r ze*pYi&1)h2!}8;1_$lz4HU8`wz6O4)#$N>Y{=FRjeC^*4!ad*X;eSw_KR?6ofV)25 zhr13xhC9z+!JW_V;Eo?TWqKVQKMHq!UOB_}fIFZ4;m+q!xbry`?tGTQy}qkv_iK*4P#!vMdVLR49l~(e=hbkp*X!W! zhlAm+{~O@D=(@+x@KfQtY5aP)^LZzHcg^>T8Gbd~`CkWj{-1<9|66DHU2x}r-wb~c zzEJah5`K#2^&9vy`7<+olhdcy-F>n(+I$ckn^IO6fD*g^Ld>6RS+t<$Uz2VL$1$RHB;qHgC z;Cmb#+VHj-?)#++X80xW>lNo}`1Xg4<9`^wK>kViBYGa=b8z2}Jpgz9-+_Dla_x+vQKdecerR)Aj%4>&Nl8gg+?X9{xq;vorjD`N8nt$lm~W z{>Q_e|EX~2e;(ZNFNQn*RdC1uAl&i42)|Kv_zJu(e-QqR=KDSPv+^fq_^;vfw2ps) zJO9m=POsyA8vjbTue%4_^*Ipk_=mw=pCxd|KO4Ti@>x5>FMvCr%izxED!B8h!<|n9 z?s|R&?)dk?UC*Dw9sfzV^Zx_f@&5{U{yUyIy^hXvSNO@Q=R&y09|?CpE8re~4&3A4 z3-|bI;2!^Z_zueR4!FmE5AN}g!B111{tO?$9skA4rt4YMzI!SB1M=Nx_+IdjYy8o0 z$3Fq?_-~ovE8vd*FEjjn_yfx418|?i*TG$%Tj1``+u-ic4*Xu7dtLa`@+aZG?r-29 z()zw|`Sf~yLvdaLcl=%9j{jP?2Swi1}`c9i{Ota|I6Wye+}I6KLS5b z@o$Ga{@rlL|0dk=zYBN#0o?J2aL3w72M@$Z2<{{|$FPY<~9iI@;&KozKhQ&gYeI=W`hR0M+v-_<{0MXZTY1ksALmaOZPA{3e}O zAA$S2H^M#NTj7p>7u@rG1n&4hfoGI|e})g>&gU<1=d)RUdL5n5&T!|m8{G9=0C)TY z;jZV2aK}Fb?)={dcl@<*=U;(4&nohf54gu41^4*l;nyn8TW9!LaL2y_?ync zit`ZMV1>E&n2u~`XBjKL!IdG3Z7w+-b!VgjWkHS5^1^4(i z+~fZfez@X41^0ZnS~Xpt)Ac&!ZQ_uK2^;9W!?2eaN(9|!MZ`Z(~gJ`Ua`^l{)@>f_*DN*@OvT*Ge} zeGvFo#?kwnJ`Vha`Z#!3(8qz#)5pQPl0FXnMfx~+SJB6TZ>^7mcQt(+ctjru?;83z z@NM+*=G^$pw8=^sf1|t%U%c%&eg%G-yb8ZiUV~pEufrddH{d;a z6aL6{<9s^sp7QU)4_BNX{3v-Jeyn@|kG^Dl-61?J_hB9Uad2c@s64|uKkQ|B4DS5n z@TWAd1pHZf626)8Pr+X(Ps3fG4BYj}!d;&n-1W)BU7rHn^(n$#p92camq|yUVk1_gew(Iv3$y#}eG@ScZFDYH;^$9q#k30r&aVg!_DJ!F|59;dRxa z1NZsXg?k-)aIa$@?sXi%t2$?f@ayFf-7mO*Jl`nX^Nqnh-#Fa!O~5_hB;4~&!9CwJ z-1E)AJ>M+c^DV$V-y(de)~f`6ySxlvE3d(?k=NlLl{erqtxFSrpu7WjJ-hHfD}E2& z(ATLx{OA7qwfXdU;y7XWRvI6HJ5Ch-Lgk-;dwrAen-o68>#^!X(kkNA!KF=QUsPqwtD62LG@;4!=&GfajD?5?+y~;15Q}d8XlAc@FOU^YDX}PXYdB zc@ciRyaYc@UWU6q6}anDg}XjAxa(7gyFLxL>(hk0J{`F0(}nM^dG+9~Pap33_(?SP zkK=^(Jcr%&kHB5eD14dniNRf;INbF~z+Imt-1W)89X|_q{2biz^Ki#6!Sn7P_}k?b z__^{b-2K*oyUtCx*RcinI=10nmmb`G+lTvn8^C?O4dFiD{A8>9#OGUB&wJSiszU_s z^DPSZI>z8$$2i>Un1J_n&LrVa$un@zHw*WCb8yc$5BGcvaL>00_k2rm&$kTsd@FFz zw+i=s8*tCJ3BOhA)q;OX-iEj2J^17DKD;jiorvQ z6Nm3BPr)504PUJI8MxzQ;b$m*0q*rJ!hfy!C3sbF%J8{c;h^se^@`%vEQxyBk+6WQTW&7F}U-O!<~Nu z?);N*=bwRpMAyy2oqrDQ{PS?-1Ql5f;TAqgg zSe}7DA_v{3v+^?)p^Wu1^jA1?69de_h^yKOk?yU7r@* z`M2TDzXx~zeYo=vX-{;$K`{|&hNzX^B$ci<Cz{bCgN$xZUGey(o+jywYYzB~%=%46`JJPzM-=ka-xg1bIxxa*UFuU7ml z{4#kC{$6<=?)ntq&c6tE{uQ|Mufm;w4eosEaOcy2JD(=p`E=mUrweyJJ-GAf!{4X6 z4dBja2zNe_$atOISMKL1-2EJbyPxB5uX_USbx*=QuMFJ%pM|^sb8z>69`61x!M9PL zm*G))1-_HK3V)Tn2H#y?ho2#Dz?aFJ@N48P_y^=|cvaqk*W_LJ1M&gf^%=rlpO9X^ zB&OZZpK3TZ)$-$jZ9`1ZfaOYEoJD&>N z`BdS@s%|y7^Qps~PYdpTZo}Qr9k~0s3-`MB;9mDW-1G8_DcwKr|FB*!V|V{Y;O_q@ z-2I<`e^+%&!n^Vm{3r4>{O9rv{1@^p{N=mo{v7^Fc^-beyZ}E@UW8}mC3sF=hQC){ zgS$R;xa-q^|3>p|!Z%m^7JN&28}9ma;Lg7bcm4yo^B=;Ue@L%8a9=r}Fx>e>;Laxs zcRmTY^GU*;PYUjQ((o6lZW*}q$-7||4q32 zzXf;yx8d&p-h>A~647mTs1M(Jyd6UW_#*ibezZKIpJNC86U28Mzdp!*fX2r#{$P0= zo|2~~Ja~#dF8Avug7|^&AkPqRv z%0qg6gzNuBc^KZ3N8tC%qwq)Ne*Kr@KPHc3{8RD-{Aqa-zEu!#^p=8eE%)nCeBIZ` zGZ??OJPSWYo`dVx9f$JpH5%{Np#+}>`>rT2V*Iu868vNGGW;fa1@70KSK+s5d;{+D zp$Yf-(1QDXXv2Lzbl^T8x^SNlJ-E+@KHTTS0Pgc)2>1EmzjPE#KdAqSqyK`puzo&i z_xTWk`+SJPmyW}PVsM`iak$Ti1l;FC67KUM1^4-ohWmWTzo`|pXx;FkpfM{jYs_hSm~{g{S(KW5!ggZE<*J81Ma9hkHLZ;NFi-xc6fV?)}(?dp~yI-j7|l_hS$4 z{n&@MRG$Id`*8^Oehj^I{6N>u`!NjnevH7qAER*Z#~9rEF%I{BOu)S#lW_0H6x{nU z4flS`!RPuJKG)CixqgPv^)q~~pW$=;44>;~_*_53=lU6bzWTwh@9_H0^)trL^)q~~ zpW$=;44>;~_*_53=lU5w*U#{|eumHW^Nut689vv~@VS15&-F8WuAkv^{S2S$XZTz{ z!{_=Lu3vW?%E0w&3`1GC`@aBp{}aJw5h4$o&(B zyMH2Z_fHglP!MqR7K1O8$Kmd`6x{umhP&S~aQ9ml?taU`-EVog`>gDIN^m}ID?zbk~{nmoJ-`a5ZTL%!e{J-GX= z4|l(Xb{bE_b?|zH;a;x@-0KyEd%a?CuU8!I^-93KUP-vuD+Tv@rQu$$4BYGG*YCIv zUauU+d%f~-uU7%?^(w->UM0BKs|?>ENNn_0fxlc{g?oJ)aIbF@?)7cK-!;B$s15h} zcHmy$F5K(egL{4ZaIfzG?)4qQTgo%E^Y{a=qt`bK_xeWQUf(F(>l=f6edBPiZwme{ z<(Y=No*B67nT5NaIk@YYhr6Byxa(PjyPhSu>sf}oo)x(3S%tfvHMr|phd-mbHQ;}j zH{q^-2k!cJ;jVuV?)vxPuKxh;`VZl*e@L$jaDTe~VYurbfxG@uxa%K-yZ&*w>z{&q zzG=AUn}K`2{&~LV<@x&c4tCEsk2s!h0q*%0;ht{^?)jGCPpD5S@V>kXcYPXg*QW`0 zeOhqWrww;~I&jyg3wM2baMz~~cYQ*!@dRCe=M#oIp9tLfMB%N__$>x^K5_WBG(G|U zjywr>{u#LQ&%&L54(|N(@K$L2R)W{$Ww_&4;ErE~e?@T`6Ta!l7QSNq2Tk}9@)rC= zc^iJZya#vuKHTvKaK|6Q9Y3P$Y!Vv({xQdi!W}0DKU1H_;dylDl{Y^A4=U>2h=U;^T@g=zPFTyN(JxdfR05U(o-KAB8)94DR@GxZ|hbo>v;~I%nXna~9rJ z{yF$#@;v;P@)G=0@-p1{RN&613U@v=xbvyQolgt?H|5iYr}TLTeycw3!tc`O1Nc_@ zd2rw%_~-hlgly9vKU z<6CgwU$x=Bzv{q!KhTBy>va$Auh)HeOZg1ozMmPweSZ>q)%by%jNS$P>HE(x-1n0a z_|v*>6z=a|VsJk{5Qo1eNMQ7qfbT6&!snh3grB7GY4{p>2JWBlXW`dsd=Bo{*X7|i zX?y|h*Vh%{w`qI@?(?Av_xVtR`+TUweLghcJ|CKJpARj#&xbbL=R*hX^Pvm(`Ot&= zeCWe{J`CVKABOOy`5xDnP z6z=^MgL{9);oe^f_*v?oB;5Ne1^50+!@a*UaPO}y-1{pB_x{Smy}t@@@2?`<`>O=^ z{wl*;szU|t{Z)l~f7RgLUv;?mR|D?-)r5P0wcy@gZMgSW2k!mVg?oSX;ND+-xcAop z?)^1{`}K99-KYECudfTky&q$6@5eaY`!NCceoVr>A5(De$28pgF$4F0%)-4Nb8zp+ zJly-S06$B8ScH2&mf+rxWw`fa1@8S=g?m5N;8!T0I^6rQ0r!4v!o43`aPP-9yrt`Q z;NFj2xc6fZ?)}(@dp{1~-j74L_oKf7^m*?67}kxS-TN^D_kN7Ry&q$6@5eaY`!NNd z>u2~}Kf~wx89vv~@VS15&-F8WuAkv^{S2S$XZTz{!{_=LKG)CiE8NfUxqgPv^)q~~ zpW$=;44>;~_*_53=lU5w*U#{|eumHWGkmU}Uo$R<`*yCM;dA{ApX+D%TtCC-`Wf!m z*CpV7eO(gn{?EYO|5>>EKL>aJ=i%=E0^I#yguDMsaQA;1?*6a9-Tzg%`@aTv|JUK} z{|4Os--NsWTX6S(8}9z^z}^2{xck2ccmMa{?*9SY{Xc}e|3j~x?q~OZ81DX$z}^2* zxcff_cmK!X?*A0r{gZ~fe=>0QPZsX}$-&(}dAR$h0C)cs;qIRj-2GFAyMHQh_fHk> z{;9#;KXthKrvZ2WG~w=_7To>QhP!_{aQ9Ca?*8e)-9LS}`)2@m{|w;=1qX8QrYDYk zJ};Dq;qJE>-2E1ZyWbLU_gfO~eoMjKZ)v#uEdzJIW#R6(9Nhhuhr8bjaQ9mg?tUx5 z-EU=hYeVrzuXlpG->Pu;TMh1htHa%I4Y>QQ33tD>;O@6J-2K*rd%gN_uh#(X^%}yx zUZFk5g>rv-y~1#>R|M|$io(5KF}T+&4)=N`;9jpJ-0PKsd%ek9CfYrhxaUf&Ab>sy6;eQR*9ZyoOSZNR<0O}N*$1^4>4;a=Yk-0RzgdwqLw zuWujj^&P;yzC*azH}tyce)jr?;a=Yu-1UsZUC#vE^-RKD&lKGCOv7Ez4BYk1!d=fC z-1W@EUC#pC^(?}l8kaFtg1eq&_%j+`f&X1zg}eR@xa;49yZ$Y>>)(dE{vEjM--WyW zJ-F-Nhr9j*xa&WJyZ)j1LY}^G(7%-xS>QO~XCk4BYe0 z!ad&{-1E)DpU`{@@V>kVcYP{w*QW}1eQI#mrw(_08gSRA33q*3aMz~|cYS(r=hKHf zp8?$Y4B^fvwAZ+R?lSRq`C%^UA~Dr||{& zHS!|7DzCu5q4|NN@}cbp>pCdDto zZ;_YbpO;tQS>;oOpDwS#m&)t#Dc()bqqdU+dOllS2Nrg`<@{(3QhyU&O4 zk1D=@;a>1*&_BLzSigwR{#lKW!Jkz=arkB$pMZzuNq9n@g6|_w!}pixCVbOTE`Hro z9=_^T<3tPabL2&ML0*Cvw3hwx6xZ`Kw zj-Q1)egW=z72%I)z9sk%B9Z`p&tC38sCS1 zM?Qc*A|Jw?Ph{Wc`e)wg!)?c(hN5u&`lC<`zLUns;RnbQ@Pp+^cut;z7vyR99X@~H z&OZ-#{ss6e6u$`HU0#CgY4A`Pu5V95HMr|jhx@t>xUbuU`?@W-uiJ*}xCr&&M{8bv z_+t409#Wl$aNkEo_8UJi7#8%;dc}#tFPF#QF~yI=kCLb0j+2I8ulO0b<7DA$6u$uX z{eKbuXT>kUONvv5yFY7i$FIX5SNsOt@tbhpSGV9b<sy2WOxLZ$|4ZJ0`~I^D_quc@{6(V}zOCrO_3d`32j556?Zdw)AHeUF z58><7w;_Gu2tEz+xj-IMd{pgNS`G1Z|AcYP{w&$kNqd>e4*--J8=7To!_;m*GU zcRpRX^BKUM&k(LpL!sojuL>`5oDNn$C-6Y)CO~HNLG~CzCzllZ79TRY`V-j9feKPRt?B)wv4yxz~VuzD>C2+k$^t^KHZLlXu|Xly~9ZllS0{ z%KLENKMdeM)A%9$X?f_N@drVv|2c{SjkR}=1eb>Lq2F5K(hgL~ckaPP+f z-1~6|_kIlN8+P}P_hT6D{TPEgP8{wy3HU3tuaj`!AEw~GKTN|n)j5!X`<&0h-6uJ? z?+^3vmAc<6!QY_#%W%JbxB~a{+g11q#i_yHF0aE~p9b9ZX~O@YI4$^4-iH5G-hsQG zUAXJngS(!6xa%2u{dl7VmkZ7-*E0-vJtJ_}GYWS-V{ktY5Qn>-3ApQ-gu9+8xa*mQ zyPg@i>zReSo;kSdnTNZcCAjl1!!OeMR^XS)tMDu2HTaeCI{a#R3-0;0;ht{??)i4% zp6>we_(S;Tbv}gj1Gpf)px-+3Fx>e>;LaxscRmTY^GU)#tm~%WAC;%!*UK|-=bwc; z{~X-;=i$!31V2~TEyJCE1@8Q-aOYoxJD)n-`Ly7^ZX53FcHq8l7w&!-z3T1o!trW%v_YjPt3%U7tEUtvWQ|$H<%T*{i;tJ{#|(o z?)i4%AJYB90PZ}8aOW9XIG(rr&3T65S>+#rJI^TmQRN?l|3n^#_v8uqujEPiZ{#Vs z>yU=usQTpKD>bh?{2lTF{8NfkguCA=@QW3v3itl1!M(rg@ZT#=1AdV5X~MlPZ{p|RN$^p74G^p;Lg7ZuV}t4xbttroqq@J{JU`H--A2< zKHT|-4hwB~^Lgd`!*J&xfjj>w{C3SZ26z5(xbsiIoqrPU{4;RJ&%zx)2Y38D-0@5B zKWkoPxW8Uk;Qo4Dh5PGN4eqa}b@)7;CoOnH=XM+Jd^&LF(}f?eI6e3>c^~fl2k?;c z9Kyr$$l=rd=KP~@=O2SR|2W+FC*XPIpM*RA6x{iz;m$t?cm8>}^Dn>)%BKjwN?w9r zBQL|9e+BORt8nMvfII&t-1)cQ&c6+Rhw|*eoqreZ{CjZc--kQ@&>N=v$N7Ze&L;wQ zK2f;yiNT#u9PWHl@QMkU^Uc7We-`fib8zRMhdciQ{5{IQ2zUM^xbrW=oqrAP{OfS%-+*7K ze46mOyaoT9ybX8$9k}!F!kzyB?)-;v=O0=$-EYo648KNsM&Qmr3U~f7xbu(0oqr1M ze9~~|lYu**EZq6z;LaxxcRnTf9h;BqRfao$1@8D&xZ^kA?&l`lb!freS8cfK(3|j0 zN2&i}w{iY`_;2I`cyagf_#ymedE|)kpKmgHHyJ+)cl;Q|z@&VkxPihEveL_c0_mArnhObh6BJiR-3U@tYaMv>qcRf>Z*E0=w zJu`6ECkuCda&Xrt4|jbEaMz~@U!ppc;I2;@e!0e1;5W*v@cZO7_!614n>0Rj)cAwo>s^rl?eZ}EOY#W3Esw%`@)-O-<#G5>o`Cyx z8cF!PAmPzl3jShw8os?e1AnzV3-{mu%E1rP_&oe@c>#W;ya@O2|0%(<8efJtl=rAeG_o6ZxUWq9a8X1Ha)g9)_=x$KV&M{&Dyf@&x=!c@q9Uc?RzDIScpsoP+y(&cl5^ z7vMghi*TRMCAjNWhP!SRxa(Gh`#fn(cw|%qf4y$P!>UgU?yuKvxW8U^;IB}eE<7vm z!SnJy{G;*#++VMUaDTlH9W#Dla9jlQ_1Eh#{HKZ^fj=RS!Uysg{26&1zPZk;1bpuA zU&H--3{vo&6ekUj%QNu3+TBhjN%vJb$JQ?d3hP`^Q{8+`BsJd ze5=8IzSZGB)O8zhpKndL&$kx*zZ9npFY3JN!FN+X^x^LR0o?05gnNBMZypB>(g^z5 z>l=o9eIszMZxrtJjlsRXad<&>NWd?UC*f6j2Clz07|O!+@~Th{o*GX-l!yE4cnSVC zjW5G}o>bt@vkG@V*Wm8wI^6x-fV-cYaQAZy?tX5=-OnAk`?(8uKlkA7=RVwDcLwky z)#pR_YI)??alzf6=c)ctxWA6a;FoB89DbQR1^4-!hWmWZzp@UZ$e5BK?8 zfV*x*xa(GeyKZH;&y(7O2PHmtk8vUD@OR1^@OR0ZaQ|M>7W{o0--i45gm&OJX?z!c zo4g0VQ{IO^Bp<;2dq0QpUu%3we^D-2rl3CleT!kZe@|Zw?s~@Iu4e-7dM4qnXA16m zrs1w<2JU)h;jU*6?t13oUr~JuaM!a4cRed`=U;_8{~Fx+*Wu2;0eAjQxbyG8y}n)e zf9*Nm7d`m%UpMwX-2D*BjQ{)}`Un1>iXVYHeiZKb3HYwcCkcOxJOy7TPs1;i=irW? zhcD3h0(?Jt5uTKn;LfKEcRn?^uUm)vx(&Fm+l0G59k~0p3-|B;?ZN-z^9TL{t?vN- zBKZ*R-zOV7e!73W?qT@nRL>aP`N!eTKLL0CNx1V*!JU5^zOCk!gYPQO!{^Hj@U*-L zcYR85*QX43eQI#$Q-|-a>o(xdrwMmHEx7Y(!<|nLev+=+hdcfN?)XEv<3~=I?w{p~ zABBHh9)sT@kHei$3hwx6_&UYOz|WIs;TOnraOabUJD(EV*Db?+-3r{-t-@WO2K;{Q zyC(de`Qy5`;Qt|S!$W(G$9LeH$-D4v}t{r$HA{2THi+<(6=w0OFI9@F?R z{Fm|w{3&@9exm-qK@5JWJPxnQ6Y!78lki*QDfk!UY4|Rw@jNr|UFBK$0(lO;pF9u$ zguDR%l)MP{>#a-hdo;cb-}JE1hPMiQb9oj15_t_CmDk}*aU@H6BM_!4;&zE<9X`*nwHxL-%uf#0M!UHF~y9{g^3 zAMV#-gif07=LhulD-8dkJOcOcZI8mA_5CM&p1$72;q&DwxbsQFolge-QpL%_9lro~ zoFd%wD#1OkGTig3zYQdd<8}8q;-+?>-E_@5stp|7hefSX? zA3Axue|+6A-1UsWecdSB^^C!N-8kI!Ou${wB;57Pz@2{4EO8L zV(_yRKMwc5i;#e?*Z3s-Jb4E0I9a&kTrL5(SZB=izfU@ec#c7KcTNjZTJiH`rr>l4xs!hHYc`h?-G zPXzAzMB%Pa4DR~G;V)Bt5^&Eq3HN+6@O=~~3s1^(@P+a`{788Lezv>__xhILUf(j@ z>sy06|2o|HH{i~{33vW2xbttroqq@J{JU`HKY%;`A>8?gPMtoloPQYZ{3CGZAB8*r z7~J{C;m$t=KTqqMhC6-+?)X`_;}_tUyMN&RcR@<<4`_TD{$Y6y?l^V0<22xo(}e%K z;&oYuDrcl;XM@#}EMZ^7T{{(<}7*Xh7lX?z#HMm~T$ z&JgZ6p);oY$8o~&4=R2P?sbgAy^aaE*D(qAI%eSC)^)S+jywndzB~{A(1P(i3vfSQ zRD}Eaq7vNC7nR}r>RheBx7Ybug}YB0aL>01_k3G$&$kVKLUriCJ>M?e^XUxqvX8r=EU;m*GScm7Sd^KZeOe;e-nJ8pnAA|4j{(-0D3HTf3N%)cS4BTj#aqVu>t>- zuG@tB-^XgfKd13+`0BmK>(qh!=LKE(xw>EN!To%DAMWSd2XH?hK7{-Gn#hvr{_%XH zaL+de_k821f!kvE$?)=+u=ih-l|1RA558%#!2zUOW+;smq|1jM7N8rvs3U~f7xbu(0 zoqr1ctkyRTcl-?8@w0HpFTh`Tt(tz#XRvU!?dQxYw}@ z_d53AUdKM%>lj)Z+VJM*8{ehthT;Bq<|6P*H9iVIVxMu`7~DV4jl;Kl!+3lG?w_|N z;r@AR3cf(k)2894%X4tgHxKuG3vkc32!FroP=Y)EGTiys;Eq#=``_nlz(20*HsPO^ zx8UE9x8Yu|4&3$Z!d=e+-1!gT&OdbKbiXe^;Lbk^cm6TB^N+)we+usW({SgX zfjj>!-1+C=&OZ-#{sp-6FT$OF1^xrAZx!zNHMrx~;f~*eKk5E~59A&AALL#5pXCF% z;|$@B6IwRiKaLZI@8t6b?sbgAy^aaE*D(qAI%eP}>AG2XR-S{OAtQPJuj`zw!v9O&fP218xaZq~d%kV>+f|1S-1&Fm&VK-RoFUx* zE@o)?xPF_A-fcSi?>t>M48K?&fqz^cg?qhXaMv>qcRf>Z=bwf<{|wyuXW`C22Y3E? zxbrW-oqrMT{3~$hUxhpW8r=EU;m*GScm7Sd^KZeOe;e-nd+=MezJ0jk58#eJggbs@ z#dN>j0(s0Mgz#S(G|D)m;;9kcf-0N6^dmYPguVW4VI-PrU zxc{Bh27F(QZ^Hj1Z^8Zg(l*?$FYUnn`qD1^z{AGt+JoP)XzYEs`y_PMbU%2$VYufT zfqTAD_!~6e7~J!X!#&>w-1AMschY<_a9=kIPb;4s{5W|Yeu}&RKTlqSdwolA*S`#R z{cCXNUxz#Y2Hg2K;m*GWcm8d-^Y6f&e;4lj2XN;lShqwg)q{f%wpO)9)j#Gy_P6O^ZP58GJ zzXSI=cHv&f9^C8LhkG4E`h^m{|Ji)Maesv2VR;1pLU|PakUR$W>+R!kzurCp_v`JG z@T$(A6x?5D)9`JN7|$yQ_k8nk&$j^ge2egxX}%@6=Uaw*z7@FVTZO+<^KHO=-6lMy zd|L3`&c6V6{zbU+FTtIE8SeZmaOYozJO2jU`8VOtzXf;xZMgIAz@2{=?)-aj=ii4r z|In)G{y9MF8-_c61n&4zxZ@|_N4S6B8F>nRqC5>hMV^B@P9E+!1-RoB;qOxX3f${h zg?k-qaIa$>?saUz@6dJI@TR;2zgymgUv$8DU3+l)?)Vk>&Wc}!$K^Hnp7J_; zFL?{@IBmG&bl{HDg`cGO1Gv|52=_XM)=c+<*D(zDI>z8v>AG=vMV^3vK%Ru3oE+zo zg1=kmMjGzFpPqsH@26+scPLH{?ys|Xxcj68_k7E6&$j~ie5>%AREHYe^R2@@-v-?C zZNfjI`F7yGZWmrxK0WxY@;>}7`2hX{`4H~)4Hc&Q&Giq%UH=%|`N!eTKLL0CNx1V* z!JU5^?))=w=bwc;{{r0k7vavo1b6;rxbv^ToqrYX{A+OMUxz#Y7W@}l-!|OwJ8;ME z!X1AA|C9R%9@6;``j_ecd7eBB-$EXPJ5C(#I0?ApB;l`9{0!Xdn1y>Cb8xR?9`1E4 z!B^x--SE>9^Co&;m&^mcm6}T z^N*~X?zeljzEQa2$KZ}1hdX`>{*e0z-j!$IKbB|VkIM^i$0@=crv!JLGJJENKX9*O z9qx5(z`c%5xYw}*KSbBB6xO;r}fUt)K3PPo>76hv7|m z1pZq+KM;lc@0BFro^KNF`KI8WZyLT>b;!V-e-`fi3vkCN!n2BBf-jMm;b+S$@GIn1 zxYw%&cRlNH*Rut8{%yGP@4%gZ7w-IfaOdBLJO2UP`48dFKXUGLzd8RX-1*1g&OZ)! z{t3AAPr{vl3hw;VaOa1@a7h zKY12@x;zJO>-@~a-6tiu=Uaw*z7@FVTZQkT`PSgOD$hFH^KHOA-zNMZ#p%F(-7Y+# ze0uN$;xZ}s+WyMLr|5cuZUoB6;olhF>d~$GKHxKu93vgez2zPxdaQ9Ue z?!KzQ-B)$E`>F-s;o$LlwBftUJMcZ^UATYWZx8O@_uGg2_x%pwk175T?%($tI)A!< z{QG{x@CApA$3@`&eZNt-f8TEm{;@;HapG|QzTX7gzwb8*_xBMQxa*mP@25KC;M;3n zdHBoa1^6rEMR;6Zfgh^tR^i9WYw*+Lb-4SX0e3$%;qHeP-2KpoyB|7m_d^%{V$HV) zcR%#u?uP-~{V;^PA3_&Q_ow?I40k`o;I4lh?)oR-u747Kk=7*zzeJvfd%ZGnuU8iC z^~%A$UU|6Js{r?U72#g565Q)mhI_p#aIaSt?)9p{y8!|T{zvJu1^^5`b6NaPZVC(^C2<#?eaL>^-RHC&otci z%)njGEZp_X!ClWh{FAC@0q%Mh;jU*1?s}Htu4e`AdRE~D)vX41J?n7SvjulO+i=&j z19v^UaM!a3cRl-X*K+{BUtdp$@Q37~cTV@`Z{%UP>l1;yK2f;qlYqNENx18ig1bIx zxa*UFyFOXC>yv}KK6$w7Q-HfZMY!uzg1bItxa(7cyFPWe>(hX{K25mm(}KG`ZMf^x zfxA9kxa-q{yFPum>ob76K0~~cm6fF^Qps~PXq3Jn(!TT-4@*WwBgRD2lx5k zhx_~=z5f z4-eo^>AFL>_eJR9>HhhU>JWze9EibPpE%t0Nx(hdB;4~&!9CwJ-1E)AJ>M++cdA1H z{!Mui?tDsc=Tn9|p9C20eAm2;qIRnJfuEv!{^C6@IB>Sxci|8cR%#u?uSrm zx__L181DQdaOWR|Z>~IJaOWR~JO2dS`6uDdKLbBd*UiEmKL>aGJlye1@FNw!48Krb zfnO)D!kte8?)Xjk@ru)eJANDP_`M0=CiL7}AO2$f(Ez@ed7kyN2maIoFe>K@+3f$MN!ac7V+;QsgofW?Ycb;vy^X$MK zrwcz=@dpzw+Ay&p-2eVg=+g1LgR+FjA8z=67=E<=EHdF+PK=Mjy^gU7f5F7~INakC z6Ta2N_$2%mtz&A!UpO&74gajhXC{2!#P}@y4vo)E_=_gS=iyImG5*8Cgl|1Dz6d{G zi&L8L$i(ACTf>v;0c z&-vtfrFVJGC)efZ*mFKv|HLbv^T|4&t}nPj{*(3Gez)hwPuA_>37@RbcyuTf#5v8M zjNZreaZsDd`uOW)U?*x!@a_zK?C}YGzGA{v@(uEV2@f9A(&yJtcrae&4Sj3EgYk(V z;nCY8<98c!48||e=g-rhJD-X^pEu#b_(d9j%!CJzNd^BKy`41S!Fc_3w$P;$9t<65 zd=(zrEQk^c-8kVvoEtW1DAbHH@rjoPqeGz&PIxfhaeEUUjF0Gi`71mjj|LAOy*ZzZd|!A$o`F~7 zC3r>~tO1Yc{OZ9w^2qb2^Qq`u+Y{c9r{Nv>@(G_jZ?Bv1$@8{9;Xy41iu3e@2PuDC zb$q@0HyAs4K9?ta@_hdOgioH&Q6=a4=Uz3Q|0^auxNb`I%1`*@d0wCJ$@Bc*COin? zb^7as2iGp_HoorWDoS9%_@Dc_6F&KMp*!J|Ul-CUisx0>V;uidc;j_rziPsROBPl4 z?u1W$eVM=R{BzbXJu@_a-TJlT_j!M`cEzft^VhE!y##yy@}=vShUTBSZe3{p*~^wK zSy5cJqOg9+X#A=bq4{gq1b-X^STH|1{po_yr;ajz$!W(fUcdi4RxDe;X6;dnmmKxx z1^b?`V%eJ2qX(Y5Z2ihLtB-icI~FZodeq{*mn_=we&5miH}1XY9sdv{x#Wa1m#kmA zV#QG_7q8#9uyp0xqu#V~qu~}UUcVr*WbuksqpL1hxBjTb`z;yKzN=QOTX)pT4Hp@~ zqU4e{FIlm6>ADq*GNbYPIQo*+YnHFr@R0vQ2AO4ZDJ)Jb`JW}R|8q%<9)RcG+fP%Ue=`?P3X-_R<2&RV(t1ROV2GXI`+UNOU_<>?viE2;(`N~j3&AEoTaOl ztXw~;K(I2IQT-POr9a_KqmO1@a``Cy@ET)lGCvuoEbJ%0q_ zV`ka9^}!(%oGQy#oO$lqqw1WsW^_Vr_;~4=XRcl0^I}Y^)-0PEzI5%<)n~659b^+B zHbSdbt{xq2;}D|*%EN<$?v1C69(&gO(IzSumlRg4UAJcS(p4+hpTFcCiO~FIYtA`m z#p=di;v~lC#z>J!cg8?6qq~v;2R4D~=9%KleEqETvEM z{?nJ;x%aakpWevhoBzb)GaGsQSO1B}XE*Zrul*B`&u!%K_x%%(&u`@M zU;if_@1>or|9|`wkJrmoeH*`F{l524Jias<8@x?k|IyLs|I_s^Z+P_dVfCg1${Z=x`+pT`D! zGI;#n2EC6QH~!#UxaaS*P8j|9#vXr}9$)l8#qp`5h#!sXbN!Z%{(NKW z*S~1IehEE3Sij)D)A@V-K0C4?7hXT3>-+h&(U1*qy#CE2-PrY`7mu$$(Bp#Zzhv|u zum8Hy#W!~S*y8a6|8Liij~=|S>xWDKc>V1+a{b$9Tz{Y^Z~T1WIGfS;q5eScZ=G@d zp|0<9B$$6tbIyPF(YkMJ{{Hvb{rsaZ%j@qtdi=)bUwHR;{*%|=aU<6+&A5IhJHDcy z&zyDr3uj!vuj|+Kz+nEtx7eKjJu|K!(UWa{estFLgXdQ^Hvh^cz9^~ujuD*XI=k) z&A5L2ihsQRt{b`jm80Z0%-xgZ)XMRv9`8T&=YIc@8P~7BZ+zik&joM6`UhXD{5bn9qsIsHpZcDB^m$s> z=Y0KmzrS0LA3bF1&A*5C`Y((cbmA?z*5un=GxBdK|MK1A$^`kpX7r!0>-^g@uK&j! z#*h2VSS-Ipg~6C&tez#q@yS`twKsv3}3axc&j}A78(5>2uc( zKH~NNd&c$qKObK|vvB-~;QEQtf4u%SqwgOWGq}z#b_kw58odvicH)g==Z%I1nWiSj z1Ro|}HGXz0tOo?w5AJbz{hf9FAh*f4hYlTIf7^$rujtSGe!d>R*>szS`t!#7&)0Ko ze*T&n`KMkz&fk3=Ryl^o814sY)@t%K>53e1>4!?AqeAB=)(cuMRITDYYfw=uSTE%N{XR42vdKoUZ{Pp>`+xqw z%_rwPGxN+d&ph+YGc(W3IcNE#$Qc=?Y1lv0_>SR*>{!ESy|RxJC=sZ{IL|m&aF0Nk zd4}oxaD5-C@8k4+yuP2T@88k)5`8~S-zVz(8TxMN`nX7p^} zTP@SWxmHUw9JE@l3i}n=rcBdHT&c@wIvN2aSqWk$fT_zq-EYNT?^sy^vM4=t;U)wn zskt?}x_$TDz%W#-bovZoDX|;`t|2>jL5>xzpuU7f$toVmEnw6M@`jmHA&B#2%h@O7oMWwSg zDL$$zhB!(yasl%7|5Zt0A&_}8V=%i>SYh`%r`{wdmLi4xQ+ zW$|r+=JE`~X#OA&n~K&fjkguOVkJ&tUaPqy5Nii8G0~ghiSehKJ~RU>>avhlwbk0N zD{Er$#2)^@bz70zyf<+DxkxE`uKjSg{H5bs&M}K$TsAtsCx1tL!-nKAbNjQOw;UR@ zsy2{70{JHvw=R1r{&ew+%U>=nZVmjhHSkcYxuLZ9@nx4Tjrw zB!-tYWuY+={m4<# zg<5)1>Gw)2*horV5WK4gTcbOhUkNn-0@)++j}*oDmMN6gnVBG|)IXx6GpVSx=<%ZG ziuM+D#OH^{MQ|yM#3SL7NIV+Ov*HuOAzpHM3G#w=%?fKa$C%K%Kr9bb%bFG#W<#$s zG&~B07EEb=I}nSYX~9cuEUTi*-SXR_sR zpUpc3QC^mqT!V-jJ7T8Y1Xg@QAl6$%Jo#z=8deL(gF0gKrBCauXSJNCdVMfDnyqyIR~;Rt@tvjnb|%*VguFbxI(g~W z9UWGp9PPiYV`^dh)3gUguOzF{#8%==L_;Ltx#OHd3$~!V{byFAy|#ixhMbv(F5 zK;>$Ynp!Q=Z6omyD!OY zEi+3XcB|@B3k=z67Kq&k!d6^r7(aq)s4QTzKMH!xfK_u*uXa(lNrn=jD~JPJO5J7v zH`Ss9Vn0M2TKis-QG8mk60@zuxw*Oy48=EUcB}-9T?wp)l$AV8bVsVEyO_(_zfeI| z4*D}&Vw+p3(X*q|EM=ms_!E{$dM5;CLDDR_#)7z^SF<5WsuVauWb#2l86Sy{u$qoV z<6Qd%vrP6=-pd45I;SYN-xV0vh}vVkwc?-8n6~$tdk_dVR2S{-SXsysI=+b(_#C?z zC#)bk*7D(x`GKdZK+d;l@DgaxP8mM6Qq!=iG??&)UfTSCnWEPAmo!m~*-D@tE61rK z+Y>OW7(OLuB)-cY7ZfFQ-YHg#$W^sp9(YkuIbyZQ6|SnLRxj1hR9S7ee%{fMoC`f^ zzXN)zu$$h`U_&&0(d%-|Yor9LDrco-?&#R1>8VIH`on@qtXz_{prw%@1(*n2w>on3 zVx9_22v#BM$cP-IhV*|V^cz#@m(GwG ztjxN_Fhvr_Kua-(Vf;<3ZY0S0$XF=6R3nlY#q`9IP|JB{>4cncygU@RVGE)-rF|WP zL&pntgO(<8!U-$Xlr*pYVmmP6R;cB)rydiMi)d-`<24WxDz>f()%kKUsv`!{c zzh{iM1Hn-04s`4xhOwR(+l;lS!C7^kbwq5N{TT^u_7}CPnHbj(8@|YB$(jlVT9%_7 zrAAvz!bb8^gg8!Wb07(v`W%V)Zdf>)EbwC6&LzZE^A=jM(-@4uUi2JfBJ?1ZWM4$8 z0A~wXk|SMLZNFBpFaFPKpPrvmteog}X&=mzbo+eK3&PhTmUk#oP1(WK)U;bC#q=p=F0U!m+q2h*on9%_hm{Ts@|%AxTdpRPQSK zpw0IQjO#D3=(Gnv_7(P_Zc1u&OKQIvmBP$`OON&&-2T#jeK&cRAn$r!){%2tpW+*m z3s7EZxAHIOEdLD3e_l88KO6Etv+CqkZWA87^#9UT`VSn0^xt=7@-3x*&7N;3{oQU! z-&*=_Q~JE5lm6V5&iIjMB`_D!t6SIEAzk5oG=-JO3P%$2!@4uDF#@swLW8OXvDe3{ zKfDv2LHtkIAyx%0X!W#8AojHM1l2E=p4V-kc+gcXO|;=&D{*od>#wL!69fyr$XnCq zJoFYlN?=aZ{&I?HNAK@OH6L;XtD5k9w*y_!eFtjW`XNV(lfy+Hh!S^0{ZB6S_Enxv z^K-XmE3tU<4v=o&zMt*JOXqe|qZH)88M7k_J-gGy^eDKF9=`Rnd)oGbL1j4@hsCq* zjBR^A!2IGN&Mc%u z;g`YA{4%v|{qAqeuk<%7{+afJT6(%x)-nl8xE@ww8D?#2^;WzudR(MsPB6dgF&T~i3#xTSxq15 zb+KN?0lEF{MEU0}XLiJ`&*MAV@1N_Lk9V&xpX_5>{(JgTf=aB;i+G`DJR`Ysvo{zc=pv_vOnSiuJcS{4&^?U#7N=`495@ zCRZQ-rao|oWqsJ;m%+~bGPP}4+kZ~J$Ne|>J(2vj`RyLdU}t`r+V=E&|2ckt$YtWc zDc|GC?|lxx40h(1scl2QHNW>i1m?rqlA^B1HsT$-%OwZ7}o^`uee5HL2)v8tON_o$JKNDlg|D|)6&rCf#y;eU9cbh9`+U*B9W>| zLE*i)HCk&|DR~@lFy5#UUg#A)$2IX%#3w()TtfW(MXi&HI+DGJtNs2;BFT?{5vf`l zoKpN=Aa)mOVG}0)%S?o1@+dAv8#_6l$XK-vE<43Ox8kr+I|?(v2!;nt0k^`3ktxIH zl;+lDxu|zp;?S3@CKC&*LtnI-HkxI{JC?T>?RBuc#n@ZK_a!v;pWu+)L1ZRF( ze1;K-{SurtwW-MDWnil_HymlTILXh}KiC^tOUcJFb1AV<0YZ8c>icfSSkr6--f%_-3gLvB&R^w%J~h>Ko{#YAy}Fy z3AJy9Yx(!cWRK?_eTT9)?Z&PF9PD}u0=3MwwoMEdqDBS*8ZrS&2twA#*K=U%JR877(&D+H?rLM{40&kaFQCMfL}uC!;Ea|1c8a|0J_4~!8%(5Hbu zk#JTZAwDI{ZN^y>qT!NH1HoD0ETqi}hXOI~l5=v?3(?ahy1&)5HOs1&Ej}GtXF{N# z1cIjrWnV$>i#2mQ#@53?>^y{0X7ZGo8u_oMpNW@sjMGzYFaYo$mUergJuz!5i%){e zy+|zGtuA^KooN{&?Dle(5lOOz`QCJHePh}pyd*Ob3FR*Bcu8h~n*zUW$~yeH6{16fE$o4)KWM!!Rfvh7}|tN1~*hgu;W%cMfj$^%^oPL0hoJ@&@c$o7X^ zhTFHe@hNL7$U!Mw(g$8uBSisyH!|LZCiyW$Hmx=eVeLe5% z7_D13c|`Yls;CaUNCxad>7ASRS#0`ZDw%~Bl?B~Mxg6m``5SV1=eKG5v!z5~p+5(| zp+9%qnMcXCb82UfsI3Y1=`5^FbeHx^ulqZDrrK{VE1rZNv>nz!wd+?0=zJ$j*3Yi55&F?{zOOP8)bt;*%=@w%aLOD&(!=*=3{`;z5(@e zyIb->=%8a?-EuO33PE->+-UcRK=Y?SZU3S8&*AcC4_9mZ?rhFKGP#jD48{ZtW3A>?5WR`#jxUOk8{;hV&tU z=D#z+adpDZ4oPlBl+xqlA&yl0bRyAhoAWfCC7o=}W3&&66q|FEZFBAxd@*i8o)0~mSKF@R1cV0T#r=Hzs*}*KlbhS^Ppkk@^ zX>Q=7R`L33SI7%+g?wsVy*rovrun(Kf#tFA9*9Z+o?{C%{}q!A%uApK=>N@Xd|rmR z__9zWu@H{S?_rXyEF$J8<;W{@6gfvib2rNPIt66ur0($62~^ z%%)Z6OFSa!uF|P!>einr`Ih^_Ya~BTvVGKc>%Ua~I&Xfar^{b1Eyt}$nU$mOS&2q6 zgWiYZOi1n6Arl{*8u^s6<*^raE+^3Z31nm?YI0=*^BoDyL|b4Sl1-GRJPZ#fOEe0w zhq(FSl0fWs#_GPi<2pW!VzObi{J?F7KZ+(^1vz`Nu$#HT_|D{X*h7x9iOE9}=Q;C$ zsvV^`hf=&F(EM}Mhv}tFUqSk%z_y#V^brohf!HyKOEDM6A&W8>7x*a*#b);hQhL59 z2aLvp+T4{B6Z3N0Z*<4!RK7Sru~~~b=T5+Dau#_3pUhvn@6{yFA2N()Yso5s^0#DS zyb#`HfBrLY&2&p95A8fJ6;Nseit3Q;3Ye_G_2=M3C4Fo-)}fdDE&z!tysuKj0`Z{6tK`OAkf@EWK>$6R8GznYEmhv znlf5$l`rw+j7=aaPpLE)5ps{^j6hI0!SFD5WuW=j6iLdA%RVlboCdkAZVbe(l&LE^ zoIUqX-ax@SH9rqE=bF{ofePGkuL#;(@1G%tqjvLaq~>T+S<`MDz_ib1Ds7@#24ZiE zLtf8&x@a8LDG;N%R}{L#lNoR9_HB-`{n`Yb;)a=h)-T* zE0&CC?uhprL2JKV_x6Wrr{ql5dUOhH^StWi&R7Tf9ktay9ZSTZr$U1oyQ}yH`qQqh8Ie#4U9c7kKzxabv38|mbc~@Tf9!~!X zdXacraxKqQ!Q!kzeOWr^VV58+d59Ev3ZjjNp%4ctjA5Q4YCr+j+8ysp&ns$u7+X;W z9|OTrLJLoTsP)(qh#Tv%2&x?-2g+IT<(Eqd*B)mT&LkcY-JGCQWl`Eax=Zl0@OAh>5LH@FVOtc!$=8kGr>aia1)ju>v^$fovG_nBDUT7SG_)^LZw-sq6^&?ZbX&UybrUX8t&S) zJQ7|-7UHi-i?Kflk~5oD(KH`_?gKm!Sp_1pa(caOlqS*Ii3CyH3AsyRiYC!2B;MsX z@#edVi(Q>a5G5Unx7b$TVi(h~^1&qL^|l4v@JCe)MtZ6uNNK8axh7(udy@#d&g*S? znnK&QJoS^1YP#^w%fVCj_SWBAFczz@gF?rosd8Ha!5-!-ez!ROu;nxjlu(ZlU7=m_%~)0KCWbY#}`WY7;V1 z9%_2uO!WY)#u8k60PY1S&u1+{?WV-v(H?+z{n`VN!%BDY0H8lW>9i_8@d{-=9~R6# zt!X7)Nwpn%6DHb{dsnV)PhZ#p)lBY}-Pmkr5+qF33)0bcEa*VwR!jUC;vK^kO(`N;1x0ft<&SLeNlY6qv|$e$zwU+&(jXhmPd1phD;wOnH{XcB zQDrwG@gps&MJ&X#IyezA5kB3-61ccjKeq5tDHg_jfD|!}B5^D}8CWF&{Xi)zD4aMp zn=z#6j%G>dwT{9{Yt|{B+yIPxmX})1On?gb8(XvBwQi`WW3( zf!HX-r7V#Pkws1a*Lr45-TUb(H;SK*+t2QNePUvHE}kuMp5IR8Py6eH#aN}i#wv|( zOHLt?{OPZMB>ziu)@Ot;puHuxz&+gBV1TZTMJJWdGYt_^zx zgAxt9*V`6uCPwo7FKjFw!`zr}3%H1cbOlt^zo?rHct0Sm~q^(|pnNkea!rpE?KL+^Xt)%U4x z_*SZ6N!$OZ5d-DepL|4`R)t-TCeksi<*4FD^#mXGx1+9JJbgaN*;h74?96uH= zS8xeoOTk!$U`4B7ENf!naS9gSEJrZV2{B$qHSL>~@kKj9;E46}1qRn}`Kyhhhar3U z+S!jra)H=y*-qkR>kf}B1Y&iv^F?o5cX(tQn}Y|W$EpTm^=z_lESKU5#GW}|xfE$2 zR(-&7*$jc$DF>v-rVGSQ(EN$F`cV+)sz9}X8r|uwrf4FGU+WgTPqjKG2=L43CPe_g z8Qsn zvGq8stMl3&5nHLK+S{FER_#u+oy0EY(=KKpww|csB>q!MdCA`(XfqmUZo<=UsZI~a zMcfF>MHlf}+8J#_?13%$2oh7h#1BBs9xw5^FljibD4wt!^;@zlqS$&{y#URl}T(gyvT76|8LJ= zUzb{Yt8Ty+U>=Oa=$KL}ZF}E_*qix2q@*`S4r$vIlDQaKRyv{2l_%K=zlgBysE3g^ z)?wyktmj3cc()7a7gRIhGu?*P+XWBHnTJz=VJL_HLD4zarGx!OyzjitN>0RRODBUh9RBm*;Onx1Am`oPJ%nM<yU)!E|vV z4#(*I9_+fS?gOt$BMRn^9+VXd6qqx2{usYXAO)|sVZFPv#ts9o)rL_RW;1GcXS*E< zgdHAumj`asuxEE?k0;qc?f4UClLroJI1sB5PxWNau|RQEf2&;?iWo;sab^;;q@cT= zx8hj`w?D%+>}G%F7$hn4`Y=r3dS24+&k(WgiwE@n3>6^#{>*){<)t?@K5EAWAwC`()?rK4+^bL?Tb^P*vI0iAZBNL=u|FDyCz91}mVC+E!>H1|vQ45G2R% zB9HO2WPKS8gR;q{?RRGu6uk>~{s^~u;5|0%VdKnh z*dPt@yUQJZcihvl(aLhb#&+B_8!VDVbCltau-^j*ZP>%c;oY#IMk@H-k%ta%=1s@O zDwYE_R^x8_-I)bNhwS12=Xu~l8}_jAD(1N98ih2(?=E-v-EmLHMx$n9h06wuBpW5T z^GDe7z~wgVVdFR5ut6GRgZU{9=IzP`o~Y99f4dQhPxrsUd~pA>I;rk|YA)UXevTki zDUqg>=a?Wd(xi|QBQ#TDq|}rcq3(%MBf9IrFHh-wFN^)ryWXB$n4XZYl$h2oF{`@7 zG^WPDIX^|*(-ZN$?ZNryfv#lI-0Jw}>ALW)O2(iRHEh1>88N%}&u_R#{PSO9w(E}H z|8xHN?e;=e{PXJ&O5>j&8(glZ!lIhnm^_LUWT<{ zXaDz5C|no+_c|cb|Gif-boGDBgF5OwvAs%?WAS4U692|J0l+j)_&d(;6E`U5_bM(? z)1D{Z3v=yte!q+GK|8XCu-#J{D# z8_sYwcFVKrkJ|q3%2ws?UhDOD_jmo>Jp$LT`|3XJaWC_@Sxn9(U{X{R6i*;_+yU|G1g}DuD}Lyk5fE=Ok~rK@TJ%G+D)d7u39Az# zTqcU^S(-qt8FkwrkeA#9$DSyLc$;y!x|oai)Wg+uH=i76?#C3*;p(fxCnrtDr8n?z zx&}Tu$VGF`B)dbw9v3qZ`-nq^xSQW0;bXmvOJOwF2B5D4!TfX0Lxk+A37SdO5mj`V^_h_$s&~my*d(DIP0S!uuGqwk` z#N&+h0m1Qze-00CSC6kd39dN;cC+VSEyk1P40vR~(BPtK>1ye{5@ zqVOXRg`+$apqK_XKn^UDMh^u!gRXf%^g&X%-9zEGXqE%Hmo3){syVRRK6iRZUC0)u zS?74CkEUnAmL+-ds=^+0E+WqMAie?#F*S_rc>Dv>Voq*dtOvEZj%{KQ1O$C=gx`^+57U zJB+kdHjFY*nDTP2wj+VC#sjx{;O!drcsY0ID7>CX+&x|o=JS5=@~u3Wlv$wpLXptv zLFfF!!TK+$%H8-ck4BPG!hI0sdS24|FNxST{ukPR$p-D>zbtws((-HVYQd*LxHZ`G zVQ5UtRWy6<)1SM@j$@A75JFI%FZvKQBn<=PVJJyq+gegk4p1)XT*A{q0@zL6eh#+;TOrZHnX{_#!V^2e>`!x1Y z!Sy&EvtYR*iP^d0yW2;bkf_09eEiskdL)~VV^5KIl%V{Kk@%c&Io>nOSljb>J?P-2 zpZ4R}eMA-Md6dVo@irTJ9+!HK-pC9}4rBM1r?Gp28bp@nX>9ilPPTp+yPC5T^)Pk~ zKzSJZGSqBJe82wo$Gy<5Dfl)?Y!EA~zOCWTB>A?&65Z;h_fy*PbhbF4A#_xPXC%Cb z7ug|f^}$>5v3tpn7w~%>^5Fu!jEM)K*?4>jTv(c>l5w7vTbvEqrEj?iSmhfeU zw~HPxGoQ3iVN*BYTq1!;{MTV-*3P9*6iez9_9_;H!dK%SG4c9#m4#(D+T{UW;el7$ zu!oN;y5oaHNR$M~2Q#PRqfzs*!sUZm$j2(&`6ImA1Fx}R4Qv zjSWvCrIyttrm<5DtgI&spMS?ZgMN$7eml$r`1m{D%Orl2rZ4&UJCK#)Hn;u-6Db^B z7}I&4Qh*$4uoy@_)oLR3^-^l`q~?}whx}B$cKt|=d{pGN--LN_DnD|LRBF9s)$xE}w6a06i(yUBVvk|J5j;}_|*NXIfjdS@@{z{r0?sAeO4#wC z?e~cfZ70g_T3B~JG?EL%*z>>Hmqiu=F@B=woAJnYAok?}>9MN#=F|c4D4sy9R^y3p zY!e15`o@$b)CrOZCIe)VZx~RLyH810ttr%2AQu?^*l4HPS6ca-E0 zkdj(!E_pn)j){=HwO))ERVobNLCpoY%!KVbHpP9_%C7m}8~R@tHk>yPV0`!3XT{tq z)CQ&CLxUKLRI7O%T4MjZy0~1SzDuo0dA8X(=KGoGs|*$D$$2!Iv7Q%|-K%o$^7Bcw zxt>vI&(xK0N!wGk&Mp;9q}}6sInsKb?&eZ`)1}(JnvJrH(uD~4oIhVNEAN?&#P=kB z&$GZl2vIN^VFnR+@p@Z2IIIED@E{ftkr(Dv%M_&qKTFnFg5>51DsBI>`$Y zTHS=$naHdfiSGcky=1Vn#=3(N?oL+>$=f{?P{ct}*y^D$%R_-uKR6y<^H3P%p#WoY zkQAQtP}m76**_3S`x6(A^9rdw+N@(9B5UwA|=ur_=Of z-bj4IdNzXVo#Dp^+Q&OsIE&?$fKSG`Z?Wq*B+y(B5qP#n<}iqFwQYjy?K8e%I9ETP z(e^O~F3%A(941x4TkP=pnv>dd)?qybg~vP3wn;*B>yp>3#36hSGCX!x{P2dpc%hpg zgWaLnKfyN=q27mDO`CHsya>yPebI?l;-@pIs`w=1Abc`02+GCVmmX>rM>n#%9j)yj z6}6&QJSH6mIr^gWH6YHKAaV=b+`4HkWk9a+*1WH$;lp%lqB+6kdaxrACG7b7t|%^$ zPbX|D?}VcFfnc*Q*hFE#ZRoUnAlAZadtUc&`GuWba*4^g_-5qYzyp-LgZJ}>0K^9t z@j}s!*1ngmswd(*tm0<_u_mOpH>9TP#OU|iXDRK8Z$t)s5;Ho}>e$#Y*;c9ODPXaE zV%r>cd}*VovLpjEB@k)iSaF> z3U+Z+$sva?A2sPYs0AIsZ^-q9nsFMZg1`JHLo@UDA{jy7|Gs@ z(_PViT9VSlUgjRQwbpN|V+yA9oB0|*xX#>{u z%Sx1$Sa@tIl!n6OVEY)@iIR3KvLep+uA{(3U4z%2;Ziz7DB;CB#TyzN$yoO^d}7^6n+qsayc}+y=Pg|W`8mV2xUzthvD~^t-j)a1Y$2ql_wpj z+L6S(VEd7{mb4F7MJAZXxE4O!H)l6~0m;C*3~q7#rh21IQ14-y1XRL90Ar<8x1^-3 zcyq%@bS9LLTHOJ5bpy>OLx-)VE&k*QtoCP0O*}2#-lt2HqYw5MwUtrvzWSU4Tv>dN zRs3-zFlD1&Z0J|)lr??M?-1b2OCL>g{h+cwH76x1bV9?PU1%$=hOBW`2ULLHX|KVf z4DYq^+nlMx2&6Mj87eiANMoqfTd^>8iGNv&S%5uUH%5Ezy@qqBl7_=eXCgODquPBE znPNK-^=MoT1di5?(ZPG01v}dJ{1oH}&PWg=EBbIGu>dobNO2oyDzmoaMo*EM3cURI zAmGx_nThB-;P(t|pUA+E6aziWIySezf>915*6VFw;DI^x=XMzuE>Jwd-fCkjAD+5; zw|a}B8tY&c^I^P;zrYzH+4V^`g`~Orv?mOj+9WLHI}FqlTJlafd^rxRW48n&_dC*h zstNU$BBqpF8308)JFlG>4vxzTH}nF~cihBqM)YDa_|BqASewG{R3+DMM^?N+P=B+! zs6(r}dh!59?8uZwJ=H-i((gG8{Klm=$yON(1TKOS;Hw%LJJPXIy*w@Lq5`Ca&~Hs~WEyVMLEt zRf}^-$m9@BKf^c_tl~Q`c=J0lR@0_DD{(Y!)FbUD!#JSB;iYLo#BaG(vzURjRW zvJ;`{tqzbtu}X|^-V|FM0ZVlZrZnW!nDHZ?Y94|KCI^4v+MVnOhcFJ>*@lG?)*tOa z>W16bTyEt6l9Gs+<8Hgvd!9T4Vb$%@?b$IHE49UE4->Cz(RJJRlOCd*#qNtB+K%S4 z;NA5RbV)7s4UnpBI+{J%chdpXU3QkB1iaCc{S3)2&0f?hgOw|kboRz&;yDi$<6Bap zxmCQp;-SLR!rn2xi}4)gWD9x(*u-qMzty8cIkvtOOGN^)N_bA}_b+J8QzJn7=5k9L z;3=&iOH(@R6GLyt*}WGg|9>PF}3g4hA&#HCfgXjxU6_oAgFi_A z4O}`gA0#)s!Q@&`1vICxe;}NSbAKd<2hEL=WF)TMr3N9a@O4Sm0>%p%0xRC5B}=VI zOp)f&v-w#hD-}$|nQh~2!YV1HXspIH{XqOtCpT&j^CKtZIU3D+YL? z;>FwSDf|c#zAvPei-jc{Jeb;{#dtgw6W?~l3&}8&%i=FWm$lL+r!&LVn>k%nGs)8L zl~&+;)M89!rpx?>QBhI5Fj`R&T3j7%SiG=$PH5qxg~uQ&lo!3Ct~xYo%yET<_4#8$ zq3Jc%p~{PE=hsHB2t^lZ{7~h>Q0>C{XywAH>d>OOp~_Hwba8D}G*sVkan=0F`g%r^ zT5Wx3PIcYl>Z;0U^_&7^n-f}4c}3{rY7knm=rWXByAZkOHh_!j&}G$&>uVP+WajcK zqBV;ajsc&e#vEVYnNh~2a;j=&7?)MfZ>R>Ni$e1&7tbRUs#>%Vgrfw(l140B7_D9m z#&8W))l@D7>Kp{Bz-H)}P_zb&FIY6EVSaU}3UytyaK11-e^KQe;Tg0REvzOzhe{nN z)h%9BRb5{{#xSZX=g+TQI4?A6YN)p_f) zU9>oKN%a+%FIqe&1W7e4s77-gIcmm{I-e*2@@gE2Ll?=GUO2B_p&1T+RH$KL^^!Uz z!fq)m#RA=Es~qE;bzpBA~Z4+=ha?Ty)a)&3|(GRD~+PW zTd5T#wCLjRqh!N4YepmjDc7U6q04KbLk-bT_2R{-EEKK$in9f+;&il*ssL28YEJF3 z^^2=2>aIAp3R-vU#fxj_%&V@bs%sciRad9$IYlYMk#6FVXwmvm<^09fm2;>Z)#wrn z>J}}A28{_#twv`;g(~OQ)>pD#>OV@lk5<1UAqI5C zBSUi*L0%-WpfXxj6I$G`uu~=>_|5gHyJCs1&y0nY7ekKHClsGQs1DWDR$U@mOXV0P zP0U(Ao)pp;C8RMF(im3`ir_b*j48k3G!g2Uii#>ytfwp#gCdqGL9}`v<`Eby7FS=|Pz$4FEUd)Pz=7EwLgrM@t;LK@5->lK zImu$!Lj@paE(R2Y7cH)xSGy45y2`3csA?5PT_qGeDp6>Q3Ime|HOy4hS642sssS;~ z)G%B@o$HP2C6!gt`Bz|!$1q$!e$Ibtp_UM;6OcR?y=tc`+^1L|YjuzEB@wK09sR42-)!>HhLykP&u`Fhd^kDGHtlMMefCq3w)nRr9MW7dF&Er81mU_N)laku@G>!wZjrre20=Hc~syELByiFrURB zON~bNyBL-*wTcH)38zqJ+UdkpFM$!8j@9xct}mc&j&fBX0G(9x)d~YTjn22A-ms^^ zu)DGfFw|%W)s|7Q7TL7QRv4IwESgho%t8N!*_cxqt*lrKN(<-K&cmV*>s25}tLr(H zuBhM`A;5x4RJFp8(qwS$`1xkjysR%yc%9(;(lkqaE6vPVcop4mOj$#r*9Q7-EimpM>uQNKi_zIux~|yar+S8 zJ4YLT8}bz?y%Bl}T>l|_4|BYePpnstMxAyYO{As*X83Ud3Ef#hlr;q`ptXQR-zvBc z)%?krFydbrvo2F=|7Y{7j9U@CDa+R!HvX37dnDg@KWjMPpZI*6@{Hg42>;#Z+ns0Z z@r?w0d$#X|eB;4v!f$2!ewA;0k^N)_0?+pJwSCk;ZHNd@qkQ?(gsW@d)Fs{=1p)@j+jMfi*|GoQ1&35lq>^2Nqr!Nz^w-GTWY! zB+(d-0A*kJ7mD}am``Wif~+@Y`CcAo{4&e8YPj)G)=0o_XZhYAZhVq2SMD5UkTsrPTT#d-jfRVY*|aR8SdM4M9KfyYB~A$)`oxKqot2WpR!tV zTF4eoXJ|)zCel}vQv09O^E;p(`-oXR5AtjYT=O1twH*IDmD~Pk{Ri9+WU=dhrC%OL3JhyxUTecU8S=t3`)jNpS(y_AsR%o4?)!?sX*2PG zDx!$}^(Q1yv#!~3XgDxe^zna@SC z{g70Q#o*msd`M2t+(A=cj>S$yc8S z`WOH*aBT1^tHsK)^53`O-}PG?zCi!s8NCf}X5c&x(0Cjue}{cg5_u4TXl&!_lZ2%g zm40uNN1qb`D}THF_2AeRXqDA+JPvN|3H<0O1j^#O%eHO7#z{w6{*z@JzCtJYNDdk5 zemWM%FL^8wud9dh%Xg5=;-7!FCF{539z_Q;$ULo??C$iI0uMtI+!{3CiPG(obN{N*|@E z(`?HJJgmo15B~5F;QqihAwZ}fzLm>r+n5#}Zf@pllBUFW;q;9af11z7@vI+_yhkwO zU#7HIgf;dhtgqtufDGCQ4U`xpEr!<8E!9`Il&6j27j2o>VJds}Kh-X58~##`Sun!gP*e~GYEPWr8tf*Qi%U&Phs$_H7n2|jb%zUtPBc;} z{{K0oWavs0lNyg)QzhfdJ2n2l8QR45`MFadj5FO%=F91ooPyenS3uYBKgiP+)NooGU=!`49RpzUM;|^EFU+D zGyR@~>v%#*;j|FcgnfP$_aNi4{dX}%k(KyE3m-;|l(w_?-tmYNK6>wCF&h5r4uUHF zYr;VV?K-oCMaWz*sXMdDg1H3Bp^e3Y=t4 zKslRLyB%7>w&>+QY#MGx9Bpw()?w%Jd6h#MaoEff7tgXAx4@yH(o6lJ&w_I-V6(%^ola2Mrv6HH_XrS2TLx z!M0G%enFTXy22Y{$%@2&*N#0LvF9KVWId3IYR~-% zuG#*1j3rU8?guwBM(~1LJi0GLSJ^~+Ap36-=p)g8wxfHijD5yZ3__#NN$i*c_MLt% z@DzB_Qvfs7@R#YAzTG#vz!-OU^VJB591g#RjA(cTVI|AM{Njp%w-7dQh^)I3s7jA3fyE?Bd|vWZZ`jf zz~?#A3O|+>F-#TuiOKJS`E}^0=Cz;~)S+9pkCmp(7YH8`vFQxQy9a<%!nL2cbgl6l|of4|ip0~(z*_V3d=1{i{>ZIs*&ZVaS)bL^|WKiSRTS&O2#!Oi3<2kQfpL!Y?;mrQ<@GQwp4 z530aO3FN9kSOghTfl(&SK%NSWmXtyjIMSqMk5hqsAzh*ZM+r4c^LDiPPiWoX+?->C zw=E8DW4yc_>*cM`q*)1S0!8LZ?i49ET#6vot z&UuD;oh06ftMv1GZG`>;)v~p+{rBUls9ENtl3^1w&=hd)pt|!N#8p^jCPxkhpJ{$1 zIX+_!(&Gff&Ee(dyCzMt$`&y>I4O9Fc^vX&`^VwhZzt>@XBFOzXPMIk;d~;HD^4y{ z84UH8YA9M~d+3&X;B!olV+v=ghmUC7_F>qGUj{p=6ferjH}pREsyFlPP6aV7+bpi;%0W@>nR9;T(r9QK>Qsws2W z?-ZGeg2WNXHiX%-{j&iIwY>g^aP}nB`X4IP2H?1z(ZBb9;W1PH0Gz`!`XBZX;NXBc zi>i$N0imYwgVd)G$Xx;wN=AP)IT4XkkO!#)zB(dk7(;UheC@+s@(tL}C=GWIR(*Sb zA(OD6F>GFyF~Brm0@V|+?ivj+Ax2Lc$un1O=@H!EYP4xgmLnS*usWED0C>2Qe-57gmFItshwvoKqe8%pk7-6Dn%VUqaCowdhoe!dkj9$ zgeN{%;SWBBt4PT@cuYOO-eoAh4-oX)wpZ>DG_YZuh$ta7BH=yrH5>f3Wip^{CR&L5x;Yi=jtS zt*HGZCKQI|U5#V`hxOe`y(}Ci#0IculB;34F7v|%lYr`^!-j1HtOySqPIRTC!}3@l z+isIXIsa)J?AMp}RLbjj_;-*g+dmOkF?AOKQ07MXmqX*G^7mgR`D1qe zJGea$q5zVR3>EeOC?tcSlb1UrPpM@o z!g%OAHw&onPrbm#uL+%*+0VxL?%9ae_z{{xWjjJs2p1|kXOSH>mkgav0hFlta*|PV z$BCNO_KAiAuMSle0 z8pZSQ{2cJvD{lmbEyM8j*Ag4i+vR!0VZ>KFj|dP}JdY673@JJz`fLXs5yME|%^)RU zc+hB2%=Q=HDtcZ5pub$CHM9L^AR^47>&#JojzRYm7Dx4Ut-z?miLZ(rm2+vr*2Ymn zP>E@jD7zBVC=sy|)2Li_NF}CGLkKG|jS}%GF^w8}7m8P68a0gY`HBY-lM>meFxjn9 z@kbG!ui&Ez*D1Jwd7}zG=5p}4WE3KdQDbPuYD}ZouCNTU&tZHJtng3~f`UVYmGdk- zoUmWTk2oH%5`K83JDP`uqmaTGMSQg+4UZDTc?gib`_fZjrDR?6BS1WiDan>mK48m&_JehE-f-S<^6%)qCaVVe&FHfN)JC*dH7jMSo5=tu%+l+O*xb+I93OErh?=7fM+W> zLHrs8Uq`r3!7YTBC|KORjS3cbZ%o1ewUe44eJFe*#b0Bpz|Aaptq%N@lv;J*76!KK zz^#K(&mB5&8!i1#9r(p75YjFkSj9X$dn(d*FtAGp?qr}%2Y$l^*d87DEmJ<%fz_N0 z7`>o6^FA+3UrFKfRg8yF6iMoPcagAK~Rn{-0;{S0MDJb}L z!lM-Y2640^y-Qek^Y;iBDxBnAl&h8MeZnOwzMb6bM%+zUH{wTxbtCQ}JX_&^OjtMK z-Wu?%8}W-P0IyUyUlHdP1@9*ht9s%B(=Oi8)hb|$_j!#9WST@bXAGZ63q6Kscb*nK~@LhLX-Sv`M!Mh_qb#rf!5 z!fIP*^gzP7Qlrs>2&-+K(Sr$xRQwRaO2tRZxUAHAv`lLX6^=}6lq!#wX-$cWA5LDC zDvy@&x?IKQ(dnvGd2~K;W~=z42rE?{eKg@Z6@Lr`vqZsT7~iPi;~2j}No@4kc8Dks z&-PTe+>-Ah!qJklP==l-nQsEnxOP9V@p7%jEV@mE8V(lib$cEw_ia z%Wd6za{Ej6LgssScZZ+66Z?`aNd=Dn9W9`~cs zlE#UJXj>fV%1i!WgzgA=?ROzYdRX3Ws$u~#@;>49qY!$+0%Y!AkBbp}4B=y{FE#S^ zB4k{FxIV*mqQW?4e$>eO!cH8MnmC5>dHZ=~Ip;97k;LUfhKysGn3rMl#)wO79G#La zDa60QPU%lPRl3UEOK^S!oIetWK$j8@b8uej7N@U+^QD6$Wl;*6pZV0+C)@}^ z`A41j*pGNS>F>CSZOlKd2Q|{;awOi!mq@ z(VrDGTYy>2ROQ3T>L+d+V?5Kd`kFOJUP5AFknev7B2_^Xn0~dLpi7}BjI1lxftq=; zz(<(B1&$eHDLo}-xH%56p-`8wU{&L+E4RAvRnNKb@=F#wI9J!X@DEuHowsQn;T|j? zH|yq8u$&X)ne`KvtKpv#R>NG@E$>6RK|^Qw`NyLmgG0FpJcT3*jw90wJc(x_6nNTM z5W#ndko6$1CnI>O1Rvv-n)DOUxDEd&o{u!0xXDiZBN85V5=$7JwT;&&5&0YwPGqhU zMrHk#*LM)v-YMZ3ChSKf=YEo-zf@9j@)}dwN+G0U z@C@RSmrH>o)YU~atb~bKAMhGO@(n3uj8euIJR*JNS4g@)HTg6qXDQ=CF1I52NgKsD zov8(jqWNP3kC1YmlUhoWS>q*j6=HwO6c((@ER_^iV?9!yw(}|B za)zVCmsKWsZz6qPDh{*u7erOha~y(!BjGE=zevGtGF|Zbf=2~C2{@-YctUETaDB0$ zT#O{u$(bZ{43*9=MdRF7x9L$yztc$R zi49Q2y<#>a?N%qvtGNnucic`q;?va!@iVTpuBNKdy=74sRSzii|5mx?Q#qg1+7{#6U!#bOlBMS??xGbbRu)W*@tHIhtyGcQ2WY$l6ADXU&M z$H?M=K*NySS0HJ*lUpTU>E^x#Nw+(>RoO8~rjyb9Gm;*4a;xMPN&Y9xei2EpcFO$| zH}_{q`m$5*U%I(-Fu@#zf5o{X{#Qw6)0ktCRNN`~SvPqql4f>Fe$h?76iJsm$!Ag? z1<_-)hRe0(<9s$ z4o>H4-l3}bDG>Y^%~UmI0Ch2y5PIkEP$ZT!M+!mf9Z;?rEsK+_&ku3sfe8`sNS6|hB%|pF#6)(BMw)^ zv!=Raj|S2N2T>^UqRYQn5QXA&AXPYsjM57EBdNOJEJ6B;6dW~+QS$$>Tk0J^ddNX^ zO7)Iy_qy260Q19cu)DOxFWi>sfyL=?{3{{2rF3o%en3t)-guy&-AxuPlRYkW4KRP0 z23v~q$U7t3Dd6WoU*lw<)I>zyn)h?D9|z`JX|Oxj;3zlCS3vKB#jL00r4(k-H8|D9 zJ_?u<(_nY5!5lZsML@qiO_n=AUrjnyb1!tWtOWW!X|hN)Jd9o8X4wSvf27IcNKDtI z$<4AC=)tjFYwpgLPh&F_{9MLd+NnHXpXTIn6~wK*%CXwXaRIQSX>zy?f-Z{r?i0cm zMRE(Um6B2+)a(zo3VhtcD^dQE21Sh=&q={#$9x`0NtVn(S}j8yhSg-EAX~7_{lMx8 z7lP6N)>F&M--9KRRg>G6dBpJy`F-8wQY208lsr(9*OHgnNSd3PT(HY!bvcr5wv%N^ z*14BvohZblV!s3CqYgIBuwZMRC%K3(0_j}`(UrIo)jqfU4j=_E4OgPN3w8EVta2&l z0co6r*s17(p6oGd?sX23<~oQ@(O$AwyJVLG^M%vFMt#{(XM)0M%TM!^ME<7E4CK>vo7K}K&o^QJ2Se=Mf?Gfu5}PQGx{Bu z(O&^+t%I1B(fuyjXMy=fS8UB_AHUO3UjV5W{Cw$~ewd3m5=dhm#LkRPa~X{QsnS7A z%P0@aYeo41Ft6>3t((5WCHpHN{n0_}EYa_|6rTjrs}5pkM!)Y;{0vCF;JH*)Ps`|1 zm+VMjj_r!A8C~v@jR0wugV>qT+l6AmNEn3%AT>LPu5Gd?oU8`~u@<0tJCN>n5LqK# z>P=Fr;A}+tOAd}h%ri_D-05QP0cHSBPF3|(?9QgA;7@M8JmeYczO|LPK?T*a&%^Bsa`F(qrv z*zdvrd^TZIt{HO8lB-{?LAi$H+Nw|+6>g(KZdBNf3cXR`H>wPcb`G6ojmr6iq7%~u z8nbM6=Kb{Bu+!*fykWDQQIYOi8zPspqI2Ld7r6wVLLQiR!x+=?4CHK{BXEZKG2%@# z_!4eY=Tui2V|*$qLm~K8C~Im>^%7&uAu8loX+aeVs!)y!g{Cg5iW*}Es8ESY8>~W& z)1=U$DrA@{I6?S9k+!8MABVih`5p`NTl zS>|-%=}eQYp`~(`*#mNeRCZ%SLS;TjMQN#=t3p{S?R*t76s1~|YGzKwYj($6ZkCgf zKX@W;Q}N{jW6Td!RM5yjc4`B)v5z$QO_+#zn;( z0SRIN42uYeASh-8F$}0MFakP=7*{W&q8JcNj4OxCa-x8}v(+K>;@kV8x7(0zladycdi#BJTzZoz_1A|0So)oh zCwcnauLJ$wPl0})SE72fyy) zXzgLbh0{I;)^m=XttOV4g|G^2ZOjJq z)TP*U#_Rxo4~OXjtgMfe-@w@CLe>lhe7F0?QI-+rGH@iJ!uULqk%I zAZ*(Ke?5r!6s+hA5luCjmY$;%p~B`DMJIqQoSlmtuHdE*}$&P$GQBO z+Abt>AK*tQ5=;@1Jwhrg0e_IM#a3ld^Aqs0y{#IXnZZHDCV;je9F^3eA@&}C_AZF6 z^H#~`5rB>@h<%F0-jbzoI-s)(VxJ~(XToy;UGHOSO`j*QX#o3S7gJiYEx%h7{|m5{ z4o|d+j%5u=%lZmPY9Cj0WW_3eRu$_*V26C6&{$RD`Cj9`5FDH*Y!kiAi<|&>a-K+* zDOHxAay{#WCtdxPS#VFz8Ez%8bT8(=-plKy=tBQ zRs>VOgTUop8yzG$LJT^!jDgf$z#hkMAekIQg6HdKM_!U)f=3=RY<$A;N@O{J=o1?l z*ZzR2>$*FKb2qNZCB&{^B&omt6@VMp+Shve-Hw5NZ~H*M&k2GX*Eoo}aqZ#}p8n|a zK_@nHKP-phr)ev!&=($#$F(xZw#F}{V3q5* z)}Hon1H5Y~86DR)qs&0yhf;=>Czjey%8qN}fKATFqj61=xdiYv6!Dprn}aDG*Cds@ z0Y8|p1tGNGerWP|dX1L60?wP1iRwznHBs>|KtB)`F9U(tI<86V_4;G}gI^q5$2Ez~ z-BxxZ9L3gg?MKv$848Ho-NdnVTx&|xCIFi3V{1*@acw5pSGkzdl5P3faqTu>cRM^D z*Q9Mc1!Sc|vt-38?6~$h1j>-8mahnjN3q+m8qa5Oh{lZ}xOJXzJg$jIZ@`1|L?mTv zw;k7xgTSd?i2aGh?YMR>u!|gSAv>;J5B8l7Qs);_<8kd#;4gU@8P`MxEKJ?(xb`tZ zKYF2pjH{#_*VR@xQWpZd z4!?mkmV<~UE0yA}&XNqnGOnEjF_Gl}l4Ks+EeviP>AD`t!NCn~d`Z&|N`K{4zzuGD zpX2Fw2L<}Q5rKYxk8{1u2Ymzm;hh+kt)7n>0-ZOwUCTkw4Q``g?uqzypU#T+gWFWF z&UNhUdBifmMc5B+*C24G7w82ln`6JCqR*nt(3K;vxM=$mz~{Z_Eb3AW7j5r?{||>1 z4Q^LK)|3rG|A(Jgn3d?_5$>X`6R=%9?k%w%p@Um9Bw+?Y=wK&kVIADEgvSA@CVXuj zEQ|*?iJb#9i?9?_Jh(~hMSvC)me}fzI=Jmb<$nhBoR6)rUbJma_+vny6~xxTO=4GI z!LTKMnzqK)!A)Xs1!xDtQQA7Vu{6wnfCd!6I=BgZ9H1%>Yth=lZ93SO5MrLQQnajD zTXs6QiH?O3y2I;G1Eaz12|&+yI3C>I1@|9Bdcr>_4GUEVGrbsX)x@ePBE&+T^z7|`RXv&zq(2{$AFLi2c zW^`~96)ysM&8e`k4sH_rOF;iFh^>R0#Li$5HH%+d(>l1VWZF9e>PA?6R87;t?L)!` z0vhIHYfan1?If@#xtP+DZTZ>3?LuIeI6NNQq-`t!a-T!9WW_4%;I;w+@8%1MN3q+8 z2RG699R#_Wsg*%iJh+L-#(;Oo6Oojy-F9&63xR=Ni2aGh?cjDSuoE0^Av?I$f<4ng z>ilAAJh7KzAdk&%~#Ol40qCN$d0RsbQouM^i)Ukg=dA z;MaX`TBXdxd4nM5nA!b_^uaGljp6w^Ah&q*K%%>of4AdlHWD#EHRvrYx@MjQrr`mP z);ObX+6r9DK81#3^$+0*JP(7~iec#g@#}s#(@+qRQN0Lv0<5qE4C9$AWR1V`h)1t_(FOeD+0vuJABD-6H4T1a3nfqOmpN^^XF2*1=jJ znt=thku~rE&@Y^Xyk%nx`BqA#QL*jt6JxWKR}pE3se43ZYv5hHj2O3V>P4oCKdQ#x z>xhXz79;*xU?o-}GF(+3M4fWV@U}r02Juo$cdS2jJ@Iq~b|ovnfn16La}DHJxTmE@ zUm5tv%_H4S;!ZGcz}|Oha|4T7xf9Ko;H-As?EL|nYFZ%u_3@Jkr5gxmodc<#^H9_u z!>)l`h{o<32$xcJlPPK?GW@zfPOG$b55EzN+Z;2yf=D0y zYy){1$WtDDk*G9~mmDv@fi%PFP3Ci8wt;+suo`$%KX6?Gq2W;jc@1i}!JU_#@az6I z(})@fE!q#j0D^xDpfr$jFh}8cq6alswUfb^My9A!=Jc6hT;-VARn(QC28GYQ733d0 z95;|Zf%|eEqOmpN^?w8Oxr2)u2y37mRo4bTF{h}3bON%gM=4+2K=ucIu$OTSgsGw} zP&NL(M@;;&81csfD|Jc3<+-SV@K%&-Acx}Opz9SgP%fn!2ye={2C`wGM{gPE<2cy) z2C^DvrJ%C=KH&NW(iWUe95>rPKvT_*VE1%T=?20PZy>ZK90O5*47&!h2$xH)f$(x{ zHyIvn1Cga#r4J_U8VG6EKyF9c_b~n8v`TCD@JGOS#xb);5b1-TZ6NOe`NX5g5|sw> zPsht|AU)1OY8fPH8^|WO^0N)(M8t3ngoZ~AwYrRh#CkjIv&6{f)fKc z6=KQOV4j2Dg&x#g)m{z8b!3V6(C>raNIyX1oxXfL}P2j z>zklrGWbbiMGb^Cur<&wPNJxR><47HM=4+2Ku!Wa$;-F~!c@@~s2YD8AtwGQPi_QgOiCO>jJNcHj?FRQ(?nikP9hzv5Wf{rxj7&5T0+P1 zK?fITA{{#c8A=`Gs}52nbSw%wn8!#*HIOT*L-OuRp;*W3pLrc`4E5#lCUg4-AS^ zA8Q3!%zhNg(ogjy#jkJonu?uM)n0ek6ypy>crCiSrq-+*a}3;2IDHm04J1jm(W4;> z&weO|LyAFo4@9%iublpt6K2ZMQzKSavynEbe8Yn9vPjpqPS`&sqpo0e9TLOAt{@!S zRpW$Nbwna*(QR`7L#NH_xBQ%_X_|ke@#SrUwT$FpCq7c0D31y~~ z#214rUVHA2B-sbiB{5#4X33FLq9xegaOfE2lJFgZhdDaUa4^Ru9i}w4wz&rZ7nDD{ z@6hH7I&+QN(QqR0W@D-s8rsqU>na7RX@jU1TfIfv-MLJ09O{9%QcAvO@|ogLcZh>I z-07I-GR0EAtT<&3H7BAxcFM^K2)yqGXKF3FTXt4V_TMBU0Z# z6`9z0EoF_|5`+la$p1@8co7B{6tC=mKW>k|u2Y}`ZklDWB{BCb!w6Qxtz zOD0?YDo%~XDRHG-^H1JVvbpPFK`z%J?pR58G~)V1JWV@0Mo|^2b8J@~{ z>IzR?@2Oinb&sbW1eM|S8wN(KlgJXHX0g?|hL2ivH>)gu)@NJ&Jw5FTk^(2Lf(2|D9a%7&JDmu zf=XJQEK=OAOY>eJszN8pHg$a|#1j&w<)xr%DfD*<-3Y6- zIHiK6(`_}E2K_)-EMubj)PAe_lR$FIv|x@!mJ#7DYDLK9RMMYFp|;h`Gxu7H;*10< zX?19t(C>UChE#|=l=H>-%Y5m5<2RC{TbwFu({)VnNv}i-kD4re^GP7Nom)trTbeld zO2+0kZ^3SbM^dKMb&}-v#HA305<6{EVR9;p`{IbfJ>o)27J9_+%8UEPDa74fE%aye zKA^KpK^w}Z>GKKsGR;O&|6;~N%_DhHLO{? z>l2qoqTKz2+k;#w=}_E?_ZOoNZB*-lf=_M~A1e4&9+w_9vg$B#cASx0Y+-X3 zJ=q_-r+877-_Apghcn=Sc z_Hf7xCaG9R{fayKZM*fiy0M?J8~deXW4~?FJ8)ri+w_hc#&p#`-K$eIZa*+?dQYOd z#Gmd>*R*sWcBPi?8#aGS?;SROOAj`mz@{(p>uxSU)NZ12h%poJMKk<_o2>}YA!cK+ zw{}qXlNe!u#NtYLaw}As-hdCFNJ~V_J_?ofcpaxNkufU ze5}lQBGVdWy&--<2J=}wPQ8F=h8ylxh}^C{xSQObq<8Jb58ElZdmwxN2I(ue54i&= zD`hx{l$@Nd`+}}9KGyDmEU8Oe!fE&}Xc!W#31mqP3uuVbzy}j-e*PY82xLhOD39Q$ zD<+lnQ_hv0pH>9AZ+NgFy?1!90e*TpESZB}_e~+~{qz=a8XPy1!mYhd~0`RRSYAIXzZKjpZRWLTG4uid8dat|{X6yy`9 z4|U{|=X>(0%RKq?b)H;t3P|Y@yFJgye6pfT4f4VZ%xqIoy18h#mxvDW2<2jUCE>Ao zuvPmO5h^;Ds642m>AgdM;cGpx16kePcu;5|?&!^T8ffrIO z82GKkc`0R%MxG4PZ{PR`#v+0*$GK&TIKZFM9jSyLUX(_5mcFGA|naj4gA4;Wh&Du z=y?VByQTEB4SK!@-UQVg8Kru%BE#A+n*#6TWV8$Sm;QWmCGif!$5x!fu$K!CBYmE8 zn5S@q(mTvMA@D-#Wd^*%T!lohWy19=EblOPfVI@Iv$qgao7G{)0WvS*^crOv0;~=* zmGGB1{ks5Ghq<3Q&P+uO;in0!a&;Is39~bxUJj0HTOCGJ91Q$0CzIzeqM{nmGzZ5j z)L|qKR|3D0GR#AE88ebO2I;Fk>M)Yl!w`DPD-%JLQHPNP-v|C#zA}|jhY>v$sJ^!N zNwzgXl~IQgJ=+uKFBqjV>M*PgGZ^@AC!-F-`j;L?9HtAhl9+U_@6ISWSaQk54VGLF zwRGR`kW+f^d6el!Js2#PA+g7q;CyiXVEGC-?>cUFVSo-XUxK~bLEQ@{b!P!F>%q3) z;Me^QM9f|dRy>-hna{B0y1|l5fzq{gdt&ZzM?Sg0lTY2_ z$)_Lo(p_$d$U zKrK30{>|%>Wl%R*Hu1Uqq~jrWT$HjvHW2mIZGndcRYuK)6@0#I*To z-*+M)^DIt(q0A-$*1oTX@TWL^T>xv}w*}-)i!;#);HL?za_#%*7iN1x4vsr6?fXQ< zVBo`@OkUq7Doz13)xog}?fWDTmjS<)GR#AETV^D41kzV~wC|I&{s^JRy)qG08SVQd z!M_4um9I=?wC@u=X;fb;{3P3&pvq|9CwjI9-i0#3D3#H^kF{Y203YIHw9E4=$b5<| z43>O^%{dHvx!^F;=Q)Sz8GPjV)PW)JLTaBphj|Q%KE;Ip&Vj-^%o|{R=-AoMiK)%% zFmnKzpK)q(7NUM1V0DqFV7b*f zB?n7B0pSMA4FlabJn)#_J3R1+!SYii_B9ji3~4`Drq71|<0sr~j{qHFHU)cI2X!wT zEN_P@(--hSitLGq**}3550*fQqkK)`?C-6(ViFh6!bx07k-kJOCh|Z5av+g~`N&9W zt2`^s%cqwCi4}R*B-uaS2VFcR$68?yA0n97A7|Syg&fZCVjtEs%K8(Mr%Fl65>$@lA5-7I- zKfxgtFtUey38NB`k{-QoJlh$X1d-NrpQGP$t9hBambVsH8lio(@14!?p^Z?R5 zl^#gCkJ5uk@2~WM3qT*F^kC9MlpaEwpL>RF2a`Tn>EWb@DSasE;YuG(`Vgg$A$_RQ zqezcX`Z&`1*}fjflRjMeCz3uw=~GD`sq}c#N9k>k9@A(vKN%u5qc1Gs78uMs>u=ze zSMuW`(qwyfqz6`2GImuZ*9prjxw=_Z$<^j^dtQKQsH)t03zROOBgGewL86X!Do4l1*(zFcOlKyVH2J-&1AXr{`KF;!>_n{CePbvgTw&ok$&Z4a$7_#Q7R&gI*me&8M|Z4W!R-F?9UuwV6jR2QsGs zg(ISnQ6lCpAomrZ@I#M!B1;PZQjbG+XC6S0Nt7> zvuXMP8B~C7XQcDMO zO1fJPZZ9fNP48I&LIdN|bl^O||&e zINYZtqh5d?_Yg?hS%IDTE!B-OW?UJV$^C#e-IL4s(Nr5arA&3I;ir~e21pFgnDJ#l z_&5_p%*LsfK$&WrC{mTMgejC)a_zjlvgJ(VjAWHCs)SKq$tCrwO5Wlqw`VRGS5@+* z&ZS3l{b9m4p-Mzm3#pZA6thfS5MOxk8EmX6sq~!`rcisNFGri12GayVQZ#wWGe;pOL&u-`MV( zHc(aD#*55v$FIjHwVgfZ=60-Zo0JBC5Apb&?RE{g27piS_>wrj27u4<`0_Zu27uq? z@u%YW8UX%+$6t!$YrvcPW*k=ov~|j9$Bx75hZOOYNhf1iN!DZe+DxV;072C8rYNus zi$tsC8+E@y;7%A*4Zr_JJWVT5X)AfVd{sL=7Ltl8BSG83OL+g5+Px6qM6@R`z9WsK z*jzAaL|{6vf2t2h(@XQx=qy9L$u7Krax|4dS_FA@mHsM#eWOTyDX0lG*@x0l%xkW6 z`^&tt10(qZMe%sbnF&qI&XCePOlZPlvhBZBoAfx3v}%(>b5*HUZ8%29^n^)h$I4D- zNJh**Wq>p`v^pfbn-}V=A+4NQ8aVQDm-sCC;<>h#O1j5FpJ)MhY#w?h1y$E>&8@D@B!=qRLg?BAv6ZotFr4G} zl8}w3fslh$+Q-fGDX)?~PE$*})IJd@RsN~awWs*hzSEA-CQufqrh$-JmDXkI3YX6+ zsU6L8J{@|{s#Y;APOp}XmB>nu6V29!30mi_mZnP3T9G{q}t;j#yj5_wX z#N=984W~z{i|N|2h@$D9tx4HvGbNN4VCKs!o3_V0vC>5LI2i?(r0<3Xd7<=N!x2@v zNzJC1Bd3=E`v-n9ppwv@p=r+>5%XL#30G|_g_xUUcnMd-{e03tBSzCJZFCZNV;K{J z8t#UZ-WcI7F*xCvV@^p@ZPL9kKS^pP_km0w;0HJv5=rJF%ou982Wt8#geS(JQ^0K+ zlbXT(ATtAa&dHESGMo$7aI?AebqF`api{v8uxxwiCIe&oTZpM|bdz4)7Hs!uWQ^$^ z!bdtQ`yie2tB@>yr$MV^C#m6iUjh067K}v3p&a0#(3rymJ~Po zO+N|di%weVp@!QBr{4i@RX%^uN#K7AUc0Mpj!CF*rB4n|>}2?qPt6y@AiWg?_IJ`G zR62Dlcgr9Rx42c_Y0hxRj~YJfkv;-)6I>(`E(525PBMHVBg3Z*YIyG=eIc0FJ82S5 z`X-U)QhSE0<~7{^F?}DH%bm1V40n}GKL_6H`F!4kO@9PlYL3k=376fo&@}a)Ylin} zYq(WGx;+GXIB60tyWIOAKfBz&p@w(s(g#3pq>DttWnc{GB*U9|8Qv$V;ZslPDPUgX zq@(hm!SdJEnw~*{B*SNPs`-FV`c;JeQ#`ceSlq27Q|;^aDxc}m$lYFjQzGwy$fBW! z&w8Xk2lG4p#3e~289tLz!<)2ly8! z;0bL^yC9+S3^&k84Nk9u(2q{g6DqhjvvcDfP}gy8w5A;1HA$-Z25@>{jB2KKIi1&8 zF`ZQNo!<2Mv8=B(D>yrfBy^VINru%`^92k}&q25zKPeS9ITQ$+;$7f97V||w3xpe& zr(Xp4ffMkA=5rj>Pll?*3~eg2h*RddUUO(u&LYkbaAH&aKeegtMGqF~(*+zZbnQWi zsf=TUVI?)-XGG&;OaoL>^Dd&MYoX#2{Jg(KSy??C0@ngu>;ycaS>dKO=Naz(g1UVi zLa#ePPpIJI5Ul2B1JbJ@F_6jgnl`+hlT`C1>-09)MyRV#O2%|j&3CNRqheX_{jP4K zNV6p=iYFPmeNCG~5xoZC>G(;0*}o(;+`c7U2i^@aKPnJz-kZJy;BqJ63C-shP_K1+ zrq0t2xX#t>nbAD$`es_UbDP;3n;y;AX6Srv2gKC6%?ZOwYQWd+ycp8}3s-H}TR`)y zw_)$dhSAoBW1J29h_oiTpU}07y$yrobTr^?7#U+4pba&A&O7}kRD6P;lp;szEJIj3 z;TZc*EUBh{LU_IFtprD6?ZCF5NM@4ZM_Oz6ajW#!2zPdZT);?b_&MZsZ}9r(@y|C? zFvjD9;OQg4KgD65(8}sW&2Q6$8IZ_1DVmU6VE9SgbPYdDoxTCkA_tR5GTj+>1Sb*? zBK%heGKHzY6MSu)lRpeU$C9Ri&B|=*{R-jLE)t0(!!L2x{9#*wt#800CVo<61Xbha zDKe7`zra&-4F!85JODp07+kgbt|K8Z3ZOQKE`Q+yRZ`7wbEMA#dmusySEQmZa8x%N z3G}uYb?uIlF`ZOzOW6-&*`oe6iZol2qPX_2)&HV>DU^}3kDYN+z1vY>ZxFG$B9>J1 zn;~i51`)Hl1QzXJP<_Zqprd2dnM%o+PO57tdu=RR)OAFWW=m2O*RG>_8tq$(urr%| zOH#vI_vt6VUWuR7f+y71cuT#8I~t`wrLy@}$`dNJ52bhuKHUxyJ2@%p(vduUa=7JQ z!wqZFdqC)DCrCmCQ@8Tg4(Tu}I6KY`Q(m?+EbQG7iPYNpfom99`%%4+n#a@ z*Hc!AwDy!ug|1zRn967u_l6qqJ!PjD(*SZ}ZFowCX;XWXv*D>|Ht>m^4SeKg15b;z zCi#rewMQeSGG2{Gd<}RTK8`UB1RE|E&?LWiHe4LpaHqB5R%gQ{BCScz61w(1Z^PU; z9SwLJZi_Ju1RJsfnsdDk*~o?-)`qUmhV?~SZP-BQ+T#&Z8C%5ZXu#XBYm8|i*s!uv zW@eQ)yK-1r8D?fbRO;yc?@Bu+zai3^%F{XiF!*v3hncjx$ zA{!pIHvG}qaJ@*Y4L1s1dkSJI=?@{d+Ubg}Y|cB2MppBY)bwu_1YM4%E?&Rb z$=f-+BIyFTJ@E5(B{hq9A#wnC!yNxF*C0~Ok(|i$>4tHR&+86MDL9co9lUcLUnlsB zVNLon@a8!_ZB1&P=45ygcnyxv$#7CL?GW%E0dIxlbMBkeaJ#|uO7Q;X_&UktdpYT^ zz+3J3BybA`14#|v{Ykf8m?Ycb=QF3>czSer*{6oPUZ#6O=s+jvRs_)BFOXG$>Ly1+ zW(;sUR=vqFIH~?@B-rPHEgd_DUFq_$;foHz+>0muHt=I0t$TMBZ*rqibf=KUX!ZGu zvkc!tL&Ds}C;d}#!X0hG+^Hws|CV)0Shvm4gp28FM_JZEZ4m=R6#MFRPV>p z?`bITh2#k>P5r`H3HnGaMeYrhZnbC)3S>tht01PwQNiy_Qe80$Dvm0t!cVm%2X>o| zV%kW_W~swYyZTY*l9Dp>8BBX89(t|5=n-S z%h&KZ{q)BOr*E~O>j6$l(xbzJ`8C|FGTjD3TRTBE8#|G)j$KE`-V3;MY|he>>I;~+ zqrsM(aAGDF!?9(OR?WSP()R%`aBQM}2N;cVhD2$ME_7_}f|P!>IN^>qVKW-|=C`d& z!n*y5CR|J>)!Y>+JsPUSu}fI48z8BIVmhhjH}TRpLBT*2nOuZ>!Z|awmY|Q+QsmxB z>5tZ=U~HryrpJ*_$G(9oy5C;P20s~>9N6tvifJPyo23prF@J|TXO+|`8RU}*s;6zJ z+s^GGdcBBlZ>Y+SID8K@eG|g>;O9H#EJI0#FM-x@3+(jc2*2qhIQHnExcx*jam7eM zZatm;9N{K+SXCU1R4{conMsDbJ=gGcnsf(*w|0VTFIk4LzXc_@t8ls(!Us7Cjz=y{ zGLsBn%BbOPzUk2jPj!MEpj?_{VhI?6)qF)VeFegbb$g4nHJlqNrxzl8H-1tEB$CWX zrf_8+fPX@m`%noei{Dk1W6<$ebEm7cxsxu7mzZ}&EY)A}8kwX=B^9rggHAG3Ag5}+ zf|B0c3Sf!#Ez&ke+`Km34dLGSNqQub40rym;Rk-wLlHjGfx0x!x2Don;7xLT5=o|^ z4mK`73gD#(yBI7H1rXYkcnF zl|B}DK~K#`Wr})gGBx@cCZ^fj6qXzJ|4Pp&PPn7dgt^C8dPQ-Nw0|nk)gdpfT zdTK2}+t~~^8B4#pCIw?71u^YsGu(D8z5P9QKy+%O{l7Vz%L z<5zQUwDdp0%deZzzVhqCCvUe#ORD+mdAfOn>lM4bL)!Mb+=@TFDZ+j56Jw%T{`s8c z+iv`P3M851QK8k`Z7qE%!Uc`T`!E|uDZh<@akBv)DZ6oILG51a_4wn9UPCecRcwXRZ_z*?xmak0c+v-c}+~Q}MX*r3gE#^Iv#hmORs-l?08b!>}EWnj;EX2HAdTBd!LlOa2!Czqt;2W?s%t)i)maV zP*putd4oKmk#yU;#^|JmTP39Lf&#wWA|)etaI54Q&uYFXlm4biJs+tRm3V1}sM0gi zKY&g$)Fh{xYay3zwFJ*S<0s15jV0CGg)cn;ywIe@Y&J4asLi?wUt@G($#S#4^aJap z_#oM3PZbx_Nj3NGOaBN}-XKqCB;BU3F*>Q?d$sB2OOu3e14-uPK6I5l_gc;OjM4`I z@mhu8gTkT`B}-K48R_AmlMFSt-yG2kD(I>zvoNA>iDVW<{9B{6Zj0#KBl?aC@q*(XaEc!n z(0ak2HK0jq02bGt>!qKG1vCKsN{>G;cv8F2b6&KZCq3ugSce9n<71D%7vmc6Uhsa5 zX@EtmUhsIic)^IMHft+iZfYdhs?`w6kY7GHU&?Wf8^Z9g5+DaU}P0VQ$NegarYrYudUS>G7wHf)S zD~%D6zQaVHrgOMNQTm98K2m5~N=HjTOXC<(#_>gyu0oQ?%r z4!OsitqY@axTSUAFN*lLwhk_RTV(g`VxE@O54NnnZEc@$ugoa$vn#wiMWbd+X)Vab zQHJjl3smNAp=(cusZ&PtC7YMUcITk)3ygL|=mUksacJv!){Gg{#?<}EWpq#*wm&T_ zrRA-XVz#yat~Ry+50r?tTR@W$A4ik(9Ot zx`#M;x(6gDoI0v1G0IR$r7@bqTlZ|ucN6j1a?whP$NKu0n0a?YL(a6pnMclSVyT&8 z3VBYp&TMC~i#;|UoJ))up8nbl$Nw<=4@)lfaPQqyP%uk#b*DVnLybJdDEymwW1mct z%L+w`7{Q+PBz}@yu5lK7wX;pHODu*zCuZ(xmNNq^P^_iSjIh`h-fX@B&O?3ovaC$9 z?}eFKyvlGiU*oC08K8RAH6rbrO}&PaE7jJUZBW&}uYV|lZckxT8H0BxgFvwKEh~1l zIXN*4vrSrS*k*r`Zk7Pv)kemmTYVaH42w2C%(K}_B$YG2vp~+&TIw2~d#gV=|Ib+8 zHFJQ^^BC(oH4!R~x4xB!Ky% z2n`JwwjuU0uSCqC=f)yENa}hKHrbXgU0cH_`_WIc>@h*gwq!l?2$|bW8A*2t-Jm)) z5wX;)5e4CqH<~egbMsVOmZA>~SI`>b!TI<69@JfC!R_+A-7W%h`g1XJDx+0Mh zZW!4+w_ycmN4`BKf^|K@5Rcv z**px&4Ab0vh&1cWQx*%^*wDtVGp|~#&b(_WY_#O-Yf~#%FIwv*m111YczMX1Y6iJK=f%lFa;UG0ns^;MJKH@JAk@tXQbFkYbxRQaL2( z)C7wiHdoXIRi)d1N|qr}@O%&59UEK1%&U18d+wSA5w_6WiO|jFTAa(j=lS}OcGgCm zYnA|*YaWyH^Ed}PO73{0eKm2)?DpTQ6$`UQVK9IXb5}m$CQcV^aCYva{{5cly zyH-u;ewv9|EXoT0mBpj}snQB`5`nTyZ7^u)XgT|dK(<(511oU62y}M>q0Bm2fjaY| z1%q}s#@;27|7!8jWwB?D+F2j8tk_L@dexuXsCDLtqC~c^QX4+cLaLml!4i!g4_a^@CK-Rr64o_fYoTC;r- zx6Z7zygKutr9v6H?0qNM``Y3qvKM;(;V8$Ap_rMX>1=`c9}?wxyz9hjwS7+G-w-K* zP_@6YS%e4MWY;xw#X9CnCg(~9Lq%KyGeU^{EDoJk9jtFne};V6Ir#8aXJTTY)2Ks) zW{=C)s@s%V!BakuIY=vxn>Z~vkfcP z9Rn?4&S(`f=$Lip9V>df`3tBp7YP}>DKEQ=5ei;dvR{e%`Igo%LtaAuf;CP`^I6QV z(>x+0b&^fys7|s1ef7mG7aCBED^Q zbkI;RU6hiuY`s=^KpSp1uy4usLcGADYKsC6}S)mAXL>CsKh@)oVhf+L_m{0Q^|W4 zaM_ohY6!$a2{ke&m>7)NNemuujd7WpX2Y>9osi^UNavS$a+e`jM9BSp!! zi^<@lG(?Zrq-$f>bk}Pv=X))dGs`{ox~D$y)R&f8V1Bd|^(`<>Y#lJP(6mHofyqX^ z#pW5xYmRR>zX6nKF_eQd-!GuTq0hx{v3z;XSntk#hh4}DrM z6iZ{FL-H^g?So>Bu5z?TdDNLxtm4pRSq88({?kO0`LdspO%S`2>0!QW-A^iGx*g1O zW}+L`gOg4`CMH8n9AmmP#q{K)9Kj(e88(Ne&Ws(2PI;rsN1YnQ%Vzyl;jY` zm0))awuG5?$LsWyrrr}a^VE)>+RajnO?yx#6y82oO`Z9z6}jCE1=TF=61skE&B)Fi z3i`>mSi!+m;%hS$#E#pTB-;*IJ8XNe*AvBpop-YGsmTen4}~cg$(;*l6R)9on0bR% zGV?zy*Kp2M*dkhN+JTBP>Y~({j#i}3?BJ=Mp4!(^7yI_y3rVn6WX)kH`jxvqq->;p zk=$idBd`&_CCt20Z_vD3mnkD>?z7Zl^C&6T&pc<@b>+&sLyfv&PcMP+HS>3*;7&gy>IdiF{LcipM>&z_{ zt26gl%GvRd4bRTYj=PjKU$kFyc0ytL z_sFPL?2xu$voHni)yhy=!atpbV-8*idU#vjEUJAInl;kVZ685j>S$Sew5pGb?+%hrlGoV<(W+G@~X#mF0^?36b z*MPr{YY}4_pygV?m$c<=X!E7d!X;ATHl<4i)q8cb1aR?A*NPeRj?4P#ZMk)*W>>+O zw))PHSW`|u33sV2J%)Fzm3F$HQJXeJ|F1fpZ94!}<7j$>($9%HM^nb$z+2tcCiuLl z(lUG@@`@LQu6-8fEBKvOYwbIp^S$M87*d%Zg<~~qz!&mQF{S~SX?^6{w&qHonQJ4X zuNCtqY5`xTg@fDiN@=3kOS#sbkNEna++7++(R>_!Xwr@?n8zH$ zmJ=VQX}jm%WB>V-1zaEXstwOI?}KU(f6a?{McbU&@Ev94Oe;^NEaen!ZNqh@tEYNf zD#4-GRPEpQ=58pvgb~WiXJ8i$X0<^}|Da`~(pmzWrNPD&AErgSEk9ssoNa-eIn7g5 zo;uo6YTrV0F~TmpS6i&k+~ldnmeQ=g3nS~ya?2~o%$Z5Nc+&P;zk-1uG@-A{&k(%6-i`zj_x4lwH3lu*S4>Lb1)XR{9^sxE8sIy1#$amDXy(SZ{C0xJ;;Xdp_LW!Y?EQrWRnWyh^{ z?G%^a@d^)5H%rQ(2{SE>)A3;{+BJMEGc60`%t@AVzJIn2V>;rgYdm$cr|!1YeA%tk zC9;zx%;9Y_A2FekmnkP_hIwj#PwinT+kx~)l-tdt&>URncJo|bI9w8(f!x}N_aI`O zdCQskqT#8*meSs3FKERoMnSxjZP;b{IFUN5K&sA5x%B20NZjHj;@cXF zk=sxb%zFqu&XSJ8A0ix@{8tG59kxiz)uji$*x==AD9&u}=;kb*tKl~6I-6>xPu}#! zh-aq>t+N**MIEe_wm`cqrEs)dfYT7rvXlE0R?`Q%tL<3u&!Cj~xTQswDRQ1i9&^Z( zid^rJcO23}7x$NXWaC!Jy=Iy7S?E8|-rF+sHvA{O{RN9HG;e`gXgcw;x3gk!5! zT*m*5vY~iNtbt3Q7d-`{e; z?Pddrr)NDs?RK-JQ146&dFx^I3`gACO&7txm=>I5d(?gxVB#dQAT=yi`6NPx1A;7q zj|lA_B8PE22qiVpI+Bb^Zdk!JZ{(6p?Gl%oXdH(9#ETL$UBMe+dPJ^07BNFoqDKcL zNEYcpp644np*zmDgn7Hww132f=zs-gR3tuIp0+EB{9#M1fB#9@p%I=2%R*=-LZNi$ zBXl$pgpq7?LF|dVNbezpBh=cKHtjnRx6bswT!XIT7-++Bj0;~L1)2aNT)q8m=9k9?`3Gq5CXH*rUXU`B$s`zH*byg=R6} zIp$7V&rZ;EXw?KlIkU_HS{Vz>ib!yQc{vKX>U!Jq>dY!nedDRr!m_q7Oe~HSc42p|~^FUd*&CRxk(Vgf?=t^{jmN8k-pYm-}ut{q<(|rx@pw; zqVJp{eQmtHOH1pM8D`Me-paos`s$1Hh5Rlqtq+snQu*EL3+DIXB7GshD@yCbyg2r` z9&oLG&_(x(T1Rk73LI+%IH?W@CpBlUE$X~RqdvH%sC?|~RTnkyf`X}jyQZi^VQ||o zB}YTpzlTOT0Z6|2eN`^bc@XCmE?<0nv3L+*x)-^0QBXk<7nOq?Z+k3Nx#$K-B*47C zWK+t&2Ff9ce-_&iQeqDCs`olDwnDQnsNOITaRvr38Y~fCo9Hyet20~JzS?yLyV!6+ zvqXktH{Fy$9E(Lqo5tgWa^XVrpRK7FY68H)<%^;`z-U}bMq(V1*8jRNt3_hGbKcpC z<@<93%4%qlf+z(FOk9(|pCK??1>&j=^~2H*8RH_Prmi&t{r+Ut%WzB^% z!*ebx%L?am&zW7enQ(sZIaikLAe{R==jyT^!uhl3TvN8UaNh8od1ZshnW*+&S2ltn z>>>^Ue2wQMklzbgO|l6dkA?G$$moKL2{^& zOGq9i@nBhYg-pS-Q~3C)o=Tb!6A*Sh6lkjt41A60hFO!L$POKH=cYpz6ij^Rf&;=}Z8 zvJ+I)o09>k=t46U^a3*@5_RqWBFn2YS6XV0;WbKpn88i1`p)I!>2KJLylF*(bN>_m z8A5dK5UT8peoT9zX8&gN9g3n;Bt$4y7R?bhx3={YRnHcwT4UrbZRB$$@&msv@^Xp1 z=$A#_)~5WEM85i$MRsQI{w<5|{9hJ%XPfdAi9G4oMZQ-ekNRbicd;pdC6N#Mb&+?5 z@70;T)+KWAAojH()T+q4Lbpvp}BkjXm7-jP6`NZkhQ* zJ|Am;CqhCh`CiLZLLwYlHbJ9?iKXW@VpM$X%g1u^rI|gs66Qlk@z|cRb#yrrus0Ff z`Yx)(v>-fOzu20Twohe3ah|-S6h^Qektf90hQM2PZr5`4RF%!B6-& z#eP;rYLBzUDVC1>XJ6=_T;fI^z!@Q3-sdlzZ=P0{JLe5e4 zB@frP7AoN=-!yyVr~hF`=?sPcp`)B)RfM9CdK@~+6>CppogL)^=$dPeMH#KtQGO1| zuH8|(pb&~2Wisp0Y$qSpOxM6IrdozPCV&^uwksnwamqk6;xYGj&I@S0=DZq z!KYyvClxZP3ZslIWQ;3hoa}YXH(y@i3`&ybmNcigz>E3lxcIRt9)ZHNlC3E|%vmko z66v89$eG_-O7m7{jSY}Pmc!>@?YG~K}%*4gqUlEHBv#Le6G^PJ!0q0yV+HjqD+f%D76^6s}Q0TlUD)Qcc zw3sVu|Hr-e&roYi^HX0EC0s`Rt~DyqO8@Ak^Sn2(3zVG3Vp1)`gO;C4YYFTEEhW77 z6lk;FyEcDK!C$p=oh#{@FctG0%nSC`QOGrf z4whGEI$3Itxy<$pF0L8bbn8mCqIwHB^>;>s3(b89Ikn3yQfF3p>NQXO%~M}^YPF{- zQTjaQ8-AA19c~OXi(9-}Zm=N1ZxZUcR15t>i#;o7^8a89b#p^hu{CNulBhEqSbIyf z4Xwe2BDTF1b4Ap%bhM~pz9aGa6~r4>I$nvU_#NW^nt=o*&u@>p!`^I8;07Ow8}Qp> zJZ2kyy38F;EOmp)8GgTv#}d=wYNdD%BK3wJ8_b#AEsD9ZrIr|e$j}{4ERnjS-tc3F zIn&a|FqR7awZ7#|&x!5d!0Leg3(%HwrnLP|Yz_8f8Yf5UhIO^y4XMA({xBbyb0Izj z2BTSxcrjp&Qvk>eOE(+Y6#qj~mA&v+IF$_@a;b~wiT?71nXK2WqO*FXh3~9_i0!Nb zXz@~XL;-mZbJ-aY5nBC#OM_8uw-xDIC1?JQ!+Zig2OcMz(WGBN zY7=l@XPj(BGnHNkx<^w#?VOgq5xgn*CjFW602{UxpMdrJ^xqKid;DYq!EXrauFGYg zlBu5tw6oG(T5$hIcTCdR7CL&fo^L3-=u8+g_Tq4an}0dRaL>?|v#OnOyS#L6!G(|X ztQ)55w7N?RK89|aRac+5g53n1Z~g|0-Ow*n2VS@h$$PypEi2%nep8{`~c9{}xY+IUOvRGp#KZQdu9*w_4xCA76InRq1wC z4gon#{}!8~5^|>J4a%5rI{Sja2SJpXlx>vi)s|xXswI!v=2$$flcF_W(h}4wZqS4So@1FIRP|y}AZ7$!Viz9Oh?S zm!4;tZm66U2`w;lqL3RZ=UZN#xx-TP&4H2J2C6+V>ouFwp5DyQF!Gpf_!UQYI5C;( z@l%dGmKc8c(jD7 zi9)YSA0~8X;DTf*j21`Do9dnM zGroWqA;AM1^WF9AP}!%@d0|b6?fn<2IsbjwI~*-{^=;P#0)HR8XoHSO8qztw+VYx*s0 z|F81jqu{@7QS+t!cZUcG9@v=wzGg4A_xi>DdyaQFdQkA+z8ic04I{}q+!%$N|1Pq;I`aohHR8YXntr?Cf2;q_Yr15k z|1$r*5B~cij4tiJ|A>&a`|mvKzkB>*|84Faj&2tG*Zju&ZxFHm8yNP2VN>tFExfu0 z`7*HcUH+Ta@ZUDSSC;eNO>CIl1!l`A#LN#eb{+-d6c7Z2zzF z-ue>T*U+`j zR`OMf38&zh_*U{!3T3yJC=;g~pO{RBn^frPVVey1r%<}BepCZnaJ(3%?x}MvHP>7WYLS`4FgAs->^X+bJU-08%)?vJ@CFNDD^gEg>#55u<*Z$9 z!*%9qPrd4?_dWHgrL^A|gOuvb_m)?1(|a1s3dnt?Y|ANn1kuf`vyn`tEaSDDINrOw~$jG@qo`6w_` zh@S3Dk_W^K&4I1rM;hI20Wb7^WhUzDd#;VrKkjwu-YsL8JTgCY_KlP}O z<5X0eCr(1aBoCS%z4@=ly|!tXdH;gm0lS#wA>qh(4k7X|J_kJ|DZh~j4{Z#~Bv8KO z@qLAfRqXiL6Y|QJ9I`DPjgOu12o!|BwM>N|y!0FqF2^GaJkXI?D!D&Tvs+3m|5HQb z+WA4)_$Yt!q3vkON0y&6Z+PlCOEnmNyg5E9R$xK@0?Vv7XMn0Vr{dgT_<`y8sJIQH zt*mIyq&)SF6?8qwMiyx>tnB!xI3FtRw@loK_tbn#ITcUXaPYN*)KlE!>TFSUc$ zCVpMb)Qhj?Ok;i;MmPFtIJB5J3MA!!+;T782-~Hw-9GS_omoZvo-~hob0VmEb0p3= zbCBgaPpYwD+~~78(O5}>Z%OaD6BYHeK+g2F)N*4Ag%{$EqL=IBsScJ3OZ$BHXh-Ok zkpvkDIbCrQlWs8lK6iYiYRYnEOKT^t5-e43T7t?MW5W%GUj~m4akytJv)(KRg^x4f zteIbK_$~7I=nQ9@>E+K7`AIl0H|rNl!qEnJ$=)K_73T)Sudc_3bOX)2=ud#_%~v?D zr9-Tj4l!qbWoNiH2P^6bxi1y!#P^5dV<98U^B%Dyzx?5xJYGlompo#ZlSk|r3pFT@ z0X6=Joj>{l(E3z^}wmn*X6|4B*G6?TZoxG`}cZG=R7MEmPGa4B&r&-WEOG04|@? zg@_x#iSSUDaRc~u1B8jz7e75tUip&sJG0T0cyN5F$++QJV`Bi{SA;k91Gu9wfXAAf zxd?x%XYzx57#n$x+|Y<`=g^}l?@ zMO|4Ehgg2j9N?+FEY)CMy){3UwA}Vyu&Jkhw1N%h=)x#0k$IMh%~w5juBBXdZn5G2 ztrD?0S!zDAR=cc~Kf7@^7R4^ND+dFfrRq%wP&w1WhVepTL0suiU$e}5vjP;haW?wFcSLIt9+cC#F=ix%ZqA?1GuZDda0$HS;rcxH>{zYS;yL`m)gmhUs*Gl)WRck zrZGPa!`d1K@E>s?q^(am zZ5Y6RlDcl=-Ec!oEjKIeG|dZR0RPzXP==oR(o*>Y_-D}D_y9iKn&fqJ0Kd*MbLKKj z)tmD{<;>|e++f;T%0(21`>hx61*+ccgtK$D7aE+X{&N6t;^n^sT5mqZdAYf?P!f*z znB~=*B_eqn&JAY20!irx&hes?MRcr)uCYU`mku#!er0F4HU}%}2-iA*$4?%!xHy3G z$z2|6fAYAA3MQ#LFlo0>8?XK8<0Qk^Z>qOA1_St^7)lGSz`Ld@X1W19pN_7;yQTCB zyygHjm-HBDxdK1w?hm*UTPPoM%qdB#XOr_V8wNd*^Z-l?bofv0*+j3lA2eIqt8QlG zHhUdu=G_Zjd-rw2zq@|d)$H=#W;nF+xJobRd*gGM8Z|tKHAp3r-}Q1!-R1qw`>=q= zd~>}mVusu!hvoa4>ASIw-|fr)DNj9QsU@bWMAUAt<;)Z>Tj!}6UbexEx{ry4qkI5{ zr7JBnXD;&8nU-oW>lZ|+n2hJ{hI_&Op4!t#dC1NoTsjrQ5M{Mx;*oAo{moLY%WCRX zv_av=N5ufB*uye0NO`K0rJRcXHeA#S^szp-bppiSiK=AZi(h z8D3XKjKe)+j-e07NBN;<^6p%mKOI2%R{||Iryzg_=jp2EU}y3LHfsJ0NA7XNRIeuc zLs8xfN3+e#cZ9^6S`r?8v-u|gn_Rv5Sf%Ee<+fm5BxLSJQTlfPIrEl-i!b)d4>RlS zL5Fk~d-Za$we}1E zd^0K<oc=-{)k(J?2_e+ZOMFpu_G zci(Bq^BpSq1%9)Z^|Mkw<7P!`T0<-4BWqqqE9D>mFRgakn?w0^KRa)^qZ#WCNBP-k z_I#y~$FE!SShrUTGaWE3s=0n|%y))kzA+ZR)0ifwCz#_*NmA#f$xJd+AUI3LBy&LX zayxKQ^f5aDG4qbw-`}o3z;8Em24&10&Fza9_cUjihu(f0gg7^-+5w`LFB{nV_yfHX z%NXPnwv54r5(hQcO)A_VYlbwx(2jgI%Fx0n2R9E>sAP%S#`8v&Gy|GHxHsEkD+?|$ z;}#T)rM|-jhUG6Y!%9g^%b8JuKi|Zut?yDB)O`DW8c)rMHJ+N6$WLvK>1XGY&UAB0 z^G_wEqb-1Gn5FXPlC5ow)P?D%CBnLop)Ts$$IvjGbI#4-ylmE4a%T~r()#wya_29{ z?(62h<_uqxb4>j49GYvUHQyJKxT`fwtqT9Qb*iTNZlhHfdHP|1r_OT9v+3Fdbww%XH@tvTzc4OX>1#&$|KCi1F3W$0QjVhgNv7`vGi~W zB=PvYU7W5rT&7-8FS(!<_^ndG?^#7ds0#(8R_rDo^dym3n860-R2O-}CKFwJlWXLjBl9It>&5AH4w z-etv26OHEXj{kS(0~m$H&6bgS*31>OS1;y!&u2 z)>`ky&Ca_Q=cBFdeq3>0@mWOchqLqUR(h3OdRWsP%Tg*Ey?fc{(nIV&ELJQ%?1f=s zU45q^&v&Tc7x>Lu?);VV8MpMXrn`Tod}Pgc089DD|4a928(DgYZ`AnVol6h@+1;9T z+ixW^k4q1e`(yI)JRI&r{A5_;G{!AGkeOswhoy(5&EJl0uFNi@!{KUg-jc)p(!)}J zL8D6#o3yY?51Y48X?H1kBjVVlhxV0zjE4#(9xhyZSXQ|7u-r#E zU95hjIcHk)&Eam$LddT=+~2(G!EA;nT5yS35!Md87}o(-TK*E#P)Y*p0FMNIeroQ@ zz&z0W#x%WPd8oE zwGW?RB&#=Gdfrkh_sDR{y=!@4ie70GUX4<~rwT0|&Eef7a}!aJz0}GF4H?VXO9aY_ z1v*-RV??0469@y$E>@tSkl8z(}$&C#ZQQ=B~QfnA^` zT5Y;9XsPsCN{DO4eH5g(@X~o{26llGsipi~rCM7@FM<3=NG)|<5BP(4{zLlC$9l}M6V1B-6Z)WzHx5v(>7>u-~gr-F>stFL(Qx<}PVkri{7T3ogg~&$qc`Qv>yGn%DfyIezm;g`5mw{@Uwtp-;{ZeKJ4v zNeg_!U)cDy|0HP|)i?j^kKQ*7=o5e6R|UlCGs%0|Ne)RNxooRtjV4d}4LY+=6Q)is zBWSQ|Ecq~{!iIbdM1APeSMy*}?|OS)N;jPqwvTbIUdVZHrT^e^`{#+P+Y(ndCa%8g zUwH+3oBg1F&&+POAEP_(2`x(SpWJA_L|5zWH|bwz_41|b?SHAO)}?f2=mw_aos>Ni zR|Ea4_4ZJ@;;)QepLP-*c(mOMh#b7_CfjUr{^@{Eqbc zw6T%W{si}P=dt#|xags@aS@}Wj#3^<8xyIg`UpjI@XvJjIG-h$cJO-u#Y zKZMnyzdw;(tL#MY`-Vi#sPUd#|5FH{|GuY>u&0ucVFYlDLP(4uk{$d}J_ppnAL>85 zToH$K@RLm~ckoj?_Q7Vx@Q(ePigAXHeUdqM?2~P6dS^a~#hrN`Po^H59P~Ntv)q?e z@#2@10h;Q)bnHvY^xjvXn0>apW(tQV?)C;~8G2u(>h@l5^XDs5|Lk*Idn)U`yZ?aZ z;{B^2^X>27C*SY=ldM$uv60bo~_26C*{jIVGCa#A1 zSILOw?a2=(c+;lpCGmE$O4;py44m5Wbo}(YWJAiEn}?BBOq|lYA*qcfOEz>L)V^3h+asqgQBY1-Qy?@b9&P zBc`cuFoWbcY&!E;iD`JQA^pJ8fXtrlE+$HPtI^7Q`K?CpR&|l0y5WJPv)$j%U{<4i z2B8O*{#{8d-GQa|DYeWGES;Nz*XyTPfY+}EXtHzcY- zA0O4dfQ$ATT(lHK)HmayQR<)F;J)=WE{k#g1Dc!hudYwq@Ww>3QTACRBJI88_4Z}I zOl7FB>g$>1I{(4tc5CA5d;Zl1`?Qpm)IrM``_`|C|K;{f{~7J(39ufr&(c(nU3$4a zFQGM$!1(VWx$EW^KU8lrFIR6dJsi2&h8AuAn1edoMw>IpG?i`Ur=}Tirz~$)5nFA> z&})LQtu{YYTWu=aY*OFg<-E=2WVI?q6~6lCdYeb$secsY&(7kwx;7CmJQ(Lcsu9gC`XuvYkl#-HY16I$>~i~^ z0P7+9c1?8-@&^-I^UMJMJtX&rQ;_pcfy`UNf2g*E(+)$zQ&-66yct{%@{m4zgL~y{j;(U-vp2Y>%whe@pwGU4tExhY ze`vbkjt15}Yp>=ZWn$@iHCHONvh`|$wKQE$`I5rV+NgEv8t64NvhL^l55Vwl zL(L%yr4YlrOA99uRz-}U0r!?`#n29eS zCr54P)3DCR2u5qS6VWRBHf^+aS9tf_AEy69(LLtlCFh<7`6aT-{vGDQqc8} zJ0$^H2H&Sn#D#r7j)bL)-zyN`;NH3*yyye84C4C-j%Y1*(Wlnj#4Cf@?rTc_pkIM% zE>8%gM^2C|Xc~0tMd6VXpk;`hp#9DiIpm?_2%_Ow+xjNS^hXf%b1I)Wm_*<`2eZOJK_~J5P79y5Y78k=B@y@}qW2RFTeC9!sJCtHORuC-H6(_~)+Js3h|4T% zx`%$McPLZhg&C>8jJVYCVwiODWHIqube5FTFsW$$&%=IT(a+)jrG2DZw}^{tmtT93 z%k3i)SHluldnK;A`d7(jB4D-3{-XbEm3@kTl~igGd6@m4REq9SPP$UnkyrCsF*j-WdS?TkorbR2RJUzETHVmjK+NM&KuqysOleJt(1)57<=)?4|<- z>ww*Lz#ckaPaQBs2kfN-_D%pioey7@c$NO?YIaz%DE(LI`&Ks+m?oT;dXw_LLHku} zuhRFgmao$Jg?Z!RM3qXZocxk~6@0=pw}n1=DD=sTp-0mK9F(`pA@Q z#foJ?A4U0vUd-Lgc_#U1UtfJ1y?&zCasC53-7;}CH*qyBaWyeSLiL3n* zSG)UHUKPCEzKrf~vse32Rwa02c7qSQ(Y}?g*4sa$f2r~=q%YU0tCmIU?Z?$s8(nQx zS6k@nRS%D@-uCb=UT=Ts;a$ASj^F2*yUOmHxZ17lgE>x_~r<)O5V z>*{G%3Aa}NuCNlsf{eSXf3lLjWx60^En%B1$T(2p$raZ_*l_xry@L5#&upr|Zg%EK;#$cs?&I>YV(VqGXUy!j-F%DUf!K3kHmoQ{Oh8nUbvAhKtU^UNe z)qTFfMO&cNJn6d|f?8tVUcD?$O8Q=k04;UhQ2Jhq1V;MWp_|jHTYzN$sQN7>t-zH# z#I_$-pY_dD4;IWexOnEC>fJ73X?V<=oJ^qiCLO(a2I{||`o*%=|K92wzf~swPyHHr z5E%A-)n{GG`s4YY04>9)J$25+>}%lB*6gRxIs}T@_gC+BS()e$x68u+)D?ToZ)g1

    $glf*PfFXv9mXul`x^`URH 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

    mrZ)e#HaqKG)yZ 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%0D|>Kh4v+7m~M1UOezJa_%Rq%D+tG z)Ryl|-XQR^HANwWnJ@TTd-U_D|P~89Ehsim2jt#tuoc(fg;0@*Mm*#=Dk+Ux@54?w* z{W3yM{oEtxx$L39AD44}JsbFoa{9)yz*oq*-(DN|207QeTh4VAn3L@r%)e;hCFRV& zV&K)~%)egXjpfY0qr7|C*InfFtNwEO$xU+l$pdo6e?-psGv$o`yqxhrl=n{a|3rR! z@?Ye{?~xOK)ZFYk5?@|EB#mDq@RQ|?-&+1)I%hAH&rRM{&c5y~Uy=IHNcq!goO|Vr zKUvQB)8vf5SkCxw${By9oblJm8UJTF=g4k3^>e^;+4Y*2)}^SN^W`Wx=SX=u_0~|n zFpb|-&i!FaIpbd}r_TQ;XP!69xj!Ev=YH%SIp@oRa-RDhlhYqwku#q+-D@%PC4r*S3+K26T}ugbfpao&;lOa8T-pSxXtYl=T~Ufw^yxIbk4QgX(xC-0TU zX)Gtcr=0lya^lCxng0Yi`I#plkmmD>{MO`O%ZcAEC;q_sdH?((KR2gwiphzuD<{5@ zocIp^@pk|Gq}+d8C2yYoS)afM$S+Uv!vh~Jzklxq{{8DIc~0~4o(+6q;IGMRrhz^P ze674`ivKF`ZSs~W{a<}H=iN&jGZ z;H%}V%f`UJm6Ok(1K%wtp9e0;O^mw2i^<7n*}yBy$_R+a=>bZ;jsFb%}a{9>) zf!``;{D`dhQr_7x~F4KYatgLC*Y#2R>TP{HM#A|6DooivnLJr+zlb8Goys`27}U*Q`HW0{;NRCX>hHgbpOgE+cPqYsn$LJSKX*zn&OF7F zw^!uk?QJ>r`JtToeLR5|fy$Qi$r zocM0?&r^PGlhYsWlr#S0a^jzn(@)-#6aRsHXPVEafqx}u{Jh24d@_DPIrA?kC%&qj z_@?ro^K!o~kTahi@+0>y^xwbwE&k`f@>qAqA0;P#th`(rXTF^H#d6};$&XIsY?PNz zzFSUwfhBqW{Ms9~_grB7lOI+wH~td&!ees&mOSs+oUac2GkKj9za{YR^^D{|`pZ8`P-q5ShS{%3)IE&n>je;@d-^50T?{@1egh8L1k zpOxgFr#h@5r{3zz>BFbXHy@ju$N6&Vt*xB;=`5#yy347bYvohQ=YH-$IrVe9yim&9 z-E!7Y-%d$H=LN zg4>u+sdh*Yvt6> zKsnDfBLlxzPXC`A_%u2BnG^T|Irq1(2fkd+^?oDgx^~K$|6hUc_hz;pn18XrkCZe2 z3V|OlXa3FPgHxYxDSs$=NBP3kSG&kpCLbba{E>3TA1`P8hvkgFP(D1(^ELUn*VyML2{n2C&-!qqjKi|jGXzuAZPxs%9;N=a_0ZBocXVpGylKj%zwYPv-^?x7nL*r zl5*x>LC*Y-moxu*a^~My&ip&b+oU?YO5QJdKRNsEM)|Z9f4iLPy<5)pPLgxIQ|0XI zCGyA8&wWeId^XE#ratqXyg~8<(+h3(?}f>W$=fBbF25%ENph~Yh5UgO-(EgD`L*)L zlMj@Wp9kb`rTffBw|CaK3hP-H+&joVsi!PG)O83wGH_91*n4IxP$r=AiIpfckGyY3*#(!1L z_@B#p54=fEfA~R8fA~$#e%yC?cD?8ih2_-q5%MW1pGV87t5f9lQh#V7r*AixvrpT| z=}Ud&^!WjD-Y489=Xvl>IoCB#&ikl`E|w%UzmK8ocJAb;tRc(&Hs66oI~Zr*OL?9SWbLLd4tsVy2$A>x5ub1<4x5zuD_=Dfi=9BS@%Nf6p{Mn6bG_^3#BY%kzuyPh{9K&IKS)k|Z8`Dv<;1s>m#vuld7b1vllKg~zx?(} zxp4*sK3qOB#or(JBzgJjx$&O}e3txwDSkoVOXZDf=f+Q&gdCgQmfe)8o zSt}PmCh!UJ6)FCSz-P&epO71WLEuZ}tyBE_fqyI?m*O`D{;mA`6#rY``BrA@iux=Z z_+j$SsXmVlyo#K9K2uITH#4r#^cI-d|2Xxi#=RtEjRx^1K)R5wtgxcpZohm0zX1df2a`n@$%DB zf2bRHBl+$We{SHdPM;Ygr=Luc(>JEdzexRImV8_Cd2;&6QaOF&ZTU~BpRAVC2R@VknD+11 zz<-eclH&iAv#<9}zd?ZeDE4m=Is3GPoc&l{&c3TAXMfd|vyU3dsq^#X)Ol+;_1s5J zJr9sm&qD*hOHMtH5By;{^*mipJuc`Z5hTu)9tpDCxFo6D)^_JMbnS55bm zSIepYYvt7cU^(?aLQehPANV9W`{IefXUW+w@5tFNE9LB$F9P2zXTR(W{C7F~rNGD8 z`eDBuEPpHQmy&Y!%Q15HOEo$BrH-8a(ojAl_3ftemy)-Xv%fBupO)?quaY-OevN!Y z@&WSvsm~9V7fXJp{IKNr$=TNr1^&34eLW}e1#+&(_xpldGdh(Cu?DzF@_WL&Z zwDjEilYCC{J#zZP{%f;!NPjpq@KSR6Lq$3Lp}L&@aEhG%&_qsuI6v^Va{5E(z`M)o z55wg2hf#9+!-T*emD3+)1pb_y{;*h1e|S^gIrWE?a{9wMIsIXioc^#wPJj4K&VJAL zNw$7CPYcW0?}y2+N&Ee1Is3hmoPB+QoPB+Yoc()N;OEQPzwPDh$If#0<27>j2F7 zq23OVv%cl!tZy|r>wB`ia$3iR@=eK`$yu+Ka`M?hPCl=alg~bK@;N|GK5vtg&pYMp z_i=La`H-A^z9{G1Tp}mW@5a%woco7s<@CdWa_%2)mvjGcx19TjiE{2ArpUQ} zm?`J};dwdt4~ym8KfEdD{$Zt@`dKIEeqfWF^L>Y$^ZhqD^^-6C25sI)ab6deQxAv9 zIZtcIsfUy0)I$?F_0UYt^JW`4_0U01J#>>(4}Ij+!%cFYH*b^kyg6D<{fv|Iy!oh{ z`guyu^X7AM>Sv*x=gl|d)YW@(`qd|L>g`K8^|oEk^W!c#&yRUuWcwBMSx`=W9xA6k zOUeIzzLQg*)#dc7bL7-#3pw?9shs+}QqKFs-g4^mdO7tuL{5E;K3hMmS7ABpb%dPtI$F->7ggk} z*9r17(*5~qa@OliIiFu#DChHwc5>GD3OVcBQ_klX*U4GmL2^Eim>?&gkIKpCOgZ^{ zUj9jyynlWzk#9-}gvYh?WP|p3^x$<%8Il7hn@#L2U-c|lwitiWrjdJb}hs)W&qvh=1r{yoD z=g>KF>TQvndRrzheOzw+J`DU5`M4DSb>Q3O)a`F_>Nek(+4`ZMA0($g94_bn;h4aW zlfReVZ`TR@RQcQK{ngolUnu`D#a|Nm6>{z$ddu05*UQ3_XFbse@M># z#?yh%k+Xkama~6fmv>L^A3l(CKeJZOe*ap|e%~%1Th4y3FK54BBxk>0CTG9*l(XOa%elY0McyO5XTDwDIPLd)1D_~ozdtT# zzds{qzb}xp-scXFulKoUJ$Z;{kH^V+A?;@pw7=vA&%Bc)Gl8+FvaKZ!hP5=E}gYma~s; z419>3{WU7^v2yD3F*)@)UCz1oV&F^UoOkaAzDiC#e;N2Ua_V`PoO=FCPCXaglC2-S zh@A7TOyCve3)1sQt-$Na*)L7y?3WAV?3WI5_RCdr&bvN=50G;X4i9{^{FU_lG9mCs zw%2}@uTP5J*T@cq8Y*2B&eUnKAna@MP&ob{?MXT469vtDP&S+ACI*6U(9 z>(x!pdi9aBUW4SU*Kj%OHC4Vit=9}W>orf#dc7j&^MbeKydU^ben$Gd;4?Yz2fmi` zdBOK`J}>xH&i!-#Z?kp6eQY5)pBEIDQx9e2d|psbPCgsU$>;fU^4V5SeO@7FK0W2s z=KwkNIap48j*?TKW98K66glcon`L1fY>wQ*U@c5j+E8jQyDml;l-^)v+&kcW- zADcY?j%@z%Lh|ENeDT1`$a#NQU(W9{JzZWXjemaNZRL#LSI+g`ASeEQ`P_8hGD*HJ z`4fT9lJh+KvYd5)UCzE(DQ6wm$?2b4Q3O)aM^^>NEfM*?OQpi^{3bl5*;^lAQXiA*Vi13;awu z^?9M3`fMksKD)@N&t7usbD*6194hDi#=UatbE2I3d{Rz*&X!Z3i{#YjGCA)bRt5g4 zoc9mk1in*F{pbCVtrP0Mpq%=zD1RyS)#~!sk~fi4=gs7Ar26k9ClB4^@1}h{TF!jN z$(hd_`QkLs1#;p)mlMB9PW(PQv-$injenq=&pQqeytJJCURBP1uPtZ4HuTa_TMbr)-^2Zw2Ml zTSfUF^k@0Lm2=}ZkyBUAYHC;oFe@tfqt@3SkL z&oXKJ1LY?qKU~iDB}&UX)X0rnSI+p2 zenp!9P&xbME;*kcJt60MXUQwGj)53P4boc>u=PXDYeXWbjfS;w>F^xGD4K4)()=kv#F#<+`P?QapFhd@eJJ^U$<_~kfSml7mtULm zUrkOvPnMI#t$`Mga|KJS#1pU35or~Eu4r#@el zlbVoMlbHXLY&|gl1Le&Ba5?iYEoc6f<;=gPocY(6Gyl`& z%)g_2LCSv@`PSrp<;>>>`B$k=-Y;jIN%HM!{3imRB`2Q?v`ioZ1QE9Em%d_OtQYd6aIe$+5IeSVaj=eq~wJl{Pc z=lO2Bocq$ba-K()$a(&HOV0DxDml+zpUVGz{}%X8InQec{qcX-&*5_Ftz6($<G$=tZ#2Q>wCSN^&KK-eMic94jmi#WI6RPT~0mBl~WIk z=#cXGZz_Iu#_{F$vQ>aDE2bLvZ#<@BrCf!CK)Z|BIVw-$2x z)n$QqmD8{K1%9KPdLALCp6`)U&kxF}=f~vK^D}bl`2{)kyhKhtza^(WKax|QU&yJ? zZ{*bHPC4~fhkAPe7(RM%c-9W#9Q$I`P)X)2J>gQuQ^|MJ%{p^raKYz-ppM7^{ z>xB9_R!;p?kzb$c>O?vDKTS?P&z3X)3+2qer+i*om;Q3{KUmKABjk)fP0si;<*%im zJ3sKna;|r|ocXMlPdFjB9_s_&B4_^l?a8j=%W0km$(er@Iq@gRiEl1v{%z#Ur=Oho z8|7T@u)s&j8UJZH2`pNxru6L4rdOBa8 z4t$QB^XTQkUzd~5m2&dAPEJ0z%E{*sa`L%HPCoa~mtA-AdAOW>mX?#x`to;D-JUMz zdRxf3-u7~?x2v4%?JeheZfsJK^)N53kEv-{o@VzgEutH^`a)UvkFZFMoD@sh=W&mylCG)#S{l zj-2|rK>lZ{^NZxv&sBk6Bd2}_1U^_!{fw4VKjY-&ZK|Alm?5Vg7RafGrE=qvYdIq?<;;Jyoa=o` zeoV^SvvRKY6*<@YhMenNE$4balXJb_%DLVj#k{j%%J{7cGt{;d>v4LSSel)#(F z$9CkCHQfc{%G_L(cdo z%UR!+@`0(YE|#;t-2(3;XMJx9{5Co3J4R0aC&oZ~Q)mgXO$uK1$Aer1Em=wu$_QbiK{w%%`24`E-(hn!dl+EAZ>& z>r?!#f!`tLddJJT-iPH}@5^$o_jUR1l!y1_T<^zn=D$(Se7==4p8|!l>-%!b!@+W{ zx0Iam%gGtPk(}|*mcN^RZmYmAk#oJ>AAocVt*XFdlN&aM~nhs(L%vVm8YGya)!#%V4mzMGu7?IUOZj+W<7zt41>ym0b` za^hc;6Td-TFpaZSPW&MUW%Eh=5pv?|$PY^6pDO2iFP0Ze@t4a>B_AOt{vJ8;Gv!C5 zah{hGzfMm4Mmh0$2WRuc_Z|z%`SSx04ZM_`?`c;Iytzki{tymjg)L*zZv?_VA%=X+e^*t1)pQGguC9fi1pZo;*_sN^f8K;eWN{a6kcsDuu=`SZgH_4gj zaQUwEb4Sa`=L9+Vd{j<87s~sm@n4fO|M%p~|06l``BKh&zL7JZ{fcDQw*a4?%K5%Q z2|0hxa9KIu!#q{a_-Du&|1vq_ca<~#5P9=7|B-Uyr^&BQ?=fb|=`-)hZ%Oeh<;4FW zADZHSlaES%bkS`7iLWFl{tWpYX`J)q#P^dEf1{lE@$%7W{D2l)d%86eg z|0VtTKWpS2)9<_7DJTASd7%`)-{IMO;s?o3O7X|Z8NZgC`81ak-$qV+r~mi?e}6<> zIyb$%8~)>azn8)|x5^pkuK)PnamMC8?#`R`AKyF9?Ap11FjKxE`TW2a%f~j)jq{nD z@xPXzSSJ_%ec->!OPrL8&tE*dUU(sSl@wnx@MGk)Q+&0+>&RC$$jzro;LYUQQhb}h zJILEM%#GhO@c!}{DSlAk!{w(o$&G)1;FIM4OYu(xK1)9I^xXI_2mZQz`bn$wNZ?1v3!ax7|JcB*$eX12x`8*64^8ps2Hr|O zHN|%hyt{l;ioZ7SfpYfyL^=C?ik$sEGw|o-*PfWm=c|FgBc~6n3H)<8^|>wZpX8HM zJ?{y8{}S2ynVRakSl~y>sprap*OXJw^#ea$PCd5>yuG~Exw-sb8Ti%mdMW<;z;BVW zUq%LgublnzNZ?P(*)MYge@V`Mc`NV_&J=f%Sr}OJN`6SLYIp^ISa?Z6e@-x!;HAzk% zm@5A=?cdpf&zEmX@vq9+*YC*LzaPojr(ej~FW<`97eC6W|2=Z*eE%b}bx1vzlT)8n z<<#fNfj5*>pXUYMT26g-l2f1E4?#`rZ-v7&+_sP~eZtS>HKFD$37N(O$6oO(Mx@Dt_q&z5rP^I|#m*(LB^a_aMj zz;BgPpQGf|=UDkWb#v$GBXauZlk%FW@6DCdKVOp550}Y*Z=CzNE98YzKU^!Pe{PW9 zlj66@$0q+t{#o)p@+;DP)c!|h>#AS!V)AQ~A1Prjpya`fhBVK zz*}a&ac^W&aao{)c@;p>iomNKao@an*!e< z=e+nsÜ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

    CG~9j6z}?3z+{bSY?&CKP_wieT`{z~4aL1{@ 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 DAUt1!`*{El2NOR? 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 z z;2+58pPvT)m7Mz&VFnlXFr}MZY%3Vf`b z`g}xAea@6~uDuZWQaR_{JAtp3Q_o)n{*9b^-Yut||CCeD1-E4D2QMP$yekuUMft+? zJW?z0`f~P5GdcU^d^!82qn!P6rJVDwZ{P#uoP)yyA1!}5J-CssxD`}PLZ=-r^{KdR&v(sB01~TUCw&-m9t)h z~8W997kX>#`alXCX^d^!95 zWjXu(9Xb1bwVeIFQO+LJw zmEs4;e@;F;@X>Pe^MrhNwcPbSBQJP-&fk&mn|!sL=l$>HCDP}HzsQeGo_|L+|9Bz! z@hQG|;AP~zKWrf9_nDq1FO-SaQ+vU{f?{exh|M%H?pgxPrsn3#f>a&uZ`m7nmFQ-1c z%Bj!Za_V!SocbIp=l#aLa_V!UocerRPJPaiQ=g0F)aPc60z`mZQ|G4<8z@>i2Ll~d=<<*%pu?<^+|-R1A3eLY&ve8$O{&s_PEG|z={ z;y;rUzgbTFK0CAd{4tGxpq$S;4iCJvoc&%^&VH{gXTLX*v)|8_v)?b2v)?b3v)_Bl z*}whd?BBt1_U{Ne`*)n2{rixd^JSKt{rjw({ku%g{(Vc%{{2YK{@oyFfBhw=9t!-J ztrO~@Xy7H~Z>0TFDexL{>gQBB^>c=t`e`kvelC_%KRx8s&oy%DXP}(=87ilK?v+zN z6Xn#;<8ta}j-39#IPm3i>TR{0diz99y?rC6-ge5Vx4d21I-%YQ%Bi=C^55yt@_j4k z#%(I6uA0l&(Vykyt-GB3jFvN>adPG}SDu&Vxlm60XL8~<%ZcA-cQ&78()b6;Pe^{a zobOANmUpa?8@HaE@f*we{U+zg`P{a(oZsKkNzV6Dy2|-H_Zm6-@do+jY5qgy?3cUb ze17zpoa>z}ugp3IzD!R3SIWu%S~>aODJRdr$@%`kem`aFfqr<9oX;yu$Y-VJ{jzfU zXH_}?|Tgv&Iy@Q<3AFq`UP3tmH&i7q!5BzR9`J5ytpVQ^!^BFnc zQ++{BK9|eM=Sn>qh@=8|CD4o1A>^lJome^8K8xAN&A0`7bZOHs!yXoP5@mlg~zS z^4VNYK3mDjXGb~tyi!g+`^w4Z06F=*O-?@Vl#`!F<&UQPJT0d_UyzfZrE>D~j-2l~ zua=Xa&*jYjYdPz_&o9|}VEzZnng8K(=3iRQ{42|ue@!{_Zy;y>r^%UrC;7sZ|E}__ z$*++!pBv;~rapPUoN*?}x2N$R3w*Ymd@hue&t-D*xk65U*2u}v_wr}cJb#fdPM-hQ zY(3zGocWiPGymh|MH=^=+Bri^)GpUOMm!a-P>}%USmZ z@+;E*Iy>-|^4n7UC4pZdpOxbK$$4J8QO@_HhRNykqvSl_Js{`#?qNC4cQfVOm(G*( zJhD{I^Vgelp1)ShdH(uD{_p#@z<0`dUOVXb|GRz;ms4-$0*cKP5IO5RQqFVe*uW>tsfU?z>S3OodRQ!{9+t~_Z~1=U z>*UnW*MWa0=lf&71-{Q8*}9_M%F4T>zEoLGzp5R013C3}ww!uvDW_ju8hAH3{ie=fz>54?$-`Z-@t{ah$#eXo?WzE{gx-<#yD?``tcHFJ3x z6Zi!AM=5@K;Irh^&q6u%vrJC?yeFrAK9W;Eo8{Ec4mtJnhn)J^_pfZ7P(R1Ysh=wH z>r-8wC@24?%E{+ha^`=5ocZ^X&rj>pUrzo9%Nc)!obhMK8UHEytLf)12z-g0>s=vd zK5OI?PROmthQPPTng4!!vg`O#n&&}s=3hll{0Va6TgaJzTRHRTCnx?!IoCTZ@KJKc ze^SmkbLGUZkPl0ByGH(T@(ps%wJq|;(*5&~a`yZ0a`t=iynO#G*xvu%=kNdU`^wA6 z>7Ui)^v^nS`e#!)^Jy+;KJDf7pU!gnPj5N>oi9%YK3C3p^itrj z$;sy`Ir&^KC!bs8cWTuweq%gJX0`P->(Pm^=KE#+Kq2RYZ< zP0sc9k#oH_%emfRa<2D2IoJE3oa=o-&h;*pf0pv_j-36wT0T7O-_Ha8T0Szx|1Kv# z`S;1LZ}(cczFbDm{42_-|2l!6BB%bF1%AGqdgv&p9vfW%D}IdQ$GU&A1tSSM$4(6adPrDT~0mBl2Z>0<T^It1x{$I+O|28@EKd?Y{eVKnT zd8c$;rRB`Og1l)u-)qX5e?9s0>3nZ3XFeCpska`1Un8g91_nM<&U)P|=Xxi~S+B?C zT<;t?>$OBPah8V>$6($cg_`PW*lav+KqDi^`dQ zNjdXBQO@|M%5P2cZ!hQj$(`lQXOMhx8fUni?=#Pm6aTE7`1j?nr196uiQgk9e*Xiq z`6Rx){EakzH96PYT>f5)ZzbpZfdk~k50(=@S-vKXKSNIZ+j8Pp$%+47&UO7F=l9ta zI53+xexJg@a^5o^CFea-c{z34RQ^M{-sW=V(_YSeI?F#v-{0#U_;vCPDgM^L?~rr7 zJ7vx!&$_=F?aHM0!7bQ{cDBng7G`SJFHmmoxv@#sz$?oc{|q_fw2%|uT~6Khm9u|G%k!t-XF5(^IQb$u@vq8>-zYDb z#@Q+-{*Z&R`6T`bIq`Mm2c_{(k#oHl$&01<%jBh!kB}38kDU0Ye2?oPIr(`~&V1&|na@f&^I0orJ{#rCXRDm~?2euDh_2k)uRL=O_~w z9!TSqkQ3ifPW+j2;xCu;UZt0u_dj>Ym!*a1uP^6&j7{WxU-1$-|K6V~AbocMWi;#bOlPJjN-T6w4R z`!09NiT_PrD8=u0cs8H-LGqJQ{Bd%|uO(+bE#$V7DpUN5kEBT3aa`E2> z{)@cCNxAs^#k1>$7m`;=@g)O4MqWF`R|~w3d}YJje3}N{T)r*Ew++0byj`Q*_`L$} zFQ1j-2L(P{eoE8a`1c1sN&deS|5)I&two}G)|9QY3T z^5(htUjxr~M7FNJOYw&UeuTW>xw-L=4ZMoHX^O8Gcw_m{6n{?Ot>x2Ge3!s`$Tz3> zYXcuBXTMLBv)`x5+3!yU{+#^U6La}|CGfZ9^nta3ea(+)`s^-e9sd{j&2rZFj=;yrS;vP0e^k!;&JBE_oOORa@OS0Z!}`EC$*Gg? z1OG)%{p?#RTPJv7IdxSs@MGlE+wp;)D5rn6l2e}-$*Iq-f%leEpEm@4tDO2AC8s{e z%HOV+J5L{$(?1`V*GzqHo}B*qqMUxXT>e{=+|OMpFO>S>IywDwqx_x}zfC?i`7ZgV z$@j=FPxn##AC;}Ee#wi;uT6fWoc&%Q@Z;s|_xgc1kvBUtm$!4}&n9mpe?R%9@&?Uv z<8+g^J1gh?eN>2ZoAg9kvmD5k2lG8VylhX&5%IO1d%GvL00{>Lb ze*ZLi_WPM~_WOBq_In38`@M^t{eG34 z{d=vP=l5IW?4#S|?3eoje^6dF)&HY%>i=mu_5XsLdR{80o>$1J=QVQbd83?q-YTb_ zcgv~gKjqZ(0cEmvh!>Sp&(-AAa~(PL+&J*FiIr7_57fmdVXBa`87w*`Sp^V`hQJMoqrJc$8zd_bKpDVoEN{#IWO`bovjnjiz0IN zO9?sqrGlLE;&?gd#mRE^S5rCr>%73*$=P?82i{B0e!O1Je!NA_e!Nr8e!Nf4zMB&G zV{-Q6t8(_^J975pM}cpUvmdtyzFW?I%vUyBC+x=qQ_f z{j?7JVmbBGJ@CGA>Sti!L*>-fn7}8hq|;%gd?HnsVy1o}BtTBk&e->a#=OUF6hf@4&B8ToU*ja_Vz+;Gf8;&#i&~Ag4b641B+1vvoy%9xJCltH`OtlLBujr#{aK zytSPAyi`toc9T<|*9JaNPJNCD{2n>=IXUnda_aM$z+aG4pUVSZDW^U^4*Ux__4!@k zKg+4l{N=KBf)|ogpCtk>E2loI1ztx^eYTWSpB?1X=aqq9EvG&Q1U^_!ecmOfKJS;; zO!wPU0)I?iE5*+Ze4)H`ihoVc{rn0!_wyggxu4%4=YIZMIrry3%6UHhOU^zmP(E8% z?8jn(A1UYlyn>wj?c?Q*(tDeFfj5?Oe}0afKG0gue!o=CzV0Sx|Mr)&Pj8a5?{1f~ z@9vhfza9+y5jp#7v7G(2Tu%LeAgBI6mM>4=m)I<)K6l8O&w&-Pb;3R^CLfYMUoIVZ z1^L4%{sejH({u0fPL@|men#LeYg>oP6e0%+?S2EGQ>Ghsw!M zDLMJ6C?`MF<>cpVIp8m%%$=e7ydAmnW-X_b*+YC8*n=2=8 z3+3ePbvb!^S5AM}CMTb}-M`HFE0V z3pw@hjhy}Uvz+|wk+Z)FSI*WI`|B_{`|B7v`|CJ4`|Bh*`>Uax{dJC(A@`FvYWK3B>4d}M>1{=7v_f8H&pKmRGGKOa~nTMv9bQcTY0BS*{W=auBtLmfHw zaEhFMezu&?J6g*5yrYwx{@+zjKkqN+^NyS3eBLoaPJP}Zr#>gksh=5g>Svjp`gu!E z{j8BwKcC9^ym*V8`uSc?{roPce)3n%)(Q1Zi1veo|RZKdC9FpEQtD zZ>PzrxAWxmlXi0YNf$Zw*+Wi!4wX}%cgd;G33BRls+@d2EhnGP%Q>%Kk<$;~meUVE zl5<{fkaJ#dmvdh4mUCY3b9}ab$mfA_@>xkvK5NLy=gD&N*;LN=nOn%&?``FLpSiP~ z{oY;9_nG_4`9AYaa{9w?Is1LIobNMFkW&v+<$OPRk(_+KDkq=s$;szO^783@-Iwwc zl5dlf=br=LBd7igRnOKB*L$d({%~~QmE?QU_m@rx{A4-%>r6TO>pVI8>moV(>oPg} ztGAr}b)EeF^!s;)1U^#EejF=jKTejjA77B4o8F5ql~X?}1fzE%EE zir*FZA9CujV2y13P=`h2obN};+3)4$oYyr2uO~k`oy(^MevUo8=e#iROXZbPe9yr9 z$=P3nFv|EVjd|C}bL|C}Q)pZZC=z&pw5S3TwQ ztA29&)y;DH&oDXtXR4h3^MsuK^PHUi^OBtBuQ%mA(&wb_%TG)F=aay{l+%B{m(zcK zk<)+nt(C1G`cGjw_YWlkFDrj1{r-Zgf!CJvoYE-pW^(RZS_OWQoafE1f%lg4TysO< zx60?IetTEo_se+>niBY9^4_W6&JBE_oad(30$(AgKYt{rKW~upJibj%-`*vs-|msq zZ}&eTTZi<+Ljx}*=Xt7P;ML{y&y(f!&!%$v=XrAaXFECl^D;U8v!|T?`9C@R^JY2y z@D4fsaEzROI9X0VoFS(lE|t>{-;~o2*U0IIpUU~XX=~s=$g8A&_($OT*3Q-s{i;ad zCFJz0a)DQs)353V-bhZrY94qiIsK|r;9cePt7`(kK~8@d7WgPR{ow&Q{o!Hxo#}pT zR^ZRd=?^al{<@s~yGqXfT`y<x#a`x{La`taIIs3P& ze0sWHsw-#zHj=Y{FP5`^FPF1_uaUEVZ;)S{_T%k=-!13R|o)`8xFcRd^|XT6S+vtH%p_oe-NLf|LMC#Lu_ z0&gK_y)KrsUYE;RuWRJ2*9~&k>vlQob+?@Lnk;9%X2@Bud2-h4MLFxWPR{<_C};nE z7x>R|_V0f6v-N-S3;&dRQo@9zK$@?i=K+*A6-B^^<&U+K>C5oUI4Eu>8{$e?;I% z%UQ4E<*e6orWydX18^UNhya*E~7sw9E`qq)NzD?zCV za^8>qDCa%Z?{dBmP~eno{ZJ1F%lSUQadPrmOHMu;%E{-Ma_Y0SocUZVr#`#Osn5Q0 z>hoqf^*KyVecmglJ}1hl&&TA{=WIFk`Hq}?u9lO}4RZ3iMNU3<$;sy*a`IX5)NDPF z&mwa2d6b-dmY0*ynsV}4Pfk8hmy^$P<>a%wyj6M*>MJLoH_OTAFgg4EUOD@HqMZHy zn4JASTh4x8Bxk?BDrdjHFK556le6D{l7E`MZ}XR&`Il^%tq10RjJ#|5eDGBH;N)k> zx!%t5=_$Uu{ITTM1wKelekRDzNT2IXmA6m6NZuy-t8(7wZ;%&A@5#5wizNRs@ZaU7 zQhb3%+5F=N%lZ7Ss+>P3xwibb^!wc!27acT@w>>m-X3z|hsvKz?=kL@vmYnQ*^krY zrPBL^Ie{;bADiM|3H)t2{d1k1{<%?3|NKr)|NL1_|J<)}c75re2g&K5rR4O_a&r1- zEjj(OzMTGfp`7))RK6jt?BogMgm`41_6S>SKU zsfUl`)WZfj^{_)uJ^Uo69`)uJudR--F zy{?saPWc}a_(*xT6hAib$#T|frkwSfCuhBu%2}^B<*e6-a`x}%a@K3Rob}o*XT9<_ z&DI0!RY=Zy9VchKYRTD;jRJ2bXMNksS>KLw_G7QW`^(vng90BeXMOLNv%Zt$tnZU@ z)_1O)^<5%oeczC?zH8;I?`Lw>cblB`-6dyzi=CFO2i{8@DQCSZ%UQ3Qa^62Q4E#(v z?-^PK-a*cKb(6DRedMgy&2rXjn4I;xPtJNhC}+K%kh5OT$XTzK<*e81a@OlBIs0zA zob~!$&U)oPJ-hDgucCpMl(WCe2VPCidYvq1y_(8duM6a?S9>|@)m6@V^_H_<1LdsO zP&w;$ublOoC}+JE$lIs)s7vI7lfNDKDmmYm*eK^YWviU$xS!=bckGd~UI(3#trPCU z50~@(oN{u$7g1GSBYl6Me&9{yeE;Fxz}v|Ae!^w)f4_$y=lcc&EENYLry&xJ~LYn)bn9->iOuv zE6E>B^?zdEr^;VR@n;2of&8-+-zo5}@&f7p@S4DHkUy2;Zx8%#`I;0zG4N^fM^DXt zK0YV#1@Z+c{*}PrmcNza*9E>&o|oS9d>8o7a{ASN&9e1FzdA@xzbYlCUzL;7uWHHZ zSM}xet7dZg)%o(P(x1oGG4Lzp_oev0fe(;xO!315A1$XJP6&Led~)iyvjd+mpPk}g zldnp?LjG0q^>X^{Ciw&D_m%t*_^BB!61mebEG$m!>`<@ECga{Bq% za{75od5zR>FAcn#oc`ZWPXE7APX8Yvr~lt0{~^uip}-%Nb6z|v=e$@XFPF}dw*vn_ zUMt0K2z-mYd5Zrj@W143Q+(mGv-N`?Cciwz9~*cTIp^b9^3Lhpxj^0{`4w``!K>u6 zQv6^!=h_JQcPW07oO5crd~rID7RWhwmdNL)^J2A}bLSKJn<;*$oO9C9ax}3gulKkn^ug;az-`dE(Oz}PC^s#>Or&7NfA*T=ABR?hW$LVtR=`1<> zahd$zeJB5Sf61x;EpqDr;B&J1r=E+;spk{qSEf2VSx$T>Iq_ZP#1E0PUq;HgKO7tQ zWI6XIGv(Z$%#(9}vQ*Cf$(wTSPd=1$fAYDU`;+Z*?oW2h3#R(ae{OcY@IrE)zlzJb zuP7tud8(S6^SzFo^S7y-^S8O2^S8a6^S85{^S8I0^Y=PA=jl*6=jmN?&eMr<&eLgf z_TwBm`)+}p^J1->dj3pKJ#P*C2RY}$p1}8Sk*yP+cZvmmq?~i4a^N-PJnu9J{4_b| zPRqbM$T@ee2>dEJ=gy6R50P{3+!Oc%a{9@ma{9^Ba{9?4IsN2SIsN1VIsN2gIsIgd zoPP4Xoaddt0xxi0wtjftDH?c5InO(l0wMEw+4QPocpoyflrZh zzPu!VB;Aj_Cg=HLot$%Iqnzi9-Ez)_Kjl1M6ulr@5A^wxa-J`am(%A@l=FOXj+{Q< zTF&!D4>^7Q8adAwx6A1>cguOcm?5X1JSFG(;uSf4<83+57aQg5udQ;PFaDIXFZOGh zT^H)Vl$^RPC#OEomQ!yn<<#5N^2bws{!dQ)1Ud0j<;1@vr=DMvbN};R;2+63-#5!S z-*?D4-~W(vzVF*An}5#tVsg&+Bjud$mF1l8HRYVY4Ff+@&T~XdIp=Q&InN8-$vMC7lXHGODChioLeBa1jGXi6WjW{3>vGPcHFD02Pv!LI-{sV2{?^%g zpgs={ytte`Tt4t>a_-OT2Hr?c-)<3jTRDBZbKu?O^zG{cA0(%5-xc`%a`x{uIs5lX zIs12koc+5*&i-8~XaBC1vwy#ovwyeAxj+9c@O|23>xcXEg91NXPJbvDcvU(5;Uqcz zp`n~}^W4DO$hkkiOwM`QQ_lVQ06G0Q$ae;y^@obFG?%DEqYLQWrkM$Y~4YjXPP3OV<~8|C!Xt#a;%_sHq1`?t%kFZaWx z<@D7Ga_)y4$l2GY$+;iyAZPz}k#j$My_|h|i=6x6v2yBsvYh+jXXMn?3v%k`b2;_! zwVZm$e_=My-=_L0BqzRxocOwO;#sDd&9IuYGpi>Hmky>HnqV z^#9}J^#59N`hO!i{lA%a_Vz>;Iri2Q#~&X ze3|^76u%^XD9X9{AUC`rB?f{q0XVe@;}Pi?a2DA1dd0p-kWvWTshAj3+0>_Z^$_>-jj1)d?x3- z*evI~*d^z@_(RTlap1+-`r*7NCg;2;E9bnZEa$v9NzQrEP<~1}FU}3TjhyF&%L4By z=l*R#;DhD8(|kq;K2FYg_pH2XI!6}C>m+|q&bjuH{Du_2P0l&BOP)WSM+Gm*t}o|H z5&8CXzEqTR?o^lWN%5!4Id{&LmrLi-WpeguPx+Fx9|z0Xrz7Mar1*#A?8ist?8ilN z>hM)L_4cuxI{89QJrwMi%|G=}L{2?alh;h^UPn%RdpYr)<-`w^Q*T4%+%Mf7_;@+@ z4>RQ4KRhMp{^3PA_YbegIe*`mbN;TAbDn-J=REyR&UyD|;QMvTt|QMEMdX}!CFImw zMLGSyx}5%hik$v`x}5&sN>2a3NKXInE~o$ZmDB$R$?5;Y<@Epi<@Enaa{BW^IrX_r zPJONje2ttwxhe2(<^SH#2mY6wzFPRwY@OhT$?2=d23|!@U#%B-V>$crJURQZot*u6 zg`E9(mHglP`M`(B|Gl3Ne60N6`}x3U%KyEe4}7tle)5i-ezIEr@BMt>U(4w~yXEws zKjqxF7wVj?AN)}HzxVTjSCrG=>I8m@oc`8KPJcUJ{_p*K;8)83y`K+!fSmh;;en5q zbDuCN@agh@@8{**KP;5f&)<;K&)<{N&p(sX&o|5I=ey+e^FQSD^8>qN>xX_`Oin*9 zE2p1VmebEqlGD!{%DIm^H}E!c?yoKjyr-P=VuZYJx?j3S&i(UrIp@MGIrq;?Ihn(|eeBe{$oG(wxIWOkQsh=fs`sW*R`sZ3X{qr+9 z{d1d~{<%v||J>(_Y(3CF50ukCOUUV;W##nG>T>$$Npki}8#(oPiJbcE7I+^ypEKSZ z_%J!2Gu{*U19CoRd^GT<<$TV#DDYS1?5_{x?5~gI?5{0y_Sg4v_Sau>_E&)`vvtD$ zI!w;~I!ey|suK7Ka`xA$a`x95az2M`9r(p^&XFE+?u)LGb1vK>XaC+V=X2Y!flrq6 z{fe1^&y&+1mdfc5Z_4QpAIj+upUdeF+vW6!-Euy6&fhg#CwL(_{iL{@eo{tGKdC0C zpVX1lPg=>JOXulDa=xF?TTb7&PR{oeM#||M_saQx!sBxK#vD1{PgpLeZ>*H_{e&;& z?2B!3zMrs9x9oaR{|CzXenMF}bzWJ{_Y)e*sfRP=d_SS5ob~D_XT3(t7pCa{74%IqxfK2i`!=`-(FIKTpp4 zic12&LeBe&K7n5^=R6uF=R6uE=Y7Qkfj=zg{CZl>`SrY<_Y$uL{*IjU?n61}*XMHH zCu|RVx19G0c|EfAgBO%@|5;ql`Bg^F`BF{J`BF#D`O;L*`O;j@`O;p_`O;a=dC^fc`}fS&3H{`7 zIsK%xoPJU@@Y-_vNyEU;l+#bz1b&H}e$p-QK63iW&2sw5Fgg9?p1>cF(@!3i(@&n3 z(@z!!{;HgQ@~)hI@}Zo5@>Ss5<@AkT0?+G}tsm~64-UMzocA#01Ft6MKICLM_u)NzuhaRzfF|W-yWCK-{#2aZ!6`$rTd??a^CNK zBd3q;l=FVC;8odmr;inp^M0?QoIX}v&ilR7<4 zY5ZP+_m?xDL4gmK^Y1?$Bd0%4kkg;1%emfJa;|rN;4jP1Ncs6#PJX_SS4#QW9{6rK z`OMclyYBb_a`Jh&oa-$u=X&eQxzA}L=ieuLuAKXaHu87UpC^B*{I@2#Kew%$ocoP_ za_%>7lyko^OwPGKO3wNIfSiBt>ceu*>lfw2(>lH)KRW&UJy!<4R!%-Q$;s!pa`O3$ zyiodHXkMReosiFiP%d^V6joBq80vjV?BPX2qz`=|W(my^#y za`HJ`PCm!T$>#()`J65%pR?rTbH1E>zAPu7Z^_B$2XgYWUH*8=&u%&Onb$X4C*-G~ zoctUrKRVT0DLMJ6C};lF<d5G`OJ6C|6LCU$jRqna`JPOocz?4KcD8= zNWLU_^T1olng6A7>Y*gjT_~x z`w;n&jdOXsC-4X44O09gfzOn4pYwv8=l!K}?$h3p^Zfq*=(_W;9m}op<0uj-k)cFn zD1|bXv4o_^5Hgb?Wi0cMu~LXcq(M}q%tgtNIg%-asK~G>iXuehxA%U|Z@+zgkN514 z_t@{}SjY98*E-i)=XKxr^W46X^ZI?CoY(0`LHh$ddM$l ze~Zc4-!gLcx32tg=8ycJ`4jO@a`v~Moc$dt|7ZS0e4_lH`4jP(a_VQ1ocdWQr+zld zsh@A;)XzRS^>al2PyNXMsUJCWCS%WJ{oq;U)LR}o^;Squy_J#|2y>=_oO*juPQBHW zQ*WK+-9o+flv6*0<Mf4`BlU;E_j z*AY4UbyCiLotLv;X?rE>hyBVVXTNThvtM`02ZensFDIW>TzmvZZ)_FMM$K|X)WAEhtJ`vWL zRnGeFloNlqocKrNtiP$8_4JVwKUmKFj*R#?IoF>j=Q^LsiQg_C73%goIrHbRocVKH z&ipwiXFjCvliU~P!&P$T!*z1z!%cGL!!2^=LkW3-P*>&T%!dZ@w?lrK%gIkiIr-@> zKVLcJ^~Df5`57)JKd;Hj&ty6InJp(jpUBD2YB~AYASXXR%gN90@`2&+A1_7xioVHu z7!%^NMEnN%v=Dzw#P5)^Ulrx-S2g+huwReJ*{`N@_UlPG`}MS({Td`^zh02DU*qNM z*CaXnwM4!<)bncj(sC*Fxi#XuY<2>W|a#H-7xhX!)$p}CyTqdUr}hwgHoV~0e1xSaZVO-}txmj4=Fzt4{NCvxg- zwVZm}AgA7bmQ!!P%YO-VctOtVpv(Iw>!DKE-)kbCLw;X~zgJ zx3&@QBxk<$j`$!s^X;XGzbdD{-j&l|Gvw6sXL9O!g`D}eSx!CglvAIFsI-ZFyG2Vypp_2m~S;BUSD26oJXxA-a*d(_Kf%dIr}?O&i;;* zGe6&n_=j@l=fa3Dmoq;%MSO>xdOIkm-j2zcpXcP%Tj~MHdZ4ebiFgh<^;u9(eHN87 zKg&nFiky0`E2o|t%cOXujI_zy>ixbSkAmn zJutbC8A6|4DbE@DF-OF2l1~otMI&BXPXAVk_(O8~w_(Iv$m!osa{9N2oP8N8XWvK2 z>EDSFpCYG!=S2KdIsLmvPXBI{^Lti%>nXEjjfwRZjiPlT$yR$^Y43`9J$B=Xu~; zIs5ygoc;Pm&VKzNXTMSnPVO)Jm0r$%6_At9B69LyU0youV{JM4Z!RbQ?d0UYyPW*@ zmy`eDa`OL*ocvFglmF>*^8bmP{C_Sd{~P4wf4iLg|1Kw==j1#OUoj-PzxXxsN#XhG zhKS!RXFlH%@w?>gZ#6mlTT9OVHkGr#ZRG6l({lE=ublmTLC*fZEN6cw$=Tm&a`tz= zoc&!QXMcCgTZMkvFaIi>zb7JoR$jM4s{j6%c4)F5@J#Y=Lwv4?=a;j;#pUd8SvmV# zUC#d2mUEsqk9a$IlgcUg+dbm_)ochlzXWkZ*Q~zb;)Mr&W`&Cm;eKwI(pRMK8=U_Se`=b1Gn70!m{Up!Ade|wa9uCM^ z&rvz=&!iictOu@twVe5UeZ=$0na`!=tf!)!`P@kUN;pSa$qR*k>=N-_^4TH&xro0c zFBSUtjflT1r+;V5>Bmpx^xf)+Z;;cEyCc3|PCuTA_*psqnD&KaJg$L{`Aj=JxxeHmlbq+(ToKPN z=XteQ#LLLZe^oj8uPG=0P2}XiwVeDvB`5!V?AJs&`!z*=KFt4_a`HJ}zBlB5S;W`M4}|zVa_;wl{EzT@ z_M)8iryZHxclteR#B<5%_d*dbCZ|3t$f?h&a_Xm^ocd`Zr{ABDQ$J71sh@#z@;OXS z{k$rte%_K(Ka1t$f0dli$G?vFw{kvTI~?)ja`x+7#8bbNtOxe%8aexwLr$F+jCfHw z^Q3<H`N`x^n8Fv7C9*UQRu9l~WG`ATTcBCjra&T z^*>Qg{ZEmT=Q(or@l!eVyhctvZbZ!V z{VgRg5Z+I#Ehqj_Iq}`(#P^f4U&G|=*JwHW^@g1NdRNYV&5^TTpURm(tK{t0S90>d zQ%?T(%E|wEIr&NRvi33LKewFc%z|?ASyE0u%gf1U4LSL&D<_{V<>a%yoP73_lg|Ni z@;OpYKF7()=SOn#vq;YTSr_pwa^}yTh#!!X|KH@~|4%vjPd6sH@8th#Ir+a)PW}tX z$$tqs`7b9Y{}0H?e;qmb?;_{9sF$4lJSQhVFUiTz8*=jVuAKbLlars%H^|B7E;;$!CnulBca4lU*Uo>=FI z_muPdW6wr>q?~-dE+?Pw$eUD7_22*IMtq@sMu`6+;+y2`*LQOE>!6&^H-DG2U+3g} zj(Np|WIf>5$l2fAa`v~Noc*mLXMZ1(rw^ZZHgS@I`bqm*a^LCqta9onmz;ViET_38Z_Akvi{$*C&q_JJ&$A`syX2+9^TWR){;QmN{!>mpr+PiPk4-|}u9mYe z+2!X$d;vN2Swv2KmXlMT_sRKvn>uppt&yC1>nC;xrr$l z|FwuumXpsJa`O4HoP4g3lg}^ZS2$Z zdiY7s{{ANCdH8QR`6A>*TC|i=6vCD(BokDd&DuO-b$x_nThM{brYQzj@@`ZxK27TT0IT z)|0dTCUVx_PR{x}%UORPIqM%RXZ<7Ptbd%G_0N$r=RcLR{xx#ezfsQm_sCiQ0Xggc zP0srNl(YWq?-kVl{uju}|57>m-z8@~`{b*tp9g8 z>pv%F{n_42?ibh3EoVJ<%lY?z@0GKjrgGxj$oY4HyF|Q~oPQVixro0c=idc>BjWGM zS^o<8oUo5y%K7(>zn61ghvfWw$LHnTSDLBGec|6b&MD`<^2+)5j_;SV{)gqPzk_^! zxZiGa;wQ+7e_KxcVmbL)B`5zs%8CC;PTtN${BJpVyJ}i8&-it6)>A^hBIKu>oc*mM zXPu4Y>~9x2>**zDf8Ua`o~d%yvr_&=SpRxC@h9ZOpOq7T-TTRWa=$mq$!9q^@%PEe zL!F2>l5_oD@@?UM2g=F+t8#wsTXOQhO3wAal5_nd@?Bv)C*;Iuo1V-k@ww&1my`4F zSKcQlKdt1%KOyJewd@t~f$}VsQl7_NiukK?*7LFaP{_|>Isg9V*K*eRt(<><^SGRK zo{{tKZ{GMpGXJcnfSmPImj4{qUqeoOS2^*$<;1@#=YHRklh4I+;#bMZ!`Bi2R?hX$ z$j^lP{aa4{ulq2WPk!!=a`Jzloa;X*=lbpCe}(mQl@mW+PW&V}@r&imhgEX&^P@a{ z=!>7^%#*8UB=bXjb~*7S<(b0u%gc#>Oiuiha^i={*{{)Z?st~_hOnLma`tzRocIHB z;xEZ>3fI44W-@QY7nKuVT26dDIrr5>zB&BdC*=IQgip!&cS#1y`F9G2$)|?z?Vl)9q}J-^CX&uRGsVV$XFCHIB(q?exy|2}3`IqS(KXFX-) zKZNU4l5@Wg$+`X`a<2cBoa^_I9}PeE*@%ynbH5YitY?b+wNMW;BR*fw`oESR4D0+> z&iYTwiN7c(KIiP@{<8kOa@JE(PJA^v_gg38jpSUvr=05ykP|;qPTfwC(_hQv#IKci z3iba@#J`sh4Dm-Jep1eQGS5lozfQPLPI=?t#pJBBjC??duPJAp_2n;z_r9suze!H~4mt5BmI^P;?C@VDjM*ZcB!Li|!W_q9eoKg92mb6*GKUxfJd^OE^z{h8&gzo@)@ zxK3#~@lEB#w~-S+SWdsZC@25#%ZZ;Or;nCKe2tvzACUJ5_j^=M|EBsVnNNOhdO7`D zOwRSo$hrO_^1fj`P36Q7krO{$PW=0F);~v1em2U7h4p+R=YG%2iBI!!GH=A+Bp(^B ze~X;>T5{qW$cgVJryu*tx!;L$;-|>z(>W3UR8F6+iTFl2>p3c)81i#c&OAv!KbdFN znOV*}DI{l|#pKMB`f}FOOwM}x$|r^O50Mi;T~7R5Iq@6i-0wGX@_ABD{CPQfNWUPN zPdu}n>lc&H2=`k?PX24kxqf{)`R^y^`a|Vhf3kdTSkH7h@tfqt?~oIJQqKC%%gIm9 zPm=ju8rG9n&i&pmC;nkM@g3zW!}Yt%iGN*A{5x{um&wP6e^-62d|~jd5#KFu6aIbe zLlOT)-X+AJjrb*bj}V{X(`5encOJ9I`MsCi^0g19yboDWej@n2^5r2956Eu{>!~m2 z-x+TvCqGZfSZMmbVM<4{VT+41QSNE%|D}p~OCw`=y_z&bu!*%A#iQg$Fey^PPzvSH4Ws8$}LmT{-bH{9dQ*Nf{M<$IUxTld6MsZb{0TYnS1nEE2ft2! zCj8txaK zf*+H!&QtPxLj0AVC-cubua(yg@ps8t&pmS1(@dTtT&Jy^_z`mA$I6MHE59*Zf1#Xw z?vNAzgS=k2&asG}lD7@Gs4_`GuBE6VAYYI5@5MoxT3 zIepYO;zQ(If3mzxxZmk=`uB4=Klckc{d-K#^-syUe&!X)e3lRE$tfqklAQSa<;1s< zv;K~9@-tliKv>T!a_)DbocQH(;=h;I3fDg*CqBc-j;>{a&^vnIGaa%89>K{%pAZ zopRzE%873wC%(U&zaw~7&fhz{BcBr1^Pzlp@GWxUcgczWL;hj7&ILK~H-C}LC-Jw* ziLWlt7=Ev#w!A>_&hk5g_muPd{A1+APn1^(*I6njevO>?ee%1*b&kl1&$u?3AL6sh zi7zJqJzT$x{8I4xa^joGi61H_euSL(Y4QxUQr?f6EzcQzgPi#7a^la)iBG*QnK$BZ zl;;mWw}8BO@cZP%KPV^uDLL_dG{M~ZmTgZujTu%HDd6)2Whs&P{K3z`yTsiSOHmGJQ~vXR{{7#3|Kn-? z{r_{FnR2f4>HqkZ|BfI3pNstazb*gc|GiGw$6fNR!4E|IsC;zmlzgzxUh_4dyhvYq)q+Gvo#2=FvX_gY-DdIiksavJQ4~_T; z`N79h;>SmPlAQc6k(2+`a`L}9;ydN!bAQBtmVXuUe>UQmy6%ja_X z;tP4zQ2$@csq=5;bwYg}iuf<``XTm2c(a`HJO;=|?SZ9>G~mXpsJ5&u|DKW>qe|6OwOe=y?5)Q`MD3tGlu?ZD5oD=$VY|v zC*@;HEAEq^zU{# z{rH`n=flHt`r^2p`ad7>G+!s{>g7=XndB8iooAC%|9R!q|E+TBzoeXcE-$B^t4F-H zoO*5|r=DBOsprme>ba+!dLAREo+rww=cy5&C8wSjMSP{4dfp_bo_EOChk8CBr=E|> zspqqD>iLqKdcJCFvaUFfu9I^f<&#tYh2_+FnTS`CQ~wV}yq=u--%`%}Z!f3*d&sH( zXXMoXa5?k;6*=?&ZTZ@kDf9V#`R~E!%jvHra{6ms#J9-lukYpb*C9Fm^}C$@Iwz;U zvTsY)5B-%#PJi7N@e*?S>z;^Lm(yR5$my@9a_aMmh(9H#KA(yBb8`0am59GCXMd+f ze72nYe-b8>GvbvQ^)y^W0cI63q1Z8^^a@5`BoAIX`A zi{#A1HFD1!y&$a zyjk!f^7g^+lJ^XLk9=_OCUW|>wVeLyBB#H4$=ih2r$goR*9bZDoor~qv z+b%il-zR7NN9C;lq@45RqMZ6qyED1(oG+Q>oG&@$oG-)VCCceb4VT`Z@6SIOz$EplG}?vnHR_mG@^|3yyz z&&kPu>Ti?#PCs5P=k;uMIsKSlPCwo*ryuW@(~tMc>Bm}fUe7j=^LnPJQl^Q=doW)aOY#^?6ZFy`|lq ztRK#o%yQ~2r=0f>^UIn4x67%wGIHvzlAL<0A*UYd%BhEDa_XV2oOfsGJ^)O9NJS2YPde|VR9=6M=hrM#<)nPgF>UTNyb573ZN0;wO))mhu zSIPPOD2JTqlbhsxesr6h=av$3=4VAY^;}KP{H!Bqem0U*&u!$?b4NM#+)K{<94Kdg z4wqB^ugIzYx8&6SR5|rOS5EyelvDrP%;f`8*>3SA&$--KXTIg8wBa&*{ET)(L*KoO-)K&i&pj zr{9Z3yo~(X@Of_Kh}V!)&kf|%b8|WU{$#|TmNN&QiTHDJ`elmzK=?h+59I9c0y+D; zR9>Q9%Km;C@vr4GL;QCUKPab8PROZ;vvSVU%YI1K5B-=?&iR-l;y1}}3h(#c7V#4D z8^ilNl_Gw>yg-Pr8}Y_+>c5?w`tK~~eC!+XA@Xm+`%y1N{8c&qHAPMzeIVzYogeWf za?am%5#J)`T;3D$1M*bi^SI;kp25$^rv*>5H(779gJ+QQx+z=4bIW->RXF0s<;^Yi(LkCOAcV`9Xo$eFh@<;>gpa$a9Amotag$$8zq zE#iCR%-h3q=IwDg^YDDc)BKpMH(tMFig-3T^E02E`B_-b{46bJepZw-KWjw1uAKSV zEaGkD%+IIf2Omp$&gmn+5d1kg^YbM+^Ya5a^K+h@`MFfi{9Ge{GR(=ZBmS+tVwj%? zBYsTId^;QQOLFF0hW*L9!n4SkZ+RkKNX~pK9`Ukr=3BLh*OD{e8b!R7oO#kI;yvWd zlRvbcq8KP z%6UGY9q~`(JfE+Q_y#%W(awnPm2)2b67fIee}&iYmm+?}!DL-g=h-5jTTcDo8u2^j z^hKqJ-!JF9s~hpga?ZQ<5$`IeAN$Ga$DwlGZyXcxiE`eDd@tfN<@Eb{IqyepmDBJ0 z~#5at13px4eBqu*T)kU zNOIqKzvyZ?p9ftp=l!C5ay}0#BIomux}17gAg3Od%BhFla@N0J&ia3qv;Na^)}Q*PWIeF{E9I;|o1FFM zmb3n{@}I)FTv^WgAC|NJhH~n;jhuS!D5swL$f@VSa_V`MoO&KFr=H)HQ_nNx)bl#| zfbe_HTjZ?&sGRkml&1^t$6oz&a)0v%&o1YFi_5Eq__Ffq!K+8Sww(NQkXH-uqjr-w z3O-6+Klpe#?}vP35AQQ9k`D^LCgL0ABSQSHi0_m0e(41{-)nLC(d5275w3qt#B<2G zehGQcaGi2;;v2}vg??-BsK!CE@vPNW_QBSB3ajBmS10c{M}My!u$qyjme= zUVSNNULBT`pX2gnA#WEVe)+NF{*uoua`JhDJXLuA^VW#pDZe7bmydWAIr*$BC!dYw zk;e0G(S&rx#nHeODC-jkD`nR4>8DB>&S`Keo{{VraGRi2l_X?oc_%&r+@Rv>E9x9`nQyPeE1%Q z`y&3JoPKX0r{9~)>GzHi?=Gj`2S$9D{Il@>`Ku9sOa4`epAqqo<==<+6>{dumvZLG zPC4^rubg@Ei=27#hy3_sDeq6FIgzX%JcFG1lTFV2$t~yak8Y26NjdMgSBm)k@;h6n ztiOK5o5^{9zJ0{I%9)=76b43 z?2`PgFn_ZCmaGTnST6aT5MNx*94jkd5#nph>AOee>qEbEmeY4V<==()k#g#JoSb@| zE~jqi%Bj!Qa_Vq{yke-&6LRX|tekqt`g=0}X~RC|k`sTAocQW;;@ilnw~lho-(C?P zDCazSNzQrns+{xaT{-8`3_0h~XL8P?74oIwJlY)bopR2j{c_HupXHoKXXTtbm*hN8 zW;&VNU*>-{IrBfiocVvdocUi?&U~&cXTH^zGv6MSGv9j3shgUCXkC8LS-j4YD za-QEliufWqb8lV5x5$}$dm?^7&fNPg;(yBNmvpC+^+3N|EvH{@l+!N-%N zkNf2G;}JRM&gqC>lye@X|07vHcxE~0RGx?zlJmS&JmO{L%#-SJ=1FZi^Q5!9N;vO& z%6a}7E@y7MBIo&Mnw&W>Th8;(N;z|2y`1NteRAf&5joF47v+SAE>4`CLfOd@dztK39-4pC6PnpXwAcxSaX?ik#<} z$#UlBbUE|$6FKwqb2;;KgPgkEE@%GimotBUmNS2@IGd~o>gO6cb#g<*Z?u_`| za^_5xh(9D}&NPnrV{+=btDJi7EvKHJms8K9hK4yq}ye;)Uh(*Ijb@>mE7% zRZC8PHIUO^ZRGS*$p--r*9KioRy^OTn({+gWr{aC&s%6)V z>k#p7a^~CMh`%W3d0?EJ`Szxq`Szil`Sy{VdRs1M{;ZQTe|E^3KR?KsKgZ!co8{spj^c7lQReEM7)ul`g~kYeRh#kpU=pt&*$XS=U6%Q`G%bO zoEGufa_VzQ#8=Cy&&_h`bElm8JS3++e~~j+&qq8>sx<#Sfc{f0|M_3c)yxskDX0Dm z$*KQha_YZ=ocgaSr~d27ssASODy>t_(?0Ud;anRm=e&DWPMyCc=e+w^PMt57bKZR| zXJ5XRbKV`7voB}l|E;fPtNz4HIb9g_Hy#sRZc$p$;szXIr$tVC!gcx`9r_F8}S)(^8bZ=c*y@I zIr;onPCkE>lh0#v@_9;5KL3`J&vch3>x6t>D<_}V%gJW}Ir%IiCqLEYOG18X%c;*M za`Mw!PJTMe`5wHUa`H1+&iY@JQxEUSS^rEq>;F{F`j^RB|9Uy=-zsPQ-^*G5Avx>6 zB;OM9e?{74J^UR!i=6e`ATJgEZmYDM>r|Ad3EyY(K*a0F$!AkJ`D`O6pIzkSrzUd>>jpIqPX6XFcuYtf#Y_^}Hy*Kh)tEdDGxC<&OuSFFzZ6S;W`M zd42kgoPGaZJ~BL?9Etb|InON@<-8tDdqr~Jc|Dj}&g;RPa-JLW%Xx0RUC!%^vT|PE zRhCZ*-%D9L;*ZLCJ=j{#>%k84dExp!BR)XR_uGt=^F21>}i1<7?`@2le{;riXPqs#U zx14%7BBvfs$f<|(a_S+?mC3rI9x}_G_7({aPz$zqZQRuibL?>yVuN`bAFu z&&tXFB{})ekRe%D5-Tgh3^06Fo`%emh%5uYgM`k%lc>h?!D^W>PEd2&k5Jo#Hr zzo)w@xi9qlwQ~CXdO7`GKu-S_k<-7`<$P~{Z8`VbT+aQrlXJh_<=k(7IrlqU&i%e3 z=YA*4x!>t>?)M8h_q$0xAbdXlUBnN{M}+v}5kDg*pOd2D zIr+R>PCoCKlh23c(p)X!l#^>bWK{alb!KbK#V z+;{3Bi=2A6K~6o~EhnG%$~%XCd^q9_<&T8<);8ju#QheJ&omD z|1ml9p;N?r$e9l>%304CIrCwrJV&V8`SQ1euZ;M5IrY3N;``*(^U;W(lvB^Cu1)SE z`;uOsp;5~Dm_6co;$!7^U`FvQ; z{Wg@7pQq(Kr}dSSpBLoh=VdwhnItDa)8yo5zMT9lk&~bGa`LlPPJT|vx!<#L=0n=7 z$^FGM$(av1Bc4}IK8wl8XBj#9tSTp;HRa^9iJW}4mXpt?_xr7!`~6YQ{T`Qdzh~s!?{(KD>w){dQ9d}#t6SvU?;Y~J;rY2- z#P5?I2=NW&%gQ)UdH!8a{alh$KUZW=?k~?v+2qtuZaI0oT~7U! zlv6)-<>a%md`6fjJ>5k#ern3ePZK%$X)Px|PszzoA36CMCMQ3m<>Y6U zocmoMZxdecuZs9ra{6~i#D9>J&tr1(c}h+`Q|C&XS@>x_)K1<8V z=OgkzLj5$A*QuZK`tHeyKP}%C;s-_i1v&W~FDIXq~B6f`+JX^{jDy)BJ5W^Ir(oQFBbCI zF5;c#B|`iVIrlqUJ}l&Cs+{%DlGE>tBfd&bzi*284mtICP)>f1$*G@na_T4b4at3{ z->;EVKRM*oLqR$9P*hGmJR~QdkI4IndU!12Ps-DTdD}bUgXH9Mgq(bimDBH2BL0D# ze*ZM$%jE3WdO7>GRZhQuFK53F$*J>`5kD_yf79nm)(QKYSd1oIqR%0 zXFYA?T)(57`Oquk1Le$zv2xb)hMf8EiM(K_+t1~*f^UfUc6rHA&-)|(vz&VVLr$JA z$f?f^HzxNN&myNj^UA5uTjhLjNf|lySxHWwYs#s&`f}>6tDOAzmKP8CA1f#R4LR|j z$cg`4PX5=+$^TY4`TRjnKK~`>@9ch;lh1Q<@|iYwa(~HZCOP>mEa!fU%gIkoInQbJ z<>aTeocwf?VOP2Mr|?~f7xNzU`Ysfhn2 zC!bg5N$xNCyjD&=Z<3SGTjb=kw48ial#|bgw$dcmyZtfu$Y|ul#ve% z&(D=3UPC@K#5b37zwP9G!}IoFIqQE>PJc~^_}g;&>%)kDB&U9s%gN6=IrXqZPCfh} zr@xNL$4ERIPcm;ytAD8=_4m^gXPr2XgT#TLC*8%R5|-QOI{`H?>ag6 zyG8z4n4d@G#GjNCpXui0J`$fzPJZ&q$xmT9`6(?YKNaQlOAR^ssVgTxo#m{*r=0s8 zBj+5SDCd6Pmvg^!N zmwa=0J~T=doTTcF)$jN_e zIr$$TXFbo$Swhk1zrKw4*K+pjkev1WB4@v@D45*GlA*4yk+WYn z$jRr;a`IVG&h@Lw?+HJ*m7Mq|i(y>h-^_pqGx zq%M@qKk-+}`QF{@B7UQs@7=vE;w9v)r;dDF*q26fz8|=goOSk)^Zmdh^3zAYFsx^=ocn!W zPW&7>@f+kz!}Yhzi9aVNK6T+_eu&Q_=ljhH$+_REa^h>sw}*8$iFj){*B>ljAFlJF zobOwETh7mYU(WZfZIpBUZ{%G6clqY9o^x{IZ@Mj+XX0;>6JJ%%`fJL`PY3yTVLjdC z-0ws=@l)i)e=h$qT>lF>@yF!EpOO=w`SxUfxUZaY{$2P&@`K@foQlc$JLn4X3y-C| z&rnr|38FUpC}e@8N(#NRF_ z{sDQ>aQ!-R?zfAa_+IjR!gZdD_)GG-A^weszbj`wE99lab-t8W3cgp)IuFb1g!l_` z)_M7z$vn3X@wdrYPYF5esVy%TuJfpz_yKa_pO+K=uAKXwAt#?-%8CD4P9F9~{IHzs zUtTC6UqeoOS2^*$<;1@#=X*8Zk}n9~mpDD*bLD(*@ZyNC zlD7!or?)BMJLG)N=Z|u}XXYn4@8g}4^F3OB$@yNC>?M=?wKU`*kDTubyiLyc1eTDK zpGtDpbHAMRw3f4;4szDhQ_gw@$XU;ea@I3O&U$9bH-!Amm;V-gnf%VM?`!4v2H!8| zIzP+*2-p83;uqxP=ZaFv{Utxw$XVwN@@iq7H_ORqQ91c6EhnFKa;|?wPW&l(@$kCuFFD^2mc4Xx ze~Hf{C%&wl&mAhu`Fy0Md_`DKdpZC9+9)~kU(^6!E-mJ|P&ocMwAUEw;z(rAI-$zdTU^(%V?{ebL$%)T? zcQQYC9{Hv4bIZz8h2Q(CEa&%9TFSGA`1W$*pO+IqN?tHr=go+}C+GSr<+;Lj*2@b7 z-zVqi9+8&`@tMjd^U3wI$+> zp7rv3!gaRF9|(R#&N@%Xn}qnZ<&$}4otfmFLVQU%>nSg1J&oj5!*yE8i615>ezctU znR4!TzMOn+l@q^PP9Ba#{DhqAXR46QXWekW+2rK^b~!({q@4UWmUI2b?Dc z$%%hSPW*KFo#E%smGk>5U&)EzCa)N-b4E`5-*V!wzbDOq6O#Jh|Mx%tt8BPVJ~{E# znXFVI_#BY}qzxRLq%75Q# zhW`}azyCY?KmMQ0a-Bv6d@}Gj2iFhUX z^KDbEQzPPa$8G^>atOpu9kbl=YX4 zczJob5PyHfAC}Jw@y#OMRz5$(ca3;&`6nU%`G}8_Zwm1fBR)lbAjHp!_^0w?A%11V z*UMk(l#>5l5#J|&Bg7w#_(?han5s&$e(?12L0wbUlQrVGmt5I&OF%@@dI-9 z{kMq!DgPnN^UJCx>j%#$e<0LP_K4?^Q$Ix_UP?~=+!OKYa_Xl+#GA{hpC=;zl$`n* z81Z3p>gOFf_4A>e`uQZ{pUbJAFC+f7ocj4*&iQgk&iQge&N*^cUM0-KG}V&z!?}<_ zzB9yUlQV~N%TI>*Tjk8vJLRv2`B`30UsRE|4E0<);*ZMPg!tBS>b!%TdhR8sZU@S# z&k=I!aIBnqnU-jZ{EeJJl1&b5!^^y#vQua(ok+akV4PX8W> z_z5}v`&Yy-dnj2~^lxT4{hL!x{}z6ut&~(_?Mjd@T;8p@TZ)9PgOHn zKb)r-Yr?Ejj0MqlmYXXAkFi$B1{AGp`29 znLoqi%%4}}%$e8a%#&#mpDkyed=~K)a^}g#h<_tzp6rt|Pmai$Cnx31lk;-sN!nV; zI%J+?k~2>V%b6#|<@9?+IsINueq(q&TUSm$HkPxVo^s~W0QsKq{_~3wA0z)W#7~l! z4WH{xliweFUc^6>(_gFQ)aM2{^|@2de(jZ$pL25Zllo!pd$`}LiK6m=iMK2&bte8&buq>B_4$OH z`s^;JKKsjg|8SU``W!8%K3|tppYO=2&slQnZGoJ5yIfAat&{V9;5IpPa*v$){Fj`1 z_*G6l{3)j%Qq@b=5A~2yPCaCmQxAFM)I%XT^-x((J=Bm>5B25LLo+#_H?@~j4_)Qd zLq9q7FjP)GjFL02#><&kQ{>do2Xa1dnlI&VJZq`hQ!_e$AA#U-RXhFDvBa^GiAT+#x5QKgfBWKQHHg)6`Ga1NWOr z&i!VS^ZPA%<@Ecla(=(1q?~>)FX#7L?w9lXEf33?4~^yY`(tu`zonC${pum-_f=k& zlh4=W5@ekzr+o#me{D?1+Q&;Qc)YTR_=k<4T`uCum^Y=u=&&r<)pZ}(5n5-W>gZ#Q%mIZ`#L%OzC}*Iea^}fna^}gCa$c|Xl%ETqTMdwJ3G?U0h>wvoPu`L< zPo~P5C-daYlh5Rw?`tByQGQ*=lzF%-;``*hjyM+aQ*xdw{*HLMM#;M3^=X!f-yr98 zN5O~}m0uR-+uaerSI+B{ha&!nd``H2i-wLu1G)~qV^Z9By^Etbm`J7MA zd@d|!K9`m=pDW6lhc)EP!@6?jVP`q>u&11PI7H4o94-Pm+HU=HUkspC@Nt zEsgjZIrC~u#COS=R|g}0OwPPI6Y;<0%&QDdl68e=ku$GyN4%h%`A|IKW#!C=s&eK- zO?mF{Jku!Rt>pA?$B1{A)4zk{^zRFD`f;3`etc6-KTem^k8|bp;}SXjxLQts?UU1A zN96R^X*vCMQGO`&OU9hrCLPn9nY^*=Y_3+0?IUqpP9oO=E?;y=o%=i_qf`HY-;zPwqoeyHcG zMkJm(jUcxgG$|5YOXkeu_bVZ>X=d4IA~#Cyo;-3@ttz|>yVuO`bAFtoR?ESX__bNg!;)Wr+#wE$!8fk`K%-_5Z>ph z8S(n^njyY*#5>5@uRe12Yp}djc%B&@@d@(sA^x3+e<)|a7RuSL<#P6Glbrq9A!ol1 z%Gs}Da`x-W7Rh~QU#^vt&zt1r^A`E&VGx3px3GTuwfF$jRq3 za`HJsPCm!V$>%&d`TR^yJ+F=UW;yx)UQYfG$*Jd)5kD`dp3}BW)&rhNPX2Sr$$x%1 z`7bUf|7GRmzq*|K*Ort2&T{hHQ%*jgm6Okra`O3l#NUyVw^lh5OF@_9y1KCf$)tOuTNZP4mqEHm6P*+*L`w6|EeYD{jLUbKL2VZ z=ku>8tCj4U@B9qvd@5^`V@6ek3QK%jD#9t(^MVE@wU8$*G^8tsF9F9qbK z!|$0Fk+c5la@Jp4&iC_llz$nn-(AlAj+XPiIuqo-hU-j?_$)d3StlPKKBwCvpC0_E z{Jr2O<-Ct{b(>_KpAEkUo?SjVc)o}imQM`vr6OKIJ}JaEmUjsLn7nuJP7&`R=lU

    31#D6UB8~SmvoPPXLPCtGv?;D=~_eT7%d~k^WJ>uu&%(pArCij>5c8#3*mRrtz zD=25am6S8z%FCH=jpYl%bNgfRy}>(0yoa3kuZGI$qY-lE%tSeTF-1;3=g6s(PvvVu zeXfc4Mme9S?27n4IiIKeD(8K$({kRAx~yHY9(cbrqn!7bu9x$EX+AmibBCOIxJ&*~ z`2CP-az2l!C8vHm%Bi33a_VPb#D~exg?f86;%~|Gg?^kK@wxH}A^!7-e<5!h;=hjg zxAKnR_mmDt{J4BTh`$i=%O6kH$;%-=OT=%G(~q~x>Bl?e^kXGC{dm8eeylI2ADhYP zul5n|Dz6ege;g3;=jHU{7&-koQT}FlfB5}~&ymj#@k{0O?;82t;rBzfMSPF^kr4k= z#D9}BAO4mzAJVl?)(`XHIyv*1+Kz2wA?l~ZqT z$T@$fMSQlL^Js~j^Jul4^JuG_^Jur6^XQ12^XP<}=fm@I&Z#sVlKaB>l3C9Al2gv} zULiT>MKL+^yn>v0URBOKuP0}oH<2@MpO90xPsy2w1Le%aVRGi%R5|rCOHTbPjQDan zb8J(@cgT5u`!V7_$(eg+BL26Wxp!5^WS!vG$(egMNBlN9{c^XQez{jpzdS6bUmD8k zm$q{HrIVa~=`E*U2FZDT8x`^Ka{6nEoc{Vi&bjbu#Fxo=e%mOgAHR`vjvR>iQ8~|V ze?~l2r(~Vb?^ny|_v~`|y?~s4FCyn$D;M$mPNhpoO#|s&OGlXXPyt1GtXa?GtVc;na^*_na{H#zCg}=UM^=o zuaooqvqR3j{Xxz=JSJxzo{}>UQ+G}7FLijOoOzW)&b+!w&b%rrXI_<-Gk+eDQ$J1R z)X(D)?;>Z;JQMNf@IrW_C zsboFi>E+aORyp;YOU_&^9P#3Eo;U81Q~%ZF%;5$RZ!YI~qhrLo%jvHna{6nyoc?-E zPJd07(_gdY^w%eH`fIhE{@Nht9N8W5{c`&8lDuj-FRpkxStp$Dx#aX+emUoRSvh@I zSZuJtJqnJtt?rjg>Rs-jFljK9Dot=E<33OXSR} z)pE|?t#aniZaMSeh@AOwLe6}+C}%#T?Vj9s=0jFF^C6d<`A}HCC%kV~Tu#5&mQxRp z%BhFe5$_;>C%iw|C*p(U)X!)+^)o?E{Y;fpKeOc2&tf_Cvr10=Y?4zyJLH^S2P1w= zPQ9IzQ*WtzBt%y&Rv!1yTUnuAM_g2aIyRfh1eBa#;Ie(Y>gPgw?`$~F`2cbBuj zgXHAx1v&Y7PtLy2l=JtJpURp4%jEn$*LpdBx3yKydGWoR^Wu=4Iy@n#uFlFiU()nW z)(L-Cm_g3pXBCuZ4Sxq$RL=K%+#T_I<>a%LoP0Krlh4+2zL%qeoP73{lg~kN@;O3I zKF7+*=Oj7#oF?act3HnSVmbNWA-^o-{|7nw{7Ftef0L8XzvSfevOdW=A)i;v$!B&s z`OGILpM~Y*vy_~CR*;jQN9CnMep%^h`57iBKkvx-9@G!zwZi%rM0}~7^{zgJHF z56h{CQ*!S2FFE&{vtP0vSZ7{2^Xhgv^QWYobykw|y-D}W`F^CzOED7WQ$9oWB!aBHtI{SIeIY-+#3^;ydNMK0PF7-+z&p4BsbnHsY7$Jhx=(pWI(w zZ)TJ8_uzTu%EJ0cj zI0Oqsk78^X6(Lq4MZ*Ck3VI@fetGA;Z%+3A?0g5V>)V&Zp8WR8v!3-lYrQFZ&(^O` z&w=~(>Br%IeOib6^=Sj{*Qd9^y?^e2d%xW^!+!(!{`n)^`{yyZ_rsHL?}v5In7dEB zA2x)0KWqwje-m)`HwkyYcBZRed&1qX{o(G{p>X%>D7gEz2=0EJ0e?*A{cO0;`zL4k zC2;rai*WbrTDZ@9dxm%5?(dy&_xEnN`}=#i`}+{w=lzKp{uJE%Vf_!x-B;cZ8^e9x z6Ei#se`f#Cy?@}(>>s%I!=Z5Rhh=o_ht=?m-Y+_HhMxyNQR6R~;g`X^f3Ajm|J(@o ze)tyL`{Da=?}vNf-VgV}Kcb)id~}BY75;IJkNn%*{a}y6y?-`?d;h!=?)|VGUHf4d zxc9@}aPNnM;NA~Ky7of}{(Lf3}Aot>>$IzS0t+2i289%AH7_5KIk>-{0z>-{C%>-|04>-`tp>wV#wbNjwh zb=Vm0^}Zawo6hg+X80T7Z_@a;!F}EjgfG?WyW`-_e;M5S|Fju?Cfxh{<1_psxc9@A zaM$N*xc9@YaPNn2!Mz`T0{4En2k!mwAl&=mQMmWR24~IfyYt@!eysZSD!BW#4cz(c z19$wl!@YlwoZ-j7y?<81ozH1-@1Kj{HSP1u;NCx1&+r@J-aog^@H^n%KX<`h=ik7+ zfBqBh{qq;N_fO>Px&8J2iNamC&EVcYuY`O5yczC#?hF5{>bwx{@h8AN{!F;Xp9gn6 zFNV9GpM$%eUxB-xUxmA#x4~V{JK(P8&)}}-ui&od-{4;FKjE&=7U#_E@7Go51#s7A z2e|9AJKXiz5AOOL0(X7h19yEE!(E^E!(E?K;jYgmaIg3C@PeNITsy;WhWq?>W_TCw zdfp9pJ%0yxJs*L)o=?DC&vidMx4*9E`f%4X4tG5haMyD$_#d=?_J{9N41YiQ;WPZb z@b7B;i8Fj9-1V%$UC%1~t9m@Tc!qxt{*=aFGsAC!yIs|?*2aS+`0R~{e3aq{oNMs{_X^SQhk35-1XlN{$bTKH^cMr^E7@L+;vzDf0v%` zeG=~cFM<2Ke{qIi3-@_%&+rc1`}0n?>vK2U`{x0;_s=76pZ6!>-aqSB=l0$EAqMw; zh{L@fc7wZ~d%>6M{2n~R4~LI5{@59QBHZtPmS=bc?tXoAhF<`8zb=QnUsu6>J-KCu z-wyZnF7ZE*MZ4)|-;-`~SM{vo)>KkuV+`|I&9hP(c8xa*&QyPn&@UC&+M z{yF3f-1W@DeJ&1%yPofbyPjpZ*IR+RK9|D%Jo8Gp>vIF#^|=-9`g{-W`uqg$`urB| z`aB4CeIAFqKL3EbK3jZj?tbuk7r^tnKI|~VcZd7D?>)m0g1er1xa(PfyPnJ8uII^c z*Yj++>-jOb>-ibD>v;v-_3Xg?yrm2G>yf)>`0wDZ&m(Zx=Lxv4hwFZPZh!6T!(Gof z-1SVreLdVB?t1P9cRlxoyPgNbUC$HYuIEblnYtc+0Pgjk1AnD{-mf;p>+n}={55db z=O*|i`aa!H;LiUZxX;&vGyGAw&)0Z{M?NvP@7_NzfqVaK2KRn=E!^wf4({{yCb;** z-f-`S9NhaM5BGjJ8SZ-i8{E(TKQ_ZJg!}o-6*K%RaM%Cl8U9VU>;FTz>;H4O_wDaz z_(O2_>%ZXc*T3LCzZ-sX?mlt9Hif%iuYtQ?Z-BdB2g1Fscfg(h(QxO#1n&Gl1b6(8 zz;GkNkN+av<2!JV@4{W5yWp=xp4|zM>>pcqY^)7;Yy({2e?6gn`zYM`{1xu~w%!GE`)l6-?)|pe41Xou{n`%h_3i?9zxIZEy$8YF zuRPrSD!|>Ze}g-p55t|$`Ecj+8Mq%W{vGc4x53@t@53Gcr*QZ85%>b_t0&;@^s8`hC81V;j6T+m2m%l zm@3?P*5LmAFkgZ@&+Fg~&3hNz`TPd%eEtqEE6zF>&#kk^Zv*%E9pD~+Fx=}s9PWCq zgnRsHaMz(a!)tKIzYczm*8A^p*Z)Uw&wCf#^?wrX`0HLWx1NswD)@QIXB)W39|HII zBj6st67Kv@gS$R;_$A7x0rz_EfP4I%aF2f&{#nI;9PaU3)aTaC;}^g^elPgtioZYH z>pc#BmBufF`}c305BK=bz&-vJ_;reZJKWaF1XA({t<0J0W7-Su-_!M8_z$$+NfqT98!tYTX{uA!?{sr#*pN2c1=YIx$*Uxn);3umNNx0X$E8Owl0{42~4R`!w z;b&>ylVHKh`}{WH_iCTF;6wS{aF72T+~fZNe?W28 z`|R90d;II+9={{p;}3;Dr1(d|z24Puk3R$c55+lehMy1LQ2&2qjTzpAJD)q?f7ZNr z!k?5s0C%2`z+bF<*1c?Qot@|U@K9p1^4)m!acqT_j+4! z*Yi%e$KMTi9UhqBkH8&&{m;#<=X$E!#&Fj^3HQ7yxa)r;-0_crJO1hLsPZ`r?(tW_ zJ^lu`$KMHe{&&M&pC{lOE1##}Uhk_vKewJ9zb)M34}fp3`2Pp)@oV57{{gtie+KT~ zV{-+3y_3S9cfEFo-wgNf0qe~0F8n&h|M?96HQc{f=MQlI{;og4{XWd!;r@Mn>on%} z#lNp_OZW!L^R;mQUXB#pzn3EocYXGSJD-E$&Zh`>J|(#GIUVkN&VoCiPr#ke#c=0y z1AGhB=T`V$^6$Va@*lx#@;|~I=P~%+8vo=BU-$C4{dIjdgu6bQ!kuRVev#%)!d=gu z;jZVNaM$xl_$G>f4BYuIg**TE!=29=aOZP2-1&SS{tZ3<{4(7C{{5@)ziIr};QqZj zcf%e3cW}r5JKXWtxngdA9e+#sdiuGD*TOyit#E&z_W-zm-e3v*O2t13{><+;hI{;_ zaF1`pn~L9od;A~Z9{(q}$8T`u+`4&Po520^*gL{+Rz7>cJ$@nF<4=Hl{Mj@7WANKF z@0a1X%ddy~apA}CpK1Ir;2!@t{8t+P5BUA^1z(t3Pmg~++~fC$->W!>!aaU9+~d!H zd;F*24=DcSaIg1vxW|7F{x`+>#SH%~JgVG2ET zuEP#9e0R9x9|8ZT)_XME^VYyHn_(h13yslkB58w$KW1+A>89{fbXgI@ot6t|Ihj^xX1qn?(vbU z=GMpKqi~OZ4cz~KMsI-o_oD0%_xMBM9={Uq@u$H({v!A}s?TL`|DLfn+~YfNkADE} z@sGeg{)JzeThEJ?&r9Kc-*Q{{k2HQKxWA8l2;Ae3fP4I@aF72G+~YqB_y3>87vTQ> z^|#?3{{y)H|1U;xj~~N5ev_-`*7HxQ&nw^_|2DYC9|-sOL0FHHH7Q(l_#{FGOwT>s=?>Z{@Mf>ItO zRXHNT-2yMjWBP2b>UJFdSKUs*U#UFO@Yl&R@IB;N_`Br=xc6rf{xOX&!M`Fe!>^au z;5W$Y@SEff_^t9L{KxVRJf{8Mh5td`gOB8W_+R8B_yYMDew}=6!zW)0(hK_T_)+C+ zcl-o=U7b^3|2+Qra_;|^$kT{(w0wI12l;IJyvctiA9;-5LSBGxDKEm4@(TRt@+$n- z@*4cN@;dx!d27mp65p~m`$(h>f1_@9;I2y-zNc>Y;BVFKK0K@21NecuJ%qnYw?}ZF zyD|I}-S&e}a5Gr%>GG)dm;G{i0{%o%D3;5^2I|4crH@Ga%O zegtU;l#u&z-oAr8qH}NGLmq|yRFCfo_{wOI&E)wP{7iWY{$Y6S_>uA+e4)G#f1i9b<-wNm zb!|-7ev0Ti8tjLFy#J!`O>{d3U!dD@_!iy|a9=mm@N<<<27bDpm}lW<$_wzPf`v>z zitrN^zXW&uGTiZNa6gXM;kPP&1D@9TYQnSf4%~6Na9=Na@ThM0;qKP}?tTs7N!?z1 z5t-D_`{6dN%dZ3M&L^gI*qx8BTXyH;>yzF2BoW8?WZ>SPuAk$q(*Dk2{6)H*hu@;x z1^AKLS4DV9UV@(|FT+1AufTWGb+rmVMBacOp>;LkN6B08_sZMwW91#V^Y6l){{Vir z;tb&*m5<=Qo{r((Cw}4WKDsYa)z9v}#Nh5r9PV?Sfcso0;jTjpe!Fg`;qGGw{;2wx zg}+GG!vfroA4Rz9qi$KF4VAB8)90`53T_)C;$3hsKQ;hr}K|CjR5!yUf>cl;vU@hfo0 z@$+}r!TYC%@!mgmxc5&BzKO3VaL4b!9lr~A{K1q5q0e|p@a%B%dJ6tQ`3QcVdG&m# ze{AD0ei@58s2 zkET3$D!h&M!5F?w9?|PCpNsd)qwpmgXg|O+8lQwaehTjRY50c}Cj-Axo`pM~0^HY^ zBHa0u;EwP2<6Q^GuVMTh%BK$R$s6#kRQD$QLU{{*xx5W`K0Wve8sCSXD<8mz@*(`c z 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≪y|21(JzPY3aL4Jx4^{jT+;PV64}{B& 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

    ZF2~%I@zgWKq7iuBdcu$+BwTbU_c^x>!W-` zDZJ_;bR8F`z)((3OfWf6P4Y^Qniy+mC?_Wh*gIS8Gta-ZJ9@h{={6Z@L7BJSN5`c% zi862B55Uszd~%Yf-~Bew@BI?!_gT(X{zF=3>5oo8om%?i>Og-IZslc`9Wnqin5n>$ z@69bJ<2&)|GJ@6~BwRS{Lts7Q*tu$A*(nICz(&S=h`^6t;A~L2ageg2Yasj=(bWYF z0QY~^!cUUOokm@XU2V+f;CFSHF2KtANX4~`eHLU*Kfnh&5sfa(Yniv@TGNaKHqqnW z5*?UEgy=J@MM#HV1DXV5rsca!$-3;d9BGOb0XH)T!&K9MpsKrGd(vdrot zlbH(annIk*pP5ZVGIs-BOp#!Ui0l|rSqk{WLM^r`gPLD}H`>*zv6<-?RICGNeZo;m z9S~yg2x!-$*g9{OY#svW$fDRMO6(0-3KIaGUKIOefwv(%4bU|{w$}970-JeYKj30Y zOSa{Aqv9_DTk7yco9J-XkhH9CfMj-aMMqYw;#XC%Is`T^6bg-1HJ;-&?he6z1;RGb zi@nIPfX5byNve}|lcg_4%?yRm z7z%oK*L$y8r+*Q_%wHjJiPuI4Ne&T%MmAy~b33p{@asz^2a(|UI@*z!WSQWhM+_X5 zaJ&*(4j}r(2FA6&qw2QZfy22Q*W?mnJ1~;W+iwGK<665~PrutC(C=*)==V86aN`;W zQ8%t#aG<9@z9i5E<614pJ2$SKy$ANM#;?m)EI>c5%>ZkbW9R-&EPFh{eq6f`f#a*ioFJK3F z+*@LuLC3W%kh~cMp_84Ug>_upp74c$E+s6_YR2Q5#J&~KJRdtA*Ch5+fL`#i)e&`E z>rdtX1oVxMZ9BsZN+Q{VaI;=m4#iK?R#?Y1iM=VHtqDsdDXim~#O@8KUr}rw*H{|n zI6x;B!8)!9d@i6m4{Oodacw5pcMxK_IVoD!tSvho*F?vY5PHt*Py?fJZ5g1iJRFZ} zjUd|!zmS4euH#xe+P^XIZOh5%xb|nt^aXwZWmtJ)sqLifxHbaV*g`xS*Cd$>0bfZG zpINy%n9*@fQn>^0eT7;OLi_E7CXc7rXvxdqyg`|$u5?@z72g5+iLiJX2*lQLO=7Rs z8}lFh;@CQ_No?-6vOVD_wvKB*qh8DaK-}&oj;-Tb6Ph*}&{!W^Yub)$lfk~+#gvw8 z%g>H$Hv_xF;qka8ZQ}_bOC6dcD^_90wJ#yi2#IR>ija5|yA7-H92SRYTpNNL6$r=U znuzQIxL<*Yq-^cBq}!fh-k7>DgNp#$ucbC+VKz*Sq>mc_Mz>=;Kq?|+e0}xxWSDt zY1%>QZB7N;;I`|To_=@lK)-ijpx@u|EHCq6&p>~48-``8=i_;SE*RXd;-KdSw;?e1 zIQ+UyWX1czZ9G_KId<-BV%fhS><70i5xC6@bO)8ovtLosr%`6;%8^%Gv^@;)SuZ+; zx)j4j+q>ZZ(_tlp+vSiojrK*VvDF)OaNCl~9|!b|kFBs?w5><@ z6F^@S#n!=1Vpn3pumygaw#L@MO=52dXmi3*+B&$gG|V1=`V_%BxCwj|pkW@?qP2tD zM6fR;#60JuXj!wi>~wGw9kU^HtJk3hMuXd8lEEw(Dr zlrejuC3gZ};MCa6=-?(Qo(J@*Q(<8p+$8qbfc{eyTL(9Zoy8(*4!^jjb#PnCw6_A( znXve%nx=!>M}+qQG|6|1m= z+Y$)8TPP$R#cm@W+(hFK5aep6Rt8z|;3gt#1KzwqL{heP+rh0T1p0a*_9qs%gWHk7 zj&-<&?BG@l_GAaC^NXqR;C3x=uI8$lGPsG14q0|^dl&*sy^xen$hb<{!R<>({aPrw z8BNxj)WMBWGwm^$Y>Z!U_cDXqP7v6WLgLVL5FMmA?yx`;4g~(0{dQP3+;)dC;OO{K z@XY>^T&=YHA(eq1+9uFP@%mE76+Fv-4-#I;#J2|5Kg<6tIIlZyu1kQ%o6o@hw}W&f zI1DlII>B*9t^zhYo4 z3?!XBoEkFw4+lLOzb?DdDrFwb8w7dB%}N{vkY?=YddLIS~Cneq9b`8VVvZsu$so05&B! zIDq2`eh8&K0rc{q=BjpoFb*YC)G2e~a4=4G%-k{5m8AxS&p02@r5>iITjZSU!JSut zXl#vm&4YlRcCZ$RW?&X=WDR@>^eZPJZ`s&FzKIekDz+_tVr-7`Dk9A=bEk-G1iX`% z5#u(=JkM0|N7eXy4KeY@V#FT{tjtP8maFP}Q>UD=ylv2lLA=z`1?vyn9yfu3?Z_%@ zAQz#)Tmv~0?rG_vmj(V&Ge~!qxTDSMu=icsJdZ`K+%e{BaF#o6?w$aRH_eg$>i9{7 z@(qNu&c4*oc_`|SVb?&;Lt}Rhgi9&g%M`VWa+v{SxCTPnH4xISflLN{F@9Yhp;cPD z2VV!q&5oH{LZkHPgEMn3yxRVK$>FpCi^8Y+d#fTSPi_s7r3s0(D0~% zyb84&RRI`=9Dy$jzG5aDCJ8V z$ezIW^D?f1Fjce#s>a`sh>1TIBmP)mluNk=!kcog zfvg$mp&JDHC=PbMfh>nv8K~^C8@RrKv;k)w$IbN)(0H>2*xejdzJYMW>kDlO$3WB{ z!>)nM!R3-`AiNygUWP~8KxC;_>HSE%21433kXw-UolJiate+r0bbTEsG>=16c=Gezt)ehZwGb(D0~%91FF*5vd=3T~1&c zQ3Ihx#{d{Xa7+NlLoC?{%ro&j&x4w)+AF}gnoLor%!#*vG2bzB?w`J%BOl;&O1TR; zgA(^7&qcd!^Fy7$ogvyh&d4;{U7UnTG`XkjQXA@{#i?;@vZ--6l4#`l)UNc=;?y|2 z+0;0qNi_0YwCCRP(O%$M|CWG~PA~F&1CS^1lN$jVlM+V|<1M|QV?9jxG?5pWlSs!h z#BT{yZqA3imeFxc(7^?oNXM2y22cn2s)JM+9dm*X<}uPy4dgQFki7d+DAn=W7hcEf z1AKYB!QB2G$WrQ%dm^HvpgfE#)7Lto0cd%={^ygO9irn$#9tSvJS3rc;ca|xN6>L{ z&@mCY)x3y~oq-IYjt0sj=(s27*yq#&9cKW!fjW4zMeQIJ+0l(zHkBhx4$Q#}RE{#N z-LDYM&%knYcs+>^A87?y%zhNg(NFax#jkJon#!#*)n50u8OHC6@Je)Vn_01L%rS67 zVZsz>>PwPpqenv&o_c=_hZKYGj)-QTUzzZx6K2ZMQzKSa)4?{WLc@aa!bsO9PS`&s zqpo0e?H|Lzt{@!SRpW$Nb693$?@g-?qfreCzTMd3}vp3ZIRMx(0Wu1v3JVG2o0wwzO)`!F~m9? z73JQiC*Lhq@xJ zl#=h6e5N?m?eAa?cRJ>|OtI82E=`%kjif9!Ry6pyOmS9mdqb*c8`|=DscPCFs>N1s zkq)D(T05alj%m0+q=kn9VbJDSJE21mSA5+UVYwJlCo~xmqy!m3h;k9cJlhE^DH|hn zLWS1lLMK$YSnB(i5)&J)Wo`W3k1Z(>Uzk!)p)eWr1;W4x#FYYBVT`EpUxf%#4vZi~ zgGt!N|7O`3q45`5mkW&_1wvnFbzHHD4SUGWGS}&Y7@^6Ck*qaO6m{gbK=zfm=l-s^ z!zJzl#Px}IqI_yQ%Vg`j($rX-5?9K#@Z>Eeo4Xzs<#H9`4wrO?BCb!w6Gi=~y z^41GOIR=q;ZU8nIRMPSUk>Yk;n)f166*^wFsq0B0o}i!?{<1;K6{2Od*CJG$Al0g_ z@5MxJ1y)j+zX-(b!344q4wX{iZeePnsEv#1Y!To-Vp<0=)-GkWCnJE7(6UlPj*@5{ z2#H%r{V|B_UGIJ4c9Hr^87b8=TJYh-#do}QIZ>rT_lZ!RLXt{IO7Rhb-{A2m>H>il zm4m9K(BCC=9jw;klnRzkx8-yi^b=vRjEU+~`z`B_2gxndf;kphNQAqnl^~Z;NpB*> z+LklV+-oh0GZ?I-< zi~GhY#NAyj^tgE+&>7{RHD%NEnS^|q=Ax)Cno&@*xFBlWcf2Mm!0(m8)d3!&y=G*A zdMTN~;3qB5msY(xacLyV-9xxt$(520#jSX6G5UZ8weBPM*aqkH2iHh0mp>@6h^@9<0$-*O6$`1~a7VvQHu_#S_A_>4zl?0`w@JD=7e+Tpx8N|QtNv;C zj@7vRz_{s7M0JTj-G#1c=^pG#E!{J0{+8|_ zWGF>M%h`Z0r3fv{T?3Kawa5_{l96jPW2m_i_yRA(Xd-Bn1AxcnncQ&_3`DY-)+ zcli_2S8fk-`%+fQaBos_a=Pvgx{mg-b_iryUE&f>!w*42|6olZ%W9ZKL!1Uam|*ks zX|N%XWi_BYf}buqsjQ!JuI&7@GSEH4gAM7f;lT#@=_Rma8h%~Yg|zq68^M|9xVer2 z+TT0`_A?GD@zec)n2&M#h9a9HVs1F7*iVn3NK=^K4nGwc8$^aOlcHq{z&lZdmgRau zq|{IQ1INoMR)*0;F!obMG~*#Nk#e-Cz)vp$x4uvV%csCk?*_iOKt}zP<4TfcU245{ z9?#1?%v?~Ak4_li$j8p{e^f`dlhWW8vCKP<4`p~+eXIl?m20siGf+ZHBxE%3OvYfr z#Ri_utR4c-Wtuba7m4#i#vFr67=d4xN9w?m?z8IUj5!sozdCkq39&sT%6pQR9RQi@ zaGFJ#R|5Qzz}0HcKMO1>dIIX};8=w|UnqGv8u%#6Fb}!+nUU<4NLtgXpwA{^?gbE<=9P({$}|-j zN$?Kf_Z2ErnU+D%%fR0)r>9NO^CR%asOHEh)sqt$)`nRZctM-L8e~r_BiePn^dzjM){bGvfROqf|y6hP7e(0UzXK)L~fv(!+?ubV61VlXm~% zl(K^*mt5Rn$@Nf6_Y4m?rMu3cOlRuBV7U;9J;DTMg6jv%m%(}0adWc+w7>Zp?Bx#X zQaq_U9f(;Cw*3jeF1I3L?h3Ht!E!Q1x&q$Si(DT>hSDz4axmaw6rp9glOR$$Se^#_ z0x!d8A{Y;rjA(9v%*~XeMFoT9LU5lg)WGs77%V>k{$+uTjs=qWEL*M{EV&dYU0dfz zrw?-EW3xQ@#GRge@&QjSxe#PDSn?^WBk+^O$6Oas@nCtHM<^G=OCgwCQ2@t-B^BLH zR32K321|yY@WAHOqJ!lJUY9I`y1}xs&*f(w_P67rlm)VZsIP1SJS?a(YEDd*g6&Hg zd9uy-eOz*NeIFe-^nK#auJ0RpC~8sz&t}dJf#)(481Q}HB}jf6eqEYh09^+$Jr0(0 zz`Dz^b8U!e^V7cXI6&rUoL;2NIsw+cuZHmFIDK0LYu~p% z)<=$=`;wU2tPV2`kogs-#-}6dj{#PPxqM#j&yc3|^2us4MTpfl@!W;_d zSO>?otqvn9P6vLDlPPc*QE?5RIS!6hsKZDe9t8e0WtfLtg*eP)q_6gg@*zet(NsKbb!?SSt>8D?7(R2g*`(Q_d1q2=_b!>~3?E$}m(j5-YK zUwRmE7&lmMcxKtbl21Um!E((&_Y4m_rn`m*9x+&cj>NuYg4;ma50>c}@PGV-o9h~& z{mr^yZ{naX#e?N7P-S`o?n{xK5Ha^KSn*)FfFef$9_dA%3nD`yoQRfl0bfoLT9&&G zBBg`nO~CKYvZSuFclpO zmZhMwY`K+`Hl4@w4Y>^I&X4}%Ku13Im?xij(UVWULkG`)A2D#QQrz~*G>VA&ekQ6u^>ip}M+PCl2P z^+eYqxT!qBx;K@`Da(msmX|46wt_7C&f|zS-kM(uIEhJIFa;-ZB}IA?xq!$& zijaMX%q~O*Q(M*PDKDR10wh)xT$AMPy&JlCN{+O`96m&_pg+#FTL3|x+`9CWX8kPI zzu*YE@)@l=zi&pQnEDq$nv21V-*TBb5BR}l@S}-$>B?`99N(qe%^eULR`me>hE;uu zbE@y2R7jx00{jGrRKVb_@+FKaL`u4Lzm9)O??76g5$@WPbXNJjNVivdPtqNf?oE1Q zrS~GewbFe^cT>7A=^je&O?pqI_n8HHU#0tz?yq!z()`>rY}=3Yeo7A_Jy7WbNDor_ zaMJrLeFW(PlpaF*K&6i&t)K1ddJO4dsdvraOM)Q*)QZxF( z5^jOPywg7bx1x$47m+60tph!9SQTRrtKvFgMHN>!hgEU4xx$`jp&Eu&ZL~g0m(P*n zi^m{QN89tvZPxG&_l^|NGx@`W-(oxH<+m$FK!lsTRaDWmEZLI&_S*&Wp3@;%QFRW^ z@}Tzt5K6YcjRtZ{EWJs`9kVo-+rP;>6Wk?B5pJnvk)@=$ah7IX72U+BT*p*q7P(a4 zYTu;uE`PQD)TA@*Q{QSL9liQildfX-2?U#T+XUiW7)S35(L$kU{uf9=#;dCC*)z_^ zizFu;Tb*=odoD;FX}agk35Ys|I_k)kUblODP>DGg+?yPtwa3fFTsUz+%v}=Vtts&y zK%7rj9$Ndyi|n3LoNC_kZ+674LsTmh1(iGtsS*_ zLyv9(WUC@{BcjZv=>=r(B6MSq9t~u;M^7Zb`=&gbQ#@A(kcuk$PDRxosG4C_+^%J< zjm;I(WR?RMISM;tW%%{aWaJoX99S>OJ_P~w zr)imKP}7ZC+M5&8&Uv`Ks2rK@R0%=@qf$C>Hfh>?gJwjJfmjuZ4VoX%Kc!ocZlrWe z(pB2_H)ut*_|`bwrv;;)iy!w8NZML~t@tg~wX$YJBQTSD0BgD@G~!27ZQ#U4s#6Ug z+2~?GVtCe!YV?zjGg`!KoN5U)Qf*^IstT4cg^DV!omW(~n2el}943rm!lUMERPi0dVO5XIS!uqDSW(4S-td__TwM>V;tPQI*g8CUSQYnd z8&<`Q*@jh(6_or6p)0DGyJ7as8%WSFfgG+JRoFAH!-rMzy}4mkr121j(97hkG++0E z{c`3jYQw7dj#Wh!{T2hj9z1gsoncj12ugm1&=pmj=u}j7K;2|X4im;OVc@IYlgQ!R z99fq$XG6oP_?FVJD$+1n=w=6#qcmTxsi@*R92Hf3A!t|?-)O0*V#hG7iaR0SetN`8gV6;+&F0i`)yRl_%T&mu$FTrWh)o=nd36ydC>qN4XgT& zBD~zFsM=RVl>PMS@g=Dam1*k(LKUWYQ9EKla2&`JbtiJi6qNyrC}G;&5^Gcn(L|ZNCx>K!_h+= zWu@*Asq_mgb%&QyYRtG3sz>4_dHG!8m~qD^=I(ZE-{a6pD21dny*=d<$Y#w8VTu@_ zj4^OCSkqfjm(>Z4&30aHLSxb>mKJC@s_UMn{MMj3#>?E(lrmP=y@EPjSF|#dz1*}` z?87wuD>X^gxL;egfV4d(#iPe1X1}&f0KSh@8gqpb|4ml2`UkdU3sJjcdXVsIzqrVO zSGA?S+Fy~pN?+Ud->splwzU_zt}VYFpVV&SIe%-*>b6N~0C<0o-`aM&fNKEwXpi3= z$JYSxDIQ-K$JYSx+dckx9A5*#pY!j^wJrCd*v?nlrAdRHhTrg=wU?Q)7st-ofOL=K@x*^_pYhFM(no1xog1ov)zX@Q^ zC{j-fYC?^7qcjxrnk#L0u~)WFB)^X+9z{7by0O^`QksX+jiqE1Y0)|z;gJ@t^JuOr z)uJ`W=$IaT656q{lSz^h^Q{b!#)f_>2&FP$I;=xMXyby=)*8~vxkv+tUg8qJNWOTk zt!3?2`roFNt>vi#);5Q%ZG~esXuvyL`xw&zOHggwr7_FY zT<>k$MS2mnX-H%JKccbK+(V?*tX&(+eA(*xQ#0vl)`g#F0spC4=$RB$UEP{lT^%Hb z>RM0e+61wcv4t>P>)u{MHl7AT4nEaBZn97LQ|aS0wTw$`nMkSfe+pfDqEGF6?FelG zX`Gq{LTblrU1lzI`8-}~NAp}rhaU9!mN6|(ua*px$Vv|v&DMrdTIa5o#!1ke=TlY2 z=%bE4CNbk$l7EI7a^z8oIlraVFg{XUO4klY6is)MCS{}LB~%b#<}0e2w8J~G(nNMV z0R@+&cR+)@PAk8yWym3BitzlM;~#-iAkn)+8y(gq-Jan$n*fdmy;opWY5Qp zp@w^)riURsCI+1XZqu05^y>wgNx<_?hD4I(T)2jt&81f(JTC^F0`7-p+rxI!ai`xy zOnqZJ>D6t)c8*5InC>Ecq_eaK(y6!{$>Mi1v`Ti88g99lt_$AAjxWa5ypFCf?E+p8 z$0vc=*11r|2g%a?5I!abMJosBq^8yS5I70oxlX_nB9P^WNo#oLJG~MTbDb0kUD{PKQsBfhwgeP{g ze9EWhtAUW-5CVHTX%Z@(xrw`FkcL~_B=0n5x#LF-pY=!&f!t^piG<6*$)J-gpUBAa zDT5l`yGYLi^BN~j!bx8*(p+lKa@D+s`#+|4gSp5_YsGL^$@CfUUMuAD9&GwCc$sN7 zyCht8Pe;?#d#+jDr>)^u1!+47bam1sTz0wlL1A{ee?txL)}?zvZm^3)!e!uS&`Fjz z^Rm28RKus9(s5v3>7=9bpTzRl)|yVDK$7J%I@Nr@Cw&EB{}d1HI1+a&$yEC~zrtsF zG;-%x-jK*UBC=?x;j_X%lcZgf>WbNLgy%+WLaG`U%}vX8p8GXNvW{Op+MLa zZwK$8m@fiaAl$e-eIDS4PQVkI&k;~R7OE06poz>PPMqO-%>hj~i#SEVF-`P;WE0zq z?kCa{1RNxE?Y@Yqj3b0$B{kq@M5AI%15{G;E~2KjP;nuC-ru6EEFT1cs{qb*0-n&U za8sMJ4flRQ-97@L*PNgyRPYf9R`as~>2gT)W%9hH4R7Zp)qKf1-T0~qb@fTfm`NbirRg$83lBL_%v_1gQYY?7@pX8VQOH#w_Thco4u8sLofpGKQ^j3h2 zoPZ}ZpI+pQ|mS_3@fPtU$--2 zOam-jwP9BQ&C}k7T_YQYS{sgVHtZ(Sn&cir*Ut4e^o!HcfVW|AjA?*2)bKg)^bM%^ z3_mGFj?y`Xuy(>R_Fq_1O@BdnwQH;dM`G>3HXB1`lI2HQYxr@ibR&efae`dHNNV^w zg0rFi&V@b)@FEXu>2&I=a{5D5=I@o;? zO1L5weSxF8>0qEY$Ea&}l#J=5dK1ci6w8+MuTi9_k`%?Yf35zG_GM5;&OUa=N%i)J zfxSk==89NS&2NUJybU5|a|tZk!JvBo!9a(`s56z4F`ZP`Q1+@=wxsKbB2AT~D6U;c z^{KRP0m9B~_AN;bZ{4Slg1r~79wHu{)3qEZNi7lNJ zb?Hc+o)B)i*Kos{bVmps?gUAwVCE*?+94fgh1|vGY{QL+&|9Ab(Q{oqPpBE(*{GV| zVM*seLW-P^IfM-ylIoc(#+PH%6*DDcI;mbn*=&8JNs63{xmIv$6iMhD#jzbIbk%f1 zM$+{W-U2@)rU%*9Vy zRdj`PHm{J9YQA%kz5rZ@?9NLaJu2zEl-EIaGR=o$(~lsx-06z0Y|cKNMppBY)bvlY zf-Xl>7q4IJjZx;tVu5hZ-(R3)}-c1PKM`zH_!1o8BS_W-5>nL;4N`{&V7>_Za0`N1@8mL z*GVSd%SpchZ@J@>z%3XIBsF~ZCv7zwFMZ?ZGpF5nIyAiOQ^Q>^({2#j#|gR>0rdB? zWEG&g@!^m;8n_*+-ryLVRDUrT?6bj^j-A7xj|e>F*UXZ!fCbH_${ezTlD|(b(Euz~Qs$Yx_FGS;!{=-4|0caF_j zT2g&3^L9Ack`qqM#9}zMOwy{kmr;5*@FK@1>UV(AD5pr2hUj9)<}OI-E2Rl{unC)? zz}LHZRT9?iPc-3DI;rNaNa;|h62~rMxo&`@3QFmun%~4ruZM!ZC^ESS_k?q1YAr(_ zs-?)imC}z_q+ocYAf`u%BfPJZ z;CSTHBs0nKrHmTx=9>;hc)Szj0Oiso6HCAltmZ3{>7@uO*7;4+)^Kj9oX$r04*aAH zNF>?8OyRN~03Sw}`%noei{Hbljz-5{&7H1Na~oY2FEMY2SgODBRWeBrNh)8h0G(v1 zKu*Ft=YriAl5({yE`%OMhf?mal|Jim#&NjD=N4P(CUZ*~ zJ|7&B9w&^xrx-FddLd1j;vR>abEUnZSPTmZcQBeTH{eRAmL^P85~lr{*ldYXj+Q*u z@B#XCCRE*wpAC@rB%0EoN*kk z@wtmvdL;0oo|=!!l=ReOYV=b~OtZHsE;sJ~l};*6xP#GzxyM(!q%>iol5oh&Y>DE^ zE#yIW152v8A6UBj9VL12RS@dF;VPgEmRgR1sso`)I{h*V7DshhNUMTb?DVHWfp-@n z2)d4*TFcOOHp5NE(l=J5V0fe;ru}S&+m5B1-C53tlGzM(Ny%aW2(+EeP=}pz@MCpp zFNDvG^@@{n(H*OAm<^9?#5F$iP=|u<^H6HK7Y#8PIHuho4B-P!Ig{tSEN-|eQ!Q!Y96w<1I z-^Wec+!ZzSzR)Yv4(DvtT86f>4Q}R^4qB0d;gN!v_OlIc@0MO)Rz=Bd!xsS@FVJ?j zK^=BVz^_TA3lUx(>y;Yf9RcTfyhH9B&#Qyuk@k)!-=j)u_{F`n>EE#yj-S_*)bNXb z>3ZO8Ucj&B9(3sm;1$+Q=%5Pg!zXXIpi8Rx8fSVI6xiYZ9nyA$tn1+o6Cjw@Asz9o%8^jAu1plu7?xqMnb`ib}jRLsaQW z=}(}OEH%lg<|@dgE$8F8XZ%DtyRoF2yYQu>!3#}V%w{9=gxai|@HIpimn=8yOaHM- ziuaXW_Ed2xom6x0zVv6P@&XfVEl3i+4J4VD`_RMWxz}pGXO!*> z#A_9T4+@J)lq^xDC#8cxCs}HeQ%wz8VtO2c)%b~Wwo|+E+Dn$eOmeS{Z+gi}+jt1z zsd@odg~lZ=okTw5t?uNC*X+PJndJX@!r*2e!Htu^^hrT%|Zsm;b*CzeeR zE9)!a?{<0h`bsu%<^L_BZ;0qwm2_2=nH|wLMly3E{!LL@H%Ig>5q)c=c)?NsaEc!h z(0ak+8qg#)0E=tS^3qSm0vZ5*na7_MJgJ@SInP_pW1jPFtV09P@rlRZi*XHjFL*!3 zG{B-&FL^KzwViRb{is-Ai?1To_7fGMwx5jXB@z8p zMX2qkBl?+0=d%(0Ttq)#A+_2aIoHHL5zyA^XBtpM1FY49z4Vu{fChk%@c1`^qc`xJ ze_77eo|DEkqXFo+-{Xy9Tm!yV8^@RiLajEEq|B8IU9C2XYE?n4)!#>JP3~Nw|GQV% zcH3A|)gr5mYO*S-u_h7SG@_eDwbwk-(;}ibPU{S_Z%UJhJq?^S(iVg@4XOB1g~FHMxvW5!hgX++F(Rndl(*0PpVMm0xZy{S$E%kTNek}eR(vtYy_K_nD>L{( zR~iRI`VJI*n$AHIMd^bh`VgUQDIF#OEseuPk;}t2_8kD9&NlKoh3YG%t-ekY%jvj5 z%OU@evvpQf4zpVY{*4iTPOIS3H$`^eEaquh{bEezGU;F*zO$kJ%Q1V2z{WCI1X(c#hNjFTbsIvT}J!1X8Y5^ zQd-_BDP>#x=eD*5xVJ>CT_2j%u))fx@QkBci_=>9kpkPm1PQ>H+Rk2lvhr$2dd@6) z`$e_Sj-%gP8h|dV`}P>r0JE))W*vDY+1!XUMxT_Jb#kQ8tPDCFmH0udHg7!QO63R9 zcZS)u=kAGFzl~PkMs3)hpy5XmR~vs4Nu`%Z^v@CfOGN(~(McQDgT^&N*B%ZNl(D%m zZ2mNWqC3swTg12qfM4zLEn{2*!0-3?Rxz#tUz}UVmr@@U$x=M~@sbEHTPZNu@EG!drK2#dj0&*>cfJipT2umzWuMKttZN#+gUntYfLk zVhVXqw$5y7u?svl6Pyc;8I*o&2H}4o{s$%(d3cu{GEgu@b9I|M*F%jw#3=lm8N(k- zl8cK)N*KYO)g*qBT%vL2dbLwc_X{nCKPP7HY??QHEKsVY&Kzj5OTF2A1DuEY?v$KN zvhRYKTD;0|G+*PXy#b(l)ijZI&1R;ClFQWAzuBOwe_#Jl1f8G2rZNWaP6mNs>6=#U z3UfkYX5|{U(y-0`jk;L^cvl!1i{|(=rWqD(e3++lRY)pt{%V1|skPLVKKE9Ca?aye z-!;>K&+r)QIx_|;gLo60z$}Q@nOQEyt9+b;;RH_uq<@%gaPHp(MP`qyz1ReZQ6zwc zq6iHL7`7qyF)u^Rpy#?0JxJ;r5jO2wxO8m|qwI%1$+E`;sa*@!GmntD?Uj*qfzY+8 zV{H-3OgXS9Joq|uG+!Nb_;E80Us-gAD<<=&7QadrtY^Wg@>*|+*h!7+%|`Idkj=Z1 zF>E;Iv%Li2jbIlFW)RF_*=42-W}#)K92dp=nDMUn(fYb5sK!ugnH{C{wQ_BP{Zxk< zYud5)-^{38;v4Lz(%BNR4K^@>10P^x(m~O=FY{`x3xDR7{7tOf68bIlZx01^f41sM zM9R2nR9x&-dqXpei``XJLhX_HP!t_PQAnAd%qaa$CnS5myz*_+Px@KH%;^0T8`WJG zDB}k604Ot1bMq0>tTRtoEM#L%8@tZDVzD~&uBEWilCQ6Itz5lmt(R0v(dm-HRCAiw zfUn{?`yOalZ>9mrn+qfOe8V@>-LZ=kp7EVz=2wepCawgp&NPQV@(5+cLbZhy+q{;_ zAwj1mSnROrqAsW^-~KbQ42gp0d+6?1+Y)9*&C}R(*UXBr+2%HcZZKEjT=65%*Mzil zHsW+MAHa0;ker{zIoMIQ|0qoVbD#df&$3jR3XgJ@X!-Sk+>Mgx#5s~`GRH94MBzox zuz26KYC`wZRMcWoR`72u9`#RER-mH@G`h$JgN6>4vxf-eN(I)i0>_9z7bg(PtfLjE zGtXNvXm?}m?GpKIi-#_YJ#*B~dZ1;+Zqm)G{?bORGe4Civc8pC^H~;B)f5euY3w0g zj@6+?={junGH@j~`IbdTzga3z`U5)IRGSw55J?U*WASrR$rj6-8$ETGrxtnYDNAY1 z_C(w|v()nH%tw|AW$3c^gJkbpi==les9M^_oW{Re>1>(Pdl;=^d6RXwsc`E<< zO9_Ok{gcfiJlH0?s+lX*Fz5%fA%DRdC#Cr; z<=1H*k&!ydCUaCLStX@DIrIhc4rf{5DDpJ+w<mV_P~R$$pS7Eb-)aKO9hCmzz&}CT$uv7lqM3b4apOH-vyOZf*zHik_Dr2G@ z%=2c98`gu9jz%WNLQEWEqBO;HY*K+>|BMWq12U(@jzp)tPUWLcjpB`_{B>eQR9KYc z5XO~Ycl5J_nQ`lD^phsu6aMU}Ej+corRJJ;piC&d-K?5A^A{^}ix~i_Y3dTXW@XLD z&K!#R$u?NQ!BpZ~GXTUE8=EB87Fj!JGq2YZrGndRY2`Cx6KEd*Q_hz=7tSVLL-8;( z_Fl@&|FlTMc~fbNXs&4sD$1yfQfE3?kvg-vr@DD+cS~L1+jDm$!CH|uhXLqU?(mSZ zk@op=mraepM*NmAGlslQ^KM$GjJ&zqQgh9Nq+CDqjAhrE*DV#g6LxWrstNHVZJ?yR zb>thO=Ns-B<&Nf-Ff*=| zLOI-GVIIx8q(#zcy4Akd#pp{NEo+Zf_0ah4 zz%deFGNU9d(>h&%F2_ztcYPs87_(~>h^6528T>r*=ZIkY_FfTWr92`qfuM7U>?&9 zTTXnKs zQV9;drfT=TH+K!$C5%u(J_EaGFslt(dIv3Qme&&4EDbiM_%O}dZtx*X;|vSr&B>k` z=BdLirS{D>7a;7idxgd7%=Mm{Ybnj@yD+lOEV8_!%$%0Qi#M$i;<4HXjPk-e5-47< zI2GJ54OmlUk^vIsLmMRw84j;A-&ic33Ot07VFY4wbik+|O%jNl;}9enrVmSjJYx~F zHAhi7<3biRrkyw+$a7}w#xhsSjNMu;D>7rdadA5+>b!F%X^!G&;$h}Tg?brMw7kKA zEevWmz^IlT>x+Sk+;} z?K;NgcZ|Y=(xyoxXu?bj<8*wOinjAUk(rhS^5%F;Ip06ShA|!S)RmsP!BclwYNqT~ z>Jr(~66T;b*^imf;ER=$Hv>Jjr>Azblp|G#CrP*l8TwD;NG&!G&4>P9CU!^oRv;8bq zJw4UdQ^hrjp-JqgK-gx~uJQ@K2$X`M8Be9#G_Lk38s* zM-{ooBX2vTnJ(@x@W@&%le^49=d;kikG;2LW~})ydi!%0n{D0%HQRiMbMVH_GzrIs z%eajH1!Y6=lv|w(-Nv^~BxaOEDK<+IRXLYv7dNJVrE=lbRf?&4V};(XIR3#+49tX#)asBS!PHiK2@H!D~bGJ3#@-XtnAPTPljb7G#Q~# zx-$_v90|fmHo748XhEd+5W*2^Z3CP3ZHQZEcDY1@uH)!y!*PuBY>Z7mXN+I1zlQ{u z7uZ$VBa<|SB27T?U{L7-RzC>Th@7(hGFbOV~-wnTFejg~&7xKHLygpf` z3qIEsuGI^==w4ClC=@u-3UE>#5Kd~&SXtB=4Mx3hMN#?K*()w;!370V{eDGJ2Ovjn zzLp&IXa61=>1ZH@=J!;&IOjo}Q@BF$QKjNRfa#v^(nUc9MO;)4a=h)aK;@zvB#{8~ z{(?=Z@ERzOB>q)uLr94^#1Rs^8jKCm?2D>53`CrP0gMJq#MdTzD&p0d^=)76I)klk zxTsko!?ByL%OH-qqN8=gae}E_Xnx$9ilHU|99+IC$pehWrDP<=5oz^ri?doH#yjWR zSg}HXo`J98ToES&{Znk$k9G z`Xg)BE%ArL~=tRpYING8zHYGcSj+wC)rEL zTS*QOaz4q!gj@{LKCN8gABd$jd!#&bLGQI6`NS-4WK^`!XUiGHXK;f2-CTz7G{cW- z#E0qDcuT0LHzxp4(b;A^=vih`B%LM=t)okj zfW3*(+ILZ9rUl{Q`nlGm)IOC7#Rc+`QW(LuK%Qumj9^m?lQpa9XKt(sZk}ysH2>M( zH3=g2HcDV??!FOyei-m}oO zf@dcvXf|y&Z8@JcdvGB_;i-x6B!%l^pP>Mb@ZdzKc0R8VO0)_JZ4t4)>{2+&wJ<_q zDEJ8clx zk&ttg-O0oCt%b@s%6Cl{|MEZVDBD2cf9WVES{0$_qaKHja_P#`SY=1~5W1$DBT+^x zb(CL2vMYC#PAG&DM;Xg{G@HstHPafn#dyn*#{}@=*`|$1jTzS$FN!y!z_<}dW9qzl zBYp9>qH2B{|03T}&E;VQYQS;2bX%MkzG;lRuX|K;26)`9z1q~~62eJWmoIEy;C4qh zcXI*Tbsgi=u#Dr18OIk#8CJ{~Ud$Nbb<8whU+N4>l4h1PQ_94wsb~f9mdy~s}iAwhm z(ieH@g3=A_A|Oal9SzROVX3sWffQNOn#9v~loBdSiX3rIS#PdE4Ti!1gGhQl=@^Ufbm14%L zUdK$skBYg&yV-}$-^$RaC+PPjS>6)V&8{4^F*_^cc;Sm5Q59QJy#<{5+akf)=5BdYF}-ZE`NYjC!RZDz$>5p^pcEozwWNW5M}@dlQUSEeccfcU>>AVJCV+hgvqH=7f< z!N=kT{Pq}+sfM2}bB7blTx;@%-!J1a-?YC%DV~E!z2V0O^JWK&Vs31y`Gy}dbVp-L zWNxiD{Fq_hwD2*Er9ywLZ+X*mV*A&yI$-}Sw57Z$Z@&{;f&G}q$&tBsRqb~}>Tk0@ z%m=2OhfjgQXjUU$3|Qe505Sv9rh}W{zkjA`d;AqoWkZKt?&5ijzkFdP>ou$BtX^*J zJF6gKJFCF>n>5-7AZtgYlf1fl=8>zcHm7tfu7+N*OxK&d9|_GepG6_pWd3D&btbu5 zHO(~qlA1eQ6`ILS>zc8q`6V?TQw=}F<_;$&HO;TF@tAKarzyqrYL;Y8^E;7wv#CY% zW?f6oH~a>rJG^hhQ~4drdb1qoy!mPcUK-oJrd0&n_eLS!AhxGd_PwUib|(hgZ!ol- zB89fcUbc0~qYyG#IS2xe_BYW{-c7XpLVwui=kBx+8nUPV* z`R_Q(t21X=ssaDqx9Q$3|ET`EZ_^ei#6Oh(ZUz6{2u7Fp-<}b&a{t}e`ftxw_g|d@ z50}ko(wC9iXx!HsE?d!zr`Lh*+Qd&gYjf9uHxA#VKUE%J!yhuOJ#ZENbh-2!0~RmM!SjV}m%5JZ_tqqQ>K+fa;Owd66?9Eqou+~LKx zz%*{82j&?%W_&%gUv^_7jvn*C*f0)pnf(w!X zFj^e7V5)b@ulNF9gai+4$ahz>LuHBc!kQ4<`!7;+{`-J;I9l%N+sv4>hWFnfV*NKT z)PILT*81;4uWp`vp_5A8VIGA4Ho0Dd&VSq4FuAkLI#I~^?}nCFXF6G`0snoqNw@ZY zRR4Xo$@j4R59Pmy!GGJJ=F9u<<`EJ+up$3_)n01vRNVQ(D?;pY{(Gi(IC@a<-=1rG z{|zG6e*;7PcT>n(|2@mAnr)(4&cPK!KtmboqpIsctwd3EORmTJI% zXEgbK%|ELD&S)}!tv{Im-VOhK9!8h<-+x9(@W6)rcZT)f9e%U_HuDZgHw*r2{^b2P zh*A z=>0c{SpN+SJO72O_1~#p-8{oDlE;U+9R9n8Wjg=eAQGBowunN`f4f*-o!Qk=4fyZP zRo&MAqx$d7Ro}z*Ka~Hz#Q863zP$f#9w96D-g?wH^*E(CsS1CrHh-czk$VVxZ-BO~A8FvgO1X*rUp{s}4Ecd5Sy0v~( z16y*mi9V#!RwJs&25wiQ^UbFVgO`7jQQFMd2b*x^&5st#n~Ft>ipX5E zE^qU#g=l`F0$b|^Q5O<@zndC`rK05Zyb%3>dcRpS9H_+RG1Z(KT2QNz7CPa z_3XA#veeaI_u(phZ~H~JvZ`1xYrp&p%L>@V5Sf~-I*l+5HB=)w~QZYbhib}j0<5^*f^^5uB95PA3YqaS}#Ga z@B^)tqoQvW7t;LHqdtyPS#2IY9tD%!XS(jfe?9K9O~cIi4to1+ZIb(iBi}iM$OHHs z^thzrIwCx@F)Wlo#r#Kh7iO}c;Mo)MD(3IM2_21(o$v@0guk~;g&@4(OcAcYBMUsx zkyt9Zr$Dn?O00NzUc=h?LD=}HcKRMTGyHgSd{i#Mg8sRdS#M4O zRc}V(JkRh0)A3PxGelcj(Y(oc>fct-^&o3mWS(JV$4BKkP;rlC;zqouW?IUrc+`f2 zukEXz;vQF*yB(r>f$4o?oCeBy$>W=`Bu=&byczAOqb)Vh{4%>RmXySfUT|wqb@Wlr zE{?(ydC)TPaK5K*vXsltvo`#{RU$Sg3rx#7g_){&`j9PH6bD#7zT07`db10tyxG=< z=b0yMKAnbbGRWPpmRWDU1qJW2Va?ehbAEB8n!LH+$GJn|++f3tN@{AG!$K|9OD*Ni zD%McFVGZTYD%MWD)DB*o_L4f$yp-RP&`&|=~!kW}2e!Or-wt=YP`-Tvdn ztyo3;o-~hoa~!C8b12Svv#;ekPpYwD+~~78(O5}>Z%Oa8B^7nEK;HDU)FNYwg=gcA zqL=IFsrHr%OZ$BHXbb3-kpvkDIbCu*lb&bzeeU?k)HKSQ4XmBGO0ZPDX#py4j1A8- z{4#iah{HW)ne}E7D14j&XU+T~!*7wt$2M@b$zJ|+kv|FNMP~J4NjO>`FS(0IZj19g z!>_K#hjar?z34B1>&-VfucSk)mku#+erIR6G6yT^2)Qp6>csbl;$tBriwYjGBfsK- zygXh<`nNn{mzPKE7z;Hhj{!COh@C#>TK(1G7{D*XP+It*YYgB=ruIdNBAQOR6m>x-WrC$D1u>f5ljRcq zZ|)R-ohANSRV>Qk>Mxd=H{Ct8rKPmc>dbyNJkRWF=R?j;8Ng4mOgstTsiBr~D*kH2 zC4TE2_GG7Xfm!cnN9%vZlJmD^N$hX=d9#^QQ)gMqW#>j4{@*GQo0A3RV{5g`TE)|AcV9U;zIa*8vO6jd!`q(f^8nT-ueY7g~P3c^6c@ zc?svddE9cHCw*bV(@bi8%4x#@{)^OgYww0@T56G5YNu&l7z6kxmWML*)Yq0O9KgST z-i8P8LDnR%n*;dOmYFvfTdLli11fJO*zi2l#!@b#INV>ncz00sW=ou%vpqM@iRwQG z@Wx*L2cY%lbDS5Mi;5-TXb)Lly_qkPH{(3d>`^2s-N2b%bgYOD7ts}Vi1pGT=FRWy z3|Ho0B^}{P2k`jGV-^<&a6Y-qW93gCH&($Ub1Nq8_G#mlKYg5J`T9-u`bS^@KLA5% z(G~c%naas-057DYEAY-4y#lY<3(X}x8d@&JPrCcPF2feeM;vitlIhm?Y|Ms1k0IR$ z(*hm-GdnfbtL^*D2KK6(8M)bBN17RTLD#N5-SF?O-*q*+Viz+AT6tWq7xcT}bC?=6 zJczZoN+f^n?v}bMdYkuQ0gsvH8e7B+xknBwb~h8ZXB)r6m;V!GsqImU3NI6R)B*3O_z7`#{BxmWe^iQynekRP?stl2)LPEvnA&cpg?g zLk0WNfH{KJ93SKyxYF@fEB-X@|@aP-NzW~_e>dhxAHO(xt1?wUq zbJvN|PXXl3n+`6$*sD0mthOT^(p~J;%f;UOf(yO&&VsTRdze4qVlPw(FZ5)L;A(AA zJ7{4wRUB!~m1I}F9k{3~ZwE8YkZ6!|##an8kM7Kz-sH!)Ydm#{r_Qz1)Pf}tr(~No z(4b1!K=8DySK!t`rWUM&cm?rVNM6=LSR`RRB>1k2GQVJL#Bn*|x%ClrCw65dZ`>Nm z{DL(SA1hiXDYu$6wO}>N#aii#)>IR(X!&R>Th%JfYn^c`TvH3y{JhGQt^1Wz+29)B zAp3<5J_{Qi(+d2DK*ebDV2@Szop}YmLj}LVZ&tE?R?cVKtY}4RXytrl#p`J0{Nw+n z)lPeJsIcy*7A$u(W!>SZI0Ma|uN3n5eQO@8_G)3aJ*Gu9*X)Y<&LGS;hU0fK)8zC7 zbDVKW=IoTrBs&g*Q)Emsy_;3ofs3LK*$If5anzpvc71QZ-OMSJF}F0cFJ9cyjA0&n z`)zN;xmMNgC2IMyfxVC4$1AanzCK~g*r!;cUo+jL!VR)!-)868k%slvHrD;pzoUizd&SoJZ~MP2zA8isSu zxjCFSnsU0_S;VKbzCW$P`OA^JyScBK;A?W4i9eo0b4_it-64s)T2s{e@C}`C!OTzg zM9ad3n_|faD%D3HfTkSy{iwGXsTwNiG`ePwB5wgoia!{_MM^4bHtNR3Q* z)W&UtmMgrLGU6&dK1ko`r3-Qt*hNaj^ujliT`iltnr;6V7JB(NlAV~myzu|;8`a^O zs*Sow^34hicQXGM7+zTLuC1fs@95QV!8@@P*dMa^f9h56I^1qr0;6T-KBl-GhE<@; z-c6F9tXy=v{(2cRSb426g1G5_h{n6{T`VHs;)BRQ=~ALAhne;!J{~HFFDMEg@u}|1 zC51UqRdi2a+f2A8P)JAj1pJc1dVQc}KD2y-pR}R;WnoF-uss@BQqcAP`^?XKSwF?! zRGW1(qpG(_?(6TC6xGVlYg4b_vcgvuz`J># zdeu@>&FC`GWNG0xFI?}b%YC%=<)U$UVSg{Ym#22NRG9NS1F;#m#ikn0g52S7S#G${ z0(o<$r^Z^UoXQy%3qzxSlt9N1rV=6+FFnw8ba=wmxx0^K83!4z2=lOvgFR!Kp|8gW zmL9%=d)#220^pY(79oJ82fB1vdRS_s7H)P_X|-YL;Xx>>mwQ%vMuq>zrH8c^#I|9o ze4tsoFO}{F0H3sRaOpBNmL4vIBp$!Fi_`Un%hdA=mZ;l1Tgxs}*BdTVhYBfPdWhSL zTSmdsLuT*a)?QrHmA99fW`|osc{t;-^ss9`CV7?xv6APh5uO@ssi_4wZ=4djge<*# zlb5?UOf%fUnOblM$1C8{gS(4^cUf`MM5DPoIl*^bl=%gBbsU#V5AM!R-tf+j>T!2> z<`>-E@v*S<;O_90yALy)pTC77q6jelo0a8snB8$V{@!!_ve2 zW^Y9|SEe?i!{KUg#{7f*(!+dzL8D6#Yd5z`4}Wg1((Y37I>fO{4+}(XwDfR~S7NX5 z?)3><#(l*S_ZKfcJW#y!u+T@DAXYDG#+lYkbFdq;5b~=I3z}`aADiKE7MyREgtY@N z#&v+DmOtOjD<^?86Xi^5HX#xhEfMOHp&$Xd?MBG9N*po0}SLIk=vfiS>qZ3XJg^A-%+*RV zWtC{k)B_J<%jFub`Qqto538omd}&qGnV&4B1=LCkvdS*#lv$PtSATasmL!`%+$9w1 znbj#=>1zW2yQg@smUSBMzWNMw*!KRZZ@gtzn?7rH2PFSzR-3jsz^^uaW5%rf|(h7ETz{}&iuSn#fo zN5OYExMBO9*b3|qSzOia=vvrH=f;DpzNK4XCltDe%ic|re#inlg0gE$M_Z5!Ls2w5 zh;_b2-0C#el(;$_I+9gcQyR_eMw94D{C3F04JBnEj0I9}f^uxL#w{q8beQ?dsIs zH*5TIw{N~>X`+LdMDe$RW&r%$<2p8IM1$kLKA{7SNdUZ@bp^@u^W^^}RPq7u=zw>1 zzf|zl2D`?R4^t{^$j3m`hc10J4<+?(uot9s(^+BrSofMG zoCnwV53aC(lDN7padlJT>Kp!*SD?4q5Bm4a>~{MRy7QjUq6GiRP4*w@YNP!s{p+-> zTCvf7Q(d*Lpff`^F&*!u?3K70>|brPhtm~*W%P!$ljs=V{=C~bh1CvDp}Q;X6go!9 zZ~|TWTg${~Ws>`X;#uH#q&K9Ejg|a%kGj!~e%(-KqY-`gy z^GPi3%=36M_1NT~&taeK{#g|-en}aisoqQHzNAd=eFciy=eX;pad_fxZ-ADe_f@KH z?+rG8zB2XCKG(IUv+le54`?plzX~$n0sejR{ocRHT9x3_UJ@R|qe_2-eLV48Yaj0C zK9AE)_VIKdT%SzW+Q?$1QtSqsXO2?;?0WYXGg!yp`44C%ynl6r&3(1hKl>jwXDQ?l z63B1(SAjvjxEDl!Ywf{_tKt4tGGcjq@-Gs+X;by`cn4Xf?DjtfPVIO)e)?UqA?3}@ zBS|)v*)_Yh?3rFv@&0Q ztI@YrU8JaPcwp&V_jj|H)fk^a=z*pGP!dabVCj8IE%O6Q=PUdi4lJejJc)HS;b)ev zRcDrZ&Q0-daB3;{b?M=aiE7Z#M|CgcqP-RuEd>$v&3I^(`e!$|uYHlrVuJsG=4Sk> z8`3tsF;Q%ceKv_mdoOu|efiH)87i#$dSfVegl?+QYxv zWWTU6$vhe4w-bNbbn8F6!v0r)^^kqLraA}tg9)v9W`O@5l6%7`$a$wg<}KmhQCq@k zhaq9|A7yj@D%p=WIK=7$GHfYt>DbLkZ`P|Uv6J#ayI#SGB8z+n0Y z`y{`I8bme?^cosj_w)P*V0d>=&0z|q5W~CVh;}QvOf^H^aEi{uN{-FaPs8G&+&ext z9Ll91a+UMIZZcV?H1Womi7y~0M{O6-u+GN_Mr*ed(OUa9ZM1e*c=y~NrvFpXJ>ugf z=bnc6C9>B3E#|?aHyXYj(CQ=7PpyAR+3CQh)a;bhJouV{)AAb{BZSt!e<*UCnA767 zbKfDR*T3K$8`Zx%7KYcq04+oPOU@S+cj0%s{|5xc*Wk`t#QJ0Z2WT1cU$Caf{2gw! zFFSaZn0;?~y6<-hbU)jDS?P{DB>`Fn-=|K*g?&Gcgr$q$D-hq{-nuxv=mWG2;s*wf zXf1Zpr`FuWD}%Z2OG^KsUx8{aPY9$(PLM2U8g%-_;gJ)dWr&=h{mv9QC0+ig%PniBhklxOC{yBv8L7XLxYY4tm~`@FG4We;mXy*ksc8Mr zFZ{rwpCkQC`zW_=DHqo+zw{ti*q=yTjYwSWmALBeUnQG~fYn<2Gyb!+_No3=QmLin zVfK4cDY`o)?JnhPS2j_-aoj<{nHxDST2%(sqyZ{xKz3ev#W}E%B|g zdh^@uUj+9~u%mKt;`K0l=OsUS?VG3lGV#_siQ>QY&H(V=dS4Tyy5Oz%RXX7M1mJsW z1b!mPyINh@LlP?afL(RKZaQG74%l4>?4bkp)B(eEz+O6F?*zcp`N)-tSLyp!v%``_ z>Ay_s#Hqls2{y#fO>dSof z{y#g(5h+E$B>S)M9FRe=LsLk2$-o?+gx*iE5owgc;k`8ZM$hV!&r*1>*w*Y~kJLz> z$xd>(MiQskCN)x0EGwMm_0cKWiWSR(K8ErOy_ma~^Gx#3zM=Ybdi_MNO ze&T9I;%ai@>ZHWgafz$L6Ic5uu6FmYyefFReL3CVX1DlIRwa02cB2ow$-b4YHrhX? zf2r~=p)c2|tLCK}?MKyB8(nQvSM7B5qK8LUuX}ixY_#9=@Ge2u5{4|uP($`4mbV}Stme6`y5E<%XbZHOCw+HAP)qFFt5>E;N#9Emprx)GO5aP7 zz(`*^bW2)w3y|#ZSHGsD6}WPT*!F|!v%iw+!GhTa7th>Nz1yWM4Uc(~lL_?Rq_Y># zK>asWKVR1R-&=jtSIflzsb2#R0>i$q`s~YCe>~q4pk)}fr_Py}eGNR?n*H=yhd?p= z{_5Q>FBAP?{6A3rywbl6>Mx9+2di)TT3Ps?x?+#`?X3S}Z?68I(mj{OZ?6*t_vm>k zRkArvUHo>;72HV~>-S{6KJ-oY33MM^pH9~|t3f?$qPQ(nI)TM+k5@lPGcLx9-_BIX zg?Kyii-dx-vtmj7HL}Xrlz!A%i%Ij-UwX(lCI^sKOq?=!OA_b&j%20JEwT7*`x0U< z7r(Wp<7HX=wtY$PI_3X}ZmnIPR)A~mMgF~3a1;iqE2M%|YzNSC@U`~kn1=geA&cLh zs$N2rhKt|)udy&Y@U`xzs-L=&Sq0O%>5Jc7)|>w5E8DLsiTE{f0%K>+mF+cg zFcH@6)VT^j>uch~d*v*zi37YWuZihoK>Cww->SaBC3_PtS(@ABl|I_q8vB{*zqN2t z7_NOglSE`+`!=JQSw>m=_8{@^(re$oK&Gi=L!q5a6qU7a$usv$eZ=%B;)G1G_U)PK zC$HhSGFinW5~2jL0(z=R_YI-$RG!q{3qY!xH8P- zdr|hvp2>Tm(Jw7lWCcPyt0b9^D{XJ^6RPJV;to1>rH}u01d#R1^Ha! z-=%{*My6GQ{72khPX4KH`~{x~>ii%F-Ie9v;8^BscLfCb1+?VCILOC_txUvk!xCr(d>i(NQp@~p*fNFRId8*4)?oagdi@W|A}&JO z)$dnNxr6mD*Lrz-^`0Bb#Q(5ex~=*z<)S~#>$g^~-&iK`1NHx2^%Po~QWo(K_5WM- zo zlgK)y$uj;SP3YfKNFSPu@&6Kgo|h58+hlY*5v{eK@RwoGiXHzi*k`!b{sUg3p%y}W zJhm$y8+|;g0`#}m-h}CRX@|D+Gi6}b`lGT4z>o&~nd_eyuXGOv2Fa|GJg?wES{oQrb$(EN(@#6u zbh9(hL;JpG|BUr7*U-DYdNq>&%UP&_21RY zUY7m0>fJVl>mQ(HICLWD#PF#LVP{_4ZU6n7zCilv?O*bF9q$m_?8CRiay8FVTFF?znf9jbZVbMpSlJ35MuYFJT?>kfcrs^~9FOBu7(^=S`uqV@MzKcmDK-+JhL+Bf$ge}a?6SGBY)TYrtc zk}iY46z|_^v-cIw-FE5+-gNihY9DZeW%X*=yev)(<3mU9w*FRo4+7crv5u5;2>95W z6(n4ZnY|Oss#;o?#8XiC;G0$-g?H-nxLTeZL#sXfKW6!xbe8E~T49F&PB3gvEme74T=`ZSiT<&_DRZCP3JsYLguv*glF?zBih zmFU&WENeg74yH6!=h6jda?tlI_z0vrDnS07O!m-kY%!k>K?jn@7Q6h#3%;l!6m>B; zedApEWYKjm=*MMneBNTi1B|Y&9`Z}hKV9$uBR+&B*8_}35{>ZzMtppZI>4yAcYx8F z;NA@mFgh)s`q`e>{e#==o6mVaaez@0#XrC(1HeDPXcK*b&-?QMck6%$5&&{aI8z7I>43>P;4B?*whlNa0q`^$_ekP+qVwbIj^vzXtEcGH_-q36 ziCf;Bps((zN=l!qDdzQOqYe&zCi><8nYdyiAxApgM? z_C<-SDT%8uB(6T2xEh{}m;_6NRir$qy!2Fso0f+lM z9bdVHO)li&K99yE!62##?e~f?qF}A_< zaGzy_ZF0CzcZC;zxX+|VnNNnpeP%0!42S!yRR|dl_qkIcL_FN*T}7Pp;XcQB6@g3( z`;6)t$}u5_`|$qqWXCMza38e^J&6^1xX%;u*HzIL_i&#l{&6pk>x>xifKbi7U z4`A6$7;Ei*)W_gIuTOK6y$9U~*9X$Ic8&*4PS77XfaUf0u}`yq4ZlA2>{E<~OOOO;$!YyFj8?iOr$;HZ%$J=0 zOX=4+OHPv|8+?51E2RBedp<7Nw*8lX$1J04+do!O zcHxhY{gxE;Yj{ecs2sr3l@4GL+xFjzpZtd$g8Y7}5!r+Mv1g+O`96xW3kUf(P?TMGv*$WeFjJ6Mw(WPp9nEjWhiuOw z$iGT8B72Zu`{$@Z{x4PIx^R%MA=4^B-j#PWgKwq2760FhIRyD^su9_PeCZ2OgZ#Iu z#&zK!zmQC;1bJ5u^7K_|!PKGsR{Vj#a#WV<4E0;_6+6mX|D#_j6aC=~FC|K)f4R<3 zQ~bZo{_pbogKgta#|OU3x@Vok8}SOGm2M92e@dSD9Nte9e&@{Lg>0R9GQLguw#&yw zi2hH+ulrkB#C1r!^mzP?zq9`3+Acj7ANY@Q*1u=n_NlqR`sTb@EhYwhp&FE75Hcx@G| z7hh|);TIeH%F5sR{7uDUjgJ?s*=ojg{6a+AK9SNfJ@fT)u0U_a2mPx|^bhIS{a)!` zt_|Q@@vA%7|DC9R{~_WKQbBOTKAKN-L3-<@oFUaLl)h@ZN% zO!QCPc$P?AkH`DJQ6^O%>i<~$>2lOR*iUNrtiI~aaQ_Er88-d}C278GGwQa})NPvs zxizFeTISKN^bfE8VB2QUNZWsopZr$1^#NK2>r=OW<-YClFYzZkLHr(`>nxhjy7KLC z>jSh5)|YO}Zfdg|6pQ^ry!ZdH{qlJC zwRF61?=wD%)6#0ha;~#HKQyc%P zy^Vj%g8O)|@$XyRQaAoJ`0cEH^ScMctgBQf*G{5j2mIV4c_&z|X!(G*b-;fTfbS`i z7fIgL9`U+_N_HJx_auT4`)9d@)x*r(h zjY#SH{O;(c?ep8v4e#@N?>~v^ol>iLpWlH0q9?r1Z)E6`6GER{5c*_U=#%T<6W#&0 z)qj$72d6Uo2>SOF_3x>6>ZUo~&en%qNssZCHufKfFm;&dr!L7h#V0KHIG;%pfzZ?C z>RSSvvXkhW^=`{fa(K#SJywh@%b?U@)Rf;~|Iwdb@jF45{oii?*gr;D=r#Yr753o| zdJnI#_fK5yp1A6lxayX;de^7*=5TJekE18I*%SQd%q^JRIn{^VWS>V@8|^RBzqIa} z_S`K}SM7AQT3vO})s^b1dHGuVM!Mp^wf3!vs~`JU8|?=a-l}C_A70;hwZ-NYU>{y^ zh>PvU7b>2??zp?{*|&M>@xK8YfAxE*55L*eUhpl@Hx&ZdhZl7HcTo~D z?87@kA>_CZZy!HYzNCnA-iLRzPaeJx@6U>H$UZ#YA9Af~HkePyK0LLFB#9Ne53gr@ zkt*6?hulN<MVdU7TBgAaSizDs|qfA${EG3**YqKX3u4>Xbk@UFTuZnyZ`Wv&0v z_|LkPiT_haia}u5yT=#BS${lE4$v};lS{QTjv9bRRIN$;WA71vPU)V@&a$mU!F_@B zflBJmvR$h=HU7qLKfSj3Ci{=forlsyI zd-js}7P3m&tp;?b@i{%o9G3o)Ozte}Mp~tJpi+o)ey4Vp&y9+Jn9|NNH7J%l%PvXB zW0lt>lJlLZD$#)09K`pif`<}tb*Cg(4A$!R1!*kR7uX}S@7;Y^)tY^$%*UfRgm}Qi$Wj7K3F8#60QDmCRHWb^* zG*j7H)|p$&IJA?0V6FBc@gLN1Tp8}V8Qh11{MhR(|6j^sHFqTi@KtP#y>DM;8D-ba zD&pUzzwJGMOv@DHm0dTb-*saUZNPP4lj>>YK{W>K6 zW|`}M*WfboKb-wKB;GWH^)G|juhbPz+_$#-#-G@gbE;LSQfisc57aCC zPMRMGS^C*CzIL~=2#k=#*du<@&@!o*@U=$wc<TZPOAS0aWD8_EYr_mIl$FuKPaW`Uhwk^e^4g^HlwVMcwwU@yjykAE0H>-+1je z6hAaxy>GbtiY0!i7krkzTl~@t;sdk{)(1yGW{N%%c8i@lA_}6y9u@z!5}zse@{7Ur zet+NF-BM`}1e? zb6Qo)_DfQi!1LE|Cip14o{@3V7a+)W{}-pTnauFU1jBYChFdj;6a(oD|B+zW zk(D8@`yWaxL(`0=RTe2MdENifJ_@~yrtjipHkudd&q-&=MyGdTlNvYDBK`Y4bpGfQ zaX%$kqf6iA@mJ}q5BJaqd-%gW^ueC=H81I%;+z)e|6jKs9>8JR1;5I}E1Yv(oPPk( z7%$G})#Pe%e%xD}KP0&CX3_U~QvT?OW%Xy@Jm%n-b&dVUhm#Kz&xQymTBXNcx9>?w%)kCVU(=VD=x@N^ z?M*Z<=HFcJjIR!`2Jg)edf!G!U!qJp+b148W)a{tr_ZQeF?;C5f~9 z@Z|L#2PUs~>65(PD+RuHZ4!R;p2_QDZsvVho~&cmrCi^Va(!FM^&KhKccxtbFy*=} z<@!e{*PBwV?@PJD_ndo0xyIN9vPd zeAC;1vKQa<@o)C#o4)?d$M~kkzZuRq{rsDK_@=*qvoGJ&`ZxRW%>e)A<9xG=e{%re zSpLm{d}I4J2k}jy=m@?EOc<3)b8srnA*nQnrqUe7H&wk~|Egs@cc|Z<_p#`kOZ3-$ z;#LABXBB+~&S8?i{-&~19rkS!#|M7_gHOZY(=qrA3_cTs>o9n-!v!uBJPU)*c3$4y zvf?}0e9O1x9A^?4oaE4(Z{wqVXW7@D~i;UiB-|Gs(N=a_XI_l=56)QdOYd z3soKIxLfH~;dVRRH{T6#U#uERuoS*;5w35~U#rH1KHE`sntY~Y)CV%U1$7mbFt6CNM?DeXf)1RgI|6f&i%V$dOCkU?e?iI-I zsM?W^dq3U!y8XM#Ix@|Ee&*RvaK)#4fV;Empmf}BbnEkZqw0k8XSb34iqE+LpMC-E zn^jHexF;p~yj9hl{%mZ(=X(L4{sEu2tL{t3y_Rm3%%=j}Lj&CZt9msZ_aVCVb$2$BMDa2Edg~R zhb->>r8Mf^E9rx{cL!*RP+r;l_B1pXyXSlZmUEMi1|N{uwYR#?9ARG!Zb6FVsKQnf&OuzTDm|O+4X!>I1p) zoo1cS&yTTfrr_xtkJNj1k$QF}KRR7qe&Oe77}h}y9XEyleVm_M!&e^a<8V-THXhT+ zz+WW@SyNxy1IpchNXOsz!ub^WhaXK$m=OMxZf(+T{Yo)N5jaovR!?N!UeqeJKRJtI zaVA6gV&MMtkEi=5r!jz!R7e5tc>;61k%37)o@IN_r~j=1pHPw47CiT%2gEqEAJ(9Q z74FLcG|ABNB4~<=Af@F#W9+|?a>tNZj;ev|r4)RHbMzp#_&~-vb|77yPybuTbl40% zk)hwF3uQ{G{m1p>=NIvFWe~f@i!xQIKedhl=M#!G{MQBkFk4*9tXffv(|Jl}u%FjnS2=}(kGpZPdHQ3mg+2EBV7o2t6^WOqe= zBtPK_<0r2H@2cc=DucPVuMGBCoyuOApJ0_JTmSKy{P>Er$JP@nnD{U4o3GlBIgV1HwxzcJCXt8 z&gOsl*$75jx;I_5DOy(XA9poFDcjjmY=H<;D0>IW53SqUgswqy{hJWPd?j= zpB#QXJ>iR#f6k?b+)EMYDuL{=8MYq-CNdlT$D+(Pz_Ol7xQJc1fS>Zkz*e$z;Apy{ zPZ17YH*nF6X-)GM9Cg%`lcv7Y0A`v7khk%9>PAkB~Z^Z^!SriX!A)esZn+j z`}Bzf@M(L$b^9!sF>TuP`caJwrcG&BGHTkArVB@1u%LeWtQk}0HO!bhZT84%4dh?D zpS@3?+MZ6I-TIt9sGnUkh$bWkT27y%dXDWmf!yE>w|e$Gnx50tf`3V;DRk>gP%@Q& z7^}M0cKY<}$wW5Yy1f$|#t>R}|F+wNTE6X3YkR13`!I6PLH;e@^h#3FFv7Mc)H1Zs zUe<)#QAFA|P>rT%_9Yli%`&s|r1)B;O*hh}8&eNR5l`#McG<<}I4YmD+82dD~(Pk5Xy>!<{3w}8!94>WoR11SF`OXQd#EX=aTCp~`*VOiGE z$~skNJd>$?OfaShVlQ|)9-9gdfX5|(;FA(;S)WP;dPVc;gh~mAenV;vV@T@vTFN~oS45ubT-76smenDVTEjTS%i#du;PwM8eKO+@D?ML!9 zh~v6+kY!Cy0J^blf&b1*fXVEn(Pt;Xln0XFbI2Di`{LY0n5w8hFM*y2@+k)^x3P)m zC!P{B&w#1vAj`TS5eB3Ohw8M!lrN_zpo-G6W>9)i;mcKhW}+6Vx-u*2Nv|$mIMPQB zq}Csm$R}T{@mqw85+W!+vEbQzk>EKA{ggqLH8%+e{A5}4k_F1?ufdnsZJ5e?^SgQZ zT4mA&Bkj-Ddho`c)Z{jeP9$^7TIfCWYThCuqj=-|usC2i!6&`gr&27JFd`=kE|8`4 zByn>|5C6upmi1Jv#PXyoJSA56_^MT0dAQ2kt8Aa60)ELJnP54LtXpjpS5==ZYmJ?B zN1)r6nOfyt*5@mP@!49=-otu&c3m1k$UPq9t0aM)Vp*5j^pABpVK{w85Aiho8r>aI z+t2P_eeB?G9>GXa`1&SgAfI{Sna3+cMR+bAfwkSyzVb!A!K zSL$*){DF5xC3}a@g-V7UwLz84A+@SxHY%(b@w!v-x2zwg6g*37Q_?t*{3w+VKl*VJ zU|B!WjAw+q(p*cYN~Q4jOXp{axMnkc&UdOJ@!j32jv)o^NoA)h`KB}s7J09yE;-;n z66SYLsN~a14Z%I)$6pH+VRJkggu&5r+60u=}?J7?dCQerw7-7vQ78z2d-- z#|ZM-+PTyxf1K)i&{g9s`$URwye8pEAHu26gZ##);d>s-dET5$8Nz%1R05KudD=dL z>O3VA{m=Ghg;K#))*JTe>r)|oZHy=hPt!px;WQw@5K(6rvlh~rCjAe=(lJV5k}ff3 z9W2a_f|EyKd|sE=jl38C*!enGzelQ5P6*J1S(%;%M8PlOZCgT92>L?6B=|MM3b2FU zT+}s_V1^aQ4}NV+7!*7TenH^_s<2vYz}^5wP0ouOml^q^xI z22IRrIY%ee@6C$J3`_DB?gXV}KqXNk7s4qzFa6%ow>p_^ovMTMdl0+^DCTh^8!pKn zBo|tBy z>R8O{R0CdhI$=mdQ)j?S1PdrGvqCk)(p5*X2sjy|wVW7Hf=&kfprhb4reoQbh&G8L zVnL!r$;iM6Q>8_%VL~~wk$QrN5+I$*l(%ThbVeX_fd5f68F4Zw17RzuoKltnV-ZDW zRtPdFTr}jyVFQ}%9B4&p;@AWnbsLZ?fZqWp(EY+%7>fYj%v!pbxk)HRr-Wq}NmHbQ zUP5LS6Vz1zlDtKb11bQLjD-C#ilP)TWCX+s-cm_{Vp~&mEF8o-7KnbJC(h2sh*GHN z=Q>u)JGA*S^B)+3v1XBaOeFBKm6^rCJ}}H6B99q`nxN{z#vC@BTG_p$b=*Y0&rEljW;Mx=wigj zZEIkyL8u6qV*h~#0VC=Lfh>X@ZHy=-Of~>X6fjZ}AW0Ra1{gaJAcAUHe8=0?dAjAe z&~z-24uAoYO0?0A)v$`*xTXIYrB1_uPUj3?iU4tuT@Snv*`qYq5-m_gs{)HlU`baQ zpon6Ct)sxg4lXb)79!0Q!(32`#%T*67N4D2jG6V(g*VKY=TmmkiX^gLW^sYM1uK$B zYSJ8osU6{V5J);>q@s>vzy=hZ&IL&V&d|wVLnoYp%OhlRRK5ZEup>&Rf>;r$8kd+r z!<7g`M5z!B^#&SBKZ!vD$i!@yoV?EmQR)FE{zcMYJ>-BOq;FC|^qdUbqkA96lW;%a zWJrn73Jo(e3XEAqeMg#sx|9c+t}AFJz+4ps0fWROmlOvk)I>kpwjzTBd#QnlE{S3y zUQ$IH0gK)@XqI(ZH~>UKMQCQML{3Dkz;qu%(yeHdPP)K(5y!WNpU7cXA-`J@6fWtWXBmpjiu`jK&HXu zFTxH}MnwYwW2OcmG}J7zE5!U8)D&P94unkblq#c_UR12Ea6si~&~RKvF5t4>D-kMNI%zw0m-;xD;!`0Pu_q%Akx? zu5kVa!3#iA1CySxX?Gozuwd_4jmLt{p}>=xcHx4=nbD|^ZAhxS1CxpRln0t2sjiq~ zU5q;aAT)%sU|bX#q^kuOMM4psOvy!{fFT6;{p3nMfCxaiU`(V+T|u1^LwqX7st%9y(K&hbUVHC1wB*lpkAk%M0{wNL5KtVWfAd)Q% z2T=UFz__(j2dVpF!*!v>mKVmqtLg!Yu8^4t@X|d2H9*xzrXd)NlD}vYb(CD{=E_%f zYH=Sqv*?^iFXJ4#@>!i)+=Id}1L>SVvkyR$N;EEDK^nAKvJwFT!Uz_tWCc1=0#qm} z6AwsP(Wp#ZBxOaT5)K1BEIczOH4uF+Q$nD+;03}2sA`~;5tVR@WNd&^IJ*p#&a|mI z(=**N+@A)f01)T~3oOU#{=s@(s98FLF(3pW19W)^2XYs27@ZQ7p&1B?jBHTE?sQ~% zVoC>D16?mD!2}Ls7Fku`8j-*wGdGz9EvPkOh7)mzjyIx=>8GQ3d$R_W9LC9;)~33a8AD_}oKCj{#SB#H=;3JQ4u z1VXX=lC^q(L3mjH>$1rX#V~^DPDVJUFr61@$N@-Fi2^dK*^-f{YG#Z8mgFs3bfd~| z7%#>VDD^UI9Kl*P+}!FCq6UL09m3Of08s=$lIo)rSYY-vEQuNPrA05;v6i7Xsgd!( zk`ulBP-Gw&sE7#7ggt1L0C!UmNJk=z=vsleHUsI5kPCp*P0JOK0+5*!z%QbvV)acZ zK{iLsbX7t9F#}0P!WbA<084-*ZxKLd!6+FCSH`SGH3n!BMQ9C5KvJ0)VpeV@oTPjc zt18bT|fWT@b>IlF})rhanvNgcc8DaAZ+2B?ZxbAax zUu`Y34jtZL@#ljw{=qo{bD+)}6}Tx(=LJ$QtQygBSHub>l@t}M(g=wXK_MVLDab$s zNGj0?;TA^{8jd=3LSzeqMWr*y&qy4C=_=UPnL4P7*Z6^#sRB_a1c}$QA8v{VMCe)| ztAPVS-Y}#z6DV>3)WIy}nDElI0!^_QNN0q-A{uN%w8#Yrd?1no(gDFh5&_`=un;rd zUx3VvIUtn0%>qVXNk+n-l{U&Ko}?!QnNdNCY#KT3_OKS$#1~ufp`&*bSzBr=+D09v z!0bQ+Q)Gz+H$b?oi*zSUvJt|;u$B|_azS_|I3V58L0^&BgQ`U9I6p7q9N_7i_OKdj z;*Dn2BxW`0V~7c?jipp+R%*N7TRxf2)yL6Jc`2-L;GP!-)M zfTc5vKJ5rMlPs(OJqHov^o<;eXQY{q1e7p9F_Mpm3zEBtNQoi}rqaJnIH?SK0b{Zc z15KJ66P!dZz(A%!Z7(o8Ah8nJmB_X#k(~$vx-jkB%I}_{+=yVQ()b$TVAw}yV1JjvB2y=WP{l|JgDqM#8e0KHJIBoTMGhDPyk!#r$~tcOQML0H?TN_ zeT%lXiuEU@LX>8RX<;x`E2+e86|hhmfFvW}`-mXNT6v+EAB8}vh3U~?0?+KAF@Pm? z5b;EF)$%|!Fee)sr0alkeLgUqKd6rqMa=kuOav_!gp#*O)aq1J3U{wG0_sS>T-Ta! z9X5QWCBGfnBY5&LR|GLVTdAnPGbuD$g%%5{%u=ir4;YDT2QsB(B;JAcp*N3CfESl8 z3?2o)D0D&O1n9vp7?HvdG>A9RiU6kuVuN3!tQpOtLLDz0mxqQUJpm!-g(H3zSP}e! z#sq)@?BEv`L6pi17{U4+2o8Qhm!tfmFPg)|>ogerpq3ld2T`R#BES>6pg;hv8CE_L z@}UiaEBFN!0f1a<0e!c3=%M?HW&t1vtbbb*xhnB>)B#!LMVTizopwpa_295KvU{06X{v{Z#-8u!CRF zxB*ar9sI_uLqudFSb!h=g6IdJ@Y)mb34Vd6(EA907H|lDUFxSCIvlmCusVv07ET{X z2!4Tk0Vu!@evx+(EWi(bL1PL)0e0{kt(KX6Pau#H{F?bUzz%+q?Fbg&2fv_708oG( z{6_Uh!MgRJ=@#9|K-u8eOlg1>FbIB8pWGA{@CbfEbvFYA41!;vHvk3L!EZiES@gt< zT5Y3+PLx(Q(<=2$&jOzYzlNC?p#?00UxSh~$mswDFb3%mU9)y!J?bVz_|PE=Z6%r|^C)tW}kMvF<=sy5cifpsTDCn)z3!LeYj` zIvwZ)1CXRLNkoz=TIU9If&oY*b}8OOX@l%(+6P8>QYjOkfTSQ9nOLV&RrP>V=5CJsx-CGIN{Uv%u}+h7VIY_t>x}4lP>3l?mI7jlGJ=F6W*{$tg>^MTlV&f}L9~0U z<+7D=9gL1bz?hO!?lS`^AI$ax5VlAaCoK^@5p4Mc#by?F^R;-*_}TNmgcTBP;n3LR*Q2Z?oNVMm4t7ZJBr zE6u3O3DwLZ&}Nd6mkEEE;^|UN=}hr-{-o?XB90&sP|9M51#CnKkfdTd5@@MWb;l6jd}^qfp`WsN2zt&)SXCkxE8K z#8K?ZFF==oCCQZ;OP33g%)C&eI*}i%iF02PdLlPJnRPX@OVv#@<7;MfZWeV`$%AHt zhe+i=6%CUmNZ+FB!&zsL=79h`oWM+_@eDDV{xv3+iimEfL=i8saUke~`OLkFhOsi6 zth?902ccA%P1byc=F~vNt;{BCeoNefAWJ;+FN}K02Fb?Yy@SZiQWufWbrcj5Iu2+8 zC5nMbmD%KUw-v^(AKKYu5#C@b3xWV40EvJF{S`csC72PVm%3wN zna@Ng5i2XuKwq--py;|9Qs#k{2dP=fiN+R76liAi4Uw@7wJ1JX9uiCn0I^3fofmzK z+!pf@V5|z(N&~DAZiQRN4b;#rDt)~N5~Wh&Eiddh7Zpn?RqEOpxf+`hN&~xQLjeM& z$ROz%(TM?FfGz=&s*5)dk-MIe33a7Vszopm#|RC<@*qX*5G)T7(H$bHDALRn2C5Mv zHAKsUG!F^Imm0mWM1z5pHH8_5TXZzgLxCv`OxA<+*crAXR{|3d8iM6Pir7VuBQcAF z*n?TAazjJ<78<6P0!>V}FBg4!3xkxVKfR5uBzS$dGJRGv#Qib1ZcSm?Bv4?kTu`bs%k8d4<_|qc z=qR)XwGhigs;p&Txr)&wjObHI73C6E9S2wngwreOyO-;v`aNVNx*?J(3JN8l%`mIw z2?ZUZVu{M1uYoH=g|x0j&D@99dwH6xd%B0Us3yM1im<{Wx77+UYmqKm+-K57M>gSy ztH5?x+l-+_VM@VmtN_N<{gaEDt6&W>Rwx%y#!Sh|Jk>JuQ>K`s2ydoM=(N5EodT8l zsa_r?@tR4ODEz?k7XZ>ZgAq$1K~kJ({n1%r2qsyHX_rE34tPloL>GWM937&=VGab9 z3xFU$fG73sf*u2Un}LdHo#YK>{RBu-iC_oQY-S+ITO4}_JG*%TrC1U2ptR5cD;g(B zB|=!D2o)fVxNHz1V)9&|pzo0jdH%S%M5R;$ymU(7ewsh35hGetJe@z( zOh*FDb(E-lpfNgg1Nq<;sToL@#Zd$YfJK1<>0nd?zF|RX0>olLftp2e2X?+L-K<*n zplysR;&k*k{C=re_Mr>GuIzFpf%;7drke+RSndv!CW`*9L=hYEbQE;bNj@;0zrg|T z9Eva{dO-5Ui1|Z-LV22qU8l=|)A?W^CO|qP?1E18AW8)YrW<1B5uK_i z=IcU03YI7ZtJadWNy`DMkM_^cgg{lTz_Or0Jdb92i393mh3x2bDKOhVoA1u zA#N^E-4Yz{7@FtcMi&j*Z!?h22zJ~dP^Sbr0`}%j@pS%Cl_(S+XpGJr7^kCfJjmu- z$Krgjf)2D@0pBI)*qjf<>C!q<5m=HfphX6Po5_|{#@g^8(_`K$4M|F9mack_x!Vgc0BkKvJBTu{E1BlZ=d(j2n_lL<5wOL53m`T0Srn2l3ErNd-~& z0N*3mgST*oXn?ZxpknKa_~!!y9@0w+u?Gv`4bcFl87Mk`M41l^=xgFL9#ohn0*MHz z^8_L%KTT^``FnkRzJ73-oqT0sv^R z?-+5`53nz&7Km9sFrcrAvrR?nyg&mOa`=*%KLDgf21(_`3@+#d6%wRtKrNM=kmy{X zt|AC12of*1Ay(mPVdP4#8%XY!*|u|mKt7Jn=YZbl8&IRf!!W0eKiK2pZrA&J|V9vh;qy-ic-FQ*$ zOf^GzpdRFbmIrC^6+y}&SYb7ZUe02r0aDf!W>{yUqrrtY;8<6)!G@9T#>xscOudHi zKm&@F{3bZ;dq5F( zz#;@t&_yC40I{@CW0RVfqF8N%(B?}JE`VaE07P<138BC#*n9vDF$w#rbWmfHJ~AbW z4FynKq5zSCw1iMlqFB0d#leOelNYOw>V^U}OApeOf*TP!7pSXPicXHH3|%+cNAVFo z?{FnN?{JFlApIVUk8~7N7CH`K19k+^WYY#Q17*ZY47?;&RusxB?XaN)P>=|6AukrL zZgr@f4rpi_>`wtGHXk680wsh3^Rb}-icJEDWKs#C#wHoN85?R$UaS%YhBm`+1W;@e zKqTc$2n8m!L6ZO!n*-A6`5C7B-Pk0I2Fxk6mVduw=iy=P+VLgOkt2V%T7vpH#!*; zafTHBVQg5+vFX48SrjPFibWAcbt+H3W{m_8g01Y3^&TgaO772P$c4QHoE@5Ejd5{t z8Iy-bB<9d8<3*3iOkK;&&puK)dsR7RR6<}y_%ABP%i&I*;z^Vs|xp};Sp958O13{~O)aP=yZ zxhaS?4@I5#R+<%}V2ofM^Q^G7{tXAO>+0aV<*8&PVB@~Kl32-ZM0JxfPD{4;v@a1jY zGbVHBnY+>XHV6d{#U>f6Rd~cwDO6gAVykk2>XDNv_m*Q%QMa#ia;W%@3OH9+*A#5T z11l>bme{9iMkqB9TZifM%C3$Uvlbe`bUIMUiwu$)2v5;E{_SENzd6vXI3PbjD)kjR z0XpAfKyNcpF|Cul#g25at6Wlv3IM3gK$5pON}0l<;78?1u_EL_X_@VdG2tZTix4(I zp%$$j?jiYc72wM%rKs zq)ULL>Jg7N(ixd=8PzGlG4k;1RHk@3f2f&`1eoh6QTae)bmj)~!FfDI2I)#t1!;q8 zB})iJI?3@b*dEH=JMm==wn$Q!7K$u_UdFow+jH1?iE(q`i#cFuE>U5ugYGRjh!Q!C zKL307C3$@>8H7o>2N?|f4hRL)QMNT%FAJ(S05P;SVO(PcLZxB8pa4TPGuA=(0P3P6 zm`(?xxF{h@78~1^e*t4rxFB$$Gxd6U|ZDbP@rkM zOkFrdKa2VSfSRoDbSSVB`@RkK1DYWepWcP}hCm@-tV4)2$N}SGz9E{ycm;fQ&w?Bb zK$MoR&#xx|Lh3^qroc{aaN&!sb_oT;Ch2b}O4}>cgCZ1$$PC%0(?)HW+G9VzyPzy$2abCOw4?oY6}M)zzlb>yWVmk}XCo zEfgsaUDuui6c{%aHC!+6a+g6%vDhpVTrNX2Kpq<47&jLv z@IN*|4-nL>A(&2Aswl!%ppsI6;5j#7#F)a7Y-QLn6GXt$d&*^HUIAX5@@-Uy9`e%%XSF` zvjZ3r2dyzVMugrJ%Tx5SMrj|xbh=Un1a_dY2QWGIKgI>3q%X>)bwDqSq%|V->L}zX zoXScF1vr0JT1dJjO69lH^zv7 zRxdx4+YwBsD_tQQ`pMWS(h`vpB#PJ}qNAWpnh#9pZ(Al=7*tsDOP)}viYO8gXl5Xt zcmCR94!Rr=z5qmN>zyUhXP?bnV1}g|fa)lM>2#fCrPQO8wN6UUTAM(zNG_rx;4DN? z&>Lr5Ilr$9>6{(ax)w2Og$@$;nKadrP55D7>YOlEJ|3rilttR7uIo-Kk=wKSHM2UA zSYq$!tS}b)JA2fU(wn26L9XjTUTQP(QU-yMSdyj9a!{|c!dL{wZ(-VueAil>le%=> z$+OKSp3R_6B$n7aIxCDtP%|H{ih7=zt_OLkW4R90?a?mIy$xyOY#m_5UjJpSX?U7hl~rMU}UY!Ap={$9>nwluf;*Pc}{*-~hhWDBT6x?3<7LG!6;n@d)g+Dtr~K^@&4oY}In#NN?a zVJw0gW~)MGoUA5gPI0h zi)zQ_@F^i3oAaT`)I_0Ka`MbR>BCtoe2NCx(uJp4IBSJZl>l2RlOeiOlJ^w0+2>cd zz8Fmd7JBBwVBk->fys@ef!-BcP#L^hoYKO_(z??)rDYv~asDy#EWqMYfy2~%y3`rQ zgKU1uI^31PtN5le2(XTFQGUk!I$qt-FIWTh_wD-qBfMEP_@BuPLtLN?hQPW)WCYskIyRrMFZ6Gvs5| zDMqVH?qHdW3kuDWZIMS@>e_*~Habc!t0WBiYXxS<)i3)O04P>6e6L%#*uV<*ZuVXe ziQP_3S390ck0!RmNNk4hk4F>RY}Eg64gdI6G_m0G5;`N!10>e)d+LT|YZOvBe9X&0 zELwc2+X`maV%B0EOWen-Ph{~=w!w@a<3zCBJFDSFXQNb@_PL*!E zXu*sTA$6X>51a77`@wIBeXp99LMadfU4vhwGw7`tq5;Z6f{Lw0vH1gE1mzI?A{9(w z0gvDpBtFMlW`k}Wc!evnE#L+~f$ZQna?2Mm2!1K|$PRg)z<_t~3(BVg%HW*fQSeK} zA#+%sz<_t~OYCH`Rsja?3Hb#zwY)*Possj*N0d+d4$0Igga_(U9%y-xmYX8T)aYd@7PcYwrZB^}kB$cBi(%7b)<-q6-B4NN zBA^;VGldnHUG$g{6T8R)Fp*krXh>gEnC@MEuP5JhVJL82o``vp7ha)q;0TIvGb};? z1-%d|1Av$d)L5bIP|a2HB_K%$P^>&a#N-$Xl*eiUC{_p{l4xV7u|md%V>OM*js0fK zu_OusA*BcDg$XyQ<_Xkgm^KBbcshUD=sH-;zm*KAYXiDoItqR0daw@D?+w^gSu3qQ zh2gd}Mdzj88}LSDVZa6mr}6H8#ALk@E75(DR9R6dSG2-(4xpem=0c8fb)7L5K{rD+ z0TinV5OZM))HLQ;5`}O_XghRTQJ|f!02L=NOfNWNH8J8Ux!emQwj#vybZuB?xv-K0 z6G8z~!Zn8Gps7e4p>m3)KPXGAf8mS7*r9rH_OKS!#1~m`8-Mg?D{A5^Fi%?I*Fh_8 zX^HI6(YuM3j-Jw5T;8h}@-#ASF>KL&8M7AYAaS2b4;|TrpK*XuZ2)1H3$%oya#2h7 znz5P~5!58GvYHeuRu+K@m?t+tUPNUz|Pig$Qm=A`r>si)ZD4PHY7kj}__t&2_xcCo`F*G=(s{!lX= z2{6}DqVj>p=*$h|gLUJD1nC-49oY<51r!Aeq=PvMu;7N&1c=3g0yVKaT61t6#?1w4 ztb?vUsMr8RUq#!pEc#c`aA9=Cvc!=D#?<&T?*I|oPEd@S3v?Bn*#jK(LPuRb1k>qC z6&ct&W$kj?D&@!T&`C(9Fj?qXKb*(q1=C$opt^$jM+>Mjm}xFhq-N(i2~=GGqC9_l zet90aGM9P_$aC>I#??y#r8)%D={~X!`>-dkRj^(b1**psMeJtTjDt`AV#H!WftuJI zc=O9|W1c_PW8p-OT%mO2^G`6%od>bJUyxGK-LbD`WTC>MI#vZlgPSTFcv|Lr#WTk6CoWwUeq4r*Yv3~UT3E6X!x6J@>K>Uj`{iToa9N&WGkD&gDHa?-YAU=CV~)BD z@CaVK2{A;2l}|7;!!i_!&`e<_&VU^)B%mA+O$-Ka&ycwQtxJFks;eP0Lo_r0AZBLe zHYFk&IN;t4gj6jkWpn{R4aCgEV^p!974!6n8AL1wuvEg0DN00#U^*}GN~jY)XDmk4X6fGyOPVa+sK8NAL@X)J zEaE}e&y29hSY1Fb-KFN4@uQ5Xdkr-6()~x3MXv5B22d9adlMk< z6cwZ^g<4Mp15--~4Z-pt&4XQZLq+vMTA0E>MM0#7XnBz4ApuD>g&B%9M2lXiqWfTK z0Kx;E+`^*41zBP+Z;I79whMK!i;U0^DS}0h53xQBu?NG5azjJ<<^$6`PH#}bvRn)W z)hJKIJjqL?P$#Mh%BxMT7a|1#6m(!PV*XHLHQS-`9i~uhk})|MYK#j^!pZ|ERudqS zLU}@s)$Aw_AD4rgpm<9U(hDAL4Jrmu7o1OXWJ;^cq7^pv)~@CSnZ-562k@NF1gZS`?;ORQ^!iYsSiBMB~~-npg56_7(`gT%3)WVrUW5 zT=}K4%o^(z#U#CyCSBp8%@bOzh|5zgy%cg$69jv)vJmsluUnE+w=nN67*H0Q5DEp( z)ypbVZOB~r=xK)T2|X=R$0xH^x_w-?^ySRyvR5DJp;O z>3+&m?>5t*f%a#I3>q>#)#Y?f{DVz60;FpSUiN_58;B)dsG4Gdr5z@`r0QbwjXs?U zzWuq-2qxK^C}nE12`{OEn3bbBK)Joz90>9R06~5LPwH!8Wr;lo^fm(((>lppEC2w@ z^(2+30D#I2BzcPsTND;@y?>rSDOQ9$C@r%&brVifz6fE7A{cW+CEo)A#f=e-Y4hP| zEJSw!2?fg=3R$rW$xGMX*z9}|jcM~KKuoLK%UE(29vml#5%Y(FFNx>R6m!sRhkY5) z{}3RZk@+iMof0@2p7&^qr}KxJ=}3UNjuMp*G)8A`ARjD#Gz00fI5OmnL$RPhIvDog z4~zjsQnM&fpk^mJ$*fw^5%SkB&+8i(z?EIDBv5At!SoUYKKy7n418Ng`X=kZ7o8eX zXqZ$h>(TjC|Bcsb<&Uc?NF3Yc^bq)d21YCv6sU=v)GmABq*EJ&Vh$J=^Tklip#$mw zaCKWjH3uN7`S0ZSskbsIcc3PfaEA<9g67%l#i9VyPz8+DA`ZsV^Z-F^1%l~xrHZ0Z z?*LDNZXzznP^Q?87;0QR(siZ$082itlGNO!1;UA~C{SHNT(F?Y$B4y(0yVKaKt?B> zFcfpZP|N{9bxlDv2Ow%cp3SfQ0F|jLmKso#$|uiM1jus?M9cv|_2NaD9>H|FQpG_2 z&c!8$p#}~EK`DJx^3j7-!6Z+E>K~eHjB#~U@-IP9DwrvT0)>o?$;BPI9JneUym1jA zoe?%Gm%dJcJ%|zng6W2sc|@lwiut;b(pGCJJ?jKA_JYm`V-XbRyLLJ5(K%*bxRcLv zB3%-_3T$4f1NHmN>gd=;EU|ZVRv3$*WhLqELLGF*;j~ zkn^j$V2nl3c1cT6(8ts{a+)UZbcB8dZ99E9qdoK~eMOI?n0mHjnJ!+x&#aD)&87j%`rh1!suX4M@F22i5GmSVxFsU3Auk`YzVZwq?Z> zb8Q>f!gPs)(r>N5YWK6W`;)c%W3>CB+Wl+V{WrAxFOi<9f6sbKCqTNqLlaNDix;%} zUfTUM?fwz%{&PLj0XqFpHU0Ga4chZ-wEMA|J?YXacNGs*JW%mK#RC-&R6J1eK*a+U z4^%u*@j%4`6%SNAQ1L*;0~HTcJW%mK#RC-&R6J1eK*a+U4^%u*@j%4`6%SNAQ1L*; z0~HTcJW%mK#RC-&R6J1eK*a+U4^%u*@j%4`6%SNAQ1L*;0~HTcJW%mK#RC-&R6J1e zK*a+U4^%u*@j%4`6%SNAQ1L*;0~HTcJW%mK#RC-&R6J1eK*a+U4^%u*@j%4`6%SNA zQ1L*;0~HTcJW%mK#RC-&R6J1eK*a+U4^%u*@j%4`6%SNAQ1L*;0~HTcJW%mK#RC-& zR6J1eK*a-r2c90m-{1OXH_Ni^_xtpwe{KFU6#Z{6m@#eI^!iba3#LtJSTbtblBNr- zQ41RvjH;hIZT7BBS!{2Jfhk47mS)U zZQ7`d#~d-`h|wb!%$R=R)TR-$>*p@KSP3{h9X((pq^7ITxP)}NaNe95qb`^+bxz}v zqdr;psnfsk=~G9MQH@jQPQPH@#R1<@4P@NBxrdEBa!xvrgozHaltnY9HO*Tv@^iO zsg3p1rZhG!sGmE_L!xJM>ZjE=EumXN@adbTO=Awsaq8?@^N4JQht81trWp%-mV`5H z-kdq}=F-zD#-BcY#!R}VaA;c6Fr$$!;|g3qk1ne%i;60^Ts-ZpR|bElJWT;s7Ek6oLy?u@NqV$m?_Ko9d^|u3tLC zXOS9eir17NFo=e|(=_AaX)_wQ>Z;V=iE1) zP1Q{UCNDf|l43J5KDqH6XWqDlXPo=E)2q(8tZ~?0V4#s>-KjaU4N<5-QD4ga91l1J9osL;dPV8jvuu~-P3JPcbs$8%5~1`)=1}%O*7Yz zZ8__xqerQy6XPxaI?Ts&$GfAPC1lpbV>UYHZutGyh3lQ3bw<$$3&<1IH!A4Y+SALyI9?TNn@AYtbELDd zX>x4;+7T!IK6Xg$EAIQBa)xYjYHVlsO=q2P75nAHv6BMVxTlSFuI|zNEP1eQ#H<-) zy?d*3_AqCknaeViOzu4&fQY z_rLQ*pV*1^y|bJi%`ZRe%p~*HZJaRb(H}Z(^WBkeIEThQWv^fFK1<$M@1E;Cu#!r# zdu%^DHoDdw?>xJl*b*nFCUy+5kA22=4yS)&M-E(dr+c>ZT6OHxw!8mf*Se3p>#uUZ z=&pC>xJ@HQ9C`VO5o5<*I%338^uIH3wflQgd#gKY?D#v~^=|um_fPH`ii64SBD=YI;|PD8`*ElL&ZW-MamOFL^~~|3&US`vacU_5oQpO%yNq)#n&|A( z?3_N#IdGeE`Z#C7YUjvpi%xJ(ndy8Gi;c3~#gj*jCmD|O^_4T@tK;rT&a5W)G54HN zM^1X<-y@vf6Dg+Llg2ymTXpVu3YPI--l#OIi?4S!t#q5dOf|>px%!7KPR+L1*xCu> zXF0WQ{}#q^T2`tm=={rSa;{xj=k#iJPGaW6XC1lbjejeYo9rh3RXl&^+_$31xqJD} zNhhvZan?yIoyTHaZ)cI~*1hdqw>-ADefp$HCr&tV^4Li(m-&AkcbrnjtLaX^ZO+b1 zb~-P|b~-mKZ*tFco^jkAO3WvTmM=!|KMUhCuvI}i13a=t@1 z&-dM_6rZX7UGFTJ==`F=-LlcSd&O$!QG1>HKc|14^ZgaE{cUG3>3)`b#!Zu*i`;e2 zuk0<(lPk7Nc7HzEedQHrFV9y{EVpL3pUq5vMW&S~kHBz(0=5%vrS zzt@uq|JmdbHuqG7zgW+)w=lpPW!A?`lOIz^$1^UJe0 zIlWc~e7Dw8JyATKO6T!nZ3Z5j(|9~I$Zf8wa(2}3B-wvGV4M3Jch*VHqUK3sCp!;c zG}Gy^j-Eb$5hd2uD>gW9+jY+Gmb1hDKCq5db-g%w_#)+YXOPM#PQBY-MZzF2Lpb#+ zQ8QYGxArw%VPZ znQP~yx$4$TX8tG5%%}PXuG*T;Zl9OR<9i7nZ>95iAQO)rX*}-R(`|NVQC;aZ z(S7hJ=fKrtPCSu1X%ndfaF|UU&9RHz6UL8qK1CU%^_+d`Ka-eCX63DY4SbJ;@C*r*|=y2w|&l>4OFGB{32J_uMBk8(arny zoOkGE=B&wM>He+;zW+^Mu6sXf7+J-siz<3wcNkq%#aCCw;?8^Xh}3qzTEh(9owtc< z-1|#r()H!>9g4tqzFyPpd~RIJ`c`LGuQ{oUQ)|s}A6MaDrJysn#htxk2ifkksz!Xl zCHBsh4P4n?>FbW0MJ?>)$xBdHKe^)QUEEEka$wpU$Oy z-R9WAeVpFP(ax_LXx#C)zB`HS&!)r`@Z?bp4JH*E|0m=uXVl-?v>%{_Zi-SwtO8w`r`q zmvg|(=O#^>R8^(qzBqqkRZLy|Y6YcKb#s`%{ z9cjn*8{jTF-1);m>XzI`H74df%nl7g$#!1rTlaf{{yH7{dfz(dh2Gno)&&#kw`uGf z&iVx-otJ5BbmM|?^=|E?mPwN*IUm%lbI;l8{AlHlNoP);$8Q0Ju;tabbE~2oJ;DQJF2LKb#7VKSdb@oRMG|eJG{20j;#2>{A~#f2!ADwH2tcVUJspZpI+~jPiCkO8rJJxo8@2nr#{C4c% z-p;C}JE<1@dWyTlJ%prgwy1S>ocmY0>yr1j^MLA<|DOhj z|M zS+CCrS5;2j+1kK;m7h9XAeS!Z0s$U&E+(JFoUzoYN|ewY6e=<2viY$S$W0qa&YOF# zd(Qb1XZdcCs;lA5YZ^~zf3j$JvVq)w9825iY$5zBd%0>f7?17WKkl5xj)*zy z=93KOwzCfnFPFzoww=Bso%u~pjXQCyLl67b&2pZ$X8vKqiIYyIVaC}lEiHbX{6-_` zsA^wY?Hz||uNx#os=hwao0F*zrpUj(FXuXs)ti$8OoCo)J7Z@$x6Y#CP>8qJP&1^i zZfi)^_b&~m`hMeuT!mhpPsu*TXOHz!75I zb8(Q@T--Ov?H|%!?C{!)O+kB6_8U=M^dnrI>|8b^HqUFwCQw6m|EzURA8yBz?a_n%+-=XLwnx-c zlC7F*k6!J)CDEw8*oRuR|1@xGsQpKc$o2C>8b@N|IIq#9Bn4(lo0L|_hBw?8ad*aR z`ic>5&c$hJHai#dFla|_RiC)=?9UUt_w=U*^Eqe39BSLoqD$vV%j=zUgY7J0XEza; zoO;hfn)&rKR!ya9Q*Gz<-rVj|%aUw&y^(%vA8w~NE?}m;HaJb&vi?iz-PV&v!M#U1 zjZF@f&{(ID?x^AYh1c+&^y#yMM)#GbVmG=6t48;aGlE8UXFr;6QjP8tbCZqk^Fyf7 zePAXxy1!~nZ*>3F>;KvN_Q1NTD(};zK%rVtP*G3=J_ZD#N&19>q-k1G(l#~)0T~Zz za?@U#7r99vfPhxf4*^lf5fu?Zg+V}c@G&TY48CR@(NU4%8x?$w!#FCaGk)sG_xr8A z);a6$drp%EXa4!Vt2D{)?z7H*tiASHYp=bwEV_SNt6y|~8Q}XO`0)ULJ|gl&fbWgq zUtv??pAUMl`9ouC@srEw2gi$}m(kxHT%@aieOQ;#JGRHV`tGO6Dth1K z|6fJ-QU#dP{JQyE$1a`XI(F%Nu49)@aUHvKKG(5ZYtZd7jckTOqORDS=C?nctJQ}v zlgxLgw#icvA9I?&4OaTM=YF~Q_93iEFAHnZd!GB>xF*4qfPK6FXukd6c+JUdo_x*u zu{U|1I4@svX!Sg$1!qI^_ny~udTu3sztXU{yzk&_acTbcMX-sk8_QP=NWEW8lrI!> znlFD^zTTWYZ!OCIdJpAgVWEp^?-!Oo)mp+8gC<$iiS)Q!_WXHg{sxtPe>(3vb>80p zw8`ckE*;0czWD;K9v4u!%Reu`Z%r#RTaW&(Cu>|iU{vkX{Fj$JC?uMi{{dTAwi*Pp z3`~Aq28Cq;Z~x`~PjFvp5}TKFn7qIF1TnpOR=--UuA8?PE&%OjK;3_F?lYN{)pZwb zt{VnT{NH-8dDq@Dl8gWM9R~6L`$29#ylINoa&D*II{(aH0lsXiUi{xSUsi=TM)2(c ze#2D#8uC%>lVAVL2b&)qS&N^P^N(Ol=tIw3(fq$hOwOOx{JCe<$@#zgRnworCv(L% z$oY8(V@Q9!BNp`c93X=JGOPe!Zz{ExsMMGHWTsX5|63oQ)+1E>c6x+9yFaD#{oCmg z`t1Ic&cB@WgH$JW%m09`G@kre-O3$&6KFt zjRF&F_VXre8*(#E#c`1=#a`Y4*ENq)Dj&*!sJb_;M1;iLeSM6?`{&GQU4Hc|@WLN9 zA2)a3=J#F%|8w&v=MFW0^pdsB-$?j#1%9r@cR#prZSz)IDnD-KpZ8pJ9p=vMbIt@s z7<K&J%%5_yd7D#~m~^?|5MUa4~ync*VSaJodRu zo@mUsG*L?p)SEJm67p}nXx6GZ?-h znr<1LN(XlCY;CU#EbboaTG~H2I8mw9x;CCRl#Gwn5XiZ`lGdtQMw8xMT{{QTzR9ui zZiyPMj*TXxo73Ui*6I-By0=#*YLzUact!S-6HZ9e(Xok<{yf}x1*-D0V_Ogse8LGK zOqqxRS%fOFlUw9}Nya5R^K;D`iY< zt*dvS_q2h&)-*{|#9y+^o?5>=3uo=>9bylV=45MIdWOVeOXzC%U|)atU{_a;G71@g ztxIb=`p473{>lEXjeTu+CHlH=a!F`lcNLFSySl17yHJgEynnDY{Ade5+QW}U;m2bB z*tIj=&H!74@#0Tu)W{e{qrYv%Q2%hPa%{^U`&c5GTckx%U&}Y>*O?F~d9>x^(7f8B zbYo>)T3@ZD!hkzO>nPomj3^>6M% zNcJwFQd`nLj?nl)Fl1kCWCXFkVCSh(a%5$&MOnJ9Cf!<_+B`NiRIA_wLYhh(dUce; z&R$ElAv$*pzBr?Qc&Y+s-h?RTbluosb*Ney)W)>74^>A8)1m4_Z89Aj3h&gRKu3bZ zCp9cTogBjerP7m0+Pf=VKQ>xH^$`gjVwD-yj3?Quu8E1&mC1pv-J^Ys>kge`Y+>BA z2)!~?9Y&CTjcw~1*?8Ju(qG#(I*@LujN+?N38j?;hw{IyyF) zR-^^hM0)~lujBru4b!r_x7xt3T_Yo1)np_cMHu?532aBLS0c!{gAw{E>t5Ii?Hp%e z9ydvgs(D&LJ;%pUPllCiRb~EcOL2l^YM_!BS1OTr^^bzZmV^#!TLx~QnC$Ey9(YxC za_gEYtSWt|A_Chx$F_F45mdndk;(rrOifhwEfN3{22-Dns5=*sV(wSAR3=uC^C68e z#Q1F#M`HeNw=TpgGBzp#9kRSN?Q0it-mn&^ zP@lnCu&RR70Assmu`KEW7>^+tB@)g+O4m^B4T>2Yb{WQjhO~bQYthKaKq5j9XHq8d z4$3_+!|CDZOuBkvY-BYTZ&4lGv~18ES{Dvhbm^{O^&H_biJjHSa2iIZ+4dBoWITnO z##x@~_#}if&R=kB!(umvH?P8Rnshx5VzjpR?pn>$ILei2kjrdHc|8WZmg1lgd%COF zCinJ~@<-|72-?N|&`yjxKg(+ z>fP1BC2gIY?qaWSeeA@ErZC2x{R3MoVeRkTg|!*ys8&^m(!Sv_JiG)DbO9W&$sX@Z z0ic2D>Fc{YH>~QaZ=o)&i>+5ihO<>HU*>H6U1sZVet0RY!BBfACel~oXphc=*0$bV zd6kuS2XI8OGCGzFQ%yjPvdTj-u7LxREfZr?ta}2ngR$n0s|&;u zRVP2iD3&%|GhbqV7?H+cE(y4T8BJ+J-2*eJKx$;Xmp)De5wPlb{YS%R~m-BbqTd0+JV6 z&!mvjMl7O`QiZH`J{lQh7-ShVNpwPGxH5usYL%g}39NtXP=IS2Wn5H`qKR9$GWXzZ z!(2)`L9#Qb;kjU3RpCLrh<1Ze%!LtbiB7CQo03VG2tiPSO}ep$O~}|yV6~)fsHy;M zii8q_^H_ArDa@euwv?9EP-Oy#MJqV3DYgNW+<`H$*Cbdl-7!IZc_I;=cXA}X0D5V% z8H?ZO;4t98&1+!Pjl!D4kvmv%>-wRbR%$3k^(jfaF^(Icb3=6FuZDGp>utS!^72%c zV_k(dVya=u43O+DKO}QfSg~COq6SV&R$;pYJcEiBv zAMfW;Sm{HaaOFtlvtCt>Tw>xyB6wj846C5b7j?eCloA-2>udl~wXWW(+9ZQxQ?O6# zU!%fBjFWJ}kw$YE12GAtfrIBw)h5G>!ECE}91_Kxn%o*`_wCf|w?l%EKl;I=>(Y@a zVV@z)njHhl6bx~mJrsE(GPWB>GDW%$uH^Y#%#I`z?hz9g%btvrgWO5vO|@iTY61;Q zaRd@Z75EVcIcXwI;4p70#~Mi-W7oPQRx-Mvb;6#j4zli0&s&!|8$m@*kO1jcE?$^7 zJD|qNl7=-~4o?TYVH^J1Ud4Q<8)B3GLldZ#a18`5bRU~MDC`98Or-*>Au^yIdR-wr zb8;ffBE~gTJ6%(mq>BXQ#-~yEreExjZILoBqrE-4!^Hi@{%Q@@)D}6M+&zl!uMWaU ztKrBkJBsI6!O=L0JGpr(crj{i{m}HoXk?0mP6L}*uo`&SIqiiukPL*WRPQe;?53fH zdDS&oK{tibnT2W94i=;pFDnVnFwBOO(|+5IvC-jOu;T~Drl3#ooGx08g#rA7_6AL( zhJomTmq2-Fq(5*cw2d(FAZQ1+VSGj)Nizemr`5bjqKXEs6}l5u4wT7s2eKdXzifIHtU0o3=WzKi zg`y|HvO81--*BqVKraWS7Mb{aVRRka0*_FI#%Zu`Ois~7IWpc)O=WiT3&Q|C9K$dk zlu1kpF{H5Ik5os6*=nuJFeNfkMNKGe>lztQosE*4TEwojwrgZF=8>|281cB4Olw;%>ak9tr`r}`>aFXqj&|qj4rYe< zHS45sq(4==yhFB1`y{LpHL**Bx3FV$u#aL7(hkesAl#`1GtJnx=sRn?@g zN8VF&?iWZMm|J4HUYvH&YD%}F$0ia?i&8&Gpfb}ch+#F5aMD2$44Qwo>cG=7ynYOe z0y-%(Khl-7HHw5MZ;fmg%pyBTi`t_}0&vLE1)j}$wz0GC4; zlgg%XllWuOJ)%Fs6=8bWYB);R*K{c8%$`M!+o{8V3b-W2MhoXLrWICe=qJ_Dp|NB~ zKSba8X>FLAO>IYQpnr5I!91th%Y}wL#ndCzwxnlaO~~E|)ejwi){yF1mcSygo2~bl zv#PmKV;O-bzB@@p>qifU#lgPVm|Se8iKyEU`4hWVqW0TDr`B>+TKq5YgJXpZhO$fv zbZaX{L)CUNqLcfv6i&EB+#V8dBI*@(bAl%tt3v4Ypmo5C-K9DWdVe*1%V*#L zCM$s&oFbtJcjV~QrKBIMZehZu(1F`xttq)UY(6RD7wtJrh|3iA9~?lYUDk;d3?dyM zos<>{_ITi2gDN&y83+m!I)4kq9(HSl(O^KfX1}#zj}GGlgM{0RSifnqq!=G;aHQB= z9K~uvwyZ^ zN#C$BDF0rl>>DjwvfyctL$e0`Ds@FJuaIGrV@N84j$^;)+j5-1*kc;B%{eapYVe}$ z;MfSpZh#66ctu?3>16+wlWj_i!9-bImp(_xKUIHWZbFcQs6lI^7g08I1rT8}3q`$c zA*Ua-Uv)@?Y3(-b>_xd25iMHa@D7;mSjv-rbdY#0LB&nd0&^6*uMK{qY~NuyNQx}m z_>@|tWi#5{53dBq`Y`bFrwT5 zHpPRCuvFxE6CHK)y>rx&R*E;t^v6t(2{b3ctVe^;kC~`kdASc>p&fBeHQxm8vHv^U5*=yV-(@Jt*WGL8`B7CgEY9l*EuUIzG z;g-p!={OjkPk7m3vBGVMB^-iCL>qK-302_QzL`=-I$i4vTXg%R#6W~iZiOicSzbI` zF5bXw`?@*avp9tcAzHiIyI3wMBGGB=3uO%$x)YTVDC|^UsSBWQxmTl0TjN_Yd#kAH zg01j#K2ZWX29~qBp1=; z0dzeO7=sgO}Q(-=k(6AFuKqq;A7x+-m2VD zN%KYg=+n+Wu{_}C$HIthSy>P*+=G9}Xv94hS#v(PXebfa<-{&=GRcx3oX?sb(j}Ta zzHS3v5+v3y5Jdx1u{JMZA6I!KxX>n60(_4yUj?jGQMZBOgF_u(gQzlmhW*DJ^ zkt%a3Odp+thZ{W+!Iv&mO?+Z?a;T`Iiqu_+_z2S^wIzXXvz4HC*ZL`1S84a?p~UnYchi#MD)YxMXUfC=?wgumujAe+{`%I%I z!xmFC>jT)JECyKQ0f#8}Vv7kxQMG5Y0@d4tYywFin}%>X8a0^r=TB8(3Swnq1Ocp# z8pI?+ep0G~v#7>2I&zSAp{*1oUK zQ;?oXCh!&C$*gsnHsNTr7@IfU8^j?rrT$&=cWMsnMpLI7rViy8)L+>Zy|`|bgJc>( zE>dpGQ*EF!FFVho4N#R=FlhKt=KCjhWnQKFnH+Db@!M%ca)Cr1r$42&wZ2-^VP!9c zkrb$vb6V})ESZL78fJ==&n8L=-D*br0n@xDa3)zRUsJqUTeKLPk_96mw*%NG*;)zD z42*`+akvO4hms-n3d(xVg-sIya|y=MnWcxG)t)?s{+oaqb6?YKRt- zja&(M!XpLV3*7>Nk_dT?KobOxKunuHOXr}@Pqc{~Pyx?lR|5O@Xa#oo`iIB2_9NI3 z9zOaH$2Ok_-{{2Xn8YsB{H7d+WNZQp%XV&5VBv(@N@I2q78Ak+n1ou{U0g@2L>WG< zvWp3WYkrBHg*#-~^hQZR|Df3r>HL>kWd9bb^$_cLIjZnvASE8qixW{D6*qB&PvtAn8 zTgeHdjAgDfX$qW!5+{dBq5YY|o#DF(NRjOp?abmc9c6n!sz`Q0t+0I{C_DHI;VW>c zATSwI5Jw3#xFp!JVMO5K=FUWIe0U1n;$mD<*>R^oUBYyVSjQswROc7322CoCdl;8& z<6CEpZS92MTd}T#XD97O^!4URE)C?vnlPS40@wP75J0XLPZ)09pq7ZckfNQtcaWnY zsEc$eJ4MwOg`#_OC2Tb`FjG!iTVXTxg}wVT$Tg-fXY%gkL?j4wHmN78l{H7zFp0L> z3pZh|j=74op&~HeCNQ6OuqFdz2$RRu3Il`wpt3c^jcwa1jdlpFGKD8sM$*ACY{`=U z!3ok5OpTE+ANq8V(b15ix=s6LW!U44TCQlMRYc6 zCdLrgI+6_aSBDYUmQa1*mJYecf(WP6cZ)nK>chhtiD6LjPQ8vR4ji{&@JYxf*%yO{ zQe!o-Jlc&P8ki|v!sqfsEfDI`xn2#L2q*FwFe+Y{;KG28Q&UB&Zl>8%D{)BE`T>I- zEV=^1AgeX3;v!HO;@6IuT(@-&9S<&(b-CDep~x77XqFkzHjt?wGOh12i}0jq(e=!n zE^y~zzft%AlY4Z0N~V7{fTeFPk^ZV>+gtv`NASYjIJqE7B&msy1e>P_<%jFcL?i0^&IxhGo&enOmc9$JY?mlTPkn7=#@@YQgx*c9wG&(&tdwIS!?a(Oyti zB#{)MZ6@{*&B|xdL0eHUnM&g-NRjr;RER3*@ddm{0|C| z#*}#)JdqL|Ve9Tat-!NjVM(Il;4m2kgNEw5$hTQ*p^FQb7EGQXS8)b3vct4fX6j5D z(oIf@I;F}0{-8T+OxRFY1BO{+KM77&dewRM0qP3_ap2s^Phf@730hw8>jY*GTAn;3 zhTb@Aw%`)V^+R})u>V3^I~-%$g3EBAzy`h1ImksWjK~ZdKvV-9Cwl1*^*ZuZ7JN@% z4#HH(zB*U1>xR&#F&a?fJ#M4-j=oR^WgsqsoJ_?;UOI{McwB--L+hT-i&C@zclB&u z*ww`yS1Ng3eM`e}zAPXVhu|P!A!-<$F@h0YEw*1rE%*n>pK=x+DsbSQo`nhaY-{w% z4OGxvPPUBKLaZf9=4MvDBa}~J%-#+cCb-i)8o7NXqf<1^yiM7t&MY&7Ox8yF`{3BX z_6$O@D&3=f^aPsDWl_MQbKzJ4_qgiR17l&0oWFAWfV@`Gy z&Df&dO+95JMg(Ls9G=-Gy`A8m8r=c^0q`2^tOQZYus!I_LC`e0*9534Nf-xkwmAP+ zN)$jZBExDnmC7xRk^^9jO^QTMP%|Kb{mLpLbWh?QF$nM;?4`#)2N9MQ>{w&6)wv;#b_ zCY4gY&FxN8LihIQXAs>oJJ{bDo7s^`><>b368|E#tq?CS94oRL7pI9AK)T4zYGF=< zax!Dn(?>;+R|Y{SF`0}W)-z8|*fjcd>V%FSF{305tlZGa!gjRGLZF|Ej9|Aqfn#0= z4Kjf+3~nEc_BdP=!2sB($K4{|?yQ&LU}#hsuL|Rd*E-gVTGK>r@`Rr!dlPAVYzNf9 zx?PeGiy0i3&?T|IowO|pOJgT=$gsq_1FDpgHJC8Y#D}=8ce&M1qylFZPe5kETBCpJ z#Ar16s`2Er>=w=^iC&jL^sp1JmaDD6(ihnpObudd95|%j4hs(KRL7faGRWcpb0CED zguUrLTvu2b39fTp4ut*P-yvGlG|OT! z4Vty?%s6K-6o$wwkbE%JAxKn+d`!8>L=btJc@c!eF{uZK>1oL}?QI#L;bxmBGAx;@ zH{H6P?ORC(2OR{QU}9)-_E&a501M%+!G36VvgSk8!s;NgxfWQze(W^tfX>$c)8+%~ z(T+xGl`Bv34kRVuf><}!doWt6xzR%6aC^8NF`Rc{*a)cQq4AkdQ`Z)E7A0qlXpio5Z!Cm zpWf1W%rPyzba-(~+rrkx3zxLDw;Z(*Nr6u7pA7iR+m|2R^74_%snN+W98E3E|!33omA z5Kua>6MjY{T|iO?vHj@omdzWP0o(997Z7{}H!S`W)p2_j*}r(Kf|Z$=jFK+Rc6#Cn zJ8B|1dAykItBv=_PS#K`D8yxh&0Tj^0R1>Q77k~7C&dh7hfEDza=zMz{`7^D3>;Ie zC-FP%?^$eNw@RWZi(#I%hSMfT&R--Ix{%1TJ0uw0<;cwQ^Zby2rI*xHqC zsZ#G^z&!Rn`-g;Ra3#ZGi({oh`qyQc;y~b#j~auJD)jJhuUN(&oF+ynIBlRZJiHyb z`w$%>*y990>SU*z|_@_CmZl!SX#4Og520nAmnPWEAg%Q#-GZ@ zCTAPBoy_`zZXk&qEJqs8Dg~ba_<=(k_UHFzgQrX{2|7q!ubW|~y$=2x-#j7bH!-2Y z!ZYpupQ!rKPe^$01KX$@V>)|BR9|p>WZb_Ii$-UdZ7Z4H0bRxugFYyXwpHD^8H^Uq zz97efAxeKOE9o_bMq4^Fy(O7S$|Lc193ByqTs1+O{?krzDRyRl0PG8k^pss8hJ8i{ zNaWQGUZvdBXNssUjQ1+IZz^!U!RyToQx*ua_iNEeRnBAExkNf%;EEUwk{tn^%<~{E zLGVFdbMz!Q6z52pM1~WzL^#GdZ;*Bh;@`}s5+f)H8rBZDD7boq-G)LCa4?$+RIaem z*m%~J!VscLg+tJT_WrCe;!RBv3LXTToou@6@rX?Z>eFuZ(sGiX#Hfp26{L&oe?X*A zi`JuL5bkKWME?K`t*+0Fpbh3+3VBo+4Tfj3FiD67_$8PON+{$UrLwm!dmHr9dWJ93 zV~Tc1M3F)Ki)981(`hnoZRMyW|jp>LW_BvruTgc2qdq7=#k!UJcJ_2Kat9r0MDbi{CKA*eN9B`Y z(|-9>@oKy`q^`(0B=a2PHYNs*S~T&o;eMoUiAA%1n0a z>j*X$&^uwx=-!}9TwNwlP~(tp4?YI)yhdxFdo&^IGAJ9XH3Y8S^R0U-$-4eg=sq|- zf$Z7rM%oG7w_zW<#ujuQW=>;rLfBql-AqB|KxMjP!#<1OU!2yvB6G~uC=%H|Pyy~@ z$y|{4L+c`R#KtUTgd7tW;hg!VED~}M8)n-OHicaxgq5KC`!t~0Lf0-~Cl3}4VB(B-;0E{ZhMo@EJBvf*r73@==9UYQvt*ANF=IfL~WwPt!&#NGIB?lf93o&SeKV*kf+k|KFrX}v&@qb*iF|-Nj?gZ z+=FWDL3={15)8PS=DGWqKw{_J^&MDiAWacEfpg=~k1Z`C z>*X3!B&Q0tAJ7|;`w}VS@|@C?vt}lUJi^ij^~i3?ckgmI&-0)e@wG4etx* z!m!9ABA9_rlNU+=J78q-z;uf*f(|!U95zGh4OTJ*GScHV#MR zMCPJL>2bptVrFW3#|D2iO;w9O0J}f6gFdp&D^6wv%`xpLI!3yHo{Spevn1!PEVPgnelDp{Hzx6GMls`Qx@1I@h_b}2a)?zJgmH(%1;dD6kn97N_EFt{oTap9 zD16yNjE>BYyRY1Erp}0M^Z^7{ws1nW_NeZx!S!%v!v3;LE>O}<$||@Arc&(>rAMPK?)#oXP(C?1ipoQnH2e=)WHIUn;86n>`(o2@S(3pFO>>o z7$U_!CQEXMIXW07D7{Q#lgR!9)~k?Fv-9-6O&iu>V8tF^RT=K)KA0>y{iBS)q=G3{ zbc122UDz6{l||eTdZ24$NYpbp_u8no(bXtnY`Vc@qK|SkR$^5~x0d+mn3X4NC{hCg zTTr{1Svr3&HY8(iIM^0gEUY^?!CJ$vs|q)n$TBlwxP$vrW(Sh%R6<75An+hFOkVVX zod;mP4q^ddh87z?bjDLVf_rSs9v52F(IiB!PN}M)XZyo`R5+I+GP@fNk2UHmo2YKt z8f=+qmXE?P%;1f%-D3)(Z^6e;HQ5nKO&9iMCeASkTK7Krvwkv=ge!MXi9H7Hrxeyu&FOl*j*N zr_s(-LF?v$O!bFSCflOI`wBpL7EBo~2th2jMpc@ASZ@ySC^hrq1y5|yc7Dgg9|m z0o)Fbz?8480|7~o06!Cg{;>HL_P}H>0_x7JXJV^lLJUE1GG^*hL=0Q$VFx&Zgh@uj z58Gqj#)dahAiEeUn)`PMb!f?|BdR{b{CtLM{yh6QQ z8#}w!Z_4J}F~@Lm&G&w_D}!nU!6(|aG-0oz$qT$V2qtg!!Q@L2OfC#Wo(Te6`HA`# zLKICb9CMNk{SZPrz&(r&irW-a;nNpuSoPI|HLO5)8i4bk*qqO7n zO&eyf5k@1Iy zOkeU$bD)4XTEu)!Jat>jtp)aqqeARKV#W zc70=rU6)g$SnHqw%Sge|7Id-LXYF@WS4% z)Pm|cNGf(Q-BA$Z^}HE2j-S3@jtb`IBm-WOs! zD4jhpx9hgjg71KOsQG=7j(lX7leOk8kX5PZS^@0Oh~JV!htv5 zWh7i+UYpGCM;CI)A{`2BOGY6Dh6(WuKr5OkxEzulAzUi_%+$FD<(g{%_c+^zH`#J*lX zvL0fJ^9hpx8z7eK8m;?yHD<9MQwad!f*VhuUm(>t%nRKTaYLqY$RQPoTSx? zTHy>a9D`R)j=EvMEUm|OsE3$%cpps>EE;N4ZnGLCUdWpT{CnE5cc!koqzt z8^N5xj(}gqHq#9S<_U2dl59V$-4@qU9B01giGp)P*?lorIOD+9Dq@adsUf?T z@JAfcZtm8NAvl4?a?Nu#1YccFob44ZC6s-^RDgJf(1Thp@>4HnMtUdxI!k0DMkK-t z5vRek1!6mf^zYeH1#U0iYhleDClq)Sxci+=$KaxYhRS3Zp&pPwPH)Y2m(4m8@mqI+ zt@JE5UcwH&<8yQ7%1xB@$>%w9N+OW5z((#+$Qt)hzBc{;48`Q~^xPc7zu ziVwgsQZ(VP?{153c99WVj$V`Du@D%_KN0g;Qa2I95ObyO&$>V-+gCMPCWwU!PqZS@ zB-al{>sOKdDvwbsueDcAxs%Uc3}F;7-Swyf?w5j3P}Gy`?$VITsg`!sf~{f~(O^!5 zctCU=S4_tO;Xuzrm~w<-j!^EKl}vGBS)3w{UX(x8@g!2O5bC;CAU1aYLb0m6elp~ zP*Ay>i2%-<>^i=ZJs~{@#eCO2SVu?#a#<6aaQ5KVKHgF@tzblCOUBfkaky1>Wb=d^ zSE!SzMIP0ntq~k^k*#&9k3=0n#_-lWZKaQT_AC~gcU=E#4c^G zKfBr{7n>Gr$_1S&WUmSuRnSPX>;GiVt>3UI-L$cL%^J80CF&l9Fm}*pBzP8~B68Wg z4uw_0Er0a9`wiexh;oS#LtHLq$MDn$t`F)@8Ii-q5M{-2BsT|U*CwiGB9jEt-fWEq z4}ilg^)R_J+gA|ZF>1?;P2s7{?7=;%JbRdrrQRsGox|k~;+m9UcgCOQRLZOt2zYpl z^c0vFQR1zsA<+#ldkq7DHuXYk_2Se-WrO6!>>t+nIkXol1k4Ck-yxLHwh`N&>D=I^2R4%={j131#&d9C{ufH1@Kr;j0~{1UrX7Wk zGagh9B3Eva*KrQ>nm%qE{-DK-jWGB~-8JACZR8TAJ06OdsovNE$5t8G2xn2{UYihs zq0OGad5A#R*$i|J=@L8B-R1nU_|{g;KE2ycNS7~1xWPK}lnf^HxUF<)EaZM)UF2BB znbBc@l5hyvMRow$PzfImQAij9Ox1C?mgv!Q#}lO&GV4+0wNJg3-*P}vt6W9uL2a}- zD&9^I3;u|3St)jx;HuMeUQApmrw+B>F`#-(L5@eliHyZ1Pwtv-l7uokAhJrNX&a3{ zsK6Tr7|1W`G(tus1)BK#s5a!TPTOrr%eRHV9Xl9UAWskH&du@!AYk-_Q!~L4sEH~M z*VJF|7}zT7P}|$prqaQ;6ZSY*Gu)@goHD@Z^rzgKt$rslyOoeBJ;X7zkYosK2pc1i zr-+i}7S)Ue-(EQ2vwIN90YUPsql@hej;^|J*D%>crjgSMXbYcyGv~s@}@!U z;u)Y(H)xR6jaBA=K|pSWf*0*Qi(t-1O1HZZRYK*pYh=(zWn;dA^@2o7Y2B?>FYyE? z#VSpI5jfjV9&|eMcc2NOrP(5u+EI9^#NPX=*7re;Kp*lRcJWE5Qk(7T!J>x~9-|RA z&@v&8<|&q$sVSr(-buAb<`(p934F7z}zy!Roa3r#6R6 z-*HZD0>N(3XZ5Ta>YAs#=J@RW*dsndn>yW+%s6iec!ZQ5z;!>erAIdiBRXYdO-5z{ z&oq2<6`)w%eU4bH&={Qwn`nuJ4a<=Ji@%F?;G*Z0`E6lBU|d!1IPwbN=dw3SNaU8sDBzp3Arspr@t z(nSV>1V@aB;IE&dy87A-&22b6ypJQ*wOykF+@u%_?CTmadSirC$ zCc(mnyqM4xE4%NhX#F=sI9=1TVP!`T9G+8~)9(5`E4jxfcc7fw&HZU_Q|?iU2pblv zp*E3SY=_JuHi}D4?*NTI@uhK%7@I`oQY2c62C9GuLYkMbCi6;ax-M*y-kyfh$y6Gc zo^lL9G*m9*lh9V`roL%NZp>z05$e69iVGn1vSg7RIMMAj2sC~gi?T136$9C^tXPkdu+T^0zwP=kM#YQ`b-RlZ+k>VExf=32X9loz4TSaAswOc#I| ztqI&GWM%_NAQhkbZd(`@@1Xf^>fhW2#SdFKxf*3JRHHAXG6~LY@o-ycskpkKz}ilJ zCscB5>sQ7&ukJaCAm^ zD=67~35@90C2~4JT=hKbpm}ew9N>mTI5c>*Gv`|*-7~WTFW{vxVs_w!N61lEtAu4f zS4vdmA>m1#Z@CNMLx^#*0FKbZCzD$k{SeN)a+Q#sDyc6+5X2?L^LSotXSo8oYt+q) z7-kZJ|Fe%M{ULvfo~=BZj&$_`+mUn(|Hu^c^}A zhC6RV!T#VDy%8mBBuaKQ$7D}MT9zt9IpeeUpub?4CU60x?cHY$IVnk3cDIpLEtsB4 zR~|u}_n;1Fb`w;4GlHt1aT{XlsA|E(8R9Wz_ll$3pjrj)#2kWiE4!%-W6DH$X~lcfRjuD#u;krBvdsWr1;BUMArO17;tUllh!IxVL8 zj4(?x%P(nN$kZuz`L(XQ^@~~9;HCN-P8h*vf-&PpzIBo9oaw@b#$()MZ%N|0kxrx* zj*iz7%|N1wj6W)0L688N ze7>#SB69f|1+#i?!>_=K!-neWz6rN zcZJoXB-QIsvZXpKDjVc4T$0cXaoHb|kE70${i6(`HZ98z7WLT?OutU!#uZuop88e} zjHO(W2>uIIBgB6Lxd(R_6GuQ%fVURuaglRLxtp6|6`bZ>(V%6BBExv=F%2q_Rz(sA zdp~kFBB*Gytw1fDG_(TP?dK*sY_f2VN$4U3sN&QbB$8w_g*vPg1kQKF$v~WqB9$_P zcU^iETgY3NHXgO*9CspRhPtsHWRy%)Bje)Ut=9A&IJ5_K#zpn!WI&hX7D)(*vLNG> z*V*APG|%w_JGn0J%pR9t^k9p;tI+$zAX56?U~eALAnsO*!T%bAUG8GUZ<0ubPL!W`_g)!d!2PRp#4<=Ip(I*0&wn+n3<|B*=m zqflhAW7}vYM6jUtC0vTkrOcMsvZZDq!SzCL28Rt29LwZQGtxPc^v%v4OEM|)g#==+ z$1Mr$5Lbbsc~hX~=!GSa=X6Jbcd$Ezpe)=l1y<#eY>;(Sqh?`8J&OZCzzQyhr8l-J zaVyDYsFK@x7@}^Zl*heyG)Ol@PBU$JC~h0Lu;9Zw0{0R#h*8u{FbQn&LCn+FcjHLZ zI@CctUASn5hKCvJxJz|9K^1~jWl*=kW-{KdTh^?&h-yii}Y4`~^P zc#4R>R1)MdPIQ^@ybey^>1iFO?uZYJdq`khs-+NTdiXdjnYNl?*B~TYHunU1x-gq0 zy-u_R=;+5kp}g!BsQ-e^fQ>L#gQ}>^o`?G2Ne(Y!2cr3})5ea6uvDh_sX+3vhp;jw zERtKw_^;9rAJmpqP9e%)97@!`K1q?Udbl^V193G}3+hEnBm|)4o0m8Ue^9oBZ@Fd5 zysP7M!R5(Jco|typm+UJM05Xi%~IRV=|9T77Km+$7|^L&=M8gNra2P9(g4fzVu~n$ zHCxuW-jffp*#Qi93SqV4Cdd%(vu5CI&Tkg{jQBB{Wucy6l`)s5 z{=__yR!*kv*>8)o-xg=TEy;dcn*C;pvM1B!=tg>)l!3GJwU8rrX&(;g(F1{Y*QjzR z>%v5$!EGJx@l}{Ez05o;^&8uK-Yo1nx40CzuDR8-hitcWh4!>(`4$QXLwXeoP2Epy z-hzR+G)M$3574F?*7uyHO__~QUqt=Hj^$xJ?Bt5%z(P*^*^{DeET; zTj(Jg(ahA(@KckWK_I6cAzxITL{w>+yW(Y)^AT6QLydVR3qnee8gNS%m*$`MO3_Ta zICd!^Vhai!gig9qj#ptgA%>V*)S_1)y$851fmxL^A)aI_562R4^R@*>i2_QIjWgf% zTT}REJ7g>_dJfB{%v8BqWpC%IIbBuPY}6WBTQSCDQp!>452!L01~Ix2=Ncf8$g^Q&BSo&ci0`m} zh3IN#Y!g*0Z*|7#Bbc&Ou2zMhciua-B5YL|7X)+EPc7>*d5dXgvC?Rxko?bl)^v8B z&~g-V`X4=gLVwig5Utgm3pOTmb{;h6u&3=e@9H^8auD#t^}FZjPnKP%zdxTpS1mZ` z%mwq3L-FgWivN&5I~E+YyQ%3>e3i7|&p~4NT+V;wyEO|IHccF`;Gm8L^E&1yF9!T( zeuvK%{(~}?HLY53=x!d!JPcPHCE0a1>tNvEWb?Sh-*x`)sQ|_d5Ord_@z!zKnI; zJr}*veEuAH0B^?wDAJ4nuGMEA$M5koO&1&>-Gb6<=C8_r@1Ea*-!}-AQ|F(N;j8C^ z#Hsl2mrC=Yra<$ptp8QbD;Km}Id|oPqpsMeW5L49_Fc7L+3x*LU2yfB=1(*&SO%zL z!BHr((pnVwW(8^BBV)lXTN}n`lj3dRYkBWh#U3Sw_Fu*KUdi`fF&D%y+h@&!Q#Kv2 z;HXabmah3tAC{hU?FvwU_1-uo?m_ELTCRZWlwp4Y(8yZ3Fn3U3B~WXvV?=JSW_ zgMaY3c+byYQTBWgLEC$q?g{Et6Fok4eQo!Eph7FAFgimr(|TKi6S2AdfQs z6dBIv?|cf+pMvLqtBfy)OiE)2k1VcKKSIHec4JMLNgsck-Y?&dFLL z{j`c}$?~Q`0VMN|^}2!!A3lFEZN1hs)(bL`YvxzAUVnj~#_QA7>nnSx7iqSrJlOqo zPjfY8dRM`^xpu+Vo0>aHC3jfcCza-ppX+I2%_?4tA;0%)er0hz(egm^%S!X-P}K6a z?}6sM`!vs)hUVd1!|)k@rl%=w7o9=YGZ|;m8Bou;&EMEV+o?lNa=pUmM4gY}ui}4S zChvXx$)azYlV=pcNpo^=3C_1SewveKHGpKnCWo62OkJbNy;t;LeY!cZQuXATMMJK~ zF2$duZ%_PCzrIQEXCy89x9H6H{WpR?EBT$`TlD9VsOTJMw+FGp_~;Z$mf&yF?^oRP z<#QCjLvhiW@!Tc&n{=+%F)=!C(el60@`uY?lH{)ypReUbch>Kk6EJo3`IeS9y-W0G zl-U>0vz~8)9N|awWBgnUe2yDOtIzp@AClaw?=}3jLgyKoeIPnB=-ejwvyyo_H$?9R z{wu{FQCVpH^Jl0B>vOykHXU}e;{A$03L5-eqxj1G!`~+7zX+WDd1+M7?`rw=T7Dor zmh6uS%lCdv@h>UfDLC4t{VzHtz8e5e`YlSIYYjiU6u%>S?;91jwb%OXTE(x9%74=6 z2eKJo{X%hjpV4_a`j_?jy4KV14Zzv1ojT`5R|U55&jOv?}+e^D1Lo}|DECoMg4gII+pLfG%EiB;FQBH+VQkY?9-eaX1``X zcWL=?E|&O+O@g2Qr1(Kt+xankDdr*R-?1Rzmuf$qulT})0xmWJe!bbs>ykv>Uq0Y_ z(z#ccq#G4JTk&ySk_`W-;w`!)QD^7pUlqUp+2L<1PoduLeFR!TeG_+!`K}f14A(TIOFgCojzZ zaKAMtN4USjudmkk-l3$Zf7+)xd6E5^{k%fUU#g_27xMEN#amt){-$on&$BSzWBy7l67fs%*Ixiv{dU08j_z=N{nX zhg0OQB>VXa%oCQsdUN=K`XxU%0%v*q(2roB=Hw;zYxeUnJlEuK(TB;ioHphT_Jz=PCZ0 z2){(}p$PvA#YYuav76ki_%6jE_T}?g#V?KUuPgqh2>+4dS4H@56@RDVSQh0o9|OVu zd9UKu56@TpgAsnb;?y7cvGN^?e^PN3b4j1#pHbZOnL)u1Nlp=oscv$gsBm5D?=ehNg&-_I2LzDLz0sZ+i#eW##Pbi(>V93Axt>Qb4 z@%5`eDxH7Ni^^|vMZY;Tc`(8c5d1mG9TA;_6#ul&FMI6Sikn?$_~DBGGNN;&;tOr! z>H|k9er|*xr})(ozDV(VBm4x#e;eVaD8A4HlD>Df;E2SoU{6n|cXKdkukBm5D?+avrZig!l%&lK;A@Fx^MC&GWLxY-Lf zG=EflBq~2w{2GTQ7ex30ieD1p2Pyv62!FQX?~3rl6~8&cS+8cwLd2k7S zL`t2_S&#hd;|61@B#%|d@%hv>7*?|8{@KYM_ zc`x95mo?x=3%(5$f`7FHf4BsH ztOTEnt-+%AzOV#eT!O!<1m9YM?<&FHR)T-11pibC{*4m+mnHatEyewCYzf|7f>%oL zi%Rf!l;F3N;GZqQ9{~PL#DRQKMX^~9KPoBz8{kK}{bGrgOhDs^;(mBu3EmF;NVmUi zbb1BHKl+haNc?_X37uO?@XwUsUoOG_xdi{$68v|-k97Om=Fd3w$l`uDqXZu+!FQD4 zx0m2|mEecGsJK3r68u)+E!O$&=Yb`1V7LUo3-Yr_KJ=E9|5Zu(Z+zo z+%UmZKv_w7HO^u2NE{FMhxELAdG4`}S{sgf@}nT}gHr>@^cC)c9L!2;tC7r3 zUd@cfnqsb}RXeS_);G18=OlY^Hx7T|@HDP{(kCs~AWnw4TeLFzY!@oRW+8$7**&ee zfj)Ev`T+TmcnC8qeB3xvO&o_);?tC40UJ^|#$KOzKBI>!GM7YK%DYG9)vU+3q(%*S znzEv3n_ZD1*T$TEc2B!zQ4HBU!s%L8w=xlK+1}pOy1ek_?X1PjkkErplNN96uhuHr z`%ty;|KlVJ4-zMiAGaK5=Fu=6x5B*n+4H@hLIR773~Io#Jn0y!$sAQ{s@p3_QZ<0Q zg}76G9nnqg< zmys*$lMdn=bdT1y;YP~d_H?pV?P8tyC^LbiymbPtn9+kIoINO6o(98h98w{rN>Nad z9+17LRSpxWvJ)vM>JD;eT}W~`$SUt*qCp%4C!%i`;tHwwai@QK+A(if$?;usC!MC` z=f&_y>^TIfCbYnJEEISGIThId@`a8EQzszt+9a>fz^k2@3zq=`Qxa@154c;RM(KXi zwhMjgzNB#EmwYPR^h5GW%AUx+SfowfHlqw=uGfUig>|j!0YRc(lv=F(MWMWxONI1? z8)@XoMvjRsq3;}y1PF3oTgtnh()9$nW>{P8Z0U@U?;faeS&rIOOMJw=!){_CDT;OL zSHs<7i}kTtWd-1C9Rq}Wwb6^(EG)ZBEQ#a&1H9aHiC%8HNG>;RZLec-NRiNA^=o3r z`5|Fg&r+-IOv&b#bF`x)q7H!UijYU>g<_Kb>ymc@V?!rUCk)#61Vgz5O27wyMg#q7@}5oByN#F zvO(m-j43bC={<`+X_Xmy*{8y*($$)N=TAvjdRec`i|MwZ8+tLB^X%oBZYQac zOtMg~9L9f6J8WHu3pXJ~3_8ZElE^5liaekLUGji82Uz^6 zjGnvRD60ZmrtIt&ExoLOjdV*Hswjy`>QTEfF+%$%`*AZLDYzv@6W{)KHKWUFJMMD* zpWUW+nKGChxkwe18D!@~Y1-h_p9<5g^Lw)jVnvUyYST%)&0IIZK$Ll*yqA5YT6hN6 zTPj&COq~=O8Cs{|XQ-QRnM~Z4X}v;0mji#jN47?6s}lrS$t*E=E+(xJLQ+NNHYC8z z47m(*f;Yz+#4b8J7u#6}XO@_mquWwb|8pdBeCZOkO)rc`Wiv!2x_EVTY*kq4yYh@z z*$`$6Ca#emLxyCG?h<7rExngUM{-%IBA5NVaiTIFr6p`<+2Cgs}#`S4Cb+68GB3hhFnU7l^1m$rvK3nk^LrSkhy zd1|RVwN##3D(_t?&n^uWmS>mB+n36-%jDT*^6WBsc9}f8OrBjP&n}Z^mxb2Kv&-b! zc;!KIEY4KSAzw^F~Rk(Vtg4?a( z%3=!nP{uO6GgRW~dN?_K>L72c(po;^6+%L{t=z2#`m+EIE3UMSBCet4Ouwt8cA zU~6YczPFOurW-F23l(0EWOaBQ(zJ)aH)u9n!+hTVjJS4b)(h0YQ*;Y*t68?#KrOmH zB-Au^S>nx`b>U`cBufl!MwA$^77wyZH2Y~*yET z$vRuRkZe)XhD-KDO&lI45)Xe*;2u6)8Ih!?k0KA|AcZ9E=Rj4+F&z`I_@I$g2eOF; z)ZIT7igj=BU!T!GJXI$E!LVZ!l)w;)){e6`b@xp!uh>>gJ>I%_3Rhf(6yTM{$68xO zdDFznbrf3{Wx2zP9&E!!RoE*~|Gaw=`N)^yYF}iqtyPu|^;d_H-n=WS6t3Ww%`#>s zM;9T{rz3!bvTcK7!gNJ1Ug$D(*FCk2Uku<9oqA%+3ELF!VN&_P6svi^h0MNH;gY5L zG{U-ia(3FaGRhOJt>DPMaO>U~WRGm=Zf(OiV84*Uv+k>9_y%v>p%3VtxY*w<$lTlo zmZ5BrTd%|2X3F~6Zn2iAVUst^CzB771r%J1?X&EX9Kr04vXCCszaVVy)HIJebIIoS z_1dKlcuMZu5mN4JT(mt_V~*eKYwM&%XfPHXb$E8ybw+FbmmBN9Y{!$G=5Va<;N|#A zn7>x{2;uIL{wx~D2StPA~C#kwz!n?49P|WTMMc>6H0+hIu2&!ZSUJExM3W>O;#+V$xhlZ?)bTLlH?Ch zhL6Q8@%!gF{9JvI<(b>d%8xkwMGk+X!(Z(1>mB|QhySy~7d!lMhckDWz4uW3&JXLe z)Zun+kM%#?;eA@Z3HS~8&*;2C@whzmi}AzqH{w4le~sdN?-BUj@UJ-h6%M!anxw;L zUd&(cv3yI0AFlZ2`qS`R^=~^LMjEF$`nTx!#5)}RBZsea_#aB}1Djc^&|cEINXtDt z!iN=qrQ$5hGnCd3mM@LP_?@-)+K7&|_ZSw!$I4%!^tUL^AFCYw*GAl>Y~;u(HE7SXr<|D>be?dX5a;cFfKy@-yr z>qil8?RqT2tzG}e(Lc@6-(QasTK$dwfe~(Wo*UtZYJVEz`sX#SJY|cG z`$$yY`0c_7H~xH6gd6>{?`sriJ&$s9KH$pp9af)D zDNf9fXE9l}AdVEJnH0mG}L&R&oAV z=jgoB(fKQUXZ1NtalZHYuKa5p?)$;=Pq4gy?}b{PKm2=lJ35~Jn;q`yzq15?pTo~{ z^}NC1zCNE&oIkd?@^`!PzCQOm+|&6^37zk|@}ADWI^4JGw{@&qEdGV=r^{ zZ*k@Qdtc^oU;mRFonc3(%a!+Z`W)`*3^_U@j?Snn@99{c&bVD~adbug*XKcpdpgXA$PfG3>z|Li@}AB!^ay+0t`{pF(>d0a_jHyx+}8)G(&a-s zW3GQ*>B@ULuT|XS&mZs%KW~Wea{`>a&(UGdKa&F=RGjZU(cxbyDSwDApnUHw_|ND( z&*AJNlfy5LaFfG}BHZNgi4OPlS33M7?!9A*^PRq3yIuKPUHLb=@+(|>-{s2t_rA~J zzFjv(xV7t35pL~zNO98e_R)_W?$^8DD9&*?$<^}@j{a?~UCgJ+59xb8dA{N?pS(E2 zhvjL!%hB=uxk~YvPpT#5?{xHif8OPA-=FtKxb^3^BHa4(e>>dM|AE7AN1Kd44_pu$ z$ang7y-0EP&#kWfQLen_lclb_fA2{S_w8B};nptZ_vFXM#oDz~ankU7@kb|E(+U$M-7^_v8D`2)A~9FT$<< zPdePw-$xxfalaiH;YR<(5pMKPR-AS85pMN)BEqdc z^Pho=;A8DF{238`j*jDVBHYID1rEOh^sN4EipS&F;mZ4Vt#P<-*DE93+I3EZTm4__ za8G}?!#({gBi!iU5aCAuKE+AnQa4^-akwAf=OC{uKP>O(=~jn(`|GU^_x%4J#W@_l zUDrF@x9gS&w|0FZ!mV9jE5W}N;l>XSN4W9BqYnQV>T3M(TZjAl|Iy*T{_|*D;bZ)1 z^=Cd@k6Zm0JKWPh(czwcSA-k=vm@N-*AyoWKVBC)+}lB~cXYg6{J$LjanQ2n_FPc75LAccQ-5|KD)9Z`b!D+}icy2)B0aCwULU zeE0P^(BZya?TS-R*zMZY<#77gt)814oi{ps%;A?g{5FTb$>AZdWvJ(y9sXnY-v8zB zpDWJ(^z-XC4*!Jf&wV8CTh0%rZyXrm)^E>`aO>xVinD)iL4AI&`z$?*bF40R_1xlc z?m<|;Z7;zucDNsxk30MdMMY#3b zQpMwW^a_Xjc5Qa}m9AYEJKXc_dlZk`^#O-}3hl6d{+Pr4Jh~^stzBP;aBJ7UC?2=# z7Y_IBdM5ID@x$_0xppzH89ydZoiZjpwXg{SNo-8jEmi*HnaCyWXXET%Y$l z+_&pKhriXe>w6COkL&ZK!+pDs zMBXlbSpIFUT_-!-kJs6X$L;EO_-8=N+I7CeeY-A+aBJ5aBi!0`lj3o^KI(Aat{*wv z+v&enJoZ2IB0m>Dr2lr;4`({u)7h$cOy}m3^1o7?{pS4xzjfuke}H+r_+fqg{_+-w z`+eazC~kamEPui0Bd+{AT)TeYa8IB4v-shAJ^cfbAB3Nneuv^L@9BS8arV!9-Fp`y z{|G-Uf33qi6({}A;y>e`zf+ua-sj5y!qM@5j3*r(zwYmYd`A3O{j>Ee!j0cv9O1^F zZ4USJ*E;-eyvOQ)q2g>W@ANVJT@Ls4zfp0v_c~YpPFLRV|Nf)H|I(HJcZd7=`?3}g z#>e`>+O@Dn;0!;91@KwkB0nVYrQ&Sw`(6Ft>&jp6@V{4_ z)#HBRZF~@)hg;-_)YFg4BMxU>ZQLJ=a2xlgBXT+{Z~e2t;hz2>4)^q55aC9DafBQF z4u^aCYaH(BzcRv&{?-UL`qwDV?(*~TXRbU=t`(vA$L;!|$Gn#h3cf+I^5HFp5iv{=U~kES*f`&rOL30-jgEgdI^55f3mhHa zt~a>ye!jfFr2G#RkK6TASKhbl|2W*g_psxnS+Xv$|1GX-vBN3<2Sc%ByW$+f54-kW z@5=MLYw;aFx4QB^PV(2TJl|`2#k}L?v8+C(S1fk8=kpUC&iC3n-WB1-=e-ebe15j# zq`??+a8{~ZqZ^xqfZM*rprH~M!fPX4?F?J_^} zcNHh?%Uyea?&$dX{MzBZK7WjGtIz%mK^PzMC(B!XUgB_1|2T(x`Z%gBAERURJ0sla zZ&92y{5;*IIQ!uw*WODVo!ju8jr*G&o#(sqH@NcT+hgY8AAD|i^nE{n+tKm;{FtM| zx?Y5L@bf!Y-p`k3wubMmALzU1=LL$BhA)3YRDM{?uP!NHaX8O1SU+6o@V7Ypa))j>z2ONH$qw`mavt8`ZlQ}^6{Ix6Z>+@xY`}cms(YX)LTm66RaMHK9;-5L(^WhT? z_k8$=2sb|5uZ^{B~wTIf1c*(c>a8qEARVZo5OuSOgP;4 z!%m0$et3O^TR&VG;Wi(?qBv>z@%k5sd%pU;qvPw})GpmD@?;#p{&V;+?p3`}({!!mU2dO1}9(+Ph$J^KMDZ!68vAF!rCHV2`SY~@Y{ZE$QC!JJG{|1NO z8d5^#K6rzpz_fHYHq5Sb3#rP#9 z_yZ;Qi&h3Y>=y4oIZAQXbA{u>4u^aHN$PMv?$;x%HYGwI@)Bp1bH~L#6+~{ASIBEEKdadG|r`~^Z zqod>P(~meh-ah@ZE6@Hk|H-!;eeXZ{4@bxQPxf1bhw+K~`RNY#{qUR!w|+P>!mS@x zC{7yQA9$)Oe-pkl{eQi~{d>=haC`4Sgxh<^9Db9dKjm;w|B?td`j<_-{k0D z>u^v1!x3)uKNjIe|89rhf`79Ff3yUDyaZ3yO83jWxF5e- z{SR?C`N#aLhdJEy`4JBHe11%X8=o(UaO3k85pH_;sSfw`Jjda_o&yf|^{hJF*RvMk zR?mwg-0Jxzhx_`x*WtcCH#pqa=Vpid`g}aXtv+{0xYg%Nij#(4-@l{y{=ohE{yj&> zukSx`bo~1Mge&jcyYFcrj1T3iZ|~C`?%R8?!+m?7AK}*CqaxheyTakVKAjGyKlvh7 z4xd*#ob@z+^0^N8^&E1zujhD#TRks~aI5E=9PaD+UWfaByTReUJ~unu*XQFAZuPl4 z!mU1Eak#I~cOCBQ^CO4*`aI@vU!Pw`xYg&$2)Fti)+58yApe&;+{?)>#mR5J{%1Md z*Z*9H`}z+#+}D3R!ma)nM!41gCWrg_e8%CvKKD7?*XPR)_x1V52)FutH^Qwx&t4z; zlk= zo!*bVZ!Z9Rh2|oMv)ecC zzuC3--46HT^^p?%?h^cg68zB;{HKbu-@O0)Nr&%t^?c45dAoc)k1oMaEWy{6;Asi| zUWfZ}{Fvh8TQ5&OrJ|E#Guf7`LCa=C(g8x&5pTi2^^N7Q}9Q%pGSs&BG7rsg! z%k(|-ho_3i^X07$_kQp1m*B^r8R(OaFMml1{y+)-qOYk2yNtzx~Ik{L|2<{498N_-XR_3dNtNIP2;4iX~C`W3~LslJc*K%5yCF zIj^MrWl{MnLh3gZgS&q9Pa7g=WtK|s}XMWzZ2m`|M!ZMhM!0C|D3H3`P008 z`b@>yKi)olp5mnA?bAiBJp0r9&nLU`-ru{{mG|xKb+~Wu*%5B-twgxB_k4$Y`a2x% z>Ax<*js6u8ZuGBlxTk-e!#(|*Bi!i!b%Y!JdmQfRf5G9N{sR$i^dF9JqyH1dDL=hG zbKYwJ;6vKppZQ$H$q&9hFLb!C&(RTX^;s0*R-aynd-`WM+|xfd!j1m62sipW6p!2c zZpGvFe%R3=Kb!ydW3GIipU~l6&v~c>f2;)mLkWIhib~+adU`+Y5f1n7Z7;!bHIjTt z$CrOq30^J1&v&@@yKZ;5@1NZz_}fbG50v0{JKXofmmKcp+dnDJarg4=5yfNq_ESg4 z%eT4bO1FvL4%#f?(4bL;l7?@ z4)^t(a=5SOB@u4*ygb6Kp6_tDug^^m_w~8m;l4h1I^5Uia}jR!`AURaeZK8*U!Q+< zxUbJI9q#M%9}f5RN%|A{kgteaedb5F)#o`5_w_l(;l4g?4)^t0=5Sx1l@V_BSr_3} zpR*k9>oekTU!O^b`}$nqa9^J{M7Y)Gtr2eZd9TBLeQt30IQn^o^m>xq;c(W|{LJ?_ z+}HC94)^tZAi}Ml4@bDw^MuWz0;J*P>OKPjr~KJHC%1#{QJj22-Sa4X$Ik-}C#{PV z|GwhHdK{ho2KiKD{@VqLlm0#U&+M;fIs9ISAMWtaJN!is|FXl|6`u>t`vXsK<$XV& z;&47=dh*%`w|+i5!mXeC9q#FGb@*3YJ?~I_E->$ZyU*c%yuRdczmELI;hxTZ6%fXU z^gW%YIo#7(=J5YZ-CeL(aeeQ@5AGIR3c(?`I|M84?!hg%dvJ%~4#B->@dBl2ky0ow z1xk?uMGKTtcxGp_L`Q*;pd-lxi*=J6~)~RaT)~RLO)){8p-p8A6 z+}4?G+}2sAj`^y&9&f*>yW`g0$BW&;ZLJ({E6s73#<+dmT~*zUkA3}H-{eb}Is<*= zpBSHD^8c7Rqm4)J7}3p${bILwfpL2uFMX%~%UfUX!vj12?|et&>rH8$o?R~ayjNAS7yLv3I_DWOdm2rE%r|R~9 z{j}$MCUsZGp6_LR2rJNDm{n<&5{v0Ale{LAJ_3sgS>~UVdu}>>TVqD{f9#8?s(Yj{lk7QW$M`b4~xW$pV)_|Hr~aYFB#P_FX4V& zK9jfGTh+L2x4v8zb`d;`}%9Uad$l6zSCag_BcOe z+#ctr$Z?$iLXPA7Iyu%we;T*_{L8pIb#R>f_3@r~59}|zPETOm_CKj{+y8Xr=zkzN z`oB)y)v(9ybK~}S_{Y?-+m)biMEC#eKgK_qaohhi#%=$zkfZ$}26FW0TXOX0d*il0 zmyFx~+%#_cbI-W#&r@>r=N&ov<9>&yd$<}!%zV|-xIN!%M5O=U>xka|`G5Y-k-i*> zI1YdGz82?~o^}!K+WI53zMGfQn*Pi;p3e9(b+_M7d;d^>o4VVs0Fytc?&_y8eoWof zIph699ryq4;ry)k4}Q&|_i**?{iWz$P4~cY7+0UWwUc|ed=}GgKI2)9yL%e$;ri+B zy`kL$>Zrfi{g3xJZ}Qnq{))+;^Kz(jU!D8^+SCa&bv~FnKbbm_wS8B|?#KM^OB5;P2PR(fR689#(y?- z{xx;%I45#n>^yG2YwwCFAz*x?VOu$K${NJ3qva?y5`uVy1or zA3o7|ag(2E+@3GdV*Ky=m3{a?e{sI6yLL;M{j%NE z-(=dgf1lLdBSC*I_^6M+2kQD`+l}cO^d8Rbeo3P4K9n-`Q>(jiu&?8?nL2jfu4wYE zjiK%fy+<39w||d&dTjZ;i@7}JnKkO}%W9bZY&QAZ-sdn5->SPBwm(Nr{#TQKVDdFh z{U^q28GmK!+%a{c#_^tb57(}(lTqDm*In-)`Wa~ap7An1>eMt|+w`Z2sk7G9X=U8? z3HO~klVe@im%OCzuTXV2{&h^dGbo=^^K;c*n|A+(Qy#~|dgHeLTa4TO?MmQ) z^fQCWyU(@Le&#T4`bf39yzwFB{{Zhu)3?!(6l?#cq8NA8*gm< zjB$IO{%YLLGf&msyxPRn`KXTlg7JwG-wS#VI9?CNCdWA2zaLt~)K6>jc04l~x8s?c z9OGGx9OD^8zF+ryRq~DM^~q7EDS30vw>JL38xI_B9gVyGSJ!-qaYviHv2c$*#$6uc zHi~?Y)|spBvUa_+Lf!30`#NjAsbl-O&D62$lYJ)d+Q7J-F>d$Q1>-J{>-$Y|?5~I9 z80VMju0~UHocJa1zrj&@U%qus2=?|N-uKju+)wVRp#lrVYsIqa`; z#%-OdrjC96-oWJTb~Q6@x2rulwyP&OwreQ)O>Z0AV>0UKdY;AKO0iMx%RV_aof-K#%(`)kfWc2 z$n!G*!7aOz)V|;RuSJ(dI?*hAaZ9j`>-nH4vj87GHH*WU6Zf&Z6!27&=H1<)aqmO)du&mc z4?Z6|8+U!h^$35D7{>|D$KjO6`8dhA9k&_AUH!POp!b-o?yQa3zpG8&&Z`@Z+kSpa zj(#2{M?cSy4~^)JpWj7tyuQAn?%K5b@u|t%e!enp`}vt1{fw7HI)HITKPwq`$^!N*h0C+MQ!OBJBOgjhkz-jviO;>)iuhUR|60&)=)ZmH2<&Ks_P(NOkQ_ zMBY&$y+4)04BSWNy_J)Hbc^;P5#)Yp;UR^LQ^S$!+{IrW|7$JO_c_bnuF zfV_xq?_u(`>PN|^tDhv_uYQL7q5669#1#d8AupqTmAtF^P4a~LdmQeNS5UuCezlgs zBl5VKe@Y(OP~Zjm1O2@NZ^&<}zbC(}{*nBgx}SF~a1WeE$JL{fA5@P?zDphV|4`=} z^@Nmch{Jc0hc0DM0Q>XcB&eMfjl^#H0fOFa|$A$9lK#BT2s^_=8;x=7BwM``m< z)!lmv*5|jA=kC3A>jyMnlDw#T5P4vC`T7dv8PqG2r&7o3HjIzIx_fWV_9wQwd#}NI zWOa8B+4_fW^4#46v3{nlJa=n3>-DrwJMt0goya$;hmc=U?@1n|hqPzs$zGaqpRw~~ zZ{y+eWf8}DALFZx_cd;0d*`E))OrZ0h+X{-58}`o)a9V-@|;W!8WBAgxoy z)}K7xFY`Xur<+U^YFPrUy} zyYq~@cF${_735LX*Bf_h3DmLklB*L}^Se#{naSh(NL}|_K8@y&nf#w7Z`WNepGor< zP5!ybUpMaZ1vP)yxLfm}|8~9P@+CFzYPyH(=S%M&@^2k_5A?sf=KmFr@K@gdBX8F^ zu6}*Z$I35{>ELto#s;-cWX1$$9aeTglOJbzFiNv{9?_!d%y1C@_&2(kndpJ z;aaSU))`{i@(tEfMkxd@=DY3tjXg;yYM=|+S#$7a% z=F?j@`E1s`d``{hF&@q23mbRQlA8DaH{#(%|9ekQ=|6YTP#5qXG3A3B;)q>^<18V0 zUd^W<4^j^x@2Q@RJX}499Q~M?WW!qn~KU zZKfM%^m9Jt(a&&leEm9d^m8luVI9vs1FkfT5E$x%N*+s8P( z(C2vF>YlnaSPean@p=&XJDRVpACV8xJlaS8yyo!Q1o^}2ZVm4q?t|Me@Nna;9&nmbAP3fiAX#$A2XePP_ypQibQ`q6#b<-;_W!nn(i*XKozyL_nTgN(a;s6G!i z?(#h~-^sYk@6zWJjJtfW=EID;{2+b4)ws*o*8CphE?-2SUp4OXL7Kl~+~qsyb3dKG zUCib4YCfiMmv5^^ zGVcBt^A3J~1o=SCccOf_E9yOZ8h8D<)gc*1L8y2D7->En5@(r~isOge*7=*ig^!w-nlD{`E&y1!`isCw;je^ zKDPTp@3GFf>rZ%%2=+T{Jfi>F?n&b=zqNqm?-+OW-5Sw79vP3=-Ynu+aG?K~Z)0jZ z*xrPxBp+bh)j#2id5>(y9R;V1V80;aE`L$;m5n>vnnLoy#$Eol<~tdW$m{o2gc^7G zKQuqVcm!$vaN{ojUi0gWJF1=B`;YfHY~1Bz>G5{bxXXtpb7?=nJH}l;mF6EAcln-4 zT-tlMkoUm&XVg4?ZUy6y_sat)pHK7n`4r@(s&_t7zL@4K8+ZLlsNatpY~1~CHO+T2 z9?}0e(t@5Ye(rReCKU1CxcdLjXL(Y9{P6Lf9>M;!dH|}|L5ha3+RXcywZB{dX!HvPM|6I zZ@mOsk*6Ib(1(2QKmq;mU%RE7h>xcHKVt+ie`EY-4Hch9`LF>38^|wfa0~g7IRg90 ztF00^PTnS)zyy{&afrJ>*yFh#w>GUq$=^`L8;jxNm@VXKU^$ z0Aj+WA&Q{-{O#V?VkRli4mx0K`` zlgBC{{ulWJZ8wr$Pq4r4>h{JXe_LPbG$KE}TD%9jsP}uT$S_P*T_GW6@Nf}t*-bp^4|i*@$=^B&jhU#E2?}R{w%3H zPf8v&y?A=^d+o$?kyqC@UW$=_rQ21Jyu?_kQ-^#;W$_l|EqaJ|Cf~R~ydOD!UT73~ zs`-+~&$(k98teJEkn**&OMWf+_d2hBOTJFW;RyLWym>ySe z$xG<^KT0&|FShHCKzW{!e7PRaUy(1?I)UVi#!H zI$g=Lj1wP7es#6@Sn@S<#AlMf(D{5B`Kw8i-$Y(W^Lxop>3+oTAHX;?SLponl6>DvssEY$WJ2+H`uZCCaZFe7)a2`QotB-vS})0$CjY6Ucy;n% z?MDN0%vY_+-|2DNojj}789|+=FNTqSJy`N<$v3AIze3(e>;Fa`H?8EKljHaI{X-sK_g9Qq@^$Ec=D6}a zF?nu1e$tUYi7fdXdd12Z@I*mk?XYNw~0JtuH^TUr_k%faq`galD|lvWWM+v z^2%R}KO@gSTl@q0ZC%I4(EB>>({6hkkC%KB@*_>e(~}>XE}olwg6_u>=c!;d?5c+?jn6#UKytv*!NkcxUoaD2U-_Y}@ zF!>&xZ_ATs)B7;B$ye+81iw!M{hX3T+U-L57{ zha1W9^Dy{580cr^VN&Nf3Vx4c~RZo?c_1^_3Tyh1Er+h z`{ejJfBgOjj6)4Qo>Rw{uY=z%FVC}*_foG+9(94_@%s}{C;cMv5tQGr{hLg_xS-_c zkvG-XQ!B|Y>O8Q8JoNynbDg|*6!EkP7&@*eBRA88%@TtE7gRj(r_C|_JJv}ec@wUhdH$lvI? z=P7xG8j^oco>b4HM7rKbfAIUMvyivdug^gqNw>E+`8s`Gp8YH7Pc8D81;m??576fw z$$y?C`99=x^!yDaKQl`5`1yKl?>+7Re9E8gCix}gL)M9}C;zZkd^h>*n&PL(KP3^z z&fWAchWru+q+H}LcC$gj>S`B;hMBfNP}d7g?Kucxw-7u5b2BtNX{hqB}k^?a;J z{(R?5%Q^XLHiYk$d~ zAn&Hv(~IO7&tJ)Zm?U+clHVF6{*HXVu4j^J`{@7Pn37LRj&=jd@8~$-=jBnSd3UK( zk@EO``uKTyNzt#0;ZF02RjC{B2nD^*NUcH}q zAMzjc{i9HF)R|0<-}5++Jh>j9E6MSG#uoBmylfgK40(q{Yw5~ zwd9|W2jv!jN8VQVOYEfbdF)?oZwm5oy}qX>$9~U6epjy-#mGx(|0|M@*7Kzfd4FAB zwIE-s=V@p1Fm1OVc^|!=jwJ7~P_}<6`FFYwTtMEpuH;vf=hf@lHuBXSC4Z3oz%=nQ zpH?( z^6YvZ6(?U=MEd_Vd6jhHb;*~9iMJ#_xl+6fdBz3e{mECP79T~vS&z?YU{bm`8ng%sb8t^H{{21NS%G;_jEo#PJUeCe%Hv$#FI}vBp)pcGOhzb=Z%6bzZ{vN5cchNG=WKOX>NNjXZ6C$rmKAuh*9#^47W@t4`ivxzuS) z-c9H8cH}qoILG~3^xwa-)EQ3sy>-MVlV=_+KA${}&Ks-AcdwKDcJf~X#1D}tD=vP9 zyiINKYvlO`i9aBJtJlrf-?XK9LIk#^31wUt4LlXi`1_} z9-_xd3-X#>CEuC+O;hoH7Y1EkeaFk+;-&;4b-?Ig)=y{zl(N_?!Hk9=Fl-e8T?iskubtIp<0JugG^!5Dz3T z{*`zU^39>*705TW5wAmDXQp^d@;SZ5yOQslAwH0NcDVRh@_Tx|&m?agDEVdN2cn2? zB40j2d>?sN-Cs}17iqii$g}C|pe#Cm*e^|5O8xxg>-F_QX>#f}##o@q>;K;I{7M_!?()agk+v#t10@&-%ACy;-m^Zab` z$?YT`PLAIjzKOiBo-cdIw-uKKk{HXRbg#24w7xf|Er^k61`8%Cw=8>ZxJIM!yNk8|K@6vhdDmljUSMuh1 zTzw?3QBdkf$?)ZP?pP?#Q$nkSki^;pLk~-_io9H@ZKY3rhj-Md^S@+{b@|cOF{;%Y?|L~U&Pnc1@4#)FC zU617=f2ZeHG4jRwI=VV}v;e8wgdF)nYX|@w`R;Ilk0+OrE5X_+R8vN{UCyBp)%(%h${Ec;ru8il-$1N!RC@$zN-K@{woN z^Q|=b@wHOFHhFM<@n+;{8j5!yf3;G)7x~aa;seMNgo=lfH_+$f$eTo#{1WnIIzO)@ zpP}{lk>l^b9wzTQQR-hLAFu24Yve0*|2`#8QbOvyBL7Rz>)3jK8v8wZJIN;`U)e`I zD|xPw;auw?~QBA^%I) zOO46@*8SUqyn?QG`;(W|^KmNqP<=j|e2`w(){^hjdEguJ55dy^pUCq~5x-3SPRHRr zd7t5u|4jZ_*AD@DUlZfszKP_slFuF}UY>k+Y4NJ$epAKUl4ofz-i3Uzu0uwXPt*J) z@{?_)&PwwAW5qX+zt#TyK#u&6&TjlIPa*q8vH$RmeN&`nePN1ikKzC;u2n`nQaH`gHL%9!pK$Qty*wAWxcBzP>m)UJsTf-_TF; zO~@Ne5)UTtuIr_NNa`#hM}8G~xjB;mj=aM{@uTDu$BW-2A5=~JH}WRQ z#XpiqY9WrF|Hk-_(s?*}PWe21p{{4rlBd`GQkcA!&R3<#=j#2vrsT-CCcmre*fHd_ zzLx&2C6D4Sew2K4H}TWt;Z4OKkt6?{d}VdX$IT@lF+RvACO^JRa(T&5XuCzoL-csA zPmX*ua{OMMQRK)^B#*jW`m>Q7`R(LOb)0`9NB%PT8a)o*lNZz1o1e*t>iQ>zzHY#H z;(kb4^3S2t{}SZLmm@DcP4b<|k?%CYeJ$iF0Crt@23J-#qL?eu<5D)PbQrG80rf%?`v!% zM}9kbp~^Box5<(Jo&2D#2ND&Kufz6U)8i@ydCZuSD^I>AT)Zl|e?jqn-#b8#`{zH9H`e3%5Aq*$J@%43<80}FY~2owPg9+j5|L+1Ci(2- z74-FHUh;9_lCMmDN7rw)$lL0=y(2l^kLXUmQ`Zl3$dSj-fnmG8k1PE-=p%oOe7LSR z9+IQ}pX9k}O8ta|uk%21@1V=X z@)6^Md~)(My(CwV9QhLDMMg`$4LS0i$usHe=!N7H<4K*BTzpzsLCi!Mv|J)-VuJ?5xk^ipitv|^#=sM&L`L5Q|?g#Ro zDa8Hs`he|&JJk`-PCh2TcoFhWdS7)e`ETnbzk)oKKHp4UQr7|BlYdMl zb>7OTMF{h>6@5n>i zN&W^o-q*WFK7X;~Kak^nw@78>^BDhr+2naja=Z_ij=X?wZ&7l*?^cHV+XYg;IXUue z$(!hPC6s)|B&jo=ykuMPHRRnhh@T?&*LB4M@{u}j&&bQ_d>&2LH5fPKGyf1T?@;&rA7e!x>ay~YB%Qn)VT;zD4r2zT)b&{`5j(kJ%9NPbZ zxE_Z?$XE52{A}_mf#U1Qu`aqqj{79P zlJC&*c}0%((kF7Pm+*TcF>Y8dC9C-5cw)VjfgIoGjNfmKI#@3ir##k6Uz20KRF@p< zrIzGaFLfcudZ|A-);Uvr_+}q|)rY?!$9gHDt~W6bST7|bU)@B;w*WcTOU23aw3K{f za;$$^k)K~A`2pm}4<`@N`F08UwBb_c0Qp*d{r(F%);~AMw^WrnugQ`BKz=EfU-H6qWb{p&%F^%Cxrp`W*P9XXBiSTD^XU$;j3 zzk?j>rG4b3#z_7GIo3kCRgBRSSff#ko+u z=>|F0OApDhUV2TA_0nf@te4_cm-aE9ST7|f$9gFvIo3;g$gy53L5}rOC338n>XBo; z)Y*qm^5Nh5@Sn-CUV283_0ntd@B7MlCDiwyF>Y8d;rGwMZ?%s~`Mjvo?gH|t+MjLYSpV!HFFix*oF_;A3V9!W{+t}^pSR?xCP@AGdS3zK zhI~@;YXu~a?|(ra>!pH}ucfays*_{ARFC|!n}FPe+sdGjgnd-jMgu`-h2Y$=6{#kxxPX=R(O9BFB2EBzd$n zl5a+yva0xS^6GWP7m;KAvx59dLdowVNB(>AGC3uGjU4NrJLJW6ef6Fk`OoBKyGZ@y z`g$GXiS4Q;j6wj~wfzq2z<=NFKkh5&g&dXD;Pq zXP5jQa^w$@zn&xcd*oREJR-lPuScS3ztA7#nnRpuB$^$xkK6dTAE<%qWuIMvnE;9`dRolD|QY_0m1^Q2~Gdls`8V+-UyQs>Ch>~o zBUXvmA-}Kla|?3R@9o2V5|Cb9JY68Rr`zvU(Q6P;(?k!Nctb&}}&au~M}q2j5?`$ZOSMUMHQJNXZKz3xLk zU0;U|Bafx)pD=RFCyU8(ysab0e6o`q^T}ay%qM5aF`wM?;s26jK1reDit$XAQN}Gj zIp&j`s zpA7fmOMLilAAXq}^T`Wx%qMTj)9C9L|Hjf^j3?%k6yyaHNUjh$=93cSc?wBBlpOQP zbn@lhB|n>7Z_D{DB|p|v^4rKUpL|D-*GQ-lc%lxlE4Z?Jhayji==Obe;c}e9?TV zA6eg@$MKAIiM;t%sPYQDMCnI^Gk@EF<$k8ACoj24+e}X7~NRO*}|fXoE-fbL%u^_$IT;0f5OSppN-_#XGni`lcPUJ$kCsZ=1Osk4?G{n<*6{_H1jQC#YrB>%0b z_)GHHsl}7)_f24YT6`s*iM(@G@fzeY7mD{Gzoz$jhLhuc(wXFe0a9lPIr4|dOJ$M# zkL1YTCZAAH@{h@pj}t7P$2g?W^=&e8G&2RN4^pHIDI|ah8+3+aQkWr1R1h@?GIl=K(o>e&jhh#wTVQ`8sT`-%5F&f*f_ylcP>$ z^3-~MH6}-$*5s(ug?va~>CXi6WlP29lVhCMlJD1b=5BI~^Kaz%zOmQjs2{oQm*Y0L zj6C-zNBz>|-G@lNC;7BI;&}fS`vv1Rf$|u)<>b3cNS$rusI!k8b?%a%tt53`lB3QC za@2{UuY1sc?8o%vr;q)*cIr5FjXRVZcM{@LM7I~uul3z)V z`rFAnWtRLAa@7Bmyozq`CvxNiJ4ii@5B|PvbMmcv-S0|{i>U<_|rr$S`KyTb(yRf|_$ouO$zZ?14-co-kIr=%49Q|BMzF?Tt`Gy>I zc9WydZSwiL{}OhRdf2YS`Q>>4Ikq>DeB~O+7a(sxQ@lEP+_B=#$x*)pIqLTyNBs%p zMJ7r8`Q)gxoE&xbkv}Xib$%pAKYt-d{afUy|CYSJ-fxZGS=zz)qkcki)K5u{`uWLM z>-%Ws$Wf;nIqI|{Pnl5q*PVQ<9zO%gOX>MIihQ)LW2TTdDIoRdlF!d79!`EfKzsxF zxu)Vf$*&3f9VDNSKt6GnyrRyZ7s+$G9ppW(k(ci;{+#@o){oOgK9Bv|NXIh=`N*}B z`9KL(P||6201$cO0j_2l&jOa4dlV=2WSkPk~E9!bv+^#6>``&r2c==(U8 z$p304bwbD^>3B{d$L|4IOCCwrGe^ij21xyT3UsGH1r^s6bi$5a&q{l-H9dGo1W(~>bC*Pv;Ne%L( zdY`-#c{IK5j3zIv`IY45HU9&7X`Q!!Bggk=N7mQz=zku4U5VHC|M?`@uA-E`IbFOl zdA32~1Ia^mzsx5uujlU;@^Zzb&T;ZIdfuJ!;rGc?)|Wa@e0UT+uCcv?bRLW4!?CVM z9=~TZ8|C3arY~=fDi{~bfqU*_O(~&OFxg2qdz~9qd(Wl(VySR(VrLO=+6i8Oqr!W(fi0p91rMEB69R6 z4LSOgl^p%aPmcbSWY_*wCda%~pB(d2FgfO>5OT~*1IaNjjUmUpw9totOOAQzJUQl> z%j8`%$+*8JM;?D42Kz-1bH8MI-w}>^DGm9EMN+>sIp(Db|uAd8#WBiMeuZ<(^)g{OHG$zlOQ1T(<*k8TLqv`92vE&!(OP$H&$Et}hB|oU^ zidE!4<(K>(^40<3N6GR1QP;@pC6fHVZgc}dO39w1+b@qer9<3!{wyGSlOIr4eQV`#nxIevbsKKUno-?2YA{%*xEa{OI4 z{2T`QKS9TTIpsg={CSYPjgJ2@@_N%`d+(9Y)cTLfw>FS`bbUVo{ne z?tAAZ|4P@@Maip|kopzLalX_e$N3UWj`O7(InI~CcjVu<9zv^ytKb; z*EMpSFL%ge=Kn#LSLV*CCB;l4S5s24|bXy=gS51>xrd5&&hGVyd~dVQu2xQx`gq>`I3sf zR0qiyA;$G4E;%6QR?)gJk|pv$#I-dCC55s0Xfc>)#O-* zY$M0I^n?$;M~-#rzvNhFMj0a8hwZ)8T%HGzBcFvlr|!q{XRw*_9mYqF&@B z^}L%-j&;r)@_%$avzZ+0(jDYWlgak}OpbNe74n)xCI6YcfnG1;=;tw>I3ALb<9J9< zj^iOGIgW=S7La3qEh8VQ#{+(U z8^#Um(mj;#n_l{VnjGuWpUD%(ko@oD_&K1LxkQfZ>`n59&1C%FkmI`f z5Ba94l25GPZ-wzkJ{5UJ%@-lZb+a^i^{7(6Avy9b$m3{!FgdQXBgs$9m-;Koah=^j z-Z@C}C&+P~Jx4xC@5?R)=X(KiTxW}uH)$&M@xB@A z<2u`n^0>~nC(mC^>hvbZ`4UQw^JOYI&Xyj1SJ2c;sQ^W`&njUs*#k2E9YBgP-+OGfeodS5Gu9Op|V z^43eGZaZ?EFI~xt>G?aF9Ougva-1)7$&)shc2|&NJ@5@Vj`MxwSce=Z$N6%B9P5zV z(W4StTXeH&m1k=TZ0_=dgRwN-;*5cqW#yV>#nG}eHhQ5_5N*6^0>NgDN2sxp*%T`hnnO# z9-5HjcxXqCb!iM9Q*4GdF&?ApI^zb zF8!T+#|p{6C&#+<6Zy#rlJ_4YAF&@72FvrbzdsUnW|WgUY`3=4AG>g1@9LX;u57XmnBYF3VlHW}}UhDiop0$DGeQYSHaADtJ{k)!_Cx@mOi{M`MP4# z?qKo_UBow$56>#To%~!2@yFz&l8Zkl?;c$|??m~CacD75o);!BwMe`rc^SRm(T+TZ z_Gc)0Ud@jpPu5xLFC?#1Ts)i{e+P6Ac|l#D93+3+QtDhLFP%#KCiw$hKfEE&toaY* zKkISmKS}CgJSUcy=PAhX`Qp7rAO$=?+e48YKCtA#N>^1ohIuAz+ldr@6f+zRknaFP}l&>#Bjye^{k#9tfd^>XF2aqE_h8+2MGum@oX^aZamz&hn;utX$=BDDd`i?*MdIhkk;m_8!1f~lfb!9MNS#mQs1sYqiR&aIZ<$i+WF*Ht zke7UD6v>w&Z`4b?3OUxL4al+IyOY<`_54us@JUjC5_t?=-_9ow)Ajrs^18F7&Q9{- zdi;G)-b}9(7sxMFkvg}@YwPQ;2jl_xegN{$%cV}l;=ub~?5_r);{I;Y;632~9slHb z{hW^+`5^MP`ntFVIr1&YPwM@F?&LU529skPMv-G2CX?g(GLIbNvzmOczl_T+a`fj2 zdH1Q3KSz%KTp>q)ej`VJ-jHM5BJ1&m{e}IKfE@XBxxGf&A!P-H+t{`nuodFCNG z)=_WBv0YJg9gY3yuk&mYa%@*&^3*w`Kjp}=y*0@<==Y9AiAD(Q%|L#vUA3n&3PbbHE>O^!Ns$x)|2Iksz>51&Vl?cG9-I(x{GKS7=@njD{3$#Hz% zC&%&mlpM$BU*tGGBQ2G7F#b3`{mF5>r6b4jmYW>;66DBNBTw2?`q7*m+uMm8+uM^I z+dGIH+dGyV+dG#W{a;Cr{%klmVLQjkPq_V&3$-#avX1?$Wec} z4?pO`Pml-1l77D?NBxB1|9iVql7G> zlVjf4O^*6MlB3RLa@2W8j{e8j`xZD);hD(MZaE)bogDpXOpg9^CrAB}19Cf}S zNB>WfWB>k4j{W;5Ir8twkx!!U^I+VNFXhAg`S9W7s6US!*QPlOz8(c}u-d8+(;(H^v{^n~WUWo0c5go0S~fTYwzf zTY((?uS1Uh2a_Y;jU4%5yujKokALK=`S7+re25R9<-<4n z@E?3Qeym6lMUH;P()R~2p6F+0a`ZDFIr>?O9R2J-jyk=`QD-dYa>@9kVl zj&;;Ja$9XiC9OE#99OJNr9OJNo9OwHHa`f{wIr@2z9R2)6j(*18^yRprpUKG4 z&obnwQ;i&T8j+(;cXAwu1ITe4jwDCBQ_0cp0&=vwg&ghfAxFDM$kFaOa?qL`tY&jIIkCxV;)#Vj{JUd~-cO9(mo*^eCkoI;L% zt|Lc3cao!@hsn{;E99vEnjG~%lcRo|?O%>3>K7zOogi}5sZNeMZOJj;hLB^v?N5$& zN0Fo5Y2;{k6*=17OpbPUlcU`q$kFakvO_;UQwZhUgIn~EImmLW&| z%H%kITacsO&g5vfKRMc+Nsjs(eE4~Cw0n~r?LHz$yXkg*Ic{jTHaX6V5OTCTkR0uf zAxFEL$x&x7IqDoEN1dDGI8J^i$9{ZHj&}bcN4qh;{c?QJ?pNe!Hw!u1%}b7UOOm7A z%H(J_m>lhPCP%wN$kFb2aRvFm*bE68GU#a zalsM zZ zCCBkofgHzAXL1}reaL(2_wkG&$NLdsL20ixIo?lcM~?SjdXXbP#)r@K;p@mz|66j@KS_@KC358NlOz9<9QjE5za0Pk zdE~i2IgZb?X#!=qF$5yO}ONnlH)knn&P4afKY`#c$*|FP@X*y!eMauAVP34#+s+ zd`zaEn7q(H$)zJN&{#YN`9#f^B**#KkQ~Qn7jhiW1IUq|9 z208M7kR$(&9QhdEeL4QS3(NBqh;KOOErgBstE<%H%j7>yzVr3?|3<7($No zYalt!qfm03cN58Re$64r`L&!J=htR(oL_s%aef^m$NBX$InJ+JRZBFFJogB8RV$HiX8cE~B2F9wj~yckW6^I|$V&WlClI4{>u=__rbkB#qViJM&49kS7sp3I6%HWH#z=(XL0gr z-6UU${84f7dgNtSh_@y`ujf~9a$E<8llNUDbtaMLo+v(#9M_%Iu`SU*Ktlxj^igMIetF60y%yk zQEl?v+W#Kp;a^EVW|Cjk^JN)1eox3oa`fj2`FAa){#Ei)^TZ#M&yOSifjmr)hnUCY z^B6bG^GV4u?`0>ix>&xx1UY^$N+t4aqapWjdJ(3rTCeeuhHZl3>#@mv&(a&}EQD+3@^>p?dOL>2- zvx+>q`c6~FT?eP+mroor`N*1eAFfay*PVOD-FAJ{uX$wL)z8yQKJnVP%NKG3LUJ6>>wNfb@}Kp7-4S)yZFd}EzyD_PZrpb1c0Hzi3hBOI)Kl_5 zZv0*Tx#nXVciW5WV^ZTTpIr~4EaYR=^QxntI=%T7HTfA{9XzTSclGi5q8@p{DDo9e zsQv>j)Q|jy`ULV@>MN*znATrU`ENCU%y>*S_u;&8w_i~Io^h97=fd9Oh4ENI5&!+< z!(;y_A&h4o{hAcy{nZ1FyZSiqim1o-%0s;cgMpA%}<~_Uf<0!?zXp(Ztnu)_IzAr+~vD#euFxW zlPKjq=z4wZV%%L9u1Z&3B^wB+U<}{9DbBq5MM4FQt4+cd&SmRg_<) z`5olb)qf!WM*SMqFQxT=Bk!yJnCkqXb)uY?eqo$9Xg-!Y_RAg3ry<{=9!QS*<;Y)X zKA8Ny`cQTB=dAW;9C>sX@E&30b=4P=PgY+=enowQad-R&==r$E_;k-R#&NCs`5hr& zt$tD+<5pbPKldnKIrlV2dU^5|>P^($X1e~j)^^*Hk5}(T zj{E@f4VoWGepY?FI{JzJtR@f9e(oUer~ZSf@74+B0=)ltk4xk=+l${NuRTHh4b>m7 z^%Gu@&trUEX#Z1@my9R5Eb7>o9#j~I`b!rX>QA7bBYS!?>Y-CUw+*qxEx> zmyR!AUzEJBdTHY`yl8FRuIk3!@xMXyb=A?IY`VT}Z}P5AsMhIY+|@a&bp{!?`O(H* zK57E*Ki*@aI@*1!?JgmYq`uF%n+o;q2)|>--Tq3d`CrM4ssByhPW`K2T(A5h_KT}u zA>x^zUk>tO>Lrc4cE@X-VB@Y%ea&|#ucki2xT~{4>#Q{H>U7lnHgbL013x^G~pP?91|nZk$~|!?m9&jJtm3_m^B+<2IkoxXVw|d|q{I7hcEJ zA+MnQ2_bKzKHRwL|2p;Q#@%rk)BVSLY*febb4B~}EqTVol0QT~U;PyMdG(9rv64ug zTk5WRt}C0hKTpUP=(_zg`6l&*SEL^H%N^Y>MUA_0F01X9BVVFkSsnekr~PR|`J0;W zM0tOG-PfPIiTW7wsp>Py=c+F!Kcl{19sA2ascirEl)t3;E0iy!`CF8arQ`X8yt?|| zPKV6n29nRx`Xk9_s_!)J+RdZwo>xczVRkp$M`qY{+A?gtzOTE_n`XSwEiISd+OtiyX!)Lu4BWD zyZNe7O6mVX@~P_K>gfM$?dK`-1?pGG_p3iM?r4u5C-03%oG+SBeM9<%b}y@EC;y~g zggmZ0=)6Zo@|^08jJpz7wLhJVyZ)5Z{1|l{4_9@3CQ-ho=2w`!JI1Hz``w#;AOYj^Lsi1L0j z$np1pmXLopT=G9t{cYOrGn04yZ>9ZzN1ic_)QO~TY+-z&x&ibavDDpDx4-Z{S}NnN ze!Q=||9Fo~ZQRzcppJef)qZv+PoqAL>g@VT`WZ$ZS-($Uu8%sK zC|^SJyU53?A29B=>#!c@$Bnz~TBrH*>e#MU+W*ItzpeS#L?{V7iVNRPKBrj9$F=k%2Jx{%}hi~5u2Xf65C5BkmLK!ijo)TEOjf8r`GwfHaWh(t2H^^@9R#E?HWmr{4{dpmyjdBfgJgLW~P#GpO@Og z{dnji+~@r<;XdvJ;p6eRIY)T*yFxt+z%xZ(+NGPnzO+j6KJQzI+d4d|MDT1UZtH^| z5BrE){Ysaiv54vP0p&HedF*b_$PcIf$Fb zkGCs{nJZIoZCeHbO#4SJMy5JcO?&JQ4amP^JJjodMS>ooI4bNQRyTD%- zp5^*5?rX%^{|<5U*FpY$;p4#nC;Tt)y~NEw4fTIZ+~&p4-^0Xh+}`D*n`k>uoIPiV zo5#<)^TgSc<;Qeg!u#CRo(x4>5pX{~H=)i_#JSE&#Lb_EI%^QOI@4dAi~duaIM>;f zxOoo4(+1q@JdoLB(eX=p^CzMHKE%y)bp=Z&5`%^R2R=f0{~JR7Dd8)@Cllv!=fvHGBeypCo@Z21ezau8!LGnj2?*oJrX|UqbYCxWX$7p#LZu#dhpK^z7Tw|@Y`#I{2RpCzmmB5 zk0QTO_&qlU&ko_ggYO0R{W^hpIVSl@HG}80xcUP zB5w2I<0g)V`+a_&L_UY`Rp5n$XKoO_zZh}zr(F?vdE&NTt&p!m-14W8uT9+YW06lH zZuyegqMK-IP2BQpkncd;@@7;= zf%|dTAIHNS;p@Sd2w#ii@IB%FdDIVt&%@*RG2#Aszihum#YLOVyImia#dT3J;p2;1 zDv`KOcz#@8-6*_D`;fm=c)4DI-!I&MkHLe&6IckI5bpV>gg;a;_-70Ee5&vr-9mo3 zaL;c9xB1E%{TpVDineblZ}a;c=J$l;CnKNZ*Ys~ozy3GR8t|)$XN!0>Tql$#Zu!l~ zHw3pYZQT7Bw^>a79^otVMBfx`{e-)JGWTo-=rU5#AI$ z_pxxl_1XH6hCY-QJ^{QYaqG{W@N^RXYmVR@PCR>rmIj=7j<|VFBELX*ww&P`HV`+@ z+wgos+&sPUd9$N2{DSZun3r6~gV2vR_ml&-@@!rPV_qssek8`NBYYP4ZNj&KCkx*L zK0x@7;G=}6p#HhwUguKOxq!H>lLu^)qwO`~wqHAuUoQSr@b8rTZ^-YJ{GZ7GApFL> z>BA=eBW|VmadpLsaKHDzHS#5ibG{mJoA<|%ZxO@03m=dCK;a*Nj}`tm_=_?8UEw*f ze(n<97W}C2vEZk`Z60mD^4Y;2ZRcZn?%%@w-na7k!`D}WyC(^r>xe%aMY|@2d?n&G zuIFzS|Az%azM1fo;H_gkor&AHi<5$_1AkC>mnMNfDtssSXyK1G4f#pJ_kqt4 z-mF>3za;!S@K=aie^SuT6~t}7y5AB!tHFI<&Z0lNB|iuG&m^A>kEcgtc;=H~96#UJ z!IKT#$IT7TwUYlH`LdF~8u{8W{7&&?x;50%S@Nae86f$x$PbZx4df@p@I~Ue4W6Zv zuLaKr$@fG41Igcp{8usjjCiKNb5`=`};`btdzwn{pj}d3jIO67+jr>c(SAf4uoIM+fn`bxjUkfjVtsjb&qkhoI4`;oe=g#l?@65V{lWcsD24qRCHy+@x#IZ?<1UbVBji^Ie<5e+ z&radrf*&MqyZU^HC(aPJzFnOw+>!0~@L#K+^H&kKy#Jiejly4srv-8IEDzd52jb@W z8To$1Ex#7|M~GYAe=g=3;+Efm{4C;@FPJCX@rrQ2E?rC9j`Oy7e!Y#jd0v2LpKyQP z^b2wJ{6Re3Q!vz%`H%2lKTduCFAi?U=k(}brZyqh^Uv^K=f6G>zD@x*k3FUL*FB!2 zyd9rc-4^nx!l!~S6MhPOz4)KBor|^)DR1Y+DVv07`ocK{ZN$?z_ym?C6 z4o2I5#Le?BJeU8Ke)s=>F7DPA;p=?D$AK3n&i?Dby>I^dPZh~0qn^ewyq$Rd#(s5) z$@e6lJ})gp{R4&H3I3S)KZO5D%G-WTL!DEF?*V_2xQ+V={ENi@Am%Ym_|xDUgr5N4 zMSiO%f%WHG;x_IajC)W#li@ijye>TFg?9wc^|uWc9)IolUkJ~2;I{iV?mCQHN%BjO zuPb~rcnjfM!S5IU_we_X{C4Dr3jY!ODdGNk#Z>WUx;@&7Xj>xr?6!l^_O9@<;9G@P z0N*eEvhe>X`6|et7Ty9paW;(a=aK(BY%y?)S^sZ?zog_l!Ba)}VDJXQhk|z!e?R!U zN`3_L{e{m4A1-_e_zdw+f&T@`uS9;Sa6j)>3I81Vz2Z-U|4Ye#gZ$6J{{;U-c-EX@ zKJxq%{%bMo|33H&f%|-2iF|3{)xfI@---37k??Xjo?8jO4ZMr+uHb`+8^X&7i4nx@ zyzYVgB;o&o&lP?T>RchbC-`>Z{`vVs!hO9xCEVBf3&IPdoxvS@ zZNKIsUro3_&Nd-#(I2CKwsj$H9?uT~w|Teg2mk!Z2;z1;{DtFTjCh_ye`X4=?fn$~ z2KWcUeI5Q5-0L}k>)XSUPr>naLGu3lzOtW-ijFovp0Bzie4UrL?eBmoffplg`};WZ zC5hYPlpp8U5jT(jzOU-U&9fh#dfuC_0OifjhhU(gotS&U_L5vn|j0 z@LxZFJG>UYz6#v?oDcg|UGtdV`owMC2V;Jl5V!Nre_vlK;+Fpm`S!%EKYP%hyNUDp z`v7tC+}tL*iM9dYUVkyv|0w0zKbAPxKan`+r;Gn9_~*yu-zIMU0jP7ec*?`GiSjmX z!sng1dDg;nNcbu6qr};BhPZj^w6#H^=ViiYf@i)E?)QE+MxFVD_XNLD_(R~0h5PgO zHo`06`FKy_e4eHdxASEL^0S3c1YazCDflYle4c&)?&oO|`u`c_ZQOqF91;F1_BYeT zjD0%=UXZwrdkW|2^~Cu+y&2rk(|bzXx_^mz|)^FM`pz9nw;+|Vw%iME5p zd3`ue-12G2pCN8}|2qihiCaGJozYFSWl6u%yYzVp|N97eh+BR!@`Z?--~Vnx3F4eD zN8IxM_Y|rTxBPGL-%Q-{{&yA{6Sw@s?W3D$yB*x;eJ|#{kL0iI5b}d#_!HvEn>Xag zQ{Lur6XtOiajT~{{HemXf-fP?o;2d-@%&ohxjKe=Hi7&8u11|dP~QCh`+0sLZvFJ@ z>OY9vxOc(-ulR3)KX)b@F&ro6FNyQL2yyfK=g&(MH~(b#%M)i$72;fH9pdKs0-i?T z-iO~%XM4(cm$9KS_C8=d0xl{EEz%=GXSi*U19JZNDaC zzlsvKyswibz zH_>)Cam)KU`2cat??JvFam)KU`3P~#_v#$oMBC%UE${2(Q^YwxnYiVDT4Ps@1IEi2jstw;XjFI1U$znZ}XVI@qC`R)l>c+ zyEA&+!7ott>k!Z9CT{t5$QKcw3SKIPUk~p4J05k`6FvpJDS52^YN)>hajWMz#_cA& zd6($UXnTM-dj=3UkLQO8e-56J;9mdD`P21@`II+*GU|MlxE&9^&aWVD<9-YOYVmJH zA9hmS{L|q7oVfXYoj*X_{Q2*VZldilarPW1&UOAx+&o?2IS=lAco2Qaf0>a>k4KwO zXK~_O=XJ!*{~Y|4h+Cbf;Hg2J>uf+gy`S(j1@}6Kq0Uaio1o7r!Yd#@hPbWg$ym>) zgZp~k1fLsxMYylqX~KPdUM<|$;myK*z1=1JP^qY>X!}~Yub)2)_jU5La9&MOJ`wD`HsRp-(UEfMbq1mcof{{Jq`0XRr3CN;9TPA z=S$b%SwP(O*I!R~ow(&&BA-Uwj@y!XgJ&&q^Z0yiBW|9t@O%R9^{++!Us9g^KN08p ze(5$Aj{;Wza# zd2}9td;QZ-u@k3xPoxQ|;E=i?#ayYibo`h7pbi=#i; zvzg)2``W*P7bk9yYt!(!R+)I_i2Hfe65NlIm8i2rO#Y#m{Lq;EOvz_@z^YCp76`8l z{+f7tW550<`L@XK6+Qy|OYuAi&k5nZ(El9SLqEL_3*adP?(^mO$}#y`lJ}o0=_vUv z@ZTr=H}JmV8H_rgmVEx6p`XtQZvZ}9JVW7mO}MYyTZOMh{&V7XTy4T}bw+sl59dYq zXUdWB`1Hr4qTtr&>CwMW+C(?eRz~uhFm64``{Vnq#O?e_#{S+x-2DFd-if&7=OW*g zxShYrxNhuC+&upHKA5<9K80rlxF09mQ2#i}v;R5bT>ot1oL?yZ%!Q)Cqivb+2H~CM;KEGpyH-Tp+aa#w@VjWl^+}DB4#O-nCet5nD_jO=U z#Zdo`l21YYoaB8SxIA~pe%3`FauJ^%seK(NLfnr3hmpUAxSe;?unt^L+&sPx)F5u2 zH{q!d?(_Hv>TgDQ_O~N$9an5%a{|fjA3O@nZaU1t6>YpOKbKmIBXqzqm zsqnum`Blhoh{=B$lRqf=>F{5aeCB?kp6q!t&U+Q`g5chN|9!u;B!4IJ4J5w^@!0kAvZe+LWqb>K)1r%wqFymUsH*jzwg4} zUjXiXtA@UuLS>V!k+!}%&Pm=sL)Zd))R%bHm>`2_|yk%qTV@f*Bl5>$^4SW8dGY?Y zg{Q3W&ftx~ZC!mf`u8{dw@JP~^4((iF!5ZI68bYz^26boDcq0$6~Zeb{{eAZYWv`E zcp*YN!Z_7#Le&5lTC>oj#>mNg$^OMDY2>us@UsEJ1 zD%xI&@w`pk#=U_0R}1epC|#4-BK{2+_Xo+pkNht&`OH^dns*!5^SQviZ(HHNLGsxK zhk9xXuL<5zJiFlOA^Fb8_mTXk$d43W0sUMY!?z2sj{IS8Kd(n%+*87rg8wU?o8c*1 zIAh;-B41kg-{9rJy`S~qsVn?F>~9C*KEDHmmxgCFaa#wLVjY+-+^;9!ByQ_KQ+T$5 z`}JgYtn<4i-xm49lJ|AsG;uqwiai{TlfQ}cI*_?Y#(uU(J{xg6@A4H0o&v;q9k_%qPM9Z`Q(%Co;dajw4!an9c%{^#MpNBA!A2Vy(}h}*bdq5fgQYYz#17$g1x z@Gp@3Y~){y$#03te=PZj;r~_ghv5H1c%DZ>ofpLO1U#jSW}NpL$d?EA`5J?KL*ZY8 z_l)5agdaqH3AnEVcVXN#;bXwpisvvqUrBy3@`r@)1wSgDWAOYdycc+(t3rRg4?e$D zgnx>B5^-Axj$$3?D%{tB2Z`G{@H;$X!F?Sl+b7K9RLLjs{_+yZ`#P|kxE;@bpbx8v z+xhF)16zn&zVf4C-0j5eyi3A5@F{U#2lf*;PcL|mfO|i)qW+VVXa9f1x&F+>!n|02 zIG+pL{Y~I6Cj1HTvN4`2#BJOasK2)G0z;!aqpgYfuZ90U$qz!lZ%lqnOn$QD%fSD- zepI#3PcrU<_m ze7JaK!81qlqmW-D{0;D>;+Y4}TH%GkKNIfr`6!KMVdL!nc5r6wiKm7D@gv@=GOu z2>A`d>!6=M$M9^|X6#R6++Oa5-;dk7y7-bXyQ!!um? zhuGg4!hL?<7G49MO~h>-NX9y_U%0OW$BElI&>o&FB|_hP9e5kBPv!yl^C%hl>m={% zKy~7FJTFBbY7yskpb2ryA4I-6aXat)_x9XLoY#S_#LZJ|M068vy}`Zyo~VBy<=H=i zIM+XhIOivee-ZpI2;UF>N{r`i;x=wC)W2Hzhu~YpKN9{QBwy}{^fn}ZiOFX!d1>Bl zT+inM_r8sV{|3pYz+Y4Ni{K5#i#M-#VoU=G%S z`NDl2c$2uT16hiN{oM-g>%iP*f$x@lKI9Ke-q(TC#O=5mgFgICoY#TOr8D+(9rD?T z+j+OgUmqaO>%cX{ZQMWLxgOm6eap0C5{P zX;gF*ZNr48f{zh@75EoO{vz_P#pJid%az#n58#=v zzci0LZZ6_B?v<0mxP^sx11~9j7WfUqzXq=^X+!1{A#`Or_V=U(tK!ruh1F8n|6ro^*F`|H1_ zr7d`lh)s|FC6?Gt^z(3(w~sb{h|fDcEc{dO@x<*d&yw~{(e|?Vci7<3woG`PDuJ&P ze)+(_w+r7hKk#qCtv?+CO27SE^8Pufi^Of-pT)fAtq}TbeK39u{7T|>{ItdX7AJ0f zYk~8<9C7oUn;hLlTUBtc6Nh1<7Uj*K3jb}y&C_j)S)!j$jp6r-ABS7w0m_^I0Q^IU zo4>|XvnLWGWB5ez*9-B)V#)V`XITtiE1s6{Y@xi>>7PUUl(^No9RBZw9|J!uyqtYg zw4DO?{`cA;NuntS5Fzrv!@zyE9E}aQ&;#*@Mgkyg102j{tm<~nrWKt zZFIbVYn{C)&z^^go5$;XLb%uYv~aI;3UT(&CT{*ZsB=EJ*NL|m6CVigV>=aXACt%Y zZLdtniSLM;eRblybtZ-BOMD_6Z^tFRB#$XZPUro6CZzj&3Byb(Kc}%_oaUS;p;Xdww82_V`=X%BvXaDoU-Tz{Y z{}sx!e>rjXZx-(UoiYA>lxP0|;_N>q-2HzMXHTMX#^Yoxj*}eVI$s4S&z=&*xt^-R zy`Gzhv!@Yp^Q=QXw}5*+v+N*`wyu;nPa4jb9>ndssM(8_j((4wc$Nm77*2Wf9DrvM zajWMv>PZ!TefmXfblFOrJ!!l{aU9``xoJdZCE=lokS{*^KL&BWRNWsK(s%JaC#h_feC z)zEO=-|XP_c)^~+#Mx6R##58>>}gD#J?(`5fqCgfoITx%o9Bj^(M`1V2iN_2nDXoy zO`PkQCfw_pMVvjU#Ld$K^(+DRdY%exPkbZ%$Mou>&mEJ;{0DG8{zlyVbKpNKd^dRJ zYGELM+%JrUG8eela}?v2m3(*PYYHC+UROLP;CX=Zwlw(j>lESs{Cb3Ne||ktxIe#s z5!~wUh%xOyt0nKxuQw65zP*b2_Xy82JIKBuZvD?!B=GNu+kW};>%+v&UvN&yp91$f z3kIAxOL_Ar!=J5s#`$^_o&qua8gTdf^XqbyPd`54zlpfj*>Y|us8I}WDSm%`-AnSL z;Yo?%kBi5j=Z>X(`f-jrrxUk2cfdbic$ODJ{jUmd0KOdD`{U!Tp*)ZKA#on}yBN<; zlxNRr;^rBOdd>-d3p{I$jPw2@cuwN%zmmB5ubLP7Py$@{_j<~+rzUZ(v!QUWv$=4u zvo&${cP4KBcBr!(xYy~=ug44b=ebkJWBz>jyvlsy=3fZ^tHO_gFBjes*MaN6y&fNT zE9H6IJ;Zt3Z-o1}KMD77e*@QX|DrsPo8?AJhUfb{Zf@Z|ZV}-=?lr{Oe?4*YKZE{M z2iH35P@X-v66ZSG3imqi5$<&+6K8)v;^yCqI#a;CPJezqP57hM#AusC9`h&RxLQiw z{QtneLU>iY-n&J3Pw|aQn{mX^Be-&}| zY$k4=c{omXg6n+kqda>K5a)VM3HN&bBF>(~P2o84>%)Dh=W=kb2bW8UYbkG@6r3+* zh}(6MKfk_FJpO#P9_7uG3eWAtZNIX=6x~Eycj1k|dlP5RAmZkE1o_9oeZRb(v6MH@ z0n{^tIM?%%aIa^n_?KJp(UwMe^OwZurq&ZT{|40gq3|mfm?io=h4A*^Ux535`Sayd z!dHgrPF!|#_#e&Z0{8X7KW}*zajWx1j9W&y_xVQQpCaD?T*tkI^41?8_fFzGj}H*% z{D2t$qcQn0#MwV5#*<2U9`{Y+?Aa3I`H1rD`I0z$PQ-Zrq&#~v*9!CN=e5sE0pYn) zqh?22QR3_=P2B2fl4|Khq7t~yV@=Alr!jHfuXe({o=(Ks)1A0^hNoIJ(dTTzy&ivl zJx{nlzkZoK=1;}>xQw{@(^8|GXj>!vaB4bEY!zN*Vc@&Ky`G~1Cw`XvW61w0{6+9{ z;_>I#*~V&`E>)~{`|V7aDRT?OSnIeo*?{{)?vryfm>B~1(bffO7ia6 zNZk6o5&OH1xb4?1je=|sam!!3DDZ>AySyCu5pb{P>VOmHDR2JeHu=$(tn*S$w z3V^Gps^p8mlCDYA5#A2GsqkmOTgCW$O5Xhgg}eVT;qD(V{+mOYi7Aw~7VN?C{{nIA z!&cP!ituybZwv3bI1I2F-23L^ZlXMoyNfuF`=xLn_n>ee_ZYa2`#a@%+(g}s^X~hb zL%5GyNVtz%j5zzt61V-Dj{Z~u*E(;eJbRiF=l--3?saw&?sax0&i>xS&A$qDJ_PP{ zb_>&+m?V5G_&oC1`Q_`wQsMr0W8Wce;}*c@eAW;*&+oOv03Q&yd>7CA5G0FS5e+u_;FADc@vo{Fy;{Eq= z3xeyol_c-}n}xeSNx1uOjq%?b!-t5+#~mr$$DJVD$9+D=|GMPe|E_TNZxHVO?J@p? zl6U_x;qL!axce{0_=`5oIFIfxE!_Q;guA~6xXycX$^VAq^Uj!jf6042j|lgAMhW+N z#>e>QNxr~q;e=c$`HMJDcg66}$z$u}0j!gUiQ77P6a1%ycLx7g_~YQ0HOe?IE5P%B zd!N0|!j$KF$`I#zDhu~|Y6e$89Fu$8AZR{T+y#|8tx#-N3cZUX*9g!^FAH zCxm;QPYd@trx0iVY~tqs2X)Q|_d4l_l2$mxBl3;UzCV$qHQDPZGKA@PsfQJ z#Le%2kLDZU#ao2@&%~|Hhu;YN7;*C)Di!!X?N&A|U7Zu!0o1HYn)RetGx!`;Z| zCT@BEJ2gd#oB!*#?7O4aU5H!$8~7^_xBOFYTRM9Gin!%}LcT6>%V%F^>FE78;+Fpn z`P+$GK1-UVqtAYT+uqr{?8WggSn|V=9}$zEA^8c*&7MfS6qA21CcjnkCsEG<$zOo~ z*O+|frnX0y=F9WBzW-9Yl;7plA)ekh0nvd9fYq2zn}b8 zPf5IBI*hp0^B2Y)Nu2ZJh)<95{`aJwCC;9i#Ld$d)9{+jUCB)6s=-uch+TH~B zKKH|ZZKk~WN5j99IM?|Faq~X{|98aMbBH+Cd4jlkHp25exYv1o$>`2#yW*Bh$B+5b zP-lMP?7y10`TvB!G`RcomW=LmdJ~@c!V3#PcvbXJh!4w`J_}bMTY^_kOykc1*sBS$VDr#t@26k)))u~?q*)S)Ho_;BOvi~~;5ni%ZGG_11CJB#?^jL}?(bL5 z7w+#@t`Y9fBfb^x???OwZu`|al$d^-qea+XuhTsRh}(JH74ub;xb2s}Us;B@x@5vaqCUHBD{Qbm6#M94HWk5KsI>9vgQ!zCJ7Y z3CJhz2=ik7w|Y`ge-YwV&rsA;8rJc~3DtK;>@!T)@#D*}yL&D2| zKPDc$4V#!Ld<*JaA)eddSueaF_=m!$fbWU%ACn z%lesyda4TF2VO_`U*JuJU$rp|&x8?1bBzDX7=BVbKJGulecUXq!+iO?__(>jb-&6<-u+dDyT6Wb_cx94-z$0d_Y&^@ z6yfe49^;=bdH2s3?*3PWyZ@~i|5nM@$MLxx`;yi8};Xdx&!hPKP!FAmJl;?4W5$AEo2={R( z3-@tnf$O+0QJ%+rgE)`7Qn-)1QMix0jX3*1A#VOMn{2kD_d~$7&V!U^&u_%J&a=Y3 z&dlx1eChRnuQMBQ_7@;-{@XU$cSoP=2KPGi2W_I6@M7Ry#nW$7x+c+E_!RI#!dHVo zF8&hmPnZ0+$j=vk0sK|r6*ec*x3|P!7XH1Ix9fI){(eGu={do3mOS>l$LLal=esiq zZ9O-Szn@r~xb^uC)KikU<^BD{3c~&U#A@I+ij8}7+2|(P>Qdh3HyP`HGvem=_Y*q` z_xBT%iCdkUQD-mW<~dXD#Z%xOE3B)b$?H3hE${CqzCzscpCSJ`am)Mri7Sa)zTdX!Cfe2#xBPFYe|8>VKLz=bsaQLyWsn z@+t5yBX0h=@UIbm9(-#I-$C5!IR*ch#LeIJqv$5u_Je!>Q!&4POMWx*7bIU2`&G1K z#`!&hdj&UVJ0|Iq?4^{73L#iQ7CTm$cc6{=PJEo5!m@PREH0;NIu2F>e05!n`0T?1PD0o%K=Y2=QmbxZ@~q{!JyLn`oO! z+&qKfSs;8V_+s%7ESIiHyes@4?AI3Ig;CF5@>@NpN(Rqi;#SZ18231F&YvM}{qgtN z&l6`)mQG>5yw4>|g>kbJH;=#1UWmAP>h22pV&FdSld!*4DQ|VQg})AQuCp0&^QXYy zk~n+X66ZR*5I4_Sc)Ejoolm3xk5JzHe!Vw}IQu6NH~%U4r-^?c{4Z19{AuXJTg15! ztBITcy4}%Dv~3`6o&)fFK%DFRgt&R`h39i{@5AG$^Mvpw;5j;5^3wIp^Y9b`caP^Q z$K-2C{xp8 znG%y<5|dApd`FDCTkUZIKOgTG!>7jZRWW?G@H@ta zalZ!l`7L=};HM?;e=p`g;?G9W&Nxmo-QObq;5;+DT< zU*KhlTmJN-z$=1#{oU~S=bI#d1&+`9l20IitKhZOW-6LIr&of7i9z^#mw=-+{W6JJWcUe9pHQR3!L zV14+FxcT??2>E}ATb*~J&Wpq?-|X>_&(ZbLaclXq-vyoz+>fi_SRZZ>o(A4b_=Rf0 z(@l8k>VXdv-V*$I;lF?{C7wM}Tnw7THsYBhHn2vx<6GjKKTF*5`ELyQE4zh0=)BY* z&YlLu%`*a?HpDqUn7HNrJQ@z}*V`$W-)D&1ysW{z%oN^wf2eKLq}c z@XHPazJ|CRZ(h$YLIT)#CTZsV3a5$o(1>xU;zY@b= zCvNqOhJQ72^A9^7{2Rc1Udp4+uOxr@iID$6@@dHbBl!x*C%T8@!Tp<%F9z=CZ!6?W zN&Xb_^(3Eyd=t%A3Uzjt{AcfRo7@woPm_)o$A zzVLd#g?hFUw|P8;dE86f=5Y}6UxIs|%U2DaUxlAVJ!ggILOx%QjPvyq`d?P~JGkC! z4DRzd1NGbraL{2S|P${F5br-RY2@C44G)s(3cRvqADJkl!x+d+^=j*#^%~ z!hZ+PbbsiZ_aXC{P-jkXpBK-UmHY+dt4RJF{C7zHx<7*dF5y$blf{!LAMzt5zXJIQ z!oLTfDxR$Hydu0H_?zT;E*jFG2fa_+j@!(ChI;-dyf*kQ;_Ug7xOrYhem}VP`9{?9 zyYOx}&a*slX}-*#g7rT?ar2*nzX);5ry^e_hF1mmdfvnO&|LTs)Y(=%d*JU*-0B(f zS9B9?{e_qPJMc%uzXbj#C~x&A;kcSg-26-6nIk;&+2DVPID3{7H%~X@R|ua0zFzn# z@Gaopw~eTOkMP6bXN3O-p6D6o*F6Q%|2)FK120QFTU5XQU9hUe?RvXEo{uyTJ{i0X zar1m--xO{45;s&Ak0axRm%#eGSojk7KLEFN#`-@E^Y|%o>woWmqMK;@ia6&F5x4wu zq!E@ZTdm_qo86#nT<0 zF)@4+d8`lqxG;~n^`Yc{!M`}hvn3|~aZLW_nEYwU_e1^vP~PhFb^G$(8T*{?e5f;@ z@X{9oF9z=Ye*?!)Y08^F3Fk`<;?{@$@YEN+82nc8zYl*8$!EnA><5M406tVav+%t8 zS;@CTey;Gr;0t0rD<%Ir@*5=oHR}IT_;}3AY4PlW=Wof+LOxHQFkjyPdEkY?{rnw` z{$Eer`d>H^zQ4Ng8Q}F|{7oru^ScNB?vhVMJ$)sg4}3UrtEXP3P|rBwYrv-pzczEo z&jI&7__*&%-u)YdyJv@ZcB0O`l(+pY3BI4W)$es45$^ueG5&ujZ~oEn=jr0>Z*_#92X7?)XW+kEc;D)gEZPPNKZtRMlHck{++a7+ z>#W4Bo;F#+eohsB0Q{90|C^L&{~F@vch64Zoc}z=zdt7b3vu>ejPYF2@6tT-xCM!` zrvkXoulKV$<=NAaID0z8c{&{j z>sc+_>)Ak@J==+!=PA^)8{F&3j^p!p;rYSOk;nW=;JNyTe&mRl`Co&-u<-m@L#`ya zkL&*OlsA7W{I^QJ6nJaN9{|6PxYe@=MO$cmj(BJHif^T@Kx0#S+sQ!-W~n9m;6@G9@Nv9xYctf#(h}$D)5Oh z{^uyq{+EcG-#ux>Ilnf>za=KWn>hP_it!w$Jdb;pID7Iu6z0ME@BJ(c?(^&YEJK_< zbz(e?DbMw^CeEI2!oR`1JV2a11BjdFJo3Z9b-zYao;_2Db3OBgdp$1`XU|*2&2v+> z(BF5!y`G6UZod-#9{8W)=?u@sn0(OzVH}$;8`txt!F}8f@Fz)rB>XLfzX{$!JX_%z zEcw02j}U$le2jRu!!sv_uM|(&>|sAQ#^k?>$sdyZ9*mn9n6Ymy;m;v_7|97sce)#pM4d`O~QX z6UtkiZBgfU#I4RIIYQqL3x6N{l=zodjlL<`&Qjj|)8NmRl5rj{&l$chAUp~DYH**& zt?<{Dd@Axygl_|HC7vaC9^F&&N0A>WJa?{8=OZzmXC!|M@-rlV5cMw?egX5cTReT> z`6?!VIwpTk@>%dWd)1(f{htbd8R6@}D}#Igv%zz_QFz|mVZ1Kl$qmn-7(P`z zHQ|{PlV2W_Unltj824+*-vj@T!Y6>A5Kj?!at_Ye&$p1jQuw#v#lgLwSHn|XcoV$- zS%*C7k6$>CS`xSOG?6FN(Lp@@;klRc>FW~sL&VK92A-k9cY{AcoIOtyH&2ngp`Pc2 zw*sFhd_DL=aPQAZ)VWOfJn)^uUk3kL_;K))#O?KGe;xZ@;`aLUdE~P_9QMQOsfKl< zu<$nE<%yf$U*EooxcT$qb?h#}->M$n8Eu2Xb434deNI9>qlsIev*ru+Jw=@J(}-KX zKJv4`eZQ{3>wB+L-aIK7cQtYI+y~DF@w9^HGs%xZ{u{}6NB)fP2hoSTL&E-9A8g#k z@LUP*^^ZcndJJzZo}KV?j>!*-$v-anaTs^5?#4{hB<-*s3?-tMf@O%}MKOK`lC;2V#U-f9lK2LgnU78 z?~msz#pG|6{6_dYNPaf_-Gpxg?<1b=@H{2?qsUJaUbs-$pIPGB1<#wpKL_6-o;vV+ zBKc#;9~0gjpOefsEMq_Kg{J_x_tWzgWAZmizCHZyB|i%OuEO5{?)&%jr;zB`{Uql^mDWDGvGUgSGY3l=jSo}2jQ)d{~6r-y=zSGg~Hzl4u;&?kTQAhYpYg)9m55`y#KsIDR7^!3pYh~Mq5S6`_DVnkbElg^(F5= z@6c58H`NUOR+N7(LaDg^>_pt^^q+U=LEQE$^HpKL`VhCg|GdM)#4TT@Sjay{-15WP zL^shkj=1ITEFSWch+Do8@-vBB{_NEuKaaTO|45B)qHPIr%U8NKzKmM>j83&0Zd*5=!FlnB@WRca zJEQGc;kSanCVT++R^hY2_Y2%B!3$D(=qw%PX?d&)ANPFy+6sQ=UU3!ex;#5Rf*evU0yqQ>%@2( zQ=UDoh@0nYcsj*+?xQ?=`V(i*F!4;levPKQc@AK|o+ECauj+*Tniu1FneyyeM%+Aa z)D50BF`mtoXU{I;?D?bgnhXB$N~ z(N+-L*S%EuOA$AJh5F(9D+>P@{H7RQkGR#7gy;1wh?~DpgWzui?se|LI@4G3e<7bD z`DE|;Z{ zeqOIfJ}i@PyCdHR-0LiS zt92ofcwG1q)H6}|Iq-$TXQ2Npg|Ec<@;ZZ~N<>|9fT)WAb-N-v4e^a!h_$On$uNFT-{I zBFPtM8usVSnEVGZ`Q0)3!!h~aC0`!(_9Sp9{WIJa55sQ26)Y7sT^EJlUQOb=j@;)AOakz5nO#47rMuKMa2h$xrDR z^6iEHa97}6#d8dv$0hH-&uhGJ|2)(*MQqs*8gho)RTNA?sQ(Sgr@+5M@)Np;{667}dIY{-JdeP0PVyfjpLJsRKJW7x@SNawuk~{{ zJf(!c1>R6Rh3^mE<}vy1lJD?9$oH50O86&A{?1+@KV5jg-hs~-&suoaNq#Ew+k~$L z-zlDr@EjC=2K<6}zK18EQ&w~+kq{vqF9_}dQ#-c>vo z;dxy0pCUhA_yzE1#B*8gXeXj=q3{CWuaU>Dm-5}19#5<#Zr5F<9}0DTAiOj9N5t9l z8FBM`gZww(X0<-oKs~2~C*2m^Y1=bleCxmYlTl|L;^wb2Amj=WxBN8ZOUCd@;9k$= zO`>m#wp)Zhj5=G1XA}J0h+94DP){G>{Rf6R2aA6x{KF}4^;g4n=`+O5e*&JF!ds*S z|2*RCSxnqKi;-U@{9Euf!fOo*{*Bdh8h{+#{$^Rz# z!KnW)%3GbMP-m8@8T;&?Ps%O4JU+it1l;?7SMx{~Z6zq5e*WV5S5@NHhe7bv5&i~v zQ}OqK|31m*#OFWy3a*XB|FQFI`u2gO8ggdH1gsUJ~yMZWGVfsDBsbZGZEj z{;!E!{a)vf!oAKDG5$X(Z~hecub39**VjGw=Lh%wEtwR3Q?y-0`Sf{#ry_BybLbPn zdz0{G;Pu4cG|BAI@gn@o7J>H{eiD6qnEY0cKkpk&-0I0RGSo9kcoV!olp5n-N_qCL zByN89{Es;2_s00Yj>-Q_oc-rwJXxL#`{(DQ_aQHF_LKv+@3O~n?`LJobNzLRv!`v0 zr!(c*(~~%R9ueLX^YS=x_KYWP9)F+mS#aI2*_3C`E5x~;cZGXBYl*Yx1LEc>i}%Ss z0{41~)Q#?pwv)n3ga1t)^ZV-n*`7DUrQcJ18~g=?`}=cOgZsGdFH3pzPs8)6CX&Ai z^|X}y9^|_axBdMZ@Avc+ej{FY9w>Yc_+#K+r;j^R^6pz82>kvH-8eY+m91x|6k(SgX{SVluw@*c=AopIPbghI%zTCm*aK4 zlHlIY-{G$-{AaAIZG}IIzI7(Q)w2op^dxTk)fwXs6h8XtQ1|#4{}jrz{{`aach8%| zIsaaae?v_EBjW5o5aT&Yc^>x<;_S&WBkZ^L-}_kr+}CICX9?o$xhclefbv{VOXBRg zNBGN_mt^AX=||i=A0j^lT=#1P<=HclIM*{*xYx6QID1|rZl2b79dH@A*YgsN+s}l* z2L2s+%%8yZ!wKT%9|Zs3!u@r|Ofxgiuluuu`}`)uf4$__qn@ggPene7xYe@-ugA3% zJ_oM{br60Yyc@Xp$HyHmdH0VKz80@LJS(0fsDC!)t)FSA|7GGX(;ZvgJc$u#hm#I2sDc>df$cqKef>lfo6OnKX1_m3iOe)l{_ob&Ty{4dAkml0?G zwiwSY%JaBi6KBuK7|-97XU}D`!+cqv*;5SM&kLWI(v)XURpRVvB)kpgIjcf&2ND0$z@|)iVIkqpAwejO*_@!h3@^ z1=n%!lf3);3U|*C@eDwnBPehCI~sffajW0!d|tTwUySj;LV5Eafd4(>?B67wl%(jJ zqHR0n)90mr;NK88k3Zk|N%+0E-u+el)02Ydvbh=O_am&U#e|PT{iVTu-jh*JRpM69 z+ZeZw@Q%2iYZK$|M0wj^_dh_~{O);_IOj*l_$S2VXAo!q>oJ}cl;?3b5NFS4F`n-z z&z@h1v*%)r=ZY7?JnFm@BF>(&!iQmAZXnL})Ff`6dB`^e_w&?`lUpgzp7zAKp8JJ+ zJ$;F@=V9XJ$&2gA$H2XwH*ws)BzzV467rZo702@`;^wab|7PK7;5%dd`zUYzL<75t zem+U^AEBOqB%g$Qj(L~n*Xrqn>!(7(o8oc$TH#B<%Y%D=eB5S|cYkZ){`h*gc>YBF z-6?PT+ZOddMBM84I)@7PI-iX3Po%v0)8L;+oc)W%liWD^rf7SM^6B$}&z){0ZXSQ! z+9A9**3(bKKNkL9gs;ZBdQo^z9B)^=cxisEo@%J45OJ$#4aU7z_`_HiYJ&Uxy1zc< z+24Y=`Q6inIOluD_#cYNKSrGW&&GIWQ=Z3tnK*ma#CSGSo;|yXv*)K6&vDAL=O5zi z$v*$mJQ|;cdC5zhJy#L8{2JuTfa^R~q&$0S6X$xG3-@|j6K79n;^t|L^{5-T*K;F| z+p)qMfh@x*7ut)92>_4mRH zFAVc>RQTiIXTZHqA2$!~xA|g!QQ__>1MZ$IxNfXS`Skf}9O|z{-27f=W8v<Jo>w8;PzGK=-)ng-Vr_%*Q+~( zUxmKyCBM~k0G{uOTRq(|?or{h!7s%4FUS3UKDxgkar3*U9C5CvD!A{j*Iz3p-;_A} z?~d{K{%M^L#dyZXc%Gp=*FT3i*YkFa=RL}^XDe~`>=V8gUw=)UJwFmR&whM;0{_)M z|4DiFWPaI_mmX(*9t#NfdWsTfPif*-&z1PPJpSwTG{$k;O864+e&VT(uZP6sr%1jF zzMd`lx8YwY`AztGqwrf_34Pfio_F9mBKdyEpB6p~{BQBBh9@`f_x?D)0o>QswfMSb zOum)m58&%glHY`JACY{G#bJL(34alMqIkB!^Qz=GBfnhuN$^$T`3Rm}G5lBY6j~DM z{39lx8{>H2>LOnR-240~#=S}Mk0Rel_!jUM;`tJu-jY9p{2<|1z8dNuDxUA)nG(Za z7f)Sy-i^ucl6*4qUrPQbjQgkLS0H~;_|;28{n@d9-p^m)xgOm6-x&Go!Uuxa63=h& zw2I;V#4`h)Au;(Wl3$DbY{~zHaaT(IFXT50Z}M8`!w&JBgU9FJ`_LQt)8d&4{FzzFgKLGzI;dx#UeV8bo-0-|A`5Td6F1$PV zD)AJ6XIBjWRXk6@^G8fRH|Ep(=J_Jv-sfT%_a@1|34bHu-+;FePYHN>Oa3DAgM?Rp zBlL5qc*?>vMY#VykeTGM$K`5G>`^`XeNe>harsX8(_%ckV)9?czo70DnEkvq|!gAiqQM|Dyh%g*V5%WXAF6=fxa& za)EoFJzq}p8<4Lm`L^)4l6=0m!~S*>J{;WF10S~|JfkGP0Qrf+cY!|(?w)(#SscT+ zi02GEAIIc>mVD7=VZTmFz6Zw5jpNt*JR12T!n36XPbqM(zc)OMBwrc%7Q(xLw-L{S z@brw~W5hEWp2;!!#gbow{4&W8!MM95e+c<6g;!Y~`fyM@kHK?M^6in&j`Pp^{3Li@ zaPQ|xc*@1_CgNEF&mA%Oo-z4>l79;0PLce_@Xr?hFZe?7JOj^0$(L9W`nE%OEAUUm zGYy`fV|Zqq-`>x`@Z^W z{8jL0#j^;W#W8$~cs_>b42d@w^L9&lo;NJZIpU9Ft!hlV2wJ^%&RJZ|_6Vm7xz`isx4FgW}l?&qc}i zM?O2&UH8ug&kOGT{1BdU!e`>TqB42xdgBy$L*jP5u>t<(;@OCNTgsPrS}w!LKH6e*Zb&3dGGn5dJp8C*ystUf_28 zSf7)TA41&vycK;LE}p@-9-Ail!^qE){8PxkPI()58pd5s+{VqmI?Uq+;+)@3JpH&r zemA)H?PmPk{bAwr(T6N}T=Mhiet2?&yT|j_#pJ6=elh&5B|j1V&cauL_YlwP@QjxH zcgRl?o?}hu+cfbkgU28LeZQP<6;D-ocExxO$K+2*eig>egU3Vfb4U1#3Lgtz8r}#O~vy+cv{8ed&T5aB>yeOohtbg@Xrxmd|l|zBJmu6 zXOrZUkpD>d0PsEH`5B(WF+2;d3%t+M;mHl|{dCWDG5KneKY?*uOMVUforNC(?;)Nu z@H{2?T#Px8Mae~a*<8-xFL@l=7Qdkh~bo(Awth{-RM z{QbzkA^Dpz?heT>Kz^U_W8nM6QxBeVlFzp(>~B_F*La^Bg8TKR_cIBeQphWBD4zS_ zX&#gB9+U4c`Q{jRqU0ySKVA4L@cH6t1y1B&5r9A@7pot3kt8bHT2;caPR*hcJj>vj5R+dRlYc|20B(JH_)hJO_p6#QO^u#B&=wm*G0d`&I(^62i-Z*9Z6cdI+9dWAgXK7RetP~IaNjS_UoZJG@ZTc&Ch)fro&xUItv+sbcpj7dbmYg% zxSoG8Cci}T_2K_O@@wGVE&K@hx8i9D&soXm*dF?s8P}n{U!E@x?)~(9Imvf~zp3P_ z!QV=FH}HGJb3Z&oCI2MyPsZe5h{?Yq`2p~6k^HOhe=PiS@UO))0-j8`&h@@IFDLwI zP5l_BA+Jw8SuTr{r5coE_?;@nQ*=7_3s8RE!=(UE~)F?+m_Oxc{EsUxklC{;cr%;Kgx$>ig@z=eB|H50JlI_#yBC z!u|KYP7|ITzaQo$;r@FOHwqtz-xsk3up_cGA_&JUi#Ir@~@*ca1 zwl2i&b!`8;X~V$%d_Rlhe~j>}cUT39#AM;^!Dq$rRN+IBUjpv?<@KzWy!$^C{xUot zi|0%He!TCATMLHSPDk5u;r{ob{w1D0%FRqqM}NNw*Rxiq@#)~jiJQ7G&Wp;#x&KXs zCoT)3*2K*-4cBku!EIh_%t3`hewyS{vCb@&y#KwwcZl2d^C#%r8sg^nzxVe6am!!v zQJD9Sh+E$O-k)FZ`|-05`EMoffA8-QxX=4bZ6aB;9hbcSy}#cjpM?B*$@|~?yA0RM z?l0In`162Uo%VjmCcHmVl(_Ae|GmF5#H|lEe;oQyfw<-U@BP&zZu#Q7LcT6>%lqH^ zyM?&rKSBO>;+FTn_vg=hywCT268!f{{*Tn?o1(2Zaq~~x6Y>ucH^2YAzhT5JU-;9I zA4%NuczGc)k+|hQLjGCemOoS~x{0k8c&YeYgF6 zw4~^tZJQ(9=#VbymhLWT47$4oq#aNi1tb&@1VKPRLP8LvJHNAMujRYX`hWXem%gt*7VEj6 zy`K{^b7qFWkB=XpabI%$ZqMr_^5(zH{W?Rf;J<>mB>4D)ez%GBJmP7aTCXBr3EoD$ zJAA14Ech((AK>BQH{gfG)3mblTz1?%9>%t(8+hZmIp40xC&uf26La%<9XI*4$X9aQ z&9`;jVe8<(g12>!yZJ+on|v?iFFEe!UpsE{-yxqAugA^#y4Pnu z$K4)&{9*E@hmTj)kmuu70{s4+rjDEIvk$JfPsGo_dx$4LV~!LE3=$s#A1%J|tj$jp zpZ16K+2X&Qv%XZk@OkTBJ8tfeJg<##lQQe@s6p^w!P{O>{)ppd9gd(sE?&Rz{`urMNZ!BS>w3dvsHQq;JkJ_dDGJh=XKn1({mZ;b=q+^e_8rJ{5bfRg17sU zzmNX6j+_2|f7^A7iPw+3PX2%=@^}iz%{)`^zLczvoBm=qZGSE}ueY8JgMS#jRg(Nq z$k&j30O!>~^8X;;UGfQ#|3dQdZrOPzOFj(w)soMLe7NQt+xZVlzBBT_NWMPuHzYq1 z`8$$ti~K9`itso`?0IlKYd5p=WPo!YH=;kM_-lAR$IU(ls@R?~j+=eV|BpRhML3T; z7RPNQ-T>ZSyc2wwctNcHH1X-Uzs!T1^D=Yh#hhy$H*+??oSQv8-#dA?=aA#3=LULC zdV0<~dAH|p$K9UC((?n(Dz~_veeo|} zSZ^UcniJsHKb z!*e)2Q-gD~!t+rH$Iava6!cdVKM4QGakr;|vFu>~+U|uN>9(Clmh)p2l&vC#&OT&UeV?6)zOc_7@kQ3J-&G z-A-Ztn&PkEJ;kHc4IVsr8z$ZsucIc2=fb`$b3A77@ALiq>m4_fzr*Xao#JV6T^)7Y z^zeQA=NvaZ<8a)__&g=gw+BA|mPx!Q`pd!1ewp<@j(x1{xLN<0(d{}nbllCia@^$W zBHtd)c~W7{!Qz#$&NHOv3-rvBd_&|ninoU!lb*HcIV-+DhCQ!~($gP3fs^)n=KS=S zaIRaRTJWTUx0H^Xb(k5`_Gj|+gn9DSJo&bsd=JSF$NU4FyxFfX%sIw!Gw0Y?cFsxS zxnovd2R({W}+XnFi@NJ&{Jx<>AC-^A%ui)*XYRJYD13 zc_RI8?_b=PT=A^O5uXZA3g^D?xcMZ{{u1Iv=*jKaNO;mCOtjzyfe?qN9+sU2er;|(~}{AJ>M(b4i?6`_ z=#KbntlML!-^>$+c_N(--QTr1ZXEF$3GJL2;M`yKf8gZZ{=$x%^JPyJ$K8BgPk$3n zzP;ma|4>iQ7$@%@cZ%a~&q`0v1}E?K>~!4iIpOK~!^yinHyn3+o{De9zPxta?TL=B ztMLAN4*3Ld-NzJ8-tEcaxI0fFan4i1akrjnQXc7kc_vIC;~58U6btUk>vek$if*FXDpZW}aDz?fKpiPm;v? zeepr?mvF8RkDCl%ALIVAKfO46a>Ciu4f7Xp^5%T=V*WCYoB26sRdM#$^Yk}$@}_?Z z`nx&q_79MrJ$T$3?&Kr(1wB(8H$CZ-+Vz|--Uz-_`mdsYr}#`fuAUGdjdlCO={NHv zz~?h>IBw=ygX7*8uanHq8T}8lBf;N~82rZw`{TjQ{<{6C9XI{#$?dqCFXHJh*I zxZB^_)6>bxyT|S4xZ5+{(=*-4yFE)BcYC&YdVX;7ZqE_N-JbK}eX%cB9Cv$eJ8pVr zBmV@h`}oGmyFIb-^=jUKxsR#DIZt}W-JTqdn|b0Sx7Sr(IOkc5>$ZXT7I<@~$Mo06 z_1xWY)1L?Z1I5?DM|t|kIeF6`j{a4WKZJS0C4V3Jy^foC>ZP#fdqliUO6$LiFNa@( zbA5Q+SCVIcG<=<(`}I*O+n)f=p2wI!g_Aeu8>nUe75sfHj+^;8XC86RS=7@X=HyL( zEA-cO-0g2BJqa3_X@Wmz-N{Gn3wruHZhCU2w&y!Sye<4Q=`Vo(CE}msadnG$?D`So z1b%S(%{-Se58r3O_1}!+{_f<>oITRmId6OVA31rqKY;gZu%A7N9C!0+;M{l4pV^bo z>$p2-B~MRHC+{A&iQ{fhPfyQ4C-3%*b=>Wl@9Fu<$-6z_j=Md3#HV3j4m$4k9CzIG zY)1YZT-W(8C-3&$bKIThojB)-_NQsKKX2CUiSM}S`QUwfT_uHcp8U9Oi;I_nmveed ze|mgaPidXtnUyX z0pAbj`tZ1yCC~nU#IvQh{ZFK42prpYzAD~-IcH*V&iOu^bFx2+lQ;c& z>jeK5ycKcWtPlIkN>3|1?p1a25&MFkrjDDQ132GL#NWWXNdIW`j};$`$JP1bQ?YJe zIsImyaLg0#xS6L`2JEl+Pw?ZO{1WR~$K8CSOZNWAec}AE;AVf_d{W2V z{+ynk0#4rTDdV`?)4+@0r|IOqAtakuBOIro;Op>HFc?;JhC0*9n#d zZ$%w9{Zr6iPW(B%x~IRslQ;9X!spX^Oa2Vz87%oF$d7m2%u_#;UH_TlyWoq(Gi0{; z)o`u@k9$D!?Eh7qJ?Eq+GT!g{my?g!FU)_}aWg;Xd@j!Z$XCpS|ND5B{juTPuLO9V zoW^mtKdbbF<8d#KlaJUJ^n^KXdOpRvRTJL~uPyy2(cf8oGrnFhLOcc5?F*;h%rgb^ z%yit$6C;b=$Hn5M;F~@D-#dA?|FGkxpFI~Gck?$q{dYb2myWyr3Gn`6UWZ(V6mae@ z*CDgxZclMfPdO*=&R@%Mx91a2Pd6v;_6&C1?HMQD3i~p}akpolKk>oERze+r2HapJ-=~;-L{T{y}J-N_x+mnxq_p@`| z>LMQx&UIdac!ko-I3JBsJdZr7o^^n8P!F&N7&tCLY@OW$KN&A6a&n}+) z7|B;aev;%5;kfH0KLYtJ;=jQ6NY63!T$KC+B)dx2xnkqrboS9QX+7xs0AglK&q0RpPhd8>HttdiIO+`-6UQdd%bS zWjycy>9~3POpw#A^WUDHsQ5kut|#;H;9P$mH=8G4K=Q9Ke+egV=1h;*t5qB~bGE^p zb;Z}hn@Rswyici}lQ;dX(BIc_)BhMf!^HFCvg`AO^gluWa>-9ZeuMb8@a@v`x^?j2 z!P^PRpGN+?_$&AoPtP;S7szer58(SSxL@z#bz>UwSoppVeqRXpy&-zad-BcT%nwDr zz2p<3e~jd}AwNkxY92fP9O+4ho-LC90Qo)QAHxqyPipjB@c0Yq8H%1L`2Gy8CwtPs z|62#-vr0Y_j$1+U%aE@rejMINda|RZzvQ1FKSDgyhju+blb+n@S>W;Q(o+RJ`#kvz zlJAcE4apb6aiik z^!$vT@}7J%Prkk68{@cRB!3tElf={H$K!+av_Q`m$(Kcbk9ZIGLFs9Wo(tmB@P5>5 zPLFwhS%T-6Cytxvml^1PCq28+6XT9qdFS)|=t<$Y=}A_=o^M9+Ht_6@M?CMNC%@yS zXD#w2#jn6CiPtV@k6Rti>*P4*ZzBFLyubJp_!#k$c)#&H$KCfouW;N%0yg1J3olfS&g~UR-)k zpr?W--`tb$Ao*)J?pVn`L;qy)EJf`4&y}8A=-DdyYRK;u9|-?RdhVjlaomcM--rHM;t$}BrRNoTK9zj3qITUzOFn?d&$%AoB0a^> zvrF=c(R0@0Po$?Mdfs{RDISDgw_}md2Cw|$^7)Y; zD&7h{N_w)OXO71=OV3#J?Dpi(dh&lsJ~xgVco@2FYtbKD{112%IM*{jdh$#DE%GJB za}~GiSx$P2pr?_?`F*;)U(`X*a8G`Y9CrZn%Oqb0$K50OL&zT%FHpkHe@c2Ppy#3F z8zKK%{4;puM|SkG4!sCVDT!*#jDdWjElKcte+ep3+jypo~aZB3s9VgxxK0|sM zqGyxjhata9d>#Bp>1m3dvmSpUJtxrf&XZ5^IP^MaJ|mp#-xkLWll(LER};@t3Xc!c z(-A$rC0`Bsq2dGKqok)Bdgh3S!#7LMLiFsE{9fcwi(hRWe32NuJ(8Y%=y~JGCwmgQ zp3J9*b3N~(zqI6UpudWEqSAIf8%WQ4ZS0)AC0_{np`QFqPkyoFlcWE8$u~m(PvT?X zr=%wfdLBsrYvf;f@=2bCt|#+p;atzW=r1Yx!|1Oh{uEwYdWxZ^yW~@ri5#)e1H~)C zhe=Oq^vn=158o&~9nrJXlRxFjUzB`J^uLz;c=Shq7P_8W;fdi~&t~Y!EBSNC7x(1r zdGgIA-vRwYB>x8eW5quRiyX23)1;>#dbWD}toR7z<2|?Q!1KLX%ifRjiSy@*)Dw@7 z_uaJ?&j}wT&Y#P%T)Zywo5Z`rPm1&BR6G%%iF}k7q3882JgYc=E<_dabI3Ooe-0lc z&Y!C=Up!qMyPm7X`F+HP#i!!^Drd#{b?uBVL(gk5KJS!Q{2siVCF$%3*PEG zZmuZ)T+m){zJ92V>urd5Pxx5zui=wDK3Dt*@{8fT4mr{5;#r zj+>r-cwQa`H~V6anW$9oU%}g#lAqGX`cldB=h?1v+=H$<_P2;#Zuca02d1Z9m4g@*h{R`38=gJbylIE5}VfysFK&ciiN+;`;C9xXHKp z$mRz)Zt{O+2>vU08|Apke^A5bzi`~F^L?!IG{;R3e?IMExEZ5o@E_h*OP)WUc8B8; z`-sQAJ&v3H6K!nM5y#D({V?YV$4#C;pZ0>|CjSEYzu;z0bEa2uUA-31-#z$;!CSI7 zc43)s1J5fy4qi=s6TF@HIruQ~$UW?F=ZJ6VZGD5|=5Z{$9WQXiadTc#``G+V$K8F2 z_V$10<@O|S-1H>wYkRUf?&ixoZt@L~Z|u06@9((D&qjWN<8FSn<0k(H@;e=O^A{aA zc|LC3fb((VIIg#6j+^VGV@>n7g6|)FXV-_%r)S`C#BR3-FUbe3F55z~- zvtB^_CA^s9=KjL@tHODG?(GyYexRNw-`sI?zLV?Q-)Wr5&_VnCz@@`M0hAE>F*X zC-3$gciipyQ+lf7yskTW({msD{?u{P)2*dFuRtXGzuYhO#Dw$y%bp~TyFF<=Jz1T+ zJ5PSc-JUYi(;Vkj*~y!p^mzYvBgaiol2-P7S~%|JJ4*lQ&cVMFybY8*-+%s@+|AJ3}`^2yZIDg(7=Wp4=&a+zjQ^#?)r>Uo>t&?|q zdN}U(43(bm@bSxB$v19i=l{x+-zE7jpV<6C$?rn{HOU|AVDopy({{4{TzdARCs|bc z=e!@4Lq5HDcX(Df_xB)rN{YXLHOM;6)L z`3mT7C;4|hZN9tsrC!ztN>5ev%#wVR-ZsBP{6qLk>8XjHUE(9*e@IU~^j!7iUrWAL zA3IO<==OiPZeOB5Go0%@ps&s45x)d4Dm|0X(@^qJ`q`dV;vd4>OV4!l3>9ArALI0x z$C>na-_cCR&Erfx^e-0w628K5x91zjO;3gXcK*$9uG?PBb3{BjJ}5lz^qBshnDdt7 zrvEGS-*epLmmvSj<1u1{?qfqd52hE7(mq%gyk&>;`QkYGi#cxQ$uhw9mKXmWUPJl| zp}&EXH}i+#_rJ7v-1L8pPdN4z{}$fgakpoLPD3f^vr55>N`cHDgabDJGM5F=*jK4$C{Q4>fiUKXCsano}aJp~;% zbPmUDCce9y?f+D~Df$<{d7VtbKCW@xtbdBZ_Q2teoBd*bhvO#S2Kha3u74NIc}n~T ztn*#znS-9klK&O?II%+4^AbEeoR4oi(UV{NhavXw7nPoS=xO5dHcpROhdo%gK8~Ap z7&_GUf9mO(=gBYk(dXk9WhNp$|I_Zu6;*$Spxb3YV-V*C!BNg zxDzDL{#oMeSt>m(F#l>NZ_YP8=I76&<@L-tcRP7=UhF^Q=|AD*BlZjZR~K{a}Jf`vVV+|cl)P0Zu;5tmE&%Hy{CV(C%@NmxBrZ%=aQ3mk9*s3 zwu%(D{Cc^2ZjJtDpee$weN{b9JCuQ_h|Q;xO!cUOEi z{JEz;5YPTS?(Y)xr-gIQotP)9CbF$S@9g7TmMLWGQ0s?kK0S~>>nat z_zTs3zO?82RD3l2we*iif3o=Y?{S?Q;c+#W_#3QSK{&6Io`eZP_lx_I60ZA_)p56{u=o}1OG(Gwc`7+>dZLcEbJT|O`r$l{oV?rfiR11( z{lq!X5Xaq~v5uRbftY7JobzPq82rQFEnGY=e4Eo_`V+J=>EP>O$4&oy^q&+@Il->O zpPv5fPTutQY!&=h@D?Ru=suRmJaORM$M9AW@jx2K%{+T>+^piAC)(b;;=jU+!?`{@ zZbQklzm<6ZNw&X>^mNDkeVn{G-#wUrxZ`Gi&iSP{=bY~8pYP;NfBM$Je+6&r9e4Zr zbHsVR0erl_+sQ}l3wlmCZhERtw�Zd?fq|oc)>5|4MvLuZS@N2@{3x`&g`7N;vm@ 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

    <4) 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 z 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 YC9Xf%B?~>jS`PQm-ofIgKKT6q3)ziIlmGw# literal 0 HcmV?d00001 diff --git a/reccdi/src_py/cyth/bridge_cpu.cpp b/reccdi/src_py/cyth/bridge_cpu.cpp new file mode 100644 index 0000000..0d15949 --- /dev/null +++ b/reccdi/src_py/cyth/bridge_cpu.cpp @@ -0,0 +1,5917 @@ +/* Generated by Cython 0.29.13 */ + +/* BEGIN: Cython Metadata +{ + "distutils": { + "depends": [ + "reccdi/include/bridge.hpp" + ], + "include_dirs": [ + "reccdi/include", + "/home/beams/CXDUSER/CDI/arrayfire/include", + "/home/beams/CXDUSER/CDI/libconfig/include" + ], + "language": "c++", + "libraries": [ + "afcpu", + "config++" + ], + "library_dirs": [ + "/home/beams/CXDUSER/CDI/arrayfire/lib64", + "/home/beams/CXDUSER/CDI/libconfig/lib" + ], + "name": "reccdi.src_py.cyth.bridge_cpu", + "sources": [ + "reccdi/src_py/cyth/bridge_cpu.pyx", + "reccdi/src_cpp/bridge.cpp", + "reccdi/src_cpp/manager.cpp", + "reccdi/src_cpp/parameters.cpp", + "reccdi/src_cpp/pcdi.cpp", + "reccdi/src_cpp/resolution.cpp", + "reccdi/src_cpp/state.cpp", + "reccdi/src_cpp/support.cpp", + "reccdi/src_cpp/util.cpp", + "reccdi/src_cpp/worker.cpp" + ] + }, + "module_name": "reccdi.src_py.cyth.bridge_cpu" +} +END: Cython Metadata */ + +#define PY_SSIZE_T_CLEAN +#include "Python.h" +#ifndef Py_PYTHON_H + #error Python headers needed to compile C extensions, please install development version of Python. +#elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000) + #error Cython requires Python 2.6+ or Python 3.3+. +#else +#define CYTHON_ABI "0_29_13" +#define CYTHON_HEX_VERSION 0x001D0DF0 +#define CYTHON_FUTURE_DIVISION 0 +#include +#ifndef offsetof + #define offsetof(type, member) ( (size_t) & ((type*)0) -> member ) +#endif +#if !defined(WIN32) && !defined(MS_WINDOWS) + #ifndef __stdcall + #define __stdcall + #endif + #ifndef __cdecl + #define __cdecl + #endif + #ifndef __fastcall + #define __fastcall + #endif +#endif +#ifndef DL_IMPORT + #define DL_IMPORT(t) t +#endif +#ifndef DL_EXPORT + #define DL_EXPORT(t) t +#endif +#define __PYX_COMMA , +#ifndef HAVE_LONG_LONG + #if PY_VERSION_HEX >= 0x02070000 + #define HAVE_LONG_LONG + #endif +#endif +#ifndef PY_LONG_LONG + #define PY_LONG_LONG LONG_LONG +#endif +#ifndef Py_HUGE_VAL + #define Py_HUGE_VAL HUGE_VAL +#endif +#ifdef PYPY_VERSION + #define CYTHON_COMPILING_IN_PYPY 1 + #define CYTHON_COMPILING_IN_PYSTON 0 + #define CYTHON_COMPILING_IN_CPYTHON 0 + #undef CYTHON_USE_TYPE_SLOTS + #define CYTHON_USE_TYPE_SLOTS 0 + #undef CYTHON_USE_PYTYPE_LOOKUP + #define CYTHON_USE_PYTYPE_LOOKUP 0 + #if PY_VERSION_HEX < 0x03050000 + #undef CYTHON_USE_ASYNC_SLOTS + #define CYTHON_USE_ASYNC_SLOTS 0 + #elif !defined(CYTHON_USE_ASYNC_SLOTS) + #define CYTHON_USE_ASYNC_SLOTS 1 + #endif + #undef CYTHON_USE_PYLIST_INTERNALS + #define CYTHON_USE_PYLIST_INTERNALS 0 + #undef CYTHON_USE_UNICODE_INTERNALS + #define CYTHON_USE_UNICODE_INTERNALS 0 + #undef CYTHON_USE_UNICODE_WRITER + #define CYTHON_USE_UNICODE_WRITER 0 + #undef CYTHON_USE_PYLONG_INTERNALS + #define CYTHON_USE_PYLONG_INTERNALS 0 + #undef CYTHON_AVOID_BORROWED_REFS + #define CYTHON_AVOID_BORROWED_REFS 1 + #undef CYTHON_ASSUME_SAFE_MACROS + #define CYTHON_ASSUME_SAFE_MACROS 0 + #undef CYTHON_UNPACK_METHODS + #define CYTHON_UNPACK_METHODS 0 + #undef CYTHON_FAST_THREAD_STATE + #define CYTHON_FAST_THREAD_STATE 0 + #undef CYTHON_FAST_PYCALL + #define CYTHON_FAST_PYCALL 0 + #undef CYTHON_PEP489_MULTI_PHASE_INIT + #define CYTHON_PEP489_MULTI_PHASE_INIT 0 + #undef CYTHON_USE_TP_FINALIZE + #define CYTHON_USE_TP_FINALIZE 0 + #undef CYTHON_USE_DICT_VERSIONS + #define CYTHON_USE_DICT_VERSIONS 0 + #undef CYTHON_USE_EXC_INFO_STACK + #define CYTHON_USE_EXC_INFO_STACK 0 +#elif defined(PYSTON_VERSION) + #define CYTHON_COMPILING_IN_PYPY 0 + #define CYTHON_COMPILING_IN_PYSTON 1 + #define CYTHON_COMPILING_IN_CPYTHON 0 + #ifndef CYTHON_USE_TYPE_SLOTS + #define CYTHON_USE_TYPE_SLOTS 1 + #endif + #undef CYTHON_USE_PYTYPE_LOOKUP + #define CYTHON_USE_PYTYPE_LOOKUP 0 + #undef CYTHON_USE_ASYNC_SLOTS + #define CYTHON_USE_ASYNC_SLOTS 0 + #undef CYTHON_USE_PYLIST_INTERNALS + #define CYTHON_USE_PYLIST_INTERNALS 0 + #ifndef CYTHON_USE_UNICODE_INTERNALS + #define CYTHON_USE_UNICODE_INTERNALS 1 + #endif + #undef CYTHON_USE_UNICODE_WRITER + #define CYTHON_USE_UNICODE_WRITER 0 + #undef CYTHON_USE_PYLONG_INTERNALS + #define CYTHON_USE_PYLONG_INTERNALS 0 + #ifndef CYTHON_AVOID_BORROWED_REFS + #define CYTHON_AVOID_BORROWED_REFS 0 + #endif + #ifndef CYTHON_ASSUME_SAFE_MACROS + #define CYTHON_ASSUME_SAFE_MACROS 1 + #endif + #ifndef CYTHON_UNPACK_METHODS + #define CYTHON_UNPACK_METHODS 1 + #endif + #undef CYTHON_FAST_THREAD_STATE + #define CYTHON_FAST_THREAD_STATE 0 + #undef CYTHON_FAST_PYCALL + #define CYTHON_FAST_PYCALL 0 + #undef CYTHON_PEP489_MULTI_PHASE_INIT + #define CYTHON_PEP489_MULTI_PHASE_INIT 0 + #undef CYTHON_USE_TP_FINALIZE + #define CYTHON_USE_TP_FINALIZE 0 + #undef CYTHON_USE_DICT_VERSIONS + #define CYTHON_USE_DICT_VERSIONS 0 + #undef CYTHON_USE_EXC_INFO_STACK + #define CYTHON_USE_EXC_INFO_STACK 0 +#else + #define CYTHON_COMPILING_IN_PYPY 0 + #define CYTHON_COMPILING_IN_PYSTON 0 + #define CYTHON_COMPILING_IN_CPYTHON 1 + #ifndef CYTHON_USE_TYPE_SLOTS + #define CYTHON_USE_TYPE_SLOTS 1 + #endif + #if PY_VERSION_HEX < 0x02070000 + #undef CYTHON_USE_PYTYPE_LOOKUP + #define CYTHON_USE_PYTYPE_LOOKUP 0 + #elif !defined(CYTHON_USE_PYTYPE_LOOKUP) + #define CYTHON_USE_PYTYPE_LOOKUP 1 + #endif + #if PY_MAJOR_VERSION < 3 + #undef CYTHON_USE_ASYNC_SLOTS + #define CYTHON_USE_ASYNC_SLOTS 0 + #elif !defined(CYTHON_USE_ASYNC_SLOTS) + #define CYTHON_USE_ASYNC_SLOTS 1 + #endif + #if PY_VERSION_HEX < 0x02070000 + #undef CYTHON_USE_PYLONG_INTERNALS + #define CYTHON_USE_PYLONG_INTERNALS 0 + #elif !defined(CYTHON_USE_PYLONG_INTERNALS) + #define CYTHON_USE_PYLONG_INTERNALS 1 + #endif + #ifndef CYTHON_USE_PYLIST_INTERNALS + #define CYTHON_USE_PYLIST_INTERNALS 1 + #endif + #ifndef CYTHON_USE_UNICODE_INTERNALS + #define CYTHON_USE_UNICODE_INTERNALS 1 + #endif + #if PY_VERSION_HEX < 0x030300F0 + #undef CYTHON_USE_UNICODE_WRITER + #define CYTHON_USE_UNICODE_WRITER 0 + #elif !defined(CYTHON_USE_UNICODE_WRITER) + #define CYTHON_USE_UNICODE_WRITER 1 + #endif + #ifndef CYTHON_AVOID_BORROWED_REFS + #define CYTHON_AVOID_BORROWED_REFS 0 + #endif + #ifndef CYTHON_ASSUME_SAFE_MACROS + #define CYTHON_ASSUME_SAFE_MACROS 1 + #endif + #ifndef CYTHON_UNPACK_METHODS + #define CYTHON_UNPACK_METHODS 1 + #endif + #ifndef CYTHON_FAST_THREAD_STATE + #define CYTHON_FAST_THREAD_STATE 1 + #endif + #ifndef CYTHON_FAST_PYCALL + #define CYTHON_FAST_PYCALL 1 + #endif + #ifndef CYTHON_PEP489_MULTI_PHASE_INIT + #define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000) + #endif + #ifndef CYTHON_USE_TP_FINALIZE + #define CYTHON_USE_TP_FINALIZE (PY_VERSION_HEX >= 0x030400a1) + #endif + #ifndef CYTHON_USE_DICT_VERSIONS + #define CYTHON_USE_DICT_VERSIONS (PY_VERSION_HEX >= 0x030600B1) + #endif + #ifndef CYTHON_USE_EXC_INFO_STACK + #define CYTHON_USE_EXC_INFO_STACK (PY_VERSION_HEX >= 0x030700A3) + #endif +#endif +#if !defined(CYTHON_FAST_PYCCALL) +#define CYTHON_FAST_PYCCALL (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1) +#endif +#if CYTHON_USE_PYLONG_INTERNALS + #include "longintrepr.h" + #undef SHIFT + #undef BASE + #undef MASK + #ifdef SIZEOF_VOID_P + enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) }; + #endif +#endif +#ifndef __has_attribute + #define __has_attribute(x) 0 +#endif +#ifndef __has_cpp_attribute + #define __has_cpp_attribute(x) 0 +#endif +#ifndef CYTHON_RESTRICT + #if defined(__GNUC__) + #define CYTHON_RESTRICT __restrict__ + #elif defined(_MSC_VER) && _MSC_VER >= 1400 + #define CYTHON_RESTRICT __restrict + #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L + #define CYTHON_RESTRICT restrict + #else + #define CYTHON_RESTRICT + #endif +#endif +#ifndef CYTHON_UNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define CYTHON_UNUSED __attribute__ ((__unused__)) +# else +# define CYTHON_UNUSED +# endif +# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER)) +# define CYTHON_UNUSED __attribute__ ((__unused__)) +# else +# define CYTHON_UNUSED +# endif +#endif +#ifndef CYTHON_MAYBE_UNUSED_VAR +# if defined(__cplusplus) + template void CYTHON_MAYBE_UNUSED_VAR( const T& ) { } +# else +# define CYTHON_MAYBE_UNUSED_VAR(x) (void)(x) +# endif +#endif +#ifndef CYTHON_NCP_UNUSED +# if CYTHON_COMPILING_IN_CPYTHON +# define CYTHON_NCP_UNUSED +# else +# define CYTHON_NCP_UNUSED CYTHON_UNUSED +# endif +#endif +#define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None) +#ifdef _MSC_VER + #ifndef _MSC_STDINT_H_ + #if _MSC_VER < 1300 + typedef unsigned char uint8_t; + typedef unsigned int uint32_t; + #else + typedef unsigned __int8 uint8_t; + typedef unsigned __int32 uint32_t; + #endif + #endif +#else + #include +#endif +#ifndef CYTHON_FALLTHROUGH + #if defined(__cplusplus) && __cplusplus >= 201103L + #if __has_cpp_attribute(fallthrough) + #define CYTHON_FALLTHROUGH [[fallthrough]] + #elif __has_cpp_attribute(clang::fallthrough) + #define CYTHON_FALLTHROUGH [[clang::fallthrough]] + #elif __has_cpp_attribute(gnu::fallthrough) + #define CYTHON_FALLTHROUGH [[gnu::fallthrough]] + #endif + #endif + #ifndef CYTHON_FALLTHROUGH + #if __has_attribute(fallthrough) + #define CYTHON_FALLTHROUGH __attribute__((fallthrough)) + #else + #define CYTHON_FALLTHROUGH + #endif + #endif + #if defined(__clang__ ) && defined(__apple_build_version__) + #if __apple_build_version__ < 7000000 + #undef CYTHON_FALLTHROUGH + #define CYTHON_FALLTHROUGH + #endif + #endif +#endif + +#ifndef __cplusplus + #error "Cython files generated with the C++ option must be compiled with a C++ compiler." +#endif +#ifndef CYTHON_INLINE + #if defined(__clang__) + #define CYTHON_INLINE __inline__ __attribute__ ((__unused__)) + #else + #define CYTHON_INLINE inline + #endif +#endif +template +void __Pyx_call_destructor(T& x) { + x.~T(); +} +template +class __Pyx_FakeReference { + public: + __Pyx_FakeReference() : ptr(NULL) { } + __Pyx_FakeReference(const T& ref) : ptr(const_cast(&ref)) { } + T *operator->() { return ptr; } + T *operator&() { return ptr; } + operator T&() { return *ptr; } + template bool operator ==(U other) { return *ptr == other; } + template bool operator !=(U other) { return *ptr != other; } + private: + T *ptr; +}; + +#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x02070600 && !defined(Py_OptimizeFlag) + #define Py_OptimizeFlag 0 +#endif +#define __PYX_BUILD_PY_SSIZE_T "n" +#define CYTHON_FORMAT_SSIZE_T "z" +#if PY_MAJOR_VERSION < 3 + #define __Pyx_BUILTIN_MODULE_NAME "__builtin__" + #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ + PyCode_New(a+k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) + #define __Pyx_DefaultClassType PyClass_Type +#else + #define __Pyx_BUILTIN_MODULE_NAME "builtins" +#if PY_VERSION_HEX >= 0x030800A4 && PY_VERSION_HEX < 0x030800B2 + #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ + PyCode_New(a, 0, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) +#else + #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ + PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) +#endif + #define __Pyx_DefaultClassType PyType_Type +#endif +#ifndef Py_TPFLAGS_CHECKTYPES + #define Py_TPFLAGS_CHECKTYPES 0 +#endif +#ifndef Py_TPFLAGS_HAVE_INDEX + #define Py_TPFLAGS_HAVE_INDEX 0 +#endif +#ifndef Py_TPFLAGS_HAVE_NEWBUFFER + #define Py_TPFLAGS_HAVE_NEWBUFFER 0 +#endif +#ifndef Py_TPFLAGS_HAVE_FINALIZE + #define Py_TPFLAGS_HAVE_FINALIZE 0 +#endif +#ifndef METH_STACKLESS + #define METH_STACKLESS 0 +#endif +#if PY_VERSION_HEX <= 0x030700A3 || !defined(METH_FASTCALL) + #ifndef METH_FASTCALL + #define METH_FASTCALL 0x80 + #endif + typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject *const *args, Py_ssize_t nargs); + typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject *const *args, + Py_ssize_t nargs, PyObject *kwnames); +#else + #define __Pyx_PyCFunctionFast _PyCFunctionFast + #define __Pyx_PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords +#endif +#if CYTHON_FAST_PYCCALL +#define __Pyx_PyFastCFunction_Check(func)\ + ((PyCFunction_Check(func) && (METH_FASTCALL == (PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS))))) +#else +#define __Pyx_PyFastCFunction_Check(func) 0 +#endif +#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc) + #define PyObject_Malloc(s) PyMem_Malloc(s) + #define PyObject_Free(p) PyMem_Free(p) + #define PyObject_Realloc(p) PyMem_Realloc(p) +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030400A1 + #define PyMem_RawMalloc(n) PyMem_Malloc(n) + #define PyMem_RawRealloc(p, n) PyMem_Realloc(p, n) + #define PyMem_RawFree(p) PyMem_Free(p) +#endif +#if CYTHON_COMPILING_IN_PYSTON + #define __Pyx_PyCode_HasFreeVars(co) PyCode_HasFreeVars(co) + #define __Pyx_PyFrame_SetLineNumber(frame, lineno) PyFrame_SetLineNumber(frame, lineno) +#else + #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0) + #define __Pyx_PyFrame_SetLineNumber(frame, lineno) (frame)->f_lineno = (lineno) +#endif +#if !CYTHON_FAST_THREAD_STATE || PY_VERSION_HEX < 0x02070000 + #define __Pyx_PyThreadState_Current PyThreadState_GET() +#elif PY_VERSION_HEX >= 0x03060000 + #define __Pyx_PyThreadState_Current _PyThreadState_UncheckedGet() +#elif PY_VERSION_HEX >= 0x03000000 + #define __Pyx_PyThreadState_Current PyThreadState_GET() +#else + #define __Pyx_PyThreadState_Current _PyThreadState_Current +#endif +#if PY_VERSION_HEX < 0x030700A2 && !defined(PyThread_tss_create) && !defined(Py_tss_NEEDS_INIT) +#include "pythread.h" +#define Py_tss_NEEDS_INIT 0 +typedef int Py_tss_t; +static CYTHON_INLINE int PyThread_tss_create(Py_tss_t *key) { + *key = PyThread_create_key(); + return 0; +} +static CYTHON_INLINE Py_tss_t * PyThread_tss_alloc(void) { + Py_tss_t *key = (Py_tss_t *)PyObject_Malloc(sizeof(Py_tss_t)); + *key = Py_tss_NEEDS_INIT; + return key; +} +static CYTHON_INLINE void PyThread_tss_free(Py_tss_t *key) { + PyObject_Free(key); +} +static CYTHON_INLINE int PyThread_tss_is_created(Py_tss_t *key) { + return *key != Py_tss_NEEDS_INIT; +} +static CYTHON_INLINE void PyThread_tss_delete(Py_tss_t *key) { + PyThread_delete_key(*key); + *key = Py_tss_NEEDS_INIT; +} +static CYTHON_INLINE int PyThread_tss_set(Py_tss_t *key, void *value) { + return PyThread_set_key_value(*key, value); +} +static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { + return PyThread_get_key_value(*key); +} +#endif +#if CYTHON_COMPILING_IN_CPYTHON || defined(_PyDict_NewPresized) +#define __Pyx_PyDict_NewPresized(n) ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n)) +#else +#define __Pyx_PyDict_NewPresized(n) PyDict_New() +#endif +#if PY_MAJOR_VERSION >= 3 || CYTHON_FUTURE_DIVISION + #define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y) + #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y) +#else + #define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y) + #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceDivide(x,y) +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 && CYTHON_USE_UNICODE_INTERNALS +#define __Pyx_PyDict_GetItemStr(dict, name) _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash) +#else +#define __Pyx_PyDict_GetItemStr(dict, name) PyDict_GetItem(dict, name) +#endif +#if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND) + #define CYTHON_PEP393_ENABLED 1 + #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ?\ + 0 : _PyUnicode_Ready((PyObject *)(op))) + #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_LENGTH(u) + #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i) + #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) PyUnicode_MAX_CHAR_VALUE(u) + #define __Pyx_PyUnicode_KIND(u) PyUnicode_KIND(u) + #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u) + #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) + #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch) + #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u))) +#else + #define CYTHON_PEP393_ENABLED 0 + #define PyUnicode_1BYTE_KIND 1 + #define PyUnicode_2BYTE_KIND 2 + #define PyUnicode_4BYTE_KIND 4 + #define __Pyx_PyUnicode_READY(op) (0) + #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_SIZE(u) + #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i])) + #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) ((sizeof(Py_UNICODE) == 2) ? 65535 : 1114111) + #define __Pyx_PyUnicode_KIND(u) (sizeof(Py_UNICODE)) + #define __Pyx_PyUnicode_DATA(u) ((void*)PyUnicode_AS_UNICODE(u)) + #define __Pyx_PyUnicode_READ(k, d, i) ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i])) + #define __Pyx_PyUnicode_WRITE(k, d, i, ch) (((void)(k)), ((Py_UNICODE*)d)[i] = ch) + #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_SIZE(u)) +#endif +#if CYTHON_COMPILING_IN_PYPY + #define __Pyx_PyUnicode_Concat(a, b) PyNumber_Add(a, b) + #define __Pyx_PyUnicode_ConcatSafe(a, b) PyNumber_Add(a, b) +#else + #define __Pyx_PyUnicode_Concat(a, b) PyUnicode_Concat(a, b) + #define __Pyx_PyUnicode_ConcatSafe(a, b) ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\ + PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b)) +#endif +#if CYTHON_COMPILING_IN_PYPY && !defined(PyUnicode_Contains) + #define PyUnicode_Contains(u, s) PySequence_Contains(u, s) +#endif +#if CYTHON_COMPILING_IN_PYPY && !defined(PyByteArray_Check) + #define PyByteArray_Check(obj) PyObject_TypeCheck(obj, &PyByteArray_Type) +#endif +#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Format) + #define PyObject_Format(obj, fmt) PyObject_CallMethod(obj, "__format__", "O", fmt) +#endif +#define __Pyx_PyString_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyString_Check(b) && !PyString_CheckExact(b)))) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b)) +#define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyUnicode_Check(b) && !PyUnicode_CheckExact(b)))) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b)) +#if PY_MAJOR_VERSION >= 3 + #define __Pyx_PyString_Format(a, b) PyUnicode_Format(a, b) +#else + #define __Pyx_PyString_Format(a, b) PyString_Format(a, b) +#endif +#if PY_MAJOR_VERSION < 3 && !defined(PyObject_ASCII) + #define PyObject_ASCII(o) PyObject_Repr(o) +#endif +#if PY_MAJOR_VERSION >= 3 + #define PyBaseString_Type PyUnicode_Type + #define PyStringObject PyUnicodeObject + #define PyString_Type PyUnicode_Type + #define PyString_Check PyUnicode_Check + #define PyString_CheckExact PyUnicode_CheckExact + #define PyObject_Unicode PyObject_Str +#endif +#if PY_MAJOR_VERSION >= 3 + #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj) + #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj) +#else + #define __Pyx_PyBaseString_Check(obj) (PyString_Check(obj) || PyUnicode_Check(obj)) + #define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj)) +#endif +#ifndef PySet_CheckExact + #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) +#endif +#if CYTHON_ASSUME_SAFE_MACROS + #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq) +#else + #define __Pyx_PySequence_SIZE(seq) PySequence_Size(seq) +#endif +#if PY_MAJOR_VERSION >= 3 + #define PyIntObject PyLongObject + #define PyInt_Type PyLong_Type + #define PyInt_Check(op) PyLong_Check(op) + #define PyInt_CheckExact(op) PyLong_CheckExact(op) + #define PyInt_FromString PyLong_FromString + #define PyInt_FromUnicode PyLong_FromUnicode + #define PyInt_FromLong PyLong_FromLong + #define PyInt_FromSize_t PyLong_FromSize_t + #define PyInt_FromSsize_t PyLong_FromSsize_t + #define PyInt_AsLong PyLong_AsLong + #define PyInt_AS_LONG PyLong_AS_LONG + #define PyInt_AsSsize_t PyLong_AsSsize_t + #define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask + #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask + #define PyNumber_Int PyNumber_Long +#endif +#if PY_MAJOR_VERSION >= 3 + #define PyBoolObject PyLongObject +#endif +#if PY_MAJOR_VERSION >= 3 && CYTHON_COMPILING_IN_PYPY + #ifndef PyUnicode_InternFromString + #define PyUnicode_InternFromString(s) PyUnicode_FromString(s) + #endif +#endif +#if PY_VERSION_HEX < 0x030200A4 + typedef long Py_hash_t; + #define __Pyx_PyInt_FromHash_t PyInt_FromLong + #define __Pyx_PyInt_AsHash_t PyInt_AsLong +#else + #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t + #define __Pyx_PyInt_AsHash_t PyInt_AsSsize_t +#endif +#if PY_MAJOR_VERSION >= 3 + #define __Pyx_PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : (Py_INCREF(func), func)) +#else + #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass) +#endif +#if CYTHON_USE_ASYNC_SLOTS + #if PY_VERSION_HEX >= 0x030500B1 + #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods + #define __Pyx_PyType_AsAsync(obj) (Py_TYPE(obj)->tp_as_async) + #else + #define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved)) + #endif +#else + #define __Pyx_PyType_AsAsync(obj) NULL +#endif +#ifndef __Pyx_PyAsyncMethodsStruct + typedef struct { + unaryfunc am_await; + unaryfunc am_aiter; + unaryfunc am_anext; + } __Pyx_PyAsyncMethodsStruct; +#endif + +#if defined(WIN32) || defined(MS_WINDOWS) + #define _USE_MATH_DEFINES +#endif +#include +#ifdef NAN +#define __PYX_NAN() ((float) NAN) +#else +static CYTHON_INLINE float __PYX_NAN() { + float value; + memset(&value, 0xFF, sizeof(value)); + return value; +} +#endif +#if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL) +#define __Pyx_truncl trunc +#else +#define __Pyx_truncl truncl +#endif + + +#define __PYX_ERR(f_index, lineno, Ln_error) \ +{ \ + __pyx_filename = __pyx_f[f_index]; __pyx_lineno = lineno; __pyx_clineno = __LINE__; goto Ln_error; \ +} + +#ifndef __PYX_EXTERN_C + #ifdef __cplusplus + #define __PYX_EXTERN_C extern "C" + #else + #define __PYX_EXTERN_C extern + #endif +#endif + +#define __PYX_HAVE__reccdi__src_py__cyth__bridge_cpu +#define __PYX_HAVE_API__reccdi__src_py__cyth__bridge_cpu +/* Early includes */ +#include "ios" +#include "new" +#include "stdexcept" +#include "typeinfo" +#include +#include +#include +#include "../include/bridge.hpp" +#ifdef _OPENMP +#include +#endif /* _OPENMP */ + +#if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS) +#define CYTHON_WITHOUT_ASSERTIONS +#endif + +typedef struct {PyObject **p; const char *s; const Py_ssize_t n; const char* encoding; + const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; + +#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0 +#define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0 +#define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT (PY_MAJOR_VERSION >= 3 && __PYX_DEFAULT_STRING_ENCODING_IS_UTF8) +#define __PYX_DEFAULT_STRING_ENCODING "" +#define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString +#define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize +#define __Pyx_uchar_cast(c) ((unsigned char)c) +#define __Pyx_long_cast(x) ((long)x) +#define __Pyx_fits_Py_ssize_t(v, type, is_signed) (\ + (sizeof(type) < sizeof(Py_ssize_t)) ||\ + (sizeof(type) > sizeof(Py_ssize_t) &&\ + likely(v < (type)PY_SSIZE_T_MAX ||\ + v == (type)PY_SSIZE_T_MAX) &&\ + (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\ + v == (type)PY_SSIZE_T_MIN))) ||\ + (sizeof(type) == sizeof(Py_ssize_t) &&\ + (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\ + v == (type)PY_SSIZE_T_MAX))) ) +static CYTHON_INLINE int __Pyx_is_valid_index(Py_ssize_t i, Py_ssize_t limit) { + return (size_t) i < (size_t) limit; +} +#if defined (__cplusplus) && __cplusplus >= 201103L + #include + #define __Pyx_sst_abs(value) std::abs(value) +#elif SIZEOF_INT >= SIZEOF_SIZE_T + #define __Pyx_sst_abs(value) abs(value) +#elif SIZEOF_LONG >= SIZEOF_SIZE_T + #define __Pyx_sst_abs(value) labs(value) +#elif defined (_MSC_VER) + #define __Pyx_sst_abs(value) ((Py_ssize_t)_abs64(value)) +#elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L + #define __Pyx_sst_abs(value) llabs(value) +#elif defined (__GNUC__) + #define __Pyx_sst_abs(value) __builtin_llabs(value) +#else + #define __Pyx_sst_abs(value) ((value<0) ? -value : value) +#endif +static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject*); +static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length); +#define __Pyx_PyByteArray_FromString(s) PyByteArray_FromStringAndSize((const char*)s, strlen((const char*)s)) +#define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l) +#define __Pyx_PyBytes_FromString PyBytes_FromString +#define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize +static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*); +#if PY_MAJOR_VERSION < 3 + #define __Pyx_PyStr_FromString __Pyx_PyBytes_FromString + #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize +#else + #define __Pyx_PyStr_FromString __Pyx_PyUnicode_FromString + #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize +#endif +#define __Pyx_PyBytes_AsWritableString(s) ((char*) PyBytes_AS_STRING(s)) +#define __Pyx_PyBytes_AsWritableSString(s) ((signed char*) PyBytes_AS_STRING(s)) +#define __Pyx_PyBytes_AsWritableUString(s) ((unsigned char*) PyBytes_AS_STRING(s)) +#define __Pyx_PyBytes_AsString(s) ((const char*) PyBytes_AS_STRING(s)) +#define __Pyx_PyBytes_AsSString(s) ((const signed char*) PyBytes_AS_STRING(s)) +#define __Pyx_PyBytes_AsUString(s) ((const unsigned char*) PyBytes_AS_STRING(s)) +#define __Pyx_PyObject_AsWritableString(s) ((char*) __Pyx_PyObject_AsString(s)) +#define __Pyx_PyObject_AsWritableSString(s) ((signed char*) __Pyx_PyObject_AsString(s)) +#define __Pyx_PyObject_AsWritableUString(s) ((unsigned char*) __Pyx_PyObject_AsString(s)) +#define __Pyx_PyObject_AsSString(s) ((const signed char*) __Pyx_PyObject_AsString(s)) +#define __Pyx_PyObject_AsUString(s) ((const unsigned char*) __Pyx_PyObject_AsString(s)) +#define __Pyx_PyObject_FromCString(s) __Pyx_PyObject_FromString((const char*)s) +#define __Pyx_PyBytes_FromCString(s) __Pyx_PyBytes_FromString((const char*)s) +#define __Pyx_PyByteArray_FromCString(s) __Pyx_PyByteArray_FromString((const char*)s) +#define __Pyx_PyStr_FromCString(s) __Pyx_PyStr_FromString((const char*)s) +#define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s) +static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u) { + const Py_UNICODE *u_end = u; + while (*u_end++) ; + return (size_t)(u_end - u - 1); +} +#define __Pyx_PyUnicode_FromUnicode(u) PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u)) +#define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode +#define __Pyx_PyUnicode_AsUnicode PyUnicode_AsUnicode +#define __Pyx_NewRef(obj) (Py_INCREF(obj), obj) +#define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None) +static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b); +static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*); +static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject*); +static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x); +#define __Pyx_PySequence_Tuple(obj)\ + (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj)) +static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*); +static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t); +#if CYTHON_ASSUME_SAFE_MACROS +#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x)) +#else +#define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x) +#endif +#define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x)) +#if PY_MAJOR_VERSION >= 3 +#define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x)) +#else +#define __Pyx_PyNumber_Int(x) (PyInt_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Int(x)) +#endif +#define __Pyx_PyNumber_Float(x) (PyFloat_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Float(x)) +#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII +static int __Pyx_sys_getdefaultencoding_not_ascii; +static int __Pyx_init_sys_getdefaultencoding_params(void) { + PyObject* sys; + PyObject* default_encoding = NULL; + PyObject* ascii_chars_u = NULL; + PyObject* ascii_chars_b = NULL; + const char* default_encoding_c; + sys = PyImport_ImportModule("sys"); + if (!sys) goto bad; + default_encoding = PyObject_CallMethod(sys, (char*) "getdefaultencoding", NULL); + Py_DECREF(sys); + if (!default_encoding) goto bad; + default_encoding_c = PyBytes_AsString(default_encoding); + if (!default_encoding_c) goto bad; + if (strcmp(default_encoding_c, "ascii") == 0) { + __Pyx_sys_getdefaultencoding_not_ascii = 0; + } else { + char ascii_chars[128]; + int c; + for (c = 0; c < 128; c++) { + ascii_chars[c] = c; + } + __Pyx_sys_getdefaultencoding_not_ascii = 1; + ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL); + if (!ascii_chars_u) goto bad; + ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL); + if (!ascii_chars_b || !PyBytes_Check(ascii_chars_b) || memcmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) { + PyErr_Format( + PyExc_ValueError, + "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.", + default_encoding_c); + goto bad; + } + Py_DECREF(ascii_chars_u); + Py_DECREF(ascii_chars_b); + } + Py_DECREF(default_encoding); + return 0; +bad: + Py_XDECREF(default_encoding); + Py_XDECREF(ascii_chars_u); + Py_XDECREF(ascii_chars_b); + return -1; +} +#endif +#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3 +#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL) +#else +#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL) +#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT +static char* __PYX_DEFAULT_STRING_ENCODING; +static int __Pyx_init_sys_getdefaultencoding_params(void) { + PyObject* sys; + PyObject* default_encoding = NULL; + char* default_encoding_c; + sys = PyImport_ImportModule("sys"); + if (!sys) goto bad; + default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL); + Py_DECREF(sys); + if (!default_encoding) goto bad; + default_encoding_c = PyBytes_AsString(default_encoding); + if (!default_encoding_c) goto bad; + __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c) + 1); + if (!__PYX_DEFAULT_STRING_ENCODING) goto bad; + strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c); + Py_DECREF(default_encoding); + return 0; +bad: + Py_XDECREF(default_encoding); + return -1; +} +#endif +#endif + + +/* Test for GCC > 2.95 */ +#if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95))) + #define likely(x) __builtin_expect(!!(x), 1) + #define unlikely(x) __builtin_expect(!!(x), 0) +#else /* !__GNUC__ or GCC < 2.95 */ + #define likely(x) (x) + #define unlikely(x) (x) +#endif /* __GNUC__ */ +static CYTHON_INLINE void __Pyx_pretend_to_initialize(void* ptr) { (void)ptr; } + +static PyObject *__pyx_m = NULL; +static PyObject *__pyx_d; +static PyObject *__pyx_b; +static PyObject *__pyx_cython_runtime = NULL; +static PyObject *__pyx_empty_tuple; +static PyObject *__pyx_empty_bytes; +static PyObject *__pyx_empty_unicode; +static int __pyx_lineno; +static int __pyx_clineno = 0; +static const char * __pyx_cfilenm= __FILE__; +static const char *__pyx_filename; + + +static const char *__pyx_f[] = { + "stringsource", + "reccdi/src_py/cyth/bridge_cpu.pyx", +}; + +/*--- Type declarations ---*/ +struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge; + +/* "reccdi/src_py/cyth/bridge_cpu.pyx":37 + * + * + * cdef class PyBridge: # <<<<<<<<<<<<<< + * cdef Bridge *thisptr + * def __cinit__(self): + */ +struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge { + PyObject_HEAD + Bridge *thisptr; +}; + + +/* --- Runtime support code (head) --- */ +/* Refnanny.proto */ +#ifndef CYTHON_REFNANNY + #define CYTHON_REFNANNY 0 +#endif +#if CYTHON_REFNANNY + typedef struct { + void (*INCREF)(void*, PyObject*, int); + void (*DECREF)(void*, PyObject*, int); + void (*GOTREF)(void*, PyObject*, int); + void (*GIVEREF)(void*, PyObject*, int); + void* (*SetupContext)(const char*, int, const char*); + void (*FinishContext)(void**); + } __Pyx_RefNannyAPIStruct; + static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL; + static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname); + #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL; +#ifdef WITH_THREAD + #define __Pyx_RefNannySetupContext(name, acquire_gil)\ + if (acquire_gil) {\ + PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\ + __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\ + PyGILState_Release(__pyx_gilstate_save);\ + } else {\ + __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\ + } +#else + #define __Pyx_RefNannySetupContext(name, acquire_gil)\ + __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__) +#endif + #define __Pyx_RefNannyFinishContext()\ + __Pyx_RefNanny->FinishContext(&__pyx_refnanny) + #define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__) + #define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__) + #define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__) + #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__) + #define __Pyx_XINCREF(r) do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0) + #define __Pyx_XDECREF(r) do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0) + #define __Pyx_XGOTREF(r) do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0) + #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0) +#else + #define __Pyx_RefNannyDeclarations + #define __Pyx_RefNannySetupContext(name, acquire_gil) + #define __Pyx_RefNannyFinishContext() + #define __Pyx_INCREF(r) Py_INCREF(r) + #define __Pyx_DECREF(r) Py_DECREF(r) + #define __Pyx_GOTREF(r) + #define __Pyx_GIVEREF(r) + #define __Pyx_XINCREF(r) Py_XINCREF(r) + #define __Pyx_XDECREF(r) Py_XDECREF(r) + #define __Pyx_XGOTREF(r) + #define __Pyx_XGIVEREF(r) +#endif +#define __Pyx_XDECREF_SET(r, v) do {\ + PyObject *tmp = (PyObject *) r;\ + r = v; __Pyx_XDECREF(tmp);\ + } while (0) +#define __Pyx_DECREF_SET(r, v) do {\ + PyObject *tmp = (PyObject *) r;\ + r = v; __Pyx_DECREF(tmp);\ + } while (0) +#define __Pyx_CLEAR(r) do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0) +#define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0) + +/* PyObjectGetAttrStr.proto */ +#if CYTHON_USE_TYPE_SLOTS +static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name); +#else +#define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n) +#endif + +/* GetBuiltinName.proto */ +static PyObject *__Pyx_GetBuiltinName(PyObject *name); + +/* RaiseArgTupleInvalid.proto */ +static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact, + Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); + +/* KeywordStringCheck.proto */ +static int __Pyx_CheckKeywordStrings(PyObject *kwdict, const char* function_name, int kw_allowed); + +/* RaiseDoubleKeywords.proto */ +static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name); + +/* ParseKeywords.proto */ +static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[],\ + PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args,\ + const char* function_name); + +/* PyFunctionFastCall.proto */ +#if CYTHON_FAST_PYCALL +#define __Pyx_PyFunction_FastCall(func, args, nargs)\ + __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL) +#if 1 || PY_VERSION_HEX < 0x030600B1 +static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs); +#else +#define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs) +#endif +#define __Pyx_BUILD_ASSERT_EXPR(cond)\ + (sizeof(char [1 - 2*!(cond)]) - 1) +#ifndef Py_MEMBER_SIZE +#define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member) +#endif + static size_t __pyx_pyframe_localsplus_offset = 0; + #include "frameobject.h" + #define __Pxy_PyFrame_Initialize_Offsets()\ + ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\ + (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus))) + #define __Pyx_PyFrame_GetLocalsplus(frame)\ + (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset)) +#endif + +/* PyObjectCall.proto */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw); +#else +#define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw) +#endif + +/* PyObjectCallMethO.proto */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg); +#endif + +/* PyObjectCallNoArg.proto */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func); +#else +#define __Pyx_PyObject_CallNoArg(func) __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL) +#endif + +/* PyCFunctionFastCall.proto */ +#if CYTHON_FAST_PYCCALL +static CYTHON_INLINE PyObject *__Pyx_PyCFunction_FastCall(PyObject *func, PyObject **args, Py_ssize_t nargs); +#else +#define __Pyx_PyCFunction_FastCall(func, args, nargs) (assert(0), NULL) +#endif + +/* PyObjectCallOneArg.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg); + +/* PyThreadStateGet.proto */ +#if CYTHON_FAST_THREAD_STATE +#define __Pyx_PyThreadState_declare PyThreadState *__pyx_tstate; +#define __Pyx_PyThreadState_assign __pyx_tstate = __Pyx_PyThreadState_Current; +#define __Pyx_PyErr_Occurred() __pyx_tstate->curexc_type +#else +#define __Pyx_PyThreadState_declare +#define __Pyx_PyThreadState_assign +#define __Pyx_PyErr_Occurred() PyErr_Occurred() +#endif + +/* PyErrFetchRestore.proto */ +#if CYTHON_FAST_THREAD_STATE +#define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL) +#define __Pyx_ErrRestoreWithState(type, value, tb) __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb) +#define __Pyx_ErrFetchWithState(type, value, tb) __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb) +#define __Pyx_ErrRestore(type, value, tb) __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb) +#define __Pyx_ErrFetch(type, value, tb) __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb) +static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb); +static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); +#if CYTHON_COMPILING_IN_CPYTHON +#define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL)) +#else +#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) +#endif +#else +#define __Pyx_PyErr_Clear() PyErr_Clear() +#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) +#define __Pyx_ErrRestoreWithState(type, value, tb) PyErr_Restore(type, value, tb) +#define __Pyx_ErrFetchWithState(type, value, tb) PyErr_Fetch(type, value, tb) +#define __Pyx_ErrRestoreInState(tstate, type, value, tb) PyErr_Restore(type, value, tb) +#define __Pyx_ErrFetchInState(tstate, type, value, tb) PyErr_Fetch(type, value, tb) +#define __Pyx_ErrRestore(type, value, tb) PyErr_Restore(type, value, tb) +#define __Pyx_ErrFetch(type, value, tb) PyErr_Fetch(type, value, tb) +#endif + +/* RaiseException.proto */ +static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); + +/* ListCompAppend.proto */ +#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS +static CYTHON_INLINE int __Pyx_ListComp_Append(PyObject* list, PyObject* x) { + PyListObject* L = (PyListObject*) list; + Py_ssize_t len = Py_SIZE(list); + if (likely(L->allocated > len)) { + Py_INCREF(x); + PyList_SET_ITEM(list, len, x); + Py_SIZE(list) = len+1; + return 0; + } + return PyList_Append(list, x); +} +#else +#define __Pyx_ListComp_Append(L,x) PyList_Append(L,x) +#endif + +/* PyObject_GenericGetAttrNoDict.proto */ +#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 +static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name); +#else +#define __Pyx_PyObject_GenericGetAttrNoDict PyObject_GenericGetAttr +#endif + +/* PyObject_GenericGetAttr.proto */ +#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 +static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name); +#else +#define __Pyx_PyObject_GenericGetAttr PyObject_GenericGetAttr +#endif + +/* SetupReduce.proto */ +static int __Pyx_setup_reduce(PyObject* type_obj); + +/* PyDictVersioning.proto */ +#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS +#define __PYX_DICT_VERSION_INIT ((PY_UINT64_T) -1) +#define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag) +#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\ + (version_var) = __PYX_GET_DICT_VERSION(dict);\ + (cache_var) = (value); +#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\ + static PY_UINT64_T __pyx_dict_version = 0;\ + static PyObject *__pyx_dict_cached_value = NULL;\ + if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\ + (VAR) = __pyx_dict_cached_value;\ + } else {\ + (VAR) = __pyx_dict_cached_value = (LOOKUP);\ + __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\ + }\ +} +static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj); +static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj); +static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version); +#else +#define __PYX_GET_DICT_VERSION(dict) (0) +#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var) +#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) (VAR) = (LOOKUP); +#endif + +/* CLineInTraceback.proto */ +#ifdef CYTHON_CLINE_IN_TRACEBACK +#define __Pyx_CLineForTraceback(tstate, c_line) (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0) +#else +static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line); +#endif + +/* CodeObjectCache.proto */ +typedef struct { + PyCodeObject* code_object; + int code_line; +} __Pyx_CodeObjectCacheEntry; +struct __Pyx_CodeObjectCache { + int count; + int max_count; + __Pyx_CodeObjectCacheEntry* entries; +}; +static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL}; +static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line); +static PyCodeObject *__pyx_find_code_object(int code_line); +static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object); + +/* AddTraceback.proto */ +static void __Pyx_AddTraceback(const char *funcname, int c_line, + int py_line, const char *filename); + +/* CppExceptionConversion.proto */ +#ifndef __Pyx_CppExn2PyErr +#include +#include +#include +#include +static void __Pyx_CppExn2PyErr() { + try { + if (PyErr_Occurred()) + ; // let the latest Python exn pass through and ignore the current one + else + throw; + } catch (const std::bad_alloc& exn) { + PyErr_SetString(PyExc_MemoryError, exn.what()); + } catch (const std::bad_cast& exn) { + PyErr_SetString(PyExc_TypeError, exn.what()); + } catch (const std::bad_typeid& exn) { + PyErr_SetString(PyExc_TypeError, exn.what()); + } catch (const std::domain_error& exn) { + PyErr_SetString(PyExc_ValueError, exn.what()); + } catch (const std::invalid_argument& exn) { + PyErr_SetString(PyExc_ValueError, exn.what()); + } catch (const std::ios_base::failure& exn) { + PyErr_SetString(PyExc_IOError, exn.what()); + } catch (const std::out_of_range& exn) { + PyErr_SetString(PyExc_IndexError, exn.what()); + } catch (const std::overflow_error& exn) { + PyErr_SetString(PyExc_OverflowError, exn.what()); + } catch (const std::range_error& exn) { + PyErr_SetString(PyExc_ArithmeticError, exn.what()); + } catch (const std::underflow_error& exn) { + PyErr_SetString(PyExc_ArithmeticError, exn.what()); + } catch (const std::exception& exn) { + PyErr_SetString(PyExc_RuntimeError, exn.what()); + } + catch (...) + { + PyErr_SetString(PyExc_RuntimeError, "Unknown exception"); + } +} +#endif + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); + +/* CIntFromPy.proto */ +static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); + +/* CIntFromPy.proto */ +static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *); + +/* FastTypeChecks.proto */ +#if CYTHON_COMPILING_IN_CPYTHON +#define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type) +static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b); +static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type); +static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2); +#else +#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type) +#define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type) +#define __Pyx_PyErr_GivenExceptionMatches2(err, type1, type2) (PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2)) +#endif +#define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception) + +/* CheckBinaryVersion.proto */ +static int __Pyx_check_binary_version(void); + +/* InitStrings.proto */ +static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); + + +/* Module declarations from 'libcpp.vector' */ + +/* Module declarations from 'libc.string' */ + +/* Module declarations from 'libcpp.string' */ + +/* Module declarations from 'reccdi.src_py.cyth.bridge_cpu' */ +static PyTypeObject *__pyx_ptype_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge = 0; +static std::vector __pyx_convert_vector_from_py_float(PyObject *); /*proto*/ +static std::vector __pyx_convert_vector_from_py_int(PyObject *); /*proto*/ +static std::string __pyx_convert_string_from_py_std__in_string(PyObject *); /*proto*/ +static PyObject *__pyx_convert_vector_to_py_double(const std::vector &); /*proto*/ +static PyObject *__pyx_convert_vector_to_py_float(const std::vector &); /*proto*/ +static PyObject *__pyx_convert_vector_to_py_int(const std::vector &); /*proto*/ +#define __Pyx_MODULE_NAME "reccdi.src_py.cyth.bridge_cpu" +extern int __pyx_module_is_main_reccdi__src_py__cyth__bridge_cpu; +int __pyx_module_is_main_reccdi__src_py__cyth__bridge_cpu = 0; + +/* Implementation of 'reccdi.src_py.cyth.bridge_cpu' */ +static PyObject *__pyx_builtin_TypeError; +static PyObject *__pyx_builtin_range; +static const char __pyx_k_coh[] = "coh"; +static const char __pyx_k_dims[] = "dims"; +static const char __pyx_k_main[] = "__main__"; +static const char __pyx_k_name[] = "__name__"; +static const char __pyx_k_test[] = "__test__"; +static const char __pyx_k_range[] = "range"; +static const char __pyx_k_config[] = "config"; +static const char __pyx_k_data_r[] = "data_r"; +static const char __pyx_k_device[] = "device"; +static const char __pyx_k_encode[] = "encode"; +static const char __pyx_k_reduce[] = "__reduce__"; +static const char __pyx_k_guess_i[] = "guess_i"; +static const char __pyx_k_guess_r[] = "guess_r"; +static const char __pyx_k_support[] = "support"; +static const char __pyx_k_PyBridge[] = "PyBridge"; +static const char __pyx_k_coh_dims[] = "coh_dims"; +static const char __pyx_k_getstate[] = "__getstate__"; +static const char __pyx_k_setstate[] = "__setstate__"; +static const char __pyx_k_TypeError[] = "TypeError"; +static const char __pyx_k_reduce_ex[] = "__reduce_ex__"; +static const char __pyx_k_reduce_cython[] = "__reduce_cython__"; +static const char __pyx_k_setstate_cython[] = "__setstate_cython__"; +static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; +static const char __pyx_k_no_default___reduce___due_to_non[] = "no default __reduce__ due to non-trivial __cinit__"; +static PyObject *__pyx_n_s_PyBridge; +static PyObject *__pyx_n_s_TypeError; +static PyObject *__pyx_n_s_cline_in_traceback; +static PyObject *__pyx_n_s_coh; +static PyObject *__pyx_n_s_coh_dims; +static PyObject *__pyx_n_s_config; +static PyObject *__pyx_n_s_data_r; +static PyObject *__pyx_n_s_device; +static PyObject *__pyx_n_s_dims; +static PyObject *__pyx_n_s_encode; +static PyObject *__pyx_n_s_getstate; +static PyObject *__pyx_n_s_guess_i; +static PyObject *__pyx_n_s_guess_r; +static PyObject *__pyx_n_s_main; +static PyObject *__pyx_n_s_name; +static PyObject *__pyx_kp_s_no_default___reduce___due_to_non; +static PyObject *__pyx_n_s_range; +static PyObject *__pyx_n_s_reduce; +static PyObject *__pyx_n_s_reduce_cython; +static PyObject *__pyx_n_s_reduce_ex; +static PyObject *__pyx_n_s_setstate; +static PyObject *__pyx_n_s_setstate_cython; +static PyObject *__pyx_n_s_support; +static PyObject *__pyx_n_s_test; +static int __pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge___cinit__(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self); /* proto */ +static void __pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_2__dealloc__(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_4start_calc_with_guess(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_guess_r, PyObject *__pyx_v_guess_i, PyObject *__pyx_v_dims, PyObject *__pyx_v_config); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_6start_calc_with_guess_support(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_guess_r, PyObject *__pyx_v_guess_i, PyObject *__pyx_v_support, PyObject *__pyx_v_dims, PyObject *__pyx_v_config); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_8start_calc_with_guess_support_coh(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_guess_r, PyObject *__pyx_v_guess_i, PyObject *__pyx_v_support, PyObject *__pyx_v_dims, PyObject *__pyx_v_coh, PyObject *__pyx_v_coh_dims, PyObject *__pyx_v_config); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_10start_calc(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_dims, PyObject *__pyx_v_config); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_12get_image_r(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_14get_image_i(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_16get_errors(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_18get_support(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_20get_coherence(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_22get_reciprocal_r(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_24get_reciprocal_i(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_26get_flow(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_28get_iter_flow(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_30cleanup(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_32__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_34__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ +static PyObject *__pyx_tp_new_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tuple_; +static PyObject *__pyx_tuple__2; +/* Late includes */ + +/* "reccdi/src_py/cyth/bridge_cpu.pyx":39 + * cdef class PyBridge: + * cdef Bridge *thisptr + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.thisptr = new Bridge() + * def __dealloc__(self): + */ + +/* Python wrapper */ +static int __pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge___cinit__(((struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge___cinit__(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self) { + int __pyx_r; + __Pyx_RefNannyDeclarations + Bridge *__pyx_t_1; + __Pyx_RefNannySetupContext("__cinit__", 0); + + /* "reccdi/src_py/cyth/bridge_cpu.pyx":40 + * cdef Bridge *thisptr + * def __cinit__(self): + * self.thisptr = new Bridge() # <<<<<<<<<<<<<< + * def __dealloc__(self): + * del self.thisptr + */ + try { + __pyx_t_1 = new Bridge(); + } catch(...) { + __Pyx_CppExn2PyErr(); + __PYX_ERR(1, 40, __pyx_L1_error) + } + __pyx_v_self->thisptr = __pyx_t_1; + + /* "reccdi/src_py/cyth/bridge_cpu.pyx":39 + * cdef class PyBridge: + * cdef Bridge *thisptr + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.thisptr = new Bridge() + * def __dealloc__(self): + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cpu.PyBridge.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "reccdi/src_py/cyth/bridge_cpu.pyx":41 + * def __cinit__(self): + * self.thisptr = new Bridge() + * def __dealloc__(self): # <<<<<<<<<<<<<< + * del self.thisptr + * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): + */ + +/* Python wrapper */ +static void __pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_3__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_3__dealloc__(PyObject *__pyx_v_self) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_2__dealloc__(((struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_2__dealloc__(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__", 0); + + /* "reccdi/src_py/cyth/bridge_cpu.pyx":42 + * self.thisptr = new Bridge() + * def __dealloc__(self): + * del self.thisptr # <<<<<<<<<<<<<< + * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): + * self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) + */ + delete __pyx_v_self->thisptr; + + /* "reccdi/src_py/cyth/bridge_cpu.pyx":41 + * def __cinit__(self): + * self.thisptr = new Bridge() + * def __dealloc__(self): # <<<<<<<<<<<<<< + * del self.thisptr + * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): + */ + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +/* "reccdi/src_py/cyth/bridge_cpu.pyx":43 + * def __dealloc__(self): + * del self.thisptr + * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): # <<<<<<<<<<<<<< + * self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) + * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_5start_calc_with_guess(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_5start_calc_with_guess(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_device = 0; + PyObject *__pyx_v_data_r = 0; + PyObject *__pyx_v_guess_r = 0; + PyObject *__pyx_v_guess_i = 0; + PyObject *__pyx_v_dims = 0; + PyObject *__pyx_v_config = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("start_calc_with_guess (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_device,&__pyx_n_s_data_r,&__pyx_n_s_guess_r,&__pyx_n_s_guess_i,&__pyx_n_s_dims,&__pyx_n_s_config,0}; + PyObject* values[6] = {0,0,0,0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_device)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_data_r)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess", 1, 6, 6, 1); __PYX_ERR(1, 43, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_guess_r)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess", 1, 6, 6, 2); __PYX_ERR(1, 43, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_guess_i)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess", 1, 6, 6, 3); __PYX_ERR(1, 43, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 4: + if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dims)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess", 1, 6, 6, 4); __PYX_ERR(1, 43, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 5: + if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_config)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess", 1, 6, 6, 5); __PYX_ERR(1, 43, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "start_calc_with_guess") < 0)) __PYX_ERR(1, 43, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 6) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + } + __pyx_v_device = values[0]; + __pyx_v_data_r = values[1]; + __pyx_v_guess_r = values[2]; + __pyx_v_guess_i = values[3]; + __pyx_v_dims = values[4]; + __pyx_v_config = values[5]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 43, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cpu.PyBridge.start_calc_with_guess", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_4start_calc_with_guess(((struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *)__pyx_v_self), __pyx_v_device, __pyx_v_data_r, __pyx_v_guess_r, __pyx_v_guess_i, __pyx_v_dims, __pyx_v_config); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_4start_calc_with_guess(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_guess_r, PyObject *__pyx_v_guess_i, PyObject *__pyx_v_dims, PyObject *__pyx_v_config) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + std::vector __pyx_t_2; + std::vector __pyx_t_3; + std::vector __pyx_t_4; + std::vector __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + std::string __pyx_t_9; + __Pyx_RefNannySetupContext("start_calc_with_guess", 0); + + /* "reccdi/src_py/cyth/bridge_cpu.pyx":44 + * del self.thisptr + * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): + * self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) # <<<<<<<<<<<<<< + * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): + * self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) + */ + __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_device); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 44, __pyx_L1_error) + __pyx_t_2 = __pyx_convert_vector_from_py_float(__pyx_v_data_r); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 44, __pyx_L1_error) + __pyx_t_3 = __pyx_convert_vector_from_py_float(__pyx_v_guess_r); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 44, __pyx_L1_error) + __pyx_t_4 = __pyx_convert_vector_from_py_float(__pyx_v_guess_i); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 44, __pyx_L1_error) + __pyx_t_5 = __pyx_convert_vector_from_py_int(__pyx_v_dims); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 44, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_config, __pyx_n_s_encode); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 44, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_7, function); + } + } + __pyx_t_6 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 44, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_9 = __pyx_convert_string_from_py_std__in_string(__pyx_t_6); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 44, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_v_self->thisptr->StartCalcWithGuess(__pyx_t_1, __pyx_t_2, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_9); + + /* "reccdi/src_py/cyth/bridge_cpu.pyx":43 + * def __dealloc__(self): + * del self.thisptr + * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): # <<<<<<<<<<<<<< + * self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) + * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cpu.PyBridge.start_calc_with_guess", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "reccdi/src_py/cyth/bridge_cpu.pyx":45 + * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): + * self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) + * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): # <<<<<<<<<<<<<< + * self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) + * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_7start_calc_with_guess_support(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_7start_calc_with_guess_support(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_device = 0; + PyObject *__pyx_v_data_r = 0; + PyObject *__pyx_v_guess_r = 0; + PyObject *__pyx_v_guess_i = 0; + PyObject *__pyx_v_support = 0; + PyObject *__pyx_v_dims = 0; + PyObject *__pyx_v_config = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("start_calc_with_guess_support (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_device,&__pyx_n_s_data_r,&__pyx_n_s_guess_r,&__pyx_n_s_guess_i,&__pyx_n_s_support,&__pyx_n_s_dims,&__pyx_n_s_config,0}; + PyObject* values[7] = {0,0,0,0,0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); + CYTHON_FALLTHROUGH; + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_device)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_data_r)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support", 1, 7, 7, 1); __PYX_ERR(1, 45, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_guess_r)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support", 1, 7, 7, 2); __PYX_ERR(1, 45, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_guess_i)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support", 1, 7, 7, 3); __PYX_ERR(1, 45, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 4: + if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_support)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support", 1, 7, 7, 4); __PYX_ERR(1, 45, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 5: + if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dims)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support", 1, 7, 7, 5); __PYX_ERR(1, 45, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 6: + if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_config)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support", 1, 7, 7, 6); __PYX_ERR(1, 45, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "start_calc_with_guess_support") < 0)) __PYX_ERR(1, 45, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 7) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + values[6] = PyTuple_GET_ITEM(__pyx_args, 6); + } + __pyx_v_device = values[0]; + __pyx_v_data_r = values[1]; + __pyx_v_guess_r = values[2]; + __pyx_v_guess_i = values[3]; + __pyx_v_support = values[4]; + __pyx_v_dims = values[5]; + __pyx_v_config = values[6]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support", 1, 7, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 45, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cpu.PyBridge.start_calc_with_guess_support", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_6start_calc_with_guess_support(((struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *)__pyx_v_self), __pyx_v_device, __pyx_v_data_r, __pyx_v_guess_r, __pyx_v_guess_i, __pyx_v_support, __pyx_v_dims, __pyx_v_config); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_6start_calc_with_guess_support(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_guess_r, PyObject *__pyx_v_guess_i, PyObject *__pyx_v_support, PyObject *__pyx_v_dims, PyObject *__pyx_v_config) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + std::vector __pyx_t_2; + std::vector __pyx_t_3; + std::vector __pyx_t_4; + std::vector __pyx_t_5; + std::vector __pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + std::string __pyx_t_10; + __Pyx_RefNannySetupContext("start_calc_with_guess_support", 0); + + /* "reccdi/src_py/cyth/bridge_cpu.pyx":46 + * self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) + * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): + * self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) # <<<<<<<<<<<<<< + * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): + * self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) + */ + __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_device); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 46, __pyx_L1_error) + __pyx_t_2 = __pyx_convert_vector_from_py_float(__pyx_v_data_r); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 46, __pyx_L1_error) + __pyx_t_3 = __pyx_convert_vector_from_py_float(__pyx_v_guess_r); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 46, __pyx_L1_error) + __pyx_t_4 = __pyx_convert_vector_from_py_float(__pyx_v_guess_i); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 46, __pyx_L1_error) + __pyx_t_5 = __pyx_convert_vector_from_py_int(__pyx_v_support); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 46, __pyx_L1_error) + __pyx_t_6 = __pyx_convert_vector_from_py_int(__pyx_v_dims); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 46, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_config, __pyx_n_s_encode); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 46, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_9 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { + __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8); + if (likely(__pyx_t_9)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); + __Pyx_INCREF(__pyx_t_9); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_8, function); + } + } + __pyx_t_7 = (__pyx_t_9) ? __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_9) : __Pyx_PyObject_CallNoArg(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 46, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_10 = __pyx_convert_string_from_py_std__in_string(__pyx_t_7); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 46, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_v_self->thisptr->StartCalcWithGuessSupport(__pyx_t_1, __pyx_t_2, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6, __pyx_t_10); + + /* "reccdi/src_py/cyth/bridge_cpu.pyx":45 + * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): + * self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) + * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): # <<<<<<<<<<<<<< + * self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) + * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cpu.PyBridge.start_calc_with_guess_support", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "reccdi/src_py/cyth/bridge_cpu.pyx":47 + * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): + * self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) + * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): # <<<<<<<<<<<<<< + * self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) + * def start_calc(self, device, data_r, dims, config): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_9start_calc_with_guess_support_coh(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_9start_calc_with_guess_support_coh(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_device = 0; + PyObject *__pyx_v_data_r = 0; + PyObject *__pyx_v_guess_r = 0; + PyObject *__pyx_v_guess_i = 0; + PyObject *__pyx_v_support = 0; + PyObject *__pyx_v_dims = 0; + PyObject *__pyx_v_coh = 0; + PyObject *__pyx_v_coh_dims = 0; + PyObject *__pyx_v_config = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("start_calc_with_guess_support_coh (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_device,&__pyx_n_s_data_r,&__pyx_n_s_guess_r,&__pyx_n_s_guess_i,&__pyx_n_s_support,&__pyx_n_s_dims,&__pyx_n_s_coh,&__pyx_n_s_coh_dims,&__pyx_n_s_config,0}; + PyObject* values[9] = {0,0,0,0,0,0,0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8); + CYTHON_FALLTHROUGH; + case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7); + CYTHON_FALLTHROUGH; + case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); + CYTHON_FALLTHROUGH; + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_device)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_data_r)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 1); __PYX_ERR(1, 47, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_guess_r)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 2); __PYX_ERR(1, 47, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_guess_i)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 3); __PYX_ERR(1, 47, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 4: + if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_support)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 4); __PYX_ERR(1, 47, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 5: + if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dims)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 5); __PYX_ERR(1, 47, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 6: + if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_coh)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 6); __PYX_ERR(1, 47, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 7: + if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_coh_dims)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 7); __PYX_ERR(1, 47, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 8: + if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_config)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 8); __PYX_ERR(1, 47, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "start_calc_with_guess_support_coh") < 0)) __PYX_ERR(1, 47, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 9) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + values[6] = PyTuple_GET_ITEM(__pyx_args, 6); + values[7] = PyTuple_GET_ITEM(__pyx_args, 7); + values[8] = PyTuple_GET_ITEM(__pyx_args, 8); + } + __pyx_v_device = values[0]; + __pyx_v_data_r = values[1]; + __pyx_v_guess_r = values[2]; + __pyx_v_guess_i = values[3]; + __pyx_v_support = values[4]; + __pyx_v_dims = values[5]; + __pyx_v_coh = values[6]; + __pyx_v_coh_dims = values[7]; + __pyx_v_config = values[8]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 47, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cpu.PyBridge.start_calc_with_guess_support_coh", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_8start_calc_with_guess_support_coh(((struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *)__pyx_v_self), __pyx_v_device, __pyx_v_data_r, __pyx_v_guess_r, __pyx_v_guess_i, __pyx_v_support, __pyx_v_dims, __pyx_v_coh, __pyx_v_coh_dims, __pyx_v_config); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_8start_calc_with_guess_support_coh(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_guess_r, PyObject *__pyx_v_guess_i, PyObject *__pyx_v_support, PyObject *__pyx_v_dims, PyObject *__pyx_v_coh, PyObject *__pyx_v_coh_dims, PyObject *__pyx_v_config) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + std::vector __pyx_t_2; + std::vector __pyx_t_3; + std::vector __pyx_t_4; + std::vector __pyx_t_5; + std::vector __pyx_t_6; + std::vector __pyx_t_7; + std::vector __pyx_t_8; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + std::string __pyx_t_12; + __Pyx_RefNannySetupContext("start_calc_with_guess_support_coh", 0); + + /* "reccdi/src_py/cyth/bridge_cpu.pyx":48 + * self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) + * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): + * self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) # <<<<<<<<<<<<<< + * def start_calc(self, device, data_r, dims, config): + * self.thisptr.StartCalc(device, data_r, dims, config.encode()) + */ + __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_device); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 48, __pyx_L1_error) + __pyx_t_2 = __pyx_convert_vector_from_py_float(__pyx_v_data_r); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 48, __pyx_L1_error) + __pyx_t_3 = __pyx_convert_vector_from_py_float(__pyx_v_guess_r); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 48, __pyx_L1_error) + __pyx_t_4 = __pyx_convert_vector_from_py_float(__pyx_v_guess_i); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 48, __pyx_L1_error) + __pyx_t_5 = __pyx_convert_vector_from_py_int(__pyx_v_support); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 48, __pyx_L1_error) + __pyx_t_6 = __pyx_convert_vector_from_py_int(__pyx_v_dims); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 48, __pyx_L1_error) + __pyx_t_7 = __pyx_convert_vector_from_py_float(__pyx_v_coh); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 48, __pyx_L1_error) + __pyx_t_8 = __pyx_convert_vector_from_py_int(__pyx_v_coh_dims); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 48, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_config, __pyx_n_s_encode); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 48, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_11 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) { + __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_10); + if (likely(__pyx_t_11)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); + __Pyx_INCREF(__pyx_t_11); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_10, function); + } + } + __pyx_t_9 = (__pyx_t_11) ? __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_11) : __Pyx_PyObject_CallNoArg(__pyx_t_10); + __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 48, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_12 = __pyx_convert_string_from_py_std__in_string(__pyx_t_9); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 48, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_v_self->thisptr->StartCalcWithGuessSupportCoh(__pyx_t_1, __pyx_t_2, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6, __pyx_t_7, __pyx_t_8, __pyx_t_12); + + /* "reccdi/src_py/cyth/bridge_cpu.pyx":47 + * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): + * self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) + * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): # <<<<<<<<<<<<<< + * self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) + * def start_calc(self, device, data_r, dims, config): + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_XDECREF(__pyx_t_11); + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cpu.PyBridge.start_calc_with_guess_support_coh", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "reccdi/src_py/cyth/bridge_cpu.pyx":49 + * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): + * self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) + * def start_calc(self, device, data_r, dims, config): # <<<<<<<<<<<<<< + * self.thisptr.StartCalc(device, data_r, dims, config.encode()) + * def get_image_r(self): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_11start_calc(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_11start_calc(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_device = 0; + PyObject *__pyx_v_data_r = 0; + PyObject *__pyx_v_dims = 0; + PyObject *__pyx_v_config = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("start_calc (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_device,&__pyx_n_s_data_r,&__pyx_n_s_dims,&__pyx_n_s_config,0}; + PyObject* values[4] = {0,0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_device)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_data_r)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc", 1, 4, 4, 1); __PYX_ERR(1, 49, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dims)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc", 1, 4, 4, 2); __PYX_ERR(1, 49, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_config)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc", 1, 4, 4, 3); __PYX_ERR(1, 49, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "start_calc") < 0)) __PYX_ERR(1, 49, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + } + __pyx_v_device = values[0]; + __pyx_v_data_r = values[1]; + __pyx_v_dims = values[2]; + __pyx_v_config = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("start_calc", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 49, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cpu.PyBridge.start_calc", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_10start_calc(((struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *)__pyx_v_self), __pyx_v_device, __pyx_v_data_r, __pyx_v_dims, __pyx_v_config); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_10start_calc(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_dims, PyObject *__pyx_v_config) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + std::vector __pyx_t_2; + std::vector __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + std::string __pyx_t_7; + __Pyx_RefNannySetupContext("start_calc", 0); + + /* "reccdi/src_py/cyth/bridge_cpu.pyx":50 + * self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) + * def start_calc(self, device, data_r, dims, config): + * self.thisptr.StartCalc(device, data_r, dims, config.encode()) # <<<<<<<<<<<<<< + * def get_image_r(self): + * return self.thisptr.GetImageR() + */ + __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_device); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 50, __pyx_L1_error) + __pyx_t_2 = __pyx_convert_vector_from_py_float(__pyx_v_data_r); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 50, __pyx_L1_error) + __pyx_t_3 = __pyx_convert_vector_from_py_int(__pyx_v_dims); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 50, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_config, __pyx_n_s_encode); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 50, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + } + } + __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 50, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_7 = __pyx_convert_string_from_py_std__in_string(__pyx_t_4); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 50, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_self->thisptr->StartCalc(__pyx_t_1, __pyx_t_2, __pyx_t_3, __pyx_t_7); + + /* "reccdi/src_py/cyth/bridge_cpu.pyx":49 + * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): + * self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) + * def start_calc(self, device, data_r, dims, config): # <<<<<<<<<<<<<< + * self.thisptr.StartCalc(device, data_r, dims, config.encode()) + * def get_image_r(self): + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cpu.PyBridge.start_calc", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "reccdi/src_py/cyth/bridge_cpu.pyx":51 + * def start_calc(self, device, data_r, dims, config): + * self.thisptr.StartCalc(device, data_r, dims, config.encode()) + * def get_image_r(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetImageR() + * def get_image_i(self): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_13get_image_r(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_13get_image_r(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_image_r (wrapper)", 0); + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_12get_image_r(((struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_12get_image_r(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("get_image_r", 0); + + /* "reccdi/src_py/cyth/bridge_cpu.pyx":52 + * self.thisptr.StartCalc(device, data_r, dims, config.encode()) + * def get_image_r(self): + * return self.thisptr.GetImageR() # <<<<<<<<<<<<<< + * def get_image_i(self): + * return self.thisptr.GetImageI() + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_self->thisptr->GetImageR()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 52, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "reccdi/src_py/cyth/bridge_cpu.pyx":51 + * def start_calc(self, device, data_r, dims, config): + * self.thisptr.StartCalc(device, data_r, dims, config.encode()) + * def get_image_r(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetImageR() + * def get_image_i(self): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cpu.PyBridge.get_image_r", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "reccdi/src_py/cyth/bridge_cpu.pyx":53 + * def get_image_r(self): + * return self.thisptr.GetImageR() + * def get_image_i(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetImageI() + * def get_errors(self): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_15get_image_i(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_15get_image_i(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_image_i (wrapper)", 0); + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_14get_image_i(((struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_14get_image_i(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("get_image_i", 0); + + /* "reccdi/src_py/cyth/bridge_cpu.pyx":54 + * return self.thisptr.GetImageR() + * def get_image_i(self): + * return self.thisptr.GetImageI() # <<<<<<<<<<<<<< + * def get_errors(self): + * return self.thisptr.GetErrors() + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_self->thisptr->GetImageI()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 54, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "reccdi/src_py/cyth/bridge_cpu.pyx":53 + * def get_image_r(self): + * return self.thisptr.GetImageR() + * def get_image_i(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetImageI() + * def get_errors(self): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cpu.PyBridge.get_image_i", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "reccdi/src_py/cyth/bridge_cpu.pyx":55 + * def get_image_i(self): + * return self.thisptr.GetImageI() + * def get_errors(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetErrors() + * def get_support(self): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_17get_errors(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_17get_errors(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_errors (wrapper)", 0); + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_16get_errors(((struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_16get_errors(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("get_errors", 0); + + /* "reccdi/src_py/cyth/bridge_cpu.pyx":56 + * return self.thisptr.GetImageI() + * def get_errors(self): + * return self.thisptr.GetErrors() # <<<<<<<<<<<<<< + * def get_support(self): + * return self.thisptr.GetSupportV() + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_self->thisptr->GetErrors()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 56, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "reccdi/src_py/cyth/bridge_cpu.pyx":55 + * def get_image_i(self): + * return self.thisptr.GetImageI() + * def get_errors(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetErrors() + * def get_support(self): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cpu.PyBridge.get_errors", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "reccdi/src_py/cyth/bridge_cpu.pyx":57 + * def get_errors(self): + * return self.thisptr.GetErrors() + * def get_support(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetSupportV() + * def get_coherence(self): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_19get_support(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_19get_support(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_support (wrapper)", 0); + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_18get_support(((struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_18get_support(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("get_support", 0); + + /* "reccdi/src_py/cyth/bridge_cpu.pyx":58 + * return self.thisptr.GetErrors() + * def get_support(self): + * return self.thisptr.GetSupportV() # <<<<<<<<<<<<<< + * def get_coherence(self): + * return self.thisptr.GetCoherenceV() + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_convert_vector_to_py_float(__pyx_v_self->thisptr->GetSupportV()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 58, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "reccdi/src_py/cyth/bridge_cpu.pyx":57 + * def get_errors(self): + * return self.thisptr.GetErrors() + * def get_support(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetSupportV() + * def get_coherence(self): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cpu.PyBridge.get_support", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "reccdi/src_py/cyth/bridge_cpu.pyx":59 + * def get_support(self): + * return self.thisptr.GetSupportV() + * def get_coherence(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetCoherenceV() + * def get_reciprocal_r(self): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_21get_coherence(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_21get_coherence(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_coherence (wrapper)", 0); + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_20get_coherence(((struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_20get_coherence(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("get_coherence", 0); + + /* "reccdi/src_py/cyth/bridge_cpu.pyx":60 + * return self.thisptr.GetSupportV() + * def get_coherence(self): + * return self.thisptr.GetCoherenceV() # <<<<<<<<<<<<<< + * def get_reciprocal_r(self): + * return self.thisptr.GetReciprocalR() + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_self->thisptr->GetCoherenceV()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 60, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "reccdi/src_py/cyth/bridge_cpu.pyx":59 + * def get_support(self): + * return self.thisptr.GetSupportV() + * def get_coherence(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetCoherenceV() + * def get_reciprocal_r(self): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cpu.PyBridge.get_coherence", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "reccdi/src_py/cyth/bridge_cpu.pyx":61 + * def get_coherence(self): + * return self.thisptr.GetCoherenceV() + * def get_reciprocal_r(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetReciprocalR() + * def get_reciprocal_i(self): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_23get_reciprocal_r(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_23get_reciprocal_r(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_reciprocal_r (wrapper)", 0); + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_22get_reciprocal_r(((struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_22get_reciprocal_r(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("get_reciprocal_r", 0); + + /* "reccdi/src_py/cyth/bridge_cpu.pyx":62 + * return self.thisptr.GetCoherenceV() + * def get_reciprocal_r(self): + * return self.thisptr.GetReciprocalR() # <<<<<<<<<<<<<< + * def get_reciprocal_i(self): + * return self.thisptr.GetReciprocalI() + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_self->thisptr->GetReciprocalR()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 62, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "reccdi/src_py/cyth/bridge_cpu.pyx":61 + * def get_coherence(self): + * return self.thisptr.GetCoherenceV() + * def get_reciprocal_r(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetReciprocalR() + * def get_reciprocal_i(self): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cpu.PyBridge.get_reciprocal_r", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "reccdi/src_py/cyth/bridge_cpu.pyx":63 + * def get_reciprocal_r(self): + * return self.thisptr.GetReciprocalR() + * def get_reciprocal_i(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetReciprocalI() + * def get_flow(self): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_25get_reciprocal_i(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_25get_reciprocal_i(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_reciprocal_i (wrapper)", 0); + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_24get_reciprocal_i(((struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_24get_reciprocal_i(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("get_reciprocal_i", 0); + + /* "reccdi/src_py/cyth/bridge_cpu.pyx":64 + * return self.thisptr.GetReciprocalR() + * def get_reciprocal_i(self): + * return self.thisptr.GetReciprocalI() # <<<<<<<<<<<<<< + * def get_flow(self): + * return self.thisptr.GetFlowV() + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_self->thisptr->GetReciprocalI()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 64, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "reccdi/src_py/cyth/bridge_cpu.pyx":63 + * def get_reciprocal_r(self): + * return self.thisptr.GetReciprocalR() + * def get_reciprocal_i(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetReciprocalI() + * def get_flow(self): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cpu.PyBridge.get_reciprocal_i", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "reccdi/src_py/cyth/bridge_cpu.pyx":65 + * def get_reciprocal_i(self): + * return self.thisptr.GetReciprocalI() + * def get_flow(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetFlowV() + * def get_iter_flow(self): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_27get_flow(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_27get_flow(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_flow (wrapper)", 0); + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_26get_flow(((struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_26get_flow(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("get_flow", 0); + + /* "reccdi/src_py/cyth/bridge_cpu.pyx":66 + * return self.thisptr.GetReciprocalI() + * def get_flow(self): + * return self.thisptr.GetFlowV() # <<<<<<<<<<<<<< + * def get_iter_flow(self): + * return self.thisptr.GetIterFlowV() + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_convert_vector_to_py_int(__pyx_v_self->thisptr->GetFlowV()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 66, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "reccdi/src_py/cyth/bridge_cpu.pyx":65 + * def get_reciprocal_i(self): + * return self.thisptr.GetReciprocalI() + * def get_flow(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetFlowV() + * def get_iter_flow(self): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cpu.PyBridge.get_flow", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "reccdi/src_py/cyth/bridge_cpu.pyx":67 + * def get_flow(self): + * return self.thisptr.GetFlowV() + * def get_iter_flow(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetIterFlowV() + * def cleanup(self): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_29get_iter_flow(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_29get_iter_flow(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_iter_flow (wrapper)", 0); + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_28get_iter_flow(((struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_28get_iter_flow(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("get_iter_flow", 0); + + /* "reccdi/src_py/cyth/bridge_cpu.pyx":68 + * return self.thisptr.GetFlowV() + * def get_iter_flow(self): + * return self.thisptr.GetIterFlowV() # <<<<<<<<<<<<<< + * def cleanup(self): + * self.thisptr.Cleanup() + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_convert_vector_to_py_int(__pyx_v_self->thisptr->GetIterFlowV()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 68, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "reccdi/src_py/cyth/bridge_cpu.pyx":67 + * def get_flow(self): + * return self.thisptr.GetFlowV() + * def get_iter_flow(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetIterFlowV() + * def cleanup(self): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cpu.PyBridge.get_iter_flow", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "reccdi/src_py/cyth/bridge_cpu.pyx":69 + * def get_iter_flow(self): + * return self.thisptr.GetIterFlowV() + * def cleanup(self): # <<<<<<<<<<<<<< + * self.thisptr.Cleanup() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_31cleanup(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_31cleanup(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("cleanup (wrapper)", 0); + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_30cleanup(((struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_30cleanup(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("cleanup", 0); + + /* "reccdi/src_py/cyth/bridge_cpu.pyx":70 + * return self.thisptr.GetIterFlowV() + * def cleanup(self): + * self.thisptr.Cleanup() # <<<<<<<<<<<<<< + * + * + */ + __pyx_v_self->thisptr->Cleanup(); + + /* "reccdi/src_py/cyth/bridge_cpu.pyx":69 + * def get_iter_flow(self): + * return self.thisptr.GetIterFlowV() + * def cleanup(self): # <<<<<<<<<<<<<< + * self.thisptr.Cleanup() + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "(tree fragment)":1 + * def __reduce_cython__(self): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_33__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_33__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_32__reduce_cython__(((struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_32__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("__reduce_cython__", 0); + + /* "(tree fragment)":2 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple_, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(0, 2, __pyx_L1_error) + + /* "(tree fragment)":1 + * def __reduce_cython__(self): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cpu.PyBridge.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "(tree fragment)":3 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_35__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_35__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_34__setstate_cython__(((struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_34__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("__setstate_cython__", 0); + + /* "(tree fragment)":4 + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + */ + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(0, 4, __pyx_L1_error) + + /* "(tree fragment)":3 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cpu.PyBridge.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "vector.from_py":45 + * + * @cname("__pyx_convert_vector_from_py_float") + * cdef vector[X] __pyx_convert_vector_from_py_float(object o) except *: # <<<<<<<<<<<<<< + * cdef vector[X] v + * for item in o: + */ + +static std::vector __pyx_convert_vector_from_py_float(PyObject *__pyx_v_o) { + std::vector __pyx_v_v; + PyObject *__pyx_v_item = NULL; + std::vector __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + Py_ssize_t __pyx_t_2; + PyObject *(*__pyx_t_3)(PyObject *); + PyObject *__pyx_t_4 = NULL; + float __pyx_t_5; + __Pyx_RefNannySetupContext("__pyx_convert_vector_from_py_float", 0); + + /* "vector.from_py":47 + * cdef vector[X] __pyx_convert_vector_from_py_float(object o) except *: + * cdef vector[X] v + * for item in o: # <<<<<<<<<<<<<< + * v.push_back(item) + * return v + */ + if (likely(PyList_CheckExact(__pyx_v_o)) || PyTuple_CheckExact(__pyx_v_o)) { + __pyx_t_1 = __pyx_v_o; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; + __pyx_t_3 = NULL; + } else { + __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_o); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 47, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 47, __pyx_L1_error) + } + for (;;) { + if (likely(!__pyx_t_3)) { + if (likely(PyList_CheckExact(__pyx_t_1))) { + if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 47, __pyx_L1_error) + #else + __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 47, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #endif + } else { + if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 47, __pyx_L1_error) + #else + __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 47, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #endif + } + } else { + __pyx_t_4 = __pyx_t_3(__pyx_t_1); + if (unlikely(!__pyx_t_4)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); + else __PYX_ERR(0, 47, __pyx_L1_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_4); + } + __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_4); + __pyx_t_4 = 0; + + /* "vector.from_py":48 + * cdef vector[X] v + * for item in o: + * v.push_back(item) # <<<<<<<<<<<<<< + * return v + * + */ + __pyx_t_5 = __pyx_PyFloat_AsFloat(__pyx_v_item); if (unlikely((__pyx_t_5 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 48, __pyx_L1_error) + __pyx_v_v.push_back(((float)__pyx_t_5)); + + /* "vector.from_py":47 + * cdef vector[X] __pyx_convert_vector_from_py_float(object o) except *: + * cdef vector[X] v + * for item in o: # <<<<<<<<<<<<<< + * v.push_back(item) + * return v + */ + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "vector.from_py":49 + * for item in o: + * v.push_back(item) + * return v # <<<<<<<<<<<<<< + * + * + */ + __pyx_r = __pyx_v_v; + goto __pyx_L0; + + /* "vector.from_py":45 + * + * @cname("__pyx_convert_vector_from_py_float") + * cdef vector[X] __pyx_convert_vector_from_py_float(object o) except *: # <<<<<<<<<<<<<< + * cdef vector[X] v + * for item in o: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("vector.from_py.__pyx_convert_vector_from_py_float", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_pretend_to_initialize(&__pyx_r); + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_item); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static std::vector __pyx_convert_vector_from_py_int(PyObject *__pyx_v_o) { + std::vector __pyx_v_v; + PyObject *__pyx_v_item = NULL; + std::vector __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + Py_ssize_t __pyx_t_2; + PyObject *(*__pyx_t_3)(PyObject *); + PyObject *__pyx_t_4 = NULL; + int __pyx_t_5; + __Pyx_RefNannySetupContext("__pyx_convert_vector_from_py_int", 0); + + /* "vector.from_py":47 + * cdef vector[X] __pyx_convert_vector_from_py_int(object o) except *: + * cdef vector[X] v + * for item in o: # <<<<<<<<<<<<<< + * v.push_back(item) + * return v + */ + if (likely(PyList_CheckExact(__pyx_v_o)) || PyTuple_CheckExact(__pyx_v_o)) { + __pyx_t_1 = __pyx_v_o; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; + __pyx_t_3 = NULL; + } else { + __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_o); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 47, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 47, __pyx_L1_error) + } + for (;;) { + if (likely(!__pyx_t_3)) { + if (likely(PyList_CheckExact(__pyx_t_1))) { + if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 47, __pyx_L1_error) + #else + __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 47, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #endif + } else { + if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 47, __pyx_L1_error) + #else + __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 47, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #endif + } + } else { + __pyx_t_4 = __pyx_t_3(__pyx_t_1); + if (unlikely(!__pyx_t_4)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); + else __PYX_ERR(0, 47, __pyx_L1_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_4); + } + __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_4); + __pyx_t_4 = 0; + + /* "vector.from_py":48 + * cdef vector[X] v + * for item in o: + * v.push_back(item) # <<<<<<<<<<<<<< + * return v + * + */ + __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_v_item); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 48, __pyx_L1_error) + __pyx_v_v.push_back(((int)__pyx_t_5)); + + /* "vector.from_py":47 + * cdef vector[X] __pyx_convert_vector_from_py_int(object o) except *: + * cdef vector[X] v + * for item in o: # <<<<<<<<<<<<<< + * v.push_back(item) + * return v + */ + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "vector.from_py":49 + * for item in o: + * v.push_back(item) + * return v # <<<<<<<<<<<<<< + * + * + */ + __pyx_r = __pyx_v_v; + goto __pyx_L0; + + /* "vector.from_py":45 + * + * @cname("__pyx_convert_vector_from_py_int") + * cdef vector[X] __pyx_convert_vector_from_py_int(object o) except *: # <<<<<<<<<<<<<< + * cdef vector[X] v + * for item in o: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("vector.from_py.__pyx_convert_vector_from_py_int", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_pretend_to_initialize(&__pyx_r); + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_item); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "string.from_py":13 + * + * @cname("__pyx_convert_string_from_py_std__in_string") + * cdef string __pyx_convert_string_from_py_std__in_string(object o) except *: # <<<<<<<<<<<<<< + * cdef Py_ssize_t length + * cdef const char* data = __Pyx_PyObject_AsStringAndSize(o, &length) + */ + +static std::string __pyx_convert_string_from_py_std__in_string(PyObject *__pyx_v_o) { + Py_ssize_t __pyx_v_length; + char const *__pyx_v_data; + std::string __pyx_r; + __Pyx_RefNannyDeclarations + char const *__pyx_t_1; + __Pyx_RefNannySetupContext("__pyx_convert_string_from_py_std__in_string", 0); + + /* "string.from_py":15 + * cdef string __pyx_convert_string_from_py_std__in_string(object o) except *: + * cdef Py_ssize_t length + * cdef const char* data = __Pyx_PyObject_AsStringAndSize(o, &length) # <<<<<<<<<<<<<< + * return string(data, length) + * + */ + __pyx_t_1 = __Pyx_PyObject_AsStringAndSize(__pyx_v_o, (&__pyx_v_length)); if (unlikely(__pyx_t_1 == ((char const *)NULL))) __PYX_ERR(0, 15, __pyx_L1_error) + __pyx_v_data = __pyx_t_1; + + /* "string.from_py":16 + * cdef Py_ssize_t length + * cdef const char* data = __Pyx_PyObject_AsStringAndSize(o, &length) + * return string(data, length) # <<<<<<<<<<<<<< + * + * + */ + __pyx_r = std::string(__pyx_v_data, __pyx_v_length); + goto __pyx_L0; + + /* "string.from_py":13 + * + * @cname("__pyx_convert_string_from_py_std__in_string") + * cdef string __pyx_convert_string_from_py_std__in_string(object o) except *: # <<<<<<<<<<<<<< + * cdef Py_ssize_t length + * cdef const char* data = __Pyx_PyObject_AsStringAndSize(o, &length) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("string.from_py.__pyx_convert_string_from_py_std__in_string", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_pretend_to_initialize(&__pyx_r); + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "vector.to_py":60 + * + * @cname("__pyx_convert_vector_to_py_double") + * cdef object __pyx_convert_vector_to_py_double(vector[X]& v): # <<<<<<<<<<<<<< + * return [v[i] for i in range(v.size())] + * + */ + +static PyObject *__pyx_convert_vector_to_py_double(const std::vector &__pyx_v_v) { + size_t __pyx_v_i; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + size_t __pyx_t_2; + size_t __pyx_t_3; + size_t __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + __Pyx_RefNannySetupContext("__pyx_convert_vector_to_py_double", 0); + + /* "vector.to_py":61 + * @cname("__pyx_convert_vector_to_py_double") + * cdef object __pyx_convert_vector_to_py_double(vector[X]& v): + * return [v[i] for i in range(v.size())] # <<<<<<<<<<<<<< + * + * + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __pyx_v_v.size(); + __pyx_t_3 = __pyx_t_2; + for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { + __pyx_v_i = __pyx_t_4; + __pyx_t_5 = PyFloat_FromDouble((__pyx_v_v[__pyx_v_i])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "vector.to_py":60 + * + * @cname("__pyx_convert_vector_to_py_double") + * cdef object __pyx_convert_vector_to_py_double(vector[X]& v): # <<<<<<<<<<<<<< + * return [v[i] for i in range(v.size())] + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("vector.to_py.__pyx_convert_vector_to_py_double", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_convert_vector_to_py_float(const std::vector &__pyx_v_v) { + size_t __pyx_v_i; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + size_t __pyx_t_2; + size_t __pyx_t_3; + size_t __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + __Pyx_RefNannySetupContext("__pyx_convert_vector_to_py_float", 0); + + /* "vector.to_py":61 + * @cname("__pyx_convert_vector_to_py_float") + * cdef object __pyx_convert_vector_to_py_float(vector[X]& v): + * return [v[i] for i in range(v.size())] # <<<<<<<<<<<<<< + * + * + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __pyx_v_v.size(); + __pyx_t_3 = __pyx_t_2; + for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { + __pyx_v_i = __pyx_t_4; + __pyx_t_5 = PyFloat_FromDouble((__pyx_v_v[__pyx_v_i])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "vector.to_py":60 + * + * @cname("__pyx_convert_vector_to_py_float") + * cdef object __pyx_convert_vector_to_py_float(vector[X]& v): # <<<<<<<<<<<<<< + * return [v[i] for i in range(v.size())] + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("vector.to_py.__pyx_convert_vector_to_py_float", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_convert_vector_to_py_int(const std::vector &__pyx_v_v) { + size_t __pyx_v_i; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + size_t __pyx_t_2; + size_t __pyx_t_3; + size_t __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + __Pyx_RefNannySetupContext("__pyx_convert_vector_to_py_int", 0); + + /* "vector.to_py":61 + * @cname("__pyx_convert_vector_to_py_int") + * cdef object __pyx_convert_vector_to_py_int(vector[X]& v): + * return [v[i] for i in range(v.size())] # <<<<<<<<<<<<<< + * + * + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __pyx_v_v.size(); + __pyx_t_3 = __pyx_t_2; + for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { + __pyx_v_i = __pyx_t_4; + __pyx_t_5 = __Pyx_PyInt_From_int((__pyx_v_v[__pyx_v_i])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "vector.to_py":60 + * + * @cname("__pyx_convert_vector_to_py_int") + * cdef object __pyx_convert_vector_to_py_int(vector[X]& v): # <<<<<<<<<<<<<< + * return [v[i] for i in range(v.size())] + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("vector.to_py.__pyx_convert_vector_to_py_int", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_tp_new_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { + PyObject *o; + if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { + o = (*t->tp_alloc)(t, 0); + } else { + o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); + } + if (unlikely(!o)) return 0; + if (unlikely(__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad; + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} + +static void __pyx_tp_dealloc_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + #endif + { + PyObject *etype, *eval, *etb; + PyErr_Fetch(&etype, &eval, &etb); + ++Py_REFCNT(o); + __pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_3__dealloc__(o); + --Py_REFCNT(o); + PyErr_Restore(etype, eval, etb); + } + (*Py_TYPE(o)->tp_free)(o); +} + +static PyMethodDef __pyx_methods_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge[] = { + {"start_calc_with_guess", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_5start_calc_with_guess, METH_VARARGS|METH_KEYWORDS, 0}, + {"start_calc_with_guess_support", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_7start_calc_with_guess_support, METH_VARARGS|METH_KEYWORDS, 0}, + {"start_calc_with_guess_support_coh", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_9start_calc_with_guess_support_coh, METH_VARARGS|METH_KEYWORDS, 0}, + {"start_calc", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_11start_calc, METH_VARARGS|METH_KEYWORDS, 0}, + {"get_image_r", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_13get_image_r, METH_NOARGS, 0}, + {"get_image_i", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_15get_image_i, METH_NOARGS, 0}, + {"get_errors", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_17get_errors, METH_NOARGS, 0}, + {"get_support", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_19get_support, METH_NOARGS, 0}, + {"get_coherence", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_21get_coherence, METH_NOARGS, 0}, + {"get_reciprocal_r", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_23get_reciprocal_r, METH_NOARGS, 0}, + {"get_reciprocal_i", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_25get_reciprocal_i, METH_NOARGS, 0}, + {"get_flow", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_27get_flow, METH_NOARGS, 0}, + {"get_iter_flow", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_29get_iter_flow, METH_NOARGS, 0}, + {"cleanup", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_31cleanup, METH_NOARGS, 0}, + {"__reduce_cython__", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_33__reduce_cython__, METH_NOARGS, 0}, + {"__setstate_cython__", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_35__setstate_cython__, METH_O, 0}, + {0, 0, 0, 0} +}; + +static PyTypeObject __pyx_type_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge = { + PyVarObject_HEAD_INIT(0, 0) + "reccdi.src_py.cyth.bridge_cpu.PyBridge", /*tp_name*/ + sizeof(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge, /*tp_dealloc*/ + 0, /*tp_print*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + 0, /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 + 0, /*tp_vectorcall*/ + #endif +}; + +static PyMethodDef __pyx_methods[] = { + {0, 0, 0, 0} +}; + +#if PY_MAJOR_VERSION >= 3 +#if CYTHON_PEP489_MULTI_PHASE_INIT +static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/ +static int __pyx_pymod_exec_bridge_cpu(PyObject* module); /*proto*/ +static PyModuleDef_Slot __pyx_moduledef_slots[] = { + {Py_mod_create, (void*)__pyx_pymod_create}, + {Py_mod_exec, (void*)__pyx_pymod_exec_bridge_cpu}, + {0, NULL} +}; +#endif + +static struct PyModuleDef __pyx_moduledef = { + PyModuleDef_HEAD_INIT, + "bridge_cpu", + 0, /* m_doc */ + #if CYTHON_PEP489_MULTI_PHASE_INIT + 0, /* m_size */ + #else + -1, /* m_size */ + #endif + __pyx_methods /* m_methods */, + #if CYTHON_PEP489_MULTI_PHASE_INIT + __pyx_moduledef_slots, /* m_slots */ + #else + NULL, /* m_reload */ + #endif + NULL, /* m_traverse */ + NULL, /* m_clear */ + NULL /* m_free */ +}; +#endif +#ifndef CYTHON_SMALL_CODE +#if defined(__clang__) + #define CYTHON_SMALL_CODE +#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) + #define CYTHON_SMALL_CODE __attribute__((cold)) +#else + #define CYTHON_SMALL_CODE +#endif +#endif + +static __Pyx_StringTabEntry __pyx_string_tab[] = { + {&__pyx_n_s_PyBridge, __pyx_k_PyBridge, sizeof(__pyx_k_PyBridge), 0, 0, 1, 1}, + {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1}, + {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, + {&__pyx_n_s_coh, __pyx_k_coh, sizeof(__pyx_k_coh), 0, 0, 1, 1}, + {&__pyx_n_s_coh_dims, __pyx_k_coh_dims, sizeof(__pyx_k_coh_dims), 0, 0, 1, 1}, + {&__pyx_n_s_config, __pyx_k_config, sizeof(__pyx_k_config), 0, 0, 1, 1}, + {&__pyx_n_s_data_r, __pyx_k_data_r, sizeof(__pyx_k_data_r), 0, 0, 1, 1}, + {&__pyx_n_s_device, __pyx_k_device, sizeof(__pyx_k_device), 0, 0, 1, 1}, + {&__pyx_n_s_dims, __pyx_k_dims, sizeof(__pyx_k_dims), 0, 0, 1, 1}, + {&__pyx_n_s_encode, __pyx_k_encode, sizeof(__pyx_k_encode), 0, 0, 1, 1}, + {&__pyx_n_s_getstate, __pyx_k_getstate, sizeof(__pyx_k_getstate), 0, 0, 1, 1}, + {&__pyx_n_s_guess_i, __pyx_k_guess_i, sizeof(__pyx_k_guess_i), 0, 0, 1, 1}, + {&__pyx_n_s_guess_r, __pyx_k_guess_r, sizeof(__pyx_k_guess_r), 0, 0, 1, 1}, + {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1}, + {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, + {&__pyx_kp_s_no_default___reduce___due_to_non, __pyx_k_no_default___reduce___due_to_non, sizeof(__pyx_k_no_default___reduce___due_to_non), 0, 0, 1, 0}, + {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, + {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1}, + {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1}, + {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1}, + {&__pyx_n_s_setstate, __pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 0, 1, 1}, + {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1}, + {&__pyx_n_s_support, __pyx_k_support, sizeof(__pyx_k_support), 0, 0, 1, 1}, + {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, + {0, 0, 0, 0, 0, 0, 0} +}; +static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { + __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(0, 2, __pyx_L1_error) + __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 61, __pyx_L1_error) + return 0; + __pyx_L1_error:; + return -1; +} + +static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); + + /* "(tree fragment)":2 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + __pyx_tuple_ = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple_)) __PYX_ERR(0, 2, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple_); + __Pyx_GIVEREF(__pyx_tuple_); + + /* "(tree fragment)":4 + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + */ + __pyx_tuple__2 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(0, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__2); + __Pyx_GIVEREF(__pyx_tuple__2); + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_RefNannyFinishContext(); + return -1; +} + +static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) { + if (__Pyx_InitStrings(__pyx_string_tab) < 0) __PYX_ERR(1, 1, __pyx_L1_error); + return 0; + __pyx_L1_error:; + return -1; +} + +static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(void); /*proto*/ + +static int __Pyx_modinit_global_init_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0); + /*--- Global init code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_variable_export_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0); + /*--- Variable export code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_function_export_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0); + /*--- Function export code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_type_init_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); + /*--- Type init code ---*/ + if (PyType_Ready(&__pyx_type_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge) < 0) __PYX_ERR(1, 37, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + __pyx_type_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge.tp_dictoffset && __pyx_type_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyBridge, (PyObject *)&__pyx_type_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge) < 0) __PYX_ERR(1, 37, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge) < 0) __PYX_ERR(1, 37, __pyx_L1_error) + __pyx_ptype_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge = &__pyx_type_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge; + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_RefNannyFinishContext(); + return -1; +} + +static int __Pyx_modinit_type_import_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); + /*--- Type import code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_variable_import_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0); + /*--- Variable import code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_function_import_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0); + /*--- Function import code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + + +#if PY_MAJOR_VERSION < 3 +#ifdef CYTHON_NO_PYINIT_EXPORT +#define __Pyx_PyMODINIT_FUNC void +#else +#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC +#endif +#else +#ifdef CYTHON_NO_PYINIT_EXPORT +#define __Pyx_PyMODINIT_FUNC PyObject * +#else +#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC +#endif +#endif + + +#if PY_MAJOR_VERSION < 3 +__Pyx_PyMODINIT_FUNC initbridge_cpu(void) CYTHON_SMALL_CODE; /*proto*/ +__Pyx_PyMODINIT_FUNC initbridge_cpu(void) +#else +__Pyx_PyMODINIT_FUNC PyInit_bridge_cpu(void) CYTHON_SMALL_CODE; /*proto*/ +__Pyx_PyMODINIT_FUNC PyInit_bridge_cpu(void) +#if CYTHON_PEP489_MULTI_PHASE_INIT +{ + return PyModuleDef_Init(&__pyx_moduledef); +} +static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) { + #if PY_VERSION_HEX >= 0x030700A1 + static PY_INT64_T main_interpreter_id = -1; + PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp); + if (main_interpreter_id == -1) { + main_interpreter_id = current_id; + return (unlikely(current_id == -1)) ? -1 : 0; + } else if (unlikely(main_interpreter_id != current_id)) + #else + static PyInterpreterState *main_interpreter = NULL; + PyInterpreterState *current_interpreter = PyThreadState_Get()->interp; + if (!main_interpreter) { + main_interpreter = current_interpreter; + } else if (unlikely(main_interpreter != current_interpreter)) + #endif + { + PyErr_SetString( + PyExc_ImportError, + "Interpreter change detected - this module can only be loaded into one interpreter per process."); + return -1; + } + return 0; +} +static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name, int allow_none) { + PyObject *value = PyObject_GetAttrString(spec, from_name); + int result = 0; + if (likely(value)) { + if (allow_none || value != Py_None) { + result = PyDict_SetItemString(moddict, to_name, value); + } + Py_DECREF(value); + } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) { + PyErr_Clear(); + } else { + result = -1; + } + return result; +} +static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, CYTHON_UNUSED PyModuleDef *def) { + PyObject *module = NULL, *moddict, *modname; + if (__Pyx_check_single_interpreter()) + return NULL; + if (__pyx_m) + return __Pyx_NewRef(__pyx_m); + modname = PyObject_GetAttrString(spec, "name"); + if (unlikely(!modname)) goto bad; + module = PyModule_NewObject(modname); + Py_DECREF(modname); + if (unlikely(!module)) goto bad; + moddict = PyModule_GetDict(module); + if (unlikely(!moddict)) goto bad; + if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__", 1) < 0)) goto bad; + if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__", 1) < 0)) goto bad; + if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__", 1) < 0)) goto bad; + if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__", 0) < 0)) goto bad; + return module; +bad: + Py_XDECREF(module); + return NULL; +} + + +static CYTHON_SMALL_CODE int __pyx_pymod_exec_bridge_cpu(PyObject *__pyx_pyinit_module) +#endif +#endif +{ + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannyDeclarations + #if CYTHON_PEP489_MULTI_PHASE_INIT + if (__pyx_m) { + if (__pyx_m == __pyx_pyinit_module) return 0; + PyErr_SetString(PyExc_RuntimeError, "Module 'bridge_cpu' has already been imported. Re-initialisation is not supported."); + return -1; + } + #elif PY_MAJOR_VERSION >= 3 + if (__pyx_m) return __Pyx_NewRef(__pyx_m); + #endif + #if CYTHON_REFNANNY +__Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny"); +if (!__Pyx_RefNanny) { + PyErr_Clear(); + __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny"); + if (!__Pyx_RefNanny) + Py_FatalError("failed to import 'refnanny' module"); +} +#endif + __Pyx_RefNannySetupContext("__Pyx_PyMODINIT_FUNC PyInit_bridge_cpu(void)", 0); + if (__Pyx_check_binary_version() < 0) __PYX_ERR(1, 1, __pyx_L1_error) + #ifdef __Pxy_PyFrame_Initialize_Offsets + __Pxy_PyFrame_Initialize_Offsets(); + #endif + __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) __PYX_ERR(1, 1, __pyx_L1_error) + __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(1, 1, __pyx_L1_error) + __pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_unicode)) __PYX_ERR(1, 1, __pyx_L1_error) + #ifdef __Pyx_CyFunction_USED + if (__pyx_CyFunction_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error) + #endif + #ifdef __Pyx_FusedFunction_USED + if (__pyx_FusedFunction_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error) + #endif + #ifdef __Pyx_Coroutine_USED + if (__pyx_Coroutine_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error) + #endif + #ifdef __Pyx_Generator_USED + if (__pyx_Generator_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error) + #endif + #ifdef __Pyx_AsyncGen_USED + if (__pyx_AsyncGen_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error) + #endif + #ifdef __Pyx_StopAsyncIteration_USED + if (__pyx_StopAsyncIteration_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error) + #endif + /*--- Library function declarations ---*/ + /*--- Threads initialization code ---*/ + #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS + #ifdef WITH_THREAD /* Python build with threading support? */ + PyEval_InitThreads(); + #endif + #endif + /*--- Module creation code ---*/ + #if CYTHON_PEP489_MULTI_PHASE_INIT + __pyx_m = __pyx_pyinit_module; + Py_INCREF(__pyx_m); + #else + #if PY_MAJOR_VERSION < 3 + __pyx_m = Py_InitModule4("bridge_cpu", __pyx_methods, 0, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m); + #else + __pyx_m = PyModule_Create(&__pyx_moduledef); + #endif + if (unlikely(!__pyx_m)) __PYX_ERR(1, 1, __pyx_L1_error) + #endif + __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) __PYX_ERR(1, 1, __pyx_L1_error) + Py_INCREF(__pyx_d); + __pyx_b = PyImport_AddModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_b)) __PYX_ERR(1, 1, __pyx_L1_error) + Py_INCREF(__pyx_b); + __pyx_cython_runtime = PyImport_AddModule((char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(1, 1, __pyx_L1_error) + Py_INCREF(__pyx_cython_runtime); + if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) __PYX_ERR(1, 1, __pyx_L1_error); + /*--- Initialize various global constants etc. ---*/ + if (__Pyx_InitGlobals() < 0) __PYX_ERR(1, 1, __pyx_L1_error) + #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT) + if (__Pyx_init_sys_getdefaultencoding_params() < 0) __PYX_ERR(1, 1, __pyx_L1_error) + #endif + if (__pyx_module_is_main_reccdi__src_py__cyth__bridge_cpu) { + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_name, __pyx_n_s_main) < 0) __PYX_ERR(1, 1, __pyx_L1_error) + } + #if PY_MAJOR_VERSION >= 3 + { + PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(1, 1, __pyx_L1_error) + if (!PyDict_GetItemString(modules, "reccdi.src_py.cyth.bridge_cpu")) { + if (unlikely(PyDict_SetItemString(modules, "reccdi.src_py.cyth.bridge_cpu", __pyx_m) < 0)) __PYX_ERR(1, 1, __pyx_L1_error) + } + } + #endif + /*--- Builtin init code ---*/ + if (__Pyx_InitCachedBuiltins() < 0) goto __pyx_L1_error; + /*--- Constants init code ---*/ + if (__Pyx_InitCachedConstants() < 0) goto __pyx_L1_error; + /*--- Global type/function init code ---*/ + (void)__Pyx_modinit_global_init_code(); + (void)__Pyx_modinit_variable_export_code(); + (void)__Pyx_modinit_function_export_code(); + if (unlikely(__Pyx_modinit_type_init_code() != 0)) goto __pyx_L1_error; + (void)__Pyx_modinit_type_import_code(); + (void)__Pyx_modinit_variable_import_code(); + (void)__Pyx_modinit_function_import_code(); + /*--- Execution code ---*/ + #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) + if (__Pyx_patch_abc() < 0) __PYX_ERR(1, 1, __pyx_L1_error) + #endif + + /* "reccdi/src_py/cyth/bridge_cpu.pyx":1 + * # ######################################################################### # <<<<<<<<<<<<<< + * # Copyright (c) , UChicago Argonne, LLC. All rights reserved. # + * # # + */ + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "vector.to_py":60 + * + * @cname("__pyx_convert_vector_to_py_int") + * cdef object __pyx_convert_vector_to_py_int(vector[X]& v): # <<<<<<<<<<<<<< + * return [v[i] for i in range(v.size())] + * + */ + + /*--- Wrapped vars code ---*/ + + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + if (__pyx_m) { + if (__pyx_d) { + __Pyx_AddTraceback("init reccdi.src_py.cyth.bridge_cpu", __pyx_clineno, __pyx_lineno, __pyx_filename); + } + Py_CLEAR(__pyx_m); + } else if (!PyErr_Occurred()) { + PyErr_SetString(PyExc_ImportError, "init reccdi.src_py.cyth.bridge_cpu"); + } + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + #if CYTHON_PEP489_MULTI_PHASE_INIT + return (__pyx_m != NULL) ? 0 : -1; + #elif PY_MAJOR_VERSION >= 3 + return __pyx_m; + #else + return; + #endif +} + +/* --- Runtime support code --- */ +/* Refnanny */ +#if CYTHON_REFNANNY +static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) { + PyObject *m = NULL, *p = NULL; + void *r = NULL; + m = PyImport_ImportModule(modname); + if (!m) goto end; + p = PyObject_GetAttrString(m, "RefNannyAPI"); + if (!p) goto end; + r = PyLong_AsVoidPtr(p); +end: + Py_XDECREF(p); + Py_XDECREF(m); + return (__Pyx_RefNannyAPIStruct *)r; +} +#endif + +/* PyObjectGetAttrStr */ +#if CYTHON_USE_TYPE_SLOTS +static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) { + PyTypeObject* tp = Py_TYPE(obj); + if (likely(tp->tp_getattro)) + return tp->tp_getattro(obj, attr_name); +#if PY_MAJOR_VERSION < 3 + if (likely(tp->tp_getattr)) + return tp->tp_getattr(obj, PyString_AS_STRING(attr_name)); +#endif + return PyObject_GetAttr(obj, attr_name); +} +#endif + +/* GetBuiltinName */ +static PyObject *__Pyx_GetBuiltinName(PyObject *name) { + PyObject* result = __Pyx_PyObject_GetAttrStr(__pyx_b, name); + if (unlikely(!result)) { + PyErr_Format(PyExc_NameError, +#if PY_MAJOR_VERSION >= 3 + "name '%U' is not defined", name); +#else + "name '%.200s' is not defined", PyString_AS_STRING(name)); +#endif + } + return result; +} + +/* RaiseArgTupleInvalid */ +static void __Pyx_RaiseArgtupleInvalid( + const char* func_name, + int exact, + Py_ssize_t num_min, + Py_ssize_t num_max, + Py_ssize_t num_found) +{ + Py_ssize_t num_expected; + const char *more_or_less; + if (num_found < num_min) { + num_expected = num_min; + more_or_less = "at least"; + } else { + num_expected = num_max; + more_or_less = "at most"; + } + if (exact) { + more_or_less = "exactly"; + } + PyErr_Format(PyExc_TypeError, + "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T "d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T "d given)", + func_name, more_or_less, num_expected, + (num_expected == 1) ? "" : "s", num_found); +} + +/* KeywordStringCheck */ +static int __Pyx_CheckKeywordStrings( + PyObject *kwdict, + const char* function_name, + int kw_allowed) +{ + PyObject* key = 0; + Py_ssize_t pos = 0; +#if CYTHON_COMPILING_IN_PYPY + if (!kw_allowed && PyDict_Next(kwdict, &pos, &key, 0)) + goto invalid_keyword; + return 1; +#else + while (PyDict_Next(kwdict, &pos, &key, 0)) { + #if PY_MAJOR_VERSION < 3 + if (unlikely(!PyString_Check(key))) + #endif + if (unlikely(!PyUnicode_Check(key))) + goto invalid_keyword_type; + } + if ((!kw_allowed) && unlikely(key)) + goto invalid_keyword; + return 1; +invalid_keyword_type: + PyErr_Format(PyExc_TypeError, + "%.200s() keywords must be strings", function_name); + return 0; +#endif +invalid_keyword: + PyErr_Format(PyExc_TypeError, + #if PY_MAJOR_VERSION < 3 + "%.200s() got an unexpected keyword argument '%.200s'", + function_name, PyString_AsString(key)); + #else + "%s() got an unexpected keyword argument '%U'", + function_name, key); + #endif + return 0; +} + +/* RaiseDoubleKeywords */ +static void __Pyx_RaiseDoubleKeywordsError( + const char* func_name, + PyObject* kw_name) +{ + PyErr_Format(PyExc_TypeError, + #if PY_MAJOR_VERSION >= 3 + "%s() got multiple values for keyword argument '%U'", func_name, kw_name); + #else + "%s() got multiple values for keyword argument '%s'", func_name, + PyString_AsString(kw_name)); + #endif +} + +/* ParseKeywords */ +static int __Pyx_ParseOptionalKeywords( + PyObject *kwds, + PyObject **argnames[], + PyObject *kwds2, + PyObject *values[], + Py_ssize_t num_pos_args, + const char* function_name) +{ + PyObject *key = 0, *value = 0; + Py_ssize_t pos = 0; + PyObject*** name; + PyObject*** first_kw_arg = argnames + num_pos_args; + while (PyDict_Next(kwds, &pos, &key, &value)) { + name = first_kw_arg; + while (*name && (**name != key)) name++; + if (*name) { + values[name-argnames] = value; + continue; + } + name = first_kw_arg; + #if PY_MAJOR_VERSION < 3 + if (likely(PyString_CheckExact(key)) || likely(PyString_Check(key))) { + while (*name) { + if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key)) + && _PyString_Eq(**name, key)) { + values[name-argnames] = value; + break; + } + name++; + } + if (*name) continue; + else { + PyObject*** argname = argnames; + while (argname != first_kw_arg) { + if ((**argname == key) || ( + (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key)) + && _PyString_Eq(**argname, key))) { + goto arg_passed_twice; + } + argname++; + } + } + } else + #endif + if (likely(PyUnicode_Check(key))) { + while (*name) { + int cmp = (**name == key) ? 0 : + #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 + (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : + #endif + PyUnicode_Compare(**name, key); + if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; + if (cmp == 0) { + values[name-argnames] = value; + break; + } + name++; + } + if (*name) continue; + else { + PyObject*** argname = argnames; + while (argname != first_kw_arg) { + int cmp = (**argname == key) ? 0 : + #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 + (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : + #endif + PyUnicode_Compare(**argname, key); + if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; + if (cmp == 0) goto arg_passed_twice; + argname++; + } + } + } else + goto invalid_keyword_type; + if (kwds2) { + if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad; + } else { + goto invalid_keyword; + } + } + return 0; +arg_passed_twice: + __Pyx_RaiseDoubleKeywordsError(function_name, key); + goto bad; +invalid_keyword_type: + PyErr_Format(PyExc_TypeError, + "%.200s() keywords must be strings", function_name); + goto bad; +invalid_keyword: + PyErr_Format(PyExc_TypeError, + #if PY_MAJOR_VERSION < 3 + "%.200s() got an unexpected keyword argument '%.200s'", + function_name, PyString_AsString(key)); + #else + "%s() got an unexpected keyword argument '%U'", + function_name, key); + #endif +bad: + return -1; +} + +/* PyFunctionFastCall */ +#if CYTHON_FAST_PYCALL +static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na, + PyObject *globals) { + PyFrameObject *f; + PyThreadState *tstate = __Pyx_PyThreadState_Current; + PyObject **fastlocals; + Py_ssize_t i; + PyObject *result; + assert(globals != NULL); + /* XXX Perhaps we should create a specialized + PyFrame_New() that doesn't take locals, but does + take builtins without sanity checking them. + */ + assert(tstate != NULL); + f = PyFrame_New(tstate, co, globals, NULL); + if (f == NULL) { + return NULL; + } + fastlocals = __Pyx_PyFrame_GetLocalsplus(f); + for (i = 0; i < na; i++) { + Py_INCREF(*args); + fastlocals[i] = *args++; + } + result = PyEval_EvalFrameEx(f,0); + ++tstate->recursion_depth; + Py_DECREF(f); + --tstate->recursion_depth; + return result; +} +#if 1 || PY_VERSION_HEX < 0x030600B1 +static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs) { + PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func); + PyObject *globals = PyFunction_GET_GLOBALS(func); + PyObject *argdefs = PyFunction_GET_DEFAULTS(func); + PyObject *closure; +#if PY_MAJOR_VERSION >= 3 + PyObject *kwdefs; +#endif + PyObject *kwtuple, **k; + PyObject **d; + Py_ssize_t nd; + Py_ssize_t nk; + PyObject *result; + assert(kwargs == NULL || PyDict_Check(kwargs)); + nk = kwargs ? PyDict_Size(kwargs) : 0; + if (Py_EnterRecursiveCall((char*)" while calling a Python object")) { + return NULL; + } + if ( +#if PY_MAJOR_VERSION >= 3 + co->co_kwonlyargcount == 0 && +#endif + likely(kwargs == NULL || nk == 0) && + co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE)) { + if (argdefs == NULL && co->co_argcount == nargs) { + result = __Pyx_PyFunction_FastCallNoKw(co, args, nargs, globals); + goto done; + } + else if (nargs == 0 && argdefs != NULL + && co->co_argcount == Py_SIZE(argdefs)) { + /* function called with no arguments, but all parameters have + a default value: use default values as arguments .*/ + args = &PyTuple_GET_ITEM(argdefs, 0); + result =__Pyx_PyFunction_FastCallNoKw(co, args, Py_SIZE(argdefs), globals); + goto done; + } + } + if (kwargs != NULL) { + Py_ssize_t pos, i; + kwtuple = PyTuple_New(2 * nk); + if (kwtuple == NULL) { + result = NULL; + goto done; + } + k = &PyTuple_GET_ITEM(kwtuple, 0); + pos = i = 0; + while (PyDict_Next(kwargs, &pos, &k[i], &k[i+1])) { + Py_INCREF(k[i]); + Py_INCREF(k[i+1]); + i += 2; + } + nk = i / 2; + } + else { + kwtuple = NULL; + k = NULL; + } + closure = PyFunction_GET_CLOSURE(func); +#if PY_MAJOR_VERSION >= 3 + kwdefs = PyFunction_GET_KW_DEFAULTS(func); +#endif + if (argdefs != NULL) { + d = &PyTuple_GET_ITEM(argdefs, 0); + nd = Py_SIZE(argdefs); + } + else { + d = NULL; + nd = 0; + } +#if PY_MAJOR_VERSION >= 3 + result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL, + args, (int)nargs, + k, (int)nk, + d, (int)nd, kwdefs, closure); +#else + result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL, + args, (int)nargs, + k, (int)nk, + d, (int)nd, closure); +#endif + Py_XDECREF(kwtuple); +done: + Py_LeaveRecursiveCall(); + return result; +} +#endif +#endif + +/* PyObjectCall */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { + PyObject *result; + ternaryfunc call = func->ob_type->tp_call; + if (unlikely(!call)) + return PyObject_Call(func, arg, kw); + if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) + return NULL; + result = (*call)(func, arg, kw); + Py_LeaveRecursiveCall(); + if (unlikely(!result) && unlikely(!PyErr_Occurred())) { + PyErr_SetString( + PyExc_SystemError, + "NULL result without error in PyObject_Call"); + } + return result; +} +#endif + +/* PyObjectCallMethO */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) { + PyObject *self, *result; + PyCFunction cfunc; + cfunc = PyCFunction_GET_FUNCTION(func); + self = PyCFunction_GET_SELF(func); + if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) + return NULL; + result = cfunc(self, arg); + Py_LeaveRecursiveCall(); + if (unlikely(!result) && unlikely(!PyErr_Occurred())) { + PyErr_SetString( + PyExc_SystemError, + "NULL result without error in PyObject_Call"); + } + return result; +} +#endif + +/* PyObjectCallNoArg */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) { +#if CYTHON_FAST_PYCALL + if (PyFunction_Check(func)) { + return __Pyx_PyFunction_FastCall(func, NULL, 0); + } +#endif +#ifdef __Pyx_CyFunction_USED + if (likely(PyCFunction_Check(func) || __Pyx_CyFunction_Check(func))) +#else + if (likely(PyCFunction_Check(func))) +#endif + { + if (likely(PyCFunction_GET_FLAGS(func) & METH_NOARGS)) { + return __Pyx_PyObject_CallMethO(func, NULL); + } + } + return __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL); +} +#endif + +/* PyCFunctionFastCall */ +#if CYTHON_FAST_PYCCALL +static CYTHON_INLINE PyObject * __Pyx_PyCFunction_FastCall(PyObject *func_obj, PyObject **args, Py_ssize_t nargs) { + PyCFunctionObject *func = (PyCFunctionObject*)func_obj; + PyCFunction meth = PyCFunction_GET_FUNCTION(func); + PyObject *self = PyCFunction_GET_SELF(func); + int flags = PyCFunction_GET_FLAGS(func); + assert(PyCFunction_Check(func)); + assert(METH_FASTCALL == (flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS))); + assert(nargs >= 0); + assert(nargs == 0 || args != NULL); + /* _PyCFunction_FastCallDict() must not be called with an exception set, + because it may clear it (directly or indirectly) and so the + caller loses its exception */ + assert(!PyErr_Occurred()); + if ((PY_VERSION_HEX < 0x030700A0) || unlikely(flags & METH_KEYWORDS)) { + return (*((__Pyx_PyCFunctionFastWithKeywords)(void*)meth)) (self, args, nargs, NULL); + } else { + return (*((__Pyx_PyCFunctionFast)(void*)meth)) (self, args, nargs); + } +} +#endif + +/* PyObjectCallOneArg */ +#if CYTHON_COMPILING_IN_CPYTHON +static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) { + PyObject *result; + PyObject *args = PyTuple_New(1); + if (unlikely(!args)) return NULL; + Py_INCREF(arg); + PyTuple_SET_ITEM(args, 0, arg); + result = __Pyx_PyObject_Call(func, args, NULL); + Py_DECREF(args); + return result; +} +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { +#if CYTHON_FAST_PYCALL + if (PyFunction_Check(func)) { + return __Pyx_PyFunction_FastCall(func, &arg, 1); + } +#endif + if (likely(PyCFunction_Check(func))) { + if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { + return __Pyx_PyObject_CallMethO(func, arg); +#if CYTHON_FAST_PYCCALL + } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) { + return __Pyx_PyCFunction_FastCall(func, &arg, 1); +#endif + } + } + return __Pyx__PyObject_CallOneArg(func, arg); +} +#else +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { + PyObject *result; + PyObject *args = PyTuple_Pack(1, arg); + if (unlikely(!args)) return NULL; + result = __Pyx_PyObject_Call(func, args, NULL); + Py_DECREF(args); + return result; +} +#endif + +/* PyErrFetchRestore */ +#if CYTHON_FAST_THREAD_STATE +static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { + PyObject *tmp_type, *tmp_value, *tmp_tb; + tmp_type = tstate->curexc_type; + tmp_value = tstate->curexc_value; + tmp_tb = tstate->curexc_traceback; + tstate->curexc_type = type; + tstate->curexc_value = value; + tstate->curexc_traceback = tb; + Py_XDECREF(tmp_type); + Py_XDECREF(tmp_value); + Py_XDECREF(tmp_tb); +} +static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { + *type = tstate->curexc_type; + *value = tstate->curexc_value; + *tb = tstate->curexc_traceback; + tstate->curexc_type = 0; + tstate->curexc_value = 0; + tstate->curexc_traceback = 0; +} +#endif + +/* RaiseException */ +#if PY_MAJOR_VERSION < 3 +static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, + CYTHON_UNUSED PyObject *cause) { + __Pyx_PyThreadState_declare + Py_XINCREF(type); + if (!value || value == Py_None) + value = NULL; + else + Py_INCREF(value); + if (!tb || tb == Py_None) + tb = NULL; + else { + Py_INCREF(tb); + if (!PyTraceBack_Check(tb)) { + PyErr_SetString(PyExc_TypeError, + "raise: arg 3 must be a traceback or None"); + goto raise_error; + } + } + if (PyType_Check(type)) { +#if CYTHON_COMPILING_IN_PYPY + if (!value) { + Py_INCREF(Py_None); + value = Py_None; + } +#endif + PyErr_NormalizeException(&type, &value, &tb); + } else { + if (value) { + PyErr_SetString(PyExc_TypeError, + "instance exception may not have a separate value"); + goto raise_error; + } + value = type; + type = (PyObject*) Py_TYPE(type); + Py_INCREF(type); + if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) { + PyErr_SetString(PyExc_TypeError, + "raise: exception class must be a subclass of BaseException"); + goto raise_error; + } + } + __Pyx_PyThreadState_assign + __Pyx_ErrRestore(type, value, tb); + return; +raise_error: + Py_XDECREF(value); + Py_XDECREF(type); + Py_XDECREF(tb); + return; +} +#else +static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) { + PyObject* owned_instance = NULL; + if (tb == Py_None) { + tb = 0; + } else if (tb && !PyTraceBack_Check(tb)) { + PyErr_SetString(PyExc_TypeError, + "raise: arg 3 must be a traceback or None"); + goto bad; + } + if (value == Py_None) + value = 0; + if (PyExceptionInstance_Check(type)) { + if (value) { + PyErr_SetString(PyExc_TypeError, + "instance exception may not have a separate value"); + goto bad; + } + value = type; + type = (PyObject*) Py_TYPE(value); + } else if (PyExceptionClass_Check(type)) { + PyObject *instance_class = NULL; + if (value && PyExceptionInstance_Check(value)) { + instance_class = (PyObject*) Py_TYPE(value); + if (instance_class != type) { + int is_subclass = PyObject_IsSubclass(instance_class, type); + if (!is_subclass) { + instance_class = NULL; + } else if (unlikely(is_subclass == -1)) { + goto bad; + } else { + type = instance_class; + } + } + } + if (!instance_class) { + PyObject *args; + if (!value) + args = PyTuple_New(0); + else if (PyTuple_Check(value)) { + Py_INCREF(value); + args = value; + } else + args = PyTuple_Pack(1, value); + if (!args) + goto bad; + owned_instance = PyObject_Call(type, args, NULL); + Py_DECREF(args); + if (!owned_instance) + goto bad; + value = owned_instance; + if (!PyExceptionInstance_Check(value)) { + PyErr_Format(PyExc_TypeError, + "calling %R should have returned an instance of " + "BaseException, not %R", + type, Py_TYPE(value)); + goto bad; + } + } + } else { + PyErr_SetString(PyExc_TypeError, + "raise: exception class must be a subclass of BaseException"); + goto bad; + } + if (cause) { + PyObject *fixed_cause; + if (cause == Py_None) { + fixed_cause = NULL; + } else if (PyExceptionClass_Check(cause)) { + fixed_cause = PyObject_CallObject(cause, NULL); + if (fixed_cause == NULL) + goto bad; + } else if (PyExceptionInstance_Check(cause)) { + fixed_cause = cause; + Py_INCREF(fixed_cause); + } else { + PyErr_SetString(PyExc_TypeError, + "exception causes must derive from " + "BaseException"); + goto bad; + } + PyException_SetCause(value, fixed_cause); + } + PyErr_SetObject(type, value); + if (tb) { +#if CYTHON_COMPILING_IN_PYPY + PyObject *tmp_type, *tmp_value, *tmp_tb; + PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb); + Py_INCREF(tb); + PyErr_Restore(tmp_type, tmp_value, tb); + Py_XDECREF(tmp_tb); +#else + PyThreadState *tstate = __Pyx_PyThreadState_Current; + PyObject* tmp_tb = tstate->curexc_traceback; + if (tb != tmp_tb) { + Py_INCREF(tb); + tstate->curexc_traceback = tb; + Py_XDECREF(tmp_tb); + } +#endif + } +bad: + Py_XDECREF(owned_instance); + return; +} +#endif + +/* PyObject_GenericGetAttrNoDict */ +#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 +static PyObject *__Pyx_RaiseGenericGetAttributeError(PyTypeObject *tp, PyObject *attr_name) { + PyErr_Format(PyExc_AttributeError, +#if PY_MAJOR_VERSION >= 3 + "'%.50s' object has no attribute '%U'", + tp->tp_name, attr_name); +#else + "'%.50s' object has no attribute '%.400s'", + tp->tp_name, PyString_AS_STRING(attr_name)); +#endif + return NULL; +} +static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name) { + PyObject *descr; + PyTypeObject *tp = Py_TYPE(obj); + if (unlikely(!PyString_Check(attr_name))) { + return PyObject_GenericGetAttr(obj, attr_name); + } + assert(!tp->tp_dictoffset); + descr = _PyType_Lookup(tp, attr_name); + if (unlikely(!descr)) { + return __Pyx_RaiseGenericGetAttributeError(tp, attr_name); + } + Py_INCREF(descr); + #if PY_MAJOR_VERSION < 3 + if (likely(PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_HAVE_CLASS))) + #endif + { + descrgetfunc f = Py_TYPE(descr)->tp_descr_get; + if (unlikely(f)) { + PyObject *res = f(descr, obj, (PyObject *)tp); + Py_DECREF(descr); + return res; + } + } + return descr; +} +#endif + +/* PyObject_GenericGetAttr */ +#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 +static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name) { + if (unlikely(Py_TYPE(obj)->tp_dictoffset)) { + return PyObject_GenericGetAttr(obj, attr_name); + } + return __Pyx_PyObject_GenericGetAttrNoDict(obj, attr_name); +} +#endif + +/* SetupReduce */ +static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) { + int ret; + PyObject *name_attr; + name_attr = __Pyx_PyObject_GetAttrStr(meth, __pyx_n_s_name); + if (likely(name_attr)) { + ret = PyObject_RichCompareBool(name_attr, name, Py_EQ); + } else { + ret = -1; + } + if (unlikely(ret < 0)) { + PyErr_Clear(); + ret = 0; + } + Py_XDECREF(name_attr); + return ret; +} +static int __Pyx_setup_reduce(PyObject* type_obj) { + int ret = 0; + PyObject *object_reduce = NULL; + PyObject *object_reduce_ex = NULL; + PyObject *reduce = NULL; + PyObject *reduce_ex = NULL; + PyObject *reduce_cython = NULL; + PyObject *setstate = NULL; + PyObject *setstate_cython = NULL; +#if CYTHON_USE_PYTYPE_LOOKUP + if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto GOOD; +#else + if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto GOOD; +#endif +#if CYTHON_USE_PYTYPE_LOOKUP + object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; +#else + object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; +#endif + reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto BAD; + if (reduce_ex == object_reduce_ex) { +#if CYTHON_USE_PYTYPE_LOOKUP + object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; +#else + object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; +#endif + reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto BAD; + if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) { + reduce_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_cython); if (unlikely(!reduce_cython)) goto BAD; + ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto BAD; + ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto BAD; + setstate = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate); + if (!setstate) PyErr_Clear(); + if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) { + setstate_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate_cython); if (unlikely(!setstate_cython)) goto BAD; + ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto BAD; + ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto BAD; + } + PyType_Modified((PyTypeObject*)type_obj); + } + } + goto GOOD; +BAD: + if (!PyErr_Occurred()) + PyErr_Format(PyExc_RuntimeError, "Unable to initialize pickling for %s", ((PyTypeObject*)type_obj)->tp_name); + ret = -1; +GOOD: +#if !CYTHON_USE_PYTYPE_LOOKUP + Py_XDECREF(object_reduce); + Py_XDECREF(object_reduce_ex); +#endif + Py_XDECREF(reduce); + Py_XDECREF(reduce_ex); + Py_XDECREF(reduce_cython); + Py_XDECREF(setstate); + Py_XDECREF(setstate_cython); + return ret; +} + +/* PyDictVersioning */ +#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS +static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) { + PyObject *dict = Py_TYPE(obj)->tp_dict; + return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0; +} +static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) { + PyObject **dictptr = NULL; + Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset; + if (offset) { +#if CYTHON_COMPILING_IN_CPYTHON + dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj); +#else + dictptr = _PyObject_GetDictPtr(obj); +#endif + } + return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0; +} +static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) { + PyObject *dict = Py_TYPE(obj)->tp_dict; + if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict))) + return 0; + return obj_dict_version == __Pyx_get_object_dict_version(obj); +} +#endif + +/* CLineInTraceback */ +#ifndef CYTHON_CLINE_IN_TRACEBACK +static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { + PyObject *use_cline; + PyObject *ptype, *pvalue, *ptraceback; +#if CYTHON_COMPILING_IN_CPYTHON + PyObject **cython_runtime_dict; +#endif + if (unlikely(!__pyx_cython_runtime)) { + return c_line; + } + __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback); +#if CYTHON_COMPILING_IN_CPYTHON + cython_runtime_dict = _PyObject_GetDictPtr(__pyx_cython_runtime); + if (likely(cython_runtime_dict)) { + __PYX_PY_DICT_LOOKUP_IF_MODIFIED( + use_cline, *cython_runtime_dict, + __Pyx_PyDict_GetItemStr(*cython_runtime_dict, __pyx_n_s_cline_in_traceback)) + } else +#endif + { + PyObject *use_cline_obj = __Pyx_PyObject_GetAttrStr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback); + if (use_cline_obj) { + use_cline = PyObject_Not(use_cline_obj) ? Py_False : Py_True; + Py_DECREF(use_cline_obj); + } else { + PyErr_Clear(); + use_cline = NULL; + } + } + if (!use_cline) { + c_line = 0; + PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); + } + else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) { + c_line = 0; + } + __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback); + return c_line; +} +#endif + +/* CodeObjectCache */ +static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) { + int start = 0, mid = 0, end = count - 1; + if (end >= 0 && code_line > entries[end].code_line) { + return count; + } + while (start < end) { + mid = start + (end - start) / 2; + if (code_line < entries[mid].code_line) { + end = mid; + } else if (code_line > entries[mid].code_line) { + start = mid + 1; + } else { + return mid; + } + } + if (code_line <= entries[mid].code_line) { + return mid; + } else { + return mid + 1; + } +} +static PyCodeObject *__pyx_find_code_object(int code_line) { + PyCodeObject* code_object; + int pos; + if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) { + return NULL; + } + pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); + if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) { + return NULL; + } + code_object = __pyx_code_cache.entries[pos].code_object; + Py_INCREF(code_object); + return code_object; +} +static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { + int pos, i; + __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries; + if (unlikely(!code_line)) { + return; + } + if (unlikely(!entries)) { + entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry)); + if (likely(entries)) { + __pyx_code_cache.entries = entries; + __pyx_code_cache.max_count = 64; + __pyx_code_cache.count = 1; + entries[0].code_line = code_line; + entries[0].code_object = code_object; + Py_INCREF(code_object); + } + return; + } + pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); + if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) { + PyCodeObject* tmp = entries[pos].code_object; + entries[pos].code_object = code_object; + Py_DECREF(tmp); + return; + } + if (__pyx_code_cache.count == __pyx_code_cache.max_count) { + int new_max = __pyx_code_cache.max_count + 64; + entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( + __pyx_code_cache.entries, (size_t)new_max*sizeof(__Pyx_CodeObjectCacheEntry)); + if (unlikely(!entries)) { + return; + } + __pyx_code_cache.entries = entries; + __pyx_code_cache.max_count = new_max; + } + for (i=__pyx_code_cache.count; i>pos; i--) { + entries[i] = entries[i-1]; + } + entries[pos].code_line = code_line; + entries[pos].code_object = code_object; + __pyx_code_cache.count++; + Py_INCREF(code_object); +} + +/* AddTraceback */ +#include "compile.h" +#include "frameobject.h" +#include "traceback.h" +static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( + const char *funcname, int c_line, + int py_line, const char *filename) { + PyCodeObject *py_code = 0; + PyObject *py_srcfile = 0; + PyObject *py_funcname = 0; + #if PY_MAJOR_VERSION < 3 + py_srcfile = PyString_FromString(filename); + #else + py_srcfile = PyUnicode_FromString(filename); + #endif + if (!py_srcfile) goto bad; + if (c_line) { + #if PY_MAJOR_VERSION < 3 + py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); + #else + py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); + #endif + } + else { + #if PY_MAJOR_VERSION < 3 + py_funcname = PyString_FromString(funcname); + #else + py_funcname = PyUnicode_FromString(funcname); + #endif + } + if (!py_funcname) goto bad; + py_code = __Pyx_PyCode_New( + 0, + 0, + 0, + 0, + 0, + __pyx_empty_bytes, /*PyObject *code,*/ + __pyx_empty_tuple, /*PyObject *consts,*/ + __pyx_empty_tuple, /*PyObject *names,*/ + __pyx_empty_tuple, /*PyObject *varnames,*/ + __pyx_empty_tuple, /*PyObject *freevars,*/ + __pyx_empty_tuple, /*PyObject *cellvars,*/ + py_srcfile, /*PyObject *filename,*/ + py_funcname, /*PyObject *name,*/ + py_line, + __pyx_empty_bytes /*PyObject *lnotab*/ + ); + Py_DECREF(py_srcfile); + Py_DECREF(py_funcname); + return py_code; +bad: + Py_XDECREF(py_srcfile); + Py_XDECREF(py_funcname); + return NULL; +} +static void __Pyx_AddTraceback(const char *funcname, int c_line, + int py_line, const char *filename) { + PyCodeObject *py_code = 0; + PyFrameObject *py_frame = 0; + PyThreadState *tstate = __Pyx_PyThreadState_Current; + if (c_line) { + c_line = __Pyx_CLineForTraceback(tstate, c_line); + } + py_code = __pyx_find_code_object(c_line ? -c_line : py_line); + if (!py_code) { + py_code = __Pyx_CreateCodeObjectForTraceback( + funcname, c_line, py_line, filename); + if (!py_code) goto bad; + __pyx_insert_code_object(c_line ? -c_line : py_line, py_code); + } + py_frame = PyFrame_New( + tstate, /*PyThreadState *tstate,*/ + py_code, /*PyCodeObject *code,*/ + __pyx_d, /*PyObject *globals,*/ + 0 /*PyObject *locals*/ + ); + if (!py_frame) goto bad; + __Pyx_PyFrame_SetLineNumber(py_frame, py_line); + PyTraceBack_Here(py_frame); +bad: + Py_XDECREF(py_code); + Py_XDECREF(py_frame); +} + +/* CIntFromPyVerify */ +#define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\ + __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0) +#define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\ + __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1) +#define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\ + {\ + func_type value = func_value;\ + if (sizeof(target_type) < sizeof(func_type)) {\ + if (unlikely(value != (func_type) (target_type) value)) {\ + func_type zero = 0;\ + if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\ + return (target_type) -1;\ + if (is_unsigned && unlikely(value < zero))\ + goto raise_neg_overflow;\ + else\ + goto raise_overflow;\ + }\ + }\ + return (target_type) value;\ + } + +/* CIntToPy */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { + const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(int) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(int) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(int) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(int), + little, !is_unsigned); + } +} + +/* CIntFromPy */ +static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { + const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(int) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (int) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (int) 0; + case 1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0]) + case 2: + if (8 * sizeof(int) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) >= 2 * PyLong_SHIFT) { + return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(int) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) >= 3 * PyLong_SHIFT) { + return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(int) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) >= 4 * PyLong_SHIFT) { + return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (int) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(int) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (int) 0; + case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(int, digit, +digits[0]) + case -2: + if (8 * sizeof(int) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { + return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(int) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { + return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { + return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(int) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { + return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { + return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(int) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { + return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } + } + break; + } +#endif + if (sizeof(int) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + int val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (int) -1; + } + } else { + int val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (int) -1; + val = __Pyx_PyInt_As_int(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to int"); + return (int) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to int"); + return (int) -1; +} + +/* CIntFromPy */ +static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *x) { + const size_t neg_one = (size_t) ((size_t) 0 - (size_t) 1), const_zero = (size_t) 0; + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(size_t) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(size_t, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (size_t) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (size_t) 0; + case 1: __PYX_VERIFY_RETURN_INT(size_t, digit, digits[0]) + case 2: + if (8 * sizeof(size_t) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(size_t) >= 2 * PyLong_SHIFT) { + return (size_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(size_t) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(size_t) >= 3 * PyLong_SHIFT) { + return (size_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(size_t) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(size_t) >= 4 * PyLong_SHIFT) { + return (size_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (size_t) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(size_t) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(size_t) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (size_t) 0; + case -1: __PYX_VERIFY_RETURN_INT(size_t, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(size_t, digit, +digits[0]) + case -2: + if (8 * sizeof(size_t) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) { + return (size_t) (((size_t)-1)*(((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(size_t) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) { + return (size_t) ((((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) { + return (size_t) (((size_t)-1)*(((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(size_t) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) { + return (size_t) ((((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT) { + return (size_t) (((size_t)-1)*(((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(size_t) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT) { + return (size_t) ((((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); + } + } + break; + } +#endif + if (sizeof(size_t) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(size_t, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(size_t) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(size_t, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + size_t val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (size_t) -1; + } + } else { + size_t val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (size_t) -1; + val = __Pyx_PyInt_As_size_t(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to size_t"); + return (size_t) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to size_t"); + return (size_t) -1; +} + +/* CIntToPy */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { + const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(long) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(long) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(long) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(long), + little, !is_unsigned); + } +} + +/* CIntFromPy */ +static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { + const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(long) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (long) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (long) 0; + case 1: __PYX_VERIFY_RETURN_INT(long, digit, digits[0]) + case 2: + if (8 * sizeof(long) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) >= 2 * PyLong_SHIFT) { + return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(long) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) >= 3 * PyLong_SHIFT) { + return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(long) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) >= 4 * PyLong_SHIFT) { + return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (long) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(long) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (long) 0; + case -1: __PYX_VERIFY_RETURN_INT(long, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(long, digit, +digits[0]) + case -2: + if (8 * sizeof(long) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { + return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(long) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { + return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { + return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(long) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { + return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { + return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(long) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { + return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } + } + break; + } +#endif + if (sizeof(long) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + long val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (long) -1; + } + } else { + long val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (long) -1; + val = __Pyx_PyInt_As_long(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to long"); + return (long) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to long"); + return (long) -1; +} + +/* FastTypeChecks */ +#if CYTHON_COMPILING_IN_CPYTHON +static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) { + while (a) { + a = a->tp_base; + if (a == b) + return 1; + } + return b == &PyBaseObject_Type; +} +static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) { + PyObject *mro; + if (a == b) return 1; + mro = a->tp_mro; + if (likely(mro)) { + Py_ssize_t i, n; + n = PyTuple_GET_SIZE(mro); + for (i = 0; i < n; i++) { + if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b) + return 1; + } + return 0; + } + return __Pyx_InBases(a, b); +} +#if PY_MAJOR_VERSION == 2 +static int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject* exc_type2) { + PyObject *exception, *value, *tb; + int res; + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ErrFetch(&exception, &value, &tb); + res = exc_type1 ? PyObject_IsSubclass(err, exc_type1) : 0; + if (unlikely(res == -1)) { + PyErr_WriteUnraisable(err); + res = 0; + } + if (!res) { + res = PyObject_IsSubclass(err, exc_type2); + if (unlikely(res == -1)) { + PyErr_WriteUnraisable(err); + res = 0; + } + } + __Pyx_ErrRestore(exception, value, tb); + return res; +} +#else +static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) { + int res = exc_type1 ? __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type1) : 0; + if (!res) { + res = __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2); + } + return res; +} +#endif +static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) { + Py_ssize_t i, n; + assert(PyExceptionClass_Check(exc_type)); + n = PyTuple_GET_SIZE(tuple); +#if PY_MAJOR_VERSION >= 3 + for (i=0; ip) { + #if PY_MAJOR_VERSION < 3 + if (t->is_unicode) { + *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL); + } else if (t->intern) { + *t->p = PyString_InternFromString(t->s); + } else { + *t->p = PyString_FromStringAndSize(t->s, t->n - 1); + } + #else + if (t->is_unicode | t->is_str) { + if (t->intern) { + *t->p = PyUnicode_InternFromString(t->s); + } else if (t->encoding) { + *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL); + } else { + *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1); + } + } else { + *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1); + } + #endif + if (!*t->p) + return -1; + if (PyObject_Hash(*t->p) == -1) + return -1; + ++t; + } + return 0; +} + +static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) { + return __Pyx_PyUnicode_FromStringAndSize(c_str, (Py_ssize_t)strlen(c_str)); +} +static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject* o) { + Py_ssize_t ignore; + return __Pyx_PyObject_AsStringAndSize(o, &ignore); +} +#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT +#if !CYTHON_PEP393_ENABLED +static const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) { + char* defenc_c; + PyObject* defenc = _PyUnicode_AsDefaultEncodedString(o, NULL); + if (!defenc) return NULL; + defenc_c = PyBytes_AS_STRING(defenc); +#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII + { + char* end = defenc_c + PyBytes_GET_SIZE(defenc); + char* c; + for (c = defenc_c; c < end; c++) { + if ((unsigned char) (*c) >= 128) { + PyUnicode_AsASCIIString(o); + return NULL; + } + } + } +#endif + *length = PyBytes_GET_SIZE(defenc); + return defenc_c; +} +#else +static CYTHON_INLINE const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) { + if (unlikely(__Pyx_PyUnicode_READY(o) == -1)) return NULL; +#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII + if (likely(PyUnicode_IS_ASCII(o))) { + *length = PyUnicode_GET_LENGTH(o); + return PyUnicode_AsUTF8(o); + } else { + PyUnicode_AsASCIIString(o); + return NULL; + } +#else + return PyUnicode_AsUTF8AndSize(o, length); +#endif +} +#endif +#endif +static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) { +#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT + if ( +#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII + __Pyx_sys_getdefaultencoding_not_ascii && +#endif + PyUnicode_Check(o)) { + return __Pyx_PyUnicode_AsStringAndSize(o, length); + } else +#endif +#if (!CYTHON_COMPILING_IN_PYPY) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE)) + if (PyByteArray_Check(o)) { + *length = PyByteArray_GET_SIZE(o); + return PyByteArray_AS_STRING(o); + } else +#endif + { + char* result; + int r = PyBytes_AsStringAndSize(o, &result, length); + if (unlikely(r < 0)) { + return NULL; + } else { + return result; + } + } +} +static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) { + int is_true = x == Py_True; + if (is_true | (x == Py_False) | (x == Py_None)) return is_true; + else return PyObject_IsTrue(x); +} +static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject* x) { + int retval; + if (unlikely(!x)) return -1; + retval = __Pyx_PyObject_IsTrue(x); + Py_DECREF(x); + return retval; +} +static PyObject* __Pyx_PyNumber_IntOrLongWrongResultType(PyObject* result, const char* type_name) { +#if PY_MAJOR_VERSION >= 3 + if (PyLong_Check(result)) { + if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1, + "__int__ returned non-int (type %.200s). " + "The ability to return an instance of a strict subclass of int " + "is deprecated, and may be removed in a future version of Python.", + Py_TYPE(result)->tp_name)) { + Py_DECREF(result); + return NULL; + } + return result; + } +#endif + PyErr_Format(PyExc_TypeError, + "__%.4s__ returned non-%.4s (type %.200s)", + type_name, type_name, Py_TYPE(result)->tp_name); + Py_DECREF(result); + return NULL; +} +static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x) { +#if CYTHON_USE_TYPE_SLOTS + PyNumberMethods *m; +#endif + const char *name = NULL; + PyObject *res = NULL; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x) || PyLong_Check(x))) +#else + if (likely(PyLong_Check(x))) +#endif + return __Pyx_NewRef(x); +#if CYTHON_USE_TYPE_SLOTS + m = Py_TYPE(x)->tp_as_number; + #if PY_MAJOR_VERSION < 3 + if (m && m->nb_int) { + name = "int"; + res = m->nb_int(x); + } + else if (m && m->nb_long) { + name = "long"; + res = m->nb_long(x); + } + #else + if (likely(m && m->nb_int)) { + name = "int"; + res = m->nb_int(x); + } + #endif +#else + if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) { + res = PyNumber_Int(x); + } +#endif + if (likely(res)) { +#if PY_MAJOR_VERSION < 3 + if (unlikely(!PyInt_Check(res) && !PyLong_Check(res))) { +#else + if (unlikely(!PyLong_CheckExact(res))) { +#endif + return __Pyx_PyNumber_IntOrLongWrongResultType(res, name); + } + } + else if (!PyErr_Occurred()) { + PyErr_SetString(PyExc_TypeError, + "an integer is required"); + } + return res; +} +static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { + Py_ssize_t ival; + PyObject *x; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_CheckExact(b))) { + if (sizeof(Py_ssize_t) >= sizeof(long)) + return PyInt_AS_LONG(b); + else + return PyInt_AsSsize_t(b); + } +#endif + if (likely(PyLong_CheckExact(b))) { + #if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)b)->ob_digit; + const Py_ssize_t size = Py_SIZE(b); + if (likely(__Pyx_sst_abs(size) <= 1)) { + ival = likely(size) ? digits[0] : 0; + if (size == -1) ival = -ival; + return ival; + } else { + switch (size) { + case 2: + if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) { + return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + break; + case -2: + if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) { + return -(Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + break; + case 3: + if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) { + return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + break; + case -3: + if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) { + return -(Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + break; + case 4: + if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) { + return (Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + break; + case -4: + if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) { + return -(Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + break; + } + } + #endif + return PyLong_AsSsize_t(b); + } + x = PyNumber_Index(b); + if (!x) return -1; + ival = PyInt_AsSsize_t(x); + Py_DECREF(x); + return ival; +} +static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { + return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); +} +static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) { + return PyInt_FromSize_t(ival); +} + + +#endif /* Py_PYTHON_H */ diff --git a/reccdi/src_py/cyth/bridge_cpu.cpython-37m-x86_64-linux-gnu.so b/reccdi/src_py/cyth/bridge_cpu.cpython-37m-x86_64-linux-gnu.so new file mode 100755 index 0000000000000000000000000000000000000000..8e05b7d3fbe1c99f5814200d4a0e6ab7608959e8 GIT binary patch literal 1983176 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

    feP` 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¬wC=l3~vVbJ@9UCqv9u_e!re#O)wG>=Ofy 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

    GRS6E?R#lT{>KrP5iZTA8X<{ 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µ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 literal 0 HcmV?d00001 diff --git a/reccdi/src_py/cyth/bridge_cpu.pyx b/reccdi/src_py/cyth/bridge_cpu.pyx index 3219efb..615cc26 100644 --- a/reccdi/src_py/cyth/bridge_cpu.pyx +++ b/reccdi/src_py/cyth/bridge_cpu.pyx @@ -6,10 +6,10 @@ # distutils: language = c++ -# distutils: include_dirs = ['reccdi/include', 'lib/arrayfire/include', 'lib/libconfig/include',] +# distutils: include_dirs = ['reccdi/include', '/home/beams/CXDUSER/CDI/arrayfire/include', '/home/beams/CXDUSER/CDI/libconfig/include',] # distutils: sources = ['reccdi/src_cpp/bridge.cpp', 'reccdi/src_cpp/manager.cpp', 'reccdi/src_cpp/parameters.cpp', 'reccdi/src_cpp/pcdi.cpp', 'reccdi/src_cpp/resolution.cpp', 'reccdi/src_cpp/state.cpp', 'reccdi/src_cpp/support.cpp', 'reccdi/src_cpp/util.cpp', 'reccdi/src_cpp/worker.cpp'] # distutils: libraries = ['afcpu', 'config++',] -# distutils: library_dirs = ['lib/arrayfire/lib64', 'lib/libconfig/lib',] +# distutils: library_dirs = ['/home/beams/CXDUSER/CDI/arrayfire/lib64', '/home/beams/CXDUSER/CDI/libconfig/lib',] from libcpp.vector cimport vector from libcpp.string cimport string diff --git a/reccdi/src_py/cyth/bridge_cuda.cpp b/reccdi/src_py/cyth/bridge_cuda.cpp new file mode 100644 index 0000000..9c5f3f6 --- /dev/null +++ b/reccdi/src_py/cyth/bridge_cuda.cpp @@ -0,0 +1,5916 @@ +/* Generated by Cython 0.29.13 */ + +/* BEGIN: Cython Metadata +{ + "distutils": { + "depends": [ + "reccdi/include/bridge.hpp" + ], + "include_dirs": [ + "reccdi/include", + "/home/beams/CXDUSER/CDI/arrayfire/include", + "/home/beams/CXDUSER/CDI/libconfig/include" + ], + "language": "c++", + "libraries": [ + "afcuda", + "config++" + ], + "library_dirs": [ + "/home/beams/CXDUSER/CDI/arrayfire/lib64", + "/home/beams/CXDUSER/CDI/libconfig/lib" + ], + "name": "reccdi.src_py.cyth.bridge_cuda", + "sources": [ + "reccdi/src_py/cyth/bridge_cuda.pyx", + "reccdi/src_cpp/bridge.cpp", + "reccdi/src_cpp/manager.cpp", + "reccdi/src_cpp/parameters.cpp", + "reccdi/src_cpp/pcdi.cpp", + "reccdi/src_cpp/resolution.cpp", + "reccdi/src_cpp/state.cpp", + "reccdi/src_cpp/support.cpp", + "reccdi/src_cpp/util.cpp", + "reccdi/src_cpp/worker.cpp" + ] + }, + "module_name": "reccdi.src_py.cyth.bridge_cuda" +} +END: Cython Metadata */ + +#define PY_SSIZE_T_CLEAN +#include "Python.h" +#ifndef Py_PYTHON_H + #error Python headers needed to compile C extensions, please install development version of Python. +#elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000) + #error Cython requires Python 2.6+ or Python 3.3+. +#else +#define CYTHON_ABI "0_29_13" +#define CYTHON_HEX_VERSION 0x001D0DF0 +#define CYTHON_FUTURE_DIVISION 0 +#include +#ifndef offsetof + #define offsetof(type, member) ( (size_t) & ((type*)0) -> member ) +#endif +#if !defined(WIN32) && !defined(MS_WINDOWS) + #ifndef __stdcall + #define __stdcall + #endif + #ifndef __cdecl + #define __cdecl + #endif + #ifndef __fastcall + #define __fastcall + #endif +#endif +#ifndef DL_IMPORT + #define DL_IMPORT(t) t +#endif +#ifndef DL_EXPORT + #define DL_EXPORT(t) t +#endif +#define __PYX_COMMA , +#ifndef HAVE_LONG_LONG + #if PY_VERSION_HEX >= 0x02070000 + #define HAVE_LONG_LONG + #endif +#endif +#ifndef PY_LONG_LONG + #define PY_LONG_LONG LONG_LONG +#endif +#ifndef Py_HUGE_VAL + #define Py_HUGE_VAL HUGE_VAL +#endif +#ifdef PYPY_VERSION + #define CYTHON_COMPILING_IN_PYPY 1 + #define CYTHON_COMPILING_IN_PYSTON 0 + #define CYTHON_COMPILING_IN_CPYTHON 0 + #undef CYTHON_USE_TYPE_SLOTS + #define CYTHON_USE_TYPE_SLOTS 0 + #undef CYTHON_USE_PYTYPE_LOOKUP + #define CYTHON_USE_PYTYPE_LOOKUP 0 + #if PY_VERSION_HEX < 0x03050000 + #undef CYTHON_USE_ASYNC_SLOTS + #define CYTHON_USE_ASYNC_SLOTS 0 + #elif !defined(CYTHON_USE_ASYNC_SLOTS) + #define CYTHON_USE_ASYNC_SLOTS 1 + #endif + #undef CYTHON_USE_PYLIST_INTERNALS + #define CYTHON_USE_PYLIST_INTERNALS 0 + #undef CYTHON_USE_UNICODE_INTERNALS + #define CYTHON_USE_UNICODE_INTERNALS 0 + #undef CYTHON_USE_UNICODE_WRITER + #define CYTHON_USE_UNICODE_WRITER 0 + #undef CYTHON_USE_PYLONG_INTERNALS + #define CYTHON_USE_PYLONG_INTERNALS 0 + #undef CYTHON_AVOID_BORROWED_REFS + #define CYTHON_AVOID_BORROWED_REFS 1 + #undef CYTHON_ASSUME_SAFE_MACROS + #define CYTHON_ASSUME_SAFE_MACROS 0 + #undef CYTHON_UNPACK_METHODS + #define CYTHON_UNPACK_METHODS 0 + #undef CYTHON_FAST_THREAD_STATE + #define CYTHON_FAST_THREAD_STATE 0 + #undef CYTHON_FAST_PYCALL + #define CYTHON_FAST_PYCALL 0 + #undef CYTHON_PEP489_MULTI_PHASE_INIT + #define CYTHON_PEP489_MULTI_PHASE_INIT 0 + #undef CYTHON_USE_TP_FINALIZE + #define CYTHON_USE_TP_FINALIZE 0 + #undef CYTHON_USE_DICT_VERSIONS + #define CYTHON_USE_DICT_VERSIONS 0 + #undef CYTHON_USE_EXC_INFO_STACK + #define CYTHON_USE_EXC_INFO_STACK 0 +#elif defined(PYSTON_VERSION) + #define CYTHON_COMPILING_IN_PYPY 0 + #define CYTHON_COMPILING_IN_PYSTON 1 + #define CYTHON_COMPILING_IN_CPYTHON 0 + #ifndef CYTHON_USE_TYPE_SLOTS + #define CYTHON_USE_TYPE_SLOTS 1 + #endif + #undef CYTHON_USE_PYTYPE_LOOKUP + #define CYTHON_USE_PYTYPE_LOOKUP 0 + #undef CYTHON_USE_ASYNC_SLOTS + #define CYTHON_USE_ASYNC_SLOTS 0 + #undef CYTHON_USE_PYLIST_INTERNALS + #define CYTHON_USE_PYLIST_INTERNALS 0 + #ifndef CYTHON_USE_UNICODE_INTERNALS + #define CYTHON_USE_UNICODE_INTERNALS 1 + #endif + #undef CYTHON_USE_UNICODE_WRITER + #define CYTHON_USE_UNICODE_WRITER 0 + #undef CYTHON_USE_PYLONG_INTERNALS + #define CYTHON_USE_PYLONG_INTERNALS 0 + #ifndef CYTHON_AVOID_BORROWED_REFS + #define CYTHON_AVOID_BORROWED_REFS 0 + #endif + #ifndef CYTHON_ASSUME_SAFE_MACROS + #define CYTHON_ASSUME_SAFE_MACROS 1 + #endif + #ifndef CYTHON_UNPACK_METHODS + #define CYTHON_UNPACK_METHODS 1 + #endif + #undef CYTHON_FAST_THREAD_STATE + #define CYTHON_FAST_THREAD_STATE 0 + #undef CYTHON_FAST_PYCALL + #define CYTHON_FAST_PYCALL 0 + #undef CYTHON_PEP489_MULTI_PHASE_INIT + #define CYTHON_PEP489_MULTI_PHASE_INIT 0 + #undef CYTHON_USE_TP_FINALIZE + #define CYTHON_USE_TP_FINALIZE 0 + #undef CYTHON_USE_DICT_VERSIONS + #define CYTHON_USE_DICT_VERSIONS 0 + #undef CYTHON_USE_EXC_INFO_STACK + #define CYTHON_USE_EXC_INFO_STACK 0 +#else + #define CYTHON_COMPILING_IN_PYPY 0 + #define CYTHON_COMPILING_IN_PYSTON 0 + #define CYTHON_COMPILING_IN_CPYTHON 1 + #ifndef CYTHON_USE_TYPE_SLOTS + #define CYTHON_USE_TYPE_SLOTS 1 + #endif + #if PY_VERSION_HEX < 0x02070000 + #undef CYTHON_USE_PYTYPE_LOOKUP + #define CYTHON_USE_PYTYPE_LOOKUP 0 + #elif !defined(CYTHON_USE_PYTYPE_LOOKUP) + #define CYTHON_USE_PYTYPE_LOOKUP 1 + #endif + #if PY_MAJOR_VERSION < 3 + #undef CYTHON_USE_ASYNC_SLOTS + #define CYTHON_USE_ASYNC_SLOTS 0 + #elif !defined(CYTHON_USE_ASYNC_SLOTS) + #define CYTHON_USE_ASYNC_SLOTS 1 + #endif + #if PY_VERSION_HEX < 0x02070000 + #undef CYTHON_USE_PYLONG_INTERNALS + #define CYTHON_USE_PYLONG_INTERNALS 0 + #elif !defined(CYTHON_USE_PYLONG_INTERNALS) + #define CYTHON_USE_PYLONG_INTERNALS 1 + #endif + #ifndef CYTHON_USE_PYLIST_INTERNALS + #define CYTHON_USE_PYLIST_INTERNALS 1 + #endif + #ifndef CYTHON_USE_UNICODE_INTERNALS + #define CYTHON_USE_UNICODE_INTERNALS 1 + #endif + #if PY_VERSION_HEX < 0x030300F0 + #undef CYTHON_USE_UNICODE_WRITER + #define CYTHON_USE_UNICODE_WRITER 0 + #elif !defined(CYTHON_USE_UNICODE_WRITER) + #define CYTHON_USE_UNICODE_WRITER 1 + #endif + #ifndef CYTHON_AVOID_BORROWED_REFS + #define CYTHON_AVOID_BORROWED_REFS 0 + #endif + #ifndef CYTHON_ASSUME_SAFE_MACROS + #define CYTHON_ASSUME_SAFE_MACROS 1 + #endif + #ifndef CYTHON_UNPACK_METHODS + #define CYTHON_UNPACK_METHODS 1 + #endif + #ifndef CYTHON_FAST_THREAD_STATE + #define CYTHON_FAST_THREAD_STATE 1 + #endif + #ifndef CYTHON_FAST_PYCALL + #define CYTHON_FAST_PYCALL 1 + #endif + #ifndef CYTHON_PEP489_MULTI_PHASE_INIT + #define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000) + #endif + #ifndef CYTHON_USE_TP_FINALIZE + #define CYTHON_USE_TP_FINALIZE (PY_VERSION_HEX >= 0x030400a1) + #endif + #ifndef CYTHON_USE_DICT_VERSIONS + #define CYTHON_USE_DICT_VERSIONS (PY_VERSION_HEX >= 0x030600B1) + #endif + #ifndef CYTHON_USE_EXC_INFO_STACK + #define CYTHON_USE_EXC_INFO_STACK (PY_VERSION_HEX >= 0x030700A3) + #endif +#endif +#if !defined(CYTHON_FAST_PYCCALL) +#define CYTHON_FAST_PYCCALL (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1) +#endif +#if CYTHON_USE_PYLONG_INTERNALS + #include "longintrepr.h" + #undef SHIFT + #undef BASE + #undef MASK + #ifdef SIZEOF_VOID_P + enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) }; + #endif +#endif +#ifndef __has_attribute + #define __has_attribute(x) 0 +#endif +#ifndef __has_cpp_attribute + #define __has_cpp_attribute(x) 0 +#endif +#ifndef CYTHON_RESTRICT + #if defined(__GNUC__) + #define CYTHON_RESTRICT __restrict__ + #elif defined(_MSC_VER) && _MSC_VER >= 1400 + #define CYTHON_RESTRICT __restrict + #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L + #define CYTHON_RESTRICT restrict + #else + #define CYTHON_RESTRICT + #endif +#endif +#ifndef CYTHON_UNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define CYTHON_UNUSED __attribute__ ((__unused__)) +# else +# define CYTHON_UNUSED +# endif +# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER)) +# define CYTHON_UNUSED __attribute__ ((__unused__)) +# else +# define CYTHON_UNUSED +# endif +#endif +#ifndef CYTHON_MAYBE_UNUSED_VAR +# if defined(__cplusplus) + template void CYTHON_MAYBE_UNUSED_VAR( const T& ) { } +# else +# define CYTHON_MAYBE_UNUSED_VAR(x) (void)(x) +# endif +#endif +#ifndef CYTHON_NCP_UNUSED +# if CYTHON_COMPILING_IN_CPYTHON +# define CYTHON_NCP_UNUSED +# else +# define CYTHON_NCP_UNUSED CYTHON_UNUSED +# endif +#endif +#define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None) +#ifdef _MSC_VER + #ifndef _MSC_STDINT_H_ + #if _MSC_VER < 1300 + typedef unsigned char uint8_t; + typedef unsigned int uint32_t; + #else + typedef unsigned __int8 uint8_t; + typedef unsigned __int32 uint32_t; + #endif + #endif +#else + #include +#endif +#ifndef CYTHON_FALLTHROUGH + #if defined(__cplusplus) && __cplusplus >= 201103L + #if __has_cpp_attribute(fallthrough) + #define CYTHON_FALLTHROUGH [[fallthrough]] + #elif __has_cpp_attribute(clang::fallthrough) + #define CYTHON_FALLTHROUGH [[clang::fallthrough]] + #elif __has_cpp_attribute(gnu::fallthrough) + #define CYTHON_FALLTHROUGH [[gnu::fallthrough]] + #endif + #endif + #ifndef CYTHON_FALLTHROUGH + #if __has_attribute(fallthrough) + #define CYTHON_FALLTHROUGH __attribute__((fallthrough)) + #else + #define CYTHON_FALLTHROUGH + #endif + #endif + #if defined(__clang__ ) && defined(__apple_build_version__) + #if __apple_build_version__ < 7000000 + #undef CYTHON_FALLTHROUGH + #define CYTHON_FALLTHROUGH + #endif + #endif +#endif + +#ifndef __cplusplus + #error "Cython files generated with the C++ option must be compiled with a C++ compiler." +#endif +#ifndef CYTHON_INLINE + #if defined(__clang__) + #define CYTHON_INLINE __inline__ __attribute__ ((__unused__)) + #else + #define CYTHON_INLINE inline + #endif +#endif +template +void __Pyx_call_destructor(T& x) { + x.~T(); +} +template +class __Pyx_FakeReference { + public: + __Pyx_FakeReference() : ptr(NULL) { } + __Pyx_FakeReference(const T& ref) : ptr(const_cast(&ref)) { } + T *operator->() { return ptr; } + T *operator&() { return ptr; } + operator T&() { return *ptr; } + template bool operator ==(U other) { return *ptr == other; } + template bool operator !=(U other) { return *ptr != other; } + private: + T *ptr; +}; + +#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x02070600 && !defined(Py_OptimizeFlag) + #define Py_OptimizeFlag 0 +#endif +#define __PYX_BUILD_PY_SSIZE_T "n" +#define CYTHON_FORMAT_SSIZE_T "z" +#if PY_MAJOR_VERSION < 3 + #define __Pyx_BUILTIN_MODULE_NAME "__builtin__" + #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ + PyCode_New(a+k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) + #define __Pyx_DefaultClassType PyClass_Type +#else + #define __Pyx_BUILTIN_MODULE_NAME "builtins" +#if PY_VERSION_HEX >= 0x030800A4 && PY_VERSION_HEX < 0x030800B2 + #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ + PyCode_New(a, 0, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) +#else + #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ + PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) +#endif + #define __Pyx_DefaultClassType PyType_Type +#endif +#ifndef Py_TPFLAGS_CHECKTYPES + #define Py_TPFLAGS_CHECKTYPES 0 +#endif +#ifndef Py_TPFLAGS_HAVE_INDEX + #define Py_TPFLAGS_HAVE_INDEX 0 +#endif +#ifndef Py_TPFLAGS_HAVE_NEWBUFFER + #define Py_TPFLAGS_HAVE_NEWBUFFER 0 +#endif +#ifndef Py_TPFLAGS_HAVE_FINALIZE + #define Py_TPFLAGS_HAVE_FINALIZE 0 +#endif +#ifndef METH_STACKLESS + #define METH_STACKLESS 0 +#endif +#if PY_VERSION_HEX <= 0x030700A3 || !defined(METH_FASTCALL) + #ifndef METH_FASTCALL + #define METH_FASTCALL 0x80 + #endif + typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject *const *args, Py_ssize_t nargs); + typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject *const *args, + Py_ssize_t nargs, PyObject *kwnames); +#else + #define __Pyx_PyCFunctionFast _PyCFunctionFast + #define __Pyx_PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords +#endif +#if CYTHON_FAST_PYCCALL +#define __Pyx_PyFastCFunction_Check(func)\ + ((PyCFunction_Check(func) && (METH_FASTCALL == (PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS))))) +#else +#define __Pyx_PyFastCFunction_Check(func) 0 +#endif +#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc) + #define PyObject_Malloc(s) PyMem_Malloc(s) + #define PyObject_Free(p) PyMem_Free(p) + #define PyObject_Realloc(p) PyMem_Realloc(p) +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030400A1 + #define PyMem_RawMalloc(n) PyMem_Malloc(n) + #define PyMem_RawRealloc(p, n) PyMem_Realloc(p, n) + #define PyMem_RawFree(p) PyMem_Free(p) +#endif +#if CYTHON_COMPILING_IN_PYSTON + #define __Pyx_PyCode_HasFreeVars(co) PyCode_HasFreeVars(co) + #define __Pyx_PyFrame_SetLineNumber(frame, lineno) PyFrame_SetLineNumber(frame, lineno) +#else + #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0) + #define __Pyx_PyFrame_SetLineNumber(frame, lineno) (frame)->f_lineno = (lineno) +#endif +#if !CYTHON_FAST_THREAD_STATE || PY_VERSION_HEX < 0x02070000 + #define __Pyx_PyThreadState_Current PyThreadState_GET() +#elif PY_VERSION_HEX >= 0x03060000 + #define __Pyx_PyThreadState_Current _PyThreadState_UncheckedGet() +#elif PY_VERSION_HEX >= 0x03000000 + #define __Pyx_PyThreadState_Current PyThreadState_GET() +#else + #define __Pyx_PyThreadState_Current _PyThreadState_Current +#endif +#if PY_VERSION_HEX < 0x030700A2 && !defined(PyThread_tss_create) && !defined(Py_tss_NEEDS_INIT) +#include "pythread.h" +#define Py_tss_NEEDS_INIT 0 +typedef int Py_tss_t; +static CYTHON_INLINE int PyThread_tss_create(Py_tss_t *key) { + *key = PyThread_create_key(); + return 0; +} +static CYTHON_INLINE Py_tss_t * PyThread_tss_alloc(void) { + Py_tss_t *key = (Py_tss_t *)PyObject_Malloc(sizeof(Py_tss_t)); + *key = Py_tss_NEEDS_INIT; + return key; +} +static CYTHON_INLINE void PyThread_tss_free(Py_tss_t *key) { + PyObject_Free(key); +} +static CYTHON_INLINE int PyThread_tss_is_created(Py_tss_t *key) { + return *key != Py_tss_NEEDS_INIT; +} +static CYTHON_INLINE void PyThread_tss_delete(Py_tss_t *key) { + PyThread_delete_key(*key); + *key = Py_tss_NEEDS_INIT; +} +static CYTHON_INLINE int PyThread_tss_set(Py_tss_t *key, void *value) { + return PyThread_set_key_value(*key, value); +} +static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { + return PyThread_get_key_value(*key); +} +#endif +#if CYTHON_COMPILING_IN_CPYTHON || defined(_PyDict_NewPresized) +#define __Pyx_PyDict_NewPresized(n) ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n)) +#else +#define __Pyx_PyDict_NewPresized(n) PyDict_New() +#endif +#if PY_MAJOR_VERSION >= 3 || CYTHON_FUTURE_DIVISION + #define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y) + #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y) +#else + #define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y) + #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceDivide(x,y) +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 && CYTHON_USE_UNICODE_INTERNALS +#define __Pyx_PyDict_GetItemStr(dict, name) _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash) +#else +#define __Pyx_PyDict_GetItemStr(dict, name) PyDict_GetItem(dict, name) +#endif +#if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND) + #define CYTHON_PEP393_ENABLED 1 + #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ?\ + 0 : _PyUnicode_Ready((PyObject *)(op))) + #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_LENGTH(u) + #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i) + #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) PyUnicode_MAX_CHAR_VALUE(u) + #define __Pyx_PyUnicode_KIND(u) PyUnicode_KIND(u) + #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u) + #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) + #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch) + #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u))) +#else + #define CYTHON_PEP393_ENABLED 0 + #define PyUnicode_1BYTE_KIND 1 + #define PyUnicode_2BYTE_KIND 2 + #define PyUnicode_4BYTE_KIND 4 + #define __Pyx_PyUnicode_READY(op) (0) + #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_SIZE(u) + #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i])) + #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) ((sizeof(Py_UNICODE) == 2) ? 65535 : 1114111) + #define __Pyx_PyUnicode_KIND(u) (sizeof(Py_UNICODE)) + #define __Pyx_PyUnicode_DATA(u) ((void*)PyUnicode_AS_UNICODE(u)) + #define __Pyx_PyUnicode_READ(k, d, i) ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i])) + #define __Pyx_PyUnicode_WRITE(k, d, i, ch) (((void)(k)), ((Py_UNICODE*)d)[i] = ch) + #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_SIZE(u)) +#endif +#if CYTHON_COMPILING_IN_PYPY + #define __Pyx_PyUnicode_Concat(a, b) PyNumber_Add(a, b) + #define __Pyx_PyUnicode_ConcatSafe(a, b) PyNumber_Add(a, b) +#else + #define __Pyx_PyUnicode_Concat(a, b) PyUnicode_Concat(a, b) + #define __Pyx_PyUnicode_ConcatSafe(a, b) ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\ + PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b)) +#endif +#if CYTHON_COMPILING_IN_PYPY && !defined(PyUnicode_Contains) + #define PyUnicode_Contains(u, s) PySequence_Contains(u, s) +#endif +#if CYTHON_COMPILING_IN_PYPY && !defined(PyByteArray_Check) + #define PyByteArray_Check(obj) PyObject_TypeCheck(obj, &PyByteArray_Type) +#endif +#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Format) + #define PyObject_Format(obj, fmt) PyObject_CallMethod(obj, "__format__", "O", fmt) +#endif +#define __Pyx_PyString_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyString_Check(b) && !PyString_CheckExact(b)))) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b)) +#define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyUnicode_Check(b) && !PyUnicode_CheckExact(b)))) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b)) +#if PY_MAJOR_VERSION >= 3 + #define __Pyx_PyString_Format(a, b) PyUnicode_Format(a, b) +#else + #define __Pyx_PyString_Format(a, b) PyString_Format(a, b) +#endif +#if PY_MAJOR_VERSION < 3 && !defined(PyObject_ASCII) + #define PyObject_ASCII(o) PyObject_Repr(o) +#endif +#if PY_MAJOR_VERSION >= 3 + #define PyBaseString_Type PyUnicode_Type + #define PyStringObject PyUnicodeObject + #define PyString_Type PyUnicode_Type + #define PyString_Check PyUnicode_Check + #define PyString_CheckExact PyUnicode_CheckExact + #define PyObject_Unicode PyObject_Str +#endif +#if PY_MAJOR_VERSION >= 3 + #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj) + #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj) +#else + #define __Pyx_PyBaseString_Check(obj) (PyString_Check(obj) || PyUnicode_Check(obj)) + #define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj)) +#endif +#ifndef PySet_CheckExact + #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) +#endif +#if CYTHON_ASSUME_SAFE_MACROS + #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq) +#else + #define __Pyx_PySequence_SIZE(seq) PySequence_Size(seq) +#endif +#if PY_MAJOR_VERSION >= 3 + #define PyIntObject PyLongObject + #define PyInt_Type PyLong_Type + #define PyInt_Check(op) PyLong_Check(op) + #define PyInt_CheckExact(op) PyLong_CheckExact(op) + #define PyInt_FromString PyLong_FromString + #define PyInt_FromUnicode PyLong_FromUnicode + #define PyInt_FromLong PyLong_FromLong + #define PyInt_FromSize_t PyLong_FromSize_t + #define PyInt_FromSsize_t PyLong_FromSsize_t + #define PyInt_AsLong PyLong_AsLong + #define PyInt_AS_LONG PyLong_AS_LONG + #define PyInt_AsSsize_t PyLong_AsSsize_t + #define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask + #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask + #define PyNumber_Int PyNumber_Long +#endif +#if PY_MAJOR_VERSION >= 3 + #define PyBoolObject PyLongObject +#endif +#if PY_MAJOR_VERSION >= 3 && CYTHON_COMPILING_IN_PYPY + #ifndef PyUnicode_InternFromString + #define PyUnicode_InternFromString(s) PyUnicode_FromString(s) + #endif +#endif +#if PY_VERSION_HEX < 0x030200A4 + typedef long Py_hash_t; + #define __Pyx_PyInt_FromHash_t PyInt_FromLong + #define __Pyx_PyInt_AsHash_t PyInt_AsLong +#else + #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t + #define __Pyx_PyInt_AsHash_t PyInt_AsSsize_t +#endif +#if PY_MAJOR_VERSION >= 3 + #define __Pyx_PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : (Py_INCREF(func), func)) +#else + #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass) +#endif +#if CYTHON_USE_ASYNC_SLOTS + #if PY_VERSION_HEX >= 0x030500B1 + #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods + #define __Pyx_PyType_AsAsync(obj) (Py_TYPE(obj)->tp_as_async) + #else + #define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved)) + #endif +#else + #define __Pyx_PyType_AsAsync(obj) NULL +#endif +#ifndef __Pyx_PyAsyncMethodsStruct + typedef struct { + unaryfunc am_await; + unaryfunc am_aiter; + unaryfunc am_anext; + } __Pyx_PyAsyncMethodsStruct; +#endif + +#if defined(WIN32) || defined(MS_WINDOWS) + #define _USE_MATH_DEFINES +#endif +#include +#ifdef NAN +#define __PYX_NAN() ((float) NAN) +#else +static CYTHON_INLINE float __PYX_NAN() { + float value; + memset(&value, 0xFF, sizeof(value)); + return value; +} +#endif +#if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL) +#define __Pyx_truncl trunc +#else +#define __Pyx_truncl truncl +#endif + + +#define __PYX_ERR(f_index, lineno, Ln_error) \ +{ \ + __pyx_filename = __pyx_f[f_index]; __pyx_lineno = lineno; __pyx_clineno = __LINE__; goto Ln_error; \ +} + +#ifndef __PYX_EXTERN_C + #ifdef __cplusplus + #define __PYX_EXTERN_C extern "C" + #else + #define __PYX_EXTERN_C extern + #endif +#endif + +#define __PYX_HAVE__reccdi__src_py__cyth__bridge_cuda +#define __PYX_HAVE_API__reccdi__src_py__cyth__bridge_cuda +/* Early includes */ +#include "ios" +#include "new" +#include "stdexcept" +#include "typeinfo" +#include +#include +#include +#include "../include/bridge.hpp" +#ifdef _OPENMP +#include +#endif /* _OPENMP */ + +#if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS) +#define CYTHON_WITHOUT_ASSERTIONS +#endif + +typedef struct {PyObject **p; const char *s; const Py_ssize_t n; const char* encoding; + const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; + +#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0 +#define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0 +#define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT (PY_MAJOR_VERSION >= 3 && __PYX_DEFAULT_STRING_ENCODING_IS_UTF8) +#define __PYX_DEFAULT_STRING_ENCODING "" +#define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString +#define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize +#define __Pyx_uchar_cast(c) ((unsigned char)c) +#define __Pyx_long_cast(x) ((long)x) +#define __Pyx_fits_Py_ssize_t(v, type, is_signed) (\ + (sizeof(type) < sizeof(Py_ssize_t)) ||\ + (sizeof(type) > sizeof(Py_ssize_t) &&\ + likely(v < (type)PY_SSIZE_T_MAX ||\ + v == (type)PY_SSIZE_T_MAX) &&\ + (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\ + v == (type)PY_SSIZE_T_MIN))) ||\ + (sizeof(type) == sizeof(Py_ssize_t) &&\ + (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\ + v == (type)PY_SSIZE_T_MAX))) ) +static CYTHON_INLINE int __Pyx_is_valid_index(Py_ssize_t i, Py_ssize_t limit) { + return (size_t) i < (size_t) limit; +} +#if defined (__cplusplus) && __cplusplus >= 201103L + #include + #define __Pyx_sst_abs(value) std::abs(value) +#elif SIZEOF_INT >= SIZEOF_SIZE_T + #define __Pyx_sst_abs(value) abs(value) +#elif SIZEOF_LONG >= SIZEOF_SIZE_T + #define __Pyx_sst_abs(value) labs(value) +#elif defined (_MSC_VER) + #define __Pyx_sst_abs(value) ((Py_ssize_t)_abs64(value)) +#elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L + #define __Pyx_sst_abs(value) llabs(value) +#elif defined (__GNUC__) + #define __Pyx_sst_abs(value) __builtin_llabs(value) +#else + #define __Pyx_sst_abs(value) ((value<0) ? -value : value) +#endif +static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject*); +static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length); +#define __Pyx_PyByteArray_FromString(s) PyByteArray_FromStringAndSize((const char*)s, strlen((const char*)s)) +#define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l) +#define __Pyx_PyBytes_FromString PyBytes_FromString +#define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize +static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*); +#if PY_MAJOR_VERSION < 3 + #define __Pyx_PyStr_FromString __Pyx_PyBytes_FromString + #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize +#else + #define __Pyx_PyStr_FromString __Pyx_PyUnicode_FromString + #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize +#endif +#define __Pyx_PyBytes_AsWritableString(s) ((char*) PyBytes_AS_STRING(s)) +#define __Pyx_PyBytes_AsWritableSString(s) ((signed char*) PyBytes_AS_STRING(s)) +#define __Pyx_PyBytes_AsWritableUString(s) ((unsigned char*) PyBytes_AS_STRING(s)) +#define __Pyx_PyBytes_AsString(s) ((const char*) PyBytes_AS_STRING(s)) +#define __Pyx_PyBytes_AsSString(s) ((const signed char*) PyBytes_AS_STRING(s)) +#define __Pyx_PyBytes_AsUString(s) ((const unsigned char*) PyBytes_AS_STRING(s)) +#define __Pyx_PyObject_AsWritableString(s) ((char*) __Pyx_PyObject_AsString(s)) +#define __Pyx_PyObject_AsWritableSString(s) ((signed char*) __Pyx_PyObject_AsString(s)) +#define __Pyx_PyObject_AsWritableUString(s) ((unsigned char*) __Pyx_PyObject_AsString(s)) +#define __Pyx_PyObject_AsSString(s) ((const signed char*) __Pyx_PyObject_AsString(s)) +#define __Pyx_PyObject_AsUString(s) ((const unsigned char*) __Pyx_PyObject_AsString(s)) +#define __Pyx_PyObject_FromCString(s) __Pyx_PyObject_FromString((const char*)s) +#define __Pyx_PyBytes_FromCString(s) __Pyx_PyBytes_FromString((const char*)s) +#define __Pyx_PyByteArray_FromCString(s) __Pyx_PyByteArray_FromString((const char*)s) +#define __Pyx_PyStr_FromCString(s) __Pyx_PyStr_FromString((const char*)s) +#define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s) +static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u) { + const Py_UNICODE *u_end = u; + while (*u_end++) ; + return (size_t)(u_end - u - 1); +} +#define __Pyx_PyUnicode_FromUnicode(u) PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u)) +#define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode +#define __Pyx_PyUnicode_AsUnicode PyUnicode_AsUnicode +#define __Pyx_NewRef(obj) (Py_INCREF(obj), obj) +#define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None) +static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b); +static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*); +static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject*); +static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x); +#define __Pyx_PySequence_Tuple(obj)\ + (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj)) +static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*); +static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t); +#if CYTHON_ASSUME_SAFE_MACROS +#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x)) +#else +#define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x) +#endif +#define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x)) +#if PY_MAJOR_VERSION >= 3 +#define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x)) +#else +#define __Pyx_PyNumber_Int(x) (PyInt_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Int(x)) +#endif +#define __Pyx_PyNumber_Float(x) (PyFloat_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Float(x)) +#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII +static int __Pyx_sys_getdefaultencoding_not_ascii; +static int __Pyx_init_sys_getdefaultencoding_params(void) { + PyObject* sys; + PyObject* default_encoding = NULL; + PyObject* ascii_chars_u = NULL; + PyObject* ascii_chars_b = NULL; + const char* default_encoding_c; + sys = PyImport_ImportModule("sys"); + if (!sys) goto bad; + default_encoding = PyObject_CallMethod(sys, (char*) "getdefaultencoding", NULL); + Py_DECREF(sys); + if (!default_encoding) goto bad; + default_encoding_c = PyBytes_AsString(default_encoding); + if (!default_encoding_c) goto bad; + if (strcmp(default_encoding_c, "ascii") == 0) { + __Pyx_sys_getdefaultencoding_not_ascii = 0; + } else { + char ascii_chars[128]; + int c; + for (c = 0; c < 128; c++) { + ascii_chars[c] = c; + } + __Pyx_sys_getdefaultencoding_not_ascii = 1; + ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL); + if (!ascii_chars_u) goto bad; + ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL); + if (!ascii_chars_b || !PyBytes_Check(ascii_chars_b) || memcmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) { + PyErr_Format( + PyExc_ValueError, + "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.", + default_encoding_c); + goto bad; + } + Py_DECREF(ascii_chars_u); + Py_DECREF(ascii_chars_b); + } + Py_DECREF(default_encoding); + return 0; +bad: + Py_XDECREF(default_encoding); + Py_XDECREF(ascii_chars_u); + Py_XDECREF(ascii_chars_b); + return -1; +} +#endif +#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3 +#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL) +#else +#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL) +#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT +static char* __PYX_DEFAULT_STRING_ENCODING; +static int __Pyx_init_sys_getdefaultencoding_params(void) { + PyObject* sys; + PyObject* default_encoding = NULL; + char* default_encoding_c; + sys = PyImport_ImportModule("sys"); + if (!sys) goto bad; + default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL); + Py_DECREF(sys); + if (!default_encoding) goto bad; + default_encoding_c = PyBytes_AsString(default_encoding); + if (!default_encoding_c) goto bad; + __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c) + 1); + if (!__PYX_DEFAULT_STRING_ENCODING) goto bad; + strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c); + Py_DECREF(default_encoding); + return 0; +bad: + Py_XDECREF(default_encoding); + return -1; +} +#endif +#endif + + +/* Test for GCC > 2.95 */ +#if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95))) + #define likely(x) __builtin_expect(!!(x), 1) + #define unlikely(x) __builtin_expect(!!(x), 0) +#else /* !__GNUC__ or GCC < 2.95 */ + #define likely(x) (x) + #define unlikely(x) (x) +#endif /* __GNUC__ */ +static CYTHON_INLINE void __Pyx_pretend_to_initialize(void* ptr) { (void)ptr; } + +static PyObject *__pyx_m = NULL; +static PyObject *__pyx_d; +static PyObject *__pyx_b; +static PyObject *__pyx_cython_runtime = NULL; +static PyObject *__pyx_empty_tuple; +static PyObject *__pyx_empty_bytes; +static PyObject *__pyx_empty_unicode; +static int __pyx_lineno; +static int __pyx_clineno = 0; +static const char * __pyx_cfilenm= __FILE__; +static const char *__pyx_filename; + + +static const char *__pyx_f[] = { + "stringsource", + "reccdi/src_py/cyth/bridge_cuda.pyx", +}; + +/*--- Type declarations ---*/ +struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge; + +/* "reccdi/src_py/cyth/bridge_cuda.pyx":36 + * + * + * cdef class PyBridge: # <<<<<<<<<<<<<< + * cdef Bridge *thisptr + * def __cinit__(self): + */ +struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge { + PyObject_HEAD + Bridge *thisptr; +}; + + +/* --- Runtime support code (head) --- */ +/* Refnanny.proto */ +#ifndef CYTHON_REFNANNY + #define CYTHON_REFNANNY 0 +#endif +#if CYTHON_REFNANNY + typedef struct { + void (*INCREF)(void*, PyObject*, int); + void (*DECREF)(void*, PyObject*, int); + void (*GOTREF)(void*, PyObject*, int); + void (*GIVEREF)(void*, PyObject*, int); + void* (*SetupContext)(const char*, int, const char*); + void (*FinishContext)(void**); + } __Pyx_RefNannyAPIStruct; + static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL; + static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname); + #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL; +#ifdef WITH_THREAD + #define __Pyx_RefNannySetupContext(name, acquire_gil)\ + if (acquire_gil) {\ + PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\ + __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\ + PyGILState_Release(__pyx_gilstate_save);\ + } else {\ + __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\ + } +#else + #define __Pyx_RefNannySetupContext(name, acquire_gil)\ + __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__) +#endif + #define __Pyx_RefNannyFinishContext()\ + __Pyx_RefNanny->FinishContext(&__pyx_refnanny) + #define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__) + #define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__) + #define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__) + #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__) + #define __Pyx_XINCREF(r) do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0) + #define __Pyx_XDECREF(r) do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0) + #define __Pyx_XGOTREF(r) do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0) + #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0) +#else + #define __Pyx_RefNannyDeclarations + #define __Pyx_RefNannySetupContext(name, acquire_gil) + #define __Pyx_RefNannyFinishContext() + #define __Pyx_INCREF(r) Py_INCREF(r) + #define __Pyx_DECREF(r) Py_DECREF(r) + #define __Pyx_GOTREF(r) + #define __Pyx_GIVEREF(r) + #define __Pyx_XINCREF(r) Py_XINCREF(r) + #define __Pyx_XDECREF(r) Py_XDECREF(r) + #define __Pyx_XGOTREF(r) + #define __Pyx_XGIVEREF(r) +#endif +#define __Pyx_XDECREF_SET(r, v) do {\ + PyObject *tmp = (PyObject *) r;\ + r = v; __Pyx_XDECREF(tmp);\ + } while (0) +#define __Pyx_DECREF_SET(r, v) do {\ + PyObject *tmp = (PyObject *) r;\ + r = v; __Pyx_DECREF(tmp);\ + } while (0) +#define __Pyx_CLEAR(r) do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0) +#define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0) + +/* PyObjectGetAttrStr.proto */ +#if CYTHON_USE_TYPE_SLOTS +static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name); +#else +#define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n) +#endif + +/* GetBuiltinName.proto */ +static PyObject *__Pyx_GetBuiltinName(PyObject *name); + +/* RaiseArgTupleInvalid.proto */ +static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact, + Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); + +/* KeywordStringCheck.proto */ +static int __Pyx_CheckKeywordStrings(PyObject *kwdict, const char* function_name, int kw_allowed); + +/* RaiseDoubleKeywords.proto */ +static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name); + +/* ParseKeywords.proto */ +static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[],\ + PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args,\ + const char* function_name); + +/* PyFunctionFastCall.proto */ +#if CYTHON_FAST_PYCALL +#define __Pyx_PyFunction_FastCall(func, args, nargs)\ + __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL) +#if 1 || PY_VERSION_HEX < 0x030600B1 +static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs); +#else +#define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs) +#endif +#define __Pyx_BUILD_ASSERT_EXPR(cond)\ + (sizeof(char [1 - 2*!(cond)]) - 1) +#ifndef Py_MEMBER_SIZE +#define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member) +#endif + static size_t __pyx_pyframe_localsplus_offset = 0; + #include "frameobject.h" + #define __Pxy_PyFrame_Initialize_Offsets()\ + ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\ + (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus))) + #define __Pyx_PyFrame_GetLocalsplus(frame)\ + (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset)) +#endif + +/* PyObjectCall.proto */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw); +#else +#define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw) +#endif + +/* PyObjectCallMethO.proto */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg); +#endif + +/* PyObjectCallNoArg.proto */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func); +#else +#define __Pyx_PyObject_CallNoArg(func) __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL) +#endif + +/* PyCFunctionFastCall.proto */ +#if CYTHON_FAST_PYCCALL +static CYTHON_INLINE PyObject *__Pyx_PyCFunction_FastCall(PyObject *func, PyObject **args, Py_ssize_t nargs); +#else +#define __Pyx_PyCFunction_FastCall(func, args, nargs) (assert(0), NULL) +#endif + +/* PyObjectCallOneArg.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg); + +/* PyThreadStateGet.proto */ +#if CYTHON_FAST_THREAD_STATE +#define __Pyx_PyThreadState_declare PyThreadState *__pyx_tstate; +#define __Pyx_PyThreadState_assign __pyx_tstate = __Pyx_PyThreadState_Current; +#define __Pyx_PyErr_Occurred() __pyx_tstate->curexc_type +#else +#define __Pyx_PyThreadState_declare +#define __Pyx_PyThreadState_assign +#define __Pyx_PyErr_Occurred() PyErr_Occurred() +#endif + +/* PyErrFetchRestore.proto */ +#if CYTHON_FAST_THREAD_STATE +#define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL) +#define __Pyx_ErrRestoreWithState(type, value, tb) __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb) +#define __Pyx_ErrFetchWithState(type, value, tb) __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb) +#define __Pyx_ErrRestore(type, value, tb) __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb) +#define __Pyx_ErrFetch(type, value, tb) __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb) +static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb); +static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); +#if CYTHON_COMPILING_IN_CPYTHON +#define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL)) +#else +#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) +#endif +#else +#define __Pyx_PyErr_Clear() PyErr_Clear() +#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) +#define __Pyx_ErrRestoreWithState(type, value, tb) PyErr_Restore(type, value, tb) +#define __Pyx_ErrFetchWithState(type, value, tb) PyErr_Fetch(type, value, tb) +#define __Pyx_ErrRestoreInState(tstate, type, value, tb) PyErr_Restore(type, value, tb) +#define __Pyx_ErrFetchInState(tstate, type, value, tb) PyErr_Fetch(type, value, tb) +#define __Pyx_ErrRestore(type, value, tb) PyErr_Restore(type, value, tb) +#define __Pyx_ErrFetch(type, value, tb) PyErr_Fetch(type, value, tb) +#endif + +/* RaiseException.proto */ +static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); + +/* ListCompAppend.proto */ +#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS +static CYTHON_INLINE int __Pyx_ListComp_Append(PyObject* list, PyObject* x) { + PyListObject* L = (PyListObject*) list; + Py_ssize_t len = Py_SIZE(list); + if (likely(L->allocated > len)) { + Py_INCREF(x); + PyList_SET_ITEM(list, len, x); + Py_SIZE(list) = len+1; + return 0; + } + return PyList_Append(list, x); +} +#else +#define __Pyx_ListComp_Append(L,x) PyList_Append(L,x) +#endif + +/* PyObject_GenericGetAttrNoDict.proto */ +#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 +static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name); +#else +#define __Pyx_PyObject_GenericGetAttrNoDict PyObject_GenericGetAttr +#endif + +/* PyObject_GenericGetAttr.proto */ +#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 +static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name); +#else +#define __Pyx_PyObject_GenericGetAttr PyObject_GenericGetAttr +#endif + +/* SetupReduce.proto */ +static int __Pyx_setup_reduce(PyObject* type_obj); + +/* PyDictVersioning.proto */ +#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS +#define __PYX_DICT_VERSION_INIT ((PY_UINT64_T) -1) +#define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag) +#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\ + (version_var) = __PYX_GET_DICT_VERSION(dict);\ + (cache_var) = (value); +#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\ + static PY_UINT64_T __pyx_dict_version = 0;\ + static PyObject *__pyx_dict_cached_value = NULL;\ + if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\ + (VAR) = __pyx_dict_cached_value;\ + } else {\ + (VAR) = __pyx_dict_cached_value = (LOOKUP);\ + __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\ + }\ +} +static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj); +static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj); +static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version); +#else +#define __PYX_GET_DICT_VERSION(dict) (0) +#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var) +#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) (VAR) = (LOOKUP); +#endif + +/* CLineInTraceback.proto */ +#ifdef CYTHON_CLINE_IN_TRACEBACK +#define __Pyx_CLineForTraceback(tstate, c_line) (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0) +#else +static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line); +#endif + +/* CodeObjectCache.proto */ +typedef struct { + PyCodeObject* code_object; + int code_line; +} __Pyx_CodeObjectCacheEntry; +struct __Pyx_CodeObjectCache { + int count; + int max_count; + __Pyx_CodeObjectCacheEntry* entries; +}; +static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL}; +static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line); +static PyCodeObject *__pyx_find_code_object(int code_line); +static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object); + +/* AddTraceback.proto */ +static void __Pyx_AddTraceback(const char *funcname, int c_line, + int py_line, const char *filename); + +/* CppExceptionConversion.proto */ +#ifndef __Pyx_CppExn2PyErr +#include +#include +#include +#include +static void __Pyx_CppExn2PyErr() { + try { + if (PyErr_Occurred()) + ; // let the latest Python exn pass through and ignore the current one + else + throw; + } catch (const std::bad_alloc& exn) { + PyErr_SetString(PyExc_MemoryError, exn.what()); + } catch (const std::bad_cast& exn) { + PyErr_SetString(PyExc_TypeError, exn.what()); + } catch (const std::bad_typeid& exn) { + PyErr_SetString(PyExc_TypeError, exn.what()); + } catch (const std::domain_error& exn) { + PyErr_SetString(PyExc_ValueError, exn.what()); + } catch (const std::invalid_argument& exn) { + PyErr_SetString(PyExc_ValueError, exn.what()); + } catch (const std::ios_base::failure& exn) { + PyErr_SetString(PyExc_IOError, exn.what()); + } catch (const std::out_of_range& exn) { + PyErr_SetString(PyExc_IndexError, exn.what()); + } catch (const std::overflow_error& exn) { + PyErr_SetString(PyExc_OverflowError, exn.what()); + } catch (const std::range_error& exn) { + PyErr_SetString(PyExc_ArithmeticError, exn.what()); + } catch (const std::underflow_error& exn) { + PyErr_SetString(PyExc_ArithmeticError, exn.what()); + } catch (const std::exception& exn) { + PyErr_SetString(PyExc_RuntimeError, exn.what()); + } + catch (...) + { + PyErr_SetString(PyExc_RuntimeError, "Unknown exception"); + } +} +#endif + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); + +/* CIntFromPy.proto */ +static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); + +/* CIntFromPy.proto */ +static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *); + +/* FastTypeChecks.proto */ +#if CYTHON_COMPILING_IN_CPYTHON +#define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type) +static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b); +static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type); +static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2); +#else +#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type) +#define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type) +#define __Pyx_PyErr_GivenExceptionMatches2(err, type1, type2) (PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2)) +#endif +#define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception) + +/* CheckBinaryVersion.proto */ +static int __Pyx_check_binary_version(void); + +/* InitStrings.proto */ +static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); + + +/* Module declarations from 'libcpp.vector' */ + +/* Module declarations from 'libc.string' */ + +/* Module declarations from 'libcpp.string' */ + +/* Module declarations from 'reccdi.src_py.cyth.bridge_cuda' */ +static PyTypeObject *__pyx_ptype_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge = 0; +static std::vector __pyx_convert_vector_from_py_float(PyObject *); /*proto*/ +static std::vector __pyx_convert_vector_from_py_int(PyObject *); /*proto*/ +static std::string __pyx_convert_string_from_py_std__in_string(PyObject *); /*proto*/ +static PyObject *__pyx_convert_vector_to_py_double(const std::vector &); /*proto*/ +static PyObject *__pyx_convert_vector_to_py_float(const std::vector &); /*proto*/ +static PyObject *__pyx_convert_vector_to_py_int(const std::vector &); /*proto*/ +#define __Pyx_MODULE_NAME "reccdi.src_py.cyth.bridge_cuda" +extern int __pyx_module_is_main_reccdi__src_py__cyth__bridge_cuda; +int __pyx_module_is_main_reccdi__src_py__cyth__bridge_cuda = 0; + +/* Implementation of 'reccdi.src_py.cyth.bridge_cuda' */ +static PyObject *__pyx_builtin_TypeError; +static PyObject *__pyx_builtin_range; +static const char __pyx_k_coh[] = "coh"; +static const char __pyx_k_dims[] = "dims"; +static const char __pyx_k_main[] = "__main__"; +static const char __pyx_k_name[] = "__name__"; +static const char __pyx_k_test[] = "__test__"; +static const char __pyx_k_range[] = "range"; +static const char __pyx_k_config[] = "config"; +static const char __pyx_k_data_r[] = "data_r"; +static const char __pyx_k_device[] = "device"; +static const char __pyx_k_encode[] = "encode"; +static const char __pyx_k_reduce[] = "__reduce__"; +static const char __pyx_k_guess_i[] = "guess_i"; +static const char __pyx_k_guess_r[] = "guess_r"; +static const char __pyx_k_support[] = "support"; +static const char __pyx_k_PyBridge[] = "PyBridge"; +static const char __pyx_k_coh_dims[] = "coh_dims"; +static const char __pyx_k_getstate[] = "__getstate__"; +static const char __pyx_k_setstate[] = "__setstate__"; +static const char __pyx_k_TypeError[] = "TypeError"; +static const char __pyx_k_reduce_ex[] = "__reduce_ex__"; +static const char __pyx_k_reduce_cython[] = "__reduce_cython__"; +static const char __pyx_k_setstate_cython[] = "__setstate_cython__"; +static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; +static const char __pyx_k_no_default___reduce___due_to_non[] = "no default __reduce__ due to non-trivial __cinit__"; +static PyObject *__pyx_n_s_PyBridge; +static PyObject *__pyx_n_s_TypeError; +static PyObject *__pyx_n_s_cline_in_traceback; +static PyObject *__pyx_n_s_coh; +static PyObject *__pyx_n_s_coh_dims; +static PyObject *__pyx_n_s_config; +static PyObject *__pyx_n_s_data_r; +static PyObject *__pyx_n_s_device; +static PyObject *__pyx_n_s_dims; +static PyObject *__pyx_n_s_encode; +static PyObject *__pyx_n_s_getstate; +static PyObject *__pyx_n_s_guess_i; +static PyObject *__pyx_n_s_guess_r; +static PyObject *__pyx_n_s_main; +static PyObject *__pyx_n_s_name; +static PyObject *__pyx_kp_s_no_default___reduce___due_to_non; +static PyObject *__pyx_n_s_range; +static PyObject *__pyx_n_s_reduce; +static PyObject *__pyx_n_s_reduce_cython; +static PyObject *__pyx_n_s_reduce_ex; +static PyObject *__pyx_n_s_setstate; +static PyObject *__pyx_n_s_setstate_cython; +static PyObject *__pyx_n_s_support; +static PyObject *__pyx_n_s_test; +static int __pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge___cinit__(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self); /* proto */ +static void __pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_2__dealloc__(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_4start_calc_with_guess(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_guess_r, PyObject *__pyx_v_guess_i, PyObject *__pyx_v_dims, PyObject *__pyx_v_config); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_6start_calc_with_guess_support(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_guess_r, PyObject *__pyx_v_guess_i, PyObject *__pyx_v_support, PyObject *__pyx_v_dims, PyObject *__pyx_v_config); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_8start_calc_with_guess_support_coh(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_guess_r, PyObject *__pyx_v_guess_i, PyObject *__pyx_v_support, PyObject *__pyx_v_dims, PyObject *__pyx_v_coh, PyObject *__pyx_v_coh_dims, PyObject *__pyx_v_config); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_10start_calc(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_dims, PyObject *__pyx_v_config); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_12get_image_r(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_14get_image_i(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_16get_errors(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_18get_support(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_20get_coherence(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_22get_reciprocal_r(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_24get_reciprocal_i(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_26get_flow(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_28get_iter_flow(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_30cleanup(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_32__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_34__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ +static PyObject *__pyx_tp_new_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tuple_; +static PyObject *__pyx_tuple__2; +/* Late includes */ + +/* "reccdi/src_py/cyth/bridge_cuda.pyx":38 + * cdef class PyBridge: + * cdef Bridge *thisptr + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.thisptr = new Bridge() + * def __dealloc__(self): + */ + +/* Python wrapper */ +static int __pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge___cinit__(((struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge___cinit__(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self) { + int __pyx_r; + __Pyx_RefNannyDeclarations + Bridge *__pyx_t_1; + __Pyx_RefNannySetupContext("__cinit__", 0); + + /* "reccdi/src_py/cyth/bridge_cuda.pyx":39 + * cdef Bridge *thisptr + * def __cinit__(self): + * self.thisptr = new Bridge() # <<<<<<<<<<<<<< + * def __dealloc__(self): + * del self.thisptr + */ + try { + __pyx_t_1 = new Bridge(); + } catch(...) { + __Pyx_CppExn2PyErr(); + __PYX_ERR(1, 39, __pyx_L1_error) + } + __pyx_v_self->thisptr = __pyx_t_1; + + /* "reccdi/src_py/cyth/bridge_cuda.pyx":38 + * cdef class PyBridge: + * cdef Bridge *thisptr + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.thisptr = new Bridge() + * def __dealloc__(self): + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cuda.PyBridge.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "reccdi/src_py/cyth/bridge_cuda.pyx":40 + * def __cinit__(self): + * self.thisptr = new Bridge() + * def __dealloc__(self): # <<<<<<<<<<<<<< + * del self.thisptr + * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): + */ + +/* Python wrapper */ +static void __pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_3__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_3__dealloc__(PyObject *__pyx_v_self) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_2__dealloc__(((struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_2__dealloc__(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__", 0); + + /* "reccdi/src_py/cyth/bridge_cuda.pyx":41 + * self.thisptr = new Bridge() + * def __dealloc__(self): + * del self.thisptr # <<<<<<<<<<<<<< + * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): + * self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) + */ + delete __pyx_v_self->thisptr; + + /* "reccdi/src_py/cyth/bridge_cuda.pyx":40 + * def __cinit__(self): + * self.thisptr = new Bridge() + * def __dealloc__(self): # <<<<<<<<<<<<<< + * del self.thisptr + * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): + */ + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +/* "reccdi/src_py/cyth/bridge_cuda.pyx":42 + * def __dealloc__(self): + * del self.thisptr + * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): # <<<<<<<<<<<<<< + * self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) + * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_5start_calc_with_guess(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_5start_calc_with_guess(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_device = 0; + PyObject *__pyx_v_data_r = 0; + PyObject *__pyx_v_guess_r = 0; + PyObject *__pyx_v_guess_i = 0; + PyObject *__pyx_v_dims = 0; + PyObject *__pyx_v_config = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("start_calc_with_guess (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_device,&__pyx_n_s_data_r,&__pyx_n_s_guess_r,&__pyx_n_s_guess_i,&__pyx_n_s_dims,&__pyx_n_s_config,0}; + PyObject* values[6] = {0,0,0,0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_device)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_data_r)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess", 1, 6, 6, 1); __PYX_ERR(1, 42, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_guess_r)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess", 1, 6, 6, 2); __PYX_ERR(1, 42, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_guess_i)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess", 1, 6, 6, 3); __PYX_ERR(1, 42, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 4: + if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dims)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess", 1, 6, 6, 4); __PYX_ERR(1, 42, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 5: + if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_config)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess", 1, 6, 6, 5); __PYX_ERR(1, 42, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "start_calc_with_guess") < 0)) __PYX_ERR(1, 42, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 6) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + } + __pyx_v_device = values[0]; + __pyx_v_data_r = values[1]; + __pyx_v_guess_r = values[2]; + __pyx_v_guess_i = values[3]; + __pyx_v_dims = values[4]; + __pyx_v_config = values[5]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 42, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cuda.PyBridge.start_calc_with_guess", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_4start_calc_with_guess(((struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *)__pyx_v_self), __pyx_v_device, __pyx_v_data_r, __pyx_v_guess_r, __pyx_v_guess_i, __pyx_v_dims, __pyx_v_config); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_4start_calc_with_guess(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_guess_r, PyObject *__pyx_v_guess_i, PyObject *__pyx_v_dims, PyObject *__pyx_v_config) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + std::vector __pyx_t_2; + std::vector __pyx_t_3; + std::vector __pyx_t_4; + std::vector __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + std::string __pyx_t_9; + __Pyx_RefNannySetupContext("start_calc_with_guess", 0); + + /* "reccdi/src_py/cyth/bridge_cuda.pyx":43 + * del self.thisptr + * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): + * self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) # <<<<<<<<<<<<<< + * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): + * self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) + */ + __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_device); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 43, __pyx_L1_error) + __pyx_t_2 = __pyx_convert_vector_from_py_float(__pyx_v_data_r); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 43, __pyx_L1_error) + __pyx_t_3 = __pyx_convert_vector_from_py_float(__pyx_v_guess_r); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 43, __pyx_L1_error) + __pyx_t_4 = __pyx_convert_vector_from_py_float(__pyx_v_guess_i); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 43, __pyx_L1_error) + __pyx_t_5 = __pyx_convert_vector_from_py_int(__pyx_v_dims); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 43, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_config, __pyx_n_s_encode); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 43, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_7, function); + } + } + __pyx_t_6 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 43, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_9 = __pyx_convert_string_from_py_std__in_string(__pyx_t_6); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 43, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_v_self->thisptr->StartCalcWithGuess(__pyx_t_1, __pyx_t_2, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_9); + + /* "reccdi/src_py/cyth/bridge_cuda.pyx":42 + * def __dealloc__(self): + * del self.thisptr + * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): # <<<<<<<<<<<<<< + * self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) + * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cuda.PyBridge.start_calc_with_guess", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "reccdi/src_py/cyth/bridge_cuda.pyx":44 + * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): + * self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) + * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): # <<<<<<<<<<<<<< + * self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) + * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_7start_calc_with_guess_support(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_7start_calc_with_guess_support(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_device = 0; + PyObject *__pyx_v_data_r = 0; + PyObject *__pyx_v_guess_r = 0; + PyObject *__pyx_v_guess_i = 0; + PyObject *__pyx_v_support = 0; + PyObject *__pyx_v_dims = 0; + PyObject *__pyx_v_config = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("start_calc_with_guess_support (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_device,&__pyx_n_s_data_r,&__pyx_n_s_guess_r,&__pyx_n_s_guess_i,&__pyx_n_s_support,&__pyx_n_s_dims,&__pyx_n_s_config,0}; + PyObject* values[7] = {0,0,0,0,0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); + CYTHON_FALLTHROUGH; + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_device)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_data_r)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support", 1, 7, 7, 1); __PYX_ERR(1, 44, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_guess_r)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support", 1, 7, 7, 2); __PYX_ERR(1, 44, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_guess_i)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support", 1, 7, 7, 3); __PYX_ERR(1, 44, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 4: + if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_support)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support", 1, 7, 7, 4); __PYX_ERR(1, 44, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 5: + if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dims)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support", 1, 7, 7, 5); __PYX_ERR(1, 44, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 6: + if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_config)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support", 1, 7, 7, 6); __PYX_ERR(1, 44, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "start_calc_with_guess_support") < 0)) __PYX_ERR(1, 44, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 7) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + values[6] = PyTuple_GET_ITEM(__pyx_args, 6); + } + __pyx_v_device = values[0]; + __pyx_v_data_r = values[1]; + __pyx_v_guess_r = values[2]; + __pyx_v_guess_i = values[3]; + __pyx_v_support = values[4]; + __pyx_v_dims = values[5]; + __pyx_v_config = values[6]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support", 1, 7, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 44, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cuda.PyBridge.start_calc_with_guess_support", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_6start_calc_with_guess_support(((struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *)__pyx_v_self), __pyx_v_device, __pyx_v_data_r, __pyx_v_guess_r, __pyx_v_guess_i, __pyx_v_support, __pyx_v_dims, __pyx_v_config); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_6start_calc_with_guess_support(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_guess_r, PyObject *__pyx_v_guess_i, PyObject *__pyx_v_support, PyObject *__pyx_v_dims, PyObject *__pyx_v_config) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + std::vector __pyx_t_2; + std::vector __pyx_t_3; + std::vector __pyx_t_4; + std::vector __pyx_t_5; + std::vector __pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + std::string __pyx_t_10; + __Pyx_RefNannySetupContext("start_calc_with_guess_support", 0); + + /* "reccdi/src_py/cyth/bridge_cuda.pyx":45 + * self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) + * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): + * self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) # <<<<<<<<<<<<<< + * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): + * self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) + */ + __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_device); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 45, __pyx_L1_error) + __pyx_t_2 = __pyx_convert_vector_from_py_float(__pyx_v_data_r); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 45, __pyx_L1_error) + __pyx_t_3 = __pyx_convert_vector_from_py_float(__pyx_v_guess_r); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 45, __pyx_L1_error) + __pyx_t_4 = __pyx_convert_vector_from_py_float(__pyx_v_guess_i); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 45, __pyx_L1_error) + __pyx_t_5 = __pyx_convert_vector_from_py_int(__pyx_v_support); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 45, __pyx_L1_error) + __pyx_t_6 = __pyx_convert_vector_from_py_int(__pyx_v_dims); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 45, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_config, __pyx_n_s_encode); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 45, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_9 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { + __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8); + if (likely(__pyx_t_9)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); + __Pyx_INCREF(__pyx_t_9); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_8, function); + } + } + __pyx_t_7 = (__pyx_t_9) ? __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_9) : __Pyx_PyObject_CallNoArg(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 45, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_10 = __pyx_convert_string_from_py_std__in_string(__pyx_t_7); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 45, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_v_self->thisptr->StartCalcWithGuessSupport(__pyx_t_1, __pyx_t_2, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6, __pyx_t_10); + + /* "reccdi/src_py/cyth/bridge_cuda.pyx":44 + * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): + * self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) + * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): # <<<<<<<<<<<<<< + * self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) + * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cuda.PyBridge.start_calc_with_guess_support", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "reccdi/src_py/cyth/bridge_cuda.pyx":46 + * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): + * self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) + * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): # <<<<<<<<<<<<<< + * self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) + * def start_calc(self, device, data_r, dims, config): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_9start_calc_with_guess_support_coh(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_9start_calc_with_guess_support_coh(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_device = 0; + PyObject *__pyx_v_data_r = 0; + PyObject *__pyx_v_guess_r = 0; + PyObject *__pyx_v_guess_i = 0; + PyObject *__pyx_v_support = 0; + PyObject *__pyx_v_dims = 0; + PyObject *__pyx_v_coh = 0; + PyObject *__pyx_v_coh_dims = 0; + PyObject *__pyx_v_config = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("start_calc_with_guess_support_coh (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_device,&__pyx_n_s_data_r,&__pyx_n_s_guess_r,&__pyx_n_s_guess_i,&__pyx_n_s_support,&__pyx_n_s_dims,&__pyx_n_s_coh,&__pyx_n_s_coh_dims,&__pyx_n_s_config,0}; + PyObject* values[9] = {0,0,0,0,0,0,0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8); + CYTHON_FALLTHROUGH; + case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7); + CYTHON_FALLTHROUGH; + case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); + CYTHON_FALLTHROUGH; + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_device)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_data_r)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 1); __PYX_ERR(1, 46, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_guess_r)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 2); __PYX_ERR(1, 46, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_guess_i)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 3); __PYX_ERR(1, 46, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 4: + if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_support)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 4); __PYX_ERR(1, 46, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 5: + if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dims)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 5); __PYX_ERR(1, 46, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 6: + if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_coh)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 6); __PYX_ERR(1, 46, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 7: + if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_coh_dims)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 7); __PYX_ERR(1, 46, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 8: + if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_config)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 8); __PYX_ERR(1, 46, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "start_calc_with_guess_support_coh") < 0)) __PYX_ERR(1, 46, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 9) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + values[6] = PyTuple_GET_ITEM(__pyx_args, 6); + values[7] = PyTuple_GET_ITEM(__pyx_args, 7); + values[8] = PyTuple_GET_ITEM(__pyx_args, 8); + } + __pyx_v_device = values[0]; + __pyx_v_data_r = values[1]; + __pyx_v_guess_r = values[2]; + __pyx_v_guess_i = values[3]; + __pyx_v_support = values[4]; + __pyx_v_dims = values[5]; + __pyx_v_coh = values[6]; + __pyx_v_coh_dims = values[7]; + __pyx_v_config = values[8]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 46, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cuda.PyBridge.start_calc_with_guess_support_coh", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_8start_calc_with_guess_support_coh(((struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *)__pyx_v_self), __pyx_v_device, __pyx_v_data_r, __pyx_v_guess_r, __pyx_v_guess_i, __pyx_v_support, __pyx_v_dims, __pyx_v_coh, __pyx_v_coh_dims, __pyx_v_config); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_8start_calc_with_guess_support_coh(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_guess_r, PyObject *__pyx_v_guess_i, PyObject *__pyx_v_support, PyObject *__pyx_v_dims, PyObject *__pyx_v_coh, PyObject *__pyx_v_coh_dims, PyObject *__pyx_v_config) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + std::vector __pyx_t_2; + std::vector __pyx_t_3; + std::vector __pyx_t_4; + std::vector __pyx_t_5; + std::vector __pyx_t_6; + std::vector __pyx_t_7; + std::vector __pyx_t_8; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + std::string __pyx_t_12; + __Pyx_RefNannySetupContext("start_calc_with_guess_support_coh", 0); + + /* "reccdi/src_py/cyth/bridge_cuda.pyx":47 + * self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) + * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): + * self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) # <<<<<<<<<<<<<< + * def start_calc(self, device, data_r, dims, config): + * self.thisptr.StartCalc(device, data_r, dims, config.encode()) + */ + __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_device); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 47, __pyx_L1_error) + __pyx_t_2 = __pyx_convert_vector_from_py_float(__pyx_v_data_r); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 47, __pyx_L1_error) + __pyx_t_3 = __pyx_convert_vector_from_py_float(__pyx_v_guess_r); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 47, __pyx_L1_error) + __pyx_t_4 = __pyx_convert_vector_from_py_float(__pyx_v_guess_i); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 47, __pyx_L1_error) + __pyx_t_5 = __pyx_convert_vector_from_py_int(__pyx_v_support); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 47, __pyx_L1_error) + __pyx_t_6 = __pyx_convert_vector_from_py_int(__pyx_v_dims); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 47, __pyx_L1_error) + __pyx_t_7 = __pyx_convert_vector_from_py_float(__pyx_v_coh); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 47, __pyx_L1_error) + __pyx_t_8 = __pyx_convert_vector_from_py_int(__pyx_v_coh_dims); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 47, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_config, __pyx_n_s_encode); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 47, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_11 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) { + __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_10); + if (likely(__pyx_t_11)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); + __Pyx_INCREF(__pyx_t_11); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_10, function); + } + } + __pyx_t_9 = (__pyx_t_11) ? __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_11) : __Pyx_PyObject_CallNoArg(__pyx_t_10); + __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 47, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_12 = __pyx_convert_string_from_py_std__in_string(__pyx_t_9); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 47, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_v_self->thisptr->StartCalcWithGuessSupportCoh(__pyx_t_1, __pyx_t_2, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6, __pyx_t_7, __pyx_t_8, __pyx_t_12); + + /* "reccdi/src_py/cyth/bridge_cuda.pyx":46 + * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): + * self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) + * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): # <<<<<<<<<<<<<< + * self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) + * def start_calc(self, device, data_r, dims, config): + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_XDECREF(__pyx_t_11); + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cuda.PyBridge.start_calc_with_guess_support_coh", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "reccdi/src_py/cyth/bridge_cuda.pyx":48 + * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): + * self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) + * def start_calc(self, device, data_r, dims, config): # <<<<<<<<<<<<<< + * self.thisptr.StartCalc(device, data_r, dims, config.encode()) + * def get_image_r(self): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_11start_calc(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_11start_calc(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_device = 0; + PyObject *__pyx_v_data_r = 0; + PyObject *__pyx_v_dims = 0; + PyObject *__pyx_v_config = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("start_calc (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_device,&__pyx_n_s_data_r,&__pyx_n_s_dims,&__pyx_n_s_config,0}; + PyObject* values[4] = {0,0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_device)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_data_r)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc", 1, 4, 4, 1); __PYX_ERR(1, 48, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dims)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc", 1, 4, 4, 2); __PYX_ERR(1, 48, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_config)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc", 1, 4, 4, 3); __PYX_ERR(1, 48, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "start_calc") < 0)) __PYX_ERR(1, 48, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + } + __pyx_v_device = values[0]; + __pyx_v_data_r = values[1]; + __pyx_v_dims = values[2]; + __pyx_v_config = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("start_calc", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 48, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cuda.PyBridge.start_calc", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_10start_calc(((struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *)__pyx_v_self), __pyx_v_device, __pyx_v_data_r, __pyx_v_dims, __pyx_v_config); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_10start_calc(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_dims, PyObject *__pyx_v_config) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + std::vector __pyx_t_2; + std::vector __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + std::string __pyx_t_7; + __Pyx_RefNannySetupContext("start_calc", 0); + + /* "reccdi/src_py/cyth/bridge_cuda.pyx":49 + * self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) + * def start_calc(self, device, data_r, dims, config): + * self.thisptr.StartCalc(device, data_r, dims, config.encode()) # <<<<<<<<<<<<<< + * def get_image_r(self): + * return self.thisptr.GetImageR() + */ + __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_device); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 49, __pyx_L1_error) + __pyx_t_2 = __pyx_convert_vector_from_py_float(__pyx_v_data_r); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 49, __pyx_L1_error) + __pyx_t_3 = __pyx_convert_vector_from_py_int(__pyx_v_dims); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 49, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_config, __pyx_n_s_encode); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 49, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + } + } + __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 49, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_7 = __pyx_convert_string_from_py_std__in_string(__pyx_t_4); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 49, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_self->thisptr->StartCalc(__pyx_t_1, __pyx_t_2, __pyx_t_3, __pyx_t_7); + + /* "reccdi/src_py/cyth/bridge_cuda.pyx":48 + * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): + * self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) + * def start_calc(self, device, data_r, dims, config): # <<<<<<<<<<<<<< + * self.thisptr.StartCalc(device, data_r, dims, config.encode()) + * def get_image_r(self): + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cuda.PyBridge.start_calc", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "reccdi/src_py/cyth/bridge_cuda.pyx":50 + * def start_calc(self, device, data_r, dims, config): + * self.thisptr.StartCalc(device, data_r, dims, config.encode()) + * def get_image_r(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetImageR() + * def get_image_i(self): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_13get_image_r(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_13get_image_r(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_image_r (wrapper)", 0); + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_12get_image_r(((struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_12get_image_r(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("get_image_r", 0); + + /* "reccdi/src_py/cyth/bridge_cuda.pyx":51 + * self.thisptr.StartCalc(device, data_r, dims, config.encode()) + * def get_image_r(self): + * return self.thisptr.GetImageR() # <<<<<<<<<<<<<< + * def get_image_i(self): + * return self.thisptr.GetImageI() + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_self->thisptr->GetImageR()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 51, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "reccdi/src_py/cyth/bridge_cuda.pyx":50 + * def start_calc(self, device, data_r, dims, config): + * self.thisptr.StartCalc(device, data_r, dims, config.encode()) + * def get_image_r(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetImageR() + * def get_image_i(self): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cuda.PyBridge.get_image_r", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "reccdi/src_py/cyth/bridge_cuda.pyx":52 + * def get_image_r(self): + * return self.thisptr.GetImageR() + * def get_image_i(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetImageI() + * def get_errors(self): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_15get_image_i(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_15get_image_i(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_image_i (wrapper)", 0); + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_14get_image_i(((struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_14get_image_i(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("get_image_i", 0); + + /* "reccdi/src_py/cyth/bridge_cuda.pyx":53 + * return self.thisptr.GetImageR() + * def get_image_i(self): + * return self.thisptr.GetImageI() # <<<<<<<<<<<<<< + * def get_errors(self): + * return self.thisptr.GetErrors() + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_self->thisptr->GetImageI()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 53, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "reccdi/src_py/cyth/bridge_cuda.pyx":52 + * def get_image_r(self): + * return self.thisptr.GetImageR() + * def get_image_i(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetImageI() + * def get_errors(self): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cuda.PyBridge.get_image_i", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "reccdi/src_py/cyth/bridge_cuda.pyx":54 + * def get_image_i(self): + * return self.thisptr.GetImageI() + * def get_errors(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetErrors() + * def get_support(self): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_17get_errors(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_17get_errors(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_errors (wrapper)", 0); + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_16get_errors(((struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_16get_errors(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("get_errors", 0); + + /* "reccdi/src_py/cyth/bridge_cuda.pyx":55 + * return self.thisptr.GetImageI() + * def get_errors(self): + * return self.thisptr.GetErrors() # <<<<<<<<<<<<<< + * def get_support(self): + * return self.thisptr.GetSupportV() + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_self->thisptr->GetErrors()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 55, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "reccdi/src_py/cyth/bridge_cuda.pyx":54 + * def get_image_i(self): + * return self.thisptr.GetImageI() + * def get_errors(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetErrors() + * def get_support(self): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cuda.PyBridge.get_errors", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "reccdi/src_py/cyth/bridge_cuda.pyx":56 + * def get_errors(self): + * return self.thisptr.GetErrors() + * def get_support(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetSupportV() + * def get_coherence(self): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_19get_support(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_19get_support(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_support (wrapper)", 0); + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_18get_support(((struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_18get_support(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("get_support", 0); + + /* "reccdi/src_py/cyth/bridge_cuda.pyx":57 + * return self.thisptr.GetErrors() + * def get_support(self): + * return self.thisptr.GetSupportV() # <<<<<<<<<<<<<< + * def get_coherence(self): + * return self.thisptr.GetCoherenceV() + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_convert_vector_to_py_float(__pyx_v_self->thisptr->GetSupportV()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 57, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "reccdi/src_py/cyth/bridge_cuda.pyx":56 + * def get_errors(self): + * return self.thisptr.GetErrors() + * def get_support(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetSupportV() + * def get_coherence(self): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cuda.PyBridge.get_support", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "reccdi/src_py/cyth/bridge_cuda.pyx":58 + * def get_support(self): + * return self.thisptr.GetSupportV() + * def get_coherence(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetCoherenceV() + * def get_reciprocal_r(self): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_21get_coherence(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_21get_coherence(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_coherence (wrapper)", 0); + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_20get_coherence(((struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_20get_coherence(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("get_coherence", 0); + + /* "reccdi/src_py/cyth/bridge_cuda.pyx":59 + * return self.thisptr.GetSupportV() + * def get_coherence(self): + * return self.thisptr.GetCoherenceV() # <<<<<<<<<<<<<< + * def get_reciprocal_r(self): + * return self.thisptr.GetReciprocalR() + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_self->thisptr->GetCoherenceV()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 59, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "reccdi/src_py/cyth/bridge_cuda.pyx":58 + * def get_support(self): + * return self.thisptr.GetSupportV() + * def get_coherence(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetCoherenceV() + * def get_reciprocal_r(self): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cuda.PyBridge.get_coherence", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "reccdi/src_py/cyth/bridge_cuda.pyx":60 + * def get_coherence(self): + * return self.thisptr.GetCoherenceV() + * def get_reciprocal_r(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetReciprocalR() + * def get_reciprocal_i(self): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_23get_reciprocal_r(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_23get_reciprocal_r(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_reciprocal_r (wrapper)", 0); + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_22get_reciprocal_r(((struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_22get_reciprocal_r(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("get_reciprocal_r", 0); + + /* "reccdi/src_py/cyth/bridge_cuda.pyx":61 + * return self.thisptr.GetCoherenceV() + * def get_reciprocal_r(self): + * return self.thisptr.GetReciprocalR() # <<<<<<<<<<<<<< + * def get_reciprocal_i(self): + * return self.thisptr.GetReciprocalI() + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_self->thisptr->GetReciprocalR()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 61, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "reccdi/src_py/cyth/bridge_cuda.pyx":60 + * def get_coherence(self): + * return self.thisptr.GetCoherenceV() + * def get_reciprocal_r(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetReciprocalR() + * def get_reciprocal_i(self): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cuda.PyBridge.get_reciprocal_r", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "reccdi/src_py/cyth/bridge_cuda.pyx":62 + * def get_reciprocal_r(self): + * return self.thisptr.GetReciprocalR() + * def get_reciprocal_i(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetReciprocalI() + * def get_flow(self): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_25get_reciprocal_i(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_25get_reciprocal_i(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_reciprocal_i (wrapper)", 0); + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_24get_reciprocal_i(((struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_24get_reciprocal_i(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("get_reciprocal_i", 0); + + /* "reccdi/src_py/cyth/bridge_cuda.pyx":63 + * return self.thisptr.GetReciprocalR() + * def get_reciprocal_i(self): + * return self.thisptr.GetReciprocalI() # <<<<<<<<<<<<<< + * def get_flow(self): + * return self.thisptr.GetFlowV() + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_self->thisptr->GetReciprocalI()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 63, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "reccdi/src_py/cyth/bridge_cuda.pyx":62 + * def get_reciprocal_r(self): + * return self.thisptr.GetReciprocalR() + * def get_reciprocal_i(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetReciprocalI() + * def get_flow(self): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cuda.PyBridge.get_reciprocal_i", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "reccdi/src_py/cyth/bridge_cuda.pyx":64 + * def get_reciprocal_i(self): + * return self.thisptr.GetReciprocalI() + * def get_flow(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetFlowV() + * def get_iter_flow(self): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_27get_flow(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_27get_flow(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_flow (wrapper)", 0); + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_26get_flow(((struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_26get_flow(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("get_flow", 0); + + /* "reccdi/src_py/cyth/bridge_cuda.pyx":65 + * return self.thisptr.GetReciprocalI() + * def get_flow(self): + * return self.thisptr.GetFlowV() # <<<<<<<<<<<<<< + * def get_iter_flow(self): + * return self.thisptr.GetIterFlowV() + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_convert_vector_to_py_int(__pyx_v_self->thisptr->GetFlowV()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 65, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "reccdi/src_py/cyth/bridge_cuda.pyx":64 + * def get_reciprocal_i(self): + * return self.thisptr.GetReciprocalI() + * def get_flow(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetFlowV() + * def get_iter_flow(self): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cuda.PyBridge.get_flow", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "reccdi/src_py/cyth/bridge_cuda.pyx":66 + * def get_flow(self): + * return self.thisptr.GetFlowV() + * def get_iter_flow(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetIterFlowV() + * def cleanup(self): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_29get_iter_flow(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_29get_iter_flow(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_iter_flow (wrapper)", 0); + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_28get_iter_flow(((struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_28get_iter_flow(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("get_iter_flow", 0); + + /* "reccdi/src_py/cyth/bridge_cuda.pyx":67 + * return self.thisptr.GetFlowV() + * def get_iter_flow(self): + * return self.thisptr.GetIterFlowV() # <<<<<<<<<<<<<< + * def cleanup(self): + * self.thisptr.Cleanup() + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_convert_vector_to_py_int(__pyx_v_self->thisptr->GetIterFlowV()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 67, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "reccdi/src_py/cyth/bridge_cuda.pyx":66 + * def get_flow(self): + * return self.thisptr.GetFlowV() + * def get_iter_flow(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetIterFlowV() + * def cleanup(self): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cuda.PyBridge.get_iter_flow", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "reccdi/src_py/cyth/bridge_cuda.pyx":68 + * def get_iter_flow(self): + * return self.thisptr.GetIterFlowV() + * def cleanup(self): # <<<<<<<<<<<<<< + * self.thisptr.Cleanup() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_31cleanup(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_31cleanup(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("cleanup (wrapper)", 0); + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_30cleanup(((struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_30cleanup(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("cleanup", 0); + + /* "reccdi/src_py/cyth/bridge_cuda.pyx":69 + * return self.thisptr.GetIterFlowV() + * def cleanup(self): + * self.thisptr.Cleanup() # <<<<<<<<<<<<<< + * + */ + __pyx_v_self->thisptr->Cleanup(); + + /* "reccdi/src_py/cyth/bridge_cuda.pyx":68 + * def get_iter_flow(self): + * return self.thisptr.GetIterFlowV() + * def cleanup(self): # <<<<<<<<<<<<<< + * self.thisptr.Cleanup() + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "(tree fragment)":1 + * def __reduce_cython__(self): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_33__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_33__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_32__reduce_cython__(((struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_32__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("__reduce_cython__", 0); + + /* "(tree fragment)":2 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple_, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(0, 2, __pyx_L1_error) + + /* "(tree fragment)":1 + * def __reduce_cython__(self): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cuda.PyBridge.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "(tree fragment)":3 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_35__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_35__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_34__setstate_cython__(((struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_34__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("__setstate_cython__", 0); + + /* "(tree fragment)":4 + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + */ + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(0, 4, __pyx_L1_error) + + /* "(tree fragment)":3 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cuda.PyBridge.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "vector.from_py":45 + * + * @cname("__pyx_convert_vector_from_py_float") + * cdef vector[X] __pyx_convert_vector_from_py_float(object o) except *: # <<<<<<<<<<<<<< + * cdef vector[X] v + * for item in o: + */ + +static std::vector __pyx_convert_vector_from_py_float(PyObject *__pyx_v_o) { + std::vector __pyx_v_v; + PyObject *__pyx_v_item = NULL; + std::vector __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + Py_ssize_t __pyx_t_2; + PyObject *(*__pyx_t_3)(PyObject *); + PyObject *__pyx_t_4 = NULL; + float __pyx_t_5; + __Pyx_RefNannySetupContext("__pyx_convert_vector_from_py_float", 0); + + /* "vector.from_py":47 + * cdef vector[X] __pyx_convert_vector_from_py_float(object o) except *: + * cdef vector[X] v + * for item in o: # <<<<<<<<<<<<<< + * v.push_back(item) + * return v + */ + if (likely(PyList_CheckExact(__pyx_v_o)) || PyTuple_CheckExact(__pyx_v_o)) { + __pyx_t_1 = __pyx_v_o; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; + __pyx_t_3 = NULL; + } else { + __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_o); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 47, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 47, __pyx_L1_error) + } + for (;;) { + if (likely(!__pyx_t_3)) { + if (likely(PyList_CheckExact(__pyx_t_1))) { + if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 47, __pyx_L1_error) + #else + __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 47, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #endif + } else { + if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 47, __pyx_L1_error) + #else + __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 47, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #endif + } + } else { + __pyx_t_4 = __pyx_t_3(__pyx_t_1); + if (unlikely(!__pyx_t_4)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); + else __PYX_ERR(0, 47, __pyx_L1_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_4); + } + __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_4); + __pyx_t_4 = 0; + + /* "vector.from_py":48 + * cdef vector[X] v + * for item in o: + * v.push_back(item) # <<<<<<<<<<<<<< + * return v + * + */ + __pyx_t_5 = __pyx_PyFloat_AsFloat(__pyx_v_item); if (unlikely((__pyx_t_5 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 48, __pyx_L1_error) + __pyx_v_v.push_back(((float)__pyx_t_5)); + + /* "vector.from_py":47 + * cdef vector[X] __pyx_convert_vector_from_py_float(object o) except *: + * cdef vector[X] v + * for item in o: # <<<<<<<<<<<<<< + * v.push_back(item) + * return v + */ + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "vector.from_py":49 + * for item in o: + * v.push_back(item) + * return v # <<<<<<<<<<<<<< + * + * + */ + __pyx_r = __pyx_v_v; + goto __pyx_L0; + + /* "vector.from_py":45 + * + * @cname("__pyx_convert_vector_from_py_float") + * cdef vector[X] __pyx_convert_vector_from_py_float(object o) except *: # <<<<<<<<<<<<<< + * cdef vector[X] v + * for item in o: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("vector.from_py.__pyx_convert_vector_from_py_float", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_pretend_to_initialize(&__pyx_r); + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_item); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static std::vector __pyx_convert_vector_from_py_int(PyObject *__pyx_v_o) { + std::vector __pyx_v_v; + PyObject *__pyx_v_item = NULL; + std::vector __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + Py_ssize_t __pyx_t_2; + PyObject *(*__pyx_t_3)(PyObject *); + PyObject *__pyx_t_4 = NULL; + int __pyx_t_5; + __Pyx_RefNannySetupContext("__pyx_convert_vector_from_py_int", 0); + + /* "vector.from_py":47 + * cdef vector[X] __pyx_convert_vector_from_py_int(object o) except *: + * cdef vector[X] v + * for item in o: # <<<<<<<<<<<<<< + * v.push_back(item) + * return v + */ + if (likely(PyList_CheckExact(__pyx_v_o)) || PyTuple_CheckExact(__pyx_v_o)) { + __pyx_t_1 = __pyx_v_o; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; + __pyx_t_3 = NULL; + } else { + __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_o); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 47, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 47, __pyx_L1_error) + } + for (;;) { + if (likely(!__pyx_t_3)) { + if (likely(PyList_CheckExact(__pyx_t_1))) { + if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 47, __pyx_L1_error) + #else + __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 47, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #endif + } else { + if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 47, __pyx_L1_error) + #else + __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 47, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #endif + } + } else { + __pyx_t_4 = __pyx_t_3(__pyx_t_1); + if (unlikely(!__pyx_t_4)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); + else __PYX_ERR(0, 47, __pyx_L1_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_4); + } + __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_4); + __pyx_t_4 = 0; + + /* "vector.from_py":48 + * cdef vector[X] v + * for item in o: + * v.push_back(item) # <<<<<<<<<<<<<< + * return v + * + */ + __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_v_item); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 48, __pyx_L1_error) + __pyx_v_v.push_back(((int)__pyx_t_5)); + + /* "vector.from_py":47 + * cdef vector[X] __pyx_convert_vector_from_py_int(object o) except *: + * cdef vector[X] v + * for item in o: # <<<<<<<<<<<<<< + * v.push_back(item) + * return v + */ + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "vector.from_py":49 + * for item in o: + * v.push_back(item) + * return v # <<<<<<<<<<<<<< + * + * + */ + __pyx_r = __pyx_v_v; + goto __pyx_L0; + + /* "vector.from_py":45 + * + * @cname("__pyx_convert_vector_from_py_int") + * cdef vector[X] __pyx_convert_vector_from_py_int(object o) except *: # <<<<<<<<<<<<<< + * cdef vector[X] v + * for item in o: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("vector.from_py.__pyx_convert_vector_from_py_int", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_pretend_to_initialize(&__pyx_r); + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_item); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "string.from_py":13 + * + * @cname("__pyx_convert_string_from_py_std__in_string") + * cdef string __pyx_convert_string_from_py_std__in_string(object o) except *: # <<<<<<<<<<<<<< + * cdef Py_ssize_t length + * cdef const char* data = __Pyx_PyObject_AsStringAndSize(o, &length) + */ + +static std::string __pyx_convert_string_from_py_std__in_string(PyObject *__pyx_v_o) { + Py_ssize_t __pyx_v_length; + char const *__pyx_v_data; + std::string __pyx_r; + __Pyx_RefNannyDeclarations + char const *__pyx_t_1; + __Pyx_RefNannySetupContext("__pyx_convert_string_from_py_std__in_string", 0); + + /* "string.from_py":15 + * cdef string __pyx_convert_string_from_py_std__in_string(object o) except *: + * cdef Py_ssize_t length + * cdef const char* data = __Pyx_PyObject_AsStringAndSize(o, &length) # <<<<<<<<<<<<<< + * return string(data, length) + * + */ + __pyx_t_1 = __Pyx_PyObject_AsStringAndSize(__pyx_v_o, (&__pyx_v_length)); if (unlikely(__pyx_t_1 == ((char const *)NULL))) __PYX_ERR(0, 15, __pyx_L1_error) + __pyx_v_data = __pyx_t_1; + + /* "string.from_py":16 + * cdef Py_ssize_t length + * cdef const char* data = __Pyx_PyObject_AsStringAndSize(o, &length) + * return string(data, length) # <<<<<<<<<<<<<< + * + * + */ + __pyx_r = std::string(__pyx_v_data, __pyx_v_length); + goto __pyx_L0; + + /* "string.from_py":13 + * + * @cname("__pyx_convert_string_from_py_std__in_string") + * cdef string __pyx_convert_string_from_py_std__in_string(object o) except *: # <<<<<<<<<<<<<< + * cdef Py_ssize_t length + * cdef const char* data = __Pyx_PyObject_AsStringAndSize(o, &length) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("string.from_py.__pyx_convert_string_from_py_std__in_string", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_pretend_to_initialize(&__pyx_r); + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "vector.to_py":60 + * + * @cname("__pyx_convert_vector_to_py_double") + * cdef object __pyx_convert_vector_to_py_double(vector[X]& v): # <<<<<<<<<<<<<< + * return [v[i] for i in range(v.size())] + * + */ + +static PyObject *__pyx_convert_vector_to_py_double(const std::vector &__pyx_v_v) { + size_t __pyx_v_i; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + size_t __pyx_t_2; + size_t __pyx_t_3; + size_t __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + __Pyx_RefNannySetupContext("__pyx_convert_vector_to_py_double", 0); + + /* "vector.to_py":61 + * @cname("__pyx_convert_vector_to_py_double") + * cdef object __pyx_convert_vector_to_py_double(vector[X]& v): + * return [v[i] for i in range(v.size())] # <<<<<<<<<<<<<< + * + * + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __pyx_v_v.size(); + __pyx_t_3 = __pyx_t_2; + for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { + __pyx_v_i = __pyx_t_4; + __pyx_t_5 = PyFloat_FromDouble((__pyx_v_v[__pyx_v_i])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "vector.to_py":60 + * + * @cname("__pyx_convert_vector_to_py_double") + * cdef object __pyx_convert_vector_to_py_double(vector[X]& v): # <<<<<<<<<<<<<< + * return [v[i] for i in range(v.size())] + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("vector.to_py.__pyx_convert_vector_to_py_double", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_convert_vector_to_py_float(const std::vector &__pyx_v_v) { + size_t __pyx_v_i; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + size_t __pyx_t_2; + size_t __pyx_t_3; + size_t __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + __Pyx_RefNannySetupContext("__pyx_convert_vector_to_py_float", 0); + + /* "vector.to_py":61 + * @cname("__pyx_convert_vector_to_py_float") + * cdef object __pyx_convert_vector_to_py_float(vector[X]& v): + * return [v[i] for i in range(v.size())] # <<<<<<<<<<<<<< + * + * + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __pyx_v_v.size(); + __pyx_t_3 = __pyx_t_2; + for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { + __pyx_v_i = __pyx_t_4; + __pyx_t_5 = PyFloat_FromDouble((__pyx_v_v[__pyx_v_i])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "vector.to_py":60 + * + * @cname("__pyx_convert_vector_to_py_float") + * cdef object __pyx_convert_vector_to_py_float(vector[X]& v): # <<<<<<<<<<<<<< + * return [v[i] for i in range(v.size())] + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("vector.to_py.__pyx_convert_vector_to_py_float", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_convert_vector_to_py_int(const std::vector &__pyx_v_v) { + size_t __pyx_v_i; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + size_t __pyx_t_2; + size_t __pyx_t_3; + size_t __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + __Pyx_RefNannySetupContext("__pyx_convert_vector_to_py_int", 0); + + /* "vector.to_py":61 + * @cname("__pyx_convert_vector_to_py_int") + * cdef object __pyx_convert_vector_to_py_int(vector[X]& v): + * return [v[i] for i in range(v.size())] # <<<<<<<<<<<<<< + * + * + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __pyx_v_v.size(); + __pyx_t_3 = __pyx_t_2; + for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { + __pyx_v_i = __pyx_t_4; + __pyx_t_5 = __Pyx_PyInt_From_int((__pyx_v_v[__pyx_v_i])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "vector.to_py":60 + * + * @cname("__pyx_convert_vector_to_py_int") + * cdef object __pyx_convert_vector_to_py_int(vector[X]& v): # <<<<<<<<<<<<<< + * return [v[i] for i in range(v.size())] + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("vector.to_py.__pyx_convert_vector_to_py_int", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_tp_new_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { + PyObject *o; + if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { + o = (*t->tp_alloc)(t, 0); + } else { + o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); + } + if (unlikely(!o)) return 0; + if (unlikely(__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad; + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} + +static void __pyx_tp_dealloc_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + #endif + { + PyObject *etype, *eval, *etb; + PyErr_Fetch(&etype, &eval, &etb); + ++Py_REFCNT(o); + __pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_3__dealloc__(o); + --Py_REFCNT(o); + PyErr_Restore(etype, eval, etb); + } + (*Py_TYPE(o)->tp_free)(o); +} + +static PyMethodDef __pyx_methods_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge[] = { + {"start_calc_with_guess", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_5start_calc_with_guess, METH_VARARGS|METH_KEYWORDS, 0}, + {"start_calc_with_guess_support", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_7start_calc_with_guess_support, METH_VARARGS|METH_KEYWORDS, 0}, + {"start_calc_with_guess_support_coh", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_9start_calc_with_guess_support_coh, METH_VARARGS|METH_KEYWORDS, 0}, + {"start_calc", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_11start_calc, METH_VARARGS|METH_KEYWORDS, 0}, + {"get_image_r", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_13get_image_r, METH_NOARGS, 0}, + {"get_image_i", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_15get_image_i, METH_NOARGS, 0}, + {"get_errors", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_17get_errors, METH_NOARGS, 0}, + {"get_support", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_19get_support, METH_NOARGS, 0}, + {"get_coherence", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_21get_coherence, METH_NOARGS, 0}, + {"get_reciprocal_r", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_23get_reciprocal_r, METH_NOARGS, 0}, + {"get_reciprocal_i", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_25get_reciprocal_i, METH_NOARGS, 0}, + {"get_flow", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_27get_flow, METH_NOARGS, 0}, + {"get_iter_flow", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_29get_iter_flow, METH_NOARGS, 0}, + {"cleanup", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_31cleanup, METH_NOARGS, 0}, + {"__reduce_cython__", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_33__reduce_cython__, METH_NOARGS, 0}, + {"__setstate_cython__", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_35__setstate_cython__, METH_O, 0}, + {0, 0, 0, 0} +}; + +static PyTypeObject __pyx_type_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge = { + PyVarObject_HEAD_INIT(0, 0) + "reccdi.src_py.cyth.bridge_cuda.PyBridge", /*tp_name*/ + sizeof(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge, /*tp_dealloc*/ + 0, /*tp_print*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + 0, /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 + 0, /*tp_vectorcall*/ + #endif +}; + +static PyMethodDef __pyx_methods[] = { + {0, 0, 0, 0} +}; + +#if PY_MAJOR_VERSION >= 3 +#if CYTHON_PEP489_MULTI_PHASE_INIT +static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/ +static int __pyx_pymod_exec_bridge_cuda(PyObject* module); /*proto*/ +static PyModuleDef_Slot __pyx_moduledef_slots[] = { + {Py_mod_create, (void*)__pyx_pymod_create}, + {Py_mod_exec, (void*)__pyx_pymod_exec_bridge_cuda}, + {0, NULL} +}; +#endif + +static struct PyModuleDef __pyx_moduledef = { + PyModuleDef_HEAD_INIT, + "bridge_cuda", + 0, /* m_doc */ + #if CYTHON_PEP489_MULTI_PHASE_INIT + 0, /* m_size */ + #else + -1, /* m_size */ + #endif + __pyx_methods /* m_methods */, + #if CYTHON_PEP489_MULTI_PHASE_INIT + __pyx_moduledef_slots, /* m_slots */ + #else + NULL, /* m_reload */ + #endif + NULL, /* m_traverse */ + NULL, /* m_clear */ + NULL /* m_free */ +}; +#endif +#ifndef CYTHON_SMALL_CODE +#if defined(__clang__) + #define CYTHON_SMALL_CODE +#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) + #define CYTHON_SMALL_CODE __attribute__((cold)) +#else + #define CYTHON_SMALL_CODE +#endif +#endif + +static __Pyx_StringTabEntry __pyx_string_tab[] = { + {&__pyx_n_s_PyBridge, __pyx_k_PyBridge, sizeof(__pyx_k_PyBridge), 0, 0, 1, 1}, + {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1}, + {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, + {&__pyx_n_s_coh, __pyx_k_coh, sizeof(__pyx_k_coh), 0, 0, 1, 1}, + {&__pyx_n_s_coh_dims, __pyx_k_coh_dims, sizeof(__pyx_k_coh_dims), 0, 0, 1, 1}, + {&__pyx_n_s_config, __pyx_k_config, sizeof(__pyx_k_config), 0, 0, 1, 1}, + {&__pyx_n_s_data_r, __pyx_k_data_r, sizeof(__pyx_k_data_r), 0, 0, 1, 1}, + {&__pyx_n_s_device, __pyx_k_device, sizeof(__pyx_k_device), 0, 0, 1, 1}, + {&__pyx_n_s_dims, __pyx_k_dims, sizeof(__pyx_k_dims), 0, 0, 1, 1}, + {&__pyx_n_s_encode, __pyx_k_encode, sizeof(__pyx_k_encode), 0, 0, 1, 1}, + {&__pyx_n_s_getstate, __pyx_k_getstate, sizeof(__pyx_k_getstate), 0, 0, 1, 1}, + {&__pyx_n_s_guess_i, __pyx_k_guess_i, sizeof(__pyx_k_guess_i), 0, 0, 1, 1}, + {&__pyx_n_s_guess_r, __pyx_k_guess_r, sizeof(__pyx_k_guess_r), 0, 0, 1, 1}, + {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1}, + {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, + {&__pyx_kp_s_no_default___reduce___due_to_non, __pyx_k_no_default___reduce___due_to_non, sizeof(__pyx_k_no_default___reduce___due_to_non), 0, 0, 1, 0}, + {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, + {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1}, + {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1}, + {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1}, + {&__pyx_n_s_setstate, __pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 0, 1, 1}, + {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1}, + {&__pyx_n_s_support, __pyx_k_support, sizeof(__pyx_k_support), 0, 0, 1, 1}, + {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, + {0, 0, 0, 0, 0, 0, 0} +}; +static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { + __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(0, 2, __pyx_L1_error) + __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 61, __pyx_L1_error) + return 0; + __pyx_L1_error:; + return -1; +} + +static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); + + /* "(tree fragment)":2 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + __pyx_tuple_ = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple_)) __PYX_ERR(0, 2, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple_); + __Pyx_GIVEREF(__pyx_tuple_); + + /* "(tree fragment)":4 + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + */ + __pyx_tuple__2 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(0, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__2); + __Pyx_GIVEREF(__pyx_tuple__2); + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_RefNannyFinishContext(); + return -1; +} + +static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) { + if (__Pyx_InitStrings(__pyx_string_tab) < 0) __PYX_ERR(1, 1, __pyx_L1_error); + return 0; + __pyx_L1_error:; + return -1; +} + +static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(void); /*proto*/ + +static int __Pyx_modinit_global_init_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0); + /*--- Global init code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_variable_export_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0); + /*--- Variable export code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_function_export_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0); + /*--- Function export code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_type_init_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); + /*--- Type init code ---*/ + if (PyType_Ready(&__pyx_type_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge) < 0) __PYX_ERR(1, 36, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + __pyx_type_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge.tp_dictoffset && __pyx_type_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyBridge, (PyObject *)&__pyx_type_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge) < 0) __PYX_ERR(1, 36, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge) < 0) __PYX_ERR(1, 36, __pyx_L1_error) + __pyx_ptype_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge = &__pyx_type_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge; + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_RefNannyFinishContext(); + return -1; +} + +static int __Pyx_modinit_type_import_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); + /*--- Type import code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_variable_import_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0); + /*--- Variable import code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_function_import_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0); + /*--- Function import code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + + +#if PY_MAJOR_VERSION < 3 +#ifdef CYTHON_NO_PYINIT_EXPORT +#define __Pyx_PyMODINIT_FUNC void +#else +#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC +#endif +#else +#ifdef CYTHON_NO_PYINIT_EXPORT +#define __Pyx_PyMODINIT_FUNC PyObject * +#else +#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC +#endif +#endif + + +#if PY_MAJOR_VERSION < 3 +__Pyx_PyMODINIT_FUNC initbridge_cuda(void) CYTHON_SMALL_CODE; /*proto*/ +__Pyx_PyMODINIT_FUNC initbridge_cuda(void) +#else +__Pyx_PyMODINIT_FUNC PyInit_bridge_cuda(void) CYTHON_SMALL_CODE; /*proto*/ +__Pyx_PyMODINIT_FUNC PyInit_bridge_cuda(void) +#if CYTHON_PEP489_MULTI_PHASE_INIT +{ + return PyModuleDef_Init(&__pyx_moduledef); +} +static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) { + #if PY_VERSION_HEX >= 0x030700A1 + static PY_INT64_T main_interpreter_id = -1; + PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp); + if (main_interpreter_id == -1) { + main_interpreter_id = current_id; + return (unlikely(current_id == -1)) ? -1 : 0; + } else if (unlikely(main_interpreter_id != current_id)) + #else + static PyInterpreterState *main_interpreter = NULL; + PyInterpreterState *current_interpreter = PyThreadState_Get()->interp; + if (!main_interpreter) { + main_interpreter = current_interpreter; + } else if (unlikely(main_interpreter != current_interpreter)) + #endif + { + PyErr_SetString( + PyExc_ImportError, + "Interpreter change detected - this module can only be loaded into one interpreter per process."); + return -1; + } + return 0; +} +static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name, int allow_none) { + PyObject *value = PyObject_GetAttrString(spec, from_name); + int result = 0; + if (likely(value)) { + if (allow_none || value != Py_None) { + result = PyDict_SetItemString(moddict, to_name, value); + } + Py_DECREF(value); + } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) { + PyErr_Clear(); + } else { + result = -1; + } + return result; +} +static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, CYTHON_UNUSED PyModuleDef *def) { + PyObject *module = NULL, *moddict, *modname; + if (__Pyx_check_single_interpreter()) + return NULL; + if (__pyx_m) + return __Pyx_NewRef(__pyx_m); + modname = PyObject_GetAttrString(spec, "name"); + if (unlikely(!modname)) goto bad; + module = PyModule_NewObject(modname); + Py_DECREF(modname); + if (unlikely(!module)) goto bad; + moddict = PyModule_GetDict(module); + if (unlikely(!moddict)) goto bad; + if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__", 1) < 0)) goto bad; + if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__", 1) < 0)) goto bad; + if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__", 1) < 0)) goto bad; + if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__", 0) < 0)) goto bad; + return module; +bad: + Py_XDECREF(module); + return NULL; +} + + +static CYTHON_SMALL_CODE int __pyx_pymod_exec_bridge_cuda(PyObject *__pyx_pyinit_module) +#endif +#endif +{ + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannyDeclarations + #if CYTHON_PEP489_MULTI_PHASE_INIT + if (__pyx_m) { + if (__pyx_m == __pyx_pyinit_module) return 0; + PyErr_SetString(PyExc_RuntimeError, "Module 'bridge_cuda' has already been imported. Re-initialisation is not supported."); + return -1; + } + #elif PY_MAJOR_VERSION >= 3 + if (__pyx_m) return __Pyx_NewRef(__pyx_m); + #endif + #if CYTHON_REFNANNY +__Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny"); +if (!__Pyx_RefNanny) { + PyErr_Clear(); + __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny"); + if (!__Pyx_RefNanny) + Py_FatalError("failed to import 'refnanny' module"); +} +#endif + __Pyx_RefNannySetupContext("__Pyx_PyMODINIT_FUNC PyInit_bridge_cuda(void)", 0); + if (__Pyx_check_binary_version() < 0) __PYX_ERR(1, 1, __pyx_L1_error) + #ifdef __Pxy_PyFrame_Initialize_Offsets + __Pxy_PyFrame_Initialize_Offsets(); + #endif + __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) __PYX_ERR(1, 1, __pyx_L1_error) + __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(1, 1, __pyx_L1_error) + __pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_unicode)) __PYX_ERR(1, 1, __pyx_L1_error) + #ifdef __Pyx_CyFunction_USED + if (__pyx_CyFunction_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error) + #endif + #ifdef __Pyx_FusedFunction_USED + if (__pyx_FusedFunction_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error) + #endif + #ifdef __Pyx_Coroutine_USED + if (__pyx_Coroutine_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error) + #endif + #ifdef __Pyx_Generator_USED + if (__pyx_Generator_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error) + #endif + #ifdef __Pyx_AsyncGen_USED + if (__pyx_AsyncGen_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error) + #endif + #ifdef __Pyx_StopAsyncIteration_USED + if (__pyx_StopAsyncIteration_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error) + #endif + /*--- Library function declarations ---*/ + /*--- Threads initialization code ---*/ + #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS + #ifdef WITH_THREAD /* Python build with threading support? */ + PyEval_InitThreads(); + #endif + #endif + /*--- Module creation code ---*/ + #if CYTHON_PEP489_MULTI_PHASE_INIT + __pyx_m = __pyx_pyinit_module; + Py_INCREF(__pyx_m); + #else + #if PY_MAJOR_VERSION < 3 + __pyx_m = Py_InitModule4("bridge_cuda", __pyx_methods, 0, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m); + #else + __pyx_m = PyModule_Create(&__pyx_moduledef); + #endif + if (unlikely(!__pyx_m)) __PYX_ERR(1, 1, __pyx_L1_error) + #endif + __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) __PYX_ERR(1, 1, __pyx_L1_error) + Py_INCREF(__pyx_d); + __pyx_b = PyImport_AddModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_b)) __PYX_ERR(1, 1, __pyx_L1_error) + Py_INCREF(__pyx_b); + __pyx_cython_runtime = PyImport_AddModule((char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(1, 1, __pyx_L1_error) + Py_INCREF(__pyx_cython_runtime); + if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) __PYX_ERR(1, 1, __pyx_L1_error); + /*--- Initialize various global constants etc. ---*/ + if (__Pyx_InitGlobals() < 0) __PYX_ERR(1, 1, __pyx_L1_error) + #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT) + if (__Pyx_init_sys_getdefaultencoding_params() < 0) __PYX_ERR(1, 1, __pyx_L1_error) + #endif + if (__pyx_module_is_main_reccdi__src_py__cyth__bridge_cuda) { + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_name, __pyx_n_s_main) < 0) __PYX_ERR(1, 1, __pyx_L1_error) + } + #if PY_MAJOR_VERSION >= 3 + { + PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(1, 1, __pyx_L1_error) + if (!PyDict_GetItemString(modules, "reccdi.src_py.cyth.bridge_cuda")) { + if (unlikely(PyDict_SetItemString(modules, "reccdi.src_py.cyth.bridge_cuda", __pyx_m) < 0)) __PYX_ERR(1, 1, __pyx_L1_error) + } + } + #endif + /*--- Builtin init code ---*/ + if (__Pyx_InitCachedBuiltins() < 0) goto __pyx_L1_error; + /*--- Constants init code ---*/ + if (__Pyx_InitCachedConstants() < 0) goto __pyx_L1_error; + /*--- Global type/function init code ---*/ + (void)__Pyx_modinit_global_init_code(); + (void)__Pyx_modinit_variable_export_code(); + (void)__Pyx_modinit_function_export_code(); + if (unlikely(__Pyx_modinit_type_init_code() != 0)) goto __pyx_L1_error; + (void)__Pyx_modinit_type_import_code(); + (void)__Pyx_modinit_variable_import_code(); + (void)__Pyx_modinit_function_import_code(); + /*--- Execution code ---*/ + #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) + if (__Pyx_patch_abc() < 0) __PYX_ERR(1, 1, __pyx_L1_error) + #endif + + /* "reccdi/src_py/cyth/bridge_cuda.pyx":1 + * # ######################################################################### # <<<<<<<<<<<<<< + * # Copyright (c) , UChicago Argonne, LLC. All rights reserved. # + * # # + */ + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "vector.to_py":60 + * + * @cname("__pyx_convert_vector_to_py_int") + * cdef object __pyx_convert_vector_to_py_int(vector[X]& v): # <<<<<<<<<<<<<< + * return [v[i] for i in range(v.size())] + * + */ + + /*--- Wrapped vars code ---*/ + + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + if (__pyx_m) { + if (__pyx_d) { + __Pyx_AddTraceback("init reccdi.src_py.cyth.bridge_cuda", __pyx_clineno, __pyx_lineno, __pyx_filename); + } + Py_CLEAR(__pyx_m); + } else if (!PyErr_Occurred()) { + PyErr_SetString(PyExc_ImportError, "init reccdi.src_py.cyth.bridge_cuda"); + } + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + #if CYTHON_PEP489_MULTI_PHASE_INIT + return (__pyx_m != NULL) ? 0 : -1; + #elif PY_MAJOR_VERSION >= 3 + return __pyx_m; + #else + return; + #endif +} + +/* --- Runtime support code --- */ +/* Refnanny */ +#if CYTHON_REFNANNY +static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) { + PyObject *m = NULL, *p = NULL; + void *r = NULL; + m = PyImport_ImportModule(modname); + if (!m) goto end; + p = PyObject_GetAttrString(m, "RefNannyAPI"); + if (!p) goto end; + r = PyLong_AsVoidPtr(p); +end: + Py_XDECREF(p); + Py_XDECREF(m); + return (__Pyx_RefNannyAPIStruct *)r; +} +#endif + +/* PyObjectGetAttrStr */ +#if CYTHON_USE_TYPE_SLOTS +static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) { + PyTypeObject* tp = Py_TYPE(obj); + if (likely(tp->tp_getattro)) + return tp->tp_getattro(obj, attr_name); +#if PY_MAJOR_VERSION < 3 + if (likely(tp->tp_getattr)) + return tp->tp_getattr(obj, PyString_AS_STRING(attr_name)); +#endif + return PyObject_GetAttr(obj, attr_name); +} +#endif + +/* GetBuiltinName */ +static PyObject *__Pyx_GetBuiltinName(PyObject *name) { + PyObject* result = __Pyx_PyObject_GetAttrStr(__pyx_b, name); + if (unlikely(!result)) { + PyErr_Format(PyExc_NameError, +#if PY_MAJOR_VERSION >= 3 + "name '%U' is not defined", name); +#else + "name '%.200s' is not defined", PyString_AS_STRING(name)); +#endif + } + return result; +} + +/* RaiseArgTupleInvalid */ +static void __Pyx_RaiseArgtupleInvalid( + const char* func_name, + int exact, + Py_ssize_t num_min, + Py_ssize_t num_max, + Py_ssize_t num_found) +{ + Py_ssize_t num_expected; + const char *more_or_less; + if (num_found < num_min) { + num_expected = num_min; + more_or_less = "at least"; + } else { + num_expected = num_max; + more_or_less = "at most"; + } + if (exact) { + more_or_less = "exactly"; + } + PyErr_Format(PyExc_TypeError, + "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T "d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T "d given)", + func_name, more_or_less, num_expected, + (num_expected == 1) ? "" : "s", num_found); +} + +/* KeywordStringCheck */ +static int __Pyx_CheckKeywordStrings( + PyObject *kwdict, + const char* function_name, + int kw_allowed) +{ + PyObject* key = 0; + Py_ssize_t pos = 0; +#if CYTHON_COMPILING_IN_PYPY + if (!kw_allowed && PyDict_Next(kwdict, &pos, &key, 0)) + goto invalid_keyword; + return 1; +#else + while (PyDict_Next(kwdict, &pos, &key, 0)) { + #if PY_MAJOR_VERSION < 3 + if (unlikely(!PyString_Check(key))) + #endif + if (unlikely(!PyUnicode_Check(key))) + goto invalid_keyword_type; + } + if ((!kw_allowed) && unlikely(key)) + goto invalid_keyword; + return 1; +invalid_keyword_type: + PyErr_Format(PyExc_TypeError, + "%.200s() keywords must be strings", function_name); + return 0; +#endif +invalid_keyword: + PyErr_Format(PyExc_TypeError, + #if PY_MAJOR_VERSION < 3 + "%.200s() got an unexpected keyword argument '%.200s'", + function_name, PyString_AsString(key)); + #else + "%s() got an unexpected keyword argument '%U'", + function_name, key); + #endif + return 0; +} + +/* RaiseDoubleKeywords */ +static void __Pyx_RaiseDoubleKeywordsError( + const char* func_name, + PyObject* kw_name) +{ + PyErr_Format(PyExc_TypeError, + #if PY_MAJOR_VERSION >= 3 + "%s() got multiple values for keyword argument '%U'", func_name, kw_name); + #else + "%s() got multiple values for keyword argument '%s'", func_name, + PyString_AsString(kw_name)); + #endif +} + +/* ParseKeywords */ +static int __Pyx_ParseOptionalKeywords( + PyObject *kwds, + PyObject **argnames[], + PyObject *kwds2, + PyObject *values[], + Py_ssize_t num_pos_args, + const char* function_name) +{ + PyObject *key = 0, *value = 0; + Py_ssize_t pos = 0; + PyObject*** name; + PyObject*** first_kw_arg = argnames + num_pos_args; + while (PyDict_Next(kwds, &pos, &key, &value)) { + name = first_kw_arg; + while (*name && (**name != key)) name++; + if (*name) { + values[name-argnames] = value; + continue; + } + name = first_kw_arg; + #if PY_MAJOR_VERSION < 3 + if (likely(PyString_CheckExact(key)) || likely(PyString_Check(key))) { + while (*name) { + if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key)) + && _PyString_Eq(**name, key)) { + values[name-argnames] = value; + break; + } + name++; + } + if (*name) continue; + else { + PyObject*** argname = argnames; + while (argname != first_kw_arg) { + if ((**argname == key) || ( + (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key)) + && _PyString_Eq(**argname, key))) { + goto arg_passed_twice; + } + argname++; + } + } + } else + #endif + if (likely(PyUnicode_Check(key))) { + while (*name) { + int cmp = (**name == key) ? 0 : + #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 + (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : + #endif + PyUnicode_Compare(**name, key); + if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; + if (cmp == 0) { + values[name-argnames] = value; + break; + } + name++; + } + if (*name) continue; + else { + PyObject*** argname = argnames; + while (argname != first_kw_arg) { + int cmp = (**argname == key) ? 0 : + #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 + (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : + #endif + PyUnicode_Compare(**argname, key); + if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; + if (cmp == 0) goto arg_passed_twice; + argname++; + } + } + } else + goto invalid_keyword_type; + if (kwds2) { + if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad; + } else { + goto invalid_keyword; + } + } + return 0; +arg_passed_twice: + __Pyx_RaiseDoubleKeywordsError(function_name, key); + goto bad; +invalid_keyword_type: + PyErr_Format(PyExc_TypeError, + "%.200s() keywords must be strings", function_name); + goto bad; +invalid_keyword: + PyErr_Format(PyExc_TypeError, + #if PY_MAJOR_VERSION < 3 + "%.200s() got an unexpected keyword argument '%.200s'", + function_name, PyString_AsString(key)); + #else + "%s() got an unexpected keyword argument '%U'", + function_name, key); + #endif +bad: + return -1; +} + +/* PyFunctionFastCall */ +#if CYTHON_FAST_PYCALL +static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na, + PyObject *globals) { + PyFrameObject *f; + PyThreadState *tstate = __Pyx_PyThreadState_Current; + PyObject **fastlocals; + Py_ssize_t i; + PyObject *result; + assert(globals != NULL); + /* XXX Perhaps we should create a specialized + PyFrame_New() that doesn't take locals, but does + take builtins without sanity checking them. + */ + assert(tstate != NULL); + f = PyFrame_New(tstate, co, globals, NULL); + if (f == NULL) { + return NULL; + } + fastlocals = __Pyx_PyFrame_GetLocalsplus(f); + for (i = 0; i < na; i++) { + Py_INCREF(*args); + fastlocals[i] = *args++; + } + result = PyEval_EvalFrameEx(f,0); + ++tstate->recursion_depth; + Py_DECREF(f); + --tstate->recursion_depth; + return result; +} +#if 1 || PY_VERSION_HEX < 0x030600B1 +static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs) { + PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func); + PyObject *globals = PyFunction_GET_GLOBALS(func); + PyObject *argdefs = PyFunction_GET_DEFAULTS(func); + PyObject *closure; +#if PY_MAJOR_VERSION >= 3 + PyObject *kwdefs; +#endif + PyObject *kwtuple, **k; + PyObject **d; + Py_ssize_t nd; + Py_ssize_t nk; + PyObject *result; + assert(kwargs == NULL || PyDict_Check(kwargs)); + nk = kwargs ? PyDict_Size(kwargs) : 0; + if (Py_EnterRecursiveCall((char*)" while calling a Python object")) { + return NULL; + } + if ( +#if PY_MAJOR_VERSION >= 3 + co->co_kwonlyargcount == 0 && +#endif + likely(kwargs == NULL || nk == 0) && + co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE)) { + if (argdefs == NULL && co->co_argcount == nargs) { + result = __Pyx_PyFunction_FastCallNoKw(co, args, nargs, globals); + goto done; + } + else if (nargs == 0 && argdefs != NULL + && co->co_argcount == Py_SIZE(argdefs)) { + /* function called with no arguments, but all parameters have + a default value: use default values as arguments .*/ + args = &PyTuple_GET_ITEM(argdefs, 0); + result =__Pyx_PyFunction_FastCallNoKw(co, args, Py_SIZE(argdefs), globals); + goto done; + } + } + if (kwargs != NULL) { + Py_ssize_t pos, i; + kwtuple = PyTuple_New(2 * nk); + if (kwtuple == NULL) { + result = NULL; + goto done; + } + k = &PyTuple_GET_ITEM(kwtuple, 0); + pos = i = 0; + while (PyDict_Next(kwargs, &pos, &k[i], &k[i+1])) { + Py_INCREF(k[i]); + Py_INCREF(k[i+1]); + i += 2; + } + nk = i / 2; + } + else { + kwtuple = NULL; + k = NULL; + } + closure = PyFunction_GET_CLOSURE(func); +#if PY_MAJOR_VERSION >= 3 + kwdefs = PyFunction_GET_KW_DEFAULTS(func); +#endif + if (argdefs != NULL) { + d = &PyTuple_GET_ITEM(argdefs, 0); + nd = Py_SIZE(argdefs); + } + else { + d = NULL; + nd = 0; + } +#if PY_MAJOR_VERSION >= 3 + result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL, + args, (int)nargs, + k, (int)nk, + d, (int)nd, kwdefs, closure); +#else + result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL, + args, (int)nargs, + k, (int)nk, + d, (int)nd, closure); +#endif + Py_XDECREF(kwtuple); +done: + Py_LeaveRecursiveCall(); + return result; +} +#endif +#endif + +/* PyObjectCall */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { + PyObject *result; + ternaryfunc call = func->ob_type->tp_call; + if (unlikely(!call)) + return PyObject_Call(func, arg, kw); + if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) + return NULL; + result = (*call)(func, arg, kw); + Py_LeaveRecursiveCall(); + if (unlikely(!result) && unlikely(!PyErr_Occurred())) { + PyErr_SetString( + PyExc_SystemError, + "NULL result without error in PyObject_Call"); + } + return result; +} +#endif + +/* PyObjectCallMethO */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) { + PyObject *self, *result; + PyCFunction cfunc; + cfunc = PyCFunction_GET_FUNCTION(func); + self = PyCFunction_GET_SELF(func); + if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) + return NULL; + result = cfunc(self, arg); + Py_LeaveRecursiveCall(); + if (unlikely(!result) && unlikely(!PyErr_Occurred())) { + PyErr_SetString( + PyExc_SystemError, + "NULL result without error in PyObject_Call"); + } + return result; +} +#endif + +/* PyObjectCallNoArg */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) { +#if CYTHON_FAST_PYCALL + if (PyFunction_Check(func)) { + return __Pyx_PyFunction_FastCall(func, NULL, 0); + } +#endif +#ifdef __Pyx_CyFunction_USED + if (likely(PyCFunction_Check(func) || __Pyx_CyFunction_Check(func))) +#else + if (likely(PyCFunction_Check(func))) +#endif + { + if (likely(PyCFunction_GET_FLAGS(func) & METH_NOARGS)) { + return __Pyx_PyObject_CallMethO(func, NULL); + } + } + return __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL); +} +#endif + +/* PyCFunctionFastCall */ +#if CYTHON_FAST_PYCCALL +static CYTHON_INLINE PyObject * __Pyx_PyCFunction_FastCall(PyObject *func_obj, PyObject **args, Py_ssize_t nargs) { + PyCFunctionObject *func = (PyCFunctionObject*)func_obj; + PyCFunction meth = PyCFunction_GET_FUNCTION(func); + PyObject *self = PyCFunction_GET_SELF(func); + int flags = PyCFunction_GET_FLAGS(func); + assert(PyCFunction_Check(func)); + assert(METH_FASTCALL == (flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS))); + assert(nargs >= 0); + assert(nargs == 0 || args != NULL); + /* _PyCFunction_FastCallDict() must not be called with an exception set, + because it may clear it (directly or indirectly) and so the + caller loses its exception */ + assert(!PyErr_Occurred()); + if ((PY_VERSION_HEX < 0x030700A0) || unlikely(flags & METH_KEYWORDS)) { + return (*((__Pyx_PyCFunctionFastWithKeywords)(void*)meth)) (self, args, nargs, NULL); + } else { + return (*((__Pyx_PyCFunctionFast)(void*)meth)) (self, args, nargs); + } +} +#endif + +/* PyObjectCallOneArg */ +#if CYTHON_COMPILING_IN_CPYTHON +static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) { + PyObject *result; + PyObject *args = PyTuple_New(1); + if (unlikely(!args)) return NULL; + Py_INCREF(arg); + PyTuple_SET_ITEM(args, 0, arg); + result = __Pyx_PyObject_Call(func, args, NULL); + Py_DECREF(args); + return result; +} +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { +#if CYTHON_FAST_PYCALL + if (PyFunction_Check(func)) { + return __Pyx_PyFunction_FastCall(func, &arg, 1); + } +#endif + if (likely(PyCFunction_Check(func))) { + if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { + return __Pyx_PyObject_CallMethO(func, arg); +#if CYTHON_FAST_PYCCALL + } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) { + return __Pyx_PyCFunction_FastCall(func, &arg, 1); +#endif + } + } + return __Pyx__PyObject_CallOneArg(func, arg); +} +#else +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { + PyObject *result; + PyObject *args = PyTuple_Pack(1, arg); + if (unlikely(!args)) return NULL; + result = __Pyx_PyObject_Call(func, args, NULL); + Py_DECREF(args); + return result; +} +#endif + +/* PyErrFetchRestore */ +#if CYTHON_FAST_THREAD_STATE +static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { + PyObject *tmp_type, *tmp_value, *tmp_tb; + tmp_type = tstate->curexc_type; + tmp_value = tstate->curexc_value; + tmp_tb = tstate->curexc_traceback; + tstate->curexc_type = type; + tstate->curexc_value = value; + tstate->curexc_traceback = tb; + Py_XDECREF(tmp_type); + Py_XDECREF(tmp_value); + Py_XDECREF(tmp_tb); +} +static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { + *type = tstate->curexc_type; + *value = tstate->curexc_value; + *tb = tstate->curexc_traceback; + tstate->curexc_type = 0; + tstate->curexc_value = 0; + tstate->curexc_traceback = 0; +} +#endif + +/* RaiseException */ +#if PY_MAJOR_VERSION < 3 +static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, + CYTHON_UNUSED PyObject *cause) { + __Pyx_PyThreadState_declare + Py_XINCREF(type); + if (!value || value == Py_None) + value = NULL; + else + Py_INCREF(value); + if (!tb || tb == Py_None) + tb = NULL; + else { + Py_INCREF(tb); + if (!PyTraceBack_Check(tb)) { + PyErr_SetString(PyExc_TypeError, + "raise: arg 3 must be a traceback or None"); + goto raise_error; + } + } + if (PyType_Check(type)) { +#if CYTHON_COMPILING_IN_PYPY + if (!value) { + Py_INCREF(Py_None); + value = Py_None; + } +#endif + PyErr_NormalizeException(&type, &value, &tb); + } else { + if (value) { + PyErr_SetString(PyExc_TypeError, + "instance exception may not have a separate value"); + goto raise_error; + } + value = type; + type = (PyObject*) Py_TYPE(type); + Py_INCREF(type); + if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) { + PyErr_SetString(PyExc_TypeError, + "raise: exception class must be a subclass of BaseException"); + goto raise_error; + } + } + __Pyx_PyThreadState_assign + __Pyx_ErrRestore(type, value, tb); + return; +raise_error: + Py_XDECREF(value); + Py_XDECREF(type); + Py_XDECREF(tb); + return; +} +#else +static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) { + PyObject* owned_instance = NULL; + if (tb == Py_None) { + tb = 0; + } else if (tb && !PyTraceBack_Check(tb)) { + PyErr_SetString(PyExc_TypeError, + "raise: arg 3 must be a traceback or None"); + goto bad; + } + if (value == Py_None) + value = 0; + if (PyExceptionInstance_Check(type)) { + if (value) { + PyErr_SetString(PyExc_TypeError, + "instance exception may not have a separate value"); + goto bad; + } + value = type; + type = (PyObject*) Py_TYPE(value); + } else if (PyExceptionClass_Check(type)) { + PyObject *instance_class = NULL; + if (value && PyExceptionInstance_Check(value)) { + instance_class = (PyObject*) Py_TYPE(value); + if (instance_class != type) { + int is_subclass = PyObject_IsSubclass(instance_class, type); + if (!is_subclass) { + instance_class = NULL; + } else if (unlikely(is_subclass == -1)) { + goto bad; + } else { + type = instance_class; + } + } + } + if (!instance_class) { + PyObject *args; + if (!value) + args = PyTuple_New(0); + else if (PyTuple_Check(value)) { + Py_INCREF(value); + args = value; + } else + args = PyTuple_Pack(1, value); + if (!args) + goto bad; + owned_instance = PyObject_Call(type, args, NULL); + Py_DECREF(args); + if (!owned_instance) + goto bad; + value = owned_instance; + if (!PyExceptionInstance_Check(value)) { + PyErr_Format(PyExc_TypeError, + "calling %R should have returned an instance of " + "BaseException, not %R", + type, Py_TYPE(value)); + goto bad; + } + } + } else { + PyErr_SetString(PyExc_TypeError, + "raise: exception class must be a subclass of BaseException"); + goto bad; + } + if (cause) { + PyObject *fixed_cause; + if (cause == Py_None) { + fixed_cause = NULL; + } else if (PyExceptionClass_Check(cause)) { + fixed_cause = PyObject_CallObject(cause, NULL); + if (fixed_cause == NULL) + goto bad; + } else if (PyExceptionInstance_Check(cause)) { + fixed_cause = cause; + Py_INCREF(fixed_cause); + } else { + PyErr_SetString(PyExc_TypeError, + "exception causes must derive from " + "BaseException"); + goto bad; + } + PyException_SetCause(value, fixed_cause); + } + PyErr_SetObject(type, value); + if (tb) { +#if CYTHON_COMPILING_IN_PYPY + PyObject *tmp_type, *tmp_value, *tmp_tb; + PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb); + Py_INCREF(tb); + PyErr_Restore(tmp_type, tmp_value, tb); + Py_XDECREF(tmp_tb); +#else + PyThreadState *tstate = __Pyx_PyThreadState_Current; + PyObject* tmp_tb = tstate->curexc_traceback; + if (tb != tmp_tb) { + Py_INCREF(tb); + tstate->curexc_traceback = tb; + Py_XDECREF(tmp_tb); + } +#endif + } +bad: + Py_XDECREF(owned_instance); + return; +} +#endif + +/* PyObject_GenericGetAttrNoDict */ +#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 +static PyObject *__Pyx_RaiseGenericGetAttributeError(PyTypeObject *tp, PyObject *attr_name) { + PyErr_Format(PyExc_AttributeError, +#if PY_MAJOR_VERSION >= 3 + "'%.50s' object has no attribute '%U'", + tp->tp_name, attr_name); +#else + "'%.50s' object has no attribute '%.400s'", + tp->tp_name, PyString_AS_STRING(attr_name)); +#endif + return NULL; +} +static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name) { + PyObject *descr; + PyTypeObject *tp = Py_TYPE(obj); + if (unlikely(!PyString_Check(attr_name))) { + return PyObject_GenericGetAttr(obj, attr_name); + } + assert(!tp->tp_dictoffset); + descr = _PyType_Lookup(tp, attr_name); + if (unlikely(!descr)) { + return __Pyx_RaiseGenericGetAttributeError(tp, attr_name); + } + Py_INCREF(descr); + #if PY_MAJOR_VERSION < 3 + if (likely(PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_HAVE_CLASS))) + #endif + { + descrgetfunc f = Py_TYPE(descr)->tp_descr_get; + if (unlikely(f)) { + PyObject *res = f(descr, obj, (PyObject *)tp); + Py_DECREF(descr); + return res; + } + } + return descr; +} +#endif + +/* PyObject_GenericGetAttr */ +#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 +static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name) { + if (unlikely(Py_TYPE(obj)->tp_dictoffset)) { + return PyObject_GenericGetAttr(obj, attr_name); + } + return __Pyx_PyObject_GenericGetAttrNoDict(obj, attr_name); +} +#endif + +/* SetupReduce */ +static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) { + int ret; + PyObject *name_attr; + name_attr = __Pyx_PyObject_GetAttrStr(meth, __pyx_n_s_name); + if (likely(name_attr)) { + ret = PyObject_RichCompareBool(name_attr, name, Py_EQ); + } else { + ret = -1; + } + if (unlikely(ret < 0)) { + PyErr_Clear(); + ret = 0; + } + Py_XDECREF(name_attr); + return ret; +} +static int __Pyx_setup_reduce(PyObject* type_obj) { + int ret = 0; + PyObject *object_reduce = NULL; + PyObject *object_reduce_ex = NULL; + PyObject *reduce = NULL; + PyObject *reduce_ex = NULL; + PyObject *reduce_cython = NULL; + PyObject *setstate = NULL; + PyObject *setstate_cython = NULL; +#if CYTHON_USE_PYTYPE_LOOKUP + if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto GOOD; +#else + if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto GOOD; +#endif +#if CYTHON_USE_PYTYPE_LOOKUP + object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; +#else + object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; +#endif + reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto BAD; + if (reduce_ex == object_reduce_ex) { +#if CYTHON_USE_PYTYPE_LOOKUP + object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; +#else + object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; +#endif + reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto BAD; + if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) { + reduce_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_cython); if (unlikely(!reduce_cython)) goto BAD; + ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto BAD; + ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto BAD; + setstate = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate); + if (!setstate) PyErr_Clear(); + if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) { + setstate_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate_cython); if (unlikely(!setstate_cython)) goto BAD; + ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto BAD; + ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto BAD; + } + PyType_Modified((PyTypeObject*)type_obj); + } + } + goto GOOD; +BAD: + if (!PyErr_Occurred()) + PyErr_Format(PyExc_RuntimeError, "Unable to initialize pickling for %s", ((PyTypeObject*)type_obj)->tp_name); + ret = -1; +GOOD: +#if !CYTHON_USE_PYTYPE_LOOKUP + Py_XDECREF(object_reduce); + Py_XDECREF(object_reduce_ex); +#endif + Py_XDECREF(reduce); + Py_XDECREF(reduce_ex); + Py_XDECREF(reduce_cython); + Py_XDECREF(setstate); + Py_XDECREF(setstate_cython); + return ret; +} + +/* PyDictVersioning */ +#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS +static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) { + PyObject *dict = Py_TYPE(obj)->tp_dict; + return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0; +} +static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) { + PyObject **dictptr = NULL; + Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset; + if (offset) { +#if CYTHON_COMPILING_IN_CPYTHON + dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj); +#else + dictptr = _PyObject_GetDictPtr(obj); +#endif + } + return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0; +} +static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) { + PyObject *dict = Py_TYPE(obj)->tp_dict; + if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict))) + return 0; + return obj_dict_version == __Pyx_get_object_dict_version(obj); +} +#endif + +/* CLineInTraceback */ +#ifndef CYTHON_CLINE_IN_TRACEBACK +static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { + PyObject *use_cline; + PyObject *ptype, *pvalue, *ptraceback; +#if CYTHON_COMPILING_IN_CPYTHON + PyObject **cython_runtime_dict; +#endif + if (unlikely(!__pyx_cython_runtime)) { + return c_line; + } + __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback); +#if CYTHON_COMPILING_IN_CPYTHON + cython_runtime_dict = _PyObject_GetDictPtr(__pyx_cython_runtime); + if (likely(cython_runtime_dict)) { + __PYX_PY_DICT_LOOKUP_IF_MODIFIED( + use_cline, *cython_runtime_dict, + __Pyx_PyDict_GetItemStr(*cython_runtime_dict, __pyx_n_s_cline_in_traceback)) + } else +#endif + { + PyObject *use_cline_obj = __Pyx_PyObject_GetAttrStr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback); + if (use_cline_obj) { + use_cline = PyObject_Not(use_cline_obj) ? Py_False : Py_True; + Py_DECREF(use_cline_obj); + } else { + PyErr_Clear(); + use_cline = NULL; + } + } + if (!use_cline) { + c_line = 0; + PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); + } + else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) { + c_line = 0; + } + __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback); + return c_line; +} +#endif + +/* CodeObjectCache */ +static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) { + int start = 0, mid = 0, end = count - 1; + if (end >= 0 && code_line > entries[end].code_line) { + return count; + } + while (start < end) { + mid = start + (end - start) / 2; + if (code_line < entries[mid].code_line) { + end = mid; + } else if (code_line > entries[mid].code_line) { + start = mid + 1; + } else { + return mid; + } + } + if (code_line <= entries[mid].code_line) { + return mid; + } else { + return mid + 1; + } +} +static PyCodeObject *__pyx_find_code_object(int code_line) { + PyCodeObject* code_object; + int pos; + if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) { + return NULL; + } + pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); + if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) { + return NULL; + } + code_object = __pyx_code_cache.entries[pos].code_object; + Py_INCREF(code_object); + return code_object; +} +static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { + int pos, i; + __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries; + if (unlikely(!code_line)) { + return; + } + if (unlikely(!entries)) { + entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry)); + if (likely(entries)) { + __pyx_code_cache.entries = entries; + __pyx_code_cache.max_count = 64; + __pyx_code_cache.count = 1; + entries[0].code_line = code_line; + entries[0].code_object = code_object; + Py_INCREF(code_object); + } + return; + } + pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); + if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) { + PyCodeObject* tmp = entries[pos].code_object; + entries[pos].code_object = code_object; + Py_DECREF(tmp); + return; + } + if (__pyx_code_cache.count == __pyx_code_cache.max_count) { + int new_max = __pyx_code_cache.max_count + 64; + entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( + __pyx_code_cache.entries, (size_t)new_max*sizeof(__Pyx_CodeObjectCacheEntry)); + if (unlikely(!entries)) { + return; + } + __pyx_code_cache.entries = entries; + __pyx_code_cache.max_count = new_max; + } + for (i=__pyx_code_cache.count; i>pos; i--) { + entries[i] = entries[i-1]; + } + entries[pos].code_line = code_line; + entries[pos].code_object = code_object; + __pyx_code_cache.count++; + Py_INCREF(code_object); +} + +/* AddTraceback */ +#include "compile.h" +#include "frameobject.h" +#include "traceback.h" +static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( + const char *funcname, int c_line, + int py_line, const char *filename) { + PyCodeObject *py_code = 0; + PyObject *py_srcfile = 0; + PyObject *py_funcname = 0; + #if PY_MAJOR_VERSION < 3 + py_srcfile = PyString_FromString(filename); + #else + py_srcfile = PyUnicode_FromString(filename); + #endif + if (!py_srcfile) goto bad; + if (c_line) { + #if PY_MAJOR_VERSION < 3 + py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); + #else + py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); + #endif + } + else { + #if PY_MAJOR_VERSION < 3 + py_funcname = PyString_FromString(funcname); + #else + py_funcname = PyUnicode_FromString(funcname); + #endif + } + if (!py_funcname) goto bad; + py_code = __Pyx_PyCode_New( + 0, + 0, + 0, + 0, + 0, + __pyx_empty_bytes, /*PyObject *code,*/ + __pyx_empty_tuple, /*PyObject *consts,*/ + __pyx_empty_tuple, /*PyObject *names,*/ + __pyx_empty_tuple, /*PyObject *varnames,*/ + __pyx_empty_tuple, /*PyObject *freevars,*/ + __pyx_empty_tuple, /*PyObject *cellvars,*/ + py_srcfile, /*PyObject *filename,*/ + py_funcname, /*PyObject *name,*/ + py_line, + __pyx_empty_bytes /*PyObject *lnotab*/ + ); + Py_DECREF(py_srcfile); + Py_DECREF(py_funcname); + return py_code; +bad: + Py_XDECREF(py_srcfile); + Py_XDECREF(py_funcname); + return NULL; +} +static void __Pyx_AddTraceback(const char *funcname, int c_line, + int py_line, const char *filename) { + PyCodeObject *py_code = 0; + PyFrameObject *py_frame = 0; + PyThreadState *tstate = __Pyx_PyThreadState_Current; + if (c_line) { + c_line = __Pyx_CLineForTraceback(tstate, c_line); + } + py_code = __pyx_find_code_object(c_line ? -c_line : py_line); + if (!py_code) { + py_code = __Pyx_CreateCodeObjectForTraceback( + funcname, c_line, py_line, filename); + if (!py_code) goto bad; + __pyx_insert_code_object(c_line ? -c_line : py_line, py_code); + } + py_frame = PyFrame_New( + tstate, /*PyThreadState *tstate,*/ + py_code, /*PyCodeObject *code,*/ + __pyx_d, /*PyObject *globals,*/ + 0 /*PyObject *locals*/ + ); + if (!py_frame) goto bad; + __Pyx_PyFrame_SetLineNumber(py_frame, py_line); + PyTraceBack_Here(py_frame); +bad: + Py_XDECREF(py_code); + Py_XDECREF(py_frame); +} + +/* CIntFromPyVerify */ +#define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\ + __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0) +#define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\ + __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1) +#define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\ + {\ + func_type value = func_value;\ + if (sizeof(target_type) < sizeof(func_type)) {\ + if (unlikely(value != (func_type) (target_type) value)) {\ + func_type zero = 0;\ + if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\ + return (target_type) -1;\ + if (is_unsigned && unlikely(value < zero))\ + goto raise_neg_overflow;\ + else\ + goto raise_overflow;\ + }\ + }\ + return (target_type) value;\ + } + +/* CIntToPy */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { + const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(int) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(int) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(int) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(int), + little, !is_unsigned); + } +} + +/* CIntFromPy */ +static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { + const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(int) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (int) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (int) 0; + case 1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0]) + case 2: + if (8 * sizeof(int) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) >= 2 * PyLong_SHIFT) { + return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(int) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) >= 3 * PyLong_SHIFT) { + return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(int) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) >= 4 * PyLong_SHIFT) { + return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (int) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(int) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (int) 0; + case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(int, digit, +digits[0]) + case -2: + if (8 * sizeof(int) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { + return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(int) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { + return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { + return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(int) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { + return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { + return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(int) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { + return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } + } + break; + } +#endif + if (sizeof(int) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + int val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (int) -1; + } + } else { + int val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (int) -1; + val = __Pyx_PyInt_As_int(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to int"); + return (int) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to int"); + return (int) -1; +} + +/* CIntFromPy */ +static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *x) { + const size_t neg_one = (size_t) ((size_t) 0 - (size_t) 1), const_zero = (size_t) 0; + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(size_t) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(size_t, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (size_t) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (size_t) 0; + case 1: __PYX_VERIFY_RETURN_INT(size_t, digit, digits[0]) + case 2: + if (8 * sizeof(size_t) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(size_t) >= 2 * PyLong_SHIFT) { + return (size_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(size_t) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(size_t) >= 3 * PyLong_SHIFT) { + return (size_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(size_t) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(size_t) >= 4 * PyLong_SHIFT) { + return (size_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (size_t) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(size_t) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(size_t) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (size_t) 0; + case -1: __PYX_VERIFY_RETURN_INT(size_t, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(size_t, digit, +digits[0]) + case -2: + if (8 * sizeof(size_t) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) { + return (size_t) (((size_t)-1)*(((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(size_t) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) { + return (size_t) ((((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) { + return (size_t) (((size_t)-1)*(((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(size_t) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) { + return (size_t) ((((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT) { + return (size_t) (((size_t)-1)*(((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(size_t) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT) { + return (size_t) ((((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); + } + } + break; + } +#endif + if (sizeof(size_t) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(size_t, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(size_t) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(size_t, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + size_t val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (size_t) -1; + } + } else { + size_t val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (size_t) -1; + val = __Pyx_PyInt_As_size_t(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to size_t"); + return (size_t) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to size_t"); + return (size_t) -1; +} + +/* CIntToPy */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { + const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(long) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(long) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(long) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(long), + little, !is_unsigned); + } +} + +/* CIntFromPy */ +static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { + const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(long) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (long) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (long) 0; + case 1: __PYX_VERIFY_RETURN_INT(long, digit, digits[0]) + case 2: + if (8 * sizeof(long) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) >= 2 * PyLong_SHIFT) { + return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(long) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) >= 3 * PyLong_SHIFT) { + return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(long) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) >= 4 * PyLong_SHIFT) { + return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (long) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(long) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (long) 0; + case -1: __PYX_VERIFY_RETURN_INT(long, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(long, digit, +digits[0]) + case -2: + if (8 * sizeof(long) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { + return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(long) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { + return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { + return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(long) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { + return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { + return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(long) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { + return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } + } + break; + } +#endif + if (sizeof(long) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + long val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (long) -1; + } + } else { + long val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (long) -1; + val = __Pyx_PyInt_As_long(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to long"); + return (long) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to long"); + return (long) -1; +} + +/* FastTypeChecks */ +#if CYTHON_COMPILING_IN_CPYTHON +static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) { + while (a) { + a = a->tp_base; + if (a == b) + return 1; + } + return b == &PyBaseObject_Type; +} +static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) { + PyObject *mro; + if (a == b) return 1; + mro = a->tp_mro; + if (likely(mro)) { + Py_ssize_t i, n; + n = PyTuple_GET_SIZE(mro); + for (i = 0; i < n; i++) { + if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b) + return 1; + } + return 0; + } + return __Pyx_InBases(a, b); +} +#if PY_MAJOR_VERSION == 2 +static int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject* exc_type2) { + PyObject *exception, *value, *tb; + int res; + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ErrFetch(&exception, &value, &tb); + res = exc_type1 ? PyObject_IsSubclass(err, exc_type1) : 0; + if (unlikely(res == -1)) { + PyErr_WriteUnraisable(err); + res = 0; + } + if (!res) { + res = PyObject_IsSubclass(err, exc_type2); + if (unlikely(res == -1)) { + PyErr_WriteUnraisable(err); + res = 0; + } + } + __Pyx_ErrRestore(exception, value, tb); + return res; +} +#else +static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) { + int res = exc_type1 ? __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type1) : 0; + if (!res) { + res = __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2); + } + return res; +} +#endif +static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) { + Py_ssize_t i, n; + assert(PyExceptionClass_Check(exc_type)); + n = PyTuple_GET_SIZE(tuple); +#if PY_MAJOR_VERSION >= 3 + for (i=0; ip) { + #if PY_MAJOR_VERSION < 3 + if (t->is_unicode) { + *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL); + } else if (t->intern) { + *t->p = PyString_InternFromString(t->s); + } else { + *t->p = PyString_FromStringAndSize(t->s, t->n - 1); + } + #else + if (t->is_unicode | t->is_str) { + if (t->intern) { + *t->p = PyUnicode_InternFromString(t->s); + } else if (t->encoding) { + *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL); + } else { + *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1); + } + } else { + *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1); + } + #endif + if (!*t->p) + return -1; + if (PyObject_Hash(*t->p) == -1) + return -1; + ++t; + } + return 0; +} + +static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) { + return __Pyx_PyUnicode_FromStringAndSize(c_str, (Py_ssize_t)strlen(c_str)); +} +static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject* o) { + Py_ssize_t ignore; + return __Pyx_PyObject_AsStringAndSize(o, &ignore); +} +#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT +#if !CYTHON_PEP393_ENABLED +static const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) { + char* defenc_c; + PyObject* defenc = _PyUnicode_AsDefaultEncodedString(o, NULL); + if (!defenc) return NULL; + defenc_c = PyBytes_AS_STRING(defenc); +#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII + { + char* end = defenc_c + PyBytes_GET_SIZE(defenc); + char* c; + for (c = defenc_c; c < end; c++) { + if ((unsigned char) (*c) >= 128) { + PyUnicode_AsASCIIString(o); + return NULL; + } + } + } +#endif + *length = PyBytes_GET_SIZE(defenc); + return defenc_c; +} +#else +static CYTHON_INLINE const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) { + if (unlikely(__Pyx_PyUnicode_READY(o) == -1)) return NULL; +#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII + if (likely(PyUnicode_IS_ASCII(o))) { + *length = PyUnicode_GET_LENGTH(o); + return PyUnicode_AsUTF8(o); + } else { + PyUnicode_AsASCIIString(o); + return NULL; + } +#else + return PyUnicode_AsUTF8AndSize(o, length); +#endif +} +#endif +#endif +static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) { +#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT + if ( +#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII + __Pyx_sys_getdefaultencoding_not_ascii && +#endif + PyUnicode_Check(o)) { + return __Pyx_PyUnicode_AsStringAndSize(o, length); + } else +#endif +#if (!CYTHON_COMPILING_IN_PYPY) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE)) + if (PyByteArray_Check(o)) { + *length = PyByteArray_GET_SIZE(o); + return PyByteArray_AS_STRING(o); + } else +#endif + { + char* result; + int r = PyBytes_AsStringAndSize(o, &result, length); + if (unlikely(r < 0)) { + return NULL; + } else { + return result; + } + } +} +static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) { + int is_true = x == Py_True; + if (is_true | (x == Py_False) | (x == Py_None)) return is_true; + else return PyObject_IsTrue(x); +} +static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject* x) { + int retval; + if (unlikely(!x)) return -1; + retval = __Pyx_PyObject_IsTrue(x); + Py_DECREF(x); + return retval; +} +static PyObject* __Pyx_PyNumber_IntOrLongWrongResultType(PyObject* result, const char* type_name) { +#if PY_MAJOR_VERSION >= 3 + if (PyLong_Check(result)) { + if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1, + "__int__ returned non-int (type %.200s). " + "The ability to return an instance of a strict subclass of int " + "is deprecated, and may be removed in a future version of Python.", + Py_TYPE(result)->tp_name)) { + Py_DECREF(result); + return NULL; + } + return result; + } +#endif + PyErr_Format(PyExc_TypeError, + "__%.4s__ returned non-%.4s (type %.200s)", + type_name, type_name, Py_TYPE(result)->tp_name); + Py_DECREF(result); + return NULL; +} +static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x) { +#if CYTHON_USE_TYPE_SLOTS + PyNumberMethods *m; +#endif + const char *name = NULL; + PyObject *res = NULL; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x) || PyLong_Check(x))) +#else + if (likely(PyLong_Check(x))) +#endif + return __Pyx_NewRef(x); +#if CYTHON_USE_TYPE_SLOTS + m = Py_TYPE(x)->tp_as_number; + #if PY_MAJOR_VERSION < 3 + if (m && m->nb_int) { + name = "int"; + res = m->nb_int(x); + } + else if (m && m->nb_long) { + name = "long"; + res = m->nb_long(x); + } + #else + if (likely(m && m->nb_int)) { + name = "int"; + res = m->nb_int(x); + } + #endif +#else + if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) { + res = PyNumber_Int(x); + } +#endif + if (likely(res)) { +#if PY_MAJOR_VERSION < 3 + if (unlikely(!PyInt_Check(res) && !PyLong_Check(res))) { +#else + if (unlikely(!PyLong_CheckExact(res))) { +#endif + return __Pyx_PyNumber_IntOrLongWrongResultType(res, name); + } + } + else if (!PyErr_Occurred()) { + PyErr_SetString(PyExc_TypeError, + "an integer is required"); + } + return res; +} +static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { + Py_ssize_t ival; + PyObject *x; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_CheckExact(b))) { + if (sizeof(Py_ssize_t) >= sizeof(long)) + return PyInt_AS_LONG(b); + else + return PyInt_AsSsize_t(b); + } +#endif + if (likely(PyLong_CheckExact(b))) { + #if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)b)->ob_digit; + const Py_ssize_t size = Py_SIZE(b); + if (likely(__Pyx_sst_abs(size) <= 1)) { + ival = likely(size) ? digits[0] : 0; + if (size == -1) ival = -ival; + return ival; + } else { + switch (size) { + case 2: + if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) { + return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + break; + case -2: + if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) { + return -(Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + break; + case 3: + if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) { + return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + break; + case -3: + if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) { + return -(Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + break; + case 4: + if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) { + return (Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + break; + case -4: + if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) { + return -(Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + break; + } + } + #endif + return PyLong_AsSsize_t(b); + } + x = PyNumber_Index(b); + if (!x) return -1; + ival = PyInt_AsSsize_t(x); + Py_DECREF(x); + return ival; +} +static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { + return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); +} +static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) { + return PyInt_FromSize_t(ival); +} + + +#endif /* Py_PYTHON_H */ diff --git a/reccdi/src_py/cyth/bridge_cuda.cpython-37m-x86_64-linux-gnu.so b/reccdi/src_py/cyth/bridge_cuda.cpython-37m-x86_64-linux-gnu.so new file mode 100755 index 0000000000000000000000000000000000000000..1313da4c956f8dd959e9b233ea942592671b8924 GIT binary patch literal 1983256 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 {*X9r^8*^auT&fB}|I+k8IeA>? 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�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

    URY5OXcgRzV}pnA?k@ls}2NUD~Z_%68k2e^29N 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

      !fet?DXsYPFIz`1Ah(8fl(ehoW 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

      h9%UeQ?|OlBD)L6y}>x1%vpwc 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 `CoDMGuL24R%uv{nM&VDw0iaxu}?DEHcf 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%0D`nU=x0Gf+>*F|lnFzWUU7J^E@=)Yx>>*Au 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 Q@=sLp#2GUR7$2Sg2RKssUH||9 literal 0 HcmV?d00001 diff --git a/reccdi/src_py/cyth/bridge_opencl.pyx b/reccdi/src_py/cyth/bridge_opencl.pyx index 1a0d9bb..ddcc913 100755 --- a/reccdi/src_py/cyth/bridge_opencl.pyx +++ b/reccdi/src_py/cyth/bridge_opencl.pyx @@ -6,10 +6,10 @@ # distutils: language = c++ -# distutils: include_dirs = ['reccdi/include', 'lib/arrayfire/include', 'lib/libconfig/include',] +# distutils: include_dirs = ['reccdi/include', '/home/beams/CXDUSER/CDI/arrayfire/include', '/home/beams/CXDUSER/CDI/libconfig/include',] # distutils: sources = ['reccdi/src_cpp/bridge.cpp', 'reccdi/src_cpp/manager.cpp', 'reccdi/src_cpp/parameters.cpp', 'reccdi/src_cpp/pcdi.cpp', 'reccdi/src_cpp/resolution.cpp', 'reccdi/src_cpp/state.cpp', 'reccdi/src_cpp/support.cpp', 'reccdi/src_cpp/util.cpp', 'reccdi/src_cpp/worker.cpp'] # distutils: libraries = ['afopencl', 'config++',] -# distutils: library_dirs = ['lib/arrayfire/lib64', 'lib/libconfig/lib',] +# distutils: library_dirs = ['/home/beams/CXDUSER/CDI/arrayfire/lib64', '/home/beams/CXDUSER/CDI/libconfig/lib',] from libcpp.vector cimport vector from libcpp.string cimport string From f4371d8ca77bf53fb5f3db6df7be387ce536bb46 Mon Sep 17 00:00:00 2001 From: Service Account for David Cyl Date: Mon, 20 Jan 2020 15:15:17 -0600 Subject: [PATCH 212/336] Most array swapaxes removed. Maybe got all of the important ones. Had to redo the viz bits because of this. Switched to pyevtk for output. Shouldn't need vtk anymore. Added a parameter to config_disp. rampups that controls the upsampling for the phase ramp removal. This has a huge impact on speed and most of the time rampups=1 is fine. Still need to work on the normals being inverted when looking at image in paraview, but wanted to commit the current state before I break it again. Also, the pyx files in cyth will have the lib paths overwritten. That's why we need to do that edit out of place with sed in init.sh. --- bin/run_disp.py | 62 ++++++++++++-- .../reccdi/src_py/controller/fast_module.py | 80 +++++++++++-------- .../reccdi/src_py/controller/gen_rec.py | 4 +- .../src_py/controller/reconstruction.py | 4 +- .../src_py/controller/reconstruction_multi.py | 4 +- .../reccdi/src_py/cyth/bridge_cpu.pyx | 4 +- .../reccdi/src_py/cyth/bridge_cuda.pyx | 4 +- .../reccdi/src_py/cyth/bridge_opencl.pyx | 4 +- .../reccdi/src_py/run_scripts/run_disp.py | 50 ++++++++++-- .../reccdi/src_py/utilities/CXDVizNX.py | 10 +-- .../reccdi/src_py/utilities/spec.py | 2 +- .../reccdi/src_py/utilities/utils.py | 16 ++-- .../reccdi/src_py/controller/fast_module.py | 80 +++++++++++-------- .../reccdi/src_py/controller/gen_rec.py | 4 +- .../src_py/controller/reconstruction.py | 4 +- .../src_py/controller/reconstruction_multi.py | 4 +- .../reccdi/src_py/run_scripts/run_disp.py | 50 ++++++++++-- .../reccdi/src_py/utilities/CXDVizNX.py | 10 +-- .../reccdi/src_py/utilities/spec.py | 2 +- .../reccdi/src_py/utilities/utils.py | 31 +++++-- reccdi/src_py/controller/fast_module.py | 80 +++++++++++-------- reccdi/src_py/controller/gen_rec.py | 4 +- reccdi/src_py/controller/reconstruction.py | 4 +- .../src_py/controller/reconstruction_multi.py | 4 +- reccdi/src_py/run_scripts/run_disp.py | 50 ++++++++++-- reccdi/src_py/utilities/CXDVizNX.py | 10 +-- reccdi/src_py/utilities/spec.py | 2 +- reccdi/src_py/utilities/utils.py | 31 +++++-- 28 files changed, 430 insertions(+), 184 deletions(-) diff --git a/bin/run_disp.py b/bin/run_disp.py index eada1eb..472c612 100755 --- a/bin/run_disp.py +++ b/bin/run_disp.py @@ -1,4 +1,4 @@ -import reccdi.src_py.utilities.CXDVizNX as cx +import reccdi.src_py.utilities.viz_util_xu as vu import reccdi.src_py.utilities.utils as ut import reccdi.src_py.utilities.parse_ver as ver import argparse @@ -7,8 +7,53 @@ import numpy as np from multiprocessing import Pool +def printhello(): + print("Hello") + +def save_CX(conf, image, support, coh, save_dir): + print("setting geom") + #image = np.swapaxes(image, 1,2) + #image = np.swapaxes(image, 0,1) +# support = np.swapaxes(support, 1,2) +# support = np.swapaxes(support, 0,1) +# image, support = center(image, support) + params = vu.DispalyParams(conf) +# image = remove_ramp(image) + viz = vu.CXDViz() + viz.set_geometry(params, image.shape) + crop = get_crop(params, image.shape) + #viz.set_crop(crop[0], crop[1], crop[2]) # save image + + viz.add_array(np.abs(image), "imAmp", space='direct') + viz.add_array(np.angle(image), "imPh", space='direct') + image_file = os.path.join(save_dir, 'image') + #viz.write_structured_grid(image_file) + viz.write_directspace(image_file) + viz.clear_direct_arrays() + + viz.add_array(support, "support", space='direct') + support_file = os.path.join(save_dir, 'support') + #viz.write_structured_grid(support_file) + viz.write_directspace(support_file) + viz.clear_direct_arrays() + + if coh is not None: + coh = np.swapaxes(coh, 1, 2) + # investigate if pad_center before fft or after + coh = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(coh))).real + coh = ut.get_zero_padded_centered(coh, image.shape) + coh_file = os.path.join(save_dir, 'coherence') + viz.add_array(np.abs(coh), 'cohAmp', space='direct') + viz.add_array(np.angle(coh), 'cohPh', space='direct') + #viz.write_structured_grid(coh_file) + viz.write_directspace(coh_file) + viz.clear_direct_arrays() + +# a = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') +# remove_ramp(a, 3) def save_vtk(res_dir_conf): + print(res_dir_conf) (res_dir, conf) = res_dir_conf try: imagefile = os.path.join(res_dir, 'image.npy') @@ -42,9 +87,11 @@ def save_vtk(res_dir_conf): cohfile = os.path.join(res_dir, 'coherence.npy') if os.path.isfile(cohfile): coh = np.load(cohfile) - cx.save_CX(conf, image, support, coh, res_dir) + save_CX(conf, image, support, coh, res_dir) else: - cx.save_CX(conf, image, support, None, res_dir) + print("running CX") + printhello() + save_CX(conf, image, support, None, res_dir) def to_vtk(experiment_dir, results_dir=None): @@ -111,10 +158,11 @@ def to_vtk(experiment_dir, results_dir=None): if file.endswith('image.npy'): dirs.append((dirpath, conf_dict)) - with Pool(processes = no_gpus) as pool: - pool.map_async(save_vtk, dirs) - pool.close() - pool.join() + save_vtk(dirs[0]) +# with Pool(processes = no_gpus) as pool: +# pool.map_async(save_vtk, dirs) +# pool.close() +# pool.join() def main(arg): diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/fast_module.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/fast_module.py index 7f05a31..b945ef2 100644 --- a/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/fast_module.py +++ b/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/fast_module.py @@ -89,81 +89,93 @@ def fast_module_reconstruction(proc, device, conf, data, coh_dims, image=None, s fast_module = bridge_cuda.PyBridge() # shift data + #data = np.swapaxes(data,1,2) + #data = np.asfortranarray(sf.fftshift(data)) data = sf.fftshift(data) - data = np.swapaxes(data,1,2) - dims = data.shape - dims1 = (dims[2], dims[1], dims[0]) + dims = data.shape[::-1] +# dims1 = (dims[2], dims[1], dims[0]) + print("data dims", dims) data_l = data.flatten().tolist() if image is None: - fast_module.start_calc(device, data_l, dims1, conf) + print("Running start_calc") + fast_module.start_calc(device, data_l, dims, conf) + #fast_module.start_calc(device, data_l, dims1, conf) elif support is None: # pass image - image = np.swapaxes(image, 1, 0) - image = np.swapaxes(image, 2, 0) +# image = np.swapaxes(image, 1, 0) +# image = np.swapaxes(image, 2, 0) image = image.flatten() - fast_module.start_calc_with_guess(device, data_l, image.real.tolist(), image.imag.tolist(), dims1, conf) + fast_module.start_calc_with_guess(device, data_l, image.real.tolist(), image.imag.tolist(), dims, conf) + #fast_module.start_calc_with_guess(device, data_l, image.real.tolist(), image.imag.tolist(), dims1, conf) elif coherence is None: # pass image and support - image = np.swapaxes(image, 1, 0) - image = np.swapaxes(image, 2, 0) +# image = np.swapaxes(image, 1, 0) +# image = np.swapaxes(image, 2, 0) image = image.flatten() - support = np.swapaxes(support, 1, 0) - support = np.swapaxes(support, 2, 0) +# support = np.swapaxes(support, 1, 0) +# support = np.swapaxes(support, 2, 0) support = support.flatten() - fast_module.start_calc_with_guess_support(device, data_l, image.real.tolist(), image.imag.tolist(), support.tolist(), dims1, conf) + fast_module.start_calc_with_guess_support(device, data_l, image.real.tolist(), image.imag.tolist(), support.tolist(), dims, conf) + #fast_module.start_calc_with_guess_support(device, data_l, image.real.tolist(), image.imag.tolist(), support.tolist(), dims1, conf) else: # pass image and support and coherence - image = np.swapaxes(image, 1, 0) - image = np.swapaxes(image, 2, 0) +# image = np.swapaxes(image, 1, 0) +# image = np.swapaxes(image, 2, 0) image = image.flatten() - support = np.swapaxes(support, 1, 0) - support = np.swapaxes(support, 2, 0) +# support = np.swapaxes(support, 1, 0) +# support = np.swapaxes(support, 2, 0) support = support.flatten() coh_dims1 = (coh_dims[2], coh_dims[1], coh_dims[0]) - coherence = np.swapaxes(coherence, 1, 0) - coherence = np.swapaxes(coherence, 2, 0) +# coherence = np.swapaxes(coherence, 1, 0) +# coherence = np.swapaxes(coherence, 2, 0) coherence = coherence.flatten() - fast_module.start_calc_with_guess_support_coh(device, data_l, image.real.tolist(), image.imag.tolist(), support.tolist(), dims1, coherence.tolist(), coh_dims1, conf) + fast_module.start_calc_with_guess_support_coh(device, data_l, image.real.tolist(), image.imag.tolist(), support.tolist(), dims, coherence.tolist(), coh_dims, conf) + #fast_module.start_calc_with_guess_support_coh(device, data_l, image.real.tolist(), image.imag.tolist(), support.tolist(), dims1, coherence.tolist(), coh_dims1, conf) er = copy.deepcopy(fast_module.get_errors()) if len(er) == 1 and er[0] == -1: # run into Nan during reconstruction fast_module.cleanup() return None, None, None, None, None, None, None - image_r = copy.deepcopy(np.asarray(fast_module.get_image_r())) - image_i = copy.deepcopy(np.asarray(fast_module.get_image_i())) - image = image_r + 1j*image_i +# image_r = copy.deepcopy(np.asarray(fast_module.get_image_r())) +# image_i = copy.deepcopy(np.asarray(fast_module.get_image_i())) + image_r = np.asarray(fast_module.get_image_r()) + image_i = np.asarray(fast_module.get_image_i()) + image = image_r + 1j*image_i #no need to deepcopy the real and imag parts since this makes a new array # normalize image - mx = max(np.absolute(image).ravel().tolist()) + #mx = max(np.absolute(image).ravel().tolist()) + mx=np.abs(image).max() image = image/mx support = copy.deepcopy(np.asarray(fast_module.get_support())) coherence = copy.deepcopy(np.asarray(fast_module.get_coherence())) - image = np.reshape(image, dims) - image = np.swapaxes(image, 2, 0) - image = np.swapaxes(image, 1, 0) + image.shape=dims[::-1] + #image=np.ascontiguousarray(image) + #image = np.reshape(image, dims) +# image = np.swapaxes(image, 2, 0) +# image = np.swapaxes(image, 1, 0) - support = np.reshape(support, dims) - support = np.swapaxes(support, 2, 0) - support = np.swapaxes(support, 1, 0) + support = np.reshape(support, dims[::-1]) +# support = np.swapaxes(support, 2, 0) +# support = np.swapaxes(support, 1, 0) if coherence.shape[0] > 1: - coherence = np.reshape(coherence, coh_dims) - coherence = np.swapaxes(coherence, 2, 0) - coherence = np.swapaxes(coherence, 1, 0) + coherence = np.reshape(coherence, coh_dims[::-1]) +# coherence = np.swapaxes(coherence, 2, 0) +# coherence = np.swapaxes(coherence, 1, 0) else: coherence = None reciprocal_r = copy.deepcopy(np.asarray(fast_module.get_reciprocal_r())) reciprocal_i = copy.deepcopy(np.asarray(fast_module.get_reciprocal_i())) reciprocal = reciprocal_r + 1j*reciprocal_i - reciprocal = np.reshape(reciprocal, dims) - reciprocal = np.swapaxes(reciprocal, 2, 1) + reciprocal = np.reshape(reciprocal, dims[::-1]) + #reciprocal = np.swapaxes(reciprocal, 2, 1) reciprocal = sf.ifftshift(reciprocal) iter_array = copy.deepcopy(np.asarray(fast_module.get_iter_flow())) diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/gen_rec.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/gen_rec.py index b997e48..23a34a4 100644 --- a/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/gen_rec.py +++ b/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/gen_rec.py @@ -370,8 +370,8 @@ def reconstruction(proc, conf_file, datafile, dir, devices): """ data = ut.read_tif(datafile) print ('data shape', data.shape) - data = np.swapaxes(data, 0, 2) - data = np.swapaxes(data, 0, 1) + #data = np.swapaxes(data, 0, 2) + #data = np.swapaxes(data, 0, 1) try: config_map = ut.read_config(conf_file) diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/reconstruction.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/reconstruction.py index c3d4667..56edb32 100644 --- a/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/reconstruction.py +++ b/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/reconstruction.py @@ -111,8 +111,8 @@ def reconstruction(proc, conf_file, datafile, dir, dev): """ data = ut.read_tif(datafile) print ('data shape', data.shape) - data = np.swapaxes(data, 0, 2) - data = np.swapaxes(data, 0, 1) +# data = np.swapaxes(data, 0, 2) +# data = np.swapaxes(data, 0, 1) try: config_map = ut.read_config(conf_file) diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/reconstruction_multi.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/reconstruction_multi.py index 7c36b8c..2f87107 100644 --- a/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/reconstruction_multi.py +++ b/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/reconstruction_multi.py @@ -210,8 +210,8 @@ def reconstruction(proc, conf_file, datafile, dir, devices): """ data = ut.read_tif(datafile) print ('data shape', data.shape) - data = np.swapaxes(data, 0, 2) - data = np.swapaxes(data, 0, 1) + #data = np.swapaxes(data, 0, 2) + #data = np.swapaxes(data, 0, 1) try: config_map = ut.read_config(conf_file) diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/cyth/bridge_cpu.pyx b/build/lib.linux-x86_64-2.7/reccdi/src_py/cyth/bridge_cpu.pyx index 3219efb..615cc26 100644 --- a/build/lib.linux-x86_64-2.7/reccdi/src_py/cyth/bridge_cpu.pyx +++ b/build/lib.linux-x86_64-2.7/reccdi/src_py/cyth/bridge_cpu.pyx @@ -6,10 +6,10 @@ # distutils: language = c++ -# distutils: include_dirs = ['reccdi/include', 'lib/arrayfire/include', 'lib/libconfig/include',] +# distutils: include_dirs = ['reccdi/include', '/home/beams/CXDUSER/CDI/arrayfire/include', '/home/beams/CXDUSER/CDI/libconfig/include',] # distutils: sources = ['reccdi/src_cpp/bridge.cpp', 'reccdi/src_cpp/manager.cpp', 'reccdi/src_cpp/parameters.cpp', 'reccdi/src_cpp/pcdi.cpp', 'reccdi/src_cpp/resolution.cpp', 'reccdi/src_cpp/state.cpp', 'reccdi/src_cpp/support.cpp', 'reccdi/src_cpp/util.cpp', 'reccdi/src_cpp/worker.cpp'] # distutils: libraries = ['afcpu', 'config++',] -# distutils: library_dirs = ['lib/arrayfire/lib64', 'lib/libconfig/lib',] +# distutils: library_dirs = ['/home/beams/CXDUSER/CDI/arrayfire/lib64', '/home/beams/CXDUSER/CDI/libconfig/lib',] from libcpp.vector cimport vector from libcpp.string cimport string diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/cyth/bridge_cuda.pyx b/build/lib.linux-x86_64-2.7/reccdi/src_py/cyth/bridge_cuda.pyx index eb71e65..7ea8cbc 100644 --- a/build/lib.linux-x86_64-2.7/reccdi/src_py/cyth/bridge_cuda.pyx +++ b/build/lib.linux-x86_64-2.7/reccdi/src_py/cyth/bridge_cuda.pyx @@ -6,10 +6,10 @@ # distutils: language = c++ -# distutils: include_dirs = ['reccdi/include', 'lib/arrayfire/include', 'lib/libconfig/include',] +# distutils: include_dirs = ['reccdi/include', '/home/beams/CXDUSER/CDI/arrayfire/include', '/home/beams/CXDUSER/CDI/libconfig/include',] # distutils: sources = ['reccdi/src_cpp/bridge.cpp', 'reccdi/src_cpp/manager.cpp', 'reccdi/src_cpp/parameters.cpp', 'reccdi/src_cpp/pcdi.cpp', 'reccdi/src_cpp/resolution.cpp', 'reccdi/src_cpp/state.cpp', 'reccdi/src_cpp/support.cpp', 'reccdi/src_cpp/util.cpp', 'reccdi/src_cpp/worker.cpp'] # distutils: libraries = ['afcuda', 'config++',] -# distutils: library_dirs = ['lib/arrayfire/lib64', 'lib/libconfig/lib',] +# distutils: library_dirs = ['/home/beams/CXDUSER/CDI/arrayfire/lib64', '/home/beams/CXDUSER/CDI/libconfig/lib',] from libcpp.vector cimport vector from libcpp.string cimport string diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/cyth/bridge_opencl.pyx b/build/lib.linux-x86_64-2.7/reccdi/src_py/cyth/bridge_opencl.pyx index 1a0d9bb..ddcc913 100644 --- a/build/lib.linux-x86_64-2.7/reccdi/src_py/cyth/bridge_opencl.pyx +++ b/build/lib.linux-x86_64-2.7/reccdi/src_py/cyth/bridge_opencl.pyx @@ -6,10 +6,10 @@ # distutils: language = c++ -# distutils: include_dirs = ['reccdi/include', 'lib/arrayfire/include', 'lib/libconfig/include',] +# distutils: include_dirs = ['reccdi/include', '/home/beams/CXDUSER/CDI/arrayfire/include', '/home/beams/CXDUSER/CDI/libconfig/include',] # distutils: sources = ['reccdi/src_cpp/bridge.cpp', 'reccdi/src_cpp/manager.cpp', 'reccdi/src_cpp/parameters.cpp', 'reccdi/src_cpp/pcdi.cpp', 'reccdi/src_cpp/resolution.cpp', 'reccdi/src_cpp/state.cpp', 'reccdi/src_cpp/support.cpp', 'reccdi/src_cpp/util.cpp', 'reccdi/src_cpp/worker.cpp'] # distutils: libraries = ['afopencl', 'config++',] -# distutils: library_dirs = ['lib/arrayfire/lib64', 'lib/libconfig/lib',] +# distutils: library_dirs = ['/home/beams/CXDUSER/CDI/arrayfire/lib64', '/home/beams/CXDUSER/CDI/libconfig/lib',] from libcpp.vector cimport vector from libcpp.string cimport string diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/run_disp.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/run_disp.py index c471662..b4298d8 100644 --- a/build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/run_disp.py +++ b/build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/run_disp.py @@ -1,4 +1,4 @@ -import reccdi.src_py.utilities.CXDVizNX as cx +import reccdi.src_py.utilities.viz_util_xu as vu import reccdi.src_py.utilities.utils as ut import reccdi.src_py.utilities.parse_ver as ver import argparse @@ -8,6 +8,47 @@ from multiprocessing import Pool +def save_CX(conf, image, support, coh, save_dir, last_scan): + image = np.swapaxes(image, 1,2) + image = np.swapaxes(image, 0,1) +# support = np.swapaxes(support, 1,2) +# support = np.swapaxes(support, 0,1) +# image, support = center(image, support) + params = vu.DispalyParams(conf, last_scan) +# image = remove_ramp(image) + viz = vu.CXDViz() + viz.set_geometry(params, image.shape) + crop = get_crop(params, image.shape) + #viz.set_crop(crop[0], crop[1], crop[2]) # save image + + viz.add_array(np.abs(image), "imAmp", space='direct') + viz.add_array(np.angle(image), "imPh", space='direct') + image_file = os.path.join(save_dir, 'image') + #viz.write_structured_grid(image_file) + viz.write_directspace(image_file) + viz.clear_direct_arrays() + + viz.add_array(support, "support", space='direct') + support_file = os.path.join(save_dir, 'support') + #viz.write_structured_grid(support_file) + viz.write_directspace(support_file) + viz.clear_direct_arrays() + + if coh is not None: + coh = np.swapaxes(coh, 1, 2) + # investigate if pad_center before fft or after + coh = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(coh))).real + coh = ut.get_zero_padded_centered(coh, image.shape) + coh_file = os.path.join(save_dir, 'coherence') + viz.add_array(np.abs(coh), 'cohAmp', space='direct') + viz.add_array(np.angle(coh), 'cohPh', space='direct') + #viz.write_structured_grid(coh_file) + viz.write_directspace(coh_file) + viz.clear_direct_arrays() + +# a = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') +# remove_ramp(a, 3) + def save_vtk(res_dir_conf): (res_dir, conf) = res_dir_conf try: @@ -42,13 +83,12 @@ def save_vtk(res_dir_conf): cohfile = os.path.join(res_dir, 'coherence.npy') if os.path.isfile(cohfile): coh = np.load(cohfile) - cx.save_CX(conf, image, support, coh, res_dir) + save_CX(conf, image, support, coh, res_dir) else: - cx.save_CX(conf, image, support, None, res_dir) + save_CX(conf, image, support, None, res_dir) def to_vtk(experiment_dir, results_dir=None): - print ('starting conversion to vtk') if not os.path.isdir(experiment_dir): print("Please provide a valid experiment directory") return @@ -108,6 +148,7 @@ def to_vtk(experiment_dir, results_dir=None): dirs = [] for (dirpath, dirnames, filenames) in os.walk(results_dir): for file in filenames: + print("file", file) if file.endswith('image.npy'): dirs.append((dirpath, conf_dict)) @@ -115,7 +156,6 @@ def to_vtk(experiment_dir, results_dir=None): pool.map_async(save_vtk, dirs) pool.close() pool.join() - print ('done') def main(arg): diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/CXDVizNX.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/CXDVizNX.py index 4b0c35b..8a6fe57 100644 --- a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/CXDVizNX.py +++ b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/CXDVizNX.py @@ -346,10 +346,10 @@ def get_crop(params, shape): def save_CX(conf, image, support, coh, save_dir): - image = np.swapaxes(image, 1,2) - image = np.swapaxes(image, 0,1) - support = np.swapaxes(support, 1,2) - support = np.swapaxes(support, 0,1) +# image = np.swapaxes(image, 1,2) +# image = np.swapaxes(image, 0,1) +# support = np.swapaxes(support, 1,2) +# support = np.swapaxes(support, 0,1) image, support = center(image, support) params = DispalyParams(conf) image = remove_ramp(image) @@ -371,4 +371,4 @@ def save_CX(conf, image, support, coh, save_dir): viz.write_structured_grid(coh_file) # a = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') -# remove_ramp(a, 3) \ No newline at end of file +# remove_ramp(a, 3) diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/spec.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/spec.py index cf69f2f..56db6b9 100644 --- a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/spec.py +++ b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/spec.py @@ -42,7 +42,7 @@ def parse_spec(specfile, scan): # returning the scan motor name as well. Sometimes we scan things # other than theta. So we need to expand the capability of the display # code. - return lam, delta, gamma, scanmot_del, arm, pixel + return lam, delta, gamma, scanmot_del, arm, pixel, energy def get_det_from_spec(specfile, scan): diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/utils.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/utils.py index 013567f..8a4e199 100644 --- a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/utils.py +++ b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/utils.py @@ -59,18 +59,18 @@ def read_tif(filename): an array containing the experiment data """ - ar = tf.imread(filename) - ar = np.swapaxes(ar, 0, 2) - ar = np.swapaxes(ar, 0, 1) + ar = tf.imread(filename).transpose() + #ar = np.swapaxes(ar, 0, 2) + #ar = np.swapaxes(ar, 0, 1) return ar def save_tif(arr, tif_file): # arr = np.swapaxes(arr, 0, 2) # arr = np.swapaxes(arr, 1, 2) - arr = np.swapaxes(arr, 0, 1) - arr = np.swapaxes(arr, 0, 2) - tf.imsave(tif_file, arr.astype(np.int32)) + #arr = np.swapaxes(arr, 0, 1) + #arr = np.swapaxes(arr, 0, 2) + tf.imsave(tif_file, arr.transpose().astype(np.float32)) def read_config(config): @@ -464,11 +464,15 @@ def write_plot_errors(save_dir): def save_results(image, support, coh, errs, reciprocal, flow, iter_array, save_dir, metrics=None): if not os.path.exists(save_dir): os.makedirs(save_dir) + print("writing image", image.shape) image_file = os.path.join(save_dir, 'image') np.save(image_file, image) + print("image max", abs(image.max())) + save_tif(np.abs(image), image_file+".tif") support_file = os.path.join(save_dir, 'support') np.save(support_file, support) + save_tif(np.abs(support), support_file+".tif") errs_file = os.path.join(save_dir, 'errors') np.save(errs_file, errs) if not coh is None: diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/fast_module.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/fast_module.py index 7f05a31..b945ef2 100644 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/fast_module.py +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/fast_module.py @@ -89,81 +89,93 @@ def fast_module_reconstruction(proc, device, conf, data, coh_dims, image=None, s fast_module = bridge_cuda.PyBridge() # shift data + #data = np.swapaxes(data,1,2) + #data = np.asfortranarray(sf.fftshift(data)) data = sf.fftshift(data) - data = np.swapaxes(data,1,2) - dims = data.shape - dims1 = (dims[2], dims[1], dims[0]) + dims = data.shape[::-1] +# dims1 = (dims[2], dims[1], dims[0]) + print("data dims", dims) data_l = data.flatten().tolist() if image is None: - fast_module.start_calc(device, data_l, dims1, conf) + print("Running start_calc") + fast_module.start_calc(device, data_l, dims, conf) + #fast_module.start_calc(device, data_l, dims1, conf) elif support is None: # pass image - image = np.swapaxes(image, 1, 0) - image = np.swapaxes(image, 2, 0) +# image = np.swapaxes(image, 1, 0) +# image = np.swapaxes(image, 2, 0) image = image.flatten() - fast_module.start_calc_with_guess(device, data_l, image.real.tolist(), image.imag.tolist(), dims1, conf) + fast_module.start_calc_with_guess(device, data_l, image.real.tolist(), image.imag.tolist(), dims, conf) + #fast_module.start_calc_with_guess(device, data_l, image.real.tolist(), image.imag.tolist(), dims1, conf) elif coherence is None: # pass image and support - image = np.swapaxes(image, 1, 0) - image = np.swapaxes(image, 2, 0) +# image = np.swapaxes(image, 1, 0) +# image = np.swapaxes(image, 2, 0) image = image.flatten() - support = np.swapaxes(support, 1, 0) - support = np.swapaxes(support, 2, 0) +# support = np.swapaxes(support, 1, 0) +# support = np.swapaxes(support, 2, 0) support = support.flatten() - fast_module.start_calc_with_guess_support(device, data_l, image.real.tolist(), image.imag.tolist(), support.tolist(), dims1, conf) + fast_module.start_calc_with_guess_support(device, data_l, image.real.tolist(), image.imag.tolist(), support.tolist(), dims, conf) + #fast_module.start_calc_with_guess_support(device, data_l, image.real.tolist(), image.imag.tolist(), support.tolist(), dims1, conf) else: # pass image and support and coherence - image = np.swapaxes(image, 1, 0) - image = np.swapaxes(image, 2, 0) +# image = np.swapaxes(image, 1, 0) +# image = np.swapaxes(image, 2, 0) image = image.flatten() - support = np.swapaxes(support, 1, 0) - support = np.swapaxes(support, 2, 0) +# support = np.swapaxes(support, 1, 0) +# support = np.swapaxes(support, 2, 0) support = support.flatten() coh_dims1 = (coh_dims[2], coh_dims[1], coh_dims[0]) - coherence = np.swapaxes(coherence, 1, 0) - coherence = np.swapaxes(coherence, 2, 0) +# coherence = np.swapaxes(coherence, 1, 0) +# coherence = np.swapaxes(coherence, 2, 0) coherence = coherence.flatten() - fast_module.start_calc_with_guess_support_coh(device, data_l, image.real.tolist(), image.imag.tolist(), support.tolist(), dims1, coherence.tolist(), coh_dims1, conf) + fast_module.start_calc_with_guess_support_coh(device, data_l, image.real.tolist(), image.imag.tolist(), support.tolist(), dims, coherence.tolist(), coh_dims, conf) + #fast_module.start_calc_with_guess_support_coh(device, data_l, image.real.tolist(), image.imag.tolist(), support.tolist(), dims1, coherence.tolist(), coh_dims1, conf) er = copy.deepcopy(fast_module.get_errors()) if len(er) == 1 and er[0] == -1: # run into Nan during reconstruction fast_module.cleanup() return None, None, None, None, None, None, None - image_r = copy.deepcopy(np.asarray(fast_module.get_image_r())) - image_i = copy.deepcopy(np.asarray(fast_module.get_image_i())) - image = image_r + 1j*image_i +# image_r = copy.deepcopy(np.asarray(fast_module.get_image_r())) +# image_i = copy.deepcopy(np.asarray(fast_module.get_image_i())) + image_r = np.asarray(fast_module.get_image_r()) + image_i = np.asarray(fast_module.get_image_i()) + image = image_r + 1j*image_i #no need to deepcopy the real and imag parts since this makes a new array # normalize image - mx = max(np.absolute(image).ravel().tolist()) + #mx = max(np.absolute(image).ravel().tolist()) + mx=np.abs(image).max() image = image/mx support = copy.deepcopy(np.asarray(fast_module.get_support())) coherence = copy.deepcopy(np.asarray(fast_module.get_coherence())) - image = np.reshape(image, dims) - image = np.swapaxes(image, 2, 0) - image = np.swapaxes(image, 1, 0) + image.shape=dims[::-1] + #image=np.ascontiguousarray(image) + #image = np.reshape(image, dims) +# image = np.swapaxes(image, 2, 0) +# image = np.swapaxes(image, 1, 0) - support = np.reshape(support, dims) - support = np.swapaxes(support, 2, 0) - support = np.swapaxes(support, 1, 0) + support = np.reshape(support, dims[::-1]) +# support = np.swapaxes(support, 2, 0) +# support = np.swapaxes(support, 1, 0) if coherence.shape[0] > 1: - coherence = np.reshape(coherence, coh_dims) - coherence = np.swapaxes(coherence, 2, 0) - coherence = np.swapaxes(coherence, 1, 0) + coherence = np.reshape(coherence, coh_dims[::-1]) +# coherence = np.swapaxes(coherence, 2, 0) +# coherence = np.swapaxes(coherence, 1, 0) else: coherence = None reciprocal_r = copy.deepcopy(np.asarray(fast_module.get_reciprocal_r())) reciprocal_i = copy.deepcopy(np.asarray(fast_module.get_reciprocal_i())) reciprocal = reciprocal_r + 1j*reciprocal_i - reciprocal = np.reshape(reciprocal, dims) - reciprocal = np.swapaxes(reciprocal, 2, 1) + reciprocal = np.reshape(reciprocal, dims[::-1]) + #reciprocal = np.swapaxes(reciprocal, 2, 1) reciprocal = sf.ifftshift(reciprocal) iter_array = copy.deepcopy(np.asarray(fast_module.get_iter_flow())) diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/gen_rec.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/gen_rec.py index b997e48..23a34a4 100644 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/gen_rec.py +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/gen_rec.py @@ -370,8 +370,8 @@ def reconstruction(proc, conf_file, datafile, dir, devices): """ data = ut.read_tif(datafile) print ('data shape', data.shape) - data = np.swapaxes(data, 0, 2) - data = np.swapaxes(data, 0, 1) + #data = np.swapaxes(data, 0, 2) + #data = np.swapaxes(data, 0, 1) try: config_map = ut.read_config(conf_file) diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/reconstruction.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/reconstruction.py index c3d4667..56edb32 100644 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/reconstruction.py +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/reconstruction.py @@ -111,8 +111,8 @@ def reconstruction(proc, conf_file, datafile, dir, dev): """ data = ut.read_tif(datafile) print ('data shape', data.shape) - data = np.swapaxes(data, 0, 2) - data = np.swapaxes(data, 0, 1) +# data = np.swapaxes(data, 0, 2) +# data = np.swapaxes(data, 0, 1) try: config_map = ut.read_config(conf_file) diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/reconstruction_multi.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/reconstruction_multi.py index 7c36b8c..2f87107 100644 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/reconstruction_multi.py +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/reconstruction_multi.py @@ -210,8 +210,8 @@ def reconstruction(proc, conf_file, datafile, dir, devices): """ data = ut.read_tif(datafile) print ('data shape', data.shape) - data = np.swapaxes(data, 0, 2) - data = np.swapaxes(data, 0, 1) + #data = np.swapaxes(data, 0, 2) + #data = np.swapaxes(data, 0, 1) try: config_map = ut.read_config(conf_file) diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/run_disp.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/run_disp.py index c471662..b4298d8 100644 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/run_disp.py +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/run_disp.py @@ -1,4 +1,4 @@ -import reccdi.src_py.utilities.CXDVizNX as cx +import reccdi.src_py.utilities.viz_util_xu as vu import reccdi.src_py.utilities.utils as ut import reccdi.src_py.utilities.parse_ver as ver import argparse @@ -8,6 +8,47 @@ from multiprocessing import Pool +def save_CX(conf, image, support, coh, save_dir, last_scan): + image = np.swapaxes(image, 1,2) + image = np.swapaxes(image, 0,1) +# support = np.swapaxes(support, 1,2) +# support = np.swapaxes(support, 0,1) +# image, support = center(image, support) + params = vu.DispalyParams(conf, last_scan) +# image = remove_ramp(image) + viz = vu.CXDViz() + viz.set_geometry(params, image.shape) + crop = get_crop(params, image.shape) + #viz.set_crop(crop[0], crop[1], crop[2]) # save image + + viz.add_array(np.abs(image), "imAmp", space='direct') + viz.add_array(np.angle(image), "imPh", space='direct') + image_file = os.path.join(save_dir, 'image') + #viz.write_structured_grid(image_file) + viz.write_directspace(image_file) + viz.clear_direct_arrays() + + viz.add_array(support, "support", space='direct') + support_file = os.path.join(save_dir, 'support') + #viz.write_structured_grid(support_file) + viz.write_directspace(support_file) + viz.clear_direct_arrays() + + if coh is not None: + coh = np.swapaxes(coh, 1, 2) + # investigate if pad_center before fft or after + coh = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(coh))).real + coh = ut.get_zero_padded_centered(coh, image.shape) + coh_file = os.path.join(save_dir, 'coherence') + viz.add_array(np.abs(coh), 'cohAmp', space='direct') + viz.add_array(np.angle(coh), 'cohPh', space='direct') + #viz.write_structured_grid(coh_file) + viz.write_directspace(coh_file) + viz.clear_direct_arrays() + +# a = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') +# remove_ramp(a, 3) + def save_vtk(res_dir_conf): (res_dir, conf) = res_dir_conf try: @@ -42,13 +83,12 @@ def save_vtk(res_dir_conf): cohfile = os.path.join(res_dir, 'coherence.npy') if os.path.isfile(cohfile): coh = np.load(cohfile) - cx.save_CX(conf, image, support, coh, res_dir) + save_CX(conf, image, support, coh, res_dir) else: - cx.save_CX(conf, image, support, None, res_dir) + save_CX(conf, image, support, None, res_dir) def to_vtk(experiment_dir, results_dir=None): - print ('starting conversion to vtk') if not os.path.isdir(experiment_dir): print("Please provide a valid experiment directory") return @@ -108,6 +148,7 @@ def to_vtk(experiment_dir, results_dir=None): dirs = [] for (dirpath, dirnames, filenames) in os.walk(results_dir): for file in filenames: + print("file", file) if file.endswith('image.npy'): dirs.append((dirpath, conf_dict)) @@ -115,7 +156,6 @@ def to_vtk(experiment_dir, results_dir=None): pool.map_async(save_vtk, dirs) pool.close() pool.join() - print ('done') def main(arg): diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/CXDVizNX.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/CXDVizNX.py index 4b0c35b..8a6fe57 100644 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/CXDVizNX.py +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/CXDVizNX.py @@ -346,10 +346,10 @@ def get_crop(params, shape): def save_CX(conf, image, support, coh, save_dir): - image = np.swapaxes(image, 1,2) - image = np.swapaxes(image, 0,1) - support = np.swapaxes(support, 1,2) - support = np.swapaxes(support, 0,1) +# image = np.swapaxes(image, 1,2) +# image = np.swapaxes(image, 0,1) +# support = np.swapaxes(support, 1,2) +# support = np.swapaxes(support, 0,1) image, support = center(image, support) params = DispalyParams(conf) image = remove_ramp(image) @@ -371,4 +371,4 @@ def save_CX(conf, image, support, coh, save_dir): viz.write_structured_grid(coh_file) # a = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') -# remove_ramp(a, 3) \ No newline at end of file +# remove_ramp(a, 3) diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/spec.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/spec.py index cf69f2f..56db6b9 100644 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/spec.py +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/spec.py @@ -42,7 +42,7 @@ def parse_spec(specfile, scan): # returning the scan motor name as well. Sometimes we scan things # other than theta. So we need to expand the capability of the display # code. - return lam, delta, gamma, scanmot_del, arm, pixel + return lam, delta, gamma, scanmot_del, arm, pixel, energy def get_det_from_spec(specfile, scan): diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/utils.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/utils.py index 013567f..c6e605e 100644 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/utils.py +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/utils.py @@ -59,18 +59,18 @@ def read_tif(filename): an array containing the experiment data """ - ar = tf.imread(filename) - ar = np.swapaxes(ar, 0, 2) - ar = np.swapaxes(ar, 0, 1) + ar = tf.imread(filename).transpose() + #ar = np.swapaxes(ar, 0, 2) + #ar = np.swapaxes(ar, 0, 1) return ar def save_tif(arr, tif_file): # arr = np.swapaxes(arr, 0, 2) # arr = np.swapaxes(arr, 1, 2) - arr = np.swapaxes(arr, 0, 1) - arr = np.swapaxes(arr, 0, 2) - tf.imsave(tif_file, arr.astype(np.int32)) + #arr = np.swapaxes(arr, 0, 1) + #arr = np.swapaxes(arr, 0, 2) + tf.imsave(tif_file, arr.transpose().astype(np.float32)) def read_config(config): @@ -464,11 +464,15 @@ def write_plot_errors(save_dir): def save_results(image, support, coh, errs, reciprocal, flow, iter_array, save_dir, metrics=None): if not os.path.exists(save_dir): os.makedirs(save_dir) + print("writing image", image.shape) image_file = os.path.join(save_dir, 'image') np.save(image_file, image) + print("image max", abs(image.max())) + save_tif(np.abs(image), image_file+".tif") support_file = os.path.join(save_dir, 'support') np.save(support_file, support) + save_tif(np.abs(support), support_file+".tif") errs_file = os.path.join(save_dir, 'errors') np.save(errs_file, errs) if not coh is None: @@ -570,3 +574,18 @@ def get_gpu_distribution(runs, available): if all_avail == runs: break return available + + +from functools import wraps +from time import time +def measure(func): + @wraps(func) + def _time_it(*args, **kwargs): + start = int(round(time() * 1000)) + try: + return func(*args, **kwargs) + finally: + end_ = int(round(time() * 1000)) - start + print(f"Total execution time: {end_ if end_ > 0 else 0} ms") + return _time_it + diff --git a/reccdi/src_py/controller/fast_module.py b/reccdi/src_py/controller/fast_module.py index 7f05a31..b945ef2 100755 --- a/reccdi/src_py/controller/fast_module.py +++ b/reccdi/src_py/controller/fast_module.py @@ -89,81 +89,93 @@ def fast_module_reconstruction(proc, device, conf, data, coh_dims, image=None, s fast_module = bridge_cuda.PyBridge() # shift data + #data = np.swapaxes(data,1,2) + #data = np.asfortranarray(sf.fftshift(data)) data = sf.fftshift(data) - data = np.swapaxes(data,1,2) - dims = data.shape - dims1 = (dims[2], dims[1], dims[0]) + dims = data.shape[::-1] +# dims1 = (dims[2], dims[1], dims[0]) + print("data dims", dims) data_l = data.flatten().tolist() if image is None: - fast_module.start_calc(device, data_l, dims1, conf) + print("Running start_calc") + fast_module.start_calc(device, data_l, dims, conf) + #fast_module.start_calc(device, data_l, dims1, conf) elif support is None: # pass image - image = np.swapaxes(image, 1, 0) - image = np.swapaxes(image, 2, 0) +# image = np.swapaxes(image, 1, 0) +# image = np.swapaxes(image, 2, 0) image = image.flatten() - fast_module.start_calc_with_guess(device, data_l, image.real.tolist(), image.imag.tolist(), dims1, conf) + fast_module.start_calc_with_guess(device, data_l, image.real.tolist(), image.imag.tolist(), dims, conf) + #fast_module.start_calc_with_guess(device, data_l, image.real.tolist(), image.imag.tolist(), dims1, conf) elif coherence is None: # pass image and support - image = np.swapaxes(image, 1, 0) - image = np.swapaxes(image, 2, 0) +# image = np.swapaxes(image, 1, 0) +# image = np.swapaxes(image, 2, 0) image = image.flatten() - support = np.swapaxes(support, 1, 0) - support = np.swapaxes(support, 2, 0) +# support = np.swapaxes(support, 1, 0) +# support = np.swapaxes(support, 2, 0) support = support.flatten() - fast_module.start_calc_with_guess_support(device, data_l, image.real.tolist(), image.imag.tolist(), support.tolist(), dims1, conf) + fast_module.start_calc_with_guess_support(device, data_l, image.real.tolist(), image.imag.tolist(), support.tolist(), dims, conf) + #fast_module.start_calc_with_guess_support(device, data_l, image.real.tolist(), image.imag.tolist(), support.tolist(), dims1, conf) else: # pass image and support and coherence - image = np.swapaxes(image, 1, 0) - image = np.swapaxes(image, 2, 0) +# image = np.swapaxes(image, 1, 0) +# image = np.swapaxes(image, 2, 0) image = image.flatten() - support = np.swapaxes(support, 1, 0) - support = np.swapaxes(support, 2, 0) +# support = np.swapaxes(support, 1, 0) +# support = np.swapaxes(support, 2, 0) support = support.flatten() coh_dims1 = (coh_dims[2], coh_dims[1], coh_dims[0]) - coherence = np.swapaxes(coherence, 1, 0) - coherence = np.swapaxes(coherence, 2, 0) +# coherence = np.swapaxes(coherence, 1, 0) +# coherence = np.swapaxes(coherence, 2, 0) coherence = coherence.flatten() - fast_module.start_calc_with_guess_support_coh(device, data_l, image.real.tolist(), image.imag.tolist(), support.tolist(), dims1, coherence.tolist(), coh_dims1, conf) + fast_module.start_calc_with_guess_support_coh(device, data_l, image.real.tolist(), image.imag.tolist(), support.tolist(), dims, coherence.tolist(), coh_dims, conf) + #fast_module.start_calc_with_guess_support_coh(device, data_l, image.real.tolist(), image.imag.tolist(), support.tolist(), dims1, coherence.tolist(), coh_dims1, conf) er = copy.deepcopy(fast_module.get_errors()) if len(er) == 1 and er[0] == -1: # run into Nan during reconstruction fast_module.cleanup() return None, None, None, None, None, None, None - image_r = copy.deepcopy(np.asarray(fast_module.get_image_r())) - image_i = copy.deepcopy(np.asarray(fast_module.get_image_i())) - image = image_r + 1j*image_i +# image_r = copy.deepcopy(np.asarray(fast_module.get_image_r())) +# image_i = copy.deepcopy(np.asarray(fast_module.get_image_i())) + image_r = np.asarray(fast_module.get_image_r()) + image_i = np.asarray(fast_module.get_image_i()) + image = image_r + 1j*image_i #no need to deepcopy the real and imag parts since this makes a new array # normalize image - mx = max(np.absolute(image).ravel().tolist()) + #mx = max(np.absolute(image).ravel().tolist()) + mx=np.abs(image).max() image = image/mx support = copy.deepcopy(np.asarray(fast_module.get_support())) coherence = copy.deepcopy(np.asarray(fast_module.get_coherence())) - image = np.reshape(image, dims) - image = np.swapaxes(image, 2, 0) - image = np.swapaxes(image, 1, 0) + image.shape=dims[::-1] + #image=np.ascontiguousarray(image) + #image = np.reshape(image, dims) +# image = np.swapaxes(image, 2, 0) +# image = np.swapaxes(image, 1, 0) - support = np.reshape(support, dims) - support = np.swapaxes(support, 2, 0) - support = np.swapaxes(support, 1, 0) + support = np.reshape(support, dims[::-1]) +# support = np.swapaxes(support, 2, 0) +# support = np.swapaxes(support, 1, 0) if coherence.shape[0] > 1: - coherence = np.reshape(coherence, coh_dims) - coherence = np.swapaxes(coherence, 2, 0) - coherence = np.swapaxes(coherence, 1, 0) + coherence = np.reshape(coherence, coh_dims[::-1]) +# coherence = np.swapaxes(coherence, 2, 0) +# coherence = np.swapaxes(coherence, 1, 0) else: coherence = None reciprocal_r = copy.deepcopy(np.asarray(fast_module.get_reciprocal_r())) reciprocal_i = copy.deepcopy(np.asarray(fast_module.get_reciprocal_i())) reciprocal = reciprocal_r + 1j*reciprocal_i - reciprocal = np.reshape(reciprocal, dims) - reciprocal = np.swapaxes(reciprocal, 2, 1) + reciprocal = np.reshape(reciprocal, dims[::-1]) + #reciprocal = np.swapaxes(reciprocal, 2, 1) reciprocal = sf.ifftshift(reciprocal) iter_array = copy.deepcopy(np.asarray(fast_module.get_iter_flow())) diff --git a/reccdi/src_py/controller/gen_rec.py b/reccdi/src_py/controller/gen_rec.py index b997e48..23a34a4 100644 --- a/reccdi/src_py/controller/gen_rec.py +++ b/reccdi/src_py/controller/gen_rec.py @@ -370,8 +370,8 @@ def reconstruction(proc, conf_file, datafile, dir, devices): """ data = ut.read_tif(datafile) print ('data shape', data.shape) - data = np.swapaxes(data, 0, 2) - data = np.swapaxes(data, 0, 1) + #data = np.swapaxes(data, 0, 2) + #data = np.swapaxes(data, 0, 1) try: config_map = ut.read_config(conf_file) diff --git a/reccdi/src_py/controller/reconstruction.py b/reccdi/src_py/controller/reconstruction.py index c3d4667..56edb32 100644 --- a/reccdi/src_py/controller/reconstruction.py +++ b/reccdi/src_py/controller/reconstruction.py @@ -111,8 +111,8 @@ def reconstruction(proc, conf_file, datafile, dir, dev): """ data = ut.read_tif(datafile) print ('data shape', data.shape) - data = np.swapaxes(data, 0, 2) - data = np.swapaxes(data, 0, 1) +# data = np.swapaxes(data, 0, 2) +# data = np.swapaxes(data, 0, 1) try: config_map = ut.read_config(conf_file) diff --git a/reccdi/src_py/controller/reconstruction_multi.py b/reccdi/src_py/controller/reconstruction_multi.py index 7c36b8c..2f87107 100644 --- a/reccdi/src_py/controller/reconstruction_multi.py +++ b/reccdi/src_py/controller/reconstruction_multi.py @@ -210,8 +210,8 @@ def reconstruction(proc, conf_file, datafile, dir, devices): """ data = ut.read_tif(datafile) print ('data shape', data.shape) - data = np.swapaxes(data, 0, 2) - data = np.swapaxes(data, 0, 1) + #data = np.swapaxes(data, 0, 2) + #data = np.swapaxes(data, 0, 1) try: config_map = ut.read_config(conf_file) diff --git a/reccdi/src_py/run_scripts/run_disp.py b/reccdi/src_py/run_scripts/run_disp.py index c471662..b4298d8 100755 --- a/reccdi/src_py/run_scripts/run_disp.py +++ b/reccdi/src_py/run_scripts/run_disp.py @@ -1,4 +1,4 @@ -import reccdi.src_py.utilities.CXDVizNX as cx +import reccdi.src_py.utilities.viz_util_xu as vu import reccdi.src_py.utilities.utils as ut import reccdi.src_py.utilities.parse_ver as ver import argparse @@ -8,6 +8,47 @@ from multiprocessing import Pool +def save_CX(conf, image, support, coh, save_dir, last_scan): + image = np.swapaxes(image, 1,2) + image = np.swapaxes(image, 0,1) +# support = np.swapaxes(support, 1,2) +# support = np.swapaxes(support, 0,1) +# image, support = center(image, support) + params = vu.DispalyParams(conf, last_scan) +# image = remove_ramp(image) + viz = vu.CXDViz() + viz.set_geometry(params, image.shape) + crop = get_crop(params, image.shape) + #viz.set_crop(crop[0], crop[1], crop[2]) # save image + + viz.add_array(np.abs(image), "imAmp", space='direct') + viz.add_array(np.angle(image), "imPh", space='direct') + image_file = os.path.join(save_dir, 'image') + #viz.write_structured_grid(image_file) + viz.write_directspace(image_file) + viz.clear_direct_arrays() + + viz.add_array(support, "support", space='direct') + support_file = os.path.join(save_dir, 'support') + #viz.write_structured_grid(support_file) + viz.write_directspace(support_file) + viz.clear_direct_arrays() + + if coh is not None: + coh = np.swapaxes(coh, 1, 2) + # investigate if pad_center before fft or after + coh = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(coh))).real + coh = ut.get_zero_padded_centered(coh, image.shape) + coh_file = os.path.join(save_dir, 'coherence') + viz.add_array(np.abs(coh), 'cohAmp', space='direct') + viz.add_array(np.angle(coh), 'cohPh', space='direct') + #viz.write_structured_grid(coh_file) + viz.write_directspace(coh_file) + viz.clear_direct_arrays() + +# a = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') +# remove_ramp(a, 3) + def save_vtk(res_dir_conf): (res_dir, conf) = res_dir_conf try: @@ -42,13 +83,12 @@ def save_vtk(res_dir_conf): cohfile = os.path.join(res_dir, 'coherence.npy') if os.path.isfile(cohfile): coh = np.load(cohfile) - cx.save_CX(conf, image, support, coh, res_dir) + save_CX(conf, image, support, coh, res_dir) else: - cx.save_CX(conf, image, support, None, res_dir) + save_CX(conf, image, support, None, res_dir) def to_vtk(experiment_dir, results_dir=None): - print ('starting conversion to vtk') if not os.path.isdir(experiment_dir): print("Please provide a valid experiment directory") return @@ -108,6 +148,7 @@ def to_vtk(experiment_dir, results_dir=None): dirs = [] for (dirpath, dirnames, filenames) in os.walk(results_dir): for file in filenames: + print("file", file) if file.endswith('image.npy'): dirs.append((dirpath, conf_dict)) @@ -115,7 +156,6 @@ def to_vtk(experiment_dir, results_dir=None): pool.map_async(save_vtk, dirs) pool.close() pool.join() - print ('done') def main(arg): diff --git a/reccdi/src_py/utilities/CXDVizNX.py b/reccdi/src_py/utilities/CXDVizNX.py index 4b0c35b..8a6fe57 100644 --- a/reccdi/src_py/utilities/CXDVizNX.py +++ b/reccdi/src_py/utilities/CXDVizNX.py @@ -346,10 +346,10 @@ def get_crop(params, shape): def save_CX(conf, image, support, coh, save_dir): - image = np.swapaxes(image, 1,2) - image = np.swapaxes(image, 0,1) - support = np.swapaxes(support, 1,2) - support = np.swapaxes(support, 0,1) +# image = np.swapaxes(image, 1,2) +# image = np.swapaxes(image, 0,1) +# support = np.swapaxes(support, 1,2) +# support = np.swapaxes(support, 0,1) image, support = center(image, support) params = DispalyParams(conf) image = remove_ramp(image) @@ -371,4 +371,4 @@ def save_CX(conf, image, support, coh, save_dir): viz.write_structured_grid(coh_file) # a = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') -# remove_ramp(a, 3) \ No newline at end of file +# remove_ramp(a, 3) diff --git a/reccdi/src_py/utilities/spec.py b/reccdi/src_py/utilities/spec.py index cf69f2f..56db6b9 100644 --- a/reccdi/src_py/utilities/spec.py +++ b/reccdi/src_py/utilities/spec.py @@ -42,7 +42,7 @@ def parse_spec(specfile, scan): # returning the scan motor name as well. Sometimes we scan things # other than theta. So we need to expand the capability of the display # code. - return lam, delta, gamma, scanmot_del, arm, pixel + return lam, delta, gamma, scanmot_del, arm, pixel, energy def get_det_from_spec(specfile, scan): diff --git a/reccdi/src_py/utilities/utils.py b/reccdi/src_py/utilities/utils.py index 013567f..c6e605e 100644 --- a/reccdi/src_py/utilities/utils.py +++ b/reccdi/src_py/utilities/utils.py @@ -59,18 +59,18 @@ def read_tif(filename): an array containing the experiment data """ - ar = tf.imread(filename) - ar = np.swapaxes(ar, 0, 2) - ar = np.swapaxes(ar, 0, 1) + ar = tf.imread(filename).transpose() + #ar = np.swapaxes(ar, 0, 2) + #ar = np.swapaxes(ar, 0, 1) return ar def save_tif(arr, tif_file): # arr = np.swapaxes(arr, 0, 2) # arr = np.swapaxes(arr, 1, 2) - arr = np.swapaxes(arr, 0, 1) - arr = np.swapaxes(arr, 0, 2) - tf.imsave(tif_file, arr.astype(np.int32)) + #arr = np.swapaxes(arr, 0, 1) + #arr = np.swapaxes(arr, 0, 2) + tf.imsave(tif_file, arr.transpose().astype(np.float32)) def read_config(config): @@ -464,11 +464,15 @@ def write_plot_errors(save_dir): def save_results(image, support, coh, errs, reciprocal, flow, iter_array, save_dir, metrics=None): if not os.path.exists(save_dir): os.makedirs(save_dir) + print("writing image", image.shape) image_file = os.path.join(save_dir, 'image') np.save(image_file, image) + print("image max", abs(image.max())) + save_tif(np.abs(image), image_file+".tif") support_file = os.path.join(save_dir, 'support') np.save(support_file, support) + save_tif(np.abs(support), support_file+".tif") errs_file = os.path.join(save_dir, 'errors') np.save(errs_file, errs) if not coh is None: @@ -570,3 +574,18 @@ def get_gpu_distribution(runs, available): if all_avail == runs: break return available + + +from functools import wraps +from time import time +def measure(func): + @wraps(func) + def _time_it(*args, **kwargs): + start = int(round(time() * 1000)) + try: + return func(*args, **kwargs) + finally: + end_ = int(round(time() * 1000)) - start + print(f"Total execution time: {end_ if end_ > 0 else 0} ms") + return _time_it + From 3d070c9cd383bed42b0e58189946f1028a897efe Mon Sep 17 00:00:00 2001 From: Service Account for David Cyl Date: Mon, 20 Jan 2020 15:25:48 -0600 Subject: [PATCH 213/336] Most array swapaxes removed. Maybe got all of the important ones. Had to redo the viz bits because of this. Switched to pyevtk for output. Shouldn't need vtk anymore. Added a parameter to config_disp. rampups that controls the upsampling for the phase ramp removal. This has a huge impact on speed and most of the time rampups=1 is fine. Still need to work on the normals being inverted when looking at image in paraview, but wanted to commit the current state before I break it again. Also, the pyx files in cyth will have the lib paths overwritten. That's why we need to do that edit out of place with sed in init.sh. --- .gitignore | 5 + bin/run_disp_new.py | 177 ++++++ .../reccdi/src_py/utilities/localCXDVizNX.py | 383 +++++++++++++ .../reccdi/src_py/utilities/prep_noconfig.py | 216 +++++++ .../reccdi/src_py/utilities/pyevtktest.py | 42 ++ .../reccdi/src_py/utilities/rec_disp.py | 379 ++++++++++++ .../reccdi/src_py/utilities/run_disp.py | 176 ++++++ .../reccdi/src_py/utilities/simple.py | 20 + .../reccdi/src_py/utilities/tools.py | 537 ++++++++++++++++++ .../reccdi/src_py/utilities/transtest.py | 22 + .../reccdi/src_py/utilities/viz_util.py | 174 ++++++ .../src_py/utilities/viz_util_dirdemo.py | 42 ++ .../src_py/utilities/viz_util_recipdemo.py | 34 ++ .../reccdi/src_py/utilities/viz_util_xu.py | 356 ++++++++++++ .../reccdi/src_py/utilities/localCXDVizNX.py | 383 +++++++++++++ .../reccdi/src_py/utilities/prep_noconfig.py | 216 +++++++ .../reccdi/src_py/utilities/pyevtktest.py | 42 ++ .../reccdi/src_py/utilities/rec_disp.py | 379 ++++++++++++ .../reccdi/src_py/utilities/run_disp.py | 176 ++++++ .../reccdi/src_py/utilities/simple.py | 20 + .../reccdi/src_py/utilities/tools.py | 537 ++++++++++++++++++ .../reccdi/src_py/utilities/transtest.py | 22 + .../reccdi/src_py/utilities/viz_util.py | 174 ++++++ .../src_py/utilities/viz_util_dirdemo.py | 42 ++ .../src_py/utilities/viz_util_recipdemo.py | 34 ++ .../reccdi/src_py/utilities/viz_util_xu.py | 330 +++++++++++ reccdi/src_py/utilities/localCXDVizNX.py | 383 +++++++++++++ reccdi/src_py/utilities/prep_noconfig.py | 216 +++++++ reccdi/src_py/utilities/pyevtktest.py | 42 ++ reccdi/src_py/utilities/rec_disp.py | 379 ++++++++++++ reccdi/src_py/utilities/simple.py | 20 + reccdi/src_py/utilities/tools.py | 537 ++++++++++++++++++ reccdi/src_py/utilities/transtest.py | 22 + reccdi/src_py/utilities/viz_util.py | 174 ++++++ reccdi/src_py/utilities/viz_util_dirdemo.py | 42 ++ reccdi/src_py/utilities/viz_util_recipdemo.py | 34 ++ reccdi/src_py/utilities/viz_util_xu.py | 330 +++++++++++ 37 files changed, 7097 insertions(+) create mode 100644 .gitignore create mode 100755 bin/run_disp_new.py create mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/localCXDVizNX.py create mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/prep_noconfig.py create mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/pyevtktest.py create mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/rec_disp.py create mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/run_disp.py create mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/simple.py create mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/tools.py create mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/transtest.py create mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/viz_util.py create mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/viz_util_dirdemo.py create mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/viz_util_recipdemo.py create mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/viz_util_xu.py create mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/localCXDVizNX.py create mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/prep_noconfig.py create mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/pyevtktest.py create mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/rec_disp.py create mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/run_disp.py create mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/simple.py create mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/tools.py create mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/transtest.py create mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util.py create mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util_dirdemo.py create mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util_recipdemo.py create mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util_xu.py create mode 100644 reccdi/src_py/utilities/localCXDVizNX.py create mode 100644 reccdi/src_py/utilities/prep_noconfig.py create mode 100644 reccdi/src_py/utilities/pyevtktest.py create mode 100644 reccdi/src_py/utilities/rec_disp.py create mode 100644 reccdi/src_py/utilities/simple.py create mode 100644 reccdi/src_py/utilities/tools.py create mode 100644 reccdi/src_py/utilities/transtest.py create mode 100644 reccdi/src_py/utilities/viz_util.py create mode 100644 reccdi/src_py/utilities/viz_util_dirdemo.py create mode 100644 reccdi/src_py/utilities/viz_util_recipdemo.py create mode 100644 reccdi/src_py/utilities/viz_util_xu.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5a9239f --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +*.so +*.pyx +*.o +*.swp +__pycache__ diff --git a/bin/run_disp_new.py b/bin/run_disp_new.py new file mode 100755 index 0000000..cc164a6 --- /dev/null +++ b/bin/run_disp_new.py @@ -0,0 +1,177 @@ +import reccdi.src_py.utilities.viz_util_xu as vu +import reccdi.src_py.utilities.utils as ut +from reccdi.src_py.utilities.utils import measure +import reccdi.src_py.utilities.parse_ver as ver +import argparse +import sys +import os +import numpy as np +from multiprocessing import Pool + +def save_CX(conf_dict, image, support, coh, save_dir): + params = vu.DispalyParams(conf_dict) +# image = np.swapaxes(image, 1,2) +# image = np.swapaxes(image, 0,1) +# support = np.swapaxes(support, 1,2) +# support = np.swapaxes(support, 0,1) + print("center image and support") + image, support = vu.center(image, support) + print("remove phase ramp on image") + image = vu.remove_ramp(image, ups=conf_dict['rampups']) + print("set viz") + viz = vu.CXDViz() + viz.set_geometry(params, image.shape) +# crop = get_crop(params, image.shape) +# viz.set_crop(crop[0], crop[1], crop[2]) # save image + + print("set im amps") + viz.add_array(abs(image), "imAmp", space='direct') + print("set im phase") + viz.add_array(np.angle(image), "imPh", space='direct') + image_file = os.path.join(save_dir, 'image') + print("write im") + viz.write_directspace(image_file) + viz.clear_direct_arrays() + + + print("set support") + viz.add_array(support, "support", space='direct') + support_file = os.path.join(save_dir, 'support') + print("write support") + viz.write_directspace(support_file) + viz.clear_direct_arrays() + + if coh is not None: + coh = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(coh))) + coh = ut.get_zero_padded_centered(coh, image.shape) + coh_file = os.path.join(save_dir, 'coherence') + viz.add_array(np.abs(coh), 'cohAmp', space='direct') + viz.add_array(np.angle(coh), 'cohPh', space='direct') + viz.write_directspace(coh_file) + viz.clear_direct_arrays() + + +def save_vtk(res_dir_conf): + (res_dir, conf_dict) = res_dir_conf + try: + imagefile = os.path.join(res_dir, 'image.npy') + image = np.load(imagefile) + except: + print ('cannot load "image.npy" file') + return + + try: + supportfile = os.path.join(res_dir, 'support.npy') + support = np.load(supportfile) + except: + print ('support file is missing in ' + res_dir + ' directory') + return + + try: + reciprocalfile = os.path.join(res_dir, 'reciprocal.npy') + reciprocal = np.load(reciprocalfile) + # reciprocal is saved as tif file, so no need to pass it to cx module + # saving amp, phase, and square of modulus in tif format + reciprocal_amp = np.absolute(reciprocal) + reciprocal_phase = np.angle(reciprocal) + reciprocal_sq_mod = np.power(reciprocal_amp, 2) + + ut.save_tif(reciprocal_amp, os.path.join(res_dir, 'reciprocal_amp.tif')) + ut.save_tif(reciprocal_phase, os.path.join(res_dir, 'reciprocal_phase.tif')) + ut.save_tif(reciprocal_sq_mod, os.path.join(res_dir, 'reciprocal_sq_mod.tif')) + except: + print ('info: cannot save reciprocal space') + + cohfile = os.path.join(res_dir, 'coherence.npy') + if os.path.isfile(cohfile): + coh = np.load(cohfile) + save_CX(conf_dict, image, support, coh, res_dir) + else: + save_CX(conf_dict, image, support, None, res_dir) + + +def to_vtk(experiment_dir, results_dir=None): + if not os.path.isdir(experiment_dir): + print("Please provide a valid experiment directory") + return + conf_dir = os.path.join(experiment_dir, 'conf') + conf = os.path.join(conf_dir, 'config_disp') + # verify configuration file + if not ver.ver_config_disp(conf): + print ('incorrect configuration file ' + conf +', cannot parse') + return + + # parse the conf once here and save it in dictionary, it will apply to all images in the directory tree + conf_dict = {} + try: + conf_map = ut.read_config(conf) + items = conf_map.items() + for item in items: + conf_dict[item[0]] = item[1] + except: + print('cannot parse configuration file ' + conf) + return + + # get last scan from the config file and add it to conf_dict + last_scan = None + main_conf = os.path.join(conf_dir, 'config') + if os.path.isfile(main_conf): + try: + config_map = ut.read_config(main_conf) + scan = config_map.scan + last_scan = scan.split('-')[-1] + conf_dict['last_scan'] = int(last_scan) + except: + print ("info: scan not determined, can't read " + conf + " configuration file") + + # get binning from the config_data file and add it to conf_dict + binning = None + data_conf = os.path.join(conf_dir, 'config_data') + if os.path.isfile(data_conf): + try: + conf_map = ut.read_config(data_conf) + conf_dict['binning'] = conf_map.binning + except: + pass + + no_gpus = 1 + rec_conf = os.path.join(conf_dir, 'config_rec') + if os.path.isfile(rec_conf): + try: + conf_map = ut.read_config(rec_conf) + device = conf_map.device + no_gpus = len(device) + except: + pass + + if results_dir is None: + results_dir = experiment_dir + # find directories with image.npy file + dirs = [] + for (dirpath, dirnames, filenames) in os.walk(results_dir): + for file in filenames: + if file.endswith('image.npy'): + dirs.append((dirpath, conf_dict)) + save_vtk(dirs[0]) +# with Pool(processes = no_gpus) as pool: +# pool.map_async(save_vtk, dirs) +# pool.close() +# pool.join() + + +def main(arg): + print ('preparing display') + parser = argparse.ArgumentParser() + parser.add_argument("experiment_dir", help="experiment directory") + parser.add_argument("--results_dir", help="directory in experiment that has a tree (or leaf) with reconstruction results which will be visualized") + args = parser.parse_args() + experiment_dir = args.experiment_dir + if args.results_dir: + to_vtk(experiment_dir, args.results_dir) + else: + to_vtk(experiment_dir) + +if __name__ == "__main__": + main(sys.argv[1:]) + +#python run_disp.py experiment_dir diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/localCXDVizNX.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/localCXDVizNX.py new file mode 100644 index 0000000..3c3cff0 --- /dev/null +++ b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/localCXDVizNX.py @@ -0,0 +1,383 @@ +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + +import pylibconfig2 as cfg +import os +import traits.api as tr +from tvtk.api import tvtk +import numpy as np +import scipy.ndimage as ndi +import math as m +import utils as ut +import spec as sput + +__author__ = "Barbara Frosik" +__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." +__docformat__ = 'restructuredtext en' + + +class DispalyParams: + """ + This class encapsulates parameters defining image display. The parameters are read from config file on + construction + """ + + def __init__(self, config, last_scan): + """ + The constructor gets config file and fills out the class members. + + Parameters + ---------- + conf : str + configuration file name + + Returns + ------- + none + """ + if os.path.isfile(config): + with open(config, 'r') as f: + config_map = cfg.Config(f.read()) + + deg2rad = np.pi / 180.0 + try: + specfile = config_map.specfile + self.lamda, delta, gamma, dth, arm, pixel = sput.parse_spec(specfile, last_scan) + self.delta = delta * deg2rad + self.gamma = gamma * deg2rad + self.dth = dth * deg2rad + self.arm = arm / 1000 + pixel = pixel[1:-1] + pixel = pixel.split(',') + pixel[0], pixel[1] = float(pixel[0]), float(pixel[1]) + except Exception as e: + # print (str(e)) + try: + energy = config_map.energy + self.lamda = 12.398 / energy / 10 + except AttributeError: + print ('lamda not defined') + try: + self.delta = config_map.delta * deg2rad + except AttributeError: + print ('delta not defined') + try: + self.gamma = config_map.gamma * deg2rad + except AttributeError: + print ('gamma not defined') + try: + self.dth = config_map.dth * deg2rad + except AttributeError: + print ('dth not defined') + try: + self.arm = config_map.arm / 1000 + except AttributeError: + print ('arm not defined') + try: + pixel = config_map.pixel + except AttributeError: + print ('pixel not defined') + + try: + self.binning = [] + binning = config_map.binning + for i in range(len(binning)): + self.binning.append(binning[i]) + for _ in range(3 - len(self.binning)): + self.binning.append(1) + except AttributeError: + self.binning = [1,1,1] + self.dpx = pixel[0] * self.binning[0] / self.arm / self.binning[2] + self.dpy = pixel[1] * self.binning[1] / self.arm / self.binning[2] + try: + self.crop = [] + crop = config_map.crop + for i in range(len(crop)): + self.crop.append(crop[i]) + for _ in range(3 - len(self.crop)): + self.crop.append(1.0) + crop[0], crop[1] = crop[1], crop[0] + except AttributeError: + self.crop = None + + +class CXDViz(tr.HasTraits): + coords = tr.Array() + arr = tr.Array() + + cropx = tr.Int() + cropy = tr.Int() + cropz = tr.Int() + + + def __init__(self): + self.imd = tvtk.ImageData() + self.sg = tvtk.StructuredGrid() + pass + + + def set_geometry(self, params, shape): + lam = params.lamda + tth = params.delta + gam = params.gamma + dpx = params.dpx + dpy = params.dpy + dth = params.dth + dx = 1.0 / shape[0] + dy = 1.0 / shape[1] + dz = 1.0 / shape[2] + dQdpx = np.zeros(3) + dQdpy = np.zeros(3) + dQdth = np.zeros(3) + Astar = np.zeros(3) + Bstar = np.zeros(3) + Cstar = np.zeros(3) + + # dQdpx[0] = -m.cos(tth) * m.cos(gam) + # dQdpx[1] = 0.0 + # dQdpx[2] = +m.sin(tth) * m.cos(gam) + dQdpx[0] = -m.cos(tth) + dQdpx[1] = 0.0 + dQdpx[2] = +m.sin(tth) + + dQdpy[0] = m.sin(tth) * m.sin(gam) + dQdpy[1] = -m.cos(gam) + dQdpy[2] = m.cos(tth) * m.sin(gam) + + dQdth[0] = -m.cos(tth) * m.cos(gam) + 1.0 + dQdth[1] = 0.0 + dQdth[2] = m.sin(tth) * m.cos(gam) + + Astar[0] = 2 * m.pi / lam * dpx * dQdpx[0] + Astar[1] = 2 * m.pi / lam * dpx * dQdpx[1] + Astar[2] = 2 * m.pi / lam * dpx * dQdpx[2] + + Bstar[0] = (2 * m.pi / lam) * dpy * dQdpy[0] + Bstar[1] = (2 * m.pi / lam) * dpy * dQdpy[1] + Bstar[2] = (2 * m.pi / lam) * dpy * dQdpy[2] + + Cstar[0] = (2 * m.pi / lam) * dth * dQdth[0] + Cstar[1] = (2 * m.pi / lam) * dth * dQdth[1] + Cstar[2] = (2 * m.pi / lam) * dth * dQdth[2] + + print("recip", Astar) + print("recip", Bstar) + print("recip", Cstar) + denom = np.dot(Astar, np.cross(Bstar, Cstar)) + A = 2 * m.pi * np.cross(Bstar, Cstar) / denom + B = 2 * m.pi * np.cross(Cstar, Astar) / denom + C = 2 * m.pi * np.cross(Astar, Bstar) / denom + + self.T = np.zeros(9) + self.T.shape = (3, 3) + space = 'direct' + if space == 'recip': + self.T[:, 0] = Astar + self.T[:, 1] = Bstar + self.T[:, 2] = Cstar + self.dx = 1.0 + self.dy = 1.0 + self.dz = 1.0 + elif space == 'direct': + self.T = np.array((A, B, C)) + self.dx = dx + self.dy = dy + self.dz = dz + else: + pass + print("DirectSpace T",self.T) + + + def update_coords(self): + dims = list(self.arr[self.cropobj].shape) + + r = np.mgrid[(dims[0] - 1) * self.dx:-self.dx:-self.dx, \ + 0:dims[1] * self.dy:self.dy, 0:dims[2] * self.dz:self.dz] + + r.shape = 3, dims[0] * dims[1] * dims[2] + r = r.transpose() + + self.coords = np.dot(r, self.T) + + + def set_array(self, array, logentry=None): + self.arr = array + if len(self.arr.shape) < 3: + newdims = list(self.arr.shape) + for i in range(3 - len(newdims)): + newdims.append(1) + self.arr.shape = tuple(newdims) + + + def set_crop(self, cropx, cropy, cropz): + dims = list(self.arr.shape) + if len(dims) == 2: + dims.append(1) + + if dims[0] > cropx and cropx > 0: + self.cropx = cropx + else: + self.cropx = dims[0] + + if dims[1] > cropy and cropy > 0: + self.cropy = cropy + else: + self.cropy = dims[1] + + if dims[2] > cropz and cropz > 0: + self.cropz = cropz + else: + self.cropz = dims[2] + + start1 = int(dims[0]/2) - int(self.cropx/2) + end1 = int(dims[0]/2) + int(self.cropx/2) + if start1 == end1: + end1 = end1 + 1 + start2 = int(dims[1]/2) - int(self.cropy/2) + end2 = int(dims[1]/2) + int(self.cropy/2) + if start2 == end2: + end2 = end2 + 1 + start3 = int(dims[2]/2) - int(self.cropz/2) + end3 = int(dims[2]/2) + int(self.cropz/2) + if start3 == end3: + end3 = end3 + 1 + + self.cropobj = (slice(start1, end1, None), slice(start2, end2, None), + slice(start3, end3, None)) + + + def get_structured_grid(self, **args): + self.update_coords() + dims = list(self.arr[self.cropobj].shape) + self.sg.points = self.coords + if "mode" in args: + if args["mode"] == "Phase": + arr1 = self.arr[self.cropobj].ravel() + arr = (np.arctan2(arr1.imag, arr1.real)) + else: + arr = np.abs(self.arr[self.cropobj].ravel()) + else: + arr = self.arr[self.cropobj].ravel() + if (arr.dtype == np.complex128 or arr.dtype == np.complex64): + self.sg.point_data.scalars = np.abs(arr) + self.sg.point_data.scalars.name = "Amp" + ph = tvtk.DoubleArray() + ph.from_array(np.arctan2(arr.imag, arr.real)) + ph.name = "Phase" + self.sg.point_data.add_array(ph) + else: + self.sg.point_data.scalars = arr + self.sg.dimensions = (dims[2], dims[1], dims[0]) + self.sg.extent = 0, dims[2] - 1, 0, dims[1] - 1, 0, dims[0] - 1 + return self.sg + + + def write_structured_grid(self, filename, **args): + sgwriter = tvtk.StructuredGridWriter() + sgwriter.file_type = 'binary' + if filename.endswith(".vtk"): + sgwriter.file_name = filename + else: + sgwriter.file_name = filename + '.vtk' + sgwriter.set_input_data(self.get_structured_grid()) + sgwriter.write() + print ('saved file', filename) + + +def shift(arr, s0, s1, s2): + shifted = np.roll(arr, s0, axis=0) + shifted = np.roll(shifted, s1, axis=1) + return np.roll(shifted, s2, axis=2) + + +def center_of_mass(arr): + tot = np.sum(arr) + dims = arr.shape + xyz = [] + griddims = [] + for d in dims: + griddims.append(slice(0, d)) + grid = np.ogrid[griddims] + for g in grid: + xyz.append(np.sum(arr * g) / tot) + com = np.asarray(xyz) + com = np.ma.round(com).astype(np.int) + return list(com) + + +def remove_ramp(arr, ups=3): + new_shape = list(arr.shape) + # pad zeros around arr, to the size of 3 times (ups = 3) of arr size + for i in range(len(new_shape)): + new_shape[i] = ups * new_shape[i] + padded = ut.get_zero_padded_centered(arr, new_shape) + padded_f = np.fft.fftshift(np.fft.fftn(np.fft.ifftshift(padded))) + com = ndi.center_of_mass(np.power(np.abs(padded_f), 2)) + sub_pixel_shifted = ut.sub_pixel_shift(padded_f, new_shape[0]/2.0-com[0], new_shape[1]/2.0-com[1], new_shape[2]/2.0-com[2]) + ramp_removed_padded = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(sub_pixel_shifted))) + ramp_removed = ut.crop_center(ramp_removed_padded, arr.shape) + + return ramp_removed + + +def center(image, support): + dims = image.shape + image, support = ut.get_centered_both(image, support) + + # place center of mass image*support in the center + for ax in range(len(dims)): + com = ndi.center_of_mass(np.absolute(image) * support) + image = shift(image, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) + support = shift(support, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) + + # set center phase to zero, use as a reference + phi0 = m.atan2(image.imag[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)], image.real[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)]) + image = image * np.exp(-1j * phi0) + + return image, support + + +def get_crop(params, shape): + crop = [] + for i in range(len(shape)): + if params.crop is None: + crop.append(shape[i]) + else: + crop.append(params.crop[i]) + if isinstance(crop[i], float): + crop[i] = int(crop[i]*shape[i]) + return crop + + +def save_CX(conf, image, support, coh, save_dir, last_scan): + image = np.swapaxes(image, 1,2) + image = np.swapaxes(image, 0,1) +# support = np.swapaxes(support, 1,2) +# support = np.swapaxes(support, 0,1) +# image, support = center(image, support) + params = DispalyParams(conf, last_scan) +# image = remove_ramp(image) + viz = CXDViz() + viz.set_array(image) + viz.set_geometry(params, image.shape) + crop = get_crop(params, image.shape) + viz.set_crop(crop[0], crop[1], crop[2]) # save image + image_file = os.path.join(save_dir, 'image') +# viz.write_structured_grid(image_file) +# viz.set_array(support) +# support_file = os.path.join(save_dir, 'support') +# viz.write_structured_grid(support_file) +# if coh is not None: +# coh = np.swapaxes(coh, 1, 2) +# # investigate if pad_center before fft or after +# coh = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(coh))).real +# coh = ut.get_zero_padded_centered(coh, image.shape) +# coh_file = os.path.join(save_dir, 'coherence') +# viz.set_array(coh) +# viz.write_structured_grid(coh_file) + +# a = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') +# remove_ramp(a, 3) diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/prep_noconfig.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/prep_noconfig.py new file mode 100644 index 0000000..0d6cc36 --- /dev/null +++ b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/prep_noconfig.py @@ -0,0 +1,216 @@ +import numpy as np +import copy +import scipy.fftpack as sf +import os +import glob +import tifffile as tif +#import reccdi.src_py.utilities.spec as spec +#import reccdi.src_py.utilities.utils as ut + + +def get_dir_list(scans, map): + """ + Returns list of sub-directories in data_dir with names matching range of scans + It will exclude scans within exclude_scans list if provided, and directories with fewer files than + min_files, if provided + :param scans: + :param map: + :return: + """ + try: + min_files = map.min_files + except: + min_files = 0 + try: + exclude_scans = map.exclude_scans + except: + exclude_scans = [] + try: + data_dir = map.data_dir + except: + print ('please provide data_dir') + + dirs = [] + for name in os.listdir(data_dir): + subdir = os.path.join(data_dir, name) + if os.path.isdir(subdir): + # exclude directories with fewer tif files than min_files + if len(glob.glob1(subdir, "*.tif")) < min_files and len(glob.glob1(subdir, "*.tiff")) < min_files: + continue + try: + index = int(name[-4:]) + if index >= scans[0] and index <= scans[1] and not index in exclude_scans: + dirs.append(subdir) + except: + continue + return dirs + + +def get_dark_white(darkfile, whitefile, det_area1, det_area2): + if darkfile is not None: + # find the darkfield array + dark_full = tif.imread(darkfile).astype(float) + # crop the corresponding quad or use the whole array, depending on what info was parsed from spec file + dark = dark_full[slice(det_area1[0], det_area1[1]), slice(det_area2[0], det_area2[1])] + else: + dark = None + + if whitefile is not None: + # find the whitefield array + white_full = tif.imread(whitefile).astype(float) + # crop the corresponding quad or use the whole array, depending on what info was parsed from spec file + white = white_full[slice(det_area1[0], det_area1[1]), slice(det_area2[0], det_area2[1])] + # set the bad pixels to some large value + white = np.where(white<5000, 1e20, white) #Some large value + else: + white = None + + return dark, white + + +def get_normalized_slice(file, dark, white): + # file is a tuple of slice and either background slice or None + slice = tif.TiffFile(file[0]).asarray() + if file[1] is not None: + slice = slice - tif.TiffFile(file[1]).asarray() + if dark is not None: + slice = np.where(dark > 5, 0, slice) #Ignore cosmic rays + # here would be code for correction for dead time + if white is not None: + slice = slice/white + slice *= 1e5 #Some medium value + slice = np.where(np.isnan(slice), 0, slice) + return slice + + +def read_scan(dir, dark, white): + files = [] + files_dir = {} + for file in os.listdir(dir): + if file.endswith('tif') or file.endswith('tiff'): + temp = file.split('.') + #it's assumed that the files end with four digits and 'tif' or 'tiff' extension + key = temp[0][-4:] + files_dir[key] = file + + ordered_keys = sorted(list(files_dir.keys())) + + for key in ordered_keys: + file = files_dir[key] + file = os.path.join(dir, file) + bg_file = file.replace('.tif', '_bg.tif') + if not os.path.isfile(bg_file): + bg_file = None + + files.append((file, bg_file)) + + # look at slice0 to find out shape + n = 0 + slice0 = get_normalized_slice(files[n], dark, white).transpose() + shape = (slice0.shape[0], slice0.shape[1], len(files)) + arr = np.zeros(shape, dtype=slice0.dtype) + arr[:,:,0] = slice0 + print("slice shape",slice0.shape) + + #for i in range (1, len(files)): + for file in files[1:]: + n = n + 1 + slice = get_normalized_slice(file, dark, white).transpose() + arr[:,:,n] = slice + return arr + + +def shift(arr, shifty): + # pass the FT of the fftshifted array you want to shift + # you get back the actual array, not the FT. + dims = arr.shape + # scipy does normalize ffts! + ftarr = sf.fftn(arr) + r=[] + for d in dims: + r.append(slice(int(np.ceil(-d/2.)), int(np.ceil(d/2.)), None)) + idxgrid = np.mgrid[r] + for d in range(len(dims)): + ftarr *= np.exp(-1j*2*np.pi*shifty[d]*sf.fftshift(idxgrid[d])/float(dims[d])) + + shiftedarr = sf.ifftn(ftarr) + return shiftedarr + + +def combine_part(part_f, slice_sum, refpart, part): + # get cross correlation and pixel shift + cross_correlation = sf.ifftn(refpart*np.conj(part_f)) + corelated = np.array(cross_correlation.shape) + amp = np.abs(cross_correlation) + intshift = np.unravel_index(amp.argmax(), corelated) + shifted = np.array(intshift) + pixelshift = np.where(shifted>=corelated/2, shifted-corelated, shifted) + return slice_sum + shift(part, pixelshift) + + +def fit(arr, det_area1, det_area2): + # if the full sensor was used for the image (i.e. the data size is 512x512) + # the quadrants need to be shifted + if det_area1[0] == 0 and det_area1[1] == 512 and det_area1[0] == 0 and det_area2[1] == 512: + b = np.zeros((arr.shape[0],517,516),float) + b[:,:256,:256] = arr[:,:256,:256] #Quad top left unchanged + b[:,:256,260:] = arr[:,:256,256:] #Quad top right moved 4 right + b[:,261:,:256] = arr[:,256:,:256] #Quad bot left moved 6 down + b[:,261:,260:] = arr[:,256:,256:] #Quad bot right + else: + b = arr + return b + + +def prep_data(experiment_dir, scans, map, det_area1, det_area2, *args): + if scans is None: + print ('scan info not provided') + return + + # build sub-directories map + if len(scans) == 1: + scans.append(scans[0]) + dirs = get_dir_list(scans, map) + + try: + whitefile = map.whitefile + except: + whitefile = None + + try: + darkfile = map.darkfile + except: + darkfile = None + + dark, white = get_dark_white(darkfile, whitefile, det_area1, det_area2) + + if len(dirs) == 0: + print ('there are no data directories for given scans') + return + + if len(dirs) == 1: + arr = read_scan(dirs[0], dark, white) + else: + # make the first part a reference + part = read_scan(dirs[0], dark, white) + slice_sum = np.abs(copy.deepcopy(part)) + refpart = sf.fftn(part) + for i in range (1, len(dirs)): + #this will load scans from each directory into an array part + part = read_scan(dirs[i], dark, white) + # add the arrays together + part_f = sf.fftn(part) + slice_sum = combine_part(part_f, slice_sum, refpart, part) + arr = np.abs(slice_sum).astype(np.int32) + + arr = fit(arr, det_area1, det_area2) + + #create directory to save prepared data ,/prep + prep_data_dir = os.path.join(experiment_dir, 'prep') + if not os.path.exists(prep_data_dir): + os.makedirs(prep_data_dir) + data_file = os.path.join(prep_data_dir, 'prep_data.tif') + + ut.save_tif(arr, data_file) + print ('done with prep, shape:', arr.shape) + diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/pyevtktest.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/pyevtktest.py new file mode 100644 index 0000000..92d80a9 --- /dev/null +++ b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/pyevtktest.py @@ -0,0 +1,42 @@ +#! /usr/bin/env python + +# ************************************************************** +# * Example of how to use the high level gridToVTK function. * +# * This example shows how to export a structured grid. * +# ************************************************************** + +from pyevtk.hl import gridToVTK +import numpy as np +import random as rnd + +# Dimensions +nx, ny, nz = 10, 5, 2 +lx, ly, lz = 10.0, 5.0, 1.0 +dx, dy, dz = lx/nx, ly/ny, lz/nz + +ncells = nx * ny * nz +npoints = (nx + 1) * (ny + 1) * (nz + 1) + +# Coordinates +X = np.arange(0, lx + 0.1*dx, dx, dtype='float64') +Y = np.arange(0, ly + 0.1*dy, dy, dtype='float64') +Z = np.arange(0, lz + 0.1*dz, dz, dtype='float64') + +x = np.zeros((nx + 1, ny + 1, nz + 1)) +y = np.zeros((nx + 1, ny + 1, nz + 1)) +z = np.zeros((nx + 1, ny + 1, nz + 1)) + +# We add some random fluctuation to make the grid +# more interesting +for k in range(nz + 1): + for j in range(ny + 1): + for i in range(nx + 1): + x[i,j,k] = X[i] + y[i,j,k] = Y[j] + z[i,j,k] = Z[k] + +# Variables +#pressure = np.random.rand(ncells).reshape( (nx, ny, nz)) +#temp = np.random.rand(npoints).reshape( (nx + 1, ny + 1, nz + 1)) + +#gridToVTK("./structured", x, y, z, cellData = {"pressure" : pressure}, pointData = {"temp" : temp}) diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/rec_disp.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/rec_disp.py new file mode 100644 index 0000000..0aa4d8d --- /dev/null +++ b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/rec_disp.py @@ -0,0 +1,379 @@ +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + +import pylibconfig2 as cfg +import os +import traits.api as tr +from tvtk.api import tvtk +import numpy as np +import scipy.ndimage as ndi +import math as m +import reccdi.src_py.utilities.utils as ut +import reccdi.src_py.utilities.spec as sput + +__author__ = "Barbara Frosik" +__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." +__docformat__ = 'restructuredtext en' + + +class DispalyParams: + """ + This class encapsulates parameters defining image display. The parameters are read from config file on + construction + """ + + def __init__(self, config, last_scan): + """ + The constructor gets config file and fills out the class members. + + Parameters + ---------- + conf : str + configuration file name + + Returns + ------- + none + """ + if os.path.isfile(config): + with open(config, 'r') as f: + config_map = cfg.Config(f.read()) + + deg2rad = np.pi / 180.0 + try: + specfile = config_map.specfile + self.lamda, delta, gamma, dth, arm, pixel = sput.parse_spec(specfile, last_scan) + self.delta = delta * deg2rad + self.gamma = gamma * deg2rad + self.dth = dth * deg2rad + self.arm = arm / 1000 + pixel = pixel[1:-1] + pixel = pixel.split(',') + pixel[0], pixel[1] = float(pixel[0]), float(pixel[1]) + except Exception as e: + # print (str(e)) + try: + energy = config_map.energy + self.lamda = 12.398 / energy / 10 + except AttributeError: + print ('lamda not defined') + try: + self.delta = config_map.delta * deg2rad + except AttributeError: + print ('delta not defined') + try: + self.gamma = config_map.gamma * deg2rad + except AttributeError: + print ('gamma not defined') + try: + self.dth = config_map.dth * deg2rad + except AttributeError: + print ('dth not defined') + try: + self.arm = config_map.arm / 1000 + except AttributeError: + print ('arm not defined') + try: + pixel = config_map.pixel + except AttributeError: + print ('pixel not defined') + + try: + self.binning = [] + binning = config_map.binning + for i in range(len(binning)): + self.binning.append(binning[i]) + for _ in range(3 - len(self.binning)): + self.binning.append(1) + except AttributeError: + self.binning = [1,1,1] + self.dpx = pixel[0] * self.binning[0] / self.arm / self.binning[2] + self.dpy = pixel[1] * self.binning[1] / self.arm / self.binning[2] + try: + self.crop = [] + crop = config_map.crop + for i in range(len(crop)): + self.crop.append(crop[i]) + for _ in range(3 - len(self.crop)): + self.crop.append(1.0) + crop[0], crop[1] = crop[1], crop[0] + except AttributeError: + self.crop = None + + +class CXDViz(tr.HasTraits): + coords = tr.Array() + arr = tr.Array() + + cropx = tr.Int() + cropy = tr.Int() + cropz = tr.Int() + + + def __init__(self): + self.imd = tvtk.ImageData() + self.sg = tvtk.StructuredGrid() + pass + + + def set_geometry(self, params, shape): + lam = params.lamda + tth = params.delta + gam = params.gamma + dpx = params.dpx + dpy = params.dpy + dth = params.dth + dx = 1.0 / shape[0] + dy = 1.0 / shape[1] + dz = 1.0 / shape[2] + dQdpx = np.zeros(3) + dQdpy = np.zeros(3) + dQdth = np.zeros(3) + Astar = np.zeros(3) + Bstar = np.zeros(3) + Cstar = np.zeros(3) + + # dQdpx[0] = -m.cos(tth) * m.cos(gam) + # dQdpx[1] = 0.0 + # dQdpx[2] = +m.sin(tth) * m.cos(gam) + dQdpx[0] = -m.cos(tth) + dQdpx[1] = 0.0 + dQdpx[2] = +m.sin(tth) + + dQdpy[0] = m.sin(tth) * m.sin(gam) + dQdpy[1] = -m.cos(gam) + dQdpy[2] = m.cos(tth) * m.sin(gam) + + dQdth[0] = -m.cos(tth) * m.cos(gam) + 1.0 + dQdth[1] = 0.0 + dQdth[2] = m.sin(tth) * m.cos(gam) + + Astar[0] = 2 * m.pi / lam * dpx * dQdpx[0] + Astar[1] = 2 * m.pi / lam * dpx * dQdpx[1] + Astar[2] = 2 * m.pi / lam * dpx * dQdpx[2] + + Bstar[0] = (2 * m.pi / lam) * dpy * dQdpy[0] + Bstar[1] = (2 * m.pi / lam) * dpy * dQdpy[1] + Bstar[2] = (2 * m.pi / lam) * dpy * dQdpy[2] + + Cstar[0] = (2 * m.pi / lam) * dth * dQdth[0] + Cstar[1] = (2 * m.pi / lam) * dth * dQdth[1] + Cstar[2] = (2 * m.pi / lam) * dth * dQdth[2] + + denom = np.dot(Astar, np.cross(Bstar, Cstar)) + A = 2 * m.pi * np.cross(Bstar, Cstar) / denom + B = 2 * m.pi * np.cross(Cstar, Astar) / denom + C = 2 * m.pi * np.cross(Astar, Bstar) / denom + + self.T = np.zeros(9) + self.T.shape = (3, 3) + space = 'direct' + if space == 'recip': + self.T[:, 0] = Astar + self.T[:, 1] = Bstar + self.T[:, 2] = Cstar + self.dx = 1.0 + self.dy = 1.0 + self.dz = 1.0 + elif space == 'direct': + self.T = np.array((A, B, C)) + self.dx = dx + self.dy = dy + self.dz = dz + else: + pass + + + def update_coords(self): + dims = list(self.arr[self.cropobj].shape) + + r = np.mgrid[(dims[0] - 1) * self.dx:-self.dx:-self.dx, \ + 0:dims[1] * self.dy:self.dy, 0:dims[2] * self.dz:self.dz] + + r.shape = 3, dims[0] * dims[1] * dims[2] + r = r.transpose() + + self.coords = np.dot(r, self.T) + + + def set_array(self, array, logentry=None): + self.arr = array + if len(self.arr.shape) < 3: + newdims = list(self.arr.shape) + for i in range(3 - len(newdims)): + newdims.append(1) + self.arr.shape = tuple(newdims) + + + def set_crop(self, cropx, cropy, cropz): + dims = list(self.arr.shape) + if len(dims) == 2: + dims.append(1) + + if dims[0] > cropx and cropx > 0: + self.cropx = cropx + else: + self.cropx = dims[0] + + if dims[1] > cropy and cropy > 0: + self.cropy = cropy + else: + self.cropy = dims[1] + + if dims[2] > cropz and cropz > 0: + self.cropz = cropz + else: + self.cropz = dims[2] + + start1 = int(dims[0]/2) - int(self.cropx/2) + end1 = int(dims[0]/2) + int(self.cropx/2) + if start1 == end1: + end1 = end1 + 1 + start2 = int(dims[1]/2) - int(self.cropy/2) + end2 = int(dims[1]/2) + int(self.cropy/2) + if start2 == end2: + end2 = end2 + 1 + start3 = int(dims[2]/2) - int(self.cropz/2) + end3 = int(dims[2]/2) + int(self.cropz/2) + if start3 == end3: + end3 = end3 + 1 + + self.cropobj = (slice(start1, end1, None), slice(start2, end2, None), + slice(start3, end3, None)) + + + def get_structured_grid(self, **args): + self.update_coords() + dims = list(self.arr[self.cropobj].shape) + self.sg.points = self.coords + if "mode" in args: + if args["mode"] == "Phase": + arr1 = self.arr[self.cropobj].ravel() + arr = (np.arctan2(arr1.imag, arr1.real)) + else: + arr = np.abs(self.arr[self.cropobj].ravel()) + else: + arr = self.arr[self.cropobj].ravel() + if (arr.dtype == np.complex128 or arr.dtype == np.complex64): + self.sg.point_data.scalars = np.abs(arr) + self.sg.point_data.scalars.name = "Amp" + ph = tvtk.DoubleArray() + ph.from_array(np.arctan2(arr.imag, arr.real)) + ph.name = "Phase" + self.sg.point_data.add_array(ph) + else: + self.sg.point_data.scalars = arr + self.sg.dimensions = (dims[2], dims[1], dims[0]) + self.sg.extent = 0, dims[2] - 1, 0, dims[1] - 1, 0, dims[0] - 1 + return self.sg + + + def write_structured_grid(self, filename, **args): + sgwriter = tvtk.StructuredGridWriter() + sgwriter.file_type = 'binary' + if filename.endswith(".vtk"): + sgwriter.file_name = filename + else: + sgwriter.file_name = filename + '.vtk' + sgwriter.set_input_data(self.get_structured_grid()) + sgwriter.write() + print ('saved file', filename) + + +def shift(arr, s0, s1, s2): + shifted = np.roll(arr, s0, axis=0) + shifted = np.roll(shifted, s1, axis=1) + return np.roll(shifted, s2, axis=2) + + +def center_of_mass(arr): + tot = np.sum(arr) + dims = arr.shape + xyz = [] + griddims = [] + for d in dims: + griddims.append(slice(0, d)) + grid = np.ogrid[griddims] + for g in grid: + xyz.append(np.sum(arr * g) / tot) + com = np.asarray(xyz) + com = np.ma.round(com).astype(np.int) + return list(com) + + +def remove_ramp(arr, ups=3): + new_shape = list(arr.shape) + # pad zeros around arr, to the size of 3 times (ups = 3) of arr size + for i in range(len(new_shape)): + new_shape[i] = ups * new_shape[i] + padded = ut.get_zero_padded_centered(arr, new_shape) + padded_f = np.fft.fftshift(np.fft.fftn(np.fft.ifftshift(padded))) + com = ndi.center_of_mass(np.power(np.abs(padded_f), 2)) + sub_pixel_shifted = ut.sub_pixel_shift(padded_f, new_shape[0]/2.0-com[0], new_shape[1]/2.0-com[1], new_shape[2]/2.0-com[2]) + ramp_removed_padded = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(sub_pixel_shifted))) + ramp_removed = ut.crop_center(ramp_removed_padded, arr.shape) + + return ramp_removed + + +def center(image, support): + dims = image.shape + image, support = ut.get_centered_both(image, support) + + # place center of mass image*support in the center + for ax in range(len(dims)): + com = ndi.center_of_mass(np.absolute(image) * support) + image = shift(image, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) + support = shift(support, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) + + # set center phase to zero, use as a reference + phi0 = m.atan2(image.imag[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)], image.real[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)]) + image = image * np.exp(-1j * phi0) + + return image, support + + +def get_crop(params, shape): + crop = [] + for i in range(len(shape)): + if params.crop is None: + crop.append(shape[i]) + else: + crop.append(params.crop[i]) + if isinstance(crop[i], float): + crop[i] = int(crop[i]*shape[i]) + return crop + + +def save_CX(conf, image, support, coh, save_dir, last_scan): + image = np.swapaxes(image, 1,2) + image = np.swapaxes(image, 0,1) + support = np.swapaxes(support, 1,2) + support = np.swapaxes(support, 0,1) + image, support = center(image, support) + params = DispalyParams(conf, last_scan) + image = remove_ramp(image) + viz = CXDViz() + viz.set_array(image) + viz.set_geometry(params, image.shape) + crop = get_crop(params, image.shape) + viz.set_crop(crop[0], crop[1], crop[2]) # save image + image_file = os.path.join(save_dir, 'image') + viz.write_structured_grid(image_file) + viz.set_array(support) + support_file = os.path.join(save_dir, 'support') + viz.write_structured_grid(support_file) + if coh is not None: + coh = np.swapaxes(coh, 1, 2) + # investigate if pad_center before fft or after + coh = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(coh))).real + coh = ut.get_zero_padded_centered(coh, image.shape) + coh_file = os.path.join(save_dir, 'coherence') + viz.set_array(coh) + viz.write_structured_grid(coh_file) + +# a = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') +# remove_ramp(a, 3) diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/run_disp.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/run_disp.py new file mode 100644 index 0000000..b4298d8 --- /dev/null +++ b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/run_disp.py @@ -0,0 +1,176 @@ +import reccdi.src_py.utilities.viz_util_xu as vu +import reccdi.src_py.utilities.utils as ut +import reccdi.src_py.utilities.parse_ver as ver +import argparse +import sys +import os +import numpy as np +from multiprocessing import Pool + + +def save_CX(conf, image, support, coh, save_dir, last_scan): + image = np.swapaxes(image, 1,2) + image = np.swapaxes(image, 0,1) +# support = np.swapaxes(support, 1,2) +# support = np.swapaxes(support, 0,1) +# image, support = center(image, support) + params = vu.DispalyParams(conf, last_scan) +# image = remove_ramp(image) + viz = vu.CXDViz() + viz.set_geometry(params, image.shape) + crop = get_crop(params, image.shape) + #viz.set_crop(crop[0], crop[1], crop[2]) # save image + + viz.add_array(np.abs(image), "imAmp", space='direct') + viz.add_array(np.angle(image), "imPh", space='direct') + image_file = os.path.join(save_dir, 'image') + #viz.write_structured_grid(image_file) + viz.write_directspace(image_file) + viz.clear_direct_arrays() + + viz.add_array(support, "support", space='direct') + support_file = os.path.join(save_dir, 'support') + #viz.write_structured_grid(support_file) + viz.write_directspace(support_file) + viz.clear_direct_arrays() + + if coh is not None: + coh = np.swapaxes(coh, 1, 2) + # investigate if pad_center before fft or after + coh = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(coh))).real + coh = ut.get_zero_padded_centered(coh, image.shape) + coh_file = os.path.join(save_dir, 'coherence') + viz.add_array(np.abs(coh), 'cohAmp', space='direct') + viz.add_array(np.angle(coh), 'cohPh', space='direct') + #viz.write_structured_grid(coh_file) + viz.write_directspace(coh_file) + viz.clear_direct_arrays() + +# a = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') +# remove_ramp(a, 3) + +def save_vtk(res_dir_conf): + (res_dir, conf) = res_dir_conf + try: + imagefile = os.path.join(res_dir, 'image.npy') + image = np.load(imagefile) + except: + print ('cannot load "image.npy" file') + return + + try: + supportfile = os.path.join(res_dir, 'support.npy') + support = np.load(supportfile) + except: + print ('support file is missing in ' + res_dir + ' directory') + return + + try: + reciprocalfile = os.path.join(res_dir, 'reciprocal.npy') + reciprocal = np.load(reciprocalfile) + # reciprocal is saved as tif file, so no need to pass it to cx module + # saving amp, phase, and square of modulus in tif format + reciprocal_amp = np.absolute(reciprocal) + reciprocal_phase = np.angle(reciprocal) + reciprocal_sq_mod = np.power(reciprocal_amp, 2) + + ut.save_tif(reciprocal_amp, os.path.join(res_dir, 'reciprocal_amp.tif')) + ut.save_tif(reciprocal_phase, os.path.join(res_dir, 'reciprocal_phase.tif')) + ut.save_tif(reciprocal_sq_mod, os.path.join(res_dir, 'reciprocal_sq_mod.tif')) + except: + print ('info: cannot save reciprocal space') + + cohfile = os.path.join(res_dir, 'coherence.npy') + if os.path.isfile(cohfile): + coh = np.load(cohfile) + save_CX(conf, image, support, coh, res_dir) + else: + save_CX(conf, image, support, None, res_dir) + + +def to_vtk(experiment_dir, results_dir=None): + if not os.path.isdir(experiment_dir): + print("Please provide a valid experiment directory") + return + conf_dir = os.path.join(experiment_dir, 'conf') + conf = os.path.join(conf_dir, 'config_disp') + # verify configuration file + if not ver.ver_config_disp(conf): + print ('incorrect configuration file ' + conf +', cannot parse') + return + + # parse the conf once here and save it in dictionary, it will apply to all images in the directory tree + conf_dict = {} + try: + conf_map = ut.read_config(conf) + items = conf_map.items() + for item in items: + conf_dict[item[0]] = item[1] + except: + print('cannot parse configuration file ' + conf) + return + + # get last scan from the config file and add it to conf_dict + last_scan = None + main_conf = os.path.join(conf_dir, 'config') + if os.path.isfile(main_conf): + try: + config_map = ut.read_config(main_conf) + scan = config_map.scan + last_scan = scan.split('-')[-1] + conf_dict['last_scan'] = int(last_scan) + except: + print ("info: scan not determined, can't read " + conf + " configuration file") + + # get binning from the config_data file and add it to conf_dict + binning = None + data_conf = os.path.join(conf_dir, 'config_data') + if os.path.isfile(data_conf): + try: + conf_map = ut.read_config(data_conf) + conf_dict['binning'] = conf_map.binning + except: + pass + + no_gpus = 1 + rec_conf = os.path.join(conf_dir, 'config_rec') + if os.path.isfile(rec_conf): + try: + conf_map = ut.read_config(rec_conf) + device = conf_map.device + no_gpus = len(device) + except: + pass + + if results_dir is None: + results_dir = experiment_dir + # find directories with image.npy file + dirs = [] + for (dirpath, dirnames, filenames) in os.walk(results_dir): + for file in filenames: + print("file", file) + if file.endswith('image.npy'): + dirs.append((dirpath, conf_dict)) + + with Pool(processes = no_gpus) as pool: + pool.map_async(save_vtk, dirs) + pool.close() + pool.join() + + +def main(arg): + print ('preparing display') + parser = argparse.ArgumentParser() + parser.add_argument("experiment_dir", help="experiment directory") + parser.add_argument("--results_dir", help="directory in experiment that has a tree (or leaf) with reconstruction results which will be visualized") + args = parser.parse_args() + experiment_dir = args.experiment_dir + if args.results_dir: + to_vtk(experiment_dir, args.results_dir) + else: + to_vtk(experiment_dir) + +if __name__ == "__main__": + main(sys.argv[1:]) + +#python run_disp.py experiment_dir diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/simple.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/simple.py new file mode 100644 index 0000000..41ce888 --- /dev/null +++ b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/simple.py @@ -0,0 +1,20 @@ +#! /usr/bin/env python +from pyevtk.hl import gridToVTK +import numpy as np + +# Dimensions +nx, ny, nz = 11, 11, 11 + +X = np.linspace(1., -1., nx) +Y = np.linspace(-1., 1., ny) +Z = np.linspace(-1., 1., nz) + +x, y, z = np.meshgrid(X, Y, Z, indexing='ij') + +r = np.sqrt(x**2 + y**2 + z**2) + +gridToVTK('./structured', x, y, z, pointData={'r': r, 'x': x}) + +r = 1.-np.sqrt(x**2 + y**2 + z**2) + +gridToVTK('./structured2', x, y, z, pointData={'r': r, 'x': x}) diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/tools.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/tools.py new file mode 100644 index 0000000..aa13a3b --- /dev/null +++ b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/tools.py @@ -0,0 +1,537 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + +""" +Please make sure the installation :ref:`pre-requisite-reference-label` are met. +This module is a suite of utility mehods. +""" + +import tifffile as tf +import numpy as np +import os +import logging +import stat + +__author__ = "Barbara Frosik" +__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." +__docformat__ = 'restructuredtext en' +__all__ = ['read_tif', + 'get_opencl_dim', + 'binning', + 'get_centered', + 'adjust_dimensions', + 'crop_center', + 'flip'] + + +def get_logger(name, ldir=''): + logger = logging.getLogger(name) + logger.setLevel(logging.DEBUG) + log_file = os.path.join(ldir, 'default.log') + fh = logging.FileHandler(log_file) + fh.setLevel(logging.DEBUG) + formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') + fh.setFormatter(formatter) + logger.addHandler(fh) + return logger + + +def read_tif(filename): + """ + This method reads tif type file containing experiment data and returns the data as array. + Parameters + ---------- + filename : str + a filename containing the experiment data + Returns + ------- + data : array + an array containing the experiment data + """ + + ar = tf.imread(filename) + ar = np.swapaxes(ar, 0, 2) +# ar = np.swapaxes(ar, 0, 1) + return ar + + +def save_tif(arr, tif_file): + arr = np.swapaxes(arr, 0, 2) + arr = np.swapaxes(arr, 1, 2) + tf.imsave(tif_file, arr.astype(np.int32)) + + +def get_good_dim(dim): + """ + This function calculates the dimension supported by opencl library (i.e. is multiplier of 2,3, or 5) and is closest to the + given starting dimension, and spaced by the given step. + If the dimension is not supported the function adds step value and verifies the new dimension. It iterates until it finds + supported value. + Parameters + ---------- + dim : int + a dimension that needs to be tranformed to one that is supported by the opencl library, if it is not already + + step : int + a delta to increase the dimension + Returns + ------- + dim : int + a dimension that is supported by the opencl library, and closest to the original dimension by n*step + """ + + def is_correct(x): + sub = x + if sub % 3 == 0: + sub = sub / 3 + if sub % 3 == 0: + sub = sub / 3 + if sub % 5 == 0: + sub = sub / 5 + while sub % 2 == 0: + sub = sub / 2 + return sub == 1 + + new_dim = dim + if new_dim % 2 == 1: + new_dim += 1 + while not is_correct(new_dim): + new_dim += 2 + return new_dim + + +def get_opencl_dim1(dim, step): + """ + This function calculates the dimension supported by opencl library (i.e. is multiplier of 2,3, or 5) and is closest to the + given starting dimension, and spaced by the given step. + If the dimension is not supported the function adds step value and verifies the new dimension. It iterates until it finds + supported value. + Parameters + ---------- + dim : int + a dimension that needs to be tranformed to one that is supported by the opencl library, if it is not already + + step : int + a delta to increase the dimension + Returns + ------- + dim : int + a dimension that is supported by the opencl library, and closest to the original dimension by n*step + """ + + def is_correct(x): + sub = x + while sub % 2 == 0: + sub = sub / 2 + while sub % 3 == 0: + sub = sub / 3 + while sub % 5 == 0: + sub = sub / 5 + return sub == 1 + + new_dim = dim + while not is_correct(new_dim): + new_dim += step + return new_dim + + +def binning(array, binsizes): + """ + This function does the binning of the array. The array is binned in each dimension by the corresponding binsizes elements. + If binsizes list is shorter than the array dimensions, the remaining dimensions are not binned. The elements in + a bucket are summed. + Parameters + ---------- + array : array + the original array to be binned + + binsizes : list + a list defining binning buckets for corresponding dimensions + Returns + ------- + array : array + the binned array + """ + + data_dims = array.shape + # trim array + for ax in range(len(binsizes)): + cut_slices = range(data_dims[ax] - data_dims[ax] % binsizes[ax], data_dims[ax]) + array = np.delete(array, cut_slices, ax) + + binned_array = array + new_shape = list(array.shape) + + for ax in range(len(binsizes)): + if binsizes[ax] > 1: + new_shape[ax] = binsizes[ax] + new_shape.insert(ax, int(array.shape[ax] / binsizes[ax])) + binned_array = np.reshape(binned_array, tuple(new_shape)) + binned_array = np.sum(binned_array, axis=ax + 1) + new_shape = list(binned_array.shape) + return binned_array + + +# ar = np.asarray([1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9]) +# ar.resize((5,9)) +# print ('ar', ar) +# b = binning(ar, (2,2)) +# print ('b',b) +# c = binning1(ar,(2,2)) +# print ('c',c) + + +def get_centered(arr, center_shift): + """ + This function finds a greatest value in the array, and puts it in a center of a new array. If center_shift is + not zeros, the array will be shifted accordingly. The shifted elements are rolled into the other end of array. + Parameters + ---------- + arr : array + the original array to be centered + center_shift : list + a list defining shift of the center + Returns + ------- + array : array + the centered array + """ + max_coordinates = list(np.unravel_index(np.argmax(arr), arr.shape)) + max_coordinates = np.add(max_coordinates, center_shift) + shape = arr.shape + centered = arr + for i in range(len(max_coordinates)): + centered = np.roll(centered, int(shape[i] / 2) - max_coordinates[i], i) + + return centered + + +def get_centered_both(arr, support): + """ + This function finds a greatest value in the array, and puts it in a center of a new array. If center_shift is + not zeros, the array will be shifted accordingly. The shifted elements are rolled into the other end of array. + Parameters + ---------- + arr : array + the original array to be centered + support : array + the associated array shifted the same way centered array is + Returns + ------- + centered : array + the centered array + """ + max_coordinates = list(np.unravel_index(np.argmax(arr), arr.shape)) + shape = arr.shape + centered = arr + centered_supp = support + for i in range(len(max_coordinates)): + centered = np.roll(centered, int(shape[i] / 2) - max_coordinates[i], i) + centered_supp = np.roll(centered_supp, int(shape[i] / 2) - max_coordinates[i], i) + + return centered, centered_supp + + +def get_zero_padded_centered(arr, new_shape): + """ + This function pads the array with zeros to the new shape with the array in the center. + Parameters + ---------- + arr : array + the original array to be padded and centered + new_shape : tuple + a list of new dimensions + Returns + ------- + array : array + the zero padded centered array + """ + shape = arr.shape + pad = [] + c_vals = [] + for i in range(len(new_shape)): + pad.append((0, new_shape[i] - shape[i])) + c_vals.append((0.0, 0.0)) + arr = np.lib.pad(arr, (pad), 'constant', constant_values=c_vals) + + centered = arr + for i in range(len(new_shape)): + centered = np.roll(centered, int((new_shape[i] - shape[i] + 1) / 2), i) + + return centered + + +def adjust_dimensions(arr, pads): + """ + This function adds to or subtracts from each dimension of the array elements defined by pad. If the pad is positive, + the array is padded in this dimension. If the pad is negative, the array is cropped. + The dimensions of the new array are supported by the opencl library. + Parameters + ---------- + arr : array + the array to pad/crop + pad : list + list of three pad values, for each dimension + Returns + ------- + array : array + the padded/cropped array + """ + # logger = get_logger('adjust_dimensions') + old_dims = arr.shape + start = [] + stop = [] + for i in range(len(old_dims)): + pad = pads[i] + first = max(0, -pad[0]) + last = old_dims[i] - max(0, -pad[1]) + if first >= last: + print ('the crop exceeds size, please change the crop and run again') + return None + else: + start.append(first) + stop.append(last) + + cropped = arr[ start[0]:stop[0], start[1]:stop[1], start[2]:stop[2] ] + # logger.info('cutting from to ' + str(crop[0]) + ', ' + str(old_dims[0]-crop[1]) + ', ' + str(crop[2]) + ', ' \ + # + str(old_dims[1]-crop[3]) + ', ' + str(crop[4]) + ', ' + str(old_dims[2]-crop[5])) + dims = cropped.shape + c_vals = [] + new_pad = [] + for i in range(len(dims)): + pad = pads[i] + # find a good dimension and find padding + temp_dim = old_dims[i] + pad[0] + pad[1] + new_dim = get_good_dim(temp_dim) + added = new_dim - temp_dim + # if the pad is positive + pad_front = max(0, pad[0]) + int(added / 2) + pad_end = new_dim - dims[i] - pad_front + new_pad.append((pad_front, pad_end)) + c_vals.append((0.0, 0.0)) + adjusted = np.pad(cropped, new_pad, 'constant', constant_values=c_vals) + + # logger.info('pads ' + str(new_pad[0]) + ', ' + str(new_pad[1]) + ', ' + str(new_pad[2]) + ', ' + str(new_pad[3]) \ + # + ', ' + str(new_pad[4]) + ', ' + str(new_pad[5])) + # logger.info('old dim, new dim (' + str(dims[0]) + ',' + str(dims[1]) + ',' + str(dims[2]) + ') (' + str(arr.shape[0]) +\ + # ',' + str(arr.shape[1]) + ',' + str(arr.shape[1]) + ')') + + return adjusted + +# ar = np.zeros((256,256,90)) +# pads = (-100,-100,0,0,0,0) +# ar = np.zeros((81,256,256)) +# pads = (5,-7,-20,-30,4,-20) +# arr = adjust_dimensions(ar,pads) +# print (arr.shape) + +def crop_center(arr, new_size): + size = arr.shape + cropped = arr + for i in range(len(size)): + crop_front = int((size[i] - new_size[i]) / 2) + crop_end = crop_front + new_size[i] + splitted = np.split(cropped, [crop_front, crop_end], axis=i) + cropped = splitted[1] + + return cropped + + +# ar = np.zeros((81,256,256)) +# new_size = (40, 200,100) +# arr = crop_center(ar,new_size) +# print (arr.shape) + +def get_norm(arr): + return sum(sum(sum(abs(arr) ** 2))) + + +def flip(m, axis): + """ + Copied from numpy 1.12.0. + """ + if not hasattr(m, 'ndim'): + m = np.asarray(m) + indexer = [slice(None)] * m.ndim + try: + indexer[axis] = slice(None, None, -1) + except IndexError: + raise ValueError("axis=%i is invalid for the %i-dimensional input array" + % (axis, m.ndim)) + return m[tuple(indexer)] + + +def gaussian(shape, sigmas, alpha=1): + grid = np.full(shape, 1.0) + for i in range(len(shape)): + # prepare indexes for tile and transpose + tile_shape = list(shape) + tile_shape.pop(i) + tile_shape.append(1) + trans_shape = list(range(len(shape) - 1)) + trans_shape.insert(i, len(shape) - 1) + + multiplier = - 0.5 * alpha / pow(sigmas[i], 2) + line = np.linspace(-(shape[i] - 1) / 2.0, (shape[i] - 1) / 2.0, shape[i]) + gi = np.tile(line, tile_shape) + gi = np.transpose(gi, tuple(trans_shape)) + exponent = np.power(gi, 2) * multiplier + gi = np.exp(exponent) + grid = grid * gi + + grid_total = np.sum(grid) + return grid / grid_total + + +def gauss_conv_fft(arr, sigmas): + arr_sum = np.sum(abs(arr)) + arr_f = np.fft.ifftshift(np.fft.fftn(np.fft.ifftshift(arr))) + shape = list(arr.shape) + for i in range(len(sigmas)): + sigmas[i] = shape[i] / 2.0 / np.pi / sigmas[i] + convag = arr_f * gaussian(shape, sigmas) + convag = np.fft.ifftshift(np.fft.ifftn(np.fft.ifftshift(convag))) + convag = convag.real + convag = np.clip(convag, 0, None) + correction = arr_sum / np.sum(convag) + convag *= correction + return convag + + +def shrink_wrap(arr, threshold, sigma, type='gauss'): + sigmas = [sigma] * len(arr.shape) + if type == 'gauss': + convag = gauss_conv_fft(abs(arr), sigmas) + max_convag = np.amax(convag) + convag = convag / max_convag + support = np.where(convag >= threshold, 1, 0) + return support + else: + return None + + +def read_results(read_dir): + try: + imagefile = os.path.join(read_dir, 'image.npy') + image = np.load(imagefile) + + supportfile = os.path.join(read_dir, 'support.npy') + support = np.load(supportfile) + + try: + cohfile = os.path.join(read_dir, 'coherence.npy') + coh = np.load(cohfile) + except: + coh = None + except: + pass + + return image, support, coh + + +def save_metrics(errs, dir, metrics=None): + metric_file = os.path.join(dir, 'summary') + if os.path.isfile(metric_file): + os.remove(metric_file) + with open(metric_file, 'a') as f: + if metrics is not None: + f.write('metric result\n') + for key in metrics: + value = metrics[key] + f.write(key + ' = ' + str(value) + '\n') + f.write('\nerrors by iteration\n') + for er in errs: + f.write(str(er) + ' ') + f.close() + +def write_plot_errors(save_dir): + plot_file = os.path.join(save_dir, 'plot_errors.py') + f = open(plot_file, 'w+') + f.write("#! /usr/bin/env python\n") + f.write("import matplotlib.pyplot as plt\n") + f.write("import numpy as np\n") + f.write("import sys\n") + f.write("import os\n") + f.write("current_dir = sys.path[0]\n") + f.write("errs = np.load(os.path.join(current_dir, 'errors.npy')).tolist()\n") + f.write("errs.pop(0)\n") + f.write("plt.plot(errs)\n") + f.write("plt.ylabel('errors')\n") + f.write("plt.show()") + f.close() + st = os.stat(plot_file) + os.chmod(plot_file, st.st_mode | stat.S_IEXEC) + + +def save_results(image, support, coh, errs, reciprocal, save_dir, metrics=None): + if not os.path.exists(save_dir): + os.makedirs(save_dir) + + image_file = os.path.join(save_dir, 'image') + np.save(image_file, image) + support_file = os.path.join(save_dir, 'support') + np.save(support_file, support) + errs_file = os.path.join(save_dir, 'errors') + np.save(errs_file, errs) + if not coh is None: + coh_file = os.path.join(save_dir, 'coherence') + np.save(coh_file, coh) + reciprocal_file = os.path.join(save_dir, 'reciprocal') + np.save(reciprocal_file, reciprocal) + write_plot_errors(save_dir) + if metrics is not None: + save_metrics(errs, save_dir, metrics) + else: + save_metrics(errs, save_dir) + + +def save_multiple_results(samples, images, supports, cohs, errs, reciprocals, save_dir, metrics=None): + """ + This function saves results of multiple reconstructions to directory tree in save_dir. + Parameters + ---------- + samples : int + number of reconstruction sets results + images : list + list of numpy arrays containing reconstructed images + supports : list + list of numpy arrays containing support of reconstructed images + cohs : list + list of numpy arrays containing coherence of reconstructed images + save_dir : str + a directory to save the results + Returns + ------- + nothing + """ + for i in range(samples): + subdir = os.path.join(save_dir, str(i)) + if metrics is None: + save_results(images[i], supports[i], cohs[i], np.asarray(errs[i]), reciprocals[i], subdir) + else: + save_results(images[i], supports[i], cohs[i], np.asarray(errs[i]), reciprocals[i], subdir, metrics[i]) + + +def sub_pixel_shift(arr, row_shift, col_shift, z_shift): + # arr is 3D + buf2ft = np.fft.fftn(arr) + shape = arr.shape + Nr = np.fft.ifftshift(np.array(list(range(-int(np.floor(shape[0] / 2)), shape[0] - int(np.floor(shape[0] / 2)))))) + Nc = np.fft.ifftshift(np.array(list(range(-int(np.floor(shape[1] / 2)), shape[1] - int(np.floor(shape[1] / 2)))))) + Nz = np.fft.ifftshift(np.array(list(range(-int(np.floor(shape[2] / 2)), shape[2] - int(np.floor(shape[2] / 2)))))) + [Nc, Nr, Nz] = np.meshgrid(Nc, Nr, Nz) + Greg = buf2ft * np.exp(1j * 2 * np.pi * (-row_shift * Nr / shape[0] - col_shift * Nc / shape[1] - z_shift * Nz / shape[2])) + return np.fft.ifftn(Greg) + + +def arr_property(arr): + arr1 = abs(arr) + print ('norm', np.sum(pow(abs(arr),2))) + max_coordinates = list(np.unravel_index(np.argmax(arr1), arr.shape)) + print ('max coords, value', max_coordinates, arr[max_coordinates[0], max_coordinates[1],max_coordinates[2]]) diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/transtest.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/transtest.py new file mode 100644 index 0000000..f4756e3 --- /dev/null +++ b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/transtest.py @@ -0,0 +1,22 @@ +import numpy as np + +dims=(5,5,5) +dxdir=1 +dydir=1 +dzdir=1 + +r = np.mgrid[(dims[0] - 1) * dxdir:-dxdir:-dxdir, \ + 0:dims[1] * dydir:dydir,\ + 0:dims[2] * dzdir:dzdir] + +origshape=r.shape +r.shape = 3, dims[0] * dims[1] * dims[2] +r = r.transpose() + +Tdir=np.array( [[0.1,0,0],[0,1,0],[0,0,1]]) +print( Tdir) +dir_coords = np.dot(r, Tdir) + +dir_coords = dir_coords.transpose() +dir_coords.shape=origshape + diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/viz_util.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/viz_util.py new file mode 100644 index 0000000..1074dc6 --- /dev/null +++ b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/viz_util.py @@ -0,0 +1,174 @@ +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + +import os +import numpy as np +import math as m +import pyevtk.hl as vtk + +__author__ = "Barbara Frosik" +__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." +__docformat__ = 'restructuredtext en' + + +class CXDViz(): + + cropx = 0.5 + cropy = 0.5 + cropz = 0.5 + dir_arrs={} + recip_arrs={} + + def __init__(self): + #self.imd = tvtk.ImageData() + #self.sg = tvtk.StructuredGrid() + pass + + + def set_geometry(self, lam, delta, gamma, dpx, dpy, dth): + lam = lam + tth = delta + gam = gamma + dpx = dpx + dpy = dpy + dth = dth + dQdpx = np.zeros(3) + dQdpy = np.zeros(3) + dQdth = np.zeros(3) + Astar = np.zeros(3) + Bstar = np.zeros(3) + Cstar = np.zeros(3) + + # dQdpx[0] = -m.cos(tth) * m.cos(gam) + # dQdpx[1] = 0.0 + # dQdpx[2] = +m.sin(tth) * m.cos(gam) + dQdpx[0] = -m.cos(tth) + dQdpx[1] = 0.0 + dQdpx[2] = +m.sin(tth) + print("dqdpx",dQdpx) + + dQdpy[0] = m.sin(tth) * m.sin(gam) + dQdpy[1] = -m.cos(gam) + dQdpy[2] = m.cos(tth) * m.sin(gam) + print("dqdpy",dQdpy) + + dQdth[0] = -m.cos(tth) * m.cos(gam) + 1.0 + dQdth[1] = 0.0 + dQdth[2] = m.sin(tth) * m.cos(gam) + print("dqdth",dQdth) + + Astar[0] = 2 * m.pi / lam * dpx * dQdpx[0] + Astar[1] = 2 * m.pi / lam * dpx * dQdpx[1] + Astar[2] = 2 * m.pi / lam * dpx * dQdpx[2] + + Bstar[0] = (2 * m.pi / lam) * dpy * dQdpy[0] + Bstar[1] = (2 * m.pi / lam) * dpy * dQdpy[1] + Bstar[2] = (2 * m.pi / lam) * dpy * dQdpy[2] + + Cstar[0] = (2 * m.pi / lam) * dth * dQdth[0] + Cstar[1] = (2 * m.pi / lam) * dth * dQdth[1] + Cstar[2] = (2 * m.pi / lam) * dth * dQdth[2] + + denom = np.dot(Astar, np.cross(Bstar, Cstar)) + A = 2 * m.pi * np.cross(Bstar, Cstar) / denom + B = 2 * m.pi * np.cross(Cstar, Astar) / denom + C = 2 * m.pi * np.cross(Astar, Bstar) / denom + + self.Trecip = np.zeros(9) + self.Trecip.shape = (3, 3) + self.Trecip[:, 0] = Astar + self.Trecip[:, 1] = Bstar + self.Trecip[:, 2] = Cstar +# self.Trecip[:, 0] = [2,0,1] +# self.Trecip[:, 1] = [0,1,0] +# self.Trecip[:, 2] = [0,0,1] + print("Recip") + print(Astar,Bstar,Cstar) + print(self.Trecip) + + self.Tdir = np.zeros(9) + self.Tdir.shape = (3, 3) + self.Tdir = np.array((A, B, C)) + print("Direct") + print(A,B,C) + print(self.Tdir) + + self.dirspace_uptodate=0 + self.recipspace_uptodate=0 + return dQdpx, dQdpy, dQdth + + def update_dirspace(self, shape): + print("Updating dirspace coords") + dims = list(shape) + self.dxdir = 1.0 / shape[0] + self.dydir = 1.0 / shape[1] + self.dzdir = 1.0 / shape[2] + + r = np.mgrid[ + 0:dims[0] * self.dxdir:self.dxdir, \ + 0:dims[1] * self.dydir:self.dydir,\ + 0:dims[2] * self.dzdir:self.dzdir] +# r = np.mgrid[ +# 0:dims[0]*self.dxdir:self.dxdir, \ +# (dims[1]-1)*self.dydir:-self.dydir:-self.dydir,\ +# 0:dims[2]*self.dzdir:self.dzdir] + + origshape=r.shape + r.shape = 3, dims[0] * dims[1] * dims[2] + #r = r.transpose() + + self.dir_coords = np.dot(self.Tdir, r) + +# self.dir_coords = self.dir_coords.transpose() + self.dir_coords.shape=origshape + print("dir shape", self.dir_coords.shape) + self.dirspace_uptodate=1 + + def update_recipspace(self, shape): + dims = list(shape) + q = np.mgrid[ 0:dims[0], 0:dims[1], 0:dims[2]] + + origshape=q.shape + q.shape = 3, dims[0] * dims[1] * dims[2] + + self.recip_coords = np.dot(self.Trecip, q) + self.recip_coords.shape=origshape + self.recipspace_uptodate=1 + + def add_array(self, array, name, space='direct', logentry=None): + + #Need to add something to ensure arrays are all the same dimension. + #Need to add crop of viz output arrays + if len(array.shape) < 3: + newdims = list(array.shape) + for i in range(3 - len(newdims)): + newdims.append(1) + array.shape = tuple(newdims) + print("adding array of shape ", array.shape) + if space=='direct': + self.dir_arrs[name]=array + if (not self.dirspace_uptodate): + self.update_dirspace(array.shape) + elif space=='recip': + self.recip_arrs[name]=array + if (not self.recipspace_uptodate): + self.update_recipspace(array.shape) + else: + return + + def write_directspace(self, filename, **args): + print(self.dir_arrs.keys()) + vtk.gridToVTK(filename, self.dir_coords[0,:,:,:].copy(), \ + self.dir_coords[1,:,:,:].copy(), \ + self.dir_coords[2,:,:,:].copy(), pointData=self.dir_arrs) + vtk.imageToVTK(filename, pointData=self.dir_arrs) + + def write_recipspace(self, filename, **args): + vtk.gridToVTK(filename, self.recip_coords[0,:,:,:].copy(), \ + self.recip_coords[1,:,:,:].copy(), \ + self.recip_coords[2,:,:,:].copy(), pointData=self.recip_arrs) + vtk.imageToVTK(filename, pointData=self.recip_arrs) + diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/viz_util_dirdemo.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/viz_util_dirdemo.py new file mode 100644 index 0000000..7da7654 --- /dev/null +++ b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/viz_util_dirdemo.py @@ -0,0 +1,42 @@ +if __name__ =="__main__": + import numpy as np + import math as m + import tifffile as tif + import tools as t + import viz_util_xu as vu + import prep_noconfig as prep + import os + + #binning of the data, this is not actually done, it's to account for previous binning in the saved data. + dbin1=2 + dbin2=2 + dir="/Users/rharder/Box/cdi-master/reccdi/src_py/utilities/NX2019a-3_483/results" + fname=os.path.join(dir,"image.npy") + #a=t.read_tif("cropped.tif").copy() #copy ensures array is contiguous which pyevtk needs + #b=prep.read_scan("/Users/rharder/Desktop/cropped", None, None) + a=np.load(fname)[:-28,:,:] + +# tif.imsave("RawDiffraction.tif", b) +# print("raw data",b.shape) +# print("imagejsave",a.shape) + + #scan info. + lam=1.37 #wavelength + delta=33.0*m.pi/180 #detector angle 1 + gamma=11.0*m.pi/180 #detector angle 2 + dpx=55e-6/0.500 #pixel size divided by detector dist + dpy=55e-6/0.500 + dth=0.01*m.pi/180 #rocking curve scan step. Everything in radians + + vr=vu.CXDViz() + vr.set_geometry(lam, delta, gamma, dbin1*dpx, dbin2*dpy, dth) + vr.add_array(abs(a), "imamp", space='direct') + #vr.add_array(np.angle(a), "imph", space='direct') + vr.write_directspace("dirtest.vtk") + + + +# q=vr.recip_coords +# qmag=np.sqrt(q[0,:,:,:]**2 + q[1,:,:,:]**2 + q[2,:,:,:]**2) +# vr.add_array(qmag, "qmag", space='recip') #add a second property that can be used for color in viz. +# vr.write_recipspace("RawDiffraction") diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/viz_util_recipdemo.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/viz_util_recipdemo.py new file mode 100644 index 0000000..d66e5a5 --- /dev/null +++ b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/viz_util_recipdemo.py @@ -0,0 +1,34 @@ +if __name__ =="__main__": + import numpy as np + import math as m + import tifffile as tif + import tools as t + import viz_util as vu + import prep_noconfig as prep + + #binning of the data, this is not actually done, it's to account for previous binning in the saved data. + dbin1=1 + dbin2=1 + a=t.read_tif("cropped.tif").copy() #copy ensures array is contiguous which pyevtk needs + b=prep.read_scan("/Users/rharder/Desktop/cropped", None, None) + + tif.imsave("RawDiffraction.tif", b) + print("raw data",b.shape) + print("imagejsave",a.shape) + + #scan info. + lam=.137 #wavelength + delta=33.0*m.pi/180 #detector angle 1 + gamma=11.0*m.pi/180 #detector angle 2 + dpx=55e-6/0.5 #pixel size divided by detector dist + dpy=55e-6/0.5 + dth=0.01*m.pi/180 #rocking curve scan step. Everything in radians + + vr=vu.CXDViz() + vr.set_geometry(lam, delta, gamma, dbin1*dpx, dbin2*dpy, dth) + vr.add_array(b, "dp", space='recip') + + q=vr.recip_coords + qmag=np.sqrt(q[0,:,:,:]**2 + q[1,:,:,:]**2 + q[2,:,:,:]**2) + vr.add_array(qmag, "qmag", space='recip') #add a second property that can be used for color in viz. + vr.write_recipspace("RawDiffraction") diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/viz_util_xu.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/viz_util_xu.py new file mode 100644 index 0000000..34f7ae5 --- /dev/null +++ b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/viz_util_xu.py @@ -0,0 +1,356 @@ +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + +import os +import numpy as np +import math as m +import pyevtk.hl as vtk +import xrayutilities.experiment as xuexp +import reccdi.src_py.utilities.utils as ut +import reccdi.src_py.utilities.spec as sput + +__author__ = "Barbara Frosik" +__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." +__docformat__ = 'restructuredtext en' + +class DispalyParams: + """ + This class encapsulates parameters defining image display. The parameters are +read from config file on + construction + """ + + def __init__(self, config): + """ + The constructor gets config file and fills out the class members. + + Parameters + ---------- + conf : str + configuration file name + + Returns + ------- + none + """ + deg2rad = np.pi / 180.0 + try: + specfile = config['specfile'] + last_scan = config['last_scan'] + self.lamda, delta, gamma, dth, arm, pixel,energy = sput.parse_spec(specfile, +last_scan) + self.delta = delta * deg2rad + self.gamma = gamma * deg2rad + self.dth = dth * deg2rad + self.arm = arm / 1000 + self.energy = energy + pixel = pixel[1:-1] + pixel = pixel.split(',') + pixel[0], pixel[1] = float(pixel[0]), float(pixel[1]) + except Exception as e: + pass + # override the parsed parameters with entries in config file + try: + self.energy = config['energy'] + self.lamda = 12.398 / energy / 10 + except AttributeError: + pass + try: + self.delta = config['delta'] * deg2rad + except AttributeError: + pass + try: + self.gamma = config['gamma'] * deg2rad + except AttributeError: + pass + try: + self.dth = config['dth'] * deg2rad + except AttributeError: + pass + try: + self.arm = config['arm'] / 1000 + except AttributeError: + pass + try: + pixel = config['pixel'] + except AttributeError: + pass + + try: + self.binning = [] + binning = config['binning'] + for i in range(len(binning)): + self.binning.append(binning[i]) + for _ in range(3 - len(self.binning)): + self.binning.append(1) + except AttributeError: + self.binning = [1,1,1] + self.dpx = pixel[0] * self.binning[0] / self.arm / self.binning[2] + self.dpy = pixel[1] * self.binning[1] / self.arm / self.binning[2] + try: + self.crop = [] + crop = config['crop'] + for i in range(len(crop)): + self.crop.append(crop[i]) + for _ in range(3 - len(self.crop)): + self.crop.append(1.0) + crop[0], crop[1] = crop[1], crop[0] + except AttributeError: + self.crop = None + + + + + + +class CXDViz(): + + cropx = 0.5 + cropy = 0.5 + cropz = 0.5 + dir_arrs={} + recip_arrs={} + + def __init__(self): + #self.imd = tvtk.ImageData() + #self.sg = tvtk.StructuredGrid() + pass + + + #def set_geometry(self, lam, delta, gamma, dpx, dpy, dth): + def set_geometry(self, params, shape): + self.params = params + lam = params.lam + tth = params.delta + gam = params.gamma + px = params.px + py = params.py + dpx = params.dpx + dpy = params.dpy + dth = params.dth + energy = params.energy + dQdpx = np.zeros(3) + dQdpy = np.zeros(3) + dQdth = np.zeros(3) + Astar = np.zeros(3) + Bstar = np.zeros(3) + Cstar = np.zeros(3) + + print("running the xrayutilities version") + self.qc=xuexp.QConversion(['y+','z-','x-'], ['y+','x-'],(0,0,1),en=energy*1000) + self.qc.init_area('x+','y-', shape[0],shape[1], 2,2, distance=params.arm, pwidth1=px, pwidth2=py) + + q1=np.array(qc.area(0.0,0,0,tth,gam,deg=False)) + q2=np.array(qc.area(dth,0,0,tth,gam,deg=False)) + Astar=q1[:,1,0]-q1[:,0,0] + Bstar=q1[:,0,1]-q1[:,0,0] + Cstar=(q2-q1)[:,0,0] + + denom = np.dot(Astar, np.cross(Bstar, Cstar)) + A = 2 * m.pi * np.cross(Bstar, Cstar) / denom + B = 2 * m.pi * np.cross(Cstar, Astar) / denom + C = 2 * m.pi * np.cross(Astar, Bstar) / denom + + self.Trecip = np.zeros(9) + self.Trecip.shape = (3, 3) + self.Trecip[:, 0] = Astar + self.Trecip[:, 1] = Bstar + self.Trecip[:, 2] = Cstar +# self.Trecip[:, 0] = [2,0,1] +# self.Trecip[:, 1] = [0,1,0] +# self.Trecip[:, 2] = [0,0,1] + print("Recip") + print(Astar,Bstar,Cstar) + print(self.Trecip) + + self.Tdir = np.zeros(9) + self.Tdir.shape = (3, 3) + self.Tdir = np.array((A, B, C)).transpose() + print("Direct") + print(A,B,C) + print(self.Tdir) + + self.dirspace_uptodate=0 + self.recipspace_uptodate=0 + return dQdpx, dQdpy, dQdth + + def update_dirspace(self, shape): + print("Updating dirspace coords") + dims = list(shape) + self.dxdir = 1.0 / shape[0] + self.dydir = 1.0 / shape[1] + self.dzdir = 1.0 / shape[2] + + r = np.mgrid[ + 0:dims[0] * self.dxdir:self.dxdir, \ + 0:dims[1] * self.dydir:self.dydir,\ + 0:dims[2] * self.dzdir:self.dzdir] +# r = np.mgrid[ +# 0:dims[0]*self.dxdir:self.dxdir, \ +# (dims[1]-1)*self.dydir:-self.dydir:-self.dydir,\ +# 0:dims[2]*self.dzdir:self.dzdir] + + origshape=r.shape + r.shape = 3, dims[0] * dims[1] * dims[2] + #r = r.transpose() + + self.dir_coords = np.dot(self.Tdir, r) + +# self.dir_coords = self.dir_coords.transpose() + self.dir_coords.shape=origshape + print("dir shape", self.dir_coords.shape) + self.dirspace_uptodate=1 + + def update_recipspace(self, shape): + dims = list(shape) + q = np.mgrid[ 0:dims[0], 0:dims[1], 0:dims[2]] + + origshape=q.shape + q.shape = 3, dims[0] * dims[1] * dims[2] + + self.recip_coords = np.dot(self.Trecip, q) + self.recip_coords.shape=origshape + self.recipspace_uptodate=1 + + def clear_direct_arrays(self): + self.dir_arrs.clear() + def clear_recip_arrays(self): + self.recip_arrs.clear() + + def add_array(self, array, name, space='direct', logentry=None): + + #Need to add something to ensure arrays are all the same dimension. + #Need to add crop of viz output arrays + if len(array.shape) < 3: + newdims = list(array.shape) + for i in range(3 - len(newdims)): + newdims.append(1) + array.shape = tuple(newdims) + print("adding array of shape ", array.shape) + if space=='direct': + self.dir_arrs[name]=array + if (not self.dirspace_uptodate): + self.update_dirspace(array.shape) + elif space=='recip': + self.recip_arrs[name]=array + if (not self.recipspace_uptodate): + self.update_recipspace(array.shape) + else: + return + + def write_directspace(self, filename, **args): + print(self.dir_arrs.keys()) + vtk.gridToVTK(filename, self.dir_coords[0,:,:,:].copy(), \ + self.dir_coords[1,:,:,:].copy(), \ + self.dir_coords[2,:,:,:].copy(), pointData=self.dir_arrs) + vtk.imageToVTK(filename, pointData=self.dir_arrs) + + def write_recipspace(self, filename, **args): + vtk.gridToVTK(filename, self.recip_coords[0,:,:,:].copy(), \ + self.recip_coords[1,:,:,:].copy(), \ + self.recip_coords[2,:,:,:].copy(), pointData=self.recip_arrs) + vtk.imageToVTK(filename, pointData=self.recip_arrs) + +def shift(arr, s0, s1, s2): + shifted = np.roll(arr, s0, axis=0) + shifted = np.roll(shifted, s1, axis=1) + return np.roll(shifted, s2, axis=2) + + +def center_of_mass(arr): + tot = np.sum(arr) + dims = arr.shape + xyz = [] + griddims = [] + for d in dims: + griddims.append(slice(0, d)) + grid = np.ogrid[griddims] + for g in grid: + xyz.append(np.sum(arr * g) / tot) + com = np.asarray(xyz) + com = np.ma.round(com).astype(np.int) + return list(com) + + +def remove_ramp(arr, ups=3): + new_shape = list(arr.shape) + # pad zeros around arr, to the size of 3 times (ups = 3) of arr size + for i in range(len(new_shape)): + new_shape[i] = ups * new_shape[i] + padded = ut.get_zero_padded_centered(arr, new_shape) + padded_f = np.fft.fftshift(np.fft.fftn(np.fft.ifftshift(padded))) + com = ndi.center_of_mass(np.power(np.abs(padded_f), 2)) + sub_pixel_shifted = ut.sub_pixel_shift(padded_f, new_shape[0]/2.0-com[0], new_shape[1]/2.0-com[1], +new_shape[2]/2.0-com[2]) + ramp_removed_padded = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(sub_pixel_shifted))) + ramp_removed = ut.crop_center(ramp_removed_padded, arr.shape) + + return ramp_removed + + + +def center(image, support): + dims = image.shape + image, support = ut.get_centered_both(image, support) + + # place center of mass image*support in the center + for ax in range(len(dims)): + com = ndi.center_of_mass(np.absolute(image) * support) + image = shift(image, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) + support = shift(support, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) + + # set center phase to zero, use as a reference + phi0 = m.atan2(image.imag[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)], image.real[int(dims[0]/2), int(dims[1]/2), +int(dims[2]/2)]) + image = image * np.exp(-1j * phi0) + + return image, support + + +def get_crop(params, shape): + crop = [] + for i in range(len(shape)): + if params.crop is None: + crop.append(shape[i]) + else: + crop.append(params.crop[i]) + if isinstance(crop[i], float): + crop[i] = int(crop[i]*shape[i]) + return crop + + +def save_CX(conf, image, support, coh, save_dir, last_scan): + image = np.swapaxes(image, 1,2) + image = np.swapaxes(image, 0,1) +# support = np.swapaxes(support, 1,2) +# support = np.swapaxes(support, 0,1) +# image, support = center(image, support) + params = DispalyParams(conf, last_scan) +# image = remove_ramp(image) + viz = CXDViz() + viz.set_array(image) + viz.set_geometry(params, image.shape) + crop = get_crop(params, image.shape) + viz.set_crop(crop[0], crop[1], crop[2]) # save image + image_file = os.path.join(save_dir, 'image') +# viz.write_structured_grid(image_file) +# viz.set_array(support) +# support_file = os.path.join(save_dir, 'support') +# viz.write_structured_grid(support_file) +# if coh is not None: +# coh = np.swapaxes(coh, 1, 2) +# # investigate if pad_center before fft or after +# coh = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(coh))).real +# coh = ut.get_zero_padded_centered(coh, image.shape) +# coh_file = os.path.join(save_dir, 'coherence') +# viz.set_array(coh) +# viz.write_structured_grid(coh_file) + +# a = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') +# remove_ramp(a, 3) + + + diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/localCXDVizNX.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/localCXDVizNX.py new file mode 100644 index 0000000..3c3cff0 --- /dev/null +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/localCXDVizNX.py @@ -0,0 +1,383 @@ +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + +import pylibconfig2 as cfg +import os +import traits.api as tr +from tvtk.api import tvtk +import numpy as np +import scipy.ndimage as ndi +import math as m +import utils as ut +import spec as sput + +__author__ = "Barbara Frosik" +__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." +__docformat__ = 'restructuredtext en' + + +class DispalyParams: + """ + This class encapsulates parameters defining image display. The parameters are read from config file on + construction + """ + + def __init__(self, config, last_scan): + """ + The constructor gets config file and fills out the class members. + + Parameters + ---------- + conf : str + configuration file name + + Returns + ------- + none + """ + if os.path.isfile(config): + with open(config, 'r') as f: + config_map = cfg.Config(f.read()) + + deg2rad = np.pi / 180.0 + try: + specfile = config_map.specfile + self.lamda, delta, gamma, dth, arm, pixel = sput.parse_spec(specfile, last_scan) + self.delta = delta * deg2rad + self.gamma = gamma * deg2rad + self.dth = dth * deg2rad + self.arm = arm / 1000 + pixel = pixel[1:-1] + pixel = pixel.split(',') + pixel[0], pixel[1] = float(pixel[0]), float(pixel[1]) + except Exception as e: + # print (str(e)) + try: + energy = config_map.energy + self.lamda = 12.398 / energy / 10 + except AttributeError: + print ('lamda not defined') + try: + self.delta = config_map.delta * deg2rad + except AttributeError: + print ('delta not defined') + try: + self.gamma = config_map.gamma * deg2rad + except AttributeError: + print ('gamma not defined') + try: + self.dth = config_map.dth * deg2rad + except AttributeError: + print ('dth not defined') + try: + self.arm = config_map.arm / 1000 + except AttributeError: + print ('arm not defined') + try: + pixel = config_map.pixel + except AttributeError: + print ('pixel not defined') + + try: + self.binning = [] + binning = config_map.binning + for i in range(len(binning)): + self.binning.append(binning[i]) + for _ in range(3 - len(self.binning)): + self.binning.append(1) + except AttributeError: + self.binning = [1,1,1] + self.dpx = pixel[0] * self.binning[0] / self.arm / self.binning[2] + self.dpy = pixel[1] * self.binning[1] / self.arm / self.binning[2] + try: + self.crop = [] + crop = config_map.crop + for i in range(len(crop)): + self.crop.append(crop[i]) + for _ in range(3 - len(self.crop)): + self.crop.append(1.0) + crop[0], crop[1] = crop[1], crop[0] + except AttributeError: + self.crop = None + + +class CXDViz(tr.HasTraits): + coords = tr.Array() + arr = tr.Array() + + cropx = tr.Int() + cropy = tr.Int() + cropz = tr.Int() + + + def __init__(self): + self.imd = tvtk.ImageData() + self.sg = tvtk.StructuredGrid() + pass + + + def set_geometry(self, params, shape): + lam = params.lamda + tth = params.delta + gam = params.gamma + dpx = params.dpx + dpy = params.dpy + dth = params.dth + dx = 1.0 / shape[0] + dy = 1.0 / shape[1] + dz = 1.0 / shape[2] + dQdpx = np.zeros(3) + dQdpy = np.zeros(3) + dQdth = np.zeros(3) + Astar = np.zeros(3) + Bstar = np.zeros(3) + Cstar = np.zeros(3) + + # dQdpx[0] = -m.cos(tth) * m.cos(gam) + # dQdpx[1] = 0.0 + # dQdpx[2] = +m.sin(tth) * m.cos(gam) + dQdpx[0] = -m.cos(tth) + dQdpx[1] = 0.0 + dQdpx[2] = +m.sin(tth) + + dQdpy[0] = m.sin(tth) * m.sin(gam) + dQdpy[1] = -m.cos(gam) + dQdpy[2] = m.cos(tth) * m.sin(gam) + + dQdth[0] = -m.cos(tth) * m.cos(gam) + 1.0 + dQdth[1] = 0.0 + dQdth[2] = m.sin(tth) * m.cos(gam) + + Astar[0] = 2 * m.pi / lam * dpx * dQdpx[0] + Astar[1] = 2 * m.pi / lam * dpx * dQdpx[1] + Astar[2] = 2 * m.pi / lam * dpx * dQdpx[2] + + Bstar[0] = (2 * m.pi / lam) * dpy * dQdpy[0] + Bstar[1] = (2 * m.pi / lam) * dpy * dQdpy[1] + Bstar[2] = (2 * m.pi / lam) * dpy * dQdpy[2] + + Cstar[0] = (2 * m.pi / lam) * dth * dQdth[0] + Cstar[1] = (2 * m.pi / lam) * dth * dQdth[1] + Cstar[2] = (2 * m.pi / lam) * dth * dQdth[2] + + print("recip", Astar) + print("recip", Bstar) + print("recip", Cstar) + denom = np.dot(Astar, np.cross(Bstar, Cstar)) + A = 2 * m.pi * np.cross(Bstar, Cstar) / denom + B = 2 * m.pi * np.cross(Cstar, Astar) / denom + C = 2 * m.pi * np.cross(Astar, Bstar) / denom + + self.T = np.zeros(9) + self.T.shape = (3, 3) + space = 'direct' + if space == 'recip': + self.T[:, 0] = Astar + self.T[:, 1] = Bstar + self.T[:, 2] = Cstar + self.dx = 1.0 + self.dy = 1.0 + self.dz = 1.0 + elif space == 'direct': + self.T = np.array((A, B, C)) + self.dx = dx + self.dy = dy + self.dz = dz + else: + pass + print("DirectSpace T",self.T) + + + def update_coords(self): + dims = list(self.arr[self.cropobj].shape) + + r = np.mgrid[(dims[0] - 1) * self.dx:-self.dx:-self.dx, \ + 0:dims[1] * self.dy:self.dy, 0:dims[2] * self.dz:self.dz] + + r.shape = 3, dims[0] * dims[1] * dims[2] + r = r.transpose() + + self.coords = np.dot(r, self.T) + + + def set_array(self, array, logentry=None): + self.arr = array + if len(self.arr.shape) < 3: + newdims = list(self.arr.shape) + for i in range(3 - len(newdims)): + newdims.append(1) + self.arr.shape = tuple(newdims) + + + def set_crop(self, cropx, cropy, cropz): + dims = list(self.arr.shape) + if len(dims) == 2: + dims.append(1) + + if dims[0] > cropx and cropx > 0: + self.cropx = cropx + else: + self.cropx = dims[0] + + if dims[1] > cropy and cropy > 0: + self.cropy = cropy + else: + self.cropy = dims[1] + + if dims[2] > cropz and cropz > 0: + self.cropz = cropz + else: + self.cropz = dims[2] + + start1 = int(dims[0]/2) - int(self.cropx/2) + end1 = int(dims[0]/2) + int(self.cropx/2) + if start1 == end1: + end1 = end1 + 1 + start2 = int(dims[1]/2) - int(self.cropy/2) + end2 = int(dims[1]/2) + int(self.cropy/2) + if start2 == end2: + end2 = end2 + 1 + start3 = int(dims[2]/2) - int(self.cropz/2) + end3 = int(dims[2]/2) + int(self.cropz/2) + if start3 == end3: + end3 = end3 + 1 + + self.cropobj = (slice(start1, end1, None), slice(start2, end2, None), + slice(start3, end3, None)) + + + def get_structured_grid(self, **args): + self.update_coords() + dims = list(self.arr[self.cropobj].shape) + self.sg.points = self.coords + if "mode" in args: + if args["mode"] == "Phase": + arr1 = self.arr[self.cropobj].ravel() + arr = (np.arctan2(arr1.imag, arr1.real)) + else: + arr = np.abs(self.arr[self.cropobj].ravel()) + else: + arr = self.arr[self.cropobj].ravel() + if (arr.dtype == np.complex128 or arr.dtype == np.complex64): + self.sg.point_data.scalars = np.abs(arr) + self.sg.point_data.scalars.name = "Amp" + ph = tvtk.DoubleArray() + ph.from_array(np.arctan2(arr.imag, arr.real)) + ph.name = "Phase" + self.sg.point_data.add_array(ph) + else: + self.sg.point_data.scalars = arr + self.sg.dimensions = (dims[2], dims[1], dims[0]) + self.sg.extent = 0, dims[2] - 1, 0, dims[1] - 1, 0, dims[0] - 1 + return self.sg + + + def write_structured_grid(self, filename, **args): + sgwriter = tvtk.StructuredGridWriter() + sgwriter.file_type = 'binary' + if filename.endswith(".vtk"): + sgwriter.file_name = filename + else: + sgwriter.file_name = filename + '.vtk' + sgwriter.set_input_data(self.get_structured_grid()) + sgwriter.write() + print ('saved file', filename) + + +def shift(arr, s0, s1, s2): + shifted = np.roll(arr, s0, axis=0) + shifted = np.roll(shifted, s1, axis=1) + return np.roll(shifted, s2, axis=2) + + +def center_of_mass(arr): + tot = np.sum(arr) + dims = arr.shape + xyz = [] + griddims = [] + for d in dims: + griddims.append(slice(0, d)) + grid = np.ogrid[griddims] + for g in grid: + xyz.append(np.sum(arr * g) / tot) + com = np.asarray(xyz) + com = np.ma.round(com).astype(np.int) + return list(com) + + +def remove_ramp(arr, ups=3): + new_shape = list(arr.shape) + # pad zeros around arr, to the size of 3 times (ups = 3) of arr size + for i in range(len(new_shape)): + new_shape[i] = ups * new_shape[i] + padded = ut.get_zero_padded_centered(arr, new_shape) + padded_f = np.fft.fftshift(np.fft.fftn(np.fft.ifftshift(padded))) + com = ndi.center_of_mass(np.power(np.abs(padded_f), 2)) + sub_pixel_shifted = ut.sub_pixel_shift(padded_f, new_shape[0]/2.0-com[0], new_shape[1]/2.0-com[1], new_shape[2]/2.0-com[2]) + ramp_removed_padded = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(sub_pixel_shifted))) + ramp_removed = ut.crop_center(ramp_removed_padded, arr.shape) + + return ramp_removed + + +def center(image, support): + dims = image.shape + image, support = ut.get_centered_both(image, support) + + # place center of mass image*support in the center + for ax in range(len(dims)): + com = ndi.center_of_mass(np.absolute(image) * support) + image = shift(image, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) + support = shift(support, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) + + # set center phase to zero, use as a reference + phi0 = m.atan2(image.imag[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)], image.real[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)]) + image = image * np.exp(-1j * phi0) + + return image, support + + +def get_crop(params, shape): + crop = [] + for i in range(len(shape)): + if params.crop is None: + crop.append(shape[i]) + else: + crop.append(params.crop[i]) + if isinstance(crop[i], float): + crop[i] = int(crop[i]*shape[i]) + return crop + + +def save_CX(conf, image, support, coh, save_dir, last_scan): + image = np.swapaxes(image, 1,2) + image = np.swapaxes(image, 0,1) +# support = np.swapaxes(support, 1,2) +# support = np.swapaxes(support, 0,1) +# image, support = center(image, support) + params = DispalyParams(conf, last_scan) +# image = remove_ramp(image) + viz = CXDViz() + viz.set_array(image) + viz.set_geometry(params, image.shape) + crop = get_crop(params, image.shape) + viz.set_crop(crop[0], crop[1], crop[2]) # save image + image_file = os.path.join(save_dir, 'image') +# viz.write_structured_grid(image_file) +# viz.set_array(support) +# support_file = os.path.join(save_dir, 'support') +# viz.write_structured_grid(support_file) +# if coh is not None: +# coh = np.swapaxes(coh, 1, 2) +# # investigate if pad_center before fft or after +# coh = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(coh))).real +# coh = ut.get_zero_padded_centered(coh, image.shape) +# coh_file = os.path.join(save_dir, 'coherence') +# viz.set_array(coh) +# viz.write_structured_grid(coh_file) + +# a = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') +# remove_ramp(a, 3) diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/prep_noconfig.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/prep_noconfig.py new file mode 100644 index 0000000..0d6cc36 --- /dev/null +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/prep_noconfig.py @@ -0,0 +1,216 @@ +import numpy as np +import copy +import scipy.fftpack as sf +import os +import glob +import tifffile as tif +#import reccdi.src_py.utilities.spec as spec +#import reccdi.src_py.utilities.utils as ut + + +def get_dir_list(scans, map): + """ + Returns list of sub-directories in data_dir with names matching range of scans + It will exclude scans within exclude_scans list if provided, and directories with fewer files than + min_files, if provided + :param scans: + :param map: + :return: + """ + try: + min_files = map.min_files + except: + min_files = 0 + try: + exclude_scans = map.exclude_scans + except: + exclude_scans = [] + try: + data_dir = map.data_dir + except: + print ('please provide data_dir') + + dirs = [] + for name in os.listdir(data_dir): + subdir = os.path.join(data_dir, name) + if os.path.isdir(subdir): + # exclude directories with fewer tif files than min_files + if len(glob.glob1(subdir, "*.tif")) < min_files and len(glob.glob1(subdir, "*.tiff")) < min_files: + continue + try: + index = int(name[-4:]) + if index >= scans[0] and index <= scans[1] and not index in exclude_scans: + dirs.append(subdir) + except: + continue + return dirs + + +def get_dark_white(darkfile, whitefile, det_area1, det_area2): + if darkfile is not None: + # find the darkfield array + dark_full = tif.imread(darkfile).astype(float) + # crop the corresponding quad or use the whole array, depending on what info was parsed from spec file + dark = dark_full[slice(det_area1[0], det_area1[1]), slice(det_area2[0], det_area2[1])] + else: + dark = None + + if whitefile is not None: + # find the whitefield array + white_full = tif.imread(whitefile).astype(float) + # crop the corresponding quad or use the whole array, depending on what info was parsed from spec file + white = white_full[slice(det_area1[0], det_area1[1]), slice(det_area2[0], det_area2[1])] + # set the bad pixels to some large value + white = np.where(white<5000, 1e20, white) #Some large value + else: + white = None + + return dark, white + + +def get_normalized_slice(file, dark, white): + # file is a tuple of slice and either background slice or None + slice = tif.TiffFile(file[0]).asarray() + if file[1] is not None: + slice = slice - tif.TiffFile(file[1]).asarray() + if dark is not None: + slice = np.where(dark > 5, 0, slice) #Ignore cosmic rays + # here would be code for correction for dead time + if white is not None: + slice = slice/white + slice *= 1e5 #Some medium value + slice = np.where(np.isnan(slice), 0, slice) + return slice + + +def read_scan(dir, dark, white): + files = [] + files_dir = {} + for file in os.listdir(dir): + if file.endswith('tif') or file.endswith('tiff'): + temp = file.split('.') + #it's assumed that the files end with four digits and 'tif' or 'tiff' extension + key = temp[0][-4:] + files_dir[key] = file + + ordered_keys = sorted(list(files_dir.keys())) + + for key in ordered_keys: + file = files_dir[key] + file = os.path.join(dir, file) + bg_file = file.replace('.tif', '_bg.tif') + if not os.path.isfile(bg_file): + bg_file = None + + files.append((file, bg_file)) + + # look at slice0 to find out shape + n = 0 + slice0 = get_normalized_slice(files[n], dark, white).transpose() + shape = (slice0.shape[0], slice0.shape[1], len(files)) + arr = np.zeros(shape, dtype=slice0.dtype) + arr[:,:,0] = slice0 + print("slice shape",slice0.shape) + + #for i in range (1, len(files)): + for file in files[1:]: + n = n + 1 + slice = get_normalized_slice(file, dark, white).transpose() + arr[:,:,n] = slice + return arr + + +def shift(arr, shifty): + # pass the FT of the fftshifted array you want to shift + # you get back the actual array, not the FT. + dims = arr.shape + # scipy does normalize ffts! + ftarr = sf.fftn(arr) + r=[] + for d in dims: + r.append(slice(int(np.ceil(-d/2.)), int(np.ceil(d/2.)), None)) + idxgrid = np.mgrid[r] + for d in range(len(dims)): + ftarr *= np.exp(-1j*2*np.pi*shifty[d]*sf.fftshift(idxgrid[d])/float(dims[d])) + + shiftedarr = sf.ifftn(ftarr) + return shiftedarr + + +def combine_part(part_f, slice_sum, refpart, part): + # get cross correlation and pixel shift + cross_correlation = sf.ifftn(refpart*np.conj(part_f)) + corelated = np.array(cross_correlation.shape) + amp = np.abs(cross_correlation) + intshift = np.unravel_index(amp.argmax(), corelated) + shifted = np.array(intshift) + pixelshift = np.where(shifted>=corelated/2, shifted-corelated, shifted) + return slice_sum + shift(part, pixelshift) + + +def fit(arr, det_area1, det_area2): + # if the full sensor was used for the image (i.e. the data size is 512x512) + # the quadrants need to be shifted + if det_area1[0] == 0 and det_area1[1] == 512 and det_area1[0] == 0 and det_area2[1] == 512: + b = np.zeros((arr.shape[0],517,516),float) + b[:,:256,:256] = arr[:,:256,:256] #Quad top left unchanged + b[:,:256,260:] = arr[:,:256,256:] #Quad top right moved 4 right + b[:,261:,:256] = arr[:,256:,:256] #Quad bot left moved 6 down + b[:,261:,260:] = arr[:,256:,256:] #Quad bot right + else: + b = arr + return b + + +def prep_data(experiment_dir, scans, map, det_area1, det_area2, *args): + if scans is None: + print ('scan info not provided') + return + + # build sub-directories map + if len(scans) == 1: + scans.append(scans[0]) + dirs = get_dir_list(scans, map) + + try: + whitefile = map.whitefile + except: + whitefile = None + + try: + darkfile = map.darkfile + except: + darkfile = None + + dark, white = get_dark_white(darkfile, whitefile, det_area1, det_area2) + + if len(dirs) == 0: + print ('there are no data directories for given scans') + return + + if len(dirs) == 1: + arr = read_scan(dirs[0], dark, white) + else: + # make the first part a reference + part = read_scan(dirs[0], dark, white) + slice_sum = np.abs(copy.deepcopy(part)) + refpart = sf.fftn(part) + for i in range (1, len(dirs)): + #this will load scans from each directory into an array part + part = read_scan(dirs[i], dark, white) + # add the arrays together + part_f = sf.fftn(part) + slice_sum = combine_part(part_f, slice_sum, refpart, part) + arr = np.abs(slice_sum).astype(np.int32) + + arr = fit(arr, det_area1, det_area2) + + #create directory to save prepared data ,/prep + prep_data_dir = os.path.join(experiment_dir, 'prep') + if not os.path.exists(prep_data_dir): + os.makedirs(prep_data_dir) + data_file = os.path.join(prep_data_dir, 'prep_data.tif') + + ut.save_tif(arr, data_file) + print ('done with prep, shape:', arr.shape) + diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/pyevtktest.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/pyevtktest.py new file mode 100644 index 0000000..92d80a9 --- /dev/null +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/pyevtktest.py @@ -0,0 +1,42 @@ +#! /usr/bin/env python + +# ************************************************************** +# * Example of how to use the high level gridToVTK function. * +# * This example shows how to export a structured grid. * +# ************************************************************** + +from pyevtk.hl import gridToVTK +import numpy as np +import random as rnd + +# Dimensions +nx, ny, nz = 10, 5, 2 +lx, ly, lz = 10.0, 5.0, 1.0 +dx, dy, dz = lx/nx, ly/ny, lz/nz + +ncells = nx * ny * nz +npoints = (nx + 1) * (ny + 1) * (nz + 1) + +# Coordinates +X = np.arange(0, lx + 0.1*dx, dx, dtype='float64') +Y = np.arange(0, ly + 0.1*dy, dy, dtype='float64') +Z = np.arange(0, lz + 0.1*dz, dz, dtype='float64') + +x = np.zeros((nx + 1, ny + 1, nz + 1)) +y = np.zeros((nx + 1, ny + 1, nz + 1)) +z = np.zeros((nx + 1, ny + 1, nz + 1)) + +# We add some random fluctuation to make the grid +# more interesting +for k in range(nz + 1): + for j in range(ny + 1): + for i in range(nx + 1): + x[i,j,k] = X[i] + y[i,j,k] = Y[j] + z[i,j,k] = Z[k] + +# Variables +#pressure = np.random.rand(ncells).reshape( (nx, ny, nz)) +#temp = np.random.rand(npoints).reshape( (nx + 1, ny + 1, nz + 1)) + +#gridToVTK("./structured", x, y, z, cellData = {"pressure" : pressure}, pointData = {"temp" : temp}) diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/rec_disp.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/rec_disp.py new file mode 100644 index 0000000..0aa4d8d --- /dev/null +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/rec_disp.py @@ -0,0 +1,379 @@ +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + +import pylibconfig2 as cfg +import os +import traits.api as tr +from tvtk.api import tvtk +import numpy as np +import scipy.ndimage as ndi +import math as m +import reccdi.src_py.utilities.utils as ut +import reccdi.src_py.utilities.spec as sput + +__author__ = "Barbara Frosik" +__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." +__docformat__ = 'restructuredtext en' + + +class DispalyParams: + """ + This class encapsulates parameters defining image display. The parameters are read from config file on + construction + """ + + def __init__(self, config, last_scan): + """ + The constructor gets config file and fills out the class members. + + Parameters + ---------- + conf : str + configuration file name + + Returns + ------- + none + """ + if os.path.isfile(config): + with open(config, 'r') as f: + config_map = cfg.Config(f.read()) + + deg2rad = np.pi / 180.0 + try: + specfile = config_map.specfile + self.lamda, delta, gamma, dth, arm, pixel = sput.parse_spec(specfile, last_scan) + self.delta = delta * deg2rad + self.gamma = gamma * deg2rad + self.dth = dth * deg2rad + self.arm = arm / 1000 + pixel = pixel[1:-1] + pixel = pixel.split(',') + pixel[0], pixel[1] = float(pixel[0]), float(pixel[1]) + except Exception as e: + # print (str(e)) + try: + energy = config_map.energy + self.lamda = 12.398 / energy / 10 + except AttributeError: + print ('lamda not defined') + try: + self.delta = config_map.delta * deg2rad + except AttributeError: + print ('delta not defined') + try: + self.gamma = config_map.gamma * deg2rad + except AttributeError: + print ('gamma not defined') + try: + self.dth = config_map.dth * deg2rad + except AttributeError: + print ('dth not defined') + try: + self.arm = config_map.arm / 1000 + except AttributeError: + print ('arm not defined') + try: + pixel = config_map.pixel + except AttributeError: + print ('pixel not defined') + + try: + self.binning = [] + binning = config_map.binning + for i in range(len(binning)): + self.binning.append(binning[i]) + for _ in range(3 - len(self.binning)): + self.binning.append(1) + except AttributeError: + self.binning = [1,1,1] + self.dpx = pixel[0] * self.binning[0] / self.arm / self.binning[2] + self.dpy = pixel[1] * self.binning[1] / self.arm / self.binning[2] + try: + self.crop = [] + crop = config_map.crop + for i in range(len(crop)): + self.crop.append(crop[i]) + for _ in range(3 - len(self.crop)): + self.crop.append(1.0) + crop[0], crop[1] = crop[1], crop[0] + except AttributeError: + self.crop = None + + +class CXDViz(tr.HasTraits): + coords = tr.Array() + arr = tr.Array() + + cropx = tr.Int() + cropy = tr.Int() + cropz = tr.Int() + + + def __init__(self): + self.imd = tvtk.ImageData() + self.sg = tvtk.StructuredGrid() + pass + + + def set_geometry(self, params, shape): + lam = params.lamda + tth = params.delta + gam = params.gamma + dpx = params.dpx + dpy = params.dpy + dth = params.dth + dx = 1.0 / shape[0] + dy = 1.0 / shape[1] + dz = 1.0 / shape[2] + dQdpx = np.zeros(3) + dQdpy = np.zeros(3) + dQdth = np.zeros(3) + Astar = np.zeros(3) + Bstar = np.zeros(3) + Cstar = np.zeros(3) + + # dQdpx[0] = -m.cos(tth) * m.cos(gam) + # dQdpx[1] = 0.0 + # dQdpx[2] = +m.sin(tth) * m.cos(gam) + dQdpx[0] = -m.cos(tth) + dQdpx[1] = 0.0 + dQdpx[2] = +m.sin(tth) + + dQdpy[0] = m.sin(tth) * m.sin(gam) + dQdpy[1] = -m.cos(gam) + dQdpy[2] = m.cos(tth) * m.sin(gam) + + dQdth[0] = -m.cos(tth) * m.cos(gam) + 1.0 + dQdth[1] = 0.0 + dQdth[2] = m.sin(tth) * m.cos(gam) + + Astar[0] = 2 * m.pi / lam * dpx * dQdpx[0] + Astar[1] = 2 * m.pi / lam * dpx * dQdpx[1] + Astar[2] = 2 * m.pi / lam * dpx * dQdpx[2] + + Bstar[0] = (2 * m.pi / lam) * dpy * dQdpy[0] + Bstar[1] = (2 * m.pi / lam) * dpy * dQdpy[1] + Bstar[2] = (2 * m.pi / lam) * dpy * dQdpy[2] + + Cstar[0] = (2 * m.pi / lam) * dth * dQdth[0] + Cstar[1] = (2 * m.pi / lam) * dth * dQdth[1] + Cstar[2] = (2 * m.pi / lam) * dth * dQdth[2] + + denom = np.dot(Astar, np.cross(Bstar, Cstar)) + A = 2 * m.pi * np.cross(Bstar, Cstar) / denom + B = 2 * m.pi * np.cross(Cstar, Astar) / denom + C = 2 * m.pi * np.cross(Astar, Bstar) / denom + + self.T = np.zeros(9) + self.T.shape = (3, 3) + space = 'direct' + if space == 'recip': + self.T[:, 0] = Astar + self.T[:, 1] = Bstar + self.T[:, 2] = Cstar + self.dx = 1.0 + self.dy = 1.0 + self.dz = 1.0 + elif space == 'direct': + self.T = np.array((A, B, C)) + self.dx = dx + self.dy = dy + self.dz = dz + else: + pass + + + def update_coords(self): + dims = list(self.arr[self.cropobj].shape) + + r = np.mgrid[(dims[0] - 1) * self.dx:-self.dx:-self.dx, \ + 0:dims[1] * self.dy:self.dy, 0:dims[2] * self.dz:self.dz] + + r.shape = 3, dims[0] * dims[1] * dims[2] + r = r.transpose() + + self.coords = np.dot(r, self.T) + + + def set_array(self, array, logentry=None): + self.arr = array + if len(self.arr.shape) < 3: + newdims = list(self.arr.shape) + for i in range(3 - len(newdims)): + newdims.append(1) + self.arr.shape = tuple(newdims) + + + def set_crop(self, cropx, cropy, cropz): + dims = list(self.arr.shape) + if len(dims) == 2: + dims.append(1) + + if dims[0] > cropx and cropx > 0: + self.cropx = cropx + else: + self.cropx = dims[0] + + if dims[1] > cropy and cropy > 0: + self.cropy = cropy + else: + self.cropy = dims[1] + + if dims[2] > cropz and cropz > 0: + self.cropz = cropz + else: + self.cropz = dims[2] + + start1 = int(dims[0]/2) - int(self.cropx/2) + end1 = int(dims[0]/2) + int(self.cropx/2) + if start1 == end1: + end1 = end1 + 1 + start2 = int(dims[1]/2) - int(self.cropy/2) + end2 = int(dims[1]/2) + int(self.cropy/2) + if start2 == end2: + end2 = end2 + 1 + start3 = int(dims[2]/2) - int(self.cropz/2) + end3 = int(dims[2]/2) + int(self.cropz/2) + if start3 == end3: + end3 = end3 + 1 + + self.cropobj = (slice(start1, end1, None), slice(start2, end2, None), + slice(start3, end3, None)) + + + def get_structured_grid(self, **args): + self.update_coords() + dims = list(self.arr[self.cropobj].shape) + self.sg.points = self.coords + if "mode" in args: + if args["mode"] == "Phase": + arr1 = self.arr[self.cropobj].ravel() + arr = (np.arctan2(arr1.imag, arr1.real)) + else: + arr = np.abs(self.arr[self.cropobj].ravel()) + else: + arr = self.arr[self.cropobj].ravel() + if (arr.dtype == np.complex128 or arr.dtype == np.complex64): + self.sg.point_data.scalars = np.abs(arr) + self.sg.point_data.scalars.name = "Amp" + ph = tvtk.DoubleArray() + ph.from_array(np.arctan2(arr.imag, arr.real)) + ph.name = "Phase" + self.sg.point_data.add_array(ph) + else: + self.sg.point_data.scalars = arr + self.sg.dimensions = (dims[2], dims[1], dims[0]) + self.sg.extent = 0, dims[2] - 1, 0, dims[1] - 1, 0, dims[0] - 1 + return self.sg + + + def write_structured_grid(self, filename, **args): + sgwriter = tvtk.StructuredGridWriter() + sgwriter.file_type = 'binary' + if filename.endswith(".vtk"): + sgwriter.file_name = filename + else: + sgwriter.file_name = filename + '.vtk' + sgwriter.set_input_data(self.get_structured_grid()) + sgwriter.write() + print ('saved file', filename) + + +def shift(arr, s0, s1, s2): + shifted = np.roll(arr, s0, axis=0) + shifted = np.roll(shifted, s1, axis=1) + return np.roll(shifted, s2, axis=2) + + +def center_of_mass(arr): + tot = np.sum(arr) + dims = arr.shape + xyz = [] + griddims = [] + for d in dims: + griddims.append(slice(0, d)) + grid = np.ogrid[griddims] + for g in grid: + xyz.append(np.sum(arr * g) / tot) + com = np.asarray(xyz) + com = np.ma.round(com).astype(np.int) + return list(com) + + +def remove_ramp(arr, ups=3): + new_shape = list(arr.shape) + # pad zeros around arr, to the size of 3 times (ups = 3) of arr size + for i in range(len(new_shape)): + new_shape[i] = ups * new_shape[i] + padded = ut.get_zero_padded_centered(arr, new_shape) + padded_f = np.fft.fftshift(np.fft.fftn(np.fft.ifftshift(padded))) + com = ndi.center_of_mass(np.power(np.abs(padded_f), 2)) + sub_pixel_shifted = ut.sub_pixel_shift(padded_f, new_shape[0]/2.0-com[0], new_shape[1]/2.0-com[1], new_shape[2]/2.0-com[2]) + ramp_removed_padded = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(sub_pixel_shifted))) + ramp_removed = ut.crop_center(ramp_removed_padded, arr.shape) + + return ramp_removed + + +def center(image, support): + dims = image.shape + image, support = ut.get_centered_both(image, support) + + # place center of mass image*support in the center + for ax in range(len(dims)): + com = ndi.center_of_mass(np.absolute(image) * support) + image = shift(image, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) + support = shift(support, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) + + # set center phase to zero, use as a reference + phi0 = m.atan2(image.imag[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)], image.real[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)]) + image = image * np.exp(-1j * phi0) + + return image, support + + +def get_crop(params, shape): + crop = [] + for i in range(len(shape)): + if params.crop is None: + crop.append(shape[i]) + else: + crop.append(params.crop[i]) + if isinstance(crop[i], float): + crop[i] = int(crop[i]*shape[i]) + return crop + + +def save_CX(conf, image, support, coh, save_dir, last_scan): + image = np.swapaxes(image, 1,2) + image = np.swapaxes(image, 0,1) + support = np.swapaxes(support, 1,2) + support = np.swapaxes(support, 0,1) + image, support = center(image, support) + params = DispalyParams(conf, last_scan) + image = remove_ramp(image) + viz = CXDViz() + viz.set_array(image) + viz.set_geometry(params, image.shape) + crop = get_crop(params, image.shape) + viz.set_crop(crop[0], crop[1], crop[2]) # save image + image_file = os.path.join(save_dir, 'image') + viz.write_structured_grid(image_file) + viz.set_array(support) + support_file = os.path.join(save_dir, 'support') + viz.write_structured_grid(support_file) + if coh is not None: + coh = np.swapaxes(coh, 1, 2) + # investigate if pad_center before fft or after + coh = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(coh))).real + coh = ut.get_zero_padded_centered(coh, image.shape) + coh_file = os.path.join(save_dir, 'coherence') + viz.set_array(coh) + viz.write_structured_grid(coh_file) + +# a = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') +# remove_ramp(a, 3) diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/run_disp.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/run_disp.py new file mode 100644 index 0000000..b4298d8 --- /dev/null +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/run_disp.py @@ -0,0 +1,176 @@ +import reccdi.src_py.utilities.viz_util_xu as vu +import reccdi.src_py.utilities.utils as ut +import reccdi.src_py.utilities.parse_ver as ver +import argparse +import sys +import os +import numpy as np +from multiprocessing import Pool + + +def save_CX(conf, image, support, coh, save_dir, last_scan): + image = np.swapaxes(image, 1,2) + image = np.swapaxes(image, 0,1) +# support = np.swapaxes(support, 1,2) +# support = np.swapaxes(support, 0,1) +# image, support = center(image, support) + params = vu.DispalyParams(conf, last_scan) +# image = remove_ramp(image) + viz = vu.CXDViz() + viz.set_geometry(params, image.shape) + crop = get_crop(params, image.shape) + #viz.set_crop(crop[0], crop[1], crop[2]) # save image + + viz.add_array(np.abs(image), "imAmp", space='direct') + viz.add_array(np.angle(image), "imPh", space='direct') + image_file = os.path.join(save_dir, 'image') + #viz.write_structured_grid(image_file) + viz.write_directspace(image_file) + viz.clear_direct_arrays() + + viz.add_array(support, "support", space='direct') + support_file = os.path.join(save_dir, 'support') + #viz.write_structured_grid(support_file) + viz.write_directspace(support_file) + viz.clear_direct_arrays() + + if coh is not None: + coh = np.swapaxes(coh, 1, 2) + # investigate if pad_center before fft or after + coh = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(coh))).real + coh = ut.get_zero_padded_centered(coh, image.shape) + coh_file = os.path.join(save_dir, 'coherence') + viz.add_array(np.abs(coh), 'cohAmp', space='direct') + viz.add_array(np.angle(coh), 'cohPh', space='direct') + #viz.write_structured_grid(coh_file) + viz.write_directspace(coh_file) + viz.clear_direct_arrays() + +# a = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') +# remove_ramp(a, 3) + +def save_vtk(res_dir_conf): + (res_dir, conf) = res_dir_conf + try: + imagefile = os.path.join(res_dir, 'image.npy') + image = np.load(imagefile) + except: + print ('cannot load "image.npy" file') + return + + try: + supportfile = os.path.join(res_dir, 'support.npy') + support = np.load(supportfile) + except: + print ('support file is missing in ' + res_dir + ' directory') + return + + try: + reciprocalfile = os.path.join(res_dir, 'reciprocal.npy') + reciprocal = np.load(reciprocalfile) + # reciprocal is saved as tif file, so no need to pass it to cx module + # saving amp, phase, and square of modulus in tif format + reciprocal_amp = np.absolute(reciprocal) + reciprocal_phase = np.angle(reciprocal) + reciprocal_sq_mod = np.power(reciprocal_amp, 2) + + ut.save_tif(reciprocal_amp, os.path.join(res_dir, 'reciprocal_amp.tif')) + ut.save_tif(reciprocal_phase, os.path.join(res_dir, 'reciprocal_phase.tif')) + ut.save_tif(reciprocal_sq_mod, os.path.join(res_dir, 'reciprocal_sq_mod.tif')) + except: + print ('info: cannot save reciprocal space') + + cohfile = os.path.join(res_dir, 'coherence.npy') + if os.path.isfile(cohfile): + coh = np.load(cohfile) + save_CX(conf, image, support, coh, res_dir) + else: + save_CX(conf, image, support, None, res_dir) + + +def to_vtk(experiment_dir, results_dir=None): + if not os.path.isdir(experiment_dir): + print("Please provide a valid experiment directory") + return + conf_dir = os.path.join(experiment_dir, 'conf') + conf = os.path.join(conf_dir, 'config_disp') + # verify configuration file + if not ver.ver_config_disp(conf): + print ('incorrect configuration file ' + conf +', cannot parse') + return + + # parse the conf once here and save it in dictionary, it will apply to all images in the directory tree + conf_dict = {} + try: + conf_map = ut.read_config(conf) + items = conf_map.items() + for item in items: + conf_dict[item[0]] = item[1] + except: + print('cannot parse configuration file ' + conf) + return + + # get last scan from the config file and add it to conf_dict + last_scan = None + main_conf = os.path.join(conf_dir, 'config') + if os.path.isfile(main_conf): + try: + config_map = ut.read_config(main_conf) + scan = config_map.scan + last_scan = scan.split('-')[-1] + conf_dict['last_scan'] = int(last_scan) + except: + print ("info: scan not determined, can't read " + conf + " configuration file") + + # get binning from the config_data file and add it to conf_dict + binning = None + data_conf = os.path.join(conf_dir, 'config_data') + if os.path.isfile(data_conf): + try: + conf_map = ut.read_config(data_conf) + conf_dict['binning'] = conf_map.binning + except: + pass + + no_gpus = 1 + rec_conf = os.path.join(conf_dir, 'config_rec') + if os.path.isfile(rec_conf): + try: + conf_map = ut.read_config(rec_conf) + device = conf_map.device + no_gpus = len(device) + except: + pass + + if results_dir is None: + results_dir = experiment_dir + # find directories with image.npy file + dirs = [] + for (dirpath, dirnames, filenames) in os.walk(results_dir): + for file in filenames: + print("file", file) + if file.endswith('image.npy'): + dirs.append((dirpath, conf_dict)) + + with Pool(processes = no_gpus) as pool: + pool.map_async(save_vtk, dirs) + pool.close() + pool.join() + + +def main(arg): + print ('preparing display') + parser = argparse.ArgumentParser() + parser.add_argument("experiment_dir", help="experiment directory") + parser.add_argument("--results_dir", help="directory in experiment that has a tree (or leaf) with reconstruction results which will be visualized") + args = parser.parse_args() + experiment_dir = args.experiment_dir + if args.results_dir: + to_vtk(experiment_dir, args.results_dir) + else: + to_vtk(experiment_dir) + +if __name__ == "__main__": + main(sys.argv[1:]) + +#python run_disp.py experiment_dir diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/simple.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/simple.py new file mode 100644 index 0000000..41ce888 --- /dev/null +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/simple.py @@ -0,0 +1,20 @@ +#! /usr/bin/env python +from pyevtk.hl import gridToVTK +import numpy as np + +# Dimensions +nx, ny, nz = 11, 11, 11 + +X = np.linspace(1., -1., nx) +Y = np.linspace(-1., 1., ny) +Z = np.linspace(-1., 1., nz) + +x, y, z = np.meshgrid(X, Y, Z, indexing='ij') + +r = np.sqrt(x**2 + y**2 + z**2) + +gridToVTK('./structured', x, y, z, pointData={'r': r, 'x': x}) + +r = 1.-np.sqrt(x**2 + y**2 + z**2) + +gridToVTK('./structured2', x, y, z, pointData={'r': r, 'x': x}) diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/tools.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/tools.py new file mode 100644 index 0000000..aa13a3b --- /dev/null +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/tools.py @@ -0,0 +1,537 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + +""" +Please make sure the installation :ref:`pre-requisite-reference-label` are met. +This module is a suite of utility mehods. +""" + +import tifffile as tf +import numpy as np +import os +import logging +import stat + +__author__ = "Barbara Frosik" +__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." +__docformat__ = 'restructuredtext en' +__all__ = ['read_tif', + 'get_opencl_dim', + 'binning', + 'get_centered', + 'adjust_dimensions', + 'crop_center', + 'flip'] + + +def get_logger(name, ldir=''): + logger = logging.getLogger(name) + logger.setLevel(logging.DEBUG) + log_file = os.path.join(ldir, 'default.log') + fh = logging.FileHandler(log_file) + fh.setLevel(logging.DEBUG) + formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') + fh.setFormatter(formatter) + logger.addHandler(fh) + return logger + + +def read_tif(filename): + """ + This method reads tif type file containing experiment data and returns the data as array. + Parameters + ---------- + filename : str + a filename containing the experiment data + Returns + ------- + data : array + an array containing the experiment data + """ + + ar = tf.imread(filename) + ar = np.swapaxes(ar, 0, 2) +# ar = np.swapaxes(ar, 0, 1) + return ar + + +def save_tif(arr, tif_file): + arr = np.swapaxes(arr, 0, 2) + arr = np.swapaxes(arr, 1, 2) + tf.imsave(tif_file, arr.astype(np.int32)) + + +def get_good_dim(dim): + """ + This function calculates the dimension supported by opencl library (i.e. is multiplier of 2,3, or 5) and is closest to the + given starting dimension, and spaced by the given step. + If the dimension is not supported the function adds step value and verifies the new dimension. It iterates until it finds + supported value. + Parameters + ---------- + dim : int + a dimension that needs to be tranformed to one that is supported by the opencl library, if it is not already + + step : int + a delta to increase the dimension + Returns + ------- + dim : int + a dimension that is supported by the opencl library, and closest to the original dimension by n*step + """ + + def is_correct(x): + sub = x + if sub % 3 == 0: + sub = sub / 3 + if sub % 3 == 0: + sub = sub / 3 + if sub % 5 == 0: + sub = sub / 5 + while sub % 2 == 0: + sub = sub / 2 + return sub == 1 + + new_dim = dim + if new_dim % 2 == 1: + new_dim += 1 + while not is_correct(new_dim): + new_dim += 2 + return new_dim + + +def get_opencl_dim1(dim, step): + """ + This function calculates the dimension supported by opencl library (i.e. is multiplier of 2,3, or 5) and is closest to the + given starting dimension, and spaced by the given step. + If the dimension is not supported the function adds step value and verifies the new dimension. It iterates until it finds + supported value. + Parameters + ---------- + dim : int + a dimension that needs to be tranformed to one that is supported by the opencl library, if it is not already + + step : int + a delta to increase the dimension + Returns + ------- + dim : int + a dimension that is supported by the opencl library, and closest to the original dimension by n*step + """ + + def is_correct(x): + sub = x + while sub % 2 == 0: + sub = sub / 2 + while sub % 3 == 0: + sub = sub / 3 + while sub % 5 == 0: + sub = sub / 5 + return sub == 1 + + new_dim = dim + while not is_correct(new_dim): + new_dim += step + return new_dim + + +def binning(array, binsizes): + """ + This function does the binning of the array. The array is binned in each dimension by the corresponding binsizes elements. + If binsizes list is shorter than the array dimensions, the remaining dimensions are not binned. The elements in + a bucket are summed. + Parameters + ---------- + array : array + the original array to be binned + + binsizes : list + a list defining binning buckets for corresponding dimensions + Returns + ------- + array : array + the binned array + """ + + data_dims = array.shape + # trim array + for ax in range(len(binsizes)): + cut_slices = range(data_dims[ax] - data_dims[ax] % binsizes[ax], data_dims[ax]) + array = np.delete(array, cut_slices, ax) + + binned_array = array + new_shape = list(array.shape) + + for ax in range(len(binsizes)): + if binsizes[ax] > 1: + new_shape[ax] = binsizes[ax] + new_shape.insert(ax, int(array.shape[ax] / binsizes[ax])) + binned_array = np.reshape(binned_array, tuple(new_shape)) + binned_array = np.sum(binned_array, axis=ax + 1) + new_shape = list(binned_array.shape) + return binned_array + + +# ar = np.asarray([1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9]) +# ar.resize((5,9)) +# print ('ar', ar) +# b = binning(ar, (2,2)) +# print ('b',b) +# c = binning1(ar,(2,2)) +# print ('c',c) + + +def get_centered(arr, center_shift): + """ + This function finds a greatest value in the array, and puts it in a center of a new array. If center_shift is + not zeros, the array will be shifted accordingly. The shifted elements are rolled into the other end of array. + Parameters + ---------- + arr : array + the original array to be centered + center_shift : list + a list defining shift of the center + Returns + ------- + array : array + the centered array + """ + max_coordinates = list(np.unravel_index(np.argmax(arr), arr.shape)) + max_coordinates = np.add(max_coordinates, center_shift) + shape = arr.shape + centered = arr + for i in range(len(max_coordinates)): + centered = np.roll(centered, int(shape[i] / 2) - max_coordinates[i], i) + + return centered + + +def get_centered_both(arr, support): + """ + This function finds a greatest value in the array, and puts it in a center of a new array. If center_shift is + not zeros, the array will be shifted accordingly. The shifted elements are rolled into the other end of array. + Parameters + ---------- + arr : array + the original array to be centered + support : array + the associated array shifted the same way centered array is + Returns + ------- + centered : array + the centered array + """ + max_coordinates = list(np.unravel_index(np.argmax(arr), arr.shape)) + shape = arr.shape + centered = arr + centered_supp = support + for i in range(len(max_coordinates)): + centered = np.roll(centered, int(shape[i] / 2) - max_coordinates[i], i) + centered_supp = np.roll(centered_supp, int(shape[i] / 2) - max_coordinates[i], i) + + return centered, centered_supp + + +def get_zero_padded_centered(arr, new_shape): + """ + This function pads the array with zeros to the new shape with the array in the center. + Parameters + ---------- + arr : array + the original array to be padded and centered + new_shape : tuple + a list of new dimensions + Returns + ------- + array : array + the zero padded centered array + """ + shape = arr.shape + pad = [] + c_vals = [] + for i in range(len(new_shape)): + pad.append((0, new_shape[i] - shape[i])) + c_vals.append((0.0, 0.0)) + arr = np.lib.pad(arr, (pad), 'constant', constant_values=c_vals) + + centered = arr + for i in range(len(new_shape)): + centered = np.roll(centered, int((new_shape[i] - shape[i] + 1) / 2), i) + + return centered + + +def adjust_dimensions(arr, pads): + """ + This function adds to or subtracts from each dimension of the array elements defined by pad. If the pad is positive, + the array is padded in this dimension. If the pad is negative, the array is cropped. + The dimensions of the new array are supported by the opencl library. + Parameters + ---------- + arr : array + the array to pad/crop + pad : list + list of three pad values, for each dimension + Returns + ------- + array : array + the padded/cropped array + """ + # logger = get_logger('adjust_dimensions') + old_dims = arr.shape + start = [] + stop = [] + for i in range(len(old_dims)): + pad = pads[i] + first = max(0, -pad[0]) + last = old_dims[i] - max(0, -pad[1]) + if first >= last: + print ('the crop exceeds size, please change the crop and run again') + return None + else: + start.append(first) + stop.append(last) + + cropped = arr[ start[0]:stop[0], start[1]:stop[1], start[2]:stop[2] ] + # logger.info('cutting from to ' + str(crop[0]) + ', ' + str(old_dims[0]-crop[1]) + ', ' + str(crop[2]) + ', ' \ + # + str(old_dims[1]-crop[3]) + ', ' + str(crop[4]) + ', ' + str(old_dims[2]-crop[5])) + dims = cropped.shape + c_vals = [] + new_pad = [] + for i in range(len(dims)): + pad = pads[i] + # find a good dimension and find padding + temp_dim = old_dims[i] + pad[0] + pad[1] + new_dim = get_good_dim(temp_dim) + added = new_dim - temp_dim + # if the pad is positive + pad_front = max(0, pad[0]) + int(added / 2) + pad_end = new_dim - dims[i] - pad_front + new_pad.append((pad_front, pad_end)) + c_vals.append((0.0, 0.0)) + adjusted = np.pad(cropped, new_pad, 'constant', constant_values=c_vals) + + # logger.info('pads ' + str(new_pad[0]) + ', ' + str(new_pad[1]) + ', ' + str(new_pad[2]) + ', ' + str(new_pad[3]) \ + # + ', ' + str(new_pad[4]) + ', ' + str(new_pad[5])) + # logger.info('old dim, new dim (' + str(dims[0]) + ',' + str(dims[1]) + ',' + str(dims[2]) + ') (' + str(arr.shape[0]) +\ + # ',' + str(arr.shape[1]) + ',' + str(arr.shape[1]) + ')') + + return adjusted + +# ar = np.zeros((256,256,90)) +# pads = (-100,-100,0,0,0,0) +# ar = np.zeros((81,256,256)) +# pads = (5,-7,-20,-30,4,-20) +# arr = adjust_dimensions(ar,pads) +# print (arr.shape) + +def crop_center(arr, new_size): + size = arr.shape + cropped = arr + for i in range(len(size)): + crop_front = int((size[i] - new_size[i]) / 2) + crop_end = crop_front + new_size[i] + splitted = np.split(cropped, [crop_front, crop_end], axis=i) + cropped = splitted[1] + + return cropped + + +# ar = np.zeros((81,256,256)) +# new_size = (40, 200,100) +# arr = crop_center(ar,new_size) +# print (arr.shape) + +def get_norm(arr): + return sum(sum(sum(abs(arr) ** 2))) + + +def flip(m, axis): + """ + Copied from numpy 1.12.0. + """ + if not hasattr(m, 'ndim'): + m = np.asarray(m) + indexer = [slice(None)] * m.ndim + try: + indexer[axis] = slice(None, None, -1) + except IndexError: + raise ValueError("axis=%i is invalid for the %i-dimensional input array" + % (axis, m.ndim)) + return m[tuple(indexer)] + + +def gaussian(shape, sigmas, alpha=1): + grid = np.full(shape, 1.0) + for i in range(len(shape)): + # prepare indexes for tile and transpose + tile_shape = list(shape) + tile_shape.pop(i) + tile_shape.append(1) + trans_shape = list(range(len(shape) - 1)) + trans_shape.insert(i, len(shape) - 1) + + multiplier = - 0.5 * alpha / pow(sigmas[i], 2) + line = np.linspace(-(shape[i] - 1) / 2.0, (shape[i] - 1) / 2.0, shape[i]) + gi = np.tile(line, tile_shape) + gi = np.transpose(gi, tuple(trans_shape)) + exponent = np.power(gi, 2) * multiplier + gi = np.exp(exponent) + grid = grid * gi + + grid_total = np.sum(grid) + return grid / grid_total + + +def gauss_conv_fft(arr, sigmas): + arr_sum = np.sum(abs(arr)) + arr_f = np.fft.ifftshift(np.fft.fftn(np.fft.ifftshift(arr))) + shape = list(arr.shape) + for i in range(len(sigmas)): + sigmas[i] = shape[i] / 2.0 / np.pi / sigmas[i] + convag = arr_f * gaussian(shape, sigmas) + convag = np.fft.ifftshift(np.fft.ifftn(np.fft.ifftshift(convag))) + convag = convag.real + convag = np.clip(convag, 0, None) + correction = arr_sum / np.sum(convag) + convag *= correction + return convag + + +def shrink_wrap(arr, threshold, sigma, type='gauss'): + sigmas = [sigma] * len(arr.shape) + if type == 'gauss': + convag = gauss_conv_fft(abs(arr), sigmas) + max_convag = np.amax(convag) + convag = convag / max_convag + support = np.where(convag >= threshold, 1, 0) + return support + else: + return None + + +def read_results(read_dir): + try: + imagefile = os.path.join(read_dir, 'image.npy') + image = np.load(imagefile) + + supportfile = os.path.join(read_dir, 'support.npy') + support = np.load(supportfile) + + try: + cohfile = os.path.join(read_dir, 'coherence.npy') + coh = np.load(cohfile) + except: + coh = None + except: + pass + + return image, support, coh + + +def save_metrics(errs, dir, metrics=None): + metric_file = os.path.join(dir, 'summary') + if os.path.isfile(metric_file): + os.remove(metric_file) + with open(metric_file, 'a') as f: + if metrics is not None: + f.write('metric result\n') + for key in metrics: + value = metrics[key] + f.write(key + ' = ' + str(value) + '\n') + f.write('\nerrors by iteration\n') + for er in errs: + f.write(str(er) + ' ') + f.close() + +def write_plot_errors(save_dir): + plot_file = os.path.join(save_dir, 'plot_errors.py') + f = open(plot_file, 'w+') + f.write("#! /usr/bin/env python\n") + f.write("import matplotlib.pyplot as plt\n") + f.write("import numpy as np\n") + f.write("import sys\n") + f.write("import os\n") + f.write("current_dir = sys.path[0]\n") + f.write("errs = np.load(os.path.join(current_dir, 'errors.npy')).tolist()\n") + f.write("errs.pop(0)\n") + f.write("plt.plot(errs)\n") + f.write("plt.ylabel('errors')\n") + f.write("plt.show()") + f.close() + st = os.stat(plot_file) + os.chmod(plot_file, st.st_mode | stat.S_IEXEC) + + +def save_results(image, support, coh, errs, reciprocal, save_dir, metrics=None): + if not os.path.exists(save_dir): + os.makedirs(save_dir) + + image_file = os.path.join(save_dir, 'image') + np.save(image_file, image) + support_file = os.path.join(save_dir, 'support') + np.save(support_file, support) + errs_file = os.path.join(save_dir, 'errors') + np.save(errs_file, errs) + if not coh is None: + coh_file = os.path.join(save_dir, 'coherence') + np.save(coh_file, coh) + reciprocal_file = os.path.join(save_dir, 'reciprocal') + np.save(reciprocal_file, reciprocal) + write_plot_errors(save_dir) + if metrics is not None: + save_metrics(errs, save_dir, metrics) + else: + save_metrics(errs, save_dir) + + +def save_multiple_results(samples, images, supports, cohs, errs, reciprocals, save_dir, metrics=None): + """ + This function saves results of multiple reconstructions to directory tree in save_dir. + Parameters + ---------- + samples : int + number of reconstruction sets results + images : list + list of numpy arrays containing reconstructed images + supports : list + list of numpy arrays containing support of reconstructed images + cohs : list + list of numpy arrays containing coherence of reconstructed images + save_dir : str + a directory to save the results + Returns + ------- + nothing + """ + for i in range(samples): + subdir = os.path.join(save_dir, str(i)) + if metrics is None: + save_results(images[i], supports[i], cohs[i], np.asarray(errs[i]), reciprocals[i], subdir) + else: + save_results(images[i], supports[i], cohs[i], np.asarray(errs[i]), reciprocals[i], subdir, metrics[i]) + + +def sub_pixel_shift(arr, row_shift, col_shift, z_shift): + # arr is 3D + buf2ft = np.fft.fftn(arr) + shape = arr.shape + Nr = np.fft.ifftshift(np.array(list(range(-int(np.floor(shape[0] / 2)), shape[0] - int(np.floor(shape[0] / 2)))))) + Nc = np.fft.ifftshift(np.array(list(range(-int(np.floor(shape[1] / 2)), shape[1] - int(np.floor(shape[1] / 2)))))) + Nz = np.fft.ifftshift(np.array(list(range(-int(np.floor(shape[2] / 2)), shape[2] - int(np.floor(shape[2] / 2)))))) + [Nc, Nr, Nz] = np.meshgrid(Nc, Nr, Nz) + Greg = buf2ft * np.exp(1j * 2 * np.pi * (-row_shift * Nr / shape[0] - col_shift * Nc / shape[1] - z_shift * Nz / shape[2])) + return np.fft.ifftn(Greg) + + +def arr_property(arr): + arr1 = abs(arr) + print ('norm', np.sum(pow(abs(arr),2))) + max_coordinates = list(np.unravel_index(np.argmax(arr1), arr.shape)) + print ('max coords, value', max_coordinates, arr[max_coordinates[0], max_coordinates[1],max_coordinates[2]]) diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/transtest.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/transtest.py new file mode 100644 index 0000000..f4756e3 --- /dev/null +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/transtest.py @@ -0,0 +1,22 @@ +import numpy as np + +dims=(5,5,5) +dxdir=1 +dydir=1 +dzdir=1 + +r = np.mgrid[(dims[0] - 1) * dxdir:-dxdir:-dxdir, \ + 0:dims[1] * dydir:dydir,\ + 0:dims[2] * dzdir:dzdir] + +origshape=r.shape +r.shape = 3, dims[0] * dims[1] * dims[2] +r = r.transpose() + +Tdir=np.array( [[0.1,0,0],[0,1,0],[0,0,1]]) +print( Tdir) +dir_coords = np.dot(r, Tdir) + +dir_coords = dir_coords.transpose() +dir_coords.shape=origshape + diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util.py new file mode 100644 index 0000000..1074dc6 --- /dev/null +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util.py @@ -0,0 +1,174 @@ +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + +import os +import numpy as np +import math as m +import pyevtk.hl as vtk + +__author__ = "Barbara Frosik" +__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." +__docformat__ = 'restructuredtext en' + + +class CXDViz(): + + cropx = 0.5 + cropy = 0.5 + cropz = 0.5 + dir_arrs={} + recip_arrs={} + + def __init__(self): + #self.imd = tvtk.ImageData() + #self.sg = tvtk.StructuredGrid() + pass + + + def set_geometry(self, lam, delta, gamma, dpx, dpy, dth): + lam = lam + tth = delta + gam = gamma + dpx = dpx + dpy = dpy + dth = dth + dQdpx = np.zeros(3) + dQdpy = np.zeros(3) + dQdth = np.zeros(3) + Astar = np.zeros(3) + Bstar = np.zeros(3) + Cstar = np.zeros(3) + + # dQdpx[0] = -m.cos(tth) * m.cos(gam) + # dQdpx[1] = 0.0 + # dQdpx[2] = +m.sin(tth) * m.cos(gam) + dQdpx[0] = -m.cos(tth) + dQdpx[1] = 0.0 + dQdpx[2] = +m.sin(tth) + print("dqdpx",dQdpx) + + dQdpy[0] = m.sin(tth) * m.sin(gam) + dQdpy[1] = -m.cos(gam) + dQdpy[2] = m.cos(tth) * m.sin(gam) + print("dqdpy",dQdpy) + + dQdth[0] = -m.cos(tth) * m.cos(gam) + 1.0 + dQdth[1] = 0.0 + dQdth[2] = m.sin(tth) * m.cos(gam) + print("dqdth",dQdth) + + Astar[0] = 2 * m.pi / lam * dpx * dQdpx[0] + Astar[1] = 2 * m.pi / lam * dpx * dQdpx[1] + Astar[2] = 2 * m.pi / lam * dpx * dQdpx[2] + + Bstar[0] = (2 * m.pi / lam) * dpy * dQdpy[0] + Bstar[1] = (2 * m.pi / lam) * dpy * dQdpy[1] + Bstar[2] = (2 * m.pi / lam) * dpy * dQdpy[2] + + Cstar[0] = (2 * m.pi / lam) * dth * dQdth[0] + Cstar[1] = (2 * m.pi / lam) * dth * dQdth[1] + Cstar[2] = (2 * m.pi / lam) * dth * dQdth[2] + + denom = np.dot(Astar, np.cross(Bstar, Cstar)) + A = 2 * m.pi * np.cross(Bstar, Cstar) / denom + B = 2 * m.pi * np.cross(Cstar, Astar) / denom + C = 2 * m.pi * np.cross(Astar, Bstar) / denom + + self.Trecip = np.zeros(9) + self.Trecip.shape = (3, 3) + self.Trecip[:, 0] = Astar + self.Trecip[:, 1] = Bstar + self.Trecip[:, 2] = Cstar +# self.Trecip[:, 0] = [2,0,1] +# self.Trecip[:, 1] = [0,1,0] +# self.Trecip[:, 2] = [0,0,1] + print("Recip") + print(Astar,Bstar,Cstar) + print(self.Trecip) + + self.Tdir = np.zeros(9) + self.Tdir.shape = (3, 3) + self.Tdir = np.array((A, B, C)) + print("Direct") + print(A,B,C) + print(self.Tdir) + + self.dirspace_uptodate=0 + self.recipspace_uptodate=0 + return dQdpx, dQdpy, dQdth + + def update_dirspace(self, shape): + print("Updating dirspace coords") + dims = list(shape) + self.dxdir = 1.0 / shape[0] + self.dydir = 1.0 / shape[1] + self.dzdir = 1.0 / shape[2] + + r = np.mgrid[ + 0:dims[0] * self.dxdir:self.dxdir, \ + 0:dims[1] * self.dydir:self.dydir,\ + 0:dims[2] * self.dzdir:self.dzdir] +# r = np.mgrid[ +# 0:dims[0]*self.dxdir:self.dxdir, \ +# (dims[1]-1)*self.dydir:-self.dydir:-self.dydir,\ +# 0:dims[2]*self.dzdir:self.dzdir] + + origshape=r.shape + r.shape = 3, dims[0] * dims[1] * dims[2] + #r = r.transpose() + + self.dir_coords = np.dot(self.Tdir, r) + +# self.dir_coords = self.dir_coords.transpose() + self.dir_coords.shape=origshape + print("dir shape", self.dir_coords.shape) + self.dirspace_uptodate=1 + + def update_recipspace(self, shape): + dims = list(shape) + q = np.mgrid[ 0:dims[0], 0:dims[1], 0:dims[2]] + + origshape=q.shape + q.shape = 3, dims[0] * dims[1] * dims[2] + + self.recip_coords = np.dot(self.Trecip, q) + self.recip_coords.shape=origshape + self.recipspace_uptodate=1 + + def add_array(self, array, name, space='direct', logentry=None): + + #Need to add something to ensure arrays are all the same dimension. + #Need to add crop of viz output arrays + if len(array.shape) < 3: + newdims = list(array.shape) + for i in range(3 - len(newdims)): + newdims.append(1) + array.shape = tuple(newdims) + print("adding array of shape ", array.shape) + if space=='direct': + self.dir_arrs[name]=array + if (not self.dirspace_uptodate): + self.update_dirspace(array.shape) + elif space=='recip': + self.recip_arrs[name]=array + if (not self.recipspace_uptodate): + self.update_recipspace(array.shape) + else: + return + + def write_directspace(self, filename, **args): + print(self.dir_arrs.keys()) + vtk.gridToVTK(filename, self.dir_coords[0,:,:,:].copy(), \ + self.dir_coords[1,:,:,:].copy(), \ + self.dir_coords[2,:,:,:].copy(), pointData=self.dir_arrs) + vtk.imageToVTK(filename, pointData=self.dir_arrs) + + def write_recipspace(self, filename, **args): + vtk.gridToVTK(filename, self.recip_coords[0,:,:,:].copy(), \ + self.recip_coords[1,:,:,:].copy(), \ + self.recip_coords[2,:,:,:].copy(), pointData=self.recip_arrs) + vtk.imageToVTK(filename, pointData=self.recip_arrs) + diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util_dirdemo.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util_dirdemo.py new file mode 100644 index 0000000..7da7654 --- /dev/null +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util_dirdemo.py @@ -0,0 +1,42 @@ +if __name__ =="__main__": + import numpy as np + import math as m + import tifffile as tif + import tools as t + import viz_util_xu as vu + import prep_noconfig as prep + import os + + #binning of the data, this is not actually done, it's to account for previous binning in the saved data. + dbin1=2 + dbin2=2 + dir="/Users/rharder/Box/cdi-master/reccdi/src_py/utilities/NX2019a-3_483/results" + fname=os.path.join(dir,"image.npy") + #a=t.read_tif("cropped.tif").copy() #copy ensures array is contiguous which pyevtk needs + #b=prep.read_scan("/Users/rharder/Desktop/cropped", None, None) + a=np.load(fname)[:-28,:,:] + +# tif.imsave("RawDiffraction.tif", b) +# print("raw data",b.shape) +# print("imagejsave",a.shape) + + #scan info. + lam=1.37 #wavelength + delta=33.0*m.pi/180 #detector angle 1 + gamma=11.0*m.pi/180 #detector angle 2 + dpx=55e-6/0.500 #pixel size divided by detector dist + dpy=55e-6/0.500 + dth=0.01*m.pi/180 #rocking curve scan step. Everything in radians + + vr=vu.CXDViz() + vr.set_geometry(lam, delta, gamma, dbin1*dpx, dbin2*dpy, dth) + vr.add_array(abs(a), "imamp", space='direct') + #vr.add_array(np.angle(a), "imph", space='direct') + vr.write_directspace("dirtest.vtk") + + + +# q=vr.recip_coords +# qmag=np.sqrt(q[0,:,:,:]**2 + q[1,:,:,:]**2 + q[2,:,:,:]**2) +# vr.add_array(qmag, "qmag", space='recip') #add a second property that can be used for color in viz. +# vr.write_recipspace("RawDiffraction") diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util_recipdemo.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util_recipdemo.py new file mode 100644 index 0000000..d66e5a5 --- /dev/null +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util_recipdemo.py @@ -0,0 +1,34 @@ +if __name__ =="__main__": + import numpy as np + import math as m + import tifffile as tif + import tools as t + import viz_util as vu + import prep_noconfig as prep + + #binning of the data, this is not actually done, it's to account for previous binning in the saved data. + dbin1=1 + dbin2=1 + a=t.read_tif("cropped.tif").copy() #copy ensures array is contiguous which pyevtk needs + b=prep.read_scan("/Users/rharder/Desktop/cropped", None, None) + + tif.imsave("RawDiffraction.tif", b) + print("raw data",b.shape) + print("imagejsave",a.shape) + + #scan info. + lam=.137 #wavelength + delta=33.0*m.pi/180 #detector angle 1 + gamma=11.0*m.pi/180 #detector angle 2 + dpx=55e-6/0.5 #pixel size divided by detector dist + dpy=55e-6/0.5 + dth=0.01*m.pi/180 #rocking curve scan step. Everything in radians + + vr=vu.CXDViz() + vr.set_geometry(lam, delta, gamma, dbin1*dpx, dbin2*dpy, dth) + vr.add_array(b, "dp", space='recip') + + q=vr.recip_coords + qmag=np.sqrt(q[0,:,:,:]**2 + q[1,:,:,:]**2 + q[2,:,:,:]**2) + vr.add_array(qmag, "qmag", space='recip') #add a second property that can be used for color in viz. + vr.write_recipspace("RawDiffraction") diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util_xu.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util_xu.py new file mode 100644 index 0000000..bb05483 --- /dev/null +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util_xu.py @@ -0,0 +1,330 @@ +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + +import os +import numpy as np +import scipy.ndimage as ndi +import math as m +import pyevtk.hl as vtk +import xrayutilities.experiment as xuexp +import reccdi.src_py.utilities.utils as ut +from reccdi.src_py.utilities.utils import measure +import reccdi.src_py.utilities.spec as sput + +__author__ = "Barbara Frosik" +__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." +__docformat__ = 'restructuredtext en' + +class DispalyParams: + """ + This class encapsulates parameters defining image display. The parameters are +read from config file on + construction + """ + + def __init__(self, config): + """ + The constructor gets config file and fills out the class members. + + Parameters + ---------- + conf : str + configuration file name + + Returns + ------- + none + """ + deg2rad = np.pi / 180.0 + try: + specfile = config['specfile'] + last_scan = config['last_scan'] + self.lam, delta, gamma, dth, arm, pixel,energy = sput.parse_spec(specfile, +last_scan) + self.delta = delta * deg2rad + self.gamma = gamma * deg2rad + self.dth = dth * deg2rad + self.arm = arm / 1000 + self.energy = energy + pixel = pixel[1:-1] + pixel = pixel.split(',') + pixel[0], pixel[1] = float(pixel[0]), float(pixel[1]) + except Exception as e: + pass + # override the parsed parameters with entries in config file + try: + self.energy = config['energy'] + self.lam = 12.398 / energy / 10 + except AttributeError: + pass + try: + self.delta = config['delta'] * deg2rad + except AttributeError: + pass + try: + self.gamma = config['gamma'] * deg2rad + except AttributeError: + pass + try: + self.dth = config['dth'] * deg2rad + except AttributeError: + pass + try: + self.arm = config['arm'] / 1000 + except AttributeError: + pass + try: + pixel = config['pixel'] + except AttributeError: + pass + + try: + self.binning = [] + binning = config['binning'] + for i in range(len(binning)): + self.binning.append(binning[i]) + for _ in range(3 - len(self.binning)): + self.binning.append(1) + except AttributeError: + self.binning = [1,1,1] + self.px = pixel[0] * self.binning[0] + self.py = pixel[1] * self.binning[1] + self.dpx = pixel[0] * self.binning[0] / self.arm / self.binning[2] + self.dpy = pixel[1] * self.binning[1] / self.arm / self.binning[2] + try: + self.crop = [] + crop = config['crop'] + for i in range(len(crop)): + self.crop.append(crop[i]) + for _ in range(3 - len(self.crop)): + self.crop.append(1.0) + crop[0], crop[1] = crop[1], crop[0] + except AttributeError: + self.crop = None + + + + + + +class CXDViz(): + + cropx = 0.5 + cropy = 0.5 + cropz = 0.5 + dir_arrs={} + recip_arrs={} + + def __init__(self): + #self.imd = tvtk.ImageData() + #self.sg = tvtk.StructuredGrid() + pass + + + #def set_geometry(self, lam, delta, gamma, dpx, dpy, dth): + @measure + def set_geometry(self, params, shape): + self.params = params + lam = params.lam + tth = params.delta + gam = params.gamma + px = params.px + py = params.py + dpx = params.dpx + dpy = params.dpy + dth = params.dth + energy = params.energy + dQdpx = np.zeros(3) + dQdpy = np.zeros(3) + dQdth = np.zeros(3) + Astar = np.zeros(3) + Bstar = np.zeros(3) + Cstar = np.zeros(3) + + print("running the xrayutilities version") + self.qc=xuexp.QConversion(['y+','z-','x-'], ['y+','x-'],(0,0,1),en=energy*1000) + self.qc.init_area('x+','y-', shape[0],shape[1], 2,2, distance=params.arm, pwidth1=px, pwidth2=py) + + q1=np.array(self.qc.area(0.0,0,0,tth,gam,deg=False)) + q2=np.array(self.qc.area(dth,0,0,tth,gam,deg=False)) + Astar=q1[:,1,0]-q1[:,0,0] + Bstar=q1[:,0,1]-q1[:,0,0] + Cstar=(q2-q1)[:,0,0] + + denom = np.dot(Astar, np.cross(Bstar, Cstar)) + A = 2 * m.pi * np.cross(Bstar, Cstar) / denom + B = 2 * m.pi * np.cross(Cstar, Astar) / denom + C = 2 * m.pi * np.cross(Astar, Bstar) / denom + + self.Trecip = np.zeros(9) + self.Trecip.shape = (3, 3) + self.Trecip[:, 0] = Astar + self.Trecip[:, 1] = Bstar + self.Trecip[:, 2] = Cstar +# self.Trecip[:, 0] = [2,0,1] +# self.Trecip[:, 1] = [0,1,0] +# self.Trecip[:, 2] = [0,0,1] + print("Recip") + print(Astar,Bstar,Cstar) + print(self.Trecip) + + self.Tdir = np.zeros(9) + self.Tdir.shape = (3, 3) + self.Tdir = np.array((A, B, C)).transpose() + print("Direct") + print(A,B,C) + print(self.Tdir) + + self.dirspace_uptodate=0 + self.recipspace_uptodate=0 + return dQdpx, dQdpy, dQdth + + def update_dirspace(self, shape): + print("Updating dirspace coords") + dims = list(shape) + self.dxdir = 1.0 / shape[0] + self.dydir = 1.0 / shape[1] + self.dzdir = 1.0 / shape[2] + + r = np.mgrid[ + 0:dims[0] * self.dxdir:self.dxdir, \ + 0:dims[1] * self.dydir:self.dydir,\ + 0:dims[2] * self.dzdir:self.dzdir] +# r = np.mgrid[ +# 0:dims[0]*self.dxdir:self.dxdir, \ +# (dims[1]-1)*self.dydir:-self.dydir:-self.dydir,\ +# 0:dims[2]*self.dzdir:self.dzdir] + + origshape=r.shape + r.shape = 3, dims[0] * dims[1] * dims[2] + #r = r.transpose() + + self.dir_coords = np.dot(self.Tdir, r) + +# self.dir_coords = self.dir_coords.transpose() + self.dir_coords.shape=origshape + print("dir shape", self.dir_coords.shape) + self.dirspace_uptodate=1 + + def update_recipspace(self, shape): + dims = list(shape) + q = np.mgrid[ 0:dims[0], 0:dims[1], 0:dims[2]] + + origshape=q.shape + q.shape = 3, dims[0] * dims[1] * dims[2] + + self.recip_coords = np.dot(self.Trecip, q) + self.recip_coords.shape=origshape + self.recipspace_uptodate=1 + + def clear_direct_arrays(self): + self.dir_arrs.clear() + def clear_recip_arrays(self): + self.recip_arrs.clear() + + @measure + def add_array(self, array, name, space='direct', logentry=None): + + #Need to add something to ensure arrays are all the same dimension. + #Need to add crop of viz output arrays + if len(array.shape) < 3: + newdims = list(array.shape) + for i in range(3 - len(newdims)): + newdims.append(1) + array.shape = tuple(newdims) + print("adding array of shape ", array.shape) + if space=='direct': + self.dir_arrs[name]=array + if (not self.dirspace_uptodate): + self.update_dirspace(array.shape) + elif space=='recip': + self.recip_arrs[name]=array + if (not self.recipspace_uptodate): + self.update_recipspace(array.shape) + else: + return + + @measure + def write_directspace(self, filename, **args): + print(self.dir_arrs.keys()) + vtk.gridToVTK(filename, self.dir_coords[0,:,:,:].copy(), \ + self.dir_coords[1,:,:,:].copy(), \ + self.dir_coords[2,:,:,:].copy(), pointData=self.dir_arrs) + vtk.imageToVTK(filename, pointData=self.dir_arrs) + + def write_recipspace(self, filename, **args): + vtk.gridToVTK(filename, self.recip_coords[0,:,:,:].copy(), \ + self.recip_coords[1,:,:,:].copy(), \ + self.recip_coords[2,:,:,:].copy(), pointData=self.recip_arrs) + vtk.imageToVTK(filename, pointData=self.recip_arrs) + +def shift(arr, s0, s1, s2): + shifted = np.roll(arr, s0, axis=0) + shifted = np.roll(shifted, s1, axis=1) + return np.roll(shifted, s2, axis=2) + + +def center_of_mass(arr): + tot = np.sum(arr) + dims = arr.shape + xyz = [] + griddims = [] + for d in dims: + griddims.append(slice(0, d)) + grid = np.ogrid[griddims] + for g in grid: + xyz.append(np.sum(arr * g) / tot) + com = np.asarray(xyz) + com = np.ma.round(com).astype(np.int) + return list(com) + +@measure +def remove_ramp(arr, ups=1): + new_shape = list(arr.shape) + # pad zeros around arr, to the size of 3 times (ups = 3) of arr size + for i in range(len(new_shape)): + new_shape[i] = ups * new_shape[i] + padded = ut.get_zero_padded_centered(arr, new_shape) + padded_f = np.fft.fftshift(np.fft.fftn(np.fft.ifftshift(padded))) + com = ndi.center_of_mass(np.power(np.abs(padded_f), 2)) + sub_pixel_shifted = ut.sub_pixel_shift(padded_f, new_shape[0]/2.0-com[0], new_shape[1]/2.0-com[1], +new_shape[2]/2.0-com[2]) + ramp_removed_padded = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(sub_pixel_shifted))) + ramp_removed = ut.crop_center(ramp_removed_padded, arr.shape) + + return ramp_removed + + +@measure +def center(image, support): + dims = image.shape + image, support = ut.get_centered_both(image, support) + + # place center of mass image*support in the center + for ax in range(len(dims)): + com = ndi.center_of_mass(np.absolute(image) * support) + image = shift(image, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) + support = shift(support, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) + + # set center phase to zero, use as a reference + phi0 = m.atan2(image.imag[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)], image.real[int(dims[0]/2), int(dims[1]/2), +int(dims[2]/2)]) + image = image * np.exp(-1j * phi0) + + return image, support + + +def get_crop(params, shape): + crop = [] + for i in range(len(shape)): + if params.crop is None: + crop.append(shape[i]) + else: + crop.append(params.crop[i]) + if isinstance(crop[i], float): + crop[i] = int(crop[i]*shape[i]) + return crop + diff --git a/reccdi/src_py/utilities/localCXDVizNX.py b/reccdi/src_py/utilities/localCXDVizNX.py new file mode 100644 index 0000000..3c3cff0 --- /dev/null +++ b/reccdi/src_py/utilities/localCXDVizNX.py @@ -0,0 +1,383 @@ +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + +import pylibconfig2 as cfg +import os +import traits.api as tr +from tvtk.api import tvtk +import numpy as np +import scipy.ndimage as ndi +import math as m +import utils as ut +import spec as sput + +__author__ = "Barbara Frosik" +__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." +__docformat__ = 'restructuredtext en' + + +class DispalyParams: + """ + This class encapsulates parameters defining image display. The parameters are read from config file on + construction + """ + + def __init__(self, config, last_scan): + """ + The constructor gets config file and fills out the class members. + + Parameters + ---------- + conf : str + configuration file name + + Returns + ------- + none + """ + if os.path.isfile(config): + with open(config, 'r') as f: + config_map = cfg.Config(f.read()) + + deg2rad = np.pi / 180.0 + try: + specfile = config_map.specfile + self.lamda, delta, gamma, dth, arm, pixel = sput.parse_spec(specfile, last_scan) + self.delta = delta * deg2rad + self.gamma = gamma * deg2rad + self.dth = dth * deg2rad + self.arm = arm / 1000 + pixel = pixel[1:-1] + pixel = pixel.split(',') + pixel[0], pixel[1] = float(pixel[0]), float(pixel[1]) + except Exception as e: + # print (str(e)) + try: + energy = config_map.energy + self.lamda = 12.398 / energy / 10 + except AttributeError: + print ('lamda not defined') + try: + self.delta = config_map.delta * deg2rad + except AttributeError: + print ('delta not defined') + try: + self.gamma = config_map.gamma * deg2rad + except AttributeError: + print ('gamma not defined') + try: + self.dth = config_map.dth * deg2rad + except AttributeError: + print ('dth not defined') + try: + self.arm = config_map.arm / 1000 + except AttributeError: + print ('arm not defined') + try: + pixel = config_map.pixel + except AttributeError: + print ('pixel not defined') + + try: + self.binning = [] + binning = config_map.binning + for i in range(len(binning)): + self.binning.append(binning[i]) + for _ in range(3 - len(self.binning)): + self.binning.append(1) + except AttributeError: + self.binning = [1,1,1] + self.dpx = pixel[0] * self.binning[0] / self.arm / self.binning[2] + self.dpy = pixel[1] * self.binning[1] / self.arm / self.binning[2] + try: + self.crop = [] + crop = config_map.crop + for i in range(len(crop)): + self.crop.append(crop[i]) + for _ in range(3 - len(self.crop)): + self.crop.append(1.0) + crop[0], crop[1] = crop[1], crop[0] + except AttributeError: + self.crop = None + + +class CXDViz(tr.HasTraits): + coords = tr.Array() + arr = tr.Array() + + cropx = tr.Int() + cropy = tr.Int() + cropz = tr.Int() + + + def __init__(self): + self.imd = tvtk.ImageData() + self.sg = tvtk.StructuredGrid() + pass + + + def set_geometry(self, params, shape): + lam = params.lamda + tth = params.delta + gam = params.gamma + dpx = params.dpx + dpy = params.dpy + dth = params.dth + dx = 1.0 / shape[0] + dy = 1.0 / shape[1] + dz = 1.0 / shape[2] + dQdpx = np.zeros(3) + dQdpy = np.zeros(3) + dQdth = np.zeros(3) + Astar = np.zeros(3) + Bstar = np.zeros(3) + Cstar = np.zeros(3) + + # dQdpx[0] = -m.cos(tth) * m.cos(gam) + # dQdpx[1] = 0.0 + # dQdpx[2] = +m.sin(tth) * m.cos(gam) + dQdpx[0] = -m.cos(tth) + dQdpx[1] = 0.0 + dQdpx[2] = +m.sin(tth) + + dQdpy[0] = m.sin(tth) * m.sin(gam) + dQdpy[1] = -m.cos(gam) + dQdpy[2] = m.cos(tth) * m.sin(gam) + + dQdth[0] = -m.cos(tth) * m.cos(gam) + 1.0 + dQdth[1] = 0.0 + dQdth[2] = m.sin(tth) * m.cos(gam) + + Astar[0] = 2 * m.pi / lam * dpx * dQdpx[0] + Astar[1] = 2 * m.pi / lam * dpx * dQdpx[1] + Astar[2] = 2 * m.pi / lam * dpx * dQdpx[2] + + Bstar[0] = (2 * m.pi / lam) * dpy * dQdpy[0] + Bstar[1] = (2 * m.pi / lam) * dpy * dQdpy[1] + Bstar[2] = (2 * m.pi / lam) * dpy * dQdpy[2] + + Cstar[0] = (2 * m.pi / lam) * dth * dQdth[0] + Cstar[1] = (2 * m.pi / lam) * dth * dQdth[1] + Cstar[2] = (2 * m.pi / lam) * dth * dQdth[2] + + print("recip", Astar) + print("recip", Bstar) + print("recip", Cstar) + denom = np.dot(Astar, np.cross(Bstar, Cstar)) + A = 2 * m.pi * np.cross(Bstar, Cstar) / denom + B = 2 * m.pi * np.cross(Cstar, Astar) / denom + C = 2 * m.pi * np.cross(Astar, Bstar) / denom + + self.T = np.zeros(9) + self.T.shape = (3, 3) + space = 'direct' + if space == 'recip': + self.T[:, 0] = Astar + self.T[:, 1] = Bstar + self.T[:, 2] = Cstar + self.dx = 1.0 + self.dy = 1.0 + self.dz = 1.0 + elif space == 'direct': + self.T = np.array((A, B, C)) + self.dx = dx + self.dy = dy + self.dz = dz + else: + pass + print("DirectSpace T",self.T) + + + def update_coords(self): + dims = list(self.arr[self.cropobj].shape) + + r = np.mgrid[(dims[0] - 1) * self.dx:-self.dx:-self.dx, \ + 0:dims[1] * self.dy:self.dy, 0:dims[2] * self.dz:self.dz] + + r.shape = 3, dims[0] * dims[1] * dims[2] + r = r.transpose() + + self.coords = np.dot(r, self.T) + + + def set_array(self, array, logentry=None): + self.arr = array + if len(self.arr.shape) < 3: + newdims = list(self.arr.shape) + for i in range(3 - len(newdims)): + newdims.append(1) + self.arr.shape = tuple(newdims) + + + def set_crop(self, cropx, cropy, cropz): + dims = list(self.arr.shape) + if len(dims) == 2: + dims.append(1) + + if dims[0] > cropx and cropx > 0: + self.cropx = cropx + else: + self.cropx = dims[0] + + if dims[1] > cropy and cropy > 0: + self.cropy = cropy + else: + self.cropy = dims[1] + + if dims[2] > cropz and cropz > 0: + self.cropz = cropz + else: + self.cropz = dims[2] + + start1 = int(dims[0]/2) - int(self.cropx/2) + end1 = int(dims[0]/2) + int(self.cropx/2) + if start1 == end1: + end1 = end1 + 1 + start2 = int(dims[1]/2) - int(self.cropy/2) + end2 = int(dims[1]/2) + int(self.cropy/2) + if start2 == end2: + end2 = end2 + 1 + start3 = int(dims[2]/2) - int(self.cropz/2) + end3 = int(dims[2]/2) + int(self.cropz/2) + if start3 == end3: + end3 = end3 + 1 + + self.cropobj = (slice(start1, end1, None), slice(start2, end2, None), + slice(start3, end3, None)) + + + def get_structured_grid(self, **args): + self.update_coords() + dims = list(self.arr[self.cropobj].shape) + self.sg.points = self.coords + if "mode" in args: + if args["mode"] == "Phase": + arr1 = self.arr[self.cropobj].ravel() + arr = (np.arctan2(arr1.imag, arr1.real)) + else: + arr = np.abs(self.arr[self.cropobj].ravel()) + else: + arr = self.arr[self.cropobj].ravel() + if (arr.dtype == np.complex128 or arr.dtype == np.complex64): + self.sg.point_data.scalars = np.abs(arr) + self.sg.point_data.scalars.name = "Amp" + ph = tvtk.DoubleArray() + ph.from_array(np.arctan2(arr.imag, arr.real)) + ph.name = "Phase" + self.sg.point_data.add_array(ph) + else: + self.sg.point_data.scalars = arr + self.sg.dimensions = (dims[2], dims[1], dims[0]) + self.sg.extent = 0, dims[2] - 1, 0, dims[1] - 1, 0, dims[0] - 1 + return self.sg + + + def write_structured_grid(self, filename, **args): + sgwriter = tvtk.StructuredGridWriter() + sgwriter.file_type = 'binary' + if filename.endswith(".vtk"): + sgwriter.file_name = filename + else: + sgwriter.file_name = filename + '.vtk' + sgwriter.set_input_data(self.get_structured_grid()) + sgwriter.write() + print ('saved file', filename) + + +def shift(arr, s0, s1, s2): + shifted = np.roll(arr, s0, axis=0) + shifted = np.roll(shifted, s1, axis=1) + return np.roll(shifted, s2, axis=2) + + +def center_of_mass(arr): + tot = np.sum(arr) + dims = arr.shape + xyz = [] + griddims = [] + for d in dims: + griddims.append(slice(0, d)) + grid = np.ogrid[griddims] + for g in grid: + xyz.append(np.sum(arr * g) / tot) + com = np.asarray(xyz) + com = np.ma.round(com).astype(np.int) + return list(com) + + +def remove_ramp(arr, ups=3): + new_shape = list(arr.shape) + # pad zeros around arr, to the size of 3 times (ups = 3) of arr size + for i in range(len(new_shape)): + new_shape[i] = ups * new_shape[i] + padded = ut.get_zero_padded_centered(arr, new_shape) + padded_f = np.fft.fftshift(np.fft.fftn(np.fft.ifftshift(padded))) + com = ndi.center_of_mass(np.power(np.abs(padded_f), 2)) + sub_pixel_shifted = ut.sub_pixel_shift(padded_f, new_shape[0]/2.0-com[0], new_shape[1]/2.0-com[1], new_shape[2]/2.0-com[2]) + ramp_removed_padded = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(sub_pixel_shifted))) + ramp_removed = ut.crop_center(ramp_removed_padded, arr.shape) + + return ramp_removed + + +def center(image, support): + dims = image.shape + image, support = ut.get_centered_both(image, support) + + # place center of mass image*support in the center + for ax in range(len(dims)): + com = ndi.center_of_mass(np.absolute(image) * support) + image = shift(image, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) + support = shift(support, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) + + # set center phase to zero, use as a reference + phi0 = m.atan2(image.imag[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)], image.real[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)]) + image = image * np.exp(-1j * phi0) + + return image, support + + +def get_crop(params, shape): + crop = [] + for i in range(len(shape)): + if params.crop is None: + crop.append(shape[i]) + else: + crop.append(params.crop[i]) + if isinstance(crop[i], float): + crop[i] = int(crop[i]*shape[i]) + return crop + + +def save_CX(conf, image, support, coh, save_dir, last_scan): + image = np.swapaxes(image, 1,2) + image = np.swapaxes(image, 0,1) +# support = np.swapaxes(support, 1,2) +# support = np.swapaxes(support, 0,1) +# image, support = center(image, support) + params = DispalyParams(conf, last_scan) +# image = remove_ramp(image) + viz = CXDViz() + viz.set_array(image) + viz.set_geometry(params, image.shape) + crop = get_crop(params, image.shape) + viz.set_crop(crop[0], crop[1], crop[2]) # save image + image_file = os.path.join(save_dir, 'image') +# viz.write_structured_grid(image_file) +# viz.set_array(support) +# support_file = os.path.join(save_dir, 'support') +# viz.write_structured_grid(support_file) +# if coh is not None: +# coh = np.swapaxes(coh, 1, 2) +# # investigate if pad_center before fft or after +# coh = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(coh))).real +# coh = ut.get_zero_padded_centered(coh, image.shape) +# coh_file = os.path.join(save_dir, 'coherence') +# viz.set_array(coh) +# viz.write_structured_grid(coh_file) + +# a = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') +# remove_ramp(a, 3) diff --git a/reccdi/src_py/utilities/prep_noconfig.py b/reccdi/src_py/utilities/prep_noconfig.py new file mode 100644 index 0000000..0d6cc36 --- /dev/null +++ b/reccdi/src_py/utilities/prep_noconfig.py @@ -0,0 +1,216 @@ +import numpy as np +import copy +import scipy.fftpack as sf +import os +import glob +import tifffile as tif +#import reccdi.src_py.utilities.spec as spec +#import reccdi.src_py.utilities.utils as ut + + +def get_dir_list(scans, map): + """ + Returns list of sub-directories in data_dir with names matching range of scans + It will exclude scans within exclude_scans list if provided, and directories with fewer files than + min_files, if provided + :param scans: + :param map: + :return: + """ + try: + min_files = map.min_files + except: + min_files = 0 + try: + exclude_scans = map.exclude_scans + except: + exclude_scans = [] + try: + data_dir = map.data_dir + except: + print ('please provide data_dir') + + dirs = [] + for name in os.listdir(data_dir): + subdir = os.path.join(data_dir, name) + if os.path.isdir(subdir): + # exclude directories with fewer tif files than min_files + if len(glob.glob1(subdir, "*.tif")) < min_files and len(glob.glob1(subdir, "*.tiff")) < min_files: + continue + try: + index = int(name[-4:]) + if index >= scans[0] and index <= scans[1] and not index in exclude_scans: + dirs.append(subdir) + except: + continue + return dirs + + +def get_dark_white(darkfile, whitefile, det_area1, det_area2): + if darkfile is not None: + # find the darkfield array + dark_full = tif.imread(darkfile).astype(float) + # crop the corresponding quad or use the whole array, depending on what info was parsed from spec file + dark = dark_full[slice(det_area1[0], det_area1[1]), slice(det_area2[0], det_area2[1])] + else: + dark = None + + if whitefile is not None: + # find the whitefield array + white_full = tif.imread(whitefile).astype(float) + # crop the corresponding quad or use the whole array, depending on what info was parsed from spec file + white = white_full[slice(det_area1[0], det_area1[1]), slice(det_area2[0], det_area2[1])] + # set the bad pixels to some large value + white = np.where(white<5000, 1e20, white) #Some large value + else: + white = None + + return dark, white + + +def get_normalized_slice(file, dark, white): + # file is a tuple of slice and either background slice or None + slice = tif.TiffFile(file[0]).asarray() + if file[1] is not None: + slice = slice - tif.TiffFile(file[1]).asarray() + if dark is not None: + slice = np.where(dark > 5, 0, slice) #Ignore cosmic rays + # here would be code for correction for dead time + if white is not None: + slice = slice/white + slice *= 1e5 #Some medium value + slice = np.where(np.isnan(slice), 0, slice) + return slice + + +def read_scan(dir, dark, white): + files = [] + files_dir = {} + for file in os.listdir(dir): + if file.endswith('tif') or file.endswith('tiff'): + temp = file.split('.') + #it's assumed that the files end with four digits and 'tif' or 'tiff' extension + key = temp[0][-4:] + files_dir[key] = file + + ordered_keys = sorted(list(files_dir.keys())) + + for key in ordered_keys: + file = files_dir[key] + file = os.path.join(dir, file) + bg_file = file.replace('.tif', '_bg.tif') + if not os.path.isfile(bg_file): + bg_file = None + + files.append((file, bg_file)) + + # look at slice0 to find out shape + n = 0 + slice0 = get_normalized_slice(files[n], dark, white).transpose() + shape = (slice0.shape[0], slice0.shape[1], len(files)) + arr = np.zeros(shape, dtype=slice0.dtype) + arr[:,:,0] = slice0 + print("slice shape",slice0.shape) + + #for i in range (1, len(files)): + for file in files[1:]: + n = n + 1 + slice = get_normalized_slice(file, dark, white).transpose() + arr[:,:,n] = slice + return arr + + +def shift(arr, shifty): + # pass the FT of the fftshifted array you want to shift + # you get back the actual array, not the FT. + dims = arr.shape + # scipy does normalize ffts! + ftarr = sf.fftn(arr) + r=[] + for d in dims: + r.append(slice(int(np.ceil(-d/2.)), int(np.ceil(d/2.)), None)) + idxgrid = np.mgrid[r] + for d in range(len(dims)): + ftarr *= np.exp(-1j*2*np.pi*shifty[d]*sf.fftshift(idxgrid[d])/float(dims[d])) + + shiftedarr = sf.ifftn(ftarr) + return shiftedarr + + +def combine_part(part_f, slice_sum, refpart, part): + # get cross correlation and pixel shift + cross_correlation = sf.ifftn(refpart*np.conj(part_f)) + corelated = np.array(cross_correlation.shape) + amp = np.abs(cross_correlation) + intshift = np.unravel_index(amp.argmax(), corelated) + shifted = np.array(intshift) + pixelshift = np.where(shifted>=corelated/2, shifted-corelated, shifted) + return slice_sum + shift(part, pixelshift) + + +def fit(arr, det_area1, det_area2): + # if the full sensor was used for the image (i.e. the data size is 512x512) + # the quadrants need to be shifted + if det_area1[0] == 0 and det_area1[1] == 512 and det_area1[0] == 0 and det_area2[1] == 512: + b = np.zeros((arr.shape[0],517,516),float) + b[:,:256,:256] = arr[:,:256,:256] #Quad top left unchanged + b[:,:256,260:] = arr[:,:256,256:] #Quad top right moved 4 right + b[:,261:,:256] = arr[:,256:,:256] #Quad bot left moved 6 down + b[:,261:,260:] = arr[:,256:,256:] #Quad bot right + else: + b = arr + return b + + +def prep_data(experiment_dir, scans, map, det_area1, det_area2, *args): + if scans is None: + print ('scan info not provided') + return + + # build sub-directories map + if len(scans) == 1: + scans.append(scans[0]) + dirs = get_dir_list(scans, map) + + try: + whitefile = map.whitefile + except: + whitefile = None + + try: + darkfile = map.darkfile + except: + darkfile = None + + dark, white = get_dark_white(darkfile, whitefile, det_area1, det_area2) + + if len(dirs) == 0: + print ('there are no data directories for given scans') + return + + if len(dirs) == 1: + arr = read_scan(dirs[0], dark, white) + else: + # make the first part a reference + part = read_scan(dirs[0], dark, white) + slice_sum = np.abs(copy.deepcopy(part)) + refpart = sf.fftn(part) + for i in range (1, len(dirs)): + #this will load scans from each directory into an array part + part = read_scan(dirs[i], dark, white) + # add the arrays together + part_f = sf.fftn(part) + slice_sum = combine_part(part_f, slice_sum, refpart, part) + arr = np.abs(slice_sum).astype(np.int32) + + arr = fit(arr, det_area1, det_area2) + + #create directory to save prepared data ,/prep + prep_data_dir = os.path.join(experiment_dir, 'prep') + if not os.path.exists(prep_data_dir): + os.makedirs(prep_data_dir) + data_file = os.path.join(prep_data_dir, 'prep_data.tif') + + ut.save_tif(arr, data_file) + print ('done with prep, shape:', arr.shape) + diff --git a/reccdi/src_py/utilities/pyevtktest.py b/reccdi/src_py/utilities/pyevtktest.py new file mode 100644 index 0000000..92d80a9 --- /dev/null +++ b/reccdi/src_py/utilities/pyevtktest.py @@ -0,0 +1,42 @@ +#! /usr/bin/env python + +# ************************************************************** +# * Example of how to use the high level gridToVTK function. * +# * This example shows how to export a structured grid. * +# ************************************************************** + +from pyevtk.hl import gridToVTK +import numpy as np +import random as rnd + +# Dimensions +nx, ny, nz = 10, 5, 2 +lx, ly, lz = 10.0, 5.0, 1.0 +dx, dy, dz = lx/nx, ly/ny, lz/nz + +ncells = nx * ny * nz +npoints = (nx + 1) * (ny + 1) * (nz + 1) + +# Coordinates +X = np.arange(0, lx + 0.1*dx, dx, dtype='float64') +Y = np.arange(0, ly + 0.1*dy, dy, dtype='float64') +Z = np.arange(0, lz + 0.1*dz, dz, dtype='float64') + +x = np.zeros((nx + 1, ny + 1, nz + 1)) +y = np.zeros((nx + 1, ny + 1, nz + 1)) +z = np.zeros((nx + 1, ny + 1, nz + 1)) + +# We add some random fluctuation to make the grid +# more interesting +for k in range(nz + 1): + for j in range(ny + 1): + for i in range(nx + 1): + x[i,j,k] = X[i] + y[i,j,k] = Y[j] + z[i,j,k] = Z[k] + +# Variables +#pressure = np.random.rand(ncells).reshape( (nx, ny, nz)) +#temp = np.random.rand(npoints).reshape( (nx + 1, ny + 1, nz + 1)) + +#gridToVTK("./structured", x, y, z, cellData = {"pressure" : pressure}, pointData = {"temp" : temp}) diff --git a/reccdi/src_py/utilities/rec_disp.py b/reccdi/src_py/utilities/rec_disp.py new file mode 100644 index 0000000..0aa4d8d --- /dev/null +++ b/reccdi/src_py/utilities/rec_disp.py @@ -0,0 +1,379 @@ +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + +import pylibconfig2 as cfg +import os +import traits.api as tr +from tvtk.api import tvtk +import numpy as np +import scipy.ndimage as ndi +import math as m +import reccdi.src_py.utilities.utils as ut +import reccdi.src_py.utilities.spec as sput + +__author__ = "Barbara Frosik" +__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." +__docformat__ = 'restructuredtext en' + + +class DispalyParams: + """ + This class encapsulates parameters defining image display. The parameters are read from config file on + construction + """ + + def __init__(self, config, last_scan): + """ + The constructor gets config file and fills out the class members. + + Parameters + ---------- + conf : str + configuration file name + + Returns + ------- + none + """ + if os.path.isfile(config): + with open(config, 'r') as f: + config_map = cfg.Config(f.read()) + + deg2rad = np.pi / 180.0 + try: + specfile = config_map.specfile + self.lamda, delta, gamma, dth, arm, pixel = sput.parse_spec(specfile, last_scan) + self.delta = delta * deg2rad + self.gamma = gamma * deg2rad + self.dth = dth * deg2rad + self.arm = arm / 1000 + pixel = pixel[1:-1] + pixel = pixel.split(',') + pixel[0], pixel[1] = float(pixel[0]), float(pixel[1]) + except Exception as e: + # print (str(e)) + try: + energy = config_map.energy + self.lamda = 12.398 / energy / 10 + except AttributeError: + print ('lamda not defined') + try: + self.delta = config_map.delta * deg2rad + except AttributeError: + print ('delta not defined') + try: + self.gamma = config_map.gamma * deg2rad + except AttributeError: + print ('gamma not defined') + try: + self.dth = config_map.dth * deg2rad + except AttributeError: + print ('dth not defined') + try: + self.arm = config_map.arm / 1000 + except AttributeError: + print ('arm not defined') + try: + pixel = config_map.pixel + except AttributeError: + print ('pixel not defined') + + try: + self.binning = [] + binning = config_map.binning + for i in range(len(binning)): + self.binning.append(binning[i]) + for _ in range(3 - len(self.binning)): + self.binning.append(1) + except AttributeError: + self.binning = [1,1,1] + self.dpx = pixel[0] * self.binning[0] / self.arm / self.binning[2] + self.dpy = pixel[1] * self.binning[1] / self.arm / self.binning[2] + try: + self.crop = [] + crop = config_map.crop + for i in range(len(crop)): + self.crop.append(crop[i]) + for _ in range(3 - len(self.crop)): + self.crop.append(1.0) + crop[0], crop[1] = crop[1], crop[0] + except AttributeError: + self.crop = None + + +class CXDViz(tr.HasTraits): + coords = tr.Array() + arr = tr.Array() + + cropx = tr.Int() + cropy = tr.Int() + cropz = tr.Int() + + + def __init__(self): + self.imd = tvtk.ImageData() + self.sg = tvtk.StructuredGrid() + pass + + + def set_geometry(self, params, shape): + lam = params.lamda + tth = params.delta + gam = params.gamma + dpx = params.dpx + dpy = params.dpy + dth = params.dth + dx = 1.0 / shape[0] + dy = 1.0 / shape[1] + dz = 1.0 / shape[2] + dQdpx = np.zeros(3) + dQdpy = np.zeros(3) + dQdth = np.zeros(3) + Astar = np.zeros(3) + Bstar = np.zeros(3) + Cstar = np.zeros(3) + + # dQdpx[0] = -m.cos(tth) * m.cos(gam) + # dQdpx[1] = 0.0 + # dQdpx[2] = +m.sin(tth) * m.cos(gam) + dQdpx[0] = -m.cos(tth) + dQdpx[1] = 0.0 + dQdpx[2] = +m.sin(tth) + + dQdpy[0] = m.sin(tth) * m.sin(gam) + dQdpy[1] = -m.cos(gam) + dQdpy[2] = m.cos(tth) * m.sin(gam) + + dQdth[0] = -m.cos(tth) * m.cos(gam) + 1.0 + dQdth[1] = 0.0 + dQdth[2] = m.sin(tth) * m.cos(gam) + + Astar[0] = 2 * m.pi / lam * dpx * dQdpx[0] + Astar[1] = 2 * m.pi / lam * dpx * dQdpx[1] + Astar[2] = 2 * m.pi / lam * dpx * dQdpx[2] + + Bstar[0] = (2 * m.pi / lam) * dpy * dQdpy[0] + Bstar[1] = (2 * m.pi / lam) * dpy * dQdpy[1] + Bstar[2] = (2 * m.pi / lam) * dpy * dQdpy[2] + + Cstar[0] = (2 * m.pi / lam) * dth * dQdth[0] + Cstar[1] = (2 * m.pi / lam) * dth * dQdth[1] + Cstar[2] = (2 * m.pi / lam) * dth * dQdth[2] + + denom = np.dot(Astar, np.cross(Bstar, Cstar)) + A = 2 * m.pi * np.cross(Bstar, Cstar) / denom + B = 2 * m.pi * np.cross(Cstar, Astar) / denom + C = 2 * m.pi * np.cross(Astar, Bstar) / denom + + self.T = np.zeros(9) + self.T.shape = (3, 3) + space = 'direct' + if space == 'recip': + self.T[:, 0] = Astar + self.T[:, 1] = Bstar + self.T[:, 2] = Cstar + self.dx = 1.0 + self.dy = 1.0 + self.dz = 1.0 + elif space == 'direct': + self.T = np.array((A, B, C)) + self.dx = dx + self.dy = dy + self.dz = dz + else: + pass + + + def update_coords(self): + dims = list(self.arr[self.cropobj].shape) + + r = np.mgrid[(dims[0] - 1) * self.dx:-self.dx:-self.dx, \ + 0:dims[1] * self.dy:self.dy, 0:dims[2] * self.dz:self.dz] + + r.shape = 3, dims[0] * dims[1] * dims[2] + r = r.transpose() + + self.coords = np.dot(r, self.T) + + + def set_array(self, array, logentry=None): + self.arr = array + if len(self.arr.shape) < 3: + newdims = list(self.arr.shape) + for i in range(3 - len(newdims)): + newdims.append(1) + self.arr.shape = tuple(newdims) + + + def set_crop(self, cropx, cropy, cropz): + dims = list(self.arr.shape) + if len(dims) == 2: + dims.append(1) + + if dims[0] > cropx and cropx > 0: + self.cropx = cropx + else: + self.cropx = dims[0] + + if dims[1] > cropy and cropy > 0: + self.cropy = cropy + else: + self.cropy = dims[1] + + if dims[2] > cropz and cropz > 0: + self.cropz = cropz + else: + self.cropz = dims[2] + + start1 = int(dims[0]/2) - int(self.cropx/2) + end1 = int(dims[0]/2) + int(self.cropx/2) + if start1 == end1: + end1 = end1 + 1 + start2 = int(dims[1]/2) - int(self.cropy/2) + end2 = int(dims[1]/2) + int(self.cropy/2) + if start2 == end2: + end2 = end2 + 1 + start3 = int(dims[2]/2) - int(self.cropz/2) + end3 = int(dims[2]/2) + int(self.cropz/2) + if start3 == end3: + end3 = end3 + 1 + + self.cropobj = (slice(start1, end1, None), slice(start2, end2, None), + slice(start3, end3, None)) + + + def get_structured_grid(self, **args): + self.update_coords() + dims = list(self.arr[self.cropobj].shape) + self.sg.points = self.coords + if "mode" in args: + if args["mode"] == "Phase": + arr1 = self.arr[self.cropobj].ravel() + arr = (np.arctan2(arr1.imag, arr1.real)) + else: + arr = np.abs(self.arr[self.cropobj].ravel()) + else: + arr = self.arr[self.cropobj].ravel() + if (arr.dtype == np.complex128 or arr.dtype == np.complex64): + self.sg.point_data.scalars = np.abs(arr) + self.sg.point_data.scalars.name = "Amp" + ph = tvtk.DoubleArray() + ph.from_array(np.arctan2(arr.imag, arr.real)) + ph.name = "Phase" + self.sg.point_data.add_array(ph) + else: + self.sg.point_data.scalars = arr + self.sg.dimensions = (dims[2], dims[1], dims[0]) + self.sg.extent = 0, dims[2] - 1, 0, dims[1] - 1, 0, dims[0] - 1 + return self.sg + + + def write_structured_grid(self, filename, **args): + sgwriter = tvtk.StructuredGridWriter() + sgwriter.file_type = 'binary' + if filename.endswith(".vtk"): + sgwriter.file_name = filename + else: + sgwriter.file_name = filename + '.vtk' + sgwriter.set_input_data(self.get_structured_grid()) + sgwriter.write() + print ('saved file', filename) + + +def shift(arr, s0, s1, s2): + shifted = np.roll(arr, s0, axis=0) + shifted = np.roll(shifted, s1, axis=1) + return np.roll(shifted, s2, axis=2) + + +def center_of_mass(arr): + tot = np.sum(arr) + dims = arr.shape + xyz = [] + griddims = [] + for d in dims: + griddims.append(slice(0, d)) + grid = np.ogrid[griddims] + for g in grid: + xyz.append(np.sum(arr * g) / tot) + com = np.asarray(xyz) + com = np.ma.round(com).astype(np.int) + return list(com) + + +def remove_ramp(arr, ups=3): + new_shape = list(arr.shape) + # pad zeros around arr, to the size of 3 times (ups = 3) of arr size + for i in range(len(new_shape)): + new_shape[i] = ups * new_shape[i] + padded = ut.get_zero_padded_centered(arr, new_shape) + padded_f = np.fft.fftshift(np.fft.fftn(np.fft.ifftshift(padded))) + com = ndi.center_of_mass(np.power(np.abs(padded_f), 2)) + sub_pixel_shifted = ut.sub_pixel_shift(padded_f, new_shape[0]/2.0-com[0], new_shape[1]/2.0-com[1], new_shape[2]/2.0-com[2]) + ramp_removed_padded = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(sub_pixel_shifted))) + ramp_removed = ut.crop_center(ramp_removed_padded, arr.shape) + + return ramp_removed + + +def center(image, support): + dims = image.shape + image, support = ut.get_centered_both(image, support) + + # place center of mass image*support in the center + for ax in range(len(dims)): + com = ndi.center_of_mass(np.absolute(image) * support) + image = shift(image, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) + support = shift(support, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) + + # set center phase to zero, use as a reference + phi0 = m.atan2(image.imag[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)], image.real[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)]) + image = image * np.exp(-1j * phi0) + + return image, support + + +def get_crop(params, shape): + crop = [] + for i in range(len(shape)): + if params.crop is None: + crop.append(shape[i]) + else: + crop.append(params.crop[i]) + if isinstance(crop[i], float): + crop[i] = int(crop[i]*shape[i]) + return crop + + +def save_CX(conf, image, support, coh, save_dir, last_scan): + image = np.swapaxes(image, 1,2) + image = np.swapaxes(image, 0,1) + support = np.swapaxes(support, 1,2) + support = np.swapaxes(support, 0,1) + image, support = center(image, support) + params = DispalyParams(conf, last_scan) + image = remove_ramp(image) + viz = CXDViz() + viz.set_array(image) + viz.set_geometry(params, image.shape) + crop = get_crop(params, image.shape) + viz.set_crop(crop[0], crop[1], crop[2]) # save image + image_file = os.path.join(save_dir, 'image') + viz.write_structured_grid(image_file) + viz.set_array(support) + support_file = os.path.join(save_dir, 'support') + viz.write_structured_grid(support_file) + if coh is not None: + coh = np.swapaxes(coh, 1, 2) + # investigate if pad_center before fft or after + coh = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(coh))).real + coh = ut.get_zero_padded_centered(coh, image.shape) + coh_file = os.path.join(save_dir, 'coherence') + viz.set_array(coh) + viz.write_structured_grid(coh_file) + +# a = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') +# remove_ramp(a, 3) diff --git a/reccdi/src_py/utilities/simple.py b/reccdi/src_py/utilities/simple.py new file mode 100644 index 0000000..41ce888 --- /dev/null +++ b/reccdi/src_py/utilities/simple.py @@ -0,0 +1,20 @@ +#! /usr/bin/env python +from pyevtk.hl import gridToVTK +import numpy as np + +# Dimensions +nx, ny, nz = 11, 11, 11 + +X = np.linspace(1., -1., nx) +Y = np.linspace(-1., 1., ny) +Z = np.linspace(-1., 1., nz) + +x, y, z = np.meshgrid(X, Y, Z, indexing='ij') + +r = np.sqrt(x**2 + y**2 + z**2) + +gridToVTK('./structured', x, y, z, pointData={'r': r, 'x': x}) + +r = 1.-np.sqrt(x**2 + y**2 + z**2) + +gridToVTK('./structured2', x, y, z, pointData={'r': r, 'x': x}) diff --git a/reccdi/src_py/utilities/tools.py b/reccdi/src_py/utilities/tools.py new file mode 100644 index 0000000..aa13a3b --- /dev/null +++ b/reccdi/src_py/utilities/tools.py @@ -0,0 +1,537 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + +""" +Please make sure the installation :ref:`pre-requisite-reference-label` are met. +This module is a suite of utility mehods. +""" + +import tifffile as tf +import numpy as np +import os +import logging +import stat + +__author__ = "Barbara Frosik" +__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." +__docformat__ = 'restructuredtext en' +__all__ = ['read_tif', + 'get_opencl_dim', + 'binning', + 'get_centered', + 'adjust_dimensions', + 'crop_center', + 'flip'] + + +def get_logger(name, ldir=''): + logger = logging.getLogger(name) + logger.setLevel(logging.DEBUG) + log_file = os.path.join(ldir, 'default.log') + fh = logging.FileHandler(log_file) + fh.setLevel(logging.DEBUG) + formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') + fh.setFormatter(formatter) + logger.addHandler(fh) + return logger + + +def read_tif(filename): + """ + This method reads tif type file containing experiment data and returns the data as array. + Parameters + ---------- + filename : str + a filename containing the experiment data + Returns + ------- + data : array + an array containing the experiment data + """ + + ar = tf.imread(filename) + ar = np.swapaxes(ar, 0, 2) +# ar = np.swapaxes(ar, 0, 1) + return ar + + +def save_tif(arr, tif_file): + arr = np.swapaxes(arr, 0, 2) + arr = np.swapaxes(arr, 1, 2) + tf.imsave(tif_file, arr.astype(np.int32)) + + +def get_good_dim(dim): + """ + This function calculates the dimension supported by opencl library (i.e. is multiplier of 2,3, or 5) and is closest to the + given starting dimension, and spaced by the given step. + If the dimension is not supported the function adds step value and verifies the new dimension. It iterates until it finds + supported value. + Parameters + ---------- + dim : int + a dimension that needs to be tranformed to one that is supported by the opencl library, if it is not already + + step : int + a delta to increase the dimension + Returns + ------- + dim : int + a dimension that is supported by the opencl library, and closest to the original dimension by n*step + """ + + def is_correct(x): + sub = x + if sub % 3 == 0: + sub = sub / 3 + if sub % 3 == 0: + sub = sub / 3 + if sub % 5 == 0: + sub = sub / 5 + while sub % 2 == 0: + sub = sub / 2 + return sub == 1 + + new_dim = dim + if new_dim % 2 == 1: + new_dim += 1 + while not is_correct(new_dim): + new_dim += 2 + return new_dim + + +def get_opencl_dim1(dim, step): + """ + This function calculates the dimension supported by opencl library (i.e. is multiplier of 2,3, or 5) and is closest to the + given starting dimension, and spaced by the given step. + If the dimension is not supported the function adds step value and verifies the new dimension. It iterates until it finds + supported value. + Parameters + ---------- + dim : int + a dimension that needs to be tranformed to one that is supported by the opencl library, if it is not already + + step : int + a delta to increase the dimension + Returns + ------- + dim : int + a dimension that is supported by the opencl library, and closest to the original dimension by n*step + """ + + def is_correct(x): + sub = x + while sub % 2 == 0: + sub = sub / 2 + while sub % 3 == 0: + sub = sub / 3 + while sub % 5 == 0: + sub = sub / 5 + return sub == 1 + + new_dim = dim + while not is_correct(new_dim): + new_dim += step + return new_dim + + +def binning(array, binsizes): + """ + This function does the binning of the array. The array is binned in each dimension by the corresponding binsizes elements. + If binsizes list is shorter than the array dimensions, the remaining dimensions are not binned. The elements in + a bucket are summed. + Parameters + ---------- + array : array + the original array to be binned + + binsizes : list + a list defining binning buckets for corresponding dimensions + Returns + ------- + array : array + the binned array + """ + + data_dims = array.shape + # trim array + for ax in range(len(binsizes)): + cut_slices = range(data_dims[ax] - data_dims[ax] % binsizes[ax], data_dims[ax]) + array = np.delete(array, cut_slices, ax) + + binned_array = array + new_shape = list(array.shape) + + for ax in range(len(binsizes)): + if binsizes[ax] > 1: + new_shape[ax] = binsizes[ax] + new_shape.insert(ax, int(array.shape[ax] / binsizes[ax])) + binned_array = np.reshape(binned_array, tuple(new_shape)) + binned_array = np.sum(binned_array, axis=ax + 1) + new_shape = list(binned_array.shape) + return binned_array + + +# ar = np.asarray([1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9]) +# ar.resize((5,9)) +# print ('ar', ar) +# b = binning(ar, (2,2)) +# print ('b',b) +# c = binning1(ar,(2,2)) +# print ('c',c) + + +def get_centered(arr, center_shift): + """ + This function finds a greatest value in the array, and puts it in a center of a new array. If center_shift is + not zeros, the array will be shifted accordingly. The shifted elements are rolled into the other end of array. + Parameters + ---------- + arr : array + the original array to be centered + center_shift : list + a list defining shift of the center + Returns + ------- + array : array + the centered array + """ + max_coordinates = list(np.unravel_index(np.argmax(arr), arr.shape)) + max_coordinates = np.add(max_coordinates, center_shift) + shape = arr.shape + centered = arr + for i in range(len(max_coordinates)): + centered = np.roll(centered, int(shape[i] / 2) - max_coordinates[i], i) + + return centered + + +def get_centered_both(arr, support): + """ + This function finds a greatest value in the array, and puts it in a center of a new array. If center_shift is + not zeros, the array will be shifted accordingly. The shifted elements are rolled into the other end of array. + Parameters + ---------- + arr : array + the original array to be centered + support : array + the associated array shifted the same way centered array is + Returns + ------- + centered : array + the centered array + """ + max_coordinates = list(np.unravel_index(np.argmax(arr), arr.shape)) + shape = arr.shape + centered = arr + centered_supp = support + for i in range(len(max_coordinates)): + centered = np.roll(centered, int(shape[i] / 2) - max_coordinates[i], i) + centered_supp = np.roll(centered_supp, int(shape[i] / 2) - max_coordinates[i], i) + + return centered, centered_supp + + +def get_zero_padded_centered(arr, new_shape): + """ + This function pads the array with zeros to the new shape with the array in the center. + Parameters + ---------- + arr : array + the original array to be padded and centered + new_shape : tuple + a list of new dimensions + Returns + ------- + array : array + the zero padded centered array + """ + shape = arr.shape + pad = [] + c_vals = [] + for i in range(len(new_shape)): + pad.append((0, new_shape[i] - shape[i])) + c_vals.append((0.0, 0.0)) + arr = np.lib.pad(arr, (pad), 'constant', constant_values=c_vals) + + centered = arr + for i in range(len(new_shape)): + centered = np.roll(centered, int((new_shape[i] - shape[i] + 1) / 2), i) + + return centered + + +def adjust_dimensions(arr, pads): + """ + This function adds to or subtracts from each dimension of the array elements defined by pad. If the pad is positive, + the array is padded in this dimension. If the pad is negative, the array is cropped. + The dimensions of the new array are supported by the opencl library. + Parameters + ---------- + arr : array + the array to pad/crop + pad : list + list of three pad values, for each dimension + Returns + ------- + array : array + the padded/cropped array + """ + # logger = get_logger('adjust_dimensions') + old_dims = arr.shape + start = [] + stop = [] + for i in range(len(old_dims)): + pad = pads[i] + first = max(0, -pad[0]) + last = old_dims[i] - max(0, -pad[1]) + if first >= last: + print ('the crop exceeds size, please change the crop and run again') + return None + else: + start.append(first) + stop.append(last) + + cropped = arr[ start[0]:stop[0], start[1]:stop[1], start[2]:stop[2] ] + # logger.info('cutting from to ' + str(crop[0]) + ', ' + str(old_dims[0]-crop[1]) + ', ' + str(crop[2]) + ', ' \ + # + str(old_dims[1]-crop[3]) + ', ' + str(crop[4]) + ', ' + str(old_dims[2]-crop[5])) + dims = cropped.shape + c_vals = [] + new_pad = [] + for i in range(len(dims)): + pad = pads[i] + # find a good dimension and find padding + temp_dim = old_dims[i] + pad[0] + pad[1] + new_dim = get_good_dim(temp_dim) + added = new_dim - temp_dim + # if the pad is positive + pad_front = max(0, pad[0]) + int(added / 2) + pad_end = new_dim - dims[i] - pad_front + new_pad.append((pad_front, pad_end)) + c_vals.append((0.0, 0.0)) + adjusted = np.pad(cropped, new_pad, 'constant', constant_values=c_vals) + + # logger.info('pads ' + str(new_pad[0]) + ', ' + str(new_pad[1]) + ', ' + str(new_pad[2]) + ', ' + str(new_pad[3]) \ + # + ', ' + str(new_pad[4]) + ', ' + str(new_pad[5])) + # logger.info('old dim, new dim (' + str(dims[0]) + ',' + str(dims[1]) + ',' + str(dims[2]) + ') (' + str(arr.shape[0]) +\ + # ',' + str(arr.shape[1]) + ',' + str(arr.shape[1]) + ')') + + return adjusted + +# ar = np.zeros((256,256,90)) +# pads = (-100,-100,0,0,0,0) +# ar = np.zeros((81,256,256)) +# pads = (5,-7,-20,-30,4,-20) +# arr = adjust_dimensions(ar,pads) +# print (arr.shape) + +def crop_center(arr, new_size): + size = arr.shape + cropped = arr + for i in range(len(size)): + crop_front = int((size[i] - new_size[i]) / 2) + crop_end = crop_front + new_size[i] + splitted = np.split(cropped, [crop_front, crop_end], axis=i) + cropped = splitted[1] + + return cropped + + +# ar = np.zeros((81,256,256)) +# new_size = (40, 200,100) +# arr = crop_center(ar,new_size) +# print (arr.shape) + +def get_norm(arr): + return sum(sum(sum(abs(arr) ** 2))) + + +def flip(m, axis): + """ + Copied from numpy 1.12.0. + """ + if not hasattr(m, 'ndim'): + m = np.asarray(m) + indexer = [slice(None)] * m.ndim + try: + indexer[axis] = slice(None, None, -1) + except IndexError: + raise ValueError("axis=%i is invalid for the %i-dimensional input array" + % (axis, m.ndim)) + return m[tuple(indexer)] + + +def gaussian(shape, sigmas, alpha=1): + grid = np.full(shape, 1.0) + for i in range(len(shape)): + # prepare indexes for tile and transpose + tile_shape = list(shape) + tile_shape.pop(i) + tile_shape.append(1) + trans_shape = list(range(len(shape) - 1)) + trans_shape.insert(i, len(shape) - 1) + + multiplier = - 0.5 * alpha / pow(sigmas[i], 2) + line = np.linspace(-(shape[i] - 1) / 2.0, (shape[i] - 1) / 2.0, shape[i]) + gi = np.tile(line, tile_shape) + gi = np.transpose(gi, tuple(trans_shape)) + exponent = np.power(gi, 2) * multiplier + gi = np.exp(exponent) + grid = grid * gi + + grid_total = np.sum(grid) + return grid / grid_total + + +def gauss_conv_fft(arr, sigmas): + arr_sum = np.sum(abs(arr)) + arr_f = np.fft.ifftshift(np.fft.fftn(np.fft.ifftshift(arr))) + shape = list(arr.shape) + for i in range(len(sigmas)): + sigmas[i] = shape[i] / 2.0 / np.pi / sigmas[i] + convag = arr_f * gaussian(shape, sigmas) + convag = np.fft.ifftshift(np.fft.ifftn(np.fft.ifftshift(convag))) + convag = convag.real + convag = np.clip(convag, 0, None) + correction = arr_sum / np.sum(convag) + convag *= correction + return convag + + +def shrink_wrap(arr, threshold, sigma, type='gauss'): + sigmas = [sigma] * len(arr.shape) + if type == 'gauss': + convag = gauss_conv_fft(abs(arr), sigmas) + max_convag = np.amax(convag) + convag = convag / max_convag + support = np.where(convag >= threshold, 1, 0) + return support + else: + return None + + +def read_results(read_dir): + try: + imagefile = os.path.join(read_dir, 'image.npy') + image = np.load(imagefile) + + supportfile = os.path.join(read_dir, 'support.npy') + support = np.load(supportfile) + + try: + cohfile = os.path.join(read_dir, 'coherence.npy') + coh = np.load(cohfile) + except: + coh = None + except: + pass + + return image, support, coh + + +def save_metrics(errs, dir, metrics=None): + metric_file = os.path.join(dir, 'summary') + if os.path.isfile(metric_file): + os.remove(metric_file) + with open(metric_file, 'a') as f: + if metrics is not None: + f.write('metric result\n') + for key in metrics: + value = metrics[key] + f.write(key + ' = ' + str(value) + '\n') + f.write('\nerrors by iteration\n') + for er in errs: + f.write(str(er) + ' ') + f.close() + +def write_plot_errors(save_dir): + plot_file = os.path.join(save_dir, 'plot_errors.py') + f = open(plot_file, 'w+') + f.write("#! /usr/bin/env python\n") + f.write("import matplotlib.pyplot as plt\n") + f.write("import numpy as np\n") + f.write("import sys\n") + f.write("import os\n") + f.write("current_dir = sys.path[0]\n") + f.write("errs = np.load(os.path.join(current_dir, 'errors.npy')).tolist()\n") + f.write("errs.pop(0)\n") + f.write("plt.plot(errs)\n") + f.write("plt.ylabel('errors')\n") + f.write("plt.show()") + f.close() + st = os.stat(plot_file) + os.chmod(plot_file, st.st_mode | stat.S_IEXEC) + + +def save_results(image, support, coh, errs, reciprocal, save_dir, metrics=None): + if not os.path.exists(save_dir): + os.makedirs(save_dir) + + image_file = os.path.join(save_dir, 'image') + np.save(image_file, image) + support_file = os.path.join(save_dir, 'support') + np.save(support_file, support) + errs_file = os.path.join(save_dir, 'errors') + np.save(errs_file, errs) + if not coh is None: + coh_file = os.path.join(save_dir, 'coherence') + np.save(coh_file, coh) + reciprocal_file = os.path.join(save_dir, 'reciprocal') + np.save(reciprocal_file, reciprocal) + write_plot_errors(save_dir) + if metrics is not None: + save_metrics(errs, save_dir, metrics) + else: + save_metrics(errs, save_dir) + + +def save_multiple_results(samples, images, supports, cohs, errs, reciprocals, save_dir, metrics=None): + """ + This function saves results of multiple reconstructions to directory tree in save_dir. + Parameters + ---------- + samples : int + number of reconstruction sets results + images : list + list of numpy arrays containing reconstructed images + supports : list + list of numpy arrays containing support of reconstructed images + cohs : list + list of numpy arrays containing coherence of reconstructed images + save_dir : str + a directory to save the results + Returns + ------- + nothing + """ + for i in range(samples): + subdir = os.path.join(save_dir, str(i)) + if metrics is None: + save_results(images[i], supports[i], cohs[i], np.asarray(errs[i]), reciprocals[i], subdir) + else: + save_results(images[i], supports[i], cohs[i], np.asarray(errs[i]), reciprocals[i], subdir, metrics[i]) + + +def sub_pixel_shift(arr, row_shift, col_shift, z_shift): + # arr is 3D + buf2ft = np.fft.fftn(arr) + shape = arr.shape + Nr = np.fft.ifftshift(np.array(list(range(-int(np.floor(shape[0] / 2)), shape[0] - int(np.floor(shape[0] / 2)))))) + Nc = np.fft.ifftshift(np.array(list(range(-int(np.floor(shape[1] / 2)), shape[1] - int(np.floor(shape[1] / 2)))))) + Nz = np.fft.ifftshift(np.array(list(range(-int(np.floor(shape[2] / 2)), shape[2] - int(np.floor(shape[2] / 2)))))) + [Nc, Nr, Nz] = np.meshgrid(Nc, Nr, Nz) + Greg = buf2ft * np.exp(1j * 2 * np.pi * (-row_shift * Nr / shape[0] - col_shift * Nc / shape[1] - z_shift * Nz / shape[2])) + return np.fft.ifftn(Greg) + + +def arr_property(arr): + arr1 = abs(arr) + print ('norm', np.sum(pow(abs(arr),2))) + max_coordinates = list(np.unravel_index(np.argmax(arr1), arr.shape)) + print ('max coords, value', max_coordinates, arr[max_coordinates[0], max_coordinates[1],max_coordinates[2]]) diff --git a/reccdi/src_py/utilities/transtest.py b/reccdi/src_py/utilities/transtest.py new file mode 100644 index 0000000..f4756e3 --- /dev/null +++ b/reccdi/src_py/utilities/transtest.py @@ -0,0 +1,22 @@ +import numpy as np + +dims=(5,5,5) +dxdir=1 +dydir=1 +dzdir=1 + +r = np.mgrid[(dims[0] - 1) * dxdir:-dxdir:-dxdir, \ + 0:dims[1] * dydir:dydir,\ + 0:dims[2] * dzdir:dzdir] + +origshape=r.shape +r.shape = 3, dims[0] * dims[1] * dims[2] +r = r.transpose() + +Tdir=np.array( [[0.1,0,0],[0,1,0],[0,0,1]]) +print( Tdir) +dir_coords = np.dot(r, Tdir) + +dir_coords = dir_coords.transpose() +dir_coords.shape=origshape + diff --git a/reccdi/src_py/utilities/viz_util.py b/reccdi/src_py/utilities/viz_util.py new file mode 100644 index 0000000..1074dc6 --- /dev/null +++ b/reccdi/src_py/utilities/viz_util.py @@ -0,0 +1,174 @@ +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + +import os +import numpy as np +import math as m +import pyevtk.hl as vtk + +__author__ = "Barbara Frosik" +__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." +__docformat__ = 'restructuredtext en' + + +class CXDViz(): + + cropx = 0.5 + cropy = 0.5 + cropz = 0.5 + dir_arrs={} + recip_arrs={} + + def __init__(self): + #self.imd = tvtk.ImageData() + #self.sg = tvtk.StructuredGrid() + pass + + + def set_geometry(self, lam, delta, gamma, dpx, dpy, dth): + lam = lam + tth = delta + gam = gamma + dpx = dpx + dpy = dpy + dth = dth + dQdpx = np.zeros(3) + dQdpy = np.zeros(3) + dQdth = np.zeros(3) + Astar = np.zeros(3) + Bstar = np.zeros(3) + Cstar = np.zeros(3) + + # dQdpx[0] = -m.cos(tth) * m.cos(gam) + # dQdpx[1] = 0.0 + # dQdpx[2] = +m.sin(tth) * m.cos(gam) + dQdpx[0] = -m.cos(tth) + dQdpx[1] = 0.0 + dQdpx[2] = +m.sin(tth) + print("dqdpx",dQdpx) + + dQdpy[0] = m.sin(tth) * m.sin(gam) + dQdpy[1] = -m.cos(gam) + dQdpy[2] = m.cos(tth) * m.sin(gam) + print("dqdpy",dQdpy) + + dQdth[0] = -m.cos(tth) * m.cos(gam) + 1.0 + dQdth[1] = 0.0 + dQdth[2] = m.sin(tth) * m.cos(gam) + print("dqdth",dQdth) + + Astar[0] = 2 * m.pi / lam * dpx * dQdpx[0] + Astar[1] = 2 * m.pi / lam * dpx * dQdpx[1] + Astar[2] = 2 * m.pi / lam * dpx * dQdpx[2] + + Bstar[0] = (2 * m.pi / lam) * dpy * dQdpy[0] + Bstar[1] = (2 * m.pi / lam) * dpy * dQdpy[1] + Bstar[2] = (2 * m.pi / lam) * dpy * dQdpy[2] + + Cstar[0] = (2 * m.pi / lam) * dth * dQdth[0] + Cstar[1] = (2 * m.pi / lam) * dth * dQdth[1] + Cstar[2] = (2 * m.pi / lam) * dth * dQdth[2] + + denom = np.dot(Astar, np.cross(Bstar, Cstar)) + A = 2 * m.pi * np.cross(Bstar, Cstar) / denom + B = 2 * m.pi * np.cross(Cstar, Astar) / denom + C = 2 * m.pi * np.cross(Astar, Bstar) / denom + + self.Trecip = np.zeros(9) + self.Trecip.shape = (3, 3) + self.Trecip[:, 0] = Astar + self.Trecip[:, 1] = Bstar + self.Trecip[:, 2] = Cstar +# self.Trecip[:, 0] = [2,0,1] +# self.Trecip[:, 1] = [0,1,0] +# self.Trecip[:, 2] = [0,0,1] + print("Recip") + print(Astar,Bstar,Cstar) + print(self.Trecip) + + self.Tdir = np.zeros(9) + self.Tdir.shape = (3, 3) + self.Tdir = np.array((A, B, C)) + print("Direct") + print(A,B,C) + print(self.Tdir) + + self.dirspace_uptodate=0 + self.recipspace_uptodate=0 + return dQdpx, dQdpy, dQdth + + def update_dirspace(self, shape): + print("Updating dirspace coords") + dims = list(shape) + self.dxdir = 1.0 / shape[0] + self.dydir = 1.0 / shape[1] + self.dzdir = 1.0 / shape[2] + + r = np.mgrid[ + 0:dims[0] * self.dxdir:self.dxdir, \ + 0:dims[1] * self.dydir:self.dydir,\ + 0:dims[2] * self.dzdir:self.dzdir] +# r = np.mgrid[ +# 0:dims[0]*self.dxdir:self.dxdir, \ +# (dims[1]-1)*self.dydir:-self.dydir:-self.dydir,\ +# 0:dims[2]*self.dzdir:self.dzdir] + + origshape=r.shape + r.shape = 3, dims[0] * dims[1] * dims[2] + #r = r.transpose() + + self.dir_coords = np.dot(self.Tdir, r) + +# self.dir_coords = self.dir_coords.transpose() + self.dir_coords.shape=origshape + print("dir shape", self.dir_coords.shape) + self.dirspace_uptodate=1 + + def update_recipspace(self, shape): + dims = list(shape) + q = np.mgrid[ 0:dims[0], 0:dims[1], 0:dims[2]] + + origshape=q.shape + q.shape = 3, dims[0] * dims[1] * dims[2] + + self.recip_coords = np.dot(self.Trecip, q) + self.recip_coords.shape=origshape + self.recipspace_uptodate=1 + + def add_array(self, array, name, space='direct', logentry=None): + + #Need to add something to ensure arrays are all the same dimension. + #Need to add crop of viz output arrays + if len(array.shape) < 3: + newdims = list(array.shape) + for i in range(3 - len(newdims)): + newdims.append(1) + array.shape = tuple(newdims) + print("adding array of shape ", array.shape) + if space=='direct': + self.dir_arrs[name]=array + if (not self.dirspace_uptodate): + self.update_dirspace(array.shape) + elif space=='recip': + self.recip_arrs[name]=array + if (not self.recipspace_uptodate): + self.update_recipspace(array.shape) + else: + return + + def write_directspace(self, filename, **args): + print(self.dir_arrs.keys()) + vtk.gridToVTK(filename, self.dir_coords[0,:,:,:].copy(), \ + self.dir_coords[1,:,:,:].copy(), \ + self.dir_coords[2,:,:,:].copy(), pointData=self.dir_arrs) + vtk.imageToVTK(filename, pointData=self.dir_arrs) + + def write_recipspace(self, filename, **args): + vtk.gridToVTK(filename, self.recip_coords[0,:,:,:].copy(), \ + self.recip_coords[1,:,:,:].copy(), \ + self.recip_coords[2,:,:,:].copy(), pointData=self.recip_arrs) + vtk.imageToVTK(filename, pointData=self.recip_arrs) + diff --git a/reccdi/src_py/utilities/viz_util_dirdemo.py b/reccdi/src_py/utilities/viz_util_dirdemo.py new file mode 100644 index 0000000..7da7654 --- /dev/null +++ b/reccdi/src_py/utilities/viz_util_dirdemo.py @@ -0,0 +1,42 @@ +if __name__ =="__main__": + import numpy as np + import math as m + import tifffile as tif + import tools as t + import viz_util_xu as vu + import prep_noconfig as prep + import os + + #binning of the data, this is not actually done, it's to account for previous binning in the saved data. + dbin1=2 + dbin2=2 + dir="/Users/rharder/Box/cdi-master/reccdi/src_py/utilities/NX2019a-3_483/results" + fname=os.path.join(dir,"image.npy") + #a=t.read_tif("cropped.tif").copy() #copy ensures array is contiguous which pyevtk needs + #b=prep.read_scan("/Users/rharder/Desktop/cropped", None, None) + a=np.load(fname)[:-28,:,:] + +# tif.imsave("RawDiffraction.tif", b) +# print("raw data",b.shape) +# print("imagejsave",a.shape) + + #scan info. + lam=1.37 #wavelength + delta=33.0*m.pi/180 #detector angle 1 + gamma=11.0*m.pi/180 #detector angle 2 + dpx=55e-6/0.500 #pixel size divided by detector dist + dpy=55e-6/0.500 + dth=0.01*m.pi/180 #rocking curve scan step. Everything in radians + + vr=vu.CXDViz() + vr.set_geometry(lam, delta, gamma, dbin1*dpx, dbin2*dpy, dth) + vr.add_array(abs(a), "imamp", space='direct') + #vr.add_array(np.angle(a), "imph", space='direct') + vr.write_directspace("dirtest.vtk") + + + +# q=vr.recip_coords +# qmag=np.sqrt(q[0,:,:,:]**2 + q[1,:,:,:]**2 + q[2,:,:,:]**2) +# vr.add_array(qmag, "qmag", space='recip') #add a second property that can be used for color in viz. +# vr.write_recipspace("RawDiffraction") diff --git a/reccdi/src_py/utilities/viz_util_recipdemo.py b/reccdi/src_py/utilities/viz_util_recipdemo.py new file mode 100644 index 0000000..d66e5a5 --- /dev/null +++ b/reccdi/src_py/utilities/viz_util_recipdemo.py @@ -0,0 +1,34 @@ +if __name__ =="__main__": + import numpy as np + import math as m + import tifffile as tif + import tools as t + import viz_util as vu + import prep_noconfig as prep + + #binning of the data, this is not actually done, it's to account for previous binning in the saved data. + dbin1=1 + dbin2=1 + a=t.read_tif("cropped.tif").copy() #copy ensures array is contiguous which pyevtk needs + b=prep.read_scan("/Users/rharder/Desktop/cropped", None, None) + + tif.imsave("RawDiffraction.tif", b) + print("raw data",b.shape) + print("imagejsave",a.shape) + + #scan info. + lam=.137 #wavelength + delta=33.0*m.pi/180 #detector angle 1 + gamma=11.0*m.pi/180 #detector angle 2 + dpx=55e-6/0.5 #pixel size divided by detector dist + dpy=55e-6/0.5 + dth=0.01*m.pi/180 #rocking curve scan step. Everything in radians + + vr=vu.CXDViz() + vr.set_geometry(lam, delta, gamma, dbin1*dpx, dbin2*dpy, dth) + vr.add_array(b, "dp", space='recip') + + q=vr.recip_coords + qmag=np.sqrt(q[0,:,:,:]**2 + q[1,:,:,:]**2 + q[2,:,:,:]**2) + vr.add_array(qmag, "qmag", space='recip') #add a second property that can be used for color in viz. + vr.write_recipspace("RawDiffraction") diff --git a/reccdi/src_py/utilities/viz_util_xu.py b/reccdi/src_py/utilities/viz_util_xu.py new file mode 100644 index 0000000..bb05483 --- /dev/null +++ b/reccdi/src_py/utilities/viz_util_xu.py @@ -0,0 +1,330 @@ +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + +import os +import numpy as np +import scipy.ndimage as ndi +import math as m +import pyevtk.hl as vtk +import xrayutilities.experiment as xuexp +import reccdi.src_py.utilities.utils as ut +from reccdi.src_py.utilities.utils import measure +import reccdi.src_py.utilities.spec as sput + +__author__ = "Barbara Frosik" +__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." +__docformat__ = 'restructuredtext en' + +class DispalyParams: + """ + This class encapsulates parameters defining image display. The parameters are +read from config file on + construction + """ + + def __init__(self, config): + """ + The constructor gets config file and fills out the class members. + + Parameters + ---------- + conf : str + configuration file name + + Returns + ------- + none + """ + deg2rad = np.pi / 180.0 + try: + specfile = config['specfile'] + last_scan = config['last_scan'] + self.lam, delta, gamma, dth, arm, pixel,energy = sput.parse_spec(specfile, +last_scan) + self.delta = delta * deg2rad + self.gamma = gamma * deg2rad + self.dth = dth * deg2rad + self.arm = arm / 1000 + self.energy = energy + pixel = pixel[1:-1] + pixel = pixel.split(',') + pixel[0], pixel[1] = float(pixel[0]), float(pixel[1]) + except Exception as e: + pass + # override the parsed parameters with entries in config file + try: + self.energy = config['energy'] + self.lam = 12.398 / energy / 10 + except AttributeError: + pass + try: + self.delta = config['delta'] * deg2rad + except AttributeError: + pass + try: + self.gamma = config['gamma'] * deg2rad + except AttributeError: + pass + try: + self.dth = config['dth'] * deg2rad + except AttributeError: + pass + try: + self.arm = config['arm'] / 1000 + except AttributeError: + pass + try: + pixel = config['pixel'] + except AttributeError: + pass + + try: + self.binning = [] + binning = config['binning'] + for i in range(len(binning)): + self.binning.append(binning[i]) + for _ in range(3 - len(self.binning)): + self.binning.append(1) + except AttributeError: + self.binning = [1,1,1] + self.px = pixel[0] * self.binning[0] + self.py = pixel[1] * self.binning[1] + self.dpx = pixel[0] * self.binning[0] / self.arm / self.binning[2] + self.dpy = pixel[1] * self.binning[1] / self.arm / self.binning[2] + try: + self.crop = [] + crop = config['crop'] + for i in range(len(crop)): + self.crop.append(crop[i]) + for _ in range(3 - len(self.crop)): + self.crop.append(1.0) + crop[0], crop[1] = crop[1], crop[0] + except AttributeError: + self.crop = None + + + + + + +class CXDViz(): + + cropx = 0.5 + cropy = 0.5 + cropz = 0.5 + dir_arrs={} + recip_arrs={} + + def __init__(self): + #self.imd = tvtk.ImageData() + #self.sg = tvtk.StructuredGrid() + pass + + + #def set_geometry(self, lam, delta, gamma, dpx, dpy, dth): + @measure + def set_geometry(self, params, shape): + self.params = params + lam = params.lam + tth = params.delta + gam = params.gamma + px = params.px + py = params.py + dpx = params.dpx + dpy = params.dpy + dth = params.dth + energy = params.energy + dQdpx = np.zeros(3) + dQdpy = np.zeros(3) + dQdth = np.zeros(3) + Astar = np.zeros(3) + Bstar = np.zeros(3) + Cstar = np.zeros(3) + + print("running the xrayutilities version") + self.qc=xuexp.QConversion(['y+','z-','x-'], ['y+','x-'],(0,0,1),en=energy*1000) + self.qc.init_area('x+','y-', shape[0],shape[1], 2,2, distance=params.arm, pwidth1=px, pwidth2=py) + + q1=np.array(self.qc.area(0.0,0,0,tth,gam,deg=False)) + q2=np.array(self.qc.area(dth,0,0,tth,gam,deg=False)) + Astar=q1[:,1,0]-q1[:,0,0] + Bstar=q1[:,0,1]-q1[:,0,0] + Cstar=(q2-q1)[:,0,0] + + denom = np.dot(Astar, np.cross(Bstar, Cstar)) + A = 2 * m.pi * np.cross(Bstar, Cstar) / denom + B = 2 * m.pi * np.cross(Cstar, Astar) / denom + C = 2 * m.pi * np.cross(Astar, Bstar) / denom + + self.Trecip = np.zeros(9) + self.Trecip.shape = (3, 3) + self.Trecip[:, 0] = Astar + self.Trecip[:, 1] = Bstar + self.Trecip[:, 2] = Cstar +# self.Trecip[:, 0] = [2,0,1] +# self.Trecip[:, 1] = [0,1,0] +# self.Trecip[:, 2] = [0,0,1] + print("Recip") + print(Astar,Bstar,Cstar) + print(self.Trecip) + + self.Tdir = np.zeros(9) + self.Tdir.shape = (3, 3) + self.Tdir = np.array((A, B, C)).transpose() + print("Direct") + print(A,B,C) + print(self.Tdir) + + self.dirspace_uptodate=0 + self.recipspace_uptodate=0 + return dQdpx, dQdpy, dQdth + + def update_dirspace(self, shape): + print("Updating dirspace coords") + dims = list(shape) + self.dxdir = 1.0 / shape[0] + self.dydir = 1.0 / shape[1] + self.dzdir = 1.0 / shape[2] + + r = np.mgrid[ + 0:dims[0] * self.dxdir:self.dxdir, \ + 0:dims[1] * self.dydir:self.dydir,\ + 0:dims[2] * self.dzdir:self.dzdir] +# r = np.mgrid[ +# 0:dims[0]*self.dxdir:self.dxdir, \ +# (dims[1]-1)*self.dydir:-self.dydir:-self.dydir,\ +# 0:dims[2]*self.dzdir:self.dzdir] + + origshape=r.shape + r.shape = 3, dims[0] * dims[1] * dims[2] + #r = r.transpose() + + self.dir_coords = np.dot(self.Tdir, r) + +# self.dir_coords = self.dir_coords.transpose() + self.dir_coords.shape=origshape + print("dir shape", self.dir_coords.shape) + self.dirspace_uptodate=1 + + def update_recipspace(self, shape): + dims = list(shape) + q = np.mgrid[ 0:dims[0], 0:dims[1], 0:dims[2]] + + origshape=q.shape + q.shape = 3, dims[0] * dims[1] * dims[2] + + self.recip_coords = np.dot(self.Trecip, q) + self.recip_coords.shape=origshape + self.recipspace_uptodate=1 + + def clear_direct_arrays(self): + self.dir_arrs.clear() + def clear_recip_arrays(self): + self.recip_arrs.clear() + + @measure + def add_array(self, array, name, space='direct', logentry=None): + + #Need to add something to ensure arrays are all the same dimension. + #Need to add crop of viz output arrays + if len(array.shape) < 3: + newdims = list(array.shape) + for i in range(3 - len(newdims)): + newdims.append(1) + array.shape = tuple(newdims) + print("adding array of shape ", array.shape) + if space=='direct': + self.dir_arrs[name]=array + if (not self.dirspace_uptodate): + self.update_dirspace(array.shape) + elif space=='recip': + self.recip_arrs[name]=array + if (not self.recipspace_uptodate): + self.update_recipspace(array.shape) + else: + return + + @measure + def write_directspace(self, filename, **args): + print(self.dir_arrs.keys()) + vtk.gridToVTK(filename, self.dir_coords[0,:,:,:].copy(), \ + self.dir_coords[1,:,:,:].copy(), \ + self.dir_coords[2,:,:,:].copy(), pointData=self.dir_arrs) + vtk.imageToVTK(filename, pointData=self.dir_arrs) + + def write_recipspace(self, filename, **args): + vtk.gridToVTK(filename, self.recip_coords[0,:,:,:].copy(), \ + self.recip_coords[1,:,:,:].copy(), \ + self.recip_coords[2,:,:,:].copy(), pointData=self.recip_arrs) + vtk.imageToVTK(filename, pointData=self.recip_arrs) + +def shift(arr, s0, s1, s2): + shifted = np.roll(arr, s0, axis=0) + shifted = np.roll(shifted, s1, axis=1) + return np.roll(shifted, s2, axis=2) + + +def center_of_mass(arr): + tot = np.sum(arr) + dims = arr.shape + xyz = [] + griddims = [] + for d in dims: + griddims.append(slice(0, d)) + grid = np.ogrid[griddims] + for g in grid: + xyz.append(np.sum(arr * g) / tot) + com = np.asarray(xyz) + com = np.ma.round(com).astype(np.int) + return list(com) + +@measure +def remove_ramp(arr, ups=1): + new_shape = list(arr.shape) + # pad zeros around arr, to the size of 3 times (ups = 3) of arr size + for i in range(len(new_shape)): + new_shape[i] = ups * new_shape[i] + padded = ut.get_zero_padded_centered(arr, new_shape) + padded_f = np.fft.fftshift(np.fft.fftn(np.fft.ifftshift(padded))) + com = ndi.center_of_mass(np.power(np.abs(padded_f), 2)) + sub_pixel_shifted = ut.sub_pixel_shift(padded_f, new_shape[0]/2.0-com[0], new_shape[1]/2.0-com[1], +new_shape[2]/2.0-com[2]) + ramp_removed_padded = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(sub_pixel_shifted))) + ramp_removed = ut.crop_center(ramp_removed_padded, arr.shape) + + return ramp_removed + + +@measure +def center(image, support): + dims = image.shape + image, support = ut.get_centered_both(image, support) + + # place center of mass image*support in the center + for ax in range(len(dims)): + com = ndi.center_of_mass(np.absolute(image) * support) + image = shift(image, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) + support = shift(support, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) + + # set center phase to zero, use as a reference + phi0 = m.atan2(image.imag[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)], image.real[int(dims[0]/2), int(dims[1]/2), +int(dims[2]/2)]) + image = image * np.exp(-1j * phi0) + + return image, support + + +def get_crop(params, shape): + crop = [] + for i in range(len(shape)): + if params.crop is None: + crop.append(shape[i]) + else: + crop.append(params.crop[i]) + if isinstance(crop[i], float): + crop[i] = int(crop[i]*shape[i]) + return crop + From b70e9402d79d9ad17111244e2b59609de52bdda9 Mon Sep 17 00:00:00 2001 From: Service Account for David Cyl Date: Thu, 23 Jan 2020 12:56:43 -0600 Subject: [PATCH 214/336] think the xrayutilities implementation with tvtk is correct now. Could never get the pyevtk to export without normals reversed. Still need to work on it. But at least tvtk is easy to install with conda. Did a bunch of rearranging of utilities/beamline sources. added a lot to beamlines/aps_34id in cdi/bin the run_disp.py is highly edited version of /home/beams/CXDUSER/cdisandbox/cdi/reccdi/src_py/run_scripts/run_disp.py which I deleted to end my confusion.. the cython pyx files will still have my paths in them. --- bin/{run_disp_new.py => run_disp_pyevtk.py} | 2 +- .../run_disp.py => bin/run_disp_tvtk.py | 69 ++-- .../src_py/beamlines/aps_34id/detectors.py | 35 ++ .../beamlines/aps_34id/diffractometer.py | 332 ++++++++++++++++ .../reccdi/src_py/beamlines/aps_34id/prep.py | 2 +- .../reccdi/src_py/beamlines/aps_34id}/spec.py | 30 +- .../reccdi/src_py/utilities/utils.py | 1 + .../reccdi/src_py/utilities/viz_util.py | 213 +++-------- .../src_py/utilities/viz_util_xu_pyevtk.py | 4 +- .../src_py/utilities/viz_util_xu_tvtk.py | 356 ++++++++++++++++++ reccdi/src_py/beamlines/aps_34id/detectors.py | 35 ++ .../beamlines/aps_34id/diffractometer.py | 334 ++++++++++++++++ reccdi/src_py/beamlines/aps_34id/prep.py | 2 +- reccdi/src_py/beamlines/aps_34id/spec.py | 41 ++ .../utilities/{ => archive}/CXDVizNX.py | 0 .../utilities/{ => archive}/localCXDVizNX.py | 0 .../utilities/{ => archive}/pyevtktest.py | 0 .../utilities/{ => archive}/rec_disp.py | 0 reccdi/src_py/utilities/archive/viz_util.py | 174 +++++++++ .../{ => archive}/viz_util_dirdemo.py | 0 .../{ => archive}/viz_util_recipdemo.py | 0 .../utilities/archive/viz_util_xu_pyevtk.py | 332 ++++++++++++++++ .../utilities/archive/viz_util_xu_tvtk.py | 333 ++++++++++++++++ reccdi/src_py/utilities/utils.py | 1 + reccdi/src_py/utilities/viz_util.py | 213 +++-------- 25 files changed, 2133 insertions(+), 376 deletions(-) rename bin/{run_disp_new.py => run_disp_pyevtk.py} (99%) rename reccdi/src_py/run_scripts/run_disp.py => bin/run_disp_tvtk.py (77%) create mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/detectors.py create mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/diffractometer.py rename {reccdi/src_py/utilities => build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id}/spec.py (63%) rename reccdi/src_py/utilities/viz_util_xu.py => build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util_xu_pyevtk.py (99%) create mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util_xu_tvtk.py create mode 100644 reccdi/src_py/beamlines/aps_34id/detectors.py create mode 100644 reccdi/src_py/beamlines/aps_34id/diffractometer.py create mode 100644 reccdi/src_py/beamlines/aps_34id/spec.py rename reccdi/src_py/utilities/{ => archive}/CXDVizNX.py (100%) rename reccdi/src_py/utilities/{ => archive}/localCXDVizNX.py (100%) rename reccdi/src_py/utilities/{ => archive}/pyevtktest.py (100%) rename reccdi/src_py/utilities/{ => archive}/rec_disp.py (100%) create mode 100644 reccdi/src_py/utilities/archive/viz_util.py rename reccdi/src_py/utilities/{ => archive}/viz_util_dirdemo.py (100%) rename reccdi/src_py/utilities/{ => archive}/viz_util_recipdemo.py (100%) create mode 100644 reccdi/src_py/utilities/archive/viz_util_xu_pyevtk.py create mode 100644 reccdi/src_py/utilities/archive/viz_util_xu_tvtk.py diff --git a/bin/run_disp_new.py b/bin/run_disp_pyevtk.py similarity index 99% rename from bin/run_disp_new.py rename to bin/run_disp_pyevtk.py index cc164a6..8f0b029 100755 --- a/bin/run_disp_new.py +++ b/bin/run_disp_pyevtk.py @@ -1,4 +1,4 @@ -import reccdi.src_py.utilities.viz_util_xu as vu +import reccdi.src_py.utilities.viz_util_xu_pyevtk as vu import reccdi.src_py.utilities.utils as ut from reccdi.src_py.utilities.utils import measure import reccdi.src_py.utilities.parse_ver as ver diff --git a/reccdi/src_py/run_scripts/run_disp.py b/bin/run_disp_tvtk.py similarity index 77% rename from reccdi/src_py/run_scripts/run_disp.py rename to bin/run_disp_tvtk.py index b4298d8..18c57ba 100755 --- a/reccdi/src_py/run_scripts/run_disp.py +++ b/bin/run_disp_tvtk.py @@ -1,5 +1,7 @@ -import reccdi.src_py.utilities.viz_util_xu as vu +import reccdi.src_py.utilities.viz_util as vu +import reccdi.src_py.beamlines.aps_34id.diffractometer as dif import reccdi.src_py.utilities.utils as ut +from reccdi.src_py.utilities.utils import measure import reccdi.src_py.utilities.parse_ver as ver import argparse import sys @@ -7,50 +9,51 @@ import numpy as np from multiprocessing import Pool - -def save_CX(conf, image, support, coh, save_dir, last_scan): - image = np.swapaxes(image, 1,2) - image = np.swapaxes(image, 0,1) +def save_CX(conf_dict, image, support, coh, save_dir): + params = dif.DispalyParams(conf_dict) +# image = np.swapaxes(image, 1,2) +# image = np.swapaxes(image, 0,1) # support = np.swapaxes(support, 1,2) # support = np.swapaxes(support, 0,1) -# image, support = center(image, support) - params = vu.DispalyParams(conf, last_scan) -# image = remove_ramp(image) - viz = vu.CXDViz() + print("center image and support") + image, support = vu.center(image, support) + print("remove phase ramp on image") + image = vu.remove_ramp(image, ups=conf_dict['rampups']) + print("set viz") + viz = dif.CXDViz() viz.set_geometry(params, image.shape) - crop = get_crop(params, image.shape) - #viz.set_crop(crop[0], crop[1], crop[2]) # save image +# crop = get_crop(params, image.shape) +# viz.set_crop(crop[0], crop[1], crop[2]) # save image - viz.add_array(np.abs(image), "imAmp", space='direct') + print("set im amps") + viz.add_array(abs(image), "imAmp", space='direct') + print("set im phase") viz.add_array(np.angle(image), "imPh", space='direct') image_file = os.path.join(save_dir, 'image') - #viz.write_structured_grid(image_file) + print("write im") viz.write_directspace(image_file) viz.clear_direct_arrays() + + print("set support") viz.add_array(support, "support", space='direct') support_file = os.path.join(save_dir, 'support') - #viz.write_structured_grid(support_file) + print("write support") viz.write_directspace(support_file) viz.clear_direct_arrays() if coh is not None: - coh = np.swapaxes(coh, 1, 2) - # investigate if pad_center before fft or after - coh = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(coh))).real + coh = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(coh))) coh = ut.get_zero_padded_centered(coh, image.shape) coh_file = os.path.join(save_dir, 'coherence') viz.add_array(np.abs(coh), 'cohAmp', space='direct') viz.add_array(np.angle(coh), 'cohPh', space='direct') - #viz.write_structured_grid(coh_file) viz.write_directspace(coh_file) viz.clear_direct_arrays() -# a = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') -# remove_ramp(a, 3) - +#seems all of this could be consolidated with save_CX. def save_vtk(res_dir_conf): - (res_dir, conf) = res_dir_conf + (res_dir, conf_dict) = res_dir_conf try: imagefile = os.path.join(res_dir, 'image.npy') image = np.load(imagefile) @@ -83,11 +86,15 @@ def save_vtk(res_dir_conf): cohfile = os.path.join(res_dir, 'coherence.npy') if os.path.isfile(cohfile): coh = np.load(cohfile) - save_CX(conf, image, support, coh, res_dir) + save_CX(conf_dict, image, support, coh, res_dir) else: - save_CX(conf, image, support, None, res_dir) - + save_CX(conf_dict, image, support, None, res_dir) +#This is the first thing called by main +#reads the config_disp file into a dictionary +#Gets the binning param from config_data +#Gets GPU list from config_rec +#in principle I think all of this could go to DisplayParams? def to_vtk(experiment_dir, results_dir=None): if not os.path.isdir(experiment_dir): print("Please provide a valid experiment directory") @@ -148,14 +155,14 @@ def to_vtk(experiment_dir, results_dir=None): dirs = [] for (dirpath, dirnames, filenames) in os.walk(results_dir): for file in filenames: - print("file", file) if file.endswith('image.npy'): dirs.append((dirpath, conf_dict)) - - with Pool(processes = no_gpus) as pool: - pool.map_async(save_vtk, dirs) - pool.close() - pool.join() +#this overrides the pooling and will only work for a single reconstruction. Just for testing. + save_vtk(dirs[0]) +# with Pool(processes = no_gpus) as pool: +# pool.map_async(save_vtk, dirs) +# pool.close() +# pool.join() def main(arg): diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/detectors.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/detectors.py new file mode 100644 index 0000000..44700f8 --- /dev/null +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/detectors.py @@ -0,0 +1,35 @@ + +################################################################## +def getdetclass(detname, **args): + for cls in Detector.__subclasses__(): + print(detname.strip(),cls, cls.name) + if cls.name == detname.strip(): + c=cls() + return c + + +#could start to encapsulate everything about a detector here. whitefield and dark and other things. Then we +#just set the detector in a config file and everything can use it. maybe add a config_det file to conf? +class Detector(object): + name=None + def __init__(self, det_name): + self.det_name = det_name + + def get_pixel(self): + return (1,1) + + +class Detector_34idcTIM2(Detector): + name="34idcTIM2:" + pixel='(55.0e-6,55e-6)' + pixelorientation="(x+,y-)" #in xrayutilities notation + def __init__(self): + super(Detector_34idcTIM2, self).__init__('34idcTIM2:') + + def get_pixel(self): + return self.pixel + + def get_pixelorientation(self): + return self.pixelorientation + + diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/diffractometer.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/diffractometer.py new file mode 100644 index 0000000..01154e3 --- /dev/null +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/diffractometer.py @@ -0,0 +1,332 @@ +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + +import os +import numpy as np +import scipy.ndimage as ndi +import math as m +import pyevtk.hl as vtk +from tvtk.api import tvtk +import xrayutilities.experiment as xuexp +import reccdi.src_py.utilities.utils as ut +from reccdi.src_py.utilities.utils import measure +import reccdi.src_py.beamlines.aps_34id.spec as sput +import reccdi.src_py.beamlines.aps_34id.detectors as det + +__author__ = "Barbara Frosik" +__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." +__docformat__ = 'restructuredtext en' + +class DispalyParams: + """ + This class encapsulates parameters defining image display. The parameters are +read from config file on construction or whereever they may exist. This class is +basically an information agglomerator for the viz generation. + """ + + def __init__(self, config): + """ + The constructor gets config file and fills out the class members. + + Parameters + ---------- + conf : str + configuration file name + + Returns + ------- + none + """ + deg2rad = np.pi / 180.0 + try: + specfile = config['specfile'] + last_scan = config['last_scan'] + #get stuff from the spec file. + delta, gamma, theta, phi, chi, scanmot, scanmot_del, detdist, detector, energy = sput.parse_spec(specfile, last_scan) + self.delta = delta + self.gamma = gamma + self.theta = theta + self.phi = phi + self.chi = chi + self.detdist = detdist + self.energy = energy + self.scanmot=scanmot + self.scanmot_del=scanmot_del + self.detector=detector + + except Exception as e: + pass + # override the parsed parameters with entries in config file + try: + self.energy = config['energy'] + except KeyError: + print("energy from specfile") + pass + try: + self.delta = config['delta'] + except KeyError: + pass + try: + self.gamma = config['gamma'] + except KeyError: + pass + try: + self.theta = config['theta'] + except KeyError: + pass + try: + self.phi = config['phi'] + except KeyError: + pass + try: + self.chi = config['chi'] + except KeyError: + pass + try: + self.scanmot = config['scanmot'] + except KeyError: + pass + try: + self.scanmot_del = config['scanmot_del'] + except KeyError: + pass + try: + self.detdist = config['arm'] + except KeyError: + pass + try: + self.detector = config['detector'] + except KeyError: + pass + try: + self.detector_obj=det.getdetclass(self.detector) + except: + self.detector_obj = None + + try: + pixel = self.detector_obj.get_pixel() + pixelorientation=self.detector_obj.get_pixelorientation() + except: + pass + try: + pixel = config['pixel'] + except KeyError: + pass + try: + pixelorientation = config['pixelorientation'] + except KeyError: + pass + + pixel = pixel[1:-1] + self.pixel = pixel.split(',') + self.pixel[0], self.pixel[1] = float(self.pixel[0]), float(self.pixel[1]) + self.pixelorientation=pixelorientation[1:-1].split(',') + + try: + self.binning = [] + binning = config['binning'] + for i in range(len(binning)): + self.binning.append(binning[i]) + for _ in range(3 - len(self.binning)): + self.binning.append(1) + except KeyError: + self.binning = [1,1,1] + try: + self.crop = [] + crop = config['crop'] + for i in range(len(crop)): + self.crop.append(crop[i]) + for _ in range(3 - len(self.crop)): + self.crop.append(1.0) + crop[0], crop[1] = crop[1], crop[0] + except KeyError: + self.crop = None + + +class CXDViz(): + + cropx = 0.5 + cropy = 0.5 + cropz = 0.5 + dir_arrs={} + recip_arrs={} + + def __init__(self): + self.imd = tvtk.ImageData() + self.sg = tvtk.StructuredGrid() + pass + + + #def set_geometry(self, lam, delta, gamma, dpx, dpy, dth): + @measure + def set_geometry(self, p, shape): + self.params = p + px = p.pixel[0]*p.binning[0] + py = p.pixel[1]*p.binning[1] + detdist=p.detdist/1000.0 #convert to meters + energy=p.energy*1000 #x-ray energy in eV + + print("running the xrayutilities version and tvtk") + self.qc=xuexp.QConversion(['y+','z-','x-'], ['y+','x-'],(0,0,1),en=energy) + #compute for 4pixel (2x2) detector + self.qc.init_area(p.pixelorientation[0],p.pixelorientation[1], shape[0],shape[1], 2,2, distance=detdist, pwidth1=px, pwidth2=py) + + #vtrans=np.vectorize(self.qc.transformSample2Lab) +# + q1=np.array(self.qc.area(p.theta,p.chi,p.phi,p.delta,p.gamma,deg=True)) + #qshape=q1.shape + #q1=np.array(vtrans([q1[0,:,:].ravel(),q1[1,:,:].ravel(),q1[2,:,:].ravel()],p.theta,p.chi,p.phi)).reshape(qshape) + if p.scanmot.strip()=='th': + q2=np.array(self.qc.area(p.theta+p.scanmot_del,p.chi,p.phi,p.delta,p.gamma,deg=True)) + # q2=np.array(self.qc.transformSample2Lab([q2[0,:,:],q1[1,:,:],q1[2,:,:]],p.theta+p.scanmot_del,p.chi,p.phi)) + elif p.scanmot.strip()=='chi': + q2=np.array(self.qc.area(p.theta,p.chi+p.scanmot_del,p.phi,p.delta,p.gamma,deg=True)) + # q2=np.array(self.qc.transformSample2Lab([q2[0,:,:],q1[1,:,:],q1[2,:,:]],p.theta,p.chi+p.scanmot_del,p.phi)) + elif p.scanmot.strip()=='phi': + q2=np.array(self.qc.area(p.theta,p.chi,p.phi+p.scanmot_del,p.delta,p.gamma,deg=True)) + # q2=np.array(self.qc.transformSample2Lab([q2[0,:,:],q1[1,:,:],q1[2,:,:]],p.theta,p.chi,p.phi+p.scanmot_del)) + #Astar=q1[:,1,0]-q1[:,0,0] + #Bstar=q1[:,0,1]-q1[:,0,0] + #Cstar=(q2-q1)[:,0,0] + Astar=q1[:,1,0]-q1[:,0,0] + Bstar=q1[:,0,1]-q1[:,0,0] + Cstar=(q2-q1)[:,0,0] + print("Recip") + print(Astar, Bstar, Cstar) + Astar=self.qc.transformSample2Lab(Astar, p.theta,p.chi,p.phi) + Bstar=self.qc.transformSample2Lab(Bstar, p.theta,p.chi,p.phi) + Cstar=self.qc.transformSample2Lab(Cstar, p.theta,p.chi,p.phi) + + + + denom = np.dot(Astar, np.cross(Bstar, Cstar)) + A = 2 * m.pi * np.cross(Bstar, Cstar) / denom + B = 2 * m.pi * np.cross(Cstar, Astar) / denom + C = 2 * m.pi * np.cross(Astar, Bstar) / denom + + self.Trecip = np.zeros(9) + self.Trecip.shape = (3, 3) + self.Trecip[:, 0] = Astar + self.Trecip[:, 1] = Bstar + self.Trecip[:, 2] = Cstar +# self.Trecip[:, 0] = [2,0,1] +# self.Trecip[:, 1] = [0,1,0] +# self.Trecip[:, 2] = [0,0,1] + print(self.Trecip) + + self.Tdir = np.zeros(9) + self.Tdir.shape = (3, 3) + self.Tdir = np.array((A, B, C)).transpose() + print("Direct") + print(A,B,C) + print(self.Tdir) + + self.dirspace_uptodate=0 + self.recipspace_uptodate=0 + + def update_dirspace(self, shape): + print("Updating dirspace coords") + dims = list(shape) + self.dxdir = 1.0 / shape[0] + self.dydir = 1.0 / shape[1] + self.dzdir = 1.0 / shape[2] + + r = np.mgrid[ + 0:dims[0] * self.dxdir:self.dxdir, \ + 0:dims[1] * self.dydir:self.dydir,\ + 0:dims[2] * self.dzdir:self.dzdir] +# r = np.mgrid[ +# 0:dims[0]*self.dxdir:self.dxdir, \ +# (dims[1]-1)*self.dydir:-self.dydir:-self.dydir,\ +# 0:dims[2]*self.dzdir:self.dzdir] + + origshape=r.shape + r.shape = 3, dims[0] * dims[1] * dims[2] + #r = r.transpose() + + self.dir_coords = np.dot(self.Tdir, r).transpose() + +# self.dir_coords = self.dir_coords.transpose() +# self.dir_coords.shape=origshape + print("dir shape", self.dir_coords.shape) + self.dirspace_uptodate=1 + + def update_recipspace(self, shape): + dims = list(shape) + q = np.mgrid[ 0:dims[0], 0:dims[1], 0:dims[2]] + + origshape=q.shape + q.shape = 3, dims[0] * dims[1] * dims[2] + + self.recip_coords = np.dot(self.Trecip, q) + self.recip_coords.shape=origshape + self.recipspace_uptodate=1 + + def clear_direct_arrays(self): + self.dir_arrs.clear() + def clear_recip_arrays(self): + self.recip_arrs.clear() + + @measure + def add_array(self, array, name, space='direct', logentry=None): + + #Need to add something to ensure arrays are all the same dimension. + #Need to add crop of viz output arrays + if len(array.shape) < 3: + newdims = list(array.shape) + for i in range(3 - len(newdims)): + newdims.append(1) + array.shape = tuple(newdims) + print("adding array of shape ", array.shape) + if space=='direct': + self.dir_arrs[name]=array + if (not self.dirspace_uptodate): + self.update_dirspace(array.shape) + elif space=='recip': + self.recip_arrs[name]=array + if (not self.recipspace_uptodate): + self.update_recipspace(array.shape) + else: + return + + def get_ds_structured_grid(self, **args): + arr0=self.dir_arrs[list(self.dir_arrs.keys())[0]] + dims = list(arr0.shape) + self.sg.points = self.dir_coords + for a in self.dir_arrs.keys(): + arr=tvtk.DoubleArray() + arr.from_array(self.dir_arrs[a].ravel()) + arr.name=a + self.sg.point_data.add_array(arr) + + self.sg.dimensions = (dims[2], dims[1], dims[0]) + self.sg.extent = 0, dims[2] - 1, 0, dims[1] - 1, 0, dims[0] - 1 + return self.sg + + def write_directspace(self, filename, **args): + sgwriter = tvtk.XMLStructuredGridWriter() + #sgwriter.file_type = 'binary' + if filename.endswith(".vtk"): + sgwriter.file_name = filename + else: + sgwriter.file_name = filename + '.vts' + sgwriter.set_input_data(self.get_ds_structured_grid()) + sgwriter.write() + print ('saved file', filename) + + @measure + def write_directspace_pyevtk(self, filename, **args): + print(self.dir_arrs.keys()) + vtk.gridToVTK(filename, self.dir_coords[0,:,:,:].copy(), \ + self.dir_coords[1,:,:,:].copy(), \ + self.dir_coords[2,:,:,:].copy(), pointData=self.dir_arrs) + vtk.imageToVTK(filename, pointData=self.dir_arrs) + + def write_recipspace_pyevtk(self, filename, **args): + vtk.gridToVTK(filename, self.recip_coords[0,:,:,:].copy(), \ + self.recip_coords[1,:,:,:].copy(), \ + self.recip_coords[2,:,:,:].copy(), pointData=self.recip_arrs) + vtk.imageToVTK(filename, pointData=self.recip_arrs) diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/prep.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/prep.py index d6ddd0c..ec9c02a 100644 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/prep.py +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/prep.py @@ -5,7 +5,7 @@ import os import glob import tifffile as tif -import reccdi.src_py.utilities.spec as spec +import reccdi.src_py.beamlines.aps_34id.spec as spec import reccdi.src_py.utilities.utils as ut diff --git a/reccdi/src_py/utilities/spec.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/spec.py similarity index 63% rename from reccdi/src_py/utilities/spec.py rename to build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/spec.py index 56db6b9..e547082 100644 --- a/reccdi/src_py/utilities/spec.py +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/spec.py @@ -1,33 +1,11 @@ from xrayutilities.io import spec as spec -class Detector(object): - def __init__(self, det_name): - self.det_name = det_name - - def get_pixel(self): - pass - - -class Det_34idcTIM2(Detector): - def __init__(self): - super(Det_34idcTIM2, self).__init__('34idcTIM2:') - - def get_pixel(self): - return '(55.0e-6, 55.0e-6)' - - def parse_spec(specfile, scan): # Scan numbers start at one but the list is 0 indexed ss = spec.SPECFile(specfile)[scan - 1] # Stuff from the header detector_name = str(ss.getheader_element('UIMDET')) - if detector_name == '34idcTIM2:': - detector_obj = Det_34idcTIM2() - else: - # default to this detector for now - detector_obj = Det_34idcTIM2() - pixel = detector_obj.get_pixel() command = ss.command.split() scanmot = command[1] scanmot_del = (float(command[3]) - float(command[2])) / int(command[4]) @@ -35,14 +13,16 @@ def parse_spec(specfile, scan): # Motor stuff from the header delta = ss.init_motor_pos['INIT_MOPO_Delta'] gamma = ss.init_motor_pos['INIT_MOPO_Gamma'] - arm = ss.init_motor_pos['INIT_MOPO_camdist'] + theta = ss.init_motor_pos['INIT_MOPO_Theta'] + phi = ss.init_motor_pos['INIT_MOPO_Phi'] + chi = ss.init_motor_pos['INIT_MOPO_Chi'] + detdist = ss.init_motor_pos['INIT_MOPO_camdist'] energy = ss.init_motor_pos['INIT_MOPO_Energy'] - lam = 12.398 / energy / 10 # in nanometers # returning the scan motor name as well. Sometimes we scan things # other than theta. So we need to expand the capability of the display # code. - return lam, delta, gamma, scanmot_del, arm, pixel, energy + return delta, gamma, theta, phi, chi, scanmot, scanmot_del, detdist, detector_name, energy def get_det_from_spec(specfile, scan): diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/utils.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/utils.py index c6e605e..32a6a5f 100644 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/utils.py +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/utils.py @@ -576,6 +576,7 @@ def get_gpu_distribution(runs, available): return available +#https://stackoverflow.com/questions/51503672/decorator-for-timeit-timeit-method/51503837#51503837 from functools import wraps from time import time def measure(func): diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util.py index 1074dc6..6d9e02c 100644 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util.py +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util.py @@ -6,169 +6,66 @@ import os import numpy as np +import scipy.ndimage as ndi import math as m -import pyevtk.hl as vtk +import reccdi.src_py.utilities.utils as ut +from reccdi.src_py.utilities.utils import measure __author__ = "Barbara Frosik" __copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." __docformat__ = 'restructuredtext en' -class CXDViz(): - - cropx = 0.5 - cropy = 0.5 - cropz = 0.5 - dir_arrs={} - recip_arrs={} - - def __init__(self): - #self.imd = tvtk.ImageData() - #self.sg = tvtk.StructuredGrid() - pass - - - def set_geometry(self, lam, delta, gamma, dpx, dpy, dth): - lam = lam - tth = delta - gam = gamma - dpx = dpx - dpy = dpy - dth = dth - dQdpx = np.zeros(3) - dQdpy = np.zeros(3) - dQdth = np.zeros(3) - Astar = np.zeros(3) - Bstar = np.zeros(3) - Cstar = np.zeros(3) - - # dQdpx[0] = -m.cos(tth) * m.cos(gam) - # dQdpx[1] = 0.0 - # dQdpx[2] = +m.sin(tth) * m.cos(gam) - dQdpx[0] = -m.cos(tth) - dQdpx[1] = 0.0 - dQdpx[2] = +m.sin(tth) - print("dqdpx",dQdpx) - - dQdpy[0] = m.sin(tth) * m.sin(gam) - dQdpy[1] = -m.cos(gam) - dQdpy[2] = m.cos(tth) * m.sin(gam) - print("dqdpy",dQdpy) - - dQdth[0] = -m.cos(tth) * m.cos(gam) + 1.0 - dQdth[1] = 0.0 - dQdth[2] = m.sin(tth) * m.cos(gam) - print("dqdth",dQdth) - - Astar[0] = 2 * m.pi / lam * dpx * dQdpx[0] - Astar[1] = 2 * m.pi / lam * dpx * dQdpx[1] - Astar[2] = 2 * m.pi / lam * dpx * dQdpx[2] - - Bstar[0] = (2 * m.pi / lam) * dpy * dQdpy[0] - Bstar[1] = (2 * m.pi / lam) * dpy * dQdpy[1] - Bstar[2] = (2 * m.pi / lam) * dpy * dQdpy[2] - - Cstar[0] = (2 * m.pi / lam) * dth * dQdth[0] - Cstar[1] = (2 * m.pi / lam) * dth * dQdth[1] - Cstar[2] = (2 * m.pi / lam) * dth * dQdth[2] - - denom = np.dot(Astar, np.cross(Bstar, Cstar)) - A = 2 * m.pi * np.cross(Bstar, Cstar) / denom - B = 2 * m.pi * np.cross(Cstar, Astar) / denom - C = 2 * m.pi * np.cross(Astar, Bstar) / denom - - self.Trecip = np.zeros(9) - self.Trecip.shape = (3, 3) - self.Trecip[:, 0] = Astar - self.Trecip[:, 1] = Bstar - self.Trecip[:, 2] = Cstar -# self.Trecip[:, 0] = [2,0,1] -# self.Trecip[:, 1] = [0,1,0] -# self.Trecip[:, 2] = [0,0,1] - print("Recip") - print(Astar,Bstar,Cstar) - print(self.Trecip) - - self.Tdir = np.zeros(9) - self.Tdir.shape = (3, 3) - self.Tdir = np.array((A, B, C)) - print("Direct") - print(A,B,C) - print(self.Tdir) - - self.dirspace_uptodate=0 - self.recipspace_uptodate=0 - return dQdpx, dQdpy, dQdth - - def update_dirspace(self, shape): - print("Updating dirspace coords") - dims = list(shape) - self.dxdir = 1.0 / shape[0] - self.dydir = 1.0 / shape[1] - self.dzdir = 1.0 / shape[2] - - r = np.mgrid[ - 0:dims[0] * self.dxdir:self.dxdir, \ - 0:dims[1] * self.dydir:self.dydir,\ - 0:dims[2] * self.dzdir:self.dzdir] -# r = np.mgrid[ -# 0:dims[0]*self.dxdir:self.dxdir, \ -# (dims[1]-1)*self.dydir:-self.dydir:-self.dydir,\ -# 0:dims[2]*self.dzdir:self.dzdir] - - origshape=r.shape - r.shape = 3, dims[0] * dims[1] * dims[2] - #r = r.transpose() - - self.dir_coords = np.dot(self.Tdir, r) - -# self.dir_coords = self.dir_coords.transpose() - self.dir_coords.shape=origshape - print("dir shape", self.dir_coords.shape) - self.dirspace_uptodate=1 - - def update_recipspace(self, shape): - dims = list(shape) - q = np.mgrid[ 0:dims[0], 0:dims[1], 0:dims[2]] - - origshape=q.shape - q.shape = 3, dims[0] * dims[1] * dims[2] - - self.recip_coords = np.dot(self.Trecip, q) - self.recip_coords.shape=origshape - self.recipspace_uptodate=1 - - def add_array(self, array, name, space='direct', logentry=None): - - #Need to add something to ensure arrays are all the same dimension. - #Need to add crop of viz output arrays - if len(array.shape) < 3: - newdims = list(array.shape) - for i in range(3 - len(newdims)): - newdims.append(1) - array.shape = tuple(newdims) - print("adding array of shape ", array.shape) - if space=='direct': - self.dir_arrs[name]=array - if (not self.dirspace_uptodate): - self.update_dirspace(array.shape) - elif space=='recip': - self.recip_arrs[name]=array - if (not self.recipspace_uptodate): - self.update_recipspace(array.shape) - else: - return - - def write_directspace(self, filename, **args): - print(self.dir_arrs.keys()) - vtk.gridToVTK(filename, self.dir_coords[0,:,:,:].copy(), \ - self.dir_coords[1,:,:,:].copy(), \ - self.dir_coords[2,:,:,:].copy(), pointData=self.dir_arrs) - vtk.imageToVTK(filename, pointData=self.dir_arrs) - - def write_recipspace(self, filename, **args): - vtk.gridToVTK(filename, self.recip_coords[0,:,:,:].copy(), \ - self.recip_coords[1,:,:,:].copy(), \ - self.recip_coords[2,:,:,:].copy(), pointData=self.recip_arrs) - vtk.imageToVTK(filename, pointData=self.recip_arrs) +def shift(arr, s0, s1, s2): + shifted = np.roll(arr, s0, axis=0) + shifted = np.roll(shifted, s1, axis=1) + return np.roll(shifted, s2, axis=2) + + +@measure +def remove_ramp(arr, ups=1): + new_shape = list(arr.shape) + # pad zeros around arr, to the size of 3 times (ups = 3) of arr size + for i in range(len(new_shape)): + new_shape[i] = ups * new_shape[i] + padded = ut.get_zero_padded_centered(arr, new_shape) + padded_f = np.fft.fftshift(np.fft.fftn(np.fft.ifftshift(padded))) + com = ndi.center_of_mass(np.power(np.abs(padded_f), 2)) + sub_pixel_shifted = ut.sub_pixel_shift(padded_f, new_shape[0]/2.0-com[0], new_shape[1]/2.0-com[1], +new_shape[2]/2.0-com[2]) + ramp_removed_padded = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(sub_pixel_shifted))) + ramp_removed = ut.crop_center(ramp_removed_padded, arr.shape) + + return ramp_removed + + +@measure +def center(image, support): + dims = image.shape + image, support = ut.get_centered_both(image, support) + + # place center of mass image*support in the center + for ax in range(len(dims)): + com = ndi.center_of_mass(np.absolute(image) * support) + image = shift(image, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) + support = shift(support, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) + + # set center phase to zero, use as a reference + phi0 = m.atan2(image.imag[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)], image.real[int(dims[0]/2), int(dims[1]/2), +int(dims[2]/2)]) + image = image * np.exp(-1j * phi0) + + return image, support + + +def get_crop(params, shape): + crop = [] + for i in range(len(shape)): + if params.crop is None: + crop.append(shape[i]) + else: + crop.append(params.crop[i]) + if isinstance(crop[i], float): + crop[i] = int(crop[i]*shape[i]) + return crop diff --git a/reccdi/src_py/utilities/viz_util_xu.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util_xu_pyevtk.py similarity index 99% rename from reccdi/src_py/utilities/viz_util_xu.py rename to build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util_xu_pyevtk.py index bb05483..c2d7e7b 100644 --- a/reccdi/src_py/utilities/viz_util_xu.py +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util_xu_pyevtk.py @@ -192,7 +192,8 @@ def update_dirspace(self, shape): r = np.mgrid[ 0:dims[0] * self.dxdir:self.dxdir, \ 0:dims[1] * self.dydir:self.dydir,\ - 0:dims[2] * self.dzdir:self.dzdir] + 0:dims[2] * self.dzdir:self.dzdir,\ + ] # r = np.mgrid[ # 0:dims[0]*self.dxdir:self.dxdir, \ # (dims[1]-1)*self.dydir:-self.dydir:-self.dydir,\ @@ -235,6 +236,7 @@ def add_array(self, array, name, space='direct', logentry=None): for i in range(3 - len(newdims)): newdims.append(1) array.shape = tuple(newdims) + #array=array.transpose() print("adding array of shape ", array.shape) if space=='direct': self.dir_arrs[name]=array diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util_xu_tvtk.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util_xu_tvtk.py new file mode 100644 index 0000000..fded9a2 --- /dev/null +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util_xu_tvtk.py @@ -0,0 +1,356 @@ +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + +import os +import numpy as np +import scipy.ndimage as ndi +import math as m +import pyevtk.hl as vtk +from tvtk.api import tvtk +import xrayutilities.experiment as xuexp +import reccdi.src_py.utilities.utils as ut +from reccdi.src_py.utilities.utils import measure +import reccdi.src_py.utilities.spec as sput + +__author__ = "Barbara Frosik" +__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." +__docformat__ = 'restructuredtext en' + +class DispalyParams: + """ + This class encapsulates parameters defining image display. The parameters are +read from config file on + construction + """ + + def __init__(self, config): + """ + The constructor gets config file and fills out the class members. + + Parameters + ---------- + conf : str + configuration file name + + Returns + ------- + none + """ + deg2rad = np.pi / 180.0 + try: + specfile = config['specfile'] + last_scan = config['last_scan'] + self.lam, delta, gamma, dth, arm, pixel,energy = sput.parse_spec(specfile, +last_scan) + self.delta = delta * deg2rad + self.gamma = gamma * deg2rad + self.dth = dth * deg2rad + self.arm = arm / 1000 + self.energy = energy + pixel = pixel[1:-1] + pixel = pixel.split(',') + pixel[0], pixel[1] = float(pixel[0]), float(pixel[1]) + except Exception as e: + pass + # override the parsed parameters with entries in config file + try: + self.energy = config['energy'] + self.lam = 12.398 / energy / 10 + except AttributeError: + pass + try: + self.delta = config['delta'] * deg2rad + except AttributeError: + pass + try: + self.gamma = config['gamma'] * deg2rad + except AttributeError: + pass + try: + self.dth = config['dth'] * deg2rad + except AttributeError: + pass + try: + self.arm = config['arm'] / 1000 + except AttributeError: + pass + try: + pixel = config['pixel'] + except AttributeError: + pass + + try: + self.binning = [] + binning = config['binning'] + for i in range(len(binning)): + self.binning.append(binning[i]) + for _ in range(3 - len(self.binning)): + self.binning.append(1) + except AttributeError: + self.binning = [1,1,1] + self.px = pixel[0] * self.binning[0] + self.py = pixel[1] * self.binning[1] + self.dpx = pixel[0] * self.binning[0] / self.arm / self.binning[2] + self.dpy = pixel[1] * self.binning[1] / self.arm / self.binning[2] + try: + self.crop = [] + crop = config['crop'] + for i in range(len(crop)): + self.crop.append(crop[i]) + for _ in range(3 - len(self.crop)): + self.crop.append(1.0) + crop[0], crop[1] = crop[1], crop[0] + except AttributeError: + self.crop = None + + + + + + +class CXDViz(): + + cropx = 0.5 + cropy = 0.5 + cropz = 0.5 + dir_arrs={} + recip_arrs={} + + def __init__(self): + self.imd = tvtk.ImageData() + self.sg = tvtk.StructuredGrid() + pass + + + #def set_geometry(self, lam, delta, gamma, dpx, dpy, dth): + @measure + def set_geometry(self, params, shape): + self.params = params + lam = params.lam + tth = params.delta + gam = params.gamma + px = params.px + py = params.py + dpx = params.dpx + dpy = params.dpy + dth = params.dth + energy = params.energy + dQdpx = np.zeros(3) + dQdpy = np.zeros(3) + dQdth = np.zeros(3) + Astar = np.zeros(3) + Bstar = np.zeros(3) + Cstar = np.zeros(3) + + print("running the xrayutilities version and tvtk") + self.qc=xuexp.QConversion(['y+','z-','x-'], ['y+','x-'],(0,0,1),en=energy*1000) + self.qc.init_area('x+','y-', shape[0],shape[1], 2,2, distance=params.arm, pwidth1=px, pwidth2=py) + + q1=np.array(self.qc.area(0.0,0,0,tth,gam,deg=False)) + q2=np.array(self.qc.area(dth,0,0,tth,gam,deg=False)) + Astar=q1[:,1,0]-q1[:,0,0] + Bstar=q1[:,0,1]-q1[:,0,0] + Cstar=(q2-q1)[:,0,0] + + denom = np.dot(Astar, np.cross(Bstar, Cstar)) + A = 2 * m.pi * np.cross(Bstar, Cstar) / denom + B = 2 * m.pi * np.cross(Cstar, Astar) / denom + C = 2 * m.pi * np.cross(Astar, Bstar) / denom + + self.Trecip = np.zeros(9) + self.Trecip.shape = (3, 3) + self.Trecip[:, 0] = Astar + self.Trecip[:, 1] = Bstar + self.Trecip[:, 2] = Cstar +# self.Trecip[:, 0] = [2,0,1] +# self.Trecip[:, 1] = [0,1,0] +# self.Trecip[:, 2] = [0,0,1] + print("Recip") + print(Astar,Bstar,Cstar) + print(self.Trecip) + + self.Tdir = np.zeros(9) + self.Tdir.shape = (3, 3) + self.Tdir = np.array((A, B, C)).transpose() + print("Direct") + print(A,B,C) + print(self.Tdir) + + self.dirspace_uptodate=0 + self.recipspace_uptodate=0 + return dQdpx, dQdpy, dQdth + + def update_dirspace(self, shape): + print("Updating dirspace coords") + dims = list(shape) + self.dxdir = 1.0 / shape[0] + self.dydir = 1.0 / shape[1] + self.dzdir = 1.0 / shape[2] + + r = np.mgrid[ + 0:dims[0] * self.dxdir:self.dxdir, \ + 0:dims[1] * self.dydir:self.dydir,\ + 0:dims[2] * self.dzdir:self.dzdir] +# r = np.mgrid[ +# 0:dims[0]*self.dxdir:self.dxdir, \ +# (dims[1]-1)*self.dydir:-self.dydir:-self.dydir,\ +# 0:dims[2]*self.dzdir:self.dzdir] + + origshape=r.shape + r.shape = 3, dims[0] * dims[1] * dims[2] + #r = r.transpose() + + self.dir_coords = np.dot(self.Tdir, r).transpose() + +# self.dir_coords = self.dir_coords.transpose() +# self.dir_coords.shape=origshape + print("dir shape", self.dir_coords.shape) + self.dirspace_uptodate=1 + + def update_recipspace(self, shape): + dims = list(shape) + q = np.mgrid[ 0:dims[0], 0:dims[1], 0:dims[2]] + + origshape=q.shape + q.shape = 3, dims[0] * dims[1] * dims[2] + + self.recip_coords = np.dot(self.Trecip, q) + self.recip_coords.shape=origshape + self.recipspace_uptodate=1 + + def clear_direct_arrays(self): + self.dir_arrs.clear() + def clear_recip_arrays(self): + self.recip_arrs.clear() + + @measure + def add_array(self, array, name, space='direct', logentry=None): + + #Need to add something to ensure arrays are all the same dimension. + #Need to add crop of viz output arrays + if len(array.shape) < 3: + newdims = list(array.shape) + for i in range(3 - len(newdims)): + newdims.append(1) + array.shape = tuple(newdims) + print("adding array of shape ", array.shape) + if space=='direct': + self.dir_arrs[name]=array + if (not self.dirspace_uptodate): + self.update_dirspace(array.shape) + elif space=='recip': + self.recip_arrs[name]=array + if (not self.recipspace_uptodate): + self.update_recipspace(array.shape) + else: + return + + def get_ds_structured_grid(self, **args): + arr0=self.dir_arrs[list(self.dir_arrs.keys())[0]] + dims = list(arr0.shape) + self.sg.points = self.dir_coords + for a in self.dir_arrs.keys(): + arr=tvtk.DoubleArray() + arr.from_array(self.dir_arrs[a].ravel()) + arr.name=a + self.sg.point_data.add_array(arr) + + self.sg.dimensions = (dims[2], dims[1], dims[0]) + self.sg.extent = 0, dims[2] - 1, 0, dims[1] - 1, 0, dims[0] - 1 + return self.sg + + def write_directspace(self, filename, **args): + sgwriter = tvtk.XMLStructuredGridWriter() + #sgwriter.file_type = 'binary' + if filename.endswith(".vtk"): + sgwriter.file_name = filename + else: + sgwriter.file_name = filename + '.vts' + sgwriter.set_input_data(self.get_ds_structured_grid()) + sgwriter.write() + print ('saved file', filename) + + @measure + def write_directspace_pyevtk(self, filename, **args): + print(self.dir_arrs.keys()) + vtk.gridToVTK(filename, self.dir_coords[0,:,:,:].copy(), \ + self.dir_coords[1,:,:,:].copy(), \ + self.dir_coords[2,:,:,:].copy(), pointData=self.dir_arrs) + vtk.imageToVTK(filename, pointData=self.dir_arrs) + + def write_recipspace_pyevtk(self, filename, **args): + vtk.gridToVTK(filename, self.recip_coords[0,:,:,:].copy(), \ + self.recip_coords[1,:,:,:].copy(), \ + self.recip_coords[2,:,:,:].copy(), pointData=self.recip_arrs) + vtk.imageToVTK(filename, pointData=self.recip_arrs) + +def shift(arr, s0, s1, s2): + shifted = np.roll(arr, s0, axis=0) + shifted = np.roll(shifted, s1, axis=1) + return np.roll(shifted, s2, axis=2) + + +def center_of_mass(arr): + tot = np.sum(arr) + dims = arr.shape + xyz = [] + griddims = [] + for d in dims: + griddims.append(slice(0, d)) + grid = np.ogrid[griddims] + for g in grid: + xyz.append(np.sum(arr * g) / tot) + com = np.asarray(xyz) + com = np.ma.round(com).astype(np.int) + return list(com) + +@measure +def remove_ramp(arr, ups=1): + new_shape = list(arr.shape) + # pad zeros around arr, to the size of 3 times (ups = 3) of arr size + for i in range(len(new_shape)): + new_shape[i] = ups * new_shape[i] + padded = ut.get_zero_padded_centered(arr, new_shape) + padded_f = np.fft.fftshift(np.fft.fftn(np.fft.ifftshift(padded))) + com = ndi.center_of_mass(np.power(np.abs(padded_f), 2)) + sub_pixel_shifted = ut.sub_pixel_shift(padded_f, new_shape[0]/2.0-com[0], new_shape[1]/2.0-com[1], +new_shape[2]/2.0-com[2]) + ramp_removed_padded = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(sub_pixel_shifted))) + ramp_removed = ut.crop_center(ramp_removed_padded, arr.shape) + + return ramp_removed + + +@measure +def center(image, support): + dims = image.shape + image, support = ut.get_centered_both(image, support) + + # place center of mass image*support in the center + for ax in range(len(dims)): + com = ndi.center_of_mass(np.absolute(image) * support) + image = shift(image, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) + support = shift(support, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) + + # set center phase to zero, use as a reference + phi0 = m.atan2(image.imag[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)], image.real[int(dims[0]/2), int(dims[1]/2), +int(dims[2]/2)]) + image = image * np.exp(-1j * phi0) + + return image, support + + +def get_crop(params, shape): + crop = [] + for i in range(len(shape)): + if params.crop is None: + crop.append(shape[i]) + else: + crop.append(params.crop[i]) + if isinstance(crop[i], float): + crop[i] = int(crop[i]*shape[i]) + return crop + diff --git a/reccdi/src_py/beamlines/aps_34id/detectors.py b/reccdi/src_py/beamlines/aps_34id/detectors.py new file mode 100644 index 0000000..44700f8 --- /dev/null +++ b/reccdi/src_py/beamlines/aps_34id/detectors.py @@ -0,0 +1,35 @@ + +################################################################## +def getdetclass(detname, **args): + for cls in Detector.__subclasses__(): + print(detname.strip(),cls, cls.name) + if cls.name == detname.strip(): + c=cls() + return c + + +#could start to encapsulate everything about a detector here. whitefield and dark and other things. Then we +#just set the detector in a config file and everything can use it. maybe add a config_det file to conf? +class Detector(object): + name=None + def __init__(self, det_name): + self.det_name = det_name + + def get_pixel(self): + return (1,1) + + +class Detector_34idcTIM2(Detector): + name="34idcTIM2:" + pixel='(55.0e-6,55e-6)' + pixelorientation="(x+,y-)" #in xrayutilities notation + def __init__(self): + super(Detector_34idcTIM2, self).__init__('34idcTIM2:') + + def get_pixel(self): + return self.pixel + + def get_pixelorientation(self): + return self.pixelorientation + + diff --git a/reccdi/src_py/beamlines/aps_34id/diffractometer.py b/reccdi/src_py/beamlines/aps_34id/diffractometer.py new file mode 100644 index 0000000..62bb3b3 --- /dev/null +++ b/reccdi/src_py/beamlines/aps_34id/diffractometer.py @@ -0,0 +1,334 @@ +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + +import os +import numpy as np +import scipy.ndimage as ndi +import math as m +import pyevtk.hl as vtk +from tvtk.api import tvtk +import xrayutilities.experiment as xuexp +import reccdi.src_py.utilities.utils as ut +from reccdi.src_py.utilities.utils import measure +import reccdi.src_py.beamlines.aps_34id.spec as sput +import reccdi.src_py.beamlines.aps_34id.detectors as det + +__author__ = "Barbara Frosik" +__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." +__docformat__ = 'restructuredtext en' + +class DispalyParams: + """ + This class encapsulates parameters defining image display. The parameters are +read from config file on construction or whereever they may exist. This class is +basically an information agglomerator for the viz generation. + """ + + def __init__(self, config): + """ + The constructor gets config file and fills out the class members. + + Parameters + ---------- + conf : str + configuration file name + + Returns + ------- + none + """ + deg2rad = np.pi / 180.0 + try: + specfile = config['specfile'] + last_scan = config['last_scan'] + #get stuff from the spec file. + delta, gamma, theta, phi, chi, scanmot, scanmot_del, detdist, detector, energy = sput.parse_spec(specfile, last_scan) + self.delta = delta + self.gamma = gamma + self.theta = theta + self.phi = phi + self.chi = chi + self.detdist = detdist + self.energy = energy + self.scanmot=scanmot + self.scanmot_del=scanmot_del + self.detector=detector + + except Exception as e: + pass + # override the parsed parameters with entries in config file + try: + self.energy = config['energy'] + except KeyError: + print("energy from specfile") + pass + try: + self.delta = config['delta'] + except KeyError: + pass + try: + self.gamma = config['gamma'] + except KeyError: + pass + try: + self.theta = config['theta'] + except KeyError: + pass + try: + self.phi = config['phi'] + except KeyError: + pass + try: + self.chi = config['chi'] + except KeyError: + pass + try: + self.scanmot = config['scanmot'] + except KeyError: + pass + try: + self.scanmot_del = config['scanmot_del'] + except KeyError: + pass + try: + self.detdist = config['arm'] + except KeyError: + pass + try: + self.detector = config['detector'] + except KeyError: + pass + try: + self.detector_obj=det.getdetclass(self.detector) + except: + self.detector_obj = None + + try: + pixel = self.detector_obj.get_pixel() + pixelorientation=self.detector_obj.get_pixelorientation() + except: + pass + try: + pixel = config['pixel'] + except KeyError: + pass + try: + pixelorientation = config['pixelorientation'] + except KeyError: + pass + + pixel = pixel[1:-1] + self.pixel = pixel.split(',') + self.pixel[0], self.pixel[1] = float(self.pixel[0]), float(self.pixel[1]) + self.pixelorientation=pixelorientation[1:-1].split(',') + + try: + self.binning = [] + binning = config['binning'] + for i in range(len(binning)): + self.binning.append(binning[i]) + for _ in range(3 - len(self.binning)): + self.binning.append(1) + except KeyError: + self.binning = [1,1,1] + try: + self.crop = [] + crop = config['crop'] + for i in range(len(crop)): + self.crop.append(crop[i]) + for _ in range(3 - len(self.crop)): + self.crop.append(1.0) + crop[0], crop[1] = crop[1], crop[0] + except KeyError: + self.crop = None + + +class CXDViz(): + + cropx = 0.5 + cropy = 0.5 + cropz = 0.5 + dir_arrs={} + recip_arrs={} + + def __init__(self): + self.imd = tvtk.ImageData() + self.sg = tvtk.StructuredGrid() + pass + + + #def set_geometry(self, lam, delta, gamma, dpx, dpy, dth): + @measure + def set_geometry(self, p, shape): + self.params = p + px = p.pixel[0]*p.binning[0] + py = p.pixel[1]*p.binning[1] + detdist=p.detdist/1000.0 #convert to meters + energy=p.energy*1000 #x-ray energy in eV + + print("running the xrayutilities version and tvtk") + #could probably put the diffractometer specification into the config file as well. + #the y+ z- x- y+ x- describes 34idc. Could even make a diffractometer class that defines this. + self.qc=xuexp.QConversion(['y+','z-','x-'], ['y+','x-'],(0,0,1),en=energy) + #compute for 4pixel (2x2) detector + self.qc.init_area(p.pixelorientation[0],p.pixelorientation[1], shape[0],shape[1], 2,2, distance=detdist, pwidth1=px, pwidth2=py) + + #vtrans=np.vectorize(self.qc.transformSample2Lab) +# + q1=np.array(self.qc.area(p.theta,p.chi,p.phi,p.delta,p.gamma,deg=True)) + #qshape=q1.shape + #q1=np.array(vtrans([q1[0,:,:].ravel(),q1[1,:,:].ravel(),q1[2,:,:].ravel()],p.theta,p.chi,p.phi)).reshape(qshape) + if p.scanmot.strip()=='th': + q2=np.array(self.qc.area(p.theta+p.scanmot_del,p.chi,p.phi,p.delta,p.gamma,deg=True)) + # q2=np.array(self.qc.transformSample2Lab([q2[0,:,:],q1[1,:,:],q1[2,:,:]],p.theta+p.scanmot_del,p.chi,p.phi)) + elif p.scanmot.strip()=='chi': + q2=np.array(self.qc.area(p.theta,p.chi+p.scanmot_del,p.phi,p.delta,p.gamma,deg=True)) + # q2=np.array(self.qc.transformSample2Lab([q2[0,:,:],q1[1,:,:],q1[2,:,:]],p.theta,p.chi+p.scanmot_del,p.phi)) + elif p.scanmot.strip()=='phi': + q2=np.array(self.qc.area(p.theta,p.chi,p.phi+p.scanmot_del,p.delta,p.gamma,deg=True)) + # q2=np.array(self.qc.transformSample2Lab([q2[0,:,:],q1[1,:,:],q1[2,:,:]],p.theta,p.chi,p.phi+p.scanmot_del)) + #Astar=q1[:,1,0]-q1[:,0,0] + #Bstar=q1[:,0,1]-q1[:,0,0] + #Cstar=(q2-q1)[:,0,0] + Astar=q1[:,1,0]-q1[:,0,0] + Bstar=q1[:,0,1]-q1[:,0,0] + Cstar=(q2-q1)[:,0,0] + print("Recip") + print(Astar, Bstar, Cstar) + Astar=self.qc.transformSample2Lab(Astar, p.theta,p.chi,p.phi) + Bstar=self.qc.transformSample2Lab(Bstar, p.theta,p.chi,p.phi) + Cstar=self.qc.transformSample2Lab(Cstar, p.theta,p.chi,p.phi) + + + + denom = np.dot(Astar, np.cross(Bstar, Cstar)) + A = 2 * m.pi * np.cross(Bstar, Cstar) / denom + B = 2 * m.pi * np.cross(Cstar, Astar) / denom + C = 2 * m.pi * np.cross(Astar, Bstar) / denom + + self.Trecip = np.zeros(9) + self.Trecip.shape = (3, 3) + self.Trecip[:, 0] = Astar + self.Trecip[:, 1] = Bstar + self.Trecip[:, 2] = Cstar +# self.Trecip[:, 0] = [2,0,1] +# self.Trecip[:, 1] = [0,1,0] +# self.Trecip[:, 2] = [0,0,1] + print(self.Trecip) + + self.Tdir = np.zeros(9) + self.Tdir.shape = (3, 3) + self.Tdir = np.array((A, B, C)).transpose() + print("Direct") + print(A,B,C) + print(self.Tdir) + + self.dirspace_uptodate=0 + self.recipspace_uptodate=0 + + def update_dirspace(self, shape): + print("Updating dirspace coords") + dims = list(shape) + self.dxdir = 1.0 / shape[0] + self.dydir = 1.0 / shape[1] + self.dzdir = 1.0 / shape[2] + + r = np.mgrid[ + 0:dims[0] * self.dxdir:self.dxdir, \ + 0:dims[1] * self.dydir:self.dydir,\ + 0:dims[2] * self.dzdir:self.dzdir] +# r = np.mgrid[ +# 0:dims[0]*self.dxdir:self.dxdir, \ +# (dims[1]-1)*self.dydir:-self.dydir:-self.dydir,\ +# 0:dims[2]*self.dzdir:self.dzdir] + + origshape=r.shape + r.shape = 3, dims[0] * dims[1] * dims[2] + #r = r.transpose() + + self.dir_coords = np.dot(self.Tdir, r).transpose() + +# self.dir_coords = self.dir_coords.transpose() +# self.dir_coords.shape=origshape + print("dir shape", self.dir_coords.shape) + self.dirspace_uptodate=1 + + def update_recipspace(self, shape): + dims = list(shape) + q = np.mgrid[ 0:dims[0], 0:dims[1], 0:dims[2]] + + origshape=q.shape + q.shape = 3, dims[0] * dims[1] * dims[2] + + self.recip_coords = np.dot(self.Trecip, q) + self.recip_coords.shape=origshape + self.recipspace_uptodate=1 + + def clear_direct_arrays(self): + self.dir_arrs.clear() + def clear_recip_arrays(self): + self.recip_arrs.clear() + + @measure + def add_array(self, array, name, space='direct', logentry=None): + + #Need to add something to ensure arrays are all the same dimension. + #Need to add crop of viz output arrays + if len(array.shape) < 3: + newdims = list(array.shape) + for i in range(3 - len(newdims)): + newdims.append(1) + array.shape = tuple(newdims) + print("adding array of shape ", array.shape) + if space=='direct': + self.dir_arrs[name]=array + if (not self.dirspace_uptodate): + self.update_dirspace(array.shape) + elif space=='recip': + self.recip_arrs[name]=array + if (not self.recipspace_uptodate): + self.update_recipspace(array.shape) + else: + return + + def get_ds_structured_grid(self, **args): + arr0=self.dir_arrs[list(self.dir_arrs.keys())[0]] + dims = list(arr0.shape) + self.sg.points = self.dir_coords + for a in self.dir_arrs.keys(): + arr=tvtk.DoubleArray() + arr.from_array(self.dir_arrs[a].ravel()) + arr.name=a + self.sg.point_data.add_array(arr) + + self.sg.dimensions = (dims[2], dims[1], dims[0]) + self.sg.extent = 0, dims[2] - 1, 0, dims[1] - 1, 0, dims[0] - 1 + return self.sg + + def write_directspace(self, filename, **args): + sgwriter = tvtk.XMLStructuredGridWriter() + #sgwriter.file_type = 'binary' + if filename.endswith(".vtk"): + sgwriter.file_name = filename + else: + sgwriter.file_name = filename + '.vts' + sgwriter.set_input_data(self.get_ds_structured_grid()) + sgwriter.write() + print ('saved file', filename) + + @measure + def write_directspace_pyevtk(self, filename, **args): + print(self.dir_arrs.keys()) + vtk.gridToVTK(filename, self.dir_coords[0,:,:,:].copy(), \ + self.dir_coords[1,:,:,:].copy(), \ + self.dir_coords[2,:,:,:].copy(), pointData=self.dir_arrs) + vtk.imageToVTK(filename, pointData=self.dir_arrs) + + def write_recipspace_pyevtk(self, filename, **args): + vtk.gridToVTK(filename, self.recip_coords[0,:,:,:].copy(), \ + self.recip_coords[1,:,:,:].copy(), \ + self.recip_coords[2,:,:,:].copy(), pointData=self.recip_arrs) + vtk.imageToVTK(filename, pointData=self.recip_arrs) diff --git a/reccdi/src_py/beamlines/aps_34id/prep.py b/reccdi/src_py/beamlines/aps_34id/prep.py index d6ddd0c..ec9c02a 100644 --- a/reccdi/src_py/beamlines/aps_34id/prep.py +++ b/reccdi/src_py/beamlines/aps_34id/prep.py @@ -5,7 +5,7 @@ import os import glob import tifffile as tif -import reccdi.src_py.utilities.spec as spec +import reccdi.src_py.beamlines.aps_34id.spec as spec import reccdi.src_py.utilities.utils as ut diff --git a/reccdi/src_py/beamlines/aps_34id/spec.py b/reccdi/src_py/beamlines/aps_34id/spec.py new file mode 100644 index 0000000..e547082 --- /dev/null +++ b/reccdi/src_py/beamlines/aps_34id/spec.py @@ -0,0 +1,41 @@ +from xrayutilities.io import spec as spec + +def parse_spec(specfile, scan): + # Scan numbers start at one but the list is 0 indexed + ss = spec.SPECFile(specfile)[scan - 1] + + # Stuff from the header + detector_name = str(ss.getheader_element('UIMDET')) + command = ss.command.split() + scanmot = command[1] + scanmot_del = (float(command[3]) - float(command[2])) / int(command[4]) + + # Motor stuff from the header + delta = ss.init_motor_pos['INIT_MOPO_Delta'] + gamma = ss.init_motor_pos['INIT_MOPO_Gamma'] + theta = ss.init_motor_pos['INIT_MOPO_Theta'] + phi = ss.init_motor_pos['INIT_MOPO_Phi'] + chi = ss.init_motor_pos['INIT_MOPO_Chi'] + detdist = ss.init_motor_pos['INIT_MOPO_camdist'] + energy = ss.init_motor_pos['INIT_MOPO_Energy'] + + # returning the scan motor name as well. Sometimes we scan things + # other than theta. So we need to expand the capability of the display + # code. + return delta, gamma, theta, phi, chi, scanmot, scanmot_del, detdist, detector_name, energy + + +def get_det_from_spec(specfile, scan): + # Scan numbers start at one but the list is 0 indexed + ss = spec.SPECFile(specfile)[scan - 1] + # Stuff from the header + try: + det_area = ss.getheader_element('UIMR5').split() + det_area1 = int(det_area[0]), int(det_area[1]) + det_area2 = int(det_area[2]), int(det_area[3]) + + return det_area1, det_area2 + except: + return None, None + + diff --git a/reccdi/src_py/utilities/CXDVizNX.py b/reccdi/src_py/utilities/archive/CXDVizNX.py similarity index 100% rename from reccdi/src_py/utilities/CXDVizNX.py rename to reccdi/src_py/utilities/archive/CXDVizNX.py diff --git a/reccdi/src_py/utilities/localCXDVizNX.py b/reccdi/src_py/utilities/archive/localCXDVizNX.py similarity index 100% rename from reccdi/src_py/utilities/localCXDVizNX.py rename to reccdi/src_py/utilities/archive/localCXDVizNX.py diff --git a/reccdi/src_py/utilities/pyevtktest.py b/reccdi/src_py/utilities/archive/pyevtktest.py similarity index 100% rename from reccdi/src_py/utilities/pyevtktest.py rename to reccdi/src_py/utilities/archive/pyevtktest.py diff --git a/reccdi/src_py/utilities/rec_disp.py b/reccdi/src_py/utilities/archive/rec_disp.py similarity index 100% rename from reccdi/src_py/utilities/rec_disp.py rename to reccdi/src_py/utilities/archive/rec_disp.py diff --git a/reccdi/src_py/utilities/archive/viz_util.py b/reccdi/src_py/utilities/archive/viz_util.py new file mode 100644 index 0000000..1074dc6 --- /dev/null +++ b/reccdi/src_py/utilities/archive/viz_util.py @@ -0,0 +1,174 @@ +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + +import os +import numpy as np +import math as m +import pyevtk.hl as vtk + +__author__ = "Barbara Frosik" +__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." +__docformat__ = 'restructuredtext en' + + +class CXDViz(): + + cropx = 0.5 + cropy = 0.5 + cropz = 0.5 + dir_arrs={} + recip_arrs={} + + def __init__(self): + #self.imd = tvtk.ImageData() + #self.sg = tvtk.StructuredGrid() + pass + + + def set_geometry(self, lam, delta, gamma, dpx, dpy, dth): + lam = lam + tth = delta + gam = gamma + dpx = dpx + dpy = dpy + dth = dth + dQdpx = np.zeros(3) + dQdpy = np.zeros(3) + dQdth = np.zeros(3) + Astar = np.zeros(3) + Bstar = np.zeros(3) + Cstar = np.zeros(3) + + # dQdpx[0] = -m.cos(tth) * m.cos(gam) + # dQdpx[1] = 0.0 + # dQdpx[2] = +m.sin(tth) * m.cos(gam) + dQdpx[0] = -m.cos(tth) + dQdpx[1] = 0.0 + dQdpx[2] = +m.sin(tth) + print("dqdpx",dQdpx) + + dQdpy[0] = m.sin(tth) * m.sin(gam) + dQdpy[1] = -m.cos(gam) + dQdpy[2] = m.cos(tth) * m.sin(gam) + print("dqdpy",dQdpy) + + dQdth[0] = -m.cos(tth) * m.cos(gam) + 1.0 + dQdth[1] = 0.0 + dQdth[2] = m.sin(tth) * m.cos(gam) + print("dqdth",dQdth) + + Astar[0] = 2 * m.pi / lam * dpx * dQdpx[0] + Astar[1] = 2 * m.pi / lam * dpx * dQdpx[1] + Astar[2] = 2 * m.pi / lam * dpx * dQdpx[2] + + Bstar[0] = (2 * m.pi / lam) * dpy * dQdpy[0] + Bstar[1] = (2 * m.pi / lam) * dpy * dQdpy[1] + Bstar[2] = (2 * m.pi / lam) * dpy * dQdpy[2] + + Cstar[0] = (2 * m.pi / lam) * dth * dQdth[0] + Cstar[1] = (2 * m.pi / lam) * dth * dQdth[1] + Cstar[2] = (2 * m.pi / lam) * dth * dQdth[2] + + denom = np.dot(Astar, np.cross(Bstar, Cstar)) + A = 2 * m.pi * np.cross(Bstar, Cstar) / denom + B = 2 * m.pi * np.cross(Cstar, Astar) / denom + C = 2 * m.pi * np.cross(Astar, Bstar) / denom + + self.Trecip = np.zeros(9) + self.Trecip.shape = (3, 3) + self.Trecip[:, 0] = Astar + self.Trecip[:, 1] = Bstar + self.Trecip[:, 2] = Cstar +# self.Trecip[:, 0] = [2,0,1] +# self.Trecip[:, 1] = [0,1,0] +# self.Trecip[:, 2] = [0,0,1] + print("Recip") + print(Astar,Bstar,Cstar) + print(self.Trecip) + + self.Tdir = np.zeros(9) + self.Tdir.shape = (3, 3) + self.Tdir = np.array((A, B, C)) + print("Direct") + print(A,B,C) + print(self.Tdir) + + self.dirspace_uptodate=0 + self.recipspace_uptodate=0 + return dQdpx, dQdpy, dQdth + + def update_dirspace(self, shape): + print("Updating dirspace coords") + dims = list(shape) + self.dxdir = 1.0 / shape[0] + self.dydir = 1.0 / shape[1] + self.dzdir = 1.0 / shape[2] + + r = np.mgrid[ + 0:dims[0] * self.dxdir:self.dxdir, \ + 0:dims[1] * self.dydir:self.dydir,\ + 0:dims[2] * self.dzdir:self.dzdir] +# r = np.mgrid[ +# 0:dims[0]*self.dxdir:self.dxdir, \ +# (dims[1]-1)*self.dydir:-self.dydir:-self.dydir,\ +# 0:dims[2]*self.dzdir:self.dzdir] + + origshape=r.shape + r.shape = 3, dims[0] * dims[1] * dims[2] + #r = r.transpose() + + self.dir_coords = np.dot(self.Tdir, r) + +# self.dir_coords = self.dir_coords.transpose() + self.dir_coords.shape=origshape + print("dir shape", self.dir_coords.shape) + self.dirspace_uptodate=1 + + def update_recipspace(self, shape): + dims = list(shape) + q = np.mgrid[ 0:dims[0], 0:dims[1], 0:dims[2]] + + origshape=q.shape + q.shape = 3, dims[0] * dims[1] * dims[2] + + self.recip_coords = np.dot(self.Trecip, q) + self.recip_coords.shape=origshape + self.recipspace_uptodate=1 + + def add_array(self, array, name, space='direct', logentry=None): + + #Need to add something to ensure arrays are all the same dimension. + #Need to add crop of viz output arrays + if len(array.shape) < 3: + newdims = list(array.shape) + for i in range(3 - len(newdims)): + newdims.append(1) + array.shape = tuple(newdims) + print("adding array of shape ", array.shape) + if space=='direct': + self.dir_arrs[name]=array + if (not self.dirspace_uptodate): + self.update_dirspace(array.shape) + elif space=='recip': + self.recip_arrs[name]=array + if (not self.recipspace_uptodate): + self.update_recipspace(array.shape) + else: + return + + def write_directspace(self, filename, **args): + print(self.dir_arrs.keys()) + vtk.gridToVTK(filename, self.dir_coords[0,:,:,:].copy(), \ + self.dir_coords[1,:,:,:].copy(), \ + self.dir_coords[2,:,:,:].copy(), pointData=self.dir_arrs) + vtk.imageToVTK(filename, pointData=self.dir_arrs) + + def write_recipspace(self, filename, **args): + vtk.gridToVTK(filename, self.recip_coords[0,:,:,:].copy(), \ + self.recip_coords[1,:,:,:].copy(), \ + self.recip_coords[2,:,:,:].copy(), pointData=self.recip_arrs) + vtk.imageToVTK(filename, pointData=self.recip_arrs) + diff --git a/reccdi/src_py/utilities/viz_util_dirdemo.py b/reccdi/src_py/utilities/archive/viz_util_dirdemo.py similarity index 100% rename from reccdi/src_py/utilities/viz_util_dirdemo.py rename to reccdi/src_py/utilities/archive/viz_util_dirdemo.py diff --git a/reccdi/src_py/utilities/viz_util_recipdemo.py b/reccdi/src_py/utilities/archive/viz_util_recipdemo.py similarity index 100% rename from reccdi/src_py/utilities/viz_util_recipdemo.py rename to reccdi/src_py/utilities/archive/viz_util_recipdemo.py diff --git a/reccdi/src_py/utilities/archive/viz_util_xu_pyevtk.py b/reccdi/src_py/utilities/archive/viz_util_xu_pyevtk.py new file mode 100644 index 0000000..c2d7e7b --- /dev/null +++ b/reccdi/src_py/utilities/archive/viz_util_xu_pyevtk.py @@ -0,0 +1,332 @@ +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + +import os +import numpy as np +import scipy.ndimage as ndi +import math as m +import pyevtk.hl as vtk +import xrayutilities.experiment as xuexp +import reccdi.src_py.utilities.utils as ut +from reccdi.src_py.utilities.utils import measure +import reccdi.src_py.utilities.spec as sput + +__author__ = "Barbara Frosik" +__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." +__docformat__ = 'restructuredtext en' + +class DispalyParams: + """ + This class encapsulates parameters defining image display. The parameters are +read from config file on + construction + """ + + def __init__(self, config): + """ + The constructor gets config file and fills out the class members. + + Parameters + ---------- + conf : str + configuration file name + + Returns + ------- + none + """ + deg2rad = np.pi / 180.0 + try: + specfile = config['specfile'] + last_scan = config['last_scan'] + self.lam, delta, gamma, dth, arm, pixel,energy = sput.parse_spec(specfile, +last_scan) + self.delta = delta * deg2rad + self.gamma = gamma * deg2rad + self.dth = dth * deg2rad + self.arm = arm / 1000 + self.energy = energy + pixel = pixel[1:-1] + pixel = pixel.split(',') + pixel[0], pixel[1] = float(pixel[0]), float(pixel[1]) + except Exception as e: + pass + # override the parsed parameters with entries in config file + try: + self.energy = config['energy'] + self.lam = 12.398 / energy / 10 + except AttributeError: + pass + try: + self.delta = config['delta'] * deg2rad + except AttributeError: + pass + try: + self.gamma = config['gamma'] * deg2rad + except AttributeError: + pass + try: + self.dth = config['dth'] * deg2rad + except AttributeError: + pass + try: + self.arm = config['arm'] / 1000 + except AttributeError: + pass + try: + pixel = config['pixel'] + except AttributeError: + pass + + try: + self.binning = [] + binning = config['binning'] + for i in range(len(binning)): + self.binning.append(binning[i]) + for _ in range(3 - len(self.binning)): + self.binning.append(1) + except AttributeError: + self.binning = [1,1,1] + self.px = pixel[0] * self.binning[0] + self.py = pixel[1] * self.binning[1] + self.dpx = pixel[0] * self.binning[0] / self.arm / self.binning[2] + self.dpy = pixel[1] * self.binning[1] / self.arm / self.binning[2] + try: + self.crop = [] + crop = config['crop'] + for i in range(len(crop)): + self.crop.append(crop[i]) + for _ in range(3 - len(self.crop)): + self.crop.append(1.0) + crop[0], crop[1] = crop[1], crop[0] + except AttributeError: + self.crop = None + + + + + + +class CXDViz(): + + cropx = 0.5 + cropy = 0.5 + cropz = 0.5 + dir_arrs={} + recip_arrs={} + + def __init__(self): + #self.imd = tvtk.ImageData() + #self.sg = tvtk.StructuredGrid() + pass + + + #def set_geometry(self, lam, delta, gamma, dpx, dpy, dth): + @measure + def set_geometry(self, params, shape): + self.params = params + lam = params.lam + tth = params.delta + gam = params.gamma + px = params.px + py = params.py + dpx = params.dpx + dpy = params.dpy + dth = params.dth + energy = params.energy + dQdpx = np.zeros(3) + dQdpy = np.zeros(3) + dQdth = np.zeros(3) + Astar = np.zeros(3) + Bstar = np.zeros(3) + Cstar = np.zeros(3) + + print("running the xrayutilities version") + self.qc=xuexp.QConversion(['y+','z-','x-'], ['y+','x-'],(0,0,1),en=energy*1000) + self.qc.init_area('x+','y-', shape[0],shape[1], 2,2, distance=params.arm, pwidth1=px, pwidth2=py) + + q1=np.array(self.qc.area(0.0,0,0,tth,gam,deg=False)) + q2=np.array(self.qc.area(dth,0,0,tth,gam,deg=False)) + Astar=q1[:,1,0]-q1[:,0,0] + Bstar=q1[:,0,1]-q1[:,0,0] + Cstar=(q2-q1)[:,0,0] + + denom = np.dot(Astar, np.cross(Bstar, Cstar)) + A = 2 * m.pi * np.cross(Bstar, Cstar) / denom + B = 2 * m.pi * np.cross(Cstar, Astar) / denom + C = 2 * m.pi * np.cross(Astar, Bstar) / denom + + self.Trecip = np.zeros(9) + self.Trecip.shape = (3, 3) + self.Trecip[:, 0] = Astar + self.Trecip[:, 1] = Bstar + self.Trecip[:, 2] = Cstar +# self.Trecip[:, 0] = [2,0,1] +# self.Trecip[:, 1] = [0,1,0] +# self.Trecip[:, 2] = [0,0,1] + print("Recip") + print(Astar,Bstar,Cstar) + print(self.Trecip) + + self.Tdir = np.zeros(9) + self.Tdir.shape = (3, 3) + self.Tdir = np.array((A, B, C)).transpose() + print("Direct") + print(A,B,C) + print(self.Tdir) + + self.dirspace_uptodate=0 + self.recipspace_uptodate=0 + return dQdpx, dQdpy, dQdth + + def update_dirspace(self, shape): + print("Updating dirspace coords") + dims = list(shape) + self.dxdir = 1.0 / shape[0] + self.dydir = 1.0 / shape[1] + self.dzdir = 1.0 / shape[2] + + r = np.mgrid[ + 0:dims[0] * self.dxdir:self.dxdir, \ + 0:dims[1] * self.dydir:self.dydir,\ + 0:dims[2] * self.dzdir:self.dzdir,\ + ] +# r = np.mgrid[ +# 0:dims[0]*self.dxdir:self.dxdir, \ +# (dims[1]-1)*self.dydir:-self.dydir:-self.dydir,\ +# 0:dims[2]*self.dzdir:self.dzdir] + + origshape=r.shape + r.shape = 3, dims[0] * dims[1] * dims[2] + #r = r.transpose() + + self.dir_coords = np.dot(self.Tdir, r) + +# self.dir_coords = self.dir_coords.transpose() + self.dir_coords.shape=origshape + print("dir shape", self.dir_coords.shape) + self.dirspace_uptodate=1 + + def update_recipspace(self, shape): + dims = list(shape) + q = np.mgrid[ 0:dims[0], 0:dims[1], 0:dims[2]] + + origshape=q.shape + q.shape = 3, dims[0] * dims[1] * dims[2] + + self.recip_coords = np.dot(self.Trecip, q) + self.recip_coords.shape=origshape + self.recipspace_uptodate=1 + + def clear_direct_arrays(self): + self.dir_arrs.clear() + def clear_recip_arrays(self): + self.recip_arrs.clear() + + @measure + def add_array(self, array, name, space='direct', logentry=None): + + #Need to add something to ensure arrays are all the same dimension. + #Need to add crop of viz output arrays + if len(array.shape) < 3: + newdims = list(array.shape) + for i in range(3 - len(newdims)): + newdims.append(1) + array.shape = tuple(newdims) + #array=array.transpose() + print("adding array of shape ", array.shape) + if space=='direct': + self.dir_arrs[name]=array + if (not self.dirspace_uptodate): + self.update_dirspace(array.shape) + elif space=='recip': + self.recip_arrs[name]=array + if (not self.recipspace_uptodate): + self.update_recipspace(array.shape) + else: + return + + @measure + def write_directspace(self, filename, **args): + print(self.dir_arrs.keys()) + vtk.gridToVTK(filename, self.dir_coords[0,:,:,:].copy(), \ + self.dir_coords[1,:,:,:].copy(), \ + self.dir_coords[2,:,:,:].copy(), pointData=self.dir_arrs) + vtk.imageToVTK(filename, pointData=self.dir_arrs) + + def write_recipspace(self, filename, **args): + vtk.gridToVTK(filename, self.recip_coords[0,:,:,:].copy(), \ + self.recip_coords[1,:,:,:].copy(), \ + self.recip_coords[2,:,:,:].copy(), pointData=self.recip_arrs) + vtk.imageToVTK(filename, pointData=self.recip_arrs) + +def shift(arr, s0, s1, s2): + shifted = np.roll(arr, s0, axis=0) + shifted = np.roll(shifted, s1, axis=1) + return np.roll(shifted, s2, axis=2) + + +def center_of_mass(arr): + tot = np.sum(arr) + dims = arr.shape + xyz = [] + griddims = [] + for d in dims: + griddims.append(slice(0, d)) + grid = np.ogrid[griddims] + for g in grid: + xyz.append(np.sum(arr * g) / tot) + com = np.asarray(xyz) + com = np.ma.round(com).astype(np.int) + return list(com) + +@measure +def remove_ramp(arr, ups=1): + new_shape = list(arr.shape) + # pad zeros around arr, to the size of 3 times (ups = 3) of arr size + for i in range(len(new_shape)): + new_shape[i] = ups * new_shape[i] + padded = ut.get_zero_padded_centered(arr, new_shape) + padded_f = np.fft.fftshift(np.fft.fftn(np.fft.ifftshift(padded))) + com = ndi.center_of_mass(np.power(np.abs(padded_f), 2)) + sub_pixel_shifted = ut.sub_pixel_shift(padded_f, new_shape[0]/2.0-com[0], new_shape[1]/2.0-com[1], +new_shape[2]/2.0-com[2]) + ramp_removed_padded = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(sub_pixel_shifted))) + ramp_removed = ut.crop_center(ramp_removed_padded, arr.shape) + + return ramp_removed + + +@measure +def center(image, support): + dims = image.shape + image, support = ut.get_centered_both(image, support) + + # place center of mass image*support in the center + for ax in range(len(dims)): + com = ndi.center_of_mass(np.absolute(image) * support) + image = shift(image, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) + support = shift(support, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) + + # set center phase to zero, use as a reference + phi0 = m.atan2(image.imag[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)], image.real[int(dims[0]/2), int(dims[1]/2), +int(dims[2]/2)]) + image = image * np.exp(-1j * phi0) + + return image, support + + +def get_crop(params, shape): + crop = [] + for i in range(len(shape)): + if params.crop is None: + crop.append(shape[i]) + else: + crop.append(params.crop[i]) + if isinstance(crop[i], float): + crop[i] = int(crop[i]*shape[i]) + return crop + diff --git a/reccdi/src_py/utilities/archive/viz_util_xu_tvtk.py b/reccdi/src_py/utilities/archive/viz_util_xu_tvtk.py new file mode 100644 index 0000000..2974765 --- /dev/null +++ b/reccdi/src_py/utilities/archive/viz_util_xu_tvtk.py @@ -0,0 +1,333 @@ +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + +import os +import numpy as np +import scipy.ndimage as ndi +import math as m +import pyevtk.hl as vtk +from tvtk.api import tvtk +import xrayutilities.experiment as xuexp +import reccdi.src_py.utilities.utils as ut +from reccdi.src_py.utilities.utils import measure +import reccdi.src_py.utilities.spec as sput + +__author__ = "Barbara Frosik" +__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." +__docformat__ = 'restructuredtext en' + +class DispalyParams: + """ + This class encapsulates parameters defining image display. The parameters are +read from config file on + construction + """ + + def __init__(self, config): + """ + The constructor gets config file and fills out the class members. + + Parameters + ---------- + conf : str + configuration file name + + Returns + ------- + none + """ + deg2rad = np.pi / 180.0 + try: + specfile = config['specfile'] + last_scan = config['last_scan'] + self.lam, delta, gamma, dth, arm, pixel,energy = sput.parse_spec(specfile, +last_scan) + self.delta = delta * deg2rad + self.gamma = gamma * deg2rad + self.dth = dth * deg2rad + self.arm = arm / 1000 + self.energy = energy + pixel = pixel[1:-1] + pixel = pixel.split(',') + pixel[0], pixel[1] = float(pixel[0]), float(pixel[1]) + except Exception as e: + pass + # override the parsed parameters with entries in config file + try: + self.energy = config['energy'] + self.lam = 12.398 / energy / 10 + except AttributeError: + pass + try: + self.delta = config['delta'] * deg2rad + except AttributeError: + pass + try: + self.gamma = config['gamma'] * deg2rad + except AttributeError: + pass + try: + self.dth = config['dth'] * deg2rad + except AttributeError: + pass + try: + self.arm = config['arm'] / 1000 + except AttributeError: + pass + try: + pixel = config['pixel'] + except AttributeError: + pass + + try: + self.binning = [] + binning = config['binning'] + for i in range(len(binning)): + self.binning.append(binning[i]) + for _ in range(3 - len(self.binning)): + self.binning.append(1) + except AttributeError: + self.binning = [1,1,1] + self.px = pixel[0] * self.binning[0] + self.py = pixel[1] * self.binning[1] + self.dpx = pixel[0] * self.binning[0] / self.arm / self.binning[2] + self.dpy = pixel[1] * self.binning[1] / self.arm / self.binning[2] + try: + self.crop = [] + crop = config['crop'] + for i in range(len(crop)): + self.crop.append(crop[i]) + for _ in range(3 - len(self.crop)): + self.crop.append(1.0) + crop[0], crop[1] = crop[1], crop[0] + except AttributeError: + self.crop = None + + + +class CXDViz(): + + cropx = 0.5 + cropy = 0.5 + cropz = 0.5 + dir_arrs={} + recip_arrs={} + + def __init__(self): + self.imd = tvtk.ImageData() + self.sg = tvtk.StructuredGrid() + pass + + + #def set_geometry(self, lam, delta, gamma, dpx, dpy, dth): + @measure + def set_geometry(self, params, shape): + self.params = params + lam = params.lam + tth = params.delta + gam = params.gamma + px = params.px + py = params.py + dpx = params.dpx + dpy = params.dpy + dth = params.dth + energy = params.energy + dQdpx = np.zeros(3) + dQdpy = np.zeros(3) + dQdth = np.zeros(3) + Astar = np.zeros(3) + Bstar = np.zeros(3) + Cstar = np.zeros(3) + + print("running the xrayutilities version and tvtk") + self.qc=xuexp.QConversion(['y+','z-','x-'], ['y+','x-'],(0,0,1),en=energy*1000) + self.qc.init_area('x+','y-', shape[0],shape[1], 2,2, distance=params.arm, pwidth1=px, pwidth2=py) + + q1=np.array(self.qc.area(0.0,0,0,tth,gam,deg=False)) + q2=np.array(self.qc.area(dth,0,0,tth,gam,deg=False)) + Astar=q1[:,1,0]-q1[:,0,0] + Bstar=q1[:,0,1]-q1[:,0,0] + Cstar=(q2-q1)[:,0,0] + + denom = np.dot(Astar, np.cross(Bstar, Cstar)) + A = 2 * m.pi * np.cross(Bstar, Cstar) / denom + B = 2 * m.pi * np.cross(Cstar, Astar) / denom + C = 2 * m.pi * np.cross(Astar, Bstar) / denom + + self.Trecip = np.zeros(9) + self.Trecip.shape = (3, 3) + self.Trecip[:, 0] = Astar + self.Trecip[:, 1] = Bstar + self.Trecip[:, 2] = Cstar +# self.Trecip[:, 0] = [2,0,1] +# self.Trecip[:, 1] = [0,1,0] +# self.Trecip[:, 2] = [0,0,1] + print("Recip") + print(Astar,Bstar,Cstar) + print(self.Trecip) + + self.Tdir = np.zeros(9) + self.Tdir.shape = (3, 3) + self.Tdir = np.array((A, B, C)).transpose() + print("Direct") + print(A,B,C) + print(self.Tdir) + + self.dirspace_uptodate=0 + self.recipspace_uptodate=0 + return dQdpx, dQdpy, dQdth + + def update_dirspace(self, shape): + print("Updating dirspace coords") + dims = list(shape) + self.dxdir = 1.0 / shape[0] + self.dydir = 1.0 / shape[1] + self.dzdir = 1.0 / shape[2] + + r = np.mgrid[ + 0:dims[0] * self.dxdir:self.dxdir, \ + 0:dims[1] * self.dydir:self.dydir,\ + 0:dims[2] * self.dzdir:self.dzdir] +# r = np.mgrid[ +# 0:dims[0]*self.dxdir:self.dxdir, \ +# (dims[1]-1)*self.dydir:-self.dydir:-self.dydir,\ +# 0:dims[2]*self.dzdir:self.dzdir] + + origshape=r.shape + r.shape = 3, dims[0] * dims[1] * dims[2] + #r = r.transpose() + + self.dir_coords = np.dot(self.Tdir, r).transpose() + +# self.dir_coords = self.dir_coords.transpose() +# self.dir_coords.shape=origshape + print("dir shape", self.dir_coords.shape) + self.dirspace_uptodate=1 + + def update_recipspace(self, shape): + dims = list(shape) + q = np.mgrid[ 0:dims[0], 0:dims[1], 0:dims[2]] + + origshape=q.shape + q.shape = 3, dims[0] * dims[1] * dims[2] + + self.recip_coords = np.dot(self.Trecip, q) + self.recip_coords.shape=origshape + self.recipspace_uptodate=1 + + def clear_direct_arrays(self): + self.dir_arrs.clear() + def clear_recip_arrays(self): + self.recip_arrs.clear() + + @measure + def add_array(self, array, name, space='direct', logentry=None): + + #Need to add something to ensure arrays are all the same dimension. + #Need to add crop of viz output arrays + if len(array.shape) < 3: + newdims = list(array.shape) + for i in range(3 - len(newdims)): + newdims.append(1) + array.shape = tuple(newdims) + print("adding array of shape ", array.shape) + if space=='direct': + self.dir_arrs[name]=array + if (not self.dirspace_uptodate): + self.update_dirspace(array.shape) + elif space=='recip': + self.recip_arrs[name]=array + if (not self.recipspace_uptodate): + self.update_recipspace(array.shape) + else: + return + + def get_ds_structured_grid(self, **args): + arr0=self.dir_arrs[list(self.dir_arrs.keys())[0]] + dims = list(arr0.shape) + self.sg.points = self.dir_coords + for a in self.dir_arrs.keys(): + arr=tvtk.DoubleArray() + arr.from_array(self.dir_arrs[a].ravel()) + arr.name=a + self.sg.point_data.add_array(arr) + + self.sg.dimensions = (dims[2], dims[1], dims[0]) + self.sg.extent = 0, dims[2] - 1, 0, dims[1] - 1, 0, dims[0] - 1 + return self.sg + + def write_directspace(self, filename, **args): + sgwriter = tvtk.XMLStructuredGridWriter() + #sgwriter.file_type = 'binary' + if filename.endswith(".vtk"): + sgwriter.file_name = filename + else: + sgwriter.file_name = filename + '.vts' + sgwriter.set_input_data(self.get_ds_structured_grid()) + sgwriter.write() + print ('saved file', filename) + + @measure + def write_directspace_pyevtk(self, filename, **args): + print(self.dir_arrs.keys()) + vtk.gridToVTK(filename, self.dir_coords[0,:,:,:].copy(), \ + self.dir_coords[1,:,:,:].copy(), \ + self.dir_coords[2,:,:,:].copy(), pointData=self.dir_arrs) + vtk.imageToVTK(filename, pointData=self.dir_arrs) + + def write_recipspace_pyevtk(self, filename, **args): + vtk.gridToVTK(filename, self.recip_coords[0,:,:,:].copy(), \ + self.recip_coords[1,:,:,:].copy(), \ + self.recip_coords[2,:,:,:].copy(), pointData=self.recip_arrs) + vtk.imageToVTK(filename, pointData=self.recip_arrs) + +@measure +def remove_ramp(arr, ups=1): + new_shape = list(arr.shape) + # pad zeros around arr, to the size of 3 times (ups = 3) of arr size + for i in range(len(new_shape)): + new_shape[i] = ups * new_shape[i] + padded = ut.get_zero_padded_centered(arr, new_shape) + padded_f = np.fft.fftshift(np.fft.fftn(np.fft.ifftshift(padded))) + com = ndi.center_of_mass(np.power(np.abs(padded_f), 2)) + sub_pixel_shifted = ut.sub_pixel_shift(padded_f, new_shape[0]/2.0-com[0], new_shape[1]/2.0-com[1], +new_shape[2]/2.0-com[2]) + ramp_removed_padded = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(sub_pixel_shifted))) + ramp_removed = ut.crop_center(ramp_removed_padded, arr.shape) + + return ramp_removed + + +@measure +def center(image, support): + dims = image.shape + image, support = ut.get_centered_both(image, support) + + # place center of mass image*support in the center + for ax in range(len(dims)): + com = ndi.center_of_mass(np.absolute(image) * support) + image = shift(image, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) + support = shift(support, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) + + # set center phase to zero, use as a reference + phi0 = m.atan2(image.imag[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)], image.real[int(dims[0]/2), int(dims[1]/2), +int(dims[2]/2)]) + image = image * np.exp(-1j * phi0) + + return image, support + + +def get_crop(params, shape): + crop = [] + for i in range(len(shape)): + if params.crop is None: + crop.append(shape[i]) + else: + crop.append(params.crop[i]) + if isinstance(crop[i], float): + crop[i] = int(crop[i]*shape[i]) + return crop + diff --git a/reccdi/src_py/utilities/utils.py b/reccdi/src_py/utilities/utils.py index c6e605e..32a6a5f 100644 --- a/reccdi/src_py/utilities/utils.py +++ b/reccdi/src_py/utilities/utils.py @@ -576,6 +576,7 @@ def get_gpu_distribution(runs, available): return available +#https://stackoverflow.com/questions/51503672/decorator-for-timeit-timeit-method/51503837#51503837 from functools import wraps from time import time def measure(func): diff --git a/reccdi/src_py/utilities/viz_util.py b/reccdi/src_py/utilities/viz_util.py index 1074dc6..6d9e02c 100644 --- a/reccdi/src_py/utilities/viz_util.py +++ b/reccdi/src_py/utilities/viz_util.py @@ -6,169 +6,66 @@ import os import numpy as np +import scipy.ndimage as ndi import math as m -import pyevtk.hl as vtk +import reccdi.src_py.utilities.utils as ut +from reccdi.src_py.utilities.utils import measure __author__ = "Barbara Frosik" __copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." __docformat__ = 'restructuredtext en' -class CXDViz(): - - cropx = 0.5 - cropy = 0.5 - cropz = 0.5 - dir_arrs={} - recip_arrs={} - - def __init__(self): - #self.imd = tvtk.ImageData() - #self.sg = tvtk.StructuredGrid() - pass - - - def set_geometry(self, lam, delta, gamma, dpx, dpy, dth): - lam = lam - tth = delta - gam = gamma - dpx = dpx - dpy = dpy - dth = dth - dQdpx = np.zeros(3) - dQdpy = np.zeros(3) - dQdth = np.zeros(3) - Astar = np.zeros(3) - Bstar = np.zeros(3) - Cstar = np.zeros(3) - - # dQdpx[0] = -m.cos(tth) * m.cos(gam) - # dQdpx[1] = 0.0 - # dQdpx[2] = +m.sin(tth) * m.cos(gam) - dQdpx[0] = -m.cos(tth) - dQdpx[1] = 0.0 - dQdpx[2] = +m.sin(tth) - print("dqdpx",dQdpx) - - dQdpy[0] = m.sin(tth) * m.sin(gam) - dQdpy[1] = -m.cos(gam) - dQdpy[2] = m.cos(tth) * m.sin(gam) - print("dqdpy",dQdpy) - - dQdth[0] = -m.cos(tth) * m.cos(gam) + 1.0 - dQdth[1] = 0.0 - dQdth[2] = m.sin(tth) * m.cos(gam) - print("dqdth",dQdth) - - Astar[0] = 2 * m.pi / lam * dpx * dQdpx[0] - Astar[1] = 2 * m.pi / lam * dpx * dQdpx[1] - Astar[2] = 2 * m.pi / lam * dpx * dQdpx[2] - - Bstar[0] = (2 * m.pi / lam) * dpy * dQdpy[0] - Bstar[1] = (2 * m.pi / lam) * dpy * dQdpy[1] - Bstar[2] = (2 * m.pi / lam) * dpy * dQdpy[2] - - Cstar[0] = (2 * m.pi / lam) * dth * dQdth[0] - Cstar[1] = (2 * m.pi / lam) * dth * dQdth[1] - Cstar[2] = (2 * m.pi / lam) * dth * dQdth[2] - - denom = np.dot(Astar, np.cross(Bstar, Cstar)) - A = 2 * m.pi * np.cross(Bstar, Cstar) / denom - B = 2 * m.pi * np.cross(Cstar, Astar) / denom - C = 2 * m.pi * np.cross(Astar, Bstar) / denom - - self.Trecip = np.zeros(9) - self.Trecip.shape = (3, 3) - self.Trecip[:, 0] = Astar - self.Trecip[:, 1] = Bstar - self.Trecip[:, 2] = Cstar -# self.Trecip[:, 0] = [2,0,1] -# self.Trecip[:, 1] = [0,1,0] -# self.Trecip[:, 2] = [0,0,1] - print("Recip") - print(Astar,Bstar,Cstar) - print(self.Trecip) - - self.Tdir = np.zeros(9) - self.Tdir.shape = (3, 3) - self.Tdir = np.array((A, B, C)) - print("Direct") - print(A,B,C) - print(self.Tdir) - - self.dirspace_uptodate=0 - self.recipspace_uptodate=0 - return dQdpx, dQdpy, dQdth - - def update_dirspace(self, shape): - print("Updating dirspace coords") - dims = list(shape) - self.dxdir = 1.0 / shape[0] - self.dydir = 1.0 / shape[1] - self.dzdir = 1.0 / shape[2] - - r = np.mgrid[ - 0:dims[0] * self.dxdir:self.dxdir, \ - 0:dims[1] * self.dydir:self.dydir,\ - 0:dims[2] * self.dzdir:self.dzdir] -# r = np.mgrid[ -# 0:dims[0]*self.dxdir:self.dxdir, \ -# (dims[1]-1)*self.dydir:-self.dydir:-self.dydir,\ -# 0:dims[2]*self.dzdir:self.dzdir] - - origshape=r.shape - r.shape = 3, dims[0] * dims[1] * dims[2] - #r = r.transpose() - - self.dir_coords = np.dot(self.Tdir, r) - -# self.dir_coords = self.dir_coords.transpose() - self.dir_coords.shape=origshape - print("dir shape", self.dir_coords.shape) - self.dirspace_uptodate=1 - - def update_recipspace(self, shape): - dims = list(shape) - q = np.mgrid[ 0:dims[0], 0:dims[1], 0:dims[2]] - - origshape=q.shape - q.shape = 3, dims[0] * dims[1] * dims[2] - - self.recip_coords = np.dot(self.Trecip, q) - self.recip_coords.shape=origshape - self.recipspace_uptodate=1 - - def add_array(self, array, name, space='direct', logentry=None): - - #Need to add something to ensure arrays are all the same dimension. - #Need to add crop of viz output arrays - if len(array.shape) < 3: - newdims = list(array.shape) - for i in range(3 - len(newdims)): - newdims.append(1) - array.shape = tuple(newdims) - print("adding array of shape ", array.shape) - if space=='direct': - self.dir_arrs[name]=array - if (not self.dirspace_uptodate): - self.update_dirspace(array.shape) - elif space=='recip': - self.recip_arrs[name]=array - if (not self.recipspace_uptodate): - self.update_recipspace(array.shape) - else: - return - - def write_directspace(self, filename, **args): - print(self.dir_arrs.keys()) - vtk.gridToVTK(filename, self.dir_coords[0,:,:,:].copy(), \ - self.dir_coords[1,:,:,:].copy(), \ - self.dir_coords[2,:,:,:].copy(), pointData=self.dir_arrs) - vtk.imageToVTK(filename, pointData=self.dir_arrs) - - def write_recipspace(self, filename, **args): - vtk.gridToVTK(filename, self.recip_coords[0,:,:,:].copy(), \ - self.recip_coords[1,:,:,:].copy(), \ - self.recip_coords[2,:,:,:].copy(), pointData=self.recip_arrs) - vtk.imageToVTK(filename, pointData=self.recip_arrs) +def shift(arr, s0, s1, s2): + shifted = np.roll(arr, s0, axis=0) + shifted = np.roll(shifted, s1, axis=1) + return np.roll(shifted, s2, axis=2) + + +@measure +def remove_ramp(arr, ups=1): + new_shape = list(arr.shape) + # pad zeros around arr, to the size of 3 times (ups = 3) of arr size + for i in range(len(new_shape)): + new_shape[i] = ups * new_shape[i] + padded = ut.get_zero_padded_centered(arr, new_shape) + padded_f = np.fft.fftshift(np.fft.fftn(np.fft.ifftshift(padded))) + com = ndi.center_of_mass(np.power(np.abs(padded_f), 2)) + sub_pixel_shifted = ut.sub_pixel_shift(padded_f, new_shape[0]/2.0-com[0], new_shape[1]/2.0-com[1], +new_shape[2]/2.0-com[2]) + ramp_removed_padded = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(sub_pixel_shifted))) + ramp_removed = ut.crop_center(ramp_removed_padded, arr.shape) + + return ramp_removed + + +@measure +def center(image, support): + dims = image.shape + image, support = ut.get_centered_both(image, support) + + # place center of mass image*support in the center + for ax in range(len(dims)): + com = ndi.center_of_mass(np.absolute(image) * support) + image = shift(image, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) + support = shift(support, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) + + # set center phase to zero, use as a reference + phi0 = m.atan2(image.imag[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)], image.real[int(dims[0]/2), int(dims[1]/2), +int(dims[2]/2)]) + image = image * np.exp(-1j * phi0) + + return image, support + + +def get_crop(params, shape): + crop = [] + for i in range(len(shape)): + if params.crop is None: + crop.append(shape[i]) + else: + crop.append(params.crop[i]) + if isinstance(crop[i], float): + crop[i] = int(crop[i]*shape[i]) + return crop From 2a6ab4b1399d332c317e2f5ac0c609e6545470ca Mon Sep 17 00:00:00 2001 From: Service Account for David Cyl Date: Thu, 23 Jan 2020 13:29:49 -0600 Subject: [PATCH 215/336] deleted a core file before push From 87f3601750d72d5abd7a619b0304c17666cae77c Mon Sep 17 00:00:00 2001 From: bfrosik Date: Thu, 30 Jan 2020 14:48:16 -0600 Subject: [PATCH 216/336] Added GUI support, clened up --- bin/cdi_window.py | 16 +- bin/run_disp_tvtk.py | 28 +- reccdi/include/common.h | 30 +- reccdi/src_cpp/parameters.cpp | 33 +- reccdi/src_cpp/pcdi.cpp | 20 +- reccdi/src_cpp/worker.cpp | 39 +- reccdi/src_py/beamlines/aps_34id/detectors.py | 2 +- .../beamlines/aps_34id/diffractometer.py | 379 ++++++++--------- reccdi/src_py/controller/data.py | 4 - reccdi/src_py/controller/fast_module.py | 42 +- reccdi/src_py/controller/gen_rec.py | 2 - reccdi/src_py/controller/reconstruction.py | 2 - .../src_py/controller/reconstruction_multi.py | 2 - reccdi/src_py/utilities/archive/CXDVizNX.py | 374 ----------------- .../src_py/utilities/archive/localCXDVizNX.py | 383 ------------------ reccdi/src_py/utilities/archive/pyevtktest.py | 42 -- reccdi/src_py/utilities/archive/rec_disp.py | 379 ----------------- reccdi/src_py/utilities/archive/viz_util.py | 174 -------- .../utilities/archive/viz_util_dirdemo.py | 42 -- .../utilities/archive/viz_util_recipdemo.py | 34 -- .../utilities/archive/viz_util_xu_pyevtk.py | 332 --------------- .../utilities/archive/viz_util_xu_tvtk.py | 333 --------------- reccdi/src_py/utilities/utils.py | 3 +- setup.py | 3 +- 24 files changed, 259 insertions(+), 2439 deletions(-) delete mode 100644 reccdi/src_py/utilities/archive/CXDVizNX.py delete mode 100644 reccdi/src_py/utilities/archive/localCXDVizNX.py delete mode 100644 reccdi/src_py/utilities/archive/pyevtktest.py delete mode 100644 reccdi/src_py/utilities/archive/rec_disp.py delete mode 100644 reccdi/src_py/utilities/archive/viz_util.py delete mode 100644 reccdi/src_py/utilities/archive/viz_util_dirdemo.py delete mode 100644 reccdi/src_py/utilities/archive/viz_util_recipdemo.py delete mode 100644 reccdi/src_py/utilities/archive/viz_util_xu_pyevtk.py delete mode 100644 reccdi/src_py/utilities/archive/viz_util_xu_tvtk.py diff --git a/bin/cdi_window.py b/bin/cdi_window.py index 96990a8..e9e97f9 100644 --- a/bin/cdi_window.py +++ b/bin/cdi_window.py @@ -6,9 +6,10 @@ from PyQt5.QtWidgets import * import reccdi.src_py.run_scripts.run_data as run_dt import reccdi.src_py.run_scripts.run_rec as run_rc -import reccdi.src_py.run_scripts.run_disp as run_dp +#import reccdi.src_py.run_scripts.run_disp as run_dp +import run_disp_tvtk as run_dp import reccdi.src_py.utilities.utils as ut -import reccdi.src_py.utilities.spec as spec +import reccdi.src_py.beamlines.aps_34id.spec as spec import reccdi.src_py.utilities.parse_ver as ver import importlib @@ -585,6 +586,8 @@ def tab4UI(self): layout.addRow("results directory", self.result_dir_button) self.crop = QLineEdit() layout.addRow("crop", self.crop) + self.rampups = QLineEdit() + layout.addRow("ramp upscale", self.rampups) self.spec_file_button1 = QPushButton() layout.addRow("spec file", self.spec_file_button1) self.energy = QLineEdit() @@ -793,11 +796,15 @@ def load_disp_tab(self, conf): self.parse_spec() except AttributeError: pass - # if parameters are configured, override the readingsfrom spec file + # if parameters are configured, override the readingsf rom spec file try: self.crop.setText(str(conf_map.crop).replace(" ", "")) except AttributeError: pass + try: + self.rampups.setText(str(conf_map.rampups).replace(" ", "")) + except AttributeError: + pass try: self.energy.setText(str(conf_map.energy).replace(" ", "")) self.energy.setStyleSheet('color: black') @@ -917,6 +924,8 @@ def get_disp_config(self): conf_map['pixel'] = str(self.pixel.text()).replace('\n', '') if len(self.crop.text()) > 0: conf_map['crop'] = str(self.crop.text()).replace('\n', '') + if len(self.rampups.text()) > 0: + conf_map['rampups'] = str(self.rampups.text()).replace('\n', '') return conf_map @@ -1237,7 +1246,6 @@ def init_results_dir(self): self.results_dir = os.path.join(self.main_win.experiment_dir, res_file, 'g_' + str(generations-1)) else: - print ('self.main_win.experiment_dir, res_file', self.main_win.experiment_dir, res_file) self.results_dir = os.path.join(self.main_win.experiment_dir, res_file) if self.separate_scans.isChecked(): self.results_dir = self.main_win.experiment_dir diff --git a/bin/run_disp_tvtk.py b/bin/run_disp_tvtk.py index 18c57ba..9070f86 100755 --- a/bin/run_disp_tvtk.py +++ b/bin/run_disp_tvtk.py @@ -11,34 +11,30 @@ def save_CX(conf_dict, image, support, coh, save_dir): params = dif.DispalyParams(conf_dict) -# image = np.swapaxes(image, 1,2) -# image = np.swapaxes(image, 0,1) -# support = np.swapaxes(support, 1,2) -# support = np.swapaxes(support, 0,1) - print("center image and support") + # print("center image and support") image, support = vu.center(image, support) - print("remove phase ramp on image") - image = vu.remove_ramp(image, ups=conf_dict['rampups']) - print("set viz") + # print("remove phase ramp on image") + try: + image = vu.remove_ramp(image, ups=conf_dict['rampups']) + except: + pass + # print("set viz") viz = dif.CXDViz() viz.set_geometry(params, image.shape) -# crop = get_crop(params, image.shape) -# viz.set_crop(crop[0], crop[1], crop[2]) # save image - print("set im amps") + # print("set im amps") viz.add_array(abs(image), "imAmp", space='direct') - print("set im phase") + # print("set im phase") viz.add_array(np.angle(image), "imPh", space='direct') image_file = os.path.join(save_dir, 'image') - print("write im") + # print("write im") viz.write_directspace(image_file) viz.clear_direct_arrays() - - print("set support") + # print("set support") viz.add_array(support, "support", space='direct') support_file = os.path.join(save_dir, 'support') - print("write support") + # print("write support") viz.write_directspace(support_file) viz.clear_direct_arrays() diff --git a/reccdi/include/common.h b/reccdi/include/common.h index ba32411..c0fec3d 100644 --- a/reccdi/include/common.h +++ b/reccdi/include/common.h @@ -72,21 +72,21 @@ typedef struct flow_item_def { char* item_name; // 2. Update the flow_seq_len below. // 3. Add the new function to the worker.hh and worker.cc, and add the pair (func_name, fp) to the flow_ptr_map in worker.cpp. const flow_item_def flow_def[] = { - flow_item_def("next", NOT_TRIGGER, "NextIter"), - flow_item_def("resolution_trigger", FIRST_RUN_ONLY, "ResolutionTrigger"), - flow_item_def("amp_support_trigger", MODIFIED_AFTER_FIRST, "SupportTrigger"), - flow_item_def("phase_support_trigger", FIRST_RUN_ONLY, "PhaseTrigger"), - flow_item_def("to_reciprocal_space", NOT_TRIGGER, "ToReciprocal"), - flow_item_def("pcdi_trigger", MODIFIED_AFTER_FIRST, "PcdiTrigger"), - flow_item_def("pcdi", CUSTOM, "Pcdi"), - flow_item_def("no_pcdi", CUSTOM, "NoPcdi"), - flow_item_def("garbage_trigger", FOR_ALL_RUNS, "Gc"), - flow_item_def("set_prev_pcdi_trigger", CUSTOM, "SetPcdiPrevious"), - flow_item_def("to_direct_space", NOT_TRIGGER, "ToDirect"), - flow_item_def("algorithm", CUSTOM, "RunAlg"), - flow_item_def("twin_trigger", FIRST_RUN_ONLY, "Twin"), - flow_item_def("average_trigger", FOR_ALL_RUNS, "Average"), - flow_item_def("progress_trigger", FOR_ALL_RUNS, "Prog") + flow_item_def((char *)"next", NOT_TRIGGER, (char *)"NextIter"), + flow_item_def((char *)"resolution_trigger", FIRST_RUN_ONLY, (char *)"ResolutionTrigger"), + flow_item_def((char *)"amp_support_trigger", MODIFIED_AFTER_FIRST, (char *)"SupportTrigger"), + flow_item_def((char *)"phase_support_trigger", FIRST_RUN_ONLY, (char *)"PhaseTrigger"), + flow_item_def((char *)"to_reciprocal_space", NOT_TRIGGER, (char *)"ToReciprocal"), + flow_item_def((char *)"pcdi_trigger", MODIFIED_AFTER_FIRST, (char *)"PcdiTrigger"), + flow_item_def((char *)"pcdi", CUSTOM, (char *)"Pcdi"), + flow_item_def((char *)"no_pcdi", CUSTOM, (char *)"NoPcdi"), + flow_item_def((char *)"garbage_trigger", FOR_ALL_RUNS, (char *)"Gc"), + flow_item_def((char *)"set_prev_pcdi_trigger", CUSTOM, (char *)"SetPcdiPrevious"), + flow_item_def((char *)"to_direct_space", NOT_TRIGGER, (char *)"ToDirect"), + flow_item_def((char *)"algorithm", CUSTOM, (char *)"RunAlg"), + flow_item_def((char *)"twin_trigger", FIRST_RUN_ONLY, (char *)"Twin"), + flow_item_def((char *)"average_trigger", FOR_ALL_RUNS, (char *)"Average"), + flow_item_def((char *)"progress_trigger", FOR_ALL_RUNS, (char *)"Prog") }; const int flow_seq_len = 15; diff --git a/reccdi/src_cpp/parameters.cpp b/reccdi/src_cpp/parameters.cpp index b548d00..4ede813 100644 --- a/reccdi/src_cpp/parameters.cpp +++ b/reccdi/src_cpp/parameters.cpp @@ -92,7 +92,6 @@ Params::Params(const char* config_file, std::vector data_dim, bool first) { printf("No 'algorithm_sequence' parameter in configuration file.\n"); } - // process triggers // find which triggers are configured, add the index of the flow_seq item to used_flow_seq vwctor if this item // is used @@ -106,7 +105,7 @@ Params::Params(const char* config_file, std::vector data_dim, bool first) { used_flow_seq.push_back(i); } - else if (flow_item == "pcdi_trigger") + else if (flow_item == (char *)"pcdi_trigger") { if (root.exists(flow_item)) { @@ -123,11 +122,11 @@ Params::Params(const char* config_file, std::vector data_dim, bool first) { if (type == CUSTOM) { - if (flow_item == "algorithm") + if (flow_item == (char *)"algorithm") { used_flow_seq.push_back(i); } - else if (flow_item == "no_pcdi") + else if (flow_item == (char *)"no_pcdi") { if (!is_pcdi || first) { @@ -174,7 +173,7 @@ Params::Params(const char* config_file, std::vector data_dim, bool first) } else if (type == CUSTOM) { - if (flow_item == "algorithm") + if (flow_item == (char *)"algorithm") { int alg_start = 0; for (int k=0; k < alg_switches.size(); k++) @@ -183,7 +182,7 @@ Params::Params(const char* config_file, std::vector data_dim, bool first) alg_start += alg_switches[k].iterations; } } - else if (flow_item == "pcdi") + else if (flow_item == (char *)"pcdi") { int start_pcdi = first ? pcdi_tr_iter[0] : 0; for (int i = start_pcdi; i < number_iterations; i ++) @@ -191,7 +190,7 @@ Params::Params(const char* config_file, std::vector data_dim, bool first) flow[offset + i] = 1; } } - else if (flow_item == "no_pcdi") + else if (flow_item == (char *)"no_pcdi") { int stop_pcdi = is_pcdi ? pcdi_tr_iter[0] : number_iterations; for (int i = 0; i < stop_pcdi; i ++) @@ -199,7 +198,7 @@ Params::Params(const char* config_file, std::vector data_dim, bool first) flow[offset + i] = 1; } } - else if (flow_item == "set_prev_pcdi_trigger") + else if (flow_item == (char *)"set_prev_pcdi_trigger") { for (int i = 0; i < pcdi_tr_iter.size(); i ++) { @@ -220,7 +219,7 @@ Params::Params(const char* config_file, std::vector data_dim, bool first) // the line below handler negative number ind = (ind + number_iterations) % number_iterations; flow[offset + ind] = 1; - if (flow_item == "pcdi_trigger") + if (flow_item == (char *)"pcdi_trigger") { pcdi_tr_iter.push_back(ind); } @@ -252,7 +251,7 @@ Params::Params(const char* config_file, std::vector data_dim, bool first) for (int i = start_iter; i < stop_iter; i += step) { flow[offset + i] = 1; - if (flow_item == "pcdi_trigger") + if (flow_item == (char *)"pcdi_trigger") { pcdi_tr_iter.push_back(i); } @@ -271,7 +270,7 @@ Params::Params(const char* config_file, std::vector data_dim, bool first) // the line below handler negative number ind = (ind + number_iterations) % number_iterations; flow[offset + ind] = 1; - if (flow_item == "pcdi_trigger") + if (flow_item == (char *)"pcdi_trigger") { pcdi_tr_iter.push_back(ind); } @@ -302,7 +301,7 @@ Params::Params(const char* config_file, std::vector data_dim, bool first) for (int i = start_iter; i < stop_iter; i += step) { flow[offset + i] = 1; - if (flow_item == "pcdi_trigger") + if (flow_item == (char *)"pcdi_trigger") { pcdi_tr_iter.push_back(i); } @@ -520,11 +519,11 @@ Params::~Params() void Params::BuildAlgorithmMap() { // hardcoded - algorithm_id_map.insert(std::pair("ER", ALGORITHM_ER)); - algorithm_id_map.insert(std::pair("HIO", ALGORITHM_HIO)); - algorithm_id_map.insert(std::pair("LUCY", ALGORITHM_LUCY)); - algorithm_id_map.insert(std::pair("LUCY_PREV", ALGORITHM_LUCY_PREV)); - algorithm_id_map.insert(std::pair("GAUSS", ALGORITHM_GAUSS)); + algorithm_id_map.insert(std::pair((char *)"ER", ALGORITHM_ER)); + algorithm_id_map.insert(std::pair((char *)"HIO", ALGORITHM_HIO)); + algorithm_id_map.insert(std::pair((char *)"LUCY", ALGORITHM_LUCY)); + algorithm_id_map.insert(std::pair((char *)"LUCY_PREV", ALGORITHM_LUCY_PREV)); + algorithm_id_map.insert(std::pair((char *)"GAUSS", ALGORITHM_GAUSS)); } int Params::GetNumberIterations() diff --git a/reccdi/src_cpp/pcdi.cpp b/reccdi/src_cpp/pcdi.cpp index 6b7cf1f..d847916 100644 --- a/reccdi/src_cpp/pcdi.cpp +++ b/reccdi/src_cpp/pcdi.cpp @@ -53,7 +53,7 @@ void PartialCoherence::Init(af::array data) d_type c = 0.5; kernel_array = constant(c, roi_dims); } - dim4 kdim = kernel_array.dims(); + //dim4 kdim = kernel_array.dims(); } void PartialCoherence::SetPrevious(af::array abs_amplitudes) @@ -152,15 +152,15 @@ af::array PartialCoherence::fftConvolve(af::array arr, af::array kernel) { try{ af::dim4 dims_input = arr.dims(); - af::dim4 dims_kernel = kernel.dims(); - - int dims_fft_padded [nD]; - - for(unsigned int i = 0; i < nD; i++) - { - dim_t d = Utils::GetDimension(dims_input[i] + dims_kernel[i] - 1); - dims_fft_padded[i] = Utils::GetDimension(dims_input[i] + dims_kernel[i] - 1); - } +// af::dim4 dims_kernel = kernel.dims(); +// +// int dims_fft_padded [nD]; +// +// for(unsigned int i = 0; i < nD; i++) +// { +// dim_t d = Utils::GetDimension(dims_input[i] + dims_kernel[i] - 1); +// dims_fft_padded[i] = Utils::GetDimension(dims_input[i] + dims_kernel[i] - 1); +// } d_type pad = 0; af::array kernel_padded = Utils::PadAround(kernel, dims_input, pad); diff --git a/reccdi/src_cpp/worker.cpp b/reccdi/src_cpp/worker.cpp index 2a88b6a..b042a68 100644 --- a/reccdi/src_cpp/worker.cpp +++ b/reccdi/src_cpp/worker.cpp @@ -99,28 +99,27 @@ void Reconstruction::Init() CreateAlgorithmMap(); std::map flow_ptr_map; - flow_ptr_map["NextIter"] = &Reconstruction::NextIter; - flow_ptr_map["ResolutionTrigger"] = &Reconstruction::ResolutionTrigger; - flow_ptr_map["SupportTrigger"] = &Reconstruction::SupportTrigger; - flow_ptr_map["PhaseTrigger"] = &Reconstruction::PhaseTrigger; - flow_ptr_map["ToReciprocal"] = &Reconstruction::ToReciprocal; - flow_ptr_map["PcdiTrigger"] = &Reconstruction::PcdiTrigger; - flow_ptr_map["Pcdi"] = &Reconstruction::Pcdi; - flow_ptr_map["NoPcdi"] = &Reconstruction::NoPcdi; - flow_ptr_map["Gc"] = &Reconstruction::Gc; - flow_ptr_map["SetPcdiPrevious"] = &Reconstruction::SetPcdiPrevious; - flow_ptr_map["ToDirect"] = &Reconstruction::ToDirect; - flow_ptr_map["RunAlg"] = &Reconstruction::ModulusConstrainEr; //This will be replaced by configured algorithm method - flow_ptr_map["Twin"] = &Reconstruction::Twin; - flow_ptr_map["Average"] = &Reconstruction::Average; - flow_ptr_map["Prog"] = &Reconstruction::Progress; - + flow_ptr_map[(char *)"NextIter"] = &Reconstruction::NextIter; + flow_ptr_map[(char *)"ResolutionTrigger"] = &Reconstruction::ResolutionTrigger; + flow_ptr_map[(char *)"SupportTrigger"] = &Reconstruction::SupportTrigger; + flow_ptr_map[(char *)"PhaseTrigger"] = &Reconstruction::PhaseTrigger; + flow_ptr_map[(char *)"ToReciprocal"] = &Reconstruction::ToReciprocal; + flow_ptr_map[(char *)"PcdiTrigger"] = &Reconstruction::PcdiTrigger; + flow_ptr_map[(char *)"Pcdi"] = &Reconstruction::Pcdi; + flow_ptr_map[(char *)"NoPcdi"] = &Reconstruction::NoPcdi; + flow_ptr_map[(char *)"Gc"] = &Reconstruction::Gc; + flow_ptr_map[(char *)"SetPcdiPrevious"] = &Reconstruction::SetPcdiPrevious; + flow_ptr_map[(char *)"ToDirect"] = &Reconstruction::ToDirect; + flow_ptr_map[(char *)"RunAlg"] = &Reconstruction::ModulusConstrainEr; //This will be replaced by configured algorithm method + flow_ptr_map[(char *)"Twin"] = &Reconstruction::Twin; + flow_ptr_map[(char *)"Average"] = &Reconstruction::Average; + flow_ptr_map[(char *)"Prog"] = &Reconstruction::Progress; std::vector used_flow_seq = params->GetUsedFlowSeq(); std::vector flow_array = params->GetFlowArray(); int num_iter = params->GetNumberIterations(); - for (int i = 0; i < used_flow_seq.size(); i++) + for (uint i = 0; i < used_flow_seq.size(); i++) { int func_order = used_flow_seq[i]; int offset = i * num_iter; @@ -185,7 +184,7 @@ int Reconstruction::Iterate() printf("the image array has NaN element, quiting this reconstruction process\n"); return (uint)(getpid()); } - for (int i=0; i*iter_flow[current_iteration][i])(); } @@ -307,14 +306,14 @@ void Reconstruction::Average() std::vector v(image_v, image_v + ds_image.elements()); if (aver_v.size() == 0) { - for (int i = 0; i < v.size(); i++) + for (uint i = 0; i < v.size(); i++) { aver_v.push_back(v[i]); } } else { - for (int i = 0; i < v.size(); i++) + for (uint i = 0; i < v.size(); i++) { aver_v[i] += v[i]; } diff --git a/reccdi/src_py/beamlines/aps_34id/detectors.py b/reccdi/src_py/beamlines/aps_34id/detectors.py index 44700f8..d959af2 100644 --- a/reccdi/src_py/beamlines/aps_34id/detectors.py +++ b/reccdi/src_py/beamlines/aps_34id/detectors.py @@ -2,7 +2,7 @@ ################################################################## def getdetclass(detname, **args): for cls in Detector.__subclasses__(): - print(detname.strip(),cls, cls.name) + # print(detname.strip(),cls, cls.name) if cls.name == detname.strip(): c=cls() return c diff --git a/reccdi/src_py/beamlines/aps_34id/diffractometer.py b/reccdi/src_py/beamlines/aps_34id/diffractometer.py index 62bb3b3..3126f30 100644 --- a/reccdi/src_py/beamlines/aps_34id/diffractometer.py +++ b/reccdi/src_py/beamlines/aps_34id/diffractometer.py @@ -4,11 +4,8 @@ # See LICENSE file. # # ######################################################################### -import os import numpy as np -import scipy.ndimage as ndi import math as m -import pyevtk.hl as vtk from tvtk.api import tvtk import xrayutilities.experiment as xuexp import reccdi.src_py.utilities.utils as ut @@ -16,10 +13,11 @@ import reccdi.src_py.beamlines.aps_34id.spec as sput import reccdi.src_py.beamlines.aps_34id.detectors as det -__author__ = "Barbara Frosik" +__author__ = "Ross Harder" __copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." __docformat__ = 'restructuredtext en' + class DispalyParams: """ This class encapsulates parameters defining image display. The parameters are @@ -44,18 +42,19 @@ def __init__(self, config): try: specfile = config['specfile'] last_scan = config['last_scan'] - #get stuff from the spec file. - delta, gamma, theta, phi, chi, scanmot, scanmot_del, detdist, detector, energy = sput.parse_spec(specfile, last_scan) - self.delta = delta - self.gamma = gamma - self.theta = theta - self.phi = phi - self.chi = chi + # get stuff from the spec file. + delta, gamma, theta, phi, chi, scanmot, scanmot_del, detdist, detector, energy = sput.parse_spec(specfile, + last_scan) + self.delta = delta + self.gamma = gamma + self.theta = theta + self.phi = phi + self.chi = chi self.detdist = detdist self.energy = energy - self.scanmot=scanmot - self.scanmot_del=scanmot_del - self.detector=detector + self.scanmot = scanmot + self.scanmot_del = scanmot_del + self.detector = detector except Exception as e: pass @@ -63,10 +62,9 @@ def __init__(self, config): try: self.energy = config['energy'] except KeyError: - print("energy from specfile") pass try: - self.delta = config['delta'] + self.delta = config['delta'] except KeyError: pass try: @@ -74,15 +72,15 @@ def __init__(self, config): except KeyError: pass try: - self.theta = config['theta'] + self.theta = config['theta'] except KeyError: pass try: - self.phi = config['phi'] + self.phi = config['phi'] except KeyError: pass try: - self.chi = config['chi'] + self.chi = config['chi'] except KeyError: pass try: @@ -102,13 +100,13 @@ def __init__(self, config): except KeyError: pass try: - self.detector_obj=det.getdetclass(self.detector) + self.detector_obj = det.getdetclass(self.detector) except: self.detector_obj = None try: pixel = self.detector_obj.get_pixel() - pixelorientation=self.detector_obj.get_pixelorientation() + pixelorientation = self.detector_obj.get_pixelorientation() except: pass try: @@ -122,8 +120,8 @@ def __init__(self, config): pixel = pixel[1:-1] self.pixel = pixel.split(',') - self.pixel[0], self.pixel[1] = float(self.pixel[0]), float(self.pixel[1]) - self.pixelorientation=pixelorientation[1:-1].split(',') + self.pixel[0], self.pixel[1] = float(self.pixel[0]), float(self.pixel[1]) + self.pixelorientation = pixelorientation[1:-1].split(',') try: self.binning = [] @@ -133,7 +131,7 @@ def __init__(self, config): for _ in range(3 - len(self.binning)): self.binning.append(1) except KeyError: - self.binning = [1,1,1] + self.binning = [1, 1, 1] try: self.crop = [] crop = config['crop'] @@ -147,188 +145,151 @@ def __init__(self, config): class CXDViz(): - - cropx = 0.5 - cropy = 0.5 - cropz = 0.5 - dir_arrs={} - recip_arrs={} - - def __init__(self): - self.imd = tvtk.ImageData() - self.sg = tvtk.StructuredGrid() - pass - - - #def set_geometry(self, lam, delta, gamma, dpx, dpy, dth): - @measure - def set_geometry(self, p, shape): - self.params = p - px = p.pixel[0]*p.binning[0] - py = p.pixel[1]*p.binning[1] - detdist=p.detdist/1000.0 #convert to meters - energy=p.energy*1000 #x-ray energy in eV - - print("running the xrayutilities version and tvtk") - #could probably put the diffractometer specification into the config file as well. - #the y+ z- x- y+ x- describes 34idc. Could even make a diffractometer class that defines this. - self.qc=xuexp.QConversion(['y+','z-','x-'], ['y+','x-'],(0,0,1),en=energy) - #compute for 4pixel (2x2) detector - self.qc.init_area(p.pixelorientation[0],p.pixelorientation[1], shape[0],shape[1], 2,2, distance=detdist, pwidth1=px, pwidth2=py) - - #vtrans=np.vectorize(self.qc.transformSample2Lab) -# - q1=np.array(self.qc.area(p.theta,p.chi,p.phi,p.delta,p.gamma,deg=True)) - #qshape=q1.shape - #q1=np.array(vtrans([q1[0,:,:].ravel(),q1[1,:,:].ravel(),q1[2,:,:].ravel()],p.theta,p.chi,p.phi)).reshape(qshape) - if p.scanmot.strip()=='th': - q2=np.array(self.qc.area(p.theta+p.scanmot_del,p.chi,p.phi,p.delta,p.gamma,deg=True)) - # q2=np.array(self.qc.transformSample2Lab([q2[0,:,:],q1[1,:,:],q1[2,:,:]],p.theta+p.scanmot_del,p.chi,p.phi)) - elif p.scanmot.strip()=='chi': - q2=np.array(self.qc.area(p.theta,p.chi+p.scanmot_del,p.phi,p.delta,p.gamma,deg=True)) - # q2=np.array(self.qc.transformSample2Lab([q2[0,:,:],q1[1,:,:],q1[2,:,:]],p.theta,p.chi+p.scanmot_del,p.phi)) - elif p.scanmot.strip()=='phi': - q2=np.array(self.qc.area(p.theta,p.chi,p.phi+p.scanmot_del,p.delta,p.gamma,deg=True)) - # q2=np.array(self.qc.transformSample2Lab([q2[0,:,:],q1[1,:,:],q1[2,:,:]],p.theta,p.chi,p.phi+p.scanmot_del)) - #Astar=q1[:,1,0]-q1[:,0,0] - #Bstar=q1[:,0,1]-q1[:,0,0] - #Cstar=(q2-q1)[:,0,0] - Astar=q1[:,1,0]-q1[:,0,0] - Bstar=q1[:,0,1]-q1[:,0,0] - Cstar=(q2-q1)[:,0,0] - print("Recip") - print(Astar, Bstar, Cstar) - Astar=self.qc.transformSample2Lab(Astar, p.theta,p.chi,p.phi) - Bstar=self.qc.transformSample2Lab(Bstar, p.theta,p.chi,p.phi) - Cstar=self.qc.transformSample2Lab(Cstar, p.theta,p.chi,p.phi) - - - - denom = np.dot(Astar, np.cross(Bstar, Cstar)) - A = 2 * m.pi * np.cross(Bstar, Cstar) / denom - B = 2 * m.pi * np.cross(Cstar, Astar) / denom - C = 2 * m.pi * np.cross(Astar, Bstar) / denom - - self.Trecip = np.zeros(9) - self.Trecip.shape = (3, 3) - self.Trecip[:, 0] = Astar - self.Trecip[:, 1] = Bstar - self.Trecip[:, 2] = Cstar -# self.Trecip[:, 0] = [2,0,1] -# self.Trecip[:, 1] = [0,1,0] -# self.Trecip[:, 2] = [0,0,1] - print(self.Trecip) - - self.Tdir = np.zeros(9) - self.Tdir.shape = (3, 3) - self.Tdir = np.array((A, B, C)).transpose() - print("Direct") - print(A,B,C) - print(self.Tdir) - - self.dirspace_uptodate=0 - self.recipspace_uptodate=0 - - def update_dirspace(self, shape): - print("Updating dirspace coords") - dims = list(shape) - self.dxdir = 1.0 / shape[0] - self.dydir = 1.0 / shape[1] - self.dzdir = 1.0 / shape[2] - - r = np.mgrid[ - 0:dims[0] * self.dxdir:self.dxdir, \ - 0:dims[1] * self.dydir:self.dydir,\ - 0:dims[2] * self.dzdir:self.dzdir] -# r = np.mgrid[ -# 0:dims[0]*self.dxdir:self.dxdir, \ -# (dims[1]-1)*self.dydir:-self.dydir:-self.dydir,\ -# 0:dims[2]*self.dzdir:self.dzdir] - - origshape=r.shape - r.shape = 3, dims[0] * dims[1] * dims[2] - #r = r.transpose() - - self.dir_coords = np.dot(self.Tdir, r).transpose() - -# self.dir_coords = self.dir_coords.transpose() -# self.dir_coords.shape=origshape - print("dir shape", self.dir_coords.shape) - self.dirspace_uptodate=1 - - def update_recipspace(self, shape): - dims = list(shape) - q = np.mgrid[ 0:dims[0], 0:dims[1], 0:dims[2]] - - origshape=q.shape - q.shape = 3, dims[0] * dims[1] * dims[2] - - self.recip_coords = np.dot(self.Trecip, q) - self.recip_coords.shape=origshape - self.recipspace_uptodate=1 - - def clear_direct_arrays(self): - self.dir_arrs.clear() - def clear_recip_arrays(self): - self.recip_arrs.clear() - - @measure - def add_array(self, array, name, space='direct', logentry=None): - - #Need to add something to ensure arrays are all the same dimension. - #Need to add crop of viz output arrays - if len(array.shape) < 3: - newdims = list(array.shape) - for i in range(3 - len(newdims)): - newdims.append(1) - array.shape = tuple(newdims) - print("adding array of shape ", array.shape) - if space=='direct': - self.dir_arrs[name]=array - if (not self.dirspace_uptodate): - self.update_dirspace(array.shape) - elif space=='recip': - self.recip_arrs[name]=array - if (not self.recipspace_uptodate): - self.update_recipspace(array.shape) - else: - return - - def get_ds_structured_grid(self, **args): - arr0=self.dir_arrs[list(self.dir_arrs.keys())[0]] - dims = list(arr0.shape) - self.sg.points = self.dir_coords - for a in self.dir_arrs.keys(): - arr=tvtk.DoubleArray() - arr.from_array(self.dir_arrs[a].ravel()) - arr.name=a - self.sg.point_data.add_array(arr) - - self.sg.dimensions = (dims[2], dims[1], dims[0]) - self.sg.extent = 0, dims[2] - 1, 0, dims[1] - 1, 0, dims[0] - 1 - return self.sg - - def write_directspace(self, filename, **args): - sgwriter = tvtk.XMLStructuredGridWriter() - #sgwriter.file_type = 'binary' - if filename.endswith(".vtk"): - sgwriter.file_name = filename - else: - sgwriter.file_name = filename + '.vts' - sgwriter.set_input_data(self.get_ds_structured_grid()) - sgwriter.write() - print ('saved file', filename) - - @measure - def write_directspace_pyevtk(self, filename, **args): - print(self.dir_arrs.keys()) - vtk.gridToVTK(filename, self.dir_coords[0,:,:,:].copy(), \ - self.dir_coords[1,:,:,:].copy(), \ - self.dir_coords[2,:,:,:].copy(), pointData=self.dir_arrs) - vtk.imageToVTK(filename, pointData=self.dir_arrs) - - def write_recipspace_pyevtk(self, filename, **args): - vtk.gridToVTK(filename, self.recip_coords[0,:,:,:].copy(), \ - self.recip_coords[1,:,:,:].copy(), \ - self.recip_coords[2,:,:,:].copy(), pointData=self.recip_arrs) - vtk.imageToVTK(filename, pointData=self.recip_arrs) + cropx = 0.5 + cropy = 0.5 + cropz = 0.5 + dir_arrs = {} + recip_arrs = {} + + def __init__(self): + self.imd = tvtk.ImageData() + self.sg = tvtk.StructuredGrid() + pass + + # def set_geometry(self, lam, delta, gamma, dpx, dpy, dth): + @measure + def set_geometry(self, p, shape): + self.params = p + px = p.pixel[0] * p.binning[0] + py = p.pixel[1] * p.binning[1] + detdist = p.detdist / 1000.0 # convert to meters + energy = p.energy * 1000 # x-ray energy in eV + + # print("running the xrayutilities version and tvtk") + # could probably put the diffractometer specification into the config file as well. + # the y+ z- x- y+ x- describes 34idc. Could even make a diffractometer class that defines this. + self.qc = xuexp.QConversion(['y+', 'z-', 'x-'], ['y+', 'x-'], (0, 0, 1), en=energy) + # compute for 4pixel (2x2) detector + self.qc.init_area(p.pixelorientation[0], p.pixelorientation[1], shape[0], shape[1], 2, 2, distance=detdist, + pwidth1=px, pwidth2=py) + # + q1 = np.array(self.qc.area(p.theta, p.chi, p.phi, p.delta, p.gamma, deg=True)) + if p.scanmot.strip() == 'th': + q2 = np.array(self.qc.area(p.theta + p.scanmot_del, p.chi, p.phi, p.delta, p.gamma, deg=True)) + elif p.scanmot.strip() == 'chi': + q2 = np.array(self.qc.area(p.theta, p.chi + p.scanmot_del, p.phi, p.delta, p.gamma, deg=True)) + elif p.scanmot.strip() == 'phi': + q2 = np.array(self.qc.area(p.theta, p.chi, p.phi + p.scanmot_del, p.delta, p.gamma, deg=True)) + Astar = q1[:, 1, 0] - q1[:, 0, 0] + Bstar = q1[:, 0, 1] - q1[:, 0, 0] + Cstar = (q2 - q1)[:, 0, 0] + # print("Recip") + # print(Astar, Bstar, Cstar) + Astar = self.qc.transformSample2Lab(Astar, p.theta, p.chi, p.phi) + Bstar = self.qc.transformSample2Lab(Bstar, p.theta, p.chi, p.phi) + Cstar = self.qc.transformSample2Lab(Cstar, p.theta, p.chi, p.phi) + + denom = np.dot(Astar, np.cross(Bstar, Cstar)) + A = 2 * m.pi * np.cross(Bstar, Cstar) / denom + B = 2 * m.pi * np.cross(Cstar, Astar) / denom + C = 2 * m.pi * np.cross(Astar, Bstar) / denom + + self.Trecip = np.zeros(9) + self.Trecip.shape = (3, 3) + self.Trecip[:, 0] = Astar + self.Trecip[:, 1] = Bstar + self.Trecip[:, 2] = Cstar + # print(self.Trecip) + + self.Tdir = np.zeros(9) + self.Tdir.shape = (3, 3) + self.Tdir = np.array((A, B, C)).transpose() + # print("Direct") + # print(A,B,C) + # print(self.Tdir) + + self.dirspace_uptodate = 0 + self.recipspace_uptodate = 0 + + def update_dirspace(self, shape): + # print("Updating dirspace coords") + dims = list(shape) + self.dxdir = 1.0 / shape[0] + self.dydir = 1.0 / shape[1] + self.dzdir = 1.0 / shape[2] + + r = np.mgrid[ + 0:dims[0] * self.dxdir:self.dxdir, \ + 0:dims[1] * self.dydir:self.dydir, \ + 0:dims[2] * self.dzdir:self.dzdir] + + origshape = r.shape + r.shape = 3, dims[0] * dims[1] * dims[2] + + self.dir_coords = np.dot(self.Tdir, r).transpose() + + # print("dir shape", self.dir_coords.shape) + self.dirspace_uptodate = 1 + + def update_recipspace(self, shape): + dims = list(shape) + q = np.mgrid[0:dims[0], 0:dims[1], 0:dims[2]] + + origshape = q.shape + q.shape = 3, dims[0] * dims[1] * dims[2] + + self.recip_coords = np.dot(self.Trecip, q) + self.recip_coords.shape = origshape + self.recipspace_uptodate = 1 + + def clear_direct_arrays(self): + self.dir_arrs.clear() + + def clear_recip_arrays(self): + self.recip_arrs.clear() + + @measure + def add_array(self, array, name, space='direct', logentry=None): + # Need to add something to ensure arrays are all the same dimension. + # Need to add crop of viz output arrays + if len(array.shape) < 3: + newdims = list(array.shape) + for i in range(3 - len(newdims)): + newdims.append(1) + array.shape = tuple(newdims) + # print("adding array of shape ", array.shape) + if space == 'direct': + self.dir_arrs[name] = array + if (not self.dirspace_uptodate): + self.update_dirspace(array.shape) + elif space == 'recip': + self.recip_arrs[name] = array + if (not self.recipspace_uptodate): + self.update_recipspace(array.shape) + else: + return + + def get_ds_structured_grid(self, **args): + arr0 = self.dir_arrs[list(self.dir_arrs.keys())[0]] + dims = list(arr0.shape) + self.sg.points = self.dir_coords + for a in self.dir_arrs.keys(): + arr = tvtk.DoubleArray() + arr.from_array(self.dir_arrs[a].ravel()) + arr.name = a + self.sg.point_data.add_array(arr) + + self.sg.dimensions = (dims[2], dims[1], dims[0]) + self.sg.extent = 0, dims[2] - 1, 0, dims[1] - 1, 0, dims[0] - 1 + return self.sg + + def write_directspace(self, filename, **args): + sgwriter = tvtk.XMLStructuredGridWriter() + # sgwriter.file_type = 'binary' + if filename.endswith(".vtk"): + sgwriter.file_name = filename + else: + sgwriter.file_name = filename + '.vts' + sgwriter.set_input_data(self.get_ds_structured_grid()) + sgwriter.write() + print('saved file', filename) diff --git a/reccdi/src_py/controller/data.py b/reccdi/src_py/controller/data.py index 652022d..b347e44 100644 --- a/reccdi/src_py/controller/data.py +++ b/reccdi/src_py/controller/data.py @@ -192,9 +192,5 @@ def prep(fname, conf_info): # save data data_file = os.path.join(data_dir, 'data.tif') - # np.save(data_file, prep_data) ut.save_tif(prep_data, data_file) print ('data ready for reconstruction, data dims:', prep_data.shape) - - -#prep('/local/bfrosik/CDI/S149/Staff14-3_S0149.tif', 'config_data') diff --git a/reccdi/src_py/controller/fast_module.py b/reccdi/src_py/controller/fast_module.py index b945ef2..3376d3f 100755 --- a/reccdi/src_py/controller/fast_module.py +++ b/reccdi/src_py/controller/fast_module.py @@ -89,85 +89,48 @@ def fast_module_reconstruction(proc, device, conf, data, coh_dims, image=None, s fast_module = bridge_cuda.PyBridge() # shift data - #data = np.swapaxes(data,1,2) - #data = np.asfortranarray(sf.fftshift(data)) data = sf.fftshift(data) - dims = data.shape[::-1] -# dims1 = (dims[2], dims[1], dims[0]) - print("data dims", dims) data_l = data.flatten().tolist() if image is None: - print("Running start_calc") + # print("Running start_calc") fast_module.start_calc(device, data_l, dims, conf) - #fast_module.start_calc(device, data_l, dims1, conf) elif support is None: - # pass image -# image = np.swapaxes(image, 1, 0) -# image = np.swapaxes(image, 2, 0) image = image.flatten() fast_module.start_calc_with_guess(device, data_l, image.real.tolist(), image.imag.tolist(), dims, conf) - #fast_module.start_calc_with_guess(device, data_l, image.real.tolist(), image.imag.tolist(), dims1, conf) elif coherence is None: - # pass image and support -# image = np.swapaxes(image, 1, 0) -# image = np.swapaxes(image, 2, 0) image = image.flatten() -# support = np.swapaxes(support, 1, 0) -# support = np.swapaxes(support, 2, 0) support = support.flatten() fast_module.start_calc_with_guess_support(device, data_l, image.real.tolist(), image.imag.tolist(), support.tolist(), dims, conf) - #fast_module.start_calc_with_guess_support(device, data_l, image.real.tolist(), image.imag.tolist(), support.tolist(), dims1, conf) else: - # pass image and support and coherence -# image = np.swapaxes(image, 1, 0) -# image = np.swapaxes(image, 2, 0) image = image.flatten() -# support = np.swapaxes(support, 1, 0) -# support = np.swapaxes(support, 2, 0) support = support.flatten() coh_dims1 = (coh_dims[2], coh_dims[1], coh_dims[0]) -# coherence = np.swapaxes(coherence, 1, 0) -# coherence = np.swapaxes(coherence, 2, 0) coherence = coherence.flatten() fast_module.start_calc_with_guess_support_coh(device, data_l, image.real.tolist(), image.imag.tolist(), support.tolist(), dims, coherence.tolist(), coh_dims, conf) - #fast_module.start_calc_with_guess_support_coh(device, data_l, image.real.tolist(), image.imag.tolist(), support.tolist(), dims1, coherence.tolist(), coh_dims1, conf) er = copy.deepcopy(fast_module.get_errors()) if len(er) == 1 and er[0] == -1: # run into Nan during reconstruction fast_module.cleanup() return None, None, None, None, None, None, None -# image_r = copy.deepcopy(np.asarray(fast_module.get_image_r())) -# image_i = copy.deepcopy(np.asarray(fast_module.get_image_i())) image_r = np.asarray(fast_module.get_image_r()) image_i = np.asarray(fast_module.get_image_i()) image = image_r + 1j*image_i #no need to deepcopy the real and imag parts since this makes a new array # normalize image - #mx = max(np.absolute(image).ravel().tolist()) - mx=np.abs(image).max() + mx = np.abs(image).max() image = image/mx support = copy.deepcopy(np.asarray(fast_module.get_support())) coherence = copy.deepcopy(np.asarray(fast_module.get_coherence())) image.shape=dims[::-1] - #image=np.ascontiguousarray(image) - #image = np.reshape(image, dims) -# image = np.swapaxes(image, 2, 0) -# image = np.swapaxes(image, 1, 0) - support = np.reshape(support, dims[::-1]) -# support = np.swapaxes(support, 2, 0) -# support = np.swapaxes(support, 1, 0) - if coherence.shape[0] > 1: coherence = np.reshape(coherence, coh_dims[::-1]) -# coherence = np.swapaxes(coherence, 2, 0) -# coherence = np.swapaxes(coherence, 1, 0) else: coherence = None @@ -175,7 +138,6 @@ def fast_module_reconstruction(proc, device, conf, data, coh_dims, image=None, s reciprocal_i = copy.deepcopy(np.asarray(fast_module.get_reciprocal_i())) reciprocal = reciprocal_r + 1j*reciprocal_i reciprocal = np.reshape(reciprocal, dims[::-1]) - #reciprocal = np.swapaxes(reciprocal, 2, 1) reciprocal = sf.ifftshift(reciprocal) iter_array = copy.deepcopy(np.asarray(fast_module.get_iter_flow())) diff --git a/reccdi/src_py/controller/gen_rec.py b/reccdi/src_py/controller/gen_rec.py index 23a34a4..9abb626 100644 --- a/reccdi/src_py/controller/gen_rec.py +++ b/reccdi/src_py/controller/gen_rec.py @@ -370,8 +370,6 @@ def reconstruction(proc, conf_file, datafile, dir, devices): """ data = ut.read_tif(datafile) print ('data shape', data.shape) - #data = np.swapaxes(data, 0, 2) - #data = np.swapaxes(data, 0, 1) try: config_map = ut.read_config(conf_file) diff --git a/reccdi/src_py/controller/reconstruction.py b/reccdi/src_py/controller/reconstruction.py index 56edb32..c4c8f59 100644 --- a/reccdi/src_py/controller/reconstruction.py +++ b/reccdi/src_py/controller/reconstruction.py @@ -111,8 +111,6 @@ def reconstruction(proc, conf_file, datafile, dir, dev): """ data = ut.read_tif(datafile) print ('data shape', data.shape) -# data = np.swapaxes(data, 0, 2) -# data = np.swapaxes(data, 0, 1) try: config_map = ut.read_config(conf_file) diff --git a/reccdi/src_py/controller/reconstruction_multi.py b/reccdi/src_py/controller/reconstruction_multi.py index 2f87107..37ee01e 100644 --- a/reccdi/src_py/controller/reconstruction_multi.py +++ b/reccdi/src_py/controller/reconstruction_multi.py @@ -210,8 +210,6 @@ def reconstruction(proc, conf_file, datafile, dir, devices): """ data = ut.read_tif(datafile) print ('data shape', data.shape) - #data = np.swapaxes(data, 0, 2) - #data = np.swapaxes(data, 0, 1) try: config_map = ut.read_config(conf_file) diff --git a/reccdi/src_py/utilities/archive/CXDVizNX.py b/reccdi/src_py/utilities/archive/CXDVizNX.py deleted file mode 100644 index 8a6fe57..0000000 --- a/reccdi/src_py/utilities/archive/CXDVizNX.py +++ /dev/null @@ -1,374 +0,0 @@ -# ######################################################################### -# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # -# # -# See LICENSE file. # -# ######################################################################### - -import os -import traits.api as tr -from tvtk.api import tvtk -import numpy as np -import scipy.ndimage as ndi -import math as m -import reccdi.src_py.utilities.utils as ut -import reccdi.src_py.utilities.spec as sput - -__author__ = "Barbara Frosik" -__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." -__docformat__ = 'restructuredtext en' - - -class DispalyParams: - """ - This class encapsulates parameters defining image display. The parameters are read from config file on - construction - """ - - def __init__(self, config): - """ - The constructor gets config file and fills out the class members. - - Parameters - ---------- - conf : str - configuration file name - - Returns - ------- - none - """ - deg2rad = np.pi / 180.0 - try: - specfile = config['specfile'] - last_scan = config['last_scan'] - self.lamda, delta, gamma, dth, arm, pixel = sput.parse_spec(specfile, last_scan) - self.delta = delta * deg2rad - self.gamma = gamma * deg2rad - self.dth = dth * deg2rad - self.arm = arm / 1000 - pixel = pixel[1:-1] - pixel = pixel.split(',') - pixel[0], pixel[1] = float(pixel[0]), float(pixel[1]) - except Exception as e: - pass - # override the parsed parameters with entries in config file - try: - energy = config['energy'] - self.lamda = 12.398 / energy / 10 - except AttributeError: - pass - try: - self.delta = config['delta'] * deg2rad - except AttributeError: - pass - try: - self.gamma = config['gamma'] * deg2rad - except AttributeError: - pass - try: - self.dth = config['dth'] * deg2rad - except AttributeError: - pass - try: - self.arm = config['arm'] / 1000 - except AttributeError: - pass - try: - pixel = config['pixel'] - except AttributeError: - pass - - try: - self.binning = [] - binning = config['binning'] - for i in range(len(binning)): - self.binning.append(binning[i]) - for _ in range(3 - len(self.binning)): - self.binning.append(1) - except AttributeError: - self.binning = [1,1,1] - self.dpx = pixel[0] * self.binning[0] / self.arm / self.binning[2] - self.dpy = pixel[1] * self.binning[1] / self.arm / self.binning[2] - try: - self.crop = [] - crop = config['crop'] - for i in range(len(crop)): - self.crop.append(crop[i]) - for _ in range(3 - len(self.crop)): - self.crop.append(1.0) - crop[0], crop[1] = crop[1], crop[0] - except AttributeError: - self.crop = None - - -class CXDViz(tr.HasTraits): - coords = tr.Array() - arr = tr.Array() - - cropx = tr.Int() - cropy = tr.Int() - cropz = tr.Int() - - - def __init__(self): - self.imd = tvtk.ImageData() - self.sg = tvtk.StructuredGrid() - pass - - - def set_geometry(self, params, shape): - lam = params.lamda - tth = params.delta - gam = params.gamma - dpx = params.dpx - dpy = params.dpy - dth = params.dth - dx = 1.0 / shape[0] - dy = 1.0 / shape[1] - dz = 1.0 / shape[2] - dQdpx = np.zeros(3) - dQdpy = np.zeros(3) - dQdth = np.zeros(3) - Astar = np.zeros(3) - Bstar = np.zeros(3) - Cstar = np.zeros(3) - - # dQdpx[0] = -m.cos(tth) * m.cos(gam) - # dQdpx[1] = 0.0 - # dQdpx[2] = +m.sin(tth) * m.cos(gam) - dQdpx[0] = -m.cos(tth) - dQdpx[1] = 0.0 - dQdpx[2] = +m.sin(tth) - - dQdpy[0] = m.sin(tth) * m.sin(gam) - dQdpy[1] = -m.cos(gam) - dQdpy[2] = m.cos(tth) * m.sin(gam) - - dQdth[0] = -m.cos(tth) * m.cos(gam) + 1.0 - dQdth[1] = 0.0 - dQdth[2] = m.sin(tth) * m.cos(gam) - - Astar[0] = 2 * m.pi / lam * dpx * dQdpx[0] - Astar[1] = 2 * m.pi / lam * dpx * dQdpx[1] - Astar[2] = 2 * m.pi / lam * dpx * dQdpx[2] - - Bstar[0] = (2 * m.pi / lam) * dpy * dQdpy[0] - Bstar[1] = (2 * m.pi / lam) * dpy * dQdpy[1] - Bstar[2] = (2 * m.pi / lam) * dpy * dQdpy[2] - - Cstar[0] = (2 * m.pi / lam) * dth * dQdth[0] - Cstar[1] = (2 * m.pi / lam) * dth * dQdth[1] - Cstar[2] = (2 * m.pi / lam) * dth * dQdth[2] - - denom = np.dot(Astar, np.cross(Bstar, Cstar)) - A = 2 * m.pi * np.cross(Bstar, Cstar) / denom - B = 2 * m.pi * np.cross(Cstar, Astar) / denom - C = 2 * m.pi * np.cross(Astar, Bstar) / denom - - self.T = np.zeros(9) - self.T.shape = (3, 3) - space = 'direct' - if space == 'recip': - self.T[:, 0] = Astar - self.T[:, 1] = Bstar - self.T[:, 2] = Cstar - self.dx = 1.0 - self.dy = 1.0 - self.dz = 1.0 - elif space == 'direct': - self.T = np.array((A, B, C)) - self.dx = dx - self.dy = dy - self.dz = dz - else: - pass - - - def update_coords(self): - dims = list(self.arr[self.cropobj].shape) - - r = np.mgrid[(dims[0] - 1) * self.dx:-self.dx:-self.dx, \ - 0:dims[1] * self.dy:self.dy, 0:dims[2] * self.dz:self.dz] - - r.shape = 3, dims[0] * dims[1] * dims[2] - r = r.transpose() - - self.coords = np.dot(r, self.T) - - - def set_array(self, array, logentry=None): - self.arr = array - if len(self.arr.shape) < 3: - newdims = list(self.arr.shape) - for i in range(3 - len(newdims)): - newdims.append(1) - self.arr.shape = tuple(newdims) - - - def set_crop(self, cropx, cropy, cropz): - dims = list(self.arr.shape) - if len(dims) == 2: - dims.append(1) - - if dims[0] > cropx and cropx > 0: - self.cropx = cropx - else: - self.cropx = dims[0] - - if dims[1] > cropy and cropy > 0: - self.cropy = cropy - else: - self.cropy = dims[1] - - if dims[2] > cropz and cropz > 0: - self.cropz = cropz - else: - self.cropz = dims[2] - - start1 = int(dims[0]/2) - int(self.cropx/2) - end1 = int(dims[0]/2) + int(self.cropx/2) - if start1 == end1: - end1 = end1 + 1 - start2 = int(dims[1]/2) - int(self.cropy/2) - end2 = int(dims[1]/2) + int(self.cropy/2) - if start2 == end2: - end2 = end2 + 1 - start3 = int(dims[2]/2) - int(self.cropz/2) - end3 = int(dims[2]/2) + int(self.cropz/2) - if start3 == end3: - end3 = end3 + 1 - - self.cropobj = (slice(start1, end1, None), slice(start2, end2, None), - slice(start3, end3, None)) - - - def get_structured_grid(self, **args): - self.update_coords() - dims = list(self.arr[self.cropobj].shape) - self.sg.points = self.coords - if "mode" in args: - if args["mode"] == "Phase": - arr1 = self.arr[self.cropobj].ravel() - arr = (np.arctan2(arr1.imag, arr1.real)) - else: - arr = np.abs(self.arr[self.cropobj].ravel()) - else: - arr = self.arr[self.cropobj].ravel() - if (arr.dtype == np.complex128 or arr.dtype == np.complex64): - self.sg.point_data.scalars = np.abs(arr) - self.sg.point_data.scalars.name = "Amp" - ph = tvtk.DoubleArray() - ph.from_array(np.arctan2(arr.imag, arr.real)) - ph.name = "Phase" - self.sg.point_data.add_array(ph) - else: - self.sg.point_data.scalars = arr - self.sg.dimensions = (dims[2], dims[1], dims[0]) - self.sg.extent = 0, dims[2] - 1, 0, dims[1] - 1, 0, dims[0] - 1 - return self.sg - - - def write_structured_grid(self, filename, **args): - sgwriter = tvtk.StructuredGridWriter() - sgwriter.file_type = 'binary' - if filename.endswith(".vtk"): - sgwriter.file_name = filename - else: - sgwriter.file_name = filename + '.vtk' - sgwriter.set_input_data(self.get_structured_grid()) - sgwriter.write() - print ('saved file', filename) - - -def shift(arr, s0, s1, s2): - shifted = np.roll(arr, s0, axis=0) - shifted = np.roll(shifted, s1, axis=1) - return np.roll(shifted, s2, axis=2) - - -def center_of_mass(arr): - tot = np.sum(arr) - dims = arr.shape - xyz = [] - griddims = [] - for d in dims: - griddims.append(slice(0, d)) - grid = np.ogrid[griddims] - for g in grid: - xyz.append(np.sum(arr * g) / tot) - com = np.asarray(xyz) - com = np.ma.round(com).astype(np.int) - return list(com) - - -def remove_ramp(arr, ups=3): - new_shape = list(arr.shape) - # pad zeros around arr, to the size of 3 times (ups = 3) of arr size - for i in range(len(new_shape)): - new_shape[i] = ups * new_shape[i] - padded = ut.get_zero_padded_centered(arr, new_shape) - padded_f = np.fft.fftshift(np.fft.fftn(np.fft.ifftshift(padded))) - com = ndi.center_of_mass(np.power(np.abs(padded_f), 2)) - sub_pixel_shifted = ut.sub_pixel_shift(padded_f, new_shape[0]/2.0-com[0], new_shape[1]/2.0-com[1], new_shape[2]/2.0-com[2]) - ramp_removed_padded = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(sub_pixel_shifted))) - ramp_removed = ut.crop_center(ramp_removed_padded, arr.shape) - - return ramp_removed - - -def center(image, support): - dims = image.shape - image, support = ut.get_centered_both(image, support) - - # place center of mass image*support in the center - for ax in range(len(dims)): - com = ndi.center_of_mass(np.absolute(image) * support) - image = shift(image, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) - support = shift(support, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) - - # set center phase to zero, use as a reference - phi0 = m.atan2(image.imag[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)], image.real[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)]) - image = image * np.exp(-1j * phi0) - - return image, support - - -def get_crop(params, shape): - crop = [] - for i in range(len(shape)): - if params.crop is None: - crop.append(shape[i]) - else: - crop.append(params.crop[i]) - if isinstance(crop[i], float): - crop[i] = int(crop[i]*shape[i]) - return crop - - -def save_CX(conf, image, support, coh, save_dir): -# image = np.swapaxes(image, 1,2) -# image = np.swapaxes(image, 0,1) -# support = np.swapaxes(support, 1,2) -# support = np.swapaxes(support, 0,1) - image, support = center(image, support) - params = DispalyParams(conf) - image = remove_ramp(image) - viz = CXDViz() - viz.set_array(image) - viz.set_geometry(params, image.shape) - crop = get_crop(params, image.shape) - viz.set_crop(crop[0], crop[1], crop[2]) # save image - image_file = os.path.join(save_dir, 'image') - viz.write_structured_grid(image_file) - viz.set_array(support) - support_file = os.path.join(save_dir, 'support') - viz.write_structured_grid(support_file) - if coh is not None: - coh = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(coh))).real - coh = ut.get_zero_padded_centered(coh, image.shape) - coh_file = os.path.join(save_dir, 'coherence') - viz.set_array(coh) - viz.write_structured_grid(coh_file) - -# a = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') -# remove_ramp(a, 3) diff --git a/reccdi/src_py/utilities/archive/localCXDVizNX.py b/reccdi/src_py/utilities/archive/localCXDVizNX.py deleted file mode 100644 index 3c3cff0..0000000 --- a/reccdi/src_py/utilities/archive/localCXDVizNX.py +++ /dev/null @@ -1,383 +0,0 @@ -# ######################################################################### -# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # -# # -# See LICENSE file. # -# ######################################################################### - -import pylibconfig2 as cfg -import os -import traits.api as tr -from tvtk.api import tvtk -import numpy as np -import scipy.ndimage as ndi -import math as m -import utils as ut -import spec as sput - -__author__ = "Barbara Frosik" -__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." -__docformat__ = 'restructuredtext en' - - -class DispalyParams: - """ - This class encapsulates parameters defining image display. The parameters are read from config file on - construction - """ - - def __init__(self, config, last_scan): - """ - The constructor gets config file and fills out the class members. - - Parameters - ---------- - conf : str - configuration file name - - Returns - ------- - none - """ - if os.path.isfile(config): - with open(config, 'r') as f: - config_map = cfg.Config(f.read()) - - deg2rad = np.pi / 180.0 - try: - specfile = config_map.specfile - self.lamda, delta, gamma, dth, arm, pixel = sput.parse_spec(specfile, last_scan) - self.delta = delta * deg2rad - self.gamma = gamma * deg2rad - self.dth = dth * deg2rad - self.arm = arm / 1000 - pixel = pixel[1:-1] - pixel = pixel.split(',') - pixel[0], pixel[1] = float(pixel[0]), float(pixel[1]) - except Exception as e: - # print (str(e)) - try: - energy = config_map.energy - self.lamda = 12.398 / energy / 10 - except AttributeError: - print ('lamda not defined') - try: - self.delta = config_map.delta * deg2rad - except AttributeError: - print ('delta not defined') - try: - self.gamma = config_map.gamma * deg2rad - except AttributeError: - print ('gamma not defined') - try: - self.dth = config_map.dth * deg2rad - except AttributeError: - print ('dth not defined') - try: - self.arm = config_map.arm / 1000 - except AttributeError: - print ('arm not defined') - try: - pixel = config_map.pixel - except AttributeError: - print ('pixel not defined') - - try: - self.binning = [] - binning = config_map.binning - for i in range(len(binning)): - self.binning.append(binning[i]) - for _ in range(3 - len(self.binning)): - self.binning.append(1) - except AttributeError: - self.binning = [1,1,1] - self.dpx = pixel[0] * self.binning[0] / self.arm / self.binning[2] - self.dpy = pixel[1] * self.binning[1] / self.arm / self.binning[2] - try: - self.crop = [] - crop = config_map.crop - for i in range(len(crop)): - self.crop.append(crop[i]) - for _ in range(3 - len(self.crop)): - self.crop.append(1.0) - crop[0], crop[1] = crop[1], crop[0] - except AttributeError: - self.crop = None - - -class CXDViz(tr.HasTraits): - coords = tr.Array() - arr = tr.Array() - - cropx = tr.Int() - cropy = tr.Int() - cropz = tr.Int() - - - def __init__(self): - self.imd = tvtk.ImageData() - self.sg = tvtk.StructuredGrid() - pass - - - def set_geometry(self, params, shape): - lam = params.lamda - tth = params.delta - gam = params.gamma - dpx = params.dpx - dpy = params.dpy - dth = params.dth - dx = 1.0 / shape[0] - dy = 1.0 / shape[1] - dz = 1.0 / shape[2] - dQdpx = np.zeros(3) - dQdpy = np.zeros(3) - dQdth = np.zeros(3) - Astar = np.zeros(3) - Bstar = np.zeros(3) - Cstar = np.zeros(3) - - # dQdpx[0] = -m.cos(tth) * m.cos(gam) - # dQdpx[1] = 0.0 - # dQdpx[2] = +m.sin(tth) * m.cos(gam) - dQdpx[0] = -m.cos(tth) - dQdpx[1] = 0.0 - dQdpx[2] = +m.sin(tth) - - dQdpy[0] = m.sin(tth) * m.sin(gam) - dQdpy[1] = -m.cos(gam) - dQdpy[2] = m.cos(tth) * m.sin(gam) - - dQdth[0] = -m.cos(tth) * m.cos(gam) + 1.0 - dQdth[1] = 0.0 - dQdth[2] = m.sin(tth) * m.cos(gam) - - Astar[0] = 2 * m.pi / lam * dpx * dQdpx[0] - Astar[1] = 2 * m.pi / lam * dpx * dQdpx[1] - Astar[2] = 2 * m.pi / lam * dpx * dQdpx[2] - - Bstar[0] = (2 * m.pi / lam) * dpy * dQdpy[0] - Bstar[1] = (2 * m.pi / lam) * dpy * dQdpy[1] - Bstar[2] = (2 * m.pi / lam) * dpy * dQdpy[2] - - Cstar[0] = (2 * m.pi / lam) * dth * dQdth[0] - Cstar[1] = (2 * m.pi / lam) * dth * dQdth[1] - Cstar[2] = (2 * m.pi / lam) * dth * dQdth[2] - - print("recip", Astar) - print("recip", Bstar) - print("recip", Cstar) - denom = np.dot(Astar, np.cross(Bstar, Cstar)) - A = 2 * m.pi * np.cross(Bstar, Cstar) / denom - B = 2 * m.pi * np.cross(Cstar, Astar) / denom - C = 2 * m.pi * np.cross(Astar, Bstar) / denom - - self.T = np.zeros(9) - self.T.shape = (3, 3) - space = 'direct' - if space == 'recip': - self.T[:, 0] = Astar - self.T[:, 1] = Bstar - self.T[:, 2] = Cstar - self.dx = 1.0 - self.dy = 1.0 - self.dz = 1.0 - elif space == 'direct': - self.T = np.array((A, B, C)) - self.dx = dx - self.dy = dy - self.dz = dz - else: - pass - print("DirectSpace T",self.T) - - - def update_coords(self): - dims = list(self.arr[self.cropobj].shape) - - r = np.mgrid[(dims[0] - 1) * self.dx:-self.dx:-self.dx, \ - 0:dims[1] * self.dy:self.dy, 0:dims[2] * self.dz:self.dz] - - r.shape = 3, dims[0] * dims[1] * dims[2] - r = r.transpose() - - self.coords = np.dot(r, self.T) - - - def set_array(self, array, logentry=None): - self.arr = array - if len(self.arr.shape) < 3: - newdims = list(self.arr.shape) - for i in range(3 - len(newdims)): - newdims.append(1) - self.arr.shape = tuple(newdims) - - - def set_crop(self, cropx, cropy, cropz): - dims = list(self.arr.shape) - if len(dims) == 2: - dims.append(1) - - if dims[0] > cropx and cropx > 0: - self.cropx = cropx - else: - self.cropx = dims[0] - - if dims[1] > cropy and cropy > 0: - self.cropy = cropy - else: - self.cropy = dims[1] - - if dims[2] > cropz and cropz > 0: - self.cropz = cropz - else: - self.cropz = dims[2] - - start1 = int(dims[0]/2) - int(self.cropx/2) - end1 = int(dims[0]/2) + int(self.cropx/2) - if start1 == end1: - end1 = end1 + 1 - start2 = int(dims[1]/2) - int(self.cropy/2) - end2 = int(dims[1]/2) + int(self.cropy/2) - if start2 == end2: - end2 = end2 + 1 - start3 = int(dims[2]/2) - int(self.cropz/2) - end3 = int(dims[2]/2) + int(self.cropz/2) - if start3 == end3: - end3 = end3 + 1 - - self.cropobj = (slice(start1, end1, None), slice(start2, end2, None), - slice(start3, end3, None)) - - - def get_structured_grid(self, **args): - self.update_coords() - dims = list(self.arr[self.cropobj].shape) - self.sg.points = self.coords - if "mode" in args: - if args["mode"] == "Phase": - arr1 = self.arr[self.cropobj].ravel() - arr = (np.arctan2(arr1.imag, arr1.real)) - else: - arr = np.abs(self.arr[self.cropobj].ravel()) - else: - arr = self.arr[self.cropobj].ravel() - if (arr.dtype == np.complex128 or arr.dtype == np.complex64): - self.sg.point_data.scalars = np.abs(arr) - self.sg.point_data.scalars.name = "Amp" - ph = tvtk.DoubleArray() - ph.from_array(np.arctan2(arr.imag, arr.real)) - ph.name = "Phase" - self.sg.point_data.add_array(ph) - else: - self.sg.point_data.scalars = arr - self.sg.dimensions = (dims[2], dims[1], dims[0]) - self.sg.extent = 0, dims[2] - 1, 0, dims[1] - 1, 0, dims[0] - 1 - return self.sg - - - def write_structured_grid(self, filename, **args): - sgwriter = tvtk.StructuredGridWriter() - sgwriter.file_type = 'binary' - if filename.endswith(".vtk"): - sgwriter.file_name = filename - else: - sgwriter.file_name = filename + '.vtk' - sgwriter.set_input_data(self.get_structured_grid()) - sgwriter.write() - print ('saved file', filename) - - -def shift(arr, s0, s1, s2): - shifted = np.roll(arr, s0, axis=0) - shifted = np.roll(shifted, s1, axis=1) - return np.roll(shifted, s2, axis=2) - - -def center_of_mass(arr): - tot = np.sum(arr) - dims = arr.shape - xyz = [] - griddims = [] - for d in dims: - griddims.append(slice(0, d)) - grid = np.ogrid[griddims] - for g in grid: - xyz.append(np.sum(arr * g) / tot) - com = np.asarray(xyz) - com = np.ma.round(com).astype(np.int) - return list(com) - - -def remove_ramp(arr, ups=3): - new_shape = list(arr.shape) - # pad zeros around arr, to the size of 3 times (ups = 3) of arr size - for i in range(len(new_shape)): - new_shape[i] = ups * new_shape[i] - padded = ut.get_zero_padded_centered(arr, new_shape) - padded_f = np.fft.fftshift(np.fft.fftn(np.fft.ifftshift(padded))) - com = ndi.center_of_mass(np.power(np.abs(padded_f), 2)) - sub_pixel_shifted = ut.sub_pixel_shift(padded_f, new_shape[0]/2.0-com[0], new_shape[1]/2.0-com[1], new_shape[2]/2.0-com[2]) - ramp_removed_padded = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(sub_pixel_shifted))) - ramp_removed = ut.crop_center(ramp_removed_padded, arr.shape) - - return ramp_removed - - -def center(image, support): - dims = image.shape - image, support = ut.get_centered_both(image, support) - - # place center of mass image*support in the center - for ax in range(len(dims)): - com = ndi.center_of_mass(np.absolute(image) * support) - image = shift(image, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) - support = shift(support, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) - - # set center phase to zero, use as a reference - phi0 = m.atan2(image.imag[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)], image.real[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)]) - image = image * np.exp(-1j * phi0) - - return image, support - - -def get_crop(params, shape): - crop = [] - for i in range(len(shape)): - if params.crop is None: - crop.append(shape[i]) - else: - crop.append(params.crop[i]) - if isinstance(crop[i], float): - crop[i] = int(crop[i]*shape[i]) - return crop - - -def save_CX(conf, image, support, coh, save_dir, last_scan): - image = np.swapaxes(image, 1,2) - image = np.swapaxes(image, 0,1) -# support = np.swapaxes(support, 1,2) -# support = np.swapaxes(support, 0,1) -# image, support = center(image, support) - params = DispalyParams(conf, last_scan) -# image = remove_ramp(image) - viz = CXDViz() - viz.set_array(image) - viz.set_geometry(params, image.shape) - crop = get_crop(params, image.shape) - viz.set_crop(crop[0], crop[1], crop[2]) # save image - image_file = os.path.join(save_dir, 'image') -# viz.write_structured_grid(image_file) -# viz.set_array(support) -# support_file = os.path.join(save_dir, 'support') -# viz.write_structured_grid(support_file) -# if coh is not None: -# coh = np.swapaxes(coh, 1, 2) -# # investigate if pad_center before fft or after -# coh = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(coh))).real -# coh = ut.get_zero_padded_centered(coh, image.shape) -# coh_file = os.path.join(save_dir, 'coherence') -# viz.set_array(coh) -# viz.write_structured_grid(coh_file) - -# a = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') -# remove_ramp(a, 3) diff --git a/reccdi/src_py/utilities/archive/pyevtktest.py b/reccdi/src_py/utilities/archive/pyevtktest.py deleted file mode 100644 index 92d80a9..0000000 --- a/reccdi/src_py/utilities/archive/pyevtktest.py +++ /dev/null @@ -1,42 +0,0 @@ -#! /usr/bin/env python - -# ************************************************************** -# * Example of how to use the high level gridToVTK function. * -# * This example shows how to export a structured grid. * -# ************************************************************** - -from pyevtk.hl import gridToVTK -import numpy as np -import random as rnd - -# Dimensions -nx, ny, nz = 10, 5, 2 -lx, ly, lz = 10.0, 5.0, 1.0 -dx, dy, dz = lx/nx, ly/ny, lz/nz - -ncells = nx * ny * nz -npoints = (nx + 1) * (ny + 1) * (nz + 1) - -# Coordinates -X = np.arange(0, lx + 0.1*dx, dx, dtype='float64') -Y = np.arange(0, ly + 0.1*dy, dy, dtype='float64') -Z = np.arange(0, lz + 0.1*dz, dz, dtype='float64') - -x = np.zeros((nx + 1, ny + 1, nz + 1)) -y = np.zeros((nx + 1, ny + 1, nz + 1)) -z = np.zeros((nx + 1, ny + 1, nz + 1)) - -# We add some random fluctuation to make the grid -# more interesting -for k in range(nz + 1): - for j in range(ny + 1): - for i in range(nx + 1): - x[i,j,k] = X[i] - y[i,j,k] = Y[j] - z[i,j,k] = Z[k] - -# Variables -#pressure = np.random.rand(ncells).reshape( (nx, ny, nz)) -#temp = np.random.rand(npoints).reshape( (nx + 1, ny + 1, nz + 1)) - -#gridToVTK("./structured", x, y, z, cellData = {"pressure" : pressure}, pointData = {"temp" : temp}) diff --git a/reccdi/src_py/utilities/archive/rec_disp.py b/reccdi/src_py/utilities/archive/rec_disp.py deleted file mode 100644 index 0aa4d8d..0000000 --- a/reccdi/src_py/utilities/archive/rec_disp.py +++ /dev/null @@ -1,379 +0,0 @@ -# ######################################################################### -# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # -# # -# See LICENSE file. # -# ######################################################################### - -import pylibconfig2 as cfg -import os -import traits.api as tr -from tvtk.api import tvtk -import numpy as np -import scipy.ndimage as ndi -import math as m -import reccdi.src_py.utilities.utils as ut -import reccdi.src_py.utilities.spec as sput - -__author__ = "Barbara Frosik" -__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." -__docformat__ = 'restructuredtext en' - - -class DispalyParams: - """ - This class encapsulates parameters defining image display. The parameters are read from config file on - construction - """ - - def __init__(self, config, last_scan): - """ - The constructor gets config file and fills out the class members. - - Parameters - ---------- - conf : str - configuration file name - - Returns - ------- - none - """ - if os.path.isfile(config): - with open(config, 'r') as f: - config_map = cfg.Config(f.read()) - - deg2rad = np.pi / 180.0 - try: - specfile = config_map.specfile - self.lamda, delta, gamma, dth, arm, pixel = sput.parse_spec(specfile, last_scan) - self.delta = delta * deg2rad - self.gamma = gamma * deg2rad - self.dth = dth * deg2rad - self.arm = arm / 1000 - pixel = pixel[1:-1] - pixel = pixel.split(',') - pixel[0], pixel[1] = float(pixel[0]), float(pixel[1]) - except Exception as e: - # print (str(e)) - try: - energy = config_map.energy - self.lamda = 12.398 / energy / 10 - except AttributeError: - print ('lamda not defined') - try: - self.delta = config_map.delta * deg2rad - except AttributeError: - print ('delta not defined') - try: - self.gamma = config_map.gamma * deg2rad - except AttributeError: - print ('gamma not defined') - try: - self.dth = config_map.dth * deg2rad - except AttributeError: - print ('dth not defined') - try: - self.arm = config_map.arm / 1000 - except AttributeError: - print ('arm not defined') - try: - pixel = config_map.pixel - except AttributeError: - print ('pixel not defined') - - try: - self.binning = [] - binning = config_map.binning - for i in range(len(binning)): - self.binning.append(binning[i]) - for _ in range(3 - len(self.binning)): - self.binning.append(1) - except AttributeError: - self.binning = [1,1,1] - self.dpx = pixel[0] * self.binning[0] / self.arm / self.binning[2] - self.dpy = pixel[1] * self.binning[1] / self.arm / self.binning[2] - try: - self.crop = [] - crop = config_map.crop - for i in range(len(crop)): - self.crop.append(crop[i]) - for _ in range(3 - len(self.crop)): - self.crop.append(1.0) - crop[0], crop[1] = crop[1], crop[0] - except AttributeError: - self.crop = None - - -class CXDViz(tr.HasTraits): - coords = tr.Array() - arr = tr.Array() - - cropx = tr.Int() - cropy = tr.Int() - cropz = tr.Int() - - - def __init__(self): - self.imd = tvtk.ImageData() - self.sg = tvtk.StructuredGrid() - pass - - - def set_geometry(self, params, shape): - lam = params.lamda - tth = params.delta - gam = params.gamma - dpx = params.dpx - dpy = params.dpy - dth = params.dth - dx = 1.0 / shape[0] - dy = 1.0 / shape[1] - dz = 1.0 / shape[2] - dQdpx = np.zeros(3) - dQdpy = np.zeros(3) - dQdth = np.zeros(3) - Astar = np.zeros(3) - Bstar = np.zeros(3) - Cstar = np.zeros(3) - - # dQdpx[0] = -m.cos(tth) * m.cos(gam) - # dQdpx[1] = 0.0 - # dQdpx[2] = +m.sin(tth) * m.cos(gam) - dQdpx[0] = -m.cos(tth) - dQdpx[1] = 0.0 - dQdpx[2] = +m.sin(tth) - - dQdpy[0] = m.sin(tth) * m.sin(gam) - dQdpy[1] = -m.cos(gam) - dQdpy[2] = m.cos(tth) * m.sin(gam) - - dQdth[0] = -m.cos(tth) * m.cos(gam) + 1.0 - dQdth[1] = 0.0 - dQdth[2] = m.sin(tth) * m.cos(gam) - - Astar[0] = 2 * m.pi / lam * dpx * dQdpx[0] - Astar[1] = 2 * m.pi / lam * dpx * dQdpx[1] - Astar[2] = 2 * m.pi / lam * dpx * dQdpx[2] - - Bstar[0] = (2 * m.pi / lam) * dpy * dQdpy[0] - Bstar[1] = (2 * m.pi / lam) * dpy * dQdpy[1] - Bstar[2] = (2 * m.pi / lam) * dpy * dQdpy[2] - - Cstar[0] = (2 * m.pi / lam) * dth * dQdth[0] - Cstar[1] = (2 * m.pi / lam) * dth * dQdth[1] - Cstar[2] = (2 * m.pi / lam) * dth * dQdth[2] - - denom = np.dot(Astar, np.cross(Bstar, Cstar)) - A = 2 * m.pi * np.cross(Bstar, Cstar) / denom - B = 2 * m.pi * np.cross(Cstar, Astar) / denom - C = 2 * m.pi * np.cross(Astar, Bstar) / denom - - self.T = np.zeros(9) - self.T.shape = (3, 3) - space = 'direct' - if space == 'recip': - self.T[:, 0] = Astar - self.T[:, 1] = Bstar - self.T[:, 2] = Cstar - self.dx = 1.0 - self.dy = 1.0 - self.dz = 1.0 - elif space == 'direct': - self.T = np.array((A, B, C)) - self.dx = dx - self.dy = dy - self.dz = dz - else: - pass - - - def update_coords(self): - dims = list(self.arr[self.cropobj].shape) - - r = np.mgrid[(dims[0] - 1) * self.dx:-self.dx:-self.dx, \ - 0:dims[1] * self.dy:self.dy, 0:dims[2] * self.dz:self.dz] - - r.shape = 3, dims[0] * dims[1] * dims[2] - r = r.transpose() - - self.coords = np.dot(r, self.T) - - - def set_array(self, array, logentry=None): - self.arr = array - if len(self.arr.shape) < 3: - newdims = list(self.arr.shape) - for i in range(3 - len(newdims)): - newdims.append(1) - self.arr.shape = tuple(newdims) - - - def set_crop(self, cropx, cropy, cropz): - dims = list(self.arr.shape) - if len(dims) == 2: - dims.append(1) - - if dims[0] > cropx and cropx > 0: - self.cropx = cropx - else: - self.cropx = dims[0] - - if dims[1] > cropy and cropy > 0: - self.cropy = cropy - else: - self.cropy = dims[1] - - if dims[2] > cropz and cropz > 0: - self.cropz = cropz - else: - self.cropz = dims[2] - - start1 = int(dims[0]/2) - int(self.cropx/2) - end1 = int(dims[0]/2) + int(self.cropx/2) - if start1 == end1: - end1 = end1 + 1 - start2 = int(dims[1]/2) - int(self.cropy/2) - end2 = int(dims[1]/2) + int(self.cropy/2) - if start2 == end2: - end2 = end2 + 1 - start3 = int(dims[2]/2) - int(self.cropz/2) - end3 = int(dims[2]/2) + int(self.cropz/2) - if start3 == end3: - end3 = end3 + 1 - - self.cropobj = (slice(start1, end1, None), slice(start2, end2, None), - slice(start3, end3, None)) - - - def get_structured_grid(self, **args): - self.update_coords() - dims = list(self.arr[self.cropobj].shape) - self.sg.points = self.coords - if "mode" in args: - if args["mode"] == "Phase": - arr1 = self.arr[self.cropobj].ravel() - arr = (np.arctan2(arr1.imag, arr1.real)) - else: - arr = np.abs(self.arr[self.cropobj].ravel()) - else: - arr = self.arr[self.cropobj].ravel() - if (arr.dtype == np.complex128 or arr.dtype == np.complex64): - self.sg.point_data.scalars = np.abs(arr) - self.sg.point_data.scalars.name = "Amp" - ph = tvtk.DoubleArray() - ph.from_array(np.arctan2(arr.imag, arr.real)) - ph.name = "Phase" - self.sg.point_data.add_array(ph) - else: - self.sg.point_data.scalars = arr - self.sg.dimensions = (dims[2], dims[1], dims[0]) - self.sg.extent = 0, dims[2] - 1, 0, dims[1] - 1, 0, dims[0] - 1 - return self.sg - - - def write_structured_grid(self, filename, **args): - sgwriter = tvtk.StructuredGridWriter() - sgwriter.file_type = 'binary' - if filename.endswith(".vtk"): - sgwriter.file_name = filename - else: - sgwriter.file_name = filename + '.vtk' - sgwriter.set_input_data(self.get_structured_grid()) - sgwriter.write() - print ('saved file', filename) - - -def shift(arr, s0, s1, s2): - shifted = np.roll(arr, s0, axis=0) - shifted = np.roll(shifted, s1, axis=1) - return np.roll(shifted, s2, axis=2) - - -def center_of_mass(arr): - tot = np.sum(arr) - dims = arr.shape - xyz = [] - griddims = [] - for d in dims: - griddims.append(slice(0, d)) - grid = np.ogrid[griddims] - for g in grid: - xyz.append(np.sum(arr * g) / tot) - com = np.asarray(xyz) - com = np.ma.round(com).astype(np.int) - return list(com) - - -def remove_ramp(arr, ups=3): - new_shape = list(arr.shape) - # pad zeros around arr, to the size of 3 times (ups = 3) of arr size - for i in range(len(new_shape)): - new_shape[i] = ups * new_shape[i] - padded = ut.get_zero_padded_centered(arr, new_shape) - padded_f = np.fft.fftshift(np.fft.fftn(np.fft.ifftshift(padded))) - com = ndi.center_of_mass(np.power(np.abs(padded_f), 2)) - sub_pixel_shifted = ut.sub_pixel_shift(padded_f, new_shape[0]/2.0-com[0], new_shape[1]/2.0-com[1], new_shape[2]/2.0-com[2]) - ramp_removed_padded = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(sub_pixel_shifted))) - ramp_removed = ut.crop_center(ramp_removed_padded, arr.shape) - - return ramp_removed - - -def center(image, support): - dims = image.shape - image, support = ut.get_centered_both(image, support) - - # place center of mass image*support in the center - for ax in range(len(dims)): - com = ndi.center_of_mass(np.absolute(image) * support) - image = shift(image, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) - support = shift(support, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) - - # set center phase to zero, use as a reference - phi0 = m.atan2(image.imag[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)], image.real[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)]) - image = image * np.exp(-1j * phi0) - - return image, support - - -def get_crop(params, shape): - crop = [] - for i in range(len(shape)): - if params.crop is None: - crop.append(shape[i]) - else: - crop.append(params.crop[i]) - if isinstance(crop[i], float): - crop[i] = int(crop[i]*shape[i]) - return crop - - -def save_CX(conf, image, support, coh, save_dir, last_scan): - image = np.swapaxes(image, 1,2) - image = np.swapaxes(image, 0,1) - support = np.swapaxes(support, 1,2) - support = np.swapaxes(support, 0,1) - image, support = center(image, support) - params = DispalyParams(conf, last_scan) - image = remove_ramp(image) - viz = CXDViz() - viz.set_array(image) - viz.set_geometry(params, image.shape) - crop = get_crop(params, image.shape) - viz.set_crop(crop[0], crop[1], crop[2]) # save image - image_file = os.path.join(save_dir, 'image') - viz.write_structured_grid(image_file) - viz.set_array(support) - support_file = os.path.join(save_dir, 'support') - viz.write_structured_grid(support_file) - if coh is not None: - coh = np.swapaxes(coh, 1, 2) - # investigate if pad_center before fft or after - coh = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(coh))).real - coh = ut.get_zero_padded_centered(coh, image.shape) - coh_file = os.path.join(save_dir, 'coherence') - viz.set_array(coh) - viz.write_structured_grid(coh_file) - -# a = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') -# remove_ramp(a, 3) diff --git a/reccdi/src_py/utilities/archive/viz_util.py b/reccdi/src_py/utilities/archive/viz_util.py deleted file mode 100644 index 1074dc6..0000000 --- a/reccdi/src_py/utilities/archive/viz_util.py +++ /dev/null @@ -1,174 +0,0 @@ -# ######################################################################### -# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # -# # -# See LICENSE file. # -# ######################################################################### - -import os -import numpy as np -import math as m -import pyevtk.hl as vtk - -__author__ = "Barbara Frosik" -__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." -__docformat__ = 'restructuredtext en' - - -class CXDViz(): - - cropx = 0.5 - cropy = 0.5 - cropz = 0.5 - dir_arrs={} - recip_arrs={} - - def __init__(self): - #self.imd = tvtk.ImageData() - #self.sg = tvtk.StructuredGrid() - pass - - - def set_geometry(self, lam, delta, gamma, dpx, dpy, dth): - lam = lam - tth = delta - gam = gamma - dpx = dpx - dpy = dpy - dth = dth - dQdpx = np.zeros(3) - dQdpy = np.zeros(3) - dQdth = np.zeros(3) - Astar = np.zeros(3) - Bstar = np.zeros(3) - Cstar = np.zeros(3) - - # dQdpx[0] = -m.cos(tth) * m.cos(gam) - # dQdpx[1] = 0.0 - # dQdpx[2] = +m.sin(tth) * m.cos(gam) - dQdpx[0] = -m.cos(tth) - dQdpx[1] = 0.0 - dQdpx[2] = +m.sin(tth) - print("dqdpx",dQdpx) - - dQdpy[0] = m.sin(tth) * m.sin(gam) - dQdpy[1] = -m.cos(gam) - dQdpy[2] = m.cos(tth) * m.sin(gam) - print("dqdpy",dQdpy) - - dQdth[0] = -m.cos(tth) * m.cos(gam) + 1.0 - dQdth[1] = 0.0 - dQdth[2] = m.sin(tth) * m.cos(gam) - print("dqdth",dQdth) - - Astar[0] = 2 * m.pi / lam * dpx * dQdpx[0] - Astar[1] = 2 * m.pi / lam * dpx * dQdpx[1] - Astar[2] = 2 * m.pi / lam * dpx * dQdpx[2] - - Bstar[0] = (2 * m.pi / lam) * dpy * dQdpy[0] - Bstar[1] = (2 * m.pi / lam) * dpy * dQdpy[1] - Bstar[2] = (2 * m.pi / lam) * dpy * dQdpy[2] - - Cstar[0] = (2 * m.pi / lam) * dth * dQdth[0] - Cstar[1] = (2 * m.pi / lam) * dth * dQdth[1] - Cstar[2] = (2 * m.pi / lam) * dth * dQdth[2] - - denom = np.dot(Astar, np.cross(Bstar, Cstar)) - A = 2 * m.pi * np.cross(Bstar, Cstar) / denom - B = 2 * m.pi * np.cross(Cstar, Astar) / denom - C = 2 * m.pi * np.cross(Astar, Bstar) / denom - - self.Trecip = np.zeros(9) - self.Trecip.shape = (3, 3) - self.Trecip[:, 0] = Astar - self.Trecip[:, 1] = Bstar - self.Trecip[:, 2] = Cstar -# self.Trecip[:, 0] = [2,0,1] -# self.Trecip[:, 1] = [0,1,0] -# self.Trecip[:, 2] = [0,0,1] - print("Recip") - print(Astar,Bstar,Cstar) - print(self.Trecip) - - self.Tdir = np.zeros(9) - self.Tdir.shape = (3, 3) - self.Tdir = np.array((A, B, C)) - print("Direct") - print(A,B,C) - print(self.Tdir) - - self.dirspace_uptodate=0 - self.recipspace_uptodate=0 - return dQdpx, dQdpy, dQdth - - def update_dirspace(self, shape): - print("Updating dirspace coords") - dims = list(shape) - self.dxdir = 1.0 / shape[0] - self.dydir = 1.0 / shape[1] - self.dzdir = 1.0 / shape[2] - - r = np.mgrid[ - 0:dims[0] * self.dxdir:self.dxdir, \ - 0:dims[1] * self.dydir:self.dydir,\ - 0:dims[2] * self.dzdir:self.dzdir] -# r = np.mgrid[ -# 0:dims[0]*self.dxdir:self.dxdir, \ -# (dims[1]-1)*self.dydir:-self.dydir:-self.dydir,\ -# 0:dims[2]*self.dzdir:self.dzdir] - - origshape=r.shape - r.shape = 3, dims[0] * dims[1] * dims[2] - #r = r.transpose() - - self.dir_coords = np.dot(self.Tdir, r) - -# self.dir_coords = self.dir_coords.transpose() - self.dir_coords.shape=origshape - print("dir shape", self.dir_coords.shape) - self.dirspace_uptodate=1 - - def update_recipspace(self, shape): - dims = list(shape) - q = np.mgrid[ 0:dims[0], 0:dims[1], 0:dims[2]] - - origshape=q.shape - q.shape = 3, dims[0] * dims[1] * dims[2] - - self.recip_coords = np.dot(self.Trecip, q) - self.recip_coords.shape=origshape - self.recipspace_uptodate=1 - - def add_array(self, array, name, space='direct', logentry=None): - - #Need to add something to ensure arrays are all the same dimension. - #Need to add crop of viz output arrays - if len(array.shape) < 3: - newdims = list(array.shape) - for i in range(3 - len(newdims)): - newdims.append(1) - array.shape = tuple(newdims) - print("adding array of shape ", array.shape) - if space=='direct': - self.dir_arrs[name]=array - if (not self.dirspace_uptodate): - self.update_dirspace(array.shape) - elif space=='recip': - self.recip_arrs[name]=array - if (not self.recipspace_uptodate): - self.update_recipspace(array.shape) - else: - return - - def write_directspace(self, filename, **args): - print(self.dir_arrs.keys()) - vtk.gridToVTK(filename, self.dir_coords[0,:,:,:].copy(), \ - self.dir_coords[1,:,:,:].copy(), \ - self.dir_coords[2,:,:,:].copy(), pointData=self.dir_arrs) - vtk.imageToVTK(filename, pointData=self.dir_arrs) - - def write_recipspace(self, filename, **args): - vtk.gridToVTK(filename, self.recip_coords[0,:,:,:].copy(), \ - self.recip_coords[1,:,:,:].copy(), \ - self.recip_coords[2,:,:,:].copy(), pointData=self.recip_arrs) - vtk.imageToVTK(filename, pointData=self.recip_arrs) - diff --git a/reccdi/src_py/utilities/archive/viz_util_dirdemo.py b/reccdi/src_py/utilities/archive/viz_util_dirdemo.py deleted file mode 100644 index 7da7654..0000000 --- a/reccdi/src_py/utilities/archive/viz_util_dirdemo.py +++ /dev/null @@ -1,42 +0,0 @@ -if __name__ =="__main__": - import numpy as np - import math as m - import tifffile as tif - import tools as t - import viz_util_xu as vu - import prep_noconfig as prep - import os - - #binning of the data, this is not actually done, it's to account for previous binning in the saved data. - dbin1=2 - dbin2=2 - dir="/Users/rharder/Box/cdi-master/reccdi/src_py/utilities/NX2019a-3_483/results" - fname=os.path.join(dir,"image.npy") - #a=t.read_tif("cropped.tif").copy() #copy ensures array is contiguous which pyevtk needs - #b=prep.read_scan("/Users/rharder/Desktop/cropped", None, None) - a=np.load(fname)[:-28,:,:] - -# tif.imsave("RawDiffraction.tif", b) -# print("raw data",b.shape) -# print("imagejsave",a.shape) - - #scan info. - lam=1.37 #wavelength - delta=33.0*m.pi/180 #detector angle 1 - gamma=11.0*m.pi/180 #detector angle 2 - dpx=55e-6/0.500 #pixel size divided by detector dist - dpy=55e-6/0.500 - dth=0.01*m.pi/180 #rocking curve scan step. Everything in radians - - vr=vu.CXDViz() - vr.set_geometry(lam, delta, gamma, dbin1*dpx, dbin2*dpy, dth) - vr.add_array(abs(a), "imamp", space='direct') - #vr.add_array(np.angle(a), "imph", space='direct') - vr.write_directspace("dirtest.vtk") - - - -# q=vr.recip_coords -# qmag=np.sqrt(q[0,:,:,:]**2 + q[1,:,:,:]**2 + q[2,:,:,:]**2) -# vr.add_array(qmag, "qmag", space='recip') #add a second property that can be used for color in viz. -# vr.write_recipspace("RawDiffraction") diff --git a/reccdi/src_py/utilities/archive/viz_util_recipdemo.py b/reccdi/src_py/utilities/archive/viz_util_recipdemo.py deleted file mode 100644 index d66e5a5..0000000 --- a/reccdi/src_py/utilities/archive/viz_util_recipdemo.py +++ /dev/null @@ -1,34 +0,0 @@ -if __name__ =="__main__": - import numpy as np - import math as m - import tifffile as tif - import tools as t - import viz_util as vu - import prep_noconfig as prep - - #binning of the data, this is not actually done, it's to account for previous binning in the saved data. - dbin1=1 - dbin2=1 - a=t.read_tif("cropped.tif").copy() #copy ensures array is contiguous which pyevtk needs - b=prep.read_scan("/Users/rharder/Desktop/cropped", None, None) - - tif.imsave("RawDiffraction.tif", b) - print("raw data",b.shape) - print("imagejsave",a.shape) - - #scan info. - lam=.137 #wavelength - delta=33.0*m.pi/180 #detector angle 1 - gamma=11.0*m.pi/180 #detector angle 2 - dpx=55e-6/0.5 #pixel size divided by detector dist - dpy=55e-6/0.5 - dth=0.01*m.pi/180 #rocking curve scan step. Everything in radians - - vr=vu.CXDViz() - vr.set_geometry(lam, delta, gamma, dbin1*dpx, dbin2*dpy, dth) - vr.add_array(b, "dp", space='recip') - - q=vr.recip_coords - qmag=np.sqrt(q[0,:,:,:]**2 + q[1,:,:,:]**2 + q[2,:,:,:]**2) - vr.add_array(qmag, "qmag", space='recip') #add a second property that can be used for color in viz. - vr.write_recipspace("RawDiffraction") diff --git a/reccdi/src_py/utilities/archive/viz_util_xu_pyevtk.py b/reccdi/src_py/utilities/archive/viz_util_xu_pyevtk.py deleted file mode 100644 index c2d7e7b..0000000 --- a/reccdi/src_py/utilities/archive/viz_util_xu_pyevtk.py +++ /dev/null @@ -1,332 +0,0 @@ -# ######################################################################### -# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # -# # -# See LICENSE file. # -# ######################################################################### - -import os -import numpy as np -import scipy.ndimage as ndi -import math as m -import pyevtk.hl as vtk -import xrayutilities.experiment as xuexp -import reccdi.src_py.utilities.utils as ut -from reccdi.src_py.utilities.utils import measure -import reccdi.src_py.utilities.spec as sput - -__author__ = "Barbara Frosik" -__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." -__docformat__ = 'restructuredtext en' - -class DispalyParams: - """ - This class encapsulates parameters defining image display. The parameters are -read from config file on - construction - """ - - def __init__(self, config): - """ - The constructor gets config file and fills out the class members. - - Parameters - ---------- - conf : str - configuration file name - - Returns - ------- - none - """ - deg2rad = np.pi / 180.0 - try: - specfile = config['specfile'] - last_scan = config['last_scan'] - self.lam, delta, gamma, dth, arm, pixel,energy = sput.parse_spec(specfile, -last_scan) - self.delta = delta * deg2rad - self.gamma = gamma * deg2rad - self.dth = dth * deg2rad - self.arm = arm / 1000 - self.energy = energy - pixel = pixel[1:-1] - pixel = pixel.split(',') - pixel[0], pixel[1] = float(pixel[0]), float(pixel[1]) - except Exception as e: - pass - # override the parsed parameters with entries in config file - try: - self.energy = config['energy'] - self.lam = 12.398 / energy / 10 - except AttributeError: - pass - try: - self.delta = config['delta'] * deg2rad - except AttributeError: - pass - try: - self.gamma = config['gamma'] * deg2rad - except AttributeError: - pass - try: - self.dth = config['dth'] * deg2rad - except AttributeError: - pass - try: - self.arm = config['arm'] / 1000 - except AttributeError: - pass - try: - pixel = config['pixel'] - except AttributeError: - pass - - try: - self.binning = [] - binning = config['binning'] - for i in range(len(binning)): - self.binning.append(binning[i]) - for _ in range(3 - len(self.binning)): - self.binning.append(1) - except AttributeError: - self.binning = [1,1,1] - self.px = pixel[0] * self.binning[0] - self.py = pixel[1] * self.binning[1] - self.dpx = pixel[0] * self.binning[0] / self.arm / self.binning[2] - self.dpy = pixel[1] * self.binning[1] / self.arm / self.binning[2] - try: - self.crop = [] - crop = config['crop'] - for i in range(len(crop)): - self.crop.append(crop[i]) - for _ in range(3 - len(self.crop)): - self.crop.append(1.0) - crop[0], crop[1] = crop[1], crop[0] - except AttributeError: - self.crop = None - - - - - - -class CXDViz(): - - cropx = 0.5 - cropy = 0.5 - cropz = 0.5 - dir_arrs={} - recip_arrs={} - - def __init__(self): - #self.imd = tvtk.ImageData() - #self.sg = tvtk.StructuredGrid() - pass - - - #def set_geometry(self, lam, delta, gamma, dpx, dpy, dth): - @measure - def set_geometry(self, params, shape): - self.params = params - lam = params.lam - tth = params.delta - gam = params.gamma - px = params.px - py = params.py - dpx = params.dpx - dpy = params.dpy - dth = params.dth - energy = params.energy - dQdpx = np.zeros(3) - dQdpy = np.zeros(3) - dQdth = np.zeros(3) - Astar = np.zeros(3) - Bstar = np.zeros(3) - Cstar = np.zeros(3) - - print("running the xrayutilities version") - self.qc=xuexp.QConversion(['y+','z-','x-'], ['y+','x-'],(0,0,1),en=energy*1000) - self.qc.init_area('x+','y-', shape[0],shape[1], 2,2, distance=params.arm, pwidth1=px, pwidth2=py) - - q1=np.array(self.qc.area(0.0,0,0,tth,gam,deg=False)) - q2=np.array(self.qc.area(dth,0,0,tth,gam,deg=False)) - Astar=q1[:,1,0]-q1[:,0,0] - Bstar=q1[:,0,1]-q1[:,0,0] - Cstar=(q2-q1)[:,0,0] - - denom = np.dot(Astar, np.cross(Bstar, Cstar)) - A = 2 * m.pi * np.cross(Bstar, Cstar) / denom - B = 2 * m.pi * np.cross(Cstar, Astar) / denom - C = 2 * m.pi * np.cross(Astar, Bstar) / denom - - self.Trecip = np.zeros(9) - self.Trecip.shape = (3, 3) - self.Trecip[:, 0] = Astar - self.Trecip[:, 1] = Bstar - self.Trecip[:, 2] = Cstar -# self.Trecip[:, 0] = [2,0,1] -# self.Trecip[:, 1] = [0,1,0] -# self.Trecip[:, 2] = [0,0,1] - print("Recip") - print(Astar,Bstar,Cstar) - print(self.Trecip) - - self.Tdir = np.zeros(9) - self.Tdir.shape = (3, 3) - self.Tdir = np.array((A, B, C)).transpose() - print("Direct") - print(A,B,C) - print(self.Tdir) - - self.dirspace_uptodate=0 - self.recipspace_uptodate=0 - return dQdpx, dQdpy, dQdth - - def update_dirspace(self, shape): - print("Updating dirspace coords") - dims = list(shape) - self.dxdir = 1.0 / shape[0] - self.dydir = 1.0 / shape[1] - self.dzdir = 1.0 / shape[2] - - r = np.mgrid[ - 0:dims[0] * self.dxdir:self.dxdir, \ - 0:dims[1] * self.dydir:self.dydir,\ - 0:dims[2] * self.dzdir:self.dzdir,\ - ] -# r = np.mgrid[ -# 0:dims[0]*self.dxdir:self.dxdir, \ -# (dims[1]-1)*self.dydir:-self.dydir:-self.dydir,\ -# 0:dims[2]*self.dzdir:self.dzdir] - - origshape=r.shape - r.shape = 3, dims[0] * dims[1] * dims[2] - #r = r.transpose() - - self.dir_coords = np.dot(self.Tdir, r) - -# self.dir_coords = self.dir_coords.transpose() - self.dir_coords.shape=origshape - print("dir shape", self.dir_coords.shape) - self.dirspace_uptodate=1 - - def update_recipspace(self, shape): - dims = list(shape) - q = np.mgrid[ 0:dims[0], 0:dims[1], 0:dims[2]] - - origshape=q.shape - q.shape = 3, dims[0] * dims[1] * dims[2] - - self.recip_coords = np.dot(self.Trecip, q) - self.recip_coords.shape=origshape - self.recipspace_uptodate=1 - - def clear_direct_arrays(self): - self.dir_arrs.clear() - def clear_recip_arrays(self): - self.recip_arrs.clear() - - @measure - def add_array(self, array, name, space='direct', logentry=None): - - #Need to add something to ensure arrays are all the same dimension. - #Need to add crop of viz output arrays - if len(array.shape) < 3: - newdims = list(array.shape) - for i in range(3 - len(newdims)): - newdims.append(1) - array.shape = tuple(newdims) - #array=array.transpose() - print("adding array of shape ", array.shape) - if space=='direct': - self.dir_arrs[name]=array - if (not self.dirspace_uptodate): - self.update_dirspace(array.shape) - elif space=='recip': - self.recip_arrs[name]=array - if (not self.recipspace_uptodate): - self.update_recipspace(array.shape) - else: - return - - @measure - def write_directspace(self, filename, **args): - print(self.dir_arrs.keys()) - vtk.gridToVTK(filename, self.dir_coords[0,:,:,:].copy(), \ - self.dir_coords[1,:,:,:].copy(), \ - self.dir_coords[2,:,:,:].copy(), pointData=self.dir_arrs) - vtk.imageToVTK(filename, pointData=self.dir_arrs) - - def write_recipspace(self, filename, **args): - vtk.gridToVTK(filename, self.recip_coords[0,:,:,:].copy(), \ - self.recip_coords[1,:,:,:].copy(), \ - self.recip_coords[2,:,:,:].copy(), pointData=self.recip_arrs) - vtk.imageToVTK(filename, pointData=self.recip_arrs) - -def shift(arr, s0, s1, s2): - shifted = np.roll(arr, s0, axis=0) - shifted = np.roll(shifted, s1, axis=1) - return np.roll(shifted, s2, axis=2) - - -def center_of_mass(arr): - tot = np.sum(arr) - dims = arr.shape - xyz = [] - griddims = [] - for d in dims: - griddims.append(slice(0, d)) - grid = np.ogrid[griddims] - for g in grid: - xyz.append(np.sum(arr * g) / tot) - com = np.asarray(xyz) - com = np.ma.round(com).astype(np.int) - return list(com) - -@measure -def remove_ramp(arr, ups=1): - new_shape = list(arr.shape) - # pad zeros around arr, to the size of 3 times (ups = 3) of arr size - for i in range(len(new_shape)): - new_shape[i] = ups * new_shape[i] - padded = ut.get_zero_padded_centered(arr, new_shape) - padded_f = np.fft.fftshift(np.fft.fftn(np.fft.ifftshift(padded))) - com = ndi.center_of_mass(np.power(np.abs(padded_f), 2)) - sub_pixel_shifted = ut.sub_pixel_shift(padded_f, new_shape[0]/2.0-com[0], new_shape[1]/2.0-com[1], -new_shape[2]/2.0-com[2]) - ramp_removed_padded = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(sub_pixel_shifted))) - ramp_removed = ut.crop_center(ramp_removed_padded, arr.shape) - - return ramp_removed - - -@measure -def center(image, support): - dims = image.shape - image, support = ut.get_centered_both(image, support) - - # place center of mass image*support in the center - for ax in range(len(dims)): - com = ndi.center_of_mass(np.absolute(image) * support) - image = shift(image, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) - support = shift(support, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) - - # set center phase to zero, use as a reference - phi0 = m.atan2(image.imag[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)], image.real[int(dims[0]/2), int(dims[1]/2), -int(dims[2]/2)]) - image = image * np.exp(-1j * phi0) - - return image, support - - -def get_crop(params, shape): - crop = [] - for i in range(len(shape)): - if params.crop is None: - crop.append(shape[i]) - else: - crop.append(params.crop[i]) - if isinstance(crop[i], float): - crop[i] = int(crop[i]*shape[i]) - return crop - diff --git a/reccdi/src_py/utilities/archive/viz_util_xu_tvtk.py b/reccdi/src_py/utilities/archive/viz_util_xu_tvtk.py deleted file mode 100644 index 2974765..0000000 --- a/reccdi/src_py/utilities/archive/viz_util_xu_tvtk.py +++ /dev/null @@ -1,333 +0,0 @@ -# ######################################################################### -# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # -# # -# See LICENSE file. # -# ######################################################################### - -import os -import numpy as np -import scipy.ndimage as ndi -import math as m -import pyevtk.hl as vtk -from tvtk.api import tvtk -import xrayutilities.experiment as xuexp -import reccdi.src_py.utilities.utils as ut -from reccdi.src_py.utilities.utils import measure -import reccdi.src_py.utilities.spec as sput - -__author__ = "Barbara Frosik" -__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." -__docformat__ = 'restructuredtext en' - -class DispalyParams: - """ - This class encapsulates parameters defining image display. The parameters are -read from config file on - construction - """ - - def __init__(self, config): - """ - The constructor gets config file and fills out the class members. - - Parameters - ---------- - conf : str - configuration file name - - Returns - ------- - none - """ - deg2rad = np.pi / 180.0 - try: - specfile = config['specfile'] - last_scan = config['last_scan'] - self.lam, delta, gamma, dth, arm, pixel,energy = sput.parse_spec(specfile, -last_scan) - self.delta = delta * deg2rad - self.gamma = gamma * deg2rad - self.dth = dth * deg2rad - self.arm = arm / 1000 - self.energy = energy - pixel = pixel[1:-1] - pixel = pixel.split(',') - pixel[0], pixel[1] = float(pixel[0]), float(pixel[1]) - except Exception as e: - pass - # override the parsed parameters with entries in config file - try: - self.energy = config['energy'] - self.lam = 12.398 / energy / 10 - except AttributeError: - pass - try: - self.delta = config['delta'] * deg2rad - except AttributeError: - pass - try: - self.gamma = config['gamma'] * deg2rad - except AttributeError: - pass - try: - self.dth = config['dth'] * deg2rad - except AttributeError: - pass - try: - self.arm = config['arm'] / 1000 - except AttributeError: - pass - try: - pixel = config['pixel'] - except AttributeError: - pass - - try: - self.binning = [] - binning = config['binning'] - for i in range(len(binning)): - self.binning.append(binning[i]) - for _ in range(3 - len(self.binning)): - self.binning.append(1) - except AttributeError: - self.binning = [1,1,1] - self.px = pixel[0] * self.binning[0] - self.py = pixel[1] * self.binning[1] - self.dpx = pixel[0] * self.binning[0] / self.arm / self.binning[2] - self.dpy = pixel[1] * self.binning[1] / self.arm / self.binning[2] - try: - self.crop = [] - crop = config['crop'] - for i in range(len(crop)): - self.crop.append(crop[i]) - for _ in range(3 - len(self.crop)): - self.crop.append(1.0) - crop[0], crop[1] = crop[1], crop[0] - except AttributeError: - self.crop = None - - - -class CXDViz(): - - cropx = 0.5 - cropy = 0.5 - cropz = 0.5 - dir_arrs={} - recip_arrs={} - - def __init__(self): - self.imd = tvtk.ImageData() - self.sg = tvtk.StructuredGrid() - pass - - - #def set_geometry(self, lam, delta, gamma, dpx, dpy, dth): - @measure - def set_geometry(self, params, shape): - self.params = params - lam = params.lam - tth = params.delta - gam = params.gamma - px = params.px - py = params.py - dpx = params.dpx - dpy = params.dpy - dth = params.dth - energy = params.energy - dQdpx = np.zeros(3) - dQdpy = np.zeros(3) - dQdth = np.zeros(3) - Astar = np.zeros(3) - Bstar = np.zeros(3) - Cstar = np.zeros(3) - - print("running the xrayutilities version and tvtk") - self.qc=xuexp.QConversion(['y+','z-','x-'], ['y+','x-'],(0,0,1),en=energy*1000) - self.qc.init_area('x+','y-', shape[0],shape[1], 2,2, distance=params.arm, pwidth1=px, pwidth2=py) - - q1=np.array(self.qc.area(0.0,0,0,tth,gam,deg=False)) - q2=np.array(self.qc.area(dth,0,0,tth,gam,deg=False)) - Astar=q1[:,1,0]-q1[:,0,0] - Bstar=q1[:,0,1]-q1[:,0,0] - Cstar=(q2-q1)[:,0,0] - - denom = np.dot(Astar, np.cross(Bstar, Cstar)) - A = 2 * m.pi * np.cross(Bstar, Cstar) / denom - B = 2 * m.pi * np.cross(Cstar, Astar) / denom - C = 2 * m.pi * np.cross(Astar, Bstar) / denom - - self.Trecip = np.zeros(9) - self.Trecip.shape = (3, 3) - self.Trecip[:, 0] = Astar - self.Trecip[:, 1] = Bstar - self.Trecip[:, 2] = Cstar -# self.Trecip[:, 0] = [2,0,1] -# self.Trecip[:, 1] = [0,1,0] -# self.Trecip[:, 2] = [0,0,1] - print("Recip") - print(Astar,Bstar,Cstar) - print(self.Trecip) - - self.Tdir = np.zeros(9) - self.Tdir.shape = (3, 3) - self.Tdir = np.array((A, B, C)).transpose() - print("Direct") - print(A,B,C) - print(self.Tdir) - - self.dirspace_uptodate=0 - self.recipspace_uptodate=0 - return dQdpx, dQdpy, dQdth - - def update_dirspace(self, shape): - print("Updating dirspace coords") - dims = list(shape) - self.dxdir = 1.0 / shape[0] - self.dydir = 1.0 / shape[1] - self.dzdir = 1.0 / shape[2] - - r = np.mgrid[ - 0:dims[0] * self.dxdir:self.dxdir, \ - 0:dims[1] * self.dydir:self.dydir,\ - 0:dims[2] * self.dzdir:self.dzdir] -# r = np.mgrid[ -# 0:dims[0]*self.dxdir:self.dxdir, \ -# (dims[1]-1)*self.dydir:-self.dydir:-self.dydir,\ -# 0:dims[2]*self.dzdir:self.dzdir] - - origshape=r.shape - r.shape = 3, dims[0] * dims[1] * dims[2] - #r = r.transpose() - - self.dir_coords = np.dot(self.Tdir, r).transpose() - -# self.dir_coords = self.dir_coords.transpose() -# self.dir_coords.shape=origshape - print("dir shape", self.dir_coords.shape) - self.dirspace_uptodate=1 - - def update_recipspace(self, shape): - dims = list(shape) - q = np.mgrid[ 0:dims[0], 0:dims[1], 0:dims[2]] - - origshape=q.shape - q.shape = 3, dims[0] * dims[1] * dims[2] - - self.recip_coords = np.dot(self.Trecip, q) - self.recip_coords.shape=origshape - self.recipspace_uptodate=1 - - def clear_direct_arrays(self): - self.dir_arrs.clear() - def clear_recip_arrays(self): - self.recip_arrs.clear() - - @measure - def add_array(self, array, name, space='direct', logentry=None): - - #Need to add something to ensure arrays are all the same dimension. - #Need to add crop of viz output arrays - if len(array.shape) < 3: - newdims = list(array.shape) - for i in range(3 - len(newdims)): - newdims.append(1) - array.shape = tuple(newdims) - print("adding array of shape ", array.shape) - if space=='direct': - self.dir_arrs[name]=array - if (not self.dirspace_uptodate): - self.update_dirspace(array.shape) - elif space=='recip': - self.recip_arrs[name]=array - if (not self.recipspace_uptodate): - self.update_recipspace(array.shape) - else: - return - - def get_ds_structured_grid(self, **args): - arr0=self.dir_arrs[list(self.dir_arrs.keys())[0]] - dims = list(arr0.shape) - self.sg.points = self.dir_coords - for a in self.dir_arrs.keys(): - arr=tvtk.DoubleArray() - arr.from_array(self.dir_arrs[a].ravel()) - arr.name=a - self.sg.point_data.add_array(arr) - - self.sg.dimensions = (dims[2], dims[1], dims[0]) - self.sg.extent = 0, dims[2] - 1, 0, dims[1] - 1, 0, dims[0] - 1 - return self.sg - - def write_directspace(self, filename, **args): - sgwriter = tvtk.XMLStructuredGridWriter() - #sgwriter.file_type = 'binary' - if filename.endswith(".vtk"): - sgwriter.file_name = filename - else: - sgwriter.file_name = filename + '.vts' - sgwriter.set_input_data(self.get_ds_structured_grid()) - sgwriter.write() - print ('saved file', filename) - - @measure - def write_directspace_pyevtk(self, filename, **args): - print(self.dir_arrs.keys()) - vtk.gridToVTK(filename, self.dir_coords[0,:,:,:].copy(), \ - self.dir_coords[1,:,:,:].copy(), \ - self.dir_coords[2,:,:,:].copy(), pointData=self.dir_arrs) - vtk.imageToVTK(filename, pointData=self.dir_arrs) - - def write_recipspace_pyevtk(self, filename, **args): - vtk.gridToVTK(filename, self.recip_coords[0,:,:,:].copy(), \ - self.recip_coords[1,:,:,:].copy(), \ - self.recip_coords[2,:,:,:].copy(), pointData=self.recip_arrs) - vtk.imageToVTK(filename, pointData=self.recip_arrs) - -@measure -def remove_ramp(arr, ups=1): - new_shape = list(arr.shape) - # pad zeros around arr, to the size of 3 times (ups = 3) of arr size - for i in range(len(new_shape)): - new_shape[i] = ups * new_shape[i] - padded = ut.get_zero_padded_centered(arr, new_shape) - padded_f = np.fft.fftshift(np.fft.fftn(np.fft.ifftshift(padded))) - com = ndi.center_of_mass(np.power(np.abs(padded_f), 2)) - sub_pixel_shifted = ut.sub_pixel_shift(padded_f, new_shape[0]/2.0-com[0], new_shape[1]/2.0-com[1], -new_shape[2]/2.0-com[2]) - ramp_removed_padded = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(sub_pixel_shifted))) - ramp_removed = ut.crop_center(ramp_removed_padded, arr.shape) - - return ramp_removed - - -@measure -def center(image, support): - dims = image.shape - image, support = ut.get_centered_both(image, support) - - # place center of mass image*support in the center - for ax in range(len(dims)): - com = ndi.center_of_mass(np.absolute(image) * support) - image = shift(image, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) - support = shift(support, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) - - # set center phase to zero, use as a reference - phi0 = m.atan2(image.imag[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)], image.real[int(dims[0]/2), int(dims[1]/2), -int(dims[2]/2)]) - image = image * np.exp(-1j * phi0) - - return image, support - - -def get_crop(params, shape): - crop = [] - for i in range(len(shape)): - if params.crop is None: - crop.append(shape[i]) - else: - crop.append(params.crop[i]) - if isinstance(crop[i], float): - crop[i] = int(crop[i]*shape[i]) - return crop - diff --git a/reccdi/src_py/utilities/utils.py b/reccdi/src_py/utilities/utils.py index 32a6a5f..b7d8f41 100644 --- a/reccdi/src_py/utilities/utils.py +++ b/reccdi/src_py/utilities/utils.py @@ -464,11 +464,10 @@ def write_plot_errors(save_dir): def save_results(image, support, coh, errs, reciprocal, flow, iter_array, save_dir, metrics=None): if not os.path.exists(save_dir): os.makedirs(save_dir) - print("writing image", image.shape) + print("image shape", image.shape) image_file = os.path.join(save_dir, 'image') np.save(image_file, image) - print("image max", abs(image.max())) save_tif(np.abs(image), image_file+".tif") support_file = os.path.join(save_dir, 'support') np.save(support_file, support) diff --git a/setup.py b/setup.py index 31fc3a4..c82f23c 100755 --- a/setup.py +++ b/setup.py @@ -3,8 +3,7 @@ setup(ext_modules=cythonize( - ["reccdi/src_py/cyth/bridge_cpu.pyx", "reccdi/src_py/cyth/bridge_opencl.pyx", "reccdi/src_py/cyth/bridge_cuda.pyx", ], - language="c++", ), + ["reccdi/src_py/cyth/bridge_cpu.pyx", "reccdi/src_py/cyth/bridge_opencl.pyx", "reccdi/src_py/cyth/bridge_cuda.pyx", ],), name='reccdi', author = 'Barbara Frosik', author_email = 'bfrosik@anl.gov', From 922501b2228189b45cab43b191d100978bea60b8 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 15:05:01 -0600 Subject: [PATCH 217/336] Update README.md --- README.md | 118 ++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 74 insertions(+), 44 deletions(-) diff --git a/README.md b/README.md index 6ac7feb..79dec68 100644 --- a/README.md +++ b/README.md @@ -1,63 +1,93 @@ + +Skip to content +Pull requests +Issues +Marketplace +Explore +@bfrosik +Learn Git and GitHub without any code! + +Using the Hello World guide, you’ll start a branch, write comments, and open a pull request. +AdvancedPhotonSource / +cdi +forked from bfrosik/cdi + +7 +2 + + 3 + +Code +Pull requests 0 +Actions +Projects 0 +Wiki +Security +Insights +Settings +cdi/README.md +@bfrosik bfrosik reversed the hardcoded library path 0c547d2 23 days ago +58 lines (46 sloc) 3.52 KB cdi -=== -Coherent Diffraction Imaging technique provides a reconstruction of image of a nanoscale structures. Refer to Wikipedia article CDI description for the technique details. -Project summary: Implement and parallelize genetic algorithms and phase retrieval methods for Bragg CDI techniques. + +Coherent Diffraction Imaging technique provides a reconstruction of image of a nanoscale structures. Refer to Wikipedia article CDI description for the technique details. Project summary: Implement and parallelize genetic algorithms and phase retrieval methods for Bragg CDI techniques. The CDI experiments are performed at the beamline 34-ID. The team currently uses tool written in Matlab. This tool provides multiple features, and includes newest scientific discoveries in the field. Recently, scientists in general, are shifting to Python written tools, as Python offers better performance, and is easier to maintain. Goal of this project is to deliver fast tool, easy to maintain, that includes all the features currently available. There is a prospect to conduct research in the field, and add the new ideas/features when proved successful. - -A genetic algorithm approach to CDI phase retrieval will improve coherent imaging in two aspects. The first is to enable the recovery of highly reproducible images from a given data set. The second is to render previously impossible to image samples amenable to CDI, opening the door to a greater scientific impact for the method. The basic idea is to do the same phasing process with tens to thousands of random starting points. The diversity of results is then exploited to arrive at a highly reproducible image of the sample. Another aspect of genetic algorithm approaches is in the “fitness” criterion used to evaluate the population of results. This can be tuned to enable phase retrieval of datasets that have previously been impossible to produce images from. -It is desired to implement and parallelize software for fast processing by non-expert beamline users. Current processing time of a 100 MB sample using serial MATLAB code takes 60 minutes using limited parameters. Current data acquisition time for a 100 MB data set is 20 minutes, and will decrease after the completion of the APS Upgrade. Attaining a robust image of a sample in a computation time nearer the data acquisition time will allow nearer real-time feedback into the experimental parameters. The experimenter may begin to do guided, carefully executed experiments. Currently, the vast majority of Bragg CDI users will benefit from semi-real-time phase retrieval for their data. It will also open the instrument up to far less sophisticated CDI users. This technique will be critical to one or more APS Upgrade beamlines. - +A genetic algorithm approach to CDI phase retrieval will improve coherent imaging in two aspects. The first is to enable the recovery of highly reproducible images from a given data set. The second is to render previously impossible to image samples amenable to CDI, opening the door to a greater scientific impact for the method. The basic idea is to do the same phasing process with tens to thousands of random starting points. The diversity of results is then exploited to arrive at a highly reproducible image of the sample. Another aspect of genetic algorithm approaches is in the “fitness” criterion used to evaluate the population of results. This can be tuned to enable phase retrieval of datasets that have previously been impossible to produce images from. It is desired to implement and parallelize software for fast processing by non-expert beamline users. Current processing time of a 100 MB sample using serial MATLAB code takes 60 minutes using limited parameters. Current data acquisition time for a 100 MB data set is 20 minutes, and will decrease after the completion of the APS Upgrade. Attaining a robust image of a sample in a computation time nearer the data acquisition time will allow nearer real-time feedback into the experimental parameters. The experimenter may begin to do guided, carefully executed experiments. Currently, the vast majority of Bragg CDI users will benefit from semi-real-time phase retrieval for their data. It will also open the instrument up to far less sophisticated CDI users. This technique will be critical to one or more APS Upgrade beamlines. Version -------- -v1.0 - 06/24/2019 +v1.0 - 06/24/2019 Pre-requisites ---------------- -- ArrayFire library version 3.5.0 or higher -- Libconfig library version 1.5 or higher -- Python packages installation: - - pip install tifffile - - pip install pylibconfig2 - - python3 -m pip install parsl - - pip install traits - - pip install mayavi - - pip install xrayutilities (for parsing spec file if using 34Id prep) + ArrayFire library version 3.5.0 or higher + Libconfig library version 1.5 or higher + Python packages installation: + pip install tifffile + pip install pylibconfig2 + pip install GPUtil + pip install traits + pip install mayavi + pip install xrayutilities (for parsing spec file if using 34Id prep) Author(s) -------- -Barbara Frosik - Principal Software Engineer at Argonne National Laboratory +Barbara Frosik - Principal Software Engineer at Argonne National Laboratory License -------- -Copyright (c) UChicago Argonne, LLC. All rights reserved. -See LICENSE file. +Copyright (c) UChicago Argonne, LLC. All rights reserved. See LICENSE file. C++ Libraries -------------- -- ArrayFire open source -- Libconfig open source + + ArrayFire open source + Libconfig open source How to install ------------ -- clone the source from the repository: - - git clone https://github.com/advancedPhotonSource/cdi - - cd cdi -- run interactive script to set enviroment variables and set the project: - - source init.sh - at the promt enter the following: - - enter ArrayFire installation directory > (absolute path to ArrayFire installation dir) - - enter LibConfig installation directory > (absolute path to LibConfig installation dir) - - enter cuda installation directory > (absolute path to cuda installation dir) - - enter data type (float/double) > double -- run installation: - - python setup.py build_ext --inplace - - python setup.py install - + + clone the source from the repository: + git clone https://github.com/advancedPhotonSource/cdi + cd cdi + run interactive script to set enviroment variables and set the project: + source init.sh at the promt enter the following: + enter ArrayFire installation directory > (absolute path to ArrayFire installation dir) + enter LibConfig installation directory > (absolute path to LibConfig installation dir) + How to run ----------- -- refer to how_to_run file + + refer to how_to_run file + + © 2020 GitHub, Inc. + Terms + Privacy + Security + Status + Help + + Contact GitHub + Pricing + API + Training + Blog + About + From ff70ddbab0f4d7928ee37cb8dd57682c5da38b32 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 15:08:01 -0600 Subject: [PATCH 218/336] Update README.md --- README.md | 29 ----------------------------- 1 file changed, 29 deletions(-) diff --git a/README.md b/README.md index 79dec68..cb31b26 100644 --- a/README.md +++ b/README.md @@ -1,33 +1,4 @@ -Skip to content -Pull requests -Issues -Marketplace -Explore -@bfrosik -Learn Git and GitHub without any code! - -Using the Hello World guide, you’ll start a branch, write comments, and open a pull request. -AdvancedPhotonSource / -cdi -forked from bfrosik/cdi - -7 -2 - - 3 - -Code -Pull requests 0 -Actions -Projects 0 -Wiki -Security -Insights -Settings -cdi/README.md -@bfrosik bfrosik reversed the hardcoded library path 0c547d2 23 days ago -58 lines (46 sloc) 3.52 KB cdi Coherent Diffraction Imaging technique provides a reconstruction of image of a nanoscale structures. Refer to Wikipedia article CDI description for the technique details. Project summary: Implement and parallelize genetic algorithms and phase retrieval methods for Bragg CDI techniques. From a7e9d82d872ab2af8f6532008793401b1c36b0a4 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 15:10:00 -0600 Subject: [PATCH 219/336] Update cdi_window.sh --- bin/cdi_window.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/cdi_window.sh b/bin/cdi_window.sh index 50a7cb0..21fa991 100644 --- a/bin/cdi_window.sh +++ b/bin/cdi_window.sh @@ -6,5 +6,5 @@ p=${p//"anaconda2"/"anaconda3"} p=${p//"CXDUSER/anaconda"/"CXDUSER/CDI/anaconda"} export PATH=$p -export LD_LIBRARY_PATH=/home/beams/CXDUSER/CDI/libconfig/lib:/usr/local/lib:/home/beams/CXDUSER/CDI/arrayfire/lib64:/usr/lib64:/usr/nvvm/lib64 +export LD_LIBRARY_PATH=LIB_PATH python bin/cdi_window.py From f2249f90ed5dc742a6056ae454200279157f9ed6 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 15:11:08 -0600 Subject: [PATCH 220/336] Update everything.sh --- bin/everything.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/bin/everything.sh b/bin/everything.sh index fa8e682..0e54d97 100644 --- a/bin/everything.sh +++ b/bin/everything.sh @@ -6,8 +6,7 @@ p=${p//"anaconda2"/"anaconda3"} p=${p//"CXDUSER/anaconda"/"CXDUSER/CDI/anaconda"} export PATH=$p -export LD_LIBRARY_PATH=/home/beams/CXDUSER/CDI/libconfig/lib:/usr/local/lib:/home/beams/CXDUSER/CDI/arrayfire/lib64:/usr/lib64:/usr/nvvm/lib64 - +export LD_LIBRARY_PATH=LIB_PATH dev=$1 prefix=$2 scans=$3 From 131a44d8e853d0f48167c189ce7e53e7aa8dc3e3 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 15:11:55 -0600 Subject: [PATCH 221/336] Delete run_disp.py --- bin/run_disp.py | 183 ------------------------------------------------ 1 file changed, 183 deletions(-) delete mode 100755 bin/run_disp.py diff --git a/bin/run_disp.py b/bin/run_disp.py deleted file mode 100755 index 472c612..0000000 --- a/bin/run_disp.py +++ /dev/null @@ -1,183 +0,0 @@ -import reccdi.src_py.utilities.viz_util_xu as vu -import reccdi.src_py.utilities.utils as ut -import reccdi.src_py.utilities.parse_ver as ver -import argparse -import sys -import os -import numpy as np -from multiprocessing import Pool - -def printhello(): - print("Hello") - -def save_CX(conf, image, support, coh, save_dir): - print("setting geom") - #image = np.swapaxes(image, 1,2) - #image = np.swapaxes(image, 0,1) -# support = np.swapaxes(support, 1,2) -# support = np.swapaxes(support, 0,1) -# image, support = center(image, support) - params = vu.DispalyParams(conf) -# image = remove_ramp(image) - viz = vu.CXDViz() - viz.set_geometry(params, image.shape) - crop = get_crop(params, image.shape) - #viz.set_crop(crop[0], crop[1], crop[2]) # save image - - viz.add_array(np.abs(image), "imAmp", space='direct') - viz.add_array(np.angle(image), "imPh", space='direct') - image_file = os.path.join(save_dir, 'image') - #viz.write_structured_grid(image_file) - viz.write_directspace(image_file) - viz.clear_direct_arrays() - - viz.add_array(support, "support", space='direct') - support_file = os.path.join(save_dir, 'support') - #viz.write_structured_grid(support_file) - viz.write_directspace(support_file) - viz.clear_direct_arrays() - - if coh is not None: - coh = np.swapaxes(coh, 1, 2) - # investigate if pad_center before fft or after - coh = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(coh))).real - coh = ut.get_zero_padded_centered(coh, image.shape) - coh_file = os.path.join(save_dir, 'coherence') - viz.add_array(np.abs(coh), 'cohAmp', space='direct') - viz.add_array(np.angle(coh), 'cohPh', space='direct') - #viz.write_structured_grid(coh_file) - viz.write_directspace(coh_file) - viz.clear_direct_arrays() - -# a = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') -# remove_ramp(a, 3) - -def save_vtk(res_dir_conf): - print(res_dir_conf) - (res_dir, conf) = res_dir_conf - try: - imagefile = os.path.join(res_dir, 'image.npy') - image = np.load(imagefile) - except: - print ('cannot load "image.npy" file') - return - - try: - supportfile = os.path.join(res_dir, 'support.npy') - support = np.load(supportfile) - except: - print ('support file is missing in ' + res_dir + ' directory') - return - - try: - reciprocalfile = os.path.join(res_dir, 'reciprocal.npy') - reciprocal = np.load(reciprocalfile) - # reciprocal is saved as tif file, so no need to pass it to cx module - # saving amp, phase, and square of modulus in tif format - reciprocal_amp = np.absolute(reciprocal) - reciprocal_phase = np.angle(reciprocal) - reciprocal_sq_mod = np.power(reciprocal_amp, 2) - - ut.save_tif(reciprocal_amp, os.path.join(res_dir, 'reciprocal_amp.tif')) - ut.save_tif(reciprocal_phase, os.path.join(res_dir, 'reciprocal_phase.tif')) - ut.save_tif(reciprocal_sq_mod, os.path.join(res_dir, 'reciprocal_sq_mod.tif')) - except: - print ('info: cannot save reciprocal space') - - cohfile = os.path.join(res_dir, 'coherence.npy') - if os.path.isfile(cohfile): - coh = np.load(cohfile) - save_CX(conf, image, support, coh, res_dir) - else: - print("running CX") - printhello() - save_CX(conf, image, support, None, res_dir) - - -def to_vtk(experiment_dir, results_dir=None): - if not os.path.isdir(experiment_dir): - print("Please provide a valid experiment directory") - return - conf_dir = os.path.join(experiment_dir, 'conf') - conf = os.path.join(conf_dir, 'config_disp') - # verify configuration file - if not ver.ver_config_disp(conf): - print ('incorrect configuration file ' + conf +', cannot parse') - return - - # parse the conf once here and save it in dictionary, it will apply to all images in the directory tree - conf_dict = {} - try: - conf_map = ut.read_config(conf) - items = conf_map.items() - for item in items: - conf_dict[item[0]] = item[1] - except: - print('cannot parse configuration file ' + conf) - return - - # get last scan from the config file and add it to conf_dict - last_scan = None - main_conf = os.path.join(conf_dir, 'config') - if os.path.isfile(main_conf): - try: - config_map = ut.read_config(main_conf) - scan = config_map.scan - last_scan = scan.split('-')[-1] - conf_dict['last_scan'] = int(last_scan) - except: - print ("info: scan not determined, can't read " + conf + " configuration file") - - # get binning from the config_data file and add it to conf_dict - binning = None - data_conf = os.path.join(conf_dir, 'config_data') - if os.path.isfile(data_conf): - try: - conf_map = ut.read_config(data_conf) - conf_dict['binning'] = conf_map.binning - except: - pass - - no_gpus = 1 - rec_conf = os.path.join(conf_dir, 'config_rec') - if os.path.isfile(rec_conf): - try: - conf_map = ut.read_config(rec_conf) - device = conf_map.device - no_gpus = len(device) - except: - pass - - if results_dir is None: - results_dir = experiment_dir - # find directories with image.npy file - dirs = [] - for (dirpath, dirnames, filenames) in os.walk(results_dir): - for file in filenames: - print("file", file) - if file.endswith('image.npy'): - dirs.append((dirpath, conf_dict)) - - save_vtk(dirs[0]) -# with Pool(processes = no_gpus) as pool: -# pool.map_async(save_vtk, dirs) -# pool.close() -# pool.join() - - -def main(arg): - print ('preparing display') - parser = argparse.ArgumentParser() - parser.add_argument("experiment_dir", help="experiment directory") - parser.add_argument("--results_dir", help="directory in experiment that has a tree (or leaf) with reconstruction results which will be visualized") - args = parser.parse_args() - experiment_dir = args.experiment_dir - if args.results_dir: - to_vtk(experiment_dir, args.results_dir) - else: - to_vtk(experiment_dir) - -if __name__ == "__main__": - main(sys.argv[1:]) - -#python run_disp.py experiment_dir From e6e8a84e45fb8c9a203a1ed096745ec57b86b7ee Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 15:18:53 -0600 Subject: [PATCH 222/336] Update run_rec.sh --- bin/run_rec.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/run_rec.sh b/bin/run_rec.sh index 24725d2..c8ce957 100644 --- a/bin/run_rec.sh +++ b/bin/run_rec.sh @@ -6,8 +6,8 @@ p=${p//"anaconda2"/"anaconda3"} p=${p//"CXDUSER/anaconda"/"CXDUSER/CDI/anaconda"} export PATH=$p -export LD_LIBRARY_PATH=/home/beams/CXDUSER/CDI/libconfig/lib:/usr/local/lib:/home/beams/CXDUSER/CDI/arrayfire/lib64:/usr/lib64:/usr/nvvm/lib64 +export LD_LIBRARY_PATH=LIB_PATH python bin/run_rec.py $1 $2 -#python run_rec.py "opencl" \ No newline at end of file +#python run_rec.py "opencl" From f94e39ec6851b02248066c13d189a8adaaa375aa Mon Sep 17 00:00:00 2001 From: Service Account for David Cyl Date: Thu, 30 Jan 2020 15:24:44 -0600 Subject: [PATCH 223/336] added diffractometer class streamlined the CXDviz class made DisplayParams more complete. a bunch of test code is commented out instead of deleteled. Going to clean up after this commit. --- .gitignore | 2 + bin/run_disp_tvtk.py | 24 +- .../src_py/beamlines/aps_34id/detectors.py | 14 +- .../beamlines/aps_34id/diffractometer.py | 345 +------------ .../reccdi/src_py/utilities/utils.py | 1 + .../src_py/utilities/viz_util_recipdemo.py | 114 +++-- reccdi/src_py/beamlines/aps_34id/detectors.py | 14 +- .../beamlines/aps_34id/diffractometer.py | 347 +------------ reccdi/src_py/beamlines/aps_34id/viz.py | 460 ++++++++++++++++++ reccdi/src_py/utilities/utils.py | 1 + 10 files changed, 601 insertions(+), 721 deletions(-) create mode 100644 reccdi/src_py/beamlines/aps_34id/viz.py diff --git a/.gitignore b/.gitignore index 5a9239f..45bd879 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +build/* +core *.so *.pyx *.o diff --git a/bin/run_disp_tvtk.py b/bin/run_disp_tvtk.py index 18c57ba..9fe4e90 100755 --- a/bin/run_disp_tvtk.py +++ b/bin/run_disp_tvtk.py @@ -1,5 +1,5 @@ import reccdi.src_py.utilities.viz_util as vu -import reccdi.src_py.beamlines.aps_34id.diffractometer as dif +import reccdi.src_py.beamlines.aps_34id.viz as v import reccdi.src_py.utilities.utils as ut from reccdi.src_py.utilities.utils import measure import reccdi.src_py.utilities.parse_ver as ver @@ -10,7 +10,9 @@ from multiprocessing import Pool def save_CX(conf_dict, image, support, coh, save_dir): - params = dif.DispalyParams(conf_dict) + params = v.DispalyParams(conf_dict) + for k in params.__dict__: + print("params",k,params.__dict__[k]) # image = np.swapaxes(image, 1,2) # image = np.swapaxes(image, 0,1) # support = np.swapaxes(support, 1,2) @@ -20,15 +22,15 @@ def save_CX(conf_dict, image, support, coh, save_dir): print("remove phase ramp on image") image = vu.remove_ramp(image, ups=conf_dict['rampups']) print("set viz") - viz = dif.CXDViz() + viz = v.CXDViz() viz.set_geometry(params, image.shape) # crop = get_crop(params, image.shape) # viz.set_crop(crop[0], crop[1], crop[2]) # save image print("set im amps") - viz.add_array(abs(image), "imAmp", space='direct') + viz.add_ds_array(abs(image), "imAmp") print("set im phase") - viz.add_array(np.angle(image), "imPh", space='direct') + viz.add_ds_array(np.angle(image), "imPh") image_file = os.path.join(save_dir, 'image') print("write im") viz.write_directspace(image_file) @@ -36,7 +38,7 @@ def save_CX(conf_dict, image, support, coh, save_dir): print("set support") - viz.add_array(support, "support", space='direct') + viz.add_ds_array(support, "support") support_file = os.path.join(save_dir, 'support') print("write support") viz.write_directspace(support_file) @@ -46,8 +48,8 @@ def save_CX(conf_dict, image, support, coh, save_dir): coh = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(coh))) coh = ut.get_zero_padded_centered(coh, image.shape) coh_file = os.path.join(save_dir, 'coherence') - viz.add_array(np.abs(coh), 'cohAmp', space='direct') - viz.add_array(np.angle(coh), 'cohPh', space='direct') + viz.add_ds_array(np.abs(coh), 'cohAmp') + viz.add_ds_array(np.angle(coh), 'cohPh') viz.write_directspace(coh_file) viz.clear_direct_arrays() @@ -102,9 +104,9 @@ def to_vtk(experiment_dir, results_dir=None): conf_dir = os.path.join(experiment_dir, 'conf') conf = os.path.join(conf_dir, 'config_disp') # verify configuration file - if not ver.ver_config_disp(conf): - print ('incorrect configuration file ' + conf +', cannot parse') - return +# if not ver.ver_config_disp(conf): +# print ('incorrect configuration file ' + conf +', cannot parse') +# return # parse the conf once here and save it in dictionary, it will apply to all images in the directory tree conf_dict = {} diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/detectors.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/detectors.py index 44700f8..7d21f7a 100644 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/detectors.py +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/detectors.py @@ -15,21 +15,11 @@ class Detector(object): def __init__(self, det_name): self.det_name = det_name - def get_pixel(self): - return (1,1) - class Detector_34idcTIM2(Detector): name="34idcTIM2:" - pixel='(55.0e-6,55e-6)' - pixelorientation="(x+,y-)" #in xrayutilities notation + pixel=(55.0e-6,55e-6) + pixelorientation=('x+','y-') #in xrayutilities notation def __init__(self): super(Detector_34idcTIM2, self).__init__('34idcTIM2:') - def get_pixel(self): - return self.pixel - - def get_pixelorientation(self): - return self.pixelorientation - - diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/diffractometer.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/diffractometer.py index 01154e3..a0b078b 100644 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/diffractometer.py +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/diffractometer.py @@ -1,332 +1,27 @@ -# ######################################################################### -# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # -# # -# See LICENSE file. # -# ######################################################################### -import os -import numpy as np -import scipy.ndimage as ndi -import math as m -import pyevtk.hl as vtk -from tvtk.api import tvtk -import xrayutilities.experiment as xuexp -import reccdi.src_py.utilities.utils as ut -from reccdi.src_py.utilities.utils import measure -import reccdi.src_py.beamlines.aps_34id.spec as sput -import reccdi.src_py.beamlines.aps_34id.detectors as det +################################################################## +def getdiffclass(diffname, **args): + for cls in Diffractometer.__subclasses__(): + print(diffname.strip(),cls,cls.name) + if cls.name == diffname.strip(): + c=cls() + return c -__author__ = "Barbara Frosik" -__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." -__docformat__ = 'restructuredtext en' -class DispalyParams: - """ - This class encapsulates parameters defining image display. The parameters are -read from config file on construction or whereever they may exist. This class is -basically an information agglomerator for the viz generation. - """ +class Diffractometer(object): + name=None + def __init__(self, det_name): + self.det_name = det_name - def __init__(self, config): - """ - The constructor gets config file and fills out the class members. - Parameters - ---------- - conf : str - configuration file name - Returns - ------- - none - """ - deg2rad = np.pi / 180.0 - try: - specfile = config['specfile'] - last_scan = config['last_scan'] - #get stuff from the spec file. - delta, gamma, theta, phi, chi, scanmot, scanmot_del, detdist, detector, energy = sput.parse_spec(specfile, last_scan) - self.delta = delta - self.gamma = gamma - self.theta = theta - self.phi = phi - self.chi = chi - self.detdist = detdist - self.energy = energy - self.scanmot=scanmot - self.scanmot_del=scanmot_del - self.detector=detector +class Diffractometer_34idc(Diffractometer): + name="34idc" + sampleaxes=('y+','z-','x-') #in xrayutilities notation + detectoraxes=('y+','x-') + incidentaxis=(0,0,1) + sampleaxes_name=('th','chi','phi') #using the spec mnemonics for scan id. + detectoraxes_name=('delta','gamma') + def __init__(self): + super(Diffractometer_34idc, self).__init__('34idc') - except Exception as e: - pass - # override the parsed parameters with entries in config file - try: - self.energy = config['energy'] - except KeyError: - print("energy from specfile") - pass - try: - self.delta = config['delta'] - except KeyError: - pass - try: - self.gamma = config['gamma'] - except KeyError: - pass - try: - self.theta = config['theta'] - except KeyError: - pass - try: - self.phi = config['phi'] - except KeyError: - pass - try: - self.chi = config['chi'] - except KeyError: - pass - try: - self.scanmot = config['scanmot'] - except KeyError: - pass - try: - self.scanmot_del = config['scanmot_del'] - except KeyError: - pass - try: - self.detdist = config['arm'] - except KeyError: - pass - try: - self.detector = config['detector'] - except KeyError: - pass - try: - self.detector_obj=det.getdetclass(self.detector) - except: - self.detector_obj = None - - try: - pixel = self.detector_obj.get_pixel() - pixelorientation=self.detector_obj.get_pixelorientation() - except: - pass - try: - pixel = config['pixel'] - except KeyError: - pass - try: - pixelorientation = config['pixelorientation'] - except KeyError: - pass - - pixel = pixel[1:-1] - self.pixel = pixel.split(',') - self.pixel[0], self.pixel[1] = float(self.pixel[0]), float(self.pixel[1]) - self.pixelorientation=pixelorientation[1:-1].split(',') - - try: - self.binning = [] - binning = config['binning'] - for i in range(len(binning)): - self.binning.append(binning[i]) - for _ in range(3 - len(self.binning)): - self.binning.append(1) - except KeyError: - self.binning = [1,1,1] - try: - self.crop = [] - crop = config['crop'] - for i in range(len(crop)): - self.crop.append(crop[i]) - for _ in range(3 - len(self.crop)): - self.crop.append(1.0) - crop[0], crop[1] = crop[1], crop[0] - except KeyError: - self.crop = None - - -class CXDViz(): - - cropx = 0.5 - cropy = 0.5 - cropz = 0.5 - dir_arrs={} - recip_arrs={} - - def __init__(self): - self.imd = tvtk.ImageData() - self.sg = tvtk.StructuredGrid() - pass - - - #def set_geometry(self, lam, delta, gamma, dpx, dpy, dth): - @measure - def set_geometry(self, p, shape): - self.params = p - px = p.pixel[0]*p.binning[0] - py = p.pixel[1]*p.binning[1] - detdist=p.detdist/1000.0 #convert to meters - energy=p.energy*1000 #x-ray energy in eV - - print("running the xrayutilities version and tvtk") - self.qc=xuexp.QConversion(['y+','z-','x-'], ['y+','x-'],(0,0,1),en=energy) - #compute for 4pixel (2x2) detector - self.qc.init_area(p.pixelorientation[0],p.pixelorientation[1], shape[0],shape[1], 2,2, distance=detdist, pwidth1=px, pwidth2=py) - - #vtrans=np.vectorize(self.qc.transformSample2Lab) -# - q1=np.array(self.qc.area(p.theta,p.chi,p.phi,p.delta,p.gamma,deg=True)) - #qshape=q1.shape - #q1=np.array(vtrans([q1[0,:,:].ravel(),q1[1,:,:].ravel(),q1[2,:,:].ravel()],p.theta,p.chi,p.phi)).reshape(qshape) - if p.scanmot.strip()=='th': - q2=np.array(self.qc.area(p.theta+p.scanmot_del,p.chi,p.phi,p.delta,p.gamma,deg=True)) - # q2=np.array(self.qc.transformSample2Lab([q2[0,:,:],q1[1,:,:],q1[2,:,:]],p.theta+p.scanmot_del,p.chi,p.phi)) - elif p.scanmot.strip()=='chi': - q2=np.array(self.qc.area(p.theta,p.chi+p.scanmot_del,p.phi,p.delta,p.gamma,deg=True)) - # q2=np.array(self.qc.transformSample2Lab([q2[0,:,:],q1[1,:,:],q1[2,:,:]],p.theta,p.chi+p.scanmot_del,p.phi)) - elif p.scanmot.strip()=='phi': - q2=np.array(self.qc.area(p.theta,p.chi,p.phi+p.scanmot_del,p.delta,p.gamma,deg=True)) - # q2=np.array(self.qc.transformSample2Lab([q2[0,:,:],q1[1,:,:],q1[2,:,:]],p.theta,p.chi,p.phi+p.scanmot_del)) - #Astar=q1[:,1,0]-q1[:,0,0] - #Bstar=q1[:,0,1]-q1[:,0,0] - #Cstar=(q2-q1)[:,0,0] - Astar=q1[:,1,0]-q1[:,0,0] - Bstar=q1[:,0,1]-q1[:,0,0] - Cstar=(q2-q1)[:,0,0] - print("Recip") - print(Astar, Bstar, Cstar) - Astar=self.qc.transformSample2Lab(Astar, p.theta,p.chi,p.phi) - Bstar=self.qc.transformSample2Lab(Bstar, p.theta,p.chi,p.phi) - Cstar=self.qc.transformSample2Lab(Cstar, p.theta,p.chi,p.phi) - - - - denom = np.dot(Astar, np.cross(Bstar, Cstar)) - A = 2 * m.pi * np.cross(Bstar, Cstar) / denom - B = 2 * m.pi * np.cross(Cstar, Astar) / denom - C = 2 * m.pi * np.cross(Astar, Bstar) / denom - - self.Trecip = np.zeros(9) - self.Trecip.shape = (3, 3) - self.Trecip[:, 0] = Astar - self.Trecip[:, 1] = Bstar - self.Trecip[:, 2] = Cstar -# self.Trecip[:, 0] = [2,0,1] -# self.Trecip[:, 1] = [0,1,0] -# self.Trecip[:, 2] = [0,0,1] - print(self.Trecip) - - self.Tdir = np.zeros(9) - self.Tdir.shape = (3, 3) - self.Tdir = np.array((A, B, C)).transpose() - print("Direct") - print(A,B,C) - print(self.Tdir) - - self.dirspace_uptodate=0 - self.recipspace_uptodate=0 - - def update_dirspace(self, shape): - print("Updating dirspace coords") - dims = list(shape) - self.dxdir = 1.0 / shape[0] - self.dydir = 1.0 / shape[1] - self.dzdir = 1.0 / shape[2] - - r = np.mgrid[ - 0:dims[0] * self.dxdir:self.dxdir, \ - 0:dims[1] * self.dydir:self.dydir,\ - 0:dims[2] * self.dzdir:self.dzdir] -# r = np.mgrid[ -# 0:dims[0]*self.dxdir:self.dxdir, \ -# (dims[1]-1)*self.dydir:-self.dydir:-self.dydir,\ -# 0:dims[2]*self.dzdir:self.dzdir] - - origshape=r.shape - r.shape = 3, dims[0] * dims[1] * dims[2] - #r = r.transpose() - - self.dir_coords = np.dot(self.Tdir, r).transpose() - -# self.dir_coords = self.dir_coords.transpose() -# self.dir_coords.shape=origshape - print("dir shape", self.dir_coords.shape) - self.dirspace_uptodate=1 - - def update_recipspace(self, shape): - dims = list(shape) - q = np.mgrid[ 0:dims[0], 0:dims[1], 0:dims[2]] - - origshape=q.shape - q.shape = 3, dims[0] * dims[1] * dims[2] - - self.recip_coords = np.dot(self.Trecip, q) - self.recip_coords.shape=origshape - self.recipspace_uptodate=1 - - def clear_direct_arrays(self): - self.dir_arrs.clear() - def clear_recip_arrays(self): - self.recip_arrs.clear() - - @measure - def add_array(self, array, name, space='direct', logentry=None): - - #Need to add something to ensure arrays are all the same dimension. - #Need to add crop of viz output arrays - if len(array.shape) < 3: - newdims = list(array.shape) - for i in range(3 - len(newdims)): - newdims.append(1) - array.shape = tuple(newdims) - print("adding array of shape ", array.shape) - if space=='direct': - self.dir_arrs[name]=array - if (not self.dirspace_uptodate): - self.update_dirspace(array.shape) - elif space=='recip': - self.recip_arrs[name]=array - if (not self.recipspace_uptodate): - self.update_recipspace(array.shape) - else: - return - - def get_ds_structured_grid(self, **args): - arr0=self.dir_arrs[list(self.dir_arrs.keys())[0]] - dims = list(arr0.shape) - self.sg.points = self.dir_coords - for a in self.dir_arrs.keys(): - arr=tvtk.DoubleArray() - arr.from_array(self.dir_arrs[a].ravel()) - arr.name=a - self.sg.point_data.add_array(arr) - - self.sg.dimensions = (dims[2], dims[1], dims[0]) - self.sg.extent = 0, dims[2] - 1, 0, dims[1] - 1, 0, dims[0] - 1 - return self.sg - - def write_directspace(self, filename, **args): - sgwriter = tvtk.XMLStructuredGridWriter() - #sgwriter.file_type = 'binary' - if filename.endswith(".vtk"): - sgwriter.file_name = filename - else: - sgwriter.file_name = filename + '.vts' - sgwriter.set_input_data(self.get_ds_structured_grid()) - sgwriter.write() - print ('saved file', filename) - - @measure - def write_directspace_pyevtk(self, filename, **args): - print(self.dir_arrs.keys()) - vtk.gridToVTK(filename, self.dir_coords[0,:,:,:].copy(), \ - self.dir_coords[1,:,:,:].copy(), \ - self.dir_coords[2,:,:,:].copy(), pointData=self.dir_arrs) - vtk.imageToVTK(filename, pointData=self.dir_arrs) - - def write_recipspace_pyevtk(self, filename, **args): - vtk.gridToVTK(filename, self.recip_coords[0,:,:,:].copy(), \ - self.recip_coords[1,:,:,:].copy(), \ - self.recip_coords[2,:,:,:].copy(), pointData=self.recip_arrs) - vtk.imageToVTK(filename, pointData=self.recip_arrs) diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/utils.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/utils.py index 32a6a5f..8eb1c0f 100644 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/utils.py +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/utils.py @@ -87,6 +87,7 @@ def read_config(config): """ if os.path.isfile(config): + print(config) with open(config, 'r') as f: config_map = cfg.Config(f.read()) return config_map; diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util_recipdemo.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util_recipdemo.py index d66e5a5..c6566a8 100644 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util_recipdemo.py +++ b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util_recipdemo.py @@ -1,34 +1,80 @@ -if __name__ =="__main__": - import numpy as np - import math as m - import tifffile as tif - import tools as t - import viz_util as vu - import prep_noconfig as prep - - #binning of the data, this is not actually done, it's to account for previous binning in the saved data. - dbin1=1 - dbin2=1 - a=t.read_tif("cropped.tif").copy() #copy ensures array is contiguous which pyevtk needs - b=prep.read_scan("/Users/rharder/Desktop/cropped", None, None) - - tif.imsave("RawDiffraction.tif", b) - print("raw data",b.shape) - print("imagejsave",a.shape) - - #scan info. - lam=.137 #wavelength - delta=33.0*m.pi/180 #detector angle 1 - gamma=11.0*m.pi/180 #detector angle 2 - dpx=55e-6/0.5 #pixel size divided by detector dist - dpy=55e-6/0.5 - dth=0.01*m.pi/180 #rocking curve scan step. Everything in radians - - vr=vu.CXDViz() - vr.set_geometry(lam, delta, gamma, dbin1*dpx, dbin2*dpy, dth) - vr.add_array(b, "dp", space='recip') - - q=vr.recip_coords - qmag=np.sqrt(q[0,:,:,:]**2 + q[1,:,:,:]**2 + q[2,:,:,:]**2) - vr.add_array(qmag, "qmag", space='recip') #add a second property that can be used for color in viz. - vr.write_recipspace("RawDiffraction") +import numpy as np +import math as m +import tifffile as tif +import reccdi.src_py.utilities.utils as ut +import reccdi.src_py.beamlines.aps_34id.diffractometer as dif +import sys +import os + +conf_dir='/home/beams7/CXDUSER/34idc-work/2019/NX2019/SandboxTest/NX2019a-3_483/conf' +data_dir='/home/beams7/CXDUSER/34idc-work/2019/NX2019/SandboxTest/NX2019a-3_483/data' +conf = os.path.join(conf_dir, 'config_disp') +main_conf = os.path.join(conf_dir, 'config') + + # parse the conf once here and save it in dictionary, it will apply to all images in the directory tree +conf_dict = {} +try: + conf_map = ut.read_config(conf) + items = conf_map.items() + for item in items: + conf_dict[item[0]] = item[1] +except: + print('cannot parse configuration file ' + conf) + +if os.path.isfile(main_conf): + try: + config_map = ut.read_config(main_conf) + scan = config_map.scan + last_scan = scan.split('-')[-1] + conf_dict['last_scan'] = int(last_scan) + except: + print ("info: scan not determined, can't read " + conf + " configuration file") + +# get binning from the config_data file and add it to conf_dict +binning = None +data_conf = os.path.join(conf_dir, 'config_data') +if os.path.isfile(data_conf): + try: + conf_map = ut.read_config(data_conf) + conf_dict['binning'] = conf_map.binning + except: + pass + +print(conf_dict) + +arr=ut.read_tif(os.path.join(data_dir,'data.tif')) + +params=dif.DispalyParams(conf_dict) +viz=dif.CXDViz() +viz.set_geometry(params, arr.shape) +viz.add_array(arr, "dp", space='recip') + +viz.write_recipspace("test") +sys.exit() +''' +#binning of the data, this is not actually done, it's to account for previous binning in the saved data. +dbin1=1 +dbin2=1 +a=t.read_tif("cropped.tif").copy() #copy ensures array is contiguous which pyevtk needs +b=prep.read_scan("/Users/rharder/Desktop/cropped", None, None) + +tif.imsave("RawDiffraction.tif", b) +print("raw data",b.shape) +print("imagejsave",a.shape) + +#scan info. +lam=.137 #wavelength +delta=33.0*m.pi/180 #detector angle 1 +gamma=11.0*m.pi/180 #detector angle 2 +dpx=55e-6/0.5 #pixel size divided by detector dist +dpy=55e-6/0.5 +dth=0.01*m.pi/180 #rocking curve scan step. Everything in radians + +vr=vu.CXDViz() +vr.set_geometry(lam, delta, gamma, dbin1*dpx, dbin2*dpy, dth) + +q=vr.recip_coords +qmag=np.sqrt(q[0,:,:,:]**2 + q[1,:,:,:]**2 + q[2,:,:,:]**2) +vr.add_array(qmag, "qmag", space='recip') #add a second property that can be used for color in viz. +vr.write_recipspace("RawDiffraction") +''' diff --git a/reccdi/src_py/beamlines/aps_34id/detectors.py b/reccdi/src_py/beamlines/aps_34id/detectors.py index 44700f8..7d21f7a 100644 --- a/reccdi/src_py/beamlines/aps_34id/detectors.py +++ b/reccdi/src_py/beamlines/aps_34id/detectors.py @@ -15,21 +15,11 @@ class Detector(object): def __init__(self, det_name): self.det_name = det_name - def get_pixel(self): - return (1,1) - class Detector_34idcTIM2(Detector): name="34idcTIM2:" - pixel='(55.0e-6,55e-6)' - pixelorientation="(x+,y-)" #in xrayutilities notation + pixel=(55.0e-6,55e-6) + pixelorientation=('x+','y-') #in xrayutilities notation def __init__(self): super(Detector_34idcTIM2, self).__init__('34idcTIM2:') - def get_pixel(self): - return self.pixel - - def get_pixelorientation(self): - return self.pixelorientation - - diff --git a/reccdi/src_py/beamlines/aps_34id/diffractometer.py b/reccdi/src_py/beamlines/aps_34id/diffractometer.py index 62bb3b3..a0b078b 100644 --- a/reccdi/src_py/beamlines/aps_34id/diffractometer.py +++ b/reccdi/src_py/beamlines/aps_34id/diffractometer.py @@ -1,334 +1,27 @@ -# ######################################################################### -# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # -# # -# See LICENSE file. # -# ######################################################################### -import os -import numpy as np -import scipy.ndimage as ndi -import math as m -import pyevtk.hl as vtk -from tvtk.api import tvtk -import xrayutilities.experiment as xuexp -import reccdi.src_py.utilities.utils as ut -from reccdi.src_py.utilities.utils import measure -import reccdi.src_py.beamlines.aps_34id.spec as sput -import reccdi.src_py.beamlines.aps_34id.detectors as det +################################################################## +def getdiffclass(diffname, **args): + for cls in Diffractometer.__subclasses__(): + print(diffname.strip(),cls,cls.name) + if cls.name == diffname.strip(): + c=cls() + return c -__author__ = "Barbara Frosik" -__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." -__docformat__ = 'restructuredtext en' -class DispalyParams: - """ - This class encapsulates parameters defining image display. The parameters are -read from config file on construction or whereever they may exist. This class is -basically an information agglomerator for the viz generation. - """ +class Diffractometer(object): + name=None + def __init__(self, det_name): + self.det_name = det_name - def __init__(self, config): - """ - The constructor gets config file and fills out the class members. - Parameters - ---------- - conf : str - configuration file name - Returns - ------- - none - """ - deg2rad = np.pi / 180.0 - try: - specfile = config['specfile'] - last_scan = config['last_scan'] - #get stuff from the spec file. - delta, gamma, theta, phi, chi, scanmot, scanmot_del, detdist, detector, energy = sput.parse_spec(specfile, last_scan) - self.delta = delta - self.gamma = gamma - self.theta = theta - self.phi = phi - self.chi = chi - self.detdist = detdist - self.energy = energy - self.scanmot=scanmot - self.scanmot_del=scanmot_del - self.detector=detector +class Diffractometer_34idc(Diffractometer): + name="34idc" + sampleaxes=('y+','z-','x-') #in xrayutilities notation + detectoraxes=('y+','x-') + incidentaxis=(0,0,1) + sampleaxes_name=('th','chi','phi') #using the spec mnemonics for scan id. + detectoraxes_name=('delta','gamma') + def __init__(self): + super(Diffractometer_34idc, self).__init__('34idc') - except Exception as e: - pass - # override the parsed parameters with entries in config file - try: - self.energy = config['energy'] - except KeyError: - print("energy from specfile") - pass - try: - self.delta = config['delta'] - except KeyError: - pass - try: - self.gamma = config['gamma'] - except KeyError: - pass - try: - self.theta = config['theta'] - except KeyError: - pass - try: - self.phi = config['phi'] - except KeyError: - pass - try: - self.chi = config['chi'] - except KeyError: - pass - try: - self.scanmot = config['scanmot'] - except KeyError: - pass - try: - self.scanmot_del = config['scanmot_del'] - except KeyError: - pass - try: - self.detdist = config['arm'] - except KeyError: - pass - try: - self.detector = config['detector'] - except KeyError: - pass - try: - self.detector_obj=det.getdetclass(self.detector) - except: - self.detector_obj = None - - try: - pixel = self.detector_obj.get_pixel() - pixelorientation=self.detector_obj.get_pixelorientation() - except: - pass - try: - pixel = config['pixel'] - except KeyError: - pass - try: - pixelorientation = config['pixelorientation'] - except KeyError: - pass - - pixel = pixel[1:-1] - self.pixel = pixel.split(',') - self.pixel[0], self.pixel[1] = float(self.pixel[0]), float(self.pixel[1]) - self.pixelorientation=pixelorientation[1:-1].split(',') - - try: - self.binning = [] - binning = config['binning'] - for i in range(len(binning)): - self.binning.append(binning[i]) - for _ in range(3 - len(self.binning)): - self.binning.append(1) - except KeyError: - self.binning = [1,1,1] - try: - self.crop = [] - crop = config['crop'] - for i in range(len(crop)): - self.crop.append(crop[i]) - for _ in range(3 - len(self.crop)): - self.crop.append(1.0) - crop[0], crop[1] = crop[1], crop[0] - except KeyError: - self.crop = None - - -class CXDViz(): - - cropx = 0.5 - cropy = 0.5 - cropz = 0.5 - dir_arrs={} - recip_arrs={} - - def __init__(self): - self.imd = tvtk.ImageData() - self.sg = tvtk.StructuredGrid() - pass - - - #def set_geometry(self, lam, delta, gamma, dpx, dpy, dth): - @measure - def set_geometry(self, p, shape): - self.params = p - px = p.pixel[0]*p.binning[0] - py = p.pixel[1]*p.binning[1] - detdist=p.detdist/1000.0 #convert to meters - energy=p.energy*1000 #x-ray energy in eV - - print("running the xrayutilities version and tvtk") - #could probably put the diffractometer specification into the config file as well. - #the y+ z- x- y+ x- describes 34idc. Could even make a diffractometer class that defines this. - self.qc=xuexp.QConversion(['y+','z-','x-'], ['y+','x-'],(0,0,1),en=energy) - #compute for 4pixel (2x2) detector - self.qc.init_area(p.pixelorientation[0],p.pixelorientation[1], shape[0],shape[1], 2,2, distance=detdist, pwidth1=px, pwidth2=py) - - #vtrans=np.vectorize(self.qc.transformSample2Lab) -# - q1=np.array(self.qc.area(p.theta,p.chi,p.phi,p.delta,p.gamma,deg=True)) - #qshape=q1.shape - #q1=np.array(vtrans([q1[0,:,:].ravel(),q1[1,:,:].ravel(),q1[2,:,:].ravel()],p.theta,p.chi,p.phi)).reshape(qshape) - if p.scanmot.strip()=='th': - q2=np.array(self.qc.area(p.theta+p.scanmot_del,p.chi,p.phi,p.delta,p.gamma,deg=True)) - # q2=np.array(self.qc.transformSample2Lab([q2[0,:,:],q1[1,:,:],q1[2,:,:]],p.theta+p.scanmot_del,p.chi,p.phi)) - elif p.scanmot.strip()=='chi': - q2=np.array(self.qc.area(p.theta,p.chi+p.scanmot_del,p.phi,p.delta,p.gamma,deg=True)) - # q2=np.array(self.qc.transformSample2Lab([q2[0,:,:],q1[1,:,:],q1[2,:,:]],p.theta,p.chi+p.scanmot_del,p.phi)) - elif p.scanmot.strip()=='phi': - q2=np.array(self.qc.area(p.theta,p.chi,p.phi+p.scanmot_del,p.delta,p.gamma,deg=True)) - # q2=np.array(self.qc.transformSample2Lab([q2[0,:,:],q1[1,:,:],q1[2,:,:]],p.theta,p.chi,p.phi+p.scanmot_del)) - #Astar=q1[:,1,0]-q1[:,0,0] - #Bstar=q1[:,0,1]-q1[:,0,0] - #Cstar=(q2-q1)[:,0,0] - Astar=q1[:,1,0]-q1[:,0,0] - Bstar=q1[:,0,1]-q1[:,0,0] - Cstar=(q2-q1)[:,0,0] - print("Recip") - print(Astar, Bstar, Cstar) - Astar=self.qc.transformSample2Lab(Astar, p.theta,p.chi,p.phi) - Bstar=self.qc.transformSample2Lab(Bstar, p.theta,p.chi,p.phi) - Cstar=self.qc.transformSample2Lab(Cstar, p.theta,p.chi,p.phi) - - - - denom = np.dot(Astar, np.cross(Bstar, Cstar)) - A = 2 * m.pi * np.cross(Bstar, Cstar) / denom - B = 2 * m.pi * np.cross(Cstar, Astar) / denom - C = 2 * m.pi * np.cross(Astar, Bstar) / denom - - self.Trecip = np.zeros(9) - self.Trecip.shape = (3, 3) - self.Trecip[:, 0] = Astar - self.Trecip[:, 1] = Bstar - self.Trecip[:, 2] = Cstar -# self.Trecip[:, 0] = [2,0,1] -# self.Trecip[:, 1] = [0,1,0] -# self.Trecip[:, 2] = [0,0,1] - print(self.Trecip) - - self.Tdir = np.zeros(9) - self.Tdir.shape = (3, 3) - self.Tdir = np.array((A, B, C)).transpose() - print("Direct") - print(A,B,C) - print(self.Tdir) - - self.dirspace_uptodate=0 - self.recipspace_uptodate=0 - - def update_dirspace(self, shape): - print("Updating dirspace coords") - dims = list(shape) - self.dxdir = 1.0 / shape[0] - self.dydir = 1.0 / shape[1] - self.dzdir = 1.0 / shape[2] - - r = np.mgrid[ - 0:dims[0] * self.dxdir:self.dxdir, \ - 0:dims[1] * self.dydir:self.dydir,\ - 0:dims[2] * self.dzdir:self.dzdir] -# r = np.mgrid[ -# 0:dims[0]*self.dxdir:self.dxdir, \ -# (dims[1]-1)*self.dydir:-self.dydir:-self.dydir,\ -# 0:dims[2]*self.dzdir:self.dzdir] - - origshape=r.shape - r.shape = 3, dims[0] * dims[1] * dims[2] - #r = r.transpose() - - self.dir_coords = np.dot(self.Tdir, r).transpose() - -# self.dir_coords = self.dir_coords.transpose() -# self.dir_coords.shape=origshape - print("dir shape", self.dir_coords.shape) - self.dirspace_uptodate=1 - - def update_recipspace(self, shape): - dims = list(shape) - q = np.mgrid[ 0:dims[0], 0:dims[1], 0:dims[2]] - - origshape=q.shape - q.shape = 3, dims[0] * dims[1] * dims[2] - - self.recip_coords = np.dot(self.Trecip, q) - self.recip_coords.shape=origshape - self.recipspace_uptodate=1 - - def clear_direct_arrays(self): - self.dir_arrs.clear() - def clear_recip_arrays(self): - self.recip_arrs.clear() - - @measure - def add_array(self, array, name, space='direct', logentry=None): - - #Need to add something to ensure arrays are all the same dimension. - #Need to add crop of viz output arrays - if len(array.shape) < 3: - newdims = list(array.shape) - for i in range(3 - len(newdims)): - newdims.append(1) - array.shape = tuple(newdims) - print("adding array of shape ", array.shape) - if space=='direct': - self.dir_arrs[name]=array - if (not self.dirspace_uptodate): - self.update_dirspace(array.shape) - elif space=='recip': - self.recip_arrs[name]=array - if (not self.recipspace_uptodate): - self.update_recipspace(array.shape) - else: - return - - def get_ds_structured_grid(self, **args): - arr0=self.dir_arrs[list(self.dir_arrs.keys())[0]] - dims = list(arr0.shape) - self.sg.points = self.dir_coords - for a in self.dir_arrs.keys(): - arr=tvtk.DoubleArray() - arr.from_array(self.dir_arrs[a].ravel()) - arr.name=a - self.sg.point_data.add_array(arr) - - self.sg.dimensions = (dims[2], dims[1], dims[0]) - self.sg.extent = 0, dims[2] - 1, 0, dims[1] - 1, 0, dims[0] - 1 - return self.sg - - def write_directspace(self, filename, **args): - sgwriter = tvtk.XMLStructuredGridWriter() - #sgwriter.file_type = 'binary' - if filename.endswith(".vtk"): - sgwriter.file_name = filename - else: - sgwriter.file_name = filename + '.vts' - sgwriter.set_input_data(self.get_ds_structured_grid()) - sgwriter.write() - print ('saved file', filename) - - @measure - def write_directspace_pyevtk(self, filename, **args): - print(self.dir_arrs.keys()) - vtk.gridToVTK(filename, self.dir_coords[0,:,:,:].copy(), \ - self.dir_coords[1,:,:,:].copy(), \ - self.dir_coords[2,:,:,:].copy(), pointData=self.dir_arrs) - vtk.imageToVTK(filename, pointData=self.dir_arrs) - - def write_recipspace_pyevtk(self, filename, **args): - vtk.gridToVTK(filename, self.recip_coords[0,:,:,:].copy(), \ - self.recip_coords[1,:,:,:].copy(), \ - self.recip_coords[2,:,:,:].copy(), pointData=self.recip_arrs) - vtk.imageToVTK(filename, pointData=self.recip_arrs) diff --git a/reccdi/src_py/beamlines/aps_34id/viz.py b/reccdi/src_py/beamlines/aps_34id/viz.py new file mode 100644 index 0000000..0ec46ef --- /dev/null +++ b/reccdi/src_py/beamlines/aps_34id/viz.py @@ -0,0 +1,460 @@ +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + +import os +import sys +import numpy as np +import scipy.ndimage as ndi +import math as m +import pyevtk.hl as vtk +from tvtk.api import tvtk +import xrayutilities.experiment as xuexp +import reccdi.src_py.utilities.utils as ut +from reccdi.src_py.utilities.utils import measure +import reccdi.src_py.beamlines.aps_34id.spec as sput +import reccdi.src_py.beamlines.aps_34id.detectors as det +import reccdi.src_py.beamlines.aps_34id.diffractometer as diff + +__author__ = "Barbara Frosik" +__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." +__docformat__ = 'restructuredtext en' + +class DispalyParams: + """ + This class encapsulates parameters defining image display. The parameters are +read from config file on construction or whereever they may exist. This class is +basically an information agglomerator for the viz generation. + """ + + def __init__(self, config): + """ + The constructor gets config file and fills out the class members. + + Parameters + ---------- + conf : str + configuration file name + + Returns + ------- + none + """ + deg2rad = np.pi / 180.0 + try: + specfile = config['specfile'] + last_scan = config['last_scan'] + #get stuff from the spec file. + delta, gamma, th, phi, chi, scanmot, scanmot_del, detdist, detector, energy = sput.parse_spec(specfile, last_scan) + self.delta = delta + self.gamma = gamma + self.th = th + self.phi = phi + self.chi = chi + self.detdist = detdist + self.energy = energy + self.scanmot=scanmot + self.scanmot_del=scanmot_del + self.detector=detector + + except Exception as e: + pass + # override the parsed parameters with entries in config file + try: + self.energy = config['energy'] + except KeyError: + print("energy from specfile") + pass + try: + self.diffractometer=config['diffractometer'] + except KeyError: + pass + try: + print("in params",self.diffractometer) + self.diffractometer_obj=diff.getdiffclass(self.diffractometer) + except: + print("Unexpected error:", sys.exc_info()[0]) + self.diffractometer_obj=None + try: + #this may not need to be in a try block + for attr in self.diffractometer_obj.__class__.__dict__.keys(): + print("atr", attr) + if not attr.startswith('__'): + self.__dict__[attr]=self.diffractometer_obj.__class__.__dict__[attr] + for attr in self.diffractometer_obj.__dict__.keys(): + print("atr", attr) + if not attr.startswith('__'): + self.__dict__[attr]=self.diffractometer_obj.__dict__[attr] + except: + pass + try: +# saxes=[] +# print(config['sampleaxes'], type(config['sampleaxes'])) +# for a in config['sampleaxes'][1:-1].split(','): +# saxes.append(a.split("\'")[1]) +# self.sampleaxes = saxes + self.sampleaxes=tuple(config['sampleaxes']) + except KeyError: + pass + try: +# daxes=[] +# for a in config['detectoraxes'][1:-1].split(','): +# daxes.append(a.split("\'")[1]) +# self.detectoraxes = daxes + self.detectoraxes = tuple(config['detectoraxes']) + except KeyError: + pass + try: + #self.sampleaxes_name = config['sampleaxes_name'][1:-1].split(',') + self.sampleaxes_name = tuple(config['sampleaxes_name']) + except KeyError: + pass + try: + #self.detectoraxes_name = config['detectoraxes_name'][1:-1].split(',') + self.detectoraxes_name = tuple(config['detectoraxes_name']) + except KeyError: + pass + try: + #self.incidentaxis = config['incidentaxis'][1:-1].split(',') + self.incidentaxis = tuple(config['incidentaxis']) + except KeyError: + pass + #axes are set from the spec file, but if they are specified in the runs config file + #the vals from config take precedence. + for axes in self.detectoraxes_name: + if axes in config: + self.__dict__[axes] = config[axes] + for axes in self.sampleaxes_name: + if axes in config: + self.__dict__[axes] = config[axes] + + try: + self.scanmot = config['scanmot'] + except KeyError: + pass + try: + self.scanmot_del = config['scanmot_del'] + except KeyError: + pass + + try: + self.detector = config['detector'] + except KeyError: + pass + try: + self.detector_obj=det.getdetclass(self.detector) + except: + self.detector_obj = None + + try: + #this may not need to be in a try block + for attr in self.detector_obj.__class__.__dict__.keys(): + if not attr.startswith('__'): + self.__dict__[attr]=self.detector_obj.__class__.__dict__[attr] + for attr in self.detector_obj.__dict__.keys(): + if not attr.startswith('__'): + self.__dict__[attr]=self.detector_obj.__dict__[attr] +# self.sampleaxes=self.diffractometer_obj.sampleaxes +# self.detectoraxes=self.diffractometer_obj.detectoraxes +# self.sampleaxes_name=self.diffractometer_obj.sampleaxes_name +# self.detectoraxes_name=self.diffractometer_obj.detectoraxes_name + except: + pass + + try: + #pixorient=[] + #for a in config['pixelorientation'][1:-1].split(','): + # pixorient.append(a.split("\'")[1]) + self.pixelorientation = tuple(config['pixelorientation']) + except KeyError: + pass + + try: + #self.pixel = config['pixel'][1:-1].split(',') + self.pixel = tuple(config['pixel']) + except KeyError: + pass + + try: + self.binning = [] + binning = config['binning'] + for i in range(len(binning)): + self.binning.append(binning[i]) + for _ in range(3 - len(self.binning)): + self.binning.append(1) + except KeyError: + self.binning = [1,1,1] + try: + self.crop = [] + crop = config['crop'] + for i in range(len(crop)): + self.crop.append(crop[i]) + for _ in range(3 - len(self.crop)): + self.crop.append(1.0) + crop[0], crop[1] = crop[1], crop[0] + except KeyError: + self.crop = None + + +class CXDViz(): + + cropx = 0.5 + cropy = 0.5 + cropz = 0.5 + dir_arrs={} + recip_arrs={} + + def __init__(self): + self.imd = tvtk.ImageData() + self.sg = tvtk.StructuredGrid() + self.recipsg = tvtk.StructuredGrid() + pass + + + #def set_geometry(self, lam, delta, gamma, dpx, dpy, dth): + @measure + def set_geometry(self, p, shape): + self.params = p + px = p.pixel[0]*p.binning[0] + py = p.pixel[1]*p.binning[1] + detdist=p.detdist/1000.0 #convert to meters + scanmot=p.scanmot.strip() + enfix=1 + #if energy is given in kev convert to ev for xrayutilities + if m.floor(m.log10(p.energy)) < 3: + enfix=1000 + energy=p.energy*enfix #x-ray energy in eV + print("energy", energy) + + print("running the new xrayutilities version and tvtk") +# self.qc=xuexp.QConversion(['y+','z-','x-'], ['y+','x-'],(0,0,1),en=energy) + #if scanmot is energy then we need to init Qconversion with an array. + #thinking about making everything an array by default + if scanmot=='en': + scanen=np.array( (energy,energy+p.scanmot_del*enfix)) + else: + scanen=np.array( (energy,) ) + self.qc=xuexp.QConversion(p.sampleaxes, p.detectoraxes,p.incidentaxis,en=scanen) + + + #compute for 4pixel (2x2) detector + self.qc.init_area(p.pixelorientation[0],p.pixelorientation[1], shape[0],shape[1], 2,2, distance=detdist, pwidth1=px, pwidth2=py) + + #make arrays from th,phi,chi. Get dQ in single call to qc.area + #will work for both angle and energy scans then. Just need to learn the ordering of axes + + #q1=np.array(self.qc.area(p.th,p.chi,p.phi,p.delta,p.gamma,deg=True)) + #qshape=q1.shape + #q1=np.array(vtrans([q1[0,:,:].ravel(),q1[1,:,:].ravel(),q1[2,:,:].ravel()],p.theta,p.chi,p.phi)).reshape(qshape) + #I think q2 will always be (3,2,2,2) (vec, scanarr, px, py) + + + + #should put some try except around this in case something goes wrong. + if scanmot=='en': + q2=np.array(self.qc.area(p.th, p.chi,p.phi,p.delta,p.gamma,deg=True)) + elif scanmot in p.sampleaxes_name: + args=[] + axisindex=p.sampleaxes_name.index(scanmot) + for n in range(len(p.sampleaxes_name)): + if n==axisindex: + scanstart=p.__dict__[scanmot] + args.append(np.array( (scanstart,scanstart+p.scanmot_del) )) + else: + args.append( p.__dict__[p.sampleaxes_name[n]] ) + for axis in p.detectoraxes_name: + args.append( p.__dict__[axis] ) + print("args", args) + q2=np.array(self.qc.area( *args,deg=True)) + else: + print("scanmot not in sample axes or energy") + +# if p.scanmot.strip()=='th': +# scanarr=np.array( (p.th, p.th+p.scanmot_del) ) +# q2=np.array(self.qc.area( *(scanarr, p.chi,p.phi,p.delta,p.gamma),deg=True)) +# q2=np.array(self.qc.area(p.th+p.scanmot_del, p.chi,p.phi,p.delta,p.gamma,deg=True)) + # q2=np.array(self.qc.transformSample2Lab([q2[0,:,:],q1[1,:,:],q1[2,:,:]],p.theta+p.scanmot_del,p.chi,p.phi)) +# elif p.scanmot.strip()=='chi': +# scanarr=np.array( (p.chi, p.chi+p.scanmot_del) ) +# q2=np.array(self.qc.area(p.th, scanarr, p.phi,p.delta,p.gamma,deg=True)) +# # q2=np.array(self.qc.transformSample2Lab([q2[0,:,:],q1[1,:,:],q1[2,:,:]],p.theta,p.chi+p.scanmot_del,p.phi)) +# elif p.scanmot.strip()=='phi': +# scanarr=np.array( (p.phi, p.phi+p.scanmot_del) ) +# q2=np.array(self.qc.area(p.th,p.chi,scanarr,p.delta,p.gamma,deg=True)) +# # q2=np.array(self.qc.transformSample2Lab([q2[0,:,:],q1[1,:,:],q1[2,:,:]],p.theta,p.chi,p.phi+p.scanmot_del)) + print("q2", q2.shape) + Astar=q2[:,0,1,0]-q2[:,0,0,0] + Bstar=q2[:,0,0,1]-q2[:,0,0,0] + Cstar=q2[:,1,0,0]-q2[:,0,0,0] + +# Astar=q1[:,1,0]-q1[:,0,0] +# Bstar=q1[:,0,1]-q1[:,0,0] +# Cstar=(q2-q1)[:,0,0] + print("Recip") + print(Astar, Bstar, Cstar) + Astar=self.qc.transformSample2Lab(Astar, p.th,p.chi,p.phi)*10.0 #convert to inverse nm. + Bstar=self.qc.transformSample2Lab(Bstar, p.th,p.chi,p.phi)*10.0 + Cstar=self.qc.transformSample2Lab(Cstar, p.th,p.chi,p.phi)*10.0 + print(Astar, Bstar, Cstar) + + denom = np.dot(Astar, np.cross(Bstar, Cstar)) + A = 2 * m.pi * np.cross(Bstar, Cstar) / denom + B = 2 * m.pi * np.cross(Cstar, Astar) / denom + C = 2 * m.pi * np.cross(Astar, Bstar) / denom + + self.Trecip = np.zeros(9) + self.Trecip.shape = (3, 3) + self.Trecip[:, 0] = Astar + self.Trecip[:, 1] = Bstar + self.Trecip[:, 2] = Cstar + print(self.Trecip) + + self.Tdir = np.zeros(9) + self.Tdir.shape = (3, 3) + self.Tdir = np.array((A, B, C)).transpose() + print("Direct") + print(A,B,C) + print(self.Tdir) + + self.dirspace_uptodate=0 + self.recipspace_uptodate=0 + + def update_dirspace(self, shape): + print("Updating dirspace coords") + dims = list(shape) + self.dxdir = 1.0 / shape[0] + self.dydir = 1.0 / shape[1] + self.dzdir = 1.0 / shape[2] + + r = np.mgrid[ + 0:dims[0] * self.dxdir:self.dxdir, \ + 0:dims[1] * self.dydir:self.dydir,\ + 0:dims[2] * self.dzdir:self.dzdir] +# r = np.mgrid[ +# 0:dims[0]*self.dxdir:self.dxdir, \ +# (dims[1]-1)*self.dydir:-self.dydir:-self.dydir,\ +# 0:dims[2]*self.dzdir:self.dzdir] + + origshape=r.shape + r.shape = 3, dims[0] * dims[1] * dims[2] + #r = r.transpose() + + self.dir_coords = np.dot(self.Tdir, r).transpose() + +# self.dir_coords = self.dir_coords.transpose() +# self.dir_coords.shape=origshape + print("dir shape", self.dir_coords.shape) + self.dirspace_uptodate=1 + + def update_recipspace(self, shape): + dims = list(shape) + q = np.mgrid[ 0:dims[0], 0:dims[1], 0:dims[2]] + + origshape=q.shape + q.shape = 3, dims[0] * dims[1] * dims[2] + + self.recip_coords = np.dot(self.Trecip, q).transpose() + #self.recip_coords.shape=origshape + self.recipspace_uptodate=1 + + def clear_direct_arrays(self): + self.dir_arrs.clear() + def clear_recip_arrays(self): + self.recip_arrs.clear() + + @measure + def add_ds_array(self, array, name, logentry=None): + + #Need to add something to ensure arrays are all the same dimension. + #Need to add crop of viz output arrays + if len(array.shape) < 3: + newdims = list(array.shape) + for i in range(3 - len(newdims)): + newdims.append(1) + array.shape = tuple(newdims) + print("adding array of shape ", array.shape) + self.dir_arrs[name]=array + if (not self.dirspace_uptodate): + self.update_dirspace(array.shape) + + @measure + def add_rs_array(self, array, name, logentry=None): + + #Need to add something to ensure arrays are all the same dimension. + #Need to add crop of viz output arrays + if len(array.shape) < 3: + newdims = list(array.shape) + for i in range(3 - len(newdims)): + newdims.append(1) + array.shape = tuple(newdims) + print("adding array of shape ", array.shape) + self.recip_arrs[name]=array + if (not self.recipspace_uptodate): + self.update_recipspace(array.shape) + + + def get_ds_structured_grid(self, **args): + arr0=self.dir_arrs[list(self.dir_arrs.keys())[0]] + dims = list(arr0.shape) + self.sg.points = self.dir_coords + for a in self.dir_arrs.keys(): + arr=tvtk.DoubleArray() + arr.from_array(self.dir_arrs[a].ravel()) + arr.name=a + self.sg.point_data.add_array(arr) + + self.sg.dimensions = (dims[2], dims[1], dims[0]) + self.sg.extent = 0, dims[2] - 1, 0, dims[1] - 1, 0, dims[0] - 1 + return self.sg + + def get_rs_structured_grid(self, **args): + arr0=self.recip_arrs[list(self.recip_arrs.keys())[0]] + dims = list(arr0.shape) + self.recipsg.points = self.recip_coords + for a in self.recip_arrs.keys(): + arr=tvtk.DoubleArray() + arr.from_array(self.recip_arrs[a].ravel()) + arr.name=a + self.recipsg.point_data.add_array(arr) + + self.recipsg.dimensions = (dims[2], dims[1], dims[0]) + self.recipsg.extent = 0, dims[2] - 1, 0, dims[1] - 1, 0, dims[0] - 1 + return self.recipsg + + def write_directspace(self, filename, **args): + sgwriter = tvtk.XMLStructuredGridWriter() + #sgwriter.file_type = 'binary' + if filename.endswith(".vtk"): + sgwriter.file_name = filename + else: + sgwriter.file_name = filename + '.vts' + sgwriter.set_input_data(self.get_ds_structured_grid()) + sgwriter.write() + print ('saved file', filename) + + def write_recipspace(self, filename, **args): + sgwriter = tvtk.XMLStructuredGridWriter() + #sgwriter.file_type = 'binary' + if filename.endswith(".vtk"): + sgwriter.file_name = filename + else: + sgwriter.file_name = filename + '.vts' + sgwriter.set_input_data(self.get_rs_structured_grid()) + sgwriter.write() + print ('saved file', filename) + + @measure + def write_directspace_pyevtk(self, filename, **args): + print(self.dir_arrs.keys()) + vtk.gridToVTK(filename, self.dir_coords[0,:,:,:].copy(), \ + self.dir_coords[1,:,:,:].copy(), \ + self.dir_coords[2,:,:,:].copy(), pointData=self.dir_arrs) + vtk.imageToVTK(filename, pointData=self.dir_arrs) + + def write_recipspace_pyevtk(self, filename, **args): + vtk.gridToVTK(filename, self.recip_coords[0,:,:,:].copy(), \ + self.recip_coords[1,:,:,:].copy(), \ + self.recip_coords[2,:,:,:].copy(), pointData=self.recip_arrs) + vtk.imageToVTK(filename, pointData=self.recip_arrs) diff --git a/reccdi/src_py/utilities/utils.py b/reccdi/src_py/utilities/utils.py index 32a6a5f..8eb1c0f 100644 --- a/reccdi/src_py/utilities/utils.py +++ b/reccdi/src_py/utilities/utils.py @@ -87,6 +87,7 @@ def read_config(config): """ if os.path.isfile(config): + print(config) with open(config, 'r') as f: config_map = cfg.Config(f.read()) return config_map; From b5538ea54508a41fb67edec768181702cbf73153 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 15:40:14 -0600 Subject: [PATCH 224/336] Delete prep.py --- .../reccdi/src_py/beamlines/aps_34id/prep.py | 288 ------------------ 1 file changed, 288 deletions(-) delete mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/beamlines/aps_34id/prep.py diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/beamlines/aps_34id/prep.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/beamlines/aps_34id/prep.py deleted file mode 100644 index d6ddd0c..0000000 --- a/build/lib.linux-x86_64-2.7/reccdi/src_py/beamlines/aps_34id/prep.py +++ /dev/null @@ -1,288 +0,0 @@ -import pylibconfig2 as cfg -import numpy as np -import copy -import scipy.fftpack as sf -import os -import glob -import tifffile as tif -import reccdi.src_py.utilities.spec as spec -import reccdi.src_py.utilities.utils as ut - - -def get_dir_list(scans, map): - """ - Returns list of sub-directories in data_dir with names matching range of scans - It will exclude scans within exclude_scans list if provided, and directories with fewer files than - min_files, if provided - :param scans: - :param map: - :return: - """ - try: - min_files = map.min_files - except: - min_files = 0 - try: - exclude_scans = map.exclude_scans - except: - exclude_scans = [] - try: - data_dir = map.data_dir.strip() - except: - print ('please provide data_dir') - return - - dirs = [] - for name in os.listdir(data_dir): - subdir = os.path.join(data_dir, name) - if os.path.isdir(subdir): - # exclude directories with fewer tif files than min_files - if len(glob.glob1(subdir, "*.tif")) < min_files and len(glob.glob1(subdir, "*.tiff")) < min_files: - continue - try: - index = int(name[-4:]) - if index >= scans[0] and index <= scans[1] and not index in exclude_scans: - dirs.append(subdir) - except: - continue - return dirs - - -def get_dark_white(darkfile, whitefile, det_area1, det_area2): - if darkfile is not None: - # find the darkfield array - dark_full = tif.imread(darkfile).astype(float) - # crop the corresponding quad or use the whole array, depending on what info was parsed from spec file - dark = dark_full[slice(det_area1[0], det_area1[0] + det_area1[1]), slice(det_area2[0], det_area2[0] + det_area2[1])] - else: - dark = None - - if whitefile is not None: - # find the whitefield array - white_full = tif.imread(whitefile).astype(float) - # crop the corresponding quad or use the whole array, depending on what info was parsed from spec file - white = white_full[slice(det_area1[0], det_area1[0] + det_area1[1]), slice(det_area2[0], det_area2[0] + det_area2[1])] - # set the bad pixels to some large value - white = np.where(white<5000, 1e20, white) #Some large value - else: - white = None - - return dark, white - - -def get_normalized_slice(file, dark, white): - # file is a tuple of slice and either background slice or None - slice = tif.TiffFile(file[0]).asarray() - if file[1] is not None: - slice = slice - tif.TiffFile(file[1]).asarray() - if dark is not None: - slice = np.where(dark > 5, 0, slice) #Ignore cosmic rays - # here would be code for correction for dead time - if white is not None: - slice = slice/white - slice *= 1e5 #Some medium value - slice = np.where(np.isnan(slice), 0, slice) - return slice - - -def read_scan(dir, dark, white): - files = [] - files_dir = {} - for file in os.listdir(dir): - if file.endswith('tif') or file.endswith('tiff'): - temp = file.split('.') - #it's assumed that the files end with four digits and 'tif' or 'tiff' extension - key = temp[0][-4:] - files_dir[key] = file - - ordered_keys = sorted(list(files_dir.keys())) - - for key in ordered_keys: - file = files_dir[key] - file = os.path.join(dir, file) - bg_file = file.replace('.tif', '_bg.tif') - if not os.path.isfile(bg_file): - bg_file = None - - files.append((file, bg_file)) - - # look at slice0 to find out shape - n = 0 - slice0 = get_normalized_slice(files[n], dark, white) - shape = (slice0.shape[0], slice0.shape[1], len(files)) - arr = np.zeros(shape, dtype=slice0.dtype) - arr[:,:,0] = slice0 - - #for i in range (1, len(files)): - for file in files[1:]: - n = n + 1 - slice = get_normalized_slice(file, dark, white) - arr[:,:,n] = slice - return arr - - -def shift(arr, shifty): - # pass the FT of the fftshifted array you want to shift - # you get back the actual array, not the FT. - dims = arr.shape - # scipy does normalize ffts! - ftarr = sf.fftn(arr) - r=[] - for d in dims: - r.append(slice(int(np.ceil(-d/2.)), int(np.ceil(d/2.)), None)) - idxgrid = np.mgrid[r] - for d in range(len(dims)): - ftarr *= np.exp(-1j*2*np.pi*shifty[d]*sf.fftshift(idxgrid[d])/float(dims[d])) - - shifted_arr = sf.ifftn(ftarr) - return shifted_arr - - -def combine_part(part_f, slice_sum, refpart, part): - # get cross correlation and pixel shift - cross_correlation = sf.ifftn(refpart*np.conj(part_f)) - corelated = np.array(cross_correlation.shape) - amp = np.abs(cross_correlation) - intshift = np.unravel_index(amp.argmax(), corelated) - shifted = np.array(intshift) - pixelshift = np.where(shifted>=corelated/2, shifted-corelated, shifted) - return slice_sum + shift(part, pixelshift) - - -def fit(arr, det_area1, det_area2): - # The det_area parameters hold the [beginning of image, size] in both dimensions. - # the beginning of image is relative to the full sensor image 512 x 512. - # if the full sensor was used for the image (i.e. the data size is 512x512) - # or if the image overleaps multiple quads, - # the quadrants need to be shifted - # check whether the image was taken with a single quad, then no shift is needed - if (det_area1[0] + det_area1[1] <= 256) and (det_area2[0] + det_area2[1] <= 256): - return arr - else: - b = np.zeros((517,516,arr.shape[2]),float) - tmp = np.zeros((512,512,arr.shape[2]),float) - tmp[det_area1[0]:det_area1[0]+det_area1[1],det_area2[0]:det_area2[0]+det_area2[1],:] = arr - b[:256,:256,:] = tmp[:256,:256,:] #Quad top left unchanged - b[:256,260:,:] = tmp[:256,256:,:] #Quad top right moved 4 right - b[261:,:256,:] = tmp[256:,:256,:] #Quad bot left moved 6 down - b[261:,260:,:] = tmp[256:,256:,:] #Quad bot right - - return b[det_area1[0]:det_area1[0]+det_area1[1],det_area2[0]:det_area2[0]+det_area2[1],:] - - -def prep_data(experiment_dir, scans, map, det_area1, det_area2, *args): - if scans is None: - print ('scan info not provided') - return - - # build sub-directories map - if len(scans) == 1: - scans.append(scans[0]) - dirs = get_dir_list(scans, map) - if len(dirs) == 0: - print ('no data directories found') - return - else: - if not os.path.exists(experiment_dir): - os.makedirs(experiment_dir) - - try: - whitefile = (map.whitefile).strip() - except: - whitefile = None - - try: - darkfile = (map.darkfile).strip() - except: - darkfile = None - - dark, white = get_dark_white(darkfile, whitefile, det_area1, det_area2) - - if len(dirs) == 0: - print ('there are no data directories for given scans') - return - - if len(dirs) == 1: - arr = read_scan(dirs[0], dark, white) - arr = fit(arr, det_area1, det_area2) - else: - # make the first part a reference - part = read_scan(dirs[0], dark, white) - part = fit(part, det_area1, det_area2) - slice_sum = np.abs(copy.deepcopy(part)) - refpart = sf.fftn(part) - for i in range (1, len(dirs)): - #this will load scans from each directory into an array part - part = read_scan(dirs[i], dark, white) - part = fit(part, det_area1, det_area2) - # add the arrays together - part_f = sf.fftn(part) - slice_sum = combine_part(part_f, slice_sum, refpart, part) - arr = np.abs(slice_sum).astype(np.int32) - - #arr = fit(arr, det_area1, det_area2) - - #create directory to save prepared data ,/prep - prep_data_dir = os.path.join(experiment_dir, 'prep') - if not os.path.exists(prep_data_dir): - os.makedirs(prep_data_dir) - data_file = os.path.join(prep_data_dir, 'prep_data.tif') - - ut.save_tif(arr, data_file) - print ('done with prep, shape:', arr.shape) - - -def prepare(experiment_dir, scans, conf_file, *args): - try: - with open(conf_file, 'r') as f: - config_map = cfg.Config(f.read()) - except Exception as e: - print('Please check the configuration file ' + conf_file + '. Cannot parse ' + str(e)) - return - - scan_end = scans[len(scans)-1] - try: - specfile = config_map.specfile.strip() - # parse det1 and det2 parameters from spec - det_area1, det_area2 = spec.get_det_from_spec(specfile, scan_end) - except: - try: - det_quad = config_map.det_quad - if det_quad == 0: - det_area1 = (0, 512) - det_area2 = (0, 512) - elif det_quad == 1: - det_area1 = (0, 256) - det_area2 = (0, 256) - elif det_quad == 2: - det_area1 = (0, 256) - det_area2 = (256, 512) - elif det_quad == 3: - det_area1 = (256, 512) - det_area2 = (0, 256) - elif det_quad == 4: - det_area1 = (256, 512) - det_area2 = (256, 512) - else: - print('the detector quad can be configured as digt from 0 to 4') - return - except Exception as e: - print('spec file or scan is not configured, and detector quad is not configured') - return - - try: - separate_scans = config_map.separate_scans - except: - separate_scans = False - - # data prep - # if separate scans, prepare data in each scan separately in subdirectory - if separate_scans and len(scans) > 1: - for scan in range (scans[0], scans[1]+1): - single_scan = [scan] - scan_exp_dir = os.path.join(experiment_dir, 'scan_' + str(scan)) - prep_data(scan_exp_dir, single_scan, config_map, det_area1, det_area2, args) - else: - prep_data(experiment_dir, scans, config_map, det_area1, det_area2, args) - - From ff5ed5d9e548edfb05e0d710c9dd99fe8686fd91 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 15:40:36 -0600 Subject: [PATCH 225/336] Delete gen_rec.py --- .../reccdi/src_py/controller/gen_rec.py | 449 ------------------ 1 file changed, 449 deletions(-) delete mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/controller/gen_rec.py diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/gen_rec.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/gen_rec.py deleted file mode 100644 index 23a34a4..0000000 --- a/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/gen_rec.py +++ /dev/null @@ -1,449 +0,0 @@ - -# ######################################################################### -# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # -# # -# See LICENSE file. # -# ######################################################################### - - -""" -This module controls the genetic algoritm process. -""" - -import numpy as np -import os -import reccdi.src_py.controller.reconstruction as single -import reccdi.src_py.controller.reconstruction_multi as multi -import reccdi.src_py.utilities.utils as ut -import reccdi.src_py.utilities.utils_ga as gut - - -__author__ = "Barbara Frosik" -__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." -__docformat__ = 'restructuredtext en' -__all__ = ['read_config', - 'reconstruction'] - - -class Generation: - """ - This class holds fields relevant to generations according to configuration. - """ - def __init__(self, config_map): - self.current_gen = 0 - try: - self.generations = config_map.generations - except AttributeError: - self.generations = 1 - - try: - self.metrics = tuple(config_map.ga_metrics) - if len(self.metrics) < self.generations: - self.metrics = self.metrics + ('chi',) * (self.generations - len(self.metrics)) - except AttributeError: - self.metrics = ('chi',) * self.generations - - try: - self.worst_remove_no = tuple(config_map.ga_removes) - if len(self.worst_remove_no) < self.generations: - self.worst_remove_no = self.worst_remove_no + (0,) * (self.generations - len(self.worst_remove_no)) - except AttributeError: - self.worst_remove_no = None - - try: - self.ga_support_thresholds = tuple(config_map.ga_support_thresholds) - if len(self.ga_support_thresholds) < self.generations: - try: - support_threshold = config_map.support_threshold - except: - support_threshold = .1 - self.ga_support_thresholds = self.ga_support_thresholds + (support_threshold,) * (self.generations - len(self.ga_support_thresholds)) - except AttributeError: - try: - support_threshold = config_map.support_threshold - except: - support_threshold = .1 - self.ga_support_thresholds = (support_threshold,) * (self.generations) - - try: - self.ga_support_sigmas = tuple(config_map.ga_support_sigmas) - if len(self.ga_support_sigmas) < self.generations: - try: - support_sigma = config_map.support_sigma - except: - support_sigma = 1.0 - self.ga_support_sigmas = self.ga_support_sigmas + (support_sigma,) * (self.generations - len(self.ga_support_sigmas)) - except AttributeError: - try: - support_sigma = config_map.support_sigma - except: - support_sigma = 1.0 - self.ga_support_sigmas = (support_sigma,) * (self.generations) - - try: - self.breed_modes = tuple(config_map.ga_breed_modes) - if len(self.breed_modes) < self.generations: - self.breed_modes = self.breed_modes + ('none',) * (self.generations - len(self.breed_modes)) - except AttributeError: - self.breed_modes = ('none',) * self.generations - - try: - self.sigmas = config_map.ga_low_resolution_sigmas - self.low_resolution_generations = len(self.sigmas) - except AttributeError: - self.low_resolution_generations = 0 - - if self.low_resolution_generations > 0: - try: - self.low_resolution_alg = config_map.ga_low_resolution_alg - except AttributeError: - self.low_resolution_alg = 'GAUSS' - - - def next_gen(self): - self.current_gen += 1 - - def get_data(self, data): - if self.current_gen >= self.low_resolution_generations: - return data - else: - gmask = self.get_gmask(data.shape) - return data * gmask - - - def get_gmask(self, shape): - if self.low_resolution_alg == 'GAUSS': - if self.sigmas[self.current_gen] < 1.0: - ut.gaussian(shape, self.sigmas[self.current_gen]) - else: - return np.ones(shape) - - - def get_metrics(self, images, errs): - metrics = [] - for i in range(len(images)): - pop_metric = {} - pop_metric['chi'] = errs[i][-1] - pop_metric['sharpness'] = sum(sum(sum(pow(abs(images[i]), 4)))) - pop_metric['summed_phase'] = sum(sum(gut.sum_phase_tight_support(images[i]))) - pop_metric['area'] = sum(sum(sum(ut.shrink_wrap(images[i], .2, .5)))) - metrics.append(pop_metric) - return metrics - - - def rank(self, images, errs): - print ('ranking generation ', self.current_gen) - rank_property = [] - - reconstructions = len(images) - metric = self.metrics[self.current_gen] - - for i in range (reconstructions): - image = images[i] - if metric == 'chi': - rank_property.append(errs[i][-1]) - elif metric == 'sharpness': - rank_property.append(sum(sum(sum(pow(abs(image), 4))))) - elif metric == 'summed_phase': - rank_property.append(sum(sum(gut.sum_phase_tight_support(image)))) - elif metric == 'area': - support = ut.shrink_wrap(image, .2, .5) - rank_property.append(sum(sum(sum(support)))) - # elif metric == 'TV': - # gradients = np.gradient(image) - # TV = np.zeros(image.shape) - # for gr in gradients: - # TV += abs(gr) - # rank_property.append(TV) - else: - # metric is 'chi' - rank_property.append(errs[i][-1]) - - # ranks keeps indexes of reconstructions from best to worst - # for most of the metric types the minimum of the metric is best, but for - # 'summed_phase' and 'area' it is oposite, so reversing the order - ranks = np.argsort(rank_property).tolist() - if metric == 'summed_phase' or metric == 'area': - ranks.reverse() - return ranks - - - def order(self, images, supports, cohs, errs, recips): - ranks = self.rank(images, errs) - ordered_images = [] - ordered_supports = [] - ordered_cohs = [] - ordered_errs = [] - ordered_recips = [] - for i in range(len(ranks)): - ordered_images.append(images[ranks[i]]) - ordered_supports.append(supports[ranks[i]]) - ordered_cohs.append(cohs[ranks[i]]) - ordered_errs.append(errs[ranks[i]]) - ordered_recips.append(recips[ranks[i]]) - - return ordered_images, ordered_supports, ordered_cohs, ordered_errs, ordered_recips - - - def breed(self, images): - """ - This function ranks the multiple reconstruction. It breeds next generation by combining the reconstructed - images, centered - For each combined image the support is calculated and coherence is set to None. - The number of bred images matches the number of reconstructions. - - Parameters - ---------- - images : list - ordered (best to worst) list of images arrays - - supports : list - list of supports arrays - - Returns - ------- - child_images : list - list of bred images - child_supports : list - list of calculated supports corresponding to child_images - child_cohs : list - list of child coherence, set to None - """ - print ('breeding generation ', (self.current_gen + 1)) - sigma = self.ga_support_sigmas[self.current_gen] - threshold = self.ga_support_thresholds[self.current_gen] - breed_mode = self.breed_modes[self.current_gen] - if breed_mode == 'none': - return images, None - reconstructions = len(images) - if self.worst_remove_no is not None: - reconstructions = reconstructions - self.worst_remove_no[self.current_gen] - - ims = images[0 : reconstructions] - dims = len(ims[0].shape) - ims_arr = np.stack(ims) - - alpha = ims[0] - alpha = gut.zero_phase(alpha, 0) - - # put the best into the bred population - child_images = [alpha] - child_supports = [ut.shrink_wrap(alpha, threshold, sigma)] - - for ind in range(1, len(ims)): - beta = ims[ind] - beta = gut.zero_phase(beta, 0) - alpha = gut.check_get_conj_reflect(beta, alpha) - alpha_s = gut.align_arrays(beta, alpha) - alpha_s = gut.zero_phase(alpha_s, 0) - ph_alpha = np.angle(alpha_s) - beta = gut.zero_phase_cc(beta, alpha_s) - ph_beta = np.angle(beta) - - if breed_mode == 'sqrt_ab': - beta = np.sqrt(abs(alpha_s) * abs(beta)) * np.exp(0.5j * (ph_beta + ph_alpha)) - - elif breed_mode == 'max_all': - amp = np.amax(abs(ims_arr), axis=0) - beta = amp * np.exp(1j * ph_beta) - - elif breed_mode == 'Dhalf': - nhalf = round(len(ims)/2) - delta = nhalf * ims[ind] - np.sum(np.stack(ims[:nhalf]), axis=0) - beta = beta + delta - - elif breed_mode == 'dsqrt': - amp = pow(abs(beta), .5) - beta = amp * np.exp(1j * ph_beta) - - elif breed_mode == 'pixel_switch': - cond = np.random.random_sample(beta.shape) - beta = np.where((cond > 0.5), beta, alpha_s) - - elif breed_mode == 'b_pa': - beta = abs(beta) * np.exp(1j * (ph_alpha)) - - elif breed_mode == '2ab_a_b': - beta = 2*(beta * alpha_s) / (beta + alpha_s) - - elif breed_mode == '2a_b_pa': - beta = (2*abs(alpha_s)-abs(beta)) * np.exp(1j *ph_alpha) - - elif breed_mode == 'sqrt_ab_pa': - beta = np.sqrt(abs(alpha_s) * abs(beta)) * np.exp(1j * ph_alpha) - - elif breed_mode == 'sqrt_ab_pa_recip': - temp1 = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(beta))) - temp2 = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(alpha_s))) - temp = np.sqrt(abs(temp1) * abs(temp2)) * np.exp(1j * np.angle(temp2)) - beta = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(temp))) - - elif breed_mode == 'sqrt_ab_recip': - temp1 = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(beta))) - temp2 = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(alpha_s))) - temp = np.sqrt(abs(temp1) *abs(temp2)) *np.exp(.5j *np.angle(temp1)) *np.exp(.5j *np.angle(temp2)) - beta = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(temp))) - - elif breed_mode == 'max_ab': - beta = np.maximum(abs(alpha_s), abs(beta)) * np.exp(.5j *(ph_beta + ph_alpha)) - - elif breed_mode == 'max_ab_pa': - beta = np.maximum(abs(alpha_s), abs(beta)) * np.exp(1j *ph_alpha) - - elif breed_mode == 'min_ab_pa': - beta = np.minimum(abs(alpha_s), abs(beta)) * np.exp(1j *ph_alpha) - - elif breed_mode == 'avg_ab': - beta = 0.5 *(alpha_s + beta) - - elif breed_mode == 'avg_ab_pa': - beta = 0.5 *(abs(alpha_s) + abs(beta)) * np.exp(1j *(ph_alpha)) - else: - # The following modes include gamma; gamma is in index 1 - # gamma = zero_phase(gamma, val); - # ph_gamma = atan2(imag(gamma), real(gamma)); - - gamma = ims[1] - gamma = gut.zero_phase(gamma, 0) - if ind > 1: - gamma = gut.check_get_conj_reflect(beta, gamma) - gamma_s = gut.align_arrays(abs(beta), abs(gamma)) - gamma_s = gut.zero_phase(gamma_s, 0) - ph_gamma = np.angle(gamma_s) - else: - gamma_s = gamma - ph_gamma = np.arctan2(gamma.imag, gamma.real) - - if breed_mode == 'sqrt_abg': - beta = pow((abs(alpha_s) *abs(beta) *abs(gamma_s)), (1/3)) *np.exp(1j *(ph_beta+ph_alpha+ph_gamma)/3.0) - - elif breed_mode == 'sqrt_abg_pa': - beta = pow((abs(alpha_s) *abs(beta) *abs(gamma_s)), (1/3)) *np.exp(1j *ph_alpha) - - elif breed_mode == 'max_abg': - beta = np.maximum(np.maximum(abs(alpha_s), abs(beta)), abs(gamma_s)) *np.exp(1j *(ph_beta+ph_alpha+ph_gamma)/3.0) - - elif breed_mode == 'max_abg_pa': - beta = np.maximum(np.maximum(abs(alpha_s), abs(beta)),abs(gamma_s)) *np.exp(1j *ph_alpha) - - elif breed_mode == 'avg_abg': - beta = (1/3)*(alpha_s+beta+gamma_s) - - elif breed_mode == 'avg_abg_pa': - beta = (1/3)*(abs(alpha_s)+abs(beta)+abs(gamma_s)) *np.exp(1j *ph_alpha) - - elif breed_mode == 'avg_sqrt': - amp=( pow(abs(beta), 1/3)+pow(abs(alpha_s), 1/3)+pow(abs(gamma_s), 1/3))/3 - beta = pow(amp, 3) * np.exp(1j *ph_beta) - - child_images.append(beta) - child_supports.append(ut.shrink_wrap(beta, threshold, sigma)) - - return child_images, child_supports - - -def reconstruction(proc, conf_file, datafile, dir, devices): - """ - This function controls reconstruction utilizing genetic algorithm. - - Parameters - ---------- - generation : int - number of generations - - proc : str - processor to run on (cpu, opencl, or cuda) - - data : numpy array - initial data - - conf_info : str - experiment directory or configuration file. If it is directory, the "conf/config_rec" will be - appended to determine configuration file - - conf_map : dict - a dictionary from parsed configuration file - - Returns - ------- - nothing - """ - data = ut.read_tif(datafile) - print ('data shape', data.shape) - #data = np.swapaxes(data, 0, 2) - #data = np.swapaxes(data, 0, 1) - - try: - config_map = ut.read_config(conf_file) - if config_map is None: - print("can't read configuration file " + conf_file) - return - except: - print('Cannot parse configuration file ' + conf_file + ' , check for matching parenthesis and quotations') - return - try: - reconstructions = config_map.reconstructions - except: - reconstructions = 1 - - gen_obj = Generation(config_map) - - try: - save_dir = config_map.save_dir - except AttributeError: - filename = conf_file.split('/')[-1] - save_dir = os.path.join(dir, filename.replace('config_rec', 'results')) - - try: - generations = config_map.generations - except: - print ('generations not configured') - return - - # init starting values - # if multiple reconstructions configured (typical for genetic algorithm), use "reconstruction_multi" module - if reconstructions > 1: - images = [] - supports = [] - cohs = [] - for _ in range(reconstructions): - images.append(None) - supports.append(None) - cohs.append(None) - rec = multi - # load parls configuration - for g in range(generations): - gen_data = gen_obj.get_data(data) - images, supports, cohs, errs, recips, flows, iter_arrs = rec.multi_rec(proc, gen_data, conf_file, config_map, devices, images, supports, cohs) - images, supports, cohs, errs, recips = gen_obj.order(images, supports, cohs, errs, recips) - metrics = gen_obj.get_metrics(images, errs) - # save the generation results - gen_save_dir = os.path.join(save_dir, 'g_' + str(g)) - ut.save_multiple_results(len(images), images, supports, cohs, errs, recips, flows, iter_arrs, gen_save_dir, metrics) - print ('g, generations, images no', g, generations, len(images)) - if g < generations - 1 and len(images) > 1: - images, shrink_supports = gen_obj.breed(images) - if shrink_supports is not None: - supports = shrink_supports - gen_obj.next_gen() - else: - image = None - support = None - coh = None - rec = single - - for g in range(generations): - print ('gen', g) - gen_data = gen_obj.get_data(data) - image, support, coh, err, recip, flows, iter_arrs = rec.single_rec(proc, gen_data, conf_file, config_map, devices[0], image, support, coh) - if image is None: - return - # save the generation results - gen_save_dir = os.path.join(save_dir, 'g_' + str(g)) - print ('gen save dir', gen_save_dir) - ut.save_results(image, support, coh, err, recip, flows, iter_arrs, gen_save_dir) - gen_obj.next_gen() - - print ('done gen') - - From 361da2f5061b422f1ba3bf083d3550877a932e31 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 15:43:25 -0600 Subject: [PATCH 226/336] Delete run_disp.py --- .../reccdi/src_py/run_scripts/run_disp.py | 176 ------------------ 1 file changed, 176 deletions(-) delete mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/run_disp.py diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/run_disp.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/run_disp.py deleted file mode 100644 index b4298d8..0000000 --- a/build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/run_disp.py +++ /dev/null @@ -1,176 +0,0 @@ -import reccdi.src_py.utilities.viz_util_xu as vu -import reccdi.src_py.utilities.utils as ut -import reccdi.src_py.utilities.parse_ver as ver -import argparse -import sys -import os -import numpy as np -from multiprocessing import Pool - - -def save_CX(conf, image, support, coh, save_dir, last_scan): - image = np.swapaxes(image, 1,2) - image = np.swapaxes(image, 0,1) -# support = np.swapaxes(support, 1,2) -# support = np.swapaxes(support, 0,1) -# image, support = center(image, support) - params = vu.DispalyParams(conf, last_scan) -# image = remove_ramp(image) - viz = vu.CXDViz() - viz.set_geometry(params, image.shape) - crop = get_crop(params, image.shape) - #viz.set_crop(crop[0], crop[1], crop[2]) # save image - - viz.add_array(np.abs(image), "imAmp", space='direct') - viz.add_array(np.angle(image), "imPh", space='direct') - image_file = os.path.join(save_dir, 'image') - #viz.write_structured_grid(image_file) - viz.write_directspace(image_file) - viz.clear_direct_arrays() - - viz.add_array(support, "support", space='direct') - support_file = os.path.join(save_dir, 'support') - #viz.write_structured_grid(support_file) - viz.write_directspace(support_file) - viz.clear_direct_arrays() - - if coh is not None: - coh = np.swapaxes(coh, 1, 2) - # investigate if pad_center before fft or after - coh = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(coh))).real - coh = ut.get_zero_padded_centered(coh, image.shape) - coh_file = os.path.join(save_dir, 'coherence') - viz.add_array(np.abs(coh), 'cohAmp', space='direct') - viz.add_array(np.angle(coh), 'cohPh', space='direct') - #viz.write_structured_grid(coh_file) - viz.write_directspace(coh_file) - viz.clear_direct_arrays() - -# a = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') -# remove_ramp(a, 3) - -def save_vtk(res_dir_conf): - (res_dir, conf) = res_dir_conf - try: - imagefile = os.path.join(res_dir, 'image.npy') - image = np.load(imagefile) - except: - print ('cannot load "image.npy" file') - return - - try: - supportfile = os.path.join(res_dir, 'support.npy') - support = np.load(supportfile) - except: - print ('support file is missing in ' + res_dir + ' directory') - return - - try: - reciprocalfile = os.path.join(res_dir, 'reciprocal.npy') - reciprocal = np.load(reciprocalfile) - # reciprocal is saved as tif file, so no need to pass it to cx module - # saving amp, phase, and square of modulus in tif format - reciprocal_amp = np.absolute(reciprocal) - reciprocal_phase = np.angle(reciprocal) - reciprocal_sq_mod = np.power(reciprocal_amp, 2) - - ut.save_tif(reciprocal_amp, os.path.join(res_dir, 'reciprocal_amp.tif')) - ut.save_tif(reciprocal_phase, os.path.join(res_dir, 'reciprocal_phase.tif')) - ut.save_tif(reciprocal_sq_mod, os.path.join(res_dir, 'reciprocal_sq_mod.tif')) - except: - print ('info: cannot save reciprocal space') - - cohfile = os.path.join(res_dir, 'coherence.npy') - if os.path.isfile(cohfile): - coh = np.load(cohfile) - save_CX(conf, image, support, coh, res_dir) - else: - save_CX(conf, image, support, None, res_dir) - - -def to_vtk(experiment_dir, results_dir=None): - if not os.path.isdir(experiment_dir): - print("Please provide a valid experiment directory") - return - conf_dir = os.path.join(experiment_dir, 'conf') - conf = os.path.join(conf_dir, 'config_disp') - # verify configuration file - if not ver.ver_config_disp(conf): - print ('incorrect configuration file ' + conf +', cannot parse') - return - - # parse the conf once here and save it in dictionary, it will apply to all images in the directory tree - conf_dict = {} - try: - conf_map = ut.read_config(conf) - items = conf_map.items() - for item in items: - conf_dict[item[0]] = item[1] - except: - print('cannot parse configuration file ' + conf) - return - - # get last scan from the config file and add it to conf_dict - last_scan = None - main_conf = os.path.join(conf_dir, 'config') - if os.path.isfile(main_conf): - try: - config_map = ut.read_config(main_conf) - scan = config_map.scan - last_scan = scan.split('-')[-1] - conf_dict['last_scan'] = int(last_scan) - except: - print ("info: scan not determined, can't read " + conf + " configuration file") - - # get binning from the config_data file and add it to conf_dict - binning = None - data_conf = os.path.join(conf_dir, 'config_data') - if os.path.isfile(data_conf): - try: - conf_map = ut.read_config(data_conf) - conf_dict['binning'] = conf_map.binning - except: - pass - - no_gpus = 1 - rec_conf = os.path.join(conf_dir, 'config_rec') - if os.path.isfile(rec_conf): - try: - conf_map = ut.read_config(rec_conf) - device = conf_map.device - no_gpus = len(device) - except: - pass - - if results_dir is None: - results_dir = experiment_dir - # find directories with image.npy file - dirs = [] - for (dirpath, dirnames, filenames) in os.walk(results_dir): - for file in filenames: - print("file", file) - if file.endswith('image.npy'): - dirs.append((dirpath, conf_dict)) - - with Pool(processes = no_gpus) as pool: - pool.map_async(save_vtk, dirs) - pool.close() - pool.join() - - -def main(arg): - print ('preparing display') - parser = argparse.ArgumentParser() - parser.add_argument("experiment_dir", help="experiment directory") - parser.add_argument("--results_dir", help="directory in experiment that has a tree (or leaf) with reconstruction results which will be visualized") - args = parser.parse_args() - experiment_dir = args.experiment_dir - if args.results_dir: - to_vtk(experiment_dir, args.results_dir) - else: - to_vtk(experiment_dir) - -if __name__ == "__main__": - main(sys.argv[1:]) - -#python run_disp.py experiment_dir From d697109a0a430a3074b93983531b9362bc1f7473 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 15:43:46 -0600 Subject: [PATCH 227/336] Delete rec_disp.py --- .../reccdi/src_py/utilities/rec_disp.py | 379 ------------------ 1 file changed, 379 deletions(-) delete mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/rec_disp.py diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/rec_disp.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/rec_disp.py deleted file mode 100644 index 0aa4d8d..0000000 --- a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/rec_disp.py +++ /dev/null @@ -1,379 +0,0 @@ -# ######################################################################### -# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # -# # -# See LICENSE file. # -# ######################################################################### - -import pylibconfig2 as cfg -import os -import traits.api as tr -from tvtk.api import tvtk -import numpy as np -import scipy.ndimage as ndi -import math as m -import reccdi.src_py.utilities.utils as ut -import reccdi.src_py.utilities.spec as sput - -__author__ = "Barbara Frosik" -__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." -__docformat__ = 'restructuredtext en' - - -class DispalyParams: - """ - This class encapsulates parameters defining image display. The parameters are read from config file on - construction - """ - - def __init__(self, config, last_scan): - """ - The constructor gets config file and fills out the class members. - - Parameters - ---------- - conf : str - configuration file name - - Returns - ------- - none - """ - if os.path.isfile(config): - with open(config, 'r') as f: - config_map = cfg.Config(f.read()) - - deg2rad = np.pi / 180.0 - try: - specfile = config_map.specfile - self.lamda, delta, gamma, dth, arm, pixel = sput.parse_spec(specfile, last_scan) - self.delta = delta * deg2rad - self.gamma = gamma * deg2rad - self.dth = dth * deg2rad - self.arm = arm / 1000 - pixel = pixel[1:-1] - pixel = pixel.split(',') - pixel[0], pixel[1] = float(pixel[0]), float(pixel[1]) - except Exception as e: - # print (str(e)) - try: - energy = config_map.energy - self.lamda = 12.398 / energy / 10 - except AttributeError: - print ('lamda not defined') - try: - self.delta = config_map.delta * deg2rad - except AttributeError: - print ('delta not defined') - try: - self.gamma = config_map.gamma * deg2rad - except AttributeError: - print ('gamma not defined') - try: - self.dth = config_map.dth * deg2rad - except AttributeError: - print ('dth not defined') - try: - self.arm = config_map.arm / 1000 - except AttributeError: - print ('arm not defined') - try: - pixel = config_map.pixel - except AttributeError: - print ('pixel not defined') - - try: - self.binning = [] - binning = config_map.binning - for i in range(len(binning)): - self.binning.append(binning[i]) - for _ in range(3 - len(self.binning)): - self.binning.append(1) - except AttributeError: - self.binning = [1,1,1] - self.dpx = pixel[0] * self.binning[0] / self.arm / self.binning[2] - self.dpy = pixel[1] * self.binning[1] / self.arm / self.binning[2] - try: - self.crop = [] - crop = config_map.crop - for i in range(len(crop)): - self.crop.append(crop[i]) - for _ in range(3 - len(self.crop)): - self.crop.append(1.0) - crop[0], crop[1] = crop[1], crop[0] - except AttributeError: - self.crop = None - - -class CXDViz(tr.HasTraits): - coords = tr.Array() - arr = tr.Array() - - cropx = tr.Int() - cropy = tr.Int() - cropz = tr.Int() - - - def __init__(self): - self.imd = tvtk.ImageData() - self.sg = tvtk.StructuredGrid() - pass - - - def set_geometry(self, params, shape): - lam = params.lamda - tth = params.delta - gam = params.gamma - dpx = params.dpx - dpy = params.dpy - dth = params.dth - dx = 1.0 / shape[0] - dy = 1.0 / shape[1] - dz = 1.0 / shape[2] - dQdpx = np.zeros(3) - dQdpy = np.zeros(3) - dQdth = np.zeros(3) - Astar = np.zeros(3) - Bstar = np.zeros(3) - Cstar = np.zeros(3) - - # dQdpx[0] = -m.cos(tth) * m.cos(gam) - # dQdpx[1] = 0.0 - # dQdpx[2] = +m.sin(tth) * m.cos(gam) - dQdpx[0] = -m.cos(tth) - dQdpx[1] = 0.0 - dQdpx[2] = +m.sin(tth) - - dQdpy[0] = m.sin(tth) * m.sin(gam) - dQdpy[1] = -m.cos(gam) - dQdpy[2] = m.cos(tth) * m.sin(gam) - - dQdth[0] = -m.cos(tth) * m.cos(gam) + 1.0 - dQdth[1] = 0.0 - dQdth[2] = m.sin(tth) * m.cos(gam) - - Astar[0] = 2 * m.pi / lam * dpx * dQdpx[0] - Astar[1] = 2 * m.pi / lam * dpx * dQdpx[1] - Astar[2] = 2 * m.pi / lam * dpx * dQdpx[2] - - Bstar[0] = (2 * m.pi / lam) * dpy * dQdpy[0] - Bstar[1] = (2 * m.pi / lam) * dpy * dQdpy[1] - Bstar[2] = (2 * m.pi / lam) * dpy * dQdpy[2] - - Cstar[0] = (2 * m.pi / lam) * dth * dQdth[0] - Cstar[1] = (2 * m.pi / lam) * dth * dQdth[1] - Cstar[2] = (2 * m.pi / lam) * dth * dQdth[2] - - denom = np.dot(Astar, np.cross(Bstar, Cstar)) - A = 2 * m.pi * np.cross(Bstar, Cstar) / denom - B = 2 * m.pi * np.cross(Cstar, Astar) / denom - C = 2 * m.pi * np.cross(Astar, Bstar) / denom - - self.T = np.zeros(9) - self.T.shape = (3, 3) - space = 'direct' - if space == 'recip': - self.T[:, 0] = Astar - self.T[:, 1] = Bstar - self.T[:, 2] = Cstar - self.dx = 1.0 - self.dy = 1.0 - self.dz = 1.0 - elif space == 'direct': - self.T = np.array((A, B, C)) - self.dx = dx - self.dy = dy - self.dz = dz - else: - pass - - - def update_coords(self): - dims = list(self.arr[self.cropobj].shape) - - r = np.mgrid[(dims[0] - 1) * self.dx:-self.dx:-self.dx, \ - 0:dims[1] * self.dy:self.dy, 0:dims[2] * self.dz:self.dz] - - r.shape = 3, dims[0] * dims[1] * dims[2] - r = r.transpose() - - self.coords = np.dot(r, self.T) - - - def set_array(self, array, logentry=None): - self.arr = array - if len(self.arr.shape) < 3: - newdims = list(self.arr.shape) - for i in range(3 - len(newdims)): - newdims.append(1) - self.arr.shape = tuple(newdims) - - - def set_crop(self, cropx, cropy, cropz): - dims = list(self.arr.shape) - if len(dims) == 2: - dims.append(1) - - if dims[0] > cropx and cropx > 0: - self.cropx = cropx - else: - self.cropx = dims[0] - - if dims[1] > cropy and cropy > 0: - self.cropy = cropy - else: - self.cropy = dims[1] - - if dims[2] > cropz and cropz > 0: - self.cropz = cropz - else: - self.cropz = dims[2] - - start1 = int(dims[0]/2) - int(self.cropx/2) - end1 = int(dims[0]/2) + int(self.cropx/2) - if start1 == end1: - end1 = end1 + 1 - start2 = int(dims[1]/2) - int(self.cropy/2) - end2 = int(dims[1]/2) + int(self.cropy/2) - if start2 == end2: - end2 = end2 + 1 - start3 = int(dims[2]/2) - int(self.cropz/2) - end3 = int(dims[2]/2) + int(self.cropz/2) - if start3 == end3: - end3 = end3 + 1 - - self.cropobj = (slice(start1, end1, None), slice(start2, end2, None), - slice(start3, end3, None)) - - - def get_structured_grid(self, **args): - self.update_coords() - dims = list(self.arr[self.cropobj].shape) - self.sg.points = self.coords - if "mode" in args: - if args["mode"] == "Phase": - arr1 = self.arr[self.cropobj].ravel() - arr = (np.arctan2(arr1.imag, arr1.real)) - else: - arr = np.abs(self.arr[self.cropobj].ravel()) - else: - arr = self.arr[self.cropobj].ravel() - if (arr.dtype == np.complex128 or arr.dtype == np.complex64): - self.sg.point_data.scalars = np.abs(arr) - self.sg.point_data.scalars.name = "Amp" - ph = tvtk.DoubleArray() - ph.from_array(np.arctan2(arr.imag, arr.real)) - ph.name = "Phase" - self.sg.point_data.add_array(ph) - else: - self.sg.point_data.scalars = arr - self.sg.dimensions = (dims[2], dims[1], dims[0]) - self.sg.extent = 0, dims[2] - 1, 0, dims[1] - 1, 0, dims[0] - 1 - return self.sg - - - def write_structured_grid(self, filename, **args): - sgwriter = tvtk.StructuredGridWriter() - sgwriter.file_type = 'binary' - if filename.endswith(".vtk"): - sgwriter.file_name = filename - else: - sgwriter.file_name = filename + '.vtk' - sgwriter.set_input_data(self.get_structured_grid()) - sgwriter.write() - print ('saved file', filename) - - -def shift(arr, s0, s1, s2): - shifted = np.roll(arr, s0, axis=0) - shifted = np.roll(shifted, s1, axis=1) - return np.roll(shifted, s2, axis=2) - - -def center_of_mass(arr): - tot = np.sum(arr) - dims = arr.shape - xyz = [] - griddims = [] - for d in dims: - griddims.append(slice(0, d)) - grid = np.ogrid[griddims] - for g in grid: - xyz.append(np.sum(arr * g) / tot) - com = np.asarray(xyz) - com = np.ma.round(com).astype(np.int) - return list(com) - - -def remove_ramp(arr, ups=3): - new_shape = list(arr.shape) - # pad zeros around arr, to the size of 3 times (ups = 3) of arr size - for i in range(len(new_shape)): - new_shape[i] = ups * new_shape[i] - padded = ut.get_zero_padded_centered(arr, new_shape) - padded_f = np.fft.fftshift(np.fft.fftn(np.fft.ifftshift(padded))) - com = ndi.center_of_mass(np.power(np.abs(padded_f), 2)) - sub_pixel_shifted = ut.sub_pixel_shift(padded_f, new_shape[0]/2.0-com[0], new_shape[1]/2.0-com[1], new_shape[2]/2.0-com[2]) - ramp_removed_padded = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(sub_pixel_shifted))) - ramp_removed = ut.crop_center(ramp_removed_padded, arr.shape) - - return ramp_removed - - -def center(image, support): - dims = image.shape - image, support = ut.get_centered_both(image, support) - - # place center of mass image*support in the center - for ax in range(len(dims)): - com = ndi.center_of_mass(np.absolute(image) * support) - image = shift(image, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) - support = shift(support, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) - - # set center phase to zero, use as a reference - phi0 = m.atan2(image.imag[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)], image.real[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)]) - image = image * np.exp(-1j * phi0) - - return image, support - - -def get_crop(params, shape): - crop = [] - for i in range(len(shape)): - if params.crop is None: - crop.append(shape[i]) - else: - crop.append(params.crop[i]) - if isinstance(crop[i], float): - crop[i] = int(crop[i]*shape[i]) - return crop - - -def save_CX(conf, image, support, coh, save_dir, last_scan): - image = np.swapaxes(image, 1,2) - image = np.swapaxes(image, 0,1) - support = np.swapaxes(support, 1,2) - support = np.swapaxes(support, 0,1) - image, support = center(image, support) - params = DispalyParams(conf, last_scan) - image = remove_ramp(image) - viz = CXDViz() - viz.set_array(image) - viz.set_geometry(params, image.shape) - crop = get_crop(params, image.shape) - viz.set_crop(crop[0], crop[1], crop[2]) # save image - image_file = os.path.join(save_dir, 'image') - viz.write_structured_grid(image_file) - viz.set_array(support) - support_file = os.path.join(save_dir, 'support') - viz.write_structured_grid(support_file) - if coh is not None: - coh = np.swapaxes(coh, 1, 2) - # investigate if pad_center before fft or after - coh = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(coh))).real - coh = ut.get_zero_padded_centered(coh, image.shape) - coh_file = os.path.join(save_dir, 'coherence') - viz.set_array(coh) - viz.write_structured_grid(coh_file) - -# a = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') -# remove_ramp(a, 3) From 8ac3c96db585b42cac8959fc551eac0f5d49d9d2 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 15:44:25 -0600 Subject: [PATCH 228/336] Delete run_rec.py --- .../reccdi/src_py/run_scripts/run_rec.py | 229 ------------------ 1 file changed, 229 deletions(-) delete mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/run_rec.py diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/run_rec.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/run_rec.py deleted file mode 100644 index d0477a9..0000000 --- a/build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/run_rec.py +++ /dev/null @@ -1,229 +0,0 @@ -import sys -import signal -import os -import argparse -from multiprocessing import Process, Queue -import reccdi.src_py.controller.reconstruction as rec -import reccdi.src_py.controller.gen_rec as gen_rec -import reccdi.src_py.controller.reconstruction_multi as mult_rec -import reccdi.src_py.utilities.utils as ut -import reccdi.src_py.utilities.parse_ver as ver -import time -from functools import reduce - - -MEM_FACTOR = 1500 -ADJUST = 0.0 - -def interrupt_thread(): - """ - This function is part of interrupt mechanism. It detects ctl-c signal and creates an empty file named "stopfile". - The file is discovered by fast module and the discovery prompts termonation of the process. - """ - def int_handler(signal, frame): - while not os.path.isfile('stopfile'): - open('stopfile', 'a').close() - time.sleep(.3) - - # #remove the file at the end - if os.path.isfile('stopfile'): - os.remove('stopfile') - - def term_handler(signal, frame): - pass - - signal.signal(signal.SIGINT, int_handler) - signal.signal(signal.SIGTERM, term_handler) - signal.pause() - - -def rec_process(proc, conf_file, datafile, dir, gpus, r, q): - if r == 'g': - gen_rec.reconstruction(proc, conf_file, datafile, dir, gpus) - elif r == 'm': - mult_rec.reconstruction(proc, conf_file, datafile, dir, gpus) - elif r == 's': - rec.reconstruction(proc, conf_file, datafile, dir, gpus) - q.put((os.getpid(), gpus)) - - -def get_gpu_use(devices, no_dir, no_rec, data_size): - rec_mem_size = data_size / MEM_FACTOR - gpu_load = ut.get_gpu_load(rec_mem_size, devices) - no_runs = no_dir * no_rec - gpu_distribution = ut.get_gpu_distribution(no_runs, gpu_load) - gpu_use = [] - available = reduce((lambda x,y: x+y), gpu_distribution) - dev_index = 0 - i = 0 - while i < available: - if gpu_distribution[dev_index] > 0: - gpu_use.append(devices[dev_index]) - gpu_distribution[dev_index] = gpu_distribution[dev_index] -1 - i += 1 - dev_index += 1 - dev_index = dev_index % len(devices) - if no_dir > 1: - gpu_use = [gpu_use[x:x+no_rec] for x in range(0, len(gpu_use), no_rec)] - - return gpu_use - - -def manage_reconstruction(proc, experiment_dir, rec_id=None): - """ - This function starts the interruption discovery thread and the recontruction thread. - - It reads configuration file defined as /conf/config_rec. - If multiple generations are configured, it will start reconstruction from "reconstruction_multi" - script, otherwise from "reconstruction" script. - """ - if os.path.exists('stopfile'): - os.remove('stopfile') - print ('starting reconstruction') - # find how many reconstruction configurations are in config directory - # if more than one, it will run in separate processes - conf_dir = os.path.join(experiment_dir, 'conf') - if rec_id is None: - conf_file = os.path.join(conf_dir, 'config_rec') - else: - conf_file = os.path.join(conf_dir, rec_id + '_config_rec') - - # check if file exists - if not os.path.isfile(conf_file): - print ('no configuration file ' + conf_file + ' found') - return - - # verify the configuration file - if not ver.ver_config_rec(conf_file): - # if not verified, the ver will print message - return - - try: - config_map = ut.read_config(conf_file) - if config_map is None: - print("can't read configuration file " + conf_file) - return - except: - print('Cannot parse configuration file ' + conf_file + ' , check for matching parenthesis and quotations') - return - - exp_dirs_data = [] - # experiment may be multi-scan in which case will run a reconstruction for each scan - for dir in os.listdir(experiment_dir): - if dir.startswith('scan'): - datafile = os.path.join(experiment_dir, dir, 'data', 'data.tif') - if os.path.isfile(datafile): - exp_dirs_data.append((datafile, os.path.join(experiment_dir, dir))) - # if there are no scan directories, assume it is combined scans experiment - if len(exp_dirs_data) == 0: - # in typical scenario data_dir is not configured, and it is defaulted to /data - # the data_dir is ignored in multi-scan scenario - try: - data_dir = config_map.data_dir - except AttributeError: - data_dir = os.path.join(experiment_dir, 'data') - datafile = os.path.join(data_dir, 'data.tif') - if os.path.isfile(datafile): - exp_dirs_data.append((datafile, experiment_dir)) - no_runs = len(exp_dirs_data) - - try: - generations = config_map.generations - except: - generations = 0 - try: - reconstructions = config_map.reconstructions - except: - reconstructions = 1 - try: - devices = config_map.device - except: - devices = [-1] - - if (no_runs > 1 or reconstructions > 1) and devices[0] != -1: - from functools import reduce - # find size of data array - data_shape = ut.read_tif(exp_dirs_data[0][0]).shape - data_size = reduce((lambda x,y: x*y), data_shape) - gpu_use = get_gpu_use(devices, no_runs, reconstructions, data_size) - else: - gpu_use = devices - - if generations > 1: - r = gen_rec - elif reconstructions > 1: - r = mult_rec - else: - r = rec - - # start the interrupt process - interrupt_process = Process(target=interrupt_thread, args=()) - interrupt_process.start() - - if no_runs == 1: - dir_data = exp_dirs_data[0] - datafile = dir_data[0] - dir = dir_data[1] - r.reconstruction(proc, conf_file, datafile, dir, gpu_use) - else: - # check if is it worth to use last chunk - if len(gpu_use[0]) > len(gpu_use[-1])*2: - gpu_use = gpu_use[0:-1] - - if generations > 1: - r = 'g' - elif reconstructions > 1: - r = 'm' - else: - r = 's' - - q = Queue() - for gpus in gpu_use: - q.put((None, gpus)) - # index keeps track of the multiple directories - index = 0 - processes = {} - while index < no_runs: - pid, gpus = q.get() - if pid is not None: - os.kill(pid, signal.SIGKILL) - del processes[pid] - datafile = exp_dirs_data[index][0] - dir = exp_dirs_data[index][1] - p = Process(target = rec_process, args = (proc, conf_file, datafile, dir, gpus, r, q)) - p.start() - processes[p.pid] = index - index += 1 - - # close the queue - while len(processes.items()) > 0: - pid, gpus = q.get() - os.kill(pid, signal.SIGKILL) - del processes[pid] - q.close() - - interrupt_process.terminate() - print ('finished reconstruction') - - -def main(arg): - parser = argparse.ArgumentParser() - parser.add_argument("proc", help="the processor the code will run on, can be 'cpu', 'opencl', or 'cuda'.") - parser.add_argument("experiment_dir", help="experiment directory.") - parser.add_argument("--rec_id", help="reconstruction id, a prefix to '_results' directory") - args = parser.parse_args() - proc = args.proc - experiment_dir = args.experiment_dir - - if args.rec_id: - manage_reconstruction(proc, experiment_dir, args.rec_id) - else: - manage_reconstruction(proc, experiment_dir) - - -if __name__ == "__main__": - print (sys.argv[1:]) - main(sys.argv[1:]) - -#python run_rec.py opencl experiment_dir - From ca50a107ae465e6caa31c51710ab82dce8421ea1 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 15:44:58 -0600 Subject: [PATCH 229/336] Delete fast_module.py --- .../reccdi/src_py/controller/fast_module.py | 189 ------------------ 1 file changed, 189 deletions(-) delete mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/controller/fast_module.py diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/fast_module.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/fast_module.py deleted file mode 100644 index b945ef2..0000000 --- a/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/fast_module.py +++ /dev/null @@ -1,189 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -# ######################################################################### -# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # -# # -# See LICENSE file. # -# ######################################################################### - - -""" -Please make sure the installation :ref:`pre-requisite-reference-label` are met. -This module controls the reconstruction process. The user has to provide parameters such as type of processor, data, and configuration. -The processor specifies which library will be used by CFM (Calc Fast Module) that performs the processor intensive calculations. The module -can be run on cpu, or gpu. Depending on the gpu hardware and library, one can use opencl or cuda library. -The module starts the data preparation routines, calls for reconstruction using the CFM, and prepares the reconstructed data for -visualization. -""" - -import numpy as np -import scipy.fftpack as sf -# import reccdi.src_py.cyth.bridge_cpu as bridge_cpu -# import reccdi.src_py.cyth.bridge_opencl as bridge_opencl -# import reccdi.src_py.cyth.bridge_cuda as bridge_cuda -import copy - - -__author__ = "Barbara Frosik" -__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." -__docformat__ = 'restructuredtext en' -__all__ = ['fast_module_reconstruction',] - - -def fast_module_reconstruction(proc, device, conf, data, coh_dims, image=None, support=None, coherence=None): - """ - This function calls a bridge method corresponding to the requested processor type. The bridge method is an access - to the CFM (Calc Fast Module). When reconstruction is completed the function retrieves results from the CFM. - The data received is max centered and the array is ordered "C". The CFM requires data zero-frequency component at - the center of the spectrum and "F" array order. Thus the data is modified at the beginning. - - Parameters - ---------- - proc : str - a string indicating the processor type - - device : int - device id assigned to this reconstruction - - conf : dict - configuration map - - data : array - a 3D np array containing pre-processed experiment data - - coh_dims : tuple - shape of coherence array - - image : numpy array - initial image for reconstruction or None - - support : numpy array - support corresponding to image or None - - coherence : numpy array - coherence corresponding to image - - Returns - ------- - image : numpy array - reconstructed image - - support : numpy array - support for reconstructed image - - coherence : numpy array - coherence for reconstructed image - - er : list - a vector containing errors for each iteration - """ - if proc == 'cpu': - import reccdi.src_py.cyth.bridge_cpu as bridge_cpu - fast_module = bridge_cpu.PyBridge() - elif proc == 'opencl': - import reccdi.src_py.cyth.bridge_opencl as bridge_opencl - fast_module = bridge_opencl.PyBridge() - elif proc == 'cuda': - import reccdi.src_py.cyth.bridge_cuda as bridge_cuda - fast_module = bridge_cuda.PyBridge() - - # shift data - #data = np.swapaxes(data,1,2) - #data = np.asfortranarray(sf.fftshift(data)) - data = sf.fftshift(data) - - dims = data.shape[::-1] -# dims1 = (dims[2], dims[1], dims[0]) - - print("data dims", dims) - data_l = data.flatten().tolist() - if image is None: - print("Running start_calc") - fast_module.start_calc(device, data_l, dims, conf) - #fast_module.start_calc(device, data_l, dims1, conf) - elif support is None: - # pass image -# image = np.swapaxes(image, 1, 0) -# image = np.swapaxes(image, 2, 0) - image = image.flatten() - fast_module.start_calc_with_guess(device, data_l, image.real.tolist(), image.imag.tolist(), dims, conf) - #fast_module.start_calc_with_guess(device, data_l, image.real.tolist(), image.imag.tolist(), dims1, conf) - elif coherence is None: - # pass image and support -# image = np.swapaxes(image, 1, 0) -# image = np.swapaxes(image, 2, 0) - image = image.flatten() -# support = np.swapaxes(support, 1, 0) -# support = np.swapaxes(support, 2, 0) - support = support.flatten() - fast_module.start_calc_with_guess_support(device, data_l, image.real.tolist(), image.imag.tolist(), support.tolist(), dims, conf) - #fast_module.start_calc_with_guess_support(device, data_l, image.real.tolist(), image.imag.tolist(), support.tolist(), dims1, conf) - else: - # pass image and support and coherence -# image = np.swapaxes(image, 1, 0) -# image = np.swapaxes(image, 2, 0) - image = image.flatten() -# support = np.swapaxes(support, 1, 0) -# support = np.swapaxes(support, 2, 0) - support = support.flatten() - coh_dims1 = (coh_dims[2], coh_dims[1], coh_dims[0]) -# coherence = np.swapaxes(coherence, 1, 0) -# coherence = np.swapaxes(coherence, 2, 0) - coherence = coherence.flatten() - - fast_module.start_calc_with_guess_support_coh(device, data_l, image.real.tolist(), image.imag.tolist(), support.tolist(), dims, coherence.tolist(), coh_dims, conf) - #fast_module.start_calc_with_guess_support_coh(device, data_l, image.real.tolist(), image.imag.tolist(), support.tolist(), dims1, coherence.tolist(), coh_dims1, conf) - - er = copy.deepcopy(fast_module.get_errors()) - if len(er) == 1 and er[0] == -1: - # run into Nan during reconstruction - fast_module.cleanup() - return None, None, None, None, None, None, None -# image_r = copy.deepcopy(np.asarray(fast_module.get_image_r())) -# image_i = copy.deepcopy(np.asarray(fast_module.get_image_i())) - image_r = np.asarray(fast_module.get_image_r()) - image_i = np.asarray(fast_module.get_image_i()) - image = image_r + 1j*image_i #no need to deepcopy the real and imag parts since this makes a new array - - # normalize image - #mx = max(np.absolute(image).ravel().tolist()) - mx=np.abs(image).max() - image = image/mx - - support = copy.deepcopy(np.asarray(fast_module.get_support())) - coherence = copy.deepcopy(np.asarray(fast_module.get_coherence())) - - image.shape=dims[::-1] - #image=np.ascontiguousarray(image) - #image = np.reshape(image, dims) -# image = np.swapaxes(image, 2, 0) -# image = np.swapaxes(image, 1, 0) - - support = np.reshape(support, dims[::-1]) -# support = np.swapaxes(support, 2, 0) -# support = np.swapaxes(support, 1, 0) - - if coherence.shape[0] > 1: - coherence = np.reshape(coherence, coh_dims[::-1]) -# coherence = np.swapaxes(coherence, 2, 0) -# coherence = np.swapaxes(coherence, 1, 0) - else: - coherence = None - - reciprocal_r = copy.deepcopy(np.asarray(fast_module.get_reciprocal_r())) - reciprocal_i = copy.deepcopy(np.asarray(fast_module.get_reciprocal_i())) - reciprocal = reciprocal_r + 1j*reciprocal_i - reciprocal = np.reshape(reciprocal, dims[::-1]) - #reciprocal = np.swapaxes(reciprocal, 2, 1) - reciprocal = sf.ifftshift(reciprocal) - - iter_array = copy.deepcopy(np.asarray(fast_module.get_iter_flow())) - flow = copy.deepcopy(list(fast_module.get_flow())) - flow_len = len(flow) - iter_array = np.reshape(iter_array, (flow_len, int(iter_array.shape[0]/flow_len))) - - fast_module.cleanup() - - return image, support, coherence, er, reciprocal, flow, iter_array - From bf8b621b8cd03e9b1756e70d3c753fca93da4f39 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 15:45:18 -0600 Subject: [PATCH 230/336] Delete data.py --- .../reccdi/src_py/controller/data.py | 200 ------------------ 1 file changed, 200 deletions(-) delete mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/controller/data.py diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/data.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/data.py deleted file mode 100644 index 652022d..0000000 --- a/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/data.py +++ /dev/null @@ -1,200 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -# ######################################################################### -# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # -# # -# See LICENSE file. # -# ######################################################################### - - -""" -Please make sure the installation :ref:`pre-requisite-reference-label` are met. -This module controls the reconstruction process. The user has to provide parameters such as type of processor, data, and configuration. -The processor specifies which library will be used by CFM (Calc Fast Module) that performs the processor intensive calculations. The module -can be run on cpu, or gpu. Depending on the gpu hardware and library, one can use opencl or cuda library. -The module starts the data preparation routines, calls for reconstruction using the CFM, and prepares the reconstructed data for -visualization. -""" - -import numpy as np -import reccdi.src_py.utilities.utils as ut -import reccdi.src_py.utilities.parse_ver as ver -import os - - -__author__ = "Barbara Frosik" -__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." -__docformat__ = 'restructuredtext en' -__all__ = ['prep'] - - -def prep(fname, conf_info): - - """ - This function prepares raw data for reconstruction. It uses configured parameters. The preparation consists of the following steps: - 1. clearing the noise - the values below an amplitude threshold are set to zero - 2. removing the "aliens" - aliens are areas that are effect of interference. The area is manually set in a configuration file - after inspecting the data. - 3. binning - adding amplitudes of several consecutive points. Binning can be done in any dimension. - 4. amplitudes are set to sqrt - 5. cropping and padding. If the adjust_dimention is negative in any dimension, the array is cropped in this dimension. - The cropping is followed by padding in the dimensions that have positive adjust dimension. After adjusting, the dimensions - are adjusted further to find the smallest dimension that is supported by opencl library (multiplier of 2, 3, and 5). - 6. centering - finding the greatest amplitude and locating it at a center of new array. If shift center is defined, the - center will be shifted accordingly. The shifted elements are rolled into the other end of array. - - The modified data is then saved in data directory. - - Parameters - ---------- - fname : str - tif file containing raw data - - conf_info : str - experiment directory or configuration file. If it is directory, the "conf/config_data" will be - appended to determine configuration file - - Returns - ------- - nothing - """ - # The data has been transposed when saved in tif format for the ImageJ to show the right orientation - data = ut.read_tif(fname) - - if os.path.isdir(conf_info): - experiment_dir = conf_info - conf = os.path.join(experiment_dir, 'conf', 'config_data') - # if the experiment contains separate scan directories - if not os.path.isfile(conf): - base_dir = os.path.abspath(os.path.join(experiment_dir, os.pardir)) - conf = os.path.join(base_dir, 'conf', 'config_data') - else: - #assuming it's a file - conf = conf_info - experiment_dir = None - - # verify the configuration file - if not ver.ver_config_data(conf): - return - - try: - config_map = ut.read_config(conf) - if config_map is None: - print ("can't read configuration file") - return - except: - print ('Please check the configuration file ' + conf + '. Cannot parse') - return - - # saving file for Kenley project - AI aliens removing - print ('saving for AI') - d_f = os.path.join(experiment_dir, 'prep', 'prep_data.npy') - np.save(d_f, data) - # zero out the ares defined by aliens - try: - aliens = config_map.aliens - print ('removing aliens') - for alien in aliens: - # The ImageJ swaps the x and y axis, so the aliens coordinates needs to be swapped, since ImageJ is used - # to find aliens - data[alien[1]:alien[4], alien[0]:alien[3], alien[2]:alien[5]] = 0 - # saving file for Kenley project - AI aliens removing - aliens_f = os.path.join(experiment_dir, 'prep', 'aliens') - with open(aliens_f, 'a') as a_f: - try: - with open(conf, 'r') as f: - for line in f: - if line.startswith('aliens'): - a_f.write(line + '\n') - break - f.close() - a_f.close() - except: - pass - # saving file for Kenley project - AI aliens removing - d_f = os.path.join(experiment_dir, 'prep', 'prep_no_aliens.npy') - np.save(d_f, data) - d_f = os.path.join(experiment_dir, 'prep', 'prep_no_aliens.tif') - ut.save_tif(data, d_f) - - except AttributeError: - pass - except: - print ('error in aliens configuration') - - try: - amp_threshold = config_map.amp_threshold - print ('applied threshold') - except AttributeError: - print ('define amplitude threshold. Exiting') - return - - # zero out the noise - prep_data = np.where(data <= amp_threshold, 0, data) - - # square root data - prep_data = np.sqrt(prep_data) - - try: - crops_pads = config_map.adjust_dimensions - # the adjust_dimention parameter list holds adjustment in each direction. Append 0s, if shorter - if len(crops_pads) < 6: - for _ in range (6 - len(crops_pads)): - crops_pads.append(0) - except AttributeError: - # the size still has to be adjusted to the opencl supported dimension - crops_pads = (0, 0, 0, 0, 0, 0) - # adjust the size, either pad with 0s or crop array - print ('cropping and/or padding dimensions') - pairs = [] - for i in range(int(len(crops_pads)/2)): - pair = crops_pads[2*i:2*i+2] - pairs.append(pair) - # change pairs x and y, as the ImageJ swaps the axes - pairs[0], pairs[1] = pairs[1], pairs[0] - prep_data = ut.adjust_dimensions(prep_data, pairs) - if prep_data is None: - print('check "adjust_dimensions" configuration') - return - - try: - center_shift = config_map.center_shift - print ('shift center') - prep_data = ut.get_centered(prep_data, center_shift) - except AttributeError: - prep_data = ut.get_centered(prep_data, [0,0,0]) - - try: - binsizes = config_map.binning - try: - bins = [] - for binsize in binsizes: - bins.append(binsize) - filler = len(prep_data.shape) - len(bins) - for _ in range(filler): - bins.append(1) - bins[0], bins[1] = bins[1], bins[0] - prep_data = ut.binning(prep_data, bins) - except: - print ('check "binning" configuration') - except AttributeError: - pass - - try: - data_dir = config_map.data_dir - except AttributeError: - data_dir = 'data' - if experiment_dir is not None: - data_dir = os.path.join(experiment_dir, data_dir) - if not os.path.exists(data_dir): - os.makedirs(data_dir) - - # save data - data_file = os.path.join(data_dir, 'data.tif') - # np.save(data_file, prep_data) - ut.save_tif(prep_data, data_file) - print ('data ready for reconstruction, data dims:', prep_data.shape) - - -#prep('/local/bfrosik/CDI/S149/Staff14-3_S0149.tif', 'config_data') From 93016ef7955d5d4b75865c4567e032e5000571f3 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 15:45:47 -0600 Subject: [PATCH 231/336] Delete reconstruction.py --- .../src_py/controller/reconstruction.py | 154 ------------------ 1 file changed, 154 deletions(-) delete mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/controller/reconstruction.py diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/reconstruction.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/reconstruction.py deleted file mode 100644 index 56edb32..0000000 --- a/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/reconstruction.py +++ /dev/null @@ -1,154 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -# ######################################################################### -# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # -# # -# See LICENSE file. # -# ######################################################################### - - -""" -Please make sure the installation :ref:`pre-requisite-reference-label` are met. -This module controls the reconstruction process. The user has to provide parameters such as type of processor, data, and configuration. -The processor specifies which library will be used by CFM (Calc Fast Module) that performs the processor intensive calculations. The module -can be run on cpu, or gpu. Depending on the gpu hardware and library, one can use opencl or cuda library. -The module starts the data preparation routines, calls for reconstruction using the CFM, and prepares the reconstructed data for -visualization. -""" - -import numpy as np -import os -import reccdi.src_py.controller.fast_module as calc -import reccdi.src_py.utilities.utils as ut -import reccdi.src_py.controller.reconstruction_multi as multi - - -__author__ = "Barbara Frosik" -__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." -__docformat__ = 'restructuredtext en' -__all__ = ['read_config', - 'reconstruction'] - - -def single_rec(proc, data, conf, config_map, dev, image, support, coh): - - """ - This function starts and returns results of reconstruction. The parameters must be initialized. - - Parameters - ---------- - proc : str - a string indicating the processor type - - data : numpy array - data array - - conf : str - configuration file name - - config_map : dict - parsed configuration - - image : numpy array - reconstructed image for further reconstruction, or None for initial - - support : numpy array - support of reconstructed image, or None - - coh : numpy array - coherence of reconstructed images, or None - - Returns - ------- - image : numpy array - reconstructed image - - support : numpy array - support of reconstructed images - - coh : numpy array - coherence of reconstructed images - - errs : list - list of errors (should we take the last error?) - """ - try: - coh_dims = tuple(config_map.partial_coherence_roi) - except: - coh_dims = None - image, support, coh, er, reciprocal, flow, iter_array = calc.fast_module_reconstruction(proc, dev, conf, data, coh_dims, image, support, coh) - - # errs contain errors for each iteration - return image, support, coh, er, reciprocal, flow, iter_array - - -def reconstruction(proc, conf_file, datafile, dir, dev): - """ - This function starts the reconstruction. It checks whether it is continuation of reconstruction defined by - configuration. If continuation, the arrays of image, support, coherence are read from cont_directory, - otherwise, they are initialized to None. After the arrays are initialized, they are passed for the reconstruction. - The results are saved in the configured directory. - - Parameters - ---------- - proc : str - a string indicating the processor type (cpu, opencl, cuda) - - data : numpy array - data array - - conf_info : str - configuration file name or experiment directory. If directory, the configuration file is - defined as /conf/config_rec - - config_map : dict - parsed configuration - - Returns - ------- - nothing - """ - data = ut.read_tif(datafile) - print ('data shape', data.shape) -# data = np.swapaxes(data, 0, 2) -# data = np.swapaxes(data, 0, 1) - - try: - config_map = ut.read_config(conf_file) - if config_map is None: - print("can't read configuration file " + conf_file) - return - except: - print('Cannot parse configuration file ' + conf_file + ' , check for matching parenthesis and quotations') - return - - cont = False - try: - if config_map.cont: - try: - continue_dir = config_map.continue_dir - image, support, coh = ut.read_results(continue_dir) - cont = True - except: - print("continue_dir not configured") - return None - except: - pass - - if not cont: - image = None - support = None - coh = None - - image, support, coh, errs, recips, flow, iter_array = single_rec(proc, data, conf_file, config_map, dev[0], image, support, coh) - if image is None: - return - - try: - save_dir = config_map.save_dir - except AttributeError: - filename = conf_file.split('/')[-1] - save_dir = os.path.join(dir, filename.replace('config_rec', 'results')) - - ut.save_results(image, support, coh, np.asarray(errs), recips, flow, iter_array, save_dir) From e628c19d95393ee854231c5e4e04412fa192564c Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 15:46:14 -0600 Subject: [PATCH 232/336] Delete prep_noconfig.py --- .../reccdi/src_py/utilities/prep_noconfig.py | 216 ------------------ 1 file changed, 216 deletions(-) delete mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/prep_noconfig.py diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/prep_noconfig.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/prep_noconfig.py deleted file mode 100644 index 0d6cc36..0000000 --- a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/prep_noconfig.py +++ /dev/null @@ -1,216 +0,0 @@ -import numpy as np -import copy -import scipy.fftpack as sf -import os -import glob -import tifffile as tif -#import reccdi.src_py.utilities.spec as spec -#import reccdi.src_py.utilities.utils as ut - - -def get_dir_list(scans, map): - """ - Returns list of sub-directories in data_dir with names matching range of scans - It will exclude scans within exclude_scans list if provided, and directories with fewer files than - min_files, if provided - :param scans: - :param map: - :return: - """ - try: - min_files = map.min_files - except: - min_files = 0 - try: - exclude_scans = map.exclude_scans - except: - exclude_scans = [] - try: - data_dir = map.data_dir - except: - print ('please provide data_dir') - - dirs = [] - for name in os.listdir(data_dir): - subdir = os.path.join(data_dir, name) - if os.path.isdir(subdir): - # exclude directories with fewer tif files than min_files - if len(glob.glob1(subdir, "*.tif")) < min_files and len(glob.glob1(subdir, "*.tiff")) < min_files: - continue - try: - index = int(name[-4:]) - if index >= scans[0] and index <= scans[1] and not index in exclude_scans: - dirs.append(subdir) - except: - continue - return dirs - - -def get_dark_white(darkfile, whitefile, det_area1, det_area2): - if darkfile is not None: - # find the darkfield array - dark_full = tif.imread(darkfile).astype(float) - # crop the corresponding quad or use the whole array, depending on what info was parsed from spec file - dark = dark_full[slice(det_area1[0], det_area1[1]), slice(det_area2[0], det_area2[1])] - else: - dark = None - - if whitefile is not None: - # find the whitefield array - white_full = tif.imread(whitefile).astype(float) - # crop the corresponding quad or use the whole array, depending on what info was parsed from spec file - white = white_full[slice(det_area1[0], det_area1[1]), slice(det_area2[0], det_area2[1])] - # set the bad pixels to some large value - white = np.where(white<5000, 1e20, white) #Some large value - else: - white = None - - return dark, white - - -def get_normalized_slice(file, dark, white): - # file is a tuple of slice and either background slice or None - slice = tif.TiffFile(file[0]).asarray() - if file[1] is not None: - slice = slice - tif.TiffFile(file[1]).asarray() - if dark is not None: - slice = np.where(dark > 5, 0, slice) #Ignore cosmic rays - # here would be code for correction for dead time - if white is not None: - slice = slice/white - slice *= 1e5 #Some medium value - slice = np.where(np.isnan(slice), 0, slice) - return slice - - -def read_scan(dir, dark, white): - files = [] - files_dir = {} - for file in os.listdir(dir): - if file.endswith('tif') or file.endswith('tiff'): - temp = file.split('.') - #it's assumed that the files end with four digits and 'tif' or 'tiff' extension - key = temp[0][-4:] - files_dir[key] = file - - ordered_keys = sorted(list(files_dir.keys())) - - for key in ordered_keys: - file = files_dir[key] - file = os.path.join(dir, file) - bg_file = file.replace('.tif', '_bg.tif') - if not os.path.isfile(bg_file): - bg_file = None - - files.append((file, bg_file)) - - # look at slice0 to find out shape - n = 0 - slice0 = get_normalized_slice(files[n], dark, white).transpose() - shape = (slice0.shape[0], slice0.shape[1], len(files)) - arr = np.zeros(shape, dtype=slice0.dtype) - arr[:,:,0] = slice0 - print("slice shape",slice0.shape) - - #for i in range (1, len(files)): - for file in files[1:]: - n = n + 1 - slice = get_normalized_slice(file, dark, white).transpose() - arr[:,:,n] = slice - return arr - - -def shift(arr, shifty): - # pass the FT of the fftshifted array you want to shift - # you get back the actual array, not the FT. - dims = arr.shape - # scipy does normalize ffts! - ftarr = sf.fftn(arr) - r=[] - for d in dims: - r.append(slice(int(np.ceil(-d/2.)), int(np.ceil(d/2.)), None)) - idxgrid = np.mgrid[r] - for d in range(len(dims)): - ftarr *= np.exp(-1j*2*np.pi*shifty[d]*sf.fftshift(idxgrid[d])/float(dims[d])) - - shiftedarr = sf.ifftn(ftarr) - return shiftedarr - - -def combine_part(part_f, slice_sum, refpart, part): - # get cross correlation and pixel shift - cross_correlation = sf.ifftn(refpart*np.conj(part_f)) - corelated = np.array(cross_correlation.shape) - amp = np.abs(cross_correlation) - intshift = np.unravel_index(amp.argmax(), corelated) - shifted = np.array(intshift) - pixelshift = np.where(shifted>=corelated/2, shifted-corelated, shifted) - return slice_sum + shift(part, pixelshift) - - -def fit(arr, det_area1, det_area2): - # if the full sensor was used for the image (i.e. the data size is 512x512) - # the quadrants need to be shifted - if det_area1[0] == 0 and det_area1[1] == 512 and det_area1[0] == 0 and det_area2[1] == 512: - b = np.zeros((arr.shape[0],517,516),float) - b[:,:256,:256] = arr[:,:256,:256] #Quad top left unchanged - b[:,:256,260:] = arr[:,:256,256:] #Quad top right moved 4 right - b[:,261:,:256] = arr[:,256:,:256] #Quad bot left moved 6 down - b[:,261:,260:] = arr[:,256:,256:] #Quad bot right - else: - b = arr - return b - - -def prep_data(experiment_dir, scans, map, det_area1, det_area2, *args): - if scans is None: - print ('scan info not provided') - return - - # build sub-directories map - if len(scans) == 1: - scans.append(scans[0]) - dirs = get_dir_list(scans, map) - - try: - whitefile = map.whitefile - except: - whitefile = None - - try: - darkfile = map.darkfile - except: - darkfile = None - - dark, white = get_dark_white(darkfile, whitefile, det_area1, det_area2) - - if len(dirs) == 0: - print ('there are no data directories for given scans') - return - - if len(dirs) == 1: - arr = read_scan(dirs[0], dark, white) - else: - # make the first part a reference - part = read_scan(dirs[0], dark, white) - slice_sum = np.abs(copy.deepcopy(part)) - refpart = sf.fftn(part) - for i in range (1, len(dirs)): - #this will load scans from each directory into an array part - part = read_scan(dirs[i], dark, white) - # add the arrays together - part_f = sf.fftn(part) - slice_sum = combine_part(part_f, slice_sum, refpart, part) - arr = np.abs(slice_sum).astype(np.int32) - - arr = fit(arr, det_area1, det_area2) - - #create directory to save prepared data ,/prep - prep_data_dir = os.path.join(experiment_dir, 'prep') - if not os.path.exists(prep_data_dir): - os.makedirs(prep_data_dir) - data_file = os.path.join(prep_data_dir, 'prep_data.tif') - - ut.save_tif(arr, data_file) - print ('done with prep, shape:', arr.shape) - From 2c131ffd0fe6b1de9ae75fd6c5723a36e439902f Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 15:46:36 -0600 Subject: [PATCH 233/336] Delete run_disp.py --- .../reccdi/src_py/utilities/run_disp.py | 176 ------------------ 1 file changed, 176 deletions(-) delete mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/run_disp.py diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/run_disp.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/run_disp.py deleted file mode 100644 index b4298d8..0000000 --- a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/run_disp.py +++ /dev/null @@ -1,176 +0,0 @@ -import reccdi.src_py.utilities.viz_util_xu as vu -import reccdi.src_py.utilities.utils as ut -import reccdi.src_py.utilities.parse_ver as ver -import argparse -import sys -import os -import numpy as np -from multiprocessing import Pool - - -def save_CX(conf, image, support, coh, save_dir, last_scan): - image = np.swapaxes(image, 1,2) - image = np.swapaxes(image, 0,1) -# support = np.swapaxes(support, 1,2) -# support = np.swapaxes(support, 0,1) -# image, support = center(image, support) - params = vu.DispalyParams(conf, last_scan) -# image = remove_ramp(image) - viz = vu.CXDViz() - viz.set_geometry(params, image.shape) - crop = get_crop(params, image.shape) - #viz.set_crop(crop[0], crop[1], crop[2]) # save image - - viz.add_array(np.abs(image), "imAmp", space='direct') - viz.add_array(np.angle(image), "imPh", space='direct') - image_file = os.path.join(save_dir, 'image') - #viz.write_structured_grid(image_file) - viz.write_directspace(image_file) - viz.clear_direct_arrays() - - viz.add_array(support, "support", space='direct') - support_file = os.path.join(save_dir, 'support') - #viz.write_structured_grid(support_file) - viz.write_directspace(support_file) - viz.clear_direct_arrays() - - if coh is not None: - coh = np.swapaxes(coh, 1, 2) - # investigate if pad_center before fft or after - coh = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(coh))).real - coh = ut.get_zero_padded_centered(coh, image.shape) - coh_file = os.path.join(save_dir, 'coherence') - viz.add_array(np.abs(coh), 'cohAmp', space='direct') - viz.add_array(np.angle(coh), 'cohPh', space='direct') - #viz.write_structured_grid(coh_file) - viz.write_directspace(coh_file) - viz.clear_direct_arrays() - -# a = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') -# remove_ramp(a, 3) - -def save_vtk(res_dir_conf): - (res_dir, conf) = res_dir_conf - try: - imagefile = os.path.join(res_dir, 'image.npy') - image = np.load(imagefile) - except: - print ('cannot load "image.npy" file') - return - - try: - supportfile = os.path.join(res_dir, 'support.npy') - support = np.load(supportfile) - except: - print ('support file is missing in ' + res_dir + ' directory') - return - - try: - reciprocalfile = os.path.join(res_dir, 'reciprocal.npy') - reciprocal = np.load(reciprocalfile) - # reciprocal is saved as tif file, so no need to pass it to cx module - # saving amp, phase, and square of modulus in tif format - reciprocal_amp = np.absolute(reciprocal) - reciprocal_phase = np.angle(reciprocal) - reciprocal_sq_mod = np.power(reciprocal_amp, 2) - - ut.save_tif(reciprocal_amp, os.path.join(res_dir, 'reciprocal_amp.tif')) - ut.save_tif(reciprocal_phase, os.path.join(res_dir, 'reciprocal_phase.tif')) - ut.save_tif(reciprocal_sq_mod, os.path.join(res_dir, 'reciprocal_sq_mod.tif')) - except: - print ('info: cannot save reciprocal space') - - cohfile = os.path.join(res_dir, 'coherence.npy') - if os.path.isfile(cohfile): - coh = np.load(cohfile) - save_CX(conf, image, support, coh, res_dir) - else: - save_CX(conf, image, support, None, res_dir) - - -def to_vtk(experiment_dir, results_dir=None): - if not os.path.isdir(experiment_dir): - print("Please provide a valid experiment directory") - return - conf_dir = os.path.join(experiment_dir, 'conf') - conf = os.path.join(conf_dir, 'config_disp') - # verify configuration file - if not ver.ver_config_disp(conf): - print ('incorrect configuration file ' + conf +', cannot parse') - return - - # parse the conf once here and save it in dictionary, it will apply to all images in the directory tree - conf_dict = {} - try: - conf_map = ut.read_config(conf) - items = conf_map.items() - for item in items: - conf_dict[item[0]] = item[1] - except: - print('cannot parse configuration file ' + conf) - return - - # get last scan from the config file and add it to conf_dict - last_scan = None - main_conf = os.path.join(conf_dir, 'config') - if os.path.isfile(main_conf): - try: - config_map = ut.read_config(main_conf) - scan = config_map.scan - last_scan = scan.split('-')[-1] - conf_dict['last_scan'] = int(last_scan) - except: - print ("info: scan not determined, can't read " + conf + " configuration file") - - # get binning from the config_data file and add it to conf_dict - binning = None - data_conf = os.path.join(conf_dir, 'config_data') - if os.path.isfile(data_conf): - try: - conf_map = ut.read_config(data_conf) - conf_dict['binning'] = conf_map.binning - except: - pass - - no_gpus = 1 - rec_conf = os.path.join(conf_dir, 'config_rec') - if os.path.isfile(rec_conf): - try: - conf_map = ut.read_config(rec_conf) - device = conf_map.device - no_gpus = len(device) - except: - pass - - if results_dir is None: - results_dir = experiment_dir - # find directories with image.npy file - dirs = [] - for (dirpath, dirnames, filenames) in os.walk(results_dir): - for file in filenames: - print("file", file) - if file.endswith('image.npy'): - dirs.append((dirpath, conf_dict)) - - with Pool(processes = no_gpus) as pool: - pool.map_async(save_vtk, dirs) - pool.close() - pool.join() - - -def main(arg): - print ('preparing display') - parser = argparse.ArgumentParser() - parser.add_argument("experiment_dir", help="experiment directory") - parser.add_argument("--results_dir", help="directory in experiment that has a tree (or leaf) with reconstruction results which will be visualized") - args = parser.parse_args() - experiment_dir = args.experiment_dir - if args.results_dir: - to_vtk(experiment_dir, args.results_dir) - else: - to_vtk(experiment_dir) - -if __name__ == "__main__": - main(sys.argv[1:]) - -#python run_disp.py experiment_dir From d0c92ae9520949f54b44f29a04165f7ee747bfd7 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 15:47:00 -0600 Subject: [PATCH 234/336] Delete reconstruction_multi.py --- .../src_py/controller/reconstruction_multi.py | 259 ------------------ 1 file changed, 259 deletions(-) delete mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/controller/reconstruction_multi.py diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/reconstruction_multi.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/reconstruction_multi.py deleted file mode 100644 index 2f87107..0000000 --- a/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/reconstruction_multi.py +++ /dev/null @@ -1,259 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -# ######################################################################### -# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # -# # -# See LICENSE file. # -# ######################################################################### - - -""" -Please make sure the installation :ref:`pre-requisite-reference-label` are met. -This module controls the reconstruction process. The user has to provide parameters such as type of processor, data, and configuration. -The processor specifies which library will be used by CFM (Calc Fast Module) that performs the processor intensive calculations. The module -can be run on cpu, or gpu. Depending on the gpu hardware and library, one can use opencl or cuda library. -The module starts the data preparation routines, calls for reconstruction using the CFM, and prepares the reconstructed data for -visualization. -""" - -import os -import numpy as np -import reccdi.src_py.utilities.utils as ut -import reccdi.src_py.controller.fast_module as calc -import time -from multiprocessing import Pool, Queue -from functools import partial - -__author__ = "Barbara Frosik" -__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." -__docformat__ = 'restructuredtext en' -__all__ = ['read_config', - 'reconstruction'] - - -def single_rec_process(proc, conf, data, coh_dims, prev): - """ - This function runs in the reconstruction palarellized by Parsl. - - Parameters - ---------- - proc : str - string defining library used 'cpu' or 'opencl' or 'cuda' - - device : int - device allocated to this reconstruction or -1 if not configured - - conf : str - configuration file - - data : numpy array - data array - - coh_dims : tuple - shape of coherence array - - prev_image : numpy array or None - previously reconstructed image (if continuation or genetic algorithm) or None - - prev_support : numpy array or None - support of previously reconstructed image (if continuation or genetic algorithm) or None - - prev_coh : numpy array or None - coherence of previously reconstructed image (if continuation or genetic algorithm) or None - - Returns - ------- - image : numpy array - reconstructed image - - support : numpy array - support of reconstructed image - - coherence : coherence of reconstructed image - - error : list containing errors for iterations - """ - prev_image, prev_support, prev_coh = prev - image, support, coherence, errors, reciprocal, flow, iter_array = calc.fast_module_reconstruction(proc, gpu, conf, data, coh_dims, - prev_image, prev_support, prev_coh) - return image, support, coherence, errors, reciprocal, flow, iter_array - - -def assign_gpu(*args): - q = args[0] - global gpu - gpu = q.get() - - -def multi_rec(proc, data, conf, config_map, devices, prev_images, prev_supports, prev_cohs=None): - - """ - This function controls the multiple reconstructions. It invokes a loop to execute parallel resconstructions, - wait for all reconstructions to deliver results, and store te results. - - Parameters - ---------- - proc : str - a string indicating the processor type - - data : numpy array - data array - - conf : str - configuration file name - - config_map : dict - parsed configuration - - images : list - list of numpy arrays containing reconstructed images for further reconstruction, or None for initial - - supports : list - list of numpy arrays containing support of reconstructed images, or None - - cohs : list - list of numpy arrays containing coherence of reconstructed images, or None - - Returns - ------- - images : list - list of numpy arrays containing reconstructed images - - supports : list - list of numpy arrays containing support of reconstructed images - - cohs : list - list of numpy arrays containing coherence of reconstructed images - - errs : list - list of lists of errors (now each element is another list by iterations, but should we take the last error?) - """ - images = [] - supports = [] - cohs = [] - errs = [] - recips = [] - flows = [] - iter_arrs = [] - def collect_result(result): - for r in result: - if r[0] is None: - continue - images.append(r[0]) - supports.append(r[1]) - cohs.append(r[2]) - errs.append(r[3]) - recips.append(r[4]) - flows.append(r[5]) - iter_arrs.append(r[6]) - - reconstructions = config_map.reconstructions - - try: - coh_dims = tuple(config_map.partial_coherence_roi) - except: - coh_dims = None - - iterable = [] - for i in range(reconstructions): - if prev_cohs is None: - coh = None - else: - coh = prev_cohs[i] - iterable.append((prev_images[i], prev_supports[i], coh)) - - func = partial(single_rec_process, proc, conf, data, coh_dims) - q = Queue() - for device in devices: - q.put(device) - with Pool(processes = len(devices),initializer=assign_gpu, initargs=(q,)) as pool: - pool.map_async(func, iterable, callback=collect_result) - pool.close() - pool.join() - pool.terminate() - - # return only error from last iteration for each reconstruction - return images, supports, cohs, errs, recips, flows, iter_arrs - - -def reconstruction(proc, conf_file, datafile, dir, devices): -# proc, datafile, dir, conf_file, devices - """ - This function starts the reconstruction. It checks whether it is continuation of reconstruction defined by - configuration. If continuation, the lists contaning arrays of images, supports, coherence for multiple reconstructions - are read from cont_directory, otherwise, they are initialized to None. - After the lists are initialized, they are passed for the multi-reconstruction. - The results are saved in the configured directory. - - Parameters - ---------- - reconstructions : int - number of reconstructions - - proc : str - a string indicating the processor type (cpu, opencl, cuda) - - data : numpy array - data array - - conf_info : str - configuration file name or experiment directory. If directory, the configuration file is - defined as /conf/config_rec - - config_map : dict - parsed configuration - - Returns - ------- - nothing - """ - data = ut.read_tif(datafile) - print ('data shape', data.shape) - #data = np.swapaxes(data, 0, 2) - #data = np.swapaxes(data, 0, 1) - - try: - config_map = ut.read_config(conf_file) - if config_map is None: - print("can't read configuration file " + conf_file) - return - except: - print('Cannot parse configuration file ' + conf_file + ' , check for matching parenthesis and quotations') - return - - try: - reconstructions = config_map.reconstructions - except: - reconstructions = 1 - - images = [] - supports = [] - cohs = [] - try: - if config_map.cont: - try: - continue_dir = config_map.continue_dir - for sub in os.listdir(continue_dir): - image, support, coh = ut.read_results(os.path.join(continue_dir, sub) + '/') - images.append(image) - supports.append(support) - cohs.append(coh) - except: - print("continue_dir not configured") - return None - except: - for _ in range(reconstructions): - images.append(None) - supports.append(None) - cohs.append(None) - - new_images, new_supports, new_cohs, errs, recips, flows, iter_arrs = multi_rec(proc, data, conf_file, config_map, devices, images, supports, cohs) - - try: - save_dir = config_map.save_dir - except AttributeError: - filename = conf_file.split('/')[-1] - save_dir = os.path.join(dir, filename.replace('config_rec', 'results')) - - ut.save_multiple_results(len(new_images), new_images, new_supports, new_cohs, errs, recips, flows, iter_arrs, save_dir) From 055e65e3fdbbb6dc69fbadf345f550b0efdb5341 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 15:47:21 -0600 Subject: [PATCH 235/336] Delete localCXDVizNX.py --- .../reccdi/src_py/utilities/localCXDVizNX.py | 383 ------------------ 1 file changed, 383 deletions(-) delete mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/localCXDVizNX.py diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/localCXDVizNX.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/localCXDVizNX.py deleted file mode 100644 index 3c3cff0..0000000 --- a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/localCXDVizNX.py +++ /dev/null @@ -1,383 +0,0 @@ -# ######################################################################### -# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # -# # -# See LICENSE file. # -# ######################################################################### - -import pylibconfig2 as cfg -import os -import traits.api as tr -from tvtk.api import tvtk -import numpy as np -import scipy.ndimage as ndi -import math as m -import utils as ut -import spec as sput - -__author__ = "Barbara Frosik" -__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." -__docformat__ = 'restructuredtext en' - - -class DispalyParams: - """ - This class encapsulates parameters defining image display. The parameters are read from config file on - construction - """ - - def __init__(self, config, last_scan): - """ - The constructor gets config file and fills out the class members. - - Parameters - ---------- - conf : str - configuration file name - - Returns - ------- - none - """ - if os.path.isfile(config): - with open(config, 'r') as f: - config_map = cfg.Config(f.read()) - - deg2rad = np.pi / 180.0 - try: - specfile = config_map.specfile - self.lamda, delta, gamma, dth, arm, pixel = sput.parse_spec(specfile, last_scan) - self.delta = delta * deg2rad - self.gamma = gamma * deg2rad - self.dth = dth * deg2rad - self.arm = arm / 1000 - pixel = pixel[1:-1] - pixel = pixel.split(',') - pixel[0], pixel[1] = float(pixel[0]), float(pixel[1]) - except Exception as e: - # print (str(e)) - try: - energy = config_map.energy - self.lamda = 12.398 / energy / 10 - except AttributeError: - print ('lamda not defined') - try: - self.delta = config_map.delta * deg2rad - except AttributeError: - print ('delta not defined') - try: - self.gamma = config_map.gamma * deg2rad - except AttributeError: - print ('gamma not defined') - try: - self.dth = config_map.dth * deg2rad - except AttributeError: - print ('dth not defined') - try: - self.arm = config_map.arm / 1000 - except AttributeError: - print ('arm not defined') - try: - pixel = config_map.pixel - except AttributeError: - print ('pixel not defined') - - try: - self.binning = [] - binning = config_map.binning - for i in range(len(binning)): - self.binning.append(binning[i]) - for _ in range(3 - len(self.binning)): - self.binning.append(1) - except AttributeError: - self.binning = [1,1,1] - self.dpx = pixel[0] * self.binning[0] / self.arm / self.binning[2] - self.dpy = pixel[1] * self.binning[1] / self.arm / self.binning[2] - try: - self.crop = [] - crop = config_map.crop - for i in range(len(crop)): - self.crop.append(crop[i]) - for _ in range(3 - len(self.crop)): - self.crop.append(1.0) - crop[0], crop[1] = crop[1], crop[0] - except AttributeError: - self.crop = None - - -class CXDViz(tr.HasTraits): - coords = tr.Array() - arr = tr.Array() - - cropx = tr.Int() - cropy = tr.Int() - cropz = tr.Int() - - - def __init__(self): - self.imd = tvtk.ImageData() - self.sg = tvtk.StructuredGrid() - pass - - - def set_geometry(self, params, shape): - lam = params.lamda - tth = params.delta - gam = params.gamma - dpx = params.dpx - dpy = params.dpy - dth = params.dth - dx = 1.0 / shape[0] - dy = 1.0 / shape[1] - dz = 1.0 / shape[2] - dQdpx = np.zeros(3) - dQdpy = np.zeros(3) - dQdth = np.zeros(3) - Astar = np.zeros(3) - Bstar = np.zeros(3) - Cstar = np.zeros(3) - - # dQdpx[0] = -m.cos(tth) * m.cos(gam) - # dQdpx[1] = 0.0 - # dQdpx[2] = +m.sin(tth) * m.cos(gam) - dQdpx[0] = -m.cos(tth) - dQdpx[1] = 0.0 - dQdpx[2] = +m.sin(tth) - - dQdpy[0] = m.sin(tth) * m.sin(gam) - dQdpy[1] = -m.cos(gam) - dQdpy[2] = m.cos(tth) * m.sin(gam) - - dQdth[0] = -m.cos(tth) * m.cos(gam) + 1.0 - dQdth[1] = 0.0 - dQdth[2] = m.sin(tth) * m.cos(gam) - - Astar[0] = 2 * m.pi / lam * dpx * dQdpx[0] - Astar[1] = 2 * m.pi / lam * dpx * dQdpx[1] - Astar[2] = 2 * m.pi / lam * dpx * dQdpx[2] - - Bstar[0] = (2 * m.pi / lam) * dpy * dQdpy[0] - Bstar[1] = (2 * m.pi / lam) * dpy * dQdpy[1] - Bstar[2] = (2 * m.pi / lam) * dpy * dQdpy[2] - - Cstar[0] = (2 * m.pi / lam) * dth * dQdth[0] - Cstar[1] = (2 * m.pi / lam) * dth * dQdth[1] - Cstar[2] = (2 * m.pi / lam) * dth * dQdth[2] - - print("recip", Astar) - print("recip", Bstar) - print("recip", Cstar) - denom = np.dot(Astar, np.cross(Bstar, Cstar)) - A = 2 * m.pi * np.cross(Bstar, Cstar) / denom - B = 2 * m.pi * np.cross(Cstar, Astar) / denom - C = 2 * m.pi * np.cross(Astar, Bstar) / denom - - self.T = np.zeros(9) - self.T.shape = (3, 3) - space = 'direct' - if space == 'recip': - self.T[:, 0] = Astar - self.T[:, 1] = Bstar - self.T[:, 2] = Cstar - self.dx = 1.0 - self.dy = 1.0 - self.dz = 1.0 - elif space == 'direct': - self.T = np.array((A, B, C)) - self.dx = dx - self.dy = dy - self.dz = dz - else: - pass - print("DirectSpace T",self.T) - - - def update_coords(self): - dims = list(self.arr[self.cropobj].shape) - - r = np.mgrid[(dims[0] - 1) * self.dx:-self.dx:-self.dx, \ - 0:dims[1] * self.dy:self.dy, 0:dims[2] * self.dz:self.dz] - - r.shape = 3, dims[0] * dims[1] * dims[2] - r = r.transpose() - - self.coords = np.dot(r, self.T) - - - def set_array(self, array, logentry=None): - self.arr = array - if len(self.arr.shape) < 3: - newdims = list(self.arr.shape) - for i in range(3 - len(newdims)): - newdims.append(1) - self.arr.shape = tuple(newdims) - - - def set_crop(self, cropx, cropy, cropz): - dims = list(self.arr.shape) - if len(dims) == 2: - dims.append(1) - - if dims[0] > cropx and cropx > 0: - self.cropx = cropx - else: - self.cropx = dims[0] - - if dims[1] > cropy and cropy > 0: - self.cropy = cropy - else: - self.cropy = dims[1] - - if dims[2] > cropz and cropz > 0: - self.cropz = cropz - else: - self.cropz = dims[2] - - start1 = int(dims[0]/2) - int(self.cropx/2) - end1 = int(dims[0]/2) + int(self.cropx/2) - if start1 == end1: - end1 = end1 + 1 - start2 = int(dims[1]/2) - int(self.cropy/2) - end2 = int(dims[1]/2) + int(self.cropy/2) - if start2 == end2: - end2 = end2 + 1 - start3 = int(dims[2]/2) - int(self.cropz/2) - end3 = int(dims[2]/2) + int(self.cropz/2) - if start3 == end3: - end3 = end3 + 1 - - self.cropobj = (slice(start1, end1, None), slice(start2, end2, None), - slice(start3, end3, None)) - - - def get_structured_grid(self, **args): - self.update_coords() - dims = list(self.arr[self.cropobj].shape) - self.sg.points = self.coords - if "mode" in args: - if args["mode"] == "Phase": - arr1 = self.arr[self.cropobj].ravel() - arr = (np.arctan2(arr1.imag, arr1.real)) - else: - arr = np.abs(self.arr[self.cropobj].ravel()) - else: - arr = self.arr[self.cropobj].ravel() - if (arr.dtype == np.complex128 or arr.dtype == np.complex64): - self.sg.point_data.scalars = np.abs(arr) - self.sg.point_data.scalars.name = "Amp" - ph = tvtk.DoubleArray() - ph.from_array(np.arctan2(arr.imag, arr.real)) - ph.name = "Phase" - self.sg.point_data.add_array(ph) - else: - self.sg.point_data.scalars = arr - self.sg.dimensions = (dims[2], dims[1], dims[0]) - self.sg.extent = 0, dims[2] - 1, 0, dims[1] - 1, 0, dims[0] - 1 - return self.sg - - - def write_structured_grid(self, filename, **args): - sgwriter = tvtk.StructuredGridWriter() - sgwriter.file_type = 'binary' - if filename.endswith(".vtk"): - sgwriter.file_name = filename - else: - sgwriter.file_name = filename + '.vtk' - sgwriter.set_input_data(self.get_structured_grid()) - sgwriter.write() - print ('saved file', filename) - - -def shift(arr, s0, s1, s2): - shifted = np.roll(arr, s0, axis=0) - shifted = np.roll(shifted, s1, axis=1) - return np.roll(shifted, s2, axis=2) - - -def center_of_mass(arr): - tot = np.sum(arr) - dims = arr.shape - xyz = [] - griddims = [] - for d in dims: - griddims.append(slice(0, d)) - grid = np.ogrid[griddims] - for g in grid: - xyz.append(np.sum(arr * g) / tot) - com = np.asarray(xyz) - com = np.ma.round(com).astype(np.int) - return list(com) - - -def remove_ramp(arr, ups=3): - new_shape = list(arr.shape) - # pad zeros around arr, to the size of 3 times (ups = 3) of arr size - for i in range(len(new_shape)): - new_shape[i] = ups * new_shape[i] - padded = ut.get_zero_padded_centered(arr, new_shape) - padded_f = np.fft.fftshift(np.fft.fftn(np.fft.ifftshift(padded))) - com = ndi.center_of_mass(np.power(np.abs(padded_f), 2)) - sub_pixel_shifted = ut.sub_pixel_shift(padded_f, new_shape[0]/2.0-com[0], new_shape[1]/2.0-com[1], new_shape[2]/2.0-com[2]) - ramp_removed_padded = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(sub_pixel_shifted))) - ramp_removed = ut.crop_center(ramp_removed_padded, arr.shape) - - return ramp_removed - - -def center(image, support): - dims = image.shape - image, support = ut.get_centered_both(image, support) - - # place center of mass image*support in the center - for ax in range(len(dims)): - com = ndi.center_of_mass(np.absolute(image) * support) - image = shift(image, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) - support = shift(support, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) - - # set center phase to zero, use as a reference - phi0 = m.atan2(image.imag[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)], image.real[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)]) - image = image * np.exp(-1j * phi0) - - return image, support - - -def get_crop(params, shape): - crop = [] - for i in range(len(shape)): - if params.crop is None: - crop.append(shape[i]) - else: - crop.append(params.crop[i]) - if isinstance(crop[i], float): - crop[i] = int(crop[i]*shape[i]) - return crop - - -def save_CX(conf, image, support, coh, save_dir, last_scan): - image = np.swapaxes(image, 1,2) - image = np.swapaxes(image, 0,1) -# support = np.swapaxes(support, 1,2) -# support = np.swapaxes(support, 0,1) -# image, support = center(image, support) - params = DispalyParams(conf, last_scan) -# image = remove_ramp(image) - viz = CXDViz() - viz.set_array(image) - viz.set_geometry(params, image.shape) - crop = get_crop(params, image.shape) - viz.set_crop(crop[0], crop[1], crop[2]) # save image - image_file = os.path.join(save_dir, 'image') -# viz.write_structured_grid(image_file) -# viz.set_array(support) -# support_file = os.path.join(save_dir, 'support') -# viz.write_structured_grid(support_file) -# if coh is not None: -# coh = np.swapaxes(coh, 1, 2) -# # investigate if pad_center before fft or after -# coh = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(coh))).real -# coh = ut.get_zero_padded_centered(coh, image.shape) -# coh_file = os.path.join(save_dir, 'coherence') -# viz.set_array(coh) -# viz.write_structured_grid(coh_file) - -# a = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') -# remove_ramp(a, 3) From 04d918ed403a13ddacd309ddda112e5a0712447d Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 15:49:15 -0600 Subject: [PATCH 236/336] Delete diffractometer.py --- .../beamlines/aps_34id/diffractometer.py | 332 ------------------ 1 file changed, 332 deletions(-) delete mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/diffractometer.py diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/diffractometer.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/diffractometer.py deleted file mode 100644 index 01154e3..0000000 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/diffractometer.py +++ /dev/null @@ -1,332 +0,0 @@ -# ######################################################################### -# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # -# # -# See LICENSE file. # -# ######################################################################### - -import os -import numpy as np -import scipy.ndimage as ndi -import math as m -import pyevtk.hl as vtk -from tvtk.api import tvtk -import xrayutilities.experiment as xuexp -import reccdi.src_py.utilities.utils as ut -from reccdi.src_py.utilities.utils import measure -import reccdi.src_py.beamlines.aps_34id.spec as sput -import reccdi.src_py.beamlines.aps_34id.detectors as det - -__author__ = "Barbara Frosik" -__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." -__docformat__ = 'restructuredtext en' - -class DispalyParams: - """ - This class encapsulates parameters defining image display. The parameters are -read from config file on construction or whereever they may exist. This class is -basically an information agglomerator for the viz generation. - """ - - def __init__(self, config): - """ - The constructor gets config file and fills out the class members. - - Parameters - ---------- - conf : str - configuration file name - - Returns - ------- - none - """ - deg2rad = np.pi / 180.0 - try: - specfile = config['specfile'] - last_scan = config['last_scan'] - #get stuff from the spec file. - delta, gamma, theta, phi, chi, scanmot, scanmot_del, detdist, detector, energy = sput.parse_spec(specfile, last_scan) - self.delta = delta - self.gamma = gamma - self.theta = theta - self.phi = phi - self.chi = chi - self.detdist = detdist - self.energy = energy - self.scanmot=scanmot - self.scanmot_del=scanmot_del - self.detector=detector - - except Exception as e: - pass - # override the parsed parameters with entries in config file - try: - self.energy = config['energy'] - except KeyError: - print("energy from specfile") - pass - try: - self.delta = config['delta'] - except KeyError: - pass - try: - self.gamma = config['gamma'] - except KeyError: - pass - try: - self.theta = config['theta'] - except KeyError: - pass - try: - self.phi = config['phi'] - except KeyError: - pass - try: - self.chi = config['chi'] - except KeyError: - pass - try: - self.scanmot = config['scanmot'] - except KeyError: - pass - try: - self.scanmot_del = config['scanmot_del'] - except KeyError: - pass - try: - self.detdist = config['arm'] - except KeyError: - pass - try: - self.detector = config['detector'] - except KeyError: - pass - try: - self.detector_obj=det.getdetclass(self.detector) - except: - self.detector_obj = None - - try: - pixel = self.detector_obj.get_pixel() - pixelorientation=self.detector_obj.get_pixelorientation() - except: - pass - try: - pixel = config['pixel'] - except KeyError: - pass - try: - pixelorientation = config['pixelorientation'] - except KeyError: - pass - - pixel = pixel[1:-1] - self.pixel = pixel.split(',') - self.pixel[0], self.pixel[1] = float(self.pixel[0]), float(self.pixel[1]) - self.pixelorientation=pixelorientation[1:-1].split(',') - - try: - self.binning = [] - binning = config['binning'] - for i in range(len(binning)): - self.binning.append(binning[i]) - for _ in range(3 - len(self.binning)): - self.binning.append(1) - except KeyError: - self.binning = [1,1,1] - try: - self.crop = [] - crop = config['crop'] - for i in range(len(crop)): - self.crop.append(crop[i]) - for _ in range(3 - len(self.crop)): - self.crop.append(1.0) - crop[0], crop[1] = crop[1], crop[0] - except KeyError: - self.crop = None - - -class CXDViz(): - - cropx = 0.5 - cropy = 0.5 - cropz = 0.5 - dir_arrs={} - recip_arrs={} - - def __init__(self): - self.imd = tvtk.ImageData() - self.sg = tvtk.StructuredGrid() - pass - - - #def set_geometry(self, lam, delta, gamma, dpx, dpy, dth): - @measure - def set_geometry(self, p, shape): - self.params = p - px = p.pixel[0]*p.binning[0] - py = p.pixel[1]*p.binning[1] - detdist=p.detdist/1000.0 #convert to meters - energy=p.energy*1000 #x-ray energy in eV - - print("running the xrayutilities version and tvtk") - self.qc=xuexp.QConversion(['y+','z-','x-'], ['y+','x-'],(0,0,1),en=energy) - #compute for 4pixel (2x2) detector - self.qc.init_area(p.pixelorientation[0],p.pixelorientation[1], shape[0],shape[1], 2,2, distance=detdist, pwidth1=px, pwidth2=py) - - #vtrans=np.vectorize(self.qc.transformSample2Lab) -# - q1=np.array(self.qc.area(p.theta,p.chi,p.phi,p.delta,p.gamma,deg=True)) - #qshape=q1.shape - #q1=np.array(vtrans([q1[0,:,:].ravel(),q1[1,:,:].ravel(),q1[2,:,:].ravel()],p.theta,p.chi,p.phi)).reshape(qshape) - if p.scanmot.strip()=='th': - q2=np.array(self.qc.area(p.theta+p.scanmot_del,p.chi,p.phi,p.delta,p.gamma,deg=True)) - # q2=np.array(self.qc.transformSample2Lab([q2[0,:,:],q1[1,:,:],q1[2,:,:]],p.theta+p.scanmot_del,p.chi,p.phi)) - elif p.scanmot.strip()=='chi': - q2=np.array(self.qc.area(p.theta,p.chi+p.scanmot_del,p.phi,p.delta,p.gamma,deg=True)) - # q2=np.array(self.qc.transformSample2Lab([q2[0,:,:],q1[1,:,:],q1[2,:,:]],p.theta,p.chi+p.scanmot_del,p.phi)) - elif p.scanmot.strip()=='phi': - q2=np.array(self.qc.area(p.theta,p.chi,p.phi+p.scanmot_del,p.delta,p.gamma,deg=True)) - # q2=np.array(self.qc.transformSample2Lab([q2[0,:,:],q1[1,:,:],q1[2,:,:]],p.theta,p.chi,p.phi+p.scanmot_del)) - #Astar=q1[:,1,0]-q1[:,0,0] - #Bstar=q1[:,0,1]-q1[:,0,0] - #Cstar=(q2-q1)[:,0,0] - Astar=q1[:,1,0]-q1[:,0,0] - Bstar=q1[:,0,1]-q1[:,0,0] - Cstar=(q2-q1)[:,0,0] - print("Recip") - print(Astar, Bstar, Cstar) - Astar=self.qc.transformSample2Lab(Astar, p.theta,p.chi,p.phi) - Bstar=self.qc.transformSample2Lab(Bstar, p.theta,p.chi,p.phi) - Cstar=self.qc.transformSample2Lab(Cstar, p.theta,p.chi,p.phi) - - - - denom = np.dot(Astar, np.cross(Bstar, Cstar)) - A = 2 * m.pi * np.cross(Bstar, Cstar) / denom - B = 2 * m.pi * np.cross(Cstar, Astar) / denom - C = 2 * m.pi * np.cross(Astar, Bstar) / denom - - self.Trecip = np.zeros(9) - self.Trecip.shape = (3, 3) - self.Trecip[:, 0] = Astar - self.Trecip[:, 1] = Bstar - self.Trecip[:, 2] = Cstar -# self.Trecip[:, 0] = [2,0,1] -# self.Trecip[:, 1] = [0,1,0] -# self.Trecip[:, 2] = [0,0,1] - print(self.Trecip) - - self.Tdir = np.zeros(9) - self.Tdir.shape = (3, 3) - self.Tdir = np.array((A, B, C)).transpose() - print("Direct") - print(A,B,C) - print(self.Tdir) - - self.dirspace_uptodate=0 - self.recipspace_uptodate=0 - - def update_dirspace(self, shape): - print("Updating dirspace coords") - dims = list(shape) - self.dxdir = 1.0 / shape[0] - self.dydir = 1.0 / shape[1] - self.dzdir = 1.0 / shape[2] - - r = np.mgrid[ - 0:dims[0] * self.dxdir:self.dxdir, \ - 0:dims[1] * self.dydir:self.dydir,\ - 0:dims[2] * self.dzdir:self.dzdir] -# r = np.mgrid[ -# 0:dims[0]*self.dxdir:self.dxdir, \ -# (dims[1]-1)*self.dydir:-self.dydir:-self.dydir,\ -# 0:dims[2]*self.dzdir:self.dzdir] - - origshape=r.shape - r.shape = 3, dims[0] * dims[1] * dims[2] - #r = r.transpose() - - self.dir_coords = np.dot(self.Tdir, r).transpose() - -# self.dir_coords = self.dir_coords.transpose() -# self.dir_coords.shape=origshape - print("dir shape", self.dir_coords.shape) - self.dirspace_uptodate=1 - - def update_recipspace(self, shape): - dims = list(shape) - q = np.mgrid[ 0:dims[0], 0:dims[1], 0:dims[2]] - - origshape=q.shape - q.shape = 3, dims[0] * dims[1] * dims[2] - - self.recip_coords = np.dot(self.Trecip, q) - self.recip_coords.shape=origshape - self.recipspace_uptodate=1 - - def clear_direct_arrays(self): - self.dir_arrs.clear() - def clear_recip_arrays(self): - self.recip_arrs.clear() - - @measure - def add_array(self, array, name, space='direct', logentry=None): - - #Need to add something to ensure arrays are all the same dimension. - #Need to add crop of viz output arrays - if len(array.shape) < 3: - newdims = list(array.shape) - for i in range(3 - len(newdims)): - newdims.append(1) - array.shape = tuple(newdims) - print("adding array of shape ", array.shape) - if space=='direct': - self.dir_arrs[name]=array - if (not self.dirspace_uptodate): - self.update_dirspace(array.shape) - elif space=='recip': - self.recip_arrs[name]=array - if (not self.recipspace_uptodate): - self.update_recipspace(array.shape) - else: - return - - def get_ds_structured_grid(self, **args): - arr0=self.dir_arrs[list(self.dir_arrs.keys())[0]] - dims = list(arr0.shape) - self.sg.points = self.dir_coords - for a in self.dir_arrs.keys(): - arr=tvtk.DoubleArray() - arr.from_array(self.dir_arrs[a].ravel()) - arr.name=a - self.sg.point_data.add_array(arr) - - self.sg.dimensions = (dims[2], dims[1], dims[0]) - self.sg.extent = 0, dims[2] - 1, 0, dims[1] - 1, 0, dims[0] - 1 - return self.sg - - def write_directspace(self, filename, **args): - sgwriter = tvtk.XMLStructuredGridWriter() - #sgwriter.file_type = 'binary' - if filename.endswith(".vtk"): - sgwriter.file_name = filename - else: - sgwriter.file_name = filename + '.vts' - sgwriter.set_input_data(self.get_ds_structured_grid()) - sgwriter.write() - print ('saved file', filename) - - @measure - def write_directspace_pyevtk(self, filename, **args): - print(self.dir_arrs.keys()) - vtk.gridToVTK(filename, self.dir_coords[0,:,:,:].copy(), \ - self.dir_coords[1,:,:,:].copy(), \ - self.dir_coords[2,:,:,:].copy(), pointData=self.dir_arrs) - vtk.imageToVTK(filename, pointData=self.dir_arrs) - - def write_recipspace_pyevtk(self, filename, **args): - vtk.gridToVTK(filename, self.recip_coords[0,:,:,:].copy(), \ - self.recip_coords[1,:,:,:].copy(), \ - self.recip_coords[2,:,:,:].copy(), pointData=self.recip_arrs) - vtk.imageToVTK(filename, pointData=self.recip_arrs) From 884997d49ca06afc5868efa3533298ad8ff70fe4 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 15:52:55 -0600 Subject: [PATCH 237/336] Delete bridge_cpu.pyx --- .../reccdi/src_py/cyth/bridge_cpu.pyx | 72 ------------------- 1 file changed, 72 deletions(-) delete mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/cyth/bridge_cpu.pyx diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/cyth/bridge_cpu.pyx b/build/lib.linux-x86_64-2.7/reccdi/src_py/cyth/bridge_cpu.pyx deleted file mode 100644 index 615cc26..0000000 --- a/build/lib.linux-x86_64-2.7/reccdi/src_py/cyth/bridge_cpu.pyx +++ /dev/null @@ -1,72 +0,0 @@ -# ######################################################################### -# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # -# # -# See LICENSE file. # -# ######################################################################### - - -# distutils: language = c++ -# distutils: include_dirs = ['reccdi/include', '/home/beams/CXDUSER/CDI/arrayfire/include', '/home/beams/CXDUSER/CDI/libconfig/include',] -# distutils: sources = ['reccdi/src_cpp/bridge.cpp', 'reccdi/src_cpp/manager.cpp', 'reccdi/src_cpp/parameters.cpp', 'reccdi/src_cpp/pcdi.cpp', 'reccdi/src_cpp/resolution.cpp', 'reccdi/src_cpp/state.cpp', 'reccdi/src_cpp/support.cpp', 'reccdi/src_cpp/util.cpp', 'reccdi/src_cpp/worker.cpp'] -# distutils: libraries = ['afcpu', 'config++',] -# distutils: library_dirs = ['/home/beams/CXDUSER/CDI/arrayfire/lib64', '/home/beams/CXDUSER/CDI/libconfig/lib',] - -from libcpp.vector cimport vector -from libcpp.string cimport string - - -cdef extern from "../include/bridge.hpp": - cdef cppclass Bridge: - Bridge() except + - void StartCalcWithGuess(int, vector[float], vector[float], vector[float], vector[int], string) - void StartCalcWithGuessSupport(int, vector[float], vector[float], vector[float], vector[int], vector[int], string) - void StartCalcWithGuessSupportCoh(int, vector[float], vector[float], vector[float], vector[int], vector[int], vector[float], vector[int], string) - void StartCalc(int, vector[float], vector[int], string) - vector[double] GetImageR() - vector[double] GetImageI() - vector[double] GetErrors() - vector[float] GetSupportV() - vector[double] GetCoherenceV() - vector[double] GetReciprocalR() - vector[double] GetReciprocalI() - vector[int] GetFlowV() - vector[int] GetIterFlowV() - void Cleanup() - - -cdef class PyBridge: - cdef Bridge *thisptr - def __cinit__(self): - self.thisptr = new Bridge() - def __dealloc__(self): - del self.thisptr - def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): - self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) - def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): - self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) - def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): - self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) - def start_calc(self, device, data_r, dims, config): - self.thisptr.StartCalc(device, data_r, dims, config.encode()) - def get_image_r(self): - return self.thisptr.GetImageR() - def get_image_i(self): - return self.thisptr.GetImageI() - def get_errors(self): - return self.thisptr.GetErrors() - def get_support(self): - return self.thisptr.GetSupportV() - def get_coherence(self): - return self.thisptr.GetCoherenceV() - def get_reciprocal_r(self): - return self.thisptr.GetReciprocalR() - def get_reciprocal_i(self): - return self.thisptr.GetReciprocalI() - def get_flow(self): - return self.thisptr.GetFlowV() - def get_iter_flow(self): - return self.thisptr.GetIterFlowV() - def cleanup(self): - self.thisptr.Cleanup() - - From bb333c6dd01f0a39ebed2516ee6e1ce18dc9d3b6 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 15:53:16 -0600 Subject: [PATCH 238/336] Delete bridge_cuda.pyx --- .../reccdi/src_py/cyth/bridge_cuda.pyx | 70 ------------------- 1 file changed, 70 deletions(-) delete mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/cyth/bridge_cuda.pyx diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/cyth/bridge_cuda.pyx b/build/lib.linux-x86_64-2.7/reccdi/src_py/cyth/bridge_cuda.pyx deleted file mode 100644 index 7ea8cbc..0000000 --- a/build/lib.linux-x86_64-2.7/reccdi/src_py/cyth/bridge_cuda.pyx +++ /dev/null @@ -1,70 +0,0 @@ -# ######################################################################### -# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # -# # -# See LICENSE file. # -# ######################################################################### - - -# distutils: language = c++ -# distutils: include_dirs = ['reccdi/include', '/home/beams/CXDUSER/CDI/arrayfire/include', '/home/beams/CXDUSER/CDI/libconfig/include',] -# distutils: sources = ['reccdi/src_cpp/bridge.cpp', 'reccdi/src_cpp/manager.cpp', 'reccdi/src_cpp/parameters.cpp', 'reccdi/src_cpp/pcdi.cpp', 'reccdi/src_cpp/resolution.cpp', 'reccdi/src_cpp/state.cpp', 'reccdi/src_cpp/support.cpp', 'reccdi/src_cpp/util.cpp', 'reccdi/src_cpp/worker.cpp'] -# distutils: libraries = ['afcuda', 'config++',] -# distutils: library_dirs = ['/home/beams/CXDUSER/CDI/arrayfire/lib64', '/home/beams/CXDUSER/CDI/libconfig/lib',] - -from libcpp.vector cimport vector -from libcpp.string cimport string - -cdef extern from "../include/bridge.hpp": - cdef cppclass Bridge: - Bridge() except + - void StartCalcWithGuess(int, vector[float], vector[float], vector[float], vector[int], string) - void StartCalcWithGuessSupport(int, vector[float], vector[float], vector[float], vector[int], vector[int], string) - void StartCalcWithGuessSupportCoh(int, vector[float], vector[float], vector[float], vector[int], vector[int], vector[float], vector[int], string) - void StartCalc(int, vector[float], vector[int], string) - vector[double] GetImageR() - vector[double] GetImageI() - vector[double] GetErrors() - vector[float] GetSupportV() - vector[double] GetCoherenceV() - vector[double] GetReciprocalR() - vector[double] GetReciprocalI() - vector[int] GetFlowV() - vector[int] GetIterFlowV() - void Cleanup() - - -cdef class PyBridge: - cdef Bridge *thisptr - def __cinit__(self): - self.thisptr = new Bridge() - def __dealloc__(self): - del self.thisptr - def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): - self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) - def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): - self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) - def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): - self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) - def start_calc(self, device, data_r, dims, config): - self.thisptr.StartCalc(device, data_r, dims, config.encode()) - def get_image_r(self): - return self.thisptr.GetImageR() - def get_image_i(self): - return self.thisptr.GetImageI() - def get_errors(self): - return self.thisptr.GetErrors() - def get_support(self): - return self.thisptr.GetSupportV() - def get_coherence(self): - return self.thisptr.GetCoherenceV() - def get_reciprocal_r(self): - return self.thisptr.GetReciprocalR() - def get_reciprocal_i(self): - return self.thisptr.GetReciprocalI() - def get_flow(self): - return self.thisptr.GetFlowV() - def get_iter_flow(self): - return self.thisptr.GetIterFlowV() - def cleanup(self): - self.thisptr.Cleanup() - From 19b2b9ec18a0ea564bbab48b8b1c4af61dda3f67 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 15:53:35 -0600 Subject: [PATCH 239/336] Delete run_data.py --- .../reccdi/src_py/run_scripts/run_data.py | 29 ------------------- 1 file changed, 29 deletions(-) delete mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/run_data.py diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/run_data.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/run_data.py deleted file mode 100644 index 87064dd..0000000 --- a/build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/run_data.py +++ /dev/null @@ -1,29 +0,0 @@ -import reccdi.src_py.controller.data as dt -import sys -import argparse -import os - - -def data(experiment_dir): - print ('formating data') - prep_file = os.path.join(experiment_dir, 'prep', 'prep_data.tif') - if os.path.isfile(prep_file): - dt.prep(prep_file, experiment_dir) - else: - dirs = os.listdir(experiment_dir) - for dir in dirs: - if dir.startswith('scan'): - scan_dir = os.path.join(experiment_dir, dir) - prep_file = os.path.join(scan_dir, 'prep', 'prep_data.tif') - dt.prep(prep_file, scan_dir) - - -def main(arg): - parser = argparse.ArgumentParser() - parser.add_argument("experiment_dir", help="experiment directory") - args = parser.parse_args() - data(args.experiment_dir) - - -if __name__ == "__main__": - main(sys.argv[1:]) From c902af1ccea8b17421b0d86e3074cd76943cb63f Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 15:53:55 -0600 Subject: [PATCH 240/336] Delete reconstruction.py --- .../src_py/controller/reconstruction.py | 154 ------------------ 1 file changed, 154 deletions(-) delete mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/controller/reconstruction.py diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/reconstruction.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/reconstruction.py deleted file mode 100644 index 56edb32..0000000 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/reconstruction.py +++ /dev/null @@ -1,154 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -# ######################################################################### -# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # -# # -# See LICENSE file. # -# ######################################################################### - - -""" -Please make sure the installation :ref:`pre-requisite-reference-label` are met. -This module controls the reconstruction process. The user has to provide parameters such as type of processor, data, and configuration. -The processor specifies which library will be used by CFM (Calc Fast Module) that performs the processor intensive calculations. The module -can be run on cpu, or gpu. Depending on the gpu hardware and library, one can use opencl or cuda library. -The module starts the data preparation routines, calls for reconstruction using the CFM, and prepares the reconstructed data for -visualization. -""" - -import numpy as np -import os -import reccdi.src_py.controller.fast_module as calc -import reccdi.src_py.utilities.utils as ut -import reccdi.src_py.controller.reconstruction_multi as multi - - -__author__ = "Barbara Frosik" -__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." -__docformat__ = 'restructuredtext en' -__all__ = ['read_config', - 'reconstruction'] - - -def single_rec(proc, data, conf, config_map, dev, image, support, coh): - - """ - This function starts and returns results of reconstruction. The parameters must be initialized. - - Parameters - ---------- - proc : str - a string indicating the processor type - - data : numpy array - data array - - conf : str - configuration file name - - config_map : dict - parsed configuration - - image : numpy array - reconstructed image for further reconstruction, or None for initial - - support : numpy array - support of reconstructed image, or None - - coh : numpy array - coherence of reconstructed images, or None - - Returns - ------- - image : numpy array - reconstructed image - - support : numpy array - support of reconstructed images - - coh : numpy array - coherence of reconstructed images - - errs : list - list of errors (should we take the last error?) - """ - try: - coh_dims = tuple(config_map.partial_coherence_roi) - except: - coh_dims = None - image, support, coh, er, reciprocal, flow, iter_array = calc.fast_module_reconstruction(proc, dev, conf, data, coh_dims, image, support, coh) - - # errs contain errors for each iteration - return image, support, coh, er, reciprocal, flow, iter_array - - -def reconstruction(proc, conf_file, datafile, dir, dev): - """ - This function starts the reconstruction. It checks whether it is continuation of reconstruction defined by - configuration. If continuation, the arrays of image, support, coherence are read from cont_directory, - otherwise, they are initialized to None. After the arrays are initialized, they are passed for the reconstruction. - The results are saved in the configured directory. - - Parameters - ---------- - proc : str - a string indicating the processor type (cpu, opencl, cuda) - - data : numpy array - data array - - conf_info : str - configuration file name or experiment directory. If directory, the configuration file is - defined as /conf/config_rec - - config_map : dict - parsed configuration - - Returns - ------- - nothing - """ - data = ut.read_tif(datafile) - print ('data shape', data.shape) -# data = np.swapaxes(data, 0, 2) -# data = np.swapaxes(data, 0, 1) - - try: - config_map = ut.read_config(conf_file) - if config_map is None: - print("can't read configuration file " + conf_file) - return - except: - print('Cannot parse configuration file ' + conf_file + ' , check for matching parenthesis and quotations') - return - - cont = False - try: - if config_map.cont: - try: - continue_dir = config_map.continue_dir - image, support, coh = ut.read_results(continue_dir) - cont = True - except: - print("continue_dir not configured") - return None - except: - pass - - if not cont: - image = None - support = None - coh = None - - image, support, coh, errs, recips, flow, iter_array = single_rec(proc, data, conf_file, config_map, dev[0], image, support, coh) - if image is None: - return - - try: - save_dir = config_map.save_dir - except AttributeError: - filename = conf_file.split('/')[-1] - save_dir = os.path.join(dir, filename.replace('config_rec', 'results')) - - ut.save_results(image, support, coh, np.asarray(errs), recips, flow, iter_array, save_dir) From 47ead4a0bc4d87436b0722f2cd7ad19be35dad32 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 15:54:13 -0600 Subject: [PATCH 241/336] Delete fast_module.py --- .../reccdi/src_py/controller/fast_module.py | 189 ------------------ 1 file changed, 189 deletions(-) delete mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/controller/fast_module.py diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/fast_module.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/fast_module.py deleted file mode 100644 index b945ef2..0000000 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/fast_module.py +++ /dev/null @@ -1,189 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -# ######################################################################### -# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # -# # -# See LICENSE file. # -# ######################################################################### - - -""" -Please make sure the installation :ref:`pre-requisite-reference-label` are met. -This module controls the reconstruction process. The user has to provide parameters such as type of processor, data, and configuration. -The processor specifies which library will be used by CFM (Calc Fast Module) that performs the processor intensive calculations. The module -can be run on cpu, or gpu. Depending on the gpu hardware and library, one can use opencl or cuda library. -The module starts the data preparation routines, calls for reconstruction using the CFM, and prepares the reconstructed data for -visualization. -""" - -import numpy as np -import scipy.fftpack as sf -# import reccdi.src_py.cyth.bridge_cpu as bridge_cpu -# import reccdi.src_py.cyth.bridge_opencl as bridge_opencl -# import reccdi.src_py.cyth.bridge_cuda as bridge_cuda -import copy - - -__author__ = "Barbara Frosik" -__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." -__docformat__ = 'restructuredtext en' -__all__ = ['fast_module_reconstruction',] - - -def fast_module_reconstruction(proc, device, conf, data, coh_dims, image=None, support=None, coherence=None): - """ - This function calls a bridge method corresponding to the requested processor type. The bridge method is an access - to the CFM (Calc Fast Module). When reconstruction is completed the function retrieves results from the CFM. - The data received is max centered and the array is ordered "C". The CFM requires data zero-frequency component at - the center of the spectrum and "F" array order. Thus the data is modified at the beginning. - - Parameters - ---------- - proc : str - a string indicating the processor type - - device : int - device id assigned to this reconstruction - - conf : dict - configuration map - - data : array - a 3D np array containing pre-processed experiment data - - coh_dims : tuple - shape of coherence array - - image : numpy array - initial image for reconstruction or None - - support : numpy array - support corresponding to image or None - - coherence : numpy array - coherence corresponding to image - - Returns - ------- - image : numpy array - reconstructed image - - support : numpy array - support for reconstructed image - - coherence : numpy array - coherence for reconstructed image - - er : list - a vector containing errors for each iteration - """ - if proc == 'cpu': - import reccdi.src_py.cyth.bridge_cpu as bridge_cpu - fast_module = bridge_cpu.PyBridge() - elif proc == 'opencl': - import reccdi.src_py.cyth.bridge_opencl as bridge_opencl - fast_module = bridge_opencl.PyBridge() - elif proc == 'cuda': - import reccdi.src_py.cyth.bridge_cuda as bridge_cuda - fast_module = bridge_cuda.PyBridge() - - # shift data - #data = np.swapaxes(data,1,2) - #data = np.asfortranarray(sf.fftshift(data)) - data = sf.fftshift(data) - - dims = data.shape[::-1] -# dims1 = (dims[2], dims[1], dims[0]) - - print("data dims", dims) - data_l = data.flatten().tolist() - if image is None: - print("Running start_calc") - fast_module.start_calc(device, data_l, dims, conf) - #fast_module.start_calc(device, data_l, dims1, conf) - elif support is None: - # pass image -# image = np.swapaxes(image, 1, 0) -# image = np.swapaxes(image, 2, 0) - image = image.flatten() - fast_module.start_calc_with_guess(device, data_l, image.real.tolist(), image.imag.tolist(), dims, conf) - #fast_module.start_calc_with_guess(device, data_l, image.real.tolist(), image.imag.tolist(), dims1, conf) - elif coherence is None: - # pass image and support -# image = np.swapaxes(image, 1, 0) -# image = np.swapaxes(image, 2, 0) - image = image.flatten() -# support = np.swapaxes(support, 1, 0) -# support = np.swapaxes(support, 2, 0) - support = support.flatten() - fast_module.start_calc_with_guess_support(device, data_l, image.real.tolist(), image.imag.tolist(), support.tolist(), dims, conf) - #fast_module.start_calc_with_guess_support(device, data_l, image.real.tolist(), image.imag.tolist(), support.tolist(), dims1, conf) - else: - # pass image and support and coherence -# image = np.swapaxes(image, 1, 0) -# image = np.swapaxes(image, 2, 0) - image = image.flatten() -# support = np.swapaxes(support, 1, 0) -# support = np.swapaxes(support, 2, 0) - support = support.flatten() - coh_dims1 = (coh_dims[2], coh_dims[1], coh_dims[0]) -# coherence = np.swapaxes(coherence, 1, 0) -# coherence = np.swapaxes(coherence, 2, 0) - coherence = coherence.flatten() - - fast_module.start_calc_with_guess_support_coh(device, data_l, image.real.tolist(), image.imag.tolist(), support.tolist(), dims, coherence.tolist(), coh_dims, conf) - #fast_module.start_calc_with_guess_support_coh(device, data_l, image.real.tolist(), image.imag.tolist(), support.tolist(), dims1, coherence.tolist(), coh_dims1, conf) - - er = copy.deepcopy(fast_module.get_errors()) - if len(er) == 1 and er[0] == -1: - # run into Nan during reconstruction - fast_module.cleanup() - return None, None, None, None, None, None, None -# image_r = copy.deepcopy(np.asarray(fast_module.get_image_r())) -# image_i = copy.deepcopy(np.asarray(fast_module.get_image_i())) - image_r = np.asarray(fast_module.get_image_r()) - image_i = np.asarray(fast_module.get_image_i()) - image = image_r + 1j*image_i #no need to deepcopy the real and imag parts since this makes a new array - - # normalize image - #mx = max(np.absolute(image).ravel().tolist()) - mx=np.abs(image).max() - image = image/mx - - support = copy.deepcopy(np.asarray(fast_module.get_support())) - coherence = copy.deepcopy(np.asarray(fast_module.get_coherence())) - - image.shape=dims[::-1] - #image=np.ascontiguousarray(image) - #image = np.reshape(image, dims) -# image = np.swapaxes(image, 2, 0) -# image = np.swapaxes(image, 1, 0) - - support = np.reshape(support, dims[::-1]) -# support = np.swapaxes(support, 2, 0) -# support = np.swapaxes(support, 1, 0) - - if coherence.shape[0] > 1: - coherence = np.reshape(coherence, coh_dims[::-1]) -# coherence = np.swapaxes(coherence, 2, 0) -# coherence = np.swapaxes(coherence, 1, 0) - else: - coherence = None - - reciprocal_r = copy.deepcopy(np.asarray(fast_module.get_reciprocal_r())) - reciprocal_i = copy.deepcopy(np.asarray(fast_module.get_reciprocal_i())) - reciprocal = reciprocal_r + 1j*reciprocal_i - reciprocal = np.reshape(reciprocal, dims[::-1]) - #reciprocal = np.swapaxes(reciprocal, 2, 1) - reciprocal = sf.ifftshift(reciprocal) - - iter_array = copy.deepcopy(np.asarray(fast_module.get_iter_flow())) - flow = copy.deepcopy(list(fast_module.get_flow())) - flow_len = len(flow) - iter_array = np.reshape(iter_array, (flow_len, int(iter_array.shape[0]/flow_len))) - - fast_module.cleanup() - - return image, support, coherence, er, reciprocal, flow, iter_array - From f869edcccb246a3cda39961d3d491353b0ba707b Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 15:54:34 -0600 Subject: [PATCH 242/336] Delete prep.py --- .../reccdi/src_py/beamlines/aps_34id/prep.py | 288 ------------------ 1 file changed, 288 deletions(-) delete mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/prep.py diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/prep.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/prep.py deleted file mode 100644 index ec9c02a..0000000 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/prep.py +++ /dev/null @@ -1,288 +0,0 @@ -import pylibconfig2 as cfg -import numpy as np -import copy -import scipy.fftpack as sf -import os -import glob -import tifffile as tif -import reccdi.src_py.beamlines.aps_34id.spec as spec -import reccdi.src_py.utilities.utils as ut - - -def get_dir_list(scans, map): - """ - Returns list of sub-directories in data_dir with names matching range of scans - It will exclude scans within exclude_scans list if provided, and directories with fewer files than - min_files, if provided - :param scans: - :param map: - :return: - """ - try: - min_files = map.min_files - except: - min_files = 0 - try: - exclude_scans = map.exclude_scans - except: - exclude_scans = [] - try: - data_dir = map.data_dir.strip() - except: - print ('please provide data_dir') - return - - dirs = [] - for name in os.listdir(data_dir): - subdir = os.path.join(data_dir, name) - if os.path.isdir(subdir): - # exclude directories with fewer tif files than min_files - if len(glob.glob1(subdir, "*.tif")) < min_files and len(glob.glob1(subdir, "*.tiff")) < min_files: - continue - try: - index = int(name[-4:]) - if index >= scans[0] and index <= scans[1] and not index in exclude_scans: - dirs.append(subdir) - except: - continue - return dirs - - -def get_dark_white(darkfile, whitefile, det_area1, det_area2): - if darkfile is not None: - # find the darkfield array - dark_full = tif.imread(darkfile).astype(float) - # crop the corresponding quad or use the whole array, depending on what info was parsed from spec file - dark = dark_full[slice(det_area1[0], det_area1[0] + det_area1[1]), slice(det_area2[0], det_area2[0] + det_area2[1])] - else: - dark = None - - if whitefile is not None: - # find the whitefield array - white_full = tif.imread(whitefile).astype(float) - # crop the corresponding quad or use the whole array, depending on what info was parsed from spec file - white = white_full[slice(det_area1[0], det_area1[0] + det_area1[1]), slice(det_area2[0], det_area2[0] + det_area2[1])] - # set the bad pixels to some large value - white = np.where(white<5000, 1e20, white) #Some large value - else: - white = None - - return dark, white - - -def get_normalized_slice(file, dark, white): - # file is a tuple of slice and either background slice or None - slice = tif.TiffFile(file[0]).asarray() - if file[1] is not None: - slice = slice - tif.TiffFile(file[1]).asarray() - if dark is not None: - slice = np.where(dark > 5, 0, slice) #Ignore cosmic rays - # here would be code for correction for dead time - if white is not None: - slice = slice/white - slice *= 1e5 #Some medium value - slice = np.where(np.isnan(slice), 0, slice) - return slice - - -def read_scan(dir, dark, white): - files = [] - files_dir = {} - for file in os.listdir(dir): - if file.endswith('tif') or file.endswith('tiff'): - temp = file.split('.') - #it's assumed that the files end with four digits and 'tif' or 'tiff' extension - key = temp[0][-4:] - files_dir[key] = file - - ordered_keys = sorted(list(files_dir.keys())) - - for key in ordered_keys: - file = files_dir[key] - file = os.path.join(dir, file) - bg_file = file.replace('.tif', '_bg.tif') - if not os.path.isfile(bg_file): - bg_file = None - - files.append((file, bg_file)) - - # look at slice0 to find out shape - n = 0 - slice0 = get_normalized_slice(files[n], dark, white) - shape = (slice0.shape[0], slice0.shape[1], len(files)) - arr = np.zeros(shape, dtype=slice0.dtype) - arr[:,:,0] = slice0 - - #for i in range (1, len(files)): - for file in files[1:]: - n = n + 1 - slice = get_normalized_slice(file, dark, white) - arr[:,:,n] = slice - return arr - - -def shift(arr, shifty): - # pass the FT of the fftshifted array you want to shift - # you get back the actual array, not the FT. - dims = arr.shape - # scipy does normalize ffts! - ftarr = sf.fftn(arr) - r=[] - for d in dims: - r.append(slice(int(np.ceil(-d/2.)), int(np.ceil(d/2.)), None)) - idxgrid = np.mgrid[r] - for d in range(len(dims)): - ftarr *= np.exp(-1j*2*np.pi*shifty[d]*sf.fftshift(idxgrid[d])/float(dims[d])) - - shifted_arr = sf.ifftn(ftarr) - return shifted_arr - - -def combine_part(part_f, slice_sum, refpart, part): - # get cross correlation and pixel shift - cross_correlation = sf.ifftn(refpart*np.conj(part_f)) - corelated = np.array(cross_correlation.shape) - amp = np.abs(cross_correlation) - intshift = np.unravel_index(amp.argmax(), corelated) - shifted = np.array(intshift) - pixelshift = np.where(shifted>=corelated/2, shifted-corelated, shifted) - return slice_sum + shift(part, pixelshift) - - -def fit(arr, det_area1, det_area2): - # The det_area parameters hold the [beginning of image, size] in both dimensions. - # the beginning of image is relative to the full sensor image 512 x 512. - # if the full sensor was used for the image (i.e. the data size is 512x512) - # or if the image overleaps multiple quads, - # the quadrants need to be shifted - # check whether the image was taken with a single quad, then no shift is needed - if (det_area1[0] + det_area1[1] <= 256) and (det_area2[0] + det_area2[1] <= 256): - return arr - else: - b = np.zeros((517,516,arr.shape[2]),float) - tmp = np.zeros((512,512,arr.shape[2]),float) - tmp[det_area1[0]:det_area1[0]+det_area1[1],det_area2[0]:det_area2[0]+det_area2[1],:] = arr - b[:256,:256,:] = tmp[:256,:256,:] #Quad top left unchanged - b[:256,260:,:] = tmp[:256,256:,:] #Quad top right moved 4 right - b[261:,:256,:] = tmp[256:,:256,:] #Quad bot left moved 6 down - b[261:,260:,:] = tmp[256:,256:,:] #Quad bot right - - return b[det_area1[0]:det_area1[0]+det_area1[1],det_area2[0]:det_area2[0]+det_area2[1],:] - - -def prep_data(experiment_dir, scans, map, det_area1, det_area2, *args): - if scans is None: - print ('scan info not provided') - return - - # build sub-directories map - if len(scans) == 1: - scans.append(scans[0]) - dirs = get_dir_list(scans, map) - if len(dirs) == 0: - print ('no data directories found') - return - else: - if not os.path.exists(experiment_dir): - os.makedirs(experiment_dir) - - try: - whitefile = (map.whitefile).strip() - except: - whitefile = None - - try: - darkfile = (map.darkfile).strip() - except: - darkfile = None - - dark, white = get_dark_white(darkfile, whitefile, det_area1, det_area2) - - if len(dirs) == 0: - print ('there are no data directories for given scans') - return - - if len(dirs) == 1: - arr = read_scan(dirs[0], dark, white) - arr = fit(arr, det_area1, det_area2) - else: - # make the first part a reference - part = read_scan(dirs[0], dark, white) - part = fit(part, det_area1, det_area2) - slice_sum = np.abs(copy.deepcopy(part)) - refpart = sf.fftn(part) - for i in range (1, len(dirs)): - #this will load scans from each directory into an array part - part = read_scan(dirs[i], dark, white) - part = fit(part, det_area1, det_area2) - # add the arrays together - part_f = sf.fftn(part) - slice_sum = combine_part(part_f, slice_sum, refpart, part) - arr = np.abs(slice_sum).astype(np.int32) - - #arr = fit(arr, det_area1, det_area2) - - #create directory to save prepared data ,/prep - prep_data_dir = os.path.join(experiment_dir, 'prep') - if not os.path.exists(prep_data_dir): - os.makedirs(prep_data_dir) - data_file = os.path.join(prep_data_dir, 'prep_data.tif') - - ut.save_tif(arr, data_file) - print ('done with prep, shape:', arr.shape) - - -def prepare(experiment_dir, scans, conf_file, *args): - try: - with open(conf_file, 'r') as f: - config_map = cfg.Config(f.read()) - except Exception as e: - print('Please check the configuration file ' + conf_file + '. Cannot parse ' + str(e)) - return - - scan_end = scans[len(scans)-1] - try: - specfile = config_map.specfile.strip() - # parse det1 and det2 parameters from spec - det_area1, det_area2 = spec.get_det_from_spec(specfile, scan_end) - except: - try: - det_quad = config_map.det_quad - if det_quad == 0: - det_area1 = (0, 512) - det_area2 = (0, 512) - elif det_quad == 1: - det_area1 = (0, 256) - det_area2 = (0, 256) - elif det_quad == 2: - det_area1 = (0, 256) - det_area2 = (256, 512) - elif det_quad == 3: - det_area1 = (256, 512) - det_area2 = (0, 256) - elif det_quad == 4: - det_area1 = (256, 512) - det_area2 = (256, 512) - else: - print('the detector quad can be configured as digt from 0 to 4') - return - except Exception as e: - print('spec file or scan is not configured, and detector quad is not configured') - return - - try: - separate_scans = config_map.separate_scans - except: - separate_scans = False - - # data prep - # if separate scans, prepare data in each scan separately in subdirectory - if separate_scans and len(scans) > 1: - for scan in range (scans[0], scans[1]+1): - single_scan = [scan] - scan_exp_dir = os.path.join(experiment_dir, 'scan_' + str(scan)) - prep_data(scan_exp_dir, single_scan, config_map, det_area1, det_area2, args) - else: - prep_data(experiment_dir, scans, config_map, det_area1, det_area2, args) - - From f12cf290ff6948d87d2ed6cdda1a03e4f36bfb76 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 15:54:49 -0600 Subject: [PATCH 243/336] Delete bridge_opencl.pyx --- .../reccdi/src_py/cyth/bridge_opencl.pyx | 70 ------------------- 1 file changed, 70 deletions(-) delete mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/cyth/bridge_opencl.pyx diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/cyth/bridge_opencl.pyx b/build/lib.linux-x86_64-2.7/reccdi/src_py/cyth/bridge_opencl.pyx deleted file mode 100644 index ddcc913..0000000 --- a/build/lib.linux-x86_64-2.7/reccdi/src_py/cyth/bridge_opencl.pyx +++ /dev/null @@ -1,70 +0,0 @@ -# ######################################################################### -# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # -# # -# See LICENSE file. # -# ######################################################################### - - -# distutils: language = c++ -# distutils: include_dirs = ['reccdi/include', '/home/beams/CXDUSER/CDI/arrayfire/include', '/home/beams/CXDUSER/CDI/libconfig/include',] -# distutils: sources = ['reccdi/src_cpp/bridge.cpp', 'reccdi/src_cpp/manager.cpp', 'reccdi/src_cpp/parameters.cpp', 'reccdi/src_cpp/pcdi.cpp', 'reccdi/src_cpp/resolution.cpp', 'reccdi/src_cpp/state.cpp', 'reccdi/src_cpp/support.cpp', 'reccdi/src_cpp/util.cpp', 'reccdi/src_cpp/worker.cpp'] -# distutils: libraries = ['afopencl', 'config++',] -# distutils: library_dirs = ['/home/beams/CXDUSER/CDI/arrayfire/lib64', '/home/beams/CXDUSER/CDI/libconfig/lib',] - -from libcpp.vector cimport vector -from libcpp.string cimport string - -cdef extern from "../include/bridge.hpp": - cdef cppclass Bridge: - Bridge() except + - void StartCalcWithGuess(int, vector[float], vector[float], vector[float], vector[int], string) - void StartCalcWithGuessSupport(int, vector[float], vector[float], vector[float], vector[int], vector[int], string) - void StartCalcWithGuessSupportCoh(int, vector[float], vector[float], vector[float], vector[int], vector[int], vector[float], vector[int], string) - void StartCalc(int, vector[float], vector[int], string) - vector[double] GetImageR() - vector[double] GetImageI() - vector[double] GetErrors() - vector[float] GetSupportV() - vector[double] GetCoherenceV() - vector[double] GetReciprocalR() - vector[double] GetReciprocalI() - vector[int] GetFlowV() - vector[int] GetIterFlowV() - void Cleanup() - - -cdef class PyBridge: - cdef Bridge *thisptr - def __cinit__(self): - self.thisptr = new Bridge() - def __dealloc__(self): - del self.thisptr - def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): - self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) - def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): - self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) - def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): - self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) - def start_calc(self, device, data_r, dims, config): - self.thisptr.StartCalc(device, data_r, dims, config.encode()) - def get_image_r(self): - return self.thisptr.GetImageR() - def get_image_i(self): - return self.thisptr.GetImageI() - def get_errors(self): - return self.thisptr.GetErrors() - def get_support(self): - return self.thisptr.GetSupportV() - def get_coherence(self): - return self.thisptr.GetCoherenceV() - def get_reciprocal_r(self): - return self.thisptr.GetReciprocalR() - def get_reciprocal_i(self): - return self.thisptr.GetReciprocalI() - def get_flow(self): - return self.thisptr.GetFlowV() - def get_iter_flow(self): - return self.thisptr.GetIterFlowV() - def cleanup(self): - self.thisptr.Cleanup() - From 4d2b6aa3ec01cbe2ee0a29700f8496f5ed8915a6 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 15:55:06 -0600 Subject: [PATCH 244/336] Delete run_34id_prepare.py --- .../src_py/run_scripts/run_34id_prepare.py | 119 ------------------ 1 file changed, 119 deletions(-) delete mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/run_34id_prepare.py diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/run_34id_prepare.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/run_34id_prepare.py deleted file mode 100644 index e230cd6..0000000 --- a/build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/run_34id_prepare.py +++ /dev/null @@ -1,119 +0,0 @@ -import argparse -import pylibconfig2 as cfg -import sys -import os -import reccdi.src_py.beamlines.aps_34id.prep as prep -import reccdi.src_py.utilities.parse_ver as ver -import shutil - - -def prepare(experiment_dir, scan_range, conf_file): - prep.prepare(experiment_dir, scan_range, conf_file) - - return experiment_dir - - -def copy_conf(src, dest): - try: - main_conf = os.path.join(src, 'config_prep') - shutil.copy(main_conf, dest) - conf_data = os.path.join(src, 'config_data') - shutil.copy(conf_data, dest) - conf_rec = os.path.join(src, 'config_rec') - shutil.copy(conf_rec, dest) - conf_disp = os.path.join(src, 'config_disp') - shutil.copy(conf_disp, dest) - except: - pass - - -def parse_and_prepare(prefix, scan, conf_dir): - id = prefix + '_' + scan - print ('reading data files for experiment ' + id) - - if not os.path.isdir(conf_dir): - print ('configured directory ' + conf_dir + ' does not exist') - return - - main_conf = os.path.join(conf_dir, 'config') - if not os.path.isfile(main_conf): - print ('the configuration directory does not contain "config" file') - return - - try: - # convert it to list of int - scan_range = scan.split('-') - scan_num = [] - for i in range(len(scan_range)): - scan_num.append(int(scan_range[i])) - except: - print ('enter numeric values for scan range') - return - - if not ver.ver_config_prep(main_conf): - return - - try: - with open(main_conf, 'r') as f: - config_map = cfg.Config(f.read()) - except Exception as e: - print ('Please check the configuration file ' + main_conf + '. Cannot parse ' + str(e)) - return - - try: - working_dir = config_map.working_dir.strip() - except: - working_dir = os.getcwd() - - experiment_dir = os.path.join(working_dir, id) - if not os.path.exists(experiment_dir): - os.makedirs(experiment_dir) - # copy config_data, config_rec, cofig_disp files from cofig directory into the experiment conf directory - experiment_conf_dir = os.path.join(experiment_dir, 'conf') - if not os.path.exists(experiment_conf_dir): - os.makedirs(experiment_conf_dir) - - experiment_main_config = os.path.join(experiment_conf_dir, 'config') - conf_map = {} - conf_map['working_dir'] = '"' + working_dir + '"' - conf_map['experiment_id'] = '"' + prefix + '"' - conf_map['scan'] = '"' + scan + '"' - temp_file = os.path.join(experiment_conf_dir, 'temp') - with open(temp_file, 'a') as f: - for key in conf_map: - value = conf_map[key] - if len(value) > 0: - f.write(key + ' = ' + conf_map[key] + '\n') - f.close() - if not ver.ver_config(temp_file): -# os.remove(temp_file) - print('please check the entered parameters. Cannot save this format') - else: - shutil.copy(temp_file, experiment_main_config) - os.remove(temp_file) - - copy_conf(conf_dir, experiment_conf_dir) - prep_conf = os.path.join(experiment_conf_dir, 'config_prep') - if os.path.isfile(prep_conf): - prep.prepare(experiment_dir, scan_num, prep_conf) - else: - print ('missing ' + prep_conf + ' file') - - return experiment_dir - - -def main(arg): - parser = argparse.ArgumentParser() - parser.add_argument("id", help="prefix to name of the experiment/data reconstruction") - parser.add_argument("scan", help="a range of scans to prepare data from") - parser.add_argument("conf_dir", help="directory where the configuration files are located") - args = parser.parse_args() - scan = args.scan - id = args.id - conf_dir = args.conf_dir - - return parse_and_prepare(id, scan, conf_dir) - - -if __name__ == "__main__": - exit(main(sys.argv[1:])) From d3270e49639b113c5f0e1d9ea567a9c2bb9b10a6 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 15:55:22 -0600 Subject: [PATCH 245/336] Delete viz_util_dirdemo.py --- .../src_py/utilities/viz_util_dirdemo.py | 42 ------------------- 1 file changed, 42 deletions(-) delete mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/viz_util_dirdemo.py diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/viz_util_dirdemo.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/viz_util_dirdemo.py deleted file mode 100644 index 7da7654..0000000 --- a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/viz_util_dirdemo.py +++ /dev/null @@ -1,42 +0,0 @@ -if __name__ =="__main__": - import numpy as np - import math as m - import tifffile as tif - import tools as t - import viz_util_xu as vu - import prep_noconfig as prep - import os - - #binning of the data, this is not actually done, it's to account for previous binning in the saved data. - dbin1=2 - dbin2=2 - dir="/Users/rharder/Box/cdi-master/reccdi/src_py/utilities/NX2019a-3_483/results" - fname=os.path.join(dir,"image.npy") - #a=t.read_tif("cropped.tif").copy() #copy ensures array is contiguous which pyevtk needs - #b=prep.read_scan("/Users/rharder/Desktop/cropped", None, None) - a=np.load(fname)[:-28,:,:] - -# tif.imsave("RawDiffraction.tif", b) -# print("raw data",b.shape) -# print("imagejsave",a.shape) - - #scan info. - lam=1.37 #wavelength - delta=33.0*m.pi/180 #detector angle 1 - gamma=11.0*m.pi/180 #detector angle 2 - dpx=55e-6/0.500 #pixel size divided by detector dist - dpy=55e-6/0.500 - dth=0.01*m.pi/180 #rocking curve scan step. Everything in radians - - vr=vu.CXDViz() - vr.set_geometry(lam, delta, gamma, dbin1*dpx, dbin2*dpy, dth) - vr.add_array(abs(a), "imamp", space='direct') - #vr.add_array(np.angle(a), "imph", space='direct') - vr.write_directspace("dirtest.vtk") - - - -# q=vr.recip_coords -# qmag=np.sqrt(q[0,:,:,:]**2 + q[1,:,:,:]**2 + q[2,:,:,:]**2) -# vr.add_array(qmag, "qmag", space='recip') #add a second property that can be used for color in viz. -# vr.write_recipspace("RawDiffraction") From 5f5cadff5b9dc1027fcc69ba247c934a118ecee2 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 15:55:39 -0600 Subject: [PATCH 246/336] Delete utils_ga.py --- .../reccdi/src_py/utilities/utils_ga.py | 219 ------------------ 1 file changed, 219 deletions(-) delete mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/utils_ga.py diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/utils_ga.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/utils_ga.py deleted file mode 100644 index 747ad80..0000000 --- a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/utils_ga.py +++ /dev/null @@ -1,219 +0,0 @@ - -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -# ######################################################################### -# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # -# # -# See LICENSE file. # -# ######################################################################### - -""" -Please make sure the installation :ref:`pre-requisite-reference-label` are met. -This module is a suite of utility mehods. -""" - -import scipy as sci -import numpy as np -import reccdi.src_py.utilities.utils as ut - - -__author__ = "Barbara Frosik" -__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." -__docformat__ = 'restructuredtext en' -__all__ = ['get_array_from_tif', - 'get_opencl_dim', - 'binning', - 'get_centered', - 'adjust_dimensions', - 'crop_center', - 'flip'] - -def cross_correlation(a, b): - A = np.fft.ifftshift(np.fft.fftn(np.fft.fftshift(conj_reflect(a)))) - B = np.fft.ifftshift(np.fft.fftn(np.fft.fftshift(b))) - CC = A * B - return np.fft.ifftshift(np.fft.ifftn(np.fft.fftshift(CC))) - - -def conj_reflect(arr): - F = np.fft.ifftshift(np.fft.fftn(np.fft.fftshift(arr))) - return np.fft.ifftshift(np.fft.ifftn(np.fft.fftshift(np.conj(F)))) - - -def check_get_conj_reflect(arr1, arr2): - support1 = ut.shrink_wrap(abs(arr1), .1, .1) - support2 = ut.shrink_wrap(abs(arr2), .1, .1) - cc1 = cross_correlation(support1, ut.shrink_wrap(conj_reflect(arr2), .1, .1)) - cc2 = cross_correlation(support1, support2) - if np.amax(cc1) > np.amax(cc2): - return conj_reflect(arr2) - else: - return arr2 - - -def dftups(arr, nor=-1, noc=-1, usfac=2, roff=0, coff=0): - # arr is 2D - [nr,nc] = arr.shape - if nor < 0: - nor = nr - if noc < 0: - noc = nc - - # Compute kernels and obtain DFT by matrix products - yl = list(range(-int(np.floor(nc/2)), nc - int(np.floor(nc/2)))) - y = np.fft.ifftshift(np.array(yl)) * (-2j * np.pi/(nc * usfac)) - xl = list(range(-coff, noc - coff)) - x = np.array(xl) - yt = np.tile(y, (len(xl), 1)) - xt = np.tile(x, (len(yl), 1)) - kernc = np.exp(yt.T * xt) - - yl = list(range(-roff, nor - roff)) - y = np.array(yl) - xl = list(range(-int(np.floor(nr/2)), nr - int(np.floor(nr/2)))) - x = np.fft.ifftshift(np.array(xl)) - yt = np.tile(y, (len(xl), 1)) - xt = np.tile(x, (len(yl), 1)) - kernr = np.exp(yt * xt.T * (-2j * np.pi/(nr * usfac))) - - return np.dot(np.dot(kernr.T, arr), kernc) - - -def dftregistration(ref_arr, arr, usfac=2): - #arrays are 2D - # based on Matlab dftregistration by Manuel Guizar (Portions of this code were taken from code written by - # Ann M. Kowalczyk and James R. Fienup. - if usfac < 2: - print ('usfac less than 2 not supported') - # will throw exception - return - # First upsample by a factor of 2 to obtain initial estimate - # Embed Fourier data in a 2x larger array - shape = ref_arr.shape - large_shape = tuple(2 * x for x in ref_arr.shape) - c_c = ut.get_zero_padded_centered(np.fft.fftshift(ref_arr) * np.conj(np.fft.fftshift(arr)), large_shape) - - # Compute crosscorrelation and locate the peak - c_c = np.fft.ifft2(np.fft.ifftshift(c_c)) - max_coord = list(np.unravel_index(np.argmax(c_c), c_c.shape)) - - if max_coord[0] > shape[0]: - row_shift = max_coord[0] - large_shape[0] - else: - row_shift = max_coord[0] - if max_coord[1] > shape[1]: - col_shift = max_coord[1] - large_shape[1] - else: - col_shift = max_coord[1] - - row_shift = row_shift/2 - col_shift = col_shift/2 - - #If upsampling > 2, then refine estimate with matrix multiply DFT - if usfac > 2: - # DFT computation - # Initial shift estimate in upsampled grid - row_shift = round(row_shift * usfac)/usfac - col_shift = round(col_shift * usfac)/usfac - dftshift = np.fix(np.ceil(usfac * 1.5)/2) # Center of output array at dftshift - # Matrix multiply DFT around the current shift estimate - c_c = np.conj(dftups(arr * np.conj(ref_arr), int(np.ceil(usfac * 1.5)), int(np.ceil(usfac * 1.5)), usfac, - int(dftshift-row_shift * usfac), int(dftshift-col_shift * usfac)))/\ - (int(np.fix(shape[0]/2)) * int(np.fix(shape[1]/2)) * usfac^2) - # Locate maximum and map back to original pixel grid - max_coord = list(np.unravel_index(np.argmax(c_c), c_c.shape)) - [rloc, cloc] = max_coord - - rloc = rloc - dftshift - cloc = cloc - dftshift - row_shift = row_shift + rloc/usfac - col_shift = col_shift + cloc/usfac - - return row_shift, col_shift - - -def register_3d_reconstruction(ref_arr, arr): - r_shift_2, c_shift_2 = dftregistration(np.fft.fft2(np.sum(ref_arr, 2)), np.fft.fft2(np.sum(arr, 2)), 100) - r_shift_1, c_shift_1 = dftregistration(np.fft.fft2(np.sum(ref_arr, 1)), np.fft.fft2(np.sum(arr, 1)), 100) - r_shift_0, c_shift_0 = dftregistration(np.fft.fft2(np.sum(ref_arr, 0)), np.fft.fft2(np.sum(arr, 0)), 100) - - shift_2 = sum([r_shift_2, r_shift_1]) * 0.5 - shift_1 = sum([c_shift_2, r_shift_0]) * 0.5 - shift_0 = sum([c_shift_1, c_shift_0]) * 0.5 - return shift_2, shift_1, shift_0 - - -def print_max(arr): - max_coord = list(np.unravel_index(np.argmax(abs(arr)), arr.shape)) - print ('max coord, value', abs(arr[max_coord[0],max_coord[1],max_coord[2]]), max_coord) - -def zero_phase(arr, val=0): - ph = np.angle(arr) - support = ut.shrink_wrap(abs(arr), .2, .5) #get just the crystal, i.e very tight support - avg_ph = np.sum(ph * support)/np.sum(support) - ph = ph - avg_ph + val - return abs(arr) * np.exp(1j * ph) - - -def zero_phase_cc(arr1, arr2): - # will set array1 avg phase to array2 - c_c = np.conj(arr1) * arr2 - c_c_tot = np.sum(c_c) - ph = np.angle(c_c_tot) - arr = arr1 * np.exp(1j * ph) - return arr - - -def align_arrays(ref_arr, arr): - (shift_2, shift_1, shift_0) = register_3d_reconstruction(abs(ref_arr), abs(arr)) - return ut.sub_pixel_shift(arr, shift_2, shift_1, shift_0) - -# ref_arr = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') -# arr = np.load('/home/phoebus/BFROSIK/temp/test/B_78-97/results/image.npy') -# l = align_arrays(ref_arr, arr) - -def sum_phase_tight_support(arr): - arr = zero_phase(arr) - ph = np.arctan2(arr.imag, arr.real) - support = ut.shrink_wrap(abs(arr), .2, .5) - return sum( abs(ph * support)) - - -def get_arr_characteristic(arr): - lev1_norm = sum(abs(arr)) - sharpness = sum(abs(arr)^4) - summed_phase = sum_phase_tight_support(arr) - support = ut.shrink_wrap(arr, .2, .5) - area = sum(support) - gradients = np.gradient(arr) - TV = np.zeros(arr.shape) - for gr in gradients: - TV += abs(gr) - return lev1_norm, sharpness, summed_phase, area, TV - - -# def align_iterates(arrs): -# #assume arrs[0] is the referrence array -# alpha = arrs[0] -# for i in range(1, len(arrs)): -# arr = check_get_conj_reflect(abs(alpha), abs(arr)) -# shift_2, shift_1, shift_0 = register_3d_reconstruction(abs(alpha), abs(arr)) -# arrs[i] = sub_pixel_shift(arr, round(shift_2), round(shift_1), round(shift_2)) -# return arrs - - -# def test(a,b): -# alpha = zero_phase(a, 0) -# beta = zero_phase(b, 0) -# alpha = check_get_conj_reflect(beta, alpha) -# alpha_s = align_arrays(beta, alpha) -# alpha_s = zero_phase(alpha_s, 0) -# ph_alpha = np.angle(alpha_s) -# beta = zero_phase_cc(beta, alpha_s) -# ph_beta = np.angle(beta) -# beta = np.sqrt(abs(alpha_s) * abs(beta)) * np.exp(0.5j * (ph_beta + ph_alpha)) -# -# a = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') -# b = np.load('/home/phoebus/BFROSIK/temp/test/B_78-97/results/image.npy') -# test(a, b) \ No newline at end of file From 4b176b3d9c4b0c486279b43617155ac517d40863 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 15:55:54 -0600 Subject: [PATCH 247/336] Delete tools.py --- .../reccdi/src_py/utilities/tools.py | 537 ------------------ 1 file changed, 537 deletions(-) delete mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/tools.py diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/tools.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/tools.py deleted file mode 100644 index aa13a3b..0000000 --- a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/tools.py +++ /dev/null @@ -1,537 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -# ######################################################################### -# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # -# # -# See LICENSE file. # -# ######################################################################### - -""" -Please make sure the installation :ref:`pre-requisite-reference-label` are met. -This module is a suite of utility mehods. -""" - -import tifffile as tf -import numpy as np -import os -import logging -import stat - -__author__ = "Barbara Frosik" -__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." -__docformat__ = 'restructuredtext en' -__all__ = ['read_tif', - 'get_opencl_dim', - 'binning', - 'get_centered', - 'adjust_dimensions', - 'crop_center', - 'flip'] - - -def get_logger(name, ldir=''): - logger = logging.getLogger(name) - logger.setLevel(logging.DEBUG) - log_file = os.path.join(ldir, 'default.log') - fh = logging.FileHandler(log_file) - fh.setLevel(logging.DEBUG) - formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') - fh.setFormatter(formatter) - logger.addHandler(fh) - return logger - - -def read_tif(filename): - """ - This method reads tif type file containing experiment data and returns the data as array. - Parameters - ---------- - filename : str - a filename containing the experiment data - Returns - ------- - data : array - an array containing the experiment data - """ - - ar = tf.imread(filename) - ar = np.swapaxes(ar, 0, 2) -# ar = np.swapaxes(ar, 0, 1) - return ar - - -def save_tif(arr, tif_file): - arr = np.swapaxes(arr, 0, 2) - arr = np.swapaxes(arr, 1, 2) - tf.imsave(tif_file, arr.astype(np.int32)) - - -def get_good_dim(dim): - """ - This function calculates the dimension supported by opencl library (i.e. is multiplier of 2,3, or 5) and is closest to the - given starting dimension, and spaced by the given step. - If the dimension is not supported the function adds step value and verifies the new dimension. It iterates until it finds - supported value. - Parameters - ---------- - dim : int - a dimension that needs to be tranformed to one that is supported by the opencl library, if it is not already - - step : int - a delta to increase the dimension - Returns - ------- - dim : int - a dimension that is supported by the opencl library, and closest to the original dimension by n*step - """ - - def is_correct(x): - sub = x - if sub % 3 == 0: - sub = sub / 3 - if sub % 3 == 0: - sub = sub / 3 - if sub % 5 == 0: - sub = sub / 5 - while sub % 2 == 0: - sub = sub / 2 - return sub == 1 - - new_dim = dim - if new_dim % 2 == 1: - new_dim += 1 - while not is_correct(new_dim): - new_dim += 2 - return new_dim - - -def get_opencl_dim1(dim, step): - """ - This function calculates the dimension supported by opencl library (i.e. is multiplier of 2,3, or 5) and is closest to the - given starting dimension, and spaced by the given step. - If the dimension is not supported the function adds step value and verifies the new dimension. It iterates until it finds - supported value. - Parameters - ---------- - dim : int - a dimension that needs to be tranformed to one that is supported by the opencl library, if it is not already - - step : int - a delta to increase the dimension - Returns - ------- - dim : int - a dimension that is supported by the opencl library, and closest to the original dimension by n*step - """ - - def is_correct(x): - sub = x - while sub % 2 == 0: - sub = sub / 2 - while sub % 3 == 0: - sub = sub / 3 - while sub % 5 == 0: - sub = sub / 5 - return sub == 1 - - new_dim = dim - while not is_correct(new_dim): - new_dim += step - return new_dim - - -def binning(array, binsizes): - """ - This function does the binning of the array. The array is binned in each dimension by the corresponding binsizes elements. - If binsizes list is shorter than the array dimensions, the remaining dimensions are not binned. The elements in - a bucket are summed. - Parameters - ---------- - array : array - the original array to be binned - - binsizes : list - a list defining binning buckets for corresponding dimensions - Returns - ------- - array : array - the binned array - """ - - data_dims = array.shape - # trim array - for ax in range(len(binsizes)): - cut_slices = range(data_dims[ax] - data_dims[ax] % binsizes[ax], data_dims[ax]) - array = np.delete(array, cut_slices, ax) - - binned_array = array - new_shape = list(array.shape) - - for ax in range(len(binsizes)): - if binsizes[ax] > 1: - new_shape[ax] = binsizes[ax] - new_shape.insert(ax, int(array.shape[ax] / binsizes[ax])) - binned_array = np.reshape(binned_array, tuple(new_shape)) - binned_array = np.sum(binned_array, axis=ax + 1) - new_shape = list(binned_array.shape) - return binned_array - - -# ar = np.asarray([1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9]) -# ar.resize((5,9)) -# print ('ar', ar) -# b = binning(ar, (2,2)) -# print ('b',b) -# c = binning1(ar,(2,2)) -# print ('c',c) - - -def get_centered(arr, center_shift): - """ - This function finds a greatest value in the array, and puts it in a center of a new array. If center_shift is - not zeros, the array will be shifted accordingly. The shifted elements are rolled into the other end of array. - Parameters - ---------- - arr : array - the original array to be centered - center_shift : list - a list defining shift of the center - Returns - ------- - array : array - the centered array - """ - max_coordinates = list(np.unravel_index(np.argmax(arr), arr.shape)) - max_coordinates = np.add(max_coordinates, center_shift) - shape = arr.shape - centered = arr - for i in range(len(max_coordinates)): - centered = np.roll(centered, int(shape[i] / 2) - max_coordinates[i], i) - - return centered - - -def get_centered_both(arr, support): - """ - This function finds a greatest value in the array, and puts it in a center of a new array. If center_shift is - not zeros, the array will be shifted accordingly. The shifted elements are rolled into the other end of array. - Parameters - ---------- - arr : array - the original array to be centered - support : array - the associated array shifted the same way centered array is - Returns - ------- - centered : array - the centered array - """ - max_coordinates = list(np.unravel_index(np.argmax(arr), arr.shape)) - shape = arr.shape - centered = arr - centered_supp = support - for i in range(len(max_coordinates)): - centered = np.roll(centered, int(shape[i] / 2) - max_coordinates[i], i) - centered_supp = np.roll(centered_supp, int(shape[i] / 2) - max_coordinates[i], i) - - return centered, centered_supp - - -def get_zero_padded_centered(arr, new_shape): - """ - This function pads the array with zeros to the new shape with the array in the center. - Parameters - ---------- - arr : array - the original array to be padded and centered - new_shape : tuple - a list of new dimensions - Returns - ------- - array : array - the zero padded centered array - """ - shape = arr.shape - pad = [] - c_vals = [] - for i in range(len(new_shape)): - pad.append((0, new_shape[i] - shape[i])) - c_vals.append((0.0, 0.0)) - arr = np.lib.pad(arr, (pad), 'constant', constant_values=c_vals) - - centered = arr - for i in range(len(new_shape)): - centered = np.roll(centered, int((new_shape[i] - shape[i] + 1) / 2), i) - - return centered - - -def adjust_dimensions(arr, pads): - """ - This function adds to or subtracts from each dimension of the array elements defined by pad. If the pad is positive, - the array is padded in this dimension. If the pad is negative, the array is cropped. - The dimensions of the new array are supported by the opencl library. - Parameters - ---------- - arr : array - the array to pad/crop - pad : list - list of three pad values, for each dimension - Returns - ------- - array : array - the padded/cropped array - """ - # logger = get_logger('adjust_dimensions') - old_dims = arr.shape - start = [] - stop = [] - for i in range(len(old_dims)): - pad = pads[i] - first = max(0, -pad[0]) - last = old_dims[i] - max(0, -pad[1]) - if first >= last: - print ('the crop exceeds size, please change the crop and run again') - return None - else: - start.append(first) - stop.append(last) - - cropped = arr[ start[0]:stop[0], start[1]:stop[1], start[2]:stop[2] ] - # logger.info('cutting from to ' + str(crop[0]) + ', ' + str(old_dims[0]-crop[1]) + ', ' + str(crop[2]) + ', ' \ - # + str(old_dims[1]-crop[3]) + ', ' + str(crop[4]) + ', ' + str(old_dims[2]-crop[5])) - dims = cropped.shape - c_vals = [] - new_pad = [] - for i in range(len(dims)): - pad = pads[i] - # find a good dimension and find padding - temp_dim = old_dims[i] + pad[0] + pad[1] - new_dim = get_good_dim(temp_dim) - added = new_dim - temp_dim - # if the pad is positive - pad_front = max(0, pad[0]) + int(added / 2) - pad_end = new_dim - dims[i] - pad_front - new_pad.append((pad_front, pad_end)) - c_vals.append((0.0, 0.0)) - adjusted = np.pad(cropped, new_pad, 'constant', constant_values=c_vals) - - # logger.info('pads ' + str(new_pad[0]) + ', ' + str(new_pad[1]) + ', ' + str(new_pad[2]) + ', ' + str(new_pad[3]) \ - # + ', ' + str(new_pad[4]) + ', ' + str(new_pad[5])) - # logger.info('old dim, new dim (' + str(dims[0]) + ',' + str(dims[1]) + ',' + str(dims[2]) + ') (' + str(arr.shape[0]) +\ - # ',' + str(arr.shape[1]) + ',' + str(arr.shape[1]) + ')') - - return adjusted - -# ar = np.zeros((256,256,90)) -# pads = (-100,-100,0,0,0,0) -# ar = np.zeros((81,256,256)) -# pads = (5,-7,-20,-30,4,-20) -# arr = adjust_dimensions(ar,pads) -# print (arr.shape) - -def crop_center(arr, new_size): - size = arr.shape - cropped = arr - for i in range(len(size)): - crop_front = int((size[i] - new_size[i]) / 2) - crop_end = crop_front + new_size[i] - splitted = np.split(cropped, [crop_front, crop_end], axis=i) - cropped = splitted[1] - - return cropped - - -# ar = np.zeros((81,256,256)) -# new_size = (40, 200,100) -# arr = crop_center(ar,new_size) -# print (arr.shape) - -def get_norm(arr): - return sum(sum(sum(abs(arr) ** 2))) - - -def flip(m, axis): - """ - Copied from numpy 1.12.0. - """ - if not hasattr(m, 'ndim'): - m = np.asarray(m) - indexer = [slice(None)] * m.ndim - try: - indexer[axis] = slice(None, None, -1) - except IndexError: - raise ValueError("axis=%i is invalid for the %i-dimensional input array" - % (axis, m.ndim)) - return m[tuple(indexer)] - - -def gaussian(shape, sigmas, alpha=1): - grid = np.full(shape, 1.0) - for i in range(len(shape)): - # prepare indexes for tile and transpose - tile_shape = list(shape) - tile_shape.pop(i) - tile_shape.append(1) - trans_shape = list(range(len(shape) - 1)) - trans_shape.insert(i, len(shape) - 1) - - multiplier = - 0.5 * alpha / pow(sigmas[i], 2) - line = np.linspace(-(shape[i] - 1) / 2.0, (shape[i] - 1) / 2.0, shape[i]) - gi = np.tile(line, tile_shape) - gi = np.transpose(gi, tuple(trans_shape)) - exponent = np.power(gi, 2) * multiplier - gi = np.exp(exponent) - grid = grid * gi - - grid_total = np.sum(grid) - return grid / grid_total - - -def gauss_conv_fft(arr, sigmas): - arr_sum = np.sum(abs(arr)) - arr_f = np.fft.ifftshift(np.fft.fftn(np.fft.ifftshift(arr))) - shape = list(arr.shape) - for i in range(len(sigmas)): - sigmas[i] = shape[i] / 2.0 / np.pi / sigmas[i] - convag = arr_f * gaussian(shape, sigmas) - convag = np.fft.ifftshift(np.fft.ifftn(np.fft.ifftshift(convag))) - convag = convag.real - convag = np.clip(convag, 0, None) - correction = arr_sum / np.sum(convag) - convag *= correction - return convag - - -def shrink_wrap(arr, threshold, sigma, type='gauss'): - sigmas = [sigma] * len(arr.shape) - if type == 'gauss': - convag = gauss_conv_fft(abs(arr), sigmas) - max_convag = np.amax(convag) - convag = convag / max_convag - support = np.where(convag >= threshold, 1, 0) - return support - else: - return None - - -def read_results(read_dir): - try: - imagefile = os.path.join(read_dir, 'image.npy') - image = np.load(imagefile) - - supportfile = os.path.join(read_dir, 'support.npy') - support = np.load(supportfile) - - try: - cohfile = os.path.join(read_dir, 'coherence.npy') - coh = np.load(cohfile) - except: - coh = None - except: - pass - - return image, support, coh - - -def save_metrics(errs, dir, metrics=None): - metric_file = os.path.join(dir, 'summary') - if os.path.isfile(metric_file): - os.remove(metric_file) - with open(metric_file, 'a') as f: - if metrics is not None: - f.write('metric result\n') - for key in metrics: - value = metrics[key] - f.write(key + ' = ' + str(value) + '\n') - f.write('\nerrors by iteration\n') - for er in errs: - f.write(str(er) + ' ') - f.close() - -def write_plot_errors(save_dir): - plot_file = os.path.join(save_dir, 'plot_errors.py') - f = open(plot_file, 'w+') - f.write("#! /usr/bin/env python\n") - f.write("import matplotlib.pyplot as plt\n") - f.write("import numpy as np\n") - f.write("import sys\n") - f.write("import os\n") - f.write("current_dir = sys.path[0]\n") - f.write("errs = np.load(os.path.join(current_dir, 'errors.npy')).tolist()\n") - f.write("errs.pop(0)\n") - f.write("plt.plot(errs)\n") - f.write("plt.ylabel('errors')\n") - f.write("plt.show()") - f.close() - st = os.stat(plot_file) - os.chmod(plot_file, st.st_mode | stat.S_IEXEC) - - -def save_results(image, support, coh, errs, reciprocal, save_dir, metrics=None): - if not os.path.exists(save_dir): - os.makedirs(save_dir) - - image_file = os.path.join(save_dir, 'image') - np.save(image_file, image) - support_file = os.path.join(save_dir, 'support') - np.save(support_file, support) - errs_file = os.path.join(save_dir, 'errors') - np.save(errs_file, errs) - if not coh is None: - coh_file = os.path.join(save_dir, 'coherence') - np.save(coh_file, coh) - reciprocal_file = os.path.join(save_dir, 'reciprocal') - np.save(reciprocal_file, reciprocal) - write_plot_errors(save_dir) - if metrics is not None: - save_metrics(errs, save_dir, metrics) - else: - save_metrics(errs, save_dir) - - -def save_multiple_results(samples, images, supports, cohs, errs, reciprocals, save_dir, metrics=None): - """ - This function saves results of multiple reconstructions to directory tree in save_dir. - Parameters - ---------- - samples : int - number of reconstruction sets results - images : list - list of numpy arrays containing reconstructed images - supports : list - list of numpy arrays containing support of reconstructed images - cohs : list - list of numpy arrays containing coherence of reconstructed images - save_dir : str - a directory to save the results - Returns - ------- - nothing - """ - for i in range(samples): - subdir = os.path.join(save_dir, str(i)) - if metrics is None: - save_results(images[i], supports[i], cohs[i], np.asarray(errs[i]), reciprocals[i], subdir) - else: - save_results(images[i], supports[i], cohs[i], np.asarray(errs[i]), reciprocals[i], subdir, metrics[i]) - - -def sub_pixel_shift(arr, row_shift, col_shift, z_shift): - # arr is 3D - buf2ft = np.fft.fftn(arr) - shape = arr.shape - Nr = np.fft.ifftshift(np.array(list(range(-int(np.floor(shape[0] / 2)), shape[0] - int(np.floor(shape[0] / 2)))))) - Nc = np.fft.ifftshift(np.array(list(range(-int(np.floor(shape[1] / 2)), shape[1] - int(np.floor(shape[1] / 2)))))) - Nz = np.fft.ifftshift(np.array(list(range(-int(np.floor(shape[2] / 2)), shape[2] - int(np.floor(shape[2] / 2)))))) - [Nc, Nr, Nz] = np.meshgrid(Nc, Nr, Nz) - Greg = buf2ft * np.exp(1j * 2 * np.pi * (-row_shift * Nr / shape[0] - col_shift * Nc / shape[1] - z_shift * Nz / shape[2])) - return np.fft.ifftn(Greg) - - -def arr_property(arr): - arr1 = abs(arr) - print ('norm', np.sum(pow(abs(arr),2))) - max_coordinates = list(np.unravel_index(np.argmax(arr1), arr.shape)) - print ('max coords, value', max_coordinates, arr[max_coordinates[0], max_coordinates[1],max_coordinates[2]]) From 324dbdf868757016d081886a73be7f4824b5c112 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 15:56:14 -0600 Subject: [PATCH 248/336] Delete bridge_cuda.pyx --- .../reccdi/src_py/cyth/bridge_cuda.pyx | 70 ------------------- 1 file changed, 70 deletions(-) delete mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_cuda.pyx diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_cuda.pyx b/build/lib.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_cuda.pyx deleted file mode 100644 index 7ea8cbc..0000000 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_cuda.pyx +++ /dev/null @@ -1,70 +0,0 @@ -# ######################################################################### -# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # -# # -# See LICENSE file. # -# ######################################################################### - - -# distutils: language = c++ -# distutils: include_dirs = ['reccdi/include', '/home/beams/CXDUSER/CDI/arrayfire/include', '/home/beams/CXDUSER/CDI/libconfig/include',] -# distutils: sources = ['reccdi/src_cpp/bridge.cpp', 'reccdi/src_cpp/manager.cpp', 'reccdi/src_cpp/parameters.cpp', 'reccdi/src_cpp/pcdi.cpp', 'reccdi/src_cpp/resolution.cpp', 'reccdi/src_cpp/state.cpp', 'reccdi/src_cpp/support.cpp', 'reccdi/src_cpp/util.cpp', 'reccdi/src_cpp/worker.cpp'] -# distutils: libraries = ['afcuda', 'config++',] -# distutils: library_dirs = ['/home/beams/CXDUSER/CDI/arrayfire/lib64', '/home/beams/CXDUSER/CDI/libconfig/lib',] - -from libcpp.vector cimport vector -from libcpp.string cimport string - -cdef extern from "../include/bridge.hpp": - cdef cppclass Bridge: - Bridge() except + - void StartCalcWithGuess(int, vector[float], vector[float], vector[float], vector[int], string) - void StartCalcWithGuessSupport(int, vector[float], vector[float], vector[float], vector[int], vector[int], string) - void StartCalcWithGuessSupportCoh(int, vector[float], vector[float], vector[float], vector[int], vector[int], vector[float], vector[int], string) - void StartCalc(int, vector[float], vector[int], string) - vector[double] GetImageR() - vector[double] GetImageI() - vector[double] GetErrors() - vector[float] GetSupportV() - vector[double] GetCoherenceV() - vector[double] GetReciprocalR() - vector[double] GetReciprocalI() - vector[int] GetFlowV() - vector[int] GetIterFlowV() - void Cleanup() - - -cdef class PyBridge: - cdef Bridge *thisptr - def __cinit__(self): - self.thisptr = new Bridge() - def __dealloc__(self): - del self.thisptr - def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): - self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) - def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): - self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) - def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): - self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) - def start_calc(self, device, data_r, dims, config): - self.thisptr.StartCalc(device, data_r, dims, config.encode()) - def get_image_r(self): - return self.thisptr.GetImageR() - def get_image_i(self): - return self.thisptr.GetImageI() - def get_errors(self): - return self.thisptr.GetErrors() - def get_support(self): - return self.thisptr.GetSupportV() - def get_coherence(self): - return self.thisptr.GetCoherenceV() - def get_reciprocal_r(self): - return self.thisptr.GetReciprocalR() - def get_reciprocal_i(self): - return self.thisptr.GetReciprocalI() - def get_flow(self): - return self.thisptr.GetFlowV() - def get_iter_flow(self): - return self.thisptr.GetIterFlowV() - def cleanup(self): - self.thisptr.Cleanup() - From e91893502c8dde12ac3e32731679089f8cd175e3 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 15:56:28 -0600 Subject: [PATCH 249/336] Delete viz_util_xu.py --- .../reccdi/src_py/utilities/viz_util_xu.py | 356 ------------------ 1 file changed, 356 deletions(-) delete mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/viz_util_xu.py diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/viz_util_xu.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/viz_util_xu.py deleted file mode 100644 index 34f7ae5..0000000 --- a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/viz_util_xu.py +++ /dev/null @@ -1,356 +0,0 @@ -# ######################################################################### -# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # -# # -# See LICENSE file. # -# ######################################################################### - -import os -import numpy as np -import math as m -import pyevtk.hl as vtk -import xrayutilities.experiment as xuexp -import reccdi.src_py.utilities.utils as ut -import reccdi.src_py.utilities.spec as sput - -__author__ = "Barbara Frosik" -__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." -__docformat__ = 'restructuredtext en' - -class DispalyParams: - """ - This class encapsulates parameters defining image display. The parameters are -read from config file on - construction - """ - - def __init__(self, config): - """ - The constructor gets config file and fills out the class members. - - Parameters - ---------- - conf : str - configuration file name - - Returns - ------- - none - """ - deg2rad = np.pi / 180.0 - try: - specfile = config['specfile'] - last_scan = config['last_scan'] - self.lamda, delta, gamma, dth, arm, pixel,energy = sput.parse_spec(specfile, -last_scan) - self.delta = delta * deg2rad - self.gamma = gamma * deg2rad - self.dth = dth * deg2rad - self.arm = arm / 1000 - self.energy = energy - pixel = pixel[1:-1] - pixel = pixel.split(',') - pixel[0], pixel[1] = float(pixel[0]), float(pixel[1]) - except Exception as e: - pass - # override the parsed parameters with entries in config file - try: - self.energy = config['energy'] - self.lamda = 12.398 / energy / 10 - except AttributeError: - pass - try: - self.delta = config['delta'] * deg2rad - except AttributeError: - pass - try: - self.gamma = config['gamma'] * deg2rad - except AttributeError: - pass - try: - self.dth = config['dth'] * deg2rad - except AttributeError: - pass - try: - self.arm = config['arm'] / 1000 - except AttributeError: - pass - try: - pixel = config['pixel'] - except AttributeError: - pass - - try: - self.binning = [] - binning = config['binning'] - for i in range(len(binning)): - self.binning.append(binning[i]) - for _ in range(3 - len(self.binning)): - self.binning.append(1) - except AttributeError: - self.binning = [1,1,1] - self.dpx = pixel[0] * self.binning[0] / self.arm / self.binning[2] - self.dpy = pixel[1] * self.binning[1] / self.arm / self.binning[2] - try: - self.crop = [] - crop = config['crop'] - for i in range(len(crop)): - self.crop.append(crop[i]) - for _ in range(3 - len(self.crop)): - self.crop.append(1.0) - crop[0], crop[1] = crop[1], crop[0] - except AttributeError: - self.crop = None - - - - - - -class CXDViz(): - - cropx = 0.5 - cropy = 0.5 - cropz = 0.5 - dir_arrs={} - recip_arrs={} - - def __init__(self): - #self.imd = tvtk.ImageData() - #self.sg = tvtk.StructuredGrid() - pass - - - #def set_geometry(self, lam, delta, gamma, dpx, dpy, dth): - def set_geometry(self, params, shape): - self.params = params - lam = params.lam - tth = params.delta - gam = params.gamma - px = params.px - py = params.py - dpx = params.dpx - dpy = params.dpy - dth = params.dth - energy = params.energy - dQdpx = np.zeros(3) - dQdpy = np.zeros(3) - dQdth = np.zeros(3) - Astar = np.zeros(3) - Bstar = np.zeros(3) - Cstar = np.zeros(3) - - print("running the xrayutilities version") - self.qc=xuexp.QConversion(['y+','z-','x-'], ['y+','x-'],(0,0,1),en=energy*1000) - self.qc.init_area('x+','y-', shape[0],shape[1], 2,2, distance=params.arm, pwidth1=px, pwidth2=py) - - q1=np.array(qc.area(0.0,0,0,tth,gam,deg=False)) - q2=np.array(qc.area(dth,0,0,tth,gam,deg=False)) - Astar=q1[:,1,0]-q1[:,0,0] - Bstar=q1[:,0,1]-q1[:,0,0] - Cstar=(q2-q1)[:,0,0] - - denom = np.dot(Astar, np.cross(Bstar, Cstar)) - A = 2 * m.pi * np.cross(Bstar, Cstar) / denom - B = 2 * m.pi * np.cross(Cstar, Astar) / denom - C = 2 * m.pi * np.cross(Astar, Bstar) / denom - - self.Trecip = np.zeros(9) - self.Trecip.shape = (3, 3) - self.Trecip[:, 0] = Astar - self.Trecip[:, 1] = Bstar - self.Trecip[:, 2] = Cstar -# self.Trecip[:, 0] = [2,0,1] -# self.Trecip[:, 1] = [0,1,0] -# self.Trecip[:, 2] = [0,0,1] - print("Recip") - print(Astar,Bstar,Cstar) - print(self.Trecip) - - self.Tdir = np.zeros(9) - self.Tdir.shape = (3, 3) - self.Tdir = np.array((A, B, C)).transpose() - print("Direct") - print(A,B,C) - print(self.Tdir) - - self.dirspace_uptodate=0 - self.recipspace_uptodate=0 - return dQdpx, dQdpy, dQdth - - def update_dirspace(self, shape): - print("Updating dirspace coords") - dims = list(shape) - self.dxdir = 1.0 / shape[0] - self.dydir = 1.0 / shape[1] - self.dzdir = 1.0 / shape[2] - - r = np.mgrid[ - 0:dims[0] * self.dxdir:self.dxdir, \ - 0:dims[1] * self.dydir:self.dydir,\ - 0:dims[2] * self.dzdir:self.dzdir] -# r = np.mgrid[ -# 0:dims[0]*self.dxdir:self.dxdir, \ -# (dims[1]-1)*self.dydir:-self.dydir:-self.dydir,\ -# 0:dims[2]*self.dzdir:self.dzdir] - - origshape=r.shape - r.shape = 3, dims[0] * dims[1] * dims[2] - #r = r.transpose() - - self.dir_coords = np.dot(self.Tdir, r) - -# self.dir_coords = self.dir_coords.transpose() - self.dir_coords.shape=origshape - print("dir shape", self.dir_coords.shape) - self.dirspace_uptodate=1 - - def update_recipspace(self, shape): - dims = list(shape) - q = np.mgrid[ 0:dims[0], 0:dims[1], 0:dims[2]] - - origshape=q.shape - q.shape = 3, dims[0] * dims[1] * dims[2] - - self.recip_coords = np.dot(self.Trecip, q) - self.recip_coords.shape=origshape - self.recipspace_uptodate=1 - - def clear_direct_arrays(self): - self.dir_arrs.clear() - def clear_recip_arrays(self): - self.recip_arrs.clear() - - def add_array(self, array, name, space='direct', logentry=None): - - #Need to add something to ensure arrays are all the same dimension. - #Need to add crop of viz output arrays - if len(array.shape) < 3: - newdims = list(array.shape) - for i in range(3 - len(newdims)): - newdims.append(1) - array.shape = tuple(newdims) - print("adding array of shape ", array.shape) - if space=='direct': - self.dir_arrs[name]=array - if (not self.dirspace_uptodate): - self.update_dirspace(array.shape) - elif space=='recip': - self.recip_arrs[name]=array - if (not self.recipspace_uptodate): - self.update_recipspace(array.shape) - else: - return - - def write_directspace(self, filename, **args): - print(self.dir_arrs.keys()) - vtk.gridToVTK(filename, self.dir_coords[0,:,:,:].copy(), \ - self.dir_coords[1,:,:,:].copy(), \ - self.dir_coords[2,:,:,:].copy(), pointData=self.dir_arrs) - vtk.imageToVTK(filename, pointData=self.dir_arrs) - - def write_recipspace(self, filename, **args): - vtk.gridToVTK(filename, self.recip_coords[0,:,:,:].copy(), \ - self.recip_coords[1,:,:,:].copy(), \ - self.recip_coords[2,:,:,:].copy(), pointData=self.recip_arrs) - vtk.imageToVTK(filename, pointData=self.recip_arrs) - -def shift(arr, s0, s1, s2): - shifted = np.roll(arr, s0, axis=0) - shifted = np.roll(shifted, s1, axis=1) - return np.roll(shifted, s2, axis=2) - - -def center_of_mass(arr): - tot = np.sum(arr) - dims = arr.shape - xyz = [] - griddims = [] - for d in dims: - griddims.append(slice(0, d)) - grid = np.ogrid[griddims] - for g in grid: - xyz.append(np.sum(arr * g) / tot) - com = np.asarray(xyz) - com = np.ma.round(com).astype(np.int) - return list(com) - - -def remove_ramp(arr, ups=3): - new_shape = list(arr.shape) - # pad zeros around arr, to the size of 3 times (ups = 3) of arr size - for i in range(len(new_shape)): - new_shape[i] = ups * new_shape[i] - padded = ut.get_zero_padded_centered(arr, new_shape) - padded_f = np.fft.fftshift(np.fft.fftn(np.fft.ifftshift(padded))) - com = ndi.center_of_mass(np.power(np.abs(padded_f), 2)) - sub_pixel_shifted = ut.sub_pixel_shift(padded_f, new_shape[0]/2.0-com[0], new_shape[1]/2.0-com[1], -new_shape[2]/2.0-com[2]) - ramp_removed_padded = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(sub_pixel_shifted))) - ramp_removed = ut.crop_center(ramp_removed_padded, arr.shape) - - return ramp_removed - - - -def center(image, support): - dims = image.shape - image, support = ut.get_centered_both(image, support) - - # place center of mass image*support in the center - for ax in range(len(dims)): - com = ndi.center_of_mass(np.absolute(image) * support) - image = shift(image, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) - support = shift(support, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) - - # set center phase to zero, use as a reference - phi0 = m.atan2(image.imag[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)], image.real[int(dims[0]/2), int(dims[1]/2), -int(dims[2]/2)]) - image = image * np.exp(-1j * phi0) - - return image, support - - -def get_crop(params, shape): - crop = [] - for i in range(len(shape)): - if params.crop is None: - crop.append(shape[i]) - else: - crop.append(params.crop[i]) - if isinstance(crop[i], float): - crop[i] = int(crop[i]*shape[i]) - return crop - - -def save_CX(conf, image, support, coh, save_dir, last_scan): - image = np.swapaxes(image, 1,2) - image = np.swapaxes(image, 0,1) -# support = np.swapaxes(support, 1,2) -# support = np.swapaxes(support, 0,1) -# image, support = center(image, support) - params = DispalyParams(conf, last_scan) -# image = remove_ramp(image) - viz = CXDViz() - viz.set_array(image) - viz.set_geometry(params, image.shape) - crop = get_crop(params, image.shape) - viz.set_crop(crop[0], crop[1], crop[2]) # save image - image_file = os.path.join(save_dir, 'image') -# viz.write_structured_grid(image_file) -# viz.set_array(support) -# support_file = os.path.join(save_dir, 'support') -# viz.write_structured_grid(support_file) -# if coh is not None: -# coh = np.swapaxes(coh, 1, 2) -# # investigate if pad_center before fft or after -# coh = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(coh))).real -# coh = ut.get_zero_padded_centered(coh, image.shape) -# coh_file = os.path.join(save_dir, 'coherence') -# viz.set_array(coh) -# viz.write_structured_grid(coh_file) - -# a = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') -# remove_ramp(a, 3) - - - From cb8634b34432548074128fd482d0125c495036f5 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 15:56:46 -0600 Subject: [PATCH 250/336] Delete CXDVizNX.py --- .../reccdi/src_py/utilities/CXDVizNX.py | 374 ------------------ 1 file changed, 374 deletions(-) delete mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/CXDVizNX.py diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/CXDVizNX.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/CXDVizNX.py deleted file mode 100644 index 8a6fe57..0000000 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/CXDVizNX.py +++ /dev/null @@ -1,374 +0,0 @@ -# ######################################################################### -# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # -# # -# See LICENSE file. # -# ######################################################################### - -import os -import traits.api as tr -from tvtk.api import tvtk -import numpy as np -import scipy.ndimage as ndi -import math as m -import reccdi.src_py.utilities.utils as ut -import reccdi.src_py.utilities.spec as sput - -__author__ = "Barbara Frosik" -__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." -__docformat__ = 'restructuredtext en' - - -class DispalyParams: - """ - This class encapsulates parameters defining image display. The parameters are read from config file on - construction - """ - - def __init__(self, config): - """ - The constructor gets config file and fills out the class members. - - Parameters - ---------- - conf : str - configuration file name - - Returns - ------- - none - """ - deg2rad = np.pi / 180.0 - try: - specfile = config['specfile'] - last_scan = config['last_scan'] - self.lamda, delta, gamma, dth, arm, pixel = sput.parse_spec(specfile, last_scan) - self.delta = delta * deg2rad - self.gamma = gamma * deg2rad - self.dth = dth * deg2rad - self.arm = arm / 1000 - pixel = pixel[1:-1] - pixel = pixel.split(',') - pixel[0], pixel[1] = float(pixel[0]), float(pixel[1]) - except Exception as e: - pass - # override the parsed parameters with entries in config file - try: - energy = config['energy'] - self.lamda = 12.398 / energy / 10 - except AttributeError: - pass - try: - self.delta = config['delta'] * deg2rad - except AttributeError: - pass - try: - self.gamma = config['gamma'] * deg2rad - except AttributeError: - pass - try: - self.dth = config['dth'] * deg2rad - except AttributeError: - pass - try: - self.arm = config['arm'] / 1000 - except AttributeError: - pass - try: - pixel = config['pixel'] - except AttributeError: - pass - - try: - self.binning = [] - binning = config['binning'] - for i in range(len(binning)): - self.binning.append(binning[i]) - for _ in range(3 - len(self.binning)): - self.binning.append(1) - except AttributeError: - self.binning = [1,1,1] - self.dpx = pixel[0] * self.binning[0] / self.arm / self.binning[2] - self.dpy = pixel[1] * self.binning[1] / self.arm / self.binning[2] - try: - self.crop = [] - crop = config['crop'] - for i in range(len(crop)): - self.crop.append(crop[i]) - for _ in range(3 - len(self.crop)): - self.crop.append(1.0) - crop[0], crop[1] = crop[1], crop[0] - except AttributeError: - self.crop = None - - -class CXDViz(tr.HasTraits): - coords = tr.Array() - arr = tr.Array() - - cropx = tr.Int() - cropy = tr.Int() - cropz = tr.Int() - - - def __init__(self): - self.imd = tvtk.ImageData() - self.sg = tvtk.StructuredGrid() - pass - - - def set_geometry(self, params, shape): - lam = params.lamda - tth = params.delta - gam = params.gamma - dpx = params.dpx - dpy = params.dpy - dth = params.dth - dx = 1.0 / shape[0] - dy = 1.0 / shape[1] - dz = 1.0 / shape[2] - dQdpx = np.zeros(3) - dQdpy = np.zeros(3) - dQdth = np.zeros(3) - Astar = np.zeros(3) - Bstar = np.zeros(3) - Cstar = np.zeros(3) - - # dQdpx[0] = -m.cos(tth) * m.cos(gam) - # dQdpx[1] = 0.0 - # dQdpx[2] = +m.sin(tth) * m.cos(gam) - dQdpx[0] = -m.cos(tth) - dQdpx[1] = 0.0 - dQdpx[2] = +m.sin(tth) - - dQdpy[0] = m.sin(tth) * m.sin(gam) - dQdpy[1] = -m.cos(gam) - dQdpy[2] = m.cos(tth) * m.sin(gam) - - dQdth[0] = -m.cos(tth) * m.cos(gam) + 1.0 - dQdth[1] = 0.0 - dQdth[2] = m.sin(tth) * m.cos(gam) - - Astar[0] = 2 * m.pi / lam * dpx * dQdpx[0] - Astar[1] = 2 * m.pi / lam * dpx * dQdpx[1] - Astar[2] = 2 * m.pi / lam * dpx * dQdpx[2] - - Bstar[0] = (2 * m.pi / lam) * dpy * dQdpy[0] - Bstar[1] = (2 * m.pi / lam) * dpy * dQdpy[1] - Bstar[2] = (2 * m.pi / lam) * dpy * dQdpy[2] - - Cstar[0] = (2 * m.pi / lam) * dth * dQdth[0] - Cstar[1] = (2 * m.pi / lam) * dth * dQdth[1] - Cstar[2] = (2 * m.pi / lam) * dth * dQdth[2] - - denom = np.dot(Astar, np.cross(Bstar, Cstar)) - A = 2 * m.pi * np.cross(Bstar, Cstar) / denom - B = 2 * m.pi * np.cross(Cstar, Astar) / denom - C = 2 * m.pi * np.cross(Astar, Bstar) / denom - - self.T = np.zeros(9) - self.T.shape = (3, 3) - space = 'direct' - if space == 'recip': - self.T[:, 0] = Astar - self.T[:, 1] = Bstar - self.T[:, 2] = Cstar - self.dx = 1.0 - self.dy = 1.0 - self.dz = 1.0 - elif space == 'direct': - self.T = np.array((A, B, C)) - self.dx = dx - self.dy = dy - self.dz = dz - else: - pass - - - def update_coords(self): - dims = list(self.arr[self.cropobj].shape) - - r = np.mgrid[(dims[0] - 1) * self.dx:-self.dx:-self.dx, \ - 0:dims[1] * self.dy:self.dy, 0:dims[2] * self.dz:self.dz] - - r.shape = 3, dims[0] * dims[1] * dims[2] - r = r.transpose() - - self.coords = np.dot(r, self.T) - - - def set_array(self, array, logentry=None): - self.arr = array - if len(self.arr.shape) < 3: - newdims = list(self.arr.shape) - for i in range(3 - len(newdims)): - newdims.append(1) - self.arr.shape = tuple(newdims) - - - def set_crop(self, cropx, cropy, cropz): - dims = list(self.arr.shape) - if len(dims) == 2: - dims.append(1) - - if dims[0] > cropx and cropx > 0: - self.cropx = cropx - else: - self.cropx = dims[0] - - if dims[1] > cropy and cropy > 0: - self.cropy = cropy - else: - self.cropy = dims[1] - - if dims[2] > cropz and cropz > 0: - self.cropz = cropz - else: - self.cropz = dims[2] - - start1 = int(dims[0]/2) - int(self.cropx/2) - end1 = int(dims[0]/2) + int(self.cropx/2) - if start1 == end1: - end1 = end1 + 1 - start2 = int(dims[1]/2) - int(self.cropy/2) - end2 = int(dims[1]/2) + int(self.cropy/2) - if start2 == end2: - end2 = end2 + 1 - start3 = int(dims[2]/2) - int(self.cropz/2) - end3 = int(dims[2]/2) + int(self.cropz/2) - if start3 == end3: - end3 = end3 + 1 - - self.cropobj = (slice(start1, end1, None), slice(start2, end2, None), - slice(start3, end3, None)) - - - def get_structured_grid(self, **args): - self.update_coords() - dims = list(self.arr[self.cropobj].shape) - self.sg.points = self.coords - if "mode" in args: - if args["mode"] == "Phase": - arr1 = self.arr[self.cropobj].ravel() - arr = (np.arctan2(arr1.imag, arr1.real)) - else: - arr = np.abs(self.arr[self.cropobj].ravel()) - else: - arr = self.arr[self.cropobj].ravel() - if (arr.dtype == np.complex128 or arr.dtype == np.complex64): - self.sg.point_data.scalars = np.abs(arr) - self.sg.point_data.scalars.name = "Amp" - ph = tvtk.DoubleArray() - ph.from_array(np.arctan2(arr.imag, arr.real)) - ph.name = "Phase" - self.sg.point_data.add_array(ph) - else: - self.sg.point_data.scalars = arr - self.sg.dimensions = (dims[2], dims[1], dims[0]) - self.sg.extent = 0, dims[2] - 1, 0, dims[1] - 1, 0, dims[0] - 1 - return self.sg - - - def write_structured_grid(self, filename, **args): - sgwriter = tvtk.StructuredGridWriter() - sgwriter.file_type = 'binary' - if filename.endswith(".vtk"): - sgwriter.file_name = filename - else: - sgwriter.file_name = filename + '.vtk' - sgwriter.set_input_data(self.get_structured_grid()) - sgwriter.write() - print ('saved file', filename) - - -def shift(arr, s0, s1, s2): - shifted = np.roll(arr, s0, axis=0) - shifted = np.roll(shifted, s1, axis=1) - return np.roll(shifted, s2, axis=2) - - -def center_of_mass(arr): - tot = np.sum(arr) - dims = arr.shape - xyz = [] - griddims = [] - for d in dims: - griddims.append(slice(0, d)) - grid = np.ogrid[griddims] - for g in grid: - xyz.append(np.sum(arr * g) / tot) - com = np.asarray(xyz) - com = np.ma.round(com).astype(np.int) - return list(com) - - -def remove_ramp(arr, ups=3): - new_shape = list(arr.shape) - # pad zeros around arr, to the size of 3 times (ups = 3) of arr size - for i in range(len(new_shape)): - new_shape[i] = ups * new_shape[i] - padded = ut.get_zero_padded_centered(arr, new_shape) - padded_f = np.fft.fftshift(np.fft.fftn(np.fft.ifftshift(padded))) - com = ndi.center_of_mass(np.power(np.abs(padded_f), 2)) - sub_pixel_shifted = ut.sub_pixel_shift(padded_f, new_shape[0]/2.0-com[0], new_shape[1]/2.0-com[1], new_shape[2]/2.0-com[2]) - ramp_removed_padded = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(sub_pixel_shifted))) - ramp_removed = ut.crop_center(ramp_removed_padded, arr.shape) - - return ramp_removed - - -def center(image, support): - dims = image.shape - image, support = ut.get_centered_both(image, support) - - # place center of mass image*support in the center - for ax in range(len(dims)): - com = ndi.center_of_mass(np.absolute(image) * support) - image = shift(image, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) - support = shift(support, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) - - # set center phase to zero, use as a reference - phi0 = m.atan2(image.imag[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)], image.real[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)]) - image = image * np.exp(-1j * phi0) - - return image, support - - -def get_crop(params, shape): - crop = [] - for i in range(len(shape)): - if params.crop is None: - crop.append(shape[i]) - else: - crop.append(params.crop[i]) - if isinstance(crop[i], float): - crop[i] = int(crop[i]*shape[i]) - return crop - - -def save_CX(conf, image, support, coh, save_dir): -# image = np.swapaxes(image, 1,2) -# image = np.swapaxes(image, 0,1) -# support = np.swapaxes(support, 1,2) -# support = np.swapaxes(support, 0,1) - image, support = center(image, support) - params = DispalyParams(conf) - image = remove_ramp(image) - viz = CXDViz() - viz.set_array(image) - viz.set_geometry(params, image.shape) - crop = get_crop(params, image.shape) - viz.set_crop(crop[0], crop[1], crop[2]) # save image - image_file = os.path.join(save_dir, 'image') - viz.write_structured_grid(image_file) - viz.set_array(support) - support_file = os.path.join(save_dir, 'support') - viz.write_structured_grid(support_file) - if coh is not None: - coh = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(coh))).real - coh = ut.get_zero_padded_centered(coh, image.shape) - coh_file = os.path.join(save_dir, 'coherence') - viz.set_array(coh) - viz.write_structured_grid(coh_file) - -# a = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') -# remove_ramp(a, 3) From e79e56c47b7c021980bf50fe15ac07c3b18d3a33 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 15:56:59 -0600 Subject: [PATCH 251/336] Delete spec.py --- .../reccdi/src_py/beamlines/aps_34id/spec.py | 41 ------------------- 1 file changed, 41 deletions(-) delete mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/spec.py diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/spec.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/spec.py deleted file mode 100644 index e547082..0000000 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/spec.py +++ /dev/null @@ -1,41 +0,0 @@ -from xrayutilities.io import spec as spec - -def parse_spec(specfile, scan): - # Scan numbers start at one but the list is 0 indexed - ss = spec.SPECFile(specfile)[scan - 1] - - # Stuff from the header - detector_name = str(ss.getheader_element('UIMDET')) - command = ss.command.split() - scanmot = command[1] - scanmot_del = (float(command[3]) - float(command[2])) / int(command[4]) - - # Motor stuff from the header - delta = ss.init_motor_pos['INIT_MOPO_Delta'] - gamma = ss.init_motor_pos['INIT_MOPO_Gamma'] - theta = ss.init_motor_pos['INIT_MOPO_Theta'] - phi = ss.init_motor_pos['INIT_MOPO_Phi'] - chi = ss.init_motor_pos['INIT_MOPO_Chi'] - detdist = ss.init_motor_pos['INIT_MOPO_camdist'] - energy = ss.init_motor_pos['INIT_MOPO_Energy'] - - # returning the scan motor name as well. Sometimes we scan things - # other than theta. So we need to expand the capability of the display - # code. - return delta, gamma, theta, phi, chi, scanmot, scanmot_del, detdist, detector_name, energy - - -def get_det_from_spec(specfile, scan): - # Scan numbers start at one but the list is 0 indexed - ss = spec.SPECFile(specfile)[scan - 1] - # Stuff from the header - try: - det_area = ss.getheader_element('UIMR5').split() - det_area1 = int(det_area[0]), int(det_area[1]) - det_area2 = int(det_area[2]), int(det_area[3]) - - return det_area1, det_area2 - except: - return None, None - - From 432d76d3e1a4e48afb0faf0e18184c81900f0953 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 15:57:12 -0600 Subject: [PATCH 252/336] Delete run_34id_prepare.py --- .../src_py/run_scripts/run_34id_prepare.py | 119 ------------------ 1 file changed, 119 deletions(-) delete mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/run_34id_prepare.py diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/run_34id_prepare.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/run_34id_prepare.py deleted file mode 100644 index e230cd6..0000000 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/run_34id_prepare.py +++ /dev/null @@ -1,119 +0,0 @@ -import argparse -import pylibconfig2 as cfg -import sys -import os -import reccdi.src_py.beamlines.aps_34id.prep as prep -import reccdi.src_py.utilities.parse_ver as ver -import shutil - - -def prepare(experiment_dir, scan_range, conf_file): - prep.prepare(experiment_dir, scan_range, conf_file) - - return experiment_dir - - -def copy_conf(src, dest): - try: - main_conf = os.path.join(src, 'config_prep') - shutil.copy(main_conf, dest) - conf_data = os.path.join(src, 'config_data') - shutil.copy(conf_data, dest) - conf_rec = os.path.join(src, 'config_rec') - shutil.copy(conf_rec, dest) - conf_disp = os.path.join(src, 'config_disp') - shutil.copy(conf_disp, dest) - except: - pass - - -def parse_and_prepare(prefix, scan, conf_dir): - id = prefix + '_' + scan - print ('reading data files for experiment ' + id) - - if not os.path.isdir(conf_dir): - print ('configured directory ' + conf_dir + ' does not exist') - return - - main_conf = os.path.join(conf_dir, 'config') - if not os.path.isfile(main_conf): - print ('the configuration directory does not contain "config" file') - return - - try: - # convert it to list of int - scan_range = scan.split('-') - scan_num = [] - for i in range(len(scan_range)): - scan_num.append(int(scan_range[i])) - except: - print ('enter numeric values for scan range') - return - - if not ver.ver_config_prep(main_conf): - return - - try: - with open(main_conf, 'r') as f: - config_map = cfg.Config(f.read()) - except Exception as e: - print ('Please check the configuration file ' + main_conf + '. Cannot parse ' + str(e)) - return - - try: - working_dir = config_map.working_dir.strip() - except: - working_dir = os.getcwd() - - experiment_dir = os.path.join(working_dir, id) - if not os.path.exists(experiment_dir): - os.makedirs(experiment_dir) - # copy config_data, config_rec, cofig_disp files from cofig directory into the experiment conf directory - experiment_conf_dir = os.path.join(experiment_dir, 'conf') - if not os.path.exists(experiment_conf_dir): - os.makedirs(experiment_conf_dir) - - experiment_main_config = os.path.join(experiment_conf_dir, 'config') - conf_map = {} - conf_map['working_dir'] = '"' + working_dir + '"' - conf_map['experiment_id'] = '"' + prefix + '"' - conf_map['scan'] = '"' + scan + '"' - temp_file = os.path.join(experiment_conf_dir, 'temp') - with open(temp_file, 'a') as f: - for key in conf_map: - value = conf_map[key] - if len(value) > 0: - f.write(key + ' = ' + conf_map[key] + '\n') - f.close() - if not ver.ver_config(temp_file): -# os.remove(temp_file) - print('please check the entered parameters. Cannot save this format') - else: - shutil.copy(temp_file, experiment_main_config) - os.remove(temp_file) - - copy_conf(conf_dir, experiment_conf_dir) - prep_conf = os.path.join(experiment_conf_dir, 'config_prep') - if os.path.isfile(prep_conf): - prep.prepare(experiment_dir, scan_num, prep_conf) - else: - print ('missing ' + prep_conf + ' file') - - return experiment_dir - - -def main(arg): - parser = argparse.ArgumentParser() - parser.add_argument("id", help="prefix to name of the experiment/data reconstruction") - parser.add_argument("scan", help="a range of scans to prepare data from") - parser.add_argument("conf_dir", help="directory where the configuration files are located") - args = parser.parse_args() - scan = args.scan - id = args.id - conf_dir = args.conf_dir - - return parse_and_prepare(id, scan, conf_dir) - - -if __name__ == "__main__": - exit(main(sys.argv[1:])) From 71eb61e3d7fdfcf5771edb3b7d5c16957734104e Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 15:57:27 -0600 Subject: [PATCH 253/336] Delete prep_noconfig.py --- .../reccdi/src_py/utilities/prep_noconfig.py | 216 ------------------ 1 file changed, 216 deletions(-) delete mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/prep_noconfig.py diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/prep_noconfig.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/prep_noconfig.py deleted file mode 100644 index 0d6cc36..0000000 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/prep_noconfig.py +++ /dev/null @@ -1,216 +0,0 @@ -import numpy as np -import copy -import scipy.fftpack as sf -import os -import glob -import tifffile as tif -#import reccdi.src_py.utilities.spec as spec -#import reccdi.src_py.utilities.utils as ut - - -def get_dir_list(scans, map): - """ - Returns list of sub-directories in data_dir with names matching range of scans - It will exclude scans within exclude_scans list if provided, and directories with fewer files than - min_files, if provided - :param scans: - :param map: - :return: - """ - try: - min_files = map.min_files - except: - min_files = 0 - try: - exclude_scans = map.exclude_scans - except: - exclude_scans = [] - try: - data_dir = map.data_dir - except: - print ('please provide data_dir') - - dirs = [] - for name in os.listdir(data_dir): - subdir = os.path.join(data_dir, name) - if os.path.isdir(subdir): - # exclude directories with fewer tif files than min_files - if len(glob.glob1(subdir, "*.tif")) < min_files and len(glob.glob1(subdir, "*.tiff")) < min_files: - continue - try: - index = int(name[-4:]) - if index >= scans[0] and index <= scans[1] and not index in exclude_scans: - dirs.append(subdir) - except: - continue - return dirs - - -def get_dark_white(darkfile, whitefile, det_area1, det_area2): - if darkfile is not None: - # find the darkfield array - dark_full = tif.imread(darkfile).astype(float) - # crop the corresponding quad or use the whole array, depending on what info was parsed from spec file - dark = dark_full[slice(det_area1[0], det_area1[1]), slice(det_area2[0], det_area2[1])] - else: - dark = None - - if whitefile is not None: - # find the whitefield array - white_full = tif.imread(whitefile).astype(float) - # crop the corresponding quad or use the whole array, depending on what info was parsed from spec file - white = white_full[slice(det_area1[0], det_area1[1]), slice(det_area2[0], det_area2[1])] - # set the bad pixels to some large value - white = np.where(white<5000, 1e20, white) #Some large value - else: - white = None - - return dark, white - - -def get_normalized_slice(file, dark, white): - # file is a tuple of slice and either background slice or None - slice = tif.TiffFile(file[0]).asarray() - if file[1] is not None: - slice = slice - tif.TiffFile(file[1]).asarray() - if dark is not None: - slice = np.where(dark > 5, 0, slice) #Ignore cosmic rays - # here would be code for correction for dead time - if white is not None: - slice = slice/white - slice *= 1e5 #Some medium value - slice = np.where(np.isnan(slice), 0, slice) - return slice - - -def read_scan(dir, dark, white): - files = [] - files_dir = {} - for file in os.listdir(dir): - if file.endswith('tif') or file.endswith('tiff'): - temp = file.split('.') - #it's assumed that the files end with four digits and 'tif' or 'tiff' extension - key = temp[0][-4:] - files_dir[key] = file - - ordered_keys = sorted(list(files_dir.keys())) - - for key in ordered_keys: - file = files_dir[key] - file = os.path.join(dir, file) - bg_file = file.replace('.tif', '_bg.tif') - if not os.path.isfile(bg_file): - bg_file = None - - files.append((file, bg_file)) - - # look at slice0 to find out shape - n = 0 - slice0 = get_normalized_slice(files[n], dark, white).transpose() - shape = (slice0.shape[0], slice0.shape[1], len(files)) - arr = np.zeros(shape, dtype=slice0.dtype) - arr[:,:,0] = slice0 - print("slice shape",slice0.shape) - - #for i in range (1, len(files)): - for file in files[1:]: - n = n + 1 - slice = get_normalized_slice(file, dark, white).transpose() - arr[:,:,n] = slice - return arr - - -def shift(arr, shifty): - # pass the FT of the fftshifted array you want to shift - # you get back the actual array, not the FT. - dims = arr.shape - # scipy does normalize ffts! - ftarr = sf.fftn(arr) - r=[] - for d in dims: - r.append(slice(int(np.ceil(-d/2.)), int(np.ceil(d/2.)), None)) - idxgrid = np.mgrid[r] - for d in range(len(dims)): - ftarr *= np.exp(-1j*2*np.pi*shifty[d]*sf.fftshift(idxgrid[d])/float(dims[d])) - - shiftedarr = sf.ifftn(ftarr) - return shiftedarr - - -def combine_part(part_f, slice_sum, refpart, part): - # get cross correlation and pixel shift - cross_correlation = sf.ifftn(refpart*np.conj(part_f)) - corelated = np.array(cross_correlation.shape) - amp = np.abs(cross_correlation) - intshift = np.unravel_index(amp.argmax(), corelated) - shifted = np.array(intshift) - pixelshift = np.where(shifted>=corelated/2, shifted-corelated, shifted) - return slice_sum + shift(part, pixelshift) - - -def fit(arr, det_area1, det_area2): - # if the full sensor was used for the image (i.e. the data size is 512x512) - # the quadrants need to be shifted - if det_area1[0] == 0 and det_area1[1] == 512 and det_area1[0] == 0 and det_area2[1] == 512: - b = np.zeros((arr.shape[0],517,516),float) - b[:,:256,:256] = arr[:,:256,:256] #Quad top left unchanged - b[:,:256,260:] = arr[:,:256,256:] #Quad top right moved 4 right - b[:,261:,:256] = arr[:,256:,:256] #Quad bot left moved 6 down - b[:,261:,260:] = arr[:,256:,256:] #Quad bot right - else: - b = arr - return b - - -def prep_data(experiment_dir, scans, map, det_area1, det_area2, *args): - if scans is None: - print ('scan info not provided') - return - - # build sub-directories map - if len(scans) == 1: - scans.append(scans[0]) - dirs = get_dir_list(scans, map) - - try: - whitefile = map.whitefile - except: - whitefile = None - - try: - darkfile = map.darkfile - except: - darkfile = None - - dark, white = get_dark_white(darkfile, whitefile, det_area1, det_area2) - - if len(dirs) == 0: - print ('there are no data directories for given scans') - return - - if len(dirs) == 1: - arr = read_scan(dirs[0], dark, white) - else: - # make the first part a reference - part = read_scan(dirs[0], dark, white) - slice_sum = np.abs(copy.deepcopy(part)) - refpart = sf.fftn(part) - for i in range (1, len(dirs)): - #this will load scans from each directory into an array part - part = read_scan(dirs[i], dark, white) - # add the arrays together - part_f = sf.fftn(part) - slice_sum = combine_part(part_f, slice_sum, refpart, part) - arr = np.abs(slice_sum).astype(np.int32) - - arr = fit(arr, det_area1, det_area2) - - #create directory to save prepared data ,/prep - prep_data_dir = os.path.join(experiment_dir, 'prep') - if not os.path.exists(prep_data_dir): - os.makedirs(prep_data_dir) - data_file = os.path.join(prep_data_dir, 'prep_data.tif') - - ut.save_tif(arr, data_file) - print ('done with prep, shape:', arr.shape) - From 6551f9d9675c2bd462b24f68713ca50bdab3907c Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 15:57:53 -0600 Subject: [PATCH 254/336] Delete reconstruction_multi.py --- .../src_py/controller/reconstruction_multi.py | 259 ------------------ 1 file changed, 259 deletions(-) delete mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/controller/reconstruction_multi.py diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/reconstruction_multi.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/reconstruction_multi.py deleted file mode 100644 index 2f87107..0000000 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/reconstruction_multi.py +++ /dev/null @@ -1,259 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -# ######################################################################### -# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # -# # -# See LICENSE file. # -# ######################################################################### - - -""" -Please make sure the installation :ref:`pre-requisite-reference-label` are met. -This module controls the reconstruction process. The user has to provide parameters such as type of processor, data, and configuration. -The processor specifies which library will be used by CFM (Calc Fast Module) that performs the processor intensive calculations. The module -can be run on cpu, or gpu. Depending on the gpu hardware and library, one can use opencl or cuda library. -The module starts the data preparation routines, calls for reconstruction using the CFM, and prepares the reconstructed data for -visualization. -""" - -import os -import numpy as np -import reccdi.src_py.utilities.utils as ut -import reccdi.src_py.controller.fast_module as calc -import time -from multiprocessing import Pool, Queue -from functools import partial - -__author__ = "Barbara Frosik" -__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." -__docformat__ = 'restructuredtext en' -__all__ = ['read_config', - 'reconstruction'] - - -def single_rec_process(proc, conf, data, coh_dims, prev): - """ - This function runs in the reconstruction palarellized by Parsl. - - Parameters - ---------- - proc : str - string defining library used 'cpu' or 'opencl' or 'cuda' - - device : int - device allocated to this reconstruction or -1 if not configured - - conf : str - configuration file - - data : numpy array - data array - - coh_dims : tuple - shape of coherence array - - prev_image : numpy array or None - previously reconstructed image (if continuation or genetic algorithm) or None - - prev_support : numpy array or None - support of previously reconstructed image (if continuation or genetic algorithm) or None - - prev_coh : numpy array or None - coherence of previously reconstructed image (if continuation or genetic algorithm) or None - - Returns - ------- - image : numpy array - reconstructed image - - support : numpy array - support of reconstructed image - - coherence : coherence of reconstructed image - - error : list containing errors for iterations - """ - prev_image, prev_support, prev_coh = prev - image, support, coherence, errors, reciprocal, flow, iter_array = calc.fast_module_reconstruction(proc, gpu, conf, data, coh_dims, - prev_image, prev_support, prev_coh) - return image, support, coherence, errors, reciprocal, flow, iter_array - - -def assign_gpu(*args): - q = args[0] - global gpu - gpu = q.get() - - -def multi_rec(proc, data, conf, config_map, devices, prev_images, prev_supports, prev_cohs=None): - - """ - This function controls the multiple reconstructions. It invokes a loop to execute parallel resconstructions, - wait for all reconstructions to deliver results, and store te results. - - Parameters - ---------- - proc : str - a string indicating the processor type - - data : numpy array - data array - - conf : str - configuration file name - - config_map : dict - parsed configuration - - images : list - list of numpy arrays containing reconstructed images for further reconstruction, or None for initial - - supports : list - list of numpy arrays containing support of reconstructed images, or None - - cohs : list - list of numpy arrays containing coherence of reconstructed images, or None - - Returns - ------- - images : list - list of numpy arrays containing reconstructed images - - supports : list - list of numpy arrays containing support of reconstructed images - - cohs : list - list of numpy arrays containing coherence of reconstructed images - - errs : list - list of lists of errors (now each element is another list by iterations, but should we take the last error?) - """ - images = [] - supports = [] - cohs = [] - errs = [] - recips = [] - flows = [] - iter_arrs = [] - def collect_result(result): - for r in result: - if r[0] is None: - continue - images.append(r[0]) - supports.append(r[1]) - cohs.append(r[2]) - errs.append(r[3]) - recips.append(r[4]) - flows.append(r[5]) - iter_arrs.append(r[6]) - - reconstructions = config_map.reconstructions - - try: - coh_dims = tuple(config_map.partial_coherence_roi) - except: - coh_dims = None - - iterable = [] - for i in range(reconstructions): - if prev_cohs is None: - coh = None - else: - coh = prev_cohs[i] - iterable.append((prev_images[i], prev_supports[i], coh)) - - func = partial(single_rec_process, proc, conf, data, coh_dims) - q = Queue() - for device in devices: - q.put(device) - with Pool(processes = len(devices),initializer=assign_gpu, initargs=(q,)) as pool: - pool.map_async(func, iterable, callback=collect_result) - pool.close() - pool.join() - pool.terminate() - - # return only error from last iteration for each reconstruction - return images, supports, cohs, errs, recips, flows, iter_arrs - - -def reconstruction(proc, conf_file, datafile, dir, devices): -# proc, datafile, dir, conf_file, devices - """ - This function starts the reconstruction. It checks whether it is continuation of reconstruction defined by - configuration. If continuation, the lists contaning arrays of images, supports, coherence for multiple reconstructions - are read from cont_directory, otherwise, they are initialized to None. - After the lists are initialized, they are passed for the multi-reconstruction. - The results are saved in the configured directory. - - Parameters - ---------- - reconstructions : int - number of reconstructions - - proc : str - a string indicating the processor type (cpu, opencl, cuda) - - data : numpy array - data array - - conf_info : str - configuration file name or experiment directory. If directory, the configuration file is - defined as /conf/config_rec - - config_map : dict - parsed configuration - - Returns - ------- - nothing - """ - data = ut.read_tif(datafile) - print ('data shape', data.shape) - #data = np.swapaxes(data, 0, 2) - #data = np.swapaxes(data, 0, 1) - - try: - config_map = ut.read_config(conf_file) - if config_map is None: - print("can't read configuration file " + conf_file) - return - except: - print('Cannot parse configuration file ' + conf_file + ' , check for matching parenthesis and quotations') - return - - try: - reconstructions = config_map.reconstructions - except: - reconstructions = 1 - - images = [] - supports = [] - cohs = [] - try: - if config_map.cont: - try: - continue_dir = config_map.continue_dir - for sub in os.listdir(continue_dir): - image, support, coh = ut.read_results(os.path.join(continue_dir, sub) + '/') - images.append(image) - supports.append(support) - cohs.append(coh) - except: - print("continue_dir not configured") - return None - except: - for _ in range(reconstructions): - images.append(None) - supports.append(None) - cohs.append(None) - - new_images, new_supports, new_cohs, errs, recips, flows, iter_arrs = multi_rec(proc, data, conf_file, config_map, devices, images, supports, cohs) - - try: - save_dir = config_map.save_dir - except AttributeError: - filename = conf_file.split('/')[-1] - save_dir = os.path.join(dir, filename.replace('config_rec', 'results')) - - ut.save_multiple_results(len(new_images), new_images, new_supports, new_cohs, errs, recips, flows, iter_arrs, save_dir) From b6c034d75424cb10c509d6d832c747d0d6ba27c8 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 15:58:09 -0600 Subject: [PATCH 255/336] Delete spec.py --- .../reccdi/src_py/utilities/spec.py | 61 ------------------- 1 file changed, 61 deletions(-) delete mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/spec.py diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/spec.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/spec.py deleted file mode 100644 index 56db6b9..0000000 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/spec.py +++ /dev/null @@ -1,61 +0,0 @@ -from xrayutilities.io import spec as spec - -class Detector(object): - def __init__(self, det_name): - self.det_name = det_name - - def get_pixel(self): - pass - - -class Det_34idcTIM2(Detector): - def __init__(self): - super(Det_34idcTIM2, self).__init__('34idcTIM2:') - - def get_pixel(self): - return '(55.0e-6, 55.0e-6)' - - -def parse_spec(specfile, scan): - # Scan numbers start at one but the list is 0 indexed - ss = spec.SPECFile(specfile)[scan - 1] - - # Stuff from the header - detector_name = str(ss.getheader_element('UIMDET')) - if detector_name == '34idcTIM2:': - detector_obj = Det_34idcTIM2() - else: - # default to this detector for now - detector_obj = Det_34idcTIM2() - pixel = detector_obj.get_pixel() - command = ss.command.split() - scanmot = command[1] - scanmot_del = (float(command[3]) - float(command[2])) / int(command[4]) - - # Motor stuff from the header - delta = ss.init_motor_pos['INIT_MOPO_Delta'] - gamma = ss.init_motor_pos['INIT_MOPO_Gamma'] - arm = ss.init_motor_pos['INIT_MOPO_camdist'] - energy = ss.init_motor_pos['INIT_MOPO_Energy'] - lam = 12.398 / energy / 10 # in nanometers - - # returning the scan motor name as well. Sometimes we scan things - # other than theta. So we need to expand the capability of the display - # code. - return lam, delta, gamma, scanmot_del, arm, pixel, energy - - -def get_det_from_spec(specfile, scan): - # Scan numbers start at one but the list is 0 indexed - ss = spec.SPECFile(specfile)[scan - 1] - # Stuff from the header - try: - det_area = ss.getheader_element('UIMR5').split() - det_area1 = int(det_area[0]), int(det_area[1]) - det_area2 = int(det_area[2]), int(det_area[3]) - - return det_area1, det_area2 - except: - return None, None - - From 58dee4b1a86cb51f04aef2bbcdc0deb6c0c4ea5c Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 15:58:24 -0600 Subject: [PATCH 256/336] Delete bridge_opencl.pyx --- .../reccdi/src_py/cyth/bridge_opencl.pyx | 70 ------------------- 1 file changed, 70 deletions(-) delete mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_opencl.pyx diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_opencl.pyx b/build/lib.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_opencl.pyx deleted file mode 100644 index ddcc913..0000000 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_opencl.pyx +++ /dev/null @@ -1,70 +0,0 @@ -# ######################################################################### -# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # -# # -# See LICENSE file. # -# ######################################################################### - - -# distutils: language = c++ -# distutils: include_dirs = ['reccdi/include', '/home/beams/CXDUSER/CDI/arrayfire/include', '/home/beams/CXDUSER/CDI/libconfig/include',] -# distutils: sources = ['reccdi/src_cpp/bridge.cpp', 'reccdi/src_cpp/manager.cpp', 'reccdi/src_cpp/parameters.cpp', 'reccdi/src_cpp/pcdi.cpp', 'reccdi/src_cpp/resolution.cpp', 'reccdi/src_cpp/state.cpp', 'reccdi/src_cpp/support.cpp', 'reccdi/src_cpp/util.cpp', 'reccdi/src_cpp/worker.cpp'] -# distutils: libraries = ['afopencl', 'config++',] -# distutils: library_dirs = ['/home/beams/CXDUSER/CDI/arrayfire/lib64', '/home/beams/CXDUSER/CDI/libconfig/lib',] - -from libcpp.vector cimport vector -from libcpp.string cimport string - -cdef extern from "../include/bridge.hpp": - cdef cppclass Bridge: - Bridge() except + - void StartCalcWithGuess(int, vector[float], vector[float], vector[float], vector[int], string) - void StartCalcWithGuessSupport(int, vector[float], vector[float], vector[float], vector[int], vector[int], string) - void StartCalcWithGuessSupportCoh(int, vector[float], vector[float], vector[float], vector[int], vector[int], vector[float], vector[int], string) - void StartCalc(int, vector[float], vector[int], string) - vector[double] GetImageR() - vector[double] GetImageI() - vector[double] GetErrors() - vector[float] GetSupportV() - vector[double] GetCoherenceV() - vector[double] GetReciprocalR() - vector[double] GetReciprocalI() - vector[int] GetFlowV() - vector[int] GetIterFlowV() - void Cleanup() - - -cdef class PyBridge: - cdef Bridge *thisptr - def __cinit__(self): - self.thisptr = new Bridge() - def __dealloc__(self): - del self.thisptr - def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): - self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) - def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): - self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) - def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): - self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) - def start_calc(self, device, data_r, dims, config): - self.thisptr.StartCalc(device, data_r, dims, config.encode()) - def get_image_r(self): - return self.thisptr.GetImageR() - def get_image_i(self): - return self.thisptr.GetImageI() - def get_errors(self): - return self.thisptr.GetErrors() - def get_support(self): - return self.thisptr.GetSupportV() - def get_coherence(self): - return self.thisptr.GetCoherenceV() - def get_reciprocal_r(self): - return self.thisptr.GetReciprocalR() - def get_reciprocal_i(self): - return self.thisptr.GetReciprocalI() - def get_flow(self): - return self.thisptr.GetFlowV() - def get_iter_flow(self): - return self.thisptr.GetIterFlowV() - def cleanup(self): - self.thisptr.Cleanup() - From 33569e79e58bed9203e8a3bc5a1af610729e8104 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 15:58:37 -0600 Subject: [PATCH 257/336] Delete spec.py --- .../reccdi/src_py/utilities/spec.py | 61 ------------------- 1 file changed, 61 deletions(-) delete mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/spec.py diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/spec.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/spec.py deleted file mode 100644 index 56db6b9..0000000 --- a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/spec.py +++ /dev/null @@ -1,61 +0,0 @@ -from xrayutilities.io import spec as spec - -class Detector(object): - def __init__(self, det_name): - self.det_name = det_name - - def get_pixel(self): - pass - - -class Det_34idcTIM2(Detector): - def __init__(self): - super(Det_34idcTIM2, self).__init__('34idcTIM2:') - - def get_pixel(self): - return '(55.0e-6, 55.0e-6)' - - -def parse_spec(specfile, scan): - # Scan numbers start at one but the list is 0 indexed - ss = spec.SPECFile(specfile)[scan - 1] - - # Stuff from the header - detector_name = str(ss.getheader_element('UIMDET')) - if detector_name == '34idcTIM2:': - detector_obj = Det_34idcTIM2() - else: - # default to this detector for now - detector_obj = Det_34idcTIM2() - pixel = detector_obj.get_pixel() - command = ss.command.split() - scanmot = command[1] - scanmot_del = (float(command[3]) - float(command[2])) / int(command[4]) - - # Motor stuff from the header - delta = ss.init_motor_pos['INIT_MOPO_Delta'] - gamma = ss.init_motor_pos['INIT_MOPO_Gamma'] - arm = ss.init_motor_pos['INIT_MOPO_camdist'] - energy = ss.init_motor_pos['INIT_MOPO_Energy'] - lam = 12.398 / energy / 10 # in nanometers - - # returning the scan motor name as well. Sometimes we scan things - # other than theta. So we need to expand the capability of the display - # code. - return lam, delta, gamma, scanmot_del, arm, pixel, energy - - -def get_det_from_spec(specfile, scan): - # Scan numbers start at one but the list is 0 indexed - ss = spec.SPECFile(specfile)[scan - 1] - # Stuff from the header - try: - det_area = ss.getheader_element('UIMR5').split() - det_area1 = int(det_area[0]), int(det_area[1]) - det_area2 = int(det_area[2]), int(det_area[3]) - - return det_area1, det_area2 - except: - return None, None - - From 1d25d9b0a402abd34ea764bf36221f2122195c9e Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 15:58:53 -0600 Subject: [PATCH 258/336] Delete run_disp.py --- .../reccdi/src_py/utilities/run_disp.py | 176 ------------------ 1 file changed, 176 deletions(-) delete mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/run_disp.py diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/run_disp.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/run_disp.py deleted file mode 100644 index b4298d8..0000000 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/run_disp.py +++ /dev/null @@ -1,176 +0,0 @@ -import reccdi.src_py.utilities.viz_util_xu as vu -import reccdi.src_py.utilities.utils as ut -import reccdi.src_py.utilities.parse_ver as ver -import argparse -import sys -import os -import numpy as np -from multiprocessing import Pool - - -def save_CX(conf, image, support, coh, save_dir, last_scan): - image = np.swapaxes(image, 1,2) - image = np.swapaxes(image, 0,1) -# support = np.swapaxes(support, 1,2) -# support = np.swapaxes(support, 0,1) -# image, support = center(image, support) - params = vu.DispalyParams(conf, last_scan) -# image = remove_ramp(image) - viz = vu.CXDViz() - viz.set_geometry(params, image.shape) - crop = get_crop(params, image.shape) - #viz.set_crop(crop[0], crop[1], crop[2]) # save image - - viz.add_array(np.abs(image), "imAmp", space='direct') - viz.add_array(np.angle(image), "imPh", space='direct') - image_file = os.path.join(save_dir, 'image') - #viz.write_structured_grid(image_file) - viz.write_directspace(image_file) - viz.clear_direct_arrays() - - viz.add_array(support, "support", space='direct') - support_file = os.path.join(save_dir, 'support') - #viz.write_structured_grid(support_file) - viz.write_directspace(support_file) - viz.clear_direct_arrays() - - if coh is not None: - coh = np.swapaxes(coh, 1, 2) - # investigate if pad_center before fft or after - coh = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(coh))).real - coh = ut.get_zero_padded_centered(coh, image.shape) - coh_file = os.path.join(save_dir, 'coherence') - viz.add_array(np.abs(coh), 'cohAmp', space='direct') - viz.add_array(np.angle(coh), 'cohPh', space='direct') - #viz.write_structured_grid(coh_file) - viz.write_directspace(coh_file) - viz.clear_direct_arrays() - -# a = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') -# remove_ramp(a, 3) - -def save_vtk(res_dir_conf): - (res_dir, conf) = res_dir_conf - try: - imagefile = os.path.join(res_dir, 'image.npy') - image = np.load(imagefile) - except: - print ('cannot load "image.npy" file') - return - - try: - supportfile = os.path.join(res_dir, 'support.npy') - support = np.load(supportfile) - except: - print ('support file is missing in ' + res_dir + ' directory') - return - - try: - reciprocalfile = os.path.join(res_dir, 'reciprocal.npy') - reciprocal = np.load(reciprocalfile) - # reciprocal is saved as tif file, so no need to pass it to cx module - # saving amp, phase, and square of modulus in tif format - reciprocal_amp = np.absolute(reciprocal) - reciprocal_phase = np.angle(reciprocal) - reciprocal_sq_mod = np.power(reciprocal_amp, 2) - - ut.save_tif(reciprocal_amp, os.path.join(res_dir, 'reciprocal_amp.tif')) - ut.save_tif(reciprocal_phase, os.path.join(res_dir, 'reciprocal_phase.tif')) - ut.save_tif(reciprocal_sq_mod, os.path.join(res_dir, 'reciprocal_sq_mod.tif')) - except: - print ('info: cannot save reciprocal space') - - cohfile = os.path.join(res_dir, 'coherence.npy') - if os.path.isfile(cohfile): - coh = np.load(cohfile) - save_CX(conf, image, support, coh, res_dir) - else: - save_CX(conf, image, support, None, res_dir) - - -def to_vtk(experiment_dir, results_dir=None): - if not os.path.isdir(experiment_dir): - print("Please provide a valid experiment directory") - return - conf_dir = os.path.join(experiment_dir, 'conf') - conf = os.path.join(conf_dir, 'config_disp') - # verify configuration file - if not ver.ver_config_disp(conf): - print ('incorrect configuration file ' + conf +', cannot parse') - return - - # parse the conf once here and save it in dictionary, it will apply to all images in the directory tree - conf_dict = {} - try: - conf_map = ut.read_config(conf) - items = conf_map.items() - for item in items: - conf_dict[item[0]] = item[1] - except: - print('cannot parse configuration file ' + conf) - return - - # get last scan from the config file and add it to conf_dict - last_scan = None - main_conf = os.path.join(conf_dir, 'config') - if os.path.isfile(main_conf): - try: - config_map = ut.read_config(main_conf) - scan = config_map.scan - last_scan = scan.split('-')[-1] - conf_dict['last_scan'] = int(last_scan) - except: - print ("info: scan not determined, can't read " + conf + " configuration file") - - # get binning from the config_data file and add it to conf_dict - binning = None - data_conf = os.path.join(conf_dir, 'config_data') - if os.path.isfile(data_conf): - try: - conf_map = ut.read_config(data_conf) - conf_dict['binning'] = conf_map.binning - except: - pass - - no_gpus = 1 - rec_conf = os.path.join(conf_dir, 'config_rec') - if os.path.isfile(rec_conf): - try: - conf_map = ut.read_config(rec_conf) - device = conf_map.device - no_gpus = len(device) - except: - pass - - if results_dir is None: - results_dir = experiment_dir - # find directories with image.npy file - dirs = [] - for (dirpath, dirnames, filenames) in os.walk(results_dir): - for file in filenames: - print("file", file) - if file.endswith('image.npy'): - dirs.append((dirpath, conf_dict)) - - with Pool(processes = no_gpus) as pool: - pool.map_async(save_vtk, dirs) - pool.close() - pool.join() - - -def main(arg): - print ('preparing display') - parser = argparse.ArgumentParser() - parser.add_argument("experiment_dir", help="experiment directory") - parser.add_argument("--results_dir", help="directory in experiment that has a tree (or leaf) with reconstruction results which will be visualized") - args = parser.parse_args() - experiment_dir = args.experiment_dir - if args.results_dir: - to_vtk(experiment_dir, args.results_dir) - else: - to_vtk(experiment_dir) - -if __name__ == "__main__": - main(sys.argv[1:]) - -#python run_disp.py experiment_dir From ebf5f2e87c4e9190cfc72cc892552485f8b0a70f Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 15:59:09 -0600 Subject: [PATCH 259/336] Delete run_disp.py --- .../reccdi/src_py/run_scripts/run_disp.py | 176 ------------------ 1 file changed, 176 deletions(-) delete mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/run_disp.py diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/run_disp.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/run_disp.py deleted file mode 100644 index b4298d8..0000000 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/run_disp.py +++ /dev/null @@ -1,176 +0,0 @@ -import reccdi.src_py.utilities.viz_util_xu as vu -import reccdi.src_py.utilities.utils as ut -import reccdi.src_py.utilities.parse_ver as ver -import argparse -import sys -import os -import numpy as np -from multiprocessing import Pool - - -def save_CX(conf, image, support, coh, save_dir, last_scan): - image = np.swapaxes(image, 1,2) - image = np.swapaxes(image, 0,1) -# support = np.swapaxes(support, 1,2) -# support = np.swapaxes(support, 0,1) -# image, support = center(image, support) - params = vu.DispalyParams(conf, last_scan) -# image = remove_ramp(image) - viz = vu.CXDViz() - viz.set_geometry(params, image.shape) - crop = get_crop(params, image.shape) - #viz.set_crop(crop[0], crop[1], crop[2]) # save image - - viz.add_array(np.abs(image), "imAmp", space='direct') - viz.add_array(np.angle(image), "imPh", space='direct') - image_file = os.path.join(save_dir, 'image') - #viz.write_structured_grid(image_file) - viz.write_directspace(image_file) - viz.clear_direct_arrays() - - viz.add_array(support, "support", space='direct') - support_file = os.path.join(save_dir, 'support') - #viz.write_structured_grid(support_file) - viz.write_directspace(support_file) - viz.clear_direct_arrays() - - if coh is not None: - coh = np.swapaxes(coh, 1, 2) - # investigate if pad_center before fft or after - coh = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(coh))).real - coh = ut.get_zero_padded_centered(coh, image.shape) - coh_file = os.path.join(save_dir, 'coherence') - viz.add_array(np.abs(coh), 'cohAmp', space='direct') - viz.add_array(np.angle(coh), 'cohPh', space='direct') - #viz.write_structured_grid(coh_file) - viz.write_directspace(coh_file) - viz.clear_direct_arrays() - -# a = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') -# remove_ramp(a, 3) - -def save_vtk(res_dir_conf): - (res_dir, conf) = res_dir_conf - try: - imagefile = os.path.join(res_dir, 'image.npy') - image = np.load(imagefile) - except: - print ('cannot load "image.npy" file') - return - - try: - supportfile = os.path.join(res_dir, 'support.npy') - support = np.load(supportfile) - except: - print ('support file is missing in ' + res_dir + ' directory') - return - - try: - reciprocalfile = os.path.join(res_dir, 'reciprocal.npy') - reciprocal = np.load(reciprocalfile) - # reciprocal is saved as tif file, so no need to pass it to cx module - # saving amp, phase, and square of modulus in tif format - reciprocal_amp = np.absolute(reciprocal) - reciprocal_phase = np.angle(reciprocal) - reciprocal_sq_mod = np.power(reciprocal_amp, 2) - - ut.save_tif(reciprocal_amp, os.path.join(res_dir, 'reciprocal_amp.tif')) - ut.save_tif(reciprocal_phase, os.path.join(res_dir, 'reciprocal_phase.tif')) - ut.save_tif(reciprocal_sq_mod, os.path.join(res_dir, 'reciprocal_sq_mod.tif')) - except: - print ('info: cannot save reciprocal space') - - cohfile = os.path.join(res_dir, 'coherence.npy') - if os.path.isfile(cohfile): - coh = np.load(cohfile) - save_CX(conf, image, support, coh, res_dir) - else: - save_CX(conf, image, support, None, res_dir) - - -def to_vtk(experiment_dir, results_dir=None): - if not os.path.isdir(experiment_dir): - print("Please provide a valid experiment directory") - return - conf_dir = os.path.join(experiment_dir, 'conf') - conf = os.path.join(conf_dir, 'config_disp') - # verify configuration file - if not ver.ver_config_disp(conf): - print ('incorrect configuration file ' + conf +', cannot parse') - return - - # parse the conf once here and save it in dictionary, it will apply to all images in the directory tree - conf_dict = {} - try: - conf_map = ut.read_config(conf) - items = conf_map.items() - for item in items: - conf_dict[item[0]] = item[1] - except: - print('cannot parse configuration file ' + conf) - return - - # get last scan from the config file and add it to conf_dict - last_scan = None - main_conf = os.path.join(conf_dir, 'config') - if os.path.isfile(main_conf): - try: - config_map = ut.read_config(main_conf) - scan = config_map.scan - last_scan = scan.split('-')[-1] - conf_dict['last_scan'] = int(last_scan) - except: - print ("info: scan not determined, can't read " + conf + " configuration file") - - # get binning from the config_data file and add it to conf_dict - binning = None - data_conf = os.path.join(conf_dir, 'config_data') - if os.path.isfile(data_conf): - try: - conf_map = ut.read_config(data_conf) - conf_dict['binning'] = conf_map.binning - except: - pass - - no_gpus = 1 - rec_conf = os.path.join(conf_dir, 'config_rec') - if os.path.isfile(rec_conf): - try: - conf_map = ut.read_config(rec_conf) - device = conf_map.device - no_gpus = len(device) - except: - pass - - if results_dir is None: - results_dir = experiment_dir - # find directories with image.npy file - dirs = [] - for (dirpath, dirnames, filenames) in os.walk(results_dir): - for file in filenames: - print("file", file) - if file.endswith('image.npy'): - dirs.append((dirpath, conf_dict)) - - with Pool(processes = no_gpus) as pool: - pool.map_async(save_vtk, dirs) - pool.close() - pool.join() - - -def main(arg): - print ('preparing display') - parser = argparse.ArgumentParser() - parser.add_argument("experiment_dir", help="experiment directory") - parser.add_argument("--results_dir", help="directory in experiment that has a tree (or leaf) with reconstruction results which will be visualized") - args = parser.parse_args() - experiment_dir = args.experiment_dir - if args.results_dir: - to_vtk(experiment_dir, args.results_dir) - else: - to_vtk(experiment_dir) - -if __name__ == "__main__": - main(sys.argv[1:]) - -#python run_disp.py experiment_dir From 8d6b0133c0b5e47415195d65809dae021e9ec99a Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 15:59:33 -0600 Subject: [PATCH 260/336] Delete viz_util_recipdemo.py --- .../src_py/utilities/viz_util_recipdemo.py | 34 ------------------- 1 file changed, 34 deletions(-) delete mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util_recipdemo.py diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util_recipdemo.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util_recipdemo.py deleted file mode 100644 index d66e5a5..0000000 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util_recipdemo.py +++ /dev/null @@ -1,34 +0,0 @@ -if __name__ =="__main__": - import numpy as np - import math as m - import tifffile as tif - import tools as t - import viz_util as vu - import prep_noconfig as prep - - #binning of the data, this is not actually done, it's to account for previous binning in the saved data. - dbin1=1 - dbin2=1 - a=t.read_tif("cropped.tif").copy() #copy ensures array is contiguous which pyevtk needs - b=prep.read_scan("/Users/rharder/Desktop/cropped", None, None) - - tif.imsave("RawDiffraction.tif", b) - print("raw data",b.shape) - print("imagejsave",a.shape) - - #scan info. - lam=.137 #wavelength - delta=33.0*m.pi/180 #detector angle 1 - gamma=11.0*m.pi/180 #detector angle 2 - dpx=55e-6/0.5 #pixel size divided by detector dist - dpy=55e-6/0.5 - dth=0.01*m.pi/180 #rocking curve scan step. Everything in radians - - vr=vu.CXDViz() - vr.set_geometry(lam, delta, gamma, dbin1*dpx, dbin2*dpy, dth) - vr.add_array(b, "dp", space='recip') - - q=vr.recip_coords - qmag=np.sqrt(q[0,:,:,:]**2 + q[1,:,:,:]**2 + q[2,:,:,:]**2) - vr.add_array(qmag, "qmag", space='recip') #add a second property that can be used for color in viz. - vr.write_recipspace("RawDiffraction") From fffc5872a6a279b32ecc1626e989fe30febcad03 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 15:59:53 -0600 Subject: [PATCH 261/336] Delete data.py --- .../reccdi/src_py/controller/data.py | 200 ------------------ 1 file changed, 200 deletions(-) delete mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/controller/data.py diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/data.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/data.py deleted file mode 100644 index 652022d..0000000 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/data.py +++ /dev/null @@ -1,200 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -# ######################################################################### -# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # -# # -# See LICENSE file. # -# ######################################################################### - - -""" -Please make sure the installation :ref:`pre-requisite-reference-label` are met. -This module controls the reconstruction process. The user has to provide parameters such as type of processor, data, and configuration. -The processor specifies which library will be used by CFM (Calc Fast Module) that performs the processor intensive calculations. The module -can be run on cpu, or gpu. Depending on the gpu hardware and library, one can use opencl or cuda library. -The module starts the data preparation routines, calls for reconstruction using the CFM, and prepares the reconstructed data for -visualization. -""" - -import numpy as np -import reccdi.src_py.utilities.utils as ut -import reccdi.src_py.utilities.parse_ver as ver -import os - - -__author__ = "Barbara Frosik" -__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." -__docformat__ = 'restructuredtext en' -__all__ = ['prep'] - - -def prep(fname, conf_info): - - """ - This function prepares raw data for reconstruction. It uses configured parameters. The preparation consists of the following steps: - 1. clearing the noise - the values below an amplitude threshold are set to zero - 2. removing the "aliens" - aliens are areas that are effect of interference. The area is manually set in a configuration file - after inspecting the data. - 3. binning - adding amplitudes of several consecutive points. Binning can be done in any dimension. - 4. amplitudes are set to sqrt - 5. cropping and padding. If the adjust_dimention is negative in any dimension, the array is cropped in this dimension. - The cropping is followed by padding in the dimensions that have positive adjust dimension. After adjusting, the dimensions - are adjusted further to find the smallest dimension that is supported by opencl library (multiplier of 2, 3, and 5). - 6. centering - finding the greatest amplitude and locating it at a center of new array. If shift center is defined, the - center will be shifted accordingly. The shifted elements are rolled into the other end of array. - - The modified data is then saved in data directory. - - Parameters - ---------- - fname : str - tif file containing raw data - - conf_info : str - experiment directory or configuration file. If it is directory, the "conf/config_data" will be - appended to determine configuration file - - Returns - ------- - nothing - """ - # The data has been transposed when saved in tif format for the ImageJ to show the right orientation - data = ut.read_tif(fname) - - if os.path.isdir(conf_info): - experiment_dir = conf_info - conf = os.path.join(experiment_dir, 'conf', 'config_data') - # if the experiment contains separate scan directories - if not os.path.isfile(conf): - base_dir = os.path.abspath(os.path.join(experiment_dir, os.pardir)) - conf = os.path.join(base_dir, 'conf', 'config_data') - else: - #assuming it's a file - conf = conf_info - experiment_dir = None - - # verify the configuration file - if not ver.ver_config_data(conf): - return - - try: - config_map = ut.read_config(conf) - if config_map is None: - print ("can't read configuration file") - return - except: - print ('Please check the configuration file ' + conf + '. Cannot parse') - return - - # saving file for Kenley project - AI aliens removing - print ('saving for AI') - d_f = os.path.join(experiment_dir, 'prep', 'prep_data.npy') - np.save(d_f, data) - # zero out the ares defined by aliens - try: - aliens = config_map.aliens - print ('removing aliens') - for alien in aliens: - # The ImageJ swaps the x and y axis, so the aliens coordinates needs to be swapped, since ImageJ is used - # to find aliens - data[alien[1]:alien[4], alien[0]:alien[3], alien[2]:alien[5]] = 0 - # saving file for Kenley project - AI aliens removing - aliens_f = os.path.join(experiment_dir, 'prep', 'aliens') - with open(aliens_f, 'a') as a_f: - try: - with open(conf, 'r') as f: - for line in f: - if line.startswith('aliens'): - a_f.write(line + '\n') - break - f.close() - a_f.close() - except: - pass - # saving file for Kenley project - AI aliens removing - d_f = os.path.join(experiment_dir, 'prep', 'prep_no_aliens.npy') - np.save(d_f, data) - d_f = os.path.join(experiment_dir, 'prep', 'prep_no_aliens.tif') - ut.save_tif(data, d_f) - - except AttributeError: - pass - except: - print ('error in aliens configuration') - - try: - amp_threshold = config_map.amp_threshold - print ('applied threshold') - except AttributeError: - print ('define amplitude threshold. Exiting') - return - - # zero out the noise - prep_data = np.where(data <= amp_threshold, 0, data) - - # square root data - prep_data = np.sqrt(prep_data) - - try: - crops_pads = config_map.adjust_dimensions - # the adjust_dimention parameter list holds adjustment in each direction. Append 0s, if shorter - if len(crops_pads) < 6: - for _ in range (6 - len(crops_pads)): - crops_pads.append(0) - except AttributeError: - # the size still has to be adjusted to the opencl supported dimension - crops_pads = (0, 0, 0, 0, 0, 0) - # adjust the size, either pad with 0s or crop array - print ('cropping and/or padding dimensions') - pairs = [] - for i in range(int(len(crops_pads)/2)): - pair = crops_pads[2*i:2*i+2] - pairs.append(pair) - # change pairs x and y, as the ImageJ swaps the axes - pairs[0], pairs[1] = pairs[1], pairs[0] - prep_data = ut.adjust_dimensions(prep_data, pairs) - if prep_data is None: - print('check "adjust_dimensions" configuration') - return - - try: - center_shift = config_map.center_shift - print ('shift center') - prep_data = ut.get_centered(prep_data, center_shift) - except AttributeError: - prep_data = ut.get_centered(prep_data, [0,0,0]) - - try: - binsizes = config_map.binning - try: - bins = [] - for binsize in binsizes: - bins.append(binsize) - filler = len(prep_data.shape) - len(bins) - for _ in range(filler): - bins.append(1) - bins[0], bins[1] = bins[1], bins[0] - prep_data = ut.binning(prep_data, bins) - except: - print ('check "binning" configuration') - except AttributeError: - pass - - try: - data_dir = config_map.data_dir - except AttributeError: - data_dir = 'data' - if experiment_dir is not None: - data_dir = os.path.join(experiment_dir, data_dir) - if not os.path.exists(data_dir): - os.makedirs(data_dir) - - # save data - data_file = os.path.join(data_dir, 'data.tif') - # np.save(data_file, prep_data) - ut.save_tif(prep_data, data_file) - print ('data ready for reconstruction, data dims:', prep_data.shape) - - -#prep('/local/bfrosik/CDI/S149/Staff14-3_S0149.tif', 'config_data') From 4e210c83e5fd5a34ddeea506158f9f52b9cde348 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 16:00:16 -0600 Subject: [PATCH 262/336] Delete viz_util_xu.py --- .../reccdi/src_py/utilities/viz_util_xu.py | 330 ------------------ 1 file changed, 330 deletions(-) delete mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util_xu.py diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util_xu.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util_xu.py deleted file mode 100644 index bb05483..0000000 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util_xu.py +++ /dev/null @@ -1,330 +0,0 @@ -# ######################################################################### -# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # -# # -# See LICENSE file. # -# ######################################################################### - -import os -import numpy as np -import scipy.ndimage as ndi -import math as m -import pyevtk.hl as vtk -import xrayutilities.experiment as xuexp -import reccdi.src_py.utilities.utils as ut -from reccdi.src_py.utilities.utils import measure -import reccdi.src_py.utilities.spec as sput - -__author__ = "Barbara Frosik" -__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." -__docformat__ = 'restructuredtext en' - -class DispalyParams: - """ - This class encapsulates parameters defining image display. The parameters are -read from config file on - construction - """ - - def __init__(self, config): - """ - The constructor gets config file and fills out the class members. - - Parameters - ---------- - conf : str - configuration file name - - Returns - ------- - none - """ - deg2rad = np.pi / 180.0 - try: - specfile = config['specfile'] - last_scan = config['last_scan'] - self.lam, delta, gamma, dth, arm, pixel,energy = sput.parse_spec(specfile, -last_scan) - self.delta = delta * deg2rad - self.gamma = gamma * deg2rad - self.dth = dth * deg2rad - self.arm = arm / 1000 - self.energy = energy - pixel = pixel[1:-1] - pixel = pixel.split(',') - pixel[0], pixel[1] = float(pixel[0]), float(pixel[1]) - except Exception as e: - pass - # override the parsed parameters with entries in config file - try: - self.energy = config['energy'] - self.lam = 12.398 / energy / 10 - except AttributeError: - pass - try: - self.delta = config['delta'] * deg2rad - except AttributeError: - pass - try: - self.gamma = config['gamma'] * deg2rad - except AttributeError: - pass - try: - self.dth = config['dth'] * deg2rad - except AttributeError: - pass - try: - self.arm = config['arm'] / 1000 - except AttributeError: - pass - try: - pixel = config['pixel'] - except AttributeError: - pass - - try: - self.binning = [] - binning = config['binning'] - for i in range(len(binning)): - self.binning.append(binning[i]) - for _ in range(3 - len(self.binning)): - self.binning.append(1) - except AttributeError: - self.binning = [1,1,1] - self.px = pixel[0] * self.binning[0] - self.py = pixel[1] * self.binning[1] - self.dpx = pixel[0] * self.binning[0] / self.arm / self.binning[2] - self.dpy = pixel[1] * self.binning[1] / self.arm / self.binning[2] - try: - self.crop = [] - crop = config['crop'] - for i in range(len(crop)): - self.crop.append(crop[i]) - for _ in range(3 - len(self.crop)): - self.crop.append(1.0) - crop[0], crop[1] = crop[1], crop[0] - except AttributeError: - self.crop = None - - - - - - -class CXDViz(): - - cropx = 0.5 - cropy = 0.5 - cropz = 0.5 - dir_arrs={} - recip_arrs={} - - def __init__(self): - #self.imd = tvtk.ImageData() - #self.sg = tvtk.StructuredGrid() - pass - - - #def set_geometry(self, lam, delta, gamma, dpx, dpy, dth): - @measure - def set_geometry(self, params, shape): - self.params = params - lam = params.lam - tth = params.delta - gam = params.gamma - px = params.px - py = params.py - dpx = params.dpx - dpy = params.dpy - dth = params.dth - energy = params.energy - dQdpx = np.zeros(3) - dQdpy = np.zeros(3) - dQdth = np.zeros(3) - Astar = np.zeros(3) - Bstar = np.zeros(3) - Cstar = np.zeros(3) - - print("running the xrayutilities version") - self.qc=xuexp.QConversion(['y+','z-','x-'], ['y+','x-'],(0,0,1),en=energy*1000) - self.qc.init_area('x+','y-', shape[0],shape[1], 2,2, distance=params.arm, pwidth1=px, pwidth2=py) - - q1=np.array(self.qc.area(0.0,0,0,tth,gam,deg=False)) - q2=np.array(self.qc.area(dth,0,0,tth,gam,deg=False)) - Astar=q1[:,1,0]-q1[:,0,0] - Bstar=q1[:,0,1]-q1[:,0,0] - Cstar=(q2-q1)[:,0,0] - - denom = np.dot(Astar, np.cross(Bstar, Cstar)) - A = 2 * m.pi * np.cross(Bstar, Cstar) / denom - B = 2 * m.pi * np.cross(Cstar, Astar) / denom - C = 2 * m.pi * np.cross(Astar, Bstar) / denom - - self.Trecip = np.zeros(9) - self.Trecip.shape = (3, 3) - self.Trecip[:, 0] = Astar - self.Trecip[:, 1] = Bstar - self.Trecip[:, 2] = Cstar -# self.Trecip[:, 0] = [2,0,1] -# self.Trecip[:, 1] = [0,1,0] -# self.Trecip[:, 2] = [0,0,1] - print("Recip") - print(Astar,Bstar,Cstar) - print(self.Trecip) - - self.Tdir = np.zeros(9) - self.Tdir.shape = (3, 3) - self.Tdir = np.array((A, B, C)).transpose() - print("Direct") - print(A,B,C) - print(self.Tdir) - - self.dirspace_uptodate=0 - self.recipspace_uptodate=0 - return dQdpx, dQdpy, dQdth - - def update_dirspace(self, shape): - print("Updating dirspace coords") - dims = list(shape) - self.dxdir = 1.0 / shape[0] - self.dydir = 1.0 / shape[1] - self.dzdir = 1.0 / shape[2] - - r = np.mgrid[ - 0:dims[0] * self.dxdir:self.dxdir, \ - 0:dims[1] * self.dydir:self.dydir,\ - 0:dims[2] * self.dzdir:self.dzdir] -# r = np.mgrid[ -# 0:dims[0]*self.dxdir:self.dxdir, \ -# (dims[1]-1)*self.dydir:-self.dydir:-self.dydir,\ -# 0:dims[2]*self.dzdir:self.dzdir] - - origshape=r.shape - r.shape = 3, dims[0] * dims[1] * dims[2] - #r = r.transpose() - - self.dir_coords = np.dot(self.Tdir, r) - -# self.dir_coords = self.dir_coords.transpose() - self.dir_coords.shape=origshape - print("dir shape", self.dir_coords.shape) - self.dirspace_uptodate=1 - - def update_recipspace(self, shape): - dims = list(shape) - q = np.mgrid[ 0:dims[0], 0:dims[1], 0:dims[2]] - - origshape=q.shape - q.shape = 3, dims[0] * dims[1] * dims[2] - - self.recip_coords = np.dot(self.Trecip, q) - self.recip_coords.shape=origshape - self.recipspace_uptodate=1 - - def clear_direct_arrays(self): - self.dir_arrs.clear() - def clear_recip_arrays(self): - self.recip_arrs.clear() - - @measure - def add_array(self, array, name, space='direct', logentry=None): - - #Need to add something to ensure arrays are all the same dimension. - #Need to add crop of viz output arrays - if len(array.shape) < 3: - newdims = list(array.shape) - for i in range(3 - len(newdims)): - newdims.append(1) - array.shape = tuple(newdims) - print("adding array of shape ", array.shape) - if space=='direct': - self.dir_arrs[name]=array - if (not self.dirspace_uptodate): - self.update_dirspace(array.shape) - elif space=='recip': - self.recip_arrs[name]=array - if (not self.recipspace_uptodate): - self.update_recipspace(array.shape) - else: - return - - @measure - def write_directspace(self, filename, **args): - print(self.dir_arrs.keys()) - vtk.gridToVTK(filename, self.dir_coords[0,:,:,:].copy(), \ - self.dir_coords[1,:,:,:].copy(), \ - self.dir_coords[2,:,:,:].copy(), pointData=self.dir_arrs) - vtk.imageToVTK(filename, pointData=self.dir_arrs) - - def write_recipspace(self, filename, **args): - vtk.gridToVTK(filename, self.recip_coords[0,:,:,:].copy(), \ - self.recip_coords[1,:,:,:].copy(), \ - self.recip_coords[2,:,:,:].copy(), pointData=self.recip_arrs) - vtk.imageToVTK(filename, pointData=self.recip_arrs) - -def shift(arr, s0, s1, s2): - shifted = np.roll(arr, s0, axis=0) - shifted = np.roll(shifted, s1, axis=1) - return np.roll(shifted, s2, axis=2) - - -def center_of_mass(arr): - tot = np.sum(arr) - dims = arr.shape - xyz = [] - griddims = [] - for d in dims: - griddims.append(slice(0, d)) - grid = np.ogrid[griddims] - for g in grid: - xyz.append(np.sum(arr * g) / tot) - com = np.asarray(xyz) - com = np.ma.round(com).astype(np.int) - return list(com) - -@measure -def remove_ramp(arr, ups=1): - new_shape = list(arr.shape) - # pad zeros around arr, to the size of 3 times (ups = 3) of arr size - for i in range(len(new_shape)): - new_shape[i] = ups * new_shape[i] - padded = ut.get_zero_padded_centered(arr, new_shape) - padded_f = np.fft.fftshift(np.fft.fftn(np.fft.ifftshift(padded))) - com = ndi.center_of_mass(np.power(np.abs(padded_f), 2)) - sub_pixel_shifted = ut.sub_pixel_shift(padded_f, new_shape[0]/2.0-com[0], new_shape[1]/2.0-com[1], -new_shape[2]/2.0-com[2]) - ramp_removed_padded = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(sub_pixel_shifted))) - ramp_removed = ut.crop_center(ramp_removed_padded, arr.shape) - - return ramp_removed - - -@measure -def center(image, support): - dims = image.shape - image, support = ut.get_centered_both(image, support) - - # place center of mass image*support in the center - for ax in range(len(dims)): - com = ndi.center_of_mass(np.absolute(image) * support) - image = shift(image, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) - support = shift(support, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) - - # set center phase to zero, use as a reference - phi0 = m.atan2(image.imag[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)], image.real[int(dims[0]/2), int(dims[1]/2), -int(dims[2]/2)]) - image = image * np.exp(-1j * phi0) - - return image, support - - -def get_crop(params, shape): - crop = [] - for i in range(len(shape)): - if params.crop is None: - crop.append(shape[i]) - else: - crop.append(params.crop[i]) - if isinstance(crop[i], float): - crop[i] = int(crop[i]*shape[i]) - return crop - From 4d312ded83e31887d9c3d2569f83ed81a59c07e8 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 16:02:40 -0600 Subject: [PATCH 263/336] Delete viz_util_xu_tvtk.py --- .../src_py/utilities/viz_util_xu_tvtk.py | 356 ------------------ 1 file changed, 356 deletions(-) delete mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util_xu_tvtk.py diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util_xu_tvtk.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util_xu_tvtk.py deleted file mode 100644 index fded9a2..0000000 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util_xu_tvtk.py +++ /dev/null @@ -1,356 +0,0 @@ -# ######################################################################### -# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # -# # -# See LICENSE file. # -# ######################################################################### - -import os -import numpy as np -import scipy.ndimage as ndi -import math as m -import pyevtk.hl as vtk -from tvtk.api import tvtk -import xrayutilities.experiment as xuexp -import reccdi.src_py.utilities.utils as ut -from reccdi.src_py.utilities.utils import measure -import reccdi.src_py.utilities.spec as sput - -__author__ = "Barbara Frosik" -__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." -__docformat__ = 'restructuredtext en' - -class DispalyParams: - """ - This class encapsulates parameters defining image display. The parameters are -read from config file on - construction - """ - - def __init__(self, config): - """ - The constructor gets config file and fills out the class members. - - Parameters - ---------- - conf : str - configuration file name - - Returns - ------- - none - """ - deg2rad = np.pi / 180.0 - try: - specfile = config['specfile'] - last_scan = config['last_scan'] - self.lam, delta, gamma, dth, arm, pixel,energy = sput.parse_spec(specfile, -last_scan) - self.delta = delta * deg2rad - self.gamma = gamma * deg2rad - self.dth = dth * deg2rad - self.arm = arm / 1000 - self.energy = energy - pixel = pixel[1:-1] - pixel = pixel.split(',') - pixel[0], pixel[1] = float(pixel[0]), float(pixel[1]) - except Exception as e: - pass - # override the parsed parameters with entries in config file - try: - self.energy = config['energy'] - self.lam = 12.398 / energy / 10 - except AttributeError: - pass - try: - self.delta = config['delta'] * deg2rad - except AttributeError: - pass - try: - self.gamma = config['gamma'] * deg2rad - except AttributeError: - pass - try: - self.dth = config['dth'] * deg2rad - except AttributeError: - pass - try: - self.arm = config['arm'] / 1000 - except AttributeError: - pass - try: - pixel = config['pixel'] - except AttributeError: - pass - - try: - self.binning = [] - binning = config['binning'] - for i in range(len(binning)): - self.binning.append(binning[i]) - for _ in range(3 - len(self.binning)): - self.binning.append(1) - except AttributeError: - self.binning = [1,1,1] - self.px = pixel[0] * self.binning[0] - self.py = pixel[1] * self.binning[1] - self.dpx = pixel[0] * self.binning[0] / self.arm / self.binning[2] - self.dpy = pixel[1] * self.binning[1] / self.arm / self.binning[2] - try: - self.crop = [] - crop = config['crop'] - for i in range(len(crop)): - self.crop.append(crop[i]) - for _ in range(3 - len(self.crop)): - self.crop.append(1.0) - crop[0], crop[1] = crop[1], crop[0] - except AttributeError: - self.crop = None - - - - - - -class CXDViz(): - - cropx = 0.5 - cropy = 0.5 - cropz = 0.5 - dir_arrs={} - recip_arrs={} - - def __init__(self): - self.imd = tvtk.ImageData() - self.sg = tvtk.StructuredGrid() - pass - - - #def set_geometry(self, lam, delta, gamma, dpx, dpy, dth): - @measure - def set_geometry(self, params, shape): - self.params = params - lam = params.lam - tth = params.delta - gam = params.gamma - px = params.px - py = params.py - dpx = params.dpx - dpy = params.dpy - dth = params.dth - energy = params.energy - dQdpx = np.zeros(3) - dQdpy = np.zeros(3) - dQdth = np.zeros(3) - Astar = np.zeros(3) - Bstar = np.zeros(3) - Cstar = np.zeros(3) - - print("running the xrayutilities version and tvtk") - self.qc=xuexp.QConversion(['y+','z-','x-'], ['y+','x-'],(0,0,1),en=energy*1000) - self.qc.init_area('x+','y-', shape[0],shape[1], 2,2, distance=params.arm, pwidth1=px, pwidth2=py) - - q1=np.array(self.qc.area(0.0,0,0,tth,gam,deg=False)) - q2=np.array(self.qc.area(dth,0,0,tth,gam,deg=False)) - Astar=q1[:,1,0]-q1[:,0,0] - Bstar=q1[:,0,1]-q1[:,0,0] - Cstar=(q2-q1)[:,0,0] - - denom = np.dot(Astar, np.cross(Bstar, Cstar)) - A = 2 * m.pi * np.cross(Bstar, Cstar) / denom - B = 2 * m.pi * np.cross(Cstar, Astar) / denom - C = 2 * m.pi * np.cross(Astar, Bstar) / denom - - self.Trecip = np.zeros(9) - self.Trecip.shape = (3, 3) - self.Trecip[:, 0] = Astar - self.Trecip[:, 1] = Bstar - self.Trecip[:, 2] = Cstar -# self.Trecip[:, 0] = [2,0,1] -# self.Trecip[:, 1] = [0,1,0] -# self.Trecip[:, 2] = [0,0,1] - print("Recip") - print(Astar,Bstar,Cstar) - print(self.Trecip) - - self.Tdir = np.zeros(9) - self.Tdir.shape = (3, 3) - self.Tdir = np.array((A, B, C)).transpose() - print("Direct") - print(A,B,C) - print(self.Tdir) - - self.dirspace_uptodate=0 - self.recipspace_uptodate=0 - return dQdpx, dQdpy, dQdth - - def update_dirspace(self, shape): - print("Updating dirspace coords") - dims = list(shape) - self.dxdir = 1.0 / shape[0] - self.dydir = 1.0 / shape[1] - self.dzdir = 1.0 / shape[2] - - r = np.mgrid[ - 0:dims[0] * self.dxdir:self.dxdir, \ - 0:dims[1] * self.dydir:self.dydir,\ - 0:dims[2] * self.dzdir:self.dzdir] -# r = np.mgrid[ -# 0:dims[0]*self.dxdir:self.dxdir, \ -# (dims[1]-1)*self.dydir:-self.dydir:-self.dydir,\ -# 0:dims[2]*self.dzdir:self.dzdir] - - origshape=r.shape - r.shape = 3, dims[0] * dims[1] * dims[2] - #r = r.transpose() - - self.dir_coords = np.dot(self.Tdir, r).transpose() - -# self.dir_coords = self.dir_coords.transpose() -# self.dir_coords.shape=origshape - print("dir shape", self.dir_coords.shape) - self.dirspace_uptodate=1 - - def update_recipspace(self, shape): - dims = list(shape) - q = np.mgrid[ 0:dims[0], 0:dims[1], 0:dims[2]] - - origshape=q.shape - q.shape = 3, dims[0] * dims[1] * dims[2] - - self.recip_coords = np.dot(self.Trecip, q) - self.recip_coords.shape=origshape - self.recipspace_uptodate=1 - - def clear_direct_arrays(self): - self.dir_arrs.clear() - def clear_recip_arrays(self): - self.recip_arrs.clear() - - @measure - def add_array(self, array, name, space='direct', logentry=None): - - #Need to add something to ensure arrays are all the same dimension. - #Need to add crop of viz output arrays - if len(array.shape) < 3: - newdims = list(array.shape) - for i in range(3 - len(newdims)): - newdims.append(1) - array.shape = tuple(newdims) - print("adding array of shape ", array.shape) - if space=='direct': - self.dir_arrs[name]=array - if (not self.dirspace_uptodate): - self.update_dirspace(array.shape) - elif space=='recip': - self.recip_arrs[name]=array - if (not self.recipspace_uptodate): - self.update_recipspace(array.shape) - else: - return - - def get_ds_structured_grid(self, **args): - arr0=self.dir_arrs[list(self.dir_arrs.keys())[0]] - dims = list(arr0.shape) - self.sg.points = self.dir_coords - for a in self.dir_arrs.keys(): - arr=tvtk.DoubleArray() - arr.from_array(self.dir_arrs[a].ravel()) - arr.name=a - self.sg.point_data.add_array(arr) - - self.sg.dimensions = (dims[2], dims[1], dims[0]) - self.sg.extent = 0, dims[2] - 1, 0, dims[1] - 1, 0, dims[0] - 1 - return self.sg - - def write_directspace(self, filename, **args): - sgwriter = tvtk.XMLStructuredGridWriter() - #sgwriter.file_type = 'binary' - if filename.endswith(".vtk"): - sgwriter.file_name = filename - else: - sgwriter.file_name = filename + '.vts' - sgwriter.set_input_data(self.get_ds_structured_grid()) - sgwriter.write() - print ('saved file', filename) - - @measure - def write_directspace_pyevtk(self, filename, **args): - print(self.dir_arrs.keys()) - vtk.gridToVTK(filename, self.dir_coords[0,:,:,:].copy(), \ - self.dir_coords[1,:,:,:].copy(), \ - self.dir_coords[2,:,:,:].copy(), pointData=self.dir_arrs) - vtk.imageToVTK(filename, pointData=self.dir_arrs) - - def write_recipspace_pyevtk(self, filename, **args): - vtk.gridToVTK(filename, self.recip_coords[0,:,:,:].copy(), \ - self.recip_coords[1,:,:,:].copy(), \ - self.recip_coords[2,:,:,:].copy(), pointData=self.recip_arrs) - vtk.imageToVTK(filename, pointData=self.recip_arrs) - -def shift(arr, s0, s1, s2): - shifted = np.roll(arr, s0, axis=0) - shifted = np.roll(shifted, s1, axis=1) - return np.roll(shifted, s2, axis=2) - - -def center_of_mass(arr): - tot = np.sum(arr) - dims = arr.shape - xyz = [] - griddims = [] - for d in dims: - griddims.append(slice(0, d)) - grid = np.ogrid[griddims] - for g in grid: - xyz.append(np.sum(arr * g) / tot) - com = np.asarray(xyz) - com = np.ma.round(com).astype(np.int) - return list(com) - -@measure -def remove_ramp(arr, ups=1): - new_shape = list(arr.shape) - # pad zeros around arr, to the size of 3 times (ups = 3) of arr size - for i in range(len(new_shape)): - new_shape[i] = ups * new_shape[i] - padded = ut.get_zero_padded_centered(arr, new_shape) - padded_f = np.fft.fftshift(np.fft.fftn(np.fft.ifftshift(padded))) - com = ndi.center_of_mass(np.power(np.abs(padded_f), 2)) - sub_pixel_shifted = ut.sub_pixel_shift(padded_f, new_shape[0]/2.0-com[0], new_shape[1]/2.0-com[1], -new_shape[2]/2.0-com[2]) - ramp_removed_padded = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(sub_pixel_shifted))) - ramp_removed = ut.crop_center(ramp_removed_padded, arr.shape) - - return ramp_removed - - -@measure -def center(image, support): - dims = image.shape - image, support = ut.get_centered_both(image, support) - - # place center of mass image*support in the center - for ax in range(len(dims)): - com = ndi.center_of_mass(np.absolute(image) * support) - image = shift(image, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) - support = shift(support, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) - - # set center phase to zero, use as a reference - phi0 = m.atan2(image.imag[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)], image.real[int(dims[0]/2), int(dims[1]/2), -int(dims[2]/2)]) - image = image * np.exp(-1j * phi0) - - return image, support - - -def get_crop(params, shape): - crop = [] - for i in range(len(shape)): - if params.crop is None: - crop.append(shape[i]) - else: - crop.append(params.crop[i]) - if isinstance(crop[i], float): - crop[i] = int(crop[i]*shape[i]) - return crop - From 3cd74c21e29fb8ca0be90be815c5160b5bc33748 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 16:02:56 -0600 Subject: [PATCH 264/336] Delete detectors.py --- .../src_py/beamlines/aps_34id/detectors.py | 35 ------------------- 1 file changed, 35 deletions(-) delete mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/detectors.py diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/detectors.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/detectors.py deleted file mode 100644 index 44700f8..0000000 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/detectors.py +++ /dev/null @@ -1,35 +0,0 @@ - -################################################################## -def getdetclass(detname, **args): - for cls in Detector.__subclasses__(): - print(detname.strip(),cls, cls.name) - if cls.name == detname.strip(): - c=cls() - return c - - -#could start to encapsulate everything about a detector here. whitefield and dark and other things. Then we -#just set the detector in a config file and everything can use it. maybe add a config_det file to conf? -class Detector(object): - name=None - def __init__(self, det_name): - self.det_name = det_name - - def get_pixel(self): - return (1,1) - - -class Detector_34idcTIM2(Detector): - name="34idcTIM2:" - pixel='(55.0e-6,55e-6)' - pixelorientation="(x+,y-)" #in xrayutilities notation - def __init__(self): - super(Detector_34idcTIM2, self).__init__('34idcTIM2:') - - def get_pixel(self): - return self.pixel - - def get_pixelorientation(self): - return self.pixelorientation - - From 3d841e79ce356d4c06a2c8d3ccbae62d154632bc Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 16:03:09 -0600 Subject: [PATCH 265/336] Delete __init__.py --- .../reccdi/src_py/beamlines/aps_34id/__init__.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/__init__.py diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/__init__.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/beamlines/aps_34id/__init__.py deleted file mode 100644 index e69de29..0000000 From 163fc7310bfcf758ec09a71632b1cd6851ce4497 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 16:03:27 -0600 Subject: [PATCH 266/336] Delete transtest.py --- .../reccdi/src_py/utilities/transtest.py | 22 ------------------- 1 file changed, 22 deletions(-) delete mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/transtest.py diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/transtest.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/transtest.py deleted file mode 100644 index f4756e3..0000000 --- a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/transtest.py +++ /dev/null @@ -1,22 +0,0 @@ -import numpy as np - -dims=(5,5,5) -dxdir=1 -dydir=1 -dzdir=1 - -r = np.mgrid[(dims[0] - 1) * dxdir:-dxdir:-dxdir, \ - 0:dims[1] * dydir:dydir,\ - 0:dims[2] * dzdir:dzdir] - -origshape=r.shape -r.shape = 3, dims[0] * dims[1] * dims[2] -r = r.transpose() - -Tdir=np.array( [[0.1,0,0],[0,1,0],[0,0,1]]) -print( Tdir) -dir_coords = np.dot(r, Tdir) - -dir_coords = dir_coords.transpose() -dir_coords.shape=origshape - From c2188c9d901a2ff688777d33a9b6c273ffe5964b Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 16:03:53 -0600 Subject: [PATCH 267/336] Delete run_rec.py --- .../reccdi/src_py/run_scripts/run_rec.py | 229 ------------------ 1 file changed, 229 deletions(-) delete mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/run_rec.py diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/run_rec.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/run_rec.py deleted file mode 100644 index d0477a9..0000000 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/run_rec.py +++ /dev/null @@ -1,229 +0,0 @@ -import sys -import signal -import os -import argparse -from multiprocessing import Process, Queue -import reccdi.src_py.controller.reconstruction as rec -import reccdi.src_py.controller.gen_rec as gen_rec -import reccdi.src_py.controller.reconstruction_multi as mult_rec -import reccdi.src_py.utilities.utils as ut -import reccdi.src_py.utilities.parse_ver as ver -import time -from functools import reduce - - -MEM_FACTOR = 1500 -ADJUST = 0.0 - -def interrupt_thread(): - """ - This function is part of interrupt mechanism. It detects ctl-c signal and creates an empty file named "stopfile". - The file is discovered by fast module and the discovery prompts termonation of the process. - """ - def int_handler(signal, frame): - while not os.path.isfile('stopfile'): - open('stopfile', 'a').close() - time.sleep(.3) - - # #remove the file at the end - if os.path.isfile('stopfile'): - os.remove('stopfile') - - def term_handler(signal, frame): - pass - - signal.signal(signal.SIGINT, int_handler) - signal.signal(signal.SIGTERM, term_handler) - signal.pause() - - -def rec_process(proc, conf_file, datafile, dir, gpus, r, q): - if r == 'g': - gen_rec.reconstruction(proc, conf_file, datafile, dir, gpus) - elif r == 'm': - mult_rec.reconstruction(proc, conf_file, datafile, dir, gpus) - elif r == 's': - rec.reconstruction(proc, conf_file, datafile, dir, gpus) - q.put((os.getpid(), gpus)) - - -def get_gpu_use(devices, no_dir, no_rec, data_size): - rec_mem_size = data_size / MEM_FACTOR - gpu_load = ut.get_gpu_load(rec_mem_size, devices) - no_runs = no_dir * no_rec - gpu_distribution = ut.get_gpu_distribution(no_runs, gpu_load) - gpu_use = [] - available = reduce((lambda x,y: x+y), gpu_distribution) - dev_index = 0 - i = 0 - while i < available: - if gpu_distribution[dev_index] > 0: - gpu_use.append(devices[dev_index]) - gpu_distribution[dev_index] = gpu_distribution[dev_index] -1 - i += 1 - dev_index += 1 - dev_index = dev_index % len(devices) - if no_dir > 1: - gpu_use = [gpu_use[x:x+no_rec] for x in range(0, len(gpu_use), no_rec)] - - return gpu_use - - -def manage_reconstruction(proc, experiment_dir, rec_id=None): - """ - This function starts the interruption discovery thread and the recontruction thread. - - It reads configuration file defined as /conf/config_rec. - If multiple generations are configured, it will start reconstruction from "reconstruction_multi" - script, otherwise from "reconstruction" script. - """ - if os.path.exists('stopfile'): - os.remove('stopfile') - print ('starting reconstruction') - # find how many reconstruction configurations are in config directory - # if more than one, it will run in separate processes - conf_dir = os.path.join(experiment_dir, 'conf') - if rec_id is None: - conf_file = os.path.join(conf_dir, 'config_rec') - else: - conf_file = os.path.join(conf_dir, rec_id + '_config_rec') - - # check if file exists - if not os.path.isfile(conf_file): - print ('no configuration file ' + conf_file + ' found') - return - - # verify the configuration file - if not ver.ver_config_rec(conf_file): - # if not verified, the ver will print message - return - - try: - config_map = ut.read_config(conf_file) - if config_map is None: - print("can't read configuration file " + conf_file) - return - except: - print('Cannot parse configuration file ' + conf_file + ' , check for matching parenthesis and quotations') - return - - exp_dirs_data = [] - # experiment may be multi-scan in which case will run a reconstruction for each scan - for dir in os.listdir(experiment_dir): - if dir.startswith('scan'): - datafile = os.path.join(experiment_dir, dir, 'data', 'data.tif') - if os.path.isfile(datafile): - exp_dirs_data.append((datafile, os.path.join(experiment_dir, dir))) - # if there are no scan directories, assume it is combined scans experiment - if len(exp_dirs_data) == 0: - # in typical scenario data_dir is not configured, and it is defaulted to /data - # the data_dir is ignored in multi-scan scenario - try: - data_dir = config_map.data_dir - except AttributeError: - data_dir = os.path.join(experiment_dir, 'data') - datafile = os.path.join(data_dir, 'data.tif') - if os.path.isfile(datafile): - exp_dirs_data.append((datafile, experiment_dir)) - no_runs = len(exp_dirs_data) - - try: - generations = config_map.generations - except: - generations = 0 - try: - reconstructions = config_map.reconstructions - except: - reconstructions = 1 - try: - devices = config_map.device - except: - devices = [-1] - - if (no_runs > 1 or reconstructions > 1) and devices[0] != -1: - from functools import reduce - # find size of data array - data_shape = ut.read_tif(exp_dirs_data[0][0]).shape - data_size = reduce((lambda x,y: x*y), data_shape) - gpu_use = get_gpu_use(devices, no_runs, reconstructions, data_size) - else: - gpu_use = devices - - if generations > 1: - r = gen_rec - elif reconstructions > 1: - r = mult_rec - else: - r = rec - - # start the interrupt process - interrupt_process = Process(target=interrupt_thread, args=()) - interrupt_process.start() - - if no_runs == 1: - dir_data = exp_dirs_data[0] - datafile = dir_data[0] - dir = dir_data[1] - r.reconstruction(proc, conf_file, datafile, dir, gpu_use) - else: - # check if is it worth to use last chunk - if len(gpu_use[0]) > len(gpu_use[-1])*2: - gpu_use = gpu_use[0:-1] - - if generations > 1: - r = 'g' - elif reconstructions > 1: - r = 'm' - else: - r = 's' - - q = Queue() - for gpus in gpu_use: - q.put((None, gpus)) - # index keeps track of the multiple directories - index = 0 - processes = {} - while index < no_runs: - pid, gpus = q.get() - if pid is not None: - os.kill(pid, signal.SIGKILL) - del processes[pid] - datafile = exp_dirs_data[index][0] - dir = exp_dirs_data[index][1] - p = Process(target = rec_process, args = (proc, conf_file, datafile, dir, gpus, r, q)) - p.start() - processes[p.pid] = index - index += 1 - - # close the queue - while len(processes.items()) > 0: - pid, gpus = q.get() - os.kill(pid, signal.SIGKILL) - del processes[pid] - q.close() - - interrupt_process.terminate() - print ('finished reconstruction') - - -def main(arg): - parser = argparse.ArgumentParser() - parser.add_argument("proc", help="the processor the code will run on, can be 'cpu', 'opencl', or 'cuda'.") - parser.add_argument("experiment_dir", help="experiment directory.") - parser.add_argument("--rec_id", help="reconstruction id, a prefix to '_results' directory") - args = parser.parse_args() - proc = args.proc - experiment_dir = args.experiment_dir - - if args.rec_id: - manage_reconstruction(proc, experiment_dir, args.rec_id) - else: - manage_reconstruction(proc, experiment_dir) - - -if __name__ == "__main__": - print (sys.argv[1:]) - main(sys.argv[1:]) - -#python run_rec.py opencl experiment_dir - From c58293cea42b0eebf7e68a26b4763478af0c82ee Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 16:04:09 -0600 Subject: [PATCH 268/336] Delete viz_util.py --- .../reccdi/src_py/utilities/viz_util.py | 71 ------------------- 1 file changed, 71 deletions(-) delete mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util.py diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util.py deleted file mode 100644 index 6d9e02c..0000000 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util.py +++ /dev/null @@ -1,71 +0,0 @@ -# ######################################################################### -# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # -# # -# See LICENSE file. # -# ######################################################################### - -import os -import numpy as np -import scipy.ndimage as ndi -import math as m -import reccdi.src_py.utilities.utils as ut -from reccdi.src_py.utilities.utils import measure - -__author__ = "Barbara Frosik" -__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." -__docformat__ = 'restructuredtext en' - - -def shift(arr, s0, s1, s2): - shifted = np.roll(arr, s0, axis=0) - shifted = np.roll(shifted, s1, axis=1) - return np.roll(shifted, s2, axis=2) - - -@measure -def remove_ramp(arr, ups=1): - new_shape = list(arr.shape) - # pad zeros around arr, to the size of 3 times (ups = 3) of arr size - for i in range(len(new_shape)): - new_shape[i] = ups * new_shape[i] - padded = ut.get_zero_padded_centered(arr, new_shape) - padded_f = np.fft.fftshift(np.fft.fftn(np.fft.ifftshift(padded))) - com = ndi.center_of_mass(np.power(np.abs(padded_f), 2)) - sub_pixel_shifted = ut.sub_pixel_shift(padded_f, new_shape[0]/2.0-com[0], new_shape[1]/2.0-com[1], -new_shape[2]/2.0-com[2]) - ramp_removed_padded = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(sub_pixel_shifted))) - ramp_removed = ut.crop_center(ramp_removed_padded, arr.shape) - - return ramp_removed - - -@measure -def center(image, support): - dims = image.shape - image, support = ut.get_centered_both(image, support) - - # place center of mass image*support in the center - for ax in range(len(dims)): - com = ndi.center_of_mass(np.absolute(image) * support) - image = shift(image, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) - support = shift(support, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) - - # set center phase to zero, use as a reference - phi0 = m.atan2(image.imag[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)], image.real[int(dims[0]/2), int(dims[1]/2), -int(dims[2]/2)]) - image = image * np.exp(-1j * phi0) - - return image, support - - -def get_crop(params, shape): - crop = [] - for i in range(len(shape)): - if params.crop is None: - crop.append(shape[i]) - else: - crop.append(params.crop[i]) - if isinstance(crop[i], float): - crop[i] = int(crop[i]*shape[i]) - return crop - From 379e79d324577cc306569af337889873f91af85d Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 16:05:02 -0600 Subject: [PATCH 269/336] Delete everything.py --- .../reccdi/src_py/run_scripts/everything.py | 29 ------------------- 1 file changed, 29 deletions(-) delete mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/everything.py diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/everything.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/everything.py deleted file mode 100644 index acae99e..0000000 --- a/build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/everything.py +++ /dev/null @@ -1,29 +0,0 @@ -import sys -import argparse -import reccdi.src_py.run_scripts.run_data as run_dt -import reccdi.src_py.run_scripts.run_rec as run_rc -import reccdi.src_py.run_scripts.run_disp as run_dp -import reccdi.src_py.run_scripts.run_34id_prepare as prep - - -def main(arg): - parser = argparse.ArgumentParser() - parser.add_argument("dev", help="processor to run on (cpu, opencl, cuda)") - parser.add_argument("prefix", help="prefix id") - parser.add_argument("scans", help="scans to preocess") - parser.add_argument("conf_dir", help="directory with configuration files") - args = parser.parse_args() - dev = args.dev - prefix = args.prefix - scans = args.scans - conf_dir = args.conf_dir - - experiment_dir = prep.parse_and_prepare(prefix, scans, conf_dir) - run_dt.data(experiment_dir) - run_rc.manage_reconstruction(dev, experiment_dir) - run_dp.to_vtk(experiment_dir) - - -if __name__ == "__main__": - main(sys.argv[1:]) - From 44ca940ecd837b4cd8e7c8808be440c36d55373e Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 16:05:54 -0600 Subject: [PATCH 270/336] Delete viz_util_xu_pyevtk.py --- .../src_py/utilities/viz_util_xu_pyevtk.py | 332 ------------------ 1 file changed, 332 deletions(-) delete mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util_xu_pyevtk.py diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util_xu_pyevtk.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util_xu_pyevtk.py deleted file mode 100644 index c2d7e7b..0000000 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util_xu_pyevtk.py +++ /dev/null @@ -1,332 +0,0 @@ -# ######################################################################### -# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # -# # -# See LICENSE file. # -# ######################################################################### - -import os -import numpy as np -import scipy.ndimage as ndi -import math as m -import pyevtk.hl as vtk -import xrayutilities.experiment as xuexp -import reccdi.src_py.utilities.utils as ut -from reccdi.src_py.utilities.utils import measure -import reccdi.src_py.utilities.spec as sput - -__author__ = "Barbara Frosik" -__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." -__docformat__ = 'restructuredtext en' - -class DispalyParams: - """ - This class encapsulates parameters defining image display. The parameters are -read from config file on - construction - """ - - def __init__(self, config): - """ - The constructor gets config file and fills out the class members. - - Parameters - ---------- - conf : str - configuration file name - - Returns - ------- - none - """ - deg2rad = np.pi / 180.0 - try: - specfile = config['specfile'] - last_scan = config['last_scan'] - self.lam, delta, gamma, dth, arm, pixel,energy = sput.parse_spec(specfile, -last_scan) - self.delta = delta * deg2rad - self.gamma = gamma * deg2rad - self.dth = dth * deg2rad - self.arm = arm / 1000 - self.energy = energy - pixel = pixel[1:-1] - pixel = pixel.split(',') - pixel[0], pixel[1] = float(pixel[0]), float(pixel[1]) - except Exception as e: - pass - # override the parsed parameters with entries in config file - try: - self.energy = config['energy'] - self.lam = 12.398 / energy / 10 - except AttributeError: - pass - try: - self.delta = config['delta'] * deg2rad - except AttributeError: - pass - try: - self.gamma = config['gamma'] * deg2rad - except AttributeError: - pass - try: - self.dth = config['dth'] * deg2rad - except AttributeError: - pass - try: - self.arm = config['arm'] / 1000 - except AttributeError: - pass - try: - pixel = config['pixel'] - except AttributeError: - pass - - try: - self.binning = [] - binning = config['binning'] - for i in range(len(binning)): - self.binning.append(binning[i]) - for _ in range(3 - len(self.binning)): - self.binning.append(1) - except AttributeError: - self.binning = [1,1,1] - self.px = pixel[0] * self.binning[0] - self.py = pixel[1] * self.binning[1] - self.dpx = pixel[0] * self.binning[0] / self.arm / self.binning[2] - self.dpy = pixel[1] * self.binning[1] / self.arm / self.binning[2] - try: - self.crop = [] - crop = config['crop'] - for i in range(len(crop)): - self.crop.append(crop[i]) - for _ in range(3 - len(self.crop)): - self.crop.append(1.0) - crop[0], crop[1] = crop[1], crop[0] - except AttributeError: - self.crop = None - - - - - - -class CXDViz(): - - cropx = 0.5 - cropy = 0.5 - cropz = 0.5 - dir_arrs={} - recip_arrs={} - - def __init__(self): - #self.imd = tvtk.ImageData() - #self.sg = tvtk.StructuredGrid() - pass - - - #def set_geometry(self, lam, delta, gamma, dpx, dpy, dth): - @measure - def set_geometry(self, params, shape): - self.params = params - lam = params.lam - tth = params.delta - gam = params.gamma - px = params.px - py = params.py - dpx = params.dpx - dpy = params.dpy - dth = params.dth - energy = params.energy - dQdpx = np.zeros(3) - dQdpy = np.zeros(3) - dQdth = np.zeros(3) - Astar = np.zeros(3) - Bstar = np.zeros(3) - Cstar = np.zeros(3) - - print("running the xrayutilities version") - self.qc=xuexp.QConversion(['y+','z-','x-'], ['y+','x-'],(0,0,1),en=energy*1000) - self.qc.init_area('x+','y-', shape[0],shape[1], 2,2, distance=params.arm, pwidth1=px, pwidth2=py) - - q1=np.array(self.qc.area(0.0,0,0,tth,gam,deg=False)) - q2=np.array(self.qc.area(dth,0,0,tth,gam,deg=False)) - Astar=q1[:,1,0]-q1[:,0,0] - Bstar=q1[:,0,1]-q1[:,0,0] - Cstar=(q2-q1)[:,0,0] - - denom = np.dot(Astar, np.cross(Bstar, Cstar)) - A = 2 * m.pi * np.cross(Bstar, Cstar) / denom - B = 2 * m.pi * np.cross(Cstar, Astar) / denom - C = 2 * m.pi * np.cross(Astar, Bstar) / denom - - self.Trecip = np.zeros(9) - self.Trecip.shape = (3, 3) - self.Trecip[:, 0] = Astar - self.Trecip[:, 1] = Bstar - self.Trecip[:, 2] = Cstar -# self.Trecip[:, 0] = [2,0,1] -# self.Trecip[:, 1] = [0,1,0] -# self.Trecip[:, 2] = [0,0,1] - print("Recip") - print(Astar,Bstar,Cstar) - print(self.Trecip) - - self.Tdir = np.zeros(9) - self.Tdir.shape = (3, 3) - self.Tdir = np.array((A, B, C)).transpose() - print("Direct") - print(A,B,C) - print(self.Tdir) - - self.dirspace_uptodate=0 - self.recipspace_uptodate=0 - return dQdpx, dQdpy, dQdth - - def update_dirspace(self, shape): - print("Updating dirspace coords") - dims = list(shape) - self.dxdir = 1.0 / shape[0] - self.dydir = 1.0 / shape[1] - self.dzdir = 1.0 / shape[2] - - r = np.mgrid[ - 0:dims[0] * self.dxdir:self.dxdir, \ - 0:dims[1] * self.dydir:self.dydir,\ - 0:dims[2] * self.dzdir:self.dzdir,\ - ] -# r = np.mgrid[ -# 0:dims[0]*self.dxdir:self.dxdir, \ -# (dims[1]-1)*self.dydir:-self.dydir:-self.dydir,\ -# 0:dims[2]*self.dzdir:self.dzdir] - - origshape=r.shape - r.shape = 3, dims[0] * dims[1] * dims[2] - #r = r.transpose() - - self.dir_coords = np.dot(self.Tdir, r) - -# self.dir_coords = self.dir_coords.transpose() - self.dir_coords.shape=origshape - print("dir shape", self.dir_coords.shape) - self.dirspace_uptodate=1 - - def update_recipspace(self, shape): - dims = list(shape) - q = np.mgrid[ 0:dims[0], 0:dims[1], 0:dims[2]] - - origshape=q.shape - q.shape = 3, dims[0] * dims[1] * dims[2] - - self.recip_coords = np.dot(self.Trecip, q) - self.recip_coords.shape=origshape - self.recipspace_uptodate=1 - - def clear_direct_arrays(self): - self.dir_arrs.clear() - def clear_recip_arrays(self): - self.recip_arrs.clear() - - @measure - def add_array(self, array, name, space='direct', logentry=None): - - #Need to add something to ensure arrays are all the same dimension. - #Need to add crop of viz output arrays - if len(array.shape) < 3: - newdims = list(array.shape) - for i in range(3 - len(newdims)): - newdims.append(1) - array.shape = tuple(newdims) - #array=array.transpose() - print("adding array of shape ", array.shape) - if space=='direct': - self.dir_arrs[name]=array - if (not self.dirspace_uptodate): - self.update_dirspace(array.shape) - elif space=='recip': - self.recip_arrs[name]=array - if (not self.recipspace_uptodate): - self.update_recipspace(array.shape) - else: - return - - @measure - def write_directspace(self, filename, **args): - print(self.dir_arrs.keys()) - vtk.gridToVTK(filename, self.dir_coords[0,:,:,:].copy(), \ - self.dir_coords[1,:,:,:].copy(), \ - self.dir_coords[2,:,:,:].copy(), pointData=self.dir_arrs) - vtk.imageToVTK(filename, pointData=self.dir_arrs) - - def write_recipspace(self, filename, **args): - vtk.gridToVTK(filename, self.recip_coords[0,:,:,:].copy(), \ - self.recip_coords[1,:,:,:].copy(), \ - self.recip_coords[2,:,:,:].copy(), pointData=self.recip_arrs) - vtk.imageToVTK(filename, pointData=self.recip_arrs) - -def shift(arr, s0, s1, s2): - shifted = np.roll(arr, s0, axis=0) - shifted = np.roll(shifted, s1, axis=1) - return np.roll(shifted, s2, axis=2) - - -def center_of_mass(arr): - tot = np.sum(arr) - dims = arr.shape - xyz = [] - griddims = [] - for d in dims: - griddims.append(slice(0, d)) - grid = np.ogrid[griddims] - for g in grid: - xyz.append(np.sum(arr * g) / tot) - com = np.asarray(xyz) - com = np.ma.round(com).astype(np.int) - return list(com) - -@measure -def remove_ramp(arr, ups=1): - new_shape = list(arr.shape) - # pad zeros around arr, to the size of 3 times (ups = 3) of arr size - for i in range(len(new_shape)): - new_shape[i] = ups * new_shape[i] - padded = ut.get_zero_padded_centered(arr, new_shape) - padded_f = np.fft.fftshift(np.fft.fftn(np.fft.ifftshift(padded))) - com = ndi.center_of_mass(np.power(np.abs(padded_f), 2)) - sub_pixel_shifted = ut.sub_pixel_shift(padded_f, new_shape[0]/2.0-com[0], new_shape[1]/2.0-com[1], -new_shape[2]/2.0-com[2]) - ramp_removed_padded = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(sub_pixel_shifted))) - ramp_removed = ut.crop_center(ramp_removed_padded, arr.shape) - - return ramp_removed - - -@measure -def center(image, support): - dims = image.shape - image, support = ut.get_centered_both(image, support) - - # place center of mass image*support in the center - for ax in range(len(dims)): - com = ndi.center_of_mass(np.absolute(image) * support) - image = shift(image, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) - support = shift(support, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) - - # set center phase to zero, use as a reference - phi0 = m.atan2(image.imag[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)], image.real[int(dims[0]/2), int(dims[1]/2), -int(dims[2]/2)]) - image = image * np.exp(-1j * phi0) - - return image, support - - -def get_crop(params, shape): - crop = [] - for i in range(len(shape)): - if params.crop is None: - crop.append(shape[i]) - else: - crop.append(params.crop[i]) - if isinstance(crop[i], float): - crop[i] = int(crop[i]*shape[i]) - return crop - From e6c2d2288aa64a15da7cdec5bf75f3ec0285e978 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 16:06:17 -0600 Subject: [PATCH 271/336] Delete rec_disp.py --- .../reccdi/src_py/utilities/rec_disp.py | 379 ------------------ 1 file changed, 379 deletions(-) delete mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/rec_disp.py diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/rec_disp.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/rec_disp.py deleted file mode 100644 index 0aa4d8d..0000000 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/rec_disp.py +++ /dev/null @@ -1,379 +0,0 @@ -# ######################################################################### -# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # -# # -# See LICENSE file. # -# ######################################################################### - -import pylibconfig2 as cfg -import os -import traits.api as tr -from tvtk.api import tvtk -import numpy as np -import scipy.ndimage as ndi -import math as m -import reccdi.src_py.utilities.utils as ut -import reccdi.src_py.utilities.spec as sput - -__author__ = "Barbara Frosik" -__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." -__docformat__ = 'restructuredtext en' - - -class DispalyParams: - """ - This class encapsulates parameters defining image display. The parameters are read from config file on - construction - """ - - def __init__(self, config, last_scan): - """ - The constructor gets config file and fills out the class members. - - Parameters - ---------- - conf : str - configuration file name - - Returns - ------- - none - """ - if os.path.isfile(config): - with open(config, 'r') as f: - config_map = cfg.Config(f.read()) - - deg2rad = np.pi / 180.0 - try: - specfile = config_map.specfile - self.lamda, delta, gamma, dth, arm, pixel = sput.parse_spec(specfile, last_scan) - self.delta = delta * deg2rad - self.gamma = gamma * deg2rad - self.dth = dth * deg2rad - self.arm = arm / 1000 - pixel = pixel[1:-1] - pixel = pixel.split(',') - pixel[0], pixel[1] = float(pixel[0]), float(pixel[1]) - except Exception as e: - # print (str(e)) - try: - energy = config_map.energy - self.lamda = 12.398 / energy / 10 - except AttributeError: - print ('lamda not defined') - try: - self.delta = config_map.delta * deg2rad - except AttributeError: - print ('delta not defined') - try: - self.gamma = config_map.gamma * deg2rad - except AttributeError: - print ('gamma not defined') - try: - self.dth = config_map.dth * deg2rad - except AttributeError: - print ('dth not defined') - try: - self.arm = config_map.arm / 1000 - except AttributeError: - print ('arm not defined') - try: - pixel = config_map.pixel - except AttributeError: - print ('pixel not defined') - - try: - self.binning = [] - binning = config_map.binning - for i in range(len(binning)): - self.binning.append(binning[i]) - for _ in range(3 - len(self.binning)): - self.binning.append(1) - except AttributeError: - self.binning = [1,1,1] - self.dpx = pixel[0] * self.binning[0] / self.arm / self.binning[2] - self.dpy = pixel[1] * self.binning[1] / self.arm / self.binning[2] - try: - self.crop = [] - crop = config_map.crop - for i in range(len(crop)): - self.crop.append(crop[i]) - for _ in range(3 - len(self.crop)): - self.crop.append(1.0) - crop[0], crop[1] = crop[1], crop[0] - except AttributeError: - self.crop = None - - -class CXDViz(tr.HasTraits): - coords = tr.Array() - arr = tr.Array() - - cropx = tr.Int() - cropy = tr.Int() - cropz = tr.Int() - - - def __init__(self): - self.imd = tvtk.ImageData() - self.sg = tvtk.StructuredGrid() - pass - - - def set_geometry(self, params, shape): - lam = params.lamda - tth = params.delta - gam = params.gamma - dpx = params.dpx - dpy = params.dpy - dth = params.dth - dx = 1.0 / shape[0] - dy = 1.0 / shape[1] - dz = 1.0 / shape[2] - dQdpx = np.zeros(3) - dQdpy = np.zeros(3) - dQdth = np.zeros(3) - Astar = np.zeros(3) - Bstar = np.zeros(3) - Cstar = np.zeros(3) - - # dQdpx[0] = -m.cos(tth) * m.cos(gam) - # dQdpx[1] = 0.0 - # dQdpx[2] = +m.sin(tth) * m.cos(gam) - dQdpx[0] = -m.cos(tth) - dQdpx[1] = 0.0 - dQdpx[2] = +m.sin(tth) - - dQdpy[0] = m.sin(tth) * m.sin(gam) - dQdpy[1] = -m.cos(gam) - dQdpy[2] = m.cos(tth) * m.sin(gam) - - dQdth[0] = -m.cos(tth) * m.cos(gam) + 1.0 - dQdth[1] = 0.0 - dQdth[2] = m.sin(tth) * m.cos(gam) - - Astar[0] = 2 * m.pi / lam * dpx * dQdpx[0] - Astar[1] = 2 * m.pi / lam * dpx * dQdpx[1] - Astar[2] = 2 * m.pi / lam * dpx * dQdpx[2] - - Bstar[0] = (2 * m.pi / lam) * dpy * dQdpy[0] - Bstar[1] = (2 * m.pi / lam) * dpy * dQdpy[1] - Bstar[2] = (2 * m.pi / lam) * dpy * dQdpy[2] - - Cstar[0] = (2 * m.pi / lam) * dth * dQdth[0] - Cstar[1] = (2 * m.pi / lam) * dth * dQdth[1] - Cstar[2] = (2 * m.pi / lam) * dth * dQdth[2] - - denom = np.dot(Astar, np.cross(Bstar, Cstar)) - A = 2 * m.pi * np.cross(Bstar, Cstar) / denom - B = 2 * m.pi * np.cross(Cstar, Astar) / denom - C = 2 * m.pi * np.cross(Astar, Bstar) / denom - - self.T = np.zeros(9) - self.T.shape = (3, 3) - space = 'direct' - if space == 'recip': - self.T[:, 0] = Astar - self.T[:, 1] = Bstar - self.T[:, 2] = Cstar - self.dx = 1.0 - self.dy = 1.0 - self.dz = 1.0 - elif space == 'direct': - self.T = np.array((A, B, C)) - self.dx = dx - self.dy = dy - self.dz = dz - else: - pass - - - def update_coords(self): - dims = list(self.arr[self.cropobj].shape) - - r = np.mgrid[(dims[0] - 1) * self.dx:-self.dx:-self.dx, \ - 0:dims[1] * self.dy:self.dy, 0:dims[2] * self.dz:self.dz] - - r.shape = 3, dims[0] * dims[1] * dims[2] - r = r.transpose() - - self.coords = np.dot(r, self.T) - - - def set_array(self, array, logentry=None): - self.arr = array - if len(self.arr.shape) < 3: - newdims = list(self.arr.shape) - for i in range(3 - len(newdims)): - newdims.append(1) - self.arr.shape = tuple(newdims) - - - def set_crop(self, cropx, cropy, cropz): - dims = list(self.arr.shape) - if len(dims) == 2: - dims.append(1) - - if dims[0] > cropx and cropx > 0: - self.cropx = cropx - else: - self.cropx = dims[0] - - if dims[1] > cropy and cropy > 0: - self.cropy = cropy - else: - self.cropy = dims[1] - - if dims[2] > cropz and cropz > 0: - self.cropz = cropz - else: - self.cropz = dims[2] - - start1 = int(dims[0]/2) - int(self.cropx/2) - end1 = int(dims[0]/2) + int(self.cropx/2) - if start1 == end1: - end1 = end1 + 1 - start2 = int(dims[1]/2) - int(self.cropy/2) - end2 = int(dims[1]/2) + int(self.cropy/2) - if start2 == end2: - end2 = end2 + 1 - start3 = int(dims[2]/2) - int(self.cropz/2) - end3 = int(dims[2]/2) + int(self.cropz/2) - if start3 == end3: - end3 = end3 + 1 - - self.cropobj = (slice(start1, end1, None), slice(start2, end2, None), - slice(start3, end3, None)) - - - def get_structured_grid(self, **args): - self.update_coords() - dims = list(self.arr[self.cropobj].shape) - self.sg.points = self.coords - if "mode" in args: - if args["mode"] == "Phase": - arr1 = self.arr[self.cropobj].ravel() - arr = (np.arctan2(arr1.imag, arr1.real)) - else: - arr = np.abs(self.arr[self.cropobj].ravel()) - else: - arr = self.arr[self.cropobj].ravel() - if (arr.dtype == np.complex128 or arr.dtype == np.complex64): - self.sg.point_data.scalars = np.abs(arr) - self.sg.point_data.scalars.name = "Amp" - ph = tvtk.DoubleArray() - ph.from_array(np.arctan2(arr.imag, arr.real)) - ph.name = "Phase" - self.sg.point_data.add_array(ph) - else: - self.sg.point_data.scalars = arr - self.sg.dimensions = (dims[2], dims[1], dims[0]) - self.sg.extent = 0, dims[2] - 1, 0, dims[1] - 1, 0, dims[0] - 1 - return self.sg - - - def write_structured_grid(self, filename, **args): - sgwriter = tvtk.StructuredGridWriter() - sgwriter.file_type = 'binary' - if filename.endswith(".vtk"): - sgwriter.file_name = filename - else: - sgwriter.file_name = filename + '.vtk' - sgwriter.set_input_data(self.get_structured_grid()) - sgwriter.write() - print ('saved file', filename) - - -def shift(arr, s0, s1, s2): - shifted = np.roll(arr, s0, axis=0) - shifted = np.roll(shifted, s1, axis=1) - return np.roll(shifted, s2, axis=2) - - -def center_of_mass(arr): - tot = np.sum(arr) - dims = arr.shape - xyz = [] - griddims = [] - for d in dims: - griddims.append(slice(0, d)) - grid = np.ogrid[griddims] - for g in grid: - xyz.append(np.sum(arr * g) / tot) - com = np.asarray(xyz) - com = np.ma.round(com).astype(np.int) - return list(com) - - -def remove_ramp(arr, ups=3): - new_shape = list(arr.shape) - # pad zeros around arr, to the size of 3 times (ups = 3) of arr size - for i in range(len(new_shape)): - new_shape[i] = ups * new_shape[i] - padded = ut.get_zero_padded_centered(arr, new_shape) - padded_f = np.fft.fftshift(np.fft.fftn(np.fft.ifftshift(padded))) - com = ndi.center_of_mass(np.power(np.abs(padded_f), 2)) - sub_pixel_shifted = ut.sub_pixel_shift(padded_f, new_shape[0]/2.0-com[0], new_shape[1]/2.0-com[1], new_shape[2]/2.0-com[2]) - ramp_removed_padded = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(sub_pixel_shifted))) - ramp_removed = ut.crop_center(ramp_removed_padded, arr.shape) - - return ramp_removed - - -def center(image, support): - dims = image.shape - image, support = ut.get_centered_both(image, support) - - # place center of mass image*support in the center - for ax in range(len(dims)): - com = ndi.center_of_mass(np.absolute(image) * support) - image = shift(image, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) - support = shift(support, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) - - # set center phase to zero, use as a reference - phi0 = m.atan2(image.imag[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)], image.real[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)]) - image = image * np.exp(-1j * phi0) - - return image, support - - -def get_crop(params, shape): - crop = [] - for i in range(len(shape)): - if params.crop is None: - crop.append(shape[i]) - else: - crop.append(params.crop[i]) - if isinstance(crop[i], float): - crop[i] = int(crop[i]*shape[i]) - return crop - - -def save_CX(conf, image, support, coh, save_dir, last_scan): - image = np.swapaxes(image, 1,2) - image = np.swapaxes(image, 0,1) - support = np.swapaxes(support, 1,2) - support = np.swapaxes(support, 0,1) - image, support = center(image, support) - params = DispalyParams(conf, last_scan) - image = remove_ramp(image) - viz = CXDViz() - viz.set_array(image) - viz.set_geometry(params, image.shape) - crop = get_crop(params, image.shape) - viz.set_crop(crop[0], crop[1], crop[2]) # save image - image_file = os.path.join(save_dir, 'image') - viz.write_structured_grid(image_file) - viz.set_array(support) - support_file = os.path.join(save_dir, 'support') - viz.write_structured_grid(support_file) - if coh is not None: - coh = np.swapaxes(coh, 1, 2) - # investigate if pad_center before fft or after - coh = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(coh))).real - coh = ut.get_zero_padded_centered(coh, image.shape) - coh_file = os.path.join(save_dir, 'coherence') - viz.set_array(coh) - viz.write_structured_grid(coh_file) - -# a = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') -# remove_ramp(a, 3) From e940309b6ab8243ea9509db49cffd37db04bb2e1 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 16:07:04 -0600 Subject: [PATCH 272/336] Delete viz_util_dirdemo.py --- .../src_py/utilities/viz_util_dirdemo.py | 42 ------------------- 1 file changed, 42 deletions(-) delete mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util_dirdemo.py diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util_dirdemo.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util_dirdemo.py deleted file mode 100644 index 7da7654..0000000 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/viz_util_dirdemo.py +++ /dev/null @@ -1,42 +0,0 @@ -if __name__ =="__main__": - import numpy as np - import math as m - import tifffile as tif - import tools as t - import viz_util_xu as vu - import prep_noconfig as prep - import os - - #binning of the data, this is not actually done, it's to account for previous binning in the saved data. - dbin1=2 - dbin2=2 - dir="/Users/rharder/Box/cdi-master/reccdi/src_py/utilities/NX2019a-3_483/results" - fname=os.path.join(dir,"image.npy") - #a=t.read_tif("cropped.tif").copy() #copy ensures array is contiguous which pyevtk needs - #b=prep.read_scan("/Users/rharder/Desktop/cropped", None, None) - a=np.load(fname)[:-28,:,:] - -# tif.imsave("RawDiffraction.tif", b) -# print("raw data",b.shape) -# print("imagejsave",a.shape) - - #scan info. - lam=1.37 #wavelength - delta=33.0*m.pi/180 #detector angle 1 - gamma=11.0*m.pi/180 #detector angle 2 - dpx=55e-6/0.500 #pixel size divided by detector dist - dpy=55e-6/0.500 - dth=0.01*m.pi/180 #rocking curve scan step. Everything in radians - - vr=vu.CXDViz() - vr.set_geometry(lam, delta, gamma, dbin1*dpx, dbin2*dpy, dth) - vr.add_array(abs(a), "imamp", space='direct') - #vr.add_array(np.angle(a), "imph", space='direct') - vr.write_directspace("dirtest.vtk") - - - -# q=vr.recip_coords -# qmag=np.sqrt(q[0,:,:,:]**2 + q[1,:,:,:]**2 + q[2,:,:,:]**2) -# vr.add_array(qmag, "qmag", space='recip') #add a second property that can be used for color in viz. -# vr.write_recipspace("RawDiffraction") From e7030e396c8587db4813fdd80651e2958e7c2972 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 16:07:42 -0600 Subject: [PATCH 273/336] Delete utils_ga.py --- .../reccdi/src_py/utilities/utils_ga.py | 219 ------------------ 1 file changed, 219 deletions(-) delete mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/utils_ga.py diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/utils_ga.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/utils_ga.py deleted file mode 100644 index 747ad80..0000000 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/utils_ga.py +++ /dev/null @@ -1,219 +0,0 @@ - -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -# ######################################################################### -# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # -# # -# See LICENSE file. # -# ######################################################################### - -""" -Please make sure the installation :ref:`pre-requisite-reference-label` are met. -This module is a suite of utility mehods. -""" - -import scipy as sci -import numpy as np -import reccdi.src_py.utilities.utils as ut - - -__author__ = "Barbara Frosik" -__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." -__docformat__ = 'restructuredtext en' -__all__ = ['get_array_from_tif', - 'get_opencl_dim', - 'binning', - 'get_centered', - 'adjust_dimensions', - 'crop_center', - 'flip'] - -def cross_correlation(a, b): - A = np.fft.ifftshift(np.fft.fftn(np.fft.fftshift(conj_reflect(a)))) - B = np.fft.ifftshift(np.fft.fftn(np.fft.fftshift(b))) - CC = A * B - return np.fft.ifftshift(np.fft.ifftn(np.fft.fftshift(CC))) - - -def conj_reflect(arr): - F = np.fft.ifftshift(np.fft.fftn(np.fft.fftshift(arr))) - return np.fft.ifftshift(np.fft.ifftn(np.fft.fftshift(np.conj(F)))) - - -def check_get_conj_reflect(arr1, arr2): - support1 = ut.shrink_wrap(abs(arr1), .1, .1) - support2 = ut.shrink_wrap(abs(arr2), .1, .1) - cc1 = cross_correlation(support1, ut.shrink_wrap(conj_reflect(arr2), .1, .1)) - cc2 = cross_correlation(support1, support2) - if np.amax(cc1) > np.amax(cc2): - return conj_reflect(arr2) - else: - return arr2 - - -def dftups(arr, nor=-1, noc=-1, usfac=2, roff=0, coff=0): - # arr is 2D - [nr,nc] = arr.shape - if nor < 0: - nor = nr - if noc < 0: - noc = nc - - # Compute kernels and obtain DFT by matrix products - yl = list(range(-int(np.floor(nc/2)), nc - int(np.floor(nc/2)))) - y = np.fft.ifftshift(np.array(yl)) * (-2j * np.pi/(nc * usfac)) - xl = list(range(-coff, noc - coff)) - x = np.array(xl) - yt = np.tile(y, (len(xl), 1)) - xt = np.tile(x, (len(yl), 1)) - kernc = np.exp(yt.T * xt) - - yl = list(range(-roff, nor - roff)) - y = np.array(yl) - xl = list(range(-int(np.floor(nr/2)), nr - int(np.floor(nr/2)))) - x = np.fft.ifftshift(np.array(xl)) - yt = np.tile(y, (len(xl), 1)) - xt = np.tile(x, (len(yl), 1)) - kernr = np.exp(yt * xt.T * (-2j * np.pi/(nr * usfac))) - - return np.dot(np.dot(kernr.T, arr), kernc) - - -def dftregistration(ref_arr, arr, usfac=2): - #arrays are 2D - # based on Matlab dftregistration by Manuel Guizar (Portions of this code were taken from code written by - # Ann M. Kowalczyk and James R. Fienup. - if usfac < 2: - print ('usfac less than 2 not supported') - # will throw exception - return - # First upsample by a factor of 2 to obtain initial estimate - # Embed Fourier data in a 2x larger array - shape = ref_arr.shape - large_shape = tuple(2 * x for x in ref_arr.shape) - c_c = ut.get_zero_padded_centered(np.fft.fftshift(ref_arr) * np.conj(np.fft.fftshift(arr)), large_shape) - - # Compute crosscorrelation and locate the peak - c_c = np.fft.ifft2(np.fft.ifftshift(c_c)) - max_coord = list(np.unravel_index(np.argmax(c_c), c_c.shape)) - - if max_coord[0] > shape[0]: - row_shift = max_coord[0] - large_shape[0] - else: - row_shift = max_coord[0] - if max_coord[1] > shape[1]: - col_shift = max_coord[1] - large_shape[1] - else: - col_shift = max_coord[1] - - row_shift = row_shift/2 - col_shift = col_shift/2 - - #If upsampling > 2, then refine estimate with matrix multiply DFT - if usfac > 2: - # DFT computation - # Initial shift estimate in upsampled grid - row_shift = round(row_shift * usfac)/usfac - col_shift = round(col_shift * usfac)/usfac - dftshift = np.fix(np.ceil(usfac * 1.5)/2) # Center of output array at dftshift - # Matrix multiply DFT around the current shift estimate - c_c = np.conj(dftups(arr * np.conj(ref_arr), int(np.ceil(usfac * 1.5)), int(np.ceil(usfac * 1.5)), usfac, - int(dftshift-row_shift * usfac), int(dftshift-col_shift * usfac)))/\ - (int(np.fix(shape[0]/2)) * int(np.fix(shape[1]/2)) * usfac^2) - # Locate maximum and map back to original pixel grid - max_coord = list(np.unravel_index(np.argmax(c_c), c_c.shape)) - [rloc, cloc] = max_coord - - rloc = rloc - dftshift - cloc = cloc - dftshift - row_shift = row_shift + rloc/usfac - col_shift = col_shift + cloc/usfac - - return row_shift, col_shift - - -def register_3d_reconstruction(ref_arr, arr): - r_shift_2, c_shift_2 = dftregistration(np.fft.fft2(np.sum(ref_arr, 2)), np.fft.fft2(np.sum(arr, 2)), 100) - r_shift_1, c_shift_1 = dftregistration(np.fft.fft2(np.sum(ref_arr, 1)), np.fft.fft2(np.sum(arr, 1)), 100) - r_shift_0, c_shift_0 = dftregistration(np.fft.fft2(np.sum(ref_arr, 0)), np.fft.fft2(np.sum(arr, 0)), 100) - - shift_2 = sum([r_shift_2, r_shift_1]) * 0.5 - shift_1 = sum([c_shift_2, r_shift_0]) * 0.5 - shift_0 = sum([c_shift_1, c_shift_0]) * 0.5 - return shift_2, shift_1, shift_0 - - -def print_max(arr): - max_coord = list(np.unravel_index(np.argmax(abs(arr)), arr.shape)) - print ('max coord, value', abs(arr[max_coord[0],max_coord[1],max_coord[2]]), max_coord) - -def zero_phase(arr, val=0): - ph = np.angle(arr) - support = ut.shrink_wrap(abs(arr), .2, .5) #get just the crystal, i.e very tight support - avg_ph = np.sum(ph * support)/np.sum(support) - ph = ph - avg_ph + val - return abs(arr) * np.exp(1j * ph) - - -def zero_phase_cc(arr1, arr2): - # will set array1 avg phase to array2 - c_c = np.conj(arr1) * arr2 - c_c_tot = np.sum(c_c) - ph = np.angle(c_c_tot) - arr = arr1 * np.exp(1j * ph) - return arr - - -def align_arrays(ref_arr, arr): - (shift_2, shift_1, shift_0) = register_3d_reconstruction(abs(ref_arr), abs(arr)) - return ut.sub_pixel_shift(arr, shift_2, shift_1, shift_0) - -# ref_arr = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') -# arr = np.load('/home/phoebus/BFROSIK/temp/test/B_78-97/results/image.npy') -# l = align_arrays(ref_arr, arr) - -def sum_phase_tight_support(arr): - arr = zero_phase(arr) - ph = np.arctan2(arr.imag, arr.real) - support = ut.shrink_wrap(abs(arr), .2, .5) - return sum( abs(ph * support)) - - -def get_arr_characteristic(arr): - lev1_norm = sum(abs(arr)) - sharpness = sum(abs(arr)^4) - summed_phase = sum_phase_tight_support(arr) - support = ut.shrink_wrap(arr, .2, .5) - area = sum(support) - gradients = np.gradient(arr) - TV = np.zeros(arr.shape) - for gr in gradients: - TV += abs(gr) - return lev1_norm, sharpness, summed_phase, area, TV - - -# def align_iterates(arrs): -# #assume arrs[0] is the referrence array -# alpha = arrs[0] -# for i in range(1, len(arrs)): -# arr = check_get_conj_reflect(abs(alpha), abs(arr)) -# shift_2, shift_1, shift_0 = register_3d_reconstruction(abs(alpha), abs(arr)) -# arrs[i] = sub_pixel_shift(arr, round(shift_2), round(shift_1), round(shift_2)) -# return arrs - - -# def test(a,b): -# alpha = zero_phase(a, 0) -# beta = zero_phase(b, 0) -# alpha = check_get_conj_reflect(beta, alpha) -# alpha_s = align_arrays(beta, alpha) -# alpha_s = zero_phase(alpha_s, 0) -# ph_alpha = np.angle(alpha_s) -# beta = zero_phase_cc(beta, alpha_s) -# ph_beta = np.angle(beta) -# beta = np.sqrt(abs(alpha_s) * abs(beta)) * np.exp(0.5j * (ph_beta + ph_alpha)) -# -# a = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') -# b = np.load('/home/phoebus/BFROSIK/temp/test/B_78-97/results/image.npy') -# test(a, b) \ No newline at end of file From 34085797b10b981733f4f0fbecee198bf3bba599 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 16:07:59 -0600 Subject: [PATCH 274/336] Delete localCXDVizNX.py --- .../reccdi/src_py/utilities/localCXDVizNX.py | 383 ------------------ 1 file changed, 383 deletions(-) delete mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/localCXDVizNX.py diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/localCXDVizNX.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/localCXDVizNX.py deleted file mode 100644 index 3c3cff0..0000000 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/localCXDVizNX.py +++ /dev/null @@ -1,383 +0,0 @@ -# ######################################################################### -# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # -# # -# See LICENSE file. # -# ######################################################################### - -import pylibconfig2 as cfg -import os -import traits.api as tr -from tvtk.api import tvtk -import numpy as np -import scipy.ndimage as ndi -import math as m -import utils as ut -import spec as sput - -__author__ = "Barbara Frosik" -__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." -__docformat__ = 'restructuredtext en' - - -class DispalyParams: - """ - This class encapsulates parameters defining image display. The parameters are read from config file on - construction - """ - - def __init__(self, config, last_scan): - """ - The constructor gets config file and fills out the class members. - - Parameters - ---------- - conf : str - configuration file name - - Returns - ------- - none - """ - if os.path.isfile(config): - with open(config, 'r') as f: - config_map = cfg.Config(f.read()) - - deg2rad = np.pi / 180.0 - try: - specfile = config_map.specfile - self.lamda, delta, gamma, dth, arm, pixel = sput.parse_spec(specfile, last_scan) - self.delta = delta * deg2rad - self.gamma = gamma * deg2rad - self.dth = dth * deg2rad - self.arm = arm / 1000 - pixel = pixel[1:-1] - pixel = pixel.split(',') - pixel[0], pixel[1] = float(pixel[0]), float(pixel[1]) - except Exception as e: - # print (str(e)) - try: - energy = config_map.energy - self.lamda = 12.398 / energy / 10 - except AttributeError: - print ('lamda not defined') - try: - self.delta = config_map.delta * deg2rad - except AttributeError: - print ('delta not defined') - try: - self.gamma = config_map.gamma * deg2rad - except AttributeError: - print ('gamma not defined') - try: - self.dth = config_map.dth * deg2rad - except AttributeError: - print ('dth not defined') - try: - self.arm = config_map.arm / 1000 - except AttributeError: - print ('arm not defined') - try: - pixel = config_map.pixel - except AttributeError: - print ('pixel not defined') - - try: - self.binning = [] - binning = config_map.binning - for i in range(len(binning)): - self.binning.append(binning[i]) - for _ in range(3 - len(self.binning)): - self.binning.append(1) - except AttributeError: - self.binning = [1,1,1] - self.dpx = pixel[0] * self.binning[0] / self.arm / self.binning[2] - self.dpy = pixel[1] * self.binning[1] / self.arm / self.binning[2] - try: - self.crop = [] - crop = config_map.crop - for i in range(len(crop)): - self.crop.append(crop[i]) - for _ in range(3 - len(self.crop)): - self.crop.append(1.0) - crop[0], crop[1] = crop[1], crop[0] - except AttributeError: - self.crop = None - - -class CXDViz(tr.HasTraits): - coords = tr.Array() - arr = tr.Array() - - cropx = tr.Int() - cropy = tr.Int() - cropz = tr.Int() - - - def __init__(self): - self.imd = tvtk.ImageData() - self.sg = tvtk.StructuredGrid() - pass - - - def set_geometry(self, params, shape): - lam = params.lamda - tth = params.delta - gam = params.gamma - dpx = params.dpx - dpy = params.dpy - dth = params.dth - dx = 1.0 / shape[0] - dy = 1.0 / shape[1] - dz = 1.0 / shape[2] - dQdpx = np.zeros(3) - dQdpy = np.zeros(3) - dQdth = np.zeros(3) - Astar = np.zeros(3) - Bstar = np.zeros(3) - Cstar = np.zeros(3) - - # dQdpx[0] = -m.cos(tth) * m.cos(gam) - # dQdpx[1] = 0.0 - # dQdpx[2] = +m.sin(tth) * m.cos(gam) - dQdpx[0] = -m.cos(tth) - dQdpx[1] = 0.0 - dQdpx[2] = +m.sin(tth) - - dQdpy[0] = m.sin(tth) * m.sin(gam) - dQdpy[1] = -m.cos(gam) - dQdpy[2] = m.cos(tth) * m.sin(gam) - - dQdth[0] = -m.cos(tth) * m.cos(gam) + 1.0 - dQdth[1] = 0.0 - dQdth[2] = m.sin(tth) * m.cos(gam) - - Astar[0] = 2 * m.pi / lam * dpx * dQdpx[0] - Astar[1] = 2 * m.pi / lam * dpx * dQdpx[1] - Astar[2] = 2 * m.pi / lam * dpx * dQdpx[2] - - Bstar[0] = (2 * m.pi / lam) * dpy * dQdpy[0] - Bstar[1] = (2 * m.pi / lam) * dpy * dQdpy[1] - Bstar[2] = (2 * m.pi / lam) * dpy * dQdpy[2] - - Cstar[0] = (2 * m.pi / lam) * dth * dQdth[0] - Cstar[1] = (2 * m.pi / lam) * dth * dQdth[1] - Cstar[2] = (2 * m.pi / lam) * dth * dQdth[2] - - print("recip", Astar) - print("recip", Bstar) - print("recip", Cstar) - denom = np.dot(Astar, np.cross(Bstar, Cstar)) - A = 2 * m.pi * np.cross(Bstar, Cstar) / denom - B = 2 * m.pi * np.cross(Cstar, Astar) / denom - C = 2 * m.pi * np.cross(Astar, Bstar) / denom - - self.T = np.zeros(9) - self.T.shape = (3, 3) - space = 'direct' - if space == 'recip': - self.T[:, 0] = Astar - self.T[:, 1] = Bstar - self.T[:, 2] = Cstar - self.dx = 1.0 - self.dy = 1.0 - self.dz = 1.0 - elif space == 'direct': - self.T = np.array((A, B, C)) - self.dx = dx - self.dy = dy - self.dz = dz - else: - pass - print("DirectSpace T",self.T) - - - def update_coords(self): - dims = list(self.arr[self.cropobj].shape) - - r = np.mgrid[(dims[0] - 1) * self.dx:-self.dx:-self.dx, \ - 0:dims[1] * self.dy:self.dy, 0:dims[2] * self.dz:self.dz] - - r.shape = 3, dims[0] * dims[1] * dims[2] - r = r.transpose() - - self.coords = np.dot(r, self.T) - - - def set_array(self, array, logentry=None): - self.arr = array - if len(self.arr.shape) < 3: - newdims = list(self.arr.shape) - for i in range(3 - len(newdims)): - newdims.append(1) - self.arr.shape = tuple(newdims) - - - def set_crop(self, cropx, cropy, cropz): - dims = list(self.arr.shape) - if len(dims) == 2: - dims.append(1) - - if dims[0] > cropx and cropx > 0: - self.cropx = cropx - else: - self.cropx = dims[0] - - if dims[1] > cropy and cropy > 0: - self.cropy = cropy - else: - self.cropy = dims[1] - - if dims[2] > cropz and cropz > 0: - self.cropz = cropz - else: - self.cropz = dims[2] - - start1 = int(dims[0]/2) - int(self.cropx/2) - end1 = int(dims[0]/2) + int(self.cropx/2) - if start1 == end1: - end1 = end1 + 1 - start2 = int(dims[1]/2) - int(self.cropy/2) - end2 = int(dims[1]/2) + int(self.cropy/2) - if start2 == end2: - end2 = end2 + 1 - start3 = int(dims[2]/2) - int(self.cropz/2) - end3 = int(dims[2]/2) + int(self.cropz/2) - if start3 == end3: - end3 = end3 + 1 - - self.cropobj = (slice(start1, end1, None), slice(start2, end2, None), - slice(start3, end3, None)) - - - def get_structured_grid(self, **args): - self.update_coords() - dims = list(self.arr[self.cropobj].shape) - self.sg.points = self.coords - if "mode" in args: - if args["mode"] == "Phase": - arr1 = self.arr[self.cropobj].ravel() - arr = (np.arctan2(arr1.imag, arr1.real)) - else: - arr = np.abs(self.arr[self.cropobj].ravel()) - else: - arr = self.arr[self.cropobj].ravel() - if (arr.dtype == np.complex128 or arr.dtype == np.complex64): - self.sg.point_data.scalars = np.abs(arr) - self.sg.point_data.scalars.name = "Amp" - ph = tvtk.DoubleArray() - ph.from_array(np.arctan2(arr.imag, arr.real)) - ph.name = "Phase" - self.sg.point_data.add_array(ph) - else: - self.sg.point_data.scalars = arr - self.sg.dimensions = (dims[2], dims[1], dims[0]) - self.sg.extent = 0, dims[2] - 1, 0, dims[1] - 1, 0, dims[0] - 1 - return self.sg - - - def write_structured_grid(self, filename, **args): - sgwriter = tvtk.StructuredGridWriter() - sgwriter.file_type = 'binary' - if filename.endswith(".vtk"): - sgwriter.file_name = filename - else: - sgwriter.file_name = filename + '.vtk' - sgwriter.set_input_data(self.get_structured_grid()) - sgwriter.write() - print ('saved file', filename) - - -def shift(arr, s0, s1, s2): - shifted = np.roll(arr, s0, axis=0) - shifted = np.roll(shifted, s1, axis=1) - return np.roll(shifted, s2, axis=2) - - -def center_of_mass(arr): - tot = np.sum(arr) - dims = arr.shape - xyz = [] - griddims = [] - for d in dims: - griddims.append(slice(0, d)) - grid = np.ogrid[griddims] - for g in grid: - xyz.append(np.sum(arr * g) / tot) - com = np.asarray(xyz) - com = np.ma.round(com).astype(np.int) - return list(com) - - -def remove_ramp(arr, ups=3): - new_shape = list(arr.shape) - # pad zeros around arr, to the size of 3 times (ups = 3) of arr size - for i in range(len(new_shape)): - new_shape[i] = ups * new_shape[i] - padded = ut.get_zero_padded_centered(arr, new_shape) - padded_f = np.fft.fftshift(np.fft.fftn(np.fft.ifftshift(padded))) - com = ndi.center_of_mass(np.power(np.abs(padded_f), 2)) - sub_pixel_shifted = ut.sub_pixel_shift(padded_f, new_shape[0]/2.0-com[0], new_shape[1]/2.0-com[1], new_shape[2]/2.0-com[2]) - ramp_removed_padded = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(sub_pixel_shifted))) - ramp_removed = ut.crop_center(ramp_removed_padded, arr.shape) - - return ramp_removed - - -def center(image, support): - dims = image.shape - image, support = ut.get_centered_both(image, support) - - # place center of mass image*support in the center - for ax in range(len(dims)): - com = ndi.center_of_mass(np.absolute(image) * support) - image = shift(image, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) - support = shift(support, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) - - # set center phase to zero, use as a reference - phi0 = m.atan2(image.imag[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)], image.real[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)]) - image = image * np.exp(-1j * phi0) - - return image, support - - -def get_crop(params, shape): - crop = [] - for i in range(len(shape)): - if params.crop is None: - crop.append(shape[i]) - else: - crop.append(params.crop[i]) - if isinstance(crop[i], float): - crop[i] = int(crop[i]*shape[i]) - return crop - - -def save_CX(conf, image, support, coh, save_dir, last_scan): - image = np.swapaxes(image, 1,2) - image = np.swapaxes(image, 0,1) -# support = np.swapaxes(support, 1,2) -# support = np.swapaxes(support, 0,1) -# image, support = center(image, support) - params = DispalyParams(conf, last_scan) -# image = remove_ramp(image) - viz = CXDViz() - viz.set_array(image) - viz.set_geometry(params, image.shape) - crop = get_crop(params, image.shape) - viz.set_crop(crop[0], crop[1], crop[2]) # save image - image_file = os.path.join(save_dir, 'image') -# viz.write_structured_grid(image_file) -# viz.set_array(support) -# support_file = os.path.join(save_dir, 'support') -# viz.write_structured_grid(support_file) -# if coh is not None: -# coh = np.swapaxes(coh, 1, 2) -# # investigate if pad_center before fft or after -# coh = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(coh))).real -# coh = ut.get_zero_padded_centered(coh, image.shape) -# coh_file = os.path.join(save_dir, 'coherence') -# viz.set_array(coh) -# viz.write_structured_grid(coh_file) - -# a = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') -# remove_ramp(a, 3) From d3482f068e013a25bce2a8c382131174c3b144ac Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 16:08:53 -0600 Subject: [PATCH 275/336] Delete __init__.py --- build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/__init__.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/__init__.py diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/__init__.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/run_scripts/__init__.py deleted file mode 100644 index e69de29..0000000 From e7290ca91f15947cad13e90f0e2b75ac3a7cd430 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 16:09:13 -0600 Subject: [PATCH 276/336] Delete viz_util_recipdemo.py --- .../src_py/utilities/viz_util_recipdemo.py | 34 ------------------- 1 file changed, 34 deletions(-) delete mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/viz_util_recipdemo.py diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/viz_util_recipdemo.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/viz_util_recipdemo.py deleted file mode 100644 index d66e5a5..0000000 --- a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/viz_util_recipdemo.py +++ /dev/null @@ -1,34 +0,0 @@ -if __name__ =="__main__": - import numpy as np - import math as m - import tifffile as tif - import tools as t - import viz_util as vu - import prep_noconfig as prep - - #binning of the data, this is not actually done, it's to account for previous binning in the saved data. - dbin1=1 - dbin2=1 - a=t.read_tif("cropped.tif").copy() #copy ensures array is contiguous which pyevtk needs - b=prep.read_scan("/Users/rharder/Desktop/cropped", None, None) - - tif.imsave("RawDiffraction.tif", b) - print("raw data",b.shape) - print("imagejsave",a.shape) - - #scan info. - lam=.137 #wavelength - delta=33.0*m.pi/180 #detector angle 1 - gamma=11.0*m.pi/180 #detector angle 2 - dpx=55e-6/0.5 #pixel size divided by detector dist - dpy=55e-6/0.5 - dth=0.01*m.pi/180 #rocking curve scan step. Everything in radians - - vr=vu.CXDViz() - vr.set_geometry(lam, delta, gamma, dbin1*dpx, dbin2*dpy, dth) - vr.add_array(b, "dp", space='recip') - - q=vr.recip_coords - qmag=np.sqrt(q[0,:,:,:]**2 + q[1,:,:,:]**2 + q[2,:,:,:]**2) - vr.add_array(qmag, "qmag", space='recip') #add a second property that can be used for color in viz. - vr.write_recipspace("RawDiffraction") From 60fdf8dc9b07445f48c7b3c983b32854452e3501 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 16:10:25 -0600 Subject: [PATCH 277/336] Delete parse_ver.py --- .../reccdi/src_py/utilities/parse_ver.py | 861 ------------------ 1 file changed, 861 deletions(-) delete mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/parse_ver.py diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/parse_ver.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/parse_ver.py deleted file mode 100644 index bb030a7..0000000 --- a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/parse_ver.py +++ /dev/null @@ -1,861 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -# ######################################################################### -# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # -# # -# See LICENSE file. # -# ######################################################################### - - -""" -verification of configuration files -""" - -import reccdi.src_py.utilities.utils as ut -import os - - -def ver_list_int(param_name, param_value): - if not issubclass(type(param_value), list): - print (param_name + ' is not a list') - return False - for e in param_value: - if type(e) != int: - print (param_name + ' should be list of integer values') - return False - return True - - -def ver_list_float(param_name, param_value): - if not issubclass(type(param_value), list): - print (param_name + ' is not a list') - return False - for e in param_value: - if type(e) != float: - print (param_name + ' should be list of float values') - return False - return True - - -def ver_config(fname): - - """ - This function verifies config file - - Parameters - ---------- - conf_info : str - configuration file - - Returns - ------- - True if configuration is correct, False otherwise - """ - if not os.path.isfile(fname): - print ('no configuration file ' + fname + ' found') - return False - - try: - config_map = ut.read_config(fname) - if config_map is None: - print ("can't read configuration file") - return False - except: - print ('Cannot parse ' + fname + ' configuration file. Check paranthesis and quotations.') - return False - - try: - working_dir = config_map.working_dir - if type(working_dir) != str: - print('working_dir parameter should be string') - return False - except AttributeError: - pass - except: - print ('working_dir parameter parsing error') - return False - - try: - experiment_id = config_map.experiment_id - if type(experiment_id) != str: - print('experiment_id parameter should be string') - return False - except AttributeError: - pass - except: - print ('experiment_id parameter parsing error') - return False - - try: - scan = config_map.scan - if type(scan) != str: - print('scan parameter should be string') - return False - except AttributeError: - pass - except: - print ('scan parameter parsing error') - return False - - return True - - -def ver_config_rec(fname): - - """ - This function verifies config_rec file - - Parameters - ---------- - conf_info : str - configuration file - - Returns - ------- - True if configuration is correct, False otherwise - """ - if not os.path.isfile(fname): - print ('no configuration file ' + fname + ' found') - return False - - try: - config_map = ut.read_config(fname) - if config_map is None: - print ("can't read configuration file") - return False - except: - print ('Cannot parse ' + fname + ' configuration file. Check paranthesis and quotations.') - return False - - try: - data_dir = config_map.data_dir - if type(data_dir) != str: - print('data_dir parameter should be string') - return False - except AttributeError: - pass - except: - print ('data_dir parameter parsing error') - return False - - try: - save_dir = config_map.save_dir - if type(save_dir) != str: - print('save_dir parameter should be string') - return False - except AttributeError: - pass - except: - print ('save_dir parameter parsing error') - return False - - try: - cont = config_map.cont - if type(cont) != bool: - print ('cont parameter should be true or false') - return False - try: - continue_dir = config_map.continue_dir - if type(continue_dir) != str: - print('continue_dir parameter should be string') - return False - except AttributeError: - pass - except: - print('continue_dir parameter parsing error') - return False - except AttributeError: - pass - except: - print ('cont parameter parsing error') - return False - - try: - reconstructions = config_map.reconstructions - if type(reconstructions) != int: - print('reconstructions parameter should be int') - return False - except AttributeError: - pass - except: - print ('reconstructions parameter parsing error') - return False - - try: - device = config_map.device - if not ver_list_int('device', device): - return False - except AttributeError: - pass - except: - print ('device parameter parsing error') - return False - - try: - garbage_trigger = config_map.garbage_trigger - if not ver_list_int('garbage_trigger', garbage_trigger): - return False - except AttributeError: - pass - except: - print ('garbage_trigger parameter parsing error') - return False - - try: - algorithm_sequence = config_map.algorithm_sequence - if not issubclass(type(algorithm_sequence), list): - print ('algorithm_sequence should be a list') - return False - for s in algorithm_sequence: - for i in range(len(s)): - # the first element in each sub-list is the repeat factor and should be int - if i== 0 and type(s[i]) != int: - print ('algorithm_sequence configuration error, the repeat factor should be int') - return False - if i > 0: - if not issubclass(type(s[i]), list): - print ('algorithm_sequence configuration error, the sequence element should be a list') - return False - algorithm = s[i][0] - if type(algorithm) != str: - print ('algorithm_sequence configuration error, algorithm should be str') - return False - algorithm_options = ["ER", "HIO"] - if algorithm not in algorithm_options: - print ('algorithm_sequence configuration error, algorithm should be "ER" or "HIO"') - return False - algorithm_repeat = s[i][1] - if type(algorithm_repeat) != int: - print ('algorithm_sequence configuration error, algorithm repeat should be int') - return False - except AttributeError: - print ('missing mandatory algorithm_sequence parameter') - return False - except: - print ('algorithm_sequence parameter parsing error') - return False - - try: - beta = config_map.beta - if type(beta) != float: - print('beta parameter should be float') - return False - except AttributeError: - pass - except: - print ('beta parameter parsing error') - return False - - try: - generations = config_map.generations - if type(generations) != int: - print('generations parameter should be int') - return False - try: - ga_metrics = config_map.ga_metrics - if not issubclass(type(ga_metrics), list): - print (ga_metrics + ' is not a list') - return False - metrics_options = ['chi', 'sharpness', 'summed_phase', 'area'] - for metric in ga_metrics: - if metric not in metrics_options: - print ("ga_metrics list can include only following strings: 'chi', 'sharpness', 'summed_phase', 'area'") - except AttributeError: - pass - except: - print('ga_metrics parameter parsing error') - return False - - try: - ga_breed_modes = config_map.ga_breed_modes - if not issubclass(type(ga_breed_modes), list): - print (ga_breed_modes + ' is not a list') - return False - breed_options = ['sqrt_ab', 'max_all', 'Dhalf', 'Dhalf-best', 'dsqrt', 'pixel_switch',\ - 'b_pa', '2ab_a_b', '2a-b_pa', 'sqrt_ab_pa', 'sqrt_ab_pa_recip', 'sqrt_ab_recip',\ - 'max_ab', 'max_ab_pa', 'min_ab_pa', 'avg_ab', 'avg_ab_pa', 'sqrt_abg', - 'sqrt_abg_pa', 'max_abg','max_abg_pa', 'avg_abg', 'avg_abg_pa', 'avg_sqrt'] - for breed in ga_breed_modes: - if breed not in breed_options: - print ("ga_breed_modes list can include only following strings: 'sqrt_ab', 'max_all',\ - 'Dhalf', 'Dhalf-best', 'dsqrt', 'pixel_switch',\ - 'b_pa', '2ab_a_b', '2a-b_pa', 'sqrt_ab_pa', 'sqrt_ab_pa_recip', 'sqrt_ab_recip',\ - 'max_ab', 'max_ab_pa', 'min_ab_pa', 'avg_ab', 'avg_ab_pa', 'sqrt_abg',\ - 'sqrt_abg_pa', 'max_abg','max_abg_pa', 'avg_abg', 'avg_abg_pa', 'avg_sqrt'") - except AttributeError: - pass - except: - print('ga_breed_modes parameter parsing error') - return False - - try: - ga_cullings = config_map.ga_cullings - if not ver_list_int('ga_cullings', ga_cullings): - return False - except AttributeError: - pass - except: - print('ga_cullings parameter parsing error') - return False - - try: - ga_support_thresholds = config_map.ga_support_thresholds - if not ver_list_float('ga_support_thresholds', ga_support_thresholds): - return False - except AttributeError: - pass - except: - print('ga_support_thresholds parameter parsing error') - return False - - try: - ga_support_sigmas = config_map.ga_support_sigmas - if not ver_list_float('ga_support_sigmas', ga_support_sigmas): - return False - except AttributeError: - pass - except: - print('ga_support_sigmas parameter parsing error') - return False - - try: - ga_low_resolution_sigmas = config_map.ga_low_resolution_sigmas - if not ver_list_float('ga_low_resolution_sigmas', ga_low_resolution_sigmas): - return False - except AttributeError: - pass - except: - print('ga_low_resolution_sigmas parameter parsing error') - return False - except AttributeError: - pass - except: - print ('generations parameter parsing error') - return False - - - try: - twin_trigger = config_map.twin_trigger - if not ver_list_int('twin_trigger', twin_trigger): - return False - else: - try: - twin_halves = config_map.twin_halves - if not ver_list_int('twin_halves', twin_halves): - return False - except AttributeError: - pass - except: - print('twin_halves parameter parsing error') - return False - - except AttributeError: - pass - - try: - if not ver_list_int('amp_support_trigger', config_map.amp_support_trigger): - return False - else: - try: - support_type = config_map.support_type - if type(support_type) != str: - print ('support_type parameter should be string') - return False - if support_type != "GAUSS": - print ('support_type parameter can be configured "GAUSS"') - return False - except AttributeError: - pass - except: - print('support_type parameter parsing error') - return False - - try: - support_threshold = config_map.support_threshold - if type(support_threshold) != float: - print('support_threshold should be float') - return False - except AttributeError: - pass - except: - print('support_threshold parameter parsing error') - return False - - try: - support_sigma = config_map.support_sigma - if type(support_sigma) != float: - print('support_sigma should be float') - return False - except AttributeError: - pass - except: - print('support_sigma parameter parsing error') - return False - - try: - support_area = config_map.support_area - if not issubclass(type(support_area), list): - print('support_area should be list') - return False - for e in support_area: - if type(e) != int and type(e) !=float: - print('support_area should be a list of int or float') - return False - except AttributeError: - pass - except: - print('support_area parameter parsing error') - return False - - except AttributeError: - pass - - try: - if not ver_list_int('phase_support_trigger', config_map.phase_support_trigger): - return False - else: - try: - phase_min = config_map.phase_min - if type(phase_min) != float: - print('phase_min should be float') - return False - except AttributeError: - pass - except: - print('phase_min parameter parsing error') - return False - - try: - phase_max = config_map.phase_max - if type(phase_max) != float: - print('phase_max should be float') - return False - except AttributeError: - pass - except: - print('phase_max parameter parsing error') - return False - - except AttributeError: - pass - - try: - if not ver_list_int('pcdi_trigger', config_map.pcdi_trigger): - return False - else: - try: - partial_coherence_type = config_map.partial_coherence_type - if type(partial_coherence_type) != str: - print ('partial_coherence_type parameter should be string') - return False - if partial_coherence_type != "LUCY": - print ('partial_coherence_type parameter can be configured "LUCY"') - return False - except AttributeError: - pass - except: - print('partial_coherence_type parameter parsing error') - return False - - try: - partial_coherence_iteration_num = config_map.partial_coherence_iteration_num - if type(partial_coherence_iteration_num) != int: - print('partial_coherence_iteration_num should be int') - return False - except AttributeError: - pass - except: - print('partial_coherence_iteration_num parameter parsing error') - return False - - try: - partial_coherence_normalize = config_map.partial_coherence_normalize - if type(partial_coherence_normalize) != bool: - print ('partial_coherence_normalize parameter should be true or false') - return False - except AttributeError: - pass - except: - print('partial_coherence_normalize parameter parsing error') - return False - - try: - partial_coherence_roi = config_map.partial_coherence_roi - if not ver_list_int('partial_coherence_roi', partial_coherence_roi): - return False - except AttributeError: - pass - except: - print("'partial_coherence_roi' parameter parsing error") - return False - - except AttributeError: - pass - - try: - if not ver_list_int('resolution_trigger', config_map.resolution_trigger): - return False - else: - try: - iter_res_sigma_range = config_map.iter_res_sigma_range - if not ver_list_float('iter_res_sigma_range', iter_res_sigma_range): - return False - except AttributeError: - pass - except: - print("'iter_res_sigma_range' parameter parsing error") - return False - - try: - iter_res_det_range = config_map.iter_res_det_range - if not ver_list_float('iter_res_det_range', iter_res_det_range): - return False - except AttributeError: - pass - except: - print("'iter_res_det_range' parameter parsing error") - return False - - except AttributeError: - pass - - try: - if not ver_list_int('average_trigger', config_map.average_trigger): - return False - except AttributeError: - pass - - try: - if not ver_list_int('progress_trigger', config_map.progress_trigger): - return False - except AttributeError: - pass - - return True - - -def ver_config_data(fname): - - """ - This function verifies config_data file - - Parameters - ---------- - conf_info : str - configuration file - - Returns - ------- - True if configuration is correct, False otherwise - """ - if not os.path.isfile(fname): - print ('no configuration file ' + fname + ' found') - return False - - try: - config_map = ut.read_config(fname) - if config_map is None: - print ("can't read configuration file") - return False - except: - print ('Cannot parse ' + fname + ' configuration file. Check paranthesis and quotations.') - return False - - try: - data_dir = config_map.data_dir - if type(data_dir) != str: - print('data_dir parameter should be string') - return False - except AttributeError: - pass - except: - print ('data_dir parameter parsing error') - return False - - try: - if not ver_list_int('pad_crop', config_map.adjust_dimensions): - return False - except AttributeError: - pass - try: - if not ver_list_int('center_shift', config_map.center_shift): - return False - except AttributeError: - pass - try: - if not ver_list_int('binning', config_map.binning): - return False - except AttributeError: - pass - - try: - amp_threshold = config_map.amp_threshold - if type(amp_threshold) != float and type(amp_threshold) != int: - print('amp_threshold should be float') - return False - except AttributeError: - pass - except: - print('amp_threshold parameter parsing error') - return False - - try: - aliens = config_map.aliens - if not issubclass(type(aliens), list): - print('aliens should be a list of aliens(lists)') - return False - for a in aliens: - if not issubclass(type(a), list): - print ('aliens should be a list of aliens(lists)') - return False - if not ver_list_int('aliens', a): - return False - if (len(a) < 6): - print('each alien is defined by list of six int') - except AttributeError: - pass - except: - print('amp_threshold parameter parsing error') - return False - - return True - - -def ver_config_prep(fname): - - """ - This function verifies config_prep file - - Parameters - ---------- - conf_info : str - configuration file - - Returns - ------- - True if configuration is correct, False otherwise - """ - if not os.path.isfile(fname): - print ('no configuration file ' + fname + ' found') - return False - - try: - config_map = ut.read_config(fname) - if config_map is None: - print ("can't read configuration file") - return False - except: - print ('Cannot parse ' + fname + ' configuration file. Check paranthesis and quotations.') - return False - - try: - data_dir = config_map.data_dir - if type(data_dir) != str: - print('data_dir parameter should be string') - return False - except AttributeError: - pass - except: - print ('data_dir parameter parsing error') - return False - - try: - specfile = config_map.specfile - if type(specfile) != str: - print('specfile parameter should be string') - return False - except AttributeError: - pass - except: - print ('specfile parameter parsing error') - return False - - try: - darkfile = config_map.darkfile - if type(darkfile) != str: - print('darkfile parameter should be string') - return False - except AttributeError: - pass - except: - print ('darkfile parameter parsing error') - return False - - try: - whitefile = config_map.whitefile - if type(whitefile) != str: - print('whitefile parameter should be string') - return False - except AttributeError: - pass - except: - print ('whitefile parameter parsing error') - return False - - try: - if not ver_list_int('exclude_scans', config_map.exclude_scans): - return False - except AttributeError: - pass - - try: - min_files = config_map.min_files - if type(min_files) != int: - print('min_files should be int') - return False - except AttributeError: - pass - except: - print('min_files parameter parsing error') - return False - - try: - det_quad = config_map.det_quad - quad_options = [0,1,2,3,4] - if det_quad not in quad_options: - print('det_quad should be one of the following: 0, 1, 2, 3, 4') - return False - except AttributeError: - pass - except: - print('det_quad parameter parsing error') - return False - - try: - separate_scans = config_map.separate_scans - if type(separate_scans) != bool: - print('separate_scans parameter should be true or false') - return False - except AttributeError: - pass - except: - print('separate_scans parameter parsing error') - return False - - return True - - -def ver_config_disp(fname): - - """ - This function verifies config_disp file - - Parameters - ---------- - conf_info : str - configuration file - - Returns - ------- - True if configuration is correct, False otherwise - """ - if not os.path.isfile(fname): - print ('no configuration file ' + fname + ' found') - return False - - try: - config_map = ut.read_config(fname) - if config_map is None: - print ("can't read configuration file") - return False - except: - print ('Cannot parse ' + fname + ' configuration file. Check paranthesis and quotations.') - return False - - try: - crop = config_map.crop - if not issubclass(type(crop), list): - print('crop should be list') - return False - for e in crop: - if type(e) != int and type(e) != float: - print('crop should be a list of int or float') - return False - except AttributeError: - pass - except: - print('crop parameter parsing error') - return False - - try: - specfile = config_map.specfile - if type(specfile) != str: - print('specfile parameter should be string') - return False - except AttributeError: - pass - except: - print ('specfile parameter parsing error') - return False - - try: - energy = config_map.energy - if type(energy) != float: - print('energy should be float') - return False - except AttributeError: - pass - except: - print('energy parameter parsing error') - return False - - try: - delta = config_map.delta - if type(delta) != float: - print('delta should be float') - return False - except AttributeError: - pass - except: - print('delta parameter parsing error') - return False - - try: - gamma = config_map.gamma - if type(gamma) != float: - print('gamma should be float') - return False - except AttributeError: - pass - except: - print('gamma parameter parsing error') - return False - - try: - arm = config_map.arm - if type(arm) != float: - print('arm should be float') - return False - except AttributeError: - pass - except: - print('arm parameter parsing error') - return False - - try: - dth = config_map.dth - if type(dth) != float: - print('dth should be float') - return False - except AttributeError: - pass - except: - print('dth parameter parsing error') - return False - - try: - pixel = config_map.pixel - if not issubclass(type(pixel), list): - print('pixel should be a list') - return False - if type(pixel[0]) != float or type(pixel[1]) != float: - print('pixel values should be float') - return False - except AttributeError: - pass - except: - print('pixel parameter parsing error') - return False - - return True From 3391008942d7ed8e198152f6caca9fba69234cab Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 16:11:00 -0600 Subject: [PATCH 278/336] Delete transtest.py --- .../reccdi/src_py/utilities/transtest.py | 22 ------------------- 1 file changed, 22 deletions(-) delete mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/transtest.py diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/transtest.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/transtest.py deleted file mode 100644 index f4756e3..0000000 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/transtest.py +++ /dev/null @@ -1,22 +0,0 @@ -import numpy as np - -dims=(5,5,5) -dxdir=1 -dydir=1 -dzdir=1 - -r = np.mgrid[(dims[0] - 1) * dxdir:-dxdir:-dxdir, \ - 0:dims[1] * dydir:dydir,\ - 0:dims[2] * dzdir:dzdir] - -origshape=r.shape -r.shape = 3, dims[0] * dims[1] * dims[2] -r = r.transpose() - -Tdir=np.array( [[0.1,0,0],[0,1,0],[0,0,1]]) -print( Tdir) -dir_coords = np.dot(r, Tdir) - -dir_coords = dir_coords.transpose() -dir_coords.shape=origshape - From e69b15760565f040923bb17df16f0cff81138a66 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 16:11:21 -0600 Subject: [PATCH 279/336] Delete pyevtktest.py --- .../reccdi/src_py/utilities/pyevtktest.py | 42 ------------------- 1 file changed, 42 deletions(-) delete mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/pyevtktest.py diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/pyevtktest.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/pyevtktest.py deleted file mode 100644 index 92d80a9..0000000 --- a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/pyevtktest.py +++ /dev/null @@ -1,42 +0,0 @@ -#! /usr/bin/env python - -# ************************************************************** -# * Example of how to use the high level gridToVTK function. * -# * This example shows how to export a structured grid. * -# ************************************************************** - -from pyevtk.hl import gridToVTK -import numpy as np -import random as rnd - -# Dimensions -nx, ny, nz = 10, 5, 2 -lx, ly, lz = 10.0, 5.0, 1.0 -dx, dy, dz = lx/nx, ly/ny, lz/nz - -ncells = nx * ny * nz -npoints = (nx + 1) * (ny + 1) * (nz + 1) - -# Coordinates -X = np.arange(0, lx + 0.1*dx, dx, dtype='float64') -Y = np.arange(0, ly + 0.1*dy, dy, dtype='float64') -Z = np.arange(0, lz + 0.1*dz, dz, dtype='float64') - -x = np.zeros((nx + 1, ny + 1, nz + 1)) -y = np.zeros((nx + 1, ny + 1, nz + 1)) -z = np.zeros((nx + 1, ny + 1, nz + 1)) - -# We add some random fluctuation to make the grid -# more interesting -for k in range(nz + 1): - for j in range(ny + 1): - for i in range(nx + 1): - x[i,j,k] = X[i] - y[i,j,k] = Y[j] - z[i,j,k] = Z[k] - -# Variables -#pressure = np.random.rand(ncells).reshape( (nx, ny, nz)) -#temp = np.random.rand(npoints).reshape( (nx + 1, ny + 1, nz + 1)) - -#gridToVTK("./structured", x, y, z, cellData = {"pressure" : pressure}, pointData = {"temp" : temp}) From bee48262d55c4d8f9f9c5e323bf3c80414d7ed59 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 16:17:32 -0600 Subject: [PATCH 280/336] Delete simple.py --- .../reccdi/src_py/utilities/simple.py | 20 ------------------- 1 file changed, 20 deletions(-) delete mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/simple.py diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/simple.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/simple.py deleted file mode 100644 index 41ce888..0000000 --- a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/simple.py +++ /dev/null @@ -1,20 +0,0 @@ -#! /usr/bin/env python -from pyevtk.hl import gridToVTK -import numpy as np - -# Dimensions -nx, ny, nz = 11, 11, 11 - -X = np.linspace(1., -1., nx) -Y = np.linspace(-1., 1., ny) -Z = np.linspace(-1., 1., nz) - -x, y, z = np.meshgrid(X, Y, Z, indexing='ij') - -r = np.sqrt(x**2 + y**2 + z**2) - -gridToVTK('./structured', x, y, z, pointData={'r': r, 'x': x}) - -r = 1.-np.sqrt(x**2 + y**2 + z**2) - -gridToVTK('./structured2', x, y, z, pointData={'r': r, 'x': x}) From 44c85c38e8deb61ab3c78a107ab72774d4ca2558 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 16:18:02 -0600 Subject: [PATCH 281/336] Delete utils.py --- .../reccdi/src_py/utilities/utils.py | 592 ------------------ 1 file changed, 592 deletions(-) delete mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/utils.py diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/utils.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/utils.py deleted file mode 100644 index 32a6a5f..0000000 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/utils.py +++ /dev/null @@ -1,592 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -# ######################################################################### -# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # -# # -# See LICENSE file. # -# ######################################################################### - -""" -Please make sure the installation :ref:`pre-requisite-reference-label` are met. -This module is a suite of utility mehods. -""" - -import tifffile as tf -import pylibconfig2 as cfg -import numpy as np -import scipy.fftpack as sf -import os -import logging -import stat -from functools import reduce -import GPUtil - -__author__ = "Barbara Frosik" -__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." -__docformat__ = 'restructuredtext en' -__all__ = ['read_tif', - 'get_opencl_dim', - 'binning', - 'get_centered', - 'adjust_dimensions', - 'crop_center', - 'flip'] - - -def get_logger(name, ldir=''): - logger = logging.getLogger(name) - logger.setLevel(logging.DEBUG) - log_file = os.path.join(ldir, 'default.log') - fh = logging.FileHandler(log_file) - fh.setLevel(logging.DEBUG) - formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') - fh.setFormatter(formatter) - logger.addHandler(fh) - return logger - - -def read_tif(filename): - """ - This method reads tif type file containing experiment data and returns the data as array. - Parameters - ---------- - filename : str - a filename containing the experiment data - Returns - ------- - data : array - an array containing the experiment data - """ - - ar = tf.imread(filename).transpose() - #ar = np.swapaxes(ar, 0, 2) - #ar = np.swapaxes(ar, 0, 1) - return ar - - -def save_tif(arr, tif_file): - # arr = np.swapaxes(arr, 0, 2) - # arr = np.swapaxes(arr, 1, 2) - #arr = np.swapaxes(arr, 0, 1) - #arr = np.swapaxes(arr, 0, 2) - tf.imsave(tif_file, arr.transpose().astype(np.float32)) - - -def read_config(config): - """ - This function gets configuration file. It checks if the file exists and parses it into a map. - Parameters - ---------- - config : str - configuration file name, including path - Returns - ------- - config_map : dict - a map containing parsed configuration, None if the given file does not exist - """ - - if os.path.isfile(config): - with open(config, 'r') as f: - config_map = cfg.Config(f.read()) - return config_map; - else: - return None - - -def get_good_dim(dim): - """ - This function calculates the dimension supported by opencl library (i.e. is multiplier of 2,3, or 5) and is closest to the - given starting dimension, and spaced by the given step. - If the dimension is not supported the function adds step value and verifies the new dimension. It iterates until it finds - supported value. - Parameters - ---------- - dim : int - a dimension that needs to be tranformed to one that is supported by the opencl library, if it is not already - - step : int - a delta to increase the dimension - Returns - ------- - dim : int - a dimension that is supported by the opencl library, and closest to the original dimension by n*step - """ - - def is_correct(x): - sub = x - if sub % 3 == 0: - sub = sub / 3 - if sub % 3 == 0: - sub = sub / 3 - if sub % 5 == 0: - sub = sub / 5 - while sub % 2 == 0: - sub = sub / 2 - return sub == 1 - - new_dim = dim - if new_dim % 2 == 1: - new_dim += 1 - while not is_correct(new_dim): - new_dim += 2 - return new_dim - - -def binning(array, binsizes): - """ - This function does the binning of the array. The array is binned in each dimension by the corresponding binsizes elements. - If binsizes list is shorter than the array dimensions, the remaining dimensions are not binned. The elements in - a bucket are summed. - Parameters - ---------- - array : array - the original array to be binned - - binsizes : list - a list defining binning buckets for corresponding dimensions - Returns - ------- - array : array - the binned array - """ - - data_dims = array.shape - # trim array - for ax in range(len(binsizes)): - cut_slices = range(data_dims[ax] - data_dims[ax] % binsizes[ax], data_dims[ax]) - array = np.delete(array, cut_slices, ax) - - binned_array = array - new_shape = list(array.shape) - - for ax in range(len(binsizes)): - if binsizes[ax] > 1: - new_shape[ax] = binsizes[ax] - new_shape.insert(ax, int(array.shape[ax] / binsizes[ax])) - binned_array = np.reshape(binned_array, tuple(new_shape)) - binned_array = np.sum(binned_array, axis=ax + 1) - new_shape = list(binned_array.shape) - return binned_array - - -# ar = np.asarray([1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9]) -# ar.resize((5,9)) -# print ('ar', ar) -# b = binning(ar, (2,2)) -# print ('b',b) -# c = binning1(ar,(2,2)) -# print ('c',c) - - -def get_centered(arr, center_shift): - """ - This function finds a greatest value in the array, and puts it in a center of a new array. If center_shift is - not zeros, the array will be shifted accordingly. The shifted elements are rolled into the other end of array. - Parameters - ---------- - arr : array - the original array to be centered - center_shift : list - a list defining shift of the center - Returns - ------- - array : array - the centered array - """ - max_coordinates = list(np.unravel_index(np.argmax(arr), arr.shape)) - max_coordinates = np.add(max_coordinates, center_shift) - shape = arr.shape - centered = arr - for i in range(len(max_coordinates)): - centered = np.roll(centered, int(shape[i] / 2) - max_coordinates[i], i) - - return centered - - -def get_centered_both(arr, support): - """ - This function finds a greatest value in the array, and puts it in a center of a new array. If center_shift is - not zeros, the array will be shifted accordingly. The shifted elements are rolled into the other end of array. - Parameters - ---------- - arr : array - the original array to be centered - support : array - the associated array shifted the same way centered array is - Returns - ------- - centered : array - the centered array - """ - max_coordinates = list(np.unravel_index(np.argmax(arr), arr.shape)) - shape = arr.shape - centered = arr - centered_supp = support - for i in range(len(max_coordinates)): - centered = np.roll(centered, int(shape[i] / 2) - max_coordinates[i], i) - centered_supp = np.roll(centered_supp, int(shape[i] / 2) - max_coordinates[i], i) - - return centered, centered_supp - - -def get_zero_padded_centered(arr, new_shape): - """ - This function pads the array with zeros to the new shape with the array in the center. - Parameters - ---------- - arr : array - the original array to be padded and centered - new_shape : tuple - a list of new dimensions - Returns - ------- - array : array - the zero padded centered array - """ - shape = arr.shape - pad = [] - c_vals = [] - for i in range(len(new_shape)): - pad.append((0, new_shape[i] - shape[i])) - c_vals.append((0.0, 0.0)) - arr = np.lib.pad(arr, (pad), 'constant', constant_values=c_vals) - - centered = arr - for i in range(len(new_shape)): - centered = np.roll(centered, int((new_shape[i] - shape[i] + 1) / 2), i) - - return centered - - -def adjust_dimensions(arr, pads): - """ - This function adds to or subtracts from each dimension of the array elements defined by pad. If the pad is positive, - the array is padded in this dimension. If the pad is negative, the array is cropped. - The dimensions of the new array are supported by the opencl library. - Parameters - ---------- - arr : array - the array to pad/crop - pad : list - list of three pad values, for each dimension - Returns - ------- - array : array - the padded/cropped array - """ - # logger = get_logger('adjust_dimensions') - old_dims = arr.shape - start = [] - stop = [] - for i in range(len(old_dims)): - pad = pads[i] - first = max(0, -pad[0]) - last = old_dims[i] - max(0, -pad[1]) - if first >= last: - print ('the crop exceeds size, please change the crop and run again') - return None - else: - start.append(first) - stop.append(last) - - cropped = arr[ start[0]:stop[0], start[1]:stop[1], start[2]:stop[2] ] - # logger.info('cutting from to ' + str(crop[0]) + ', ' + str(old_dims[0]-crop[1]) + ', ' + str(crop[2]) + ', ' \ - # + str(old_dims[1]-crop[3]) + ', ' + str(crop[4]) + ', ' + str(old_dims[2]-crop[5])) - dims = cropped.shape - c_vals = [] - new_pad = [] - for i in range(len(dims)): - pad = pads[i] - # find a good dimension and find padding - temp_dim = old_dims[i] + pad[0] + pad[1] - new_dim = get_good_dim(temp_dim) - added = new_dim - temp_dim - # if the pad is positive - pad_front = max(0, pad[0]) + int(added / 2) - pad_end = new_dim - dims[i] - pad_front - new_pad.append((pad_front, pad_end)) - c_vals.append((0.0, 0.0)) - adjusted = np.pad(cropped, new_pad, 'constant', constant_values=c_vals) - - # logger.info('pads ' + str(new_pad[0]) + ', ' + str(new_pad[1]) + ', ' + str(new_pad[2]) + ', ' + str(new_pad[3]) \ - # + ', ' + str(new_pad[4]) + ', ' + str(new_pad[5])) - # logger.info('old dim, new dim (' + str(dims[0]) + ',' + str(dims[1]) + ',' + str(dims[2]) + ') (' + str(arr.shape[0]) +\ - # ',' + str(arr.shape[1]) + ',' + str(arr.shape[1]) + ')') - - return adjusted - -# ar = np.zeros((256,256,90)) -# pads = (-100,-100,0,0,0,0) -# ar = np.zeros((81,256,256)) -# pads = (5,-7,-20,-30,4,-20) -# arr = adjust_dimensions(ar,pads) -# print (arr.shape) - -def crop_center(arr, new_size): - size = arr.shape - cropped = arr - for i in range(len(size)): - crop_front = int((size[i] - new_size[i]) / 2) - crop_end = crop_front + new_size[i] - splitted = np.split(cropped, [crop_front, crop_end], axis=i) - cropped = splitted[1] - - return cropped - - -# ar = np.zeros((81,256,256)) -# new_size = (40, 200,100) -# arr = crop_center(ar,new_size) -# print (arr.shape) - -def get_norm(arr): - return sum(sum(sum(abs(arr) ** 2))) - - -def flip(m, axis): - """ - Copied from numpy 1.12.0. - """ - if not hasattr(m, 'ndim'): - m = np.asarray(m) - indexer = [slice(None)] * m.ndim - try: - indexer[axis] = slice(None, None, -1) - except IndexError: - raise ValueError("axis=%i is invalid for the %i-dimensional input array" - % (axis, m.ndim)) - return m[tuple(indexer)] - - -def gaussian(shape, sigmas, alpha=1): - grid = np.full(shape, 1.0) - for i in range(len(shape)): - # prepare indexes for tile and transpose - tile_shape = list(shape) - tile_shape.pop(i) - tile_shape.append(1) - trans_shape = list(range(len(shape) - 1)) - trans_shape.insert(i, len(shape) - 1) - - multiplier = - 0.5 * alpha / pow(sigmas[i], 2) - line = np.linspace(-(shape[i] - 1) / 2.0, (shape[i] - 1) / 2.0, shape[i]) - gi = np.tile(line, tile_shape) - gi = np.transpose(gi, tuple(trans_shape)) - exponent = np.power(gi, 2) * multiplier - gi = np.exp(exponent) - grid = grid * gi - - grid_total = np.sum(grid) - return grid / grid_total - - -def gauss_conv_fft(arr, sigmas): - arr_sum = np.sum(abs(arr)) - arr_f = sf.ifftshift(sf.fftn(sf.ifftshift(arr))) - shape = list(arr.shape) - for i in range(len(sigmas)): - sigmas[i] = shape[i] / 2.0 / np.pi / sigmas[i] - convag = arr_f * gaussian(shape, sigmas) - convag = np.fft.ifftshift(sf.ifftn(np.fft.ifftshift(convag))) - convag = convag.real - convag = np.clip(convag, 0, None) - correction = arr_sum / np.sum(convag) - convag *= correction - return convag - - -def shrink_wrap(arr, threshold, sigma, type='gauss'): - sigmas = [sigma] * len(arr.shape) - if type == 'gauss': - convag = gauss_conv_fft(abs(arr), sigmas) - max_convag = np.amax(convag) - convag = convag / max_convag - support = np.where(convag >= threshold, 1, 0) - return support - else: - return None - - -def read_results(read_dir): - try: - imagefile = os.path.join(read_dir, 'image.npy') - image = np.load(imagefile) - - supportfile = os.path.join(read_dir, 'support.npy') - support = np.load(supportfile) - - try: - cohfile = os.path.join(read_dir, 'coherence.npy') - coh = np.load(cohfile) - except: - coh = None - except: - pass - - return image, support, coh - - -def save_metrics(errs, dir, metrics=None): - metric_file = os.path.join(dir, 'summary') - if os.path.isfile(metric_file): - os.remove(metric_file) - with open(metric_file, 'a') as f: - if metrics is not None: - f.write('metric result\n') - for key in metrics: - value = metrics[key] - f.write(key + ' = ' + str(value) + '\n') - f.write('\nerrors by iteration\n') - for er in errs: - f.write(str(er) + ' ') - f.close() - -def write_plot_errors(save_dir): - plot_file = os.path.join(save_dir, 'plot_errors.py') - f = open(plot_file, 'w+') - f.write("#! /usr/bin/env python\n") - f.write("import matplotlib.pyplot as plt\n") - f.write("import numpy as np\n") - f.write("import sys\n") - f.write("import os\n") - f.write("current_dir = sys.path[0]\n") - f.write("errs = np.load(os.path.join(current_dir, 'errors.npy')).tolist()\n") - f.write("errs.pop(0)\n") - f.write("plt.plot(errs)\n") - f.write("plt.ylabel('errors')\n") - f.write("plt.show()") - f.close() - st = os.stat(plot_file) - os.chmod(plot_file, st.st_mode | stat.S_IEXEC) - - -def save_results(image, support, coh, errs, reciprocal, flow, iter_array, save_dir, metrics=None): - if not os.path.exists(save_dir): - os.makedirs(save_dir) - print("writing image", image.shape) - - image_file = os.path.join(save_dir, 'image') - np.save(image_file, image) - print("image max", abs(image.max())) - save_tif(np.abs(image), image_file+".tif") - support_file = os.path.join(save_dir, 'support') - np.save(support_file, support) - save_tif(np.abs(support), support_file+".tif") - errs_file = os.path.join(save_dir, 'errors') - np.save(errs_file, errs) - if not coh is None: - coh_file = os.path.join(save_dir, 'coherence') - np.save(coh_file, coh) - reciprocal_file = os.path.join(save_dir, 'reciprocal') - np.save(reciprocal_file, reciprocal) - write_plot_errors(save_dir) - - graph_dir = os.path.join(save_dir, 'graph') - if not os.path.exists(graph_dir): - os.makedirs(graph_dir) - flow_file = os.path.join(graph_dir, 'flow') - np.save(flow_file, np.asarray(flow)) - iter_array_file = os.path.join(graph_dir, 'iter_array') - np.save(iter_array_file, iter_array) - - if metrics is not None: - save_metrics(errs, save_dir, metrics) - else: - save_metrics(errs, save_dir) - - -def save_multiple_results(samples, images, supports, cohs, errs, reciprocals, flows, iter_arrs, save_dir, metrics=None): - """ - This function saves results of multiple reconstructions to directory tree in save_dir. - Parameters - ---------- - samples : int - number of reconstruction sets results - images : list - list of numpy arrays containing reconstructed images - supports : list - list of numpy arrays containing support of reconstructed images - cohs : list - list of numpy arrays containing coherence of reconstructed images - save_dir : str - a directory to save the results - Returns - ------- - nothing - """ - for i in range(samples): - subdir = os.path.join(save_dir, str(i)) - if metrics is None: - save_results(images[i], supports[i], cohs[i], np.asarray(errs[i]), reciprocals[i], flows[i], iter_arrs[i], subdir) - else: - save_results(images[i], supports[i], cohs[i], np.asarray(errs[i]), reciprocals[i], flows[i], iter_arrs[i], subdir, metrics[i]) - - -def sub_pixel_shift(arr, row_shift, col_shift, z_shift): - # arr is 3D - buf2ft = sf.fftn(arr) - shape = arr.shape - Nr = np.fft.ifftshift(np.array(list(range(-int(np.floor(shape[0] / 2)), shape[0] - int(np.floor(shape[0] / 2)))))) - Nc = np.fft.ifftshift(np.array(list(range(-int(np.floor(shape[1] / 2)), shape[1] - int(np.floor(shape[1] / 2)))))) - Nz = np.fft.ifftshift(np.array(list(range(-int(np.floor(shape[2] / 2)), shape[2] - int(np.floor(shape[2] / 2)))))) - [Nc, Nr, Nz] = np.meshgrid(Nc, Nr, Nz) - Greg = buf2ft * np.exp(1j * 2 * np.pi * (-row_shift * Nr / shape[0] - col_shift * Nc / shape[1] - z_shift * Nz / shape[2])) - return sf.ifftn(Greg) - - -def arr_property(arr): - arr1 = abs(arr) - print ('norm', np.sum(pow(abs(arr),2))) - max_coordinates = list(np.unravel_index(np.argmax(arr1), arr.shape)) - print ('max coords, value', max_coordinates, arr[max_coordinates[0], max_coordinates[1],max_coordinates[2]]) - - -def get_gpu_load(mem_size, ids): - gpus = GPUtil.getGPUs() - total_avail = 0 - available_dir = {} - for gpu in gpus: - if gpu.id in ids: - free_mem = gpu.memoryFree - avail_runs = int(free_mem / mem_size) - if avail_runs > 0: - total_avail += avail_runs - available_dir[gpu.id] = avail_runs - available = [] - for id in ids: - try: - avail_runs = available_dir[id] - except: - avail_runs = 0 - available.append(avail_runs) - return available - - -def get_gpu_distribution(runs, available): - all_avail = reduce((lambda x,y: x+y), available) - while runs < all_avail: - # balance distribution - for i in range(len(available)): - if available[i] > 0: - available[i] -= 1 - all_avail -= 1 - if all_avail == runs: - break - return available - - -#https://stackoverflow.com/questions/51503672/decorator-for-timeit-timeit-method/51503837#51503837 -from functools import wraps -from time import time -def measure(func): - @wraps(func) - def _time_it(*args, **kwargs): - start = int(round(time() * 1000)) - try: - return func(*args, **kwargs) - finally: - end_ = int(round(time() * 1000)) - start - print(f"Total execution time: {end_ if end_ > 0 else 0} ms") - return _time_it - From e8e6b08d6e1e551d0a163fb9b2cc5249c4f93155 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 16:18:54 -0600 Subject: [PATCH 282/336] Delete tools.py --- .../reccdi/src_py/utilities/tools.py | 537 ------------------ 1 file changed, 537 deletions(-) delete mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/tools.py diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/tools.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/tools.py deleted file mode 100644 index aa13a3b..0000000 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/tools.py +++ /dev/null @@ -1,537 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -# ######################################################################### -# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # -# # -# See LICENSE file. # -# ######################################################################### - -""" -Please make sure the installation :ref:`pre-requisite-reference-label` are met. -This module is a suite of utility mehods. -""" - -import tifffile as tf -import numpy as np -import os -import logging -import stat - -__author__ = "Barbara Frosik" -__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." -__docformat__ = 'restructuredtext en' -__all__ = ['read_tif', - 'get_opencl_dim', - 'binning', - 'get_centered', - 'adjust_dimensions', - 'crop_center', - 'flip'] - - -def get_logger(name, ldir=''): - logger = logging.getLogger(name) - logger.setLevel(logging.DEBUG) - log_file = os.path.join(ldir, 'default.log') - fh = logging.FileHandler(log_file) - fh.setLevel(logging.DEBUG) - formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') - fh.setFormatter(formatter) - logger.addHandler(fh) - return logger - - -def read_tif(filename): - """ - This method reads tif type file containing experiment data and returns the data as array. - Parameters - ---------- - filename : str - a filename containing the experiment data - Returns - ------- - data : array - an array containing the experiment data - """ - - ar = tf.imread(filename) - ar = np.swapaxes(ar, 0, 2) -# ar = np.swapaxes(ar, 0, 1) - return ar - - -def save_tif(arr, tif_file): - arr = np.swapaxes(arr, 0, 2) - arr = np.swapaxes(arr, 1, 2) - tf.imsave(tif_file, arr.astype(np.int32)) - - -def get_good_dim(dim): - """ - This function calculates the dimension supported by opencl library (i.e. is multiplier of 2,3, or 5) and is closest to the - given starting dimension, and spaced by the given step. - If the dimension is not supported the function adds step value and verifies the new dimension. It iterates until it finds - supported value. - Parameters - ---------- - dim : int - a dimension that needs to be tranformed to one that is supported by the opencl library, if it is not already - - step : int - a delta to increase the dimension - Returns - ------- - dim : int - a dimension that is supported by the opencl library, and closest to the original dimension by n*step - """ - - def is_correct(x): - sub = x - if sub % 3 == 0: - sub = sub / 3 - if sub % 3 == 0: - sub = sub / 3 - if sub % 5 == 0: - sub = sub / 5 - while sub % 2 == 0: - sub = sub / 2 - return sub == 1 - - new_dim = dim - if new_dim % 2 == 1: - new_dim += 1 - while not is_correct(new_dim): - new_dim += 2 - return new_dim - - -def get_opencl_dim1(dim, step): - """ - This function calculates the dimension supported by opencl library (i.e. is multiplier of 2,3, or 5) and is closest to the - given starting dimension, and spaced by the given step. - If the dimension is not supported the function adds step value and verifies the new dimension. It iterates until it finds - supported value. - Parameters - ---------- - dim : int - a dimension that needs to be tranformed to one that is supported by the opencl library, if it is not already - - step : int - a delta to increase the dimension - Returns - ------- - dim : int - a dimension that is supported by the opencl library, and closest to the original dimension by n*step - """ - - def is_correct(x): - sub = x - while sub % 2 == 0: - sub = sub / 2 - while sub % 3 == 0: - sub = sub / 3 - while sub % 5 == 0: - sub = sub / 5 - return sub == 1 - - new_dim = dim - while not is_correct(new_dim): - new_dim += step - return new_dim - - -def binning(array, binsizes): - """ - This function does the binning of the array. The array is binned in each dimension by the corresponding binsizes elements. - If binsizes list is shorter than the array dimensions, the remaining dimensions are not binned. The elements in - a bucket are summed. - Parameters - ---------- - array : array - the original array to be binned - - binsizes : list - a list defining binning buckets for corresponding dimensions - Returns - ------- - array : array - the binned array - """ - - data_dims = array.shape - # trim array - for ax in range(len(binsizes)): - cut_slices = range(data_dims[ax] - data_dims[ax] % binsizes[ax], data_dims[ax]) - array = np.delete(array, cut_slices, ax) - - binned_array = array - new_shape = list(array.shape) - - for ax in range(len(binsizes)): - if binsizes[ax] > 1: - new_shape[ax] = binsizes[ax] - new_shape.insert(ax, int(array.shape[ax] / binsizes[ax])) - binned_array = np.reshape(binned_array, tuple(new_shape)) - binned_array = np.sum(binned_array, axis=ax + 1) - new_shape = list(binned_array.shape) - return binned_array - - -# ar = np.asarray([1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9]) -# ar.resize((5,9)) -# print ('ar', ar) -# b = binning(ar, (2,2)) -# print ('b',b) -# c = binning1(ar,(2,2)) -# print ('c',c) - - -def get_centered(arr, center_shift): - """ - This function finds a greatest value in the array, and puts it in a center of a new array. If center_shift is - not zeros, the array will be shifted accordingly. The shifted elements are rolled into the other end of array. - Parameters - ---------- - arr : array - the original array to be centered - center_shift : list - a list defining shift of the center - Returns - ------- - array : array - the centered array - """ - max_coordinates = list(np.unravel_index(np.argmax(arr), arr.shape)) - max_coordinates = np.add(max_coordinates, center_shift) - shape = arr.shape - centered = arr - for i in range(len(max_coordinates)): - centered = np.roll(centered, int(shape[i] / 2) - max_coordinates[i], i) - - return centered - - -def get_centered_both(arr, support): - """ - This function finds a greatest value in the array, and puts it in a center of a new array. If center_shift is - not zeros, the array will be shifted accordingly. The shifted elements are rolled into the other end of array. - Parameters - ---------- - arr : array - the original array to be centered - support : array - the associated array shifted the same way centered array is - Returns - ------- - centered : array - the centered array - """ - max_coordinates = list(np.unravel_index(np.argmax(arr), arr.shape)) - shape = arr.shape - centered = arr - centered_supp = support - for i in range(len(max_coordinates)): - centered = np.roll(centered, int(shape[i] / 2) - max_coordinates[i], i) - centered_supp = np.roll(centered_supp, int(shape[i] / 2) - max_coordinates[i], i) - - return centered, centered_supp - - -def get_zero_padded_centered(arr, new_shape): - """ - This function pads the array with zeros to the new shape with the array in the center. - Parameters - ---------- - arr : array - the original array to be padded and centered - new_shape : tuple - a list of new dimensions - Returns - ------- - array : array - the zero padded centered array - """ - shape = arr.shape - pad = [] - c_vals = [] - for i in range(len(new_shape)): - pad.append((0, new_shape[i] - shape[i])) - c_vals.append((0.0, 0.0)) - arr = np.lib.pad(arr, (pad), 'constant', constant_values=c_vals) - - centered = arr - for i in range(len(new_shape)): - centered = np.roll(centered, int((new_shape[i] - shape[i] + 1) / 2), i) - - return centered - - -def adjust_dimensions(arr, pads): - """ - This function adds to or subtracts from each dimension of the array elements defined by pad. If the pad is positive, - the array is padded in this dimension. If the pad is negative, the array is cropped. - The dimensions of the new array are supported by the opencl library. - Parameters - ---------- - arr : array - the array to pad/crop - pad : list - list of three pad values, for each dimension - Returns - ------- - array : array - the padded/cropped array - """ - # logger = get_logger('adjust_dimensions') - old_dims = arr.shape - start = [] - stop = [] - for i in range(len(old_dims)): - pad = pads[i] - first = max(0, -pad[0]) - last = old_dims[i] - max(0, -pad[1]) - if first >= last: - print ('the crop exceeds size, please change the crop and run again') - return None - else: - start.append(first) - stop.append(last) - - cropped = arr[ start[0]:stop[0], start[1]:stop[1], start[2]:stop[2] ] - # logger.info('cutting from to ' + str(crop[0]) + ', ' + str(old_dims[0]-crop[1]) + ', ' + str(crop[2]) + ', ' \ - # + str(old_dims[1]-crop[3]) + ', ' + str(crop[4]) + ', ' + str(old_dims[2]-crop[5])) - dims = cropped.shape - c_vals = [] - new_pad = [] - for i in range(len(dims)): - pad = pads[i] - # find a good dimension and find padding - temp_dim = old_dims[i] + pad[0] + pad[1] - new_dim = get_good_dim(temp_dim) - added = new_dim - temp_dim - # if the pad is positive - pad_front = max(0, pad[0]) + int(added / 2) - pad_end = new_dim - dims[i] - pad_front - new_pad.append((pad_front, pad_end)) - c_vals.append((0.0, 0.0)) - adjusted = np.pad(cropped, new_pad, 'constant', constant_values=c_vals) - - # logger.info('pads ' + str(new_pad[0]) + ', ' + str(new_pad[1]) + ', ' + str(new_pad[2]) + ', ' + str(new_pad[3]) \ - # + ', ' + str(new_pad[4]) + ', ' + str(new_pad[5])) - # logger.info('old dim, new dim (' + str(dims[0]) + ',' + str(dims[1]) + ',' + str(dims[2]) + ') (' + str(arr.shape[0]) +\ - # ',' + str(arr.shape[1]) + ',' + str(arr.shape[1]) + ')') - - return adjusted - -# ar = np.zeros((256,256,90)) -# pads = (-100,-100,0,0,0,0) -# ar = np.zeros((81,256,256)) -# pads = (5,-7,-20,-30,4,-20) -# arr = adjust_dimensions(ar,pads) -# print (arr.shape) - -def crop_center(arr, new_size): - size = arr.shape - cropped = arr - for i in range(len(size)): - crop_front = int((size[i] - new_size[i]) / 2) - crop_end = crop_front + new_size[i] - splitted = np.split(cropped, [crop_front, crop_end], axis=i) - cropped = splitted[1] - - return cropped - - -# ar = np.zeros((81,256,256)) -# new_size = (40, 200,100) -# arr = crop_center(ar,new_size) -# print (arr.shape) - -def get_norm(arr): - return sum(sum(sum(abs(arr) ** 2))) - - -def flip(m, axis): - """ - Copied from numpy 1.12.0. - """ - if not hasattr(m, 'ndim'): - m = np.asarray(m) - indexer = [slice(None)] * m.ndim - try: - indexer[axis] = slice(None, None, -1) - except IndexError: - raise ValueError("axis=%i is invalid for the %i-dimensional input array" - % (axis, m.ndim)) - return m[tuple(indexer)] - - -def gaussian(shape, sigmas, alpha=1): - grid = np.full(shape, 1.0) - for i in range(len(shape)): - # prepare indexes for tile and transpose - tile_shape = list(shape) - tile_shape.pop(i) - tile_shape.append(1) - trans_shape = list(range(len(shape) - 1)) - trans_shape.insert(i, len(shape) - 1) - - multiplier = - 0.5 * alpha / pow(sigmas[i], 2) - line = np.linspace(-(shape[i] - 1) / 2.0, (shape[i] - 1) / 2.0, shape[i]) - gi = np.tile(line, tile_shape) - gi = np.transpose(gi, tuple(trans_shape)) - exponent = np.power(gi, 2) * multiplier - gi = np.exp(exponent) - grid = grid * gi - - grid_total = np.sum(grid) - return grid / grid_total - - -def gauss_conv_fft(arr, sigmas): - arr_sum = np.sum(abs(arr)) - arr_f = np.fft.ifftshift(np.fft.fftn(np.fft.ifftshift(arr))) - shape = list(arr.shape) - for i in range(len(sigmas)): - sigmas[i] = shape[i] / 2.0 / np.pi / sigmas[i] - convag = arr_f * gaussian(shape, sigmas) - convag = np.fft.ifftshift(np.fft.ifftn(np.fft.ifftshift(convag))) - convag = convag.real - convag = np.clip(convag, 0, None) - correction = arr_sum / np.sum(convag) - convag *= correction - return convag - - -def shrink_wrap(arr, threshold, sigma, type='gauss'): - sigmas = [sigma] * len(arr.shape) - if type == 'gauss': - convag = gauss_conv_fft(abs(arr), sigmas) - max_convag = np.amax(convag) - convag = convag / max_convag - support = np.where(convag >= threshold, 1, 0) - return support - else: - return None - - -def read_results(read_dir): - try: - imagefile = os.path.join(read_dir, 'image.npy') - image = np.load(imagefile) - - supportfile = os.path.join(read_dir, 'support.npy') - support = np.load(supportfile) - - try: - cohfile = os.path.join(read_dir, 'coherence.npy') - coh = np.load(cohfile) - except: - coh = None - except: - pass - - return image, support, coh - - -def save_metrics(errs, dir, metrics=None): - metric_file = os.path.join(dir, 'summary') - if os.path.isfile(metric_file): - os.remove(metric_file) - with open(metric_file, 'a') as f: - if metrics is not None: - f.write('metric result\n') - for key in metrics: - value = metrics[key] - f.write(key + ' = ' + str(value) + '\n') - f.write('\nerrors by iteration\n') - for er in errs: - f.write(str(er) + ' ') - f.close() - -def write_plot_errors(save_dir): - plot_file = os.path.join(save_dir, 'plot_errors.py') - f = open(plot_file, 'w+') - f.write("#! /usr/bin/env python\n") - f.write("import matplotlib.pyplot as plt\n") - f.write("import numpy as np\n") - f.write("import sys\n") - f.write("import os\n") - f.write("current_dir = sys.path[0]\n") - f.write("errs = np.load(os.path.join(current_dir, 'errors.npy')).tolist()\n") - f.write("errs.pop(0)\n") - f.write("plt.plot(errs)\n") - f.write("plt.ylabel('errors')\n") - f.write("plt.show()") - f.close() - st = os.stat(plot_file) - os.chmod(plot_file, st.st_mode | stat.S_IEXEC) - - -def save_results(image, support, coh, errs, reciprocal, save_dir, metrics=None): - if not os.path.exists(save_dir): - os.makedirs(save_dir) - - image_file = os.path.join(save_dir, 'image') - np.save(image_file, image) - support_file = os.path.join(save_dir, 'support') - np.save(support_file, support) - errs_file = os.path.join(save_dir, 'errors') - np.save(errs_file, errs) - if not coh is None: - coh_file = os.path.join(save_dir, 'coherence') - np.save(coh_file, coh) - reciprocal_file = os.path.join(save_dir, 'reciprocal') - np.save(reciprocal_file, reciprocal) - write_plot_errors(save_dir) - if metrics is not None: - save_metrics(errs, save_dir, metrics) - else: - save_metrics(errs, save_dir) - - -def save_multiple_results(samples, images, supports, cohs, errs, reciprocals, save_dir, metrics=None): - """ - This function saves results of multiple reconstructions to directory tree in save_dir. - Parameters - ---------- - samples : int - number of reconstruction sets results - images : list - list of numpy arrays containing reconstructed images - supports : list - list of numpy arrays containing support of reconstructed images - cohs : list - list of numpy arrays containing coherence of reconstructed images - save_dir : str - a directory to save the results - Returns - ------- - nothing - """ - for i in range(samples): - subdir = os.path.join(save_dir, str(i)) - if metrics is None: - save_results(images[i], supports[i], cohs[i], np.asarray(errs[i]), reciprocals[i], subdir) - else: - save_results(images[i], supports[i], cohs[i], np.asarray(errs[i]), reciprocals[i], subdir, metrics[i]) - - -def sub_pixel_shift(arr, row_shift, col_shift, z_shift): - # arr is 3D - buf2ft = np.fft.fftn(arr) - shape = arr.shape - Nr = np.fft.ifftshift(np.array(list(range(-int(np.floor(shape[0] / 2)), shape[0] - int(np.floor(shape[0] / 2)))))) - Nc = np.fft.ifftshift(np.array(list(range(-int(np.floor(shape[1] / 2)), shape[1] - int(np.floor(shape[1] / 2)))))) - Nz = np.fft.ifftshift(np.array(list(range(-int(np.floor(shape[2] / 2)), shape[2] - int(np.floor(shape[2] / 2)))))) - [Nc, Nr, Nz] = np.meshgrid(Nc, Nr, Nz) - Greg = buf2ft * np.exp(1j * 2 * np.pi * (-row_shift * Nr / shape[0] - col_shift * Nc / shape[1] - z_shift * Nz / shape[2])) - return np.fft.ifftn(Greg) - - -def arr_property(arr): - arr1 = abs(arr) - print ('norm', np.sum(pow(abs(arr),2))) - max_coordinates = list(np.unravel_index(np.argmax(arr1), arr.shape)) - print ('max coords, value', max_coordinates, arr[max_coordinates[0], max_coordinates[1],max_coordinates[2]]) From be45125947c9c08c536b4827ca22ce20032d8e6d Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 16:19:17 -0600 Subject: [PATCH 283/336] Delete simple.py --- .../reccdi/src_py/utilities/simple.py | 20 ------------------- 1 file changed, 20 deletions(-) delete mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/simple.py diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/simple.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/simple.py deleted file mode 100644 index 41ce888..0000000 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/simple.py +++ /dev/null @@ -1,20 +0,0 @@ -#! /usr/bin/env python -from pyevtk.hl import gridToVTK -import numpy as np - -# Dimensions -nx, ny, nz = 11, 11, 11 - -X = np.linspace(1., -1., nx) -Y = np.linspace(-1., 1., ny) -Z = np.linspace(-1., 1., nz) - -x, y, z = np.meshgrid(X, Y, Z, indexing='ij') - -r = np.sqrt(x**2 + y**2 + z**2) - -gridToVTK('./structured', x, y, z, pointData={'r': r, 'x': x}) - -r = 1.-np.sqrt(x**2 + y**2 + z**2) - -gridToVTK('./structured2', x, y, z, pointData={'r': r, 'x': x}) From f0ce960fdf83decb1d471df4f88ce97bc6506e72 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 16:19:40 -0600 Subject: [PATCH 284/336] Delete pyevtktest.py --- .../reccdi/src_py/utilities/pyevtktest.py | 42 ------------------- 1 file changed, 42 deletions(-) delete mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/pyevtktest.py diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/pyevtktest.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/pyevtktest.py deleted file mode 100644 index 92d80a9..0000000 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/pyevtktest.py +++ /dev/null @@ -1,42 +0,0 @@ -#! /usr/bin/env python - -# ************************************************************** -# * Example of how to use the high level gridToVTK function. * -# * This example shows how to export a structured grid. * -# ************************************************************** - -from pyevtk.hl import gridToVTK -import numpy as np -import random as rnd - -# Dimensions -nx, ny, nz = 10, 5, 2 -lx, ly, lz = 10.0, 5.0, 1.0 -dx, dy, dz = lx/nx, ly/ny, lz/nz - -ncells = nx * ny * nz -npoints = (nx + 1) * (ny + 1) * (nz + 1) - -# Coordinates -X = np.arange(0, lx + 0.1*dx, dx, dtype='float64') -Y = np.arange(0, ly + 0.1*dy, dy, dtype='float64') -Z = np.arange(0, lz + 0.1*dz, dz, dtype='float64') - -x = np.zeros((nx + 1, ny + 1, nz + 1)) -y = np.zeros((nx + 1, ny + 1, nz + 1)) -z = np.zeros((nx + 1, ny + 1, nz + 1)) - -# We add some random fluctuation to make the grid -# more interesting -for k in range(nz + 1): - for j in range(ny + 1): - for i in range(nx + 1): - x[i,j,k] = X[i] - y[i,j,k] = Y[j] - z[i,j,k] = Z[k] - -# Variables -#pressure = np.random.rand(ncells).reshape( (nx, ny, nz)) -#temp = np.random.rand(npoints).reshape( (nx + 1, ny + 1, nz + 1)) - -#gridToVTK("./structured", x, y, z, cellData = {"pressure" : pressure}, pointData = {"temp" : temp}) From fac6a2f3262ede5feb833dcc60f6f5f8aa9a9e9d Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 16:20:26 -0600 Subject: [PATCH 285/336] Delete utils.py --- .../reccdi/src_py/utilities/utils.py | 576 ------------------ 1 file changed, 576 deletions(-) delete mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/utils.py diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/utils.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/utils.py deleted file mode 100644 index 8a4e199..0000000 --- a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/utils.py +++ /dev/null @@ -1,576 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -# ######################################################################### -# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # -# # -# See LICENSE file. # -# ######################################################################### - -""" -Please make sure the installation :ref:`pre-requisite-reference-label` are met. -This module is a suite of utility mehods. -""" - -import tifffile as tf -import pylibconfig2 as cfg -import numpy as np -import scipy.fftpack as sf -import os -import logging -import stat -from functools import reduce -import GPUtil - -__author__ = "Barbara Frosik" -__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." -__docformat__ = 'restructuredtext en' -__all__ = ['read_tif', - 'get_opencl_dim', - 'binning', - 'get_centered', - 'adjust_dimensions', - 'crop_center', - 'flip'] - - -def get_logger(name, ldir=''): - logger = logging.getLogger(name) - logger.setLevel(logging.DEBUG) - log_file = os.path.join(ldir, 'default.log') - fh = logging.FileHandler(log_file) - fh.setLevel(logging.DEBUG) - formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') - fh.setFormatter(formatter) - logger.addHandler(fh) - return logger - - -def read_tif(filename): - """ - This method reads tif type file containing experiment data and returns the data as array. - Parameters - ---------- - filename : str - a filename containing the experiment data - Returns - ------- - data : array - an array containing the experiment data - """ - - ar = tf.imread(filename).transpose() - #ar = np.swapaxes(ar, 0, 2) - #ar = np.swapaxes(ar, 0, 1) - return ar - - -def save_tif(arr, tif_file): - # arr = np.swapaxes(arr, 0, 2) - # arr = np.swapaxes(arr, 1, 2) - #arr = np.swapaxes(arr, 0, 1) - #arr = np.swapaxes(arr, 0, 2) - tf.imsave(tif_file, arr.transpose().astype(np.float32)) - - -def read_config(config): - """ - This function gets configuration file. It checks if the file exists and parses it into a map. - Parameters - ---------- - config : str - configuration file name, including path - Returns - ------- - config_map : dict - a map containing parsed configuration, None if the given file does not exist - """ - - if os.path.isfile(config): - with open(config, 'r') as f: - config_map = cfg.Config(f.read()) - return config_map; - else: - return None - - -def get_good_dim(dim): - """ - This function calculates the dimension supported by opencl library (i.e. is multiplier of 2,3, or 5) and is closest to the - given starting dimension, and spaced by the given step. - If the dimension is not supported the function adds step value and verifies the new dimension. It iterates until it finds - supported value. - Parameters - ---------- - dim : int - a dimension that needs to be tranformed to one that is supported by the opencl library, if it is not already - - step : int - a delta to increase the dimension - Returns - ------- - dim : int - a dimension that is supported by the opencl library, and closest to the original dimension by n*step - """ - - def is_correct(x): - sub = x - if sub % 3 == 0: - sub = sub / 3 - if sub % 3 == 0: - sub = sub / 3 - if sub % 5 == 0: - sub = sub / 5 - while sub % 2 == 0: - sub = sub / 2 - return sub == 1 - - new_dim = dim - if new_dim % 2 == 1: - new_dim += 1 - while not is_correct(new_dim): - new_dim += 2 - return new_dim - - -def binning(array, binsizes): - """ - This function does the binning of the array. The array is binned in each dimension by the corresponding binsizes elements. - If binsizes list is shorter than the array dimensions, the remaining dimensions are not binned. The elements in - a bucket are summed. - Parameters - ---------- - array : array - the original array to be binned - - binsizes : list - a list defining binning buckets for corresponding dimensions - Returns - ------- - array : array - the binned array - """ - - data_dims = array.shape - # trim array - for ax in range(len(binsizes)): - cut_slices = range(data_dims[ax] - data_dims[ax] % binsizes[ax], data_dims[ax]) - array = np.delete(array, cut_slices, ax) - - binned_array = array - new_shape = list(array.shape) - - for ax in range(len(binsizes)): - if binsizes[ax] > 1: - new_shape[ax] = binsizes[ax] - new_shape.insert(ax, int(array.shape[ax] / binsizes[ax])) - binned_array = np.reshape(binned_array, tuple(new_shape)) - binned_array = np.sum(binned_array, axis=ax + 1) - new_shape = list(binned_array.shape) - return binned_array - - -# ar = np.asarray([1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9]) -# ar.resize((5,9)) -# print ('ar', ar) -# b = binning(ar, (2,2)) -# print ('b',b) -# c = binning1(ar,(2,2)) -# print ('c',c) - - -def get_centered(arr, center_shift): - """ - This function finds a greatest value in the array, and puts it in a center of a new array. If center_shift is - not zeros, the array will be shifted accordingly. The shifted elements are rolled into the other end of array. - Parameters - ---------- - arr : array - the original array to be centered - center_shift : list - a list defining shift of the center - Returns - ------- - array : array - the centered array - """ - max_coordinates = list(np.unravel_index(np.argmax(arr), arr.shape)) - max_coordinates = np.add(max_coordinates, center_shift) - shape = arr.shape - centered = arr - for i in range(len(max_coordinates)): - centered = np.roll(centered, int(shape[i] / 2) - max_coordinates[i], i) - - return centered - - -def get_centered_both(arr, support): - """ - This function finds a greatest value in the array, and puts it in a center of a new array. If center_shift is - not zeros, the array will be shifted accordingly. The shifted elements are rolled into the other end of array. - Parameters - ---------- - arr : array - the original array to be centered - support : array - the associated array shifted the same way centered array is - Returns - ------- - centered : array - the centered array - """ - max_coordinates = list(np.unravel_index(np.argmax(arr), arr.shape)) - shape = arr.shape - centered = arr - centered_supp = support - for i in range(len(max_coordinates)): - centered = np.roll(centered, int(shape[i] / 2) - max_coordinates[i], i) - centered_supp = np.roll(centered_supp, int(shape[i] / 2) - max_coordinates[i], i) - - return centered, centered_supp - - -def get_zero_padded_centered(arr, new_shape): - """ - This function pads the array with zeros to the new shape with the array in the center. - Parameters - ---------- - arr : array - the original array to be padded and centered - new_shape : tuple - a list of new dimensions - Returns - ------- - array : array - the zero padded centered array - """ - shape = arr.shape - pad = [] - c_vals = [] - for i in range(len(new_shape)): - pad.append((0, new_shape[i] - shape[i])) - c_vals.append((0.0, 0.0)) - arr = np.lib.pad(arr, (pad), 'constant', constant_values=c_vals) - - centered = arr - for i in range(len(new_shape)): - centered = np.roll(centered, int((new_shape[i] - shape[i] + 1) / 2), i) - - return centered - - -def adjust_dimensions(arr, pads): - """ - This function adds to or subtracts from each dimension of the array elements defined by pad. If the pad is positive, - the array is padded in this dimension. If the pad is negative, the array is cropped. - The dimensions of the new array are supported by the opencl library. - Parameters - ---------- - arr : array - the array to pad/crop - pad : list - list of three pad values, for each dimension - Returns - ------- - array : array - the padded/cropped array - """ - # logger = get_logger('adjust_dimensions') - old_dims = arr.shape - start = [] - stop = [] - for i in range(len(old_dims)): - pad = pads[i] - first = max(0, -pad[0]) - last = old_dims[i] - max(0, -pad[1]) - if first >= last: - print ('the crop exceeds size, please change the crop and run again') - return None - else: - start.append(first) - stop.append(last) - - cropped = arr[ start[0]:stop[0], start[1]:stop[1], start[2]:stop[2] ] - # logger.info('cutting from to ' + str(crop[0]) + ', ' + str(old_dims[0]-crop[1]) + ', ' + str(crop[2]) + ', ' \ - # + str(old_dims[1]-crop[3]) + ', ' + str(crop[4]) + ', ' + str(old_dims[2]-crop[5])) - dims = cropped.shape - c_vals = [] - new_pad = [] - for i in range(len(dims)): - pad = pads[i] - # find a good dimension and find padding - temp_dim = old_dims[i] + pad[0] + pad[1] - new_dim = get_good_dim(temp_dim) - added = new_dim - temp_dim - # if the pad is positive - pad_front = max(0, pad[0]) + int(added / 2) - pad_end = new_dim - dims[i] - pad_front - new_pad.append((pad_front, pad_end)) - c_vals.append((0.0, 0.0)) - adjusted = np.pad(cropped, new_pad, 'constant', constant_values=c_vals) - - # logger.info('pads ' + str(new_pad[0]) + ', ' + str(new_pad[1]) + ', ' + str(new_pad[2]) + ', ' + str(new_pad[3]) \ - # + ', ' + str(new_pad[4]) + ', ' + str(new_pad[5])) - # logger.info('old dim, new dim (' + str(dims[0]) + ',' + str(dims[1]) + ',' + str(dims[2]) + ') (' + str(arr.shape[0]) +\ - # ',' + str(arr.shape[1]) + ',' + str(arr.shape[1]) + ')') - - return adjusted - -# ar = np.zeros((256,256,90)) -# pads = (-100,-100,0,0,0,0) -# ar = np.zeros((81,256,256)) -# pads = (5,-7,-20,-30,4,-20) -# arr = adjust_dimensions(ar,pads) -# print (arr.shape) - -def crop_center(arr, new_size): - size = arr.shape - cropped = arr - for i in range(len(size)): - crop_front = int((size[i] - new_size[i]) / 2) - crop_end = crop_front + new_size[i] - splitted = np.split(cropped, [crop_front, crop_end], axis=i) - cropped = splitted[1] - - return cropped - - -# ar = np.zeros((81,256,256)) -# new_size = (40, 200,100) -# arr = crop_center(ar,new_size) -# print (arr.shape) - -def get_norm(arr): - return sum(sum(sum(abs(arr) ** 2))) - - -def flip(m, axis): - """ - Copied from numpy 1.12.0. - """ - if not hasattr(m, 'ndim'): - m = np.asarray(m) - indexer = [slice(None)] * m.ndim - try: - indexer[axis] = slice(None, None, -1) - except IndexError: - raise ValueError("axis=%i is invalid for the %i-dimensional input array" - % (axis, m.ndim)) - return m[tuple(indexer)] - - -def gaussian(shape, sigmas, alpha=1): - grid = np.full(shape, 1.0) - for i in range(len(shape)): - # prepare indexes for tile and transpose - tile_shape = list(shape) - tile_shape.pop(i) - tile_shape.append(1) - trans_shape = list(range(len(shape) - 1)) - trans_shape.insert(i, len(shape) - 1) - - multiplier = - 0.5 * alpha / pow(sigmas[i], 2) - line = np.linspace(-(shape[i] - 1) / 2.0, (shape[i] - 1) / 2.0, shape[i]) - gi = np.tile(line, tile_shape) - gi = np.transpose(gi, tuple(trans_shape)) - exponent = np.power(gi, 2) * multiplier - gi = np.exp(exponent) - grid = grid * gi - - grid_total = np.sum(grid) - return grid / grid_total - - -def gauss_conv_fft(arr, sigmas): - arr_sum = np.sum(abs(arr)) - arr_f = sf.ifftshift(sf.fftn(sf.ifftshift(arr))) - shape = list(arr.shape) - for i in range(len(sigmas)): - sigmas[i] = shape[i] / 2.0 / np.pi / sigmas[i] - convag = arr_f * gaussian(shape, sigmas) - convag = np.fft.ifftshift(sf.ifftn(np.fft.ifftshift(convag))) - convag = convag.real - convag = np.clip(convag, 0, None) - correction = arr_sum / np.sum(convag) - convag *= correction - return convag - - -def shrink_wrap(arr, threshold, sigma, type='gauss'): - sigmas = [sigma] * len(arr.shape) - if type == 'gauss': - convag = gauss_conv_fft(abs(arr), sigmas) - max_convag = np.amax(convag) - convag = convag / max_convag - support = np.where(convag >= threshold, 1, 0) - return support - else: - return None - - -def read_results(read_dir): - try: - imagefile = os.path.join(read_dir, 'image.npy') - image = np.load(imagefile) - - supportfile = os.path.join(read_dir, 'support.npy') - support = np.load(supportfile) - - try: - cohfile = os.path.join(read_dir, 'coherence.npy') - coh = np.load(cohfile) - except: - coh = None - except: - pass - - return image, support, coh - - -def save_metrics(errs, dir, metrics=None): - metric_file = os.path.join(dir, 'summary') - if os.path.isfile(metric_file): - os.remove(metric_file) - with open(metric_file, 'a') as f: - if metrics is not None: - f.write('metric result\n') - for key in metrics: - value = metrics[key] - f.write(key + ' = ' + str(value) + '\n') - f.write('\nerrors by iteration\n') - for er in errs: - f.write(str(er) + ' ') - f.close() - -def write_plot_errors(save_dir): - plot_file = os.path.join(save_dir, 'plot_errors.py') - f = open(plot_file, 'w+') - f.write("#! /usr/bin/env python\n") - f.write("import matplotlib.pyplot as plt\n") - f.write("import numpy as np\n") - f.write("import sys\n") - f.write("import os\n") - f.write("current_dir = sys.path[0]\n") - f.write("errs = np.load(os.path.join(current_dir, 'errors.npy')).tolist()\n") - f.write("errs.pop(0)\n") - f.write("plt.plot(errs)\n") - f.write("plt.ylabel('errors')\n") - f.write("plt.show()") - f.close() - st = os.stat(plot_file) - os.chmod(plot_file, st.st_mode | stat.S_IEXEC) - - -def save_results(image, support, coh, errs, reciprocal, flow, iter_array, save_dir, metrics=None): - if not os.path.exists(save_dir): - os.makedirs(save_dir) - print("writing image", image.shape) - - image_file = os.path.join(save_dir, 'image') - np.save(image_file, image) - print("image max", abs(image.max())) - save_tif(np.abs(image), image_file+".tif") - support_file = os.path.join(save_dir, 'support') - np.save(support_file, support) - save_tif(np.abs(support), support_file+".tif") - errs_file = os.path.join(save_dir, 'errors') - np.save(errs_file, errs) - if not coh is None: - coh_file = os.path.join(save_dir, 'coherence') - np.save(coh_file, coh) - reciprocal_file = os.path.join(save_dir, 'reciprocal') - np.save(reciprocal_file, reciprocal) - write_plot_errors(save_dir) - - graph_dir = os.path.join(save_dir, 'graph') - if not os.path.exists(graph_dir): - os.makedirs(graph_dir) - flow_file = os.path.join(graph_dir, 'flow') - np.save(flow_file, np.asarray(flow)) - iter_array_file = os.path.join(graph_dir, 'iter_array') - np.save(iter_array_file, iter_array) - - if metrics is not None: - save_metrics(errs, save_dir, metrics) - else: - save_metrics(errs, save_dir) - - -def save_multiple_results(samples, images, supports, cohs, errs, reciprocals, flows, iter_arrs, save_dir, metrics=None): - """ - This function saves results of multiple reconstructions to directory tree in save_dir. - Parameters - ---------- - samples : int - number of reconstruction sets results - images : list - list of numpy arrays containing reconstructed images - supports : list - list of numpy arrays containing support of reconstructed images - cohs : list - list of numpy arrays containing coherence of reconstructed images - save_dir : str - a directory to save the results - Returns - ------- - nothing - """ - for i in range(samples): - subdir = os.path.join(save_dir, str(i)) - if metrics is None: - save_results(images[i], supports[i], cohs[i], np.asarray(errs[i]), reciprocals[i], flows[i], iter_arrs[i], subdir) - else: - save_results(images[i], supports[i], cohs[i], np.asarray(errs[i]), reciprocals[i], flows[i], iter_arrs[i], subdir, metrics[i]) - - -def sub_pixel_shift(arr, row_shift, col_shift, z_shift): - # arr is 3D - buf2ft = sf.fftn(arr) - shape = arr.shape - Nr = np.fft.ifftshift(np.array(list(range(-int(np.floor(shape[0] / 2)), shape[0] - int(np.floor(shape[0] / 2)))))) - Nc = np.fft.ifftshift(np.array(list(range(-int(np.floor(shape[1] / 2)), shape[1] - int(np.floor(shape[1] / 2)))))) - Nz = np.fft.ifftshift(np.array(list(range(-int(np.floor(shape[2] / 2)), shape[2] - int(np.floor(shape[2] / 2)))))) - [Nc, Nr, Nz] = np.meshgrid(Nc, Nr, Nz) - Greg = buf2ft * np.exp(1j * 2 * np.pi * (-row_shift * Nr / shape[0] - col_shift * Nc / shape[1] - z_shift * Nz / shape[2])) - return sf.ifftn(Greg) - - -def arr_property(arr): - arr1 = abs(arr) - print ('norm', np.sum(pow(abs(arr),2))) - max_coordinates = list(np.unravel_index(np.argmax(arr1), arr.shape)) - print ('max coords, value', max_coordinates, arr[max_coordinates[0], max_coordinates[1],max_coordinates[2]]) - - -def get_gpu_load(mem_size, ids): - gpus = GPUtil.getGPUs() - total_avail = 0 - available_dir = {} - for gpu in gpus: - if gpu.id in ids: - free_mem = gpu.memoryFree - avail_runs = int(free_mem / mem_size) - if avail_runs > 0: - total_avail += avail_runs - available_dir[gpu.id] = avail_runs - available = [] - for id in ids: - try: - avail_runs = available_dir[id] - except: - avail_runs = 0 - available.append(avail_runs) - return available - - -def get_gpu_distribution(runs, available): - all_avail = reduce((lambda x,y: x+y), available) - while runs < all_avail: - # balance distribution - for i in range(len(available)): - if available[i] > 0: - available[i] -= 1 - all_avail -= 1 - if all_avail == runs: - break - return available From 7c439b8ec4e5e76000389be71b2420aca0bd5198 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 16:21:07 -0600 Subject: [PATCH 286/336] Delete viz_util.py --- .../reccdi/src_py/utilities/viz_util.py | 174 ------------------ 1 file changed, 174 deletions(-) delete mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/viz_util.py diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/viz_util.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/viz_util.py deleted file mode 100644 index 1074dc6..0000000 --- a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/viz_util.py +++ /dev/null @@ -1,174 +0,0 @@ -# ######################################################################### -# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # -# # -# See LICENSE file. # -# ######################################################################### - -import os -import numpy as np -import math as m -import pyevtk.hl as vtk - -__author__ = "Barbara Frosik" -__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." -__docformat__ = 'restructuredtext en' - - -class CXDViz(): - - cropx = 0.5 - cropy = 0.5 - cropz = 0.5 - dir_arrs={} - recip_arrs={} - - def __init__(self): - #self.imd = tvtk.ImageData() - #self.sg = tvtk.StructuredGrid() - pass - - - def set_geometry(self, lam, delta, gamma, dpx, dpy, dth): - lam = lam - tth = delta - gam = gamma - dpx = dpx - dpy = dpy - dth = dth - dQdpx = np.zeros(3) - dQdpy = np.zeros(3) - dQdth = np.zeros(3) - Astar = np.zeros(3) - Bstar = np.zeros(3) - Cstar = np.zeros(3) - - # dQdpx[0] = -m.cos(tth) * m.cos(gam) - # dQdpx[1] = 0.0 - # dQdpx[2] = +m.sin(tth) * m.cos(gam) - dQdpx[0] = -m.cos(tth) - dQdpx[1] = 0.0 - dQdpx[2] = +m.sin(tth) - print("dqdpx",dQdpx) - - dQdpy[0] = m.sin(tth) * m.sin(gam) - dQdpy[1] = -m.cos(gam) - dQdpy[2] = m.cos(tth) * m.sin(gam) - print("dqdpy",dQdpy) - - dQdth[0] = -m.cos(tth) * m.cos(gam) + 1.0 - dQdth[1] = 0.0 - dQdth[2] = m.sin(tth) * m.cos(gam) - print("dqdth",dQdth) - - Astar[0] = 2 * m.pi / lam * dpx * dQdpx[0] - Astar[1] = 2 * m.pi / lam * dpx * dQdpx[1] - Astar[2] = 2 * m.pi / lam * dpx * dQdpx[2] - - Bstar[0] = (2 * m.pi / lam) * dpy * dQdpy[0] - Bstar[1] = (2 * m.pi / lam) * dpy * dQdpy[1] - Bstar[2] = (2 * m.pi / lam) * dpy * dQdpy[2] - - Cstar[0] = (2 * m.pi / lam) * dth * dQdth[0] - Cstar[1] = (2 * m.pi / lam) * dth * dQdth[1] - Cstar[2] = (2 * m.pi / lam) * dth * dQdth[2] - - denom = np.dot(Astar, np.cross(Bstar, Cstar)) - A = 2 * m.pi * np.cross(Bstar, Cstar) / denom - B = 2 * m.pi * np.cross(Cstar, Astar) / denom - C = 2 * m.pi * np.cross(Astar, Bstar) / denom - - self.Trecip = np.zeros(9) - self.Trecip.shape = (3, 3) - self.Trecip[:, 0] = Astar - self.Trecip[:, 1] = Bstar - self.Trecip[:, 2] = Cstar -# self.Trecip[:, 0] = [2,0,1] -# self.Trecip[:, 1] = [0,1,0] -# self.Trecip[:, 2] = [0,0,1] - print("Recip") - print(Astar,Bstar,Cstar) - print(self.Trecip) - - self.Tdir = np.zeros(9) - self.Tdir.shape = (3, 3) - self.Tdir = np.array((A, B, C)) - print("Direct") - print(A,B,C) - print(self.Tdir) - - self.dirspace_uptodate=0 - self.recipspace_uptodate=0 - return dQdpx, dQdpy, dQdth - - def update_dirspace(self, shape): - print("Updating dirspace coords") - dims = list(shape) - self.dxdir = 1.0 / shape[0] - self.dydir = 1.0 / shape[1] - self.dzdir = 1.0 / shape[2] - - r = np.mgrid[ - 0:dims[0] * self.dxdir:self.dxdir, \ - 0:dims[1] * self.dydir:self.dydir,\ - 0:dims[2] * self.dzdir:self.dzdir] -# r = np.mgrid[ -# 0:dims[0]*self.dxdir:self.dxdir, \ -# (dims[1]-1)*self.dydir:-self.dydir:-self.dydir,\ -# 0:dims[2]*self.dzdir:self.dzdir] - - origshape=r.shape - r.shape = 3, dims[0] * dims[1] * dims[2] - #r = r.transpose() - - self.dir_coords = np.dot(self.Tdir, r) - -# self.dir_coords = self.dir_coords.transpose() - self.dir_coords.shape=origshape - print("dir shape", self.dir_coords.shape) - self.dirspace_uptodate=1 - - def update_recipspace(self, shape): - dims = list(shape) - q = np.mgrid[ 0:dims[0], 0:dims[1], 0:dims[2]] - - origshape=q.shape - q.shape = 3, dims[0] * dims[1] * dims[2] - - self.recip_coords = np.dot(self.Trecip, q) - self.recip_coords.shape=origshape - self.recipspace_uptodate=1 - - def add_array(self, array, name, space='direct', logentry=None): - - #Need to add something to ensure arrays are all the same dimension. - #Need to add crop of viz output arrays - if len(array.shape) < 3: - newdims = list(array.shape) - for i in range(3 - len(newdims)): - newdims.append(1) - array.shape = tuple(newdims) - print("adding array of shape ", array.shape) - if space=='direct': - self.dir_arrs[name]=array - if (not self.dirspace_uptodate): - self.update_dirspace(array.shape) - elif space=='recip': - self.recip_arrs[name]=array - if (not self.recipspace_uptodate): - self.update_recipspace(array.shape) - else: - return - - def write_directspace(self, filename, **args): - print(self.dir_arrs.keys()) - vtk.gridToVTK(filename, self.dir_coords[0,:,:,:].copy(), \ - self.dir_coords[1,:,:,:].copy(), \ - self.dir_coords[2,:,:,:].copy(), pointData=self.dir_arrs) - vtk.imageToVTK(filename, pointData=self.dir_arrs) - - def write_recipspace(self, filename, **args): - vtk.gridToVTK(filename, self.recip_coords[0,:,:,:].copy(), \ - self.recip_coords[1,:,:,:].copy(), \ - self.recip_coords[2,:,:,:].copy(), pointData=self.recip_arrs) - vtk.imageToVTK(filename, pointData=self.recip_arrs) - From f95e18eef9cccb2598d11e01d8b2b0e9a1ad7118 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 16:21:35 -0600 Subject: [PATCH 287/336] Delete gen_rec.py --- .../reccdi/src_py/controller/gen_rec.py | 449 ------------------ 1 file changed, 449 deletions(-) delete mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/controller/gen_rec.py diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/gen_rec.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/gen_rec.py deleted file mode 100644 index 23a34a4..0000000 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/gen_rec.py +++ /dev/null @@ -1,449 +0,0 @@ - -# ######################################################################### -# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # -# # -# See LICENSE file. # -# ######################################################################### - - -""" -This module controls the genetic algoritm process. -""" - -import numpy as np -import os -import reccdi.src_py.controller.reconstruction as single -import reccdi.src_py.controller.reconstruction_multi as multi -import reccdi.src_py.utilities.utils as ut -import reccdi.src_py.utilities.utils_ga as gut - - -__author__ = "Barbara Frosik" -__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." -__docformat__ = 'restructuredtext en' -__all__ = ['read_config', - 'reconstruction'] - - -class Generation: - """ - This class holds fields relevant to generations according to configuration. - """ - def __init__(self, config_map): - self.current_gen = 0 - try: - self.generations = config_map.generations - except AttributeError: - self.generations = 1 - - try: - self.metrics = tuple(config_map.ga_metrics) - if len(self.metrics) < self.generations: - self.metrics = self.metrics + ('chi',) * (self.generations - len(self.metrics)) - except AttributeError: - self.metrics = ('chi',) * self.generations - - try: - self.worst_remove_no = tuple(config_map.ga_removes) - if len(self.worst_remove_no) < self.generations: - self.worst_remove_no = self.worst_remove_no + (0,) * (self.generations - len(self.worst_remove_no)) - except AttributeError: - self.worst_remove_no = None - - try: - self.ga_support_thresholds = tuple(config_map.ga_support_thresholds) - if len(self.ga_support_thresholds) < self.generations: - try: - support_threshold = config_map.support_threshold - except: - support_threshold = .1 - self.ga_support_thresholds = self.ga_support_thresholds + (support_threshold,) * (self.generations - len(self.ga_support_thresholds)) - except AttributeError: - try: - support_threshold = config_map.support_threshold - except: - support_threshold = .1 - self.ga_support_thresholds = (support_threshold,) * (self.generations) - - try: - self.ga_support_sigmas = tuple(config_map.ga_support_sigmas) - if len(self.ga_support_sigmas) < self.generations: - try: - support_sigma = config_map.support_sigma - except: - support_sigma = 1.0 - self.ga_support_sigmas = self.ga_support_sigmas + (support_sigma,) * (self.generations - len(self.ga_support_sigmas)) - except AttributeError: - try: - support_sigma = config_map.support_sigma - except: - support_sigma = 1.0 - self.ga_support_sigmas = (support_sigma,) * (self.generations) - - try: - self.breed_modes = tuple(config_map.ga_breed_modes) - if len(self.breed_modes) < self.generations: - self.breed_modes = self.breed_modes + ('none',) * (self.generations - len(self.breed_modes)) - except AttributeError: - self.breed_modes = ('none',) * self.generations - - try: - self.sigmas = config_map.ga_low_resolution_sigmas - self.low_resolution_generations = len(self.sigmas) - except AttributeError: - self.low_resolution_generations = 0 - - if self.low_resolution_generations > 0: - try: - self.low_resolution_alg = config_map.ga_low_resolution_alg - except AttributeError: - self.low_resolution_alg = 'GAUSS' - - - def next_gen(self): - self.current_gen += 1 - - def get_data(self, data): - if self.current_gen >= self.low_resolution_generations: - return data - else: - gmask = self.get_gmask(data.shape) - return data * gmask - - - def get_gmask(self, shape): - if self.low_resolution_alg == 'GAUSS': - if self.sigmas[self.current_gen] < 1.0: - ut.gaussian(shape, self.sigmas[self.current_gen]) - else: - return np.ones(shape) - - - def get_metrics(self, images, errs): - metrics = [] - for i in range(len(images)): - pop_metric = {} - pop_metric['chi'] = errs[i][-1] - pop_metric['sharpness'] = sum(sum(sum(pow(abs(images[i]), 4)))) - pop_metric['summed_phase'] = sum(sum(gut.sum_phase_tight_support(images[i]))) - pop_metric['area'] = sum(sum(sum(ut.shrink_wrap(images[i], .2, .5)))) - metrics.append(pop_metric) - return metrics - - - def rank(self, images, errs): - print ('ranking generation ', self.current_gen) - rank_property = [] - - reconstructions = len(images) - metric = self.metrics[self.current_gen] - - for i in range (reconstructions): - image = images[i] - if metric == 'chi': - rank_property.append(errs[i][-1]) - elif metric == 'sharpness': - rank_property.append(sum(sum(sum(pow(abs(image), 4))))) - elif metric == 'summed_phase': - rank_property.append(sum(sum(gut.sum_phase_tight_support(image)))) - elif metric == 'area': - support = ut.shrink_wrap(image, .2, .5) - rank_property.append(sum(sum(sum(support)))) - # elif metric == 'TV': - # gradients = np.gradient(image) - # TV = np.zeros(image.shape) - # for gr in gradients: - # TV += abs(gr) - # rank_property.append(TV) - else: - # metric is 'chi' - rank_property.append(errs[i][-1]) - - # ranks keeps indexes of reconstructions from best to worst - # for most of the metric types the minimum of the metric is best, but for - # 'summed_phase' and 'area' it is oposite, so reversing the order - ranks = np.argsort(rank_property).tolist() - if metric == 'summed_phase' or metric == 'area': - ranks.reverse() - return ranks - - - def order(self, images, supports, cohs, errs, recips): - ranks = self.rank(images, errs) - ordered_images = [] - ordered_supports = [] - ordered_cohs = [] - ordered_errs = [] - ordered_recips = [] - for i in range(len(ranks)): - ordered_images.append(images[ranks[i]]) - ordered_supports.append(supports[ranks[i]]) - ordered_cohs.append(cohs[ranks[i]]) - ordered_errs.append(errs[ranks[i]]) - ordered_recips.append(recips[ranks[i]]) - - return ordered_images, ordered_supports, ordered_cohs, ordered_errs, ordered_recips - - - def breed(self, images): - """ - This function ranks the multiple reconstruction. It breeds next generation by combining the reconstructed - images, centered - For each combined image the support is calculated and coherence is set to None. - The number of bred images matches the number of reconstructions. - - Parameters - ---------- - images : list - ordered (best to worst) list of images arrays - - supports : list - list of supports arrays - - Returns - ------- - child_images : list - list of bred images - child_supports : list - list of calculated supports corresponding to child_images - child_cohs : list - list of child coherence, set to None - """ - print ('breeding generation ', (self.current_gen + 1)) - sigma = self.ga_support_sigmas[self.current_gen] - threshold = self.ga_support_thresholds[self.current_gen] - breed_mode = self.breed_modes[self.current_gen] - if breed_mode == 'none': - return images, None - reconstructions = len(images) - if self.worst_remove_no is not None: - reconstructions = reconstructions - self.worst_remove_no[self.current_gen] - - ims = images[0 : reconstructions] - dims = len(ims[0].shape) - ims_arr = np.stack(ims) - - alpha = ims[0] - alpha = gut.zero_phase(alpha, 0) - - # put the best into the bred population - child_images = [alpha] - child_supports = [ut.shrink_wrap(alpha, threshold, sigma)] - - for ind in range(1, len(ims)): - beta = ims[ind] - beta = gut.zero_phase(beta, 0) - alpha = gut.check_get_conj_reflect(beta, alpha) - alpha_s = gut.align_arrays(beta, alpha) - alpha_s = gut.zero_phase(alpha_s, 0) - ph_alpha = np.angle(alpha_s) - beta = gut.zero_phase_cc(beta, alpha_s) - ph_beta = np.angle(beta) - - if breed_mode == 'sqrt_ab': - beta = np.sqrt(abs(alpha_s) * abs(beta)) * np.exp(0.5j * (ph_beta + ph_alpha)) - - elif breed_mode == 'max_all': - amp = np.amax(abs(ims_arr), axis=0) - beta = amp * np.exp(1j * ph_beta) - - elif breed_mode == 'Dhalf': - nhalf = round(len(ims)/2) - delta = nhalf * ims[ind] - np.sum(np.stack(ims[:nhalf]), axis=0) - beta = beta + delta - - elif breed_mode == 'dsqrt': - amp = pow(abs(beta), .5) - beta = amp * np.exp(1j * ph_beta) - - elif breed_mode == 'pixel_switch': - cond = np.random.random_sample(beta.shape) - beta = np.where((cond > 0.5), beta, alpha_s) - - elif breed_mode == 'b_pa': - beta = abs(beta) * np.exp(1j * (ph_alpha)) - - elif breed_mode == '2ab_a_b': - beta = 2*(beta * alpha_s) / (beta + alpha_s) - - elif breed_mode == '2a_b_pa': - beta = (2*abs(alpha_s)-abs(beta)) * np.exp(1j *ph_alpha) - - elif breed_mode == 'sqrt_ab_pa': - beta = np.sqrt(abs(alpha_s) * abs(beta)) * np.exp(1j * ph_alpha) - - elif breed_mode == 'sqrt_ab_pa_recip': - temp1 = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(beta))) - temp2 = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(alpha_s))) - temp = np.sqrt(abs(temp1) * abs(temp2)) * np.exp(1j * np.angle(temp2)) - beta = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(temp))) - - elif breed_mode == 'sqrt_ab_recip': - temp1 = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(beta))) - temp2 = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(alpha_s))) - temp = np.sqrt(abs(temp1) *abs(temp2)) *np.exp(.5j *np.angle(temp1)) *np.exp(.5j *np.angle(temp2)) - beta = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(temp))) - - elif breed_mode == 'max_ab': - beta = np.maximum(abs(alpha_s), abs(beta)) * np.exp(.5j *(ph_beta + ph_alpha)) - - elif breed_mode == 'max_ab_pa': - beta = np.maximum(abs(alpha_s), abs(beta)) * np.exp(1j *ph_alpha) - - elif breed_mode == 'min_ab_pa': - beta = np.minimum(abs(alpha_s), abs(beta)) * np.exp(1j *ph_alpha) - - elif breed_mode == 'avg_ab': - beta = 0.5 *(alpha_s + beta) - - elif breed_mode == 'avg_ab_pa': - beta = 0.5 *(abs(alpha_s) + abs(beta)) * np.exp(1j *(ph_alpha)) - else: - # The following modes include gamma; gamma is in index 1 - # gamma = zero_phase(gamma, val); - # ph_gamma = atan2(imag(gamma), real(gamma)); - - gamma = ims[1] - gamma = gut.zero_phase(gamma, 0) - if ind > 1: - gamma = gut.check_get_conj_reflect(beta, gamma) - gamma_s = gut.align_arrays(abs(beta), abs(gamma)) - gamma_s = gut.zero_phase(gamma_s, 0) - ph_gamma = np.angle(gamma_s) - else: - gamma_s = gamma - ph_gamma = np.arctan2(gamma.imag, gamma.real) - - if breed_mode == 'sqrt_abg': - beta = pow((abs(alpha_s) *abs(beta) *abs(gamma_s)), (1/3)) *np.exp(1j *(ph_beta+ph_alpha+ph_gamma)/3.0) - - elif breed_mode == 'sqrt_abg_pa': - beta = pow((abs(alpha_s) *abs(beta) *abs(gamma_s)), (1/3)) *np.exp(1j *ph_alpha) - - elif breed_mode == 'max_abg': - beta = np.maximum(np.maximum(abs(alpha_s), abs(beta)), abs(gamma_s)) *np.exp(1j *(ph_beta+ph_alpha+ph_gamma)/3.0) - - elif breed_mode == 'max_abg_pa': - beta = np.maximum(np.maximum(abs(alpha_s), abs(beta)),abs(gamma_s)) *np.exp(1j *ph_alpha) - - elif breed_mode == 'avg_abg': - beta = (1/3)*(alpha_s+beta+gamma_s) - - elif breed_mode == 'avg_abg_pa': - beta = (1/3)*(abs(alpha_s)+abs(beta)+abs(gamma_s)) *np.exp(1j *ph_alpha) - - elif breed_mode == 'avg_sqrt': - amp=( pow(abs(beta), 1/3)+pow(abs(alpha_s), 1/3)+pow(abs(gamma_s), 1/3))/3 - beta = pow(amp, 3) * np.exp(1j *ph_beta) - - child_images.append(beta) - child_supports.append(ut.shrink_wrap(beta, threshold, sigma)) - - return child_images, child_supports - - -def reconstruction(proc, conf_file, datafile, dir, devices): - """ - This function controls reconstruction utilizing genetic algorithm. - - Parameters - ---------- - generation : int - number of generations - - proc : str - processor to run on (cpu, opencl, or cuda) - - data : numpy array - initial data - - conf_info : str - experiment directory or configuration file. If it is directory, the "conf/config_rec" will be - appended to determine configuration file - - conf_map : dict - a dictionary from parsed configuration file - - Returns - ------- - nothing - """ - data = ut.read_tif(datafile) - print ('data shape', data.shape) - #data = np.swapaxes(data, 0, 2) - #data = np.swapaxes(data, 0, 1) - - try: - config_map = ut.read_config(conf_file) - if config_map is None: - print("can't read configuration file " + conf_file) - return - except: - print('Cannot parse configuration file ' + conf_file + ' , check for matching parenthesis and quotations') - return - try: - reconstructions = config_map.reconstructions - except: - reconstructions = 1 - - gen_obj = Generation(config_map) - - try: - save_dir = config_map.save_dir - except AttributeError: - filename = conf_file.split('/')[-1] - save_dir = os.path.join(dir, filename.replace('config_rec', 'results')) - - try: - generations = config_map.generations - except: - print ('generations not configured') - return - - # init starting values - # if multiple reconstructions configured (typical for genetic algorithm), use "reconstruction_multi" module - if reconstructions > 1: - images = [] - supports = [] - cohs = [] - for _ in range(reconstructions): - images.append(None) - supports.append(None) - cohs.append(None) - rec = multi - # load parls configuration - for g in range(generations): - gen_data = gen_obj.get_data(data) - images, supports, cohs, errs, recips, flows, iter_arrs = rec.multi_rec(proc, gen_data, conf_file, config_map, devices, images, supports, cohs) - images, supports, cohs, errs, recips = gen_obj.order(images, supports, cohs, errs, recips) - metrics = gen_obj.get_metrics(images, errs) - # save the generation results - gen_save_dir = os.path.join(save_dir, 'g_' + str(g)) - ut.save_multiple_results(len(images), images, supports, cohs, errs, recips, flows, iter_arrs, gen_save_dir, metrics) - print ('g, generations, images no', g, generations, len(images)) - if g < generations - 1 and len(images) > 1: - images, shrink_supports = gen_obj.breed(images) - if shrink_supports is not None: - supports = shrink_supports - gen_obj.next_gen() - else: - image = None - support = None - coh = None - rec = single - - for g in range(generations): - print ('gen', g) - gen_data = gen_obj.get_data(data) - image, support, coh, err, recip, flows, iter_arrs = rec.single_rec(proc, gen_data, conf_file, config_map, devices[0], image, support, coh) - if image is None: - return - # save the generation results - gen_save_dir = os.path.join(save_dir, 'g_' + str(g)) - print ('gen save dir', gen_save_dir) - ut.save_results(image, support, coh, err, recip, flows, iter_arrs, gen_save_dir) - gen_obj.next_gen() - - print ('done gen') - - From fe3cf9ead0359ff0b48cd04a5e40331afc47f960 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 16:22:10 -0600 Subject: [PATCH 288/336] Delete __init__.py --- build/lib.linux-x86_64-3.7/reccdi/src_py/controller/__init__.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/controller/__init__.py diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/__init__.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/controller/__init__.py deleted file mode 100644 index e69de29..0000000 From 525caee06190c756608d6c1af4652aa2745c0723 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 16:22:30 -0600 Subject: [PATCH 289/336] Delete bridge_cpu.pyx --- .../reccdi/src_py/cyth/bridge_cpu.pyx | 72 ------------------- 1 file changed, 72 deletions(-) delete mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_cpu.pyx diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_cpu.pyx b/build/lib.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_cpu.pyx deleted file mode 100644 index 615cc26..0000000 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_cpu.pyx +++ /dev/null @@ -1,72 +0,0 @@ -# ######################################################################### -# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # -# # -# See LICENSE file. # -# ######################################################################### - - -# distutils: language = c++ -# distutils: include_dirs = ['reccdi/include', '/home/beams/CXDUSER/CDI/arrayfire/include', '/home/beams/CXDUSER/CDI/libconfig/include',] -# distutils: sources = ['reccdi/src_cpp/bridge.cpp', 'reccdi/src_cpp/manager.cpp', 'reccdi/src_cpp/parameters.cpp', 'reccdi/src_cpp/pcdi.cpp', 'reccdi/src_cpp/resolution.cpp', 'reccdi/src_cpp/state.cpp', 'reccdi/src_cpp/support.cpp', 'reccdi/src_cpp/util.cpp', 'reccdi/src_cpp/worker.cpp'] -# distutils: libraries = ['afcpu', 'config++',] -# distutils: library_dirs = ['/home/beams/CXDUSER/CDI/arrayfire/lib64', '/home/beams/CXDUSER/CDI/libconfig/lib',] - -from libcpp.vector cimport vector -from libcpp.string cimport string - - -cdef extern from "../include/bridge.hpp": - cdef cppclass Bridge: - Bridge() except + - void StartCalcWithGuess(int, vector[float], vector[float], vector[float], vector[int], string) - void StartCalcWithGuessSupport(int, vector[float], vector[float], vector[float], vector[int], vector[int], string) - void StartCalcWithGuessSupportCoh(int, vector[float], vector[float], vector[float], vector[int], vector[int], vector[float], vector[int], string) - void StartCalc(int, vector[float], vector[int], string) - vector[double] GetImageR() - vector[double] GetImageI() - vector[double] GetErrors() - vector[float] GetSupportV() - vector[double] GetCoherenceV() - vector[double] GetReciprocalR() - vector[double] GetReciprocalI() - vector[int] GetFlowV() - vector[int] GetIterFlowV() - void Cleanup() - - -cdef class PyBridge: - cdef Bridge *thisptr - def __cinit__(self): - self.thisptr = new Bridge() - def __dealloc__(self): - del self.thisptr - def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): - self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) - def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): - self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) - def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): - self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) - def start_calc(self, device, data_r, dims, config): - self.thisptr.StartCalc(device, data_r, dims, config.encode()) - def get_image_r(self): - return self.thisptr.GetImageR() - def get_image_i(self): - return self.thisptr.GetImageI() - def get_errors(self): - return self.thisptr.GetErrors() - def get_support(self): - return self.thisptr.GetSupportV() - def get_coherence(self): - return self.thisptr.GetCoherenceV() - def get_reciprocal_r(self): - return self.thisptr.GetReciprocalR() - def get_reciprocal_i(self): - return self.thisptr.GetReciprocalI() - def get_flow(self): - return self.thisptr.GetFlowV() - def get_iter_flow(self): - return self.thisptr.GetIterFlowV() - def cleanup(self): - self.thisptr.Cleanup() - - From e48a4da6022f063be0e9e02362970ac6fb2945ad Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 16:22:53 -0600 Subject: [PATCH 290/336] Delete parse_ver.py --- .../reccdi/src_py/utilities/parse_ver.py | 861 ------------------ 1 file changed, 861 deletions(-) delete mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/parse_ver.py diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/parse_ver.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/parse_ver.py deleted file mode 100644 index bb030a7..0000000 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/parse_ver.py +++ /dev/null @@ -1,861 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -# ######################################################################### -# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # -# # -# See LICENSE file. # -# ######################################################################### - - -""" -verification of configuration files -""" - -import reccdi.src_py.utilities.utils as ut -import os - - -def ver_list_int(param_name, param_value): - if not issubclass(type(param_value), list): - print (param_name + ' is not a list') - return False - for e in param_value: - if type(e) != int: - print (param_name + ' should be list of integer values') - return False - return True - - -def ver_list_float(param_name, param_value): - if not issubclass(type(param_value), list): - print (param_name + ' is not a list') - return False - for e in param_value: - if type(e) != float: - print (param_name + ' should be list of float values') - return False - return True - - -def ver_config(fname): - - """ - This function verifies config file - - Parameters - ---------- - conf_info : str - configuration file - - Returns - ------- - True if configuration is correct, False otherwise - """ - if not os.path.isfile(fname): - print ('no configuration file ' + fname + ' found') - return False - - try: - config_map = ut.read_config(fname) - if config_map is None: - print ("can't read configuration file") - return False - except: - print ('Cannot parse ' + fname + ' configuration file. Check paranthesis and quotations.') - return False - - try: - working_dir = config_map.working_dir - if type(working_dir) != str: - print('working_dir parameter should be string') - return False - except AttributeError: - pass - except: - print ('working_dir parameter parsing error') - return False - - try: - experiment_id = config_map.experiment_id - if type(experiment_id) != str: - print('experiment_id parameter should be string') - return False - except AttributeError: - pass - except: - print ('experiment_id parameter parsing error') - return False - - try: - scan = config_map.scan - if type(scan) != str: - print('scan parameter should be string') - return False - except AttributeError: - pass - except: - print ('scan parameter parsing error') - return False - - return True - - -def ver_config_rec(fname): - - """ - This function verifies config_rec file - - Parameters - ---------- - conf_info : str - configuration file - - Returns - ------- - True if configuration is correct, False otherwise - """ - if not os.path.isfile(fname): - print ('no configuration file ' + fname + ' found') - return False - - try: - config_map = ut.read_config(fname) - if config_map is None: - print ("can't read configuration file") - return False - except: - print ('Cannot parse ' + fname + ' configuration file. Check paranthesis and quotations.') - return False - - try: - data_dir = config_map.data_dir - if type(data_dir) != str: - print('data_dir parameter should be string') - return False - except AttributeError: - pass - except: - print ('data_dir parameter parsing error') - return False - - try: - save_dir = config_map.save_dir - if type(save_dir) != str: - print('save_dir parameter should be string') - return False - except AttributeError: - pass - except: - print ('save_dir parameter parsing error') - return False - - try: - cont = config_map.cont - if type(cont) != bool: - print ('cont parameter should be true or false') - return False - try: - continue_dir = config_map.continue_dir - if type(continue_dir) != str: - print('continue_dir parameter should be string') - return False - except AttributeError: - pass - except: - print('continue_dir parameter parsing error') - return False - except AttributeError: - pass - except: - print ('cont parameter parsing error') - return False - - try: - reconstructions = config_map.reconstructions - if type(reconstructions) != int: - print('reconstructions parameter should be int') - return False - except AttributeError: - pass - except: - print ('reconstructions parameter parsing error') - return False - - try: - device = config_map.device - if not ver_list_int('device', device): - return False - except AttributeError: - pass - except: - print ('device parameter parsing error') - return False - - try: - garbage_trigger = config_map.garbage_trigger - if not ver_list_int('garbage_trigger', garbage_trigger): - return False - except AttributeError: - pass - except: - print ('garbage_trigger parameter parsing error') - return False - - try: - algorithm_sequence = config_map.algorithm_sequence - if not issubclass(type(algorithm_sequence), list): - print ('algorithm_sequence should be a list') - return False - for s in algorithm_sequence: - for i in range(len(s)): - # the first element in each sub-list is the repeat factor and should be int - if i== 0 and type(s[i]) != int: - print ('algorithm_sequence configuration error, the repeat factor should be int') - return False - if i > 0: - if not issubclass(type(s[i]), list): - print ('algorithm_sequence configuration error, the sequence element should be a list') - return False - algorithm = s[i][0] - if type(algorithm) != str: - print ('algorithm_sequence configuration error, algorithm should be str') - return False - algorithm_options = ["ER", "HIO"] - if algorithm not in algorithm_options: - print ('algorithm_sequence configuration error, algorithm should be "ER" or "HIO"') - return False - algorithm_repeat = s[i][1] - if type(algorithm_repeat) != int: - print ('algorithm_sequence configuration error, algorithm repeat should be int') - return False - except AttributeError: - print ('missing mandatory algorithm_sequence parameter') - return False - except: - print ('algorithm_sequence parameter parsing error') - return False - - try: - beta = config_map.beta - if type(beta) != float: - print('beta parameter should be float') - return False - except AttributeError: - pass - except: - print ('beta parameter parsing error') - return False - - try: - generations = config_map.generations - if type(generations) != int: - print('generations parameter should be int') - return False - try: - ga_metrics = config_map.ga_metrics - if not issubclass(type(ga_metrics), list): - print (ga_metrics + ' is not a list') - return False - metrics_options = ['chi', 'sharpness', 'summed_phase', 'area'] - for metric in ga_metrics: - if metric not in metrics_options: - print ("ga_metrics list can include only following strings: 'chi', 'sharpness', 'summed_phase', 'area'") - except AttributeError: - pass - except: - print('ga_metrics parameter parsing error') - return False - - try: - ga_breed_modes = config_map.ga_breed_modes - if not issubclass(type(ga_breed_modes), list): - print (ga_breed_modes + ' is not a list') - return False - breed_options = ['sqrt_ab', 'max_all', 'Dhalf', 'Dhalf-best', 'dsqrt', 'pixel_switch',\ - 'b_pa', '2ab_a_b', '2a-b_pa', 'sqrt_ab_pa', 'sqrt_ab_pa_recip', 'sqrt_ab_recip',\ - 'max_ab', 'max_ab_pa', 'min_ab_pa', 'avg_ab', 'avg_ab_pa', 'sqrt_abg', - 'sqrt_abg_pa', 'max_abg','max_abg_pa', 'avg_abg', 'avg_abg_pa', 'avg_sqrt'] - for breed in ga_breed_modes: - if breed not in breed_options: - print ("ga_breed_modes list can include only following strings: 'sqrt_ab', 'max_all',\ - 'Dhalf', 'Dhalf-best', 'dsqrt', 'pixel_switch',\ - 'b_pa', '2ab_a_b', '2a-b_pa', 'sqrt_ab_pa', 'sqrt_ab_pa_recip', 'sqrt_ab_recip',\ - 'max_ab', 'max_ab_pa', 'min_ab_pa', 'avg_ab', 'avg_ab_pa', 'sqrt_abg',\ - 'sqrt_abg_pa', 'max_abg','max_abg_pa', 'avg_abg', 'avg_abg_pa', 'avg_sqrt'") - except AttributeError: - pass - except: - print('ga_breed_modes parameter parsing error') - return False - - try: - ga_cullings = config_map.ga_cullings - if not ver_list_int('ga_cullings', ga_cullings): - return False - except AttributeError: - pass - except: - print('ga_cullings parameter parsing error') - return False - - try: - ga_support_thresholds = config_map.ga_support_thresholds - if not ver_list_float('ga_support_thresholds', ga_support_thresholds): - return False - except AttributeError: - pass - except: - print('ga_support_thresholds parameter parsing error') - return False - - try: - ga_support_sigmas = config_map.ga_support_sigmas - if not ver_list_float('ga_support_sigmas', ga_support_sigmas): - return False - except AttributeError: - pass - except: - print('ga_support_sigmas parameter parsing error') - return False - - try: - ga_low_resolution_sigmas = config_map.ga_low_resolution_sigmas - if not ver_list_float('ga_low_resolution_sigmas', ga_low_resolution_sigmas): - return False - except AttributeError: - pass - except: - print('ga_low_resolution_sigmas parameter parsing error') - return False - except AttributeError: - pass - except: - print ('generations parameter parsing error') - return False - - - try: - twin_trigger = config_map.twin_trigger - if not ver_list_int('twin_trigger', twin_trigger): - return False - else: - try: - twin_halves = config_map.twin_halves - if not ver_list_int('twin_halves', twin_halves): - return False - except AttributeError: - pass - except: - print('twin_halves parameter parsing error') - return False - - except AttributeError: - pass - - try: - if not ver_list_int('amp_support_trigger', config_map.amp_support_trigger): - return False - else: - try: - support_type = config_map.support_type - if type(support_type) != str: - print ('support_type parameter should be string') - return False - if support_type != "GAUSS": - print ('support_type parameter can be configured "GAUSS"') - return False - except AttributeError: - pass - except: - print('support_type parameter parsing error') - return False - - try: - support_threshold = config_map.support_threshold - if type(support_threshold) != float: - print('support_threshold should be float') - return False - except AttributeError: - pass - except: - print('support_threshold parameter parsing error') - return False - - try: - support_sigma = config_map.support_sigma - if type(support_sigma) != float: - print('support_sigma should be float') - return False - except AttributeError: - pass - except: - print('support_sigma parameter parsing error') - return False - - try: - support_area = config_map.support_area - if not issubclass(type(support_area), list): - print('support_area should be list') - return False - for e in support_area: - if type(e) != int and type(e) !=float: - print('support_area should be a list of int or float') - return False - except AttributeError: - pass - except: - print('support_area parameter parsing error') - return False - - except AttributeError: - pass - - try: - if not ver_list_int('phase_support_trigger', config_map.phase_support_trigger): - return False - else: - try: - phase_min = config_map.phase_min - if type(phase_min) != float: - print('phase_min should be float') - return False - except AttributeError: - pass - except: - print('phase_min parameter parsing error') - return False - - try: - phase_max = config_map.phase_max - if type(phase_max) != float: - print('phase_max should be float') - return False - except AttributeError: - pass - except: - print('phase_max parameter parsing error') - return False - - except AttributeError: - pass - - try: - if not ver_list_int('pcdi_trigger', config_map.pcdi_trigger): - return False - else: - try: - partial_coherence_type = config_map.partial_coherence_type - if type(partial_coherence_type) != str: - print ('partial_coherence_type parameter should be string') - return False - if partial_coherence_type != "LUCY": - print ('partial_coherence_type parameter can be configured "LUCY"') - return False - except AttributeError: - pass - except: - print('partial_coherence_type parameter parsing error') - return False - - try: - partial_coherence_iteration_num = config_map.partial_coherence_iteration_num - if type(partial_coherence_iteration_num) != int: - print('partial_coherence_iteration_num should be int') - return False - except AttributeError: - pass - except: - print('partial_coherence_iteration_num parameter parsing error') - return False - - try: - partial_coherence_normalize = config_map.partial_coherence_normalize - if type(partial_coherence_normalize) != bool: - print ('partial_coherence_normalize parameter should be true or false') - return False - except AttributeError: - pass - except: - print('partial_coherence_normalize parameter parsing error') - return False - - try: - partial_coherence_roi = config_map.partial_coherence_roi - if not ver_list_int('partial_coherence_roi', partial_coherence_roi): - return False - except AttributeError: - pass - except: - print("'partial_coherence_roi' parameter parsing error") - return False - - except AttributeError: - pass - - try: - if not ver_list_int('resolution_trigger', config_map.resolution_trigger): - return False - else: - try: - iter_res_sigma_range = config_map.iter_res_sigma_range - if not ver_list_float('iter_res_sigma_range', iter_res_sigma_range): - return False - except AttributeError: - pass - except: - print("'iter_res_sigma_range' parameter parsing error") - return False - - try: - iter_res_det_range = config_map.iter_res_det_range - if not ver_list_float('iter_res_det_range', iter_res_det_range): - return False - except AttributeError: - pass - except: - print("'iter_res_det_range' parameter parsing error") - return False - - except AttributeError: - pass - - try: - if not ver_list_int('average_trigger', config_map.average_trigger): - return False - except AttributeError: - pass - - try: - if not ver_list_int('progress_trigger', config_map.progress_trigger): - return False - except AttributeError: - pass - - return True - - -def ver_config_data(fname): - - """ - This function verifies config_data file - - Parameters - ---------- - conf_info : str - configuration file - - Returns - ------- - True if configuration is correct, False otherwise - """ - if not os.path.isfile(fname): - print ('no configuration file ' + fname + ' found') - return False - - try: - config_map = ut.read_config(fname) - if config_map is None: - print ("can't read configuration file") - return False - except: - print ('Cannot parse ' + fname + ' configuration file. Check paranthesis and quotations.') - return False - - try: - data_dir = config_map.data_dir - if type(data_dir) != str: - print('data_dir parameter should be string') - return False - except AttributeError: - pass - except: - print ('data_dir parameter parsing error') - return False - - try: - if not ver_list_int('pad_crop', config_map.adjust_dimensions): - return False - except AttributeError: - pass - try: - if not ver_list_int('center_shift', config_map.center_shift): - return False - except AttributeError: - pass - try: - if not ver_list_int('binning', config_map.binning): - return False - except AttributeError: - pass - - try: - amp_threshold = config_map.amp_threshold - if type(amp_threshold) != float and type(amp_threshold) != int: - print('amp_threshold should be float') - return False - except AttributeError: - pass - except: - print('amp_threshold parameter parsing error') - return False - - try: - aliens = config_map.aliens - if not issubclass(type(aliens), list): - print('aliens should be a list of aliens(lists)') - return False - for a in aliens: - if not issubclass(type(a), list): - print ('aliens should be a list of aliens(lists)') - return False - if not ver_list_int('aliens', a): - return False - if (len(a) < 6): - print('each alien is defined by list of six int') - except AttributeError: - pass - except: - print('amp_threshold parameter parsing error') - return False - - return True - - -def ver_config_prep(fname): - - """ - This function verifies config_prep file - - Parameters - ---------- - conf_info : str - configuration file - - Returns - ------- - True if configuration is correct, False otherwise - """ - if not os.path.isfile(fname): - print ('no configuration file ' + fname + ' found') - return False - - try: - config_map = ut.read_config(fname) - if config_map is None: - print ("can't read configuration file") - return False - except: - print ('Cannot parse ' + fname + ' configuration file. Check paranthesis and quotations.') - return False - - try: - data_dir = config_map.data_dir - if type(data_dir) != str: - print('data_dir parameter should be string') - return False - except AttributeError: - pass - except: - print ('data_dir parameter parsing error') - return False - - try: - specfile = config_map.specfile - if type(specfile) != str: - print('specfile parameter should be string') - return False - except AttributeError: - pass - except: - print ('specfile parameter parsing error') - return False - - try: - darkfile = config_map.darkfile - if type(darkfile) != str: - print('darkfile parameter should be string') - return False - except AttributeError: - pass - except: - print ('darkfile parameter parsing error') - return False - - try: - whitefile = config_map.whitefile - if type(whitefile) != str: - print('whitefile parameter should be string') - return False - except AttributeError: - pass - except: - print ('whitefile parameter parsing error') - return False - - try: - if not ver_list_int('exclude_scans', config_map.exclude_scans): - return False - except AttributeError: - pass - - try: - min_files = config_map.min_files - if type(min_files) != int: - print('min_files should be int') - return False - except AttributeError: - pass - except: - print('min_files parameter parsing error') - return False - - try: - det_quad = config_map.det_quad - quad_options = [0,1,2,3,4] - if det_quad not in quad_options: - print('det_quad should be one of the following: 0, 1, 2, 3, 4') - return False - except AttributeError: - pass - except: - print('det_quad parameter parsing error') - return False - - try: - separate_scans = config_map.separate_scans - if type(separate_scans) != bool: - print('separate_scans parameter should be true or false') - return False - except AttributeError: - pass - except: - print('separate_scans parameter parsing error') - return False - - return True - - -def ver_config_disp(fname): - - """ - This function verifies config_disp file - - Parameters - ---------- - conf_info : str - configuration file - - Returns - ------- - True if configuration is correct, False otherwise - """ - if not os.path.isfile(fname): - print ('no configuration file ' + fname + ' found') - return False - - try: - config_map = ut.read_config(fname) - if config_map is None: - print ("can't read configuration file") - return False - except: - print ('Cannot parse ' + fname + ' configuration file. Check paranthesis and quotations.') - return False - - try: - crop = config_map.crop - if not issubclass(type(crop), list): - print('crop should be list') - return False - for e in crop: - if type(e) != int and type(e) != float: - print('crop should be a list of int or float') - return False - except AttributeError: - pass - except: - print('crop parameter parsing error') - return False - - try: - specfile = config_map.specfile - if type(specfile) != str: - print('specfile parameter should be string') - return False - except AttributeError: - pass - except: - print ('specfile parameter parsing error') - return False - - try: - energy = config_map.energy - if type(energy) != float: - print('energy should be float') - return False - except AttributeError: - pass - except: - print('energy parameter parsing error') - return False - - try: - delta = config_map.delta - if type(delta) != float: - print('delta should be float') - return False - except AttributeError: - pass - except: - print('delta parameter parsing error') - return False - - try: - gamma = config_map.gamma - if type(gamma) != float: - print('gamma should be float') - return False - except AttributeError: - pass - except: - print('gamma parameter parsing error') - return False - - try: - arm = config_map.arm - if type(arm) != float: - print('arm should be float') - return False - except AttributeError: - pass - except: - print('arm parameter parsing error') - return False - - try: - dth = config_map.dth - if type(dth) != float: - print('dth should be float') - return False - except AttributeError: - pass - except: - print('dth parameter parsing error') - return False - - try: - pixel = config_map.pixel - if not issubclass(type(pixel), list): - print('pixel should be a list') - return False - if type(pixel[0]) != float or type(pixel[1]) != float: - print('pixel values should be float') - return False - except AttributeError: - pass - except: - print('pixel parameter parsing error') - return False - - return True From c321934a31526d83cb73ebf84d3585b08781d96f Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 16:23:18 -0600 Subject: [PATCH 291/336] Delete run_data.py --- .../reccdi/src_py/run_scripts/run_data.py | 29 ------------------- 1 file changed, 29 deletions(-) delete mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/run_data.py diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/run_data.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/run_data.py deleted file mode 100644 index 87064dd..0000000 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/run_data.py +++ /dev/null @@ -1,29 +0,0 @@ -import reccdi.src_py.controller.data as dt -import sys -import argparse -import os - - -def data(experiment_dir): - print ('formating data') - prep_file = os.path.join(experiment_dir, 'prep', 'prep_data.tif') - if os.path.isfile(prep_file): - dt.prep(prep_file, experiment_dir) - else: - dirs = os.listdir(experiment_dir) - for dir in dirs: - if dir.startswith('scan'): - scan_dir = os.path.join(experiment_dir, dir) - prep_file = os.path.join(scan_dir, 'prep', 'prep_data.tif') - dt.prep(prep_file, scan_dir) - - -def main(arg): - parser = argparse.ArgumentParser() - parser.add_argument("experiment_dir", help="experiment directory") - args = parser.parse_args() - data(args.experiment_dir) - - -if __name__ == "__main__": - main(sys.argv[1:]) From 93f88d2a338b0c52b47cf4bd320d7c6b0b73d5dc Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 16:23:46 -0600 Subject: [PATCH 292/336] Delete everything.py --- .../reccdi/src_py/run_scripts/everything.py | 29 ------------------- 1 file changed, 29 deletions(-) delete mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/everything.py diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/everything.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/everything.py deleted file mode 100644 index acae99e..0000000 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/everything.py +++ /dev/null @@ -1,29 +0,0 @@ -import sys -import argparse -import reccdi.src_py.run_scripts.run_data as run_dt -import reccdi.src_py.run_scripts.run_rec as run_rc -import reccdi.src_py.run_scripts.run_disp as run_dp -import reccdi.src_py.run_scripts.run_34id_prepare as prep - - -def main(arg): - parser = argparse.ArgumentParser() - parser.add_argument("dev", help="processor to run on (cpu, opencl, cuda)") - parser.add_argument("prefix", help="prefix id") - parser.add_argument("scans", help="scans to preocess") - parser.add_argument("conf_dir", help="directory with configuration files") - args = parser.parse_args() - dev = args.dev - prefix = args.prefix - scans = args.scans - conf_dir = args.conf_dir - - experiment_dir = prep.parse_and_prepare(prefix, scans, conf_dir) - run_dt.data(experiment_dir) - run_rc.manage_reconstruction(dev, experiment_dir) - run_dp.to_vtk(experiment_dir) - - -if __name__ == "__main__": - main(sys.argv[1:]) - From 9f7516dbfa8d570756f9806ad322e2dd24e4de58 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 16:24:32 -0600 Subject: [PATCH 293/336] Delete __init__.py --- build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/__init__.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/__init__.py diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/__init__.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/run_scripts/__init__.py deleted file mode 100644 index e69de29..0000000 From 0ceb61b0dcbda1469ddc8f16fc137641bd859047 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 16:25:00 -0600 Subject: [PATCH 294/336] Delete __init__.py --- build/lib.linux-x86_64-3.7/reccdi/src_py/cyth/__init__.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/cyth/__init__.py diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/cyth/__init__.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/cyth/__init__.py deleted file mode 100644 index e69de29..0000000 From 56c2842ff3384170b7d966f657cfee4c8441f0ab Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 16:32:13 -0600 Subject: [PATCH 295/336] Delete __init__.py --- build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/__init__.py | 1 - 1 file changed, 1 deletion(-) delete mode 100644 build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/__init__.py diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/__init__.py b/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/__init__.py deleted file mode 100644 index 7f0dc87..0000000 --- a/build/lib.linux-x86_64-3.7/reccdi/src_py/utilities/__init__.py +++ /dev/null @@ -1 +0,0 @@ -__author__ = 'bfrosik' From 059ded4e8b5b0756bab99183db1b070981a30869 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 16:47:11 -0600 Subject: [PATCH 296/336] Delete bridge_opencl.cpp --- reccdi/src_py/cyth/bridge_opencl.cpp | 5916 -------------------------- 1 file changed, 5916 deletions(-) delete mode 100644 reccdi/src_py/cyth/bridge_opencl.cpp diff --git a/reccdi/src_py/cyth/bridge_opencl.cpp b/reccdi/src_py/cyth/bridge_opencl.cpp deleted file mode 100644 index c447e7c..0000000 --- a/reccdi/src_py/cyth/bridge_opencl.cpp +++ /dev/null @@ -1,5916 +0,0 @@ -/* Generated by Cython 0.29.13 */ - -/* BEGIN: Cython Metadata -{ - "distutils": { - "depends": [ - "reccdi/include/bridge.hpp" - ], - "include_dirs": [ - "reccdi/include", - "/home/beams/CXDUSER/CDI/arrayfire/include", - "/home/beams/CXDUSER/CDI/libconfig/include" - ], - "language": "c++", - "libraries": [ - "afopencl", - "config++" - ], - "library_dirs": [ - "/home/beams/CXDUSER/CDI/arrayfire/lib64", - "/home/beams/CXDUSER/CDI/libconfig/lib" - ], - "name": "reccdi.src_py.cyth.bridge_opencl", - "sources": [ - "reccdi/src_py/cyth/bridge_opencl.pyx", - "reccdi/src_cpp/bridge.cpp", - "reccdi/src_cpp/manager.cpp", - "reccdi/src_cpp/parameters.cpp", - "reccdi/src_cpp/pcdi.cpp", - "reccdi/src_cpp/resolution.cpp", - "reccdi/src_cpp/state.cpp", - "reccdi/src_cpp/support.cpp", - "reccdi/src_cpp/util.cpp", - "reccdi/src_cpp/worker.cpp" - ] - }, - "module_name": "reccdi.src_py.cyth.bridge_opencl" -} -END: Cython Metadata */ - -#define PY_SSIZE_T_CLEAN -#include "Python.h" -#ifndef Py_PYTHON_H - #error Python headers needed to compile C extensions, please install development version of Python. -#elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000) - #error Cython requires Python 2.6+ or Python 3.3+. -#else -#define CYTHON_ABI "0_29_13" -#define CYTHON_HEX_VERSION 0x001D0DF0 -#define CYTHON_FUTURE_DIVISION 0 -#include -#ifndef offsetof - #define offsetof(type, member) ( (size_t) & ((type*)0) -> member ) -#endif -#if !defined(WIN32) && !defined(MS_WINDOWS) - #ifndef __stdcall - #define __stdcall - #endif - #ifndef __cdecl - #define __cdecl - #endif - #ifndef __fastcall - #define __fastcall - #endif -#endif -#ifndef DL_IMPORT - #define DL_IMPORT(t) t -#endif -#ifndef DL_EXPORT - #define DL_EXPORT(t) t -#endif -#define __PYX_COMMA , -#ifndef HAVE_LONG_LONG - #if PY_VERSION_HEX >= 0x02070000 - #define HAVE_LONG_LONG - #endif -#endif -#ifndef PY_LONG_LONG - #define PY_LONG_LONG LONG_LONG -#endif -#ifndef Py_HUGE_VAL - #define Py_HUGE_VAL HUGE_VAL -#endif -#ifdef PYPY_VERSION - #define CYTHON_COMPILING_IN_PYPY 1 - #define CYTHON_COMPILING_IN_PYSTON 0 - #define CYTHON_COMPILING_IN_CPYTHON 0 - #undef CYTHON_USE_TYPE_SLOTS - #define CYTHON_USE_TYPE_SLOTS 0 - #undef CYTHON_USE_PYTYPE_LOOKUP - #define CYTHON_USE_PYTYPE_LOOKUP 0 - #if PY_VERSION_HEX < 0x03050000 - #undef CYTHON_USE_ASYNC_SLOTS - #define CYTHON_USE_ASYNC_SLOTS 0 - #elif !defined(CYTHON_USE_ASYNC_SLOTS) - #define CYTHON_USE_ASYNC_SLOTS 1 - #endif - #undef CYTHON_USE_PYLIST_INTERNALS - #define CYTHON_USE_PYLIST_INTERNALS 0 - #undef CYTHON_USE_UNICODE_INTERNALS - #define CYTHON_USE_UNICODE_INTERNALS 0 - #undef CYTHON_USE_UNICODE_WRITER - #define CYTHON_USE_UNICODE_WRITER 0 - #undef CYTHON_USE_PYLONG_INTERNALS - #define CYTHON_USE_PYLONG_INTERNALS 0 - #undef CYTHON_AVOID_BORROWED_REFS - #define CYTHON_AVOID_BORROWED_REFS 1 - #undef CYTHON_ASSUME_SAFE_MACROS - #define CYTHON_ASSUME_SAFE_MACROS 0 - #undef CYTHON_UNPACK_METHODS - #define CYTHON_UNPACK_METHODS 0 - #undef CYTHON_FAST_THREAD_STATE - #define CYTHON_FAST_THREAD_STATE 0 - #undef CYTHON_FAST_PYCALL - #define CYTHON_FAST_PYCALL 0 - #undef CYTHON_PEP489_MULTI_PHASE_INIT - #define CYTHON_PEP489_MULTI_PHASE_INIT 0 - #undef CYTHON_USE_TP_FINALIZE - #define CYTHON_USE_TP_FINALIZE 0 - #undef CYTHON_USE_DICT_VERSIONS - #define CYTHON_USE_DICT_VERSIONS 0 - #undef CYTHON_USE_EXC_INFO_STACK - #define CYTHON_USE_EXC_INFO_STACK 0 -#elif defined(PYSTON_VERSION) - #define CYTHON_COMPILING_IN_PYPY 0 - #define CYTHON_COMPILING_IN_PYSTON 1 - #define CYTHON_COMPILING_IN_CPYTHON 0 - #ifndef CYTHON_USE_TYPE_SLOTS - #define CYTHON_USE_TYPE_SLOTS 1 - #endif - #undef CYTHON_USE_PYTYPE_LOOKUP - #define CYTHON_USE_PYTYPE_LOOKUP 0 - #undef CYTHON_USE_ASYNC_SLOTS - #define CYTHON_USE_ASYNC_SLOTS 0 - #undef CYTHON_USE_PYLIST_INTERNALS - #define CYTHON_USE_PYLIST_INTERNALS 0 - #ifndef CYTHON_USE_UNICODE_INTERNALS - #define CYTHON_USE_UNICODE_INTERNALS 1 - #endif - #undef CYTHON_USE_UNICODE_WRITER - #define CYTHON_USE_UNICODE_WRITER 0 - #undef CYTHON_USE_PYLONG_INTERNALS - #define CYTHON_USE_PYLONG_INTERNALS 0 - #ifndef CYTHON_AVOID_BORROWED_REFS - #define CYTHON_AVOID_BORROWED_REFS 0 - #endif - #ifndef CYTHON_ASSUME_SAFE_MACROS - #define CYTHON_ASSUME_SAFE_MACROS 1 - #endif - #ifndef CYTHON_UNPACK_METHODS - #define CYTHON_UNPACK_METHODS 1 - #endif - #undef CYTHON_FAST_THREAD_STATE - #define CYTHON_FAST_THREAD_STATE 0 - #undef CYTHON_FAST_PYCALL - #define CYTHON_FAST_PYCALL 0 - #undef CYTHON_PEP489_MULTI_PHASE_INIT - #define CYTHON_PEP489_MULTI_PHASE_INIT 0 - #undef CYTHON_USE_TP_FINALIZE - #define CYTHON_USE_TP_FINALIZE 0 - #undef CYTHON_USE_DICT_VERSIONS - #define CYTHON_USE_DICT_VERSIONS 0 - #undef CYTHON_USE_EXC_INFO_STACK - #define CYTHON_USE_EXC_INFO_STACK 0 -#else - #define CYTHON_COMPILING_IN_PYPY 0 - #define CYTHON_COMPILING_IN_PYSTON 0 - #define CYTHON_COMPILING_IN_CPYTHON 1 - #ifndef CYTHON_USE_TYPE_SLOTS - #define CYTHON_USE_TYPE_SLOTS 1 - #endif - #if PY_VERSION_HEX < 0x02070000 - #undef CYTHON_USE_PYTYPE_LOOKUP - #define CYTHON_USE_PYTYPE_LOOKUP 0 - #elif !defined(CYTHON_USE_PYTYPE_LOOKUP) - #define CYTHON_USE_PYTYPE_LOOKUP 1 - #endif - #if PY_MAJOR_VERSION < 3 - #undef CYTHON_USE_ASYNC_SLOTS - #define CYTHON_USE_ASYNC_SLOTS 0 - #elif !defined(CYTHON_USE_ASYNC_SLOTS) - #define CYTHON_USE_ASYNC_SLOTS 1 - #endif - #if PY_VERSION_HEX < 0x02070000 - #undef CYTHON_USE_PYLONG_INTERNALS - #define CYTHON_USE_PYLONG_INTERNALS 0 - #elif !defined(CYTHON_USE_PYLONG_INTERNALS) - #define CYTHON_USE_PYLONG_INTERNALS 1 - #endif - #ifndef CYTHON_USE_PYLIST_INTERNALS - #define CYTHON_USE_PYLIST_INTERNALS 1 - #endif - #ifndef CYTHON_USE_UNICODE_INTERNALS - #define CYTHON_USE_UNICODE_INTERNALS 1 - #endif - #if PY_VERSION_HEX < 0x030300F0 - #undef CYTHON_USE_UNICODE_WRITER - #define CYTHON_USE_UNICODE_WRITER 0 - #elif !defined(CYTHON_USE_UNICODE_WRITER) - #define CYTHON_USE_UNICODE_WRITER 1 - #endif - #ifndef CYTHON_AVOID_BORROWED_REFS - #define CYTHON_AVOID_BORROWED_REFS 0 - #endif - #ifndef CYTHON_ASSUME_SAFE_MACROS - #define CYTHON_ASSUME_SAFE_MACROS 1 - #endif - #ifndef CYTHON_UNPACK_METHODS - #define CYTHON_UNPACK_METHODS 1 - #endif - #ifndef CYTHON_FAST_THREAD_STATE - #define CYTHON_FAST_THREAD_STATE 1 - #endif - #ifndef CYTHON_FAST_PYCALL - #define CYTHON_FAST_PYCALL 1 - #endif - #ifndef CYTHON_PEP489_MULTI_PHASE_INIT - #define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000) - #endif - #ifndef CYTHON_USE_TP_FINALIZE - #define CYTHON_USE_TP_FINALIZE (PY_VERSION_HEX >= 0x030400a1) - #endif - #ifndef CYTHON_USE_DICT_VERSIONS - #define CYTHON_USE_DICT_VERSIONS (PY_VERSION_HEX >= 0x030600B1) - #endif - #ifndef CYTHON_USE_EXC_INFO_STACK - #define CYTHON_USE_EXC_INFO_STACK (PY_VERSION_HEX >= 0x030700A3) - #endif -#endif -#if !defined(CYTHON_FAST_PYCCALL) -#define CYTHON_FAST_PYCCALL (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1) -#endif -#if CYTHON_USE_PYLONG_INTERNALS - #include "longintrepr.h" - #undef SHIFT - #undef BASE - #undef MASK - #ifdef SIZEOF_VOID_P - enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) }; - #endif -#endif -#ifndef __has_attribute - #define __has_attribute(x) 0 -#endif -#ifndef __has_cpp_attribute - #define __has_cpp_attribute(x) 0 -#endif -#ifndef CYTHON_RESTRICT - #if defined(__GNUC__) - #define CYTHON_RESTRICT __restrict__ - #elif defined(_MSC_VER) && _MSC_VER >= 1400 - #define CYTHON_RESTRICT __restrict - #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L - #define CYTHON_RESTRICT restrict - #else - #define CYTHON_RESTRICT - #endif -#endif -#ifndef CYTHON_UNUSED -# if defined(__GNUC__) -# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) -# define CYTHON_UNUSED __attribute__ ((__unused__)) -# else -# define CYTHON_UNUSED -# endif -# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER)) -# define CYTHON_UNUSED __attribute__ ((__unused__)) -# else -# define CYTHON_UNUSED -# endif -#endif -#ifndef CYTHON_MAYBE_UNUSED_VAR -# if defined(__cplusplus) - template void CYTHON_MAYBE_UNUSED_VAR( const T& ) { } -# else -# define CYTHON_MAYBE_UNUSED_VAR(x) (void)(x) -# endif -#endif -#ifndef CYTHON_NCP_UNUSED -# if CYTHON_COMPILING_IN_CPYTHON -# define CYTHON_NCP_UNUSED -# else -# define CYTHON_NCP_UNUSED CYTHON_UNUSED -# endif -#endif -#define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None) -#ifdef _MSC_VER - #ifndef _MSC_STDINT_H_ - #if _MSC_VER < 1300 - typedef unsigned char uint8_t; - typedef unsigned int uint32_t; - #else - typedef unsigned __int8 uint8_t; - typedef unsigned __int32 uint32_t; - #endif - #endif -#else - #include -#endif -#ifndef CYTHON_FALLTHROUGH - #if defined(__cplusplus) && __cplusplus >= 201103L - #if __has_cpp_attribute(fallthrough) - #define CYTHON_FALLTHROUGH [[fallthrough]] - #elif __has_cpp_attribute(clang::fallthrough) - #define CYTHON_FALLTHROUGH [[clang::fallthrough]] - #elif __has_cpp_attribute(gnu::fallthrough) - #define CYTHON_FALLTHROUGH [[gnu::fallthrough]] - #endif - #endif - #ifndef CYTHON_FALLTHROUGH - #if __has_attribute(fallthrough) - #define CYTHON_FALLTHROUGH __attribute__((fallthrough)) - #else - #define CYTHON_FALLTHROUGH - #endif - #endif - #if defined(__clang__ ) && defined(__apple_build_version__) - #if __apple_build_version__ < 7000000 - #undef CYTHON_FALLTHROUGH - #define CYTHON_FALLTHROUGH - #endif - #endif -#endif - -#ifndef __cplusplus - #error "Cython files generated with the C++ option must be compiled with a C++ compiler." -#endif -#ifndef CYTHON_INLINE - #if defined(__clang__) - #define CYTHON_INLINE __inline__ __attribute__ ((__unused__)) - #else - #define CYTHON_INLINE inline - #endif -#endif -template -void __Pyx_call_destructor(T& x) { - x.~T(); -} -template -class __Pyx_FakeReference { - public: - __Pyx_FakeReference() : ptr(NULL) { } - __Pyx_FakeReference(const T& ref) : ptr(const_cast(&ref)) { } - T *operator->() { return ptr; } - T *operator&() { return ptr; } - operator T&() { return *ptr; } - template bool operator ==(U other) { return *ptr == other; } - template bool operator !=(U other) { return *ptr != other; } - private: - T *ptr; -}; - -#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x02070600 && !defined(Py_OptimizeFlag) - #define Py_OptimizeFlag 0 -#endif -#define __PYX_BUILD_PY_SSIZE_T "n" -#define CYTHON_FORMAT_SSIZE_T "z" -#if PY_MAJOR_VERSION < 3 - #define __Pyx_BUILTIN_MODULE_NAME "__builtin__" - #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ - PyCode_New(a+k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) - #define __Pyx_DefaultClassType PyClass_Type -#else - #define __Pyx_BUILTIN_MODULE_NAME "builtins" -#if PY_VERSION_HEX >= 0x030800A4 && PY_VERSION_HEX < 0x030800B2 - #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ - PyCode_New(a, 0, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) -#else - #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ - PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) -#endif - #define __Pyx_DefaultClassType PyType_Type -#endif -#ifndef Py_TPFLAGS_CHECKTYPES - #define Py_TPFLAGS_CHECKTYPES 0 -#endif -#ifndef Py_TPFLAGS_HAVE_INDEX - #define Py_TPFLAGS_HAVE_INDEX 0 -#endif -#ifndef Py_TPFLAGS_HAVE_NEWBUFFER - #define Py_TPFLAGS_HAVE_NEWBUFFER 0 -#endif -#ifndef Py_TPFLAGS_HAVE_FINALIZE - #define Py_TPFLAGS_HAVE_FINALIZE 0 -#endif -#ifndef METH_STACKLESS - #define METH_STACKLESS 0 -#endif -#if PY_VERSION_HEX <= 0x030700A3 || !defined(METH_FASTCALL) - #ifndef METH_FASTCALL - #define METH_FASTCALL 0x80 - #endif - typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject *const *args, Py_ssize_t nargs); - typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject *const *args, - Py_ssize_t nargs, PyObject *kwnames); -#else - #define __Pyx_PyCFunctionFast _PyCFunctionFast - #define __Pyx_PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords -#endif -#if CYTHON_FAST_PYCCALL -#define __Pyx_PyFastCFunction_Check(func)\ - ((PyCFunction_Check(func) && (METH_FASTCALL == (PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS))))) -#else -#define __Pyx_PyFastCFunction_Check(func) 0 -#endif -#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc) - #define PyObject_Malloc(s) PyMem_Malloc(s) - #define PyObject_Free(p) PyMem_Free(p) - #define PyObject_Realloc(p) PyMem_Realloc(p) -#endif -#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030400A1 - #define PyMem_RawMalloc(n) PyMem_Malloc(n) - #define PyMem_RawRealloc(p, n) PyMem_Realloc(p, n) - #define PyMem_RawFree(p) PyMem_Free(p) -#endif -#if CYTHON_COMPILING_IN_PYSTON - #define __Pyx_PyCode_HasFreeVars(co) PyCode_HasFreeVars(co) - #define __Pyx_PyFrame_SetLineNumber(frame, lineno) PyFrame_SetLineNumber(frame, lineno) -#else - #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0) - #define __Pyx_PyFrame_SetLineNumber(frame, lineno) (frame)->f_lineno = (lineno) -#endif -#if !CYTHON_FAST_THREAD_STATE || PY_VERSION_HEX < 0x02070000 - #define __Pyx_PyThreadState_Current PyThreadState_GET() -#elif PY_VERSION_HEX >= 0x03060000 - #define __Pyx_PyThreadState_Current _PyThreadState_UncheckedGet() -#elif PY_VERSION_HEX >= 0x03000000 - #define __Pyx_PyThreadState_Current PyThreadState_GET() -#else - #define __Pyx_PyThreadState_Current _PyThreadState_Current -#endif -#if PY_VERSION_HEX < 0x030700A2 && !defined(PyThread_tss_create) && !defined(Py_tss_NEEDS_INIT) -#include "pythread.h" -#define Py_tss_NEEDS_INIT 0 -typedef int Py_tss_t; -static CYTHON_INLINE int PyThread_tss_create(Py_tss_t *key) { - *key = PyThread_create_key(); - return 0; -} -static CYTHON_INLINE Py_tss_t * PyThread_tss_alloc(void) { - Py_tss_t *key = (Py_tss_t *)PyObject_Malloc(sizeof(Py_tss_t)); - *key = Py_tss_NEEDS_INIT; - return key; -} -static CYTHON_INLINE void PyThread_tss_free(Py_tss_t *key) { - PyObject_Free(key); -} -static CYTHON_INLINE int PyThread_tss_is_created(Py_tss_t *key) { - return *key != Py_tss_NEEDS_INIT; -} -static CYTHON_INLINE void PyThread_tss_delete(Py_tss_t *key) { - PyThread_delete_key(*key); - *key = Py_tss_NEEDS_INIT; -} -static CYTHON_INLINE int PyThread_tss_set(Py_tss_t *key, void *value) { - return PyThread_set_key_value(*key, value); -} -static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - return PyThread_get_key_value(*key); -} -#endif -#if CYTHON_COMPILING_IN_CPYTHON || defined(_PyDict_NewPresized) -#define __Pyx_PyDict_NewPresized(n) ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n)) -#else -#define __Pyx_PyDict_NewPresized(n) PyDict_New() -#endif -#if PY_MAJOR_VERSION >= 3 || CYTHON_FUTURE_DIVISION - #define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y) - #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y) -#else - #define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y) - #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceDivide(x,y) -#endif -#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 && CYTHON_USE_UNICODE_INTERNALS -#define __Pyx_PyDict_GetItemStr(dict, name) _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash) -#else -#define __Pyx_PyDict_GetItemStr(dict, name) PyDict_GetItem(dict, name) -#endif -#if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND) - #define CYTHON_PEP393_ENABLED 1 - #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ?\ - 0 : _PyUnicode_Ready((PyObject *)(op))) - #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_LENGTH(u) - #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i) - #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) PyUnicode_MAX_CHAR_VALUE(u) - #define __Pyx_PyUnicode_KIND(u) PyUnicode_KIND(u) - #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u) - #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) - #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch) - #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u))) -#else - #define CYTHON_PEP393_ENABLED 0 - #define PyUnicode_1BYTE_KIND 1 - #define PyUnicode_2BYTE_KIND 2 - #define PyUnicode_4BYTE_KIND 4 - #define __Pyx_PyUnicode_READY(op) (0) - #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_SIZE(u) - #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i])) - #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) ((sizeof(Py_UNICODE) == 2) ? 65535 : 1114111) - #define __Pyx_PyUnicode_KIND(u) (sizeof(Py_UNICODE)) - #define __Pyx_PyUnicode_DATA(u) ((void*)PyUnicode_AS_UNICODE(u)) - #define __Pyx_PyUnicode_READ(k, d, i) ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i])) - #define __Pyx_PyUnicode_WRITE(k, d, i, ch) (((void)(k)), ((Py_UNICODE*)d)[i] = ch) - #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_SIZE(u)) -#endif -#if CYTHON_COMPILING_IN_PYPY - #define __Pyx_PyUnicode_Concat(a, b) PyNumber_Add(a, b) - #define __Pyx_PyUnicode_ConcatSafe(a, b) PyNumber_Add(a, b) -#else - #define __Pyx_PyUnicode_Concat(a, b) PyUnicode_Concat(a, b) - #define __Pyx_PyUnicode_ConcatSafe(a, b) ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\ - PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b)) -#endif -#if CYTHON_COMPILING_IN_PYPY && !defined(PyUnicode_Contains) - #define PyUnicode_Contains(u, s) PySequence_Contains(u, s) -#endif -#if CYTHON_COMPILING_IN_PYPY && !defined(PyByteArray_Check) - #define PyByteArray_Check(obj) PyObject_TypeCheck(obj, &PyByteArray_Type) -#endif -#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Format) - #define PyObject_Format(obj, fmt) PyObject_CallMethod(obj, "__format__", "O", fmt) -#endif -#define __Pyx_PyString_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyString_Check(b) && !PyString_CheckExact(b)))) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b)) -#define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyUnicode_Check(b) && !PyUnicode_CheckExact(b)))) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b)) -#if PY_MAJOR_VERSION >= 3 - #define __Pyx_PyString_Format(a, b) PyUnicode_Format(a, b) -#else - #define __Pyx_PyString_Format(a, b) PyString_Format(a, b) -#endif -#if PY_MAJOR_VERSION < 3 && !defined(PyObject_ASCII) - #define PyObject_ASCII(o) PyObject_Repr(o) -#endif -#if PY_MAJOR_VERSION >= 3 - #define PyBaseString_Type PyUnicode_Type - #define PyStringObject PyUnicodeObject - #define PyString_Type PyUnicode_Type - #define PyString_Check PyUnicode_Check - #define PyString_CheckExact PyUnicode_CheckExact - #define PyObject_Unicode PyObject_Str -#endif -#if PY_MAJOR_VERSION >= 3 - #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj) - #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj) -#else - #define __Pyx_PyBaseString_Check(obj) (PyString_Check(obj) || PyUnicode_Check(obj)) - #define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj)) -#endif -#ifndef PySet_CheckExact - #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) -#endif -#if CYTHON_ASSUME_SAFE_MACROS - #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq) -#else - #define __Pyx_PySequence_SIZE(seq) PySequence_Size(seq) -#endif -#if PY_MAJOR_VERSION >= 3 - #define PyIntObject PyLongObject - #define PyInt_Type PyLong_Type - #define PyInt_Check(op) PyLong_Check(op) - #define PyInt_CheckExact(op) PyLong_CheckExact(op) - #define PyInt_FromString PyLong_FromString - #define PyInt_FromUnicode PyLong_FromUnicode - #define PyInt_FromLong PyLong_FromLong - #define PyInt_FromSize_t PyLong_FromSize_t - #define PyInt_FromSsize_t PyLong_FromSsize_t - #define PyInt_AsLong PyLong_AsLong - #define PyInt_AS_LONG PyLong_AS_LONG - #define PyInt_AsSsize_t PyLong_AsSsize_t - #define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask - #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask - #define PyNumber_Int PyNumber_Long -#endif -#if PY_MAJOR_VERSION >= 3 - #define PyBoolObject PyLongObject -#endif -#if PY_MAJOR_VERSION >= 3 && CYTHON_COMPILING_IN_PYPY - #ifndef PyUnicode_InternFromString - #define PyUnicode_InternFromString(s) PyUnicode_FromString(s) - #endif -#endif -#if PY_VERSION_HEX < 0x030200A4 - typedef long Py_hash_t; - #define __Pyx_PyInt_FromHash_t PyInt_FromLong - #define __Pyx_PyInt_AsHash_t PyInt_AsLong -#else - #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t - #define __Pyx_PyInt_AsHash_t PyInt_AsSsize_t -#endif -#if PY_MAJOR_VERSION >= 3 - #define __Pyx_PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : (Py_INCREF(func), func)) -#else - #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass) -#endif -#if CYTHON_USE_ASYNC_SLOTS - #if PY_VERSION_HEX >= 0x030500B1 - #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods - #define __Pyx_PyType_AsAsync(obj) (Py_TYPE(obj)->tp_as_async) - #else - #define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved)) - #endif -#else - #define __Pyx_PyType_AsAsync(obj) NULL -#endif -#ifndef __Pyx_PyAsyncMethodsStruct - typedef struct { - unaryfunc am_await; - unaryfunc am_aiter; - unaryfunc am_anext; - } __Pyx_PyAsyncMethodsStruct; -#endif - -#if defined(WIN32) || defined(MS_WINDOWS) - #define _USE_MATH_DEFINES -#endif -#include -#ifdef NAN -#define __PYX_NAN() ((float) NAN) -#else -static CYTHON_INLINE float __PYX_NAN() { - float value; - memset(&value, 0xFF, sizeof(value)); - return value; -} -#endif -#if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL) -#define __Pyx_truncl trunc -#else -#define __Pyx_truncl truncl -#endif - - -#define __PYX_ERR(f_index, lineno, Ln_error) \ -{ \ - __pyx_filename = __pyx_f[f_index]; __pyx_lineno = lineno; __pyx_clineno = __LINE__; goto Ln_error; \ -} - -#ifndef __PYX_EXTERN_C - #ifdef __cplusplus - #define __PYX_EXTERN_C extern "C" - #else - #define __PYX_EXTERN_C extern - #endif -#endif - -#define __PYX_HAVE__reccdi__src_py__cyth__bridge_opencl -#define __PYX_HAVE_API__reccdi__src_py__cyth__bridge_opencl -/* Early includes */ -#include "ios" -#include "new" -#include "stdexcept" -#include "typeinfo" -#include -#include -#include -#include "../include/bridge.hpp" -#ifdef _OPENMP -#include -#endif /* _OPENMP */ - -#if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS) -#define CYTHON_WITHOUT_ASSERTIONS -#endif - -typedef struct {PyObject **p; const char *s; const Py_ssize_t n; const char* encoding; - const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; - -#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0 -#define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0 -#define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT (PY_MAJOR_VERSION >= 3 && __PYX_DEFAULT_STRING_ENCODING_IS_UTF8) -#define __PYX_DEFAULT_STRING_ENCODING "" -#define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString -#define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize -#define __Pyx_uchar_cast(c) ((unsigned char)c) -#define __Pyx_long_cast(x) ((long)x) -#define __Pyx_fits_Py_ssize_t(v, type, is_signed) (\ - (sizeof(type) < sizeof(Py_ssize_t)) ||\ - (sizeof(type) > sizeof(Py_ssize_t) &&\ - likely(v < (type)PY_SSIZE_T_MAX ||\ - v == (type)PY_SSIZE_T_MAX) &&\ - (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\ - v == (type)PY_SSIZE_T_MIN))) ||\ - (sizeof(type) == sizeof(Py_ssize_t) &&\ - (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\ - v == (type)PY_SSIZE_T_MAX))) ) -static CYTHON_INLINE int __Pyx_is_valid_index(Py_ssize_t i, Py_ssize_t limit) { - return (size_t) i < (size_t) limit; -} -#if defined (__cplusplus) && __cplusplus >= 201103L - #include - #define __Pyx_sst_abs(value) std::abs(value) -#elif SIZEOF_INT >= SIZEOF_SIZE_T - #define __Pyx_sst_abs(value) abs(value) -#elif SIZEOF_LONG >= SIZEOF_SIZE_T - #define __Pyx_sst_abs(value) labs(value) -#elif defined (_MSC_VER) - #define __Pyx_sst_abs(value) ((Py_ssize_t)_abs64(value)) -#elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L - #define __Pyx_sst_abs(value) llabs(value) -#elif defined (__GNUC__) - #define __Pyx_sst_abs(value) __builtin_llabs(value) -#else - #define __Pyx_sst_abs(value) ((value<0) ? -value : value) -#endif -static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject*); -static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length); -#define __Pyx_PyByteArray_FromString(s) PyByteArray_FromStringAndSize((const char*)s, strlen((const char*)s)) -#define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l) -#define __Pyx_PyBytes_FromString PyBytes_FromString -#define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize -static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*); -#if PY_MAJOR_VERSION < 3 - #define __Pyx_PyStr_FromString __Pyx_PyBytes_FromString - #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize -#else - #define __Pyx_PyStr_FromString __Pyx_PyUnicode_FromString - #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize -#endif -#define __Pyx_PyBytes_AsWritableString(s) ((char*) PyBytes_AS_STRING(s)) -#define __Pyx_PyBytes_AsWritableSString(s) ((signed char*) PyBytes_AS_STRING(s)) -#define __Pyx_PyBytes_AsWritableUString(s) ((unsigned char*) PyBytes_AS_STRING(s)) -#define __Pyx_PyBytes_AsString(s) ((const char*) PyBytes_AS_STRING(s)) -#define __Pyx_PyBytes_AsSString(s) ((const signed char*) PyBytes_AS_STRING(s)) -#define __Pyx_PyBytes_AsUString(s) ((const unsigned char*) PyBytes_AS_STRING(s)) -#define __Pyx_PyObject_AsWritableString(s) ((char*) __Pyx_PyObject_AsString(s)) -#define __Pyx_PyObject_AsWritableSString(s) ((signed char*) __Pyx_PyObject_AsString(s)) -#define __Pyx_PyObject_AsWritableUString(s) ((unsigned char*) __Pyx_PyObject_AsString(s)) -#define __Pyx_PyObject_AsSString(s) ((const signed char*) __Pyx_PyObject_AsString(s)) -#define __Pyx_PyObject_AsUString(s) ((const unsigned char*) __Pyx_PyObject_AsString(s)) -#define __Pyx_PyObject_FromCString(s) __Pyx_PyObject_FromString((const char*)s) -#define __Pyx_PyBytes_FromCString(s) __Pyx_PyBytes_FromString((const char*)s) -#define __Pyx_PyByteArray_FromCString(s) __Pyx_PyByteArray_FromString((const char*)s) -#define __Pyx_PyStr_FromCString(s) __Pyx_PyStr_FromString((const char*)s) -#define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s) -static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u) { - const Py_UNICODE *u_end = u; - while (*u_end++) ; - return (size_t)(u_end - u - 1); -} -#define __Pyx_PyUnicode_FromUnicode(u) PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u)) -#define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode -#define __Pyx_PyUnicode_AsUnicode PyUnicode_AsUnicode -#define __Pyx_NewRef(obj) (Py_INCREF(obj), obj) -#define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None) -static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b); -static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*); -static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject*); -static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x); -#define __Pyx_PySequence_Tuple(obj)\ - (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj)) -static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*); -static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t); -#if CYTHON_ASSUME_SAFE_MACROS -#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x)) -#else -#define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x) -#endif -#define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x)) -#if PY_MAJOR_VERSION >= 3 -#define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x)) -#else -#define __Pyx_PyNumber_Int(x) (PyInt_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Int(x)) -#endif -#define __Pyx_PyNumber_Float(x) (PyFloat_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Float(x)) -#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII -static int __Pyx_sys_getdefaultencoding_not_ascii; -static int __Pyx_init_sys_getdefaultencoding_params(void) { - PyObject* sys; - PyObject* default_encoding = NULL; - PyObject* ascii_chars_u = NULL; - PyObject* ascii_chars_b = NULL; - const char* default_encoding_c; - sys = PyImport_ImportModule("sys"); - if (!sys) goto bad; - default_encoding = PyObject_CallMethod(sys, (char*) "getdefaultencoding", NULL); - Py_DECREF(sys); - if (!default_encoding) goto bad; - default_encoding_c = PyBytes_AsString(default_encoding); - if (!default_encoding_c) goto bad; - if (strcmp(default_encoding_c, "ascii") == 0) { - __Pyx_sys_getdefaultencoding_not_ascii = 0; - } else { - char ascii_chars[128]; - int c; - for (c = 0; c < 128; c++) { - ascii_chars[c] = c; - } - __Pyx_sys_getdefaultencoding_not_ascii = 1; - ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL); - if (!ascii_chars_u) goto bad; - ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL); - if (!ascii_chars_b || !PyBytes_Check(ascii_chars_b) || memcmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) { - PyErr_Format( - PyExc_ValueError, - "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.", - default_encoding_c); - goto bad; - } - Py_DECREF(ascii_chars_u); - Py_DECREF(ascii_chars_b); - } - Py_DECREF(default_encoding); - return 0; -bad: - Py_XDECREF(default_encoding); - Py_XDECREF(ascii_chars_u); - Py_XDECREF(ascii_chars_b); - return -1; -} -#endif -#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3 -#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL) -#else -#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL) -#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT -static char* __PYX_DEFAULT_STRING_ENCODING; -static int __Pyx_init_sys_getdefaultencoding_params(void) { - PyObject* sys; - PyObject* default_encoding = NULL; - char* default_encoding_c; - sys = PyImport_ImportModule("sys"); - if (!sys) goto bad; - default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL); - Py_DECREF(sys); - if (!default_encoding) goto bad; - default_encoding_c = PyBytes_AsString(default_encoding); - if (!default_encoding_c) goto bad; - __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c) + 1); - if (!__PYX_DEFAULT_STRING_ENCODING) goto bad; - strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c); - Py_DECREF(default_encoding); - return 0; -bad: - Py_XDECREF(default_encoding); - return -1; -} -#endif -#endif - - -/* Test for GCC > 2.95 */ -#if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95))) - #define likely(x) __builtin_expect(!!(x), 1) - #define unlikely(x) __builtin_expect(!!(x), 0) -#else /* !__GNUC__ or GCC < 2.95 */ - #define likely(x) (x) - #define unlikely(x) (x) -#endif /* __GNUC__ */ -static CYTHON_INLINE void __Pyx_pretend_to_initialize(void* ptr) { (void)ptr; } - -static PyObject *__pyx_m = NULL; -static PyObject *__pyx_d; -static PyObject *__pyx_b; -static PyObject *__pyx_cython_runtime = NULL; -static PyObject *__pyx_empty_tuple; -static PyObject *__pyx_empty_bytes; -static PyObject *__pyx_empty_unicode; -static int __pyx_lineno; -static int __pyx_clineno = 0; -static const char * __pyx_cfilenm= __FILE__; -static const char *__pyx_filename; - - -static const char *__pyx_f[] = { - "stringsource", - "reccdi/src_py/cyth/bridge_opencl.pyx", -}; - -/*--- Type declarations ---*/ -struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge; - -/* "reccdi/src_py/cyth/bridge_opencl.pyx":36 - * - * - * cdef class PyBridge: # <<<<<<<<<<<<<< - * cdef Bridge *thisptr - * def __cinit__(self): - */ -struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge { - PyObject_HEAD - Bridge *thisptr; -}; - - -/* --- Runtime support code (head) --- */ -/* Refnanny.proto */ -#ifndef CYTHON_REFNANNY - #define CYTHON_REFNANNY 0 -#endif -#if CYTHON_REFNANNY - typedef struct { - void (*INCREF)(void*, PyObject*, int); - void (*DECREF)(void*, PyObject*, int); - void (*GOTREF)(void*, PyObject*, int); - void (*GIVEREF)(void*, PyObject*, int); - void* (*SetupContext)(const char*, int, const char*); - void (*FinishContext)(void**); - } __Pyx_RefNannyAPIStruct; - static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL; - static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname); - #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL; -#ifdef WITH_THREAD - #define __Pyx_RefNannySetupContext(name, acquire_gil)\ - if (acquire_gil) {\ - PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\ - __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\ - PyGILState_Release(__pyx_gilstate_save);\ - } else {\ - __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\ - } -#else - #define __Pyx_RefNannySetupContext(name, acquire_gil)\ - __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__) -#endif - #define __Pyx_RefNannyFinishContext()\ - __Pyx_RefNanny->FinishContext(&__pyx_refnanny) - #define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__) - #define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__) - #define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__) - #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__) - #define __Pyx_XINCREF(r) do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0) - #define __Pyx_XDECREF(r) do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0) - #define __Pyx_XGOTREF(r) do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0) - #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0) -#else - #define __Pyx_RefNannyDeclarations - #define __Pyx_RefNannySetupContext(name, acquire_gil) - #define __Pyx_RefNannyFinishContext() - #define __Pyx_INCREF(r) Py_INCREF(r) - #define __Pyx_DECREF(r) Py_DECREF(r) - #define __Pyx_GOTREF(r) - #define __Pyx_GIVEREF(r) - #define __Pyx_XINCREF(r) Py_XINCREF(r) - #define __Pyx_XDECREF(r) Py_XDECREF(r) - #define __Pyx_XGOTREF(r) - #define __Pyx_XGIVEREF(r) -#endif -#define __Pyx_XDECREF_SET(r, v) do {\ - PyObject *tmp = (PyObject *) r;\ - r = v; __Pyx_XDECREF(tmp);\ - } while (0) -#define __Pyx_DECREF_SET(r, v) do {\ - PyObject *tmp = (PyObject *) r;\ - r = v; __Pyx_DECREF(tmp);\ - } while (0) -#define __Pyx_CLEAR(r) do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0) -#define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0) - -/* PyObjectGetAttrStr.proto */ -#if CYTHON_USE_TYPE_SLOTS -static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name); -#else -#define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n) -#endif - -/* GetBuiltinName.proto */ -static PyObject *__Pyx_GetBuiltinName(PyObject *name); - -/* RaiseArgTupleInvalid.proto */ -static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact, - Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); - -/* KeywordStringCheck.proto */ -static int __Pyx_CheckKeywordStrings(PyObject *kwdict, const char* function_name, int kw_allowed); - -/* RaiseDoubleKeywords.proto */ -static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name); - -/* ParseKeywords.proto */ -static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[],\ - PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args,\ - const char* function_name); - -/* PyFunctionFastCall.proto */ -#if CYTHON_FAST_PYCALL -#define __Pyx_PyFunction_FastCall(func, args, nargs)\ - __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL) -#if 1 || PY_VERSION_HEX < 0x030600B1 -static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs); -#else -#define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs) -#endif -#define __Pyx_BUILD_ASSERT_EXPR(cond)\ - (sizeof(char [1 - 2*!(cond)]) - 1) -#ifndef Py_MEMBER_SIZE -#define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member) -#endif - static size_t __pyx_pyframe_localsplus_offset = 0; - #include "frameobject.h" - #define __Pxy_PyFrame_Initialize_Offsets()\ - ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\ - (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus))) - #define __Pyx_PyFrame_GetLocalsplus(frame)\ - (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset)) -#endif - -/* PyObjectCall.proto */ -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw); -#else -#define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw) -#endif - -/* PyObjectCallMethO.proto */ -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg); -#endif - -/* PyObjectCallNoArg.proto */ -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func); -#else -#define __Pyx_PyObject_CallNoArg(func) __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL) -#endif - -/* PyCFunctionFastCall.proto */ -#if CYTHON_FAST_PYCCALL -static CYTHON_INLINE PyObject *__Pyx_PyCFunction_FastCall(PyObject *func, PyObject **args, Py_ssize_t nargs); -#else -#define __Pyx_PyCFunction_FastCall(func, args, nargs) (assert(0), NULL) -#endif - -/* PyObjectCallOneArg.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg); - -/* PyThreadStateGet.proto */ -#if CYTHON_FAST_THREAD_STATE -#define __Pyx_PyThreadState_declare PyThreadState *__pyx_tstate; -#define __Pyx_PyThreadState_assign __pyx_tstate = __Pyx_PyThreadState_Current; -#define __Pyx_PyErr_Occurred() __pyx_tstate->curexc_type -#else -#define __Pyx_PyThreadState_declare -#define __Pyx_PyThreadState_assign -#define __Pyx_PyErr_Occurred() PyErr_Occurred() -#endif - -/* PyErrFetchRestore.proto */ -#if CYTHON_FAST_THREAD_STATE -#define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL) -#define __Pyx_ErrRestoreWithState(type, value, tb) __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb) -#define __Pyx_ErrFetchWithState(type, value, tb) __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb) -#define __Pyx_ErrRestore(type, value, tb) __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb) -#define __Pyx_ErrFetch(type, value, tb) __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb) -static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb); -static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); -#if CYTHON_COMPILING_IN_CPYTHON -#define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL)) -#else -#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) -#endif -#else -#define __Pyx_PyErr_Clear() PyErr_Clear() -#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) -#define __Pyx_ErrRestoreWithState(type, value, tb) PyErr_Restore(type, value, tb) -#define __Pyx_ErrFetchWithState(type, value, tb) PyErr_Fetch(type, value, tb) -#define __Pyx_ErrRestoreInState(tstate, type, value, tb) PyErr_Restore(type, value, tb) -#define __Pyx_ErrFetchInState(tstate, type, value, tb) PyErr_Fetch(type, value, tb) -#define __Pyx_ErrRestore(type, value, tb) PyErr_Restore(type, value, tb) -#define __Pyx_ErrFetch(type, value, tb) PyErr_Fetch(type, value, tb) -#endif - -/* RaiseException.proto */ -static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); - -/* ListCompAppend.proto */ -#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS -static CYTHON_INLINE int __Pyx_ListComp_Append(PyObject* list, PyObject* x) { - PyListObject* L = (PyListObject*) list; - Py_ssize_t len = Py_SIZE(list); - if (likely(L->allocated > len)) { - Py_INCREF(x); - PyList_SET_ITEM(list, len, x); - Py_SIZE(list) = len+1; - return 0; - } - return PyList_Append(list, x); -} -#else -#define __Pyx_ListComp_Append(L,x) PyList_Append(L,x) -#endif - -/* PyObject_GenericGetAttrNoDict.proto */ -#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 -static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name); -#else -#define __Pyx_PyObject_GenericGetAttrNoDict PyObject_GenericGetAttr -#endif - -/* PyObject_GenericGetAttr.proto */ -#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 -static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name); -#else -#define __Pyx_PyObject_GenericGetAttr PyObject_GenericGetAttr -#endif - -/* SetupReduce.proto */ -static int __Pyx_setup_reduce(PyObject* type_obj); - -/* PyDictVersioning.proto */ -#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS -#define __PYX_DICT_VERSION_INIT ((PY_UINT64_T) -1) -#define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag) -#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\ - (version_var) = __PYX_GET_DICT_VERSION(dict);\ - (cache_var) = (value); -#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\ - static PY_UINT64_T __pyx_dict_version = 0;\ - static PyObject *__pyx_dict_cached_value = NULL;\ - if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\ - (VAR) = __pyx_dict_cached_value;\ - } else {\ - (VAR) = __pyx_dict_cached_value = (LOOKUP);\ - __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\ - }\ -} -static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj); -static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj); -static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version); -#else -#define __PYX_GET_DICT_VERSION(dict) (0) -#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var) -#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) (VAR) = (LOOKUP); -#endif - -/* CLineInTraceback.proto */ -#ifdef CYTHON_CLINE_IN_TRACEBACK -#define __Pyx_CLineForTraceback(tstate, c_line) (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0) -#else -static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line); -#endif - -/* CodeObjectCache.proto */ -typedef struct { - PyCodeObject* code_object; - int code_line; -} __Pyx_CodeObjectCacheEntry; -struct __Pyx_CodeObjectCache { - int count; - int max_count; - __Pyx_CodeObjectCacheEntry* entries; -}; -static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL}; -static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line); -static PyCodeObject *__pyx_find_code_object(int code_line); -static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object); - -/* AddTraceback.proto */ -static void __Pyx_AddTraceback(const char *funcname, int c_line, - int py_line, const char *filename); - -/* CppExceptionConversion.proto */ -#ifndef __Pyx_CppExn2PyErr -#include -#include -#include -#include -static void __Pyx_CppExn2PyErr() { - try { - if (PyErr_Occurred()) - ; // let the latest Python exn pass through and ignore the current one - else - throw; - } catch (const std::bad_alloc& exn) { - PyErr_SetString(PyExc_MemoryError, exn.what()); - } catch (const std::bad_cast& exn) { - PyErr_SetString(PyExc_TypeError, exn.what()); - } catch (const std::bad_typeid& exn) { - PyErr_SetString(PyExc_TypeError, exn.what()); - } catch (const std::domain_error& exn) { - PyErr_SetString(PyExc_ValueError, exn.what()); - } catch (const std::invalid_argument& exn) { - PyErr_SetString(PyExc_ValueError, exn.what()); - } catch (const std::ios_base::failure& exn) { - PyErr_SetString(PyExc_IOError, exn.what()); - } catch (const std::out_of_range& exn) { - PyErr_SetString(PyExc_IndexError, exn.what()); - } catch (const std::overflow_error& exn) { - PyErr_SetString(PyExc_OverflowError, exn.what()); - } catch (const std::range_error& exn) { - PyErr_SetString(PyExc_ArithmeticError, exn.what()); - } catch (const std::underflow_error& exn) { - PyErr_SetString(PyExc_ArithmeticError, exn.what()); - } catch (const std::exception& exn) { - PyErr_SetString(PyExc_RuntimeError, exn.what()); - } - catch (...) - { - PyErr_SetString(PyExc_RuntimeError, "Unknown exception"); - } -} -#endif - -/* CIntToPy.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); - -/* CIntFromPy.proto */ -static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); - -/* CIntFromPy.proto */ -static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *); - -/* CIntToPy.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); - -/* CIntFromPy.proto */ -static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *); - -/* FastTypeChecks.proto */ -#if CYTHON_COMPILING_IN_CPYTHON -#define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type) -static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b); -static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type); -static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2); -#else -#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type) -#define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type) -#define __Pyx_PyErr_GivenExceptionMatches2(err, type1, type2) (PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2)) -#endif -#define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception) - -/* CheckBinaryVersion.proto */ -static int __Pyx_check_binary_version(void); - -/* InitStrings.proto */ -static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); - - -/* Module declarations from 'libcpp.vector' */ - -/* Module declarations from 'libc.string' */ - -/* Module declarations from 'libcpp.string' */ - -/* Module declarations from 'reccdi.src_py.cyth.bridge_opencl' */ -static PyTypeObject *__pyx_ptype_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge = 0; -static std::vector __pyx_convert_vector_from_py_float(PyObject *); /*proto*/ -static std::vector __pyx_convert_vector_from_py_int(PyObject *); /*proto*/ -static std::string __pyx_convert_string_from_py_std__in_string(PyObject *); /*proto*/ -static PyObject *__pyx_convert_vector_to_py_double(const std::vector &); /*proto*/ -static PyObject *__pyx_convert_vector_to_py_float(const std::vector &); /*proto*/ -static PyObject *__pyx_convert_vector_to_py_int(const std::vector &); /*proto*/ -#define __Pyx_MODULE_NAME "reccdi.src_py.cyth.bridge_opencl" -extern int __pyx_module_is_main_reccdi__src_py__cyth__bridge_opencl; -int __pyx_module_is_main_reccdi__src_py__cyth__bridge_opencl = 0; - -/* Implementation of 'reccdi.src_py.cyth.bridge_opencl' */ -static PyObject *__pyx_builtin_TypeError; -static PyObject *__pyx_builtin_range; -static const char __pyx_k_coh[] = "coh"; -static const char __pyx_k_dims[] = "dims"; -static const char __pyx_k_main[] = "__main__"; -static const char __pyx_k_name[] = "__name__"; -static const char __pyx_k_test[] = "__test__"; -static const char __pyx_k_range[] = "range"; -static const char __pyx_k_config[] = "config"; -static const char __pyx_k_data_r[] = "data_r"; -static const char __pyx_k_device[] = "device"; -static const char __pyx_k_encode[] = "encode"; -static const char __pyx_k_reduce[] = "__reduce__"; -static const char __pyx_k_guess_i[] = "guess_i"; -static const char __pyx_k_guess_r[] = "guess_r"; -static const char __pyx_k_support[] = "support"; -static const char __pyx_k_PyBridge[] = "PyBridge"; -static const char __pyx_k_coh_dims[] = "coh_dims"; -static const char __pyx_k_getstate[] = "__getstate__"; -static const char __pyx_k_setstate[] = "__setstate__"; -static const char __pyx_k_TypeError[] = "TypeError"; -static const char __pyx_k_reduce_ex[] = "__reduce_ex__"; -static const char __pyx_k_reduce_cython[] = "__reduce_cython__"; -static const char __pyx_k_setstate_cython[] = "__setstate_cython__"; -static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; -static const char __pyx_k_no_default___reduce___due_to_non[] = "no default __reduce__ due to non-trivial __cinit__"; -static PyObject *__pyx_n_s_PyBridge; -static PyObject *__pyx_n_s_TypeError; -static PyObject *__pyx_n_s_cline_in_traceback; -static PyObject *__pyx_n_s_coh; -static PyObject *__pyx_n_s_coh_dims; -static PyObject *__pyx_n_s_config; -static PyObject *__pyx_n_s_data_r; -static PyObject *__pyx_n_s_device; -static PyObject *__pyx_n_s_dims; -static PyObject *__pyx_n_s_encode; -static PyObject *__pyx_n_s_getstate; -static PyObject *__pyx_n_s_guess_i; -static PyObject *__pyx_n_s_guess_r; -static PyObject *__pyx_n_s_main; -static PyObject *__pyx_n_s_name; -static PyObject *__pyx_kp_s_no_default___reduce___due_to_non; -static PyObject *__pyx_n_s_range; -static PyObject *__pyx_n_s_reduce; -static PyObject *__pyx_n_s_reduce_cython; -static PyObject *__pyx_n_s_reduce_ex; -static PyObject *__pyx_n_s_setstate; -static PyObject *__pyx_n_s_setstate_cython; -static PyObject *__pyx_n_s_support; -static PyObject *__pyx_n_s_test; -static int __pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge___cinit__(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self); /* proto */ -static void __pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_2__dealloc__(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_4start_calc_with_guess(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_guess_r, PyObject *__pyx_v_guess_i, PyObject *__pyx_v_dims, PyObject *__pyx_v_config); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_6start_calc_with_guess_support(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_guess_r, PyObject *__pyx_v_guess_i, PyObject *__pyx_v_support, PyObject *__pyx_v_dims, PyObject *__pyx_v_config); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_8start_calc_with_guess_support_coh(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_guess_r, PyObject *__pyx_v_guess_i, PyObject *__pyx_v_support, PyObject *__pyx_v_dims, PyObject *__pyx_v_coh, PyObject *__pyx_v_coh_dims, PyObject *__pyx_v_config); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_10start_calc(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_dims, PyObject *__pyx_v_config); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_12get_image_r(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_14get_image_i(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_16get_errors(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_18get_support(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_20get_coherence(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_22get_reciprocal_r(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_24get_reciprocal_i(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_26get_flow(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_28get_iter_flow(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_30cleanup(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_32__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_34__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ -static PyObject *__pyx_tp_new_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ -static PyObject *__pyx_tuple_; -static PyObject *__pyx_tuple__2; -/* Late includes */ - -/* "reccdi/src_py/cyth/bridge_opencl.pyx":38 - * cdef class PyBridge: - * cdef Bridge *thisptr - * def __cinit__(self): # <<<<<<<<<<<<<< - * self.thisptr = new Bridge() - * def __dealloc__(self): - */ - -/* Python wrapper */ -static int __pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static int __pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - int __pyx_r; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); - if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { - __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} - if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge___cinit__(((struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static int __pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge___cinit__(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self) { - int __pyx_r; - __Pyx_RefNannyDeclarations - Bridge *__pyx_t_1; - __Pyx_RefNannySetupContext("__cinit__", 0); - - /* "reccdi/src_py/cyth/bridge_opencl.pyx":39 - * cdef Bridge *thisptr - * def __cinit__(self): - * self.thisptr = new Bridge() # <<<<<<<<<<<<<< - * def __dealloc__(self): - * del self.thisptr - */ - try { - __pyx_t_1 = new Bridge(); - } catch(...) { - __Pyx_CppExn2PyErr(); - __PYX_ERR(1, 39, __pyx_L1_error) - } - __pyx_v_self->thisptr = __pyx_t_1; - - /* "reccdi/src_py/cyth/bridge_opencl.pyx":38 - * cdef class PyBridge: - * cdef Bridge *thisptr - * def __cinit__(self): # <<<<<<<<<<<<<< - * self.thisptr = new Bridge() - * def __dealloc__(self): - */ - - /* function exit code */ - __pyx_r = 0; - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_opencl.PyBridge.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1; - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "reccdi/src_py/cyth/bridge_opencl.pyx":40 - * def __cinit__(self): - * self.thisptr = new Bridge() - * def __dealloc__(self): # <<<<<<<<<<<<<< - * del self.thisptr - * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): - */ - -/* Python wrapper */ -static void __pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_3__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_3__dealloc__(PyObject *__pyx_v_self) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); - __pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_2__dealloc__(((struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); -} - -static void __pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_2__dealloc__(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__dealloc__", 0); - - /* "reccdi/src_py/cyth/bridge_opencl.pyx":41 - * self.thisptr = new Bridge() - * def __dealloc__(self): - * del self.thisptr # <<<<<<<<<<<<<< - * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): - * self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) - */ - delete __pyx_v_self->thisptr; - - /* "reccdi/src_py/cyth/bridge_opencl.pyx":40 - * def __cinit__(self): - * self.thisptr = new Bridge() - * def __dealloc__(self): # <<<<<<<<<<<<<< - * del self.thisptr - * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): - */ - - /* function exit code */ - __Pyx_RefNannyFinishContext(); -} - -/* "reccdi/src_py/cyth/bridge_opencl.pyx":42 - * def __dealloc__(self): - * del self.thisptr - * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): # <<<<<<<<<<<<<< - * self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) - * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_5start_calc_with_guess(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_5start_calc_with_guess(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_device = 0; - PyObject *__pyx_v_data_r = 0; - PyObject *__pyx_v_guess_r = 0; - PyObject *__pyx_v_guess_i = 0; - PyObject *__pyx_v_dims = 0; - PyObject *__pyx_v_config = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("start_calc_with_guess (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_device,&__pyx_n_s_data_r,&__pyx_n_s_guess_r,&__pyx_n_s_guess_i,&__pyx_n_s_dims,&__pyx_n_s_config,0}; - PyObject* values[6] = {0,0,0,0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); - CYTHON_FALLTHROUGH; - case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = PyDict_Size(__pyx_kwds); - switch (pos_args) { - case 0: - if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_device)) != 0)) kw_args--; - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_data_r)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess", 1, 6, 6, 1); __PYX_ERR(1, 42, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_guess_r)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess", 1, 6, 6, 2); __PYX_ERR(1, 42, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_guess_i)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess", 1, 6, 6, 3); __PYX_ERR(1, 42, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 4: - if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dims)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess", 1, 6, 6, 4); __PYX_ERR(1, 42, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 5: - if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_config)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess", 1, 6, 6, 5); __PYX_ERR(1, 42, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "start_calc_with_guess") < 0)) __PYX_ERR(1, 42, __pyx_L3_error) - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 6) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - values[5] = PyTuple_GET_ITEM(__pyx_args, 5); - } - __pyx_v_device = values[0]; - __pyx_v_data_r = values[1]; - __pyx_v_guess_r = values[2]; - __pyx_v_guess_i = values[3]; - __pyx_v_dims = values[4]; - __pyx_v_config = values[5]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 42, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_opencl.PyBridge.start_calc_with_guess", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_4start_calc_with_guess(((struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *)__pyx_v_self), __pyx_v_device, __pyx_v_data_r, __pyx_v_guess_r, __pyx_v_guess_i, __pyx_v_dims, __pyx_v_config); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_4start_calc_with_guess(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_guess_r, PyObject *__pyx_v_guess_i, PyObject *__pyx_v_dims, PyObject *__pyx_v_config) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - std::vector __pyx_t_2; - std::vector __pyx_t_3; - std::vector __pyx_t_4; - std::vector __pyx_t_5; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - std::string __pyx_t_9; - __Pyx_RefNannySetupContext("start_calc_with_guess", 0); - - /* "reccdi/src_py/cyth/bridge_opencl.pyx":43 - * del self.thisptr - * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): - * self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) # <<<<<<<<<<<<<< - * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): - * self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) - */ - __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_device); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 43, __pyx_L1_error) - __pyx_t_2 = __pyx_convert_vector_from_py_float(__pyx_v_data_r); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 43, __pyx_L1_error) - __pyx_t_3 = __pyx_convert_vector_from_py_float(__pyx_v_guess_r); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 43, __pyx_L1_error) - __pyx_t_4 = __pyx_convert_vector_from_py_float(__pyx_v_guess_i); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 43, __pyx_L1_error) - __pyx_t_5 = __pyx_convert_vector_from_py_int(__pyx_v_dims); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 43, __pyx_L1_error) - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_config, __pyx_n_s_encode); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 43, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = NULL; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { - __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); - if (likely(__pyx_t_8)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); - __Pyx_INCREF(__pyx_t_8); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_7, function); - } - } - __pyx_t_6 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 43, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_9 = __pyx_convert_string_from_py_std__in_string(__pyx_t_6); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 43, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_v_self->thisptr->StartCalcWithGuess(__pyx_t_1, __pyx_t_2, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_9); - - /* "reccdi/src_py/cyth/bridge_opencl.pyx":42 - * def __dealloc__(self): - * del self.thisptr - * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): # <<<<<<<<<<<<<< - * self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) - * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): - */ - - /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_opencl.PyBridge.start_calc_with_guess", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "reccdi/src_py/cyth/bridge_opencl.pyx":44 - * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): - * self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) - * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): # <<<<<<<<<<<<<< - * self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) - * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_7start_calc_with_guess_support(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_7start_calc_with_guess_support(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_device = 0; - PyObject *__pyx_v_data_r = 0; - PyObject *__pyx_v_guess_r = 0; - PyObject *__pyx_v_guess_i = 0; - PyObject *__pyx_v_support = 0; - PyObject *__pyx_v_dims = 0; - PyObject *__pyx_v_config = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("start_calc_with_guess_support (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_device,&__pyx_n_s_data_r,&__pyx_n_s_guess_r,&__pyx_n_s_guess_i,&__pyx_n_s_support,&__pyx_n_s_dims,&__pyx_n_s_config,0}; - PyObject* values[7] = {0,0,0,0,0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); - CYTHON_FALLTHROUGH; - case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); - CYTHON_FALLTHROUGH; - case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = PyDict_Size(__pyx_kwds); - switch (pos_args) { - case 0: - if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_device)) != 0)) kw_args--; - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_data_r)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support", 1, 7, 7, 1); __PYX_ERR(1, 44, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_guess_r)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support", 1, 7, 7, 2); __PYX_ERR(1, 44, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_guess_i)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support", 1, 7, 7, 3); __PYX_ERR(1, 44, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 4: - if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_support)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support", 1, 7, 7, 4); __PYX_ERR(1, 44, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 5: - if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dims)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support", 1, 7, 7, 5); __PYX_ERR(1, 44, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 6: - if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_config)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support", 1, 7, 7, 6); __PYX_ERR(1, 44, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "start_calc_with_guess_support") < 0)) __PYX_ERR(1, 44, __pyx_L3_error) - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 7) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - values[5] = PyTuple_GET_ITEM(__pyx_args, 5); - values[6] = PyTuple_GET_ITEM(__pyx_args, 6); - } - __pyx_v_device = values[0]; - __pyx_v_data_r = values[1]; - __pyx_v_guess_r = values[2]; - __pyx_v_guess_i = values[3]; - __pyx_v_support = values[4]; - __pyx_v_dims = values[5]; - __pyx_v_config = values[6]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support", 1, 7, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 44, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_opencl.PyBridge.start_calc_with_guess_support", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_6start_calc_with_guess_support(((struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *)__pyx_v_self), __pyx_v_device, __pyx_v_data_r, __pyx_v_guess_r, __pyx_v_guess_i, __pyx_v_support, __pyx_v_dims, __pyx_v_config); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_6start_calc_with_guess_support(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_guess_r, PyObject *__pyx_v_guess_i, PyObject *__pyx_v_support, PyObject *__pyx_v_dims, PyObject *__pyx_v_config) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - std::vector __pyx_t_2; - std::vector __pyx_t_3; - std::vector __pyx_t_4; - std::vector __pyx_t_5; - std::vector __pyx_t_6; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - std::string __pyx_t_10; - __Pyx_RefNannySetupContext("start_calc_with_guess_support", 0); - - /* "reccdi/src_py/cyth/bridge_opencl.pyx":45 - * self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) - * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): - * self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) # <<<<<<<<<<<<<< - * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): - * self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) - */ - __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_device); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 45, __pyx_L1_error) - __pyx_t_2 = __pyx_convert_vector_from_py_float(__pyx_v_data_r); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 45, __pyx_L1_error) - __pyx_t_3 = __pyx_convert_vector_from_py_float(__pyx_v_guess_r); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 45, __pyx_L1_error) - __pyx_t_4 = __pyx_convert_vector_from_py_float(__pyx_v_guess_i); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 45, __pyx_L1_error) - __pyx_t_5 = __pyx_convert_vector_from_py_int(__pyx_v_support); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 45, __pyx_L1_error) - __pyx_t_6 = __pyx_convert_vector_from_py_int(__pyx_v_dims); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 45, __pyx_L1_error) - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_config, __pyx_n_s_encode); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 45, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = NULL; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { - __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8); - if (likely(__pyx_t_9)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); - __Pyx_INCREF(__pyx_t_9); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_8, function); - } - } - __pyx_t_7 = (__pyx_t_9) ? __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_9) : __Pyx_PyObject_CallNoArg(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 45, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_10 = __pyx_convert_string_from_py_std__in_string(__pyx_t_7); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 45, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_v_self->thisptr->StartCalcWithGuessSupport(__pyx_t_1, __pyx_t_2, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6, __pyx_t_10); - - /* "reccdi/src_py/cyth/bridge_opencl.pyx":44 - * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): - * self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) - * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): # <<<<<<<<<<<<<< - * self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) - * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): - */ - - /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_opencl.PyBridge.start_calc_with_guess_support", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "reccdi/src_py/cyth/bridge_opencl.pyx":46 - * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): - * self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) - * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): # <<<<<<<<<<<<<< - * self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) - * def start_calc(self, device, data_r, dims, config): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_9start_calc_with_guess_support_coh(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_9start_calc_with_guess_support_coh(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_device = 0; - PyObject *__pyx_v_data_r = 0; - PyObject *__pyx_v_guess_r = 0; - PyObject *__pyx_v_guess_i = 0; - PyObject *__pyx_v_support = 0; - PyObject *__pyx_v_dims = 0; - PyObject *__pyx_v_coh = 0; - PyObject *__pyx_v_coh_dims = 0; - PyObject *__pyx_v_config = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("start_calc_with_guess_support_coh (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_device,&__pyx_n_s_data_r,&__pyx_n_s_guess_r,&__pyx_n_s_guess_i,&__pyx_n_s_support,&__pyx_n_s_dims,&__pyx_n_s_coh,&__pyx_n_s_coh_dims,&__pyx_n_s_config,0}; - PyObject* values[9] = {0,0,0,0,0,0,0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8); - CYTHON_FALLTHROUGH; - case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7); - CYTHON_FALLTHROUGH; - case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); - CYTHON_FALLTHROUGH; - case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); - CYTHON_FALLTHROUGH; - case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = PyDict_Size(__pyx_kwds); - switch (pos_args) { - case 0: - if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_device)) != 0)) kw_args--; - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_data_r)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 1); __PYX_ERR(1, 46, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_guess_r)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 2); __PYX_ERR(1, 46, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_guess_i)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 3); __PYX_ERR(1, 46, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 4: - if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_support)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 4); __PYX_ERR(1, 46, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 5: - if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dims)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 5); __PYX_ERR(1, 46, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 6: - if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_coh)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 6); __PYX_ERR(1, 46, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 7: - if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_coh_dims)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 7); __PYX_ERR(1, 46, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 8: - if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_config)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 8); __PYX_ERR(1, 46, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "start_calc_with_guess_support_coh") < 0)) __PYX_ERR(1, 46, __pyx_L3_error) - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 9) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - values[5] = PyTuple_GET_ITEM(__pyx_args, 5); - values[6] = PyTuple_GET_ITEM(__pyx_args, 6); - values[7] = PyTuple_GET_ITEM(__pyx_args, 7); - values[8] = PyTuple_GET_ITEM(__pyx_args, 8); - } - __pyx_v_device = values[0]; - __pyx_v_data_r = values[1]; - __pyx_v_guess_r = values[2]; - __pyx_v_guess_i = values[3]; - __pyx_v_support = values[4]; - __pyx_v_dims = values[5]; - __pyx_v_coh = values[6]; - __pyx_v_coh_dims = values[7]; - __pyx_v_config = values[8]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 46, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_opencl.PyBridge.start_calc_with_guess_support_coh", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_8start_calc_with_guess_support_coh(((struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *)__pyx_v_self), __pyx_v_device, __pyx_v_data_r, __pyx_v_guess_r, __pyx_v_guess_i, __pyx_v_support, __pyx_v_dims, __pyx_v_coh, __pyx_v_coh_dims, __pyx_v_config); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_8start_calc_with_guess_support_coh(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_guess_r, PyObject *__pyx_v_guess_i, PyObject *__pyx_v_support, PyObject *__pyx_v_dims, PyObject *__pyx_v_coh, PyObject *__pyx_v_coh_dims, PyObject *__pyx_v_config) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - std::vector __pyx_t_2; - std::vector __pyx_t_3; - std::vector __pyx_t_4; - std::vector __pyx_t_5; - std::vector __pyx_t_6; - std::vector __pyx_t_7; - std::vector __pyx_t_8; - PyObject *__pyx_t_9 = NULL; - PyObject *__pyx_t_10 = NULL; - PyObject *__pyx_t_11 = NULL; - std::string __pyx_t_12; - __Pyx_RefNannySetupContext("start_calc_with_guess_support_coh", 0); - - /* "reccdi/src_py/cyth/bridge_opencl.pyx":47 - * self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) - * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): - * self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) # <<<<<<<<<<<<<< - * def start_calc(self, device, data_r, dims, config): - * self.thisptr.StartCalc(device, data_r, dims, config.encode()) - */ - __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_device); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 47, __pyx_L1_error) - __pyx_t_2 = __pyx_convert_vector_from_py_float(__pyx_v_data_r); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 47, __pyx_L1_error) - __pyx_t_3 = __pyx_convert_vector_from_py_float(__pyx_v_guess_r); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 47, __pyx_L1_error) - __pyx_t_4 = __pyx_convert_vector_from_py_float(__pyx_v_guess_i); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 47, __pyx_L1_error) - __pyx_t_5 = __pyx_convert_vector_from_py_int(__pyx_v_support); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 47, __pyx_L1_error) - __pyx_t_6 = __pyx_convert_vector_from_py_int(__pyx_v_dims); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 47, __pyx_L1_error) - __pyx_t_7 = __pyx_convert_vector_from_py_float(__pyx_v_coh); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 47, __pyx_L1_error) - __pyx_t_8 = __pyx_convert_vector_from_py_int(__pyx_v_coh_dims); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 47, __pyx_L1_error) - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_config, __pyx_n_s_encode); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 47, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __pyx_t_11 = NULL; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) { - __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_10); - if (likely(__pyx_t_11)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); - __Pyx_INCREF(__pyx_t_11); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_10, function); - } - } - __pyx_t_9 = (__pyx_t_11) ? __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_11) : __Pyx_PyObject_CallNoArg(__pyx_t_10); - __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 47, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_12 = __pyx_convert_string_from_py_std__in_string(__pyx_t_9); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 47, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_v_self->thisptr->StartCalcWithGuessSupportCoh(__pyx_t_1, __pyx_t_2, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6, __pyx_t_7, __pyx_t_8, __pyx_t_12); - - /* "reccdi/src_py/cyth/bridge_opencl.pyx":46 - * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): - * self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) - * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): # <<<<<<<<<<<<<< - * self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) - * def start_calc(self, device, data_r, dims, config): - */ - - /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_9); - __Pyx_XDECREF(__pyx_t_10); - __Pyx_XDECREF(__pyx_t_11); - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_opencl.PyBridge.start_calc_with_guess_support_coh", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "reccdi/src_py/cyth/bridge_opencl.pyx":48 - * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): - * self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) - * def start_calc(self, device, data_r, dims, config): # <<<<<<<<<<<<<< - * self.thisptr.StartCalc(device, data_r, dims, config.encode()) - * def get_image_r(self): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_11start_calc(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_11start_calc(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_device = 0; - PyObject *__pyx_v_data_r = 0; - PyObject *__pyx_v_dims = 0; - PyObject *__pyx_v_config = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("start_calc (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_device,&__pyx_n_s_data_r,&__pyx_n_s_dims,&__pyx_n_s_config,0}; - PyObject* values[4] = {0,0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = PyDict_Size(__pyx_kwds); - switch (pos_args) { - case 0: - if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_device)) != 0)) kw_args--; - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_data_r)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc", 1, 4, 4, 1); __PYX_ERR(1, 48, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dims)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc", 1, 4, 4, 2); __PYX_ERR(1, 48, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_config)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc", 1, 4, 4, 3); __PYX_ERR(1, 48, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "start_calc") < 0)) __PYX_ERR(1, 48, __pyx_L3_error) - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - } - __pyx_v_device = values[0]; - __pyx_v_data_r = values[1]; - __pyx_v_dims = values[2]; - __pyx_v_config = values[3]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("start_calc", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 48, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_opencl.PyBridge.start_calc", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_10start_calc(((struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *)__pyx_v_self), __pyx_v_device, __pyx_v_data_r, __pyx_v_dims, __pyx_v_config); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_10start_calc(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_dims, PyObject *__pyx_v_config) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - std::vector __pyx_t_2; - std::vector __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - std::string __pyx_t_7; - __Pyx_RefNannySetupContext("start_calc", 0); - - /* "reccdi/src_py/cyth/bridge_opencl.pyx":49 - * self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) - * def start_calc(self, device, data_r, dims, config): - * self.thisptr.StartCalc(device, data_r, dims, config.encode()) # <<<<<<<<<<<<<< - * def get_image_r(self): - * return self.thisptr.GetImageR() - */ - __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_device); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 49, __pyx_L1_error) - __pyx_t_2 = __pyx_convert_vector_from_py_float(__pyx_v_data_r); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 49, __pyx_L1_error) - __pyx_t_3 = __pyx_convert_vector_from_py_int(__pyx_v_dims); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 49, __pyx_L1_error) - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_config, __pyx_n_s_encode); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 49, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = NULL; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { - __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); - if (likely(__pyx_t_6)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_5, function); - } - } - __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 49, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_7 = __pyx_convert_string_from_py_std__in_string(__pyx_t_4); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 49, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_v_self->thisptr->StartCalc(__pyx_t_1, __pyx_t_2, __pyx_t_3, __pyx_t_7); - - /* "reccdi/src_py/cyth/bridge_opencl.pyx":48 - * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): - * self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) - * def start_calc(self, device, data_r, dims, config): # <<<<<<<<<<<<<< - * self.thisptr.StartCalc(device, data_r, dims, config.encode()) - * def get_image_r(self): - */ - - /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_opencl.PyBridge.start_calc", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "reccdi/src_py/cyth/bridge_opencl.pyx":50 - * def start_calc(self, device, data_r, dims, config): - * self.thisptr.StartCalc(device, data_r, dims, config.encode()) - * def get_image_r(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetImageR() - * def get_image_i(self): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_13get_image_r(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_13get_image_r(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("get_image_r (wrapper)", 0); - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_12get_image_r(((struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_12get_image_r(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannySetupContext("get_image_r", 0); - - /* "reccdi/src_py/cyth/bridge_opencl.pyx":51 - * self.thisptr.StartCalc(device, data_r, dims, config.encode()) - * def get_image_r(self): - * return self.thisptr.GetImageR() # <<<<<<<<<<<<<< - * def get_image_i(self): - * return self.thisptr.GetImageI() - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_self->thisptr->GetImageR()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 51, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "reccdi/src_py/cyth/bridge_opencl.pyx":50 - * def start_calc(self, device, data_r, dims, config): - * self.thisptr.StartCalc(device, data_r, dims, config.encode()) - * def get_image_r(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetImageR() - * def get_image_i(self): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_opencl.PyBridge.get_image_r", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "reccdi/src_py/cyth/bridge_opencl.pyx":52 - * def get_image_r(self): - * return self.thisptr.GetImageR() - * def get_image_i(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetImageI() - * def get_errors(self): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_15get_image_i(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_15get_image_i(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("get_image_i (wrapper)", 0); - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_14get_image_i(((struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_14get_image_i(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannySetupContext("get_image_i", 0); - - /* "reccdi/src_py/cyth/bridge_opencl.pyx":53 - * return self.thisptr.GetImageR() - * def get_image_i(self): - * return self.thisptr.GetImageI() # <<<<<<<<<<<<<< - * def get_errors(self): - * return self.thisptr.GetErrors() - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_self->thisptr->GetImageI()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 53, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "reccdi/src_py/cyth/bridge_opencl.pyx":52 - * def get_image_r(self): - * return self.thisptr.GetImageR() - * def get_image_i(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetImageI() - * def get_errors(self): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_opencl.PyBridge.get_image_i", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "reccdi/src_py/cyth/bridge_opencl.pyx":54 - * def get_image_i(self): - * return self.thisptr.GetImageI() - * def get_errors(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetErrors() - * def get_support(self): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_17get_errors(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_17get_errors(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("get_errors (wrapper)", 0); - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_16get_errors(((struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_16get_errors(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannySetupContext("get_errors", 0); - - /* "reccdi/src_py/cyth/bridge_opencl.pyx":55 - * return self.thisptr.GetImageI() - * def get_errors(self): - * return self.thisptr.GetErrors() # <<<<<<<<<<<<<< - * def get_support(self): - * return self.thisptr.GetSupportV() - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_self->thisptr->GetErrors()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 55, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "reccdi/src_py/cyth/bridge_opencl.pyx":54 - * def get_image_i(self): - * return self.thisptr.GetImageI() - * def get_errors(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetErrors() - * def get_support(self): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_opencl.PyBridge.get_errors", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "reccdi/src_py/cyth/bridge_opencl.pyx":56 - * def get_errors(self): - * return self.thisptr.GetErrors() - * def get_support(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetSupportV() - * def get_coherence(self): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_19get_support(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_19get_support(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("get_support (wrapper)", 0); - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_18get_support(((struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_18get_support(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannySetupContext("get_support", 0); - - /* "reccdi/src_py/cyth/bridge_opencl.pyx":57 - * return self.thisptr.GetErrors() - * def get_support(self): - * return self.thisptr.GetSupportV() # <<<<<<<<<<<<<< - * def get_coherence(self): - * return self.thisptr.GetCoherenceV() - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_convert_vector_to_py_float(__pyx_v_self->thisptr->GetSupportV()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 57, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "reccdi/src_py/cyth/bridge_opencl.pyx":56 - * def get_errors(self): - * return self.thisptr.GetErrors() - * def get_support(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetSupportV() - * def get_coherence(self): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_opencl.PyBridge.get_support", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "reccdi/src_py/cyth/bridge_opencl.pyx":58 - * def get_support(self): - * return self.thisptr.GetSupportV() - * def get_coherence(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetCoherenceV() - * def get_reciprocal_r(self): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_21get_coherence(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_21get_coherence(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("get_coherence (wrapper)", 0); - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_20get_coherence(((struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_20get_coherence(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannySetupContext("get_coherence", 0); - - /* "reccdi/src_py/cyth/bridge_opencl.pyx":59 - * return self.thisptr.GetSupportV() - * def get_coherence(self): - * return self.thisptr.GetCoherenceV() # <<<<<<<<<<<<<< - * def get_reciprocal_r(self): - * return self.thisptr.GetReciprocalR() - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_self->thisptr->GetCoherenceV()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 59, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "reccdi/src_py/cyth/bridge_opencl.pyx":58 - * def get_support(self): - * return self.thisptr.GetSupportV() - * def get_coherence(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetCoherenceV() - * def get_reciprocal_r(self): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_opencl.PyBridge.get_coherence", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "reccdi/src_py/cyth/bridge_opencl.pyx":60 - * def get_coherence(self): - * return self.thisptr.GetCoherenceV() - * def get_reciprocal_r(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetReciprocalR() - * def get_reciprocal_i(self): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_23get_reciprocal_r(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_23get_reciprocal_r(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("get_reciprocal_r (wrapper)", 0); - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_22get_reciprocal_r(((struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_22get_reciprocal_r(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannySetupContext("get_reciprocal_r", 0); - - /* "reccdi/src_py/cyth/bridge_opencl.pyx":61 - * return self.thisptr.GetCoherenceV() - * def get_reciprocal_r(self): - * return self.thisptr.GetReciprocalR() # <<<<<<<<<<<<<< - * def get_reciprocal_i(self): - * return self.thisptr.GetReciprocalI() - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_self->thisptr->GetReciprocalR()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 61, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "reccdi/src_py/cyth/bridge_opencl.pyx":60 - * def get_coherence(self): - * return self.thisptr.GetCoherenceV() - * def get_reciprocal_r(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetReciprocalR() - * def get_reciprocal_i(self): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_opencl.PyBridge.get_reciprocal_r", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "reccdi/src_py/cyth/bridge_opencl.pyx":62 - * def get_reciprocal_r(self): - * return self.thisptr.GetReciprocalR() - * def get_reciprocal_i(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetReciprocalI() - * def get_flow(self): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_25get_reciprocal_i(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_25get_reciprocal_i(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("get_reciprocal_i (wrapper)", 0); - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_24get_reciprocal_i(((struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_24get_reciprocal_i(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannySetupContext("get_reciprocal_i", 0); - - /* "reccdi/src_py/cyth/bridge_opencl.pyx":63 - * return self.thisptr.GetReciprocalR() - * def get_reciprocal_i(self): - * return self.thisptr.GetReciprocalI() # <<<<<<<<<<<<<< - * def get_flow(self): - * return self.thisptr.GetFlowV() - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_self->thisptr->GetReciprocalI()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 63, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "reccdi/src_py/cyth/bridge_opencl.pyx":62 - * def get_reciprocal_r(self): - * return self.thisptr.GetReciprocalR() - * def get_reciprocal_i(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetReciprocalI() - * def get_flow(self): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_opencl.PyBridge.get_reciprocal_i", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "reccdi/src_py/cyth/bridge_opencl.pyx":64 - * def get_reciprocal_i(self): - * return self.thisptr.GetReciprocalI() - * def get_flow(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetFlowV() - * def get_iter_flow(self): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_27get_flow(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_27get_flow(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("get_flow (wrapper)", 0); - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_26get_flow(((struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_26get_flow(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannySetupContext("get_flow", 0); - - /* "reccdi/src_py/cyth/bridge_opencl.pyx":65 - * return self.thisptr.GetReciprocalI() - * def get_flow(self): - * return self.thisptr.GetFlowV() # <<<<<<<<<<<<<< - * def get_iter_flow(self): - * return self.thisptr.GetIterFlowV() - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_convert_vector_to_py_int(__pyx_v_self->thisptr->GetFlowV()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 65, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "reccdi/src_py/cyth/bridge_opencl.pyx":64 - * def get_reciprocal_i(self): - * return self.thisptr.GetReciprocalI() - * def get_flow(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetFlowV() - * def get_iter_flow(self): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_opencl.PyBridge.get_flow", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "reccdi/src_py/cyth/bridge_opencl.pyx":66 - * def get_flow(self): - * return self.thisptr.GetFlowV() - * def get_iter_flow(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetIterFlowV() - * def cleanup(self): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_29get_iter_flow(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_29get_iter_flow(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("get_iter_flow (wrapper)", 0); - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_28get_iter_flow(((struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_28get_iter_flow(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannySetupContext("get_iter_flow", 0); - - /* "reccdi/src_py/cyth/bridge_opencl.pyx":67 - * return self.thisptr.GetFlowV() - * def get_iter_flow(self): - * return self.thisptr.GetIterFlowV() # <<<<<<<<<<<<<< - * def cleanup(self): - * self.thisptr.Cleanup() - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_convert_vector_to_py_int(__pyx_v_self->thisptr->GetIterFlowV()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 67, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "reccdi/src_py/cyth/bridge_opencl.pyx":66 - * def get_flow(self): - * return self.thisptr.GetFlowV() - * def get_iter_flow(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetIterFlowV() - * def cleanup(self): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_opencl.PyBridge.get_iter_flow", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "reccdi/src_py/cyth/bridge_opencl.pyx":68 - * def get_iter_flow(self): - * return self.thisptr.GetIterFlowV() - * def cleanup(self): # <<<<<<<<<<<<<< - * self.thisptr.Cleanup() - * - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_31cleanup(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_31cleanup(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("cleanup (wrapper)", 0); - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_30cleanup(((struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_30cleanup(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("cleanup", 0); - - /* "reccdi/src_py/cyth/bridge_opencl.pyx":69 - * return self.thisptr.GetIterFlowV() - * def cleanup(self): - * self.thisptr.Cleanup() # <<<<<<<<<<<<<< - * - */ - __pyx_v_self->thisptr->Cleanup(); - - /* "reccdi/src_py/cyth/bridge_opencl.pyx":68 - * def get_iter_flow(self): - * return self.thisptr.GetIterFlowV() - * def cleanup(self): # <<<<<<<<<<<<<< - * self.thisptr.Cleanup() - * - */ - - /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError("no default __reduce__ due to non-trivial __cinit__") - * def __setstate_cython__(self, __pyx_state): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_33__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_33__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_32__reduce_cython__(((struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_32__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannySetupContext("__reduce_cython__", 0); - - /* "(tree fragment)":2 - * def __reduce_cython__(self): - * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< - * def __setstate_cython__(self, __pyx_state): - * raise TypeError("no default __reduce__ due to non-trivial __cinit__") - */ - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple_, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_Raise(__pyx_t_1, 0, 0, 0); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 2, __pyx_L1_error) - - /* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError("no default __reduce__ due to non-trivial __cinit__") - * def __setstate_cython__(self, __pyx_state): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_opencl.PyBridge.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError("no default __reduce__ due to non-trivial __cinit__") - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError("no default __reduce__ due to non-trivial __cinit__") - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_35__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_35__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_34__setstate_cython__(((struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_34__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannySetupContext("__setstate_cython__", 0); - - /* "(tree fragment)":4 - * raise TypeError("no default __reduce__ due to non-trivial __cinit__") - * def __setstate_cython__(self, __pyx_state): - * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< - */ - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_Raise(__pyx_t_1, 0, 0, 0); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 4, __pyx_L1_error) - - /* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError("no default __reduce__ due to non-trivial __cinit__") - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError("no default __reduce__ due to non-trivial __cinit__") - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_opencl.PyBridge.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "vector.from_py":45 - * - * @cname("__pyx_convert_vector_from_py_float") - * cdef vector[X] __pyx_convert_vector_from_py_float(object o) except *: # <<<<<<<<<<<<<< - * cdef vector[X] v - * for item in o: - */ - -static std::vector __pyx_convert_vector_from_py_float(PyObject *__pyx_v_o) { - std::vector __pyx_v_v; - PyObject *__pyx_v_item = NULL; - std::vector __pyx_r; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - Py_ssize_t __pyx_t_2; - PyObject *(*__pyx_t_3)(PyObject *); - PyObject *__pyx_t_4 = NULL; - float __pyx_t_5; - __Pyx_RefNannySetupContext("__pyx_convert_vector_from_py_float", 0); - - /* "vector.from_py":47 - * cdef vector[X] __pyx_convert_vector_from_py_float(object o) except *: - * cdef vector[X] v - * for item in o: # <<<<<<<<<<<<<< - * v.push_back(item) - * return v - */ - if (likely(PyList_CheckExact(__pyx_v_o)) || PyTuple_CheckExact(__pyx_v_o)) { - __pyx_t_1 = __pyx_v_o; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; - __pyx_t_3 = NULL; - } else { - __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_o); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 47, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 47, __pyx_L1_error) - } - for (;;) { - if (likely(!__pyx_t_3)) { - if (likely(PyList_CheckExact(__pyx_t_1))) { - if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 47, __pyx_L1_error) - #else - __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 47, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - #endif - } else { - if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 47, __pyx_L1_error) - #else - __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 47, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - #endif - } - } else { - __pyx_t_4 = __pyx_t_3(__pyx_t_1); - if (unlikely(!__pyx_t_4)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 47, __pyx_L1_error) - } - break; - } - __Pyx_GOTREF(__pyx_t_4); - } - __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_4); - __pyx_t_4 = 0; - - /* "vector.from_py":48 - * cdef vector[X] v - * for item in o: - * v.push_back(item) # <<<<<<<<<<<<<< - * return v - * - */ - __pyx_t_5 = __pyx_PyFloat_AsFloat(__pyx_v_item); if (unlikely((__pyx_t_5 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 48, __pyx_L1_error) - __pyx_v_v.push_back(((float)__pyx_t_5)); - - /* "vector.from_py":47 - * cdef vector[X] __pyx_convert_vector_from_py_float(object o) except *: - * cdef vector[X] v - * for item in o: # <<<<<<<<<<<<<< - * v.push_back(item) - * return v - */ - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "vector.from_py":49 - * for item in o: - * v.push_back(item) - * return v # <<<<<<<<<<<<<< - * - * - */ - __pyx_r = __pyx_v_v; - goto __pyx_L0; - - /* "vector.from_py":45 - * - * @cname("__pyx_convert_vector_from_py_float") - * cdef vector[X] __pyx_convert_vector_from_py_float(object o) except *: # <<<<<<<<<<<<<< - * cdef vector[X] v - * for item in o: - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("vector.from_py.__pyx_convert_vector_from_py_float", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_pretend_to_initialize(&__pyx_r); - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_item); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static std::vector __pyx_convert_vector_from_py_int(PyObject *__pyx_v_o) { - std::vector __pyx_v_v; - PyObject *__pyx_v_item = NULL; - std::vector __pyx_r; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - Py_ssize_t __pyx_t_2; - PyObject *(*__pyx_t_3)(PyObject *); - PyObject *__pyx_t_4 = NULL; - int __pyx_t_5; - __Pyx_RefNannySetupContext("__pyx_convert_vector_from_py_int", 0); - - /* "vector.from_py":47 - * cdef vector[X] __pyx_convert_vector_from_py_int(object o) except *: - * cdef vector[X] v - * for item in o: # <<<<<<<<<<<<<< - * v.push_back(item) - * return v - */ - if (likely(PyList_CheckExact(__pyx_v_o)) || PyTuple_CheckExact(__pyx_v_o)) { - __pyx_t_1 = __pyx_v_o; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; - __pyx_t_3 = NULL; - } else { - __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_o); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 47, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 47, __pyx_L1_error) - } - for (;;) { - if (likely(!__pyx_t_3)) { - if (likely(PyList_CheckExact(__pyx_t_1))) { - if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 47, __pyx_L1_error) - #else - __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 47, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - #endif - } else { - if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 47, __pyx_L1_error) - #else - __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 47, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - #endif - } - } else { - __pyx_t_4 = __pyx_t_3(__pyx_t_1); - if (unlikely(!__pyx_t_4)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 47, __pyx_L1_error) - } - break; - } - __Pyx_GOTREF(__pyx_t_4); - } - __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_4); - __pyx_t_4 = 0; - - /* "vector.from_py":48 - * cdef vector[X] v - * for item in o: - * v.push_back(item) # <<<<<<<<<<<<<< - * return v - * - */ - __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_v_item); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 48, __pyx_L1_error) - __pyx_v_v.push_back(((int)__pyx_t_5)); - - /* "vector.from_py":47 - * cdef vector[X] __pyx_convert_vector_from_py_int(object o) except *: - * cdef vector[X] v - * for item in o: # <<<<<<<<<<<<<< - * v.push_back(item) - * return v - */ - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "vector.from_py":49 - * for item in o: - * v.push_back(item) - * return v # <<<<<<<<<<<<<< - * - * - */ - __pyx_r = __pyx_v_v; - goto __pyx_L0; - - /* "vector.from_py":45 - * - * @cname("__pyx_convert_vector_from_py_int") - * cdef vector[X] __pyx_convert_vector_from_py_int(object o) except *: # <<<<<<<<<<<<<< - * cdef vector[X] v - * for item in o: - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("vector.from_py.__pyx_convert_vector_from_py_int", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_pretend_to_initialize(&__pyx_r); - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_item); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "string.from_py":13 - * - * @cname("__pyx_convert_string_from_py_std__in_string") - * cdef string __pyx_convert_string_from_py_std__in_string(object o) except *: # <<<<<<<<<<<<<< - * cdef Py_ssize_t length - * cdef const char* data = __Pyx_PyObject_AsStringAndSize(o, &length) - */ - -static std::string __pyx_convert_string_from_py_std__in_string(PyObject *__pyx_v_o) { - Py_ssize_t __pyx_v_length; - char const *__pyx_v_data; - std::string __pyx_r; - __Pyx_RefNannyDeclarations - char const *__pyx_t_1; - __Pyx_RefNannySetupContext("__pyx_convert_string_from_py_std__in_string", 0); - - /* "string.from_py":15 - * cdef string __pyx_convert_string_from_py_std__in_string(object o) except *: - * cdef Py_ssize_t length - * cdef const char* data = __Pyx_PyObject_AsStringAndSize(o, &length) # <<<<<<<<<<<<<< - * return string(data, length) - * - */ - __pyx_t_1 = __Pyx_PyObject_AsStringAndSize(__pyx_v_o, (&__pyx_v_length)); if (unlikely(__pyx_t_1 == ((char const *)NULL))) __PYX_ERR(0, 15, __pyx_L1_error) - __pyx_v_data = __pyx_t_1; - - /* "string.from_py":16 - * cdef Py_ssize_t length - * cdef const char* data = __Pyx_PyObject_AsStringAndSize(o, &length) - * return string(data, length) # <<<<<<<<<<<<<< - * - * - */ - __pyx_r = std::string(__pyx_v_data, __pyx_v_length); - goto __pyx_L0; - - /* "string.from_py":13 - * - * @cname("__pyx_convert_string_from_py_std__in_string") - * cdef string __pyx_convert_string_from_py_std__in_string(object o) except *: # <<<<<<<<<<<<<< - * cdef Py_ssize_t length - * cdef const char* data = __Pyx_PyObject_AsStringAndSize(o, &length) - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_AddTraceback("string.from_py.__pyx_convert_string_from_py_std__in_string", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_pretend_to_initialize(&__pyx_r); - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "vector.to_py":60 - * - * @cname("__pyx_convert_vector_to_py_double") - * cdef object __pyx_convert_vector_to_py_double(vector[X]& v): # <<<<<<<<<<<<<< - * return [v[i] for i in range(v.size())] - * - */ - -static PyObject *__pyx_convert_vector_to_py_double(const std::vector &__pyx_v_v) { - size_t __pyx_v_i; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - size_t __pyx_t_2; - size_t __pyx_t_3; - size_t __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - __Pyx_RefNannySetupContext("__pyx_convert_vector_to_py_double", 0); - - /* "vector.to_py":61 - * @cname("__pyx_convert_vector_to_py_double") - * cdef object __pyx_convert_vector_to_py_double(vector[X]& v): - * return [v[i] for i in range(v.size())] # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __pyx_v_v.size(); - __pyx_t_3 = __pyx_t_2; - for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { - __pyx_v_i = __pyx_t_4; - __pyx_t_5 = PyFloat_FromDouble((__pyx_v_v[__pyx_v_i])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - } - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "vector.to_py":60 - * - * @cname("__pyx_convert_vector_to_py_double") - * cdef object __pyx_convert_vector_to_py_double(vector[X]& v): # <<<<<<<<<<<<<< - * return [v[i] for i in range(v.size())] - * - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("vector.to_py.__pyx_convert_vector_to_py_double", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_convert_vector_to_py_float(const std::vector &__pyx_v_v) { - size_t __pyx_v_i; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - size_t __pyx_t_2; - size_t __pyx_t_3; - size_t __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - __Pyx_RefNannySetupContext("__pyx_convert_vector_to_py_float", 0); - - /* "vector.to_py":61 - * @cname("__pyx_convert_vector_to_py_float") - * cdef object __pyx_convert_vector_to_py_float(vector[X]& v): - * return [v[i] for i in range(v.size())] # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __pyx_v_v.size(); - __pyx_t_3 = __pyx_t_2; - for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { - __pyx_v_i = __pyx_t_4; - __pyx_t_5 = PyFloat_FromDouble((__pyx_v_v[__pyx_v_i])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - } - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "vector.to_py":60 - * - * @cname("__pyx_convert_vector_to_py_float") - * cdef object __pyx_convert_vector_to_py_float(vector[X]& v): # <<<<<<<<<<<<<< - * return [v[i] for i in range(v.size())] - * - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("vector.to_py.__pyx_convert_vector_to_py_float", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_convert_vector_to_py_int(const std::vector &__pyx_v_v) { - size_t __pyx_v_i; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - size_t __pyx_t_2; - size_t __pyx_t_3; - size_t __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - __Pyx_RefNannySetupContext("__pyx_convert_vector_to_py_int", 0); - - /* "vector.to_py":61 - * @cname("__pyx_convert_vector_to_py_int") - * cdef object __pyx_convert_vector_to_py_int(vector[X]& v): - * return [v[i] for i in range(v.size())] # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __pyx_v_v.size(); - __pyx_t_3 = __pyx_t_2; - for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { - __pyx_v_i = __pyx_t_4; - __pyx_t_5 = __Pyx_PyInt_From_int((__pyx_v_v[__pyx_v_i])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - } - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "vector.to_py":60 - * - * @cname("__pyx_convert_vector_to_py_int") - * cdef object __pyx_convert_vector_to_py_int(vector[X]& v): # <<<<<<<<<<<<<< - * return [v[i] for i in range(v.size())] - * - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("vector.to_py.__pyx_convert_vector_to_py_int", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_tp_new_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { - PyObject *o; - if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { - o = (*t->tp_alloc)(t, 0); - } else { - o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); - } - if (unlikely(!o)) return 0; - if (unlikely(__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad; - return o; - bad: - Py_DECREF(o); o = 0; - return NULL; -} - -static void __pyx_tp_dealloc_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge(PyObject *o) { - #if CYTHON_USE_TP_FINALIZE - if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) { - if (PyObject_CallFinalizerFromDealloc(o)) return; - } - #endif - { - PyObject *etype, *eval, *etb; - PyErr_Fetch(&etype, &eval, &etb); - ++Py_REFCNT(o); - __pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_3__dealloc__(o); - --Py_REFCNT(o); - PyErr_Restore(etype, eval, etb); - } - (*Py_TYPE(o)->tp_free)(o); -} - -static PyMethodDef __pyx_methods_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge[] = { - {"start_calc_with_guess", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_5start_calc_with_guess, METH_VARARGS|METH_KEYWORDS, 0}, - {"start_calc_with_guess_support", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_7start_calc_with_guess_support, METH_VARARGS|METH_KEYWORDS, 0}, - {"start_calc_with_guess_support_coh", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_9start_calc_with_guess_support_coh, METH_VARARGS|METH_KEYWORDS, 0}, - {"start_calc", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_11start_calc, METH_VARARGS|METH_KEYWORDS, 0}, - {"get_image_r", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_13get_image_r, METH_NOARGS, 0}, - {"get_image_i", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_15get_image_i, METH_NOARGS, 0}, - {"get_errors", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_17get_errors, METH_NOARGS, 0}, - {"get_support", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_19get_support, METH_NOARGS, 0}, - {"get_coherence", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_21get_coherence, METH_NOARGS, 0}, - {"get_reciprocal_r", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_23get_reciprocal_r, METH_NOARGS, 0}, - {"get_reciprocal_i", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_25get_reciprocal_i, METH_NOARGS, 0}, - {"get_flow", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_27get_flow, METH_NOARGS, 0}, - {"get_iter_flow", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_29get_iter_flow, METH_NOARGS, 0}, - {"cleanup", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_31cleanup, METH_NOARGS, 0}, - {"__reduce_cython__", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_33__reduce_cython__, METH_NOARGS, 0}, - {"__setstate_cython__", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_35__setstate_cython__, METH_O, 0}, - {0, 0, 0, 0} -}; - -static PyTypeObject __pyx_type_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge = { - PyVarObject_HEAD_INIT(0, 0) - "reccdi.src_py.cyth.bridge_opencl.PyBridge", /*tp_name*/ - sizeof(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge, /*tp_dealloc*/ - 0, /*tp_print*/ - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 - 0, /*tp_compare*/ - #endif - #if PY_MAJOR_VERSION >= 3 - 0, /*tp_as_async*/ - #endif - 0, /*tp_repr*/ - 0, /*tp_as_number*/ - 0, /*tp_as_sequence*/ - 0, /*tp_as_mapping*/ - 0, /*tp_hash*/ - 0, /*tp_call*/ - 0, /*tp_str*/ - 0, /*tp_getattro*/ - 0, /*tp_setattro*/ - 0, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/ - 0, /*tp_doc*/ - 0, /*tp_traverse*/ - 0, /*tp_clear*/ - 0, /*tp_richcompare*/ - 0, /*tp_weaklistoffset*/ - 0, /*tp_iter*/ - 0, /*tp_iternext*/ - __pyx_methods_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge, /*tp_methods*/ - 0, /*tp_members*/ - 0, /*tp_getset*/ - 0, /*tp_base*/ - 0, /*tp_dict*/ - 0, /*tp_descr_get*/ - 0, /*tp_descr_set*/ - 0, /*tp_dictoffset*/ - 0, /*tp_init*/ - 0, /*tp_alloc*/ - __pyx_tp_new_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge, /*tp_new*/ - 0, /*tp_free*/ - 0, /*tp_is_gc*/ - 0, /*tp_bases*/ - 0, /*tp_mro*/ - 0, /*tp_cache*/ - 0, /*tp_subclasses*/ - 0, /*tp_weaklist*/ - 0, /*tp_del*/ - 0, /*tp_version_tag*/ - #if PY_VERSION_HEX >= 0x030400a1 - 0, /*tp_finalize*/ - #endif - #if PY_VERSION_HEX >= 0x030800b1 - 0, /*tp_vectorcall*/ - #endif -}; - -static PyMethodDef __pyx_methods[] = { - {0, 0, 0, 0} -}; - -#if PY_MAJOR_VERSION >= 3 -#if CYTHON_PEP489_MULTI_PHASE_INIT -static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/ -static int __pyx_pymod_exec_bridge_opencl(PyObject* module); /*proto*/ -static PyModuleDef_Slot __pyx_moduledef_slots[] = { - {Py_mod_create, (void*)__pyx_pymod_create}, - {Py_mod_exec, (void*)__pyx_pymod_exec_bridge_opencl}, - {0, NULL} -}; -#endif - -static struct PyModuleDef __pyx_moduledef = { - PyModuleDef_HEAD_INIT, - "bridge_opencl", - 0, /* m_doc */ - #if CYTHON_PEP489_MULTI_PHASE_INIT - 0, /* m_size */ - #else - -1, /* m_size */ - #endif - __pyx_methods /* m_methods */, - #if CYTHON_PEP489_MULTI_PHASE_INIT - __pyx_moduledef_slots, /* m_slots */ - #else - NULL, /* m_reload */ - #endif - NULL, /* m_traverse */ - NULL, /* m_clear */ - NULL /* m_free */ -}; -#endif -#ifndef CYTHON_SMALL_CODE -#if defined(__clang__) - #define CYTHON_SMALL_CODE -#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) - #define CYTHON_SMALL_CODE __attribute__((cold)) -#else - #define CYTHON_SMALL_CODE -#endif -#endif - -static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_PyBridge, __pyx_k_PyBridge, sizeof(__pyx_k_PyBridge), 0, 0, 1, 1}, - {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1}, - {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, - {&__pyx_n_s_coh, __pyx_k_coh, sizeof(__pyx_k_coh), 0, 0, 1, 1}, - {&__pyx_n_s_coh_dims, __pyx_k_coh_dims, sizeof(__pyx_k_coh_dims), 0, 0, 1, 1}, - {&__pyx_n_s_config, __pyx_k_config, sizeof(__pyx_k_config), 0, 0, 1, 1}, - {&__pyx_n_s_data_r, __pyx_k_data_r, sizeof(__pyx_k_data_r), 0, 0, 1, 1}, - {&__pyx_n_s_device, __pyx_k_device, sizeof(__pyx_k_device), 0, 0, 1, 1}, - {&__pyx_n_s_dims, __pyx_k_dims, sizeof(__pyx_k_dims), 0, 0, 1, 1}, - {&__pyx_n_s_encode, __pyx_k_encode, sizeof(__pyx_k_encode), 0, 0, 1, 1}, - {&__pyx_n_s_getstate, __pyx_k_getstate, sizeof(__pyx_k_getstate), 0, 0, 1, 1}, - {&__pyx_n_s_guess_i, __pyx_k_guess_i, sizeof(__pyx_k_guess_i), 0, 0, 1, 1}, - {&__pyx_n_s_guess_r, __pyx_k_guess_r, sizeof(__pyx_k_guess_r), 0, 0, 1, 1}, - {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1}, - {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, - {&__pyx_kp_s_no_default___reduce___due_to_non, __pyx_k_no_default___reduce___due_to_non, sizeof(__pyx_k_no_default___reduce___due_to_non), 0, 0, 1, 0}, - {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, - {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1}, - {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1}, - {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1}, - {&__pyx_n_s_setstate, __pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 0, 1, 1}, - {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1}, - {&__pyx_n_s_support, __pyx_k_support, sizeof(__pyx_k_support), 0, 0, 1, 1}, - {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, - {0, 0, 0, 0, 0, 0, 0} -}; -static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { - __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(0, 2, __pyx_L1_error) - __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 61, __pyx_L1_error) - return 0; - __pyx_L1_error:; - return -1; -} - -static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); - - /* "(tree fragment)":2 - * def __reduce_cython__(self): - * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< - * def __setstate_cython__(self, __pyx_state): - * raise TypeError("no default __reduce__ due to non-trivial __cinit__") - */ - __pyx_tuple_ = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple_)) __PYX_ERR(0, 2, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple_); - __Pyx_GIVEREF(__pyx_tuple_); - - /* "(tree fragment)":4 - * raise TypeError("no default __reduce__ due to non-trivial __cinit__") - * def __setstate_cython__(self, __pyx_state): - * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< - */ - __pyx_tuple__2 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(0, 4, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__2); - __Pyx_GIVEREF(__pyx_tuple__2); - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; - __Pyx_RefNannyFinishContext(); - return -1; -} - -static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) { - if (__Pyx_InitStrings(__pyx_string_tab) < 0) __PYX_ERR(1, 1, __pyx_L1_error); - return 0; - __pyx_L1_error:; - return -1; -} - -static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(void); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(void); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(void); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(void); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(void); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(void); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(void); /*proto*/ - -static int __Pyx_modinit_global_init_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0); - /*--- Global init code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} - -static int __Pyx_modinit_variable_export_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0); - /*--- Variable export code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} - -static int __Pyx_modinit_function_export_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0); - /*--- Function export code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} - -static int __Pyx_modinit_type_init_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); - /*--- Type init code ---*/ - if (PyType_Ready(&__pyx_type_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge) < 0) __PYX_ERR(1, 36, __pyx_L1_error) - #if PY_VERSION_HEX < 0x030800B1 - __pyx_type_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge.tp_print = 0; - #endif - if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge.tp_dictoffset && __pyx_type_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge.tp_getattro == PyObject_GenericGetAttr)) { - __pyx_type_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge.tp_getattro = __Pyx_PyObject_GenericGetAttr; - } - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyBridge, (PyObject *)&__pyx_type_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge) < 0) __PYX_ERR(1, 36, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge) < 0) __PYX_ERR(1, 36, __pyx_L1_error) - __pyx_ptype_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge = &__pyx_type_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge; - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; - __Pyx_RefNannyFinishContext(); - return -1; -} - -static int __Pyx_modinit_type_import_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); - /*--- Type import code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} - -static int __Pyx_modinit_variable_import_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0); - /*--- Variable import code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} - -static int __Pyx_modinit_function_import_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0); - /*--- Function import code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} - - -#if PY_MAJOR_VERSION < 3 -#ifdef CYTHON_NO_PYINIT_EXPORT -#define __Pyx_PyMODINIT_FUNC void -#else -#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -#endif -#else -#ifdef CYTHON_NO_PYINIT_EXPORT -#define __Pyx_PyMODINIT_FUNC PyObject * -#else -#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -#endif -#endif - - -#if PY_MAJOR_VERSION < 3 -__Pyx_PyMODINIT_FUNC initbridge_opencl(void) CYTHON_SMALL_CODE; /*proto*/ -__Pyx_PyMODINIT_FUNC initbridge_opencl(void) -#else -__Pyx_PyMODINIT_FUNC PyInit_bridge_opencl(void) CYTHON_SMALL_CODE; /*proto*/ -__Pyx_PyMODINIT_FUNC PyInit_bridge_opencl(void) -#if CYTHON_PEP489_MULTI_PHASE_INIT -{ - return PyModuleDef_Init(&__pyx_moduledef); -} -static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) { - #if PY_VERSION_HEX >= 0x030700A1 - static PY_INT64_T main_interpreter_id = -1; - PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp); - if (main_interpreter_id == -1) { - main_interpreter_id = current_id; - return (unlikely(current_id == -1)) ? -1 : 0; - } else if (unlikely(main_interpreter_id != current_id)) - #else - static PyInterpreterState *main_interpreter = NULL; - PyInterpreterState *current_interpreter = PyThreadState_Get()->interp; - if (!main_interpreter) { - main_interpreter = current_interpreter; - } else if (unlikely(main_interpreter != current_interpreter)) - #endif - { - PyErr_SetString( - PyExc_ImportError, - "Interpreter change detected - this module can only be loaded into one interpreter per process."); - return -1; - } - return 0; -} -static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name, int allow_none) { - PyObject *value = PyObject_GetAttrString(spec, from_name); - int result = 0; - if (likely(value)) { - if (allow_none || value != Py_None) { - result = PyDict_SetItemString(moddict, to_name, value); - } - Py_DECREF(value); - } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) { - PyErr_Clear(); - } else { - result = -1; - } - return result; -} -static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, CYTHON_UNUSED PyModuleDef *def) { - PyObject *module = NULL, *moddict, *modname; - if (__Pyx_check_single_interpreter()) - return NULL; - if (__pyx_m) - return __Pyx_NewRef(__pyx_m); - modname = PyObject_GetAttrString(spec, "name"); - if (unlikely(!modname)) goto bad; - module = PyModule_NewObject(modname); - Py_DECREF(modname); - if (unlikely(!module)) goto bad; - moddict = PyModule_GetDict(module); - if (unlikely(!moddict)) goto bad; - if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__", 1) < 0)) goto bad; - if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__", 1) < 0)) goto bad; - if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__", 1) < 0)) goto bad; - if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__", 0) < 0)) goto bad; - return module; -bad: - Py_XDECREF(module); - return NULL; -} - - -static CYTHON_SMALL_CODE int __pyx_pymod_exec_bridge_opencl(PyObject *__pyx_pyinit_module) -#endif -#endif -{ - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannyDeclarations - #if CYTHON_PEP489_MULTI_PHASE_INIT - if (__pyx_m) { - if (__pyx_m == __pyx_pyinit_module) return 0; - PyErr_SetString(PyExc_RuntimeError, "Module 'bridge_opencl' has already been imported. Re-initialisation is not supported."); - return -1; - } - #elif PY_MAJOR_VERSION >= 3 - if (__pyx_m) return __Pyx_NewRef(__pyx_m); - #endif - #if CYTHON_REFNANNY -__Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny"); -if (!__Pyx_RefNanny) { - PyErr_Clear(); - __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny"); - if (!__Pyx_RefNanny) - Py_FatalError("failed to import 'refnanny' module"); -} -#endif - __Pyx_RefNannySetupContext("__Pyx_PyMODINIT_FUNC PyInit_bridge_opencl(void)", 0); - if (__Pyx_check_binary_version() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - #ifdef __Pxy_PyFrame_Initialize_Offsets - __Pxy_PyFrame_Initialize_Offsets(); - #endif - __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) __PYX_ERR(1, 1, __pyx_L1_error) - __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(1, 1, __pyx_L1_error) - __pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_unicode)) __PYX_ERR(1, 1, __pyx_L1_error) - #ifdef __Pyx_CyFunction_USED - if (__pyx_CyFunction_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - #endif - #ifdef __Pyx_FusedFunction_USED - if (__pyx_FusedFunction_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - #endif - #ifdef __Pyx_Coroutine_USED - if (__pyx_Coroutine_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - #endif - #ifdef __Pyx_Generator_USED - if (__pyx_Generator_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - #endif - #ifdef __Pyx_AsyncGen_USED - if (__pyx_AsyncGen_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - #endif - #ifdef __Pyx_StopAsyncIteration_USED - if (__pyx_StopAsyncIteration_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - #endif - /*--- Library function declarations ---*/ - /*--- Threads initialization code ---*/ - #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS - #ifdef WITH_THREAD /* Python build with threading support? */ - PyEval_InitThreads(); - #endif - #endif - /*--- Module creation code ---*/ - #if CYTHON_PEP489_MULTI_PHASE_INIT - __pyx_m = __pyx_pyinit_module; - Py_INCREF(__pyx_m); - #else - #if PY_MAJOR_VERSION < 3 - __pyx_m = Py_InitModule4("bridge_opencl", __pyx_methods, 0, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m); - #else - __pyx_m = PyModule_Create(&__pyx_moduledef); - #endif - if (unlikely(!__pyx_m)) __PYX_ERR(1, 1, __pyx_L1_error) - #endif - __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) __PYX_ERR(1, 1, __pyx_L1_error) - Py_INCREF(__pyx_d); - __pyx_b = PyImport_AddModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_b)) __PYX_ERR(1, 1, __pyx_L1_error) - Py_INCREF(__pyx_b); - __pyx_cython_runtime = PyImport_AddModule((char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(1, 1, __pyx_L1_error) - Py_INCREF(__pyx_cython_runtime); - if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) __PYX_ERR(1, 1, __pyx_L1_error); - /*--- Initialize various global constants etc. ---*/ - if (__Pyx_InitGlobals() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT) - if (__Pyx_init_sys_getdefaultencoding_params() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - #endif - if (__pyx_module_is_main_reccdi__src_py__cyth__bridge_opencl) { - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_name, __pyx_n_s_main) < 0) __PYX_ERR(1, 1, __pyx_L1_error) - } - #if PY_MAJOR_VERSION >= 3 - { - PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(1, 1, __pyx_L1_error) - if (!PyDict_GetItemString(modules, "reccdi.src_py.cyth.bridge_opencl")) { - if (unlikely(PyDict_SetItemString(modules, "reccdi.src_py.cyth.bridge_opencl", __pyx_m) < 0)) __PYX_ERR(1, 1, __pyx_L1_error) - } - } - #endif - /*--- Builtin init code ---*/ - if (__Pyx_InitCachedBuiltins() < 0) goto __pyx_L1_error; - /*--- Constants init code ---*/ - if (__Pyx_InitCachedConstants() < 0) goto __pyx_L1_error; - /*--- Global type/function init code ---*/ - (void)__Pyx_modinit_global_init_code(); - (void)__Pyx_modinit_variable_export_code(); - (void)__Pyx_modinit_function_export_code(); - if (unlikely(__Pyx_modinit_type_init_code() != 0)) goto __pyx_L1_error; - (void)__Pyx_modinit_type_import_code(); - (void)__Pyx_modinit_variable_import_code(); - (void)__Pyx_modinit_function_import_code(); - /*--- Execution code ---*/ - #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) - if (__Pyx_patch_abc() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - #endif - - /* "reccdi/src_py/cyth/bridge_opencl.pyx":1 - * # ######################################################################### # <<<<<<<<<<<<<< - * # Copyright (c) , UChicago Argonne, LLC. All rights reserved. # - * # # - */ - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "vector.to_py":60 - * - * @cname("__pyx_convert_vector_to_py_int") - * cdef object __pyx_convert_vector_to_py_int(vector[X]& v): # <<<<<<<<<<<<<< - * return [v[i] for i in range(v.size())] - * - */ - - /*--- Wrapped vars code ---*/ - - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - if (__pyx_m) { - if (__pyx_d) { - __Pyx_AddTraceback("init reccdi.src_py.cyth.bridge_opencl", __pyx_clineno, __pyx_lineno, __pyx_filename); - } - Py_CLEAR(__pyx_m); - } else if (!PyErr_Occurred()) { - PyErr_SetString(PyExc_ImportError, "init reccdi.src_py.cyth.bridge_opencl"); - } - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - #if CYTHON_PEP489_MULTI_PHASE_INIT - return (__pyx_m != NULL) ? 0 : -1; - #elif PY_MAJOR_VERSION >= 3 - return __pyx_m; - #else - return; - #endif -} - -/* --- Runtime support code --- */ -/* Refnanny */ -#if CYTHON_REFNANNY -static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) { - PyObject *m = NULL, *p = NULL; - void *r = NULL; - m = PyImport_ImportModule(modname); - if (!m) goto end; - p = PyObject_GetAttrString(m, "RefNannyAPI"); - if (!p) goto end; - r = PyLong_AsVoidPtr(p); -end: - Py_XDECREF(p); - Py_XDECREF(m); - return (__Pyx_RefNannyAPIStruct *)r; -} -#endif - -/* PyObjectGetAttrStr */ -#if CYTHON_USE_TYPE_SLOTS -static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) { - PyTypeObject* tp = Py_TYPE(obj); - if (likely(tp->tp_getattro)) - return tp->tp_getattro(obj, attr_name); -#if PY_MAJOR_VERSION < 3 - if (likely(tp->tp_getattr)) - return tp->tp_getattr(obj, PyString_AS_STRING(attr_name)); -#endif - return PyObject_GetAttr(obj, attr_name); -} -#endif - -/* GetBuiltinName */ -static PyObject *__Pyx_GetBuiltinName(PyObject *name) { - PyObject* result = __Pyx_PyObject_GetAttrStr(__pyx_b, name); - if (unlikely(!result)) { - PyErr_Format(PyExc_NameError, -#if PY_MAJOR_VERSION >= 3 - "name '%U' is not defined", name); -#else - "name '%.200s' is not defined", PyString_AS_STRING(name)); -#endif - } - return result; -} - -/* RaiseArgTupleInvalid */ -static void __Pyx_RaiseArgtupleInvalid( - const char* func_name, - int exact, - Py_ssize_t num_min, - Py_ssize_t num_max, - Py_ssize_t num_found) -{ - Py_ssize_t num_expected; - const char *more_or_less; - if (num_found < num_min) { - num_expected = num_min; - more_or_less = "at least"; - } else { - num_expected = num_max; - more_or_less = "at most"; - } - if (exact) { - more_or_less = "exactly"; - } - PyErr_Format(PyExc_TypeError, - "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T "d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T "d given)", - func_name, more_or_less, num_expected, - (num_expected == 1) ? "" : "s", num_found); -} - -/* KeywordStringCheck */ -static int __Pyx_CheckKeywordStrings( - PyObject *kwdict, - const char* function_name, - int kw_allowed) -{ - PyObject* key = 0; - Py_ssize_t pos = 0; -#if CYTHON_COMPILING_IN_PYPY - if (!kw_allowed && PyDict_Next(kwdict, &pos, &key, 0)) - goto invalid_keyword; - return 1; -#else - while (PyDict_Next(kwdict, &pos, &key, 0)) { - #if PY_MAJOR_VERSION < 3 - if (unlikely(!PyString_Check(key))) - #endif - if (unlikely(!PyUnicode_Check(key))) - goto invalid_keyword_type; - } - if ((!kw_allowed) && unlikely(key)) - goto invalid_keyword; - return 1; -invalid_keyword_type: - PyErr_Format(PyExc_TypeError, - "%.200s() keywords must be strings", function_name); - return 0; -#endif -invalid_keyword: - PyErr_Format(PyExc_TypeError, - #if PY_MAJOR_VERSION < 3 - "%.200s() got an unexpected keyword argument '%.200s'", - function_name, PyString_AsString(key)); - #else - "%s() got an unexpected keyword argument '%U'", - function_name, key); - #endif - return 0; -} - -/* RaiseDoubleKeywords */ -static void __Pyx_RaiseDoubleKeywordsError( - const char* func_name, - PyObject* kw_name) -{ - PyErr_Format(PyExc_TypeError, - #if PY_MAJOR_VERSION >= 3 - "%s() got multiple values for keyword argument '%U'", func_name, kw_name); - #else - "%s() got multiple values for keyword argument '%s'", func_name, - PyString_AsString(kw_name)); - #endif -} - -/* ParseKeywords */ -static int __Pyx_ParseOptionalKeywords( - PyObject *kwds, - PyObject **argnames[], - PyObject *kwds2, - PyObject *values[], - Py_ssize_t num_pos_args, - const char* function_name) -{ - PyObject *key = 0, *value = 0; - Py_ssize_t pos = 0; - PyObject*** name; - PyObject*** first_kw_arg = argnames + num_pos_args; - while (PyDict_Next(kwds, &pos, &key, &value)) { - name = first_kw_arg; - while (*name && (**name != key)) name++; - if (*name) { - values[name-argnames] = value; - continue; - } - name = first_kw_arg; - #if PY_MAJOR_VERSION < 3 - if (likely(PyString_CheckExact(key)) || likely(PyString_Check(key))) { - while (*name) { - if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key)) - && _PyString_Eq(**name, key)) { - values[name-argnames] = value; - break; - } - name++; - } - if (*name) continue; - else { - PyObject*** argname = argnames; - while (argname != first_kw_arg) { - if ((**argname == key) || ( - (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key)) - && _PyString_Eq(**argname, key))) { - goto arg_passed_twice; - } - argname++; - } - } - } else - #endif - if (likely(PyUnicode_Check(key))) { - while (*name) { - int cmp = (**name == key) ? 0 : - #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 - (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : - #endif - PyUnicode_Compare(**name, key); - if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; - if (cmp == 0) { - values[name-argnames] = value; - break; - } - name++; - } - if (*name) continue; - else { - PyObject*** argname = argnames; - while (argname != first_kw_arg) { - int cmp = (**argname == key) ? 0 : - #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 - (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : - #endif - PyUnicode_Compare(**argname, key); - if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; - if (cmp == 0) goto arg_passed_twice; - argname++; - } - } - } else - goto invalid_keyword_type; - if (kwds2) { - if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad; - } else { - goto invalid_keyword; - } - } - return 0; -arg_passed_twice: - __Pyx_RaiseDoubleKeywordsError(function_name, key); - goto bad; -invalid_keyword_type: - PyErr_Format(PyExc_TypeError, - "%.200s() keywords must be strings", function_name); - goto bad; -invalid_keyword: - PyErr_Format(PyExc_TypeError, - #if PY_MAJOR_VERSION < 3 - "%.200s() got an unexpected keyword argument '%.200s'", - function_name, PyString_AsString(key)); - #else - "%s() got an unexpected keyword argument '%U'", - function_name, key); - #endif -bad: - return -1; -} - -/* PyFunctionFastCall */ -#if CYTHON_FAST_PYCALL -static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na, - PyObject *globals) { - PyFrameObject *f; - PyThreadState *tstate = __Pyx_PyThreadState_Current; - PyObject **fastlocals; - Py_ssize_t i; - PyObject *result; - assert(globals != NULL); - /* XXX Perhaps we should create a specialized - PyFrame_New() that doesn't take locals, but does - take builtins without sanity checking them. - */ - assert(tstate != NULL); - f = PyFrame_New(tstate, co, globals, NULL); - if (f == NULL) { - return NULL; - } - fastlocals = __Pyx_PyFrame_GetLocalsplus(f); - for (i = 0; i < na; i++) { - Py_INCREF(*args); - fastlocals[i] = *args++; - } - result = PyEval_EvalFrameEx(f,0); - ++tstate->recursion_depth; - Py_DECREF(f); - --tstate->recursion_depth; - return result; -} -#if 1 || PY_VERSION_HEX < 0x030600B1 -static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs) { - PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func); - PyObject *globals = PyFunction_GET_GLOBALS(func); - PyObject *argdefs = PyFunction_GET_DEFAULTS(func); - PyObject *closure; -#if PY_MAJOR_VERSION >= 3 - PyObject *kwdefs; -#endif - PyObject *kwtuple, **k; - PyObject **d; - Py_ssize_t nd; - Py_ssize_t nk; - PyObject *result; - assert(kwargs == NULL || PyDict_Check(kwargs)); - nk = kwargs ? PyDict_Size(kwargs) : 0; - if (Py_EnterRecursiveCall((char*)" while calling a Python object")) { - return NULL; - } - if ( -#if PY_MAJOR_VERSION >= 3 - co->co_kwonlyargcount == 0 && -#endif - likely(kwargs == NULL || nk == 0) && - co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE)) { - if (argdefs == NULL && co->co_argcount == nargs) { - result = __Pyx_PyFunction_FastCallNoKw(co, args, nargs, globals); - goto done; - } - else if (nargs == 0 && argdefs != NULL - && co->co_argcount == Py_SIZE(argdefs)) { - /* function called with no arguments, but all parameters have - a default value: use default values as arguments .*/ - args = &PyTuple_GET_ITEM(argdefs, 0); - result =__Pyx_PyFunction_FastCallNoKw(co, args, Py_SIZE(argdefs), globals); - goto done; - } - } - if (kwargs != NULL) { - Py_ssize_t pos, i; - kwtuple = PyTuple_New(2 * nk); - if (kwtuple == NULL) { - result = NULL; - goto done; - } - k = &PyTuple_GET_ITEM(kwtuple, 0); - pos = i = 0; - while (PyDict_Next(kwargs, &pos, &k[i], &k[i+1])) { - Py_INCREF(k[i]); - Py_INCREF(k[i+1]); - i += 2; - } - nk = i / 2; - } - else { - kwtuple = NULL; - k = NULL; - } - closure = PyFunction_GET_CLOSURE(func); -#if PY_MAJOR_VERSION >= 3 - kwdefs = PyFunction_GET_KW_DEFAULTS(func); -#endif - if (argdefs != NULL) { - d = &PyTuple_GET_ITEM(argdefs, 0); - nd = Py_SIZE(argdefs); - } - else { - d = NULL; - nd = 0; - } -#if PY_MAJOR_VERSION >= 3 - result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL, - args, (int)nargs, - k, (int)nk, - d, (int)nd, kwdefs, closure); -#else - result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL, - args, (int)nargs, - k, (int)nk, - d, (int)nd, closure); -#endif - Py_XDECREF(kwtuple); -done: - Py_LeaveRecursiveCall(); - return result; -} -#endif -#endif - -/* PyObjectCall */ -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { - PyObject *result; - ternaryfunc call = func->ob_type->tp_call; - if (unlikely(!call)) - return PyObject_Call(func, arg, kw); - if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) - return NULL; - result = (*call)(func, arg, kw); - Py_LeaveRecursiveCall(); - if (unlikely(!result) && unlikely(!PyErr_Occurred())) { - PyErr_SetString( - PyExc_SystemError, - "NULL result without error in PyObject_Call"); - } - return result; -} -#endif - -/* PyObjectCallMethO */ -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) { - PyObject *self, *result; - PyCFunction cfunc; - cfunc = PyCFunction_GET_FUNCTION(func); - self = PyCFunction_GET_SELF(func); - if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) - return NULL; - result = cfunc(self, arg); - Py_LeaveRecursiveCall(); - if (unlikely(!result) && unlikely(!PyErr_Occurred())) { - PyErr_SetString( - PyExc_SystemError, - "NULL result without error in PyObject_Call"); - } - return result; -} -#endif - -/* PyObjectCallNoArg */ -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) { -#if CYTHON_FAST_PYCALL - if (PyFunction_Check(func)) { - return __Pyx_PyFunction_FastCall(func, NULL, 0); - } -#endif -#ifdef __Pyx_CyFunction_USED - if (likely(PyCFunction_Check(func) || __Pyx_CyFunction_Check(func))) -#else - if (likely(PyCFunction_Check(func))) -#endif - { - if (likely(PyCFunction_GET_FLAGS(func) & METH_NOARGS)) { - return __Pyx_PyObject_CallMethO(func, NULL); - } - } - return __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL); -} -#endif - -/* PyCFunctionFastCall */ -#if CYTHON_FAST_PYCCALL -static CYTHON_INLINE PyObject * __Pyx_PyCFunction_FastCall(PyObject *func_obj, PyObject **args, Py_ssize_t nargs) { - PyCFunctionObject *func = (PyCFunctionObject*)func_obj; - PyCFunction meth = PyCFunction_GET_FUNCTION(func); - PyObject *self = PyCFunction_GET_SELF(func); - int flags = PyCFunction_GET_FLAGS(func); - assert(PyCFunction_Check(func)); - assert(METH_FASTCALL == (flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS))); - assert(nargs >= 0); - assert(nargs == 0 || args != NULL); - /* _PyCFunction_FastCallDict() must not be called with an exception set, - because it may clear it (directly or indirectly) and so the - caller loses its exception */ - assert(!PyErr_Occurred()); - if ((PY_VERSION_HEX < 0x030700A0) || unlikely(flags & METH_KEYWORDS)) { - return (*((__Pyx_PyCFunctionFastWithKeywords)(void*)meth)) (self, args, nargs, NULL); - } else { - return (*((__Pyx_PyCFunctionFast)(void*)meth)) (self, args, nargs); - } -} -#endif - -/* PyObjectCallOneArg */ -#if CYTHON_COMPILING_IN_CPYTHON -static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) { - PyObject *result; - PyObject *args = PyTuple_New(1); - if (unlikely(!args)) return NULL; - Py_INCREF(arg); - PyTuple_SET_ITEM(args, 0, arg); - result = __Pyx_PyObject_Call(func, args, NULL); - Py_DECREF(args); - return result; -} -static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { -#if CYTHON_FAST_PYCALL - if (PyFunction_Check(func)) { - return __Pyx_PyFunction_FastCall(func, &arg, 1); - } -#endif - if (likely(PyCFunction_Check(func))) { - if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { - return __Pyx_PyObject_CallMethO(func, arg); -#if CYTHON_FAST_PYCCALL - } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) { - return __Pyx_PyCFunction_FastCall(func, &arg, 1); -#endif - } - } - return __Pyx__PyObject_CallOneArg(func, arg); -} -#else -static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { - PyObject *result; - PyObject *args = PyTuple_Pack(1, arg); - if (unlikely(!args)) return NULL; - result = __Pyx_PyObject_Call(func, args, NULL); - Py_DECREF(args); - return result; -} -#endif - -/* PyErrFetchRestore */ -#if CYTHON_FAST_THREAD_STATE -static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { - PyObject *tmp_type, *tmp_value, *tmp_tb; - tmp_type = tstate->curexc_type; - tmp_value = tstate->curexc_value; - tmp_tb = tstate->curexc_traceback; - tstate->curexc_type = type; - tstate->curexc_value = value; - tstate->curexc_traceback = tb; - Py_XDECREF(tmp_type); - Py_XDECREF(tmp_value); - Py_XDECREF(tmp_tb); -} -static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { - *type = tstate->curexc_type; - *value = tstate->curexc_value; - *tb = tstate->curexc_traceback; - tstate->curexc_type = 0; - tstate->curexc_value = 0; - tstate->curexc_traceback = 0; -} -#endif - -/* RaiseException */ -#if PY_MAJOR_VERSION < 3 -static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, - CYTHON_UNUSED PyObject *cause) { - __Pyx_PyThreadState_declare - Py_XINCREF(type); - if (!value || value == Py_None) - value = NULL; - else - Py_INCREF(value); - if (!tb || tb == Py_None) - tb = NULL; - else { - Py_INCREF(tb); - if (!PyTraceBack_Check(tb)) { - PyErr_SetString(PyExc_TypeError, - "raise: arg 3 must be a traceback or None"); - goto raise_error; - } - } - if (PyType_Check(type)) { -#if CYTHON_COMPILING_IN_PYPY - if (!value) { - Py_INCREF(Py_None); - value = Py_None; - } -#endif - PyErr_NormalizeException(&type, &value, &tb); - } else { - if (value) { - PyErr_SetString(PyExc_TypeError, - "instance exception may not have a separate value"); - goto raise_error; - } - value = type; - type = (PyObject*) Py_TYPE(type); - Py_INCREF(type); - if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) { - PyErr_SetString(PyExc_TypeError, - "raise: exception class must be a subclass of BaseException"); - goto raise_error; - } - } - __Pyx_PyThreadState_assign - __Pyx_ErrRestore(type, value, tb); - return; -raise_error: - Py_XDECREF(value); - Py_XDECREF(type); - Py_XDECREF(tb); - return; -} -#else -static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) { - PyObject* owned_instance = NULL; - if (tb == Py_None) { - tb = 0; - } else if (tb && !PyTraceBack_Check(tb)) { - PyErr_SetString(PyExc_TypeError, - "raise: arg 3 must be a traceback or None"); - goto bad; - } - if (value == Py_None) - value = 0; - if (PyExceptionInstance_Check(type)) { - if (value) { - PyErr_SetString(PyExc_TypeError, - "instance exception may not have a separate value"); - goto bad; - } - value = type; - type = (PyObject*) Py_TYPE(value); - } else if (PyExceptionClass_Check(type)) { - PyObject *instance_class = NULL; - if (value && PyExceptionInstance_Check(value)) { - instance_class = (PyObject*) Py_TYPE(value); - if (instance_class != type) { - int is_subclass = PyObject_IsSubclass(instance_class, type); - if (!is_subclass) { - instance_class = NULL; - } else if (unlikely(is_subclass == -1)) { - goto bad; - } else { - type = instance_class; - } - } - } - if (!instance_class) { - PyObject *args; - if (!value) - args = PyTuple_New(0); - else if (PyTuple_Check(value)) { - Py_INCREF(value); - args = value; - } else - args = PyTuple_Pack(1, value); - if (!args) - goto bad; - owned_instance = PyObject_Call(type, args, NULL); - Py_DECREF(args); - if (!owned_instance) - goto bad; - value = owned_instance; - if (!PyExceptionInstance_Check(value)) { - PyErr_Format(PyExc_TypeError, - "calling %R should have returned an instance of " - "BaseException, not %R", - type, Py_TYPE(value)); - goto bad; - } - } - } else { - PyErr_SetString(PyExc_TypeError, - "raise: exception class must be a subclass of BaseException"); - goto bad; - } - if (cause) { - PyObject *fixed_cause; - if (cause == Py_None) { - fixed_cause = NULL; - } else if (PyExceptionClass_Check(cause)) { - fixed_cause = PyObject_CallObject(cause, NULL); - if (fixed_cause == NULL) - goto bad; - } else if (PyExceptionInstance_Check(cause)) { - fixed_cause = cause; - Py_INCREF(fixed_cause); - } else { - PyErr_SetString(PyExc_TypeError, - "exception causes must derive from " - "BaseException"); - goto bad; - } - PyException_SetCause(value, fixed_cause); - } - PyErr_SetObject(type, value); - if (tb) { -#if CYTHON_COMPILING_IN_PYPY - PyObject *tmp_type, *tmp_value, *tmp_tb; - PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb); - Py_INCREF(tb); - PyErr_Restore(tmp_type, tmp_value, tb); - Py_XDECREF(tmp_tb); -#else - PyThreadState *tstate = __Pyx_PyThreadState_Current; - PyObject* tmp_tb = tstate->curexc_traceback; - if (tb != tmp_tb) { - Py_INCREF(tb); - tstate->curexc_traceback = tb; - Py_XDECREF(tmp_tb); - } -#endif - } -bad: - Py_XDECREF(owned_instance); - return; -} -#endif - -/* PyObject_GenericGetAttrNoDict */ -#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 -static PyObject *__Pyx_RaiseGenericGetAttributeError(PyTypeObject *tp, PyObject *attr_name) { - PyErr_Format(PyExc_AttributeError, -#if PY_MAJOR_VERSION >= 3 - "'%.50s' object has no attribute '%U'", - tp->tp_name, attr_name); -#else - "'%.50s' object has no attribute '%.400s'", - tp->tp_name, PyString_AS_STRING(attr_name)); -#endif - return NULL; -} -static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name) { - PyObject *descr; - PyTypeObject *tp = Py_TYPE(obj); - if (unlikely(!PyString_Check(attr_name))) { - return PyObject_GenericGetAttr(obj, attr_name); - } - assert(!tp->tp_dictoffset); - descr = _PyType_Lookup(tp, attr_name); - if (unlikely(!descr)) { - return __Pyx_RaiseGenericGetAttributeError(tp, attr_name); - } - Py_INCREF(descr); - #if PY_MAJOR_VERSION < 3 - if (likely(PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_HAVE_CLASS))) - #endif - { - descrgetfunc f = Py_TYPE(descr)->tp_descr_get; - if (unlikely(f)) { - PyObject *res = f(descr, obj, (PyObject *)tp); - Py_DECREF(descr); - return res; - } - } - return descr; -} -#endif - -/* PyObject_GenericGetAttr */ -#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 -static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name) { - if (unlikely(Py_TYPE(obj)->tp_dictoffset)) { - return PyObject_GenericGetAttr(obj, attr_name); - } - return __Pyx_PyObject_GenericGetAttrNoDict(obj, attr_name); -} -#endif - -/* SetupReduce */ -static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) { - int ret; - PyObject *name_attr; - name_attr = __Pyx_PyObject_GetAttrStr(meth, __pyx_n_s_name); - if (likely(name_attr)) { - ret = PyObject_RichCompareBool(name_attr, name, Py_EQ); - } else { - ret = -1; - } - if (unlikely(ret < 0)) { - PyErr_Clear(); - ret = 0; - } - Py_XDECREF(name_attr); - return ret; -} -static int __Pyx_setup_reduce(PyObject* type_obj) { - int ret = 0; - PyObject *object_reduce = NULL; - PyObject *object_reduce_ex = NULL; - PyObject *reduce = NULL; - PyObject *reduce_ex = NULL; - PyObject *reduce_cython = NULL; - PyObject *setstate = NULL; - PyObject *setstate_cython = NULL; -#if CYTHON_USE_PYTYPE_LOOKUP - if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto GOOD; -#else - if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto GOOD; -#endif -#if CYTHON_USE_PYTYPE_LOOKUP - object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; -#else - object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; -#endif - reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto BAD; - if (reduce_ex == object_reduce_ex) { -#if CYTHON_USE_PYTYPE_LOOKUP - object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; -#else - object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; -#endif - reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto BAD; - if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) { - reduce_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_cython); if (unlikely(!reduce_cython)) goto BAD; - ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto BAD; - ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto BAD; - setstate = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate); - if (!setstate) PyErr_Clear(); - if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) { - setstate_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate_cython); if (unlikely(!setstate_cython)) goto BAD; - ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto BAD; - ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto BAD; - } - PyType_Modified((PyTypeObject*)type_obj); - } - } - goto GOOD; -BAD: - if (!PyErr_Occurred()) - PyErr_Format(PyExc_RuntimeError, "Unable to initialize pickling for %s", ((PyTypeObject*)type_obj)->tp_name); - ret = -1; -GOOD: -#if !CYTHON_USE_PYTYPE_LOOKUP - Py_XDECREF(object_reduce); - Py_XDECREF(object_reduce_ex); -#endif - Py_XDECREF(reduce); - Py_XDECREF(reduce_ex); - Py_XDECREF(reduce_cython); - Py_XDECREF(setstate); - Py_XDECREF(setstate_cython); - return ret; -} - -/* PyDictVersioning */ -#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS -static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) { - PyObject *dict = Py_TYPE(obj)->tp_dict; - return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0; -} -static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) { - PyObject **dictptr = NULL; - Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset; - if (offset) { -#if CYTHON_COMPILING_IN_CPYTHON - dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj); -#else - dictptr = _PyObject_GetDictPtr(obj); -#endif - } - return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0; -} -static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) { - PyObject *dict = Py_TYPE(obj)->tp_dict; - if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict))) - return 0; - return obj_dict_version == __Pyx_get_object_dict_version(obj); -} -#endif - -/* CLineInTraceback */ -#ifndef CYTHON_CLINE_IN_TRACEBACK -static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { - PyObject *use_cline; - PyObject *ptype, *pvalue, *ptraceback; -#if CYTHON_COMPILING_IN_CPYTHON - PyObject **cython_runtime_dict; -#endif - if (unlikely(!__pyx_cython_runtime)) { - return c_line; - } - __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback); -#if CYTHON_COMPILING_IN_CPYTHON - cython_runtime_dict = _PyObject_GetDictPtr(__pyx_cython_runtime); - if (likely(cython_runtime_dict)) { - __PYX_PY_DICT_LOOKUP_IF_MODIFIED( - use_cline, *cython_runtime_dict, - __Pyx_PyDict_GetItemStr(*cython_runtime_dict, __pyx_n_s_cline_in_traceback)) - } else -#endif - { - PyObject *use_cline_obj = __Pyx_PyObject_GetAttrStr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback); - if (use_cline_obj) { - use_cline = PyObject_Not(use_cline_obj) ? Py_False : Py_True; - Py_DECREF(use_cline_obj); - } else { - PyErr_Clear(); - use_cline = NULL; - } - } - if (!use_cline) { - c_line = 0; - PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); - } - else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) { - c_line = 0; - } - __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback); - return c_line; -} -#endif - -/* CodeObjectCache */ -static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) { - int start = 0, mid = 0, end = count - 1; - if (end >= 0 && code_line > entries[end].code_line) { - return count; - } - while (start < end) { - mid = start + (end - start) / 2; - if (code_line < entries[mid].code_line) { - end = mid; - } else if (code_line > entries[mid].code_line) { - start = mid + 1; - } else { - return mid; - } - } - if (code_line <= entries[mid].code_line) { - return mid; - } else { - return mid + 1; - } -} -static PyCodeObject *__pyx_find_code_object(int code_line) { - PyCodeObject* code_object; - int pos; - if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) { - return NULL; - } - pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); - if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) { - return NULL; - } - code_object = __pyx_code_cache.entries[pos].code_object; - Py_INCREF(code_object); - return code_object; -} -static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { - int pos, i; - __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries; - if (unlikely(!code_line)) { - return; - } - if (unlikely(!entries)) { - entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry)); - if (likely(entries)) { - __pyx_code_cache.entries = entries; - __pyx_code_cache.max_count = 64; - __pyx_code_cache.count = 1; - entries[0].code_line = code_line; - entries[0].code_object = code_object; - Py_INCREF(code_object); - } - return; - } - pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); - if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) { - PyCodeObject* tmp = entries[pos].code_object; - entries[pos].code_object = code_object; - Py_DECREF(tmp); - return; - } - if (__pyx_code_cache.count == __pyx_code_cache.max_count) { - int new_max = __pyx_code_cache.max_count + 64; - entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( - __pyx_code_cache.entries, (size_t)new_max*sizeof(__Pyx_CodeObjectCacheEntry)); - if (unlikely(!entries)) { - return; - } - __pyx_code_cache.entries = entries; - __pyx_code_cache.max_count = new_max; - } - for (i=__pyx_code_cache.count; i>pos; i--) { - entries[i] = entries[i-1]; - } - entries[pos].code_line = code_line; - entries[pos].code_object = code_object; - __pyx_code_cache.count++; - Py_INCREF(code_object); -} - -/* AddTraceback */ -#include "compile.h" -#include "frameobject.h" -#include "traceback.h" -static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - const char *funcname, int c_line, - int py_line, const char *filename) { - PyCodeObject *py_code = 0; - PyObject *py_srcfile = 0; - PyObject *py_funcname = 0; - #if PY_MAJOR_VERSION < 3 - py_srcfile = PyString_FromString(filename); - #else - py_srcfile = PyUnicode_FromString(filename); - #endif - if (!py_srcfile) goto bad; - if (c_line) { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); - #else - py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); - #endif - } - else { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromString(funcname); - #else - py_funcname = PyUnicode_FromString(funcname); - #endif - } - if (!py_funcname) goto bad; - py_code = __Pyx_PyCode_New( - 0, - 0, - 0, - 0, - 0, - __pyx_empty_bytes, /*PyObject *code,*/ - __pyx_empty_tuple, /*PyObject *consts,*/ - __pyx_empty_tuple, /*PyObject *names,*/ - __pyx_empty_tuple, /*PyObject *varnames,*/ - __pyx_empty_tuple, /*PyObject *freevars,*/ - __pyx_empty_tuple, /*PyObject *cellvars,*/ - py_srcfile, /*PyObject *filename,*/ - py_funcname, /*PyObject *name,*/ - py_line, - __pyx_empty_bytes /*PyObject *lnotab*/ - ); - Py_DECREF(py_srcfile); - Py_DECREF(py_funcname); - return py_code; -bad: - Py_XDECREF(py_srcfile); - Py_XDECREF(py_funcname); - return NULL; -} -static void __Pyx_AddTraceback(const char *funcname, int c_line, - int py_line, const char *filename) { - PyCodeObject *py_code = 0; - PyFrameObject *py_frame = 0; - PyThreadState *tstate = __Pyx_PyThreadState_Current; - if (c_line) { - c_line = __Pyx_CLineForTraceback(tstate, c_line); - } - py_code = __pyx_find_code_object(c_line ? -c_line : py_line); - if (!py_code) { - py_code = __Pyx_CreateCodeObjectForTraceback( - funcname, c_line, py_line, filename); - if (!py_code) goto bad; - __pyx_insert_code_object(c_line ? -c_line : py_line, py_code); - } - py_frame = PyFrame_New( - tstate, /*PyThreadState *tstate,*/ - py_code, /*PyCodeObject *code,*/ - __pyx_d, /*PyObject *globals,*/ - 0 /*PyObject *locals*/ - ); - if (!py_frame) goto bad; - __Pyx_PyFrame_SetLineNumber(py_frame, py_line); - PyTraceBack_Here(py_frame); -bad: - Py_XDECREF(py_code); - Py_XDECREF(py_frame); -} - -/* CIntFromPyVerify */ -#define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\ - __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0) -#define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\ - __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1) -#define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\ - {\ - func_type value = func_value;\ - if (sizeof(target_type) < sizeof(func_type)) {\ - if (unlikely(value != (func_type) (target_type) value)) {\ - func_type zero = 0;\ - if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\ - return (target_type) -1;\ - if (is_unsigned && unlikely(value < zero))\ - goto raise_neg_overflow;\ - else\ - goto raise_overflow;\ - }\ - }\ - return (target_type) value;\ - } - -/* CIntToPy */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { - const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; - const int is_unsigned = neg_one > const_zero; - if (is_unsigned) { - if (sizeof(int) < sizeof(long)) { - return PyInt_FromLong((long) value); - } else if (sizeof(int) <= sizeof(unsigned long)) { - return PyLong_FromUnsignedLong((unsigned long) value); -#ifdef HAVE_LONG_LONG - } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { - return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -#endif - } - } else { - if (sizeof(int) <= sizeof(long)) { - return PyInt_FromLong((long) value); -#ifdef HAVE_LONG_LONG - } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { - return PyLong_FromLongLong((PY_LONG_LONG) value); -#endif - } - } - { - int one = 1; int little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&value; - return _PyLong_FromByteArray(bytes, sizeof(int), - little, !is_unsigned); - } -} - -/* CIntFromPy */ -static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { - const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; - const int is_unsigned = neg_one > const_zero; -#if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { - if (sizeof(int) < sizeof(long)) { - __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x)) - } else { - long val = PyInt_AS_LONG(x); - if (is_unsigned && unlikely(val < 0)) { - goto raise_neg_overflow; - } - return (int) val; - } - } else -#endif - if (likely(PyLong_Check(x))) { - if (is_unsigned) { -#if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)x)->ob_digit; - switch (Py_SIZE(x)) { - case 0: return (int) 0; - case 1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0]) - case 2: - if (8 * sizeof(int) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(int) >= 2 * PyLong_SHIFT) { - return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); - } - } - break; - case 3: - if (8 * sizeof(int) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(int) >= 3 * PyLong_SHIFT) { - return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); - } - } - break; - case 4: - if (8 * sizeof(int) > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(int) >= 4 * PyLong_SHIFT) { - return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); - } - } - break; - } -#endif -#if CYTHON_COMPILING_IN_CPYTHON - if (unlikely(Py_SIZE(x) < 0)) { - goto raise_neg_overflow; - } -#else - { - int result = PyObject_RichCompareBool(x, Py_False, Py_LT); - if (unlikely(result < 0)) - return (int) -1; - if (unlikely(result == 1)) - goto raise_neg_overflow; - } -#endif - if (sizeof(int) <= sizeof(unsigned long)) { - __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x)) -#ifdef HAVE_LONG_LONG - } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { - __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) -#endif - } - } else { -#if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)x)->ob_digit; - switch (Py_SIZE(x)) { - case 0: return (int) 0; - case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0])) - case 1: __PYX_VERIFY_RETURN_INT(int, digit, +digits[0]) - case -2: - if (8 * sizeof(int) - 1 > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { - return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case 2: - if (8 * sizeof(int) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { - return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case -3: - if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { - return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case 3: - if (8 * sizeof(int) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { - return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case -4: - if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { - return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case 4: - if (8 * sizeof(int) > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { - return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - } -#endif - if (sizeof(int) <= sizeof(long)) { - __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x)) -#ifdef HAVE_LONG_LONG - } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { - __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x)) -#endif - } - } - { -#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) - PyErr_SetString(PyExc_RuntimeError, - "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); -#else - int val; - PyObject *v = __Pyx_PyNumber_IntOrLong(x); - #if PY_MAJOR_VERSION < 3 - if (likely(v) && !PyLong_Check(v)) { - PyObject *tmp = v; - v = PyNumber_Long(tmp); - Py_DECREF(tmp); - } - #endif - if (likely(v)) { - int one = 1; int is_little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&val; - int ret = _PyLong_AsByteArray((PyLongObject *)v, - bytes, sizeof(val), - is_little, !is_unsigned); - Py_DECREF(v); - if (likely(!ret)) - return val; - } -#endif - return (int) -1; - } - } else { - int val; - PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); - if (!tmp) return (int) -1; - val = __Pyx_PyInt_As_int(tmp); - Py_DECREF(tmp); - return val; - } -raise_overflow: - PyErr_SetString(PyExc_OverflowError, - "value too large to convert to int"); - return (int) -1; -raise_neg_overflow: - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to int"); - return (int) -1; -} - -/* CIntFromPy */ -static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *x) { - const size_t neg_one = (size_t) ((size_t) 0 - (size_t) 1), const_zero = (size_t) 0; - const int is_unsigned = neg_one > const_zero; -#if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { - if (sizeof(size_t) < sizeof(long)) { - __PYX_VERIFY_RETURN_INT(size_t, long, PyInt_AS_LONG(x)) - } else { - long val = PyInt_AS_LONG(x); - if (is_unsigned && unlikely(val < 0)) { - goto raise_neg_overflow; - } - return (size_t) val; - } - } else -#endif - if (likely(PyLong_Check(x))) { - if (is_unsigned) { -#if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)x)->ob_digit; - switch (Py_SIZE(x)) { - case 0: return (size_t) 0; - case 1: __PYX_VERIFY_RETURN_INT(size_t, digit, digits[0]) - case 2: - if (8 * sizeof(size_t) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(size_t) >= 2 * PyLong_SHIFT) { - return (size_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); - } - } - break; - case 3: - if (8 * sizeof(size_t) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(size_t) >= 3 * PyLong_SHIFT) { - return (size_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); - } - } - break; - case 4: - if (8 * sizeof(size_t) > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(size_t) >= 4 * PyLong_SHIFT) { - return (size_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); - } - } - break; - } -#endif -#if CYTHON_COMPILING_IN_CPYTHON - if (unlikely(Py_SIZE(x) < 0)) { - goto raise_neg_overflow; - } -#else - { - int result = PyObject_RichCompareBool(x, Py_False, Py_LT); - if (unlikely(result < 0)) - return (size_t) -1; - if (unlikely(result == 1)) - goto raise_neg_overflow; - } -#endif - if (sizeof(size_t) <= sizeof(unsigned long)) { - __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned long, PyLong_AsUnsignedLong(x)) -#ifdef HAVE_LONG_LONG - } else if (sizeof(size_t) <= sizeof(unsigned PY_LONG_LONG)) { - __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) -#endif - } - } else { -#if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)x)->ob_digit; - switch (Py_SIZE(x)) { - case 0: return (size_t) 0; - case -1: __PYX_VERIFY_RETURN_INT(size_t, sdigit, (sdigit) (-(sdigit)digits[0])) - case 1: __PYX_VERIFY_RETURN_INT(size_t, digit, +digits[0]) - case -2: - if (8 * sizeof(size_t) - 1 > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) { - return (size_t) (((size_t)-1)*(((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); - } - } - break; - case 2: - if (8 * sizeof(size_t) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) { - return (size_t) ((((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); - } - } - break; - case -3: - if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) { - return (size_t) (((size_t)-1)*(((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); - } - } - break; - case 3: - if (8 * sizeof(size_t) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) { - return (size_t) ((((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); - } - } - break; - case -4: - if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT) { - return (size_t) (((size_t)-1)*(((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); - } - } - break; - case 4: - if (8 * sizeof(size_t) > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT) { - return (size_t) ((((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); - } - } - break; - } -#endif - if (sizeof(size_t) <= sizeof(long)) { - __PYX_VERIFY_RETURN_INT_EXC(size_t, long, PyLong_AsLong(x)) -#ifdef HAVE_LONG_LONG - } else if (sizeof(size_t) <= sizeof(PY_LONG_LONG)) { - __PYX_VERIFY_RETURN_INT_EXC(size_t, PY_LONG_LONG, PyLong_AsLongLong(x)) -#endif - } - } - { -#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) - PyErr_SetString(PyExc_RuntimeError, - "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); -#else - size_t val; - PyObject *v = __Pyx_PyNumber_IntOrLong(x); - #if PY_MAJOR_VERSION < 3 - if (likely(v) && !PyLong_Check(v)) { - PyObject *tmp = v; - v = PyNumber_Long(tmp); - Py_DECREF(tmp); - } - #endif - if (likely(v)) { - int one = 1; int is_little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&val; - int ret = _PyLong_AsByteArray((PyLongObject *)v, - bytes, sizeof(val), - is_little, !is_unsigned); - Py_DECREF(v); - if (likely(!ret)) - return val; - } -#endif - return (size_t) -1; - } - } else { - size_t val; - PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); - if (!tmp) return (size_t) -1; - val = __Pyx_PyInt_As_size_t(tmp); - Py_DECREF(tmp); - return val; - } -raise_overflow: - PyErr_SetString(PyExc_OverflowError, - "value too large to convert to size_t"); - return (size_t) -1; -raise_neg_overflow: - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to size_t"); - return (size_t) -1; -} - -/* CIntToPy */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { - const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; - const int is_unsigned = neg_one > const_zero; - if (is_unsigned) { - if (sizeof(long) < sizeof(long)) { - return PyInt_FromLong((long) value); - } else if (sizeof(long) <= sizeof(unsigned long)) { - return PyLong_FromUnsignedLong((unsigned long) value); -#ifdef HAVE_LONG_LONG - } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { - return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -#endif - } - } else { - if (sizeof(long) <= sizeof(long)) { - return PyInt_FromLong((long) value); -#ifdef HAVE_LONG_LONG - } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { - return PyLong_FromLongLong((PY_LONG_LONG) value); -#endif - } - } - { - int one = 1; int little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&value; - return _PyLong_FromByteArray(bytes, sizeof(long), - little, !is_unsigned); - } -} - -/* CIntFromPy */ -static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { - const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; - const int is_unsigned = neg_one > const_zero; -#if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { - if (sizeof(long) < sizeof(long)) { - __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x)) - } else { - long val = PyInt_AS_LONG(x); - if (is_unsigned && unlikely(val < 0)) { - goto raise_neg_overflow; - } - return (long) val; - } - } else -#endif - if (likely(PyLong_Check(x))) { - if (is_unsigned) { -#if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)x)->ob_digit; - switch (Py_SIZE(x)) { - case 0: return (long) 0; - case 1: __PYX_VERIFY_RETURN_INT(long, digit, digits[0]) - case 2: - if (8 * sizeof(long) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(long) >= 2 * PyLong_SHIFT) { - return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); - } - } - break; - case 3: - if (8 * sizeof(long) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(long) >= 3 * PyLong_SHIFT) { - return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); - } - } - break; - case 4: - if (8 * sizeof(long) > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(long) >= 4 * PyLong_SHIFT) { - return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); - } - } - break; - } -#endif -#if CYTHON_COMPILING_IN_CPYTHON - if (unlikely(Py_SIZE(x) < 0)) { - goto raise_neg_overflow; - } -#else - { - int result = PyObject_RichCompareBool(x, Py_False, Py_LT); - if (unlikely(result < 0)) - return (long) -1; - if (unlikely(result == 1)) - goto raise_neg_overflow; - } -#endif - if (sizeof(long) <= sizeof(unsigned long)) { - __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x)) -#ifdef HAVE_LONG_LONG - } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { - __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) -#endif - } - } else { -#if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)x)->ob_digit; - switch (Py_SIZE(x)) { - case 0: return (long) 0; - case -1: __PYX_VERIFY_RETURN_INT(long, sdigit, (sdigit) (-(sdigit)digits[0])) - case 1: __PYX_VERIFY_RETURN_INT(long, digit, +digits[0]) - case -2: - if (8 * sizeof(long) - 1 > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { - return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case 2: - if (8 * sizeof(long) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { - return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case -3: - if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { - return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case 3: - if (8 * sizeof(long) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { - return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case -4: - if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { - return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case 4: - if (8 * sizeof(long) > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { - return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - } -#endif - if (sizeof(long) <= sizeof(long)) { - __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x)) -#ifdef HAVE_LONG_LONG - } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { - __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x)) -#endif - } - } - { -#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) - PyErr_SetString(PyExc_RuntimeError, - "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); -#else - long val; - PyObject *v = __Pyx_PyNumber_IntOrLong(x); - #if PY_MAJOR_VERSION < 3 - if (likely(v) && !PyLong_Check(v)) { - PyObject *tmp = v; - v = PyNumber_Long(tmp); - Py_DECREF(tmp); - } - #endif - if (likely(v)) { - int one = 1; int is_little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&val; - int ret = _PyLong_AsByteArray((PyLongObject *)v, - bytes, sizeof(val), - is_little, !is_unsigned); - Py_DECREF(v); - if (likely(!ret)) - return val; - } -#endif - return (long) -1; - } - } else { - long val; - PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); - if (!tmp) return (long) -1; - val = __Pyx_PyInt_As_long(tmp); - Py_DECREF(tmp); - return val; - } -raise_overflow: - PyErr_SetString(PyExc_OverflowError, - "value too large to convert to long"); - return (long) -1; -raise_neg_overflow: - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to long"); - return (long) -1; -} - -/* FastTypeChecks */ -#if CYTHON_COMPILING_IN_CPYTHON -static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) { - while (a) { - a = a->tp_base; - if (a == b) - return 1; - } - return b == &PyBaseObject_Type; -} -static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) { - PyObject *mro; - if (a == b) return 1; - mro = a->tp_mro; - if (likely(mro)) { - Py_ssize_t i, n; - n = PyTuple_GET_SIZE(mro); - for (i = 0; i < n; i++) { - if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b) - return 1; - } - return 0; - } - return __Pyx_InBases(a, b); -} -#if PY_MAJOR_VERSION == 2 -static int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject* exc_type2) { - PyObject *exception, *value, *tb; - int res; - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ErrFetch(&exception, &value, &tb); - res = exc_type1 ? PyObject_IsSubclass(err, exc_type1) : 0; - if (unlikely(res == -1)) { - PyErr_WriteUnraisable(err); - res = 0; - } - if (!res) { - res = PyObject_IsSubclass(err, exc_type2); - if (unlikely(res == -1)) { - PyErr_WriteUnraisable(err); - res = 0; - } - } - __Pyx_ErrRestore(exception, value, tb); - return res; -} -#else -static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) { - int res = exc_type1 ? __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type1) : 0; - if (!res) { - res = __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2); - } - return res; -} -#endif -static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) { - Py_ssize_t i, n; - assert(PyExceptionClass_Check(exc_type)); - n = PyTuple_GET_SIZE(tuple); -#if PY_MAJOR_VERSION >= 3 - for (i=0; ip) { - #if PY_MAJOR_VERSION < 3 - if (t->is_unicode) { - *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL); - } else if (t->intern) { - *t->p = PyString_InternFromString(t->s); - } else { - *t->p = PyString_FromStringAndSize(t->s, t->n - 1); - } - #else - if (t->is_unicode | t->is_str) { - if (t->intern) { - *t->p = PyUnicode_InternFromString(t->s); - } else if (t->encoding) { - *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL); - } else { - *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1); - } - } else { - *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1); - } - #endif - if (!*t->p) - return -1; - if (PyObject_Hash(*t->p) == -1) - return -1; - ++t; - } - return 0; -} - -static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) { - return __Pyx_PyUnicode_FromStringAndSize(c_str, (Py_ssize_t)strlen(c_str)); -} -static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject* o) { - Py_ssize_t ignore; - return __Pyx_PyObject_AsStringAndSize(o, &ignore); -} -#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT -#if !CYTHON_PEP393_ENABLED -static const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) { - char* defenc_c; - PyObject* defenc = _PyUnicode_AsDefaultEncodedString(o, NULL); - if (!defenc) return NULL; - defenc_c = PyBytes_AS_STRING(defenc); -#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII - { - char* end = defenc_c + PyBytes_GET_SIZE(defenc); - char* c; - for (c = defenc_c; c < end; c++) { - if ((unsigned char) (*c) >= 128) { - PyUnicode_AsASCIIString(o); - return NULL; - } - } - } -#endif - *length = PyBytes_GET_SIZE(defenc); - return defenc_c; -} -#else -static CYTHON_INLINE const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) { - if (unlikely(__Pyx_PyUnicode_READY(o) == -1)) return NULL; -#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII - if (likely(PyUnicode_IS_ASCII(o))) { - *length = PyUnicode_GET_LENGTH(o); - return PyUnicode_AsUTF8(o); - } else { - PyUnicode_AsASCIIString(o); - return NULL; - } -#else - return PyUnicode_AsUTF8AndSize(o, length); -#endif -} -#endif -#endif -static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) { -#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT - if ( -#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII - __Pyx_sys_getdefaultencoding_not_ascii && -#endif - PyUnicode_Check(o)) { - return __Pyx_PyUnicode_AsStringAndSize(o, length); - } else -#endif -#if (!CYTHON_COMPILING_IN_PYPY) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE)) - if (PyByteArray_Check(o)) { - *length = PyByteArray_GET_SIZE(o); - return PyByteArray_AS_STRING(o); - } else -#endif - { - char* result; - int r = PyBytes_AsStringAndSize(o, &result, length); - if (unlikely(r < 0)) { - return NULL; - } else { - return result; - } - } -} -static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) { - int is_true = x == Py_True; - if (is_true | (x == Py_False) | (x == Py_None)) return is_true; - else return PyObject_IsTrue(x); -} -static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject* x) { - int retval; - if (unlikely(!x)) return -1; - retval = __Pyx_PyObject_IsTrue(x); - Py_DECREF(x); - return retval; -} -static PyObject* __Pyx_PyNumber_IntOrLongWrongResultType(PyObject* result, const char* type_name) { -#if PY_MAJOR_VERSION >= 3 - if (PyLong_Check(result)) { - if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1, - "__int__ returned non-int (type %.200s). " - "The ability to return an instance of a strict subclass of int " - "is deprecated, and may be removed in a future version of Python.", - Py_TYPE(result)->tp_name)) { - Py_DECREF(result); - return NULL; - } - return result; - } -#endif - PyErr_Format(PyExc_TypeError, - "__%.4s__ returned non-%.4s (type %.200s)", - type_name, type_name, Py_TYPE(result)->tp_name); - Py_DECREF(result); - return NULL; -} -static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x) { -#if CYTHON_USE_TYPE_SLOTS - PyNumberMethods *m; -#endif - const char *name = NULL; - PyObject *res = NULL; -#if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x) || PyLong_Check(x))) -#else - if (likely(PyLong_Check(x))) -#endif - return __Pyx_NewRef(x); -#if CYTHON_USE_TYPE_SLOTS - m = Py_TYPE(x)->tp_as_number; - #if PY_MAJOR_VERSION < 3 - if (m && m->nb_int) { - name = "int"; - res = m->nb_int(x); - } - else if (m && m->nb_long) { - name = "long"; - res = m->nb_long(x); - } - #else - if (likely(m && m->nb_int)) { - name = "int"; - res = m->nb_int(x); - } - #endif -#else - if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) { - res = PyNumber_Int(x); - } -#endif - if (likely(res)) { -#if PY_MAJOR_VERSION < 3 - if (unlikely(!PyInt_Check(res) && !PyLong_Check(res))) { -#else - if (unlikely(!PyLong_CheckExact(res))) { -#endif - return __Pyx_PyNumber_IntOrLongWrongResultType(res, name); - } - } - else if (!PyErr_Occurred()) { - PyErr_SetString(PyExc_TypeError, - "an integer is required"); - } - return res; -} -static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { - Py_ssize_t ival; - PyObject *x; -#if PY_MAJOR_VERSION < 3 - if (likely(PyInt_CheckExact(b))) { - if (sizeof(Py_ssize_t) >= sizeof(long)) - return PyInt_AS_LONG(b); - else - return PyInt_AsSsize_t(b); - } -#endif - if (likely(PyLong_CheckExact(b))) { - #if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)b)->ob_digit; - const Py_ssize_t size = Py_SIZE(b); - if (likely(__Pyx_sst_abs(size) <= 1)) { - ival = likely(size) ? digits[0] : 0; - if (size == -1) ival = -ival; - return ival; - } else { - switch (size) { - case 2: - if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) { - return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); - } - break; - case -2: - if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) { - return -(Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); - } - break; - case 3: - if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) { - return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); - } - break; - case -3: - if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) { - return -(Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); - } - break; - case 4: - if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) { - return (Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); - } - break; - case -4: - if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) { - return -(Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); - } - break; - } - } - #endif - return PyLong_AsSsize_t(b); - } - x = PyNumber_Index(b); - if (!x) return -1; - ival = PyInt_AsSsize_t(x); - Py_DECREF(x); - return ival; -} -static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { - return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); -} -static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) { - return PyInt_FromSize_t(ival); -} - - -#endif /* Py_PYTHON_H */ From 1e34305756869cc56037d6bc2b94d4da64d9f091 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 16:47:42 -0600 Subject: [PATCH 297/336] Delete bridge_cuda.cpp --- reccdi/src_py/cyth/bridge_cuda.cpp | 5916 ---------------------------- 1 file changed, 5916 deletions(-) delete mode 100644 reccdi/src_py/cyth/bridge_cuda.cpp diff --git a/reccdi/src_py/cyth/bridge_cuda.cpp b/reccdi/src_py/cyth/bridge_cuda.cpp deleted file mode 100644 index 9c5f3f6..0000000 --- a/reccdi/src_py/cyth/bridge_cuda.cpp +++ /dev/null @@ -1,5916 +0,0 @@ -/* Generated by Cython 0.29.13 */ - -/* BEGIN: Cython Metadata -{ - "distutils": { - "depends": [ - "reccdi/include/bridge.hpp" - ], - "include_dirs": [ - "reccdi/include", - "/home/beams/CXDUSER/CDI/arrayfire/include", - "/home/beams/CXDUSER/CDI/libconfig/include" - ], - "language": "c++", - "libraries": [ - "afcuda", - "config++" - ], - "library_dirs": [ - "/home/beams/CXDUSER/CDI/arrayfire/lib64", - "/home/beams/CXDUSER/CDI/libconfig/lib" - ], - "name": "reccdi.src_py.cyth.bridge_cuda", - "sources": [ - "reccdi/src_py/cyth/bridge_cuda.pyx", - "reccdi/src_cpp/bridge.cpp", - "reccdi/src_cpp/manager.cpp", - "reccdi/src_cpp/parameters.cpp", - "reccdi/src_cpp/pcdi.cpp", - "reccdi/src_cpp/resolution.cpp", - "reccdi/src_cpp/state.cpp", - "reccdi/src_cpp/support.cpp", - "reccdi/src_cpp/util.cpp", - "reccdi/src_cpp/worker.cpp" - ] - }, - "module_name": "reccdi.src_py.cyth.bridge_cuda" -} -END: Cython Metadata */ - -#define PY_SSIZE_T_CLEAN -#include "Python.h" -#ifndef Py_PYTHON_H - #error Python headers needed to compile C extensions, please install development version of Python. -#elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000) - #error Cython requires Python 2.6+ or Python 3.3+. -#else -#define CYTHON_ABI "0_29_13" -#define CYTHON_HEX_VERSION 0x001D0DF0 -#define CYTHON_FUTURE_DIVISION 0 -#include -#ifndef offsetof - #define offsetof(type, member) ( (size_t) & ((type*)0) -> member ) -#endif -#if !defined(WIN32) && !defined(MS_WINDOWS) - #ifndef __stdcall - #define __stdcall - #endif - #ifndef __cdecl - #define __cdecl - #endif - #ifndef __fastcall - #define __fastcall - #endif -#endif -#ifndef DL_IMPORT - #define DL_IMPORT(t) t -#endif -#ifndef DL_EXPORT - #define DL_EXPORT(t) t -#endif -#define __PYX_COMMA , -#ifndef HAVE_LONG_LONG - #if PY_VERSION_HEX >= 0x02070000 - #define HAVE_LONG_LONG - #endif -#endif -#ifndef PY_LONG_LONG - #define PY_LONG_LONG LONG_LONG -#endif -#ifndef Py_HUGE_VAL - #define Py_HUGE_VAL HUGE_VAL -#endif -#ifdef PYPY_VERSION - #define CYTHON_COMPILING_IN_PYPY 1 - #define CYTHON_COMPILING_IN_PYSTON 0 - #define CYTHON_COMPILING_IN_CPYTHON 0 - #undef CYTHON_USE_TYPE_SLOTS - #define CYTHON_USE_TYPE_SLOTS 0 - #undef CYTHON_USE_PYTYPE_LOOKUP - #define CYTHON_USE_PYTYPE_LOOKUP 0 - #if PY_VERSION_HEX < 0x03050000 - #undef CYTHON_USE_ASYNC_SLOTS - #define CYTHON_USE_ASYNC_SLOTS 0 - #elif !defined(CYTHON_USE_ASYNC_SLOTS) - #define CYTHON_USE_ASYNC_SLOTS 1 - #endif - #undef CYTHON_USE_PYLIST_INTERNALS - #define CYTHON_USE_PYLIST_INTERNALS 0 - #undef CYTHON_USE_UNICODE_INTERNALS - #define CYTHON_USE_UNICODE_INTERNALS 0 - #undef CYTHON_USE_UNICODE_WRITER - #define CYTHON_USE_UNICODE_WRITER 0 - #undef CYTHON_USE_PYLONG_INTERNALS - #define CYTHON_USE_PYLONG_INTERNALS 0 - #undef CYTHON_AVOID_BORROWED_REFS - #define CYTHON_AVOID_BORROWED_REFS 1 - #undef CYTHON_ASSUME_SAFE_MACROS - #define CYTHON_ASSUME_SAFE_MACROS 0 - #undef CYTHON_UNPACK_METHODS - #define CYTHON_UNPACK_METHODS 0 - #undef CYTHON_FAST_THREAD_STATE - #define CYTHON_FAST_THREAD_STATE 0 - #undef CYTHON_FAST_PYCALL - #define CYTHON_FAST_PYCALL 0 - #undef CYTHON_PEP489_MULTI_PHASE_INIT - #define CYTHON_PEP489_MULTI_PHASE_INIT 0 - #undef CYTHON_USE_TP_FINALIZE - #define CYTHON_USE_TP_FINALIZE 0 - #undef CYTHON_USE_DICT_VERSIONS - #define CYTHON_USE_DICT_VERSIONS 0 - #undef CYTHON_USE_EXC_INFO_STACK - #define CYTHON_USE_EXC_INFO_STACK 0 -#elif defined(PYSTON_VERSION) - #define CYTHON_COMPILING_IN_PYPY 0 - #define CYTHON_COMPILING_IN_PYSTON 1 - #define CYTHON_COMPILING_IN_CPYTHON 0 - #ifndef CYTHON_USE_TYPE_SLOTS - #define CYTHON_USE_TYPE_SLOTS 1 - #endif - #undef CYTHON_USE_PYTYPE_LOOKUP - #define CYTHON_USE_PYTYPE_LOOKUP 0 - #undef CYTHON_USE_ASYNC_SLOTS - #define CYTHON_USE_ASYNC_SLOTS 0 - #undef CYTHON_USE_PYLIST_INTERNALS - #define CYTHON_USE_PYLIST_INTERNALS 0 - #ifndef CYTHON_USE_UNICODE_INTERNALS - #define CYTHON_USE_UNICODE_INTERNALS 1 - #endif - #undef CYTHON_USE_UNICODE_WRITER - #define CYTHON_USE_UNICODE_WRITER 0 - #undef CYTHON_USE_PYLONG_INTERNALS - #define CYTHON_USE_PYLONG_INTERNALS 0 - #ifndef CYTHON_AVOID_BORROWED_REFS - #define CYTHON_AVOID_BORROWED_REFS 0 - #endif - #ifndef CYTHON_ASSUME_SAFE_MACROS - #define CYTHON_ASSUME_SAFE_MACROS 1 - #endif - #ifndef CYTHON_UNPACK_METHODS - #define CYTHON_UNPACK_METHODS 1 - #endif - #undef CYTHON_FAST_THREAD_STATE - #define CYTHON_FAST_THREAD_STATE 0 - #undef CYTHON_FAST_PYCALL - #define CYTHON_FAST_PYCALL 0 - #undef CYTHON_PEP489_MULTI_PHASE_INIT - #define CYTHON_PEP489_MULTI_PHASE_INIT 0 - #undef CYTHON_USE_TP_FINALIZE - #define CYTHON_USE_TP_FINALIZE 0 - #undef CYTHON_USE_DICT_VERSIONS - #define CYTHON_USE_DICT_VERSIONS 0 - #undef CYTHON_USE_EXC_INFO_STACK - #define CYTHON_USE_EXC_INFO_STACK 0 -#else - #define CYTHON_COMPILING_IN_PYPY 0 - #define CYTHON_COMPILING_IN_PYSTON 0 - #define CYTHON_COMPILING_IN_CPYTHON 1 - #ifndef CYTHON_USE_TYPE_SLOTS - #define CYTHON_USE_TYPE_SLOTS 1 - #endif - #if PY_VERSION_HEX < 0x02070000 - #undef CYTHON_USE_PYTYPE_LOOKUP - #define CYTHON_USE_PYTYPE_LOOKUP 0 - #elif !defined(CYTHON_USE_PYTYPE_LOOKUP) - #define CYTHON_USE_PYTYPE_LOOKUP 1 - #endif - #if PY_MAJOR_VERSION < 3 - #undef CYTHON_USE_ASYNC_SLOTS - #define CYTHON_USE_ASYNC_SLOTS 0 - #elif !defined(CYTHON_USE_ASYNC_SLOTS) - #define CYTHON_USE_ASYNC_SLOTS 1 - #endif - #if PY_VERSION_HEX < 0x02070000 - #undef CYTHON_USE_PYLONG_INTERNALS - #define CYTHON_USE_PYLONG_INTERNALS 0 - #elif !defined(CYTHON_USE_PYLONG_INTERNALS) - #define CYTHON_USE_PYLONG_INTERNALS 1 - #endif - #ifndef CYTHON_USE_PYLIST_INTERNALS - #define CYTHON_USE_PYLIST_INTERNALS 1 - #endif - #ifndef CYTHON_USE_UNICODE_INTERNALS - #define CYTHON_USE_UNICODE_INTERNALS 1 - #endif - #if PY_VERSION_HEX < 0x030300F0 - #undef CYTHON_USE_UNICODE_WRITER - #define CYTHON_USE_UNICODE_WRITER 0 - #elif !defined(CYTHON_USE_UNICODE_WRITER) - #define CYTHON_USE_UNICODE_WRITER 1 - #endif - #ifndef CYTHON_AVOID_BORROWED_REFS - #define CYTHON_AVOID_BORROWED_REFS 0 - #endif - #ifndef CYTHON_ASSUME_SAFE_MACROS - #define CYTHON_ASSUME_SAFE_MACROS 1 - #endif - #ifndef CYTHON_UNPACK_METHODS - #define CYTHON_UNPACK_METHODS 1 - #endif - #ifndef CYTHON_FAST_THREAD_STATE - #define CYTHON_FAST_THREAD_STATE 1 - #endif - #ifndef CYTHON_FAST_PYCALL - #define CYTHON_FAST_PYCALL 1 - #endif - #ifndef CYTHON_PEP489_MULTI_PHASE_INIT - #define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000) - #endif - #ifndef CYTHON_USE_TP_FINALIZE - #define CYTHON_USE_TP_FINALIZE (PY_VERSION_HEX >= 0x030400a1) - #endif - #ifndef CYTHON_USE_DICT_VERSIONS - #define CYTHON_USE_DICT_VERSIONS (PY_VERSION_HEX >= 0x030600B1) - #endif - #ifndef CYTHON_USE_EXC_INFO_STACK - #define CYTHON_USE_EXC_INFO_STACK (PY_VERSION_HEX >= 0x030700A3) - #endif -#endif -#if !defined(CYTHON_FAST_PYCCALL) -#define CYTHON_FAST_PYCCALL (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1) -#endif -#if CYTHON_USE_PYLONG_INTERNALS - #include "longintrepr.h" - #undef SHIFT - #undef BASE - #undef MASK - #ifdef SIZEOF_VOID_P - enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) }; - #endif -#endif -#ifndef __has_attribute - #define __has_attribute(x) 0 -#endif -#ifndef __has_cpp_attribute - #define __has_cpp_attribute(x) 0 -#endif -#ifndef CYTHON_RESTRICT - #if defined(__GNUC__) - #define CYTHON_RESTRICT __restrict__ - #elif defined(_MSC_VER) && _MSC_VER >= 1400 - #define CYTHON_RESTRICT __restrict - #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L - #define CYTHON_RESTRICT restrict - #else - #define CYTHON_RESTRICT - #endif -#endif -#ifndef CYTHON_UNUSED -# if defined(__GNUC__) -# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) -# define CYTHON_UNUSED __attribute__ ((__unused__)) -# else -# define CYTHON_UNUSED -# endif -# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER)) -# define CYTHON_UNUSED __attribute__ ((__unused__)) -# else -# define CYTHON_UNUSED -# endif -#endif -#ifndef CYTHON_MAYBE_UNUSED_VAR -# if defined(__cplusplus) - template void CYTHON_MAYBE_UNUSED_VAR( const T& ) { } -# else -# define CYTHON_MAYBE_UNUSED_VAR(x) (void)(x) -# endif -#endif -#ifndef CYTHON_NCP_UNUSED -# if CYTHON_COMPILING_IN_CPYTHON -# define CYTHON_NCP_UNUSED -# else -# define CYTHON_NCP_UNUSED CYTHON_UNUSED -# endif -#endif -#define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None) -#ifdef _MSC_VER - #ifndef _MSC_STDINT_H_ - #if _MSC_VER < 1300 - typedef unsigned char uint8_t; - typedef unsigned int uint32_t; - #else - typedef unsigned __int8 uint8_t; - typedef unsigned __int32 uint32_t; - #endif - #endif -#else - #include -#endif -#ifndef CYTHON_FALLTHROUGH - #if defined(__cplusplus) && __cplusplus >= 201103L - #if __has_cpp_attribute(fallthrough) - #define CYTHON_FALLTHROUGH [[fallthrough]] - #elif __has_cpp_attribute(clang::fallthrough) - #define CYTHON_FALLTHROUGH [[clang::fallthrough]] - #elif __has_cpp_attribute(gnu::fallthrough) - #define CYTHON_FALLTHROUGH [[gnu::fallthrough]] - #endif - #endif - #ifndef CYTHON_FALLTHROUGH - #if __has_attribute(fallthrough) - #define CYTHON_FALLTHROUGH __attribute__((fallthrough)) - #else - #define CYTHON_FALLTHROUGH - #endif - #endif - #if defined(__clang__ ) && defined(__apple_build_version__) - #if __apple_build_version__ < 7000000 - #undef CYTHON_FALLTHROUGH - #define CYTHON_FALLTHROUGH - #endif - #endif -#endif - -#ifndef __cplusplus - #error "Cython files generated with the C++ option must be compiled with a C++ compiler." -#endif -#ifndef CYTHON_INLINE - #if defined(__clang__) - #define CYTHON_INLINE __inline__ __attribute__ ((__unused__)) - #else - #define CYTHON_INLINE inline - #endif -#endif -template -void __Pyx_call_destructor(T& x) { - x.~T(); -} -template -class __Pyx_FakeReference { - public: - __Pyx_FakeReference() : ptr(NULL) { } - __Pyx_FakeReference(const T& ref) : ptr(const_cast(&ref)) { } - T *operator->() { return ptr; } - T *operator&() { return ptr; } - operator T&() { return *ptr; } - template bool operator ==(U other) { return *ptr == other; } - template bool operator !=(U other) { return *ptr != other; } - private: - T *ptr; -}; - -#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x02070600 && !defined(Py_OptimizeFlag) - #define Py_OptimizeFlag 0 -#endif -#define __PYX_BUILD_PY_SSIZE_T "n" -#define CYTHON_FORMAT_SSIZE_T "z" -#if PY_MAJOR_VERSION < 3 - #define __Pyx_BUILTIN_MODULE_NAME "__builtin__" - #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ - PyCode_New(a+k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) - #define __Pyx_DefaultClassType PyClass_Type -#else - #define __Pyx_BUILTIN_MODULE_NAME "builtins" -#if PY_VERSION_HEX >= 0x030800A4 && PY_VERSION_HEX < 0x030800B2 - #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ - PyCode_New(a, 0, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) -#else - #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ - PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) -#endif - #define __Pyx_DefaultClassType PyType_Type -#endif -#ifndef Py_TPFLAGS_CHECKTYPES - #define Py_TPFLAGS_CHECKTYPES 0 -#endif -#ifndef Py_TPFLAGS_HAVE_INDEX - #define Py_TPFLAGS_HAVE_INDEX 0 -#endif -#ifndef Py_TPFLAGS_HAVE_NEWBUFFER - #define Py_TPFLAGS_HAVE_NEWBUFFER 0 -#endif -#ifndef Py_TPFLAGS_HAVE_FINALIZE - #define Py_TPFLAGS_HAVE_FINALIZE 0 -#endif -#ifndef METH_STACKLESS - #define METH_STACKLESS 0 -#endif -#if PY_VERSION_HEX <= 0x030700A3 || !defined(METH_FASTCALL) - #ifndef METH_FASTCALL - #define METH_FASTCALL 0x80 - #endif - typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject *const *args, Py_ssize_t nargs); - typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject *const *args, - Py_ssize_t nargs, PyObject *kwnames); -#else - #define __Pyx_PyCFunctionFast _PyCFunctionFast - #define __Pyx_PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords -#endif -#if CYTHON_FAST_PYCCALL -#define __Pyx_PyFastCFunction_Check(func)\ - ((PyCFunction_Check(func) && (METH_FASTCALL == (PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS))))) -#else -#define __Pyx_PyFastCFunction_Check(func) 0 -#endif -#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc) - #define PyObject_Malloc(s) PyMem_Malloc(s) - #define PyObject_Free(p) PyMem_Free(p) - #define PyObject_Realloc(p) PyMem_Realloc(p) -#endif -#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030400A1 - #define PyMem_RawMalloc(n) PyMem_Malloc(n) - #define PyMem_RawRealloc(p, n) PyMem_Realloc(p, n) - #define PyMem_RawFree(p) PyMem_Free(p) -#endif -#if CYTHON_COMPILING_IN_PYSTON - #define __Pyx_PyCode_HasFreeVars(co) PyCode_HasFreeVars(co) - #define __Pyx_PyFrame_SetLineNumber(frame, lineno) PyFrame_SetLineNumber(frame, lineno) -#else - #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0) - #define __Pyx_PyFrame_SetLineNumber(frame, lineno) (frame)->f_lineno = (lineno) -#endif -#if !CYTHON_FAST_THREAD_STATE || PY_VERSION_HEX < 0x02070000 - #define __Pyx_PyThreadState_Current PyThreadState_GET() -#elif PY_VERSION_HEX >= 0x03060000 - #define __Pyx_PyThreadState_Current _PyThreadState_UncheckedGet() -#elif PY_VERSION_HEX >= 0x03000000 - #define __Pyx_PyThreadState_Current PyThreadState_GET() -#else - #define __Pyx_PyThreadState_Current _PyThreadState_Current -#endif -#if PY_VERSION_HEX < 0x030700A2 && !defined(PyThread_tss_create) && !defined(Py_tss_NEEDS_INIT) -#include "pythread.h" -#define Py_tss_NEEDS_INIT 0 -typedef int Py_tss_t; -static CYTHON_INLINE int PyThread_tss_create(Py_tss_t *key) { - *key = PyThread_create_key(); - return 0; -} -static CYTHON_INLINE Py_tss_t * PyThread_tss_alloc(void) { - Py_tss_t *key = (Py_tss_t *)PyObject_Malloc(sizeof(Py_tss_t)); - *key = Py_tss_NEEDS_INIT; - return key; -} -static CYTHON_INLINE void PyThread_tss_free(Py_tss_t *key) { - PyObject_Free(key); -} -static CYTHON_INLINE int PyThread_tss_is_created(Py_tss_t *key) { - return *key != Py_tss_NEEDS_INIT; -} -static CYTHON_INLINE void PyThread_tss_delete(Py_tss_t *key) { - PyThread_delete_key(*key); - *key = Py_tss_NEEDS_INIT; -} -static CYTHON_INLINE int PyThread_tss_set(Py_tss_t *key, void *value) { - return PyThread_set_key_value(*key, value); -} -static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - return PyThread_get_key_value(*key); -} -#endif -#if CYTHON_COMPILING_IN_CPYTHON || defined(_PyDict_NewPresized) -#define __Pyx_PyDict_NewPresized(n) ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n)) -#else -#define __Pyx_PyDict_NewPresized(n) PyDict_New() -#endif -#if PY_MAJOR_VERSION >= 3 || CYTHON_FUTURE_DIVISION - #define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y) - #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y) -#else - #define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y) - #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceDivide(x,y) -#endif -#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 && CYTHON_USE_UNICODE_INTERNALS -#define __Pyx_PyDict_GetItemStr(dict, name) _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash) -#else -#define __Pyx_PyDict_GetItemStr(dict, name) PyDict_GetItem(dict, name) -#endif -#if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND) - #define CYTHON_PEP393_ENABLED 1 - #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ?\ - 0 : _PyUnicode_Ready((PyObject *)(op))) - #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_LENGTH(u) - #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i) - #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) PyUnicode_MAX_CHAR_VALUE(u) - #define __Pyx_PyUnicode_KIND(u) PyUnicode_KIND(u) - #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u) - #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) - #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch) - #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u))) -#else - #define CYTHON_PEP393_ENABLED 0 - #define PyUnicode_1BYTE_KIND 1 - #define PyUnicode_2BYTE_KIND 2 - #define PyUnicode_4BYTE_KIND 4 - #define __Pyx_PyUnicode_READY(op) (0) - #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_SIZE(u) - #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i])) - #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) ((sizeof(Py_UNICODE) == 2) ? 65535 : 1114111) - #define __Pyx_PyUnicode_KIND(u) (sizeof(Py_UNICODE)) - #define __Pyx_PyUnicode_DATA(u) ((void*)PyUnicode_AS_UNICODE(u)) - #define __Pyx_PyUnicode_READ(k, d, i) ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i])) - #define __Pyx_PyUnicode_WRITE(k, d, i, ch) (((void)(k)), ((Py_UNICODE*)d)[i] = ch) - #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_SIZE(u)) -#endif -#if CYTHON_COMPILING_IN_PYPY - #define __Pyx_PyUnicode_Concat(a, b) PyNumber_Add(a, b) - #define __Pyx_PyUnicode_ConcatSafe(a, b) PyNumber_Add(a, b) -#else - #define __Pyx_PyUnicode_Concat(a, b) PyUnicode_Concat(a, b) - #define __Pyx_PyUnicode_ConcatSafe(a, b) ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\ - PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b)) -#endif -#if CYTHON_COMPILING_IN_PYPY && !defined(PyUnicode_Contains) - #define PyUnicode_Contains(u, s) PySequence_Contains(u, s) -#endif -#if CYTHON_COMPILING_IN_PYPY && !defined(PyByteArray_Check) - #define PyByteArray_Check(obj) PyObject_TypeCheck(obj, &PyByteArray_Type) -#endif -#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Format) - #define PyObject_Format(obj, fmt) PyObject_CallMethod(obj, "__format__", "O", fmt) -#endif -#define __Pyx_PyString_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyString_Check(b) && !PyString_CheckExact(b)))) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b)) -#define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyUnicode_Check(b) && !PyUnicode_CheckExact(b)))) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b)) -#if PY_MAJOR_VERSION >= 3 - #define __Pyx_PyString_Format(a, b) PyUnicode_Format(a, b) -#else - #define __Pyx_PyString_Format(a, b) PyString_Format(a, b) -#endif -#if PY_MAJOR_VERSION < 3 && !defined(PyObject_ASCII) - #define PyObject_ASCII(o) PyObject_Repr(o) -#endif -#if PY_MAJOR_VERSION >= 3 - #define PyBaseString_Type PyUnicode_Type - #define PyStringObject PyUnicodeObject - #define PyString_Type PyUnicode_Type - #define PyString_Check PyUnicode_Check - #define PyString_CheckExact PyUnicode_CheckExact - #define PyObject_Unicode PyObject_Str -#endif -#if PY_MAJOR_VERSION >= 3 - #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj) - #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj) -#else - #define __Pyx_PyBaseString_Check(obj) (PyString_Check(obj) || PyUnicode_Check(obj)) - #define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj)) -#endif -#ifndef PySet_CheckExact - #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) -#endif -#if CYTHON_ASSUME_SAFE_MACROS - #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq) -#else - #define __Pyx_PySequence_SIZE(seq) PySequence_Size(seq) -#endif -#if PY_MAJOR_VERSION >= 3 - #define PyIntObject PyLongObject - #define PyInt_Type PyLong_Type - #define PyInt_Check(op) PyLong_Check(op) - #define PyInt_CheckExact(op) PyLong_CheckExact(op) - #define PyInt_FromString PyLong_FromString - #define PyInt_FromUnicode PyLong_FromUnicode - #define PyInt_FromLong PyLong_FromLong - #define PyInt_FromSize_t PyLong_FromSize_t - #define PyInt_FromSsize_t PyLong_FromSsize_t - #define PyInt_AsLong PyLong_AsLong - #define PyInt_AS_LONG PyLong_AS_LONG - #define PyInt_AsSsize_t PyLong_AsSsize_t - #define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask - #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask - #define PyNumber_Int PyNumber_Long -#endif -#if PY_MAJOR_VERSION >= 3 - #define PyBoolObject PyLongObject -#endif -#if PY_MAJOR_VERSION >= 3 && CYTHON_COMPILING_IN_PYPY - #ifndef PyUnicode_InternFromString - #define PyUnicode_InternFromString(s) PyUnicode_FromString(s) - #endif -#endif -#if PY_VERSION_HEX < 0x030200A4 - typedef long Py_hash_t; - #define __Pyx_PyInt_FromHash_t PyInt_FromLong - #define __Pyx_PyInt_AsHash_t PyInt_AsLong -#else - #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t - #define __Pyx_PyInt_AsHash_t PyInt_AsSsize_t -#endif -#if PY_MAJOR_VERSION >= 3 - #define __Pyx_PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : (Py_INCREF(func), func)) -#else - #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass) -#endif -#if CYTHON_USE_ASYNC_SLOTS - #if PY_VERSION_HEX >= 0x030500B1 - #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods - #define __Pyx_PyType_AsAsync(obj) (Py_TYPE(obj)->tp_as_async) - #else - #define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved)) - #endif -#else - #define __Pyx_PyType_AsAsync(obj) NULL -#endif -#ifndef __Pyx_PyAsyncMethodsStruct - typedef struct { - unaryfunc am_await; - unaryfunc am_aiter; - unaryfunc am_anext; - } __Pyx_PyAsyncMethodsStruct; -#endif - -#if defined(WIN32) || defined(MS_WINDOWS) - #define _USE_MATH_DEFINES -#endif -#include -#ifdef NAN -#define __PYX_NAN() ((float) NAN) -#else -static CYTHON_INLINE float __PYX_NAN() { - float value; - memset(&value, 0xFF, sizeof(value)); - return value; -} -#endif -#if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL) -#define __Pyx_truncl trunc -#else -#define __Pyx_truncl truncl -#endif - - -#define __PYX_ERR(f_index, lineno, Ln_error) \ -{ \ - __pyx_filename = __pyx_f[f_index]; __pyx_lineno = lineno; __pyx_clineno = __LINE__; goto Ln_error; \ -} - -#ifndef __PYX_EXTERN_C - #ifdef __cplusplus - #define __PYX_EXTERN_C extern "C" - #else - #define __PYX_EXTERN_C extern - #endif -#endif - -#define __PYX_HAVE__reccdi__src_py__cyth__bridge_cuda -#define __PYX_HAVE_API__reccdi__src_py__cyth__bridge_cuda -/* Early includes */ -#include "ios" -#include "new" -#include "stdexcept" -#include "typeinfo" -#include -#include -#include -#include "../include/bridge.hpp" -#ifdef _OPENMP -#include -#endif /* _OPENMP */ - -#if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS) -#define CYTHON_WITHOUT_ASSERTIONS -#endif - -typedef struct {PyObject **p; const char *s; const Py_ssize_t n; const char* encoding; - const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; - -#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0 -#define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0 -#define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT (PY_MAJOR_VERSION >= 3 && __PYX_DEFAULT_STRING_ENCODING_IS_UTF8) -#define __PYX_DEFAULT_STRING_ENCODING "" -#define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString -#define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize -#define __Pyx_uchar_cast(c) ((unsigned char)c) -#define __Pyx_long_cast(x) ((long)x) -#define __Pyx_fits_Py_ssize_t(v, type, is_signed) (\ - (sizeof(type) < sizeof(Py_ssize_t)) ||\ - (sizeof(type) > sizeof(Py_ssize_t) &&\ - likely(v < (type)PY_SSIZE_T_MAX ||\ - v == (type)PY_SSIZE_T_MAX) &&\ - (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\ - v == (type)PY_SSIZE_T_MIN))) ||\ - (sizeof(type) == sizeof(Py_ssize_t) &&\ - (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\ - v == (type)PY_SSIZE_T_MAX))) ) -static CYTHON_INLINE int __Pyx_is_valid_index(Py_ssize_t i, Py_ssize_t limit) { - return (size_t) i < (size_t) limit; -} -#if defined (__cplusplus) && __cplusplus >= 201103L - #include - #define __Pyx_sst_abs(value) std::abs(value) -#elif SIZEOF_INT >= SIZEOF_SIZE_T - #define __Pyx_sst_abs(value) abs(value) -#elif SIZEOF_LONG >= SIZEOF_SIZE_T - #define __Pyx_sst_abs(value) labs(value) -#elif defined (_MSC_VER) - #define __Pyx_sst_abs(value) ((Py_ssize_t)_abs64(value)) -#elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L - #define __Pyx_sst_abs(value) llabs(value) -#elif defined (__GNUC__) - #define __Pyx_sst_abs(value) __builtin_llabs(value) -#else - #define __Pyx_sst_abs(value) ((value<0) ? -value : value) -#endif -static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject*); -static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length); -#define __Pyx_PyByteArray_FromString(s) PyByteArray_FromStringAndSize((const char*)s, strlen((const char*)s)) -#define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l) -#define __Pyx_PyBytes_FromString PyBytes_FromString -#define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize -static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*); -#if PY_MAJOR_VERSION < 3 - #define __Pyx_PyStr_FromString __Pyx_PyBytes_FromString - #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize -#else - #define __Pyx_PyStr_FromString __Pyx_PyUnicode_FromString - #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize -#endif -#define __Pyx_PyBytes_AsWritableString(s) ((char*) PyBytes_AS_STRING(s)) -#define __Pyx_PyBytes_AsWritableSString(s) ((signed char*) PyBytes_AS_STRING(s)) -#define __Pyx_PyBytes_AsWritableUString(s) ((unsigned char*) PyBytes_AS_STRING(s)) -#define __Pyx_PyBytes_AsString(s) ((const char*) PyBytes_AS_STRING(s)) -#define __Pyx_PyBytes_AsSString(s) ((const signed char*) PyBytes_AS_STRING(s)) -#define __Pyx_PyBytes_AsUString(s) ((const unsigned char*) PyBytes_AS_STRING(s)) -#define __Pyx_PyObject_AsWritableString(s) ((char*) __Pyx_PyObject_AsString(s)) -#define __Pyx_PyObject_AsWritableSString(s) ((signed char*) __Pyx_PyObject_AsString(s)) -#define __Pyx_PyObject_AsWritableUString(s) ((unsigned char*) __Pyx_PyObject_AsString(s)) -#define __Pyx_PyObject_AsSString(s) ((const signed char*) __Pyx_PyObject_AsString(s)) -#define __Pyx_PyObject_AsUString(s) ((const unsigned char*) __Pyx_PyObject_AsString(s)) -#define __Pyx_PyObject_FromCString(s) __Pyx_PyObject_FromString((const char*)s) -#define __Pyx_PyBytes_FromCString(s) __Pyx_PyBytes_FromString((const char*)s) -#define __Pyx_PyByteArray_FromCString(s) __Pyx_PyByteArray_FromString((const char*)s) -#define __Pyx_PyStr_FromCString(s) __Pyx_PyStr_FromString((const char*)s) -#define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s) -static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u) { - const Py_UNICODE *u_end = u; - while (*u_end++) ; - return (size_t)(u_end - u - 1); -} -#define __Pyx_PyUnicode_FromUnicode(u) PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u)) -#define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode -#define __Pyx_PyUnicode_AsUnicode PyUnicode_AsUnicode -#define __Pyx_NewRef(obj) (Py_INCREF(obj), obj) -#define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None) -static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b); -static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*); -static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject*); -static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x); -#define __Pyx_PySequence_Tuple(obj)\ - (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj)) -static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*); -static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t); -#if CYTHON_ASSUME_SAFE_MACROS -#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x)) -#else -#define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x) -#endif -#define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x)) -#if PY_MAJOR_VERSION >= 3 -#define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x)) -#else -#define __Pyx_PyNumber_Int(x) (PyInt_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Int(x)) -#endif -#define __Pyx_PyNumber_Float(x) (PyFloat_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Float(x)) -#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII -static int __Pyx_sys_getdefaultencoding_not_ascii; -static int __Pyx_init_sys_getdefaultencoding_params(void) { - PyObject* sys; - PyObject* default_encoding = NULL; - PyObject* ascii_chars_u = NULL; - PyObject* ascii_chars_b = NULL; - const char* default_encoding_c; - sys = PyImport_ImportModule("sys"); - if (!sys) goto bad; - default_encoding = PyObject_CallMethod(sys, (char*) "getdefaultencoding", NULL); - Py_DECREF(sys); - if (!default_encoding) goto bad; - default_encoding_c = PyBytes_AsString(default_encoding); - if (!default_encoding_c) goto bad; - if (strcmp(default_encoding_c, "ascii") == 0) { - __Pyx_sys_getdefaultencoding_not_ascii = 0; - } else { - char ascii_chars[128]; - int c; - for (c = 0; c < 128; c++) { - ascii_chars[c] = c; - } - __Pyx_sys_getdefaultencoding_not_ascii = 1; - ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL); - if (!ascii_chars_u) goto bad; - ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL); - if (!ascii_chars_b || !PyBytes_Check(ascii_chars_b) || memcmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) { - PyErr_Format( - PyExc_ValueError, - "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.", - default_encoding_c); - goto bad; - } - Py_DECREF(ascii_chars_u); - Py_DECREF(ascii_chars_b); - } - Py_DECREF(default_encoding); - return 0; -bad: - Py_XDECREF(default_encoding); - Py_XDECREF(ascii_chars_u); - Py_XDECREF(ascii_chars_b); - return -1; -} -#endif -#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3 -#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL) -#else -#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL) -#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT -static char* __PYX_DEFAULT_STRING_ENCODING; -static int __Pyx_init_sys_getdefaultencoding_params(void) { - PyObject* sys; - PyObject* default_encoding = NULL; - char* default_encoding_c; - sys = PyImport_ImportModule("sys"); - if (!sys) goto bad; - default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL); - Py_DECREF(sys); - if (!default_encoding) goto bad; - default_encoding_c = PyBytes_AsString(default_encoding); - if (!default_encoding_c) goto bad; - __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c) + 1); - if (!__PYX_DEFAULT_STRING_ENCODING) goto bad; - strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c); - Py_DECREF(default_encoding); - return 0; -bad: - Py_XDECREF(default_encoding); - return -1; -} -#endif -#endif - - -/* Test for GCC > 2.95 */ -#if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95))) - #define likely(x) __builtin_expect(!!(x), 1) - #define unlikely(x) __builtin_expect(!!(x), 0) -#else /* !__GNUC__ or GCC < 2.95 */ - #define likely(x) (x) - #define unlikely(x) (x) -#endif /* __GNUC__ */ -static CYTHON_INLINE void __Pyx_pretend_to_initialize(void* ptr) { (void)ptr; } - -static PyObject *__pyx_m = NULL; -static PyObject *__pyx_d; -static PyObject *__pyx_b; -static PyObject *__pyx_cython_runtime = NULL; -static PyObject *__pyx_empty_tuple; -static PyObject *__pyx_empty_bytes; -static PyObject *__pyx_empty_unicode; -static int __pyx_lineno; -static int __pyx_clineno = 0; -static const char * __pyx_cfilenm= __FILE__; -static const char *__pyx_filename; - - -static const char *__pyx_f[] = { - "stringsource", - "reccdi/src_py/cyth/bridge_cuda.pyx", -}; - -/*--- Type declarations ---*/ -struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge; - -/* "reccdi/src_py/cyth/bridge_cuda.pyx":36 - * - * - * cdef class PyBridge: # <<<<<<<<<<<<<< - * cdef Bridge *thisptr - * def __cinit__(self): - */ -struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge { - PyObject_HEAD - Bridge *thisptr; -}; - - -/* --- Runtime support code (head) --- */ -/* Refnanny.proto */ -#ifndef CYTHON_REFNANNY - #define CYTHON_REFNANNY 0 -#endif -#if CYTHON_REFNANNY - typedef struct { - void (*INCREF)(void*, PyObject*, int); - void (*DECREF)(void*, PyObject*, int); - void (*GOTREF)(void*, PyObject*, int); - void (*GIVEREF)(void*, PyObject*, int); - void* (*SetupContext)(const char*, int, const char*); - void (*FinishContext)(void**); - } __Pyx_RefNannyAPIStruct; - static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL; - static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname); - #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL; -#ifdef WITH_THREAD - #define __Pyx_RefNannySetupContext(name, acquire_gil)\ - if (acquire_gil) {\ - PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\ - __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\ - PyGILState_Release(__pyx_gilstate_save);\ - } else {\ - __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\ - } -#else - #define __Pyx_RefNannySetupContext(name, acquire_gil)\ - __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__) -#endif - #define __Pyx_RefNannyFinishContext()\ - __Pyx_RefNanny->FinishContext(&__pyx_refnanny) - #define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__) - #define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__) - #define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__) - #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__) - #define __Pyx_XINCREF(r) do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0) - #define __Pyx_XDECREF(r) do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0) - #define __Pyx_XGOTREF(r) do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0) - #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0) -#else - #define __Pyx_RefNannyDeclarations - #define __Pyx_RefNannySetupContext(name, acquire_gil) - #define __Pyx_RefNannyFinishContext() - #define __Pyx_INCREF(r) Py_INCREF(r) - #define __Pyx_DECREF(r) Py_DECREF(r) - #define __Pyx_GOTREF(r) - #define __Pyx_GIVEREF(r) - #define __Pyx_XINCREF(r) Py_XINCREF(r) - #define __Pyx_XDECREF(r) Py_XDECREF(r) - #define __Pyx_XGOTREF(r) - #define __Pyx_XGIVEREF(r) -#endif -#define __Pyx_XDECREF_SET(r, v) do {\ - PyObject *tmp = (PyObject *) r;\ - r = v; __Pyx_XDECREF(tmp);\ - } while (0) -#define __Pyx_DECREF_SET(r, v) do {\ - PyObject *tmp = (PyObject *) r;\ - r = v; __Pyx_DECREF(tmp);\ - } while (0) -#define __Pyx_CLEAR(r) do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0) -#define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0) - -/* PyObjectGetAttrStr.proto */ -#if CYTHON_USE_TYPE_SLOTS -static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name); -#else -#define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n) -#endif - -/* GetBuiltinName.proto */ -static PyObject *__Pyx_GetBuiltinName(PyObject *name); - -/* RaiseArgTupleInvalid.proto */ -static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact, - Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); - -/* KeywordStringCheck.proto */ -static int __Pyx_CheckKeywordStrings(PyObject *kwdict, const char* function_name, int kw_allowed); - -/* RaiseDoubleKeywords.proto */ -static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name); - -/* ParseKeywords.proto */ -static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[],\ - PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args,\ - const char* function_name); - -/* PyFunctionFastCall.proto */ -#if CYTHON_FAST_PYCALL -#define __Pyx_PyFunction_FastCall(func, args, nargs)\ - __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL) -#if 1 || PY_VERSION_HEX < 0x030600B1 -static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs); -#else -#define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs) -#endif -#define __Pyx_BUILD_ASSERT_EXPR(cond)\ - (sizeof(char [1 - 2*!(cond)]) - 1) -#ifndef Py_MEMBER_SIZE -#define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member) -#endif - static size_t __pyx_pyframe_localsplus_offset = 0; - #include "frameobject.h" - #define __Pxy_PyFrame_Initialize_Offsets()\ - ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\ - (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus))) - #define __Pyx_PyFrame_GetLocalsplus(frame)\ - (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset)) -#endif - -/* PyObjectCall.proto */ -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw); -#else -#define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw) -#endif - -/* PyObjectCallMethO.proto */ -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg); -#endif - -/* PyObjectCallNoArg.proto */ -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func); -#else -#define __Pyx_PyObject_CallNoArg(func) __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL) -#endif - -/* PyCFunctionFastCall.proto */ -#if CYTHON_FAST_PYCCALL -static CYTHON_INLINE PyObject *__Pyx_PyCFunction_FastCall(PyObject *func, PyObject **args, Py_ssize_t nargs); -#else -#define __Pyx_PyCFunction_FastCall(func, args, nargs) (assert(0), NULL) -#endif - -/* PyObjectCallOneArg.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg); - -/* PyThreadStateGet.proto */ -#if CYTHON_FAST_THREAD_STATE -#define __Pyx_PyThreadState_declare PyThreadState *__pyx_tstate; -#define __Pyx_PyThreadState_assign __pyx_tstate = __Pyx_PyThreadState_Current; -#define __Pyx_PyErr_Occurred() __pyx_tstate->curexc_type -#else -#define __Pyx_PyThreadState_declare -#define __Pyx_PyThreadState_assign -#define __Pyx_PyErr_Occurred() PyErr_Occurred() -#endif - -/* PyErrFetchRestore.proto */ -#if CYTHON_FAST_THREAD_STATE -#define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL) -#define __Pyx_ErrRestoreWithState(type, value, tb) __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb) -#define __Pyx_ErrFetchWithState(type, value, tb) __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb) -#define __Pyx_ErrRestore(type, value, tb) __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb) -#define __Pyx_ErrFetch(type, value, tb) __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb) -static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb); -static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); -#if CYTHON_COMPILING_IN_CPYTHON -#define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL)) -#else -#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) -#endif -#else -#define __Pyx_PyErr_Clear() PyErr_Clear() -#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) -#define __Pyx_ErrRestoreWithState(type, value, tb) PyErr_Restore(type, value, tb) -#define __Pyx_ErrFetchWithState(type, value, tb) PyErr_Fetch(type, value, tb) -#define __Pyx_ErrRestoreInState(tstate, type, value, tb) PyErr_Restore(type, value, tb) -#define __Pyx_ErrFetchInState(tstate, type, value, tb) PyErr_Fetch(type, value, tb) -#define __Pyx_ErrRestore(type, value, tb) PyErr_Restore(type, value, tb) -#define __Pyx_ErrFetch(type, value, tb) PyErr_Fetch(type, value, tb) -#endif - -/* RaiseException.proto */ -static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); - -/* ListCompAppend.proto */ -#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS -static CYTHON_INLINE int __Pyx_ListComp_Append(PyObject* list, PyObject* x) { - PyListObject* L = (PyListObject*) list; - Py_ssize_t len = Py_SIZE(list); - if (likely(L->allocated > len)) { - Py_INCREF(x); - PyList_SET_ITEM(list, len, x); - Py_SIZE(list) = len+1; - return 0; - } - return PyList_Append(list, x); -} -#else -#define __Pyx_ListComp_Append(L,x) PyList_Append(L,x) -#endif - -/* PyObject_GenericGetAttrNoDict.proto */ -#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 -static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name); -#else -#define __Pyx_PyObject_GenericGetAttrNoDict PyObject_GenericGetAttr -#endif - -/* PyObject_GenericGetAttr.proto */ -#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 -static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name); -#else -#define __Pyx_PyObject_GenericGetAttr PyObject_GenericGetAttr -#endif - -/* SetupReduce.proto */ -static int __Pyx_setup_reduce(PyObject* type_obj); - -/* PyDictVersioning.proto */ -#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS -#define __PYX_DICT_VERSION_INIT ((PY_UINT64_T) -1) -#define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag) -#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\ - (version_var) = __PYX_GET_DICT_VERSION(dict);\ - (cache_var) = (value); -#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\ - static PY_UINT64_T __pyx_dict_version = 0;\ - static PyObject *__pyx_dict_cached_value = NULL;\ - if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\ - (VAR) = __pyx_dict_cached_value;\ - } else {\ - (VAR) = __pyx_dict_cached_value = (LOOKUP);\ - __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\ - }\ -} -static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj); -static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj); -static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version); -#else -#define __PYX_GET_DICT_VERSION(dict) (0) -#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var) -#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) (VAR) = (LOOKUP); -#endif - -/* CLineInTraceback.proto */ -#ifdef CYTHON_CLINE_IN_TRACEBACK -#define __Pyx_CLineForTraceback(tstate, c_line) (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0) -#else -static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line); -#endif - -/* CodeObjectCache.proto */ -typedef struct { - PyCodeObject* code_object; - int code_line; -} __Pyx_CodeObjectCacheEntry; -struct __Pyx_CodeObjectCache { - int count; - int max_count; - __Pyx_CodeObjectCacheEntry* entries; -}; -static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL}; -static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line); -static PyCodeObject *__pyx_find_code_object(int code_line); -static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object); - -/* AddTraceback.proto */ -static void __Pyx_AddTraceback(const char *funcname, int c_line, - int py_line, const char *filename); - -/* CppExceptionConversion.proto */ -#ifndef __Pyx_CppExn2PyErr -#include -#include -#include -#include -static void __Pyx_CppExn2PyErr() { - try { - if (PyErr_Occurred()) - ; // let the latest Python exn pass through and ignore the current one - else - throw; - } catch (const std::bad_alloc& exn) { - PyErr_SetString(PyExc_MemoryError, exn.what()); - } catch (const std::bad_cast& exn) { - PyErr_SetString(PyExc_TypeError, exn.what()); - } catch (const std::bad_typeid& exn) { - PyErr_SetString(PyExc_TypeError, exn.what()); - } catch (const std::domain_error& exn) { - PyErr_SetString(PyExc_ValueError, exn.what()); - } catch (const std::invalid_argument& exn) { - PyErr_SetString(PyExc_ValueError, exn.what()); - } catch (const std::ios_base::failure& exn) { - PyErr_SetString(PyExc_IOError, exn.what()); - } catch (const std::out_of_range& exn) { - PyErr_SetString(PyExc_IndexError, exn.what()); - } catch (const std::overflow_error& exn) { - PyErr_SetString(PyExc_OverflowError, exn.what()); - } catch (const std::range_error& exn) { - PyErr_SetString(PyExc_ArithmeticError, exn.what()); - } catch (const std::underflow_error& exn) { - PyErr_SetString(PyExc_ArithmeticError, exn.what()); - } catch (const std::exception& exn) { - PyErr_SetString(PyExc_RuntimeError, exn.what()); - } - catch (...) - { - PyErr_SetString(PyExc_RuntimeError, "Unknown exception"); - } -} -#endif - -/* CIntToPy.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); - -/* CIntFromPy.proto */ -static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); - -/* CIntFromPy.proto */ -static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *); - -/* CIntToPy.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); - -/* CIntFromPy.proto */ -static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *); - -/* FastTypeChecks.proto */ -#if CYTHON_COMPILING_IN_CPYTHON -#define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type) -static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b); -static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type); -static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2); -#else -#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type) -#define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type) -#define __Pyx_PyErr_GivenExceptionMatches2(err, type1, type2) (PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2)) -#endif -#define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception) - -/* CheckBinaryVersion.proto */ -static int __Pyx_check_binary_version(void); - -/* InitStrings.proto */ -static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); - - -/* Module declarations from 'libcpp.vector' */ - -/* Module declarations from 'libc.string' */ - -/* Module declarations from 'libcpp.string' */ - -/* Module declarations from 'reccdi.src_py.cyth.bridge_cuda' */ -static PyTypeObject *__pyx_ptype_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge = 0; -static std::vector __pyx_convert_vector_from_py_float(PyObject *); /*proto*/ -static std::vector __pyx_convert_vector_from_py_int(PyObject *); /*proto*/ -static std::string __pyx_convert_string_from_py_std__in_string(PyObject *); /*proto*/ -static PyObject *__pyx_convert_vector_to_py_double(const std::vector &); /*proto*/ -static PyObject *__pyx_convert_vector_to_py_float(const std::vector &); /*proto*/ -static PyObject *__pyx_convert_vector_to_py_int(const std::vector &); /*proto*/ -#define __Pyx_MODULE_NAME "reccdi.src_py.cyth.bridge_cuda" -extern int __pyx_module_is_main_reccdi__src_py__cyth__bridge_cuda; -int __pyx_module_is_main_reccdi__src_py__cyth__bridge_cuda = 0; - -/* Implementation of 'reccdi.src_py.cyth.bridge_cuda' */ -static PyObject *__pyx_builtin_TypeError; -static PyObject *__pyx_builtin_range; -static const char __pyx_k_coh[] = "coh"; -static const char __pyx_k_dims[] = "dims"; -static const char __pyx_k_main[] = "__main__"; -static const char __pyx_k_name[] = "__name__"; -static const char __pyx_k_test[] = "__test__"; -static const char __pyx_k_range[] = "range"; -static const char __pyx_k_config[] = "config"; -static const char __pyx_k_data_r[] = "data_r"; -static const char __pyx_k_device[] = "device"; -static const char __pyx_k_encode[] = "encode"; -static const char __pyx_k_reduce[] = "__reduce__"; -static const char __pyx_k_guess_i[] = "guess_i"; -static const char __pyx_k_guess_r[] = "guess_r"; -static const char __pyx_k_support[] = "support"; -static const char __pyx_k_PyBridge[] = "PyBridge"; -static const char __pyx_k_coh_dims[] = "coh_dims"; -static const char __pyx_k_getstate[] = "__getstate__"; -static const char __pyx_k_setstate[] = "__setstate__"; -static const char __pyx_k_TypeError[] = "TypeError"; -static const char __pyx_k_reduce_ex[] = "__reduce_ex__"; -static const char __pyx_k_reduce_cython[] = "__reduce_cython__"; -static const char __pyx_k_setstate_cython[] = "__setstate_cython__"; -static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; -static const char __pyx_k_no_default___reduce___due_to_non[] = "no default __reduce__ due to non-trivial __cinit__"; -static PyObject *__pyx_n_s_PyBridge; -static PyObject *__pyx_n_s_TypeError; -static PyObject *__pyx_n_s_cline_in_traceback; -static PyObject *__pyx_n_s_coh; -static PyObject *__pyx_n_s_coh_dims; -static PyObject *__pyx_n_s_config; -static PyObject *__pyx_n_s_data_r; -static PyObject *__pyx_n_s_device; -static PyObject *__pyx_n_s_dims; -static PyObject *__pyx_n_s_encode; -static PyObject *__pyx_n_s_getstate; -static PyObject *__pyx_n_s_guess_i; -static PyObject *__pyx_n_s_guess_r; -static PyObject *__pyx_n_s_main; -static PyObject *__pyx_n_s_name; -static PyObject *__pyx_kp_s_no_default___reduce___due_to_non; -static PyObject *__pyx_n_s_range; -static PyObject *__pyx_n_s_reduce; -static PyObject *__pyx_n_s_reduce_cython; -static PyObject *__pyx_n_s_reduce_ex; -static PyObject *__pyx_n_s_setstate; -static PyObject *__pyx_n_s_setstate_cython; -static PyObject *__pyx_n_s_support; -static PyObject *__pyx_n_s_test; -static int __pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge___cinit__(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self); /* proto */ -static void __pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_2__dealloc__(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_4start_calc_with_guess(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_guess_r, PyObject *__pyx_v_guess_i, PyObject *__pyx_v_dims, PyObject *__pyx_v_config); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_6start_calc_with_guess_support(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_guess_r, PyObject *__pyx_v_guess_i, PyObject *__pyx_v_support, PyObject *__pyx_v_dims, PyObject *__pyx_v_config); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_8start_calc_with_guess_support_coh(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_guess_r, PyObject *__pyx_v_guess_i, PyObject *__pyx_v_support, PyObject *__pyx_v_dims, PyObject *__pyx_v_coh, PyObject *__pyx_v_coh_dims, PyObject *__pyx_v_config); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_10start_calc(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_dims, PyObject *__pyx_v_config); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_12get_image_r(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_14get_image_i(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_16get_errors(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_18get_support(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_20get_coherence(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_22get_reciprocal_r(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_24get_reciprocal_i(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_26get_flow(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_28get_iter_flow(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_30cleanup(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_32__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_34__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ -static PyObject *__pyx_tp_new_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ -static PyObject *__pyx_tuple_; -static PyObject *__pyx_tuple__2; -/* Late includes */ - -/* "reccdi/src_py/cyth/bridge_cuda.pyx":38 - * cdef class PyBridge: - * cdef Bridge *thisptr - * def __cinit__(self): # <<<<<<<<<<<<<< - * self.thisptr = new Bridge() - * def __dealloc__(self): - */ - -/* Python wrapper */ -static int __pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static int __pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - int __pyx_r; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); - if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { - __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} - if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge___cinit__(((struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static int __pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge___cinit__(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self) { - int __pyx_r; - __Pyx_RefNannyDeclarations - Bridge *__pyx_t_1; - __Pyx_RefNannySetupContext("__cinit__", 0); - - /* "reccdi/src_py/cyth/bridge_cuda.pyx":39 - * cdef Bridge *thisptr - * def __cinit__(self): - * self.thisptr = new Bridge() # <<<<<<<<<<<<<< - * def __dealloc__(self): - * del self.thisptr - */ - try { - __pyx_t_1 = new Bridge(); - } catch(...) { - __Pyx_CppExn2PyErr(); - __PYX_ERR(1, 39, __pyx_L1_error) - } - __pyx_v_self->thisptr = __pyx_t_1; - - /* "reccdi/src_py/cyth/bridge_cuda.pyx":38 - * cdef class PyBridge: - * cdef Bridge *thisptr - * def __cinit__(self): # <<<<<<<<<<<<<< - * self.thisptr = new Bridge() - * def __dealloc__(self): - */ - - /* function exit code */ - __pyx_r = 0; - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cuda.PyBridge.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1; - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "reccdi/src_py/cyth/bridge_cuda.pyx":40 - * def __cinit__(self): - * self.thisptr = new Bridge() - * def __dealloc__(self): # <<<<<<<<<<<<<< - * del self.thisptr - * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): - */ - -/* Python wrapper */ -static void __pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_3__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_3__dealloc__(PyObject *__pyx_v_self) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); - __pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_2__dealloc__(((struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); -} - -static void __pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_2__dealloc__(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__dealloc__", 0); - - /* "reccdi/src_py/cyth/bridge_cuda.pyx":41 - * self.thisptr = new Bridge() - * def __dealloc__(self): - * del self.thisptr # <<<<<<<<<<<<<< - * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): - * self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) - */ - delete __pyx_v_self->thisptr; - - /* "reccdi/src_py/cyth/bridge_cuda.pyx":40 - * def __cinit__(self): - * self.thisptr = new Bridge() - * def __dealloc__(self): # <<<<<<<<<<<<<< - * del self.thisptr - * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): - */ - - /* function exit code */ - __Pyx_RefNannyFinishContext(); -} - -/* "reccdi/src_py/cyth/bridge_cuda.pyx":42 - * def __dealloc__(self): - * del self.thisptr - * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): # <<<<<<<<<<<<<< - * self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) - * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_5start_calc_with_guess(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_5start_calc_with_guess(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_device = 0; - PyObject *__pyx_v_data_r = 0; - PyObject *__pyx_v_guess_r = 0; - PyObject *__pyx_v_guess_i = 0; - PyObject *__pyx_v_dims = 0; - PyObject *__pyx_v_config = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("start_calc_with_guess (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_device,&__pyx_n_s_data_r,&__pyx_n_s_guess_r,&__pyx_n_s_guess_i,&__pyx_n_s_dims,&__pyx_n_s_config,0}; - PyObject* values[6] = {0,0,0,0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); - CYTHON_FALLTHROUGH; - case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = PyDict_Size(__pyx_kwds); - switch (pos_args) { - case 0: - if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_device)) != 0)) kw_args--; - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_data_r)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess", 1, 6, 6, 1); __PYX_ERR(1, 42, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_guess_r)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess", 1, 6, 6, 2); __PYX_ERR(1, 42, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_guess_i)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess", 1, 6, 6, 3); __PYX_ERR(1, 42, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 4: - if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dims)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess", 1, 6, 6, 4); __PYX_ERR(1, 42, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 5: - if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_config)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess", 1, 6, 6, 5); __PYX_ERR(1, 42, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "start_calc_with_guess") < 0)) __PYX_ERR(1, 42, __pyx_L3_error) - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 6) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - values[5] = PyTuple_GET_ITEM(__pyx_args, 5); - } - __pyx_v_device = values[0]; - __pyx_v_data_r = values[1]; - __pyx_v_guess_r = values[2]; - __pyx_v_guess_i = values[3]; - __pyx_v_dims = values[4]; - __pyx_v_config = values[5]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 42, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cuda.PyBridge.start_calc_with_guess", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_4start_calc_with_guess(((struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *)__pyx_v_self), __pyx_v_device, __pyx_v_data_r, __pyx_v_guess_r, __pyx_v_guess_i, __pyx_v_dims, __pyx_v_config); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_4start_calc_with_guess(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_guess_r, PyObject *__pyx_v_guess_i, PyObject *__pyx_v_dims, PyObject *__pyx_v_config) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - std::vector __pyx_t_2; - std::vector __pyx_t_3; - std::vector __pyx_t_4; - std::vector __pyx_t_5; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - std::string __pyx_t_9; - __Pyx_RefNannySetupContext("start_calc_with_guess", 0); - - /* "reccdi/src_py/cyth/bridge_cuda.pyx":43 - * del self.thisptr - * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): - * self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) # <<<<<<<<<<<<<< - * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): - * self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) - */ - __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_device); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 43, __pyx_L1_error) - __pyx_t_2 = __pyx_convert_vector_from_py_float(__pyx_v_data_r); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 43, __pyx_L1_error) - __pyx_t_3 = __pyx_convert_vector_from_py_float(__pyx_v_guess_r); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 43, __pyx_L1_error) - __pyx_t_4 = __pyx_convert_vector_from_py_float(__pyx_v_guess_i); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 43, __pyx_L1_error) - __pyx_t_5 = __pyx_convert_vector_from_py_int(__pyx_v_dims); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 43, __pyx_L1_error) - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_config, __pyx_n_s_encode); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 43, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = NULL; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { - __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); - if (likely(__pyx_t_8)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); - __Pyx_INCREF(__pyx_t_8); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_7, function); - } - } - __pyx_t_6 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 43, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_9 = __pyx_convert_string_from_py_std__in_string(__pyx_t_6); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 43, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_v_self->thisptr->StartCalcWithGuess(__pyx_t_1, __pyx_t_2, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_9); - - /* "reccdi/src_py/cyth/bridge_cuda.pyx":42 - * def __dealloc__(self): - * del self.thisptr - * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): # <<<<<<<<<<<<<< - * self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) - * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): - */ - - /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cuda.PyBridge.start_calc_with_guess", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "reccdi/src_py/cyth/bridge_cuda.pyx":44 - * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): - * self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) - * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): # <<<<<<<<<<<<<< - * self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) - * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_7start_calc_with_guess_support(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_7start_calc_with_guess_support(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_device = 0; - PyObject *__pyx_v_data_r = 0; - PyObject *__pyx_v_guess_r = 0; - PyObject *__pyx_v_guess_i = 0; - PyObject *__pyx_v_support = 0; - PyObject *__pyx_v_dims = 0; - PyObject *__pyx_v_config = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("start_calc_with_guess_support (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_device,&__pyx_n_s_data_r,&__pyx_n_s_guess_r,&__pyx_n_s_guess_i,&__pyx_n_s_support,&__pyx_n_s_dims,&__pyx_n_s_config,0}; - PyObject* values[7] = {0,0,0,0,0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); - CYTHON_FALLTHROUGH; - case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); - CYTHON_FALLTHROUGH; - case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = PyDict_Size(__pyx_kwds); - switch (pos_args) { - case 0: - if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_device)) != 0)) kw_args--; - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_data_r)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support", 1, 7, 7, 1); __PYX_ERR(1, 44, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_guess_r)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support", 1, 7, 7, 2); __PYX_ERR(1, 44, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_guess_i)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support", 1, 7, 7, 3); __PYX_ERR(1, 44, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 4: - if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_support)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support", 1, 7, 7, 4); __PYX_ERR(1, 44, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 5: - if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dims)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support", 1, 7, 7, 5); __PYX_ERR(1, 44, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 6: - if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_config)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support", 1, 7, 7, 6); __PYX_ERR(1, 44, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "start_calc_with_guess_support") < 0)) __PYX_ERR(1, 44, __pyx_L3_error) - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 7) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - values[5] = PyTuple_GET_ITEM(__pyx_args, 5); - values[6] = PyTuple_GET_ITEM(__pyx_args, 6); - } - __pyx_v_device = values[0]; - __pyx_v_data_r = values[1]; - __pyx_v_guess_r = values[2]; - __pyx_v_guess_i = values[3]; - __pyx_v_support = values[4]; - __pyx_v_dims = values[5]; - __pyx_v_config = values[6]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support", 1, 7, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 44, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cuda.PyBridge.start_calc_with_guess_support", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_6start_calc_with_guess_support(((struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *)__pyx_v_self), __pyx_v_device, __pyx_v_data_r, __pyx_v_guess_r, __pyx_v_guess_i, __pyx_v_support, __pyx_v_dims, __pyx_v_config); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_6start_calc_with_guess_support(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_guess_r, PyObject *__pyx_v_guess_i, PyObject *__pyx_v_support, PyObject *__pyx_v_dims, PyObject *__pyx_v_config) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - std::vector __pyx_t_2; - std::vector __pyx_t_3; - std::vector __pyx_t_4; - std::vector __pyx_t_5; - std::vector __pyx_t_6; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - std::string __pyx_t_10; - __Pyx_RefNannySetupContext("start_calc_with_guess_support", 0); - - /* "reccdi/src_py/cyth/bridge_cuda.pyx":45 - * self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) - * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): - * self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) # <<<<<<<<<<<<<< - * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): - * self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) - */ - __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_device); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 45, __pyx_L1_error) - __pyx_t_2 = __pyx_convert_vector_from_py_float(__pyx_v_data_r); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 45, __pyx_L1_error) - __pyx_t_3 = __pyx_convert_vector_from_py_float(__pyx_v_guess_r); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 45, __pyx_L1_error) - __pyx_t_4 = __pyx_convert_vector_from_py_float(__pyx_v_guess_i); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 45, __pyx_L1_error) - __pyx_t_5 = __pyx_convert_vector_from_py_int(__pyx_v_support); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 45, __pyx_L1_error) - __pyx_t_6 = __pyx_convert_vector_from_py_int(__pyx_v_dims); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 45, __pyx_L1_error) - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_config, __pyx_n_s_encode); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 45, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = NULL; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { - __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8); - if (likely(__pyx_t_9)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); - __Pyx_INCREF(__pyx_t_9); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_8, function); - } - } - __pyx_t_7 = (__pyx_t_9) ? __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_9) : __Pyx_PyObject_CallNoArg(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 45, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_10 = __pyx_convert_string_from_py_std__in_string(__pyx_t_7); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 45, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_v_self->thisptr->StartCalcWithGuessSupport(__pyx_t_1, __pyx_t_2, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6, __pyx_t_10); - - /* "reccdi/src_py/cyth/bridge_cuda.pyx":44 - * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): - * self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) - * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): # <<<<<<<<<<<<<< - * self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) - * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): - */ - - /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cuda.PyBridge.start_calc_with_guess_support", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "reccdi/src_py/cyth/bridge_cuda.pyx":46 - * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): - * self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) - * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): # <<<<<<<<<<<<<< - * self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) - * def start_calc(self, device, data_r, dims, config): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_9start_calc_with_guess_support_coh(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_9start_calc_with_guess_support_coh(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_device = 0; - PyObject *__pyx_v_data_r = 0; - PyObject *__pyx_v_guess_r = 0; - PyObject *__pyx_v_guess_i = 0; - PyObject *__pyx_v_support = 0; - PyObject *__pyx_v_dims = 0; - PyObject *__pyx_v_coh = 0; - PyObject *__pyx_v_coh_dims = 0; - PyObject *__pyx_v_config = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("start_calc_with_guess_support_coh (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_device,&__pyx_n_s_data_r,&__pyx_n_s_guess_r,&__pyx_n_s_guess_i,&__pyx_n_s_support,&__pyx_n_s_dims,&__pyx_n_s_coh,&__pyx_n_s_coh_dims,&__pyx_n_s_config,0}; - PyObject* values[9] = {0,0,0,0,0,0,0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8); - CYTHON_FALLTHROUGH; - case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7); - CYTHON_FALLTHROUGH; - case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); - CYTHON_FALLTHROUGH; - case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); - CYTHON_FALLTHROUGH; - case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = PyDict_Size(__pyx_kwds); - switch (pos_args) { - case 0: - if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_device)) != 0)) kw_args--; - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_data_r)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 1); __PYX_ERR(1, 46, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_guess_r)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 2); __PYX_ERR(1, 46, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_guess_i)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 3); __PYX_ERR(1, 46, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 4: - if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_support)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 4); __PYX_ERR(1, 46, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 5: - if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dims)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 5); __PYX_ERR(1, 46, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 6: - if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_coh)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 6); __PYX_ERR(1, 46, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 7: - if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_coh_dims)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 7); __PYX_ERR(1, 46, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 8: - if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_config)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 8); __PYX_ERR(1, 46, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "start_calc_with_guess_support_coh") < 0)) __PYX_ERR(1, 46, __pyx_L3_error) - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 9) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - values[5] = PyTuple_GET_ITEM(__pyx_args, 5); - values[6] = PyTuple_GET_ITEM(__pyx_args, 6); - values[7] = PyTuple_GET_ITEM(__pyx_args, 7); - values[8] = PyTuple_GET_ITEM(__pyx_args, 8); - } - __pyx_v_device = values[0]; - __pyx_v_data_r = values[1]; - __pyx_v_guess_r = values[2]; - __pyx_v_guess_i = values[3]; - __pyx_v_support = values[4]; - __pyx_v_dims = values[5]; - __pyx_v_coh = values[6]; - __pyx_v_coh_dims = values[7]; - __pyx_v_config = values[8]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 46, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cuda.PyBridge.start_calc_with_guess_support_coh", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_8start_calc_with_guess_support_coh(((struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *)__pyx_v_self), __pyx_v_device, __pyx_v_data_r, __pyx_v_guess_r, __pyx_v_guess_i, __pyx_v_support, __pyx_v_dims, __pyx_v_coh, __pyx_v_coh_dims, __pyx_v_config); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_8start_calc_with_guess_support_coh(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_guess_r, PyObject *__pyx_v_guess_i, PyObject *__pyx_v_support, PyObject *__pyx_v_dims, PyObject *__pyx_v_coh, PyObject *__pyx_v_coh_dims, PyObject *__pyx_v_config) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - std::vector __pyx_t_2; - std::vector __pyx_t_3; - std::vector __pyx_t_4; - std::vector __pyx_t_5; - std::vector __pyx_t_6; - std::vector __pyx_t_7; - std::vector __pyx_t_8; - PyObject *__pyx_t_9 = NULL; - PyObject *__pyx_t_10 = NULL; - PyObject *__pyx_t_11 = NULL; - std::string __pyx_t_12; - __Pyx_RefNannySetupContext("start_calc_with_guess_support_coh", 0); - - /* "reccdi/src_py/cyth/bridge_cuda.pyx":47 - * self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) - * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): - * self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) # <<<<<<<<<<<<<< - * def start_calc(self, device, data_r, dims, config): - * self.thisptr.StartCalc(device, data_r, dims, config.encode()) - */ - __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_device); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 47, __pyx_L1_error) - __pyx_t_2 = __pyx_convert_vector_from_py_float(__pyx_v_data_r); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 47, __pyx_L1_error) - __pyx_t_3 = __pyx_convert_vector_from_py_float(__pyx_v_guess_r); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 47, __pyx_L1_error) - __pyx_t_4 = __pyx_convert_vector_from_py_float(__pyx_v_guess_i); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 47, __pyx_L1_error) - __pyx_t_5 = __pyx_convert_vector_from_py_int(__pyx_v_support); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 47, __pyx_L1_error) - __pyx_t_6 = __pyx_convert_vector_from_py_int(__pyx_v_dims); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 47, __pyx_L1_error) - __pyx_t_7 = __pyx_convert_vector_from_py_float(__pyx_v_coh); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 47, __pyx_L1_error) - __pyx_t_8 = __pyx_convert_vector_from_py_int(__pyx_v_coh_dims); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 47, __pyx_L1_error) - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_config, __pyx_n_s_encode); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 47, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __pyx_t_11 = NULL; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) { - __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_10); - if (likely(__pyx_t_11)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); - __Pyx_INCREF(__pyx_t_11); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_10, function); - } - } - __pyx_t_9 = (__pyx_t_11) ? __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_11) : __Pyx_PyObject_CallNoArg(__pyx_t_10); - __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 47, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_12 = __pyx_convert_string_from_py_std__in_string(__pyx_t_9); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 47, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_v_self->thisptr->StartCalcWithGuessSupportCoh(__pyx_t_1, __pyx_t_2, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6, __pyx_t_7, __pyx_t_8, __pyx_t_12); - - /* "reccdi/src_py/cyth/bridge_cuda.pyx":46 - * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): - * self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) - * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): # <<<<<<<<<<<<<< - * self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) - * def start_calc(self, device, data_r, dims, config): - */ - - /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_9); - __Pyx_XDECREF(__pyx_t_10); - __Pyx_XDECREF(__pyx_t_11); - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cuda.PyBridge.start_calc_with_guess_support_coh", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "reccdi/src_py/cyth/bridge_cuda.pyx":48 - * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): - * self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) - * def start_calc(self, device, data_r, dims, config): # <<<<<<<<<<<<<< - * self.thisptr.StartCalc(device, data_r, dims, config.encode()) - * def get_image_r(self): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_11start_calc(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_11start_calc(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_device = 0; - PyObject *__pyx_v_data_r = 0; - PyObject *__pyx_v_dims = 0; - PyObject *__pyx_v_config = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("start_calc (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_device,&__pyx_n_s_data_r,&__pyx_n_s_dims,&__pyx_n_s_config,0}; - PyObject* values[4] = {0,0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = PyDict_Size(__pyx_kwds); - switch (pos_args) { - case 0: - if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_device)) != 0)) kw_args--; - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_data_r)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc", 1, 4, 4, 1); __PYX_ERR(1, 48, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dims)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc", 1, 4, 4, 2); __PYX_ERR(1, 48, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_config)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc", 1, 4, 4, 3); __PYX_ERR(1, 48, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "start_calc") < 0)) __PYX_ERR(1, 48, __pyx_L3_error) - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - } - __pyx_v_device = values[0]; - __pyx_v_data_r = values[1]; - __pyx_v_dims = values[2]; - __pyx_v_config = values[3]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("start_calc", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 48, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cuda.PyBridge.start_calc", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_10start_calc(((struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *)__pyx_v_self), __pyx_v_device, __pyx_v_data_r, __pyx_v_dims, __pyx_v_config); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_10start_calc(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_dims, PyObject *__pyx_v_config) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - std::vector __pyx_t_2; - std::vector __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - std::string __pyx_t_7; - __Pyx_RefNannySetupContext("start_calc", 0); - - /* "reccdi/src_py/cyth/bridge_cuda.pyx":49 - * self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) - * def start_calc(self, device, data_r, dims, config): - * self.thisptr.StartCalc(device, data_r, dims, config.encode()) # <<<<<<<<<<<<<< - * def get_image_r(self): - * return self.thisptr.GetImageR() - */ - __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_device); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 49, __pyx_L1_error) - __pyx_t_2 = __pyx_convert_vector_from_py_float(__pyx_v_data_r); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 49, __pyx_L1_error) - __pyx_t_3 = __pyx_convert_vector_from_py_int(__pyx_v_dims); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 49, __pyx_L1_error) - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_config, __pyx_n_s_encode); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 49, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = NULL; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { - __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); - if (likely(__pyx_t_6)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_5, function); - } - } - __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 49, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_7 = __pyx_convert_string_from_py_std__in_string(__pyx_t_4); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 49, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_v_self->thisptr->StartCalc(__pyx_t_1, __pyx_t_2, __pyx_t_3, __pyx_t_7); - - /* "reccdi/src_py/cyth/bridge_cuda.pyx":48 - * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): - * self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) - * def start_calc(self, device, data_r, dims, config): # <<<<<<<<<<<<<< - * self.thisptr.StartCalc(device, data_r, dims, config.encode()) - * def get_image_r(self): - */ - - /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cuda.PyBridge.start_calc", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "reccdi/src_py/cyth/bridge_cuda.pyx":50 - * def start_calc(self, device, data_r, dims, config): - * self.thisptr.StartCalc(device, data_r, dims, config.encode()) - * def get_image_r(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetImageR() - * def get_image_i(self): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_13get_image_r(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_13get_image_r(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("get_image_r (wrapper)", 0); - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_12get_image_r(((struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_12get_image_r(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannySetupContext("get_image_r", 0); - - /* "reccdi/src_py/cyth/bridge_cuda.pyx":51 - * self.thisptr.StartCalc(device, data_r, dims, config.encode()) - * def get_image_r(self): - * return self.thisptr.GetImageR() # <<<<<<<<<<<<<< - * def get_image_i(self): - * return self.thisptr.GetImageI() - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_self->thisptr->GetImageR()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 51, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "reccdi/src_py/cyth/bridge_cuda.pyx":50 - * def start_calc(self, device, data_r, dims, config): - * self.thisptr.StartCalc(device, data_r, dims, config.encode()) - * def get_image_r(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetImageR() - * def get_image_i(self): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cuda.PyBridge.get_image_r", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "reccdi/src_py/cyth/bridge_cuda.pyx":52 - * def get_image_r(self): - * return self.thisptr.GetImageR() - * def get_image_i(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetImageI() - * def get_errors(self): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_15get_image_i(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_15get_image_i(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("get_image_i (wrapper)", 0); - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_14get_image_i(((struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_14get_image_i(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannySetupContext("get_image_i", 0); - - /* "reccdi/src_py/cyth/bridge_cuda.pyx":53 - * return self.thisptr.GetImageR() - * def get_image_i(self): - * return self.thisptr.GetImageI() # <<<<<<<<<<<<<< - * def get_errors(self): - * return self.thisptr.GetErrors() - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_self->thisptr->GetImageI()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 53, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "reccdi/src_py/cyth/bridge_cuda.pyx":52 - * def get_image_r(self): - * return self.thisptr.GetImageR() - * def get_image_i(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetImageI() - * def get_errors(self): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cuda.PyBridge.get_image_i", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "reccdi/src_py/cyth/bridge_cuda.pyx":54 - * def get_image_i(self): - * return self.thisptr.GetImageI() - * def get_errors(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetErrors() - * def get_support(self): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_17get_errors(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_17get_errors(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("get_errors (wrapper)", 0); - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_16get_errors(((struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_16get_errors(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannySetupContext("get_errors", 0); - - /* "reccdi/src_py/cyth/bridge_cuda.pyx":55 - * return self.thisptr.GetImageI() - * def get_errors(self): - * return self.thisptr.GetErrors() # <<<<<<<<<<<<<< - * def get_support(self): - * return self.thisptr.GetSupportV() - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_self->thisptr->GetErrors()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 55, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "reccdi/src_py/cyth/bridge_cuda.pyx":54 - * def get_image_i(self): - * return self.thisptr.GetImageI() - * def get_errors(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetErrors() - * def get_support(self): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cuda.PyBridge.get_errors", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "reccdi/src_py/cyth/bridge_cuda.pyx":56 - * def get_errors(self): - * return self.thisptr.GetErrors() - * def get_support(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetSupportV() - * def get_coherence(self): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_19get_support(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_19get_support(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("get_support (wrapper)", 0); - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_18get_support(((struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_18get_support(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannySetupContext("get_support", 0); - - /* "reccdi/src_py/cyth/bridge_cuda.pyx":57 - * return self.thisptr.GetErrors() - * def get_support(self): - * return self.thisptr.GetSupportV() # <<<<<<<<<<<<<< - * def get_coherence(self): - * return self.thisptr.GetCoherenceV() - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_convert_vector_to_py_float(__pyx_v_self->thisptr->GetSupportV()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 57, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "reccdi/src_py/cyth/bridge_cuda.pyx":56 - * def get_errors(self): - * return self.thisptr.GetErrors() - * def get_support(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetSupportV() - * def get_coherence(self): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cuda.PyBridge.get_support", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "reccdi/src_py/cyth/bridge_cuda.pyx":58 - * def get_support(self): - * return self.thisptr.GetSupportV() - * def get_coherence(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetCoherenceV() - * def get_reciprocal_r(self): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_21get_coherence(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_21get_coherence(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("get_coherence (wrapper)", 0); - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_20get_coherence(((struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_20get_coherence(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannySetupContext("get_coherence", 0); - - /* "reccdi/src_py/cyth/bridge_cuda.pyx":59 - * return self.thisptr.GetSupportV() - * def get_coherence(self): - * return self.thisptr.GetCoherenceV() # <<<<<<<<<<<<<< - * def get_reciprocal_r(self): - * return self.thisptr.GetReciprocalR() - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_self->thisptr->GetCoherenceV()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 59, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "reccdi/src_py/cyth/bridge_cuda.pyx":58 - * def get_support(self): - * return self.thisptr.GetSupportV() - * def get_coherence(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetCoherenceV() - * def get_reciprocal_r(self): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cuda.PyBridge.get_coherence", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "reccdi/src_py/cyth/bridge_cuda.pyx":60 - * def get_coherence(self): - * return self.thisptr.GetCoherenceV() - * def get_reciprocal_r(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetReciprocalR() - * def get_reciprocal_i(self): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_23get_reciprocal_r(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_23get_reciprocal_r(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("get_reciprocal_r (wrapper)", 0); - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_22get_reciprocal_r(((struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_22get_reciprocal_r(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannySetupContext("get_reciprocal_r", 0); - - /* "reccdi/src_py/cyth/bridge_cuda.pyx":61 - * return self.thisptr.GetCoherenceV() - * def get_reciprocal_r(self): - * return self.thisptr.GetReciprocalR() # <<<<<<<<<<<<<< - * def get_reciprocal_i(self): - * return self.thisptr.GetReciprocalI() - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_self->thisptr->GetReciprocalR()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 61, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "reccdi/src_py/cyth/bridge_cuda.pyx":60 - * def get_coherence(self): - * return self.thisptr.GetCoherenceV() - * def get_reciprocal_r(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetReciprocalR() - * def get_reciprocal_i(self): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cuda.PyBridge.get_reciprocal_r", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "reccdi/src_py/cyth/bridge_cuda.pyx":62 - * def get_reciprocal_r(self): - * return self.thisptr.GetReciprocalR() - * def get_reciprocal_i(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetReciprocalI() - * def get_flow(self): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_25get_reciprocal_i(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_25get_reciprocal_i(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("get_reciprocal_i (wrapper)", 0); - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_24get_reciprocal_i(((struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_24get_reciprocal_i(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannySetupContext("get_reciprocal_i", 0); - - /* "reccdi/src_py/cyth/bridge_cuda.pyx":63 - * return self.thisptr.GetReciprocalR() - * def get_reciprocal_i(self): - * return self.thisptr.GetReciprocalI() # <<<<<<<<<<<<<< - * def get_flow(self): - * return self.thisptr.GetFlowV() - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_self->thisptr->GetReciprocalI()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 63, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "reccdi/src_py/cyth/bridge_cuda.pyx":62 - * def get_reciprocal_r(self): - * return self.thisptr.GetReciprocalR() - * def get_reciprocal_i(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetReciprocalI() - * def get_flow(self): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cuda.PyBridge.get_reciprocal_i", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "reccdi/src_py/cyth/bridge_cuda.pyx":64 - * def get_reciprocal_i(self): - * return self.thisptr.GetReciprocalI() - * def get_flow(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetFlowV() - * def get_iter_flow(self): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_27get_flow(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_27get_flow(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("get_flow (wrapper)", 0); - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_26get_flow(((struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_26get_flow(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannySetupContext("get_flow", 0); - - /* "reccdi/src_py/cyth/bridge_cuda.pyx":65 - * return self.thisptr.GetReciprocalI() - * def get_flow(self): - * return self.thisptr.GetFlowV() # <<<<<<<<<<<<<< - * def get_iter_flow(self): - * return self.thisptr.GetIterFlowV() - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_convert_vector_to_py_int(__pyx_v_self->thisptr->GetFlowV()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 65, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "reccdi/src_py/cyth/bridge_cuda.pyx":64 - * def get_reciprocal_i(self): - * return self.thisptr.GetReciprocalI() - * def get_flow(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetFlowV() - * def get_iter_flow(self): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cuda.PyBridge.get_flow", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "reccdi/src_py/cyth/bridge_cuda.pyx":66 - * def get_flow(self): - * return self.thisptr.GetFlowV() - * def get_iter_flow(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetIterFlowV() - * def cleanup(self): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_29get_iter_flow(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_29get_iter_flow(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("get_iter_flow (wrapper)", 0); - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_28get_iter_flow(((struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_28get_iter_flow(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannySetupContext("get_iter_flow", 0); - - /* "reccdi/src_py/cyth/bridge_cuda.pyx":67 - * return self.thisptr.GetFlowV() - * def get_iter_flow(self): - * return self.thisptr.GetIterFlowV() # <<<<<<<<<<<<<< - * def cleanup(self): - * self.thisptr.Cleanup() - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_convert_vector_to_py_int(__pyx_v_self->thisptr->GetIterFlowV()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 67, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "reccdi/src_py/cyth/bridge_cuda.pyx":66 - * def get_flow(self): - * return self.thisptr.GetFlowV() - * def get_iter_flow(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetIterFlowV() - * def cleanup(self): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cuda.PyBridge.get_iter_flow", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "reccdi/src_py/cyth/bridge_cuda.pyx":68 - * def get_iter_flow(self): - * return self.thisptr.GetIterFlowV() - * def cleanup(self): # <<<<<<<<<<<<<< - * self.thisptr.Cleanup() - * - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_31cleanup(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_31cleanup(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("cleanup (wrapper)", 0); - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_30cleanup(((struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_30cleanup(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("cleanup", 0); - - /* "reccdi/src_py/cyth/bridge_cuda.pyx":69 - * return self.thisptr.GetIterFlowV() - * def cleanup(self): - * self.thisptr.Cleanup() # <<<<<<<<<<<<<< - * - */ - __pyx_v_self->thisptr->Cleanup(); - - /* "reccdi/src_py/cyth/bridge_cuda.pyx":68 - * def get_iter_flow(self): - * return self.thisptr.GetIterFlowV() - * def cleanup(self): # <<<<<<<<<<<<<< - * self.thisptr.Cleanup() - * - */ - - /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError("no default __reduce__ due to non-trivial __cinit__") - * def __setstate_cython__(self, __pyx_state): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_33__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_33__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_32__reduce_cython__(((struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_32__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannySetupContext("__reduce_cython__", 0); - - /* "(tree fragment)":2 - * def __reduce_cython__(self): - * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< - * def __setstate_cython__(self, __pyx_state): - * raise TypeError("no default __reduce__ due to non-trivial __cinit__") - */ - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple_, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_Raise(__pyx_t_1, 0, 0, 0); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 2, __pyx_L1_error) - - /* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError("no default __reduce__ due to non-trivial __cinit__") - * def __setstate_cython__(self, __pyx_state): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cuda.PyBridge.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError("no default __reduce__ due to non-trivial __cinit__") - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError("no default __reduce__ due to non-trivial __cinit__") - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_35__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_35__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_34__setstate_cython__(((struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_34__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannySetupContext("__setstate_cython__", 0); - - /* "(tree fragment)":4 - * raise TypeError("no default __reduce__ due to non-trivial __cinit__") - * def __setstate_cython__(self, __pyx_state): - * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< - */ - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_Raise(__pyx_t_1, 0, 0, 0); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 4, __pyx_L1_error) - - /* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError("no default __reduce__ due to non-trivial __cinit__") - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError("no default __reduce__ due to non-trivial __cinit__") - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cuda.PyBridge.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "vector.from_py":45 - * - * @cname("__pyx_convert_vector_from_py_float") - * cdef vector[X] __pyx_convert_vector_from_py_float(object o) except *: # <<<<<<<<<<<<<< - * cdef vector[X] v - * for item in o: - */ - -static std::vector __pyx_convert_vector_from_py_float(PyObject *__pyx_v_o) { - std::vector __pyx_v_v; - PyObject *__pyx_v_item = NULL; - std::vector __pyx_r; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - Py_ssize_t __pyx_t_2; - PyObject *(*__pyx_t_3)(PyObject *); - PyObject *__pyx_t_4 = NULL; - float __pyx_t_5; - __Pyx_RefNannySetupContext("__pyx_convert_vector_from_py_float", 0); - - /* "vector.from_py":47 - * cdef vector[X] __pyx_convert_vector_from_py_float(object o) except *: - * cdef vector[X] v - * for item in o: # <<<<<<<<<<<<<< - * v.push_back(item) - * return v - */ - if (likely(PyList_CheckExact(__pyx_v_o)) || PyTuple_CheckExact(__pyx_v_o)) { - __pyx_t_1 = __pyx_v_o; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; - __pyx_t_3 = NULL; - } else { - __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_o); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 47, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 47, __pyx_L1_error) - } - for (;;) { - if (likely(!__pyx_t_3)) { - if (likely(PyList_CheckExact(__pyx_t_1))) { - if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 47, __pyx_L1_error) - #else - __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 47, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - #endif - } else { - if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 47, __pyx_L1_error) - #else - __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 47, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - #endif - } - } else { - __pyx_t_4 = __pyx_t_3(__pyx_t_1); - if (unlikely(!__pyx_t_4)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 47, __pyx_L1_error) - } - break; - } - __Pyx_GOTREF(__pyx_t_4); - } - __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_4); - __pyx_t_4 = 0; - - /* "vector.from_py":48 - * cdef vector[X] v - * for item in o: - * v.push_back(item) # <<<<<<<<<<<<<< - * return v - * - */ - __pyx_t_5 = __pyx_PyFloat_AsFloat(__pyx_v_item); if (unlikely((__pyx_t_5 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 48, __pyx_L1_error) - __pyx_v_v.push_back(((float)__pyx_t_5)); - - /* "vector.from_py":47 - * cdef vector[X] __pyx_convert_vector_from_py_float(object o) except *: - * cdef vector[X] v - * for item in o: # <<<<<<<<<<<<<< - * v.push_back(item) - * return v - */ - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "vector.from_py":49 - * for item in o: - * v.push_back(item) - * return v # <<<<<<<<<<<<<< - * - * - */ - __pyx_r = __pyx_v_v; - goto __pyx_L0; - - /* "vector.from_py":45 - * - * @cname("__pyx_convert_vector_from_py_float") - * cdef vector[X] __pyx_convert_vector_from_py_float(object o) except *: # <<<<<<<<<<<<<< - * cdef vector[X] v - * for item in o: - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("vector.from_py.__pyx_convert_vector_from_py_float", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_pretend_to_initialize(&__pyx_r); - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_item); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static std::vector __pyx_convert_vector_from_py_int(PyObject *__pyx_v_o) { - std::vector __pyx_v_v; - PyObject *__pyx_v_item = NULL; - std::vector __pyx_r; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - Py_ssize_t __pyx_t_2; - PyObject *(*__pyx_t_3)(PyObject *); - PyObject *__pyx_t_4 = NULL; - int __pyx_t_5; - __Pyx_RefNannySetupContext("__pyx_convert_vector_from_py_int", 0); - - /* "vector.from_py":47 - * cdef vector[X] __pyx_convert_vector_from_py_int(object o) except *: - * cdef vector[X] v - * for item in o: # <<<<<<<<<<<<<< - * v.push_back(item) - * return v - */ - if (likely(PyList_CheckExact(__pyx_v_o)) || PyTuple_CheckExact(__pyx_v_o)) { - __pyx_t_1 = __pyx_v_o; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; - __pyx_t_3 = NULL; - } else { - __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_o); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 47, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 47, __pyx_L1_error) - } - for (;;) { - if (likely(!__pyx_t_3)) { - if (likely(PyList_CheckExact(__pyx_t_1))) { - if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 47, __pyx_L1_error) - #else - __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 47, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - #endif - } else { - if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 47, __pyx_L1_error) - #else - __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 47, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - #endif - } - } else { - __pyx_t_4 = __pyx_t_3(__pyx_t_1); - if (unlikely(!__pyx_t_4)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 47, __pyx_L1_error) - } - break; - } - __Pyx_GOTREF(__pyx_t_4); - } - __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_4); - __pyx_t_4 = 0; - - /* "vector.from_py":48 - * cdef vector[X] v - * for item in o: - * v.push_back(item) # <<<<<<<<<<<<<< - * return v - * - */ - __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_v_item); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 48, __pyx_L1_error) - __pyx_v_v.push_back(((int)__pyx_t_5)); - - /* "vector.from_py":47 - * cdef vector[X] __pyx_convert_vector_from_py_int(object o) except *: - * cdef vector[X] v - * for item in o: # <<<<<<<<<<<<<< - * v.push_back(item) - * return v - */ - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "vector.from_py":49 - * for item in o: - * v.push_back(item) - * return v # <<<<<<<<<<<<<< - * - * - */ - __pyx_r = __pyx_v_v; - goto __pyx_L0; - - /* "vector.from_py":45 - * - * @cname("__pyx_convert_vector_from_py_int") - * cdef vector[X] __pyx_convert_vector_from_py_int(object o) except *: # <<<<<<<<<<<<<< - * cdef vector[X] v - * for item in o: - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("vector.from_py.__pyx_convert_vector_from_py_int", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_pretend_to_initialize(&__pyx_r); - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_item); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "string.from_py":13 - * - * @cname("__pyx_convert_string_from_py_std__in_string") - * cdef string __pyx_convert_string_from_py_std__in_string(object o) except *: # <<<<<<<<<<<<<< - * cdef Py_ssize_t length - * cdef const char* data = __Pyx_PyObject_AsStringAndSize(o, &length) - */ - -static std::string __pyx_convert_string_from_py_std__in_string(PyObject *__pyx_v_o) { - Py_ssize_t __pyx_v_length; - char const *__pyx_v_data; - std::string __pyx_r; - __Pyx_RefNannyDeclarations - char const *__pyx_t_1; - __Pyx_RefNannySetupContext("__pyx_convert_string_from_py_std__in_string", 0); - - /* "string.from_py":15 - * cdef string __pyx_convert_string_from_py_std__in_string(object o) except *: - * cdef Py_ssize_t length - * cdef const char* data = __Pyx_PyObject_AsStringAndSize(o, &length) # <<<<<<<<<<<<<< - * return string(data, length) - * - */ - __pyx_t_1 = __Pyx_PyObject_AsStringAndSize(__pyx_v_o, (&__pyx_v_length)); if (unlikely(__pyx_t_1 == ((char const *)NULL))) __PYX_ERR(0, 15, __pyx_L1_error) - __pyx_v_data = __pyx_t_1; - - /* "string.from_py":16 - * cdef Py_ssize_t length - * cdef const char* data = __Pyx_PyObject_AsStringAndSize(o, &length) - * return string(data, length) # <<<<<<<<<<<<<< - * - * - */ - __pyx_r = std::string(__pyx_v_data, __pyx_v_length); - goto __pyx_L0; - - /* "string.from_py":13 - * - * @cname("__pyx_convert_string_from_py_std__in_string") - * cdef string __pyx_convert_string_from_py_std__in_string(object o) except *: # <<<<<<<<<<<<<< - * cdef Py_ssize_t length - * cdef const char* data = __Pyx_PyObject_AsStringAndSize(o, &length) - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_AddTraceback("string.from_py.__pyx_convert_string_from_py_std__in_string", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_pretend_to_initialize(&__pyx_r); - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "vector.to_py":60 - * - * @cname("__pyx_convert_vector_to_py_double") - * cdef object __pyx_convert_vector_to_py_double(vector[X]& v): # <<<<<<<<<<<<<< - * return [v[i] for i in range(v.size())] - * - */ - -static PyObject *__pyx_convert_vector_to_py_double(const std::vector &__pyx_v_v) { - size_t __pyx_v_i; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - size_t __pyx_t_2; - size_t __pyx_t_3; - size_t __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - __Pyx_RefNannySetupContext("__pyx_convert_vector_to_py_double", 0); - - /* "vector.to_py":61 - * @cname("__pyx_convert_vector_to_py_double") - * cdef object __pyx_convert_vector_to_py_double(vector[X]& v): - * return [v[i] for i in range(v.size())] # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __pyx_v_v.size(); - __pyx_t_3 = __pyx_t_2; - for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { - __pyx_v_i = __pyx_t_4; - __pyx_t_5 = PyFloat_FromDouble((__pyx_v_v[__pyx_v_i])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - } - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "vector.to_py":60 - * - * @cname("__pyx_convert_vector_to_py_double") - * cdef object __pyx_convert_vector_to_py_double(vector[X]& v): # <<<<<<<<<<<<<< - * return [v[i] for i in range(v.size())] - * - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("vector.to_py.__pyx_convert_vector_to_py_double", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_convert_vector_to_py_float(const std::vector &__pyx_v_v) { - size_t __pyx_v_i; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - size_t __pyx_t_2; - size_t __pyx_t_3; - size_t __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - __Pyx_RefNannySetupContext("__pyx_convert_vector_to_py_float", 0); - - /* "vector.to_py":61 - * @cname("__pyx_convert_vector_to_py_float") - * cdef object __pyx_convert_vector_to_py_float(vector[X]& v): - * return [v[i] for i in range(v.size())] # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __pyx_v_v.size(); - __pyx_t_3 = __pyx_t_2; - for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { - __pyx_v_i = __pyx_t_4; - __pyx_t_5 = PyFloat_FromDouble((__pyx_v_v[__pyx_v_i])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - } - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "vector.to_py":60 - * - * @cname("__pyx_convert_vector_to_py_float") - * cdef object __pyx_convert_vector_to_py_float(vector[X]& v): # <<<<<<<<<<<<<< - * return [v[i] for i in range(v.size())] - * - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("vector.to_py.__pyx_convert_vector_to_py_float", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_convert_vector_to_py_int(const std::vector &__pyx_v_v) { - size_t __pyx_v_i; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - size_t __pyx_t_2; - size_t __pyx_t_3; - size_t __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - __Pyx_RefNannySetupContext("__pyx_convert_vector_to_py_int", 0); - - /* "vector.to_py":61 - * @cname("__pyx_convert_vector_to_py_int") - * cdef object __pyx_convert_vector_to_py_int(vector[X]& v): - * return [v[i] for i in range(v.size())] # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __pyx_v_v.size(); - __pyx_t_3 = __pyx_t_2; - for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { - __pyx_v_i = __pyx_t_4; - __pyx_t_5 = __Pyx_PyInt_From_int((__pyx_v_v[__pyx_v_i])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - } - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "vector.to_py":60 - * - * @cname("__pyx_convert_vector_to_py_int") - * cdef object __pyx_convert_vector_to_py_int(vector[X]& v): # <<<<<<<<<<<<<< - * return [v[i] for i in range(v.size())] - * - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("vector.to_py.__pyx_convert_vector_to_py_int", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_tp_new_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { - PyObject *o; - if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { - o = (*t->tp_alloc)(t, 0); - } else { - o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); - } - if (unlikely(!o)) return 0; - if (unlikely(__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad; - return o; - bad: - Py_DECREF(o); o = 0; - return NULL; -} - -static void __pyx_tp_dealloc_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge(PyObject *o) { - #if CYTHON_USE_TP_FINALIZE - if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) { - if (PyObject_CallFinalizerFromDealloc(o)) return; - } - #endif - { - PyObject *etype, *eval, *etb; - PyErr_Fetch(&etype, &eval, &etb); - ++Py_REFCNT(o); - __pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_3__dealloc__(o); - --Py_REFCNT(o); - PyErr_Restore(etype, eval, etb); - } - (*Py_TYPE(o)->tp_free)(o); -} - -static PyMethodDef __pyx_methods_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge[] = { - {"start_calc_with_guess", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_5start_calc_with_guess, METH_VARARGS|METH_KEYWORDS, 0}, - {"start_calc_with_guess_support", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_7start_calc_with_guess_support, METH_VARARGS|METH_KEYWORDS, 0}, - {"start_calc_with_guess_support_coh", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_9start_calc_with_guess_support_coh, METH_VARARGS|METH_KEYWORDS, 0}, - {"start_calc", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_11start_calc, METH_VARARGS|METH_KEYWORDS, 0}, - {"get_image_r", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_13get_image_r, METH_NOARGS, 0}, - {"get_image_i", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_15get_image_i, METH_NOARGS, 0}, - {"get_errors", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_17get_errors, METH_NOARGS, 0}, - {"get_support", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_19get_support, METH_NOARGS, 0}, - {"get_coherence", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_21get_coherence, METH_NOARGS, 0}, - {"get_reciprocal_r", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_23get_reciprocal_r, METH_NOARGS, 0}, - {"get_reciprocal_i", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_25get_reciprocal_i, METH_NOARGS, 0}, - {"get_flow", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_27get_flow, METH_NOARGS, 0}, - {"get_iter_flow", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_29get_iter_flow, METH_NOARGS, 0}, - {"cleanup", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_31cleanup, METH_NOARGS, 0}, - {"__reduce_cython__", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_33__reduce_cython__, METH_NOARGS, 0}, - {"__setstate_cython__", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_11bridge_cuda_8PyBridge_35__setstate_cython__, METH_O, 0}, - {0, 0, 0, 0} -}; - -static PyTypeObject __pyx_type_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge = { - PyVarObject_HEAD_INIT(0, 0) - "reccdi.src_py.cyth.bridge_cuda.PyBridge", /*tp_name*/ - sizeof(struct __pyx_obj_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge, /*tp_dealloc*/ - 0, /*tp_print*/ - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 - 0, /*tp_compare*/ - #endif - #if PY_MAJOR_VERSION >= 3 - 0, /*tp_as_async*/ - #endif - 0, /*tp_repr*/ - 0, /*tp_as_number*/ - 0, /*tp_as_sequence*/ - 0, /*tp_as_mapping*/ - 0, /*tp_hash*/ - 0, /*tp_call*/ - 0, /*tp_str*/ - 0, /*tp_getattro*/ - 0, /*tp_setattro*/ - 0, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/ - 0, /*tp_doc*/ - 0, /*tp_traverse*/ - 0, /*tp_clear*/ - 0, /*tp_richcompare*/ - 0, /*tp_weaklistoffset*/ - 0, /*tp_iter*/ - 0, /*tp_iternext*/ - __pyx_methods_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge, /*tp_methods*/ - 0, /*tp_members*/ - 0, /*tp_getset*/ - 0, /*tp_base*/ - 0, /*tp_dict*/ - 0, /*tp_descr_get*/ - 0, /*tp_descr_set*/ - 0, /*tp_dictoffset*/ - 0, /*tp_init*/ - 0, /*tp_alloc*/ - __pyx_tp_new_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge, /*tp_new*/ - 0, /*tp_free*/ - 0, /*tp_is_gc*/ - 0, /*tp_bases*/ - 0, /*tp_mro*/ - 0, /*tp_cache*/ - 0, /*tp_subclasses*/ - 0, /*tp_weaklist*/ - 0, /*tp_del*/ - 0, /*tp_version_tag*/ - #if PY_VERSION_HEX >= 0x030400a1 - 0, /*tp_finalize*/ - #endif - #if PY_VERSION_HEX >= 0x030800b1 - 0, /*tp_vectorcall*/ - #endif -}; - -static PyMethodDef __pyx_methods[] = { - {0, 0, 0, 0} -}; - -#if PY_MAJOR_VERSION >= 3 -#if CYTHON_PEP489_MULTI_PHASE_INIT -static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/ -static int __pyx_pymod_exec_bridge_cuda(PyObject* module); /*proto*/ -static PyModuleDef_Slot __pyx_moduledef_slots[] = { - {Py_mod_create, (void*)__pyx_pymod_create}, - {Py_mod_exec, (void*)__pyx_pymod_exec_bridge_cuda}, - {0, NULL} -}; -#endif - -static struct PyModuleDef __pyx_moduledef = { - PyModuleDef_HEAD_INIT, - "bridge_cuda", - 0, /* m_doc */ - #if CYTHON_PEP489_MULTI_PHASE_INIT - 0, /* m_size */ - #else - -1, /* m_size */ - #endif - __pyx_methods /* m_methods */, - #if CYTHON_PEP489_MULTI_PHASE_INIT - __pyx_moduledef_slots, /* m_slots */ - #else - NULL, /* m_reload */ - #endif - NULL, /* m_traverse */ - NULL, /* m_clear */ - NULL /* m_free */ -}; -#endif -#ifndef CYTHON_SMALL_CODE -#if defined(__clang__) - #define CYTHON_SMALL_CODE -#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) - #define CYTHON_SMALL_CODE __attribute__((cold)) -#else - #define CYTHON_SMALL_CODE -#endif -#endif - -static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_PyBridge, __pyx_k_PyBridge, sizeof(__pyx_k_PyBridge), 0, 0, 1, 1}, - {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1}, - {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, - {&__pyx_n_s_coh, __pyx_k_coh, sizeof(__pyx_k_coh), 0, 0, 1, 1}, - {&__pyx_n_s_coh_dims, __pyx_k_coh_dims, sizeof(__pyx_k_coh_dims), 0, 0, 1, 1}, - {&__pyx_n_s_config, __pyx_k_config, sizeof(__pyx_k_config), 0, 0, 1, 1}, - {&__pyx_n_s_data_r, __pyx_k_data_r, sizeof(__pyx_k_data_r), 0, 0, 1, 1}, - {&__pyx_n_s_device, __pyx_k_device, sizeof(__pyx_k_device), 0, 0, 1, 1}, - {&__pyx_n_s_dims, __pyx_k_dims, sizeof(__pyx_k_dims), 0, 0, 1, 1}, - {&__pyx_n_s_encode, __pyx_k_encode, sizeof(__pyx_k_encode), 0, 0, 1, 1}, - {&__pyx_n_s_getstate, __pyx_k_getstate, sizeof(__pyx_k_getstate), 0, 0, 1, 1}, - {&__pyx_n_s_guess_i, __pyx_k_guess_i, sizeof(__pyx_k_guess_i), 0, 0, 1, 1}, - {&__pyx_n_s_guess_r, __pyx_k_guess_r, sizeof(__pyx_k_guess_r), 0, 0, 1, 1}, - {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1}, - {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, - {&__pyx_kp_s_no_default___reduce___due_to_non, __pyx_k_no_default___reduce___due_to_non, sizeof(__pyx_k_no_default___reduce___due_to_non), 0, 0, 1, 0}, - {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, - {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1}, - {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1}, - {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1}, - {&__pyx_n_s_setstate, __pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 0, 1, 1}, - {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1}, - {&__pyx_n_s_support, __pyx_k_support, sizeof(__pyx_k_support), 0, 0, 1, 1}, - {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, - {0, 0, 0, 0, 0, 0, 0} -}; -static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { - __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(0, 2, __pyx_L1_error) - __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 61, __pyx_L1_error) - return 0; - __pyx_L1_error:; - return -1; -} - -static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); - - /* "(tree fragment)":2 - * def __reduce_cython__(self): - * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< - * def __setstate_cython__(self, __pyx_state): - * raise TypeError("no default __reduce__ due to non-trivial __cinit__") - */ - __pyx_tuple_ = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple_)) __PYX_ERR(0, 2, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple_); - __Pyx_GIVEREF(__pyx_tuple_); - - /* "(tree fragment)":4 - * raise TypeError("no default __reduce__ due to non-trivial __cinit__") - * def __setstate_cython__(self, __pyx_state): - * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< - */ - __pyx_tuple__2 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(0, 4, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__2); - __Pyx_GIVEREF(__pyx_tuple__2); - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; - __Pyx_RefNannyFinishContext(); - return -1; -} - -static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) { - if (__Pyx_InitStrings(__pyx_string_tab) < 0) __PYX_ERR(1, 1, __pyx_L1_error); - return 0; - __pyx_L1_error:; - return -1; -} - -static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(void); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(void); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(void); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(void); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(void); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(void); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(void); /*proto*/ - -static int __Pyx_modinit_global_init_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0); - /*--- Global init code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} - -static int __Pyx_modinit_variable_export_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0); - /*--- Variable export code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} - -static int __Pyx_modinit_function_export_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0); - /*--- Function export code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} - -static int __Pyx_modinit_type_init_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); - /*--- Type init code ---*/ - if (PyType_Ready(&__pyx_type_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge) < 0) __PYX_ERR(1, 36, __pyx_L1_error) - #if PY_VERSION_HEX < 0x030800B1 - __pyx_type_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge.tp_print = 0; - #endif - if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge.tp_dictoffset && __pyx_type_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge.tp_getattro == PyObject_GenericGetAttr)) { - __pyx_type_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge.tp_getattro = __Pyx_PyObject_GenericGetAttr; - } - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyBridge, (PyObject *)&__pyx_type_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge) < 0) __PYX_ERR(1, 36, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge) < 0) __PYX_ERR(1, 36, __pyx_L1_error) - __pyx_ptype_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge = &__pyx_type_6reccdi_6src_py_4cyth_11bridge_cuda_PyBridge; - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; - __Pyx_RefNannyFinishContext(); - return -1; -} - -static int __Pyx_modinit_type_import_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); - /*--- Type import code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} - -static int __Pyx_modinit_variable_import_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0); - /*--- Variable import code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} - -static int __Pyx_modinit_function_import_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0); - /*--- Function import code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} - - -#if PY_MAJOR_VERSION < 3 -#ifdef CYTHON_NO_PYINIT_EXPORT -#define __Pyx_PyMODINIT_FUNC void -#else -#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -#endif -#else -#ifdef CYTHON_NO_PYINIT_EXPORT -#define __Pyx_PyMODINIT_FUNC PyObject * -#else -#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -#endif -#endif - - -#if PY_MAJOR_VERSION < 3 -__Pyx_PyMODINIT_FUNC initbridge_cuda(void) CYTHON_SMALL_CODE; /*proto*/ -__Pyx_PyMODINIT_FUNC initbridge_cuda(void) -#else -__Pyx_PyMODINIT_FUNC PyInit_bridge_cuda(void) CYTHON_SMALL_CODE; /*proto*/ -__Pyx_PyMODINIT_FUNC PyInit_bridge_cuda(void) -#if CYTHON_PEP489_MULTI_PHASE_INIT -{ - return PyModuleDef_Init(&__pyx_moduledef); -} -static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) { - #if PY_VERSION_HEX >= 0x030700A1 - static PY_INT64_T main_interpreter_id = -1; - PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp); - if (main_interpreter_id == -1) { - main_interpreter_id = current_id; - return (unlikely(current_id == -1)) ? -1 : 0; - } else if (unlikely(main_interpreter_id != current_id)) - #else - static PyInterpreterState *main_interpreter = NULL; - PyInterpreterState *current_interpreter = PyThreadState_Get()->interp; - if (!main_interpreter) { - main_interpreter = current_interpreter; - } else if (unlikely(main_interpreter != current_interpreter)) - #endif - { - PyErr_SetString( - PyExc_ImportError, - "Interpreter change detected - this module can only be loaded into one interpreter per process."); - return -1; - } - return 0; -} -static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name, int allow_none) { - PyObject *value = PyObject_GetAttrString(spec, from_name); - int result = 0; - if (likely(value)) { - if (allow_none || value != Py_None) { - result = PyDict_SetItemString(moddict, to_name, value); - } - Py_DECREF(value); - } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) { - PyErr_Clear(); - } else { - result = -1; - } - return result; -} -static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, CYTHON_UNUSED PyModuleDef *def) { - PyObject *module = NULL, *moddict, *modname; - if (__Pyx_check_single_interpreter()) - return NULL; - if (__pyx_m) - return __Pyx_NewRef(__pyx_m); - modname = PyObject_GetAttrString(spec, "name"); - if (unlikely(!modname)) goto bad; - module = PyModule_NewObject(modname); - Py_DECREF(modname); - if (unlikely(!module)) goto bad; - moddict = PyModule_GetDict(module); - if (unlikely(!moddict)) goto bad; - if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__", 1) < 0)) goto bad; - if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__", 1) < 0)) goto bad; - if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__", 1) < 0)) goto bad; - if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__", 0) < 0)) goto bad; - return module; -bad: - Py_XDECREF(module); - return NULL; -} - - -static CYTHON_SMALL_CODE int __pyx_pymod_exec_bridge_cuda(PyObject *__pyx_pyinit_module) -#endif -#endif -{ - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannyDeclarations - #if CYTHON_PEP489_MULTI_PHASE_INIT - if (__pyx_m) { - if (__pyx_m == __pyx_pyinit_module) return 0; - PyErr_SetString(PyExc_RuntimeError, "Module 'bridge_cuda' has already been imported. Re-initialisation is not supported."); - return -1; - } - #elif PY_MAJOR_VERSION >= 3 - if (__pyx_m) return __Pyx_NewRef(__pyx_m); - #endif - #if CYTHON_REFNANNY -__Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny"); -if (!__Pyx_RefNanny) { - PyErr_Clear(); - __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny"); - if (!__Pyx_RefNanny) - Py_FatalError("failed to import 'refnanny' module"); -} -#endif - __Pyx_RefNannySetupContext("__Pyx_PyMODINIT_FUNC PyInit_bridge_cuda(void)", 0); - if (__Pyx_check_binary_version() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - #ifdef __Pxy_PyFrame_Initialize_Offsets - __Pxy_PyFrame_Initialize_Offsets(); - #endif - __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) __PYX_ERR(1, 1, __pyx_L1_error) - __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(1, 1, __pyx_L1_error) - __pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_unicode)) __PYX_ERR(1, 1, __pyx_L1_error) - #ifdef __Pyx_CyFunction_USED - if (__pyx_CyFunction_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - #endif - #ifdef __Pyx_FusedFunction_USED - if (__pyx_FusedFunction_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - #endif - #ifdef __Pyx_Coroutine_USED - if (__pyx_Coroutine_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - #endif - #ifdef __Pyx_Generator_USED - if (__pyx_Generator_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - #endif - #ifdef __Pyx_AsyncGen_USED - if (__pyx_AsyncGen_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - #endif - #ifdef __Pyx_StopAsyncIteration_USED - if (__pyx_StopAsyncIteration_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - #endif - /*--- Library function declarations ---*/ - /*--- Threads initialization code ---*/ - #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS - #ifdef WITH_THREAD /* Python build with threading support? */ - PyEval_InitThreads(); - #endif - #endif - /*--- Module creation code ---*/ - #if CYTHON_PEP489_MULTI_PHASE_INIT - __pyx_m = __pyx_pyinit_module; - Py_INCREF(__pyx_m); - #else - #if PY_MAJOR_VERSION < 3 - __pyx_m = Py_InitModule4("bridge_cuda", __pyx_methods, 0, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m); - #else - __pyx_m = PyModule_Create(&__pyx_moduledef); - #endif - if (unlikely(!__pyx_m)) __PYX_ERR(1, 1, __pyx_L1_error) - #endif - __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) __PYX_ERR(1, 1, __pyx_L1_error) - Py_INCREF(__pyx_d); - __pyx_b = PyImport_AddModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_b)) __PYX_ERR(1, 1, __pyx_L1_error) - Py_INCREF(__pyx_b); - __pyx_cython_runtime = PyImport_AddModule((char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(1, 1, __pyx_L1_error) - Py_INCREF(__pyx_cython_runtime); - if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) __PYX_ERR(1, 1, __pyx_L1_error); - /*--- Initialize various global constants etc. ---*/ - if (__Pyx_InitGlobals() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT) - if (__Pyx_init_sys_getdefaultencoding_params() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - #endif - if (__pyx_module_is_main_reccdi__src_py__cyth__bridge_cuda) { - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_name, __pyx_n_s_main) < 0) __PYX_ERR(1, 1, __pyx_L1_error) - } - #if PY_MAJOR_VERSION >= 3 - { - PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(1, 1, __pyx_L1_error) - if (!PyDict_GetItemString(modules, "reccdi.src_py.cyth.bridge_cuda")) { - if (unlikely(PyDict_SetItemString(modules, "reccdi.src_py.cyth.bridge_cuda", __pyx_m) < 0)) __PYX_ERR(1, 1, __pyx_L1_error) - } - } - #endif - /*--- Builtin init code ---*/ - if (__Pyx_InitCachedBuiltins() < 0) goto __pyx_L1_error; - /*--- Constants init code ---*/ - if (__Pyx_InitCachedConstants() < 0) goto __pyx_L1_error; - /*--- Global type/function init code ---*/ - (void)__Pyx_modinit_global_init_code(); - (void)__Pyx_modinit_variable_export_code(); - (void)__Pyx_modinit_function_export_code(); - if (unlikely(__Pyx_modinit_type_init_code() != 0)) goto __pyx_L1_error; - (void)__Pyx_modinit_type_import_code(); - (void)__Pyx_modinit_variable_import_code(); - (void)__Pyx_modinit_function_import_code(); - /*--- Execution code ---*/ - #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) - if (__Pyx_patch_abc() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - #endif - - /* "reccdi/src_py/cyth/bridge_cuda.pyx":1 - * # ######################################################################### # <<<<<<<<<<<<<< - * # Copyright (c) , UChicago Argonne, LLC. All rights reserved. # - * # # - */ - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "vector.to_py":60 - * - * @cname("__pyx_convert_vector_to_py_int") - * cdef object __pyx_convert_vector_to_py_int(vector[X]& v): # <<<<<<<<<<<<<< - * return [v[i] for i in range(v.size())] - * - */ - - /*--- Wrapped vars code ---*/ - - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - if (__pyx_m) { - if (__pyx_d) { - __Pyx_AddTraceback("init reccdi.src_py.cyth.bridge_cuda", __pyx_clineno, __pyx_lineno, __pyx_filename); - } - Py_CLEAR(__pyx_m); - } else if (!PyErr_Occurred()) { - PyErr_SetString(PyExc_ImportError, "init reccdi.src_py.cyth.bridge_cuda"); - } - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - #if CYTHON_PEP489_MULTI_PHASE_INIT - return (__pyx_m != NULL) ? 0 : -1; - #elif PY_MAJOR_VERSION >= 3 - return __pyx_m; - #else - return; - #endif -} - -/* --- Runtime support code --- */ -/* Refnanny */ -#if CYTHON_REFNANNY -static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) { - PyObject *m = NULL, *p = NULL; - void *r = NULL; - m = PyImport_ImportModule(modname); - if (!m) goto end; - p = PyObject_GetAttrString(m, "RefNannyAPI"); - if (!p) goto end; - r = PyLong_AsVoidPtr(p); -end: - Py_XDECREF(p); - Py_XDECREF(m); - return (__Pyx_RefNannyAPIStruct *)r; -} -#endif - -/* PyObjectGetAttrStr */ -#if CYTHON_USE_TYPE_SLOTS -static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) { - PyTypeObject* tp = Py_TYPE(obj); - if (likely(tp->tp_getattro)) - return tp->tp_getattro(obj, attr_name); -#if PY_MAJOR_VERSION < 3 - if (likely(tp->tp_getattr)) - return tp->tp_getattr(obj, PyString_AS_STRING(attr_name)); -#endif - return PyObject_GetAttr(obj, attr_name); -} -#endif - -/* GetBuiltinName */ -static PyObject *__Pyx_GetBuiltinName(PyObject *name) { - PyObject* result = __Pyx_PyObject_GetAttrStr(__pyx_b, name); - if (unlikely(!result)) { - PyErr_Format(PyExc_NameError, -#if PY_MAJOR_VERSION >= 3 - "name '%U' is not defined", name); -#else - "name '%.200s' is not defined", PyString_AS_STRING(name)); -#endif - } - return result; -} - -/* RaiseArgTupleInvalid */ -static void __Pyx_RaiseArgtupleInvalid( - const char* func_name, - int exact, - Py_ssize_t num_min, - Py_ssize_t num_max, - Py_ssize_t num_found) -{ - Py_ssize_t num_expected; - const char *more_or_less; - if (num_found < num_min) { - num_expected = num_min; - more_or_less = "at least"; - } else { - num_expected = num_max; - more_or_less = "at most"; - } - if (exact) { - more_or_less = "exactly"; - } - PyErr_Format(PyExc_TypeError, - "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T "d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T "d given)", - func_name, more_or_less, num_expected, - (num_expected == 1) ? "" : "s", num_found); -} - -/* KeywordStringCheck */ -static int __Pyx_CheckKeywordStrings( - PyObject *kwdict, - const char* function_name, - int kw_allowed) -{ - PyObject* key = 0; - Py_ssize_t pos = 0; -#if CYTHON_COMPILING_IN_PYPY - if (!kw_allowed && PyDict_Next(kwdict, &pos, &key, 0)) - goto invalid_keyword; - return 1; -#else - while (PyDict_Next(kwdict, &pos, &key, 0)) { - #if PY_MAJOR_VERSION < 3 - if (unlikely(!PyString_Check(key))) - #endif - if (unlikely(!PyUnicode_Check(key))) - goto invalid_keyword_type; - } - if ((!kw_allowed) && unlikely(key)) - goto invalid_keyword; - return 1; -invalid_keyword_type: - PyErr_Format(PyExc_TypeError, - "%.200s() keywords must be strings", function_name); - return 0; -#endif -invalid_keyword: - PyErr_Format(PyExc_TypeError, - #if PY_MAJOR_VERSION < 3 - "%.200s() got an unexpected keyword argument '%.200s'", - function_name, PyString_AsString(key)); - #else - "%s() got an unexpected keyword argument '%U'", - function_name, key); - #endif - return 0; -} - -/* RaiseDoubleKeywords */ -static void __Pyx_RaiseDoubleKeywordsError( - const char* func_name, - PyObject* kw_name) -{ - PyErr_Format(PyExc_TypeError, - #if PY_MAJOR_VERSION >= 3 - "%s() got multiple values for keyword argument '%U'", func_name, kw_name); - #else - "%s() got multiple values for keyword argument '%s'", func_name, - PyString_AsString(kw_name)); - #endif -} - -/* ParseKeywords */ -static int __Pyx_ParseOptionalKeywords( - PyObject *kwds, - PyObject **argnames[], - PyObject *kwds2, - PyObject *values[], - Py_ssize_t num_pos_args, - const char* function_name) -{ - PyObject *key = 0, *value = 0; - Py_ssize_t pos = 0; - PyObject*** name; - PyObject*** first_kw_arg = argnames + num_pos_args; - while (PyDict_Next(kwds, &pos, &key, &value)) { - name = first_kw_arg; - while (*name && (**name != key)) name++; - if (*name) { - values[name-argnames] = value; - continue; - } - name = first_kw_arg; - #if PY_MAJOR_VERSION < 3 - if (likely(PyString_CheckExact(key)) || likely(PyString_Check(key))) { - while (*name) { - if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key)) - && _PyString_Eq(**name, key)) { - values[name-argnames] = value; - break; - } - name++; - } - if (*name) continue; - else { - PyObject*** argname = argnames; - while (argname != first_kw_arg) { - if ((**argname == key) || ( - (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key)) - && _PyString_Eq(**argname, key))) { - goto arg_passed_twice; - } - argname++; - } - } - } else - #endif - if (likely(PyUnicode_Check(key))) { - while (*name) { - int cmp = (**name == key) ? 0 : - #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 - (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : - #endif - PyUnicode_Compare(**name, key); - if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; - if (cmp == 0) { - values[name-argnames] = value; - break; - } - name++; - } - if (*name) continue; - else { - PyObject*** argname = argnames; - while (argname != first_kw_arg) { - int cmp = (**argname == key) ? 0 : - #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 - (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : - #endif - PyUnicode_Compare(**argname, key); - if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; - if (cmp == 0) goto arg_passed_twice; - argname++; - } - } - } else - goto invalid_keyword_type; - if (kwds2) { - if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad; - } else { - goto invalid_keyword; - } - } - return 0; -arg_passed_twice: - __Pyx_RaiseDoubleKeywordsError(function_name, key); - goto bad; -invalid_keyword_type: - PyErr_Format(PyExc_TypeError, - "%.200s() keywords must be strings", function_name); - goto bad; -invalid_keyword: - PyErr_Format(PyExc_TypeError, - #if PY_MAJOR_VERSION < 3 - "%.200s() got an unexpected keyword argument '%.200s'", - function_name, PyString_AsString(key)); - #else - "%s() got an unexpected keyword argument '%U'", - function_name, key); - #endif -bad: - return -1; -} - -/* PyFunctionFastCall */ -#if CYTHON_FAST_PYCALL -static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na, - PyObject *globals) { - PyFrameObject *f; - PyThreadState *tstate = __Pyx_PyThreadState_Current; - PyObject **fastlocals; - Py_ssize_t i; - PyObject *result; - assert(globals != NULL); - /* XXX Perhaps we should create a specialized - PyFrame_New() that doesn't take locals, but does - take builtins without sanity checking them. - */ - assert(tstate != NULL); - f = PyFrame_New(tstate, co, globals, NULL); - if (f == NULL) { - return NULL; - } - fastlocals = __Pyx_PyFrame_GetLocalsplus(f); - for (i = 0; i < na; i++) { - Py_INCREF(*args); - fastlocals[i] = *args++; - } - result = PyEval_EvalFrameEx(f,0); - ++tstate->recursion_depth; - Py_DECREF(f); - --tstate->recursion_depth; - return result; -} -#if 1 || PY_VERSION_HEX < 0x030600B1 -static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs) { - PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func); - PyObject *globals = PyFunction_GET_GLOBALS(func); - PyObject *argdefs = PyFunction_GET_DEFAULTS(func); - PyObject *closure; -#if PY_MAJOR_VERSION >= 3 - PyObject *kwdefs; -#endif - PyObject *kwtuple, **k; - PyObject **d; - Py_ssize_t nd; - Py_ssize_t nk; - PyObject *result; - assert(kwargs == NULL || PyDict_Check(kwargs)); - nk = kwargs ? PyDict_Size(kwargs) : 0; - if (Py_EnterRecursiveCall((char*)" while calling a Python object")) { - return NULL; - } - if ( -#if PY_MAJOR_VERSION >= 3 - co->co_kwonlyargcount == 0 && -#endif - likely(kwargs == NULL || nk == 0) && - co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE)) { - if (argdefs == NULL && co->co_argcount == nargs) { - result = __Pyx_PyFunction_FastCallNoKw(co, args, nargs, globals); - goto done; - } - else if (nargs == 0 && argdefs != NULL - && co->co_argcount == Py_SIZE(argdefs)) { - /* function called with no arguments, but all parameters have - a default value: use default values as arguments .*/ - args = &PyTuple_GET_ITEM(argdefs, 0); - result =__Pyx_PyFunction_FastCallNoKw(co, args, Py_SIZE(argdefs), globals); - goto done; - } - } - if (kwargs != NULL) { - Py_ssize_t pos, i; - kwtuple = PyTuple_New(2 * nk); - if (kwtuple == NULL) { - result = NULL; - goto done; - } - k = &PyTuple_GET_ITEM(kwtuple, 0); - pos = i = 0; - while (PyDict_Next(kwargs, &pos, &k[i], &k[i+1])) { - Py_INCREF(k[i]); - Py_INCREF(k[i+1]); - i += 2; - } - nk = i / 2; - } - else { - kwtuple = NULL; - k = NULL; - } - closure = PyFunction_GET_CLOSURE(func); -#if PY_MAJOR_VERSION >= 3 - kwdefs = PyFunction_GET_KW_DEFAULTS(func); -#endif - if (argdefs != NULL) { - d = &PyTuple_GET_ITEM(argdefs, 0); - nd = Py_SIZE(argdefs); - } - else { - d = NULL; - nd = 0; - } -#if PY_MAJOR_VERSION >= 3 - result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL, - args, (int)nargs, - k, (int)nk, - d, (int)nd, kwdefs, closure); -#else - result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL, - args, (int)nargs, - k, (int)nk, - d, (int)nd, closure); -#endif - Py_XDECREF(kwtuple); -done: - Py_LeaveRecursiveCall(); - return result; -} -#endif -#endif - -/* PyObjectCall */ -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { - PyObject *result; - ternaryfunc call = func->ob_type->tp_call; - if (unlikely(!call)) - return PyObject_Call(func, arg, kw); - if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) - return NULL; - result = (*call)(func, arg, kw); - Py_LeaveRecursiveCall(); - if (unlikely(!result) && unlikely(!PyErr_Occurred())) { - PyErr_SetString( - PyExc_SystemError, - "NULL result without error in PyObject_Call"); - } - return result; -} -#endif - -/* PyObjectCallMethO */ -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) { - PyObject *self, *result; - PyCFunction cfunc; - cfunc = PyCFunction_GET_FUNCTION(func); - self = PyCFunction_GET_SELF(func); - if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) - return NULL; - result = cfunc(self, arg); - Py_LeaveRecursiveCall(); - if (unlikely(!result) && unlikely(!PyErr_Occurred())) { - PyErr_SetString( - PyExc_SystemError, - "NULL result without error in PyObject_Call"); - } - return result; -} -#endif - -/* PyObjectCallNoArg */ -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) { -#if CYTHON_FAST_PYCALL - if (PyFunction_Check(func)) { - return __Pyx_PyFunction_FastCall(func, NULL, 0); - } -#endif -#ifdef __Pyx_CyFunction_USED - if (likely(PyCFunction_Check(func) || __Pyx_CyFunction_Check(func))) -#else - if (likely(PyCFunction_Check(func))) -#endif - { - if (likely(PyCFunction_GET_FLAGS(func) & METH_NOARGS)) { - return __Pyx_PyObject_CallMethO(func, NULL); - } - } - return __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL); -} -#endif - -/* PyCFunctionFastCall */ -#if CYTHON_FAST_PYCCALL -static CYTHON_INLINE PyObject * __Pyx_PyCFunction_FastCall(PyObject *func_obj, PyObject **args, Py_ssize_t nargs) { - PyCFunctionObject *func = (PyCFunctionObject*)func_obj; - PyCFunction meth = PyCFunction_GET_FUNCTION(func); - PyObject *self = PyCFunction_GET_SELF(func); - int flags = PyCFunction_GET_FLAGS(func); - assert(PyCFunction_Check(func)); - assert(METH_FASTCALL == (flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS))); - assert(nargs >= 0); - assert(nargs == 0 || args != NULL); - /* _PyCFunction_FastCallDict() must not be called with an exception set, - because it may clear it (directly or indirectly) and so the - caller loses its exception */ - assert(!PyErr_Occurred()); - if ((PY_VERSION_HEX < 0x030700A0) || unlikely(flags & METH_KEYWORDS)) { - return (*((__Pyx_PyCFunctionFastWithKeywords)(void*)meth)) (self, args, nargs, NULL); - } else { - return (*((__Pyx_PyCFunctionFast)(void*)meth)) (self, args, nargs); - } -} -#endif - -/* PyObjectCallOneArg */ -#if CYTHON_COMPILING_IN_CPYTHON -static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) { - PyObject *result; - PyObject *args = PyTuple_New(1); - if (unlikely(!args)) return NULL; - Py_INCREF(arg); - PyTuple_SET_ITEM(args, 0, arg); - result = __Pyx_PyObject_Call(func, args, NULL); - Py_DECREF(args); - return result; -} -static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { -#if CYTHON_FAST_PYCALL - if (PyFunction_Check(func)) { - return __Pyx_PyFunction_FastCall(func, &arg, 1); - } -#endif - if (likely(PyCFunction_Check(func))) { - if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { - return __Pyx_PyObject_CallMethO(func, arg); -#if CYTHON_FAST_PYCCALL - } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) { - return __Pyx_PyCFunction_FastCall(func, &arg, 1); -#endif - } - } - return __Pyx__PyObject_CallOneArg(func, arg); -} -#else -static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { - PyObject *result; - PyObject *args = PyTuple_Pack(1, arg); - if (unlikely(!args)) return NULL; - result = __Pyx_PyObject_Call(func, args, NULL); - Py_DECREF(args); - return result; -} -#endif - -/* PyErrFetchRestore */ -#if CYTHON_FAST_THREAD_STATE -static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { - PyObject *tmp_type, *tmp_value, *tmp_tb; - tmp_type = tstate->curexc_type; - tmp_value = tstate->curexc_value; - tmp_tb = tstate->curexc_traceback; - tstate->curexc_type = type; - tstate->curexc_value = value; - tstate->curexc_traceback = tb; - Py_XDECREF(tmp_type); - Py_XDECREF(tmp_value); - Py_XDECREF(tmp_tb); -} -static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { - *type = tstate->curexc_type; - *value = tstate->curexc_value; - *tb = tstate->curexc_traceback; - tstate->curexc_type = 0; - tstate->curexc_value = 0; - tstate->curexc_traceback = 0; -} -#endif - -/* RaiseException */ -#if PY_MAJOR_VERSION < 3 -static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, - CYTHON_UNUSED PyObject *cause) { - __Pyx_PyThreadState_declare - Py_XINCREF(type); - if (!value || value == Py_None) - value = NULL; - else - Py_INCREF(value); - if (!tb || tb == Py_None) - tb = NULL; - else { - Py_INCREF(tb); - if (!PyTraceBack_Check(tb)) { - PyErr_SetString(PyExc_TypeError, - "raise: arg 3 must be a traceback or None"); - goto raise_error; - } - } - if (PyType_Check(type)) { -#if CYTHON_COMPILING_IN_PYPY - if (!value) { - Py_INCREF(Py_None); - value = Py_None; - } -#endif - PyErr_NormalizeException(&type, &value, &tb); - } else { - if (value) { - PyErr_SetString(PyExc_TypeError, - "instance exception may not have a separate value"); - goto raise_error; - } - value = type; - type = (PyObject*) Py_TYPE(type); - Py_INCREF(type); - if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) { - PyErr_SetString(PyExc_TypeError, - "raise: exception class must be a subclass of BaseException"); - goto raise_error; - } - } - __Pyx_PyThreadState_assign - __Pyx_ErrRestore(type, value, tb); - return; -raise_error: - Py_XDECREF(value); - Py_XDECREF(type); - Py_XDECREF(tb); - return; -} -#else -static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) { - PyObject* owned_instance = NULL; - if (tb == Py_None) { - tb = 0; - } else if (tb && !PyTraceBack_Check(tb)) { - PyErr_SetString(PyExc_TypeError, - "raise: arg 3 must be a traceback or None"); - goto bad; - } - if (value == Py_None) - value = 0; - if (PyExceptionInstance_Check(type)) { - if (value) { - PyErr_SetString(PyExc_TypeError, - "instance exception may not have a separate value"); - goto bad; - } - value = type; - type = (PyObject*) Py_TYPE(value); - } else if (PyExceptionClass_Check(type)) { - PyObject *instance_class = NULL; - if (value && PyExceptionInstance_Check(value)) { - instance_class = (PyObject*) Py_TYPE(value); - if (instance_class != type) { - int is_subclass = PyObject_IsSubclass(instance_class, type); - if (!is_subclass) { - instance_class = NULL; - } else if (unlikely(is_subclass == -1)) { - goto bad; - } else { - type = instance_class; - } - } - } - if (!instance_class) { - PyObject *args; - if (!value) - args = PyTuple_New(0); - else if (PyTuple_Check(value)) { - Py_INCREF(value); - args = value; - } else - args = PyTuple_Pack(1, value); - if (!args) - goto bad; - owned_instance = PyObject_Call(type, args, NULL); - Py_DECREF(args); - if (!owned_instance) - goto bad; - value = owned_instance; - if (!PyExceptionInstance_Check(value)) { - PyErr_Format(PyExc_TypeError, - "calling %R should have returned an instance of " - "BaseException, not %R", - type, Py_TYPE(value)); - goto bad; - } - } - } else { - PyErr_SetString(PyExc_TypeError, - "raise: exception class must be a subclass of BaseException"); - goto bad; - } - if (cause) { - PyObject *fixed_cause; - if (cause == Py_None) { - fixed_cause = NULL; - } else if (PyExceptionClass_Check(cause)) { - fixed_cause = PyObject_CallObject(cause, NULL); - if (fixed_cause == NULL) - goto bad; - } else if (PyExceptionInstance_Check(cause)) { - fixed_cause = cause; - Py_INCREF(fixed_cause); - } else { - PyErr_SetString(PyExc_TypeError, - "exception causes must derive from " - "BaseException"); - goto bad; - } - PyException_SetCause(value, fixed_cause); - } - PyErr_SetObject(type, value); - if (tb) { -#if CYTHON_COMPILING_IN_PYPY - PyObject *tmp_type, *tmp_value, *tmp_tb; - PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb); - Py_INCREF(tb); - PyErr_Restore(tmp_type, tmp_value, tb); - Py_XDECREF(tmp_tb); -#else - PyThreadState *tstate = __Pyx_PyThreadState_Current; - PyObject* tmp_tb = tstate->curexc_traceback; - if (tb != tmp_tb) { - Py_INCREF(tb); - tstate->curexc_traceback = tb; - Py_XDECREF(tmp_tb); - } -#endif - } -bad: - Py_XDECREF(owned_instance); - return; -} -#endif - -/* PyObject_GenericGetAttrNoDict */ -#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 -static PyObject *__Pyx_RaiseGenericGetAttributeError(PyTypeObject *tp, PyObject *attr_name) { - PyErr_Format(PyExc_AttributeError, -#if PY_MAJOR_VERSION >= 3 - "'%.50s' object has no attribute '%U'", - tp->tp_name, attr_name); -#else - "'%.50s' object has no attribute '%.400s'", - tp->tp_name, PyString_AS_STRING(attr_name)); -#endif - return NULL; -} -static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name) { - PyObject *descr; - PyTypeObject *tp = Py_TYPE(obj); - if (unlikely(!PyString_Check(attr_name))) { - return PyObject_GenericGetAttr(obj, attr_name); - } - assert(!tp->tp_dictoffset); - descr = _PyType_Lookup(tp, attr_name); - if (unlikely(!descr)) { - return __Pyx_RaiseGenericGetAttributeError(tp, attr_name); - } - Py_INCREF(descr); - #if PY_MAJOR_VERSION < 3 - if (likely(PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_HAVE_CLASS))) - #endif - { - descrgetfunc f = Py_TYPE(descr)->tp_descr_get; - if (unlikely(f)) { - PyObject *res = f(descr, obj, (PyObject *)tp); - Py_DECREF(descr); - return res; - } - } - return descr; -} -#endif - -/* PyObject_GenericGetAttr */ -#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 -static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name) { - if (unlikely(Py_TYPE(obj)->tp_dictoffset)) { - return PyObject_GenericGetAttr(obj, attr_name); - } - return __Pyx_PyObject_GenericGetAttrNoDict(obj, attr_name); -} -#endif - -/* SetupReduce */ -static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) { - int ret; - PyObject *name_attr; - name_attr = __Pyx_PyObject_GetAttrStr(meth, __pyx_n_s_name); - if (likely(name_attr)) { - ret = PyObject_RichCompareBool(name_attr, name, Py_EQ); - } else { - ret = -1; - } - if (unlikely(ret < 0)) { - PyErr_Clear(); - ret = 0; - } - Py_XDECREF(name_attr); - return ret; -} -static int __Pyx_setup_reduce(PyObject* type_obj) { - int ret = 0; - PyObject *object_reduce = NULL; - PyObject *object_reduce_ex = NULL; - PyObject *reduce = NULL; - PyObject *reduce_ex = NULL; - PyObject *reduce_cython = NULL; - PyObject *setstate = NULL; - PyObject *setstate_cython = NULL; -#if CYTHON_USE_PYTYPE_LOOKUP - if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto GOOD; -#else - if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto GOOD; -#endif -#if CYTHON_USE_PYTYPE_LOOKUP - object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; -#else - object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; -#endif - reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto BAD; - if (reduce_ex == object_reduce_ex) { -#if CYTHON_USE_PYTYPE_LOOKUP - object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; -#else - object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; -#endif - reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto BAD; - if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) { - reduce_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_cython); if (unlikely(!reduce_cython)) goto BAD; - ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto BAD; - ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto BAD; - setstate = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate); - if (!setstate) PyErr_Clear(); - if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) { - setstate_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate_cython); if (unlikely(!setstate_cython)) goto BAD; - ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto BAD; - ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto BAD; - } - PyType_Modified((PyTypeObject*)type_obj); - } - } - goto GOOD; -BAD: - if (!PyErr_Occurred()) - PyErr_Format(PyExc_RuntimeError, "Unable to initialize pickling for %s", ((PyTypeObject*)type_obj)->tp_name); - ret = -1; -GOOD: -#if !CYTHON_USE_PYTYPE_LOOKUP - Py_XDECREF(object_reduce); - Py_XDECREF(object_reduce_ex); -#endif - Py_XDECREF(reduce); - Py_XDECREF(reduce_ex); - Py_XDECREF(reduce_cython); - Py_XDECREF(setstate); - Py_XDECREF(setstate_cython); - return ret; -} - -/* PyDictVersioning */ -#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS -static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) { - PyObject *dict = Py_TYPE(obj)->tp_dict; - return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0; -} -static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) { - PyObject **dictptr = NULL; - Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset; - if (offset) { -#if CYTHON_COMPILING_IN_CPYTHON - dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj); -#else - dictptr = _PyObject_GetDictPtr(obj); -#endif - } - return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0; -} -static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) { - PyObject *dict = Py_TYPE(obj)->tp_dict; - if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict))) - return 0; - return obj_dict_version == __Pyx_get_object_dict_version(obj); -} -#endif - -/* CLineInTraceback */ -#ifndef CYTHON_CLINE_IN_TRACEBACK -static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { - PyObject *use_cline; - PyObject *ptype, *pvalue, *ptraceback; -#if CYTHON_COMPILING_IN_CPYTHON - PyObject **cython_runtime_dict; -#endif - if (unlikely(!__pyx_cython_runtime)) { - return c_line; - } - __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback); -#if CYTHON_COMPILING_IN_CPYTHON - cython_runtime_dict = _PyObject_GetDictPtr(__pyx_cython_runtime); - if (likely(cython_runtime_dict)) { - __PYX_PY_DICT_LOOKUP_IF_MODIFIED( - use_cline, *cython_runtime_dict, - __Pyx_PyDict_GetItemStr(*cython_runtime_dict, __pyx_n_s_cline_in_traceback)) - } else -#endif - { - PyObject *use_cline_obj = __Pyx_PyObject_GetAttrStr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback); - if (use_cline_obj) { - use_cline = PyObject_Not(use_cline_obj) ? Py_False : Py_True; - Py_DECREF(use_cline_obj); - } else { - PyErr_Clear(); - use_cline = NULL; - } - } - if (!use_cline) { - c_line = 0; - PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); - } - else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) { - c_line = 0; - } - __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback); - return c_line; -} -#endif - -/* CodeObjectCache */ -static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) { - int start = 0, mid = 0, end = count - 1; - if (end >= 0 && code_line > entries[end].code_line) { - return count; - } - while (start < end) { - mid = start + (end - start) / 2; - if (code_line < entries[mid].code_line) { - end = mid; - } else if (code_line > entries[mid].code_line) { - start = mid + 1; - } else { - return mid; - } - } - if (code_line <= entries[mid].code_line) { - return mid; - } else { - return mid + 1; - } -} -static PyCodeObject *__pyx_find_code_object(int code_line) { - PyCodeObject* code_object; - int pos; - if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) { - return NULL; - } - pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); - if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) { - return NULL; - } - code_object = __pyx_code_cache.entries[pos].code_object; - Py_INCREF(code_object); - return code_object; -} -static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { - int pos, i; - __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries; - if (unlikely(!code_line)) { - return; - } - if (unlikely(!entries)) { - entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry)); - if (likely(entries)) { - __pyx_code_cache.entries = entries; - __pyx_code_cache.max_count = 64; - __pyx_code_cache.count = 1; - entries[0].code_line = code_line; - entries[0].code_object = code_object; - Py_INCREF(code_object); - } - return; - } - pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); - if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) { - PyCodeObject* tmp = entries[pos].code_object; - entries[pos].code_object = code_object; - Py_DECREF(tmp); - return; - } - if (__pyx_code_cache.count == __pyx_code_cache.max_count) { - int new_max = __pyx_code_cache.max_count + 64; - entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( - __pyx_code_cache.entries, (size_t)new_max*sizeof(__Pyx_CodeObjectCacheEntry)); - if (unlikely(!entries)) { - return; - } - __pyx_code_cache.entries = entries; - __pyx_code_cache.max_count = new_max; - } - for (i=__pyx_code_cache.count; i>pos; i--) { - entries[i] = entries[i-1]; - } - entries[pos].code_line = code_line; - entries[pos].code_object = code_object; - __pyx_code_cache.count++; - Py_INCREF(code_object); -} - -/* AddTraceback */ -#include "compile.h" -#include "frameobject.h" -#include "traceback.h" -static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - const char *funcname, int c_line, - int py_line, const char *filename) { - PyCodeObject *py_code = 0; - PyObject *py_srcfile = 0; - PyObject *py_funcname = 0; - #if PY_MAJOR_VERSION < 3 - py_srcfile = PyString_FromString(filename); - #else - py_srcfile = PyUnicode_FromString(filename); - #endif - if (!py_srcfile) goto bad; - if (c_line) { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); - #else - py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); - #endif - } - else { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromString(funcname); - #else - py_funcname = PyUnicode_FromString(funcname); - #endif - } - if (!py_funcname) goto bad; - py_code = __Pyx_PyCode_New( - 0, - 0, - 0, - 0, - 0, - __pyx_empty_bytes, /*PyObject *code,*/ - __pyx_empty_tuple, /*PyObject *consts,*/ - __pyx_empty_tuple, /*PyObject *names,*/ - __pyx_empty_tuple, /*PyObject *varnames,*/ - __pyx_empty_tuple, /*PyObject *freevars,*/ - __pyx_empty_tuple, /*PyObject *cellvars,*/ - py_srcfile, /*PyObject *filename,*/ - py_funcname, /*PyObject *name,*/ - py_line, - __pyx_empty_bytes /*PyObject *lnotab*/ - ); - Py_DECREF(py_srcfile); - Py_DECREF(py_funcname); - return py_code; -bad: - Py_XDECREF(py_srcfile); - Py_XDECREF(py_funcname); - return NULL; -} -static void __Pyx_AddTraceback(const char *funcname, int c_line, - int py_line, const char *filename) { - PyCodeObject *py_code = 0; - PyFrameObject *py_frame = 0; - PyThreadState *tstate = __Pyx_PyThreadState_Current; - if (c_line) { - c_line = __Pyx_CLineForTraceback(tstate, c_line); - } - py_code = __pyx_find_code_object(c_line ? -c_line : py_line); - if (!py_code) { - py_code = __Pyx_CreateCodeObjectForTraceback( - funcname, c_line, py_line, filename); - if (!py_code) goto bad; - __pyx_insert_code_object(c_line ? -c_line : py_line, py_code); - } - py_frame = PyFrame_New( - tstate, /*PyThreadState *tstate,*/ - py_code, /*PyCodeObject *code,*/ - __pyx_d, /*PyObject *globals,*/ - 0 /*PyObject *locals*/ - ); - if (!py_frame) goto bad; - __Pyx_PyFrame_SetLineNumber(py_frame, py_line); - PyTraceBack_Here(py_frame); -bad: - Py_XDECREF(py_code); - Py_XDECREF(py_frame); -} - -/* CIntFromPyVerify */ -#define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\ - __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0) -#define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\ - __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1) -#define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\ - {\ - func_type value = func_value;\ - if (sizeof(target_type) < sizeof(func_type)) {\ - if (unlikely(value != (func_type) (target_type) value)) {\ - func_type zero = 0;\ - if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\ - return (target_type) -1;\ - if (is_unsigned && unlikely(value < zero))\ - goto raise_neg_overflow;\ - else\ - goto raise_overflow;\ - }\ - }\ - return (target_type) value;\ - } - -/* CIntToPy */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { - const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; - const int is_unsigned = neg_one > const_zero; - if (is_unsigned) { - if (sizeof(int) < sizeof(long)) { - return PyInt_FromLong((long) value); - } else if (sizeof(int) <= sizeof(unsigned long)) { - return PyLong_FromUnsignedLong((unsigned long) value); -#ifdef HAVE_LONG_LONG - } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { - return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -#endif - } - } else { - if (sizeof(int) <= sizeof(long)) { - return PyInt_FromLong((long) value); -#ifdef HAVE_LONG_LONG - } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { - return PyLong_FromLongLong((PY_LONG_LONG) value); -#endif - } - } - { - int one = 1; int little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&value; - return _PyLong_FromByteArray(bytes, sizeof(int), - little, !is_unsigned); - } -} - -/* CIntFromPy */ -static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { - const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; - const int is_unsigned = neg_one > const_zero; -#if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { - if (sizeof(int) < sizeof(long)) { - __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x)) - } else { - long val = PyInt_AS_LONG(x); - if (is_unsigned && unlikely(val < 0)) { - goto raise_neg_overflow; - } - return (int) val; - } - } else -#endif - if (likely(PyLong_Check(x))) { - if (is_unsigned) { -#if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)x)->ob_digit; - switch (Py_SIZE(x)) { - case 0: return (int) 0; - case 1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0]) - case 2: - if (8 * sizeof(int) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(int) >= 2 * PyLong_SHIFT) { - return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); - } - } - break; - case 3: - if (8 * sizeof(int) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(int) >= 3 * PyLong_SHIFT) { - return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); - } - } - break; - case 4: - if (8 * sizeof(int) > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(int) >= 4 * PyLong_SHIFT) { - return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); - } - } - break; - } -#endif -#if CYTHON_COMPILING_IN_CPYTHON - if (unlikely(Py_SIZE(x) < 0)) { - goto raise_neg_overflow; - } -#else - { - int result = PyObject_RichCompareBool(x, Py_False, Py_LT); - if (unlikely(result < 0)) - return (int) -1; - if (unlikely(result == 1)) - goto raise_neg_overflow; - } -#endif - if (sizeof(int) <= sizeof(unsigned long)) { - __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x)) -#ifdef HAVE_LONG_LONG - } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { - __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) -#endif - } - } else { -#if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)x)->ob_digit; - switch (Py_SIZE(x)) { - case 0: return (int) 0; - case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0])) - case 1: __PYX_VERIFY_RETURN_INT(int, digit, +digits[0]) - case -2: - if (8 * sizeof(int) - 1 > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { - return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case 2: - if (8 * sizeof(int) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { - return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case -3: - if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { - return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case 3: - if (8 * sizeof(int) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { - return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case -4: - if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { - return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case 4: - if (8 * sizeof(int) > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { - return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - } -#endif - if (sizeof(int) <= sizeof(long)) { - __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x)) -#ifdef HAVE_LONG_LONG - } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { - __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x)) -#endif - } - } - { -#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) - PyErr_SetString(PyExc_RuntimeError, - "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); -#else - int val; - PyObject *v = __Pyx_PyNumber_IntOrLong(x); - #if PY_MAJOR_VERSION < 3 - if (likely(v) && !PyLong_Check(v)) { - PyObject *tmp = v; - v = PyNumber_Long(tmp); - Py_DECREF(tmp); - } - #endif - if (likely(v)) { - int one = 1; int is_little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&val; - int ret = _PyLong_AsByteArray((PyLongObject *)v, - bytes, sizeof(val), - is_little, !is_unsigned); - Py_DECREF(v); - if (likely(!ret)) - return val; - } -#endif - return (int) -1; - } - } else { - int val; - PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); - if (!tmp) return (int) -1; - val = __Pyx_PyInt_As_int(tmp); - Py_DECREF(tmp); - return val; - } -raise_overflow: - PyErr_SetString(PyExc_OverflowError, - "value too large to convert to int"); - return (int) -1; -raise_neg_overflow: - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to int"); - return (int) -1; -} - -/* CIntFromPy */ -static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *x) { - const size_t neg_one = (size_t) ((size_t) 0 - (size_t) 1), const_zero = (size_t) 0; - const int is_unsigned = neg_one > const_zero; -#if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { - if (sizeof(size_t) < sizeof(long)) { - __PYX_VERIFY_RETURN_INT(size_t, long, PyInt_AS_LONG(x)) - } else { - long val = PyInt_AS_LONG(x); - if (is_unsigned && unlikely(val < 0)) { - goto raise_neg_overflow; - } - return (size_t) val; - } - } else -#endif - if (likely(PyLong_Check(x))) { - if (is_unsigned) { -#if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)x)->ob_digit; - switch (Py_SIZE(x)) { - case 0: return (size_t) 0; - case 1: __PYX_VERIFY_RETURN_INT(size_t, digit, digits[0]) - case 2: - if (8 * sizeof(size_t) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(size_t) >= 2 * PyLong_SHIFT) { - return (size_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); - } - } - break; - case 3: - if (8 * sizeof(size_t) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(size_t) >= 3 * PyLong_SHIFT) { - return (size_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); - } - } - break; - case 4: - if (8 * sizeof(size_t) > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(size_t) >= 4 * PyLong_SHIFT) { - return (size_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); - } - } - break; - } -#endif -#if CYTHON_COMPILING_IN_CPYTHON - if (unlikely(Py_SIZE(x) < 0)) { - goto raise_neg_overflow; - } -#else - { - int result = PyObject_RichCompareBool(x, Py_False, Py_LT); - if (unlikely(result < 0)) - return (size_t) -1; - if (unlikely(result == 1)) - goto raise_neg_overflow; - } -#endif - if (sizeof(size_t) <= sizeof(unsigned long)) { - __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned long, PyLong_AsUnsignedLong(x)) -#ifdef HAVE_LONG_LONG - } else if (sizeof(size_t) <= sizeof(unsigned PY_LONG_LONG)) { - __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) -#endif - } - } else { -#if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)x)->ob_digit; - switch (Py_SIZE(x)) { - case 0: return (size_t) 0; - case -1: __PYX_VERIFY_RETURN_INT(size_t, sdigit, (sdigit) (-(sdigit)digits[0])) - case 1: __PYX_VERIFY_RETURN_INT(size_t, digit, +digits[0]) - case -2: - if (8 * sizeof(size_t) - 1 > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) { - return (size_t) (((size_t)-1)*(((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); - } - } - break; - case 2: - if (8 * sizeof(size_t) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) { - return (size_t) ((((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); - } - } - break; - case -3: - if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) { - return (size_t) (((size_t)-1)*(((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); - } - } - break; - case 3: - if (8 * sizeof(size_t) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) { - return (size_t) ((((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); - } - } - break; - case -4: - if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT) { - return (size_t) (((size_t)-1)*(((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); - } - } - break; - case 4: - if (8 * sizeof(size_t) > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT) { - return (size_t) ((((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); - } - } - break; - } -#endif - if (sizeof(size_t) <= sizeof(long)) { - __PYX_VERIFY_RETURN_INT_EXC(size_t, long, PyLong_AsLong(x)) -#ifdef HAVE_LONG_LONG - } else if (sizeof(size_t) <= sizeof(PY_LONG_LONG)) { - __PYX_VERIFY_RETURN_INT_EXC(size_t, PY_LONG_LONG, PyLong_AsLongLong(x)) -#endif - } - } - { -#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) - PyErr_SetString(PyExc_RuntimeError, - "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); -#else - size_t val; - PyObject *v = __Pyx_PyNumber_IntOrLong(x); - #if PY_MAJOR_VERSION < 3 - if (likely(v) && !PyLong_Check(v)) { - PyObject *tmp = v; - v = PyNumber_Long(tmp); - Py_DECREF(tmp); - } - #endif - if (likely(v)) { - int one = 1; int is_little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&val; - int ret = _PyLong_AsByteArray((PyLongObject *)v, - bytes, sizeof(val), - is_little, !is_unsigned); - Py_DECREF(v); - if (likely(!ret)) - return val; - } -#endif - return (size_t) -1; - } - } else { - size_t val; - PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); - if (!tmp) return (size_t) -1; - val = __Pyx_PyInt_As_size_t(tmp); - Py_DECREF(tmp); - return val; - } -raise_overflow: - PyErr_SetString(PyExc_OverflowError, - "value too large to convert to size_t"); - return (size_t) -1; -raise_neg_overflow: - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to size_t"); - return (size_t) -1; -} - -/* CIntToPy */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { - const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; - const int is_unsigned = neg_one > const_zero; - if (is_unsigned) { - if (sizeof(long) < sizeof(long)) { - return PyInt_FromLong((long) value); - } else if (sizeof(long) <= sizeof(unsigned long)) { - return PyLong_FromUnsignedLong((unsigned long) value); -#ifdef HAVE_LONG_LONG - } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { - return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -#endif - } - } else { - if (sizeof(long) <= sizeof(long)) { - return PyInt_FromLong((long) value); -#ifdef HAVE_LONG_LONG - } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { - return PyLong_FromLongLong((PY_LONG_LONG) value); -#endif - } - } - { - int one = 1; int little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&value; - return _PyLong_FromByteArray(bytes, sizeof(long), - little, !is_unsigned); - } -} - -/* CIntFromPy */ -static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { - const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; - const int is_unsigned = neg_one > const_zero; -#if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { - if (sizeof(long) < sizeof(long)) { - __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x)) - } else { - long val = PyInt_AS_LONG(x); - if (is_unsigned && unlikely(val < 0)) { - goto raise_neg_overflow; - } - return (long) val; - } - } else -#endif - if (likely(PyLong_Check(x))) { - if (is_unsigned) { -#if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)x)->ob_digit; - switch (Py_SIZE(x)) { - case 0: return (long) 0; - case 1: __PYX_VERIFY_RETURN_INT(long, digit, digits[0]) - case 2: - if (8 * sizeof(long) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(long) >= 2 * PyLong_SHIFT) { - return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); - } - } - break; - case 3: - if (8 * sizeof(long) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(long) >= 3 * PyLong_SHIFT) { - return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); - } - } - break; - case 4: - if (8 * sizeof(long) > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(long) >= 4 * PyLong_SHIFT) { - return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); - } - } - break; - } -#endif -#if CYTHON_COMPILING_IN_CPYTHON - if (unlikely(Py_SIZE(x) < 0)) { - goto raise_neg_overflow; - } -#else - { - int result = PyObject_RichCompareBool(x, Py_False, Py_LT); - if (unlikely(result < 0)) - return (long) -1; - if (unlikely(result == 1)) - goto raise_neg_overflow; - } -#endif - if (sizeof(long) <= sizeof(unsigned long)) { - __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x)) -#ifdef HAVE_LONG_LONG - } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { - __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) -#endif - } - } else { -#if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)x)->ob_digit; - switch (Py_SIZE(x)) { - case 0: return (long) 0; - case -1: __PYX_VERIFY_RETURN_INT(long, sdigit, (sdigit) (-(sdigit)digits[0])) - case 1: __PYX_VERIFY_RETURN_INT(long, digit, +digits[0]) - case -2: - if (8 * sizeof(long) - 1 > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { - return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case 2: - if (8 * sizeof(long) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { - return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case -3: - if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { - return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case 3: - if (8 * sizeof(long) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { - return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case -4: - if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { - return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case 4: - if (8 * sizeof(long) > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { - return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - } -#endif - if (sizeof(long) <= sizeof(long)) { - __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x)) -#ifdef HAVE_LONG_LONG - } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { - __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x)) -#endif - } - } - { -#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) - PyErr_SetString(PyExc_RuntimeError, - "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); -#else - long val; - PyObject *v = __Pyx_PyNumber_IntOrLong(x); - #if PY_MAJOR_VERSION < 3 - if (likely(v) && !PyLong_Check(v)) { - PyObject *tmp = v; - v = PyNumber_Long(tmp); - Py_DECREF(tmp); - } - #endif - if (likely(v)) { - int one = 1; int is_little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&val; - int ret = _PyLong_AsByteArray((PyLongObject *)v, - bytes, sizeof(val), - is_little, !is_unsigned); - Py_DECREF(v); - if (likely(!ret)) - return val; - } -#endif - return (long) -1; - } - } else { - long val; - PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); - if (!tmp) return (long) -1; - val = __Pyx_PyInt_As_long(tmp); - Py_DECREF(tmp); - return val; - } -raise_overflow: - PyErr_SetString(PyExc_OverflowError, - "value too large to convert to long"); - return (long) -1; -raise_neg_overflow: - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to long"); - return (long) -1; -} - -/* FastTypeChecks */ -#if CYTHON_COMPILING_IN_CPYTHON -static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) { - while (a) { - a = a->tp_base; - if (a == b) - return 1; - } - return b == &PyBaseObject_Type; -} -static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) { - PyObject *mro; - if (a == b) return 1; - mro = a->tp_mro; - if (likely(mro)) { - Py_ssize_t i, n; - n = PyTuple_GET_SIZE(mro); - for (i = 0; i < n; i++) { - if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b) - return 1; - } - return 0; - } - return __Pyx_InBases(a, b); -} -#if PY_MAJOR_VERSION == 2 -static int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject* exc_type2) { - PyObject *exception, *value, *tb; - int res; - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ErrFetch(&exception, &value, &tb); - res = exc_type1 ? PyObject_IsSubclass(err, exc_type1) : 0; - if (unlikely(res == -1)) { - PyErr_WriteUnraisable(err); - res = 0; - } - if (!res) { - res = PyObject_IsSubclass(err, exc_type2); - if (unlikely(res == -1)) { - PyErr_WriteUnraisable(err); - res = 0; - } - } - __Pyx_ErrRestore(exception, value, tb); - return res; -} -#else -static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) { - int res = exc_type1 ? __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type1) : 0; - if (!res) { - res = __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2); - } - return res; -} -#endif -static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) { - Py_ssize_t i, n; - assert(PyExceptionClass_Check(exc_type)); - n = PyTuple_GET_SIZE(tuple); -#if PY_MAJOR_VERSION >= 3 - for (i=0; ip) { - #if PY_MAJOR_VERSION < 3 - if (t->is_unicode) { - *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL); - } else if (t->intern) { - *t->p = PyString_InternFromString(t->s); - } else { - *t->p = PyString_FromStringAndSize(t->s, t->n - 1); - } - #else - if (t->is_unicode | t->is_str) { - if (t->intern) { - *t->p = PyUnicode_InternFromString(t->s); - } else if (t->encoding) { - *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL); - } else { - *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1); - } - } else { - *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1); - } - #endif - if (!*t->p) - return -1; - if (PyObject_Hash(*t->p) == -1) - return -1; - ++t; - } - return 0; -} - -static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) { - return __Pyx_PyUnicode_FromStringAndSize(c_str, (Py_ssize_t)strlen(c_str)); -} -static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject* o) { - Py_ssize_t ignore; - return __Pyx_PyObject_AsStringAndSize(o, &ignore); -} -#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT -#if !CYTHON_PEP393_ENABLED -static const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) { - char* defenc_c; - PyObject* defenc = _PyUnicode_AsDefaultEncodedString(o, NULL); - if (!defenc) return NULL; - defenc_c = PyBytes_AS_STRING(defenc); -#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII - { - char* end = defenc_c + PyBytes_GET_SIZE(defenc); - char* c; - for (c = defenc_c; c < end; c++) { - if ((unsigned char) (*c) >= 128) { - PyUnicode_AsASCIIString(o); - return NULL; - } - } - } -#endif - *length = PyBytes_GET_SIZE(defenc); - return defenc_c; -} -#else -static CYTHON_INLINE const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) { - if (unlikely(__Pyx_PyUnicode_READY(o) == -1)) return NULL; -#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII - if (likely(PyUnicode_IS_ASCII(o))) { - *length = PyUnicode_GET_LENGTH(o); - return PyUnicode_AsUTF8(o); - } else { - PyUnicode_AsASCIIString(o); - return NULL; - } -#else - return PyUnicode_AsUTF8AndSize(o, length); -#endif -} -#endif -#endif -static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) { -#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT - if ( -#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII - __Pyx_sys_getdefaultencoding_not_ascii && -#endif - PyUnicode_Check(o)) { - return __Pyx_PyUnicode_AsStringAndSize(o, length); - } else -#endif -#if (!CYTHON_COMPILING_IN_PYPY) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE)) - if (PyByteArray_Check(o)) { - *length = PyByteArray_GET_SIZE(o); - return PyByteArray_AS_STRING(o); - } else -#endif - { - char* result; - int r = PyBytes_AsStringAndSize(o, &result, length); - if (unlikely(r < 0)) { - return NULL; - } else { - return result; - } - } -} -static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) { - int is_true = x == Py_True; - if (is_true | (x == Py_False) | (x == Py_None)) return is_true; - else return PyObject_IsTrue(x); -} -static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject* x) { - int retval; - if (unlikely(!x)) return -1; - retval = __Pyx_PyObject_IsTrue(x); - Py_DECREF(x); - return retval; -} -static PyObject* __Pyx_PyNumber_IntOrLongWrongResultType(PyObject* result, const char* type_name) { -#if PY_MAJOR_VERSION >= 3 - if (PyLong_Check(result)) { - if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1, - "__int__ returned non-int (type %.200s). " - "The ability to return an instance of a strict subclass of int " - "is deprecated, and may be removed in a future version of Python.", - Py_TYPE(result)->tp_name)) { - Py_DECREF(result); - return NULL; - } - return result; - } -#endif - PyErr_Format(PyExc_TypeError, - "__%.4s__ returned non-%.4s (type %.200s)", - type_name, type_name, Py_TYPE(result)->tp_name); - Py_DECREF(result); - return NULL; -} -static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x) { -#if CYTHON_USE_TYPE_SLOTS - PyNumberMethods *m; -#endif - const char *name = NULL; - PyObject *res = NULL; -#if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x) || PyLong_Check(x))) -#else - if (likely(PyLong_Check(x))) -#endif - return __Pyx_NewRef(x); -#if CYTHON_USE_TYPE_SLOTS - m = Py_TYPE(x)->tp_as_number; - #if PY_MAJOR_VERSION < 3 - if (m && m->nb_int) { - name = "int"; - res = m->nb_int(x); - } - else if (m && m->nb_long) { - name = "long"; - res = m->nb_long(x); - } - #else - if (likely(m && m->nb_int)) { - name = "int"; - res = m->nb_int(x); - } - #endif -#else - if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) { - res = PyNumber_Int(x); - } -#endif - if (likely(res)) { -#if PY_MAJOR_VERSION < 3 - if (unlikely(!PyInt_Check(res) && !PyLong_Check(res))) { -#else - if (unlikely(!PyLong_CheckExact(res))) { -#endif - return __Pyx_PyNumber_IntOrLongWrongResultType(res, name); - } - } - else if (!PyErr_Occurred()) { - PyErr_SetString(PyExc_TypeError, - "an integer is required"); - } - return res; -} -static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { - Py_ssize_t ival; - PyObject *x; -#if PY_MAJOR_VERSION < 3 - if (likely(PyInt_CheckExact(b))) { - if (sizeof(Py_ssize_t) >= sizeof(long)) - return PyInt_AS_LONG(b); - else - return PyInt_AsSsize_t(b); - } -#endif - if (likely(PyLong_CheckExact(b))) { - #if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)b)->ob_digit; - const Py_ssize_t size = Py_SIZE(b); - if (likely(__Pyx_sst_abs(size) <= 1)) { - ival = likely(size) ? digits[0] : 0; - if (size == -1) ival = -ival; - return ival; - } else { - switch (size) { - case 2: - if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) { - return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); - } - break; - case -2: - if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) { - return -(Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); - } - break; - case 3: - if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) { - return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); - } - break; - case -3: - if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) { - return -(Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); - } - break; - case 4: - if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) { - return (Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); - } - break; - case -4: - if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) { - return -(Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); - } - break; - } - } - #endif - return PyLong_AsSsize_t(b); - } - x = PyNumber_Index(b); - if (!x) return -1; - ival = PyInt_AsSsize_t(x); - Py_DECREF(x); - return ival; -} -static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { - return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); -} -static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) { - return PyInt_FromSize_t(ival); -} - - -#endif /* Py_PYTHON_H */ From bcd85156155a0b6cf4023048e9087c607820fdc4 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 16:50:35 -0600 Subject: [PATCH 298/336] Delete bridge_cpu.cpp --- reccdi/src_py/cyth/bridge_cpu.cpp | 5917 ----------------------------- 1 file changed, 5917 deletions(-) delete mode 100644 reccdi/src_py/cyth/bridge_cpu.cpp diff --git a/reccdi/src_py/cyth/bridge_cpu.cpp b/reccdi/src_py/cyth/bridge_cpu.cpp deleted file mode 100644 index 0d15949..0000000 --- a/reccdi/src_py/cyth/bridge_cpu.cpp +++ /dev/null @@ -1,5917 +0,0 @@ -/* Generated by Cython 0.29.13 */ - -/* BEGIN: Cython Metadata -{ - "distutils": { - "depends": [ - "reccdi/include/bridge.hpp" - ], - "include_dirs": [ - "reccdi/include", - "/home/beams/CXDUSER/CDI/arrayfire/include", - "/home/beams/CXDUSER/CDI/libconfig/include" - ], - "language": "c++", - "libraries": [ - "afcpu", - "config++" - ], - "library_dirs": [ - "/home/beams/CXDUSER/CDI/arrayfire/lib64", - "/home/beams/CXDUSER/CDI/libconfig/lib" - ], - "name": "reccdi.src_py.cyth.bridge_cpu", - "sources": [ - "reccdi/src_py/cyth/bridge_cpu.pyx", - "reccdi/src_cpp/bridge.cpp", - "reccdi/src_cpp/manager.cpp", - "reccdi/src_cpp/parameters.cpp", - "reccdi/src_cpp/pcdi.cpp", - "reccdi/src_cpp/resolution.cpp", - "reccdi/src_cpp/state.cpp", - "reccdi/src_cpp/support.cpp", - "reccdi/src_cpp/util.cpp", - "reccdi/src_cpp/worker.cpp" - ] - }, - "module_name": "reccdi.src_py.cyth.bridge_cpu" -} -END: Cython Metadata */ - -#define PY_SSIZE_T_CLEAN -#include "Python.h" -#ifndef Py_PYTHON_H - #error Python headers needed to compile C extensions, please install development version of Python. -#elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000) - #error Cython requires Python 2.6+ or Python 3.3+. -#else -#define CYTHON_ABI "0_29_13" -#define CYTHON_HEX_VERSION 0x001D0DF0 -#define CYTHON_FUTURE_DIVISION 0 -#include -#ifndef offsetof - #define offsetof(type, member) ( (size_t) & ((type*)0) -> member ) -#endif -#if !defined(WIN32) && !defined(MS_WINDOWS) - #ifndef __stdcall - #define __stdcall - #endif - #ifndef __cdecl - #define __cdecl - #endif - #ifndef __fastcall - #define __fastcall - #endif -#endif -#ifndef DL_IMPORT - #define DL_IMPORT(t) t -#endif -#ifndef DL_EXPORT - #define DL_EXPORT(t) t -#endif -#define __PYX_COMMA , -#ifndef HAVE_LONG_LONG - #if PY_VERSION_HEX >= 0x02070000 - #define HAVE_LONG_LONG - #endif -#endif -#ifndef PY_LONG_LONG - #define PY_LONG_LONG LONG_LONG -#endif -#ifndef Py_HUGE_VAL - #define Py_HUGE_VAL HUGE_VAL -#endif -#ifdef PYPY_VERSION - #define CYTHON_COMPILING_IN_PYPY 1 - #define CYTHON_COMPILING_IN_PYSTON 0 - #define CYTHON_COMPILING_IN_CPYTHON 0 - #undef CYTHON_USE_TYPE_SLOTS - #define CYTHON_USE_TYPE_SLOTS 0 - #undef CYTHON_USE_PYTYPE_LOOKUP - #define CYTHON_USE_PYTYPE_LOOKUP 0 - #if PY_VERSION_HEX < 0x03050000 - #undef CYTHON_USE_ASYNC_SLOTS - #define CYTHON_USE_ASYNC_SLOTS 0 - #elif !defined(CYTHON_USE_ASYNC_SLOTS) - #define CYTHON_USE_ASYNC_SLOTS 1 - #endif - #undef CYTHON_USE_PYLIST_INTERNALS - #define CYTHON_USE_PYLIST_INTERNALS 0 - #undef CYTHON_USE_UNICODE_INTERNALS - #define CYTHON_USE_UNICODE_INTERNALS 0 - #undef CYTHON_USE_UNICODE_WRITER - #define CYTHON_USE_UNICODE_WRITER 0 - #undef CYTHON_USE_PYLONG_INTERNALS - #define CYTHON_USE_PYLONG_INTERNALS 0 - #undef CYTHON_AVOID_BORROWED_REFS - #define CYTHON_AVOID_BORROWED_REFS 1 - #undef CYTHON_ASSUME_SAFE_MACROS - #define CYTHON_ASSUME_SAFE_MACROS 0 - #undef CYTHON_UNPACK_METHODS - #define CYTHON_UNPACK_METHODS 0 - #undef CYTHON_FAST_THREAD_STATE - #define CYTHON_FAST_THREAD_STATE 0 - #undef CYTHON_FAST_PYCALL - #define CYTHON_FAST_PYCALL 0 - #undef CYTHON_PEP489_MULTI_PHASE_INIT - #define CYTHON_PEP489_MULTI_PHASE_INIT 0 - #undef CYTHON_USE_TP_FINALIZE - #define CYTHON_USE_TP_FINALIZE 0 - #undef CYTHON_USE_DICT_VERSIONS - #define CYTHON_USE_DICT_VERSIONS 0 - #undef CYTHON_USE_EXC_INFO_STACK - #define CYTHON_USE_EXC_INFO_STACK 0 -#elif defined(PYSTON_VERSION) - #define CYTHON_COMPILING_IN_PYPY 0 - #define CYTHON_COMPILING_IN_PYSTON 1 - #define CYTHON_COMPILING_IN_CPYTHON 0 - #ifndef CYTHON_USE_TYPE_SLOTS - #define CYTHON_USE_TYPE_SLOTS 1 - #endif - #undef CYTHON_USE_PYTYPE_LOOKUP - #define CYTHON_USE_PYTYPE_LOOKUP 0 - #undef CYTHON_USE_ASYNC_SLOTS - #define CYTHON_USE_ASYNC_SLOTS 0 - #undef CYTHON_USE_PYLIST_INTERNALS - #define CYTHON_USE_PYLIST_INTERNALS 0 - #ifndef CYTHON_USE_UNICODE_INTERNALS - #define CYTHON_USE_UNICODE_INTERNALS 1 - #endif - #undef CYTHON_USE_UNICODE_WRITER - #define CYTHON_USE_UNICODE_WRITER 0 - #undef CYTHON_USE_PYLONG_INTERNALS - #define CYTHON_USE_PYLONG_INTERNALS 0 - #ifndef CYTHON_AVOID_BORROWED_REFS - #define CYTHON_AVOID_BORROWED_REFS 0 - #endif - #ifndef CYTHON_ASSUME_SAFE_MACROS - #define CYTHON_ASSUME_SAFE_MACROS 1 - #endif - #ifndef CYTHON_UNPACK_METHODS - #define CYTHON_UNPACK_METHODS 1 - #endif - #undef CYTHON_FAST_THREAD_STATE - #define CYTHON_FAST_THREAD_STATE 0 - #undef CYTHON_FAST_PYCALL - #define CYTHON_FAST_PYCALL 0 - #undef CYTHON_PEP489_MULTI_PHASE_INIT - #define CYTHON_PEP489_MULTI_PHASE_INIT 0 - #undef CYTHON_USE_TP_FINALIZE - #define CYTHON_USE_TP_FINALIZE 0 - #undef CYTHON_USE_DICT_VERSIONS - #define CYTHON_USE_DICT_VERSIONS 0 - #undef CYTHON_USE_EXC_INFO_STACK - #define CYTHON_USE_EXC_INFO_STACK 0 -#else - #define CYTHON_COMPILING_IN_PYPY 0 - #define CYTHON_COMPILING_IN_PYSTON 0 - #define CYTHON_COMPILING_IN_CPYTHON 1 - #ifndef CYTHON_USE_TYPE_SLOTS - #define CYTHON_USE_TYPE_SLOTS 1 - #endif - #if PY_VERSION_HEX < 0x02070000 - #undef CYTHON_USE_PYTYPE_LOOKUP - #define CYTHON_USE_PYTYPE_LOOKUP 0 - #elif !defined(CYTHON_USE_PYTYPE_LOOKUP) - #define CYTHON_USE_PYTYPE_LOOKUP 1 - #endif - #if PY_MAJOR_VERSION < 3 - #undef CYTHON_USE_ASYNC_SLOTS - #define CYTHON_USE_ASYNC_SLOTS 0 - #elif !defined(CYTHON_USE_ASYNC_SLOTS) - #define CYTHON_USE_ASYNC_SLOTS 1 - #endif - #if PY_VERSION_HEX < 0x02070000 - #undef CYTHON_USE_PYLONG_INTERNALS - #define CYTHON_USE_PYLONG_INTERNALS 0 - #elif !defined(CYTHON_USE_PYLONG_INTERNALS) - #define CYTHON_USE_PYLONG_INTERNALS 1 - #endif - #ifndef CYTHON_USE_PYLIST_INTERNALS - #define CYTHON_USE_PYLIST_INTERNALS 1 - #endif - #ifndef CYTHON_USE_UNICODE_INTERNALS - #define CYTHON_USE_UNICODE_INTERNALS 1 - #endif - #if PY_VERSION_HEX < 0x030300F0 - #undef CYTHON_USE_UNICODE_WRITER - #define CYTHON_USE_UNICODE_WRITER 0 - #elif !defined(CYTHON_USE_UNICODE_WRITER) - #define CYTHON_USE_UNICODE_WRITER 1 - #endif - #ifndef CYTHON_AVOID_BORROWED_REFS - #define CYTHON_AVOID_BORROWED_REFS 0 - #endif - #ifndef CYTHON_ASSUME_SAFE_MACROS - #define CYTHON_ASSUME_SAFE_MACROS 1 - #endif - #ifndef CYTHON_UNPACK_METHODS - #define CYTHON_UNPACK_METHODS 1 - #endif - #ifndef CYTHON_FAST_THREAD_STATE - #define CYTHON_FAST_THREAD_STATE 1 - #endif - #ifndef CYTHON_FAST_PYCALL - #define CYTHON_FAST_PYCALL 1 - #endif - #ifndef CYTHON_PEP489_MULTI_PHASE_INIT - #define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000) - #endif - #ifndef CYTHON_USE_TP_FINALIZE - #define CYTHON_USE_TP_FINALIZE (PY_VERSION_HEX >= 0x030400a1) - #endif - #ifndef CYTHON_USE_DICT_VERSIONS - #define CYTHON_USE_DICT_VERSIONS (PY_VERSION_HEX >= 0x030600B1) - #endif - #ifndef CYTHON_USE_EXC_INFO_STACK - #define CYTHON_USE_EXC_INFO_STACK (PY_VERSION_HEX >= 0x030700A3) - #endif -#endif -#if !defined(CYTHON_FAST_PYCCALL) -#define CYTHON_FAST_PYCCALL (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1) -#endif -#if CYTHON_USE_PYLONG_INTERNALS - #include "longintrepr.h" - #undef SHIFT - #undef BASE - #undef MASK - #ifdef SIZEOF_VOID_P - enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) }; - #endif -#endif -#ifndef __has_attribute - #define __has_attribute(x) 0 -#endif -#ifndef __has_cpp_attribute - #define __has_cpp_attribute(x) 0 -#endif -#ifndef CYTHON_RESTRICT - #if defined(__GNUC__) - #define CYTHON_RESTRICT __restrict__ - #elif defined(_MSC_VER) && _MSC_VER >= 1400 - #define CYTHON_RESTRICT __restrict - #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L - #define CYTHON_RESTRICT restrict - #else - #define CYTHON_RESTRICT - #endif -#endif -#ifndef CYTHON_UNUSED -# if defined(__GNUC__) -# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) -# define CYTHON_UNUSED __attribute__ ((__unused__)) -# else -# define CYTHON_UNUSED -# endif -# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER)) -# define CYTHON_UNUSED __attribute__ ((__unused__)) -# else -# define CYTHON_UNUSED -# endif -#endif -#ifndef CYTHON_MAYBE_UNUSED_VAR -# if defined(__cplusplus) - template void CYTHON_MAYBE_UNUSED_VAR( const T& ) { } -# else -# define CYTHON_MAYBE_UNUSED_VAR(x) (void)(x) -# endif -#endif -#ifndef CYTHON_NCP_UNUSED -# if CYTHON_COMPILING_IN_CPYTHON -# define CYTHON_NCP_UNUSED -# else -# define CYTHON_NCP_UNUSED CYTHON_UNUSED -# endif -#endif -#define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None) -#ifdef _MSC_VER - #ifndef _MSC_STDINT_H_ - #if _MSC_VER < 1300 - typedef unsigned char uint8_t; - typedef unsigned int uint32_t; - #else - typedef unsigned __int8 uint8_t; - typedef unsigned __int32 uint32_t; - #endif - #endif -#else - #include -#endif -#ifndef CYTHON_FALLTHROUGH - #if defined(__cplusplus) && __cplusplus >= 201103L - #if __has_cpp_attribute(fallthrough) - #define CYTHON_FALLTHROUGH [[fallthrough]] - #elif __has_cpp_attribute(clang::fallthrough) - #define CYTHON_FALLTHROUGH [[clang::fallthrough]] - #elif __has_cpp_attribute(gnu::fallthrough) - #define CYTHON_FALLTHROUGH [[gnu::fallthrough]] - #endif - #endif - #ifndef CYTHON_FALLTHROUGH - #if __has_attribute(fallthrough) - #define CYTHON_FALLTHROUGH __attribute__((fallthrough)) - #else - #define CYTHON_FALLTHROUGH - #endif - #endif - #if defined(__clang__ ) && defined(__apple_build_version__) - #if __apple_build_version__ < 7000000 - #undef CYTHON_FALLTHROUGH - #define CYTHON_FALLTHROUGH - #endif - #endif -#endif - -#ifndef __cplusplus - #error "Cython files generated with the C++ option must be compiled with a C++ compiler." -#endif -#ifndef CYTHON_INLINE - #if defined(__clang__) - #define CYTHON_INLINE __inline__ __attribute__ ((__unused__)) - #else - #define CYTHON_INLINE inline - #endif -#endif -template -void __Pyx_call_destructor(T& x) { - x.~T(); -} -template -class __Pyx_FakeReference { - public: - __Pyx_FakeReference() : ptr(NULL) { } - __Pyx_FakeReference(const T& ref) : ptr(const_cast(&ref)) { } - T *operator->() { return ptr; } - T *operator&() { return ptr; } - operator T&() { return *ptr; } - template bool operator ==(U other) { return *ptr == other; } - template bool operator !=(U other) { return *ptr != other; } - private: - T *ptr; -}; - -#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x02070600 && !defined(Py_OptimizeFlag) - #define Py_OptimizeFlag 0 -#endif -#define __PYX_BUILD_PY_SSIZE_T "n" -#define CYTHON_FORMAT_SSIZE_T "z" -#if PY_MAJOR_VERSION < 3 - #define __Pyx_BUILTIN_MODULE_NAME "__builtin__" - #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ - PyCode_New(a+k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) - #define __Pyx_DefaultClassType PyClass_Type -#else - #define __Pyx_BUILTIN_MODULE_NAME "builtins" -#if PY_VERSION_HEX >= 0x030800A4 && PY_VERSION_HEX < 0x030800B2 - #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ - PyCode_New(a, 0, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) -#else - #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ - PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) -#endif - #define __Pyx_DefaultClassType PyType_Type -#endif -#ifndef Py_TPFLAGS_CHECKTYPES - #define Py_TPFLAGS_CHECKTYPES 0 -#endif -#ifndef Py_TPFLAGS_HAVE_INDEX - #define Py_TPFLAGS_HAVE_INDEX 0 -#endif -#ifndef Py_TPFLAGS_HAVE_NEWBUFFER - #define Py_TPFLAGS_HAVE_NEWBUFFER 0 -#endif -#ifndef Py_TPFLAGS_HAVE_FINALIZE - #define Py_TPFLAGS_HAVE_FINALIZE 0 -#endif -#ifndef METH_STACKLESS - #define METH_STACKLESS 0 -#endif -#if PY_VERSION_HEX <= 0x030700A3 || !defined(METH_FASTCALL) - #ifndef METH_FASTCALL - #define METH_FASTCALL 0x80 - #endif - typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject *const *args, Py_ssize_t nargs); - typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject *const *args, - Py_ssize_t nargs, PyObject *kwnames); -#else - #define __Pyx_PyCFunctionFast _PyCFunctionFast - #define __Pyx_PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords -#endif -#if CYTHON_FAST_PYCCALL -#define __Pyx_PyFastCFunction_Check(func)\ - ((PyCFunction_Check(func) && (METH_FASTCALL == (PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS))))) -#else -#define __Pyx_PyFastCFunction_Check(func) 0 -#endif -#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc) - #define PyObject_Malloc(s) PyMem_Malloc(s) - #define PyObject_Free(p) PyMem_Free(p) - #define PyObject_Realloc(p) PyMem_Realloc(p) -#endif -#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030400A1 - #define PyMem_RawMalloc(n) PyMem_Malloc(n) - #define PyMem_RawRealloc(p, n) PyMem_Realloc(p, n) - #define PyMem_RawFree(p) PyMem_Free(p) -#endif -#if CYTHON_COMPILING_IN_PYSTON - #define __Pyx_PyCode_HasFreeVars(co) PyCode_HasFreeVars(co) - #define __Pyx_PyFrame_SetLineNumber(frame, lineno) PyFrame_SetLineNumber(frame, lineno) -#else - #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0) - #define __Pyx_PyFrame_SetLineNumber(frame, lineno) (frame)->f_lineno = (lineno) -#endif -#if !CYTHON_FAST_THREAD_STATE || PY_VERSION_HEX < 0x02070000 - #define __Pyx_PyThreadState_Current PyThreadState_GET() -#elif PY_VERSION_HEX >= 0x03060000 - #define __Pyx_PyThreadState_Current _PyThreadState_UncheckedGet() -#elif PY_VERSION_HEX >= 0x03000000 - #define __Pyx_PyThreadState_Current PyThreadState_GET() -#else - #define __Pyx_PyThreadState_Current _PyThreadState_Current -#endif -#if PY_VERSION_HEX < 0x030700A2 && !defined(PyThread_tss_create) && !defined(Py_tss_NEEDS_INIT) -#include "pythread.h" -#define Py_tss_NEEDS_INIT 0 -typedef int Py_tss_t; -static CYTHON_INLINE int PyThread_tss_create(Py_tss_t *key) { - *key = PyThread_create_key(); - return 0; -} -static CYTHON_INLINE Py_tss_t * PyThread_tss_alloc(void) { - Py_tss_t *key = (Py_tss_t *)PyObject_Malloc(sizeof(Py_tss_t)); - *key = Py_tss_NEEDS_INIT; - return key; -} -static CYTHON_INLINE void PyThread_tss_free(Py_tss_t *key) { - PyObject_Free(key); -} -static CYTHON_INLINE int PyThread_tss_is_created(Py_tss_t *key) { - return *key != Py_tss_NEEDS_INIT; -} -static CYTHON_INLINE void PyThread_tss_delete(Py_tss_t *key) { - PyThread_delete_key(*key); - *key = Py_tss_NEEDS_INIT; -} -static CYTHON_INLINE int PyThread_tss_set(Py_tss_t *key, void *value) { - return PyThread_set_key_value(*key, value); -} -static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - return PyThread_get_key_value(*key); -} -#endif -#if CYTHON_COMPILING_IN_CPYTHON || defined(_PyDict_NewPresized) -#define __Pyx_PyDict_NewPresized(n) ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n)) -#else -#define __Pyx_PyDict_NewPresized(n) PyDict_New() -#endif -#if PY_MAJOR_VERSION >= 3 || CYTHON_FUTURE_DIVISION - #define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y) - #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y) -#else - #define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y) - #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceDivide(x,y) -#endif -#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 && CYTHON_USE_UNICODE_INTERNALS -#define __Pyx_PyDict_GetItemStr(dict, name) _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash) -#else -#define __Pyx_PyDict_GetItemStr(dict, name) PyDict_GetItem(dict, name) -#endif -#if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND) - #define CYTHON_PEP393_ENABLED 1 - #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ?\ - 0 : _PyUnicode_Ready((PyObject *)(op))) - #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_LENGTH(u) - #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i) - #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) PyUnicode_MAX_CHAR_VALUE(u) - #define __Pyx_PyUnicode_KIND(u) PyUnicode_KIND(u) - #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u) - #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) - #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch) - #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u))) -#else - #define CYTHON_PEP393_ENABLED 0 - #define PyUnicode_1BYTE_KIND 1 - #define PyUnicode_2BYTE_KIND 2 - #define PyUnicode_4BYTE_KIND 4 - #define __Pyx_PyUnicode_READY(op) (0) - #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_SIZE(u) - #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i])) - #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) ((sizeof(Py_UNICODE) == 2) ? 65535 : 1114111) - #define __Pyx_PyUnicode_KIND(u) (sizeof(Py_UNICODE)) - #define __Pyx_PyUnicode_DATA(u) ((void*)PyUnicode_AS_UNICODE(u)) - #define __Pyx_PyUnicode_READ(k, d, i) ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i])) - #define __Pyx_PyUnicode_WRITE(k, d, i, ch) (((void)(k)), ((Py_UNICODE*)d)[i] = ch) - #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_SIZE(u)) -#endif -#if CYTHON_COMPILING_IN_PYPY - #define __Pyx_PyUnicode_Concat(a, b) PyNumber_Add(a, b) - #define __Pyx_PyUnicode_ConcatSafe(a, b) PyNumber_Add(a, b) -#else - #define __Pyx_PyUnicode_Concat(a, b) PyUnicode_Concat(a, b) - #define __Pyx_PyUnicode_ConcatSafe(a, b) ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\ - PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b)) -#endif -#if CYTHON_COMPILING_IN_PYPY && !defined(PyUnicode_Contains) - #define PyUnicode_Contains(u, s) PySequence_Contains(u, s) -#endif -#if CYTHON_COMPILING_IN_PYPY && !defined(PyByteArray_Check) - #define PyByteArray_Check(obj) PyObject_TypeCheck(obj, &PyByteArray_Type) -#endif -#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Format) - #define PyObject_Format(obj, fmt) PyObject_CallMethod(obj, "__format__", "O", fmt) -#endif -#define __Pyx_PyString_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyString_Check(b) && !PyString_CheckExact(b)))) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b)) -#define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyUnicode_Check(b) && !PyUnicode_CheckExact(b)))) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b)) -#if PY_MAJOR_VERSION >= 3 - #define __Pyx_PyString_Format(a, b) PyUnicode_Format(a, b) -#else - #define __Pyx_PyString_Format(a, b) PyString_Format(a, b) -#endif -#if PY_MAJOR_VERSION < 3 && !defined(PyObject_ASCII) - #define PyObject_ASCII(o) PyObject_Repr(o) -#endif -#if PY_MAJOR_VERSION >= 3 - #define PyBaseString_Type PyUnicode_Type - #define PyStringObject PyUnicodeObject - #define PyString_Type PyUnicode_Type - #define PyString_Check PyUnicode_Check - #define PyString_CheckExact PyUnicode_CheckExact - #define PyObject_Unicode PyObject_Str -#endif -#if PY_MAJOR_VERSION >= 3 - #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj) - #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj) -#else - #define __Pyx_PyBaseString_Check(obj) (PyString_Check(obj) || PyUnicode_Check(obj)) - #define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj)) -#endif -#ifndef PySet_CheckExact - #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) -#endif -#if CYTHON_ASSUME_SAFE_MACROS - #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq) -#else - #define __Pyx_PySequence_SIZE(seq) PySequence_Size(seq) -#endif -#if PY_MAJOR_VERSION >= 3 - #define PyIntObject PyLongObject - #define PyInt_Type PyLong_Type - #define PyInt_Check(op) PyLong_Check(op) - #define PyInt_CheckExact(op) PyLong_CheckExact(op) - #define PyInt_FromString PyLong_FromString - #define PyInt_FromUnicode PyLong_FromUnicode - #define PyInt_FromLong PyLong_FromLong - #define PyInt_FromSize_t PyLong_FromSize_t - #define PyInt_FromSsize_t PyLong_FromSsize_t - #define PyInt_AsLong PyLong_AsLong - #define PyInt_AS_LONG PyLong_AS_LONG - #define PyInt_AsSsize_t PyLong_AsSsize_t - #define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask - #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask - #define PyNumber_Int PyNumber_Long -#endif -#if PY_MAJOR_VERSION >= 3 - #define PyBoolObject PyLongObject -#endif -#if PY_MAJOR_VERSION >= 3 && CYTHON_COMPILING_IN_PYPY - #ifndef PyUnicode_InternFromString - #define PyUnicode_InternFromString(s) PyUnicode_FromString(s) - #endif -#endif -#if PY_VERSION_HEX < 0x030200A4 - typedef long Py_hash_t; - #define __Pyx_PyInt_FromHash_t PyInt_FromLong - #define __Pyx_PyInt_AsHash_t PyInt_AsLong -#else - #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t - #define __Pyx_PyInt_AsHash_t PyInt_AsSsize_t -#endif -#if PY_MAJOR_VERSION >= 3 - #define __Pyx_PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : (Py_INCREF(func), func)) -#else - #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass) -#endif -#if CYTHON_USE_ASYNC_SLOTS - #if PY_VERSION_HEX >= 0x030500B1 - #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods - #define __Pyx_PyType_AsAsync(obj) (Py_TYPE(obj)->tp_as_async) - #else - #define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved)) - #endif -#else - #define __Pyx_PyType_AsAsync(obj) NULL -#endif -#ifndef __Pyx_PyAsyncMethodsStruct - typedef struct { - unaryfunc am_await; - unaryfunc am_aiter; - unaryfunc am_anext; - } __Pyx_PyAsyncMethodsStruct; -#endif - -#if defined(WIN32) || defined(MS_WINDOWS) - #define _USE_MATH_DEFINES -#endif -#include -#ifdef NAN -#define __PYX_NAN() ((float) NAN) -#else -static CYTHON_INLINE float __PYX_NAN() { - float value; - memset(&value, 0xFF, sizeof(value)); - return value; -} -#endif -#if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL) -#define __Pyx_truncl trunc -#else -#define __Pyx_truncl truncl -#endif - - -#define __PYX_ERR(f_index, lineno, Ln_error) \ -{ \ - __pyx_filename = __pyx_f[f_index]; __pyx_lineno = lineno; __pyx_clineno = __LINE__; goto Ln_error; \ -} - -#ifndef __PYX_EXTERN_C - #ifdef __cplusplus - #define __PYX_EXTERN_C extern "C" - #else - #define __PYX_EXTERN_C extern - #endif -#endif - -#define __PYX_HAVE__reccdi__src_py__cyth__bridge_cpu -#define __PYX_HAVE_API__reccdi__src_py__cyth__bridge_cpu -/* Early includes */ -#include "ios" -#include "new" -#include "stdexcept" -#include "typeinfo" -#include -#include -#include -#include "../include/bridge.hpp" -#ifdef _OPENMP -#include -#endif /* _OPENMP */ - -#if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS) -#define CYTHON_WITHOUT_ASSERTIONS -#endif - -typedef struct {PyObject **p; const char *s; const Py_ssize_t n; const char* encoding; - const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; - -#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0 -#define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0 -#define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT (PY_MAJOR_VERSION >= 3 && __PYX_DEFAULT_STRING_ENCODING_IS_UTF8) -#define __PYX_DEFAULT_STRING_ENCODING "" -#define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString -#define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize -#define __Pyx_uchar_cast(c) ((unsigned char)c) -#define __Pyx_long_cast(x) ((long)x) -#define __Pyx_fits_Py_ssize_t(v, type, is_signed) (\ - (sizeof(type) < sizeof(Py_ssize_t)) ||\ - (sizeof(type) > sizeof(Py_ssize_t) &&\ - likely(v < (type)PY_SSIZE_T_MAX ||\ - v == (type)PY_SSIZE_T_MAX) &&\ - (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\ - v == (type)PY_SSIZE_T_MIN))) ||\ - (sizeof(type) == sizeof(Py_ssize_t) &&\ - (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\ - v == (type)PY_SSIZE_T_MAX))) ) -static CYTHON_INLINE int __Pyx_is_valid_index(Py_ssize_t i, Py_ssize_t limit) { - return (size_t) i < (size_t) limit; -} -#if defined (__cplusplus) && __cplusplus >= 201103L - #include - #define __Pyx_sst_abs(value) std::abs(value) -#elif SIZEOF_INT >= SIZEOF_SIZE_T - #define __Pyx_sst_abs(value) abs(value) -#elif SIZEOF_LONG >= SIZEOF_SIZE_T - #define __Pyx_sst_abs(value) labs(value) -#elif defined (_MSC_VER) - #define __Pyx_sst_abs(value) ((Py_ssize_t)_abs64(value)) -#elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L - #define __Pyx_sst_abs(value) llabs(value) -#elif defined (__GNUC__) - #define __Pyx_sst_abs(value) __builtin_llabs(value) -#else - #define __Pyx_sst_abs(value) ((value<0) ? -value : value) -#endif -static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject*); -static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length); -#define __Pyx_PyByteArray_FromString(s) PyByteArray_FromStringAndSize((const char*)s, strlen((const char*)s)) -#define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l) -#define __Pyx_PyBytes_FromString PyBytes_FromString -#define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize -static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*); -#if PY_MAJOR_VERSION < 3 - #define __Pyx_PyStr_FromString __Pyx_PyBytes_FromString - #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize -#else - #define __Pyx_PyStr_FromString __Pyx_PyUnicode_FromString - #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize -#endif -#define __Pyx_PyBytes_AsWritableString(s) ((char*) PyBytes_AS_STRING(s)) -#define __Pyx_PyBytes_AsWritableSString(s) ((signed char*) PyBytes_AS_STRING(s)) -#define __Pyx_PyBytes_AsWritableUString(s) ((unsigned char*) PyBytes_AS_STRING(s)) -#define __Pyx_PyBytes_AsString(s) ((const char*) PyBytes_AS_STRING(s)) -#define __Pyx_PyBytes_AsSString(s) ((const signed char*) PyBytes_AS_STRING(s)) -#define __Pyx_PyBytes_AsUString(s) ((const unsigned char*) PyBytes_AS_STRING(s)) -#define __Pyx_PyObject_AsWritableString(s) ((char*) __Pyx_PyObject_AsString(s)) -#define __Pyx_PyObject_AsWritableSString(s) ((signed char*) __Pyx_PyObject_AsString(s)) -#define __Pyx_PyObject_AsWritableUString(s) ((unsigned char*) __Pyx_PyObject_AsString(s)) -#define __Pyx_PyObject_AsSString(s) ((const signed char*) __Pyx_PyObject_AsString(s)) -#define __Pyx_PyObject_AsUString(s) ((const unsigned char*) __Pyx_PyObject_AsString(s)) -#define __Pyx_PyObject_FromCString(s) __Pyx_PyObject_FromString((const char*)s) -#define __Pyx_PyBytes_FromCString(s) __Pyx_PyBytes_FromString((const char*)s) -#define __Pyx_PyByteArray_FromCString(s) __Pyx_PyByteArray_FromString((const char*)s) -#define __Pyx_PyStr_FromCString(s) __Pyx_PyStr_FromString((const char*)s) -#define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s) -static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u) { - const Py_UNICODE *u_end = u; - while (*u_end++) ; - return (size_t)(u_end - u - 1); -} -#define __Pyx_PyUnicode_FromUnicode(u) PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u)) -#define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode -#define __Pyx_PyUnicode_AsUnicode PyUnicode_AsUnicode -#define __Pyx_NewRef(obj) (Py_INCREF(obj), obj) -#define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None) -static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b); -static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*); -static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject*); -static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x); -#define __Pyx_PySequence_Tuple(obj)\ - (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj)) -static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*); -static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t); -#if CYTHON_ASSUME_SAFE_MACROS -#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x)) -#else -#define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x) -#endif -#define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x)) -#if PY_MAJOR_VERSION >= 3 -#define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x)) -#else -#define __Pyx_PyNumber_Int(x) (PyInt_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Int(x)) -#endif -#define __Pyx_PyNumber_Float(x) (PyFloat_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Float(x)) -#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII -static int __Pyx_sys_getdefaultencoding_not_ascii; -static int __Pyx_init_sys_getdefaultencoding_params(void) { - PyObject* sys; - PyObject* default_encoding = NULL; - PyObject* ascii_chars_u = NULL; - PyObject* ascii_chars_b = NULL; - const char* default_encoding_c; - sys = PyImport_ImportModule("sys"); - if (!sys) goto bad; - default_encoding = PyObject_CallMethod(sys, (char*) "getdefaultencoding", NULL); - Py_DECREF(sys); - if (!default_encoding) goto bad; - default_encoding_c = PyBytes_AsString(default_encoding); - if (!default_encoding_c) goto bad; - if (strcmp(default_encoding_c, "ascii") == 0) { - __Pyx_sys_getdefaultencoding_not_ascii = 0; - } else { - char ascii_chars[128]; - int c; - for (c = 0; c < 128; c++) { - ascii_chars[c] = c; - } - __Pyx_sys_getdefaultencoding_not_ascii = 1; - ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL); - if (!ascii_chars_u) goto bad; - ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL); - if (!ascii_chars_b || !PyBytes_Check(ascii_chars_b) || memcmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) { - PyErr_Format( - PyExc_ValueError, - "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.", - default_encoding_c); - goto bad; - } - Py_DECREF(ascii_chars_u); - Py_DECREF(ascii_chars_b); - } - Py_DECREF(default_encoding); - return 0; -bad: - Py_XDECREF(default_encoding); - Py_XDECREF(ascii_chars_u); - Py_XDECREF(ascii_chars_b); - return -1; -} -#endif -#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3 -#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL) -#else -#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL) -#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT -static char* __PYX_DEFAULT_STRING_ENCODING; -static int __Pyx_init_sys_getdefaultencoding_params(void) { - PyObject* sys; - PyObject* default_encoding = NULL; - char* default_encoding_c; - sys = PyImport_ImportModule("sys"); - if (!sys) goto bad; - default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL); - Py_DECREF(sys); - if (!default_encoding) goto bad; - default_encoding_c = PyBytes_AsString(default_encoding); - if (!default_encoding_c) goto bad; - __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c) + 1); - if (!__PYX_DEFAULT_STRING_ENCODING) goto bad; - strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c); - Py_DECREF(default_encoding); - return 0; -bad: - Py_XDECREF(default_encoding); - return -1; -} -#endif -#endif - - -/* Test for GCC > 2.95 */ -#if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95))) - #define likely(x) __builtin_expect(!!(x), 1) - #define unlikely(x) __builtin_expect(!!(x), 0) -#else /* !__GNUC__ or GCC < 2.95 */ - #define likely(x) (x) - #define unlikely(x) (x) -#endif /* __GNUC__ */ -static CYTHON_INLINE void __Pyx_pretend_to_initialize(void* ptr) { (void)ptr; } - -static PyObject *__pyx_m = NULL; -static PyObject *__pyx_d; -static PyObject *__pyx_b; -static PyObject *__pyx_cython_runtime = NULL; -static PyObject *__pyx_empty_tuple; -static PyObject *__pyx_empty_bytes; -static PyObject *__pyx_empty_unicode; -static int __pyx_lineno; -static int __pyx_clineno = 0; -static const char * __pyx_cfilenm= __FILE__; -static const char *__pyx_filename; - - -static const char *__pyx_f[] = { - "stringsource", - "reccdi/src_py/cyth/bridge_cpu.pyx", -}; - -/*--- Type declarations ---*/ -struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge; - -/* "reccdi/src_py/cyth/bridge_cpu.pyx":37 - * - * - * cdef class PyBridge: # <<<<<<<<<<<<<< - * cdef Bridge *thisptr - * def __cinit__(self): - */ -struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge { - PyObject_HEAD - Bridge *thisptr; -}; - - -/* --- Runtime support code (head) --- */ -/* Refnanny.proto */ -#ifndef CYTHON_REFNANNY - #define CYTHON_REFNANNY 0 -#endif -#if CYTHON_REFNANNY - typedef struct { - void (*INCREF)(void*, PyObject*, int); - void (*DECREF)(void*, PyObject*, int); - void (*GOTREF)(void*, PyObject*, int); - void (*GIVEREF)(void*, PyObject*, int); - void* (*SetupContext)(const char*, int, const char*); - void (*FinishContext)(void**); - } __Pyx_RefNannyAPIStruct; - static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL; - static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname); - #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL; -#ifdef WITH_THREAD - #define __Pyx_RefNannySetupContext(name, acquire_gil)\ - if (acquire_gil) {\ - PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\ - __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\ - PyGILState_Release(__pyx_gilstate_save);\ - } else {\ - __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\ - } -#else - #define __Pyx_RefNannySetupContext(name, acquire_gil)\ - __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__) -#endif - #define __Pyx_RefNannyFinishContext()\ - __Pyx_RefNanny->FinishContext(&__pyx_refnanny) - #define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__) - #define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__) - #define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__) - #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__) - #define __Pyx_XINCREF(r) do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0) - #define __Pyx_XDECREF(r) do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0) - #define __Pyx_XGOTREF(r) do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0) - #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0) -#else - #define __Pyx_RefNannyDeclarations - #define __Pyx_RefNannySetupContext(name, acquire_gil) - #define __Pyx_RefNannyFinishContext() - #define __Pyx_INCREF(r) Py_INCREF(r) - #define __Pyx_DECREF(r) Py_DECREF(r) - #define __Pyx_GOTREF(r) - #define __Pyx_GIVEREF(r) - #define __Pyx_XINCREF(r) Py_XINCREF(r) - #define __Pyx_XDECREF(r) Py_XDECREF(r) - #define __Pyx_XGOTREF(r) - #define __Pyx_XGIVEREF(r) -#endif -#define __Pyx_XDECREF_SET(r, v) do {\ - PyObject *tmp = (PyObject *) r;\ - r = v; __Pyx_XDECREF(tmp);\ - } while (0) -#define __Pyx_DECREF_SET(r, v) do {\ - PyObject *tmp = (PyObject *) r;\ - r = v; __Pyx_DECREF(tmp);\ - } while (0) -#define __Pyx_CLEAR(r) do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0) -#define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0) - -/* PyObjectGetAttrStr.proto */ -#if CYTHON_USE_TYPE_SLOTS -static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name); -#else -#define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n) -#endif - -/* GetBuiltinName.proto */ -static PyObject *__Pyx_GetBuiltinName(PyObject *name); - -/* RaiseArgTupleInvalid.proto */ -static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact, - Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); - -/* KeywordStringCheck.proto */ -static int __Pyx_CheckKeywordStrings(PyObject *kwdict, const char* function_name, int kw_allowed); - -/* RaiseDoubleKeywords.proto */ -static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name); - -/* ParseKeywords.proto */ -static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[],\ - PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args,\ - const char* function_name); - -/* PyFunctionFastCall.proto */ -#if CYTHON_FAST_PYCALL -#define __Pyx_PyFunction_FastCall(func, args, nargs)\ - __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL) -#if 1 || PY_VERSION_HEX < 0x030600B1 -static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs); -#else -#define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs) -#endif -#define __Pyx_BUILD_ASSERT_EXPR(cond)\ - (sizeof(char [1 - 2*!(cond)]) - 1) -#ifndef Py_MEMBER_SIZE -#define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member) -#endif - static size_t __pyx_pyframe_localsplus_offset = 0; - #include "frameobject.h" - #define __Pxy_PyFrame_Initialize_Offsets()\ - ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\ - (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus))) - #define __Pyx_PyFrame_GetLocalsplus(frame)\ - (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset)) -#endif - -/* PyObjectCall.proto */ -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw); -#else -#define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw) -#endif - -/* PyObjectCallMethO.proto */ -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg); -#endif - -/* PyObjectCallNoArg.proto */ -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func); -#else -#define __Pyx_PyObject_CallNoArg(func) __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL) -#endif - -/* PyCFunctionFastCall.proto */ -#if CYTHON_FAST_PYCCALL -static CYTHON_INLINE PyObject *__Pyx_PyCFunction_FastCall(PyObject *func, PyObject **args, Py_ssize_t nargs); -#else -#define __Pyx_PyCFunction_FastCall(func, args, nargs) (assert(0), NULL) -#endif - -/* PyObjectCallOneArg.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg); - -/* PyThreadStateGet.proto */ -#if CYTHON_FAST_THREAD_STATE -#define __Pyx_PyThreadState_declare PyThreadState *__pyx_tstate; -#define __Pyx_PyThreadState_assign __pyx_tstate = __Pyx_PyThreadState_Current; -#define __Pyx_PyErr_Occurred() __pyx_tstate->curexc_type -#else -#define __Pyx_PyThreadState_declare -#define __Pyx_PyThreadState_assign -#define __Pyx_PyErr_Occurred() PyErr_Occurred() -#endif - -/* PyErrFetchRestore.proto */ -#if CYTHON_FAST_THREAD_STATE -#define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL) -#define __Pyx_ErrRestoreWithState(type, value, tb) __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb) -#define __Pyx_ErrFetchWithState(type, value, tb) __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb) -#define __Pyx_ErrRestore(type, value, tb) __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb) -#define __Pyx_ErrFetch(type, value, tb) __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb) -static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb); -static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); -#if CYTHON_COMPILING_IN_CPYTHON -#define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL)) -#else -#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) -#endif -#else -#define __Pyx_PyErr_Clear() PyErr_Clear() -#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) -#define __Pyx_ErrRestoreWithState(type, value, tb) PyErr_Restore(type, value, tb) -#define __Pyx_ErrFetchWithState(type, value, tb) PyErr_Fetch(type, value, tb) -#define __Pyx_ErrRestoreInState(tstate, type, value, tb) PyErr_Restore(type, value, tb) -#define __Pyx_ErrFetchInState(tstate, type, value, tb) PyErr_Fetch(type, value, tb) -#define __Pyx_ErrRestore(type, value, tb) PyErr_Restore(type, value, tb) -#define __Pyx_ErrFetch(type, value, tb) PyErr_Fetch(type, value, tb) -#endif - -/* RaiseException.proto */ -static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); - -/* ListCompAppend.proto */ -#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS -static CYTHON_INLINE int __Pyx_ListComp_Append(PyObject* list, PyObject* x) { - PyListObject* L = (PyListObject*) list; - Py_ssize_t len = Py_SIZE(list); - if (likely(L->allocated > len)) { - Py_INCREF(x); - PyList_SET_ITEM(list, len, x); - Py_SIZE(list) = len+1; - return 0; - } - return PyList_Append(list, x); -} -#else -#define __Pyx_ListComp_Append(L,x) PyList_Append(L,x) -#endif - -/* PyObject_GenericGetAttrNoDict.proto */ -#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 -static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name); -#else -#define __Pyx_PyObject_GenericGetAttrNoDict PyObject_GenericGetAttr -#endif - -/* PyObject_GenericGetAttr.proto */ -#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 -static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name); -#else -#define __Pyx_PyObject_GenericGetAttr PyObject_GenericGetAttr -#endif - -/* SetupReduce.proto */ -static int __Pyx_setup_reduce(PyObject* type_obj); - -/* PyDictVersioning.proto */ -#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS -#define __PYX_DICT_VERSION_INIT ((PY_UINT64_T) -1) -#define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag) -#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\ - (version_var) = __PYX_GET_DICT_VERSION(dict);\ - (cache_var) = (value); -#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\ - static PY_UINT64_T __pyx_dict_version = 0;\ - static PyObject *__pyx_dict_cached_value = NULL;\ - if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\ - (VAR) = __pyx_dict_cached_value;\ - } else {\ - (VAR) = __pyx_dict_cached_value = (LOOKUP);\ - __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\ - }\ -} -static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj); -static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj); -static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version); -#else -#define __PYX_GET_DICT_VERSION(dict) (0) -#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var) -#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) (VAR) = (LOOKUP); -#endif - -/* CLineInTraceback.proto */ -#ifdef CYTHON_CLINE_IN_TRACEBACK -#define __Pyx_CLineForTraceback(tstate, c_line) (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0) -#else -static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line); -#endif - -/* CodeObjectCache.proto */ -typedef struct { - PyCodeObject* code_object; - int code_line; -} __Pyx_CodeObjectCacheEntry; -struct __Pyx_CodeObjectCache { - int count; - int max_count; - __Pyx_CodeObjectCacheEntry* entries; -}; -static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL}; -static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line); -static PyCodeObject *__pyx_find_code_object(int code_line); -static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object); - -/* AddTraceback.proto */ -static void __Pyx_AddTraceback(const char *funcname, int c_line, - int py_line, const char *filename); - -/* CppExceptionConversion.proto */ -#ifndef __Pyx_CppExn2PyErr -#include -#include -#include -#include -static void __Pyx_CppExn2PyErr() { - try { - if (PyErr_Occurred()) - ; // let the latest Python exn pass through and ignore the current one - else - throw; - } catch (const std::bad_alloc& exn) { - PyErr_SetString(PyExc_MemoryError, exn.what()); - } catch (const std::bad_cast& exn) { - PyErr_SetString(PyExc_TypeError, exn.what()); - } catch (const std::bad_typeid& exn) { - PyErr_SetString(PyExc_TypeError, exn.what()); - } catch (const std::domain_error& exn) { - PyErr_SetString(PyExc_ValueError, exn.what()); - } catch (const std::invalid_argument& exn) { - PyErr_SetString(PyExc_ValueError, exn.what()); - } catch (const std::ios_base::failure& exn) { - PyErr_SetString(PyExc_IOError, exn.what()); - } catch (const std::out_of_range& exn) { - PyErr_SetString(PyExc_IndexError, exn.what()); - } catch (const std::overflow_error& exn) { - PyErr_SetString(PyExc_OverflowError, exn.what()); - } catch (const std::range_error& exn) { - PyErr_SetString(PyExc_ArithmeticError, exn.what()); - } catch (const std::underflow_error& exn) { - PyErr_SetString(PyExc_ArithmeticError, exn.what()); - } catch (const std::exception& exn) { - PyErr_SetString(PyExc_RuntimeError, exn.what()); - } - catch (...) - { - PyErr_SetString(PyExc_RuntimeError, "Unknown exception"); - } -} -#endif - -/* CIntToPy.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); - -/* CIntFromPy.proto */ -static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); - -/* CIntFromPy.proto */ -static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *); - -/* CIntToPy.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); - -/* CIntFromPy.proto */ -static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *); - -/* FastTypeChecks.proto */ -#if CYTHON_COMPILING_IN_CPYTHON -#define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type) -static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b); -static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type); -static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2); -#else -#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type) -#define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type) -#define __Pyx_PyErr_GivenExceptionMatches2(err, type1, type2) (PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2)) -#endif -#define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception) - -/* CheckBinaryVersion.proto */ -static int __Pyx_check_binary_version(void); - -/* InitStrings.proto */ -static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); - - -/* Module declarations from 'libcpp.vector' */ - -/* Module declarations from 'libc.string' */ - -/* Module declarations from 'libcpp.string' */ - -/* Module declarations from 'reccdi.src_py.cyth.bridge_cpu' */ -static PyTypeObject *__pyx_ptype_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge = 0; -static std::vector __pyx_convert_vector_from_py_float(PyObject *); /*proto*/ -static std::vector __pyx_convert_vector_from_py_int(PyObject *); /*proto*/ -static std::string __pyx_convert_string_from_py_std__in_string(PyObject *); /*proto*/ -static PyObject *__pyx_convert_vector_to_py_double(const std::vector &); /*proto*/ -static PyObject *__pyx_convert_vector_to_py_float(const std::vector &); /*proto*/ -static PyObject *__pyx_convert_vector_to_py_int(const std::vector &); /*proto*/ -#define __Pyx_MODULE_NAME "reccdi.src_py.cyth.bridge_cpu" -extern int __pyx_module_is_main_reccdi__src_py__cyth__bridge_cpu; -int __pyx_module_is_main_reccdi__src_py__cyth__bridge_cpu = 0; - -/* Implementation of 'reccdi.src_py.cyth.bridge_cpu' */ -static PyObject *__pyx_builtin_TypeError; -static PyObject *__pyx_builtin_range; -static const char __pyx_k_coh[] = "coh"; -static const char __pyx_k_dims[] = "dims"; -static const char __pyx_k_main[] = "__main__"; -static const char __pyx_k_name[] = "__name__"; -static const char __pyx_k_test[] = "__test__"; -static const char __pyx_k_range[] = "range"; -static const char __pyx_k_config[] = "config"; -static const char __pyx_k_data_r[] = "data_r"; -static const char __pyx_k_device[] = "device"; -static const char __pyx_k_encode[] = "encode"; -static const char __pyx_k_reduce[] = "__reduce__"; -static const char __pyx_k_guess_i[] = "guess_i"; -static const char __pyx_k_guess_r[] = "guess_r"; -static const char __pyx_k_support[] = "support"; -static const char __pyx_k_PyBridge[] = "PyBridge"; -static const char __pyx_k_coh_dims[] = "coh_dims"; -static const char __pyx_k_getstate[] = "__getstate__"; -static const char __pyx_k_setstate[] = "__setstate__"; -static const char __pyx_k_TypeError[] = "TypeError"; -static const char __pyx_k_reduce_ex[] = "__reduce_ex__"; -static const char __pyx_k_reduce_cython[] = "__reduce_cython__"; -static const char __pyx_k_setstate_cython[] = "__setstate_cython__"; -static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; -static const char __pyx_k_no_default___reduce___due_to_non[] = "no default __reduce__ due to non-trivial __cinit__"; -static PyObject *__pyx_n_s_PyBridge; -static PyObject *__pyx_n_s_TypeError; -static PyObject *__pyx_n_s_cline_in_traceback; -static PyObject *__pyx_n_s_coh; -static PyObject *__pyx_n_s_coh_dims; -static PyObject *__pyx_n_s_config; -static PyObject *__pyx_n_s_data_r; -static PyObject *__pyx_n_s_device; -static PyObject *__pyx_n_s_dims; -static PyObject *__pyx_n_s_encode; -static PyObject *__pyx_n_s_getstate; -static PyObject *__pyx_n_s_guess_i; -static PyObject *__pyx_n_s_guess_r; -static PyObject *__pyx_n_s_main; -static PyObject *__pyx_n_s_name; -static PyObject *__pyx_kp_s_no_default___reduce___due_to_non; -static PyObject *__pyx_n_s_range; -static PyObject *__pyx_n_s_reduce; -static PyObject *__pyx_n_s_reduce_cython; -static PyObject *__pyx_n_s_reduce_ex; -static PyObject *__pyx_n_s_setstate; -static PyObject *__pyx_n_s_setstate_cython; -static PyObject *__pyx_n_s_support; -static PyObject *__pyx_n_s_test; -static int __pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge___cinit__(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self); /* proto */ -static void __pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_2__dealloc__(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_4start_calc_with_guess(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_guess_r, PyObject *__pyx_v_guess_i, PyObject *__pyx_v_dims, PyObject *__pyx_v_config); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_6start_calc_with_guess_support(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_guess_r, PyObject *__pyx_v_guess_i, PyObject *__pyx_v_support, PyObject *__pyx_v_dims, PyObject *__pyx_v_config); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_8start_calc_with_guess_support_coh(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_guess_r, PyObject *__pyx_v_guess_i, PyObject *__pyx_v_support, PyObject *__pyx_v_dims, PyObject *__pyx_v_coh, PyObject *__pyx_v_coh_dims, PyObject *__pyx_v_config); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_10start_calc(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_dims, PyObject *__pyx_v_config); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_12get_image_r(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_14get_image_i(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_16get_errors(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_18get_support(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_20get_coherence(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_22get_reciprocal_r(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_24get_reciprocal_i(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_26get_flow(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_28get_iter_flow(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_30cleanup(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_32__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_34__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ -static PyObject *__pyx_tp_new_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ -static PyObject *__pyx_tuple_; -static PyObject *__pyx_tuple__2; -/* Late includes */ - -/* "reccdi/src_py/cyth/bridge_cpu.pyx":39 - * cdef class PyBridge: - * cdef Bridge *thisptr - * def __cinit__(self): # <<<<<<<<<<<<<< - * self.thisptr = new Bridge() - * def __dealloc__(self): - */ - -/* Python wrapper */ -static int __pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static int __pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - int __pyx_r; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); - if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { - __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} - if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge___cinit__(((struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static int __pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge___cinit__(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self) { - int __pyx_r; - __Pyx_RefNannyDeclarations - Bridge *__pyx_t_1; - __Pyx_RefNannySetupContext("__cinit__", 0); - - /* "reccdi/src_py/cyth/bridge_cpu.pyx":40 - * cdef Bridge *thisptr - * def __cinit__(self): - * self.thisptr = new Bridge() # <<<<<<<<<<<<<< - * def __dealloc__(self): - * del self.thisptr - */ - try { - __pyx_t_1 = new Bridge(); - } catch(...) { - __Pyx_CppExn2PyErr(); - __PYX_ERR(1, 40, __pyx_L1_error) - } - __pyx_v_self->thisptr = __pyx_t_1; - - /* "reccdi/src_py/cyth/bridge_cpu.pyx":39 - * cdef class PyBridge: - * cdef Bridge *thisptr - * def __cinit__(self): # <<<<<<<<<<<<<< - * self.thisptr = new Bridge() - * def __dealloc__(self): - */ - - /* function exit code */ - __pyx_r = 0; - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cpu.PyBridge.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1; - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "reccdi/src_py/cyth/bridge_cpu.pyx":41 - * def __cinit__(self): - * self.thisptr = new Bridge() - * def __dealloc__(self): # <<<<<<<<<<<<<< - * del self.thisptr - * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): - */ - -/* Python wrapper */ -static void __pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_3__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_3__dealloc__(PyObject *__pyx_v_self) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); - __pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_2__dealloc__(((struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); -} - -static void __pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_2__dealloc__(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__dealloc__", 0); - - /* "reccdi/src_py/cyth/bridge_cpu.pyx":42 - * self.thisptr = new Bridge() - * def __dealloc__(self): - * del self.thisptr # <<<<<<<<<<<<<< - * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): - * self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) - */ - delete __pyx_v_self->thisptr; - - /* "reccdi/src_py/cyth/bridge_cpu.pyx":41 - * def __cinit__(self): - * self.thisptr = new Bridge() - * def __dealloc__(self): # <<<<<<<<<<<<<< - * del self.thisptr - * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): - */ - - /* function exit code */ - __Pyx_RefNannyFinishContext(); -} - -/* "reccdi/src_py/cyth/bridge_cpu.pyx":43 - * def __dealloc__(self): - * del self.thisptr - * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): # <<<<<<<<<<<<<< - * self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) - * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_5start_calc_with_guess(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_5start_calc_with_guess(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_device = 0; - PyObject *__pyx_v_data_r = 0; - PyObject *__pyx_v_guess_r = 0; - PyObject *__pyx_v_guess_i = 0; - PyObject *__pyx_v_dims = 0; - PyObject *__pyx_v_config = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("start_calc_with_guess (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_device,&__pyx_n_s_data_r,&__pyx_n_s_guess_r,&__pyx_n_s_guess_i,&__pyx_n_s_dims,&__pyx_n_s_config,0}; - PyObject* values[6] = {0,0,0,0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); - CYTHON_FALLTHROUGH; - case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = PyDict_Size(__pyx_kwds); - switch (pos_args) { - case 0: - if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_device)) != 0)) kw_args--; - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_data_r)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess", 1, 6, 6, 1); __PYX_ERR(1, 43, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_guess_r)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess", 1, 6, 6, 2); __PYX_ERR(1, 43, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_guess_i)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess", 1, 6, 6, 3); __PYX_ERR(1, 43, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 4: - if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dims)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess", 1, 6, 6, 4); __PYX_ERR(1, 43, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 5: - if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_config)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess", 1, 6, 6, 5); __PYX_ERR(1, 43, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "start_calc_with_guess") < 0)) __PYX_ERR(1, 43, __pyx_L3_error) - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 6) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - values[5] = PyTuple_GET_ITEM(__pyx_args, 5); - } - __pyx_v_device = values[0]; - __pyx_v_data_r = values[1]; - __pyx_v_guess_r = values[2]; - __pyx_v_guess_i = values[3]; - __pyx_v_dims = values[4]; - __pyx_v_config = values[5]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 43, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cpu.PyBridge.start_calc_with_guess", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_4start_calc_with_guess(((struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *)__pyx_v_self), __pyx_v_device, __pyx_v_data_r, __pyx_v_guess_r, __pyx_v_guess_i, __pyx_v_dims, __pyx_v_config); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_4start_calc_with_guess(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_guess_r, PyObject *__pyx_v_guess_i, PyObject *__pyx_v_dims, PyObject *__pyx_v_config) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - std::vector __pyx_t_2; - std::vector __pyx_t_3; - std::vector __pyx_t_4; - std::vector __pyx_t_5; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - std::string __pyx_t_9; - __Pyx_RefNannySetupContext("start_calc_with_guess", 0); - - /* "reccdi/src_py/cyth/bridge_cpu.pyx":44 - * del self.thisptr - * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): - * self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) # <<<<<<<<<<<<<< - * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): - * self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) - */ - __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_device); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 44, __pyx_L1_error) - __pyx_t_2 = __pyx_convert_vector_from_py_float(__pyx_v_data_r); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 44, __pyx_L1_error) - __pyx_t_3 = __pyx_convert_vector_from_py_float(__pyx_v_guess_r); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 44, __pyx_L1_error) - __pyx_t_4 = __pyx_convert_vector_from_py_float(__pyx_v_guess_i); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 44, __pyx_L1_error) - __pyx_t_5 = __pyx_convert_vector_from_py_int(__pyx_v_dims); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 44, __pyx_L1_error) - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_config, __pyx_n_s_encode); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 44, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = NULL; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { - __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); - if (likely(__pyx_t_8)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); - __Pyx_INCREF(__pyx_t_8); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_7, function); - } - } - __pyx_t_6 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 44, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_9 = __pyx_convert_string_from_py_std__in_string(__pyx_t_6); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 44, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_v_self->thisptr->StartCalcWithGuess(__pyx_t_1, __pyx_t_2, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_9); - - /* "reccdi/src_py/cyth/bridge_cpu.pyx":43 - * def __dealloc__(self): - * del self.thisptr - * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): # <<<<<<<<<<<<<< - * self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) - * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): - */ - - /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cpu.PyBridge.start_calc_with_guess", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "reccdi/src_py/cyth/bridge_cpu.pyx":45 - * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): - * self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) - * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): # <<<<<<<<<<<<<< - * self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) - * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_7start_calc_with_guess_support(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_7start_calc_with_guess_support(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_device = 0; - PyObject *__pyx_v_data_r = 0; - PyObject *__pyx_v_guess_r = 0; - PyObject *__pyx_v_guess_i = 0; - PyObject *__pyx_v_support = 0; - PyObject *__pyx_v_dims = 0; - PyObject *__pyx_v_config = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("start_calc_with_guess_support (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_device,&__pyx_n_s_data_r,&__pyx_n_s_guess_r,&__pyx_n_s_guess_i,&__pyx_n_s_support,&__pyx_n_s_dims,&__pyx_n_s_config,0}; - PyObject* values[7] = {0,0,0,0,0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); - CYTHON_FALLTHROUGH; - case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); - CYTHON_FALLTHROUGH; - case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = PyDict_Size(__pyx_kwds); - switch (pos_args) { - case 0: - if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_device)) != 0)) kw_args--; - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_data_r)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support", 1, 7, 7, 1); __PYX_ERR(1, 45, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_guess_r)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support", 1, 7, 7, 2); __PYX_ERR(1, 45, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_guess_i)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support", 1, 7, 7, 3); __PYX_ERR(1, 45, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 4: - if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_support)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support", 1, 7, 7, 4); __PYX_ERR(1, 45, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 5: - if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dims)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support", 1, 7, 7, 5); __PYX_ERR(1, 45, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 6: - if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_config)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support", 1, 7, 7, 6); __PYX_ERR(1, 45, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "start_calc_with_guess_support") < 0)) __PYX_ERR(1, 45, __pyx_L3_error) - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 7) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - values[5] = PyTuple_GET_ITEM(__pyx_args, 5); - values[6] = PyTuple_GET_ITEM(__pyx_args, 6); - } - __pyx_v_device = values[0]; - __pyx_v_data_r = values[1]; - __pyx_v_guess_r = values[2]; - __pyx_v_guess_i = values[3]; - __pyx_v_support = values[4]; - __pyx_v_dims = values[5]; - __pyx_v_config = values[6]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support", 1, 7, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 45, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cpu.PyBridge.start_calc_with_guess_support", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_6start_calc_with_guess_support(((struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *)__pyx_v_self), __pyx_v_device, __pyx_v_data_r, __pyx_v_guess_r, __pyx_v_guess_i, __pyx_v_support, __pyx_v_dims, __pyx_v_config); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_6start_calc_with_guess_support(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_guess_r, PyObject *__pyx_v_guess_i, PyObject *__pyx_v_support, PyObject *__pyx_v_dims, PyObject *__pyx_v_config) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - std::vector __pyx_t_2; - std::vector __pyx_t_3; - std::vector __pyx_t_4; - std::vector __pyx_t_5; - std::vector __pyx_t_6; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - std::string __pyx_t_10; - __Pyx_RefNannySetupContext("start_calc_with_guess_support", 0); - - /* "reccdi/src_py/cyth/bridge_cpu.pyx":46 - * self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) - * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): - * self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) # <<<<<<<<<<<<<< - * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): - * self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) - */ - __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_device); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 46, __pyx_L1_error) - __pyx_t_2 = __pyx_convert_vector_from_py_float(__pyx_v_data_r); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 46, __pyx_L1_error) - __pyx_t_3 = __pyx_convert_vector_from_py_float(__pyx_v_guess_r); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 46, __pyx_L1_error) - __pyx_t_4 = __pyx_convert_vector_from_py_float(__pyx_v_guess_i); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 46, __pyx_L1_error) - __pyx_t_5 = __pyx_convert_vector_from_py_int(__pyx_v_support); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 46, __pyx_L1_error) - __pyx_t_6 = __pyx_convert_vector_from_py_int(__pyx_v_dims); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 46, __pyx_L1_error) - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_config, __pyx_n_s_encode); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 46, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = NULL; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { - __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8); - if (likely(__pyx_t_9)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); - __Pyx_INCREF(__pyx_t_9); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_8, function); - } - } - __pyx_t_7 = (__pyx_t_9) ? __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_9) : __Pyx_PyObject_CallNoArg(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 46, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_10 = __pyx_convert_string_from_py_std__in_string(__pyx_t_7); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 46, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_v_self->thisptr->StartCalcWithGuessSupport(__pyx_t_1, __pyx_t_2, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6, __pyx_t_10); - - /* "reccdi/src_py/cyth/bridge_cpu.pyx":45 - * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): - * self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) - * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): # <<<<<<<<<<<<<< - * self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) - * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): - */ - - /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cpu.PyBridge.start_calc_with_guess_support", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "reccdi/src_py/cyth/bridge_cpu.pyx":47 - * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): - * self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) - * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): # <<<<<<<<<<<<<< - * self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) - * def start_calc(self, device, data_r, dims, config): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_9start_calc_with_guess_support_coh(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_9start_calc_with_guess_support_coh(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_device = 0; - PyObject *__pyx_v_data_r = 0; - PyObject *__pyx_v_guess_r = 0; - PyObject *__pyx_v_guess_i = 0; - PyObject *__pyx_v_support = 0; - PyObject *__pyx_v_dims = 0; - PyObject *__pyx_v_coh = 0; - PyObject *__pyx_v_coh_dims = 0; - PyObject *__pyx_v_config = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("start_calc_with_guess_support_coh (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_device,&__pyx_n_s_data_r,&__pyx_n_s_guess_r,&__pyx_n_s_guess_i,&__pyx_n_s_support,&__pyx_n_s_dims,&__pyx_n_s_coh,&__pyx_n_s_coh_dims,&__pyx_n_s_config,0}; - PyObject* values[9] = {0,0,0,0,0,0,0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8); - CYTHON_FALLTHROUGH; - case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7); - CYTHON_FALLTHROUGH; - case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); - CYTHON_FALLTHROUGH; - case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); - CYTHON_FALLTHROUGH; - case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = PyDict_Size(__pyx_kwds); - switch (pos_args) { - case 0: - if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_device)) != 0)) kw_args--; - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_data_r)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 1); __PYX_ERR(1, 47, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_guess_r)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 2); __PYX_ERR(1, 47, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_guess_i)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 3); __PYX_ERR(1, 47, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 4: - if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_support)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 4); __PYX_ERR(1, 47, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 5: - if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dims)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 5); __PYX_ERR(1, 47, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 6: - if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_coh)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 6); __PYX_ERR(1, 47, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 7: - if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_coh_dims)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 7); __PYX_ERR(1, 47, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 8: - if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_config)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 8); __PYX_ERR(1, 47, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "start_calc_with_guess_support_coh") < 0)) __PYX_ERR(1, 47, __pyx_L3_error) - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 9) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - values[5] = PyTuple_GET_ITEM(__pyx_args, 5); - values[6] = PyTuple_GET_ITEM(__pyx_args, 6); - values[7] = PyTuple_GET_ITEM(__pyx_args, 7); - values[8] = PyTuple_GET_ITEM(__pyx_args, 8); - } - __pyx_v_device = values[0]; - __pyx_v_data_r = values[1]; - __pyx_v_guess_r = values[2]; - __pyx_v_guess_i = values[3]; - __pyx_v_support = values[4]; - __pyx_v_dims = values[5]; - __pyx_v_coh = values[6]; - __pyx_v_coh_dims = values[7]; - __pyx_v_config = values[8]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 47, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cpu.PyBridge.start_calc_with_guess_support_coh", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_8start_calc_with_guess_support_coh(((struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *)__pyx_v_self), __pyx_v_device, __pyx_v_data_r, __pyx_v_guess_r, __pyx_v_guess_i, __pyx_v_support, __pyx_v_dims, __pyx_v_coh, __pyx_v_coh_dims, __pyx_v_config); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_8start_calc_with_guess_support_coh(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_guess_r, PyObject *__pyx_v_guess_i, PyObject *__pyx_v_support, PyObject *__pyx_v_dims, PyObject *__pyx_v_coh, PyObject *__pyx_v_coh_dims, PyObject *__pyx_v_config) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - std::vector __pyx_t_2; - std::vector __pyx_t_3; - std::vector __pyx_t_4; - std::vector __pyx_t_5; - std::vector __pyx_t_6; - std::vector __pyx_t_7; - std::vector __pyx_t_8; - PyObject *__pyx_t_9 = NULL; - PyObject *__pyx_t_10 = NULL; - PyObject *__pyx_t_11 = NULL; - std::string __pyx_t_12; - __Pyx_RefNannySetupContext("start_calc_with_guess_support_coh", 0); - - /* "reccdi/src_py/cyth/bridge_cpu.pyx":48 - * self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) - * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): - * self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) # <<<<<<<<<<<<<< - * def start_calc(self, device, data_r, dims, config): - * self.thisptr.StartCalc(device, data_r, dims, config.encode()) - */ - __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_device); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 48, __pyx_L1_error) - __pyx_t_2 = __pyx_convert_vector_from_py_float(__pyx_v_data_r); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 48, __pyx_L1_error) - __pyx_t_3 = __pyx_convert_vector_from_py_float(__pyx_v_guess_r); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 48, __pyx_L1_error) - __pyx_t_4 = __pyx_convert_vector_from_py_float(__pyx_v_guess_i); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 48, __pyx_L1_error) - __pyx_t_5 = __pyx_convert_vector_from_py_int(__pyx_v_support); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 48, __pyx_L1_error) - __pyx_t_6 = __pyx_convert_vector_from_py_int(__pyx_v_dims); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 48, __pyx_L1_error) - __pyx_t_7 = __pyx_convert_vector_from_py_float(__pyx_v_coh); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 48, __pyx_L1_error) - __pyx_t_8 = __pyx_convert_vector_from_py_int(__pyx_v_coh_dims); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 48, __pyx_L1_error) - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_config, __pyx_n_s_encode); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 48, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __pyx_t_11 = NULL; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) { - __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_10); - if (likely(__pyx_t_11)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); - __Pyx_INCREF(__pyx_t_11); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_10, function); - } - } - __pyx_t_9 = (__pyx_t_11) ? __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_11) : __Pyx_PyObject_CallNoArg(__pyx_t_10); - __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 48, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_12 = __pyx_convert_string_from_py_std__in_string(__pyx_t_9); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 48, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_v_self->thisptr->StartCalcWithGuessSupportCoh(__pyx_t_1, __pyx_t_2, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6, __pyx_t_7, __pyx_t_8, __pyx_t_12); - - /* "reccdi/src_py/cyth/bridge_cpu.pyx":47 - * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): - * self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) - * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): # <<<<<<<<<<<<<< - * self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) - * def start_calc(self, device, data_r, dims, config): - */ - - /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_9); - __Pyx_XDECREF(__pyx_t_10); - __Pyx_XDECREF(__pyx_t_11); - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cpu.PyBridge.start_calc_with_guess_support_coh", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "reccdi/src_py/cyth/bridge_cpu.pyx":49 - * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): - * self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) - * def start_calc(self, device, data_r, dims, config): # <<<<<<<<<<<<<< - * self.thisptr.StartCalc(device, data_r, dims, config.encode()) - * def get_image_r(self): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_11start_calc(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_11start_calc(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_device = 0; - PyObject *__pyx_v_data_r = 0; - PyObject *__pyx_v_dims = 0; - PyObject *__pyx_v_config = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("start_calc (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_device,&__pyx_n_s_data_r,&__pyx_n_s_dims,&__pyx_n_s_config,0}; - PyObject* values[4] = {0,0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = PyDict_Size(__pyx_kwds); - switch (pos_args) { - case 0: - if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_device)) != 0)) kw_args--; - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_data_r)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc", 1, 4, 4, 1); __PYX_ERR(1, 49, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dims)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc", 1, 4, 4, 2); __PYX_ERR(1, 49, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_config)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("start_calc", 1, 4, 4, 3); __PYX_ERR(1, 49, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "start_calc") < 0)) __PYX_ERR(1, 49, __pyx_L3_error) - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - } - __pyx_v_device = values[0]; - __pyx_v_data_r = values[1]; - __pyx_v_dims = values[2]; - __pyx_v_config = values[3]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("start_calc", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 49, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cpu.PyBridge.start_calc", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_10start_calc(((struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *)__pyx_v_self), __pyx_v_device, __pyx_v_data_r, __pyx_v_dims, __pyx_v_config); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_10start_calc(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_dims, PyObject *__pyx_v_config) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - std::vector __pyx_t_2; - std::vector __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - std::string __pyx_t_7; - __Pyx_RefNannySetupContext("start_calc", 0); - - /* "reccdi/src_py/cyth/bridge_cpu.pyx":50 - * self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) - * def start_calc(self, device, data_r, dims, config): - * self.thisptr.StartCalc(device, data_r, dims, config.encode()) # <<<<<<<<<<<<<< - * def get_image_r(self): - * return self.thisptr.GetImageR() - */ - __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_device); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 50, __pyx_L1_error) - __pyx_t_2 = __pyx_convert_vector_from_py_float(__pyx_v_data_r); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 50, __pyx_L1_error) - __pyx_t_3 = __pyx_convert_vector_from_py_int(__pyx_v_dims); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 50, __pyx_L1_error) - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_config, __pyx_n_s_encode); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 50, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = NULL; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { - __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); - if (likely(__pyx_t_6)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_5, function); - } - } - __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 50, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_7 = __pyx_convert_string_from_py_std__in_string(__pyx_t_4); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 50, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_v_self->thisptr->StartCalc(__pyx_t_1, __pyx_t_2, __pyx_t_3, __pyx_t_7); - - /* "reccdi/src_py/cyth/bridge_cpu.pyx":49 - * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): - * self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) - * def start_calc(self, device, data_r, dims, config): # <<<<<<<<<<<<<< - * self.thisptr.StartCalc(device, data_r, dims, config.encode()) - * def get_image_r(self): - */ - - /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cpu.PyBridge.start_calc", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "reccdi/src_py/cyth/bridge_cpu.pyx":51 - * def start_calc(self, device, data_r, dims, config): - * self.thisptr.StartCalc(device, data_r, dims, config.encode()) - * def get_image_r(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetImageR() - * def get_image_i(self): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_13get_image_r(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_13get_image_r(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("get_image_r (wrapper)", 0); - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_12get_image_r(((struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_12get_image_r(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannySetupContext("get_image_r", 0); - - /* "reccdi/src_py/cyth/bridge_cpu.pyx":52 - * self.thisptr.StartCalc(device, data_r, dims, config.encode()) - * def get_image_r(self): - * return self.thisptr.GetImageR() # <<<<<<<<<<<<<< - * def get_image_i(self): - * return self.thisptr.GetImageI() - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_self->thisptr->GetImageR()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 52, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "reccdi/src_py/cyth/bridge_cpu.pyx":51 - * def start_calc(self, device, data_r, dims, config): - * self.thisptr.StartCalc(device, data_r, dims, config.encode()) - * def get_image_r(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetImageR() - * def get_image_i(self): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cpu.PyBridge.get_image_r", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "reccdi/src_py/cyth/bridge_cpu.pyx":53 - * def get_image_r(self): - * return self.thisptr.GetImageR() - * def get_image_i(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetImageI() - * def get_errors(self): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_15get_image_i(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_15get_image_i(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("get_image_i (wrapper)", 0); - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_14get_image_i(((struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_14get_image_i(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannySetupContext("get_image_i", 0); - - /* "reccdi/src_py/cyth/bridge_cpu.pyx":54 - * return self.thisptr.GetImageR() - * def get_image_i(self): - * return self.thisptr.GetImageI() # <<<<<<<<<<<<<< - * def get_errors(self): - * return self.thisptr.GetErrors() - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_self->thisptr->GetImageI()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 54, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "reccdi/src_py/cyth/bridge_cpu.pyx":53 - * def get_image_r(self): - * return self.thisptr.GetImageR() - * def get_image_i(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetImageI() - * def get_errors(self): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cpu.PyBridge.get_image_i", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "reccdi/src_py/cyth/bridge_cpu.pyx":55 - * def get_image_i(self): - * return self.thisptr.GetImageI() - * def get_errors(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetErrors() - * def get_support(self): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_17get_errors(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_17get_errors(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("get_errors (wrapper)", 0); - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_16get_errors(((struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_16get_errors(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannySetupContext("get_errors", 0); - - /* "reccdi/src_py/cyth/bridge_cpu.pyx":56 - * return self.thisptr.GetImageI() - * def get_errors(self): - * return self.thisptr.GetErrors() # <<<<<<<<<<<<<< - * def get_support(self): - * return self.thisptr.GetSupportV() - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_self->thisptr->GetErrors()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 56, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "reccdi/src_py/cyth/bridge_cpu.pyx":55 - * def get_image_i(self): - * return self.thisptr.GetImageI() - * def get_errors(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetErrors() - * def get_support(self): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cpu.PyBridge.get_errors", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "reccdi/src_py/cyth/bridge_cpu.pyx":57 - * def get_errors(self): - * return self.thisptr.GetErrors() - * def get_support(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetSupportV() - * def get_coherence(self): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_19get_support(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_19get_support(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("get_support (wrapper)", 0); - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_18get_support(((struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_18get_support(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannySetupContext("get_support", 0); - - /* "reccdi/src_py/cyth/bridge_cpu.pyx":58 - * return self.thisptr.GetErrors() - * def get_support(self): - * return self.thisptr.GetSupportV() # <<<<<<<<<<<<<< - * def get_coherence(self): - * return self.thisptr.GetCoherenceV() - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_convert_vector_to_py_float(__pyx_v_self->thisptr->GetSupportV()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 58, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "reccdi/src_py/cyth/bridge_cpu.pyx":57 - * def get_errors(self): - * return self.thisptr.GetErrors() - * def get_support(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetSupportV() - * def get_coherence(self): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cpu.PyBridge.get_support", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "reccdi/src_py/cyth/bridge_cpu.pyx":59 - * def get_support(self): - * return self.thisptr.GetSupportV() - * def get_coherence(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetCoherenceV() - * def get_reciprocal_r(self): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_21get_coherence(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_21get_coherence(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("get_coherence (wrapper)", 0); - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_20get_coherence(((struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_20get_coherence(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannySetupContext("get_coherence", 0); - - /* "reccdi/src_py/cyth/bridge_cpu.pyx":60 - * return self.thisptr.GetSupportV() - * def get_coherence(self): - * return self.thisptr.GetCoherenceV() # <<<<<<<<<<<<<< - * def get_reciprocal_r(self): - * return self.thisptr.GetReciprocalR() - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_self->thisptr->GetCoherenceV()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 60, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "reccdi/src_py/cyth/bridge_cpu.pyx":59 - * def get_support(self): - * return self.thisptr.GetSupportV() - * def get_coherence(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetCoherenceV() - * def get_reciprocal_r(self): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cpu.PyBridge.get_coherence", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "reccdi/src_py/cyth/bridge_cpu.pyx":61 - * def get_coherence(self): - * return self.thisptr.GetCoherenceV() - * def get_reciprocal_r(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetReciprocalR() - * def get_reciprocal_i(self): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_23get_reciprocal_r(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_23get_reciprocal_r(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("get_reciprocal_r (wrapper)", 0); - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_22get_reciprocal_r(((struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_22get_reciprocal_r(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannySetupContext("get_reciprocal_r", 0); - - /* "reccdi/src_py/cyth/bridge_cpu.pyx":62 - * return self.thisptr.GetCoherenceV() - * def get_reciprocal_r(self): - * return self.thisptr.GetReciprocalR() # <<<<<<<<<<<<<< - * def get_reciprocal_i(self): - * return self.thisptr.GetReciprocalI() - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_self->thisptr->GetReciprocalR()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 62, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "reccdi/src_py/cyth/bridge_cpu.pyx":61 - * def get_coherence(self): - * return self.thisptr.GetCoherenceV() - * def get_reciprocal_r(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetReciprocalR() - * def get_reciprocal_i(self): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cpu.PyBridge.get_reciprocal_r", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "reccdi/src_py/cyth/bridge_cpu.pyx":63 - * def get_reciprocal_r(self): - * return self.thisptr.GetReciprocalR() - * def get_reciprocal_i(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetReciprocalI() - * def get_flow(self): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_25get_reciprocal_i(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_25get_reciprocal_i(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("get_reciprocal_i (wrapper)", 0); - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_24get_reciprocal_i(((struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_24get_reciprocal_i(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannySetupContext("get_reciprocal_i", 0); - - /* "reccdi/src_py/cyth/bridge_cpu.pyx":64 - * return self.thisptr.GetReciprocalR() - * def get_reciprocal_i(self): - * return self.thisptr.GetReciprocalI() # <<<<<<<<<<<<<< - * def get_flow(self): - * return self.thisptr.GetFlowV() - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_self->thisptr->GetReciprocalI()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 64, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "reccdi/src_py/cyth/bridge_cpu.pyx":63 - * def get_reciprocal_r(self): - * return self.thisptr.GetReciprocalR() - * def get_reciprocal_i(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetReciprocalI() - * def get_flow(self): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cpu.PyBridge.get_reciprocal_i", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "reccdi/src_py/cyth/bridge_cpu.pyx":65 - * def get_reciprocal_i(self): - * return self.thisptr.GetReciprocalI() - * def get_flow(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetFlowV() - * def get_iter_flow(self): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_27get_flow(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_27get_flow(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("get_flow (wrapper)", 0); - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_26get_flow(((struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_26get_flow(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannySetupContext("get_flow", 0); - - /* "reccdi/src_py/cyth/bridge_cpu.pyx":66 - * return self.thisptr.GetReciprocalI() - * def get_flow(self): - * return self.thisptr.GetFlowV() # <<<<<<<<<<<<<< - * def get_iter_flow(self): - * return self.thisptr.GetIterFlowV() - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_convert_vector_to_py_int(__pyx_v_self->thisptr->GetFlowV()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 66, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "reccdi/src_py/cyth/bridge_cpu.pyx":65 - * def get_reciprocal_i(self): - * return self.thisptr.GetReciprocalI() - * def get_flow(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetFlowV() - * def get_iter_flow(self): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cpu.PyBridge.get_flow", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "reccdi/src_py/cyth/bridge_cpu.pyx":67 - * def get_flow(self): - * return self.thisptr.GetFlowV() - * def get_iter_flow(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetIterFlowV() - * def cleanup(self): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_29get_iter_flow(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_29get_iter_flow(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("get_iter_flow (wrapper)", 0); - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_28get_iter_flow(((struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_28get_iter_flow(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannySetupContext("get_iter_flow", 0); - - /* "reccdi/src_py/cyth/bridge_cpu.pyx":68 - * return self.thisptr.GetFlowV() - * def get_iter_flow(self): - * return self.thisptr.GetIterFlowV() # <<<<<<<<<<<<<< - * def cleanup(self): - * self.thisptr.Cleanup() - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_convert_vector_to_py_int(__pyx_v_self->thisptr->GetIterFlowV()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 68, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "reccdi/src_py/cyth/bridge_cpu.pyx":67 - * def get_flow(self): - * return self.thisptr.GetFlowV() - * def get_iter_flow(self): # <<<<<<<<<<<<<< - * return self.thisptr.GetIterFlowV() - * def cleanup(self): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cpu.PyBridge.get_iter_flow", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "reccdi/src_py/cyth/bridge_cpu.pyx":69 - * def get_iter_flow(self): - * return self.thisptr.GetIterFlowV() - * def cleanup(self): # <<<<<<<<<<<<<< - * self.thisptr.Cleanup() - * - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_31cleanup(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_31cleanup(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("cleanup (wrapper)", 0); - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_30cleanup(((struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_30cleanup(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("cleanup", 0); - - /* "reccdi/src_py/cyth/bridge_cpu.pyx":70 - * return self.thisptr.GetIterFlowV() - * def cleanup(self): - * self.thisptr.Cleanup() # <<<<<<<<<<<<<< - * - * - */ - __pyx_v_self->thisptr->Cleanup(); - - /* "reccdi/src_py/cyth/bridge_cpu.pyx":69 - * def get_iter_flow(self): - * return self.thisptr.GetIterFlowV() - * def cleanup(self): # <<<<<<<<<<<<<< - * self.thisptr.Cleanup() - * - */ - - /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError("no default __reduce__ due to non-trivial __cinit__") - * def __setstate_cython__(self, __pyx_state): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_33__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_33__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_32__reduce_cython__(((struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_32__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannySetupContext("__reduce_cython__", 0); - - /* "(tree fragment)":2 - * def __reduce_cython__(self): - * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< - * def __setstate_cython__(self, __pyx_state): - * raise TypeError("no default __reduce__ due to non-trivial __cinit__") - */ - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple_, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_Raise(__pyx_t_1, 0, 0, 0); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 2, __pyx_L1_error) - - /* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError("no default __reduce__ due to non-trivial __cinit__") - * def __setstate_cython__(self, __pyx_state): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cpu.PyBridge.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError("no default __reduce__ due to non-trivial __cinit__") - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError("no default __reduce__ due to non-trivial __cinit__") - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_35__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ -static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_35__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); - __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_34__setstate_cython__(((struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_34__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannySetupContext("__setstate_cython__", 0); - - /* "(tree fragment)":4 - * raise TypeError("no default __reduce__ due to non-trivial __cinit__") - * def __setstate_cython__(self, __pyx_state): - * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< - */ - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_Raise(__pyx_t_1, 0, 0, 0); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 4, __pyx_L1_error) - - /* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError("no default __reduce__ due to non-trivial __cinit__") - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError("no default __reduce__ due to non-trivial __cinit__") - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_cpu.PyBridge.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "vector.from_py":45 - * - * @cname("__pyx_convert_vector_from_py_float") - * cdef vector[X] __pyx_convert_vector_from_py_float(object o) except *: # <<<<<<<<<<<<<< - * cdef vector[X] v - * for item in o: - */ - -static std::vector __pyx_convert_vector_from_py_float(PyObject *__pyx_v_o) { - std::vector __pyx_v_v; - PyObject *__pyx_v_item = NULL; - std::vector __pyx_r; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - Py_ssize_t __pyx_t_2; - PyObject *(*__pyx_t_3)(PyObject *); - PyObject *__pyx_t_4 = NULL; - float __pyx_t_5; - __Pyx_RefNannySetupContext("__pyx_convert_vector_from_py_float", 0); - - /* "vector.from_py":47 - * cdef vector[X] __pyx_convert_vector_from_py_float(object o) except *: - * cdef vector[X] v - * for item in o: # <<<<<<<<<<<<<< - * v.push_back(item) - * return v - */ - if (likely(PyList_CheckExact(__pyx_v_o)) || PyTuple_CheckExact(__pyx_v_o)) { - __pyx_t_1 = __pyx_v_o; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; - __pyx_t_3 = NULL; - } else { - __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_o); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 47, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 47, __pyx_L1_error) - } - for (;;) { - if (likely(!__pyx_t_3)) { - if (likely(PyList_CheckExact(__pyx_t_1))) { - if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 47, __pyx_L1_error) - #else - __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 47, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - #endif - } else { - if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 47, __pyx_L1_error) - #else - __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 47, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - #endif - } - } else { - __pyx_t_4 = __pyx_t_3(__pyx_t_1); - if (unlikely(!__pyx_t_4)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 47, __pyx_L1_error) - } - break; - } - __Pyx_GOTREF(__pyx_t_4); - } - __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_4); - __pyx_t_4 = 0; - - /* "vector.from_py":48 - * cdef vector[X] v - * for item in o: - * v.push_back(item) # <<<<<<<<<<<<<< - * return v - * - */ - __pyx_t_5 = __pyx_PyFloat_AsFloat(__pyx_v_item); if (unlikely((__pyx_t_5 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 48, __pyx_L1_error) - __pyx_v_v.push_back(((float)__pyx_t_5)); - - /* "vector.from_py":47 - * cdef vector[X] __pyx_convert_vector_from_py_float(object o) except *: - * cdef vector[X] v - * for item in o: # <<<<<<<<<<<<<< - * v.push_back(item) - * return v - */ - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "vector.from_py":49 - * for item in o: - * v.push_back(item) - * return v # <<<<<<<<<<<<<< - * - * - */ - __pyx_r = __pyx_v_v; - goto __pyx_L0; - - /* "vector.from_py":45 - * - * @cname("__pyx_convert_vector_from_py_float") - * cdef vector[X] __pyx_convert_vector_from_py_float(object o) except *: # <<<<<<<<<<<<<< - * cdef vector[X] v - * for item in o: - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("vector.from_py.__pyx_convert_vector_from_py_float", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_pretend_to_initialize(&__pyx_r); - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_item); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static std::vector __pyx_convert_vector_from_py_int(PyObject *__pyx_v_o) { - std::vector __pyx_v_v; - PyObject *__pyx_v_item = NULL; - std::vector __pyx_r; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - Py_ssize_t __pyx_t_2; - PyObject *(*__pyx_t_3)(PyObject *); - PyObject *__pyx_t_4 = NULL; - int __pyx_t_5; - __Pyx_RefNannySetupContext("__pyx_convert_vector_from_py_int", 0); - - /* "vector.from_py":47 - * cdef vector[X] __pyx_convert_vector_from_py_int(object o) except *: - * cdef vector[X] v - * for item in o: # <<<<<<<<<<<<<< - * v.push_back(item) - * return v - */ - if (likely(PyList_CheckExact(__pyx_v_o)) || PyTuple_CheckExact(__pyx_v_o)) { - __pyx_t_1 = __pyx_v_o; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; - __pyx_t_3 = NULL; - } else { - __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_o); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 47, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 47, __pyx_L1_error) - } - for (;;) { - if (likely(!__pyx_t_3)) { - if (likely(PyList_CheckExact(__pyx_t_1))) { - if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 47, __pyx_L1_error) - #else - __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 47, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - #endif - } else { - if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 47, __pyx_L1_error) - #else - __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 47, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - #endif - } - } else { - __pyx_t_4 = __pyx_t_3(__pyx_t_1); - if (unlikely(!__pyx_t_4)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 47, __pyx_L1_error) - } - break; - } - __Pyx_GOTREF(__pyx_t_4); - } - __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_4); - __pyx_t_4 = 0; - - /* "vector.from_py":48 - * cdef vector[X] v - * for item in o: - * v.push_back(item) # <<<<<<<<<<<<<< - * return v - * - */ - __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_v_item); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 48, __pyx_L1_error) - __pyx_v_v.push_back(((int)__pyx_t_5)); - - /* "vector.from_py":47 - * cdef vector[X] __pyx_convert_vector_from_py_int(object o) except *: - * cdef vector[X] v - * for item in o: # <<<<<<<<<<<<<< - * v.push_back(item) - * return v - */ - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "vector.from_py":49 - * for item in o: - * v.push_back(item) - * return v # <<<<<<<<<<<<<< - * - * - */ - __pyx_r = __pyx_v_v; - goto __pyx_L0; - - /* "vector.from_py":45 - * - * @cname("__pyx_convert_vector_from_py_int") - * cdef vector[X] __pyx_convert_vector_from_py_int(object o) except *: # <<<<<<<<<<<<<< - * cdef vector[X] v - * for item in o: - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("vector.from_py.__pyx_convert_vector_from_py_int", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_pretend_to_initialize(&__pyx_r); - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_item); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "string.from_py":13 - * - * @cname("__pyx_convert_string_from_py_std__in_string") - * cdef string __pyx_convert_string_from_py_std__in_string(object o) except *: # <<<<<<<<<<<<<< - * cdef Py_ssize_t length - * cdef const char* data = __Pyx_PyObject_AsStringAndSize(o, &length) - */ - -static std::string __pyx_convert_string_from_py_std__in_string(PyObject *__pyx_v_o) { - Py_ssize_t __pyx_v_length; - char const *__pyx_v_data; - std::string __pyx_r; - __Pyx_RefNannyDeclarations - char const *__pyx_t_1; - __Pyx_RefNannySetupContext("__pyx_convert_string_from_py_std__in_string", 0); - - /* "string.from_py":15 - * cdef string __pyx_convert_string_from_py_std__in_string(object o) except *: - * cdef Py_ssize_t length - * cdef const char* data = __Pyx_PyObject_AsStringAndSize(o, &length) # <<<<<<<<<<<<<< - * return string(data, length) - * - */ - __pyx_t_1 = __Pyx_PyObject_AsStringAndSize(__pyx_v_o, (&__pyx_v_length)); if (unlikely(__pyx_t_1 == ((char const *)NULL))) __PYX_ERR(0, 15, __pyx_L1_error) - __pyx_v_data = __pyx_t_1; - - /* "string.from_py":16 - * cdef Py_ssize_t length - * cdef const char* data = __Pyx_PyObject_AsStringAndSize(o, &length) - * return string(data, length) # <<<<<<<<<<<<<< - * - * - */ - __pyx_r = std::string(__pyx_v_data, __pyx_v_length); - goto __pyx_L0; - - /* "string.from_py":13 - * - * @cname("__pyx_convert_string_from_py_std__in_string") - * cdef string __pyx_convert_string_from_py_std__in_string(object o) except *: # <<<<<<<<<<<<<< - * cdef Py_ssize_t length - * cdef const char* data = __Pyx_PyObject_AsStringAndSize(o, &length) - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_AddTraceback("string.from_py.__pyx_convert_string_from_py_std__in_string", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_pretend_to_initialize(&__pyx_r); - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "vector.to_py":60 - * - * @cname("__pyx_convert_vector_to_py_double") - * cdef object __pyx_convert_vector_to_py_double(vector[X]& v): # <<<<<<<<<<<<<< - * return [v[i] for i in range(v.size())] - * - */ - -static PyObject *__pyx_convert_vector_to_py_double(const std::vector &__pyx_v_v) { - size_t __pyx_v_i; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - size_t __pyx_t_2; - size_t __pyx_t_3; - size_t __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - __Pyx_RefNannySetupContext("__pyx_convert_vector_to_py_double", 0); - - /* "vector.to_py":61 - * @cname("__pyx_convert_vector_to_py_double") - * cdef object __pyx_convert_vector_to_py_double(vector[X]& v): - * return [v[i] for i in range(v.size())] # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __pyx_v_v.size(); - __pyx_t_3 = __pyx_t_2; - for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { - __pyx_v_i = __pyx_t_4; - __pyx_t_5 = PyFloat_FromDouble((__pyx_v_v[__pyx_v_i])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - } - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "vector.to_py":60 - * - * @cname("__pyx_convert_vector_to_py_double") - * cdef object __pyx_convert_vector_to_py_double(vector[X]& v): # <<<<<<<<<<<<<< - * return [v[i] for i in range(v.size())] - * - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("vector.to_py.__pyx_convert_vector_to_py_double", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_convert_vector_to_py_float(const std::vector &__pyx_v_v) { - size_t __pyx_v_i; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - size_t __pyx_t_2; - size_t __pyx_t_3; - size_t __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - __Pyx_RefNannySetupContext("__pyx_convert_vector_to_py_float", 0); - - /* "vector.to_py":61 - * @cname("__pyx_convert_vector_to_py_float") - * cdef object __pyx_convert_vector_to_py_float(vector[X]& v): - * return [v[i] for i in range(v.size())] # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __pyx_v_v.size(); - __pyx_t_3 = __pyx_t_2; - for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { - __pyx_v_i = __pyx_t_4; - __pyx_t_5 = PyFloat_FromDouble((__pyx_v_v[__pyx_v_i])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - } - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "vector.to_py":60 - * - * @cname("__pyx_convert_vector_to_py_float") - * cdef object __pyx_convert_vector_to_py_float(vector[X]& v): # <<<<<<<<<<<<<< - * return [v[i] for i in range(v.size())] - * - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("vector.to_py.__pyx_convert_vector_to_py_float", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_convert_vector_to_py_int(const std::vector &__pyx_v_v) { - size_t __pyx_v_i; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - size_t __pyx_t_2; - size_t __pyx_t_3; - size_t __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - __Pyx_RefNannySetupContext("__pyx_convert_vector_to_py_int", 0); - - /* "vector.to_py":61 - * @cname("__pyx_convert_vector_to_py_int") - * cdef object __pyx_convert_vector_to_py_int(vector[X]& v): - * return [v[i] for i in range(v.size())] # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __pyx_v_v.size(); - __pyx_t_3 = __pyx_t_2; - for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { - __pyx_v_i = __pyx_t_4; - __pyx_t_5 = __Pyx_PyInt_From_int((__pyx_v_v[__pyx_v_i])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - } - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "vector.to_py":60 - * - * @cname("__pyx_convert_vector_to_py_int") - * cdef object __pyx_convert_vector_to_py_int(vector[X]& v): # <<<<<<<<<<<<<< - * return [v[i] for i in range(v.size())] - * - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("vector.to_py.__pyx_convert_vector_to_py_int", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_tp_new_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { - PyObject *o; - if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { - o = (*t->tp_alloc)(t, 0); - } else { - o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); - } - if (unlikely(!o)) return 0; - if (unlikely(__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad; - return o; - bad: - Py_DECREF(o); o = 0; - return NULL; -} - -static void __pyx_tp_dealloc_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge(PyObject *o) { - #if CYTHON_USE_TP_FINALIZE - if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) { - if (PyObject_CallFinalizerFromDealloc(o)) return; - } - #endif - { - PyObject *etype, *eval, *etb; - PyErr_Fetch(&etype, &eval, &etb); - ++Py_REFCNT(o); - __pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_3__dealloc__(o); - --Py_REFCNT(o); - PyErr_Restore(etype, eval, etb); - } - (*Py_TYPE(o)->tp_free)(o); -} - -static PyMethodDef __pyx_methods_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge[] = { - {"start_calc_with_guess", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_5start_calc_with_guess, METH_VARARGS|METH_KEYWORDS, 0}, - {"start_calc_with_guess_support", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_7start_calc_with_guess_support, METH_VARARGS|METH_KEYWORDS, 0}, - {"start_calc_with_guess_support_coh", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_9start_calc_with_guess_support_coh, METH_VARARGS|METH_KEYWORDS, 0}, - {"start_calc", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_11start_calc, METH_VARARGS|METH_KEYWORDS, 0}, - {"get_image_r", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_13get_image_r, METH_NOARGS, 0}, - {"get_image_i", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_15get_image_i, METH_NOARGS, 0}, - {"get_errors", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_17get_errors, METH_NOARGS, 0}, - {"get_support", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_19get_support, METH_NOARGS, 0}, - {"get_coherence", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_21get_coherence, METH_NOARGS, 0}, - {"get_reciprocal_r", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_23get_reciprocal_r, METH_NOARGS, 0}, - {"get_reciprocal_i", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_25get_reciprocal_i, METH_NOARGS, 0}, - {"get_flow", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_27get_flow, METH_NOARGS, 0}, - {"get_iter_flow", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_29get_iter_flow, METH_NOARGS, 0}, - {"cleanup", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_31cleanup, METH_NOARGS, 0}, - {"__reduce_cython__", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_33__reduce_cython__, METH_NOARGS, 0}, - {"__setstate_cython__", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_10bridge_cpu_8PyBridge_35__setstate_cython__, METH_O, 0}, - {0, 0, 0, 0} -}; - -static PyTypeObject __pyx_type_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge = { - PyVarObject_HEAD_INIT(0, 0) - "reccdi.src_py.cyth.bridge_cpu.PyBridge", /*tp_name*/ - sizeof(struct __pyx_obj_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge, /*tp_dealloc*/ - 0, /*tp_print*/ - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 - 0, /*tp_compare*/ - #endif - #if PY_MAJOR_VERSION >= 3 - 0, /*tp_as_async*/ - #endif - 0, /*tp_repr*/ - 0, /*tp_as_number*/ - 0, /*tp_as_sequence*/ - 0, /*tp_as_mapping*/ - 0, /*tp_hash*/ - 0, /*tp_call*/ - 0, /*tp_str*/ - 0, /*tp_getattro*/ - 0, /*tp_setattro*/ - 0, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/ - 0, /*tp_doc*/ - 0, /*tp_traverse*/ - 0, /*tp_clear*/ - 0, /*tp_richcompare*/ - 0, /*tp_weaklistoffset*/ - 0, /*tp_iter*/ - 0, /*tp_iternext*/ - __pyx_methods_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge, /*tp_methods*/ - 0, /*tp_members*/ - 0, /*tp_getset*/ - 0, /*tp_base*/ - 0, /*tp_dict*/ - 0, /*tp_descr_get*/ - 0, /*tp_descr_set*/ - 0, /*tp_dictoffset*/ - 0, /*tp_init*/ - 0, /*tp_alloc*/ - __pyx_tp_new_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge, /*tp_new*/ - 0, /*tp_free*/ - 0, /*tp_is_gc*/ - 0, /*tp_bases*/ - 0, /*tp_mro*/ - 0, /*tp_cache*/ - 0, /*tp_subclasses*/ - 0, /*tp_weaklist*/ - 0, /*tp_del*/ - 0, /*tp_version_tag*/ - #if PY_VERSION_HEX >= 0x030400a1 - 0, /*tp_finalize*/ - #endif - #if PY_VERSION_HEX >= 0x030800b1 - 0, /*tp_vectorcall*/ - #endif -}; - -static PyMethodDef __pyx_methods[] = { - {0, 0, 0, 0} -}; - -#if PY_MAJOR_VERSION >= 3 -#if CYTHON_PEP489_MULTI_PHASE_INIT -static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/ -static int __pyx_pymod_exec_bridge_cpu(PyObject* module); /*proto*/ -static PyModuleDef_Slot __pyx_moduledef_slots[] = { - {Py_mod_create, (void*)__pyx_pymod_create}, - {Py_mod_exec, (void*)__pyx_pymod_exec_bridge_cpu}, - {0, NULL} -}; -#endif - -static struct PyModuleDef __pyx_moduledef = { - PyModuleDef_HEAD_INIT, - "bridge_cpu", - 0, /* m_doc */ - #if CYTHON_PEP489_MULTI_PHASE_INIT - 0, /* m_size */ - #else - -1, /* m_size */ - #endif - __pyx_methods /* m_methods */, - #if CYTHON_PEP489_MULTI_PHASE_INIT - __pyx_moduledef_slots, /* m_slots */ - #else - NULL, /* m_reload */ - #endif - NULL, /* m_traverse */ - NULL, /* m_clear */ - NULL /* m_free */ -}; -#endif -#ifndef CYTHON_SMALL_CODE -#if defined(__clang__) - #define CYTHON_SMALL_CODE -#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) - #define CYTHON_SMALL_CODE __attribute__((cold)) -#else - #define CYTHON_SMALL_CODE -#endif -#endif - -static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_PyBridge, __pyx_k_PyBridge, sizeof(__pyx_k_PyBridge), 0, 0, 1, 1}, - {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1}, - {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, - {&__pyx_n_s_coh, __pyx_k_coh, sizeof(__pyx_k_coh), 0, 0, 1, 1}, - {&__pyx_n_s_coh_dims, __pyx_k_coh_dims, sizeof(__pyx_k_coh_dims), 0, 0, 1, 1}, - {&__pyx_n_s_config, __pyx_k_config, sizeof(__pyx_k_config), 0, 0, 1, 1}, - {&__pyx_n_s_data_r, __pyx_k_data_r, sizeof(__pyx_k_data_r), 0, 0, 1, 1}, - {&__pyx_n_s_device, __pyx_k_device, sizeof(__pyx_k_device), 0, 0, 1, 1}, - {&__pyx_n_s_dims, __pyx_k_dims, sizeof(__pyx_k_dims), 0, 0, 1, 1}, - {&__pyx_n_s_encode, __pyx_k_encode, sizeof(__pyx_k_encode), 0, 0, 1, 1}, - {&__pyx_n_s_getstate, __pyx_k_getstate, sizeof(__pyx_k_getstate), 0, 0, 1, 1}, - {&__pyx_n_s_guess_i, __pyx_k_guess_i, sizeof(__pyx_k_guess_i), 0, 0, 1, 1}, - {&__pyx_n_s_guess_r, __pyx_k_guess_r, sizeof(__pyx_k_guess_r), 0, 0, 1, 1}, - {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1}, - {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, - {&__pyx_kp_s_no_default___reduce___due_to_non, __pyx_k_no_default___reduce___due_to_non, sizeof(__pyx_k_no_default___reduce___due_to_non), 0, 0, 1, 0}, - {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, - {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1}, - {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1}, - {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1}, - {&__pyx_n_s_setstate, __pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 0, 1, 1}, - {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1}, - {&__pyx_n_s_support, __pyx_k_support, sizeof(__pyx_k_support), 0, 0, 1, 1}, - {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, - {0, 0, 0, 0, 0, 0, 0} -}; -static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { - __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(0, 2, __pyx_L1_error) - __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 61, __pyx_L1_error) - return 0; - __pyx_L1_error:; - return -1; -} - -static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); - - /* "(tree fragment)":2 - * def __reduce_cython__(self): - * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< - * def __setstate_cython__(self, __pyx_state): - * raise TypeError("no default __reduce__ due to non-trivial __cinit__") - */ - __pyx_tuple_ = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple_)) __PYX_ERR(0, 2, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple_); - __Pyx_GIVEREF(__pyx_tuple_); - - /* "(tree fragment)":4 - * raise TypeError("no default __reduce__ due to non-trivial __cinit__") - * def __setstate_cython__(self, __pyx_state): - * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< - */ - __pyx_tuple__2 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(0, 4, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__2); - __Pyx_GIVEREF(__pyx_tuple__2); - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; - __Pyx_RefNannyFinishContext(); - return -1; -} - -static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) { - if (__Pyx_InitStrings(__pyx_string_tab) < 0) __PYX_ERR(1, 1, __pyx_L1_error); - return 0; - __pyx_L1_error:; - return -1; -} - -static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(void); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(void); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(void); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(void); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(void); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(void); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(void); /*proto*/ - -static int __Pyx_modinit_global_init_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0); - /*--- Global init code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} - -static int __Pyx_modinit_variable_export_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0); - /*--- Variable export code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} - -static int __Pyx_modinit_function_export_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0); - /*--- Function export code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} - -static int __Pyx_modinit_type_init_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); - /*--- Type init code ---*/ - if (PyType_Ready(&__pyx_type_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge) < 0) __PYX_ERR(1, 37, __pyx_L1_error) - #if PY_VERSION_HEX < 0x030800B1 - __pyx_type_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge.tp_print = 0; - #endif - if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge.tp_dictoffset && __pyx_type_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge.tp_getattro == PyObject_GenericGetAttr)) { - __pyx_type_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge.tp_getattro = __Pyx_PyObject_GenericGetAttr; - } - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyBridge, (PyObject *)&__pyx_type_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge) < 0) __PYX_ERR(1, 37, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge) < 0) __PYX_ERR(1, 37, __pyx_L1_error) - __pyx_ptype_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge = &__pyx_type_6reccdi_6src_py_4cyth_10bridge_cpu_PyBridge; - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; - __Pyx_RefNannyFinishContext(); - return -1; -} - -static int __Pyx_modinit_type_import_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); - /*--- Type import code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} - -static int __Pyx_modinit_variable_import_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0); - /*--- Variable import code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} - -static int __Pyx_modinit_function_import_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0); - /*--- Function import code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} - - -#if PY_MAJOR_VERSION < 3 -#ifdef CYTHON_NO_PYINIT_EXPORT -#define __Pyx_PyMODINIT_FUNC void -#else -#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -#endif -#else -#ifdef CYTHON_NO_PYINIT_EXPORT -#define __Pyx_PyMODINIT_FUNC PyObject * -#else -#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -#endif -#endif - - -#if PY_MAJOR_VERSION < 3 -__Pyx_PyMODINIT_FUNC initbridge_cpu(void) CYTHON_SMALL_CODE; /*proto*/ -__Pyx_PyMODINIT_FUNC initbridge_cpu(void) -#else -__Pyx_PyMODINIT_FUNC PyInit_bridge_cpu(void) CYTHON_SMALL_CODE; /*proto*/ -__Pyx_PyMODINIT_FUNC PyInit_bridge_cpu(void) -#if CYTHON_PEP489_MULTI_PHASE_INIT -{ - return PyModuleDef_Init(&__pyx_moduledef); -} -static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) { - #if PY_VERSION_HEX >= 0x030700A1 - static PY_INT64_T main_interpreter_id = -1; - PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp); - if (main_interpreter_id == -1) { - main_interpreter_id = current_id; - return (unlikely(current_id == -1)) ? -1 : 0; - } else if (unlikely(main_interpreter_id != current_id)) - #else - static PyInterpreterState *main_interpreter = NULL; - PyInterpreterState *current_interpreter = PyThreadState_Get()->interp; - if (!main_interpreter) { - main_interpreter = current_interpreter; - } else if (unlikely(main_interpreter != current_interpreter)) - #endif - { - PyErr_SetString( - PyExc_ImportError, - "Interpreter change detected - this module can only be loaded into one interpreter per process."); - return -1; - } - return 0; -} -static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name, int allow_none) { - PyObject *value = PyObject_GetAttrString(spec, from_name); - int result = 0; - if (likely(value)) { - if (allow_none || value != Py_None) { - result = PyDict_SetItemString(moddict, to_name, value); - } - Py_DECREF(value); - } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) { - PyErr_Clear(); - } else { - result = -1; - } - return result; -} -static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, CYTHON_UNUSED PyModuleDef *def) { - PyObject *module = NULL, *moddict, *modname; - if (__Pyx_check_single_interpreter()) - return NULL; - if (__pyx_m) - return __Pyx_NewRef(__pyx_m); - modname = PyObject_GetAttrString(spec, "name"); - if (unlikely(!modname)) goto bad; - module = PyModule_NewObject(modname); - Py_DECREF(modname); - if (unlikely(!module)) goto bad; - moddict = PyModule_GetDict(module); - if (unlikely(!moddict)) goto bad; - if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__", 1) < 0)) goto bad; - if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__", 1) < 0)) goto bad; - if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__", 1) < 0)) goto bad; - if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__", 0) < 0)) goto bad; - return module; -bad: - Py_XDECREF(module); - return NULL; -} - - -static CYTHON_SMALL_CODE int __pyx_pymod_exec_bridge_cpu(PyObject *__pyx_pyinit_module) -#endif -#endif -{ - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannyDeclarations - #if CYTHON_PEP489_MULTI_PHASE_INIT - if (__pyx_m) { - if (__pyx_m == __pyx_pyinit_module) return 0; - PyErr_SetString(PyExc_RuntimeError, "Module 'bridge_cpu' has already been imported. Re-initialisation is not supported."); - return -1; - } - #elif PY_MAJOR_VERSION >= 3 - if (__pyx_m) return __Pyx_NewRef(__pyx_m); - #endif - #if CYTHON_REFNANNY -__Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny"); -if (!__Pyx_RefNanny) { - PyErr_Clear(); - __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny"); - if (!__Pyx_RefNanny) - Py_FatalError("failed to import 'refnanny' module"); -} -#endif - __Pyx_RefNannySetupContext("__Pyx_PyMODINIT_FUNC PyInit_bridge_cpu(void)", 0); - if (__Pyx_check_binary_version() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - #ifdef __Pxy_PyFrame_Initialize_Offsets - __Pxy_PyFrame_Initialize_Offsets(); - #endif - __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) __PYX_ERR(1, 1, __pyx_L1_error) - __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(1, 1, __pyx_L1_error) - __pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_unicode)) __PYX_ERR(1, 1, __pyx_L1_error) - #ifdef __Pyx_CyFunction_USED - if (__pyx_CyFunction_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - #endif - #ifdef __Pyx_FusedFunction_USED - if (__pyx_FusedFunction_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - #endif - #ifdef __Pyx_Coroutine_USED - if (__pyx_Coroutine_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - #endif - #ifdef __Pyx_Generator_USED - if (__pyx_Generator_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - #endif - #ifdef __Pyx_AsyncGen_USED - if (__pyx_AsyncGen_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - #endif - #ifdef __Pyx_StopAsyncIteration_USED - if (__pyx_StopAsyncIteration_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - #endif - /*--- Library function declarations ---*/ - /*--- Threads initialization code ---*/ - #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS - #ifdef WITH_THREAD /* Python build with threading support? */ - PyEval_InitThreads(); - #endif - #endif - /*--- Module creation code ---*/ - #if CYTHON_PEP489_MULTI_PHASE_INIT - __pyx_m = __pyx_pyinit_module; - Py_INCREF(__pyx_m); - #else - #if PY_MAJOR_VERSION < 3 - __pyx_m = Py_InitModule4("bridge_cpu", __pyx_methods, 0, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m); - #else - __pyx_m = PyModule_Create(&__pyx_moduledef); - #endif - if (unlikely(!__pyx_m)) __PYX_ERR(1, 1, __pyx_L1_error) - #endif - __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) __PYX_ERR(1, 1, __pyx_L1_error) - Py_INCREF(__pyx_d); - __pyx_b = PyImport_AddModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_b)) __PYX_ERR(1, 1, __pyx_L1_error) - Py_INCREF(__pyx_b); - __pyx_cython_runtime = PyImport_AddModule((char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(1, 1, __pyx_L1_error) - Py_INCREF(__pyx_cython_runtime); - if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) __PYX_ERR(1, 1, __pyx_L1_error); - /*--- Initialize various global constants etc. ---*/ - if (__Pyx_InitGlobals() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT) - if (__Pyx_init_sys_getdefaultencoding_params() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - #endif - if (__pyx_module_is_main_reccdi__src_py__cyth__bridge_cpu) { - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_name, __pyx_n_s_main) < 0) __PYX_ERR(1, 1, __pyx_L1_error) - } - #if PY_MAJOR_VERSION >= 3 - { - PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(1, 1, __pyx_L1_error) - if (!PyDict_GetItemString(modules, "reccdi.src_py.cyth.bridge_cpu")) { - if (unlikely(PyDict_SetItemString(modules, "reccdi.src_py.cyth.bridge_cpu", __pyx_m) < 0)) __PYX_ERR(1, 1, __pyx_L1_error) - } - } - #endif - /*--- Builtin init code ---*/ - if (__Pyx_InitCachedBuiltins() < 0) goto __pyx_L1_error; - /*--- Constants init code ---*/ - if (__Pyx_InitCachedConstants() < 0) goto __pyx_L1_error; - /*--- Global type/function init code ---*/ - (void)__Pyx_modinit_global_init_code(); - (void)__Pyx_modinit_variable_export_code(); - (void)__Pyx_modinit_function_export_code(); - if (unlikely(__Pyx_modinit_type_init_code() != 0)) goto __pyx_L1_error; - (void)__Pyx_modinit_type_import_code(); - (void)__Pyx_modinit_variable_import_code(); - (void)__Pyx_modinit_function_import_code(); - /*--- Execution code ---*/ - #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) - if (__Pyx_patch_abc() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - #endif - - /* "reccdi/src_py/cyth/bridge_cpu.pyx":1 - * # ######################################################################### # <<<<<<<<<<<<<< - * # Copyright (c) , UChicago Argonne, LLC. All rights reserved. # - * # # - */ - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "vector.to_py":60 - * - * @cname("__pyx_convert_vector_to_py_int") - * cdef object __pyx_convert_vector_to_py_int(vector[X]& v): # <<<<<<<<<<<<<< - * return [v[i] for i in range(v.size())] - * - */ - - /*--- Wrapped vars code ---*/ - - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - if (__pyx_m) { - if (__pyx_d) { - __Pyx_AddTraceback("init reccdi.src_py.cyth.bridge_cpu", __pyx_clineno, __pyx_lineno, __pyx_filename); - } - Py_CLEAR(__pyx_m); - } else if (!PyErr_Occurred()) { - PyErr_SetString(PyExc_ImportError, "init reccdi.src_py.cyth.bridge_cpu"); - } - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - #if CYTHON_PEP489_MULTI_PHASE_INIT - return (__pyx_m != NULL) ? 0 : -1; - #elif PY_MAJOR_VERSION >= 3 - return __pyx_m; - #else - return; - #endif -} - -/* --- Runtime support code --- */ -/* Refnanny */ -#if CYTHON_REFNANNY -static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) { - PyObject *m = NULL, *p = NULL; - void *r = NULL; - m = PyImport_ImportModule(modname); - if (!m) goto end; - p = PyObject_GetAttrString(m, "RefNannyAPI"); - if (!p) goto end; - r = PyLong_AsVoidPtr(p); -end: - Py_XDECREF(p); - Py_XDECREF(m); - return (__Pyx_RefNannyAPIStruct *)r; -} -#endif - -/* PyObjectGetAttrStr */ -#if CYTHON_USE_TYPE_SLOTS -static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) { - PyTypeObject* tp = Py_TYPE(obj); - if (likely(tp->tp_getattro)) - return tp->tp_getattro(obj, attr_name); -#if PY_MAJOR_VERSION < 3 - if (likely(tp->tp_getattr)) - return tp->tp_getattr(obj, PyString_AS_STRING(attr_name)); -#endif - return PyObject_GetAttr(obj, attr_name); -} -#endif - -/* GetBuiltinName */ -static PyObject *__Pyx_GetBuiltinName(PyObject *name) { - PyObject* result = __Pyx_PyObject_GetAttrStr(__pyx_b, name); - if (unlikely(!result)) { - PyErr_Format(PyExc_NameError, -#if PY_MAJOR_VERSION >= 3 - "name '%U' is not defined", name); -#else - "name '%.200s' is not defined", PyString_AS_STRING(name)); -#endif - } - return result; -} - -/* RaiseArgTupleInvalid */ -static void __Pyx_RaiseArgtupleInvalid( - const char* func_name, - int exact, - Py_ssize_t num_min, - Py_ssize_t num_max, - Py_ssize_t num_found) -{ - Py_ssize_t num_expected; - const char *more_or_less; - if (num_found < num_min) { - num_expected = num_min; - more_or_less = "at least"; - } else { - num_expected = num_max; - more_or_less = "at most"; - } - if (exact) { - more_or_less = "exactly"; - } - PyErr_Format(PyExc_TypeError, - "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T "d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T "d given)", - func_name, more_or_less, num_expected, - (num_expected == 1) ? "" : "s", num_found); -} - -/* KeywordStringCheck */ -static int __Pyx_CheckKeywordStrings( - PyObject *kwdict, - const char* function_name, - int kw_allowed) -{ - PyObject* key = 0; - Py_ssize_t pos = 0; -#if CYTHON_COMPILING_IN_PYPY - if (!kw_allowed && PyDict_Next(kwdict, &pos, &key, 0)) - goto invalid_keyword; - return 1; -#else - while (PyDict_Next(kwdict, &pos, &key, 0)) { - #if PY_MAJOR_VERSION < 3 - if (unlikely(!PyString_Check(key))) - #endif - if (unlikely(!PyUnicode_Check(key))) - goto invalid_keyword_type; - } - if ((!kw_allowed) && unlikely(key)) - goto invalid_keyword; - return 1; -invalid_keyword_type: - PyErr_Format(PyExc_TypeError, - "%.200s() keywords must be strings", function_name); - return 0; -#endif -invalid_keyword: - PyErr_Format(PyExc_TypeError, - #if PY_MAJOR_VERSION < 3 - "%.200s() got an unexpected keyword argument '%.200s'", - function_name, PyString_AsString(key)); - #else - "%s() got an unexpected keyword argument '%U'", - function_name, key); - #endif - return 0; -} - -/* RaiseDoubleKeywords */ -static void __Pyx_RaiseDoubleKeywordsError( - const char* func_name, - PyObject* kw_name) -{ - PyErr_Format(PyExc_TypeError, - #if PY_MAJOR_VERSION >= 3 - "%s() got multiple values for keyword argument '%U'", func_name, kw_name); - #else - "%s() got multiple values for keyword argument '%s'", func_name, - PyString_AsString(kw_name)); - #endif -} - -/* ParseKeywords */ -static int __Pyx_ParseOptionalKeywords( - PyObject *kwds, - PyObject **argnames[], - PyObject *kwds2, - PyObject *values[], - Py_ssize_t num_pos_args, - const char* function_name) -{ - PyObject *key = 0, *value = 0; - Py_ssize_t pos = 0; - PyObject*** name; - PyObject*** first_kw_arg = argnames + num_pos_args; - while (PyDict_Next(kwds, &pos, &key, &value)) { - name = first_kw_arg; - while (*name && (**name != key)) name++; - if (*name) { - values[name-argnames] = value; - continue; - } - name = first_kw_arg; - #if PY_MAJOR_VERSION < 3 - if (likely(PyString_CheckExact(key)) || likely(PyString_Check(key))) { - while (*name) { - if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key)) - && _PyString_Eq(**name, key)) { - values[name-argnames] = value; - break; - } - name++; - } - if (*name) continue; - else { - PyObject*** argname = argnames; - while (argname != first_kw_arg) { - if ((**argname == key) || ( - (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key)) - && _PyString_Eq(**argname, key))) { - goto arg_passed_twice; - } - argname++; - } - } - } else - #endif - if (likely(PyUnicode_Check(key))) { - while (*name) { - int cmp = (**name == key) ? 0 : - #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 - (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : - #endif - PyUnicode_Compare(**name, key); - if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; - if (cmp == 0) { - values[name-argnames] = value; - break; - } - name++; - } - if (*name) continue; - else { - PyObject*** argname = argnames; - while (argname != first_kw_arg) { - int cmp = (**argname == key) ? 0 : - #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 - (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : - #endif - PyUnicode_Compare(**argname, key); - if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; - if (cmp == 0) goto arg_passed_twice; - argname++; - } - } - } else - goto invalid_keyword_type; - if (kwds2) { - if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad; - } else { - goto invalid_keyword; - } - } - return 0; -arg_passed_twice: - __Pyx_RaiseDoubleKeywordsError(function_name, key); - goto bad; -invalid_keyword_type: - PyErr_Format(PyExc_TypeError, - "%.200s() keywords must be strings", function_name); - goto bad; -invalid_keyword: - PyErr_Format(PyExc_TypeError, - #if PY_MAJOR_VERSION < 3 - "%.200s() got an unexpected keyword argument '%.200s'", - function_name, PyString_AsString(key)); - #else - "%s() got an unexpected keyword argument '%U'", - function_name, key); - #endif -bad: - return -1; -} - -/* PyFunctionFastCall */ -#if CYTHON_FAST_PYCALL -static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na, - PyObject *globals) { - PyFrameObject *f; - PyThreadState *tstate = __Pyx_PyThreadState_Current; - PyObject **fastlocals; - Py_ssize_t i; - PyObject *result; - assert(globals != NULL); - /* XXX Perhaps we should create a specialized - PyFrame_New() that doesn't take locals, but does - take builtins without sanity checking them. - */ - assert(tstate != NULL); - f = PyFrame_New(tstate, co, globals, NULL); - if (f == NULL) { - return NULL; - } - fastlocals = __Pyx_PyFrame_GetLocalsplus(f); - for (i = 0; i < na; i++) { - Py_INCREF(*args); - fastlocals[i] = *args++; - } - result = PyEval_EvalFrameEx(f,0); - ++tstate->recursion_depth; - Py_DECREF(f); - --tstate->recursion_depth; - return result; -} -#if 1 || PY_VERSION_HEX < 0x030600B1 -static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs) { - PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func); - PyObject *globals = PyFunction_GET_GLOBALS(func); - PyObject *argdefs = PyFunction_GET_DEFAULTS(func); - PyObject *closure; -#if PY_MAJOR_VERSION >= 3 - PyObject *kwdefs; -#endif - PyObject *kwtuple, **k; - PyObject **d; - Py_ssize_t nd; - Py_ssize_t nk; - PyObject *result; - assert(kwargs == NULL || PyDict_Check(kwargs)); - nk = kwargs ? PyDict_Size(kwargs) : 0; - if (Py_EnterRecursiveCall((char*)" while calling a Python object")) { - return NULL; - } - if ( -#if PY_MAJOR_VERSION >= 3 - co->co_kwonlyargcount == 0 && -#endif - likely(kwargs == NULL || nk == 0) && - co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE)) { - if (argdefs == NULL && co->co_argcount == nargs) { - result = __Pyx_PyFunction_FastCallNoKw(co, args, nargs, globals); - goto done; - } - else if (nargs == 0 && argdefs != NULL - && co->co_argcount == Py_SIZE(argdefs)) { - /* function called with no arguments, but all parameters have - a default value: use default values as arguments .*/ - args = &PyTuple_GET_ITEM(argdefs, 0); - result =__Pyx_PyFunction_FastCallNoKw(co, args, Py_SIZE(argdefs), globals); - goto done; - } - } - if (kwargs != NULL) { - Py_ssize_t pos, i; - kwtuple = PyTuple_New(2 * nk); - if (kwtuple == NULL) { - result = NULL; - goto done; - } - k = &PyTuple_GET_ITEM(kwtuple, 0); - pos = i = 0; - while (PyDict_Next(kwargs, &pos, &k[i], &k[i+1])) { - Py_INCREF(k[i]); - Py_INCREF(k[i+1]); - i += 2; - } - nk = i / 2; - } - else { - kwtuple = NULL; - k = NULL; - } - closure = PyFunction_GET_CLOSURE(func); -#if PY_MAJOR_VERSION >= 3 - kwdefs = PyFunction_GET_KW_DEFAULTS(func); -#endif - if (argdefs != NULL) { - d = &PyTuple_GET_ITEM(argdefs, 0); - nd = Py_SIZE(argdefs); - } - else { - d = NULL; - nd = 0; - } -#if PY_MAJOR_VERSION >= 3 - result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL, - args, (int)nargs, - k, (int)nk, - d, (int)nd, kwdefs, closure); -#else - result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL, - args, (int)nargs, - k, (int)nk, - d, (int)nd, closure); -#endif - Py_XDECREF(kwtuple); -done: - Py_LeaveRecursiveCall(); - return result; -} -#endif -#endif - -/* PyObjectCall */ -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { - PyObject *result; - ternaryfunc call = func->ob_type->tp_call; - if (unlikely(!call)) - return PyObject_Call(func, arg, kw); - if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) - return NULL; - result = (*call)(func, arg, kw); - Py_LeaveRecursiveCall(); - if (unlikely(!result) && unlikely(!PyErr_Occurred())) { - PyErr_SetString( - PyExc_SystemError, - "NULL result without error in PyObject_Call"); - } - return result; -} -#endif - -/* PyObjectCallMethO */ -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) { - PyObject *self, *result; - PyCFunction cfunc; - cfunc = PyCFunction_GET_FUNCTION(func); - self = PyCFunction_GET_SELF(func); - if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) - return NULL; - result = cfunc(self, arg); - Py_LeaveRecursiveCall(); - if (unlikely(!result) && unlikely(!PyErr_Occurred())) { - PyErr_SetString( - PyExc_SystemError, - "NULL result without error in PyObject_Call"); - } - return result; -} -#endif - -/* PyObjectCallNoArg */ -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) { -#if CYTHON_FAST_PYCALL - if (PyFunction_Check(func)) { - return __Pyx_PyFunction_FastCall(func, NULL, 0); - } -#endif -#ifdef __Pyx_CyFunction_USED - if (likely(PyCFunction_Check(func) || __Pyx_CyFunction_Check(func))) -#else - if (likely(PyCFunction_Check(func))) -#endif - { - if (likely(PyCFunction_GET_FLAGS(func) & METH_NOARGS)) { - return __Pyx_PyObject_CallMethO(func, NULL); - } - } - return __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL); -} -#endif - -/* PyCFunctionFastCall */ -#if CYTHON_FAST_PYCCALL -static CYTHON_INLINE PyObject * __Pyx_PyCFunction_FastCall(PyObject *func_obj, PyObject **args, Py_ssize_t nargs) { - PyCFunctionObject *func = (PyCFunctionObject*)func_obj; - PyCFunction meth = PyCFunction_GET_FUNCTION(func); - PyObject *self = PyCFunction_GET_SELF(func); - int flags = PyCFunction_GET_FLAGS(func); - assert(PyCFunction_Check(func)); - assert(METH_FASTCALL == (flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS))); - assert(nargs >= 0); - assert(nargs == 0 || args != NULL); - /* _PyCFunction_FastCallDict() must not be called with an exception set, - because it may clear it (directly or indirectly) and so the - caller loses its exception */ - assert(!PyErr_Occurred()); - if ((PY_VERSION_HEX < 0x030700A0) || unlikely(flags & METH_KEYWORDS)) { - return (*((__Pyx_PyCFunctionFastWithKeywords)(void*)meth)) (self, args, nargs, NULL); - } else { - return (*((__Pyx_PyCFunctionFast)(void*)meth)) (self, args, nargs); - } -} -#endif - -/* PyObjectCallOneArg */ -#if CYTHON_COMPILING_IN_CPYTHON -static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) { - PyObject *result; - PyObject *args = PyTuple_New(1); - if (unlikely(!args)) return NULL; - Py_INCREF(arg); - PyTuple_SET_ITEM(args, 0, arg); - result = __Pyx_PyObject_Call(func, args, NULL); - Py_DECREF(args); - return result; -} -static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { -#if CYTHON_FAST_PYCALL - if (PyFunction_Check(func)) { - return __Pyx_PyFunction_FastCall(func, &arg, 1); - } -#endif - if (likely(PyCFunction_Check(func))) { - if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { - return __Pyx_PyObject_CallMethO(func, arg); -#if CYTHON_FAST_PYCCALL - } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) { - return __Pyx_PyCFunction_FastCall(func, &arg, 1); -#endif - } - } - return __Pyx__PyObject_CallOneArg(func, arg); -} -#else -static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { - PyObject *result; - PyObject *args = PyTuple_Pack(1, arg); - if (unlikely(!args)) return NULL; - result = __Pyx_PyObject_Call(func, args, NULL); - Py_DECREF(args); - return result; -} -#endif - -/* PyErrFetchRestore */ -#if CYTHON_FAST_THREAD_STATE -static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { - PyObject *tmp_type, *tmp_value, *tmp_tb; - tmp_type = tstate->curexc_type; - tmp_value = tstate->curexc_value; - tmp_tb = tstate->curexc_traceback; - tstate->curexc_type = type; - tstate->curexc_value = value; - tstate->curexc_traceback = tb; - Py_XDECREF(tmp_type); - Py_XDECREF(tmp_value); - Py_XDECREF(tmp_tb); -} -static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { - *type = tstate->curexc_type; - *value = tstate->curexc_value; - *tb = tstate->curexc_traceback; - tstate->curexc_type = 0; - tstate->curexc_value = 0; - tstate->curexc_traceback = 0; -} -#endif - -/* RaiseException */ -#if PY_MAJOR_VERSION < 3 -static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, - CYTHON_UNUSED PyObject *cause) { - __Pyx_PyThreadState_declare - Py_XINCREF(type); - if (!value || value == Py_None) - value = NULL; - else - Py_INCREF(value); - if (!tb || tb == Py_None) - tb = NULL; - else { - Py_INCREF(tb); - if (!PyTraceBack_Check(tb)) { - PyErr_SetString(PyExc_TypeError, - "raise: arg 3 must be a traceback or None"); - goto raise_error; - } - } - if (PyType_Check(type)) { -#if CYTHON_COMPILING_IN_PYPY - if (!value) { - Py_INCREF(Py_None); - value = Py_None; - } -#endif - PyErr_NormalizeException(&type, &value, &tb); - } else { - if (value) { - PyErr_SetString(PyExc_TypeError, - "instance exception may not have a separate value"); - goto raise_error; - } - value = type; - type = (PyObject*) Py_TYPE(type); - Py_INCREF(type); - if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) { - PyErr_SetString(PyExc_TypeError, - "raise: exception class must be a subclass of BaseException"); - goto raise_error; - } - } - __Pyx_PyThreadState_assign - __Pyx_ErrRestore(type, value, tb); - return; -raise_error: - Py_XDECREF(value); - Py_XDECREF(type); - Py_XDECREF(tb); - return; -} -#else -static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) { - PyObject* owned_instance = NULL; - if (tb == Py_None) { - tb = 0; - } else if (tb && !PyTraceBack_Check(tb)) { - PyErr_SetString(PyExc_TypeError, - "raise: arg 3 must be a traceback or None"); - goto bad; - } - if (value == Py_None) - value = 0; - if (PyExceptionInstance_Check(type)) { - if (value) { - PyErr_SetString(PyExc_TypeError, - "instance exception may not have a separate value"); - goto bad; - } - value = type; - type = (PyObject*) Py_TYPE(value); - } else if (PyExceptionClass_Check(type)) { - PyObject *instance_class = NULL; - if (value && PyExceptionInstance_Check(value)) { - instance_class = (PyObject*) Py_TYPE(value); - if (instance_class != type) { - int is_subclass = PyObject_IsSubclass(instance_class, type); - if (!is_subclass) { - instance_class = NULL; - } else if (unlikely(is_subclass == -1)) { - goto bad; - } else { - type = instance_class; - } - } - } - if (!instance_class) { - PyObject *args; - if (!value) - args = PyTuple_New(0); - else if (PyTuple_Check(value)) { - Py_INCREF(value); - args = value; - } else - args = PyTuple_Pack(1, value); - if (!args) - goto bad; - owned_instance = PyObject_Call(type, args, NULL); - Py_DECREF(args); - if (!owned_instance) - goto bad; - value = owned_instance; - if (!PyExceptionInstance_Check(value)) { - PyErr_Format(PyExc_TypeError, - "calling %R should have returned an instance of " - "BaseException, not %R", - type, Py_TYPE(value)); - goto bad; - } - } - } else { - PyErr_SetString(PyExc_TypeError, - "raise: exception class must be a subclass of BaseException"); - goto bad; - } - if (cause) { - PyObject *fixed_cause; - if (cause == Py_None) { - fixed_cause = NULL; - } else if (PyExceptionClass_Check(cause)) { - fixed_cause = PyObject_CallObject(cause, NULL); - if (fixed_cause == NULL) - goto bad; - } else if (PyExceptionInstance_Check(cause)) { - fixed_cause = cause; - Py_INCREF(fixed_cause); - } else { - PyErr_SetString(PyExc_TypeError, - "exception causes must derive from " - "BaseException"); - goto bad; - } - PyException_SetCause(value, fixed_cause); - } - PyErr_SetObject(type, value); - if (tb) { -#if CYTHON_COMPILING_IN_PYPY - PyObject *tmp_type, *tmp_value, *tmp_tb; - PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb); - Py_INCREF(tb); - PyErr_Restore(tmp_type, tmp_value, tb); - Py_XDECREF(tmp_tb); -#else - PyThreadState *tstate = __Pyx_PyThreadState_Current; - PyObject* tmp_tb = tstate->curexc_traceback; - if (tb != tmp_tb) { - Py_INCREF(tb); - tstate->curexc_traceback = tb; - Py_XDECREF(tmp_tb); - } -#endif - } -bad: - Py_XDECREF(owned_instance); - return; -} -#endif - -/* PyObject_GenericGetAttrNoDict */ -#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 -static PyObject *__Pyx_RaiseGenericGetAttributeError(PyTypeObject *tp, PyObject *attr_name) { - PyErr_Format(PyExc_AttributeError, -#if PY_MAJOR_VERSION >= 3 - "'%.50s' object has no attribute '%U'", - tp->tp_name, attr_name); -#else - "'%.50s' object has no attribute '%.400s'", - tp->tp_name, PyString_AS_STRING(attr_name)); -#endif - return NULL; -} -static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name) { - PyObject *descr; - PyTypeObject *tp = Py_TYPE(obj); - if (unlikely(!PyString_Check(attr_name))) { - return PyObject_GenericGetAttr(obj, attr_name); - } - assert(!tp->tp_dictoffset); - descr = _PyType_Lookup(tp, attr_name); - if (unlikely(!descr)) { - return __Pyx_RaiseGenericGetAttributeError(tp, attr_name); - } - Py_INCREF(descr); - #if PY_MAJOR_VERSION < 3 - if (likely(PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_HAVE_CLASS))) - #endif - { - descrgetfunc f = Py_TYPE(descr)->tp_descr_get; - if (unlikely(f)) { - PyObject *res = f(descr, obj, (PyObject *)tp); - Py_DECREF(descr); - return res; - } - } - return descr; -} -#endif - -/* PyObject_GenericGetAttr */ -#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 -static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name) { - if (unlikely(Py_TYPE(obj)->tp_dictoffset)) { - return PyObject_GenericGetAttr(obj, attr_name); - } - return __Pyx_PyObject_GenericGetAttrNoDict(obj, attr_name); -} -#endif - -/* SetupReduce */ -static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) { - int ret; - PyObject *name_attr; - name_attr = __Pyx_PyObject_GetAttrStr(meth, __pyx_n_s_name); - if (likely(name_attr)) { - ret = PyObject_RichCompareBool(name_attr, name, Py_EQ); - } else { - ret = -1; - } - if (unlikely(ret < 0)) { - PyErr_Clear(); - ret = 0; - } - Py_XDECREF(name_attr); - return ret; -} -static int __Pyx_setup_reduce(PyObject* type_obj) { - int ret = 0; - PyObject *object_reduce = NULL; - PyObject *object_reduce_ex = NULL; - PyObject *reduce = NULL; - PyObject *reduce_ex = NULL; - PyObject *reduce_cython = NULL; - PyObject *setstate = NULL; - PyObject *setstate_cython = NULL; -#if CYTHON_USE_PYTYPE_LOOKUP - if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto GOOD; -#else - if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto GOOD; -#endif -#if CYTHON_USE_PYTYPE_LOOKUP - object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; -#else - object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; -#endif - reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto BAD; - if (reduce_ex == object_reduce_ex) { -#if CYTHON_USE_PYTYPE_LOOKUP - object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; -#else - object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; -#endif - reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto BAD; - if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) { - reduce_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_cython); if (unlikely(!reduce_cython)) goto BAD; - ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto BAD; - ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto BAD; - setstate = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate); - if (!setstate) PyErr_Clear(); - if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) { - setstate_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate_cython); if (unlikely(!setstate_cython)) goto BAD; - ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto BAD; - ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto BAD; - } - PyType_Modified((PyTypeObject*)type_obj); - } - } - goto GOOD; -BAD: - if (!PyErr_Occurred()) - PyErr_Format(PyExc_RuntimeError, "Unable to initialize pickling for %s", ((PyTypeObject*)type_obj)->tp_name); - ret = -1; -GOOD: -#if !CYTHON_USE_PYTYPE_LOOKUP - Py_XDECREF(object_reduce); - Py_XDECREF(object_reduce_ex); -#endif - Py_XDECREF(reduce); - Py_XDECREF(reduce_ex); - Py_XDECREF(reduce_cython); - Py_XDECREF(setstate); - Py_XDECREF(setstate_cython); - return ret; -} - -/* PyDictVersioning */ -#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS -static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) { - PyObject *dict = Py_TYPE(obj)->tp_dict; - return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0; -} -static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) { - PyObject **dictptr = NULL; - Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset; - if (offset) { -#if CYTHON_COMPILING_IN_CPYTHON - dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj); -#else - dictptr = _PyObject_GetDictPtr(obj); -#endif - } - return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0; -} -static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) { - PyObject *dict = Py_TYPE(obj)->tp_dict; - if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict))) - return 0; - return obj_dict_version == __Pyx_get_object_dict_version(obj); -} -#endif - -/* CLineInTraceback */ -#ifndef CYTHON_CLINE_IN_TRACEBACK -static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { - PyObject *use_cline; - PyObject *ptype, *pvalue, *ptraceback; -#if CYTHON_COMPILING_IN_CPYTHON - PyObject **cython_runtime_dict; -#endif - if (unlikely(!__pyx_cython_runtime)) { - return c_line; - } - __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback); -#if CYTHON_COMPILING_IN_CPYTHON - cython_runtime_dict = _PyObject_GetDictPtr(__pyx_cython_runtime); - if (likely(cython_runtime_dict)) { - __PYX_PY_DICT_LOOKUP_IF_MODIFIED( - use_cline, *cython_runtime_dict, - __Pyx_PyDict_GetItemStr(*cython_runtime_dict, __pyx_n_s_cline_in_traceback)) - } else -#endif - { - PyObject *use_cline_obj = __Pyx_PyObject_GetAttrStr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback); - if (use_cline_obj) { - use_cline = PyObject_Not(use_cline_obj) ? Py_False : Py_True; - Py_DECREF(use_cline_obj); - } else { - PyErr_Clear(); - use_cline = NULL; - } - } - if (!use_cline) { - c_line = 0; - PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); - } - else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) { - c_line = 0; - } - __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback); - return c_line; -} -#endif - -/* CodeObjectCache */ -static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) { - int start = 0, mid = 0, end = count - 1; - if (end >= 0 && code_line > entries[end].code_line) { - return count; - } - while (start < end) { - mid = start + (end - start) / 2; - if (code_line < entries[mid].code_line) { - end = mid; - } else if (code_line > entries[mid].code_line) { - start = mid + 1; - } else { - return mid; - } - } - if (code_line <= entries[mid].code_line) { - return mid; - } else { - return mid + 1; - } -} -static PyCodeObject *__pyx_find_code_object(int code_line) { - PyCodeObject* code_object; - int pos; - if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) { - return NULL; - } - pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); - if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) { - return NULL; - } - code_object = __pyx_code_cache.entries[pos].code_object; - Py_INCREF(code_object); - return code_object; -} -static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { - int pos, i; - __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries; - if (unlikely(!code_line)) { - return; - } - if (unlikely(!entries)) { - entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry)); - if (likely(entries)) { - __pyx_code_cache.entries = entries; - __pyx_code_cache.max_count = 64; - __pyx_code_cache.count = 1; - entries[0].code_line = code_line; - entries[0].code_object = code_object; - Py_INCREF(code_object); - } - return; - } - pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); - if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) { - PyCodeObject* tmp = entries[pos].code_object; - entries[pos].code_object = code_object; - Py_DECREF(tmp); - return; - } - if (__pyx_code_cache.count == __pyx_code_cache.max_count) { - int new_max = __pyx_code_cache.max_count + 64; - entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( - __pyx_code_cache.entries, (size_t)new_max*sizeof(__Pyx_CodeObjectCacheEntry)); - if (unlikely(!entries)) { - return; - } - __pyx_code_cache.entries = entries; - __pyx_code_cache.max_count = new_max; - } - for (i=__pyx_code_cache.count; i>pos; i--) { - entries[i] = entries[i-1]; - } - entries[pos].code_line = code_line; - entries[pos].code_object = code_object; - __pyx_code_cache.count++; - Py_INCREF(code_object); -} - -/* AddTraceback */ -#include "compile.h" -#include "frameobject.h" -#include "traceback.h" -static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - const char *funcname, int c_line, - int py_line, const char *filename) { - PyCodeObject *py_code = 0; - PyObject *py_srcfile = 0; - PyObject *py_funcname = 0; - #if PY_MAJOR_VERSION < 3 - py_srcfile = PyString_FromString(filename); - #else - py_srcfile = PyUnicode_FromString(filename); - #endif - if (!py_srcfile) goto bad; - if (c_line) { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); - #else - py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); - #endif - } - else { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromString(funcname); - #else - py_funcname = PyUnicode_FromString(funcname); - #endif - } - if (!py_funcname) goto bad; - py_code = __Pyx_PyCode_New( - 0, - 0, - 0, - 0, - 0, - __pyx_empty_bytes, /*PyObject *code,*/ - __pyx_empty_tuple, /*PyObject *consts,*/ - __pyx_empty_tuple, /*PyObject *names,*/ - __pyx_empty_tuple, /*PyObject *varnames,*/ - __pyx_empty_tuple, /*PyObject *freevars,*/ - __pyx_empty_tuple, /*PyObject *cellvars,*/ - py_srcfile, /*PyObject *filename,*/ - py_funcname, /*PyObject *name,*/ - py_line, - __pyx_empty_bytes /*PyObject *lnotab*/ - ); - Py_DECREF(py_srcfile); - Py_DECREF(py_funcname); - return py_code; -bad: - Py_XDECREF(py_srcfile); - Py_XDECREF(py_funcname); - return NULL; -} -static void __Pyx_AddTraceback(const char *funcname, int c_line, - int py_line, const char *filename) { - PyCodeObject *py_code = 0; - PyFrameObject *py_frame = 0; - PyThreadState *tstate = __Pyx_PyThreadState_Current; - if (c_line) { - c_line = __Pyx_CLineForTraceback(tstate, c_line); - } - py_code = __pyx_find_code_object(c_line ? -c_line : py_line); - if (!py_code) { - py_code = __Pyx_CreateCodeObjectForTraceback( - funcname, c_line, py_line, filename); - if (!py_code) goto bad; - __pyx_insert_code_object(c_line ? -c_line : py_line, py_code); - } - py_frame = PyFrame_New( - tstate, /*PyThreadState *tstate,*/ - py_code, /*PyCodeObject *code,*/ - __pyx_d, /*PyObject *globals,*/ - 0 /*PyObject *locals*/ - ); - if (!py_frame) goto bad; - __Pyx_PyFrame_SetLineNumber(py_frame, py_line); - PyTraceBack_Here(py_frame); -bad: - Py_XDECREF(py_code); - Py_XDECREF(py_frame); -} - -/* CIntFromPyVerify */ -#define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\ - __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0) -#define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\ - __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1) -#define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\ - {\ - func_type value = func_value;\ - if (sizeof(target_type) < sizeof(func_type)) {\ - if (unlikely(value != (func_type) (target_type) value)) {\ - func_type zero = 0;\ - if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\ - return (target_type) -1;\ - if (is_unsigned && unlikely(value < zero))\ - goto raise_neg_overflow;\ - else\ - goto raise_overflow;\ - }\ - }\ - return (target_type) value;\ - } - -/* CIntToPy */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { - const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; - const int is_unsigned = neg_one > const_zero; - if (is_unsigned) { - if (sizeof(int) < sizeof(long)) { - return PyInt_FromLong((long) value); - } else if (sizeof(int) <= sizeof(unsigned long)) { - return PyLong_FromUnsignedLong((unsigned long) value); -#ifdef HAVE_LONG_LONG - } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { - return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -#endif - } - } else { - if (sizeof(int) <= sizeof(long)) { - return PyInt_FromLong((long) value); -#ifdef HAVE_LONG_LONG - } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { - return PyLong_FromLongLong((PY_LONG_LONG) value); -#endif - } - } - { - int one = 1; int little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&value; - return _PyLong_FromByteArray(bytes, sizeof(int), - little, !is_unsigned); - } -} - -/* CIntFromPy */ -static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { - const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; - const int is_unsigned = neg_one > const_zero; -#if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { - if (sizeof(int) < sizeof(long)) { - __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x)) - } else { - long val = PyInt_AS_LONG(x); - if (is_unsigned && unlikely(val < 0)) { - goto raise_neg_overflow; - } - return (int) val; - } - } else -#endif - if (likely(PyLong_Check(x))) { - if (is_unsigned) { -#if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)x)->ob_digit; - switch (Py_SIZE(x)) { - case 0: return (int) 0; - case 1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0]) - case 2: - if (8 * sizeof(int) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(int) >= 2 * PyLong_SHIFT) { - return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); - } - } - break; - case 3: - if (8 * sizeof(int) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(int) >= 3 * PyLong_SHIFT) { - return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); - } - } - break; - case 4: - if (8 * sizeof(int) > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(int) >= 4 * PyLong_SHIFT) { - return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); - } - } - break; - } -#endif -#if CYTHON_COMPILING_IN_CPYTHON - if (unlikely(Py_SIZE(x) < 0)) { - goto raise_neg_overflow; - } -#else - { - int result = PyObject_RichCompareBool(x, Py_False, Py_LT); - if (unlikely(result < 0)) - return (int) -1; - if (unlikely(result == 1)) - goto raise_neg_overflow; - } -#endif - if (sizeof(int) <= sizeof(unsigned long)) { - __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x)) -#ifdef HAVE_LONG_LONG - } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { - __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) -#endif - } - } else { -#if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)x)->ob_digit; - switch (Py_SIZE(x)) { - case 0: return (int) 0; - case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0])) - case 1: __PYX_VERIFY_RETURN_INT(int, digit, +digits[0]) - case -2: - if (8 * sizeof(int) - 1 > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { - return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case 2: - if (8 * sizeof(int) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { - return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case -3: - if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { - return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case 3: - if (8 * sizeof(int) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { - return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case -4: - if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { - return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case 4: - if (8 * sizeof(int) > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { - return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - } -#endif - if (sizeof(int) <= sizeof(long)) { - __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x)) -#ifdef HAVE_LONG_LONG - } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { - __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x)) -#endif - } - } - { -#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) - PyErr_SetString(PyExc_RuntimeError, - "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); -#else - int val; - PyObject *v = __Pyx_PyNumber_IntOrLong(x); - #if PY_MAJOR_VERSION < 3 - if (likely(v) && !PyLong_Check(v)) { - PyObject *tmp = v; - v = PyNumber_Long(tmp); - Py_DECREF(tmp); - } - #endif - if (likely(v)) { - int one = 1; int is_little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&val; - int ret = _PyLong_AsByteArray((PyLongObject *)v, - bytes, sizeof(val), - is_little, !is_unsigned); - Py_DECREF(v); - if (likely(!ret)) - return val; - } -#endif - return (int) -1; - } - } else { - int val; - PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); - if (!tmp) return (int) -1; - val = __Pyx_PyInt_As_int(tmp); - Py_DECREF(tmp); - return val; - } -raise_overflow: - PyErr_SetString(PyExc_OverflowError, - "value too large to convert to int"); - return (int) -1; -raise_neg_overflow: - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to int"); - return (int) -1; -} - -/* CIntFromPy */ -static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *x) { - const size_t neg_one = (size_t) ((size_t) 0 - (size_t) 1), const_zero = (size_t) 0; - const int is_unsigned = neg_one > const_zero; -#if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { - if (sizeof(size_t) < sizeof(long)) { - __PYX_VERIFY_RETURN_INT(size_t, long, PyInt_AS_LONG(x)) - } else { - long val = PyInt_AS_LONG(x); - if (is_unsigned && unlikely(val < 0)) { - goto raise_neg_overflow; - } - return (size_t) val; - } - } else -#endif - if (likely(PyLong_Check(x))) { - if (is_unsigned) { -#if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)x)->ob_digit; - switch (Py_SIZE(x)) { - case 0: return (size_t) 0; - case 1: __PYX_VERIFY_RETURN_INT(size_t, digit, digits[0]) - case 2: - if (8 * sizeof(size_t) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(size_t) >= 2 * PyLong_SHIFT) { - return (size_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); - } - } - break; - case 3: - if (8 * sizeof(size_t) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(size_t) >= 3 * PyLong_SHIFT) { - return (size_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); - } - } - break; - case 4: - if (8 * sizeof(size_t) > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(size_t) >= 4 * PyLong_SHIFT) { - return (size_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); - } - } - break; - } -#endif -#if CYTHON_COMPILING_IN_CPYTHON - if (unlikely(Py_SIZE(x) < 0)) { - goto raise_neg_overflow; - } -#else - { - int result = PyObject_RichCompareBool(x, Py_False, Py_LT); - if (unlikely(result < 0)) - return (size_t) -1; - if (unlikely(result == 1)) - goto raise_neg_overflow; - } -#endif - if (sizeof(size_t) <= sizeof(unsigned long)) { - __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned long, PyLong_AsUnsignedLong(x)) -#ifdef HAVE_LONG_LONG - } else if (sizeof(size_t) <= sizeof(unsigned PY_LONG_LONG)) { - __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) -#endif - } - } else { -#if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)x)->ob_digit; - switch (Py_SIZE(x)) { - case 0: return (size_t) 0; - case -1: __PYX_VERIFY_RETURN_INT(size_t, sdigit, (sdigit) (-(sdigit)digits[0])) - case 1: __PYX_VERIFY_RETURN_INT(size_t, digit, +digits[0]) - case -2: - if (8 * sizeof(size_t) - 1 > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) { - return (size_t) (((size_t)-1)*(((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); - } - } - break; - case 2: - if (8 * sizeof(size_t) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) { - return (size_t) ((((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); - } - } - break; - case -3: - if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) { - return (size_t) (((size_t)-1)*(((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); - } - } - break; - case 3: - if (8 * sizeof(size_t) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) { - return (size_t) ((((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); - } - } - break; - case -4: - if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT) { - return (size_t) (((size_t)-1)*(((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); - } - } - break; - case 4: - if (8 * sizeof(size_t) > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT) { - return (size_t) ((((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); - } - } - break; - } -#endif - if (sizeof(size_t) <= sizeof(long)) { - __PYX_VERIFY_RETURN_INT_EXC(size_t, long, PyLong_AsLong(x)) -#ifdef HAVE_LONG_LONG - } else if (sizeof(size_t) <= sizeof(PY_LONG_LONG)) { - __PYX_VERIFY_RETURN_INT_EXC(size_t, PY_LONG_LONG, PyLong_AsLongLong(x)) -#endif - } - } - { -#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) - PyErr_SetString(PyExc_RuntimeError, - "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); -#else - size_t val; - PyObject *v = __Pyx_PyNumber_IntOrLong(x); - #if PY_MAJOR_VERSION < 3 - if (likely(v) && !PyLong_Check(v)) { - PyObject *tmp = v; - v = PyNumber_Long(tmp); - Py_DECREF(tmp); - } - #endif - if (likely(v)) { - int one = 1; int is_little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&val; - int ret = _PyLong_AsByteArray((PyLongObject *)v, - bytes, sizeof(val), - is_little, !is_unsigned); - Py_DECREF(v); - if (likely(!ret)) - return val; - } -#endif - return (size_t) -1; - } - } else { - size_t val; - PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); - if (!tmp) return (size_t) -1; - val = __Pyx_PyInt_As_size_t(tmp); - Py_DECREF(tmp); - return val; - } -raise_overflow: - PyErr_SetString(PyExc_OverflowError, - "value too large to convert to size_t"); - return (size_t) -1; -raise_neg_overflow: - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to size_t"); - return (size_t) -1; -} - -/* CIntToPy */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { - const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; - const int is_unsigned = neg_one > const_zero; - if (is_unsigned) { - if (sizeof(long) < sizeof(long)) { - return PyInt_FromLong((long) value); - } else if (sizeof(long) <= sizeof(unsigned long)) { - return PyLong_FromUnsignedLong((unsigned long) value); -#ifdef HAVE_LONG_LONG - } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { - return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -#endif - } - } else { - if (sizeof(long) <= sizeof(long)) { - return PyInt_FromLong((long) value); -#ifdef HAVE_LONG_LONG - } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { - return PyLong_FromLongLong((PY_LONG_LONG) value); -#endif - } - } - { - int one = 1; int little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&value; - return _PyLong_FromByteArray(bytes, sizeof(long), - little, !is_unsigned); - } -} - -/* CIntFromPy */ -static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { - const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; - const int is_unsigned = neg_one > const_zero; -#if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { - if (sizeof(long) < sizeof(long)) { - __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x)) - } else { - long val = PyInt_AS_LONG(x); - if (is_unsigned && unlikely(val < 0)) { - goto raise_neg_overflow; - } - return (long) val; - } - } else -#endif - if (likely(PyLong_Check(x))) { - if (is_unsigned) { -#if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)x)->ob_digit; - switch (Py_SIZE(x)) { - case 0: return (long) 0; - case 1: __PYX_VERIFY_RETURN_INT(long, digit, digits[0]) - case 2: - if (8 * sizeof(long) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(long) >= 2 * PyLong_SHIFT) { - return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); - } - } - break; - case 3: - if (8 * sizeof(long) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(long) >= 3 * PyLong_SHIFT) { - return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); - } - } - break; - case 4: - if (8 * sizeof(long) > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(long) >= 4 * PyLong_SHIFT) { - return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); - } - } - break; - } -#endif -#if CYTHON_COMPILING_IN_CPYTHON - if (unlikely(Py_SIZE(x) < 0)) { - goto raise_neg_overflow; - } -#else - { - int result = PyObject_RichCompareBool(x, Py_False, Py_LT); - if (unlikely(result < 0)) - return (long) -1; - if (unlikely(result == 1)) - goto raise_neg_overflow; - } -#endif - if (sizeof(long) <= sizeof(unsigned long)) { - __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x)) -#ifdef HAVE_LONG_LONG - } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { - __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) -#endif - } - } else { -#if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)x)->ob_digit; - switch (Py_SIZE(x)) { - case 0: return (long) 0; - case -1: __PYX_VERIFY_RETURN_INT(long, sdigit, (sdigit) (-(sdigit)digits[0])) - case 1: __PYX_VERIFY_RETURN_INT(long, digit, +digits[0]) - case -2: - if (8 * sizeof(long) - 1 > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { - return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case 2: - if (8 * sizeof(long) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { - return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case -3: - if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { - return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case 3: - if (8 * sizeof(long) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { - return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case -4: - if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { - return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case 4: - if (8 * sizeof(long) > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { - return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - } -#endif - if (sizeof(long) <= sizeof(long)) { - __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x)) -#ifdef HAVE_LONG_LONG - } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { - __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x)) -#endif - } - } - { -#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) - PyErr_SetString(PyExc_RuntimeError, - "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); -#else - long val; - PyObject *v = __Pyx_PyNumber_IntOrLong(x); - #if PY_MAJOR_VERSION < 3 - if (likely(v) && !PyLong_Check(v)) { - PyObject *tmp = v; - v = PyNumber_Long(tmp); - Py_DECREF(tmp); - } - #endif - if (likely(v)) { - int one = 1; int is_little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&val; - int ret = _PyLong_AsByteArray((PyLongObject *)v, - bytes, sizeof(val), - is_little, !is_unsigned); - Py_DECREF(v); - if (likely(!ret)) - return val; - } -#endif - return (long) -1; - } - } else { - long val; - PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); - if (!tmp) return (long) -1; - val = __Pyx_PyInt_As_long(tmp); - Py_DECREF(tmp); - return val; - } -raise_overflow: - PyErr_SetString(PyExc_OverflowError, - "value too large to convert to long"); - return (long) -1; -raise_neg_overflow: - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to long"); - return (long) -1; -} - -/* FastTypeChecks */ -#if CYTHON_COMPILING_IN_CPYTHON -static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) { - while (a) { - a = a->tp_base; - if (a == b) - return 1; - } - return b == &PyBaseObject_Type; -} -static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) { - PyObject *mro; - if (a == b) return 1; - mro = a->tp_mro; - if (likely(mro)) { - Py_ssize_t i, n; - n = PyTuple_GET_SIZE(mro); - for (i = 0; i < n; i++) { - if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b) - return 1; - } - return 0; - } - return __Pyx_InBases(a, b); -} -#if PY_MAJOR_VERSION == 2 -static int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject* exc_type2) { - PyObject *exception, *value, *tb; - int res; - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ErrFetch(&exception, &value, &tb); - res = exc_type1 ? PyObject_IsSubclass(err, exc_type1) : 0; - if (unlikely(res == -1)) { - PyErr_WriteUnraisable(err); - res = 0; - } - if (!res) { - res = PyObject_IsSubclass(err, exc_type2); - if (unlikely(res == -1)) { - PyErr_WriteUnraisable(err); - res = 0; - } - } - __Pyx_ErrRestore(exception, value, tb); - return res; -} -#else -static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) { - int res = exc_type1 ? __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type1) : 0; - if (!res) { - res = __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2); - } - return res; -} -#endif -static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) { - Py_ssize_t i, n; - assert(PyExceptionClass_Check(exc_type)); - n = PyTuple_GET_SIZE(tuple); -#if PY_MAJOR_VERSION >= 3 - for (i=0; ip) { - #if PY_MAJOR_VERSION < 3 - if (t->is_unicode) { - *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL); - } else if (t->intern) { - *t->p = PyString_InternFromString(t->s); - } else { - *t->p = PyString_FromStringAndSize(t->s, t->n - 1); - } - #else - if (t->is_unicode | t->is_str) { - if (t->intern) { - *t->p = PyUnicode_InternFromString(t->s); - } else if (t->encoding) { - *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL); - } else { - *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1); - } - } else { - *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1); - } - #endif - if (!*t->p) - return -1; - if (PyObject_Hash(*t->p) == -1) - return -1; - ++t; - } - return 0; -} - -static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) { - return __Pyx_PyUnicode_FromStringAndSize(c_str, (Py_ssize_t)strlen(c_str)); -} -static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject* o) { - Py_ssize_t ignore; - return __Pyx_PyObject_AsStringAndSize(o, &ignore); -} -#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT -#if !CYTHON_PEP393_ENABLED -static const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) { - char* defenc_c; - PyObject* defenc = _PyUnicode_AsDefaultEncodedString(o, NULL); - if (!defenc) return NULL; - defenc_c = PyBytes_AS_STRING(defenc); -#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII - { - char* end = defenc_c + PyBytes_GET_SIZE(defenc); - char* c; - for (c = defenc_c; c < end; c++) { - if ((unsigned char) (*c) >= 128) { - PyUnicode_AsASCIIString(o); - return NULL; - } - } - } -#endif - *length = PyBytes_GET_SIZE(defenc); - return defenc_c; -} -#else -static CYTHON_INLINE const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) { - if (unlikely(__Pyx_PyUnicode_READY(o) == -1)) return NULL; -#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII - if (likely(PyUnicode_IS_ASCII(o))) { - *length = PyUnicode_GET_LENGTH(o); - return PyUnicode_AsUTF8(o); - } else { - PyUnicode_AsASCIIString(o); - return NULL; - } -#else - return PyUnicode_AsUTF8AndSize(o, length); -#endif -} -#endif -#endif -static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) { -#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT - if ( -#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII - __Pyx_sys_getdefaultencoding_not_ascii && -#endif - PyUnicode_Check(o)) { - return __Pyx_PyUnicode_AsStringAndSize(o, length); - } else -#endif -#if (!CYTHON_COMPILING_IN_PYPY) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE)) - if (PyByteArray_Check(o)) { - *length = PyByteArray_GET_SIZE(o); - return PyByteArray_AS_STRING(o); - } else -#endif - { - char* result; - int r = PyBytes_AsStringAndSize(o, &result, length); - if (unlikely(r < 0)) { - return NULL; - } else { - return result; - } - } -} -static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) { - int is_true = x == Py_True; - if (is_true | (x == Py_False) | (x == Py_None)) return is_true; - else return PyObject_IsTrue(x); -} -static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject* x) { - int retval; - if (unlikely(!x)) return -1; - retval = __Pyx_PyObject_IsTrue(x); - Py_DECREF(x); - return retval; -} -static PyObject* __Pyx_PyNumber_IntOrLongWrongResultType(PyObject* result, const char* type_name) { -#if PY_MAJOR_VERSION >= 3 - if (PyLong_Check(result)) { - if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1, - "__int__ returned non-int (type %.200s). " - "The ability to return an instance of a strict subclass of int " - "is deprecated, and may be removed in a future version of Python.", - Py_TYPE(result)->tp_name)) { - Py_DECREF(result); - return NULL; - } - return result; - } -#endif - PyErr_Format(PyExc_TypeError, - "__%.4s__ returned non-%.4s (type %.200s)", - type_name, type_name, Py_TYPE(result)->tp_name); - Py_DECREF(result); - return NULL; -} -static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x) { -#if CYTHON_USE_TYPE_SLOTS - PyNumberMethods *m; -#endif - const char *name = NULL; - PyObject *res = NULL; -#if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x) || PyLong_Check(x))) -#else - if (likely(PyLong_Check(x))) -#endif - return __Pyx_NewRef(x); -#if CYTHON_USE_TYPE_SLOTS - m = Py_TYPE(x)->tp_as_number; - #if PY_MAJOR_VERSION < 3 - if (m && m->nb_int) { - name = "int"; - res = m->nb_int(x); - } - else if (m && m->nb_long) { - name = "long"; - res = m->nb_long(x); - } - #else - if (likely(m && m->nb_int)) { - name = "int"; - res = m->nb_int(x); - } - #endif -#else - if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) { - res = PyNumber_Int(x); - } -#endif - if (likely(res)) { -#if PY_MAJOR_VERSION < 3 - if (unlikely(!PyInt_Check(res) && !PyLong_Check(res))) { -#else - if (unlikely(!PyLong_CheckExact(res))) { -#endif - return __Pyx_PyNumber_IntOrLongWrongResultType(res, name); - } - } - else if (!PyErr_Occurred()) { - PyErr_SetString(PyExc_TypeError, - "an integer is required"); - } - return res; -} -static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { - Py_ssize_t ival; - PyObject *x; -#if PY_MAJOR_VERSION < 3 - if (likely(PyInt_CheckExact(b))) { - if (sizeof(Py_ssize_t) >= sizeof(long)) - return PyInt_AS_LONG(b); - else - return PyInt_AsSsize_t(b); - } -#endif - if (likely(PyLong_CheckExact(b))) { - #if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)b)->ob_digit; - const Py_ssize_t size = Py_SIZE(b); - if (likely(__Pyx_sst_abs(size) <= 1)) { - ival = likely(size) ? digits[0] : 0; - if (size == -1) ival = -ival; - return ival; - } else { - switch (size) { - case 2: - if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) { - return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); - } - break; - case -2: - if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) { - return -(Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); - } - break; - case 3: - if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) { - return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); - } - break; - case -3: - if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) { - return -(Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); - } - break; - case 4: - if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) { - return (Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); - } - break; - case -4: - if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) { - return -(Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); - } - break; - } - } - #endif - return PyLong_AsSsize_t(b); - } - x = PyNumber_Index(b); - if (!x) return -1; - ival = PyInt_AsSsize_t(x); - Py_DECREF(x); - return ival; -} -static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { - return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); -} -static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) { - return PyInt_FromSize_t(ival); -} - - -#endif /* Py_PYTHON_H */ From 971979b21bbb9661186f85a5b59eaf91572582b4 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 17:10:10 -0600 Subject: [PATCH 299/336] Update gen_rec.py --- reccdi/src_py/controller/gen_rec.py | 233 +++++++++++----------------- 1 file changed, 93 insertions(+), 140 deletions(-) diff --git a/reccdi/src_py/controller/gen_rec.py b/reccdi/src_py/controller/gen_rec.py index 9abb626..473d8bf 100644 --- a/reccdi/src_py/controller/gen_rec.py +++ b/reccdi/src_py/controller/gen_rec.py @@ -16,7 +16,9 @@ import reccdi.src_py.controller.reconstruction_multi as multi import reccdi.src_py.utilities.utils as ut import reccdi.src_py.utilities.utils_ga as gut - +import multiprocessing as mp +from functools import partial +import time __author__ = "Barbara Frosik" __copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." @@ -149,12 +151,6 @@ def rank(self, images, errs): elif metric == 'area': support = ut.shrink_wrap(image, .2, .5) rank_property.append(sum(sum(sum(support)))) - # elif metric == 'TV': - # gradients = np.gradient(image) - # TV = np.zeros(image.shape) - # for gr in gradients: - # TV += abs(gr) - # rank_property.append(TV) else: # metric is 'chi' rank_property.append(errs[i][-1]) @@ -169,6 +165,7 @@ def rank(self, images, errs): def order(self, images, supports, cohs, errs, recips): + start = time.time() ranks = self.rank(images, errs) ordered_images = [] ordered_supports = [] @@ -182,24 +179,83 @@ def order(self, images, supports, cohs, errs, recips): ordered_errs.append(errs[ranks[i]]) ordered_recips.append(recips[ranks[i]]) + stop = time.time() + # print ('rank and order time', (stop - start)) return ordered_images, ordered_supports, ordered_cohs, ordered_errs, ordered_recips + def breed_one(self, alpha, breed_mode, beta): + beta = gut.zero_phase(beta, 0) + alpha = gut.check_get_conj_reflect(beta, alpha) + alpha_s = gut.align_arrays(beta, alpha) + alpha_s = gut.zero_phase(alpha_s, 0) + ph_alpha = np.angle(alpha_s) + beta = gut.zero_phase_cc(beta, alpha_s) + ph_beta = np.angle(beta) + if breed_mode == 'sqrt_ab': + beta = np.sqrt(abs(alpha_s) * abs(beta)) * np.exp(0.5j * (ph_beta + ph_alpha)) + + elif breed_mode == 'dsqrt': + amp = pow(abs(beta), .5) + beta = amp * np.exp(1j * ph_beta) + + elif breed_mode == 'pixel_switch': + cond = np.random.random_sample(beta.shape) + beta = np.where((cond > 0.5), beta, alpha_s) + + elif breed_mode == 'b_pa': + beta = abs(beta) * np.exp(1j * (ph_alpha)) + + elif breed_mode == '2ab_a_b': + beta = 2 * (beta * alpha_s) / (beta + alpha_s) + + elif breed_mode == '2a_b_pa': + beta = (2 * abs(alpha_s) - abs(beta)) * np.exp(1j * ph_alpha) + + elif breed_mode == 'sqrt_ab_pa': + beta = np.sqrt(abs(alpha_s) * abs(beta)) * np.exp(1j * ph_alpha) + + elif breed_mode == 'sqrt_ab_pa_recip': + temp1 = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(beta))) + temp2 = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(alpha_s))) + temp = np.sqrt(abs(temp1) * abs(temp2)) * np.exp(1j * np.angle(temp2)) + beta = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(temp))) + + elif breed_mode == 'sqrt_ab_recip': + temp1 = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(beta))) + temp2 = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(alpha_s))) + temp = np.sqrt(abs(temp1) * abs(temp2)) * np.exp(.5j * np.angle(temp1)) * np.exp(.5j * np.angle(temp2)) + beta = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(temp))) + + elif breed_mode == 'max_ab': + beta = np.maximum(abs(alpha_s), abs(beta)) * np.exp(.5j * (ph_beta + ph_alpha)) + + elif breed_mode == 'max_ab_pa': + beta = np.maximum(abs(alpha_s), abs(beta)) * np.exp(1j * ph_alpha) + + elif breed_mode == 'min_ab_pa': + beta = np.minimum(abs(alpha_s), abs(beta)) * np.exp(1j * ph_alpha) + + elif breed_mode == 'avg_ab': + beta = 0.5 * (alpha_s + beta) + + elif breed_mode == 'avg_ab_pa': + beta = 0.5 * (abs(alpha_s) + abs(beta)) * np.exp(1j * (ph_alpha)) + + return beta + def breed(self, images): """ This function ranks the multiple reconstruction. It breeds next generation by combining the reconstructed images, centered For each combined image the support is calculated and coherence is set to None. The number of bred images matches the number of reconstructions. - Parameters ---------- images : list ordered (best to worst) list of images arrays - supports : list list of supports arrays - Returns ------- child_images : list @@ -210,160 +266,62 @@ def breed(self, images): list of child coherence, set to None """ print ('breeding generation ', (self.current_gen + 1)) + start = time.time() + child_images = [] + child_supports = [] + def collect_result(result): + for r in result: + if r is None: + continue + child_images.append(r) + child_supports.append(ut.shrink_wrap(r, threshold, sigma)) + sigma = self.ga_support_sigmas[self.current_gen] threshold = self.ga_support_thresholds[self.current_gen] breed_mode = self.breed_modes[self.current_gen] - if breed_mode == 'none': - return images, None reconstructions = len(images) if self.worst_remove_no is not None: reconstructions = reconstructions - self.worst_remove_no[self.current_gen] + if breed_mode == 'none': + return images, None - ims = images[0 : reconstructions] - dims = len(ims[0].shape) - ims_arr = np.stack(ims) - - alpha = ims[0] + alpha = images[0] alpha = gut.zero_phase(alpha, 0) + ims = images[1 : reconstructions] # put the best into the bred population - child_images = [alpha] - child_supports = [ut.shrink_wrap(alpha, threshold, sigma)] - - for ind in range(1, len(ims)): - beta = ims[ind] - beta = gut.zero_phase(beta, 0) - alpha = gut.check_get_conj_reflect(beta, alpha) - alpha_s = gut.align_arrays(beta, alpha) - alpha_s = gut.zero_phase(alpha_s, 0) - ph_alpha = np.angle(alpha_s) - beta = gut.zero_phase_cc(beta, alpha_s) - ph_beta = np.angle(beta) - - if breed_mode == 'sqrt_ab': - beta = np.sqrt(abs(alpha_s) * abs(beta)) * np.exp(0.5j * (ph_beta + ph_alpha)) - - elif breed_mode == 'max_all': - amp = np.amax(abs(ims_arr), axis=0) - beta = amp * np.exp(1j * ph_beta) - - elif breed_mode == 'Dhalf': - nhalf = round(len(ims)/2) - delta = nhalf * ims[ind] - np.sum(np.stack(ims[:nhalf]), axis=0) - beta = beta + delta - - elif breed_mode == 'dsqrt': - amp = pow(abs(beta), .5) - beta = amp * np.exp(1j * ph_beta) - - elif breed_mode == 'pixel_switch': - cond = np.random.random_sample(beta.shape) - beta = np.where((cond > 0.5), beta, alpha_s) - - elif breed_mode == 'b_pa': - beta = abs(beta) * np.exp(1j * (ph_alpha)) - - elif breed_mode == '2ab_a_b': - beta = 2*(beta * alpha_s) / (beta + alpha_s) - - elif breed_mode == '2a_b_pa': - beta = (2*abs(alpha_s)-abs(beta)) * np.exp(1j *ph_alpha) - - elif breed_mode == 'sqrt_ab_pa': - beta = np.sqrt(abs(alpha_s) * abs(beta)) * np.exp(1j * ph_alpha) - - elif breed_mode == 'sqrt_ab_pa_recip': - temp1 = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(beta))) - temp2 = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(alpha_s))) - temp = np.sqrt(abs(temp1) * abs(temp2)) * np.exp(1j * np.angle(temp2)) - beta = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(temp))) - - elif breed_mode == 'sqrt_ab_recip': - temp1 = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(beta))) - temp2 = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(alpha_s))) - temp = np.sqrt(abs(temp1) *abs(temp2)) *np.exp(.5j *np.angle(temp1)) *np.exp(.5j *np.angle(temp2)) - beta = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(temp))) - - elif breed_mode == 'max_ab': - beta = np.maximum(abs(alpha_s), abs(beta)) * np.exp(.5j *(ph_beta + ph_alpha)) - - elif breed_mode == 'max_ab_pa': - beta = np.maximum(abs(alpha_s), abs(beta)) * np.exp(1j *ph_alpha) - - elif breed_mode == 'min_ab_pa': - beta = np.minimum(abs(alpha_s), abs(beta)) * np.exp(1j *ph_alpha) - - elif breed_mode == 'avg_ab': - beta = 0.5 *(alpha_s + beta) - - elif breed_mode == 'avg_ab_pa': - beta = 0.5 *(abs(alpha_s) + abs(beta)) * np.exp(1j *(ph_alpha)) - else: - # The following modes include gamma; gamma is in index 1 - # gamma = zero_phase(gamma, val); - # ph_gamma = atan2(imag(gamma), real(gamma)); - - gamma = ims[1] - gamma = gut.zero_phase(gamma, 0) - if ind > 1: - gamma = gut.check_get_conj_reflect(beta, gamma) - gamma_s = gut.align_arrays(abs(beta), abs(gamma)) - gamma_s = gut.zero_phase(gamma_s, 0) - ph_gamma = np.angle(gamma_s) - else: - gamma_s = gamma - ph_gamma = np.arctan2(gamma.imag, gamma.real) - - if breed_mode == 'sqrt_abg': - beta = pow((abs(alpha_s) *abs(beta) *abs(gamma_s)), (1/3)) *np.exp(1j *(ph_beta+ph_alpha+ph_gamma)/3.0) - - elif breed_mode == 'sqrt_abg_pa': - beta = pow((abs(alpha_s) *abs(beta) *abs(gamma_s)), (1/3)) *np.exp(1j *ph_alpha) - - elif breed_mode == 'max_abg': - beta = np.maximum(np.maximum(abs(alpha_s), abs(beta)), abs(gamma_s)) *np.exp(1j *(ph_beta+ph_alpha+ph_gamma)/3.0) - - elif breed_mode == 'max_abg_pa': - beta = np.maximum(np.maximum(abs(alpha_s), abs(beta)),abs(gamma_s)) *np.exp(1j *ph_alpha) - - elif breed_mode == 'avg_abg': - beta = (1/3)*(alpha_s+beta+gamma_s) - - elif breed_mode == 'avg_abg_pa': - beta = (1/3)*(abs(alpha_s)+abs(beta)+abs(gamma_s)) *np.exp(1j *ph_alpha) - - elif breed_mode == 'avg_sqrt': - amp=( pow(abs(beta), 1/3)+pow(abs(alpha_s), 1/3)+pow(abs(gamma_s), 1/3))/3 - beta = pow(amp, 3) * np.exp(1j *ph_beta) - - child_images.append(beta) - child_supports.append(ut.shrink_wrap(beta, threshold, sigma)) - + child_images.append(alpha) + child_supports.append(ut.shrink_wrap(alpha, threshold, sigma)) + + no_processes = min(len(ims), mp.cpu_count()) + func = partial(self.breed_one, alpha, breed_mode) + with mp.Pool(processes = no_processes) as pool: + pool.map_async(func, ims, callback=collect_result) + pool.close() + pool.join() + pool.terminate() + + stop = time.time() + # print ('breeding time', (stop - start)) return child_images, child_supports def reconstruction(proc, conf_file, datafile, dir, devices): """ This function controls reconstruction utilizing genetic algorithm. - Parameters ---------- generation : int number of generations - proc : str processor to run on (cpu, opencl, or cuda) - data : numpy array initial data - conf_info : str experiment directory or configuration file. If it is directory, the "conf/config_rec" will be appended to determine configuration file - conf_map : dict a dictionary from parsed configuration file - Returns ------- nothing @@ -418,7 +376,6 @@ def reconstruction(proc, conf_file, datafile, dir, devices): # save the generation results gen_save_dir = os.path.join(save_dir, 'g_' + str(g)) ut.save_multiple_results(len(images), images, supports, cohs, errs, recips, flows, iter_arrs, gen_save_dir, metrics) - print ('g, generations, images no', g, generations, len(images)) if g < generations - 1 and len(images) > 1: images, shrink_supports = gen_obj.breed(images) if shrink_supports is not None: @@ -431,17 +388,13 @@ def reconstruction(proc, conf_file, datafile, dir, devices): rec = single for g in range(generations): - print ('gen', g) gen_data = gen_obj.get_data(data) image, support, coh, err, recip, flows, iter_arrs = rec.single_rec(proc, gen_data, conf_file, config_map, devices[0], image, support, coh) if image is None: return # save the generation results gen_save_dir = os.path.join(save_dir, 'g_' + str(g)) - print ('gen save dir', gen_save_dir) ut.save_results(image, support, coh, err, recip, flows, iter_arrs, gen_save_dir) gen_obj.next_gen() print ('done gen') - - From d38ad72052fa451e698069293ea830036366e96b Mon Sep 17 00:00:00 2001 From: Service Account for David Cyl Date: Thu, 30 Jan 2020 17:15:05 -0600 Subject: [PATCH 300/336] cleaned up viz.py and added something to detector. --- reccdi/src_py/beamlines/aps_34id/detectors.py | 1 + reccdi/src_py/beamlines/aps_34id/viz.py | 91 ++++--------------- 2 files changed, 21 insertions(+), 71 deletions(-) diff --git a/reccdi/src_py/beamlines/aps_34id/detectors.py b/reccdi/src_py/beamlines/aps_34id/detectors.py index 7d21f7a..e8c5759 100644 --- a/reccdi/src_py/beamlines/aps_34id/detectors.py +++ b/reccdi/src_py/beamlines/aps_34id/detectors.py @@ -18,6 +18,7 @@ def __init__(self, det_name): class Detector_34idcTIM2(Detector): name="34idcTIM2:" + dims=(512,512) pixel=(55.0e-6,55e-6) pixelorientation=('x+','y-') #in xrayutilities notation def __init__(self): diff --git a/reccdi/src_py/beamlines/aps_34id/viz.py b/reccdi/src_py/beamlines/aps_34id/viz.py index 0ec46ef..70f3e46 100644 --- a/reccdi/src_py/beamlines/aps_34id/viz.py +++ b/reccdi/src_py/beamlines/aps_34id/viz.py @@ -9,7 +9,7 @@ import numpy as np import scipy.ndimage as ndi import math as m -import pyevtk.hl as vtk +#import pyevtk.hl as vtk from tvtk.api import tvtk import xrayutilities.experiment as xuexp import reccdi.src_py.utilities.utils as ut @@ -90,38 +90,26 @@ def __init__(self, config): except: pass try: -# saxes=[] -# print(config['sampleaxes'], type(config['sampleaxes'])) -# for a in config['sampleaxes'][1:-1].split(','): -# saxes.append(a.split("\'")[1]) -# self.sampleaxes = saxes self.sampleaxes=tuple(config['sampleaxes']) except KeyError: pass try: -# daxes=[] -# for a in config['detectoraxes'][1:-1].split(','): -# daxes.append(a.split("\'")[1]) -# self.detectoraxes = daxes self.detectoraxes = tuple(config['detectoraxes']) except KeyError: pass try: - #self.sampleaxes_name = config['sampleaxes_name'][1:-1].split(',') self.sampleaxes_name = tuple(config['sampleaxes_name']) except KeyError: pass try: - #self.detectoraxes_name = config['detectoraxes_name'][1:-1].split(',') self.detectoraxes_name = tuple(config['detectoraxes_name']) except KeyError: pass try: - #self.incidentaxis = config['incidentaxis'][1:-1].split(',') self.incidentaxis = tuple(config['incidentaxis']) except KeyError: pass - #axes are set from the spec file, but if they are specified in the runs config file + #axes values are set from the spec file, but if they are specified in the config file #the vals from config take precedence. for axes in self.detectoraxes_name: if axes in config: @@ -156,23 +144,15 @@ def __init__(self, config): for attr in self.detector_obj.__dict__.keys(): if not attr.startswith('__'): self.__dict__[attr]=self.detector_obj.__dict__[attr] -# self.sampleaxes=self.diffractometer_obj.sampleaxes -# self.detectoraxes=self.diffractometer_obj.detectoraxes -# self.sampleaxes_name=self.diffractometer_obj.sampleaxes_name -# self.detectoraxes_name=self.diffractometer_obj.detectoraxes_name except: pass try: - #pixorient=[] - #for a in config['pixelorientation'][1:-1].split(','): - # pixorient.append(a.split("\'")[1]) self.pixelorientation = tuple(config['pixelorientation']) except KeyError: pass try: - #self.pixel = config['pixel'][1:-1].split(',') self.pixel = tuple(config['pixel']) except KeyError: pass @@ -217,6 +197,7 @@ def __init__(self): @measure def set_geometry(self, p, shape): self.params = p + #DisplayParams is not expected to do any modifications of params (units, etc) px = p.pixel[0]*p.binning[0] py = p.pixel[1]*p.binning[1] detdist=p.detdist/1000.0 #convert to meters @@ -242,20 +223,11 @@ def set_geometry(self, p, shape): #compute for 4pixel (2x2) detector self.qc.init_area(p.pixelorientation[0],p.pixelorientation[1], shape[0],shape[1], 2,2, distance=detdist, pwidth1=px, pwidth2=py) - #make arrays from th,phi,chi. Get dQ in single call to qc.area - #will work for both angle and energy scans then. Just need to learn the ordering of axes - - #q1=np.array(self.qc.area(p.th,p.chi,p.phi,p.delta,p.gamma,deg=True)) - #qshape=q1.shape - #q1=np.array(vtrans([q1[0,:,:].ravel(),q1[1,:,:].ravel(),q1[2,:,:].ravel()],p.theta,p.chi,p.phi)).reshape(qshape) #I think q2 will always be (3,2,2,2) (vec, scanarr, px, py) - - - #should put some try except around this in case something goes wrong. - if scanmot=='en': + if scanmot=='en': #seems en scans always have to be treated differently since init is unique q2=np.array(self.qc.area(p.th, p.chi,p.phi,p.delta,p.gamma,deg=True)) - elif scanmot in p.sampleaxes_name: + elif scanmot in p.sampleaxes_name: #based on scanmot args are made for qc.area args=[] axisindex=p.sampleaxes_name.index(scanmot) for n in range(len(p.sampleaxes_name)): @@ -271,29 +243,13 @@ def set_geometry(self, p, shape): else: print("scanmot not in sample axes or energy") -# if p.scanmot.strip()=='th': -# scanarr=np.array( (p.th, p.th+p.scanmot_del) ) -# q2=np.array(self.qc.area( *(scanarr, p.chi,p.phi,p.delta,p.gamma),deg=True)) -# q2=np.array(self.qc.area(p.th+p.scanmot_del, p.chi,p.phi,p.delta,p.gamma,deg=True)) - # q2=np.array(self.qc.transformSample2Lab([q2[0,:,:],q1[1,:,:],q1[2,:,:]],p.theta+p.scanmot_del,p.chi,p.phi)) -# elif p.scanmot.strip()=='chi': -# scanarr=np.array( (p.chi, p.chi+p.scanmot_del) ) -# q2=np.array(self.qc.area(p.th, scanarr, p.phi,p.delta,p.gamma,deg=True)) -# # q2=np.array(self.qc.transformSample2Lab([q2[0,:,:],q1[1,:,:],q1[2,:,:]],p.theta,p.chi+p.scanmot_del,p.phi)) -# elif p.scanmot.strip()=='phi': -# scanarr=np.array( (p.phi, p.phi+p.scanmot_del) ) -# q2=np.array(self.qc.area(p.th,p.chi,scanarr,p.delta,p.gamma,deg=True)) -# # q2=np.array(self.qc.transformSample2Lab([q2[0,:,:],q1[1,:,:],q1[2,:,:]],p.theta,p.chi,p.phi+p.scanmot_del)) - print("q2", q2.shape) Astar=q2[:,0,1,0]-q2[:,0,0,0] Bstar=q2[:,0,0,1]-q2[:,0,0,0] Cstar=q2[:,1,0,0]-q2[:,0,0,0] -# Astar=q1[:,1,0]-q1[:,0,0] -# Bstar=q1[:,0,1]-q1[:,0,0] -# Cstar=(q2-q1)[:,0,0] print("Recip") print(Astar, Bstar, Cstar) + #transform to lab coords from sample reference frame Astar=self.qc.transformSample2Lab(Astar, p.th,p.chi,p.phi)*10.0 #convert to inverse nm. Bstar=self.qc.transformSample2Lab(Bstar, p.th,p.chi,p.phi)*10.0 Cstar=self.qc.transformSample2Lab(Cstar, p.th,p.chi,p.phi)*10.0 @@ -332,19 +288,12 @@ def update_dirspace(self, shape): 0:dims[0] * self.dxdir:self.dxdir, \ 0:dims[1] * self.dydir:self.dydir,\ 0:dims[2] * self.dzdir:self.dzdir] -# r = np.mgrid[ -# 0:dims[0]*self.dxdir:self.dxdir, \ -# (dims[1]-1)*self.dydir:-self.dydir:-self.dydir,\ -# 0:dims[2]*self.dzdir:self.dzdir] origshape=r.shape r.shape = 3, dims[0] * dims[1] * dims[2] - #r = r.transpose() self.dir_coords = np.dot(self.Tdir, r).transpose() -# self.dir_coords = self.dir_coords.transpose() -# self.dir_coords.shape=origshape print("dir shape", self.dir_coords.shape) self.dirspace_uptodate=1 @@ -356,7 +305,6 @@ def update_recipspace(self, shape): q.shape = 3, dims[0] * dims[1] * dims[2] self.recip_coords = np.dot(self.Trecip, q).transpose() - #self.recip_coords.shape=origshape self.recipspace_uptodate=1 def clear_direct_arrays(self): @@ -445,16 +393,17 @@ def write_recipspace(self, filename, **args): sgwriter.write() print ('saved file', filename) - @measure - def write_directspace_pyevtk(self, filename, **args): - print(self.dir_arrs.keys()) - vtk.gridToVTK(filename, self.dir_coords[0,:,:,:].copy(), \ - self.dir_coords[1,:,:,:].copy(), \ - self.dir_coords[2,:,:,:].copy(), pointData=self.dir_arrs) - vtk.imageToVTK(filename, pointData=self.dir_arrs) - - def write_recipspace_pyevtk(self, filename, **args): - vtk.gridToVTK(filename, self.recip_coords[0,:,:,:].copy(), \ - self.recip_coords[1,:,:,:].copy(), \ - self.recip_coords[2,:,:,:].copy(), pointData=self.recip_arrs) - vtk.imageToVTK(filename, pointData=self.recip_arrs) +#Save until we finally give up in pyevtk +# @measure +# def write_directspace_pyevtk(self, filename, **args): +# print(self.dir_arrs.keys()) +# vtk.gridToVTK(filename, self.dir_coords[0,:,:,:].copy(), \ +# self.dir_coords[1,:,:,:].copy(), \ +# self.dir_coords[2,:,:,:].copy(), pointData=self.dir_arrs) +# vtk.imageToVTK(filename, pointData=self.dir_arrs) +# +# def write_recipspace_pyevtk(self, filename, **args): +# vtk.gridToVTK(filename, self.recip_coords[0,:,:,:].copy(), \ +# self.recip_coords[1,:,:,:].copy(), \ +# self.recip_coords[2,:,:,:].copy(), pointData=self.recip_arrs) +# vtk.imageToVTK(filename, pointData=self.recip_arrs) From 5cd2471fcd6e24e186fb54aaabbb5cd2b0fa1ecb Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 17:15:34 -0600 Subject: [PATCH 301/336] Update config_disp --- config_disp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/config_disp b/config_disp index e1537a6..e74f32b 100644 --- a/config_disp +++ b/config_disp @@ -21,3 +21,6 @@ pixel = (55.0e-6, 55.0e-6) //crop = (120,120,120) crop = (.75, .75, .75) +//upsize when running ramp removal +rampups = 1 + From c97c3bbbe1a70a8612a6ea09da5a65cbbd1aa627 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 17:16:46 -0600 Subject: [PATCH 302/336] Update config_rec --- config_rec | 50 +++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/config_rec b/config_rec index 66996cd..5ba9922 100644 --- a/config_rec +++ b/config_rec @@ -14,10 +14,10 @@ // Adding a new feature/ trigger is described in common.h header file. // GENERAL -//data_dir = "data" +data_dir = "data" // directory from which data is read -//save_dir = "results" +save_dir = "results" // directory where results of reconstruction are saved as npy files // if samples > 1, result from each thread will be stored in subdirectory 1,2,3 etc. @@ -25,26 +25,26 @@ cont = false // only applied if generations equals 1, or not defined // if true, the reconstruction start with previous results stored in continue_dir -// continue_dir = "cont" +continue_dir = "cont" // directory from which results are read for reconstruction continuation // if the directory contains subdirectories, a thread will start for each subdirectory -reconstructions = 1 +samples = 1 // number of reconstructions to start with // typically used when running genetic algorithm -device = (0,1) - // IDs of the target devices for each thread (reconstruction). +device = (0,0) + // IDs of the target devices for each thread (sample). // If not defined, it will default to -1 for the OS to select device -garbage_trigger = (10,5) +garbage_trigger = (10,.5) // ArrayFire memory management is not reliable, the way around is to call garbage // collection per defined number of iterations. Decrease this value if out of memory // error occurs -algorithm_sequence = ((3, ("ER",20), ("HIO", 180)), (1,("ER",20))) - // defines algorithm applied in each iteration during modulus projection by a sequence of lists. - // The first number in a list is a repeat, followed by lists of pairs, each +algorithm_sequence = ((2, ("ER",19), ("HIO", 10)), (1,("ER",20))) + // defines algorithm applied in each iteration during modulus projection by a sequence of tuples. + // The first number in a tuple is a repeat, followed by tuples of pairs, each // pair defining algorithm and number of iterations to run the algorithm. beta = .9; @@ -54,7 +54,7 @@ beta = .9; generations = 1 // number of generations ga_metrics = ("chi", "sharpness") - // defines which metric should be used to rank the reconstruction results + // defines which metric should be used to rank the reconstruction results (samples) // supported: 'chi', 'sharpness', 'summed_phase', 'area', ('TV') ga_breed_modes = ("sqrt_ab", "Dhalf") @@ -62,10 +62,10 @@ ga_breed_modes = ("sqrt_ab", "Dhalf") // there is no breeding // supported: 'sqrt_ab', 'max_all', 'Dhalf', 'Dhalf-best', 'dsqrt', 'pixel_switch', // 'b_pa', '2ab_a_b', '2a-b_pa', 'sqrt_ab_pa', 'sqrt_ab_pa_recip', 'sqrt_ab_recip', - // 'max_ab', 'max_ab_pa', 'min_ab_pa', 'avg_ab', 'avg_ab_pa', 'sqrt_abg', + // 'max_ab', 'max_ab_pa', 'min_ab_pa', 'avg_ab', 'avg_ab_pa',= 'sqrt_abg', // 'sqrt_abg_pa', 'max_abg','max_abg_pa', 'avg_abg', 'avg_abg_pa', 'avg_sqrt' -// ga_cullings = (2,1) +ga_cullings = (2,1) // defines how many worst samples to remove in breeding phase for each generation // defaults to 0 @@ -77,11 +77,16 @@ ga_support_sigmas = (1.1, 1.0) // the support is recalculated with this sigma after breeding phase // defaults to support sigma -// ga_low_resolution_sigmas = (2.0, 1.5) +ga_low_resolution_sigmas = (2.0, 1.5) // list of sigmas that will be used in subsequent generations to calculate // Gauss (assuming algorithm is GAUSS) and apply it to the data // This determines low resolution generations number +ga_low_resolution_alg = "GAUSS" + // algorithm to use to apply resolution. Supported algorithms: + // GAUSS + + // TWIN // twin feature trims the image array at the current state by zeroing half of the array in each dimension. @@ -98,7 +103,7 @@ twin_halves = (0, 0) // Support area is an array that defines region in which the image is meaningful. This area is recalculated at the // trigger iteration. The calculation employ an algorithm defined here as support_type. -amp_support_trigger = (10, 1) +amp_support_trigger = (7, 5) // defines when to update support array using the parameters below. // Comment out, if support feature not used. support_type = "GAUSS"; @@ -113,7 +118,7 @@ support_area = (.5,.5,.5) // At the begginning iterations the support area is modified in respect to the phase. Support area will exclude points // that phase is outside of the defined bounds -phase_support_trigger = (0, 1, 310) +phase_support_trigger = (0, 1, 45) // defines when to update support array using the parameters below by applaying phase constrain. // Comment out, if phase constrain feature not used. // when running GA applied only in first generation @@ -124,7 +129,7 @@ phase_max = 1.57; // Partial coherence triggers recalculation of coherence array for the amplitudes in reciprocal space. // After first coherence array is determined, it is used for convolution in subsequent iteration. -pcdi_trigger = (50, 50) +pcdi_trigger = (16, 14) // defines when to update coherence using the parameters below. // Comment out, if pcdi feature not used. partial_coherence_type = "LUCY"; @@ -143,17 +148,17 @@ partial_coherence_roi = (32,32,32); // The iter_res_det_range is similiary linespaced for the duration of low resolution iterations. The values are used // as sigmas to calculate Gaussian distribution and applied (multiplied) to data. -resolution_trigger = (0, 1, 320) +resolution_trigger = (0, 1, 40) // defines when to apply low resolution using the parameters below. // Comment out, if low resolution feature not used. // when running GA applied only in first generation -iter_res_sigma_range = (2.0) +iter_res_sigma_range = (2.0, 1.0) // used when applying low resolution to replace support sigma. // The sigmas are linespaced for low resolution iterations from first value to last. // If only one number given, the last sigma will default to support_sigma. -iter_res_det_range = (.7) +iter_res_det_range = (.7, 1.0) // used when applying low resolution data mask while iterating. // The det values are linespaced for low resolution iterations from first value to last. // The mask is gauss with sigma of linespaced det. If only one number given, @@ -166,8 +171,3 @@ iter_res_det_range = (.7) average_trigger = (-65, 1) // defines when to apply averaging. Negative start means it is offset from the last iteration // Comment out, if averaging not used. - -progress_trigger = (0, 20) - // defines when to print info on the console - // the info includes current iteration and error - From e4c4badb76f5e0f87dd7412c554cf2a555f38a82 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 17:19:19 -0600 Subject: [PATCH 303/336] Update config_rec --- config_rec | 56 ++++++++++++++++++++++++++---------------------------- 1 file changed, 27 insertions(+), 29 deletions(-) diff --git a/config_rec b/config_rec index 5ba9922..3252ec6 100644 --- a/config_rec +++ b/config_rec @@ -14,10 +14,10 @@ // Adding a new feature/ trigger is described in common.h header file. // GENERAL -data_dir = "data" +//data_dir = "data" // directory from which data is read -save_dir = "results" +//save_dir = "results" // directory where results of reconstruction are saved as npy files // if samples > 1, result from each thread will be stored in subdirectory 1,2,3 etc. @@ -25,26 +25,26 @@ cont = false // only applied if generations equals 1, or not defined // if true, the reconstruction start with previous results stored in continue_dir -continue_dir = "cont" +// continue_dir = "cont" // directory from which results are read for reconstruction continuation // if the directory contains subdirectories, a thread will start for each subdirectory -samples = 1 +reconstructions = 1 // number of reconstructions to start with // typically used when running genetic algorithm -device = (0,0) - // IDs of the target devices for each thread (sample). +device = (0,1) + // IDs of the target devices for each thread (reconstruction). // If not defined, it will default to -1 for the OS to select device -garbage_trigger = (10,.5) +garbage_trigger = (10,5) // ArrayFire memory management is not reliable, the way around is to call garbage // collection per defined number of iterations. Decrease this value if out of memory // error occurs -algorithm_sequence = ((2, ("ER",19), ("HIO", 10)), (1,("ER",20))) - // defines algorithm applied in each iteration during modulus projection by a sequence of tuples. - // The first number in a tuple is a repeat, followed by tuples of pairs, each +algorithm_sequence = ((3, ("ER",20), ("HIO", 180)), (1,("ER",20))) + // defines algorithm applied in each iteration during modulus projection by a sequence of lists. + // The first number in a list is a repeat, followed by lists of pairs, each // pair defining algorithm and number of iterations to run the algorithm. beta = .9; @@ -54,18 +54,17 @@ beta = .9; generations = 1 // number of generations ga_metrics = ("chi", "sharpness") - // defines which metric should be used to rank the reconstruction results (samples) + // defines which metric should be used to rank the reconstruction results // supported: 'chi', 'sharpness', 'summed_phase', 'area', ('TV') -ga_breed_modes = ("sqrt_ab", "Dhalf") +ga_breed_modes = ("sqrt_ab", "dsqrt") // defines which breeding mode to use to populate new generation. If "none" // there is no breeding - // supported: 'sqrt_ab', 'max_all', 'Dhalf', 'Dhalf-best', 'dsqrt', 'pixel_switch', - // 'b_pa', '2ab_a_b', '2a-b_pa', 'sqrt_ab_pa', 'sqrt_ab_pa_recip', 'sqrt_ab_recip', - // 'max_ab', 'max_ab_pa', 'min_ab_pa', 'avg_ab', 'avg_ab_pa',= 'sqrt_abg', - // 'sqrt_abg_pa', 'max_abg','max_abg_pa', 'avg_abg', 'avg_abg_pa', 'avg_sqrt' + // supported: 'sqrt_ab', 'dsqrt', 'pixel_switch', 'b_pa', '2ab_a_b', + // '2a-b_pa', 'sqrt_ab_pa', 'sqrt_ab_pa_recip', 'sqrt_ab_recip', + // 'max_ab', 'max_ab_pa', 'min_ab_pa', 'avg_ab', 'avg_ab_pa' -ga_cullings = (2,1) +// ga_cullings = (2,1) // defines how many worst samples to remove in breeding phase for each generation // defaults to 0 @@ -77,16 +76,11 @@ ga_support_sigmas = (1.1, 1.0) // the support is recalculated with this sigma after breeding phase // defaults to support sigma -ga_low_resolution_sigmas = (2.0, 1.5) +// ga_low_resolution_sigmas = (2.0, 1.5) // list of sigmas that will be used in subsequent generations to calculate // Gauss (assuming algorithm is GAUSS) and apply it to the data // This determines low resolution generations number -ga_low_resolution_alg = "GAUSS" - // algorithm to use to apply resolution. Supported algorithms: - // GAUSS - - // TWIN // twin feature trims the image array at the current state by zeroing half of the array in each dimension. @@ -103,7 +97,7 @@ twin_halves = (0, 0) // Support area is an array that defines region in which the image is meaningful. This area is recalculated at the // trigger iteration. The calculation employ an algorithm defined here as support_type. -amp_support_trigger = (7, 5) +amp_support_trigger = (10, 1) // defines when to update support array using the parameters below. // Comment out, if support feature not used. support_type = "GAUSS"; @@ -118,7 +112,7 @@ support_area = (.5,.5,.5) // At the begginning iterations the support area is modified in respect to the phase. Support area will exclude points // that phase is outside of the defined bounds -phase_support_trigger = (0, 1, 45) +phase_support_trigger = (0, 1, 310) // defines when to update support array using the parameters below by applaying phase constrain. // Comment out, if phase constrain feature not used. // when running GA applied only in first generation @@ -129,7 +123,7 @@ phase_max = 1.57; // Partial coherence triggers recalculation of coherence array for the amplitudes in reciprocal space. // After first coherence array is determined, it is used for convolution in subsequent iteration. -pcdi_trigger = (16, 14) +pcdi_trigger = (50, 50) // defines when to update coherence using the parameters below. // Comment out, if pcdi feature not used. partial_coherence_type = "LUCY"; @@ -148,17 +142,17 @@ partial_coherence_roi = (32,32,32); // The iter_res_det_range is similiary linespaced for the duration of low resolution iterations. The values are used // as sigmas to calculate Gaussian distribution and applied (multiplied) to data. -resolution_trigger = (0, 1, 40) +resolution_trigger = (0, 1, 320) // defines when to apply low resolution using the parameters below. // Comment out, if low resolution feature not used. // when running GA applied only in first generation -iter_res_sigma_range = (2.0, 1.0) +iter_res_sigma_range = (2.0) // used when applying low resolution to replace support sigma. // The sigmas are linespaced for low resolution iterations from first value to last. // If only one number given, the last sigma will default to support_sigma. -iter_res_det_range = (.7, 1.0) +iter_res_det_range = (.7) // used when applying low resolution data mask while iterating. // The det values are linespaced for low resolution iterations from first value to last. // The mask is gauss with sigma of linespaced det. If only one number given, @@ -171,3 +165,7 @@ iter_res_det_range = (.7, 1.0) average_trigger = (-65, 1) // defines when to apply averaging. Negative start means it is offset from the last iteration // Comment out, if averaging not used. + +progress_trigger = (0, 20) + // defines when to print info on the console + // the info includes current iteration and error From 26863c45ed733437cab150e83829b735c66d7c0b Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 17:43:51 -0600 Subject: [PATCH 304/336] Delete __init__.py --- .../reccdi/src_py/beamlines/aps_34id/__init__.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/beamlines/aps_34id/__init__.py diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/beamlines/aps_34id/__init__.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/beamlines/aps_34id/__init__.py deleted file mode 100644 index e69de29..0000000 From 8e3af08b6397f2b1bdeb8557cc56941ca007236b Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 17:44:03 -0600 Subject: [PATCH 305/336] Delete __init__.py --- build/lib.linux-x86_64-2.7/reccdi/src_py/controller/__init__.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/controller/__init__.py diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/__init__.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/controller/__init__.py deleted file mode 100644 index e69de29..0000000 From 8ea56463197d54f6f276204c3d2a92fbae150152 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 17:44:13 -0600 Subject: [PATCH 306/336] Delete __init__.py --- build/lib.linux-x86_64-2.7/reccdi/src_py/cyth/__init__.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/cyth/__init__.py diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/cyth/__init__.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/cyth/__init__.py deleted file mode 100644 index e69de29..0000000 From 7857f441db960d8baffbcef97458794e132474f8 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 17:44:29 -0600 Subject: [PATCH 307/336] Delete CXDVizNX.py --- .../reccdi/src_py/utilities/CXDVizNX.py | 374 ------------------ 1 file changed, 374 deletions(-) delete mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/CXDVizNX.py diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/CXDVizNX.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/CXDVizNX.py deleted file mode 100644 index 8a6fe57..0000000 --- a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/CXDVizNX.py +++ /dev/null @@ -1,374 +0,0 @@ -# ######################################################################### -# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # -# # -# See LICENSE file. # -# ######################################################################### - -import os -import traits.api as tr -from tvtk.api import tvtk -import numpy as np -import scipy.ndimage as ndi -import math as m -import reccdi.src_py.utilities.utils as ut -import reccdi.src_py.utilities.spec as sput - -__author__ = "Barbara Frosik" -__copyright__ = "Copyright (c) 2016, UChicago Argonne, LLC." -__docformat__ = 'restructuredtext en' - - -class DispalyParams: - """ - This class encapsulates parameters defining image display. The parameters are read from config file on - construction - """ - - def __init__(self, config): - """ - The constructor gets config file and fills out the class members. - - Parameters - ---------- - conf : str - configuration file name - - Returns - ------- - none - """ - deg2rad = np.pi / 180.0 - try: - specfile = config['specfile'] - last_scan = config['last_scan'] - self.lamda, delta, gamma, dth, arm, pixel = sput.parse_spec(specfile, last_scan) - self.delta = delta * deg2rad - self.gamma = gamma * deg2rad - self.dth = dth * deg2rad - self.arm = arm / 1000 - pixel = pixel[1:-1] - pixel = pixel.split(',') - pixel[0], pixel[1] = float(pixel[0]), float(pixel[1]) - except Exception as e: - pass - # override the parsed parameters with entries in config file - try: - energy = config['energy'] - self.lamda = 12.398 / energy / 10 - except AttributeError: - pass - try: - self.delta = config['delta'] * deg2rad - except AttributeError: - pass - try: - self.gamma = config['gamma'] * deg2rad - except AttributeError: - pass - try: - self.dth = config['dth'] * deg2rad - except AttributeError: - pass - try: - self.arm = config['arm'] / 1000 - except AttributeError: - pass - try: - pixel = config['pixel'] - except AttributeError: - pass - - try: - self.binning = [] - binning = config['binning'] - for i in range(len(binning)): - self.binning.append(binning[i]) - for _ in range(3 - len(self.binning)): - self.binning.append(1) - except AttributeError: - self.binning = [1,1,1] - self.dpx = pixel[0] * self.binning[0] / self.arm / self.binning[2] - self.dpy = pixel[1] * self.binning[1] / self.arm / self.binning[2] - try: - self.crop = [] - crop = config['crop'] - for i in range(len(crop)): - self.crop.append(crop[i]) - for _ in range(3 - len(self.crop)): - self.crop.append(1.0) - crop[0], crop[1] = crop[1], crop[0] - except AttributeError: - self.crop = None - - -class CXDViz(tr.HasTraits): - coords = tr.Array() - arr = tr.Array() - - cropx = tr.Int() - cropy = tr.Int() - cropz = tr.Int() - - - def __init__(self): - self.imd = tvtk.ImageData() - self.sg = tvtk.StructuredGrid() - pass - - - def set_geometry(self, params, shape): - lam = params.lamda - tth = params.delta - gam = params.gamma - dpx = params.dpx - dpy = params.dpy - dth = params.dth - dx = 1.0 / shape[0] - dy = 1.0 / shape[1] - dz = 1.0 / shape[2] - dQdpx = np.zeros(3) - dQdpy = np.zeros(3) - dQdth = np.zeros(3) - Astar = np.zeros(3) - Bstar = np.zeros(3) - Cstar = np.zeros(3) - - # dQdpx[0] = -m.cos(tth) * m.cos(gam) - # dQdpx[1] = 0.0 - # dQdpx[2] = +m.sin(tth) * m.cos(gam) - dQdpx[0] = -m.cos(tth) - dQdpx[1] = 0.0 - dQdpx[2] = +m.sin(tth) - - dQdpy[0] = m.sin(tth) * m.sin(gam) - dQdpy[1] = -m.cos(gam) - dQdpy[2] = m.cos(tth) * m.sin(gam) - - dQdth[0] = -m.cos(tth) * m.cos(gam) + 1.0 - dQdth[1] = 0.0 - dQdth[2] = m.sin(tth) * m.cos(gam) - - Astar[0] = 2 * m.pi / lam * dpx * dQdpx[0] - Astar[1] = 2 * m.pi / lam * dpx * dQdpx[1] - Astar[2] = 2 * m.pi / lam * dpx * dQdpx[2] - - Bstar[0] = (2 * m.pi / lam) * dpy * dQdpy[0] - Bstar[1] = (2 * m.pi / lam) * dpy * dQdpy[1] - Bstar[2] = (2 * m.pi / lam) * dpy * dQdpy[2] - - Cstar[0] = (2 * m.pi / lam) * dth * dQdth[0] - Cstar[1] = (2 * m.pi / lam) * dth * dQdth[1] - Cstar[2] = (2 * m.pi / lam) * dth * dQdth[2] - - denom = np.dot(Astar, np.cross(Bstar, Cstar)) - A = 2 * m.pi * np.cross(Bstar, Cstar) / denom - B = 2 * m.pi * np.cross(Cstar, Astar) / denom - C = 2 * m.pi * np.cross(Astar, Bstar) / denom - - self.T = np.zeros(9) - self.T.shape = (3, 3) - space = 'direct' - if space == 'recip': - self.T[:, 0] = Astar - self.T[:, 1] = Bstar - self.T[:, 2] = Cstar - self.dx = 1.0 - self.dy = 1.0 - self.dz = 1.0 - elif space == 'direct': - self.T = np.array((A, B, C)) - self.dx = dx - self.dy = dy - self.dz = dz - else: - pass - - - def update_coords(self): - dims = list(self.arr[self.cropobj].shape) - - r = np.mgrid[(dims[0] - 1) * self.dx:-self.dx:-self.dx, \ - 0:dims[1] * self.dy:self.dy, 0:dims[2] * self.dz:self.dz] - - r.shape = 3, dims[0] * dims[1] * dims[2] - r = r.transpose() - - self.coords = np.dot(r, self.T) - - - def set_array(self, array, logentry=None): - self.arr = array - if len(self.arr.shape) < 3: - newdims = list(self.arr.shape) - for i in range(3 - len(newdims)): - newdims.append(1) - self.arr.shape = tuple(newdims) - - - def set_crop(self, cropx, cropy, cropz): - dims = list(self.arr.shape) - if len(dims) == 2: - dims.append(1) - - if dims[0] > cropx and cropx > 0: - self.cropx = cropx - else: - self.cropx = dims[0] - - if dims[1] > cropy and cropy > 0: - self.cropy = cropy - else: - self.cropy = dims[1] - - if dims[2] > cropz and cropz > 0: - self.cropz = cropz - else: - self.cropz = dims[2] - - start1 = int(dims[0]/2) - int(self.cropx/2) - end1 = int(dims[0]/2) + int(self.cropx/2) - if start1 == end1: - end1 = end1 + 1 - start2 = int(dims[1]/2) - int(self.cropy/2) - end2 = int(dims[1]/2) + int(self.cropy/2) - if start2 == end2: - end2 = end2 + 1 - start3 = int(dims[2]/2) - int(self.cropz/2) - end3 = int(dims[2]/2) + int(self.cropz/2) - if start3 == end3: - end3 = end3 + 1 - - self.cropobj = (slice(start1, end1, None), slice(start2, end2, None), - slice(start3, end3, None)) - - - def get_structured_grid(self, **args): - self.update_coords() - dims = list(self.arr[self.cropobj].shape) - self.sg.points = self.coords - if "mode" in args: - if args["mode"] == "Phase": - arr1 = self.arr[self.cropobj].ravel() - arr = (np.arctan2(arr1.imag, arr1.real)) - else: - arr = np.abs(self.arr[self.cropobj].ravel()) - else: - arr = self.arr[self.cropobj].ravel() - if (arr.dtype == np.complex128 or arr.dtype == np.complex64): - self.sg.point_data.scalars = np.abs(arr) - self.sg.point_data.scalars.name = "Amp" - ph = tvtk.DoubleArray() - ph.from_array(np.arctan2(arr.imag, arr.real)) - ph.name = "Phase" - self.sg.point_data.add_array(ph) - else: - self.sg.point_data.scalars = arr - self.sg.dimensions = (dims[2], dims[1], dims[0]) - self.sg.extent = 0, dims[2] - 1, 0, dims[1] - 1, 0, dims[0] - 1 - return self.sg - - - def write_structured_grid(self, filename, **args): - sgwriter = tvtk.StructuredGridWriter() - sgwriter.file_type = 'binary' - if filename.endswith(".vtk"): - sgwriter.file_name = filename - else: - sgwriter.file_name = filename + '.vtk' - sgwriter.set_input_data(self.get_structured_grid()) - sgwriter.write() - print ('saved file', filename) - - -def shift(arr, s0, s1, s2): - shifted = np.roll(arr, s0, axis=0) - shifted = np.roll(shifted, s1, axis=1) - return np.roll(shifted, s2, axis=2) - - -def center_of_mass(arr): - tot = np.sum(arr) - dims = arr.shape - xyz = [] - griddims = [] - for d in dims: - griddims.append(slice(0, d)) - grid = np.ogrid[griddims] - for g in grid: - xyz.append(np.sum(arr * g) / tot) - com = np.asarray(xyz) - com = np.ma.round(com).astype(np.int) - return list(com) - - -def remove_ramp(arr, ups=3): - new_shape = list(arr.shape) - # pad zeros around arr, to the size of 3 times (ups = 3) of arr size - for i in range(len(new_shape)): - new_shape[i] = ups * new_shape[i] - padded = ut.get_zero_padded_centered(arr, new_shape) - padded_f = np.fft.fftshift(np.fft.fftn(np.fft.ifftshift(padded))) - com = ndi.center_of_mass(np.power(np.abs(padded_f), 2)) - sub_pixel_shifted = ut.sub_pixel_shift(padded_f, new_shape[0]/2.0-com[0], new_shape[1]/2.0-com[1], new_shape[2]/2.0-com[2]) - ramp_removed_padded = np.fft.fftshift(np.fft.ifftn(np.fft.fftshift(sub_pixel_shifted))) - ramp_removed = ut.crop_center(ramp_removed_padded, arr.shape) - - return ramp_removed - - -def center(image, support): - dims = image.shape - image, support = ut.get_centered_both(image, support) - - # place center of mass image*support in the center - for ax in range(len(dims)): - com = ndi.center_of_mass(np.absolute(image) * support) - image = shift(image, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) - support = shift(support, int(dims[0]/2 - com[0]), int(dims[1]/2 - com[1]), int(dims[2]/2 - com[2])) - - # set center phase to zero, use as a reference - phi0 = m.atan2(image.imag[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)], image.real[int(dims[0]/2), int(dims[1]/2), int(dims[2]/2)]) - image = image * np.exp(-1j * phi0) - - return image, support - - -def get_crop(params, shape): - crop = [] - for i in range(len(shape)): - if params.crop is None: - crop.append(shape[i]) - else: - crop.append(params.crop[i]) - if isinstance(crop[i], float): - crop[i] = int(crop[i]*shape[i]) - return crop - - -def save_CX(conf, image, support, coh, save_dir): -# image = np.swapaxes(image, 1,2) -# image = np.swapaxes(image, 0,1) -# support = np.swapaxes(support, 1,2) -# support = np.swapaxes(support, 0,1) - image, support = center(image, support) - params = DispalyParams(conf) - image = remove_ramp(image) - viz = CXDViz() - viz.set_array(image) - viz.set_geometry(params, image.shape) - crop = get_crop(params, image.shape) - viz.set_crop(crop[0], crop[1], crop[2]) # save image - image_file = os.path.join(save_dir, 'image') - viz.write_structured_grid(image_file) - viz.set_array(support) - support_file = os.path.join(save_dir, 'support') - viz.write_structured_grid(support_file) - if coh is not None: - coh = np.fft.fftshift(np.fft.fftn(np.fft.fftshift(coh))).real - coh = ut.get_zero_padded_centered(coh, image.shape) - coh_file = os.path.join(save_dir, 'coherence') - viz.set_array(coh) - viz.write_structured_grid(coh_file) - -# a = np.load('/home/phoebus/BFROSIK/temp/test/A_78-97/results/image.npy') -# remove_ramp(a, 3) From 9e206642f959bcd1bd5d5e1d07742ed20116d034 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 17:44:38 -0600 Subject: [PATCH 308/336] Delete __init__.py --- build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/__init__.py | 1 - 1 file changed, 1 deletion(-) delete mode 100644 build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/__init__.py diff --git a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/__init__.py b/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/__init__.py deleted file mode 100644 index 7f0dc87..0000000 --- a/build/lib.linux-x86_64-2.7/reccdi/src_py/utilities/__init__.py +++ /dev/null @@ -1 +0,0 @@ -__author__ = 'bfrosik' From 6a56ea5f3d57fdc237efc2fba26f1e8835b1e9fd Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 17:44:49 -0600 Subject: [PATCH 309/336] Delete bridge_cpu.cpython-37m-x86_64-linux-gnu.so --- ...bridge_cpu.cpython-37m-x86_64-linux-gnu.so | Bin 1983176 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100755 build/lib.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_cpu.cpython-37m-x86_64-linux-gnu.so diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_cpu.cpython-37m-x86_64-linux-gnu.so b/build/lib.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_cpu.cpython-37m-x86_64-linux-gnu.so deleted file mode 100755 index 8e05b7d3fbe1c99f5814200d4a0e6ab7608959e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1983176 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

      feP` zVEZzM&l&BwXy80L2J^DRE7ZBNedFUiXCu+a$hD(>;3K>6XVbh}Uqo>zv8~yEIWD4c zvV`_AusW!$`kq9t>r;lkhA;0fw!00JjidAUm{nD%WQT7;w8Q&pr!z57MCjdf`S#fk z?@u|nT^r}{rHsmtviQHp?K#eU^$Gs_u~xA)J63(<8Qnf$OB9{nd(h!+@n4IJ*j3Fn z`y9UG9rZJiV7J42Vs(FqFDKfYk$I8zhhNrH8jUXDMuZ+Q+#{#_RUlWl79iIbg>ro=YQzI;RK=O^P*v>bs#uMAXD*d_-gYOo2b&B>)lz$m!K$=w zN9Ww_R2i|N-D6hPt6HBF>!@pva?~9;X36Dfl0okyUEwh+96h#me(swT_w$|rT`gcQ za36hNdKz{eTR%U;(QBLI=e>@?UEWql+S@TJ>6*2@y6bU$(6gxh3jYlOYME_F;7Hr$ z$#ryYtDfZVgX*Su8;2~mXZVY73sFayY7K{K+>ws@IYvvwcW;SyYKz#*1D&WUR4MIm zPoJITeItEVmiI@8_x;%!-d9v8_`lsB^gn*px7EEI7g;w^E<>>PA4Y5{)< zLeJr=iS^TX?C=fjH4`rCj&@e}b9k-4%>Z;ZR}T%)5aLK{^-!x%oTOU)`W@V)3$f4) z&=iA1$K&=iRbaHE(-NR*8PPH5ZHkUh{hd_f)L&nTSxGA}itpo9znN;u^1fW%+u_SZ zzxfXRX6mXhV^-2CpQ_*+qn42FW=dDz_w`n|tRL8luXGiu4)3dUirZ1==q^{m9f%iYG9~8?M<{s zuA@F9!Jb|3Nl47DFHMMdc;P4;j^Z3G842+yyM=ZVjUBt%@gf7hBIT4bb`MG6T`)xahis_?VS+5$&kE zewf8`(wa%}b#3`$^Q(___@>9UW5k_qZ;$t%@l9u^O6-eXlOD3jifuo};mfi+eDD*& z!=%{u5g0h^?ZX`2?1WhV2VYa*dSHvP#;%zd@-$I-nrL^VZLJ>5XHsUV{t37_wyJq) zjDHa32MXBJ1H;j|t4|^yTq$T>RWE&xZSR$ZM{0oqFvzMKn_!7q^(RDtBkhxzm2_o? zu>E(%&h{;gZ9fM;?d^m8=cxQr8p|4IeBI~ywMS7i*}i<_7C-HOP;Rsd%6+E)%de=& z2npc;bEPV--JX^9a`jo9D_z`KxEF@vp6ovl!!L>(vuZ4rpzf9EKnfN6Ck_+c(l@`- z!_wZbi}VpB#KVE{6c02pZa}BxK_!1*4$1;K~mp(VZZGqIaKC(CC4Ve|3WO3vwat=LvDPI`1%<=(l45A@jBy|4{+3vn~7ZcpTcnJ-DYcEwY$2? zwmaK<7^75r=erom{KJvh=Z?pWfE4M7gmH9pW4X1?pVWTr)+15%$JoUc$7C_)c zG#gDQzr95DV5}};{fj8Lcu|z<=tPjwz*rnd<7gW-d6#JfwUfgG6^6CQ166Q@^8T8R zRe-TftM&9cd=ssq?A0fx=OQ(RMvjBPYU)wGiL}n!2m_j}YdxnPUZt!({V(fcoQ=RF zi(@>`X8X#pQpry9(@N!vSK>V5)Ji4O_T|*H1Iywk`#fJEzZ3QNL>ah|Gteum^X2xB zFw0@a`qY0Ew>{CH+tsu%m-B@2Ru8sn+PmQZU4WzN=iy?SM#Xb6w5J`7S=p~Q$<}?B zs1|u^yBhHPH(_B*!`%IXiElTY=2 z=I{nyq=3ryVtMATM^am-4)=rp5r|&&>T}S~UW0jy^;}#WQaH3&W3cz&36wGG5nM3@ zn$=WbJuoiHVngfLF|PX2^48aI&_4=(RLofWAXzo}yH@%85J%bHOW1pq{cR+FZt_<@ zF8{3_7TaNeCJjdvbk^r^P&pW*9IOjESdP8N*ug?_a3MQ5lO3$2MTl}h*Kf+fFWaa@ zmj)e-!(J0RIGY?CM8+JQ=pG2Y({G33f9Z3>Ni|S8c~Uu{Ybq|r5nQdj&rUwWZs4EF z36-SpPW1D#Hp9bNhKEY!p%upL;c4vcVGs9`hlN28?_xRRKQHLvZ5&m3NK_tf4tnrl zZ!de8M;?Z1559qq0x=S-SL>>A&5BNc78f1<0SG~~bRk;iv#nGwm*600XejnRW_KrG zH$e9u*Gw4PdqTX!cWtz%u=d&^7EiK&JXMaDCY_!%MX&0NS(yq4{^9$ecVhA$PT8p2 zKFr}ekH)Cy+s9&XK!=+^>jp=?yORc8|K-RCxoLmK-%3k2+I?6V!NNc83oZQxz39kA zQI@(?OUz2T`-RTt%t7gVDQW6!+~>1UtT#TRV#Rpr{wa!ftSVX&j&RW?WA6(t+DPm= z>c%~UFNsXF7a+=((qerY z#o^rEg}r^8+f~>NOvMQ8zubt)?J5=$RGJmRG{xBahSSWTG^Zd9&OZND8Z=t`Z+yZT zOGouRj^j8qNgevsKVDUx>ichD3TUxj5OjJXd19x(VKEg=B*a%W597L`5oBX z#>tmc@`);WN)nRWn$=|GzmtoF6a2}kGx3D-Qi24WiRswe&0bQ;3%$&O;5h($!;3TM zWt8EiOnEsA323-&vC_57N9^Sg&L7x9*K_sb&c;0ne?N@Rdhom%7yK>O1F#sXlI_M` zELY%jl&p@D)r~tL8+k(ror>hNRS!VCM2$hSq*)80#jGsAgh1E#NQB7iq_6scn{m^@ z|HZ!G+2YmNmg69wtq6N3^Vz0iH!zUS=1ZA@LLsl$Q0iCE>ukGG@iD8eP^UOOCyh># za@TZxVbZ&wy5*|oEbprx-0MhLMRNVPiz%%a3lG&~+dT8L(q4^OHHb5LgHBq)N$Ix8 zEF@jTNqbV#X`D36`-;cmNZan2j^krgvKIgOxVwrjGuHNz?OROInYPXV-Q^78;Y{1N z0eWr{RK5+o9KrxS0)xBuX)33;(;)XLcSBqX#;iPxs@j+GF&*}eTZY_Zdq4M|jwVMX zthVyeNBL+T<+TzWZB=u+wZ)%&v00r{E!DlVaD9u3TwUKD_QYg$oGF9iWGPnceF6p z4x#*dtq(!+&*?fyU9UWRf+Hv^d~L^G&luFH*ZMGd@Q?>zN*lTZ+NPHZh;9BGKB5Z3 z^s?0M=-h#2eX4SEr*?x7Y_To{Sd}Nt+kNvuF{{p2-i%TNP9{WpYKWdOt7^L*y_(Q# z{RuZ90=MD)CJL@V8IKKa$`1z3wS4uv>U7AqkI)T9!`iPW=b#GwV=!T> zxLNvMAOVN7yze8HbD(zbSiRPZ;e-}Nas{kH*8ymJsQnmyN_-Er6v(W zZ?Rqr3rg2w^@eP>uvNDPU5j;R$o44pk$UU>%9eE6aK1yV-vb?VAY=tP$nV)~lN&!oncdh6eqKIdbU51ip+rn{N;F|A_S!*o5Z5JF$M`_~{Fo+v`;9QN1DG2XGiE`zl+Zf6RIm zd)&wL3npHq*~9cJ(_W^ZnBHYN!t_4Kh@WvY&{nu{7VS^O0tWN@trya%2lhXYzEVcw zsQ-aII8tw2h#L_t))$bNwifGa*yEgkh&_(9Z?uN|G+>uXuTqiDseTID_C$Ggq*N>bbFls+bkO*a6)1!0S3Y(zQ%{@?$Lvf|OkaBxuqprpJGY-(!VzmZybt3jSiUw;9^}37wbv#3< zNas`+25rY-Pe;+CZ2N|?HS`wi6j)HY7VBjp+cj+aq_QQQHk@w->yJVQT^F(fEoXX) zkJT`}z(m(=sITXlJWSh|7Bd}Tax*=_RLMm7z!^%J9$_kHx`U~h=@zC%OskoSnAR{Y zV7i_upXny1`AlA>E0}ytS2Eqml*_aN)MA|u;3%SJ>KsK^VUOw!`5w!*^OUX7&u4um zdmO=(#Waj*3e#|=Or``T2h-UgW4y9{_7vr3G$h(uteM#3{N!Mdjk!d>9gG>&l`*!FZ~EA&#< z`?JS#rd~|NOvf`VVzM$7F-0>i00racz9%R@OCZtKVqJwj&d+Vwan2h3)s`~GlFfWDqBOxJPDc7wOBt4+4g4JWMxY_Z8%>P>m#6pep7cDtYiiH zohgOs2-7$wdXEG79Lw}0(|D%COf^g$Oe2{NG3hfLV7h>h9b_8FbD$HzWr>c#Xi)A3CEn2u%I!xRN-vAzZ1`1u5T++OY2qk2QlJkPeD z;EXL+p+C&}ZqCW0Ogou2GQGz1Ak!;M_cQHadH@uRpMuBf9M3?at;PBZ_BcQ9V2|VH zGp!+KYp{!UNmQvw=TzSXZU2Qm9Y5u4+gI5ddW-dVgaoB)v7UlGZ9AE5e{7=MkWL%U zH=gx_&_QEER-lWSe&S=PO#fmU!}J?dGE)?Cf^?&pQkfE&eqhTaCdvma&u99UX#~@I zOv9MoVj9l0gDHV&7t`5HFEPb4wJ@psSoPMOOsDa&*O<;=dX*`TX&VU7#{e8Zr(=)X z>pbjHy&>PfsW)7#cPm?=A7FhgdpyYGW%4umnD#TRV)~M4HPhFiVEhbzjPmm{B-*h4 z3FhZS?CJH7){wJZ?5X2XN;Mcdr@Am`I}Up~CLU$mHK+Bn);$t;TFECxh^gNS?X&cjGrXx&lrYD#xnJ6DPLn+fEOyx{> zFcmZ1!nBBKHB%AO8m0wI*E8ia-NZDX$;)&FlaJ|2rW=`ZnO1B+40}3$4$|9X_11c2Yv@@2z=G0Y{S&g?#kL-0OFC^h z-!|6Ep@W_eS%F?;s^(*xnU*naVY-g#Nv0J{Pcv<1YGSHl+QdZpz!@H9Dr0(-X*SbF zrs+%%GC7#;XPV6P0MjK*jZBl6=zTrZQ5Mr(OjDTdVVcOaj%hpy>mLBe&)wML_Ie0= zRBy=lb!>aOvK6{|zpvifpFNhdRWGJursJ6wFDjQu*Ff*D9NyN$6X&SgyqX%xb3*OccF*j?6FPc$ zrpKI#ic{~#dGOvx{dEb^{?p!q+q#}T@aR3(|5yvbc>o;Zx9ISeTCBfiE1jF4cr@7I z7H5yYd^)rYzy@0KCXZkNdr| zEuIPV#A7?>!{OaW6zBsxYLUxPcWtMk?&?zp-`m52LwKnma3v~LJi2OcXn;?=W%3=R z#Y-oNooz_Bk<;CG5B1Q!{5IJv_zhgE+AYH(+MD0o$@2b-UUhnXw)edp?+<9h8h_QB zsHl&!@VIXko|9TueH*iKCLYVDd;NIi;~RGX!K2=BXh)-E`1-yJ&hWljcd$pyYB&0w zqwrP7*0y6Z(lU;Vj`$e6GH*BEETVVrMVjXlDXRyb6i%aP#R{v(*a4{>dM*-=H zUvCPgn3XzWYQzI6G}20xfnS&PQ(N-0;61B8idl6xlH;kPzZE(j<>Gl{%*x4_7tj=^ zBNN%azQ^JVui4pl+IHIx+d93a38~rmk(iCwEA81{PXb=F#Jh&{BaVLHB_}+ebl|;H z|FtT! zGf?}ar8?>_G=l+46Na)|7CWV22I~gJ1OL=z$ zMh6bb+*Kip3?(x%(+Q9oe*rN%qOW9__mfl#r6JrsNC^0KnKtpRk zL~eX3=OY=tgq`p3&585BNnwxor}Jqw;I&RapUQ&4&W=&TIs+6qLB&qWPZ!XUagQRk zKk%B)*)R009fd>u#dr)EO4O5)C*x~(|;wqos zl|V=#ClCWqDU&hT-XV^<3(+`h)O!T#g|EPJwLj25fHKk72G8yP(CdZtSq|@!**S-A zqTfJ|t#;WCcQz!_4DH=cBQRcowFXq)9e68l=k`6JumEw=ejno0KZPcby8Tg9oVugEmtb9EeP{zZXW@VbEbcnn z{8`8Va=e9VuRf(e3WpKIUx+I3AAAMAO5n?%po~xp7$WfVRV47L>Q42ik>$%|c?m30 zO8+weTKv#@$-kds8o#R`Ql6|+cD{sMzU<%8-QuScsVP(apOD1{@>vL~iC-O1ByU|Pi`7BGwC=EvKceLN;PwQ@YSQ}0w!&ve* zpu5p!+UQ&|YDeq`GGM7HCA9wVfAmbZ>WJ3~J6?qOCM5Jf-Q8${F3@XaR8QW&#*YT| zN3R-$|7*J^jn+vUDCtb3^3UmRbe7Jo3K7_yZE~R(;GZufUF$w4Y*f z=zNbF^aq7CJ=NWIEOu|W4H*nu|ZxD&F^0G+x&Hg@v|y=WHhv7M^A@sZLa|1-tw0(v>i1t~C zhV!*gCt=}(<6RbB1GJqi@CPhBjQihhpRCt??ehYM3wm>=ed;Y~pL7&VBi8vHU;E&7 zmOWh>bT?A}p%vlAIJ^jV3VKY?*{9UGF+G^GC|I+*H8&bwgRPi}gOdFl?=7X`?TNDU zfx5M)m62Ab4q;~|kp*RaZKrpJUC=wzipd+f&PAB$V)7b2d_LX~!xc|CUcF7VBPr+` zH!9|D9R2F0crOJ59N+uFAQ#vsqtL&hI)&0m_W_#FR)jN_`ovj5+0`6F@$%V;sbwQD zBwc|APN&=Xn>Uyi!t zn0N@4g1gCGmWlh4{UtFKc}pd4YcFs7xK=4+k#`<{W|JNoa|sgh#zy=Gl*iYJlJY;r z6&>V%Qd9Z2qWu5fg8a{e{QC{>QKjxgzxb2Ve`jy$zt%+hqo=WpoCwCXOxgq5pk=Zv zs|D$QhX+olU-_H2mPoO}bq|R2C*y4=Px>dovalx@>F+Nk)c{|Y^a7xbx}-{gzbpNZ zU^=nB=HBjgKd$uqA<>ooh)Qq#$hIB$BJf4;nGOH5K|MP&*%dB9Q`k;gR>-+N z%X9`dh85X&{EqSb#gV9lN*VZ|#A9!J!In zKHbtG3`49|*RoIIdVx6nf1Z!o5Z@=YBV$?&^cZNhj0FCb}u_vZJG zS2e%S$ONh}zY|EN1%5Zggx>?nZ%^{uU-&%(yzy4^+fMjB5Wjq?=3ysvv;1~4{1!Il zSNfa0kSuS9+i(ZIZqq6y80(EGTpQb&0Ix0YjC3?LP7UbF7v3zD{R)+MG+u%p0Fm(B zWmsSRXcgKVuVa^S9+#WwIHFQI76%^$k;*QxozdBLWINwGKvv0O^R?#?-+QZ9^&o8G zlWA}1nq=Csu_}~bKYBP?(>9YVywL9UZ<#}V3H}nVp^Y!+h#D)jpmMXZ>pW%N*-+Tp zK;GGCqz>31tKnf%-&L|7v4Ztl{O{+-t#IRISRn34_ zj%NRgE~1pd8|w}RRpdWpw*b*SyQ03cx{bG}(1);HKu)Z2`tOYOYlzxAqstTj8R7Gn z_tuyFjJ|B$L6VL2775B3@ zt1oL&Rd%v=sK6iS_bzEPyr0wzzfY1(3;MmE=65C3eD+!7_bagr7lSw6YJN`^eow-;E%2LX_`M9%&_Ce!#eeInJ%HCno62`HW#0n7gYOaf4ky1o$nWFAFBdg(L^84`W=2>j0(Srd%H&xT_6(ieEle6O^fcqKUox+%T~l#`h2Sb@jJvGyG1KZqmGc-i7rR^xa#@@9E@M zA=FYE=nLL>tNA@b_&pZCe5yWN-vYnK8GcLum|s^P?)qtO`F=~?Zb2XVX?}l&8qe-V zeqR=TA33a53U4*PH{h-|a4UZKRL(zWw!e)wo#+Xey+-nN*F%2hddO$)Asz@W-;@z@ z#&ixj6EoE`Xn~%eVeX8;OLgm3DFqqUeLQl*>D`ge+)RL_5!B@z45k-mBSeY>gpxCY z6}2$*a$*D)wt9DYkA^xF#rjq6XkBeu7SIr&jl1u_t2q!TMnRQj$~+H7jb(;Vrjt8q z&l2EIJf>z3;z=uF-EPbOaokZb+}-Wya^LC&YFM$kD=_kZ91p`kBr98eCYmuIE1R>k z#8Pj4qhfq!FDp_EqYL)SF6SHlq0sQ&8Nz#hb=fs;mEv82gYhO-cz*;Q(N8c4T|VKQ zYdq59Kf{-hIDeOFzPPp@aZTJ`OC(+ojL`7$8KwE_tuT+TbO{rG1s_5(*%X&j7)-g6 zvsK2bT7>M>aoV3m_*%bL8-min1ze2bsde5UMEOf2)e}0S-a)7Bmv%)eCRS~~uq)=L z2J@FsOmx}K<(l?zA%jjSG-p9EvSV~PzX6l7Vw9VSV15uwbXNE&a8{voV*EC+r3N?V zh9hmZdYI$AED2fRM_C!e$}%i4K!(EJghPa%(C6?q{S19MaRV9JAr)44qGo~~bPf>C zid@FPQ*pE?GZ;OnEK^u2%8aks%{sU*y-79XwOAee250)sHz8Pzm(ml95n6r~ncVT* zr|%M`z^VaWmvi!lG{8DQE#+Jk?>H11GC3fnh(IWRi(Sjt^pVsT-A%3;yjqb77}kRo zy;D-roR}f-*p`P3T5xrS6*~kFWY)Q#b9kN1xj7@p)N+5B0$5?56^kDB3?-1?3t0z2d$(E{y)tB7 z!K{l#u12aV zKUU;u^7$|aF8Js$9i1laL4i(JJAaE6=?Gbpg3gBu>GI?SdvNf|3*^9K=t1mYo}S=1?pz z6Pn9D&EuI&mrj>n_cePa))P@?Fuyl?&=Ob!-L7bn-|c)oBx^7CtU4=P%J~7$NHAxX zS(9@}VtCr!SSW0$<9x(54_KsvSvZpvU=~_M8<~Unm1x@$l{j%>#|n;zIDc!An(#7Y z&hC2zGsOZ^?`9j9AU>|U?+Ji*Q~3OGyYIe8Om^Q(k)=`h9V4U)7gV78KKU*5=_n+4 zG)^rK@9J1n&#* zK*nv%OK@9>+s4+V2r23eO{a{9?Hs!+XjsNHE%ax3xcN)jgJnhSH0P(B9E$zc5dOs%4yTf$%WwaTLqDJRqNI%?)e9Z@5 zs1tVf@c3dRX+7=+aWuA1rxU#(aNthboDUf+fz6p)g)996*qnE19~#@7ajwnzx8RF$ z%iw+iF|W&Md6UMihPPloPHDqF&4+79`}8O)6$^XWB1r4>B7IJSlkwczMnQ^a=HyKS}#^FthBdvs@=xj`p&&0koW1_>;6xYZ!8eecFnO zHMUP9tomw+`kGM4=hzaq&7QQeGy6^ClM&X$aMl)xN&qgITagdoWWXL`WCtGD4#mUSZT*o~fI%)W)CESlz*qq)s^Q&)v&wmcKe{BD$pe_M z5$G5=HAwK;o_6~nCD!RoxV+w(iL_2${}yZL1diJQgjn9`cgW#fTPN|Z-N$n2birLb z-iRw)Xld-jc>76di)-&>`z<*D>(qEu8~6{PGr_<-{=nitfO`<>1vGdE4^6~0h=}UU z74VL$@eVx&=yUqD{Se>l<*Z6zhIrCsz1olSaO|b)4{uuSeiS#(9C@yl?ow#18o_at zy7ga5KK63f49SnP`Rdi9zv%pj^B>0ie{=KqmzLvFWZu@c)QHu|!%3}h zHlE5^qugc|-bUH#V??+Aj7}8U3K`kX$j-8WxmIolp)D{D$s$TcHkzo1B%^?Wz#+(F zV^>v?6@HSb1%cy*%y_QVI~Qg+Ju{}KTj7MT)Gr;5>GVua#nO4`*`1wL&C{6H*-)vI z>ya;cN||-v4(>4GX_1f>Cesbe!LNEiqhr$GKbOp!x(fpq&L+#BZ{53_!yXR;3Zcx> zD2_{md9lLNKu*HvKeEPL|M8tN!T22Zg^8#?LX?bgSgcV=1_|mm|al#)HaH# z8;GknwR2-dhJof@Tf{g>gdowLQp$!?;7A3&=)g>cIUS0qIeyfQn>XI8KL|6<5N`6xB$Ou#VnP-FC%W^Y_k)2a@A+W4`F0xU7Y*K?da@ng?FvL&yvGWd7nE-^989koV?5 zzWG+H^=_cw0NW<(zdwU(KDWh@0P@+a?&OK=o3WE3r~;a?UY-0nMK5YI4qNS@Ls}O@ zv6JQ!C%y|*g$@FF@&`J#*5o*aZ*WLwEnOZeJ!igSK_{5AB?#WmHD$%Sx^!fZUHok< z7MS>iyS5p>1S~VY@md)?xsEVvbQFIEA`jl-t~BzY9(w>KC52SN!5C2loPq;L9l;(; zLwY*yh##LV0GP#mb~cn2)n2Xc-h^p9w&JY>b!#fhOVI8AZ2-qo=R@@?iY#iPYw zjXM*oUsm`k78P9;!U@p>!H*tCbh~0*EmrvSt&m6BQs2^ivSAK`HsWBr)2zt{Nb?68#;2zA8{Toc?0>>QpKC|MS?LfC zhE_y%!qU3|XA+hk@AT?SSX+U5bvMKeih7gm6qqb)>iPIZQY$N5rJ>eX3UTsY-iM=5 zz3iqd2g_(2w=m2KWuCJ!m51ZrcMMg^*o6?TEH~t6OJh5a3xDzO4m9#pG&jbZJQsRF z=WHUqTAF)w7WfsI1D(Jpo;z9MT$Pm`KZt3uz)g^7ZD1K#(|!33K$q#h{5Zh)sX$X( zDj*#y(yAb)+1n{Gg4%LK>=^wLdH9K1?&p6O1V)N@B=_AGMdO< zd@4Rds0Ah>8&s_}umVWB2GxMB(>edmoZ$kZa+gY^3!&t;oMUjS7CniyNcD(HEAkvg zf^(5k33yytH{*gm9^L*4RxgCyrk7jcJJH#t!?CaJ3->vG9|d1gICGQK{9@Fcb5?H! z%DV3*5wxlI!T&&(e~Y` zV4AmP0IJ|Es{ax?E_-Juis3RUR*p+;jvm!9UOle{06p;}di!%2XWoWv^qwp^WmApe zl1?lzYZP1mAk>Z8qM-fLX1h3!$$+fWFlyH5$XN;bQ_8J4i z#*Bi#nm_r-#r!!~*YMPwmad z9zhfT1oR-L9`pEv`RP`&5Nr1=(9mHAfQUo`)T1Am`6(5unfWPbKb}>NDr>(FCTiq* z7C0xXiY!FGRfF!uJ^F(ni8uY${pg`J)1;1=q_zhhh*W`y%$!!M;|z&vL!y%*K@{zf z-%1h_ToR>*M75AuM??AjI?Y9$A@PZ$xgd%rkxLQ! zLj>J!wK~vLr^pa#ZK@+kLSz_;T<;Qjid`JlDKbRRWml^wxxS9-3^hdN(fLKo2$B#v zoJ5XyiJT^O0v@%Kw+)eB8Q$D)lUU*X@zhNJaUkXQJVsPc|97mV%i9M#CcNo?zTE6J z{f|LS#WyGj9Ewbw309)LtnfxYC0IXpIU_e$bBLKrYt9Q|$ zPJg=4n~)Eyh31@c>%QJ3C*O9acIqkqJjBGc%%;=<-)#bz*(q{L<82~{6<6rJ}}V$(%@{I`R(ZA zSn^~fKD4P~Bl!~QjlLbYWyTt*f2k){}>B2rX{*Gxwb8L_XX)-_A zU|x@nXCCs{kd6d4vXg8`78G6O76*8`51!$|J~o!Ozy@iM4dy2s%D8f1g{$p-U!Y&=98q8p_Sq9z+08BL=|78G6Q z76(}Q;4LofW8=yeq(K^FgZaq@^LlKwOR`aI*x-n6*pMtJT3)i}W5DScMfgWJ!-aip zI4wwnG{^??lMUwe*tna0N=u`Pv>}b@xEeMj3yR}N%0Cv(H!)o}*M)s-Jl6snq(L^A zpKLI%$3_DTim<_j`_%732voU^Nc>Ptw}_2&RtGyGN)Xelxi>KdXrM+r3_{YB6azFNt;Fe`1wP|B#gL{I$p^0L zf}szCc=5ZKa3D^19Ma%6Jvf|h(~nr3$VHagz?XpdZ3B2r)c_Hvdm9(0)2F)jGFNC6D zY8-w6h>WNHAQ=!(J!d>>;Ptcc;}WQ0JhclWAIs>+OUMA})X(^#NangXrm6J&ypZZ? zUrF>aeh&yEiu&6MSe9@N*)Qm1t)!Xx90L|VB<03b7vbKEsRn}1kgU$?6||4`2v;Ic z(j%OBu`j4PMI$xw11DtZplWXks=f%pN>KHOcx!Nk#teg(6x06_U%K~@Px0lD&vURs zh_C*W@zwVkUp*FuNPKmMj<2p)=YJ_ROuS^`tLOa_A%cC;RZV<#Uu*JH(wu=>bR&O! z6*F^;7qs?HFU-KhS%WkTA3vPcU&BR&Z4F}<63!~pFs3!(tnM0?*epjd(8*-FjA|w} zE8`1-AREwR2*jrI0E5Y#{=z6;-k71heGsvBV_zGnaypJia#r|XY$u7b9@YTt3Pxs;Nig@*9Gg#rmB)vU8{ys_KvFWUEp5afT)pJ4Ira{6ZcXVg8 znxY9g&zTl`S+_bI1jJ=bli~)k8PnFdL43w20d9(TBiex*JAUD2^uZZ1!|(zt+y;h@ z;qJ=&aK$_ZLk$pzSdle5k>CYwOAv<~;s&oL4dIBm8dcLH;vzuRR8*Xg4lo{P)>vRL z&?HDa)5ClW(1#i`4A2VCBdP?6-)vM~{CV7}Dh?(z78P5`OhA1Jim|-ZOL0MnxIKpM zcsVQ=L&URaXN(Qu!1e>&^!OY+M3neGYAiC=@5eNp0pFlqQ$mD)ZL*g@R5f$=9$ z2F`6pOj_6RJ3t?6&ff=UMbf~aFEIWy@~Vv6L1ohxG7=af1ZH~#ssO#K2}A+L7a{}D z@&xTc5AAk9^EBF(M0-M`9Uy4eduSH`nyb+Yh<2MsTR)gw_x8|E1T;sZbtKw(8m(H; zj`Yyd0KKEpHX)!M&(>)F6to>k(K1*CXtqXMOte&uc8j1b_t4$~^tMKOifAinz$*&( z`@(C4!{J-|8X^5h-3T{NfcSoe_;{ki>1aP0A68(fQ+*&=iQ^*j;<=(XqtVz^s=bse zOiGoPQfgAly_5ozGSo}SkrZ)a%d&2g@bJ1jHEFsr+Ve~^*^0cBtzcJrs+Uq{Qs}Jc zTpya0I*b%LWsXUy_EKInDOFy|G^Rj@t1)D#bH?%p>(vNC(Kc{9!cTkf;1*!THxSC! zC^BB_l!J7NY|>Wynw!oI7{Ar8V}xFOCvtLJN|^gEaF4;O+hy)@0X(OadHhi}r!{!5 zbP%;`eInHa5SIb!ryKe$fKFaDe&cT^gw96vejV^n(n-;DiiOTo9-RoFftt>Z0I}W} zD}067VMkMDC$rbkKaT}kN%o;$_CA0{>g=ZijF+LB>gq6XX*%qk0Gz-ppNi>NJW!jC zFDScVd=x9}$)cbP{-Orzq8_=JHU4>nTjQ00WJgRiun?dgtP$}4`vxd&EU**36!s~K zNe~tgWWRg8It|tqj6{!u9)tT5A^D6)atffan){nc@-5vAuYeRgk)Np=+Gx~YC=B%| z^Z|6EsXr-{X$seo0<4{%!bDA>8d9hY9O+R=19YXPuqh4-T}go|7tSgN0e;Po?`(Yx zJ&J!yJL}Fq&3emFdUijc%ftr)f=KIO65d89_m|yTmt7)dKZ9a)6nYAvA*TK;`z=uL zul8_7-GARl#8?<(3Gki$B|JS<B%?JG9gDT&H#eBdYJ}9CsF{EDM1OD(qrtiT+e83+*Nbxd9yyVmI90AZ9iYuXI{UAckS+%OQ$2CyZZBpdVS{h z+dwrIIN?I-?GzMwGFYw++z5y!a2|i)TU|hAV(nT34P7h^jX0Z#YS(LKeTE9q{QAtx zvgBnJHR{!pWh@Yij_jCws9CpY-OGf8^eDygLmkZ_k2W-q@pfz?EW&fMvn^ssR2dSZ z4GE%X5}#sRQQyMO3W;G9IYxW|l#b)c=`7i7ip-Roy;eoW&|J~^E(oL{ z6E{VU!VU+f76dv7nOTz4TM`*5#rT#)a$S5w>?6o8^Bx|Ty51Eay7}rBE zah206`iZo0q?L&w-t#`iq);LCl8%0ICsK6tqc`$D{v zFhVsOcPA~z-Q|k7JFZ@c_i(b*a@?I+z(yUeE*r`RW7??GeQfk=feq4-xVu~tcgNLZ zav}H>ynd-)%(VGyI>zdij*oTr6xtFOG<&H1cvZi<;ehkf7AKe zA=!$o5c^|Ry(L$`rA+xr%C?&|ht*!ncP6FEOZmv8lzS<2nS$Va=`Wmpl;C~az4p;I z8=nWdx*xU)gNYZPM;eCBZRc>3r=S#^^9<-4Jz{2Zk-}+r2rf>i(|8jrT-u*A zm4k4jYF?E1{O&yn=Xvq?KO3Jfz@YHI#pjp6b5%#&YU1;=ao0?I{!p5AUp#o#C`$QF z*?;gm@$a+YBsLpgmf63L9=<^<^y(lh(o<}iz2oz@wM6dn~a8pEHCe^1zH^wSsrJ`xHi z@o$^)Z!{!)qws7XGXA|?GBEx<0yRj+zvV?8y`Pw~q-CS=ls?rdxRdw>zql&#Z)|p+ z4I6;wSglU4kFy`)u#jDJJIu8|_`MGIO@rSv&^UVR{}y?YWBr3jjxq69bO$mpc>93Eauw8wZ){u>+1lw8*%M@B(9x8>l+Jv3xC}gXwN%k z1&oH-ZQOyXuAP69v%+gB6&+vx7j~bzcpIp48jmbs_i7Svst<2|5|3=-+v-WYx4uf! zdo+p1s#@U}+4Q>H8-4U{N#apFR=8^t?=~M^za-u$!MnngD{<(Da3j%VJaPvh#-Uji z#-X)@^$rnE6D9O4O`zwDrfqPO9bfPxG`=TXXAuY9pv#BRW3>60+i}&Ks~K+YVMRLe ziMQ0maC47%D${V3dmkG3QK*47@B;yTuMPa!0ON;hv_x-+jC+#%c$g;v+M+Q#0kp#P z95N)_yq1s`-j08PTh)bQ9Q)?+Kl5SWc7ClhmiIsjE(kY2b3N3xJq!iI&D_Szox7vh zTgPAwh?nAtI$$`U)Svh)Fc=Kg24v&%uB-DAAbH~p=RX3pA`c*^FCvaNR9U?NlI?Xb+cZF{ zG((dB#)oKzHohwzkRkf(0Qnf&u}w2{AsN~rH|terN_++efl75EL~i1vnbcWvP6l3s zM7U2WUP_5cNxDW|O-j-=%9IpFBha$vNz7~2)rJt+6Vkte50b8<=!On4I?HlIiYmF2 zj{=dN)UO{tcY_q~0h*?p^L2nu-W>eKFREvosdzn>n?Ua*(u11G>Vcv6(;Y%DPv|}9 z(Yqbc1Df8I024U)t#A{@TOCSHvNKa>-;UbU1_pT9&jfU@&VDSwIJztuc!?CC3VsG| z)fCxNo+1U=gB~k9 zo)nPmr%->p2q9M}O!X*~0eVtXxQrD3g=Rr`c`e3S*rN?_(Ualj&oGL?W<~8?LTYW1 z^nZ_34xnc=sSYG{DO;HH3hJ|oSf;_2#rfk`g)Qh@L>%fvTnQ5w=Z{ce*D?X%iL`y+ zQ~5@lr&Yde&oLW+m@U)yz~KY_@Ikrn!7Y5iADnM^v3}pU_#*kn0ltRe?r-184CZ~~ zYQXZoG3V+6)B(U7sIqai4_`dq$BIbVUflCG>~o)h;p@gCz2VBlJ+ap{&<2heUqv2@ z<`Q6}3yji0IIElh{y3SWQ^`L!%2}yz#|8UNuhQYDd+$wiTu|PA&Mr_i9|9r5i1flB&a}m z3!5auhC~(0C5bXaf+(8ACot4%6^9i16zdI%B0fh=(n-Xcqxq;dL}vREg?O5L8~aGXmB8c3Ssb6!U_C?5(9ROO+d-S)jKphv{Md$m zC7Z8fmr6QHCt4u8jOhXD@_5mFn`su!o-Ck6YkwiWDGxm7A zPj!`7t|oK#&2V%X>4~IvQHuP-o|7TD=(WFPgWrB>?>~ie%`s$izO{zs2gY zL#V%TaAvdJgXKqlynx^9z`07%9dd~Nn^|lzwiLN!FCK~(;~(LXK6sQ1`(jJ4xv?dD znPE+r_kyWQ-Cfvhb_AD5AQXKriMU}lex!;*ZIv%(O<6kJ28!UwaEk1AaGM|ipqp5ekiKB6u0K_cXX1jq+7 zdwe{|c{b%y#xEL_WQ{Z&5SgV`_zxv-RxdI)%vEfZT6V z%Dt3{CPfHKt{WsJF!c>sgJd)>*J$+FNVXymN}onq5QnCGhFg}Ga-3V1mvW$_z{=_@ zX}sn8@9;Aiw`dx-gD1e(-+3;R#PuqE;fk}W4A)nE}wEz*d8;*<9X*_RYg_mO-a`J}aM(zKIMD03}8u_@QbK*hx#f|xq zeYBdTFlKcP>LHkN_}6GM6X!v`9V>n3fhG6RPJ`#8Mqgp#bobz{nK<2XxA-r6D5hBvdSNFQ;!>A3pibcUXt zq&GWB5AWsk6baCiQpw-LLQlHNxU7-vH@X9cV%?+;@ix1gt!H_lF<+&IuX4i|yM8l# zbx-o8<7v||J(YUp)eaee7FYWxl1c@EGp`I zKffbxyKI`C8FH?a_w#S+tgb{8OEfL7@-^RhHnEh!G#uFW8NY5)sF4~EV-t?i!L$N7 z2&FAc;;Trz<0T>$%F^9O`Zbh2wHxGd)fEy?dls^g?=h(#AbE+W&350q194NT&(s`%zq5^t~%@027S#bbr9F?bRi zTY!Ozu`w+PZM;M1q-2pN3~0%{tR)M7KZD33THK_^pGELOou;iJ1s48}`j2qffiO$r z%|sUf5hqu@iwC}rf}PBV$6u1p5=c9ZhLf_=hSLUgm^PeU0LJHQv{hY+R^Xu>4d_sf zwja?R(`auAT1O9U*P_&vBQ@F&0OMsqQ~CX&SI;vhhWWo_;4@wPdw`D68D3`w2{vGV zu%ONH(4GNwxJGk`b~uZ#DBS)EB&RoK=0Uc;s85I;H3oYM1T|z$~cuhwA^vZ?iz7a_|nNKrN#KterpeES-1g;3~045bLg7Z@ff49TL@Qzd+LB%(y( zX0U4tQV)}@%1b%Hq?CIpoh8K^`uF86B2`^rl6dmKW2_6tcWs|vI?rRSO0$9w4Pq=( zpOAkEXid>5V*ho@Z8}AcI#qA$PG?2dQ7fE4>dPY3Lr>L0J>g=|`C0U}Fy#z4kb_1` zna3aXB7OB(AOZB+KoBb>dir@Pprz=&@F+S1#QFdDjo*oowCk!Nq%z}lDe7W){-G!w z*m@Pl6buaU@BS>6C6AC8t9nk=ro*$T_p2=$81aTUepS zL63`wz#o6KrGdj55K|~YL+KHdw8;4F!~b?)Q$dHR$@En z;+)Y_Z0BqYe;IakStw@{zXMydyOo@BmA`1r%^|EMgre1wjDxR`bR-A+2+xtWqjzF9 zDqlO3kHKjF4~GiI$|5jUvx$=PqaEwAJq-`eiS_6fiXIEH zsMek7;tredyxBEtTgir<4JwBWAk@&hK#;nib0^o!!D&R7wOOSAk%B-OK_|oz$6`BY zk5sH;-EYCx-LhCuT}LdRp}pbri+;lq(l}x|qZPi!`T(qGO=zrNP3HP z_cGiBqZ@;@i(qFPf;mfrHNT;g)bj{}bk&t(nsXW@jhE8!x)hXO&fyD2cb*eV`xm)K z(HX7CJhb~pR;<<35Qw-bk0;&Bj>cKxuLibpc zGXbG~IIE4-b}?}luN656k4mF;m`d8w4>>R zR+Bba8rrK(j)dqud-nfDyCk)FL?sqXcE6i})|7A9sTkNnXMjtgTERE7wXoAK#kb7y zjTSh0hYLczDuH@Q`(9i;ur&H1mtU6QOL$#2U5KMz73hT=oEAJ70~?MN!intzLODO! zHNT?!;e*OA$e@aIFh^9DI^BcLARg5b%K6npxEq?t*m4G*kH@_GG9Ya7BV3K?Kxwpo zL}k!9J?LC6d&8?yD*qVWTcSaM-DMFw2OoVk9ISOCdgh!9w53Wd2D^Q-cD}FtC0^}nFoavKNQsmd6gZYM_U@kpp-i#D_0i^3}XJ?`WN^j4=igVP`$Fa zi5D~2k^COUC@Dg=`qZj*9K|ph&ID%&*bZP+w48Z`P}9;_?Y6 z0Eh8r(n5uN?(k521wZm0MhePv-L0eS`~}wJHqdmqTdVkpHvDAdj&Fo#(*pioRD2)) zZgj$U|CaHGG{Ij+e1121FZwXy;O7kB+ciI6@LR2(2Cj4;e3NSLfZuwIVT_YCu1_lS z$9hP8)KFRoenWndHT5Q$52bw-%&!f`(w?#&oFB|zWIb4&KHmy2hqBuhzwU3{y_it+ zTkGOa?3&H3@WJ#?>{wg+z$sQXzL^pU80&anFjle*9`lEG{s(2 zYPHXvkcqTA((H;ot*pWL?nC>r>1FMZG&tQFyb`yAGD>6PR;9$B!3-APKWSY5{Tbr% z>fhJYf1x$?T+ZENjqAVA)L-_UNd56)h(A^T3{!tr^}x0zQvDKL{SsaM60iDmz3Qhe zmD+zTwLeDJevPhu<{#G{&G(J0c*n~*scu|;f7HL$A zv~;TjG-A0mxMqZP-~ecZb?^Wvgw_Y2I&8fK-+iV!+-o;c2e=qihm~3&om&#f9Z(0+ z4lLc2tOAb+oW##XkVnVoyHxAzwqh%z+hl9-_N~QM`?5u-6+Zi!zhLxwc~fmfr5`UV zYzx@P46Vo+eCUNEp*AL_|-51GSm0lwW%dYgr%#Z6lK~r&ZJa(Dc2&! zvul^hjj?O}iR;?6Uc7--xDM`++FmGyC7!KR2?M^UzBAD4>PrL798sx0Fz{Qdh7fk< z4K)#pFpPSGO7wz7f^HbOsmFlT=zX%8Z(` z=7YJ!jL#ft|Dn_wn%-qoY0htSw;70y=p6-kg@pda_>@xT209p}IlJ+dSNX7I3-XgLQ3mg|498tZchQ*V_G5*^I-G(5w+=Gr z9|vEK5Bwv%MT3}I=Z2h->A{?zy#k&<0W2E-N4Yq)G;f@c9IE2UltO^5!t0? zaR|ck*Ut5HM1GM^FuBMquNs;7M|g<_1*SK{zfvCq8_}WRh;)}4>a6qyn2jWvg^md7 z3tz`LBHdZOI3nPnKbXhy^uU!oD6$H9_{ZX>Yf#`B1`g(IGGE)ZBAXf)U&UDqw>j*%#TR+SvnUo>jw}BNPtl;jl?E=&S?d-54=9?i_T|iGJR#PISxoJdZrGXr z;^7mS+Ow$N@ri;ttGrUP{grloBGzq`6b8HHiFz4_7}k|~W`kR(-$~*X5r3rX8oBmpHEQ%p*ZNvZZy4mK%uUP=Hd*kwU~ zX@}Z*HgAlPN#MpaGT+M0N_tZGo+)o8Eo5i+c~WkC$s2d*M@*gpKMHQ-CKQPN(4f{L zZ@ec>qKkL7;O$1g2HqGHjLwPX2-=E^@x@cA;BUks7zX$`a@&cD}=3n+FInx4-7E z{gJ-{!rEOEe94&k5?NsUwQnIl zTQuS`Lez-A;;(h=MR%>2xNH2T%E2XAE*9^7>n#|0sSa@0(moLPRjb2a@Yd2WE2gvd z-44jZ?|*rIS~u~l(4j`F_+05cDSkZHPs@VuNpEh^=y+nfu}gkD?WbAouh;$@6b|%w zkTYgPjlHsUXVO&ox7d7UQtBvAF|+fL;+fEya$`*BblyZadRBBA?n5|h6yJguLplZb zoSM#ntECFMN%@Hy)x|*5)bR$Yg1>f{hUL4~+%LYrzV{6RRv1R8L3IUHiK8oZ8c8mc zI9vQSKKlYG=tl9|dGj7`IHa)JsLGpaM?MZ0e?{=sOL*F{zo+9xBQXT{;zdR9_d@=7 z(HZGfI^)kZ7cV-9+il>^4Q(l2)DHXfLZC3R)H#dsB8G0Tfj1Mw zCb1bP5}m$r{H8LZF?*CAAN8&^Pzm848cMB! zrxME9rd>73XTn68Zt37E+l3L9!Y!7q<<=4$D8rf84AsmA2AGWuFiR7EHCNq(QO_%Wq*uJ;L6KF+ z!#@^3U4sJ8FffCRZZPkt#>H1L8;WN(7SAlEczn*t)P8?|@yW@8(EBxgq7jx5%uH!wf zRdVmng!t{tn3>^WP(dufRes}OYwgnxb`c%y$6)(>#uO{5aah>K!@-v(rJ7}m@n2+8 z>b#UUOo|jBI8U3DOw>Z>y3eE(c`4(O;te9B@U5(?A8lPwKx#fN>;}1Tk(0sXR+W+RBslDTw_e;5MJgY&)Kr4Qr>|JS6 zUmeeVstNvO#2+axM6>wgn&6*I{I{F+??s-2o8a&63jF<=!`E{79u^7yosk>fA13}K zE%QH%q`em6mtUdV>u4SAk3{SK$M|igiC<>^mH4HO-u{mcU^03e zH1W%!@hxxwJ$=>fw^Yk(mDV%Nz3C74=Zx|}>{}4SBJsH?%lm2ky_+=kYB0XG* zc>ZvI+k~|Lui}?qjM+PWsRO!Qb^LO>j$h_V{Bp1fXG{FLX*e5m3?0AhAD_3~jl(sO z%Zsdrs~1ypjb31$REr#T6TNVwxEZj=S}*wdnm?l#xkfK?sTY4WuHT#>t~G+#gfQz! zEr=@-$Ys=ZXa*Jrv>-;tfBu=)pafjI_Dt)?>#T??hw@X692Q$sPi#gGi_Pq)4%(#U zAfI;r6YCqJj2uQu|L7y}{XROr-$%#y`*;&1Uwr>V-|9wl@%?6`kPK&+#(I1kzuK+; z-t(CzapzaGz4qhvKzzD^@#!9mz4&xu`rdJDZ@$$iF3ufr$rWfnU3cE)kB`UCf^k(N zjz>$lVJg}GhH>@&lXYSh#V;e|M3YkOrQBdr>b#UoO-gcH4VskXxO#?3Nsg<>A;lY4 zJIiBlT-{fmnQ`^ElZa@>)q31`f3h@M zi%lBQ?a4PNmoW-ov2mpB?8p7>W=Dub)}N3u_V6q;wi)l7(U`hjjRkl_U?5~TZzWl_ z3-l)t%=yWS%pZaLh?s72-)us=F_2lrADc6{{^GjZ(GBVoj!tkR@M%fsq%3Br7A$Yx zMj+cQDOZ4;Rahgy!ZX$g93;S5gzqDv`%HQh*(8u#b`bW*xIxyoS?U@V-OcXI~V^A8(*+>Xk;VTsfnFITxJR6 zfIT}V?zdib0u9;i>e(a2GZDXf5qQCxHP}V8Uj0bY5V!4&$F$#lL&NwHyWda!f7u3%(YLeg_7&VKZPb z|0fBHooUBz#+n_(yd9RjyNr3az|{YOC0wSA(x(1en0m4N8Q}Z}JDQdiA0ob4Q8K<` zWn@j#1A-3kFlw_Q@sVnMEbGrU)=`Xr>XM^VOfw(DTeq1z@dhE6LTH9satv=4B|c&Q zddJ*+rtRT{3-g(a@S1K{<+Ve6K!w#`2aTl@8mBz<@cYj`2+et9rgS9 zv!q%r^VjhY@~>ehX`cV1DAj{$8dnRGt1pee1$(dMcd2jh9VNH8Z+hwiUpxu&OXfdY zgpB;R`SLfGcQN)W1*2bJ6Jhjc>{r63v=7XJqwRFTW+d)c>TEl=|BpM0k{{CD2G4Q8+tYA{_?r2;%D5xXm0%#Kyhb89mj-Q~Pkd!*PhrEE}ff+s>F#V@5>V z*hf^;A5RR!toM#=8r!Y}TFISy>ieTX1N#jf>@LRSx(=lHM_6f4;4Lofd*kvZQvvI z#7TSX`m7>T-Sz4LXq0(#=@BS@2oK??*Q*ziNd=%z*Db#au5H%Pc_)eJYVpx#G4iUr zsDXS@c@w}8UUwK3ivBViJ}%h*mh;Pt&|T!U-+Hy;NP;`mCmf$Ky)PFmA(gHQQ5X{| zB~eE;(z4XQgmJy@j%5s)KS5(HrgNLIooFgtIk-8bXrT}G$W@sb=uTRPpcg3+%_ zqg&j75n>E#3OT_ZQRtx<>(zF2KXn=s$>xc2ZBWMwQjaWkr~vqw0k(RoQg*Xg;fDS2 zidYS#rpAe;6sR;5iT4(!GJe0fS2_lfaoCgkEztpGtA%JiN_VOB(|WZKR}MOJc)!;o zUDAFf$1C|xFXe=BZ7wbx9#ml#3ph=74SUCk^>aVc`-S+HO9s zE1a`$YD!6TGd|mXCGxAwAj9};VABi@3)ErAmv|H8R56}aCf?x_jHrkdsRkNJhcP1@ z`H7SaH6A!j0m1^d-VL~?wp=agXuTlvm;wQG$Cbj&#Z}&qNjwE| z+CC=!4KVRCe_q8;W#V-d13z#o>7bC7ltUPUI2if2dw^W&%dvmLQ9^tI*IvoRtaoW0P3(IhRJ z4$=wX#cC4pjON>H>BdHrc{$?_df+6;ykU}Pw&(%KiT-!#y4q_ym&8OK$@Rh=Jy-F7r8(GKElJv4zM`L%d zlq9^eB)MQicc}A_B+RW=B>=Ut+(pjB@D3GS|YcM9J5)@`iP8!OW z43w#!Hc)r_9eP=$^A?|n$4egy^d%MCr@sYR(^F3`yz11;ec%oQ%;CoO9!L`wggrD%Ujqe+O zjTC8nNX?Eulw2C4zjliZfV4fH?@2s$4{abkILQqE#BW7csHLJ@bM#YDjQxP$JFW@27MP=%wDqsQdAGw~7w=g1*hU-jnM4)1NBf<+ZIgwBS?7v1`?P9~A zsKufPe%EsV%stH|HUPqmert@L>qB-|9jVRQobC~Gif}B9p=wJLC8h=sU31F)TCVp= zbNXdRo!Mtj^_DIeWE#x>%JaRwKMcVlnpB45A4aToESE1^(ZcmF* z#^)#H9!7t)IzX~Nr)?_Qjw-(kXd#GYxuD^2qI$KSN!-v^uf74O?d$_2r|oRKG^%_t z5;`(J$!sENXE91;sHc!fdXLC;y}FM`U}Lf%8#_Cj5{ngH41H3k09J8Pp#pU?3Z$Kl zgE87!)~Qq|HK^V~0sc`B0oaAR8Yo+jH!v%i>PVA@_98TCVKy|_XK;P-5ZXy=@-&o% z5QF%q5(R;mt)?Bqnlp~oTLLR|z0DWy`o)Z!`GT0@{b~owkp5K^^N8u#xsOG}( za{mQuA1l1RA;tKqyDV6d6x!YL4tS*Pu5>=>UN6zkLZ+XZs*0 znkgo85gVly?xp=Xq|mM=R6RgSdA(d4)M`F*AmuLvpp=&yC|k`pP^Ow?pzi8FfZ{hc zkYKHvM0R6^@9#;$2(S(wb1rI<9086Y?lmxx-Uv_!yTHarZuqBo4Eq}gmkseVBykb% zi#6EfxevV(fw#B*3laEBSaI=CokSSjj_b0T>$zan$s6<28!?h zn_K+$wov~cF_5T}+Ut3U&kN55Km4OSyZhiG7xu~a2zMZK1I%V5Bn=9e`8j+rujhr2 zls~ERN{Va;Qj>N-MN}O}AhZLz34tG95Y zN6G6Y8H)vs+SH+&xf|nYf z$1mu~2Le_f!b0-FK$OCvk^3%nx1<-XP9+^c8R|Hp1pn8h!2dN+ceSs9GF5}9oA|$g zWD9bmIEx++{bN{+Hr?yPUjH?N;L9=ymV+tZI4J83h?;oo6hWc!P;wtgSKGNGxgXjb zD5WqQGG4wvoyAz;5NO0K5J^!R(!nb1L4z8#KOS-9f@9Q8szSqtILdl;9Bn z4u^fR9V{#i*W(N|E(3hiz|L2DVAvAxsQ>OK6c|s5kJ5OF$2dvhC6{q93kkqnEl?Rqi$nO-Io_x6zLmj~ zxft+&!|=y^dvKNYKl6sRc|98z=yb+m;byE4M%SoupkeFtqlTd^|NiKM&bx?X)tRWPrMGnQO!*TO(UTD9=^c;#wcZLbW0Bb!E_kG<{LvSQad zghMCzim2&eY5_(UtiU2UUB6|}0eyt3a45^FSlHcnga%&7^wuY5q5k~C`u?IZ9S~PE zYi{-GX$(h+scOG{ksqgCxXV6g(u;{ENcvrlXwZm@Ap|4imnErQJ%?)odm$Gja4gJ% z#K&%VTwjnA3R;loNg^3I>-DMz&FGiscTjrD^BRyg@;u9wcDh{GtEtq!|2Oiy72`!C zdCmuIR{DJoZGT0c=R+SL&)IE|-zU!vw98taH<2{t*#<%|@*E;bH~jM31aEhR> zR@rDRS064k>wjygWzDaD>GeUD-OTep(x-3Im{02y^~Tpf?}rtlJ{2ds@;q9!C28-9(S(%edoXH7o=?)gA?Y7-U9UD%1ODI0^HX%k zM)EvH%UVPLCG!er@)Gnau8QmZBzO_KukBm&EgpcW5}Zh!Q-KpioO1`k5ZEW4 z+uyFm&QlH~n6v1s9z^u%L8JTQ(34OUg9wjZ8V(0{bbs3^9n=K}Gr1=Wl^ukZiZL@z zQQ~}Q80;}l=Ln`MRD?M>3G({AJC0!fQ!}O$d?u51y}AT?fqaR3)w>vMo2>7%J|lhg z;r;c#d#CTH1tWa%Lm0EZV|~wYKe-${V$ECRWxX|d3U6I`Ig{^|r|x|dc}5&<_2W*Hq<%E5 z-z?Tj>NkVX?`y^0^^;6aj8uNNe!bE8{%rkZISU^ z*v<6G=wU&e;iCsFsxtyr@YBZU2J?58Vf6ULj?Q=6pT`^RgRKm9w5wfFla80?(}Vd- zMk~9b78A6c!5Y;XuZ&e=2*f#D7;m(S7bV*Xe$sr=@6RCNEPo2FG z_4o#w;U6}54CV&Es$*&JV?5059W8m|#n<-AhA`14JP8&j!#cfk?dUtYneag-r&oU@ z53-$#O2Mk2X~CUTgbrN=>r!Shz&L|ru^}%L`locl3}%spsX9SONy2zZxU;{0e3QPz zK{q_nZkXKN3huE(=qdz8#vPoG4Zb!C`4C2km!a;+CXMU4s7w~=Ol3NB;9{3`_tCvu zCd8Xn2V&l?XUAGv+>wOuTK_^hz$-c*j*{(O4F!Pl=sDCS&Kpe$Sl-u&E1F+t>8K z^Uwp&!}|S4@RD*N9+;QD-OaVgT>G2rAafn6uanuO49Fg8z$y)a(Bv6Oa8?qmPJ*-w z`~&V54H4X#1li^JXGb5-W{sk;QM}YnrUj4(wUZfI5it6EXFOD|U`!1~x4a&pOR93Hm;-4EHHk31_hnFDT?C7cTd3usCVDXEB=r)U9Povzl>`~{0m0! zrm&EQ(gE%gT=)mvrRK`fk&l-1ia+F`{E)(7kHxF*obkjW=jf z4TlpP8Ov-_exQ&}gJ1u&k*kqtMz&E?|~c z8>s|D-DphZNt1UmqFwodW5rg$UY9s?Sy;%K$-+wbiIyGeW*|FHkPwPPlz$lR@ewT6 zrB)3vl*Vn}WALMqDL_>Pcpy<{)di4d`FJ8bb437%f_0`ib$xN(O9qZyz$?`tjP|0? zLeBG}&5(IwHHk?OH$OvvDWmP7P0ILQNa!-IWf>nMLFP*p z(kD_K=_dJdV?|aWPG2Ei6AvV$KRkx`d`;c>-blM)w7{9Mg{2nE;CNt#7xNL6B>-LVt4f+36+|TCB!-He z2SDYlslzESO^7exSCLfc#46UqsieB_b(3Q2)z3Q8 z3IXyT)I@YttcTjQy(^Im!&7gXZ(gf-wWbaNU)EcCz%`uLik;)*kTYFGH@uu>R{WSc zB_>TBD}}zt%GqSG(n^412|6)qZE*O2SW0npDFi$JI_#XXUafP5>-2*!-8J%_?xJ>d zCM}Z{DS&`Whp&lL<28aNdRgC!hSs$`Wu%Rb+Kr^PW!)+o(rSCQ z)mS(-w_irt(G?B*)b^A?I5z56By}8pKy1`50G(@lb|hwgZP`^hJBy?Ezor=c^o;eO z#Yln2ebNZ)rsL-PzyoX2?&|UhPWKDqtPi~7HgV{d;{1=tY>w{A*^`eqKHA=2mKp2Q zP@77Ek?IKt;%L6wVqv$eO>MC-Y1$j>0k)R6T_FvTs^yv=V?$e0=YT{o`guG?kwXh% z%B^r6$l?Zv9xkxL9BiSPHW1X=95r2y6bHk0X6czoLs?su3k&Hzo+WLKYPD6J8>O?i zaDvfRr8G*XO6hckF~p-YR^}#c)u)XTWs1^P&GRRY%HTls4t;*usZYVHIsnE7i)FL1 zE~vhTm#yZ)-;DpXgT_GH8RvO%Ev%K^|AlN;VlMu-l_?_*{pBkTX7BL z<4aj3@MZ9=xSPJBq{I!t@rqXXU?i8nJq6W5kG(-G$!qL-cEM}XizCM~Uvvdy28&Pv zI&HiU&~RXRo9IXJ5m@l+(mOCVA9bGMJNqW6lje%U;28oU4<5@Oh zK+qkvRNBz>j())~s{Z+t*ssWLeEF+c-K_D#HjIYRFg&^i zCRHtlI6|?x@Yx{t#oPe?6Al42EO2T3W)l+sq0GOi;W8AMu- zh}-z^!6>%|u~&w&K6JV2)dVW1V}@s}>|ul+iKo(@(D9F;f@XM*o8h@F)E_UXLsTRK z>JF&8!*k@bLp+IzM`Cm;7@I(^B07n_x)m7By1O>Z%&{#pqsGvsxCZh(~*G0Eeyd z@s!S}AlSK!8XPN3tb{lRB7^Dz#H8N8@HNsuL^^TrmPaC}DU+sCLfQhOe;mf<_?N*u zAd#%YB+jam&2}s4ZC0)}Orx=i&7{!z3CQWR5i~qYVa;&RZEO?n83kFd?xD{I9$rV2 zHbrET2rMK)Y{-kiqu4coU1pA;?#;t zi&N`FB@q-6Fo}A5y^2${tyWvLwGI`>ud`tc&VYhbYj7g_dci1GgQ)O(f7agT<|c%G ze|`RWUQb@H+;h$z*4}IFwbxpE?de<89iSJ9uG!&@;)5fgjvGvAtf(#wF|S@s%rQs~ z8G*mFUg9w*q&SBZ3#MyiT;jHDU$42q$TTN#?>H4<4d%L&aLM3p?1kKDmiV*6Zy z0#WvcGEvbBE!wybT_aOO4A%*+(=mT@b12H4 z?rWj-IESm&1s<8MO14f{rBEaX+tJd#Vvm}#Z*^0wX?%lbhyRGGv|6Tp_ucp4u8gb> z-Ii*&tyHA8Y%$;|uSKxRc~^gAw*l3uR?$Z)c(|#MH8(~9H02@`Y!}O3i-hD$ESqTB z;|mf`CnQ(FTam*pe_xcj!B9`njj|WHXxQ-NAz(kiT?({3mipZMzo|?Hl2DmZcoN${ z^$Cj92(K)?sJUg@t5Mch=VN+$e!e?UW*U|y>wDaHM7l0|iFcUOs6LwxHeD=}TWHuy zayD+~+cJX1Ll!#DU*IIm(K=n3`Kylex^*Z-_vUAyb*Z3a114?mG$L~SWP^2u9VPAQ zYZ40|FLiSFeB}vvwIDq~gJ%v|la1D=4_i}Mj$5y&Tg7$|`V4(sTj0SLuo~3UXNuhm z%%}E&`Sz5FbeXlq(+Z-c2fc3<@d<2v->|#ePB4G8mOLgsCIy%W0n>E~n;f188e$V# z$G9TV^k>o(amKVKX$Cc=I|GrEzt5Wm#ieYIJ>%{cu%#lG?A?3^F#l0gfH`WL?l8GZ z$HUxCFrW204^cBq*k>=48PRZBm-=fsN`$yvJt{kV`m3ORA||;zKxN+k35wZFm1-l+ zBliIV4XRG(9=0~$`6c{7__?8RUuBv2nN>4)mY$8nH}&u|^ zese-J>^I};ztfuzo^XN`@V!9+pM`8Q1&pzjre*@z3B&m!Zh@)_X;x90=0U3N_*Y{U z%O;wPFR9pc!pEqZ*H`pjxceE}&`vrGHPC=5k9|5fnSRY3Bvq;90`GagzLlvHRp3GM5v)u*=?tU1$zGg73OA1Oq2EvRk|QTs?Y37R;Fa>knDl($V!&6HRj=8OlhhVhi1mG3v1N{TPEC;~HS3GH2j_{1D6-U@Udp zfsh6m>I;Ko)4wplSdCuQ0OKQ`N!+8E6IEQp!~c175izbwR{hJ5VV1gCxVb2T<2hV3 z_>GN>E;0udjV_|>Eu(2V+Ys31Dn2MES{sHkx;TMYFvc{*-z)JY=UH&goYC%$a>%}~xh@(%#P$tIQ7ZBmDNv;t70;7nbE)#b__Xk^A*rI{28Af%VM86y}4?CT$Fw{rT-oQHJL-#WJj;B zNguZ+cLd+X#>4Ynit=QrlBrS3^igZ_Gjdy*1LVZ=-1c78xP4@*oFqSsDY)Nl>09l@ zHah>e6qiyCi@PYq9jv&u*c7?Vi8Ft0u2gkYD!<+^(Oef2Z%g8?=0}?Fwf`!NW>+f4 z&OEIkn*Z*%t@(WdYyK0eXp&#LYgACw5m(}Kc`%SZPrOqM7m*>j#|rK&skzM43IguY z9)072A_L=*-g+F6hm(;GVdnGRI5&CX^wr~B5H}{0EQ9sSzP$6n$ zpDwe<{$r)e4}>=%yn-P7n{Vo?*%ILYIIu`UJpd^8xD0~t(ym?gZzA_-nvD%X?k$Rz zU2x7y$|;x(PtPOgtw8oOSf|m3Vuq|WvZ>}_Hlj#m_qTk-p1uV$JLWBFO1?^tf3>yWbyjC)RjQsp|AX8ff?(oct?^TXuyq6q5Pd=uas@DRo8dl{V z>uQr!=EBM-bJWn(;I&+}rZr}XrWSINjYExbgfU4gT$!7{g2#}Sy6k|~ZpJc8r#Ovg;EJ+G;+S5b&yIz-Xk*yRRSiZn=XAt4#z)2xVGf8T2p!g0}o0+wc z+KjB~oVw+RY`+74U(>m+CjGiEDfCmI)h24Kx49hyl!L8eeG^Uh!1?5^O;4RQb-yUv z|KJw&CgZT$^xFC{%!2z_==>(>IkhFr3q3sBZ;RThPcHtb(FjnILrh6_aD^}s)8CT( zFh5wsO??d&5;H|Oby0c_o%5z>Si^0S83k|+90GI0bioMA4tB=i0Z4v!JbzN4o;wWLCbze48;v|A8Yn)*(QCRGa)*;8oZl7+wT{8DA5kDXO04or`Iwt#7(`2gbuU$6Rl zKiv415D4f+>4uxU0T3z=v3D;(OEm2#8HVKCtTuf>ZKk1sdu?CiiIG+7YSRs~F6QW6 z?^5hGwUT@O1L55b{qLa!W75vVj!7@d-3xWPh){iMag(pJ!*rfOMj;>gvxtwd$^8U5^I&#e2RYm7;sfojH*V&PTNbb#Cekj&+ZBgNfr zX$b%3HSyts0v|r+`EZ@_;ZNa1VwX*Sx|%#J8uY@xFML?&BTv1dVqrneRt5qkq~#Do z{U3X}t8toCZf*LLV(!aWWok=4sjXU*$o`cC)FuBftEk&2RPpCjaYL?{I%Q)VF`}!` z`rW&0u(;j)Tv%?W_YobEK488M5_r0CY5b<43c?vBRK&ObB+!Y-bfb89zf z^+6;O`{d@)lvy)&JPKuhY6~a}QFhVy*Nbtz7*5{yS9tMWi9tQDr5h zkIc392j03_NQtY*uTWEXo9t>DD|fU48i%jtW^Hn5X>dk$gO1hIfQF+!# zDaHe;KI&zDKy@;ALMNKd&u9ax+(mc?#g&i91~Hf<)=`U-esDx~uRCE)lew3{thpy4 zf5GCY zO?MfM%Zf)rzv$7x&3sewQ+*MP#CDAZ<6dfx59AYwerScbsOaCmahbh|6)VT5l z*g4{|hoOn4t^2C#wF8f25Pla2x<%=4>{tV>#ALBhb-C^KV!dsm=>bVWExj!YE>AQ) zDhLFZ7X?>f_J-h!qToS^reBCuTEtWoT$yMp55a6`K2s~I5>5BR5_Or=`1qjyV%;ak zmSFbf)Q^H1$I%e9L@q;(!g!5I)MVxY7G8F^655A#h81<0OIS^8e$Yho?~KDb-D?o3 zu6cdKD@iIr5_TOI(u@bHJZQ5l4Tdsal>BAM%t+Fm)|KqnmaN02Eg477)}=qp9VG?> zBnXTXfhr16cQUeRGw=x^!`?b@wGxL;ZfkPI{c`jgjKQl)R8P!F&T zM{8^BAlE;D+)5w^3FIB(2;tT<$0+5faIexGbfj$4i-yLj+MT^Tcf4n_Z}ue6rUt5G zHe&!k?K(S4&z(t)@|Q#ZWrbwB7bp9ZPgbL3*B159{8Pmr%K&gg0l?8k01{VUVwD&6 zUn323=lNQl5vOLsGxh71V`3r4^U855pT&jUEm92aNs2v1ilJ^H6%~6K@rH^FTgs=< zIPZj_V;HDy`yPQRiKd@-FMryj9_1q_JAZe~fYblE0RuKf@`N341u_7dMmcb7{w1KN zyP#_gP&e$PD0~Skk$<^I`1IH{FG)vhrr`w=triiNzg3u)_r%oLq};tj{R)_t3)3Ub zjbiKQyYXv-u}PV`*XKwyJqbm{TxH6&iMdjSFB=>PQr{b!)TlaQllu$Fjw`}yT40lJ zE7?Zb#O6ebS~7kG7i66r@^WX zhE!Ec!>Zc!w`$Wza2oEs@_2E6=HO)d#iZSc*jJsb`8~uAJLqbjD%H#2Z?y3m5fjcd z*>9k`9xCV}Yjy^vvei8H8>k~AxTbu5GF!U}v$I7b@ohQwM|XiY%>oV=mopaj`?lm* z-Lx*lZo4g5uVkpp;&%o`{cWt zl=HF+`@0)g(xB(DNXyO!fL>A;IPCEm@6EN7E?=Sc8cx9Ui~BXVTsVT2uw{NQ2C~(W zZc1&as7rs1^`#X)Iv20%t5o99_wl*A+g~teI6ITq6rACgJOGGt1|@jOTdJF|m*3+) z_J*_U2+~eB!DsogE+d-3l;8Skm!OCom+Tf;LlgMy)vD&47p=IResLoG2332rpr4f# zutQpkMNjs;(s+EN-VG0*Szcd>j-zz<#3FIdfPtyZgbKrHuq{`D0Kx`lX5moo=hQ~$ zcYkE(A@o8|?m5?CykBwdc&U4xP7gydcUFH2xYiia>d$_*k}A88UXcaH-2Qy_v{lq2 z4_3I{Uu2k|nx#jwd*^UCf}=q`u0_-x)Jp2c5raxV3`TS@T2CN3`alZ>4_Ok28gZr* zgYsc(Q`MaMOq4mFJp~-ppp{T8$xc;$Yr!m8}V)yINsSeae( zXi4JAk$f}2o$YpE^bn3ZYIP%?6B-@vg_q?YMj*?o{1~OE#eOTW(|o@&elz@aKKs&| zW9ZoI5&6chYu9MtI8T+=0Ao}EqnIjX@Pnty2&hu$sq&7fviky3H;#;{V%q@y>JFGA z;7`8=|33@=C{v}W8jpV5rmh4GU_{VwD@On99_WwlhW-(JQBPO9&|~`IOQ64_+8gvc zj0|nA9cv=gqvm)?5Ia*ZnYJx4Vw2BclX6>3bFVZ&<_N5eT~nD~xn$<-fi6nFY_g40 zTB^A1(A6allH8>dMj? z2zu7ku`>P}a59^+WfTOvjDPj zYI&b1F>-D)QTs1-Wy_#XQ1jK``>t>i0K#O`&f>|x>3^PEgNQ-AD)U>^cL12 z=>{^9qH&6m<4s61TggvCw08*~)z{1ORQ9~enqyMgGlsGq@Vx56*&R9qWrZ6`KjKUP z4U+Ghr`L9OC+bq?N+W$bT{-b~sA;>)60e}<5RXyIeW*}19JhB)h(FELEh0uIw~Q!r z$0|K=>+IR#Mp`^4cjLY6@BXG{VatC}Q*zo0c~j}no$ME7-8N+1qFdIpm6eKLZ(VGD z{zK$u9u}ORe}NMVRlB#OOR)i23PUgHbkFmh)YiANs`EGduvB*Z&=BPAAv)hw*w3r; z(>e<(k&EWC<0r6P?JgQarz}m^lj2WPcjve$eN)+I7?cq{VuHf1@b8oLZr=8Eqmt?K zCW~rR3b(7|e#UY$lEL_xot&LJI9W0~x%kTzJ;s%EC6I83Ldn@5lVE{smvFSKxNbOa zyezqRoeZ1VtB9WO7KUgTJGmI?&QjI(k$8gA^u#$>9tTGybE3s-T_5$=tTwRHXpo=d zfa<`@&fK5_i$Ai+MDYd6kskE1(G$w2m=UNp7Gb_mvNt<|PaQ1j&+a>Jj@od&JA!Vb zJcrto^`<Lh0w3*p#YwN$_VUe-JZQY{uoaaH!SkW;e(#Ph?O!9G2<6P>& zoJfcJT=nF6%WQk1h}?USYh=?G^?NHV4Z%sDO9cDc0DB2ku><8eU&H5e_nYeF$SwE@ zEW~v;D`>_%wRaJBBFq&z&C<8I9pM>Dmxw=`pgabSeVn3?W#Qv!K3J~c{(Rb zR(I!_7wLb=>;HOv!IcC5<@p>8IqJ&(;~w_eP`$T3 z?9<`BuJa2vJfGw7`Ie9KId*w=gYyd{x@_w=256LChH=rjvQpik@c~IFbm05$uBRX$ zjlu;|#|*60dAQbm-&e0t^I>YL?XH zOLXEqV<<`4{EU8%|M7r=2JCg{gE_cmcx5#D@bjMw3dV8me70(pI~y@4*m<$`Ajvey0)o?4tJM* z*XyWtlkky!KQ(YVb+SQokn|HM$)tRTyVDxQs`qW**W52HcD?(#Jv-ge_Uv$n@wD^i zTy=OWcL#(wxZ)i*SQQ14?^}j;x06N6A39^68m5~ZHr`4!-;9KFi^Rv>`D-K&Pxx#1 zf5iMXR^z4Y@E;T4rlU066ar+LYFF{nR66hOrdib7e^K)&^rQSAyCp~yk!MjCoK1%H z?n2AJ`YU^KzL_%WKs|R#cq=!4$p78v$uHT+^R*B@!^GOFs>IHMAZ7Aajx&qI$rLK$ z^s~a~z8~2s|V3WPbP(>+a~niRrwtMpQTCZEc) zptz3Ytftf{+s%Gdo;?9;*jXq5lrcqgZF60 zN;bXFPP%dmcR5!50@a`*of^2842YrTgK%XCB%NI`Zpad2yEgZZbq&w#6X#bE zsLm^PeL|*GkY5j2_`PO>*>bUVqk%*qb(fC+#ol|-n1?zCm3gUI*wWLPjLN9Qt4C4ie&kzCkqU3IyyB9y88bmUB ztB!kAc^NoG2bN+7U1>)$x(O_G4qfyHt1ezO60dio(4-O~+Sq93#>eh8;}`Brc~p5i zT|egCgx^!r*%YsllqC58**y@ih3Xn(s9Glex3!wV){xDe=Go6pRd%v9*t5-@!?TfD zhZ39>dsXq0X#TcXj`P+f(F{?cY4)1>NT~7tR7c@I5*!kLLgLWI7X@+fo_~VAKXKia zgtXe%7SbM}Gy(A_d;P%WD$|6rYg8)>6YjJ6AH8d(v=#kH*;9kg5Pb|!u9`nxcfcJur?{AmK*CW!H8 z%UDR^)+lpkhhJIh$)!9aMe%DS znL<3ZaZgyh)%kv2^Q@+}%#^&$-9iZ6U&j|u;rOq#eVeGm zBWY|V%Z{-dQC25TUPyPQb8y|OYsJvgD6Jw$hu0q$7EDF5f9zqscDi{IhU)+JYc6ifCLeiTqaM`V{yu%CiWv>ZR@Y{x3{sW%v?_PHF%Jr0z~fs4 z1~D>>@Y*yZT5g-iKEYnWZjprD$7<5)_Tb61hRt@X_;0INp4-~9O+FNvlgGMuL8XVf zKMsk9xiuQ!%s1Tv}uH7G% z=w2=%^IS5>-+0A{zN`_7`n;+RTns<35KVm1WI3Y3~;xVdoFZ)O>=uqXO z*?GoybECyyxrcp>`FKXAa~j^giTJa0#Xf)q%uz>D-G%eW{z5}B*JD$$I({Tyb8Msi~|&GNmfNo~iS)ugtq4X0&>0?y7Hz%)FQ@|Oxsph)3 z)ezMBRZkor<$gfwe2Y;-N!dT3csQ&|5AO^-K<=w zrDyImIFa$-f=b4;?jci(T!7epJS_iVQkSR7Gyj^rhn40%3@)(NQKgWRP3xn|!n53- zRN*}}N0uYeVkgjIwO)2gHMMf{Epp0eqhFMrGQsUDF@ON7NTv6+@kNKLyk8Ke(E1;{ z?O`(sW;U_NW7welTyiuOsmPOq*xV9pzF}9480bbpt@MaNCSW?;n}9K48SK61R1Yfn z8-=GkYSQ!EqZB@}iOG7M$rWWLGFYEd7QvL&9;@0OSH4C?NAk13SJxddmlmG|Z)ftS zWXpED^c63N`rBw){RF*F;Dy-Qfs=VT zv%bzvKv(7u4R&NUjL)Fe8%7lGjP!sCPDlX7PDsIuJ&+^L+|b7r;KtL5_#Ij&;il`l z52S|TMJq19D+8x+m^#ahnnkqSXDB_F{fD{-M#*}2w2jU*EQ*W>XxtCoa0`t6z_&`G z(=x5WI>t<$grJ=n}>@|J?sw4tw_=a!cbjCk;LH#9SXLVG)^wIp+_HS@mv# z!WH#f!sTwcXGYby^u*i}zD}Rnvp+?dQRUJ2FW3;-Zx&}jGT&q{gZTq)qMhJtX00QDP5{McVAMLlQshSDDzp zh5NTxk4S7YU}ds#KF5=M)3;%PiTsfLA7n@5KaOeJ#|vUF&oK~Qwcg758M`f*9*J#H ztKQk}h9WAgFLk=9_v*FXHE1Y;$R8cF{AnVEcPSusI@}I4nbOsTbmK5St(SA&uZ?2N z6!@_b(2ok-dm3+m;ntc5|B7y8* z6N=+#O;PBs`|KH@{91xtmR$jg(p(P|WGhVkv3o3lsq|oW5}3l`95e;TNRZHq_y)C% zy!9WS=mS{g))K6|Qc{vFa?6OxKj*7vVGS$uPxyJPo|+;iNcuo@2?~kh{sxFLfk3UJ z_R<$xsYy?S^C+;T(~T;(PM152qUg7uh5I5yJ5)s6GBFF`!(|WY5d&oT{*sOpG0~mb z4AtQFQ{5ZqRrKti#p_uHWsWb+9#WDXRhk(!fc?ZnTB@F}-#5w}m>PcuehE0^LpLBm z1@A*MXSesO&2YGSf43CfGP3H!$JDW?XJg@9$;^noboEQRqc%IPq&7W%FU~%4t$+7b zJ0#Pu9YE9%5Z6lkk931vyJ(y*&Oj)FXu^@ z;jb=_{nbii=Sj0|N|K_L?(4QeLj3RkYR=pB=ShdG?QU}r)48ixy7TVZz+Y_>-XG2VO#d);N}USd z)NjrhrFsp(I8MKeBeO=YiLwzZaPXqCILL1m;i!z+@Aai;_zFaWkq)hHSJWMO5I6*n zM1#yLi_OR)1rucw(cpy~*#pVglr&!~o86Di0G}i-69pLNCR^ug<&M90zArk>Rw=pF z>b1riX7b9TXI2Iaq}H(TXN77{(Pf*c@^Hx!*@1!%dm*_c?q=9{=b3n{1vRKE`P>Y!@mO7FmF2!gMXld5eNgkX zY`suze^1r3MC*@6UYEFBJH3P-K@Cj0w<}*?^PVlK_M3 z*FX4K3XO@eORWpTV!^~@H~+~OzV@w zkblfP=S{fT$M)`Akd~Ul^g%3?OCwEDH^XH#9o&M!I9Wajjb9$$lt5TL46fSU%hpD+ z-Hc!zz{WULnFIA26rPOBQ>|)Dl*)e=PnEu+Ky6G}?`rSVE9-Yqc}l;Zp5({s!xyNK zT`h5kd;Shfp()J-i8Q5o7~>%odbP<7^M8EoR+CPFAE8cKM`#TMfbkbdyKFFliE$Up zQ;IV|?H&L?9=|YNEL}A77gI}Z?k8d^uM@8(NH8zA=Xy6yNu+;V18gJ{Ur4 z$mveBv>oOT$g@Z;TqyFG@?izc6(t{XchY43mfycA$=zM^@62DNSf6F97Y22WKbXZr z0&DfcMQUw7E!A8VPJ?eVop1V(t*=jJu=Qjw#GWEXi}x>er?+P9V@ zROavZVXQOYGAs*n#s$D&tuDFYhk9Fr4g0_Mr77yV%+yl1(j&jSa z5c3gV@;8;x;Z6@FoU9VEmuMvB_AyRxcZXRV=O^gdIB#5mn6e(gU=NG$aC5+#+Cnn7 zV+cyvv(2e}Le$rEU(Mt~NAtq0RCo5S&vzBIkm_j6@R~m4Kg_?YmUw_4wfNIMxjWWc z0Oun2uM@=3#1`^dA0dNYk-o*K8dX*#|23XQKz-%LquW>vwV{2%Y^+)G zen35D$lIvAp+?nGcgdfW345#mz;ATnOBn+Hgy(GTkQA%|`Gy|9T1Gx`C_a7%3|yV~ z*<$>Ea|GjG=%u-=1!NlWIXmXtTA%ZC|0=+Ks<6Y%eRr*78H;WTbG0_|FIw-S@xGVE zuOo~749&eZpW%)(*|b8fPdAj?k)eT`K)5?2@iKc!=U*SkAImCgyN zHQ5oIRzEk?%wA7~RHH(w<)&V20m}!z2I>HVLk+%9Dxv4+LezH50@+!WWaCx2^%tu{ z5O+IU!$>3PqCW0tm+}BtJM=MbfA>SGB*=b#2${V=6dUA@4Bhwmn~A42+HT=#^8E(j zs%|GCDqy;lpRKX)@s#)k&UWEELrA*}xj zA*HUxLfZZKhk`~^5McADp!xaxtjPK9k0i?9t&lr|fJzHMIxn}Isk;l6;yOu{t3aKn zJ3}Gq5dCvL!tpAW{4l;nqC*t^3xtYt(qeSKTHGc_`Viabf^HDFa;4M`l>o6+-OElxvhs#Y2paeSHD<%NElxcULs;LP58HK6P8P;uLRYE>5HbBa)@O?z7 z_JsEow417!9aBa+0oh*GO?C<#_pvJt?AeDTUJll#Cw`aA031`{av>yGUDCREef1ZuCH0@C*F16DvBw_U z`4Qo3b{RY;+wbVA)`lNGu0YF2`1)NsbA#8W7o}hC%oQiAf1liEa58+zy?CwiUrYWy zA6Ia3e&UKD6q44rvAI2QeaqZ2>96veGTuhZK#6x~m8O>Z)zWjpKEYqywc-f)U z#!0xT%!I+rEv(&yQvs$O$b@C)xU%H4&{uy4`}|SWtM!L-v<{~S_SN7Sb=EJL9y_oU z|5f8R{TkYmY9`6U7y1}fLT(^mK zwtbh;)B#COD!l9i70^0cD{u?;Ft-V4vE`}oNRl;!8X~3NI6S-kEUgQU27jW{SZy{or>Zs-jWto@A5D8TO=D z%tMAbsWhvS$^M{aS3rhcANW`CT^yeM?hqNwI~G#9v(Og0*4ih_ZqF_`C5K{3E#k<{ z!ws8ad++61KXO=hz~?G1w*wz`lau`W)G2m*yo#n@2;J4q$NBLLI)1dRfzr|pEWi#o z8G+0GdcB?l1K4X@Dl^ob!dGg~p&=l>hW#*FiI`lxepLG6NBX#fmAdcHQR#yoPBt#U zAGxky!=niEu~GI)yNh^rVvpK^Df;FP|NgBM+bg=<0iq0IFA#AH-8nLlvR?PuAgDD0 zUAK&2=7~;F&L_xeaH8xXq`iLNIPg*CDE)erepQ3*a`yv+bERMAAi|H;Ak)e!bys+3 z$7mr!rO#YDuvV~7wpz6T*lJ_?F<27Td>t<3^J0+u%U`V~)ylgod65fo-rJ=qyT+Xo zCS~N6ox|QnZ8wp8f^Q&sj;RBU6Q)^PGv30|aSz@oIn(LxzFyA`x6kkNYO8q*ET8TSM+LCX%27Y?n!&2D(CZ(zkv~zrqAc+AC;~C zl=Q9*8fm?`Y~$l+310Iqm%R;y*e$}Ai5V+zQ%?#je?*E`{$M1r=~daPz^@94Kf@Y^4yRmZl<{>P?bgeTO2=*dfAY%DBi|n5j%s>sxhx?V|kYK zpz4fcCCGSgFHT9f(S2M_WJCbe$dU?|H73~)sqNm)DJV8%iNAA@fMj;S_Vqh^_ehsc zInWv+)+tpla@-Nwl8oE52Rpw5`XBDg{sqA>8DKzK6*CyZN?w{^@u$%wo?S zHbEacE7bDKnDGwm@IQ^}-kd`)gju|@O|&fWHfk9!OC(7PLhl%@IXZcfy^VI)so5kc z-;o+zPI9ff?8KcZU5v;i%g_3c1Tq=Iio9D50X$CT;yj8kX}A{h+B(cIAl_W8iVoKp zndNwQ00L~*SXb@O{)AOb$b%OXAP*M2;K;9 zwi&`|Vz;?!DI2T99igTL&Y@PiY?6cY=GS!>?OxT!RqrbOZYcR-T9!_v&YOPUZEB$% zZk-WdaQ`f!%1D(H3v#>D+Vk+)XfdW==ctc=1oQ1t0EoK>*KnF`f!Mioo0;C6ALGOo*E7 zK*i{cibBi}EQb5vc~TG=AnRPWwLXyvbMts>eSMzoF@9$~0c)$nk{$2AVx=>@FShz8 zNrTfhTdZrwlA_GD5zf%Z%>KD?M$Q-@@s$Is!OolgnDsB%D8lV+fUX>Pn*lPjAG(^^ zU+%6Ev||PyqiQt7&}zdVLas6o?R6IQNe)%G<=`Y4Ivr@i!C0Z@j0DJ*MS8*6H3s+| zU?DS?!3dVS)c|NZ%3QoIK}K^?q`<07BLGAKeKe)@lFaepZ@}!c&X2vX#01@ag`TXR zM7fCPe$7+0*j3*!PK7%myp_AH!`mQN8{W#?+O+Zk&q6flV73TsHyi?#x~tUCl(9QZ zgQ-FBvik@58fZJteFm&eeeOM8RgXU?$m+2uyp_Al!rLJCRCp_M=j%=Q@XXKD5a1ql zSb6I6|DzurmpU{5j9w)j@(b+pRyuux7 zfV%N{Md0%?_jf@He4dS=ZJf^sxi!)P-T8cwXg1CR8XX%5U3`83V8!QQocuoqpo`Cc zNX7!6bC!yPPj^1oDU5;74^v|JVh*dQ#pj1z?s@Q1o~p%9^bLOvaudQ^ncF?QRk*R? zt=w&^H{e))iu_M}{#P|LeEw4muP#2X_B9Zn&%ewPh|kyZs(L)AAghN9Z|INkR^eU? zZ{_Z{dJ{f8H_GQ)`aU<0x|_=~8h&1m{ZnB)u&gi-=x1pfS5DTDpu!gVsOI$P>nR_g|$q<{}OIel<_W=~{qU?%B11!p(&O=YyWChdY!$hHktoO!_a`ymKRj$oJ zt!w_8QCp4G$d0ra#DQRbC62AmVjF4q1+LQZdAFr;P37dmX7S)9+XHc8GB zu>ALJEes!<+BDySezjHjlN(Cw4~#MmxQj-Tc#pZ99Kp3YEFt?WaRQ8PMU`=RVj9##5~JBbV&Q97;CO%p{} zg?l-wBP=#dY;*Wfe8GFi>1*(!O&a9wkj9k=p>{DIH2lylhF+O5C$NN+;CIDW_shPu z^&BhQZopR9cTjVh)89@?bt0*!RJh}LFDeflD#U5h3PR8!)zysCOQoA!U-y=jWoW>MAwz}!(dn9bUUzVLW5JCzC774H5^JH zMp?Ui)H+_9`<{WK>TPa2ut*|a>BaB3Z%tQH>}v@E(tn|6SBn_Y-m|z4cM-(HkRZ9F z^@|~No;~rO7-{|b4555)2$#Jod6V0cW-9W>umWY$gwUE)#ai+W88A7|KKq4nQax+d)oD81QDjcqLU-ou zjxoC6A2;Cbu2#<;Emmo9_&=bOwHV_cf~ZJ-c|o3VUd|*|#;gwxF)fpxjNF!>oM0+Y zw!$)mM>2Dumf4Rs{x?$)`RBb)n_2H>$LEk$nM$osdl?A+)YF?K^fD~y{{Zb2&exD5 zV03cvx|+t1OERPTH80^%9WsPfVXQavd7xm|zMPuIRUCX4wuNT)-~Vmf{i!ht0=88? zh%#3pE@z~oQ8Ih`wjoXI=y3gr;{xYB=4l4QhBAD-q@l@Mzfm$qA#4}cRL0MxFiA8E zC@_J}kb@Jw`{^0tu*&AkDQ+VefV?aqHvmMOvNH+fqmk3YGIzM&T9C~`gh2>;MKfA{ zUboYIY1Ovv;++T)x09F>z54x&_3UtepQ>lOdzWX#q?NnLUgYU`IlQsIC%l!pi+D>m zwvLlKL^B5KT)Fy_-%7OeC3 z?L{=bD7=-r%J7E$%Uk{y0OW7e4~rA#=ilas^GA@c^R?1$zO6KysqxkP{38W>B{NB* z=~2~ea!Q}aDT!j(+=0|0mfv0TyGU^FVvI}>jP(o9PDF=rg(Lf0RU6!FqwBJ#of#i# zfGOe~f3_$RndX-O;p4mxq?6f^I)O?%NJ4bs1fA?fF#eTgu%xQ&dQB z+TkgzL_1*ZR#IzPoqWiBsqT?58TpLCPUZWw8GO?zZnJbuu3^F2yjr{4Lbj-vCJgdD zyb6-hKRVnuASL&y?`#;)o$lKP%6kDcieVZW4A#3jrcCLN>s>qTtmpd4dUm?YL#rMv z4w1YjTwH!0;Tl4ex*r&$$p!Ttd!rX^s~2?M7JBw_5`rncRi-OCTr(CKB?|d+cZI+s z!^*p6?fUx~X!QOBS*V0G_bI*}V$lySjH~ho6PBvVOnaj$m-C{bORJ{p7HFz&e*P(F zt*N^C8kf)4RNegi64_g^K_W#DS)pi~`>V;Nvi|GNRx`nptoH~s_=+gLgB`ZBiX_7h zJiQeb>#r1cxH&v<rC~=>x5%=VgI8Po3Tq~B28}=_Kw!{9qyEn=Qg;<1RC~* zBvy7rWz0m>%es0ke(g#zclN0ujA2T1qd#GWaHox5#e!Q1;h5Tq{*LHpt9lR0FTvH9-i_qq8vl? zV+y`arScaNR>BHyp_-C}qeWcFajp3Y-hIV8$$sKnEMM%-V|};eANp{)!l@vBFNkoq zT%YEmjQ;_R}g#I6P`E!eJ~m@;Lk@gbi|U1iUKURUxdx zHHEiww@1L?!H}xjok^U;-8iM8q9=s3W$p+IVZP2#m}`duP|d<~a&V?!6rLCRXPy&L z=H@TsXJ-Dldc9gd*V^~*Ow7%7pTRu&Yr=>3Cv>=X2n=iQP^WX<%Swb6m}{$m&Ava; zis(@6ETta9H~gY+>EqmpP?ceN(iDuU=DN#>5lz1b9)eP2&zpWsWzU)-C^DM`hm9*u0B}C zF~FKJ1!tB}xn}fws$d$cC%=*+U#WXaz_E5e3Hgu_n5xM%XX+fI13c*Puh*rQx$7kg zgn64140Wdl#T^U3YU}fez)ttL=|b!CKP8p*c|~;f`5RI3YWtxs8{SG?qrK60_V|sD zEOQfN3D7!so$o`+-N_+&r8_3P4RUKI5KCKL8d6obp%xeS`L|4YpkO-OdTVaZ4^@I0 z^Tb3O_V2aE8*T1d%V%uft{|)LzrtIod)3|~uT;Jm*|iX)`mPBWl)Ha~4eWDmNNq;&iBZU@T6BFrseG-c~eRqdu-RPDkBb3=4L%eY_2 z*y;X>W+W}PW})O;lA0WtN_z^XpA-c{y>eet)=YNtZGsT>ZE%VWI*m-J zjBf>N5v>2g3!=sqUq>aRwwi{Fd>sE&}9c8dBar%3<3o4>9IG zmB_(E)Hkl&ZNSKlx5QME-BR+wx#uNw3s@zZcc;XhevD46&4d+m{o`*p>^xD@79aOf zb?ARL(U@*Gg*UGvs{Vbo^cX~co_iok+3A+43{sw}X7`!rhM*G(`d|7}dH4SGrQwBg zKp#yMik4nWN7|E_Xx2(xxOX}Hs-k-IBi0kq?eFy_cJuetpY&7QpT4nNwbUVhmMCidX_j)*OClQ8y{hn{{?r$BUFc7j zg_Pe@^ZU#bL(rB4ZP1@m+4IJA>8Qzm?kzK=)NS=EodlhppJ;j)WbFJ2LR-aZ+`oLX zypo*$;SL43{7WloRYVGglzabNlP)g9(_HWFQ%s)fCf4{pAa)o(;sh2Qu0nQI!|EnF zv;7w7e49))`<=O~U`;>UqFfJYy6o3z_PhO}lINq$CQ;_1(x{~Et`amyX2&Q~yUF_X ziv*UH_|bUomHtnFt7f0iWtO0_*O>vq=3OZ#mAPj+cv7J&c%-ru#~CSfHhH{b`aVTy z^x5vpB+_sKmDxCOg>734)+meH=eyCr_VJZw=wYQIbyBi;ar;(7BaI!g57)cbrR2@` zkdcLHw$*qujn}&;MQe?L9yFqlnQR%`-CT5w`2jlJWHS)k-AqzQ>Rn-3G|s!k-X>B( z_IpsO_)A5S~cE&nNa zDds+f{5gEwrkoa3r?*H0^gB7qQ=QqUog#_B)P=G8Zsp`pS)fPi=8) z_wkbA@iKhnZdYO2N3vl&MElCkg(SVi_c-t1s@ud~Sb}?Ab(7vUdg_5pnTDg;`kqSn zO>q~A?%0Sjk65NmR#4)z50ui*J}?^~oPDqZwb8zg5(x2z^2?B->P6;EeC|QW#`(oi zfIRu%x=Ckr`BRVaYjK&f{v29dC7I^yZ$fUP^_Mj5rT$(9X9Xp$zfx{+cEhpo(toc1 zhUYdMbxvIW|2h5tcKvUlNBy_;zvk??{+*}&->&~sw8?*4|HWt|&p!ut)nEN@g8Ij2 zrpJ2gKL;rK4&<WAj%#|>ldbFyZPTk?2kznJwLXtRh7ALcW zh^6p~B3|+loE{S*R)&a&eFVpOg@_RW)E_Nk&qDZj!tk?E;og7T;V!ceodgkk4>|t> z%UVT#BEOpO?gtJ4!Y9-vyCq$I_gs74~hjhOW=|(Hv0Meni&NQ2Z z^N&KBhLDE*tUo}hr?O{Fur%y{3~7#1noQ$#`erI~yJ_UiJ&UZrn>r*;;)gRalT|CD zv>)sRvnp-IYNF{oBrrQB$r)5;yPZX0OrMo=Z%e~RQTCqY0+@N|6CSDb?H)YmGsF7~ zJe?w28x^TPUQ4kR>{Z)l8`mf>-6$uC`?|3K^@= zTX0&EnQx*Sa#7|+w}AV7fUx$+{K*GQF9c)>kjmY`hUx4F5I0CA^|Kf0 z;I&db=Fj*VSFDC+VM`92`&gKRV8EW_;KtkoZ5Y0DH=n!hRE zmUsEL&1#PA`5cQpAoScEX0ko$PaE3HcG}0dV=<@9f64&~jiV+rpN@OQ?-zk3erW;^ zBaivCQ`LAKt^?ts@6D`!?KlnGL3EEOY=Y6HV91q3v-}Q)Bl`$BJUd{o`U)r0ulF^ypZ1Q`gyRi7a3h#a^3imSt zc_BSnRY1d2$ssNI{fg{&ZM&f~oe~tzOR`#<(LSG&C;m3Zqw1lV07+)IpT}7d>Ql3R ziDkDe_<>@#40gc$N!*#X*D4YtQaW6c`oRdOqFf7&N4;rJU-frr2vz-b2@87DI#6)w zll3vz{O*cOhRAn?AGRzY4+udo6V%=QE1W->%APkUoI$C>@wkZviYU_{JH~d?lR;y14 z>{Wgj3-8tukxx2ew4SXaPVkS(A+%ag*D_YEWi!-|@M@Fw{s^U1*7TDYjM?-2g?MFx+S5In*628}N3ce1I7bwk#3x?w*YUhbdjk4jmWp2WD)Q1xpw z{j2GP8(~D&6~eP_Xv2M&y9owsYH8RrY8_Fo zDr*Vlz*8)&j<5;~>!HUetz6{~P-!zs;pY58C~#IPlSHuce0P+YaA#Sv57C?Xzj>s7 z?-Pbp8M8*ts@OnLvPkG5@nA3>P7=veP-`>P!*|%ajIF4p;6|>PmIn>8g|M>sIwR!ZZnB8+^)iPm5IiSDoUn( z%qLdLl7>&Cs?QTm-z9D1B^8?_uHKe67DtcZ{DG+TP_aLz-=Tw|%ykBtqR6y;zB2Tm z?r=Bh4!3>_VD?R1rQ3fsAIVA&;~qL?Szm?m;#r-S3Ih7L5#mE88`2Bv$0I3fo~Al| z5>0#Yu-;@Qg!`9tN8_61GCb6SIhqd%!(<^~%;3@+b>>rVc!KD7xmq}Bx8s!4?AsEB zX8J$Q#ZTQZE$G&w^~ybKzX`SKrS{G0>Q?(i)BmVNV+`tlR#f|4{*P;a+OgegpBtkx zs+QLOg?*!$Ln^pgp{yox^L*yOtCl8o*UkFw5q7P*G-*73^Q$&ztSqNFT)UvNtJ8s9 zlx4ctp2MI1sXnhC*aFTh?NF@#BHllV-_uW7v@P0cRZOYcSE-~aqV&xJ*N{}tK13)% zmtONrN0iv@AblhHQTv*mNEp+Pi|qOI@^rZp(fD*nR;y&<1tTM9c@LJOcWL{0K^cl4 zJ}9k8Jj&JDTCAv(9o=`15fER`k|@K>vFexUpV9qCts^|&t0p4`C7LdUNu$hIA+jjS zZnbbYpV^6}`5ov4-XE=5`b@QsAjQD1iYg}3zwGjE`j<-gJE0fUZxK};QIWW82EpOXOT>C=LK>PDaCg2r*gqKTl# z^zj|KclvyFbno=pcb00_oj%R!?FlqAvlGzX9#miPs4@x(eXR&rFeJt2^+)fAHeo}I8?Y7x0gW}pq_YL_Y(raYn(~}mos_Bcuk1k!AtS(`r|i-*Wm@c#tHXgybN-{OVDGy1bt(8 z{qe}&@%j!E9UHXQf&_s*@mgF(Ab3qzDd2Sl&lsFO z7%zhy@DlVGFG1fJUUQG=9j`5W!|NfAblw23PK;*Zb(=~7ue*50c+HC6!AtS(1F5WD z@haUW=EGU0@{9C^K@NBcdW@H#Zw#+|UGI4H)m=4}#?4tNQAjF+Hq46k9S-rH---tdZg!|T}t zJYIcd7=TwP&ls<=_#M0y@5W+@^^Vtw0$zj6G_S#;xTgUA+TDTX>4TBu;67(1^ zLEji&nZtU=OG|e)!0Wi)@H!yiRjpFME8-dBH9CF=FU7lir7nBL>md5B=flZnDipPs zK@NBcdW@H#Zw#-8lHKs~CNnp5-Sf9%yjr64816(Hu^E9q+iT)}1kzsPR0?>V$uq`l zLi`S1ig&L`UG|Dsa;q4x+ssrb!pk5ByaYYQOVBrl*V|F=c#Y`|uY7+1^~CGpeF+4w z=_&=huHYHtH8Xw(FU7mBr7iFK#pBgxwT53qFa{%3V30A-A+U#Dt;G~f5QX6hgUSs%niB?8JsR~cp8C`Ktnltm@xqeZu)*G_DgUY221CF=7t}t$tFMMV01^24bbGqI1WEBYZ^Sk zqxAIy7Xl~Q_bD5YvPzUo0Vb6tn*Ji_>;Y`L){5CQN*~9_W|RhUIPFH2+CJ;~<+WA$ zMDwj0g@+c7Tbz?{hL+IOwds5`o+Zfs^#4twsyT^E5ecw}CaHb^TPGXYu7$sS?7%_w zKkz<8zx8D(WC&YZKXxaIx#ho*a>UVy^U?OlY$sZIALLB{V={qbT!>^px6}I&$I1_Y^ zC1AMkQCe5tD9#s@HA&F+>x3-bs*V<8WRF}MixUD<3i=E*HlG;P=A zZ|)kg>j<1||BDv_%W8p;$P5_Tux-9levV?lR|ErJP~`U-Mx_~$i-#MRvk^}`Oi$D3 z6%JN^6xWJ9^r!bl;oY4hE!?~W4u(^dwZO%Qzre*+W`V?9Y~TVH3uMg20?B*eV&;^f zBU^t0A2*DkoGvc~e4N{t;!dAAq$PKLTxE9(wJGMu1Sgl~&LX<5sx#4a7hg4*Lo2Gh z&`8`YDAy5~5&;rTN61A=d_)4(GI6aE3?)=z#LDx&kL(x@a|7Y=U&`qO)h_>;-ZDF! z@@J7J_7xsSCmSoz#tut9MMsLhLl4xo(*vA2TDQ~$;)~bLm|4E{0>osxV z{q&aU|I6Eo3#W(UqVcYpIk;*Lh^qiuV-G0aM39TB4y%~>k;EB?@OLZXkE`P%uF+ej z|B*e5=yC-ewpZ^cZqx&WBkQvm{1$r4^l$l74-C4%Z}Q)R&lbQpdhof8gMVtz|GM^@ z{yVPy*B<;68wWr2zXw090KP$Qnf|+N9Q=^~9{idD_>VpKu^R`!Vvj%^^~m7dOEjIU zUMB}1tW&)K>s-+hQ|A)BW%{RX*=XBt(<}Vn{73ksKaSxas<%x4+Kt2iSkjtz!5+diQ@|{l^R7@Au%pVVy{qE3S2bB2XTYhi4DLK&{jYy#Go z+H-FHl_L2@)mIqn_&VJd7q-{}i|f>0RHx~2vLzc3VuCTcht?7&JJAA*p?&|8B6`Ki z23TNmvb#U+N>&lm>jn!fPIgZbv_5gN-zm_qSN#T!X!CF3dzHQ)67Trmrt^h)M8eu4kbM3-QqU#L3pW zI2j)H-0XH?GB?-Xdc#|ZruSDU`VgRo~7Z@QL`y384Td{BQ@GNY4? zS@v?6?7URw9D-LhY?1$g;l&R2WTt`jQf+QF{i80^z+#XNckCfrQ1eB@a?+c@T5AET z>icsyb^Zy#Bwf4v5y67ppL?q~d^&R;q3pK{p{z3R$W4?K0ZqmwX9B9#eOcr4Y!$Y9 zIlo7gBrN~(NtP8Sp>i&q?kGb$BzdSf32>bq2kY4~B$-*91ZnAVcLdIbQ6aSV_8c5y|3iCj zTAZZ!_I&@~BChDYJzI*C^xmGgge3ocdv@J;2Nxd6;P%Kexlf*}KPk#wxF*W{=94IW zA%zanwu~stEs9$8p4lVH{G89@S;F=adkR^!!@>bJ`SjE1Zt&}FF9z7D^f?S&PGU%` z^Nb4Dv=~1PS)YH<#$TDuqQSG-BM1bX4)fK)vj=S+Rec%Xd)L9ecL?tF$-%A3+3Q&h z#NeD6eYf_f5RMTUjl+RE?fvRXI_tMiWwuCVj^?!KL|yuLBpFL`oLy7j4=8$8qB0NzC#!*4-5Dz8gp_dfa`t6_uT- z+gYE+6W=FP+uwWl3{m=H3b-@A_m0z1U(#|Yq4!~bp=irH29qq8;3vq_}T|>dTG*ch@tHk#w)8>lD9i-o@l;L zbmkt~qWNh%oK83C*iH(3L;aH3`u=_5{XWfqP?o`~Lt`hJ=jxlw`l1pVWJ+oNX|FGU z-qfL}cp)IT&QDz4P7wE!`Q==lZuoHHdfFn<{AZ<()y!)L*_N{XQt91*3RY7}ZS{^y zVkwobTv;ql1Q+xjX0eBeM(o#I?&IgU2NW;7GsBYNk0||eGI?|j)=dde;iMR{Ln?O7-)r9`HE>58cwJ?hXs%Nu>1U?xxBMWtAMZv7_rm_g$8~XE zZ+zCav@F+2*p_3I?XdGea=(FzrV?BkYMZ7{u@E?w&vB^UCsFH2sKa;b$kOl>Q_&Ee zQQ(y3#VAf&mCBCKRYRUjmb_#aN!QW9bu2$Sr>uT!kklf&8>OGpvr{FXDk>RFnR2aD zsqoOz%6ie780$Ui^TbwKY*Cq8QAf(e4@rqpC{edNX?L=8N~IOb*-UO%Uua$CR6v%z z89jE--Tu$g%GczQ+{%~QbKpST`CRG#tj2%f54bZoNRA14$sBd_##dBiPlZ4buv{ z;3gb3+>&Cey`pM0|4NL8 z&zCLII3GWeu*Qv4;hkIWR`J=`eNXkw;_lO$xcqV)w_E_{@#g$$Wr0OfnUSB+p#BQ& zesvOrEBfWuYKRE2PAmojzW;>7;@V;BJT4#{<)3avZrZiVvQj2WWyQVmP?E67`Nyd= zeeLiv+p+BB5$(a|-2Bo)|0wG2)c18UbNU;T4-|ET)py^Nh+U{|ilNKw_xt6Zrn>T1 z*~k`k@I-+@26Oxt>!cI+f25Ale6d-Gdkyp(`idg62PMT!Wzp>RzV5xDAYlBP=DzgW zbJ#Ap-)!9~a2`xi8tu8AYTlA;)g7IElC6hYzvAipl~-kn=F4F4RLT6h^rm&`Ls2p3 zVu0-{sltiCgFg-Ws(yzk{en~kXo%Ghq+!ty$&xoLQ)aJ$Q5F9hvo`!9x1RC}{9ISU zv4>#?8T(%{4RohfT%8Luc0oro06k{*H&Hb}uPbrdI2JX|=RRB6<9i`IZWk+a`w<%_ zjs?eK1r02tR@#A>))7H^jOd1C(*@$oqL!PJxO@zVb5eE8Y1bcUh2~O9nN9tO8);uk zTxL5(g{r{sj^}k?9X2$UgYH3><;xz6svP&0b7N1# z3Ax9qt;x^2669^54{E^Z17G%}4`L1av?C1Gy2sHeMxQms^hs8&s{e&ZgJU-)4U69X zSJF(`kTeg&f1Hx;%Uka*JiwFYC{otRE1ZNP3VZh&ReTkF(`w@oE!ZUR`Wk;x#qgvC|5N)k=$Gq>eIiopVC9Z zKKR>3O7|imZbvezq#uWpfY-C6J1l2h(hA8LGOSZ!2CrdO{`ayo-LO#p?ZX(!=fK?! z4k6bNq8dFHGL^HO^p|RV(~m5f6q7POwV-f?`H!qv^}ewK%NtzoU?Pi0Ons#7Q+EHX zA6IkF5QhpUwUqYn>X8`G!_KXk7^S$gI$6cGO|8Ij6=8|en=ObMy=l!95xdJV@{N)?G8sk znT;BH%5K}(n zxqQ1XuZd%}mjSDR{X1PXT99LM%XXwtU$#d!Q2nUtW$N1&B}TF8{;eERf%@c=VjvsP z)T3hCT+==@npv%x2#W8MUr?9+*zjN>f1>G7_)M$nPa+wmdTbWt8-WNm?;!-jyzKwN zf0;etzNv?F=RPd%PS+R6f%&d_1xkR{e_*~ommFH)yMcl4O6aWtLU!l>h3yLZ@IUik zLj0H6MBI0!oIG9JHe>`t294$JH| zgU_;`8oO)v-CT&NX^#f>*9Z33>)?cMrTLwd{XFGu%ly)=*ioZc<#)qsV@2sOQjh)me z|6KpHz&|bUPYe9h0{_>wKw4UEeo0!IvnZ>iv?xC-)0tn8-vv?5$dd7eS>|dF$H5$Zf-tuXO}{YEa%v)qT<|we9D|M zz9gq0KZd2Hg~!Ad*H@I{F4ol30b|qiO0%G7fio|?Xf#pIjDma!E+G;sNyY*BC0RvK z44=-7ob-IKW+IRQHJx3YB{@)hOhIO8UY0WhbuGxx6H4b5q-P49A*&!ii{#ZvDTJiL zqJoU9;^G*_GSc(%a`Q(!!-qPHa|%lHGMzc;W2x4%x$8CHb?L=f{l;Zv6_%j>(ddj4 z@SdDyCs5C!oT%py3 zjY_r*3vx@+@6IZQoyFthzD#FfL2)kCJw2~RoA8(`(8-iII(KYVKHfIK<-9j1S9FTi zyy?9V~&DWQj=`f1PO5n6$JEl9-kz)nI=)UvX9m{7nh^MR*2} zguk4>C@ZrxqkeA2#=>d}iegF%(EZR34U{JRMVghACX&)J3rf*mf1TgsY5uDGY`7Nk zO@FaIqq9oVq$&Na_NRQg@L6dn?_SFJH_8)PtkEBnT~sipVT)ObX)-abxFnON86bI# zzpW=!%O!`Jo|l&Ucl4~2ujudO%P7dnD$2r)_BY!_xEGH<{2T3=J0=}&Ciic*i@! z@-Hp!@9XPD9;x=f==In0GiqY7Bq+%mjdcVji=wQ1N^{|~SbjRD2AY^XQ%Gi3b}m+I zA_40ou_h^kKePzMWMe`>xS%L^bZ$Pvh3Of0lc}Y#!gLsTiHJg9q%kZWtZ62#I4iv< zBL~8;Qp0pr%(BL%XO!fP#{`c#xcI8@%qSL~855p~h)XvL8&#T%r3OSuPc3IElR7>7lWR5oGCkqhSsuIb+z+()>PoqglzlaLgY0sR%GEPmAgn+Q$krxZu%fx8fS^6htsF zkq8G?RELJ@&{I0Zx^ooKwf>btbsEQ#P$$9?Bjy`ot(~wk^0LzNOABEz^{4YRSg_Xx zg7h!-LFrWO{yD1JT><)MOK|VRUAGVN3$WkH zPN!vhO=qS#GsWIb>_uUlW3hZjYP}VsB_#vvR7{>^!x&kk;Nj{@XRwe<+e1yEHOtAG zn5=Q|PpQ}i_oID7T}f#Oz#y%4Xc~h-W4MheW}f9O{Ha*oGi#QEU5nW+7ulq}rZFrq z3No`;CPpkgLS}kNdRh@Azk3Dk&_keEGZg~8A`ZZj|3|1^!9#3S@M7(Y|zbpZxtVDDMR}W zWBvQweA7*=Ft4D-In+2L^wT}1V$~%ZFAZ~4x~C=6N^($4PC;H~O-ym_=rMKD(ND~B z$79mR(F8}Eu3BG{M#mXmqKgW0y~O4h6pg`_?Y=C_Kjx(8jm;_+ZHNxUvW1FHvwBH5 zC5ptcfs7iJRgx~d(n)i$b3oT2b!IZFldTl!S)5fTP1XQzSY8b)V)Z0VUHPSBFjF`? zHf+O=PUM5lpwnr;Yn50E1E3u!sf3dW>!SR18~m^4tecOT_VW2G`=ER^mArf=CuTO< zoEGMG?G{54>f}!!_uuCCY8;mrR#Se1{IH_SXBQ1F^ly;=qCUO6Bx)6`tVUDIbc?NN z7g%AvRZT~XS2~XxRZxl(H}95EBMjy=3cPd_Ae;r+iWP?vNbed`uVeq0S2j_)chWT` zHrgpNUu1tZa%+ar-;x>|(=*z6MNDiA4I0vu#^2>7)YKb_#o#A2tSh8TV(R&@-?vM= z77rNd-TRt59G}y@?^)d4EL>-U ze6nB(gS(|?_o_MNvt9~BQi7Fy^jZr~U)$9pKz`r?{4&TCdV|Hm*sh*fvjsDz<5iT?t?@H~cztD;ld+B0RJ&J( zF;RJ*qT7u;Iyt^zvnTTOBJ2K#~$;0La}6KgDBY8vzg>Lam^^oPFb z_}6$~+$gLsfyaRhfD1BE9xxF<$9Ei91@uEbS7t#ja6wMBdpLf9A~O&51M2rc4&L}# z@b7B(V&D|47f%68um(&(yByyRxs)I4wFAJ+omitHpJR8mdo6HdB@ld7z$3u8531d< z%@}iig8BnDo~U*o20FgSI+yXoRJOHc$o(4L8Kt0eu zallAmCU69>1Xu`M37iYubsF^s>Sxg(Egy~;Uw4HaR2gpf0-(cmyVnEbfX9J}z;nP9t7zfM* zCIZI+Q-L#qnZOEQ32-BD3UCiF5r24b4wwq`!!Mg<0-ZpYALIe6fMq}(Z<{XwI)JMw z9k>k`2iylt1Re*b0?z?6fqtRj3xIyWx6@K^dFtFr$v};@B!;6CxfK|Y`z>PP! z-8+B>2D{xxJCrxn?H)mR3)&NydaK*bFuo4l?slgFtAK?x-tI*EL+&o%aNu!Z9#Bt1 zKO#L5cmbFS48*u}q@%roiFlK18<5`U+6P<-JPte#)Y~II1MLZ10L%og1dan{X1d*{ zC=6T;OwD$?TVtG;LbouVh{TR^97%$3~#N$3rh*DzFS#0$d7QaKGDq8o2TSl+zLT zpxeC|IAtpICM-w)!Vj$krUK)p!QO!Sbkv{1Ko*7e1jYm79zwl<3xKPEi4Q|QunHL2 z3HfF~9xxS{N8y>USKt)jDd6!rs846a&qaB_xOtER+z31hbS-kb_#sw;^{OrbD1@%TOh6mfHT7HQI1SSQ93~b_i zuTjRX4ZXTkcNeV7%AW`f3C27^5%PlTWg~Dq5fAqwE-I@K_e{(=7y?i(AaHnq!6@H! z+`iyFM)7?D0w=5LS4d(`1Xto7hdd7ht+f6Dv1*Y|KwzH$qmQr9bq|u(A^&K}Q?4ck zgiO{F!FYQ>2n2$abUKauNAL|HK3r5!9rcY2sdkIS2w2P2{*<>*fU__l1Ue$CXeauu z&TGL(?LvCohIp7HOGJEM#Q!McC!=hq`l+Q~Ki?!v0&E27h2Yg&R=ejA?{xuzv($b8 zAv3l90nTzgF(7g>PYg&JtzNmg_teEJDbX#Mdi-aA-tUT4@gM$35e`l zr<8ua>MGHab;>0hsDi9_Aj^+r;lglc^s}CCA})g>MEee)_JvlH(J!&;^>vzeI9TGr ze+K+-N&Z*0SWT+2HH>JqFYcu} z>~~#L|gHX<(h#cKB^^ashW>kH8r<>Z55pEsa4;E!tTQ}}SoUxoa8Ui$CyCm??u zCYa=n*e}(Tk230x57cI|4Gvko-AB}`t`^t(in%F{#wYfQyT~78V&Ukmoy1%s+9{Fd zl3uD;2PDQF>9rSnjogHN-evXb-%v03M4B`ALa#jRSr-8HuVIycL9e$jp%=+?!XIqG zes{7zWUlnc#Byr3*3ZklIWSr$*Cn?dIH9+{%X@h?ZZpdoz{>WF<-3?!^`?KzT`!7_;i%T(EnuPdZaZz%T?%4>p&-FW4R6_gQ0%e z0{%eoUkSU>4e;0Ywdj{x-NanmKcGU@j(M-|Ku;U`VQgL4hJG<2v+1Q|3cDTtGnoz zq<{)V>+QW?gkPaG{2(l-jvlIZHwA6^?jd3=N@+PrJKjjz6r`POB&`Bzry5DyhP2a- zq#Z_DRU>ItNITa^S|Hl^LL+I>NMj#2tY2$HCsW@btvzU~?pTc)*Zb1mf&6$5(&Osb zEX7Tb@-XbgMRMjMj>`8Yhios5e`XGU1=D^ez*#mL=1HF}mw$wR;uG{Gbt;VjU}F_76C!YT4dp_9dBv zaOXg#6X$S$+931#hBhnKtaWA1)zm+|4uk%_ByS7k?K_2YJX+U$>yangvfh41>R705 zg}8=uHAWT5Goa|cAEmrK|C>DWVZ%w@PdG;et*^1<)!p~0lWNw?$-aYXXfYqsm^;!0 zeSz=#cpH!Bke2Etjq0%vWHM8w%-Tr@BmaS4cfk>W5{%%pvR+#{-m zHSI6_Hpv(P{(W_1P+TG6_STD=g19}1(@8Ea;#-WkUG@0re0m4sFkHn&d^-@g4RM&l zYT^zcZVTc(^&#C)B5ot%wh~u;-6z!OF2*m(4Z(b!`0K@TqY;;YxVmx^5Z4=Ve?>0o zLF<6M;D4h=53B_|Z8)VykA5`fNskKf=l$nmJvJgPr(WD1#APDRqZ{Qtg1C{0tJ_|u z5jUbpBAbNB<)KAm}?2{Og@=_t#_ywQCV?zDTTx zo!s9h_injXZm_?k<$JodgQ&Z|9ErSf7)*O2 z@E0sHZ{7V(y>o-afE4vPuP#^|hQuc|*!MvDOq7v|4&2z$?G7d1+yS$pxAv&(>l4&l z8~Wz{bUujFt@yqT%E2flAG;0Z>_s0DJ7UL)2~bh?L=4li>E^qBw|bMb8F2;>cgK31K@`n%pf zLC!}h>SC{L+t*ipz-u9izG{Kj9AXbZzBLffjQnsWluPAb9}uYBp^7zJ9D?LSV$W2& zKaNCQeNk8J&&$=m{^E!oO42rQ zUijE0+Kc)i9)9F#H;f%rP@mzEc?o+j)3g=d_g^)AFcUIo_H?^#Dr7eA(7q|NwfxJPz@C=LOb@s>`NcB#-c<>lIM$Miu!H?AB^r{yP&55pH+WdcLececn(bS9bJLAPa|$E;sD~JcF^%$ zcnjjXQH*E@JW0lcUutWC*-dNL6HlI zZnqEFLb4@O)&-3@ljhTM^7B-ek@OIY&Q0t2E0VJSa(3YvKb^try*+YZrwz_2X(^@d z@Fs}*#)$`&7m_aSuQ80E^8sv?|QfU zerlK0hV4>&e%znhWpl%J>E}!B5|4Kw9C-K1Gv+965aMF-zC;CRx~N@7B5oVv#CQ{9 zi=OzRy>Qd}6+4jTvDv!o$l7(2m``XO3FqXcX7b#23JP!ycDpx_Eq>sXZB@^2)}AL1 z3@Fnzc8R$p7W%cudmVFAuogpGS#vGANA6Vy2JFCrv=ZRNBP>))JanZzDaf-8zpQjs zV|l_Z&O>c91$p)ib-UqOrT?+kJ(N~~w7p)^QjkXPv+P4!OR96KQ`Wh5POe>x%e5!Y z(C_s={=}Y@WbTE`rKxVW3J0Zk_sFar)3x)Dka+_=7ku^-Hb*k)eVgIKVaKHBVvkH= z$KKYpnA0>Z_7Z(VGD{#+$2&Ik99rLbk<39C&&$Go29V5Vmyk*8w>^+K_YS2RBqM$rX#F*(v@P*0 z6h1*b&sT@~)G;lL-rnHNLB0y)dyDeTv+~KgNca*lPtr(PfVl`UHO>V2NrzL=rvlI0 zJ!2M8VvN%JL?L+p2q!br{xZcFC0&o8%xI*|02 zc%i_v&V`?q&&6n+ix(Tb%p0WlUdS0V((PVLa@KmvhYiU3(gtowJp}^6n~bH}F68s< zacB+?LG~SpOCnj1Ab=JsS0PKhmy%%}c37{lFsef`SdM~U)S=WW`@gBfTx3m7$9qFm z?#-5*ne;wPojUZZR|gtXd%!vu`EH^4rk9m(4n03<@Jz|G#@8Bq{!?>)Gtvcrk_jIL z`E*e^u}-Y_5EnyZcbKOf;j6`2M}svwe9U<7eoM@2)NfNDb4s?`JrT4%&QoXMudzCy zcQ{h$f#^jBN4ji7zP-pdN=H6=p%3;pM-~3AcFfnEH}+}T!AtlNl1cCJoxIEK&Z2hw z)g!aEeqyg$>qiC#%+<7hmyt>D1nT)Xb0L|xLTRCAt;||qFZ-rU(PF%}SMcr%Lvp>DRVyC({JfRVNOLO2#IHu`%zp(z= ziqdu8-g;-H#82-rM&iB4zsg?% z{w;rlen$Ne?=)FubOe;EAr>qcp(k#+=WO+k}Cnyl77qw~YL&QULEG`=E{wxGi8 z9!U9wPpC4eYr6J+q%?w0qIBYk{)^Lf7g#>4T7wZE8Om9FIiWyZlWC{UIz2>Y8;-X z4uY&yJTg0ucV$%?N55eb_EuMM-X-M~s^`7R!_zZbJDh}W^iJw!-WkEfc+qZ3_;G6c z&FNm6lblE%)xQ(=2hUsQebkn9_mp+_JPGQ6hHHZXzV|ka6bH+((6R3B zQ}|XYZ+K^%lfQsD82xwY@^Bnne=U;eJGNouKsw0wT3$Sg*n{$RmEm1yS)N=MLbq}~ znf90i14e4eaNZXkQd}?2xOTuN?7@53r!h(EJ6n6VwYq(~&!#O3^xE9wnQ|c2AC9ra zaq(Kyy=0f7jBRGao1FZ-q9kzaM@DqTcU%-cRc*On!SF6qiQJ;{0~&ix<@ibQuT}oF z#xAH>SS{7~ZjHUJ@%^GTdN$N8t6?c@AQ&Su#7D>k;? z#<$xThU7%Q`+X<+Of)AN6YUdi6Zu4aqBc>Ti1REswGiA@18|N6yZ}6m+Yj_f-~ky= zVY=LIrAbrh6Y{OPS!3^L2_nj$qFVBY6gCld4W0%OLEZ2CT4jqAzDZ@}sFun;r)qg) zZIJi>L`1X6N|m;bvx6L^e$TH2iL#qLub$9fwX?776l>=o5j$C#rzSEsN#kz^vDq3w z8_b^8!a%>T@ztU18*Q(Oz&0CysU`c^)(-R|CdU^#Uh;WEL1395Ulhzv_&uf}a4_&{ z#y)Dgf#^?KU}e86h@_SUqrmCGM9vE)_FWV)BgBP>cS7jz38BaD${~&3XPnRZGtq1X z=O1)qukbL?CpbUZjr}R;H8#Gv8{1*)fcT$md~bI))lT#VJKxZqy(8#zcK&#GHpig& z*9<$A?N)6vevG&!0wJQ_`c zmPZrI`e-U(M>GjN7CjTyTo~g*{K1%4u*^g4Usf)t^akrrolkYKk958*ihZw#fnLb@ z&Pet=C;Ai4PeroRyaVWEHhwUQZL$%4%*Izlu|I5kRRlgX`79SZWwrx-q6wdhgr>hM z2)yp#XF9OiE%>(`*cUDMrybb3ApU53b}Z-=<$F8yPbjdy&8Ip7bK6tOz7D9}dS-Je$8R~IAeJe_~qjy}c9i*GyDJd$lyfyE9<;Jw0JvK6 zDAp5*@U2rgpA*Q|+4zqE>m8Q62Uw%A3j?3g2O{FBLxDhgB>5TT_`#)7hgM zpXJNmqB?x3@u|LSiq8M^p{e=|%Fy|bKI~JSf8zs3#y|IAf9m|859$3Lc+mDfr2Q*C zY%AxReAvgFe{PUtKuncLy&yQJ*g7K@G=_vq8%g^Bqt%CfVxv;v_)y}HHY)u$(I*u~ z5cprE`e5Kb?ZY1Ofqpf8a#B&gP+nK~YkurggG>B`d57vVRpSr)vxhYwY((L> z{K#hT9U@f0kIm!!j6Zvc^B?`mK)&&3pK*TBpB;m${&*jizvj=@*u$UnXQ%Cakv|%g zKjp_38+@rBd)nZO{MZWyukgj2%Y2m|J0fC^i_}wsv&x7-uC*rr#E)$@N!sfsm9odA z68D=_`VqwVu@hz&#`gOVW0`LdGA;3imh=4ZalnsaJ#}>}UC1eR;yYD#6@Oi2*YPzf zyMd^i{Sk*=#aL4O@JA9Dmck$Y?F<1y$T)~sC~UqG{@;oCdu5VuXrnl;K(YP!8AX|@ z@`qLSDCu8Y?|2u2J^41BjRH~1=j-e-s_a^Yzp1l*L>_}l>ueh3dtBwO>+D(TYazQM zh^zSlMS;utPGMEV?vcG@wXQs*PuAQ1=3vk0{M}}JGsa|RyiD%@)3x?0{eb##g8gM5 z?(Sqi?ZdZswtwME^nQP0T1;OzS>xcJIoMtY|K7nqbWn6<3;J{iB^(>f4h9E*ezpDc zmi(2$_Bo;ajUo0Ep^@+2V1J_3?SHf~=e3TW(Z*iYnj>aP8xDF?8@_S~d!-FW-uK%0 ze;s8%)5d>xl>Lde)09>1>>HhwaKP!mGR!_Vj6>1vt@f1I!7vFvrd#o2< zb`^W67sX8J%{Qj7dA<4k6!ubYiuthjMh)s7>wELuLG1m+r`7icu!s78ryw+YKqvx- z2dvW&m^!506GPzU)rrbPZM=@X1-k}&D%>akh4XjZnC`CX!12wS82+TndNczyn9oqz zFrxCYEn;ISwOrw66*gPpzbI^>!cQseTQWH0z9Zrtm|eBfVxi8SQhAlmUR3$dI@_)C z{n!c#`k;vaTnz^g+}BQ>&C^k86C5&Q588ps|?}&P^21%Q*!FJg2l+ zrn2`Hene$oDEwoUeXnr*qx!Fc{zJq+sB-W;OrvEjeYltOQeryr2NmTiK2y~O@+qoz zGvBRfcMz3Dabqa;1tq9TVQx8sCbCmFpl~mlt|${b%~D?1l(!YWj^nKc{wUWlwa?-j zCYGsOo3HXeb)4w%GrIPw%74_gN|kTL_XSiw-==+{^8aw{E0uqaTq=KyYrm+x(x#nP z`Ffj%W>}?b^DrUl+T)m^xVBv5DC=h}=!lJdYlHfz^+YyO=yF(5-czpTZ*%1a{*$SV z;wMb)KK_NN%~SXxQ+r0?J5B8cg|9HRmla-aYTFfl!qDEL`CNMv#TweX@E?YDNadRi z?YPR<8QO2CgrT_wJq1l0`f3#|*}EY$fryS7XZ z0lih{OYGV^f5#2>IY3L;m0)X0sgY4O;d=Rqj1D7Qk-DGLIu1h6~0>4usNTiX^*IU zrKUY5Xc!>ke^P_+mBlB?h(sH<7UkTdWObONOwyF~N(*$@M+$Wq9PH=1_JhKA>)L;? z5!SUuDt}(rU_Vdj+D5Dcb!|I3Sko}~?$WgVg8o$S;3NQYzE?S9uG514)Yx?L&Z0=R z`YK_(*Yx5mIUC5IEo;D}(DI7lVOFO%he{6^Qd&|!L%{ST61pIkBTcPkL>~KeXmYuz$@ToYc!1~|D z&M5ppHaai*%*Li;=-b#_H3adSRsODxy^hgmqvqIZV@FiJ*2XXfm)aP{;36A)5KB56 z8mJd&jJT;t)p!~0I`|?^>s8P*b&6l8cL7hOP9^R`jGb10(CTaK8|<`##TtuFQ_j=J zk2KKG)*wmBDeSY`WqAjVisWQk6izslaey2&+{#gPH~2jZqyK zDbLth`hdvN?q#rZ?0J^!>@2xQ24@K4-G;%)*#{~a{5h2@euf6O$<}IoE{CV*FYB}q z0{ym#|4<{IPc-8HN~63#U>@MK&w$KojpUb8tzM!J6x@~iz9aueW8Lr?*j}Z}ISrFf z^dg<@P&w##ROh2Q&g5`}_#X|cYh>A|4DW^YlfpmY>?I66JKL{teCH73{Tn;OKIeTq z!vYQ8K$@lU<#t-8p>LPNJK9;9*5iVW?bP^hHukZ`f3;zT;@^p$Ic{SQ>HI|-?czW` zrc?Y1tg~$FdF+F1>}9Dx17C#qdK&c%8zh1S>qpz*4>Y`*Z6y!eSuvoXWwc3 zd!79v=-);BBcAuQqhmiTAPV(W;Q5Lim?RI|`V9$q@*K~G3;U95o zr1v>B%-fuO1a~Nu*v|3&aQ+HsD>c4}GfW%nIYYN%@<+FVMz_+djC*Af`X zuVJykK~|irJ+KQOi~K9ebK!_Jm8cPj%0v=$6NPo5!oqn5cppX^*YB$4 za*GQLnm48yG;jQDXIKb+ZO4|BAF|2#v?06-+7NRE+6}V=jNVQsCokE_ zZ#-+K6#_iWeBJrDokrVi;l)A2izEIkop^rGiT{jFdEGk6c?jn|$i+$i6FB{`v!`+T zW5>ya6FThYr01vD;^X{@8v7w~B9Gef@j0E6pr)IZ7!cR-A9NTV4zKRuyKO9szhq;x zu%@ulbomTA7496aN}-AAK`}ASQTaR@dq%~Z^bBj;X*Twy${(~bEEoUeY?0{3D$dF|dF9#SfNK#>jSTjbFeyC2LWQM*y`m6^qvc<3 zj=w=o48$LlVhmuxq4JkBaukSokH+49L4Hr254mg#Ig~m!A;mV0en#tt*i;L&uc>L z)~Z`H;vB_VzkXw|6skr#pK7uqe#T&*VK-`!$G~YM_L!$lI=4J1&RcQDdLARrWOH!N zXHwOlH|gQsYLjN?Stff|#C*iDm!hfqUHAtZKZ$wY#?Qk8;Kb5kn{9l#!QQm-XAC+e zUTd(kGzwwGgXvJ^Rb^hwH@mY>Liu-Haq?WLukOm$x8u{hu`TUdfc~f*KX(QDy4{ta zpK!WPUcq)bgF%1giA+<4SBg1|&%qlFx^Bt-9`>guoRT^=H$o9ZNhq#7I#76EzMlltMcCvnj`e{|vDvAitG z(@XT*mUKBRU{V|lmf?yC7U79sO)qZY^5{w5Bc{u=K)g>*WVPGU|J-OR!7am{df@N3 zMg9JrX{G-z!(~?RpU;0<;J<2tla2VF9u=0jB#FZ$W=k9^v0UOpiK`@TmRKqAki-)b z&q}mC#l#gPF+ySwiAfTNNz9fwR${rtg%Vdu+$^zD;vtDAB%YOMTQ19&7$LET#3YHs zBxXw-E3sVSLW!#+ZkAXn@sPw563B@vKDK8d<)?2#Gx;CP^G7Fo|R~OL6$EuLShezNfL)i z%$7J-V!6bH5?4vwEU{AJA&Dm>o|R}@FUyx0A+d+VB#FZ$W=k9^v0UOpiK`@TmRKqA zki-)b&q}ntD9e`^A+d+VB#FZ$W=k9^v0UOpiK`@TmRKqAki-)b&q}ntB+Hi=A+d+V zB#FZ$W=k9^v0UOpiK`@TmRKqAki-)b&q}mykmXB^kk~_FlEh&Wvn7s|ST1p)#8nbE zORSW5Na6{JXC>M;%JL;fNbDgoN#Zbx*%HS}ESG3WY50kKjJO)6STQ4mG(i+f43y}U zm?E)EVtqN6%U{^SlHZt|zni~8>M{2+dU^D$FTXK8JpA=>pDgEwIjTr9>od^FGOitx z&nfwQ8sS?n`F6~<Vmys7M`Fct||3>6FC11AWGaBIwlzewyhL1_U=Otfbc5qtS`^wAk z9hH1#(hj;e(9eq4C;1+g@@x(Gr2R?0e97nA2;X|ihX+4`qgf+-6_T%+5Wak21-3RMywgh`d6{H%!WFtlvgTz9o{cvHqxE%-;=Lt$X=gDR_U^+vSvcIs+{~ z=#A%6ah~#fZn3yLr9^JORIb`IPyX5%i^{<(Pjq?C+pJi8Z}lq=_5U&I4Lsc6Q=r*@ z*S?JvlJZ?+DgS5V_e;Ck(bwv!`nA|7)Az-APtU=7d2}76A56nlKmQt;KgI4nJz=Jm zKjFN{&g%EVAelb*5AW&2W%|+Iy{Bh*(tq`yULezB8_7RWrk9=bo`1GX-}jsM^e1I{ z#ToDEt7ZD>D(~r=WqRya-qT-~=?Oo1Pv7S$|CE*9z@J&s|G)q2-?#5o&dC0QZ;o=t z#l**4iT^#k;>y?_-MTv?hh}9ulhaGA_%7XhMX{x@HOs85>UtWFm0I;&FBh$zL;JU6 z_?T>lXE#~IXc=z0*&>F>@JJcPI~U@5QieSbC0>=`A7%RLmn~wB411g@eRGJeEn6+5 zALpTK?lucO<$Wo`-K=QV^fil+Ho<GUlZhu7a~g~cBlAbsTRRv7P%iOciQ>}pvbE4KEtH%OJ8xlZ*w7P-U9 zxZGv&cpkQ0I{)-hn#{jmHsl*^to)vbbdBYw=2Y3Kk9C>9>`ANqZ?CZO*ROBkhgSO6 z(mRbjWQE0#!6Hlj`o|u&(!~$HBE9SrD@;GmN>|0F79o8OtH7(mbcr7^1$rJX<~GuP z6TqXg#8R85{qSxwUFU)X;GcG^uxGIwD8rt`eyj{TC42q)dLC*v)_#MK5AQV>+hzGF zQr^|l``5Q0&%@D6%X?ygA?3|IXX!su*8lV$R#^P-8OruNWNl2IWnZ^AO)0P9f|cJ_ zu1Y-*XB*3J)o;(|p8V_WmLiK}`_{Mr9r7V>WAgTj_6q*m$J1VIEqN9FtqwSyWrYV? zL6(qhh2OB$W`Q{uhmT6b5I>xOJoVdW?%fvuCYe8Fj1@j6cU=jkR+xUwm98E4T7>xV z1&WXls~fA&FBrMjP%xA={qTjIGmkL#YabYH4&|=B)P;qN`5cHtjAqzpPXj2%oEreD zJqVT8bo+b}X?sLO@}_sevUm~x+bl8{nRK1!=9eHZz23#tNjD*3CPXsz%84Ln5edPa z;McjK&PUL96UEt#XDCInErwY2k0tnRf>`pg_Ol=l`=7lE^)*`G&Y1siR1AKJJ|6Ui zr-(G}>J0i%q63Y84FFwDbcpdl31~ObPP4KXXr@pg(v0YWfFc61=GR>jP(>i#Jf4Jr zCISiO4wB17AlZDhBLX%NNHJTcBVZSS;pSUo5HOXN7)v9~rxzmNtF%KP$83_1fWJZ- z7n-w4vX#?9v&!{}d%{MKLy z1Pn)`Grs^l@(&mxwh6{GbYnm&Rh${0KtjMBH-cMd{?yHnfee@h0zXhV3IYS}?1vcp zS~Oiq6TCBwJR_De)`XE*{BhZ>9$GhkT|_ih)G+kL9y*XU`MM{RUSiL=5;FXsqP{Si z;z-4RIg!i=rG{KVyR)T(pbPI&t;rk2tr1}ZnsC9*I6icdz*y}y9%@KPe0)bQy z^--9vUpCZ6>}ZN5p|E{?GS!Yj5x9$D)Ih8Q0(X<0!}cGVCWTgbgxZlE-)&({MOiO< zqWzg#>5tg%)C_79$Y|P=2Btdae#V-m4g;V106b^2JLoI=ny!yuq@V!(My&jsmEeu^ z=2ItO&>JRrnolD|m~n>#^mL+iV>c$><_{5V7#r>c{V>sf#&hV$<}-*6G?t^N<}-U}kLhU#$(lca@iJF&+@?_2w6{Xi?aCO?%p8Z-bc|3)T8N3?&tQ%_ z6q4XHccs?^BF!Zz(~+)Z0AkJa{Sg?YlpzprcIt>ghVmi;3FhDq2xKb95J)yhBqNZe zxN%~UV(xkXfze7R0>jNWv0ilCt?(u^ve&{JIPw%<1ai#S5eSS?nj%nW-UFxMxJQXV zo^j@oe~B2tBSW zM_Q!fSObsXSfYG_P^{wU*c73q$~uJN6-OW9d_qY=DcJ` zXB0FbUW;~|g&8~6h&24t0fr^)RZSra%crsA6XGbmA17*LlZLR*d;SHI8CN_6mLf99 zKzuhA9FF2-B-ji}R=*@OSo4sGn1jz2)PBow2NA*41NR~Q*)^bT#tZlq>1077T{2yb zA?J7wUo8UD0S^;(e=U>b+z7?aQPkN9Txa!CpFs;8sFl7)E6*A!>CaF$(F*sksw;fR2EDz_Z8cq^! zaoRIr`YDdhJx%;Q=BUza=6HDlgtFj*QFk%N7GgAl^Rn`pW2#$@ zccPs}1&#PW$WSAVl@EhH|8LN-#;p+UxIlEg(UWBUNpylS3FSMg$!3#{6;Ytw6rW<= zfx;b3S%$!HbMR~g6cHF{&f^HEB9LQ_8jXM^0)^(sa}dx)V4S(44+2~vX=P^SOayFV znKRw2x&i^aNSSL+dH?}aL7{6vxZ$5o#&w0H=EmsoF}U!RgK>SK3;HLKGJI8MS;H#UI_? zD#g)G$)AgFkHPBA54$75sgM_7re6sHVIq@Zp6-o6dxge-pxI&u0v$vk#LTCe$R!%m zX$JK|AY36g5NT%63=ttxV$JJ1Aka}E%Z@h}le8!yI>9_eJR&J%<7uU8Qc7*e5t*6>=+qEOZAlIId9UA`b*~SMW&ACiDTM=#~i`x(261a!Fp30En}r~)&$ zPD0>nWgG$q3w49X(OYQ-w$LCfVjR~hLqXe&;rI-pg+`DVRiVF8Yb7WJBC(VbY2hIT z9}8WCb*UpsnJE(I;ZuzB=R6ESf`Z~CcpW}N6R$>wWCcHnf|#9@fm{Kt9jxK}6!C^u z_5{}eg=UV>6_`IA1C^ge4*YD2RRk?CYI8_!f~fzmSI8xYCSh0M7^KkT6iUD0;J88Q zhCDVS9-l1^!~fB$LS}T(Bs*BSNif_>45Sq;F03*r6eOwDde#4>p4=&t_2X+Y2y3Ia|cjN=W>zON(B#%w$I72vqQ@$mZk@ zLvIItHB~Lp2tbFo_?K9ULPQ&6YyIw0k~R{ged!pCkRV@LJsB@gfF6EATJY$s5*FnD z2<8$axR~gG&7cE=GYc|UP!l1|n70W0fn-lkh`SpiLOYT(+Mv)vr1h=0FxKXGcuQyS zg*JhVwG9dWlLL(=Fzn!JieiSI4BAb!VLlGy4Q65y7RcI-&S1fc@-d`3C!;38s?vdS z*o=1(r3LDPuyF_tCQ){UqI}{*g1dp^0g^?losbY(_%P#OmEptX$hizDLSKNE5WO)ZCU$QVL>f>T4AjfYyS}jM9bb*SP5nA z`?(NKkl~iBy%P$x>?gxmf{RT?%O;9g#hJm^BQ?-!F0&*Ffu;(LfDrSYO$ZE7wnJ^F zxi=AkfeL9BiPodKgx&yETVAhh0NpCNWs0(R9Ahtl!Q2X)Yk8xR4w{+GsDPoOfLOEh zbqJ)2Lxgy#HW2pI*M;~^ADg!f3zBA^+y=m zz11xWW}OhGx+u_vc9H5k-9g3_gY<`btSK1e-qt6ib&~@a{yh*SM70jI7P1|nRO_bS zBMTO?hrrRg8D;ZvwrNSb+iVYin^3Fh^(ipPRumn={Au`)1t|+rn;}P=us)POvTg9I zt?{jUPyV*jlqi4OP>K#QJ}U#=k<5y$pMhy5XzL%__+*W7`GC!=VP# z$RxXL7h);z2h(rYiUb52eTRZ>_a^8Nqc=8A?ZSxNX&gc0wTq+zsqc1@o|fVSdZCs^o-PTuaWxC$>d)3N$_oUQxXkqpj*?cK}NcMF$$ccLJSDWri4w3qapR zw9{ydwL*)#iKgmNaq3XWYLWLmNc%0==0!R?Cpx5LXS5}`HyX>?WdNcBjcsTkXN)zt zf1V7wtB}k(5TGf*q>>zGtR1BNd5q^kXYU6{q)$Gg|AkHmy(vz?fA1_HlBvYxy!JNY ze-7gz$2m}IfrO9yBl`Lwh-SuZ#h?d~8;mrZv7m1tI@WNKI)h1_c%u)gGlUu-!6?VR z&6z@Cl8q0Z0Da>z6KhH1Y!v9Bw8k8645ez_L|e&`(42}_sd#7V!ytVM!&-a+C-oX> zLRJ(OWHkoEAPozq+6EfkQA$_{(ILhky+OAWjbS{3vcf`%jx=V$X2Mz#9c#QW5Oiyz zpf0_`MvxDkRgn6NOSM;Z|r>0#}O&SC0N zXc-pefSx{)?foXr!r3X>U+CQ4-_m*CLO90&;tw>=!8F=8Av(lp19NCEOw-BK$;jEh z=^n^YeK6~H;0w_3>U(hJuFwcbv>DO(6n0MkSQI2aL~q)RBt*D2U@j_D!kcypmc@rR zv%J7|v}bs8;tw%)-vrum&kVG)(H0#LE(Aszg*Si}#vW^Yj;0A0O&o6&!qX{7kZ8h9}ojNhP+sg!hDXp+9abN_lKaCTdzR9 z+lodon!_2nXa>RI*=N&1hY@WUUlQFu4s@V#=Wn1pShIPvmY{`3PNNMP+!apzE+gSV zd`1u*X}pEKx~n76(Z)lVaa`gUJ=W-bKjHA=1peGSozjh#b4Uq}2E z#`TzlU5UiM+K9$>(AAH4)*Bfxa#s@3TMVD2p!*ZO!?=^;lZoDA+)DHSqW2kJ4DLEwqc z&`3v>a3{u=tAg?zHp3@Tmp?^;qh@#r2C-{71x}jb+cAn=PtykMv>A@y*kGZ2}nV>&^2DHogFcqI)5*==wq4=+eC(@YN1oR1_qmAiAe@k?%(Y+M(cV|&< zys@Vb=?G5@Y z{g+OmVTZ$W{V^W&T;slZpf3>5V#AyRx|(#TFh48<&BW>GYV$F8QI{f4pVynM#v`C9 z#J0s;J^}$Ckn!u_yp^6!E~69|GNp=o};PO3M3B) zEdt)YSHL@q1iZUWz~0>g-a97XeLB*K>iB_Ez`kn%ojMwddkUecgia;&QLX}Zz7w6) zBi8;o`dEql?mnzw)xfUk&>x;bAFF{AK%PR+vFLVbAb*X<6!5bXBVi0O2NmOk1#U;U zOV&Ls@@yomZ#?3fhRH;Wqf1^1i~OVDUshtw#fdRC2LxA-=*Jk9b0ejek#O-r3bC$q zR1m2ui=!E%h`T*Jtn1-vNU7I4Uv^szS{(E`nsg%4Rg=WBRGS=0)wt3S0}kg^rtpCVe27BeA`1-^q|SAS~H z*2wSCRC>dglOT(W zh0+TpQGM)jC@`wimGdAds#A~c`|f zQFQO`?55lx<83tp7S zHpFgxUmc8`ag!fxfl2v9Wy)by3}y?WPSQgd*5fM6wvE%0cw7ZF2Jmzms|oXwt)S_I zT73k3t_4gglBKwUM`2C1K3oq5E>d@cqryxjX$x9)+$E|xWT)xtjS!g5gmv!YW*iim zxsNM)Lu7Z0a^hx>LpM-OuUigz?qn^egENoWP)$crzTr{IiFHv?RpM5)sfnzuO@)39 z({)1kmxX*Q0tS|8o7F`aIc*8^fRJ`>UA zuJsT*bVm_f(WD{bKR6SUXln%9{+^8BQ#c(|TGATW*nm&^KvqWEIq){_0DsJl&1^4# zM|`l|g&4KsURXXCM>9hC27z?OYS+9jfLGS`bezwi{5lHcrU5t-LJj{7WfGj07!k>2 z+wZOe`eAj9p{%83pqE>Q({@Dxz>kNQ)?ga|-7F~esVlWX%T~zeCGM`9VH&|FwSY7x+7PHT zU#G)U&0ru!jhLY`*%@$;sDVB#4(e{m@ zifgH6ufXCH+PjG`VW-1XjE8aU)t@LGX5&d9hiyDvxLn~l?FY{Xuao)~E`ALB*H{jt zMugbmn`t2SR4p(*Qd_PTHu~_9QixWW(_uUIEaC>L`BQWoYz9sTpC_iSx(mZ`+;CND zf#VDZq&qnwvEy9z*bw03)H_IOUP<_c?ABA&ZnVGKeOz4KhAcT(rK7Ur7O6jA|5+br z=|%Wu@FnWlYUJ6+za-8tgD+DJ(Rkh3)<0Igu1{@$rAkrQ1M+e4U-H+$!<-j)tJ=Cr zPkQai5%>7zw9m&dpYoP^3GJybplp0}Ywrf&ebv|>`>pd z)q}z{sYyujL8a~jWv5T;NOj5{^%yh??8RhhdL~Re;V4aetK*G8_XpM+AV z=Bk}wJY-pVrpQ>0vW&abO+htgAS>z!@MD$}k&J6jUH6GThVv8fzkQC>t>&b;`!J4+ zo%1nvUW$*d!EGo%C!@lXNb5ScCfX+(oN5KUz2z8qjC&{M4z@Qn2v8Pb8BjWnnmE#l zo9u4Fs3)-t0L}JeYj}oR1C3K+uLZQpkDW0OnTwn6R;U6;FlMX$fS&MUYq;3`0=qmv zGwpW(9goKTwLD_4aqj{wvHt_;&uDCcH@k~5yGiUym~pG&qdm{)y%sa(EAG?_^bnz% z0BRA1xz3Aw-5oR0z`X$Rr_W66W*Fk)-f=TAg|TAQ6hQet+&K@WnKIk`aV4OoP;Ve4 zgRI{S93jR1;5ID=X%7gG$B>+i2RJW>ya#5RG~NdOJ~>kKox5IxH2$NW!%9P)hWgLg z=$(Hkeq3 zg>`q=oG#v9nA)EsCkOaUa{OF6orXDYN$AN$0b984A&VAmbj;5hIsGjri(cb9JAe@K1dv7(In!p?Q9Nii2L?S6y zsd;D=(qS@y_x3qDE#dT4Um@qh84rAJ3@0%3WC**CdUvg1uLE<3&-OePM~SADaKtG_a97ys&p#unBk+#Lh{*#*AFQ_j>IZO z>@)z}(x>Qbk`mW7uH{0*=?#2L3@4aPG3YAZ^%9G7!CdaM1KAX_W8%K=Y=}ERdN78F zUkhf^)8i6a7|vnfANrg?HrsJ^yESf6cVzP?5JI@*(b<#CksACQLnL|L2&CuO19I>~UR1HUnbqgOE*rMjS|R>!~I*QB}?q=$T> zpQ@SLguOGq9hP2FMn}N>?qAr!nqa(?jp`-%FYyu^;RYH$x)7qN1gb-ldN=+sR$&sQ zCFq&|62;NkI354NBEud7=DZTvl9VoQNx)6$H`hd24?54f3sj6WR^9xBT{+=#v}keX zB``lJfqixk>L$E4!9+O&dU?#pXD7fYCI@X3j#_u>f_YU5?6Y$)GT~~>C*sp}py!tm zWh?CKMW-&Oi3yJB(FPLDeTPDf+$r1L_c6RMkwIWjEg?p(Z-8_+5X%OzRB)eN%Z(i4xBHthSr ze8Ok59|+sg#H$lm*(KULAbsu=qa`lHlwaL%GK|H4Kq{AJi)tJ4Z!8{V(jyY-n>bn< zBtB81%QTQQi7825LB1jO1ZlKS^pg¬wC=l3~vVbJ@9UCqv9u_e!re#O)wG>=Ofy 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

      GRS6E?R#lT{>KrP5iZTA8X<{ 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µ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 From 4ca7d344801e94b91144853120244094a90d71f1 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 17:44:56 -0600 Subject: [PATCH 310/336] Delete bridge_cuda.cpython-37m-x86_64-linux-gnu.so --- ...ridge_cuda.cpython-37m-x86_64-linux-gnu.so | Bin 1983256 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100755 build/lib.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_cuda.cpython-37m-x86_64-linux-gnu.so diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_cuda.cpython-37m-x86_64-linux-gnu.so b/build/lib.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_cuda.cpython-37m-x86_64-linux-gnu.so deleted file mode 100755 index 1313da4c956f8dd959e9b233ea942592671b8924..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1983256 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 {*X9r^8*^auT&fB}|I+k8IeA>? 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�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

      URY5OXcgRzV}pnA?k@ls}2NUD~Z_%68k2e^29N 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

        !fet?DXsYPFIz`1Ah(8fl(ehoW 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

        h9%UeQ?|OlBD)L6y}>x1%vpwc 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 `CoDMGuL24R%uv{nM&VDw0iaxu}?DEHcf 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%0D`nU=x0Gf+>*F|lnFzWUU7J^E@=)Yx>>*Au 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 Q@=sLp#2GUR7$2Sg2RKssUH||9 From e9bd77c6fbd4606f0e24923e394c49edccc95732 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 17:45:19 -0600 Subject: [PATCH 312/336] Delete bridge.o --- .../reccdi/src_cpp/bridge.o | Bin 534856 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 build/temp.linux-x86_64-2.7/reccdi/src_cpp/bridge.o diff --git a/build/temp.linux-x86_64-2.7/reccdi/src_cpp/bridge.o b/build/temp.linux-x86_64-2.7/reccdi/src_cpp/bridge.o deleted file mode 100644 index 69db455483b073e1b85ecf8671407c3aed6ed293..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 534856 zcmeEv2b>f|_J8-x?lO{Q*j>^PcF|n~OrRja1c*ATi;IZL0FJpj{@?Gb&^?Ltse0%+Ga>biA0MI!>rX$VR$KsH@Y$DHLoY%W<4jVpV@U9s%Lx*xau}Uy>86S`({U zt%IjKvAIu%`k%f!R`pb@>O)QaMy}z4u1>epx}Dmy>cwuSlvKUYtqG-Hstm>uGs_!Jrv8pFx z)dPwmrS8Amt%SG*Bh6(d9fX(r!Yg!Gl|WERpaarBesS%#h{URtD6bTwN{YlAA<@#R z&!sv_iy|uhYJ^Iwexv0pOIvRsScH(~YzXm(Oa@s7i&Rv~;6f8-@h^hIoVfUKllW}P zAaUYLs~#yLHeOc}{}&S1=?*Ars}co*$k>`5MT2maz(^CAAOYA#8<^JDAlS4Z5v%G^ zG_n*b zRd>=B&Vcs$o8#F!`bg1i2qjXMrBGHTP$25w~T^WgWesjtr&|I=O|ALamJzj8PtzV3Fem>s* z`*5U9Z1IVk!~HhK=0E#gxL&K7g`iE#ip|{=2>06z%GsfK9gzBk!u{Swv~Q&6;u-Hd z>#zH5^X3s3Ce>#x^gF5fe=@w}M4*%N|D?`;q0N7T?aY5f=bu^4tKCDg-$P};hsu5r zo&E17K5Da{wbqyWy;bf%Rk<(RdhStu@3ECe*3bSGc}n!>hR8svuK!Yi`i5JV7PT#{ z+H9Nw!$c{XW#90UCXhaUaaO02&QC(+Rq%+I^@z_=m&5&@7!l6v1CIzd>;s2T{@`6IfxN2?S`QQP$={sNx}7xcj3u~J>X?-q`wr zzaOn|#D#ub(Y$cKPvK$1JlK~Tu1(dqKlE*+zWtvx>b_h*9Gw7$yJf9P=47CxHRd>QUJJV# z&HaSMSw})fnnXMj!|>F%wCY#Wna8T<6?KKV9B|jcm-%B@@~Ok$3KjI~wx!i0LnW<$ zunGJP2{38=ZEW{!iTi?{h^(V1#&)VHt-7s=?CnCRaA|kUFGMM&C zT=`@885NZ9%R1cCXTaBJ(3psHk{l{g&IKsO^eMuL2=a@$4(5f46A@U@3yHT|Nvy~q z$z?hjCcoSlUZKM!tv4e7L8*t0iOExx$y1CfDI&?Mc|w}xyV~SM21(9_41Y|1kqS!q zLLKhe`ZJsSWvDq{?q^d>&xDvfMRe}dO~a6T%!zdFnba2ML?x}?x2d-BXWGn(n70W! zuOFlqHT^6GYvF$T%dCj_k!EUS=1XRZL}v}fFkf0HIZ{)l!ks!*Vn-y}?UbwM{2w`A zQj?r5OrGYy%bAqEm6-D+8@q2N6)uR&LbACK#RsSawA!0v{~PsU7{JEjuPA- zXxG5q?#Go>J-xo8%x2JUC*l8@2EYDm0nek3Wc*#gmpt)Vz|0Y2)%U9AkJ6BCfcFQ7 z#;Rw9?0o8QHJ>U>o==IrqgDEe`Pz^!{Q|)spANqw-F#2sy8?f_F1Ih4AGErXD$G|l ztI_#O%-7Jt-6``mGhcZI{#i2j56ssdL#VXsUpqEm+v0rX%_)yUv6`;Qe5IuG3p+Mj zgZW?6-@C4Fn=oI&yd%7@H~LrP|1)M?=l@eoQNl~!$4HLZ$vTz)n-XRxjU@lSBmZ?J z|DSJj{=NB{ny#wZYRcr~%_%E!W5>*!$w_JFk0kfoJzG0|agWc?XZ0xRwZ0y*lrUdK zyQyFXY`Xy}X}*SGZ8hg>y~0aw{nv@^JDtFj{*;*FviaA;P=qHqifBt3XY3*fRg$6bG%k_^+ z<4Ks$nR!|f=AN9*JvDj#hUL0n^6OLcv~ayKYCZ>tgTB$|lyFDH?r|B*%65;WtW2S- zOQ2-#LVH$yjj4}!3tC$B8Sbxr9jU%G6(>jf8=kPCD{N?)p09zwek`VBxW6+zS~pwS z5}tRIow#){A$A&^_pU$7P|%FlPqh)w`Mt;da4GIP-i@trv~N5a3%c>WcYZ zseiqwV~9?Nxkje-q6U}{aymCC(|S>zy$BdnG_q&)kz6n0(hU|c3Xx+cVOEq(R{f;ryM(R)l(P{I5d1OB zvD}1vnQ(Pm>WcZ+sj^`YCxu5khX7~!RnOttYLDTKEvy)1CyXM6 zR8~TYKc@JM3QG889riC9z9_?)t%j8pg8>wy0TfA^uO=lw(k3r5NOBou_+#?RRZzk! zbeM~bW-+fIG5KW_L-G`3@)Xg@b5)Ns)THFSn+1_UlCvShACq6Cf)c*agnh|Rz+lGN zx^}|Z6hrb9WAYS{E|w(U%P%aPQ)eZv7eWl11m5GkZF2^2BUQW6Fc>AE~L zrhnVGz&R4BBuvZa!F(ia=i9QLcnI&red~!b>`7r^9^5hAJoxCOd9YfS{2_<6(Ee{s z!rVfzj0@L~!=%o?4yo`j0iT@iiuCDbsrmQgNqW@!>{3Zrt!LW%iaf04ne_>qUxmLW z9e!lm`L~qMjCA;i($4P%-!C1$W;(nohmX-CVScB}O|Q0;XSV-Aj&CXJx40j8470yj z()z8rA9xGRUai)#|B=Ha7pEI3$u~p7r0Ma1Bqn6Fzfme^vB9C zav0i`1m_<>El2dp;z znQGs6Gb1VG@N{^|erd|#X?=IJ4&J27;Z26NqZ}saa+o0P<5*eWKUS^pAFI~)kF_^Q zzV`9rR@V2^l!CXM-E;BbAFLm4@}GJ?leF%9yXvp~xWlnNy_xINhd*uCr#CE5UB|Zf zTM6spXW<6PTmSXzHTPZq_3`ybqI3O{&DGwa$m;T+bX-kdU|*=RhNbpLZRm0v`YZ0v zH#~;Z`r~n<<=szNz@-;T(8SjtXYa=#vknEV_|)(zV&;C2@z2Q}abdU9dRDFJc51h( zANdIX4?Mz;RlUGf__<$?j8)extsa8)>a})d{ckeHHZ4MB>-j+SWZb$9#{+n*z(_SA z5Ho>Z43xC~kCkr*d90Xj#Bw~ByVqi7!f9exo?^U%>m^h7Sk+fLPfx_$^|9*xizu*C zQ1-r!fmSA^wi0OlKAsWa!82C)t3kkIu@DiNNbuB3rlj!(rBxrJmC6*gwpyu=Ro5;m z!J`5KT5)}~Ft!+G^{o22N7awY6y5`R6DiKCy85CC_u_M(9GNh6O6q5@F7ph^p>%PP zUibS#Qdr*;wP*VytY>2V>K5Qip7<2&jS3S(amT99@jbAOE#6;EaPDBc@~!`fd@N{RsAzom9KJ+g<7~ncu7l$$Ex%3P#q}r_;{rH1ctwB6V`$5hn|wT zTp7C!As8j=K;Ou7JIsyMqhsH=ho`wNp4zzyPwg_V0{wH!n%Ls}yGpA*f&t&hTK~JG z^M7O#&?UC`OgzHf9Gm|mdh$*(=1oLb{|g@Bk}^Sc^=F`~m!3ZY%Rh-#WfiR-Aak>> z-ug~BQZz>m2x@t!wDY>jUu}5FSI24V1Ow8;EG3P~~c148Bp#02laBz&fOD?1WUuTGbDf9x%3hCf z&Fmj?oyTfs&(Cu<)XZLvbM5Sh^PHdSa?<>AF7fZ=68~u~@!#eWKRb{3>+^`eFOT?D zc}R3!9uq;Le{t9CmHlud=bc*F)luih+S!*zomXpTUlVn%u9N*v)OoQ^_7_oSQ=RM| zqRt(4v*$N)KB$|0Pt>UnXWtQZuBZoHQ2t!hxwU@w%~9vRMr6*3g1jI~jTc6#@vl*8 zydg@BE2ETrDoUZ3349|;$&aH<=-Vh0n%#s6!MdUw0@;gmoCU$`XL6idg4u86IKKzi zVB)kohm@CdNEtW$?6`9xP9^c-6P<~}CygI7IX-IqxQh71QI(Y-^|quwnlgCogo;U% zCrlVWF>X;OtGIzo7&&;-@DxxlQVk?NzGC9=p`#{D96xmMn2Jdg1`i$X^cmmVlAH-c zhmErOdm&;Z$#6(;#*MF#$cf`6S~+;)kinJ1tX|>sdVB~MtMck2N7rRS;Hs#6YZwr z4l-7W;+$j??FE9@K4Obed5*J2&Rz(^fTqDMb%?ZBl>jqHd05;wrNxr2(n9^~P$nz@ zNjef!|Nl9r%FruKufABWi6!HecOw0N7+cNyvA+unT!-dhCn;^wVTO`^w9g5(ZI3hE z#d)j7kM}`BWNZAifNT~1y?IXnRrn8vBPzU!;YKRFnc+fl$r_H!NGla_CDK+!0ut$@ zB0-6CRgr9o#8f0lBE3|khD7?R$X@QW363*JMQXXT5gDl>bzE9JK}G6GB(5TP?oXo} z=WG>e=w1)lY!zwbo;cER&Q+1d?gD6=t0K+Z%Me+lA}!s(8IE(IiX7zDf`Thlq^(4j zsYpACELV|(C9*s1qYC;lC9Op^NL!hcLY7lsXYr99(7j2d4f)ki-j=9shgEOYFu39tJc8%z{ej{ zp0OC$oPd}Y4y`~WLY?8zKNzH*dXwVAoV}dT@s5*QyXzI847j%)! zg_Uwydahh9S}vE1SIgy+59M;{Z*sY;-U(E8c{90OakO0iGEy#ot&+=?_sZp}m*jHw zXL4DVQ%bpO_m<0bN66)dp>nxtu3TQ1%1^3X zMG~Qo(}1VKwhei4vyOH7C{1?0XC3dB#xaAeC@FC|Phy~~#33chm^v}4TaO!FzZT92 z*MWm=pl_+**Yvn1Lj8{CZqOecj~qlN`Z*jW~7HV@yv9tC-+>6%83R!&B+W0qNy%Q>iQInu1vbOg1?T zq@+;SVp?a!mE0J9HekwW< zs-qk?RU(drD8^r7oJs){$A7P z4D`b1(p*iS`yYm-r8dgDWC}`H8fD&POjn05XIKq6c~{hdtAOKV!4 ze=vsc&)e5QNXn;xx>~jXB6<4)MatDJmhTMMOimPhK{$e6C zIS=gf2=OU6Shx*PS=WKHJc)a#<*o$hY0H(&=XDY8JD{#3hY9O6y9tNc_!*o~EuE$+ z-1}JSN<)d@nu6ah5kt|a098IuvI9>B|8Ds#+bB<(UoHHmwN3halh2dpUm*O$EuWRE z>Qm{zSoi}hU+kCsiBsoYE_`-+(}@xDc+wvGy09+*>joUkTP#MEgVas_(*k@DpvMf* zX$Lh<9v4rsj)dwySmO7&?uUSUW?_eroPU@511L@%lZrGd>ACZ7b|WA+v8*w49mRUU z-4Eoh2`pbG6zB=J7XW8u0I4RfkT1B?fV#jUZEgEOue;X(aAzXOXYRZ1*P(fcqH`-x`z}ciOWk^7f{CI1`aecdxoA8XT(RCF2Uy#={%{ekY5Ox>cAC9_A$Q z2Uv{wpTe9j7&@Fg8T{!6<0$q>VbkB-OThXo+0q|$7(Q;8lgGUvnB$Rs4_FUbX~mxI zNxur#TUJ^rpC{}tl>RqZKUrzT=G_Il2(lw#q=G}Gt=N}&(g%Unfo$ni6#E)a`b4n$ zBuPInY*vjs7OY80>{mSY`Cwg?#D3Fb-wM`UmVGEq&X@9a+^0c)lPu|Ets6K3%KNwI za5n((V**GQeMm-Ou`nFLIE+JOU#0PbG%L3a$Q{VCX=wHPh`4(^c)bi?Yu-;-?DpJI zV2vkRDpi$S7h%_Axi13iV#8L=U13fT%qAA!ZQwsZjAucI!Eq;Vkf-J)u-{2kBalg+ zmhZs+BT-NSSN{}_w$HHP~=%s}u*S&Y{h@_R^`N?PZF zzu02DwDM2!FgJq#j|7ab>k;eoTYKo&f&A2>ZO@|XY8j^dx+@hsUK1$Nv*ylm!`iVDFj2LHMQOiDJ@%tg@u0P=Z@ zPR`~?Pwl4weUkvxMRB%=3FYB#5r^knQOSmCLD#Bm9sodh3z7lUD-h*GuXrl^13B8F z1?bE67anjPKv$;%Q}SNv)ye~auT2z5E`W&4_NAmg1M-Jdv@V5xJz(8@+!x^Rl|pg` zI}2Jm;=_R~wP-00&&Bh4duoRRG}!`0BTqX0A)dx10R6=RsZn9_7f9A6)w{u8m4H#R znD%tFyi2`Q-v#Jf3$&?5eU)&lhu*6`79VjWXPxMjn&4w`?bqEP(?5+|a&^4rB^3v} zDuakFlW#rrbwECn2Ay0n0p2O9w)O_#Us(~U7&-ZJUf)9p8#qog94hA?IynbzJdr~I zKOuvN&cRV0dKi#1)1Z@cFw7IV9Pqo+h>#aG>wR4gC}j+R8Qm&z#HOz zJ2~gJ47A8xPlW4B$EOkTX3Gb%8uG7{F_*1x2+%XEgy)7{?v=!HD{%?XcchW5X1GLNnZPJo0t#*#5_8}mjO+_nUesfRl#{hk2fyst0^EB3q z;?@U;%6hV)2YDLX15{#xX$^hMQ#%C6iK%FvqgOm29#lJ5T41uFToA$&N1WYz0eaE` zlMOx6GxU9czO%rzhH_%5)z-q|ZWA17t3IzD2P2h!dw_aaV6veF9`JO4##&&qp(lHW zE&%9C3ruV1k)GOnfqXI*t*gGmQ~N$Z8!a%|(1D)DoTj+z!I8e|&+s%J1W*qPOl#;l zp4!ua9Gi;PhR*WTE&%8<3rsfjYSB28RevWyk6R$U!QVXY5+Iit+_wPw!~$9LI@OCM zRl)oYem!)PD%Vz-Z-S72ori7%WJv~ea@Ui8uO~MIGGnbAi%eUx+QTdW|4NJTEb*aV z^U(JK`C4KO1D=3NCtBo^!^J&S8oztY;>n?(E5^ zX>{6&1&(t#agF*@@G+z6(BXcaj78-{kP)D|Z;U|sAT1z?Fcy^)qeg(jg-B2=%011W z0%K7*NeV|m2qsZjz)c4FwKEo#lW14#`Hcdv{;L=d72fFp(ZD`b5cpt78JtsvKOAwW z4XrIj&o~5S52R$kAKKi@Xh(0_^L$2Y}h#0$u< zhFa+T)TMY=yKWrxS%#;UqdJ1`G+xH@Bfz?s7vfG3hcZRP4<$43q0GG92f$ln`PLHE zvI0@@=fA-ocO5{V8=z+IBkY^W-V9cD3#7A(7Rp*uV1G}#IaozxOF=1i2T%G4u#UFU zGDQd+DeNbxd;nNOth8buC+z#ko(|TWBH^O3h8rcxuVS-OQ2{_a5hNbPZbNHa zU^Si(;N=Nm4Y|ld?gabs1c;=p?e3FBp!+%iA6gLm6U`s4`2PX#SHst=M}!p!qr)!1 z;kl;D)KOI2_#K`Dhk$>y#mG}{$&Qq5^tAz)k zhCdv15x6t8ua*d8hDkKZ!OW4s>Y`y zV1hdvpalk~*=l?$A^RGz{!aF>w9r33iS%P&J!z%=FdVCs8<-da! zXl067vDNr=3fWD-YC*Q7t=MXO66r2rbxo3128o$kwxc-O3|`rb=j%$Np!pm&_`B>vfnp8{R$TM6{zf~2Cl}Zd{7I> zu_B>qa^uN=<#VY0Qviw@)eMH6uS-o_#_(l2e4xT*grlAqzvqe1c;=p?bhQ{9DrFC z#QsF{_4srNcz-o~&C=u3oghDMSjzduRR8$&8u*`B%-WoUjGOW4X8`K#pCRK?3yt;o zv^P)(Cn8@@9-mldffE4gPoQ=8G~?3*0H#}QbP(O|-kue>6!cqgsBsE|iSl~y=1TVd zMVOfCt1rn4JPZ5>TauZ|fnC9uxbDw@*1@2cF$oz}WW?l1C@>C9PGnOvZ`eEyZD8*# z-ldvhvy1PxZaElc*z7pWhCk}=g+K1;g+FOG++sfCEv*?gPs6xohRp$9IAPd4hQnzQ z4B@c378!dLNAUx6DK#o$*!%>fe;IQ0QSu@y5LW;Un^{D0%Brz9*e>E|zJh4>wfqK}y2fW7;`MzOOl6e#Cj|lNh@eP}j$}eDNwM$4vSEUS_ zqNW-6`w-)+X*Fz$io?O`ZdB;Js$o;4`-3$&Nm>n?B0UYP*-6rB*zCbl_zPIqBuT4b zvlrP9g7uh{P8c>{1Nj3ZDJ@x-pB^^92k#fd_Ya%WHtL~0x4@x_jwHVdJ!~EdzzK;U z`i?@X8^r}|HllGTfa4Ot{$W!f3&6fC0TLx$+pUMqTLHM=g4myEz8*H82k#Zb*DO73 zeh%`FhUN8ej(^y!c?dFqLuFisP4f%GIAy% zBa7uS>M*&SF+eV(XUJvz<#L(uh+HPVCznaT%O$?|M2er)NiI`Pl*`%Wa+x|_E;HxI zW!7bKnY}_T=dO~=+_&YjV3S-H?lp)K?vZF@jgdO68`7VK` z4>`&U4?W%s5958k8m)8Bbf-bxY#hZSLA5)_F9hXELyeB}SX13wLB8Lx)cD#Jl8&1@ z(#2c__KxBzuM|FS_c6>fF5Ow9Kr8}=4wrG|xjvar7IA^zBV62f!%;kqRw-h?t{|LXh|$^PbjRTYFp^SE`#hnnk4@dDu)Tfw}$z;lF!FZL-D?H{@G8com9>+J9sjQ!| z34|>4S4y2C&dLL!xgkccrmhGzDE7GrgLQ;uv!BqM1*M=4NZ=@GC3wwfu+B1URevf2 zH_=9x^kQ(YFbH{fL+wQm+)Bi);QYgKiB}Nm!~*va5_}2#cPvJX%MHBBRB@qdT;@O$ z7ZxKfEU+{yL=iryF2_g;`6H>~sxfpd2Jsh4R`e~g=k&<-7w zX$V~6sxK3K-4IAH4S`|P5EwQMp*_M~a1?K%RjPLTm4ML45TjXfaB!~y-<5_?3C={z ztx4|DdVCilMxoirSX&`*m*MdOiyw+UZegPHw~mW?hH)>;mvG)8On77 zA;B~dhD`%u*ffw+5blqocrmR~wcGCu5GEU9^kQ;+4P+5G7hCRM$dv|im7ygzko|`t zwFkk|4I~$>OgE4SsHTC?a9;zt25SEe_D@v$cc$TMAhf9N5m*kwQGBb%oC=up5+wEm zqn%}{T+QeT!m%WZIz^my3J8M?F?ttuMW{is&y9mM%d-6qWC^HOCvcRs61?ViupTt* zlm@~YcnREh3?ik0Yy{^I%OyUwfz(6gH^m_tQfxE=riu$yfXhdI#uwVjTlQ+@LtZQRPa7dpu|&2vl_nIng$L-S_4NO z(LkEf@Nf%^n+oulm+<3kkczsJZBWEWvtoVIigBRRVjSBjzdteoa0;U7asQLffm~fLBVnv&0t^Iud4yP#wDj_U^#VP=lOeR zY1kE>LAsJ;s0Vp`uIuR--_`0UAC#b@BRKtW$c780gNRfeZ{GuyDu8!SvUa@Z;5Qwd zYj9+;!?k(&2`HuGHFmAOygUxhC)6QZIHVL9N@K@iXkprp_#mT0>Fw>}-!;M_?aQs=hzeL5OC__8csdTXc8HF9!1*V2h`&oYF=Xv<^(LihH8H*j zn>iE@QEq}c09wE$9sO*tU_9_bh#6g{8Ze90x2s9(n(JqKHQ|AOhM3xuRQK5{(EzVC z0xXE=>(e~$8gL&sTxKkK#&pAN((guazc5^p^-k<)RT@qDy$W0yMPiFbZC(<6f>Z8O z-(?Fr&;V`TwRhEb*+_dDHoFPcT9x#4dF{RmZ2alYLtetCb9pb}C%KxEEp*urEzhKS zxv2g$RW)t!R9lNw%_`NaM79AUV$2pL4yWObMl<8bK|qR&0-oQbOQMk@Ni0k&;kif98s9m4=C9}mwk63 zWF?Eqs+WuE0ja79^i*3h)!`}Ct3-AQWTo7b(Jg;NS_f-i~uT#j`o2`vw82wt zElPFhFCZ%gyG03~LpO@~vgtW=x+Jti_f0F|Idr0^a%f4g$wYQc)BWOVYb7PDQ?uv( ztHDTD#FH(1R_&W$CzUUJe5s+qi}+FF$A)I%XFWxquU zpHp7~0V#3{cut)z3GLLcrz0Tf=aO#Wpf;oSCo>hs}n&)!Y zFF%+Q?VllXV7oM1nYctqtyF@qWeYED+Rr~W5VbS}Z$8~AbvKmG)HYO8WPaJ&k?LrRH2ur{ss4Jfk#c zB{}?dQwrx|YUAgeRBnCRerLV#3r{{7mHX3zWIb<%Yz0P1LutQ)OXN+QO5$UkPR-`? z15sJvIL#K)5FK8`u=*NUvnqzwQckn;7_P1G)eNf-w>3MT;e173%&_{1TeBq$s~3Tr zUBGam!d%49>$Fngi|MazwF4GNIrDQ>k~LjMSFu9opotZoS53u%(YaEKNt z70iS!*3jgC_FJW6EGER3DkDrM`(pHor*b9r2G?2|0p%L{FAYJbO1p5@m5S$+A;)n7gf$d}J@v-juP zUvBmR9E4jC?`C(&JsEor7|uR|TvvsUqSxwhSGFY`?&f`%D!Y5}8K4)5Y?=EuZ2AyK z@qVDHMdR#~+;2en)lj4DJl3gh&E8n)#UTP}aj~Q5D(Cqx5ONOyyAvTDAsD?2B=sae z`*cG7PDn4X`&-DP9%LvXqGb};a|xkk(Zzs78_^ItK(5B3#Qe;4$XS{@28~oblyH0Pxl_A zXLs`+q-S^c9;9cNxvOExvp9-Rg{1ZLw?X;TP@@Ap)~W7)K;CRvDV{zT9Je8C+Z#vm z5C}%E1j+B|7ZB0~>|-qCCJ!Q>E?Q0pdn_TeEII{{R8OA+{!)vfm;n8rPC@r(VD2Q2 z7A1K4YEWNG)WGsd@boXh|1JTeJYDt)L|B)~GYY2imW;mU6s+me!33W<)&`&JZG+Db zw86CpA}Ael!OIlp6aFDMqH*TDGeYXqi3P8bJI8W}^RwR}`^p5iR{K6VRCF)7vN1xX zw~h?PU$BfOBo%zj^A}bZEit+LDr9rH;c-|ltzODP-IamlVAhP@A^2o~ui9a{2;nsW zc?J?Ru!D|6`7VMahqxju8NMJ$l zn*sMSkghf4=ttzW7v9HGHGRNxAI51VF<*P^&xJjh?6-0HFp2$@u)hP|{TZxHWJ|(I zx%y5J9l&ka7yge!*lOaTFh6=K4gO-tR!xg@VtlnB#igSqaE!%F9n8Sz|#)%a$uSlc_lEO5$hw@ zBb}R>R^?o2(Zs0gqB5T1Clxro(KM4ErwzO^bdp-bngb{LE>mp!a%qd)b|oK zuzV5*!f(OYRfOLx?N3+=YRXbCi-05Jst8sdkn6SrIo!l8@ ze~i{0)n_YpEASF54wbM{t~xn7fLjRGeunMup;RX)Dtdr_yul=Na-w1=SmO-a zuR?Wll81%hUqlS^5N*PYMEK-h*`qo+Noxf_|FFsgs4%LNlLTJ}|HDLO3ZptX(epF- z!9hCPDnW%&ot)@t3jV&tct$CV>f~4(ZddS+H5lbIbOyK*UOFkp$$Ag>Lz#h)-I?b- z(z%(L(*Z|8tBSlFINFQ666nN;b(n_+;n@(5;vOulBXNksybRL2ID{NMo;+o6a+F2rY|V22$#%xD5Oi z7DF)s`bR|yy3YXfB5|}RVO0DW)bA2C$cqSQO_*`0g^(PSbv+!)5~iX?0@)lGVap8? zjZu*=s|6S?STpP}6MSZZ4L&!+2A^MKgKPUDs75KdJ=`B@&A}nh2%~)w@{fwkEQdHh z`yHnIa01&uDpJvFAs=*Ot+QTGXhRgX}0HLg#iF(!UBvaSJwV+qvBi(u0N^ z-Iu)fIGmvB+(v`tzJk*~i8EN)d)w|2$e?IZAN%UaSWJFaCVS)zqdn!h$P%n$~GXi7pRd2 z+r51WL$2%yQrm*`ivIKNcTmYgEn=(Z7V5E%BwXtgw=ov?cz6g^ISJ1jzH++)!Xp({ zgGS}JA$7@-OCXz<<9RCV$p4jbVqvFMS%{T|_N?J$q@+x{QW4f? zepIY1#Q&iY;U>{=i2q_D9Qp-)a5%)ziiJb`Bw3k0lU^qD+FaP4izIpj!jGCoNWdS4 z>h@mn;Tr%6hi<_+@-;GYxB%{?h0lVfo<;M6Wt#JT0XY0fnd0z^W}5R3!~AZUDjcQg zR*G`5i}@#04AWbQlSq6n9Psmaq;V%Jh{B=5!=If+B%Kcj^szF=f=#M#3b- zJTwGZ<~X6^$gN}HCSxlnI>mWEjE7_q#fuxbmjQDXb^J!EjMT-_=-m~dzHT_GlDXa# z^-i31N8JflE=ry5myoG9Mr+J0mn_^=go`2AcN>MpkYqK@Ma>wfSdd1IhweyRaiN?K zfYnz6eS?uubDm-;J9eh-BjBt`;_gjZ+Tgwe&blP-K34P3;A~3bs?w+C2B?>&I8^y7 zt5B>UklP-dE=k;$mfIVgzDeAD$z?X(3E-TS#BF7{OTf9ra!(PRZFqKXuvFzdk(Lp9 zOdtHWL8oPYZC1DVXUqC*e<8_A%SP^p5c`axo_n=y?EV0XGfq?03|D-tCCUwH<%8A9 zu$8Yc-%;=6)tHh~bM{imOy0U&vanQ&TLr;KwozCNNmirE>1C++DvcTsEw$OQ19K|1 z89*_HaHt|uTsvU9h2XSI;$lXqWsd}>M-o?NYvO?ez!{Rn?Pg`CfipXa+rx6N0O#r? z?s1lTKRAyhagQgL*>qnA=N-$%0}y1Pr{(_3a?lyE0}6-6p>rq;@ncXjs||;0z@PSt z?Aw4s9T67S+P5M9Bc2X7TFkCbb=3Pd&IRT)f@@rq;lixDJW0$Mo4$&~zCIQ|bk`L}SSc1J|0e1BM|c`DJ+I2zWMiH5oapG7#z6GU3$ zEZur&BUAX)vW^k(;j+VwuN*4@MLkled;?igm4ff6fbS#wp?R_qfv+d~sm(>fsfHS5 z2*%KCmBP3HM~E2&FreC%n5_5_ml3|;thSf&DZdtdD!}a#kC4Ux)Tefyk>od^fylp? zAn)gI6tjOPUrLL^n;4-J*+(+aaH8QegbXypCF14cy8z|*jMk)9yz?ZjGnu=2D@;z>q zLl(16znAQ3;k(@)OVt32(Ghz?t646p;$NXGU;b9+s!Tj4x#XnWS9#$OpBsil$ABDR zuuKSLLI{WWXtgZFN8Mq4=3C8WA-+sr7GgLY`dq?i9!iP|^WErh=pEtmz3s9PUq}vz z*sYX>8W!^0UCsrYOmFY9LB7{R+)h-M1DMMJFxvpCl;(NShA%?>tzE)Zm zx(MyROo#dUX*k5U9K#{LGFuknJD=eYyO^>Nzr$7*;>Xs?LS2PRdRW5Y5bu@4p}x5F zi7;3ugfbyuYB+=xF7Jf(nK#sBA-*+N)P>zKd_na>|#$UstRP6mWG zQ{fQ)NiPVB%$3=2h&OCyp#uovOR?i z_R2z&2;tM9aA>+f6q(Pt%8x^D9J~U6CvbqE0{t1t=|sOA5J!O3?4vmmPB+W>EIIf( zF3M2R;h;JD*15SiboXYw9E4TsiO@5{?FE_x=gSDq% zSqO*FZ9wIP@1~b?NhWwO5HW*dz*y81VJE^Bn+O*J%K3$%;2;psFlfnnIlo&JJR7ug z6X}l+0{ueJZZvcTjP_d*b|O8fo$ILO{On)wF%X|IXeqjKeoQd0D?G{tL9w z*}l3SP*E`fd#=27#d5yl8EgQ|p$5l*-~zYul~Dx8;bWBCoaRLM*6TpNw;L!6o&elH zBV+@r`1m4l#j(wydJYhsAgcZYCs%XTy9^Z@x`TVGpDXU&a2hebpi{v&w}PMek#>Pj z;V$t+Bp4;wiExRp{2dq@{E_jgx*V84r<||d2J3>>!cX_P2%ldD4+68q0O(-40KLbR zfD>9NoKbOCxImq;=MI}tuUEPtpoggYYM4M#s3 z!u&bqe6c@R2HFrmT>z4WaxTILCxAK20NC3^8FM0BfiLGv?!k)?zsVrjqoBM7JGqlc z!!r)z_-=XdVZ>iDIJ%qQ0{uvHB7B>>O#1l>zI_+`9#knccKT7qoCx2mE9V3AV9s-IUROZ<6*~&Ij(ntQmOu7l)+7fD_@f^>RMc54J%3FvHXy&va(@ zhsCmQvz%W~2$ldd(BQPkd+9VU2V@M`XBh|sSj$0vDrTcRf-4Z0qDWZu90U-TMafm+ zIl=oxl9eYlSi#pJgX@hr>ldcsfkMBeVDwJjk5p{JEo*Qy;DW0AI>&FPqI*|R>z`w( z<%2*i-xufLKA;|eLyCt1C&CA!6D!vUa74EBKyf zaG4RO18B38g4*oox&nSb;M#0l0KcBQVP)S-t^e)l2R8S$fW zh$AuJMEKE+ir0pLIS_H__zKoBsJm@`^CEaA;!AOeoYx;MV1K0g$^~RQ5q>tKoKKU3 zHz0lo4iRC%iSVg+MP0i2vxuuE@m~2Luqyc4ZE!uPQp#))B-3YA+|TjbJGhNFh>zElusHq@@H0DCs3kzIqGNqdjR~ za15p4vwY<@_)c1JJ5Q0k!)K`|HS9`VN2x>4TKF-a;6}uM!qE?83E=;c(`UJpDwsRh z`YeNbQ0Iq?g2jj*gG1!JvCZ$ZWIK_)sqN725E+EHa?97*pF0)PNIlC^-;+MM;>|2j zUjtP-7Y=<%z0>h7iG!fQ!T+)MhuOdfhlEk;a=-E5VVnVE^>iPAKKv^9B6RS3M5OMR z;2_e`5>(=R(K%Q;FU8Z-m@(a#bYfV{7$SOY@61=EgJYmLDd9q$FkgcXK9HI)%}UDu zauHE>Cx%t`$XBL=KSPxiU>XIhdC}hX7e~ z0Uj{nuvH~aPKqQJxIN1z7Pv#gQGQQSIa^>w7QZ}+r1^!^^3SQTKSbwlLE$Ang(@87 z$0mn5<@}CPa4AG@#35$r@nNtNm_?c%6fQXoxQ7s5ZE(CzaLW0QT!OEF_O78b;6(VZ z5X#pSg847Re@JUwIEs231Ozv_UY4El~0Kx_j_N@OzN#&5zg-CUyDhs}6&R%SsI=k2QQzKKQTH zgbQ`Td>KC2c~MHjG%G3L+_)rr?86U<*kC zWa?%|r71x@)(mCxKW#yJv?uKgnz4p&;s=kdN|$)bSVKip4rqa1SdTT-p~jjDzN;Uc z?AIyAH<@THQ9-AiUqTO_59AYmv^XD~OcFy2w27ewGMv}~`N?!R_?^`C7W6ph`Erw_ z>k^+X6*i5JU-=8xh3GywL`n~IY<#4t(XD(EDkpd-;$01ncf(FO|4T*iM9}&gI&X`*d?-GGqW&M|r1EpG zdJUZR)%e#76yL|2KuyCTPRqVh3eW36mw3H(K!vfSheEx;rPNR-!f)r6f6)@E7K3m-4qItJp6%e@ zX_1JfbOQN-!{GghKW~8EgybH%sjqms8zA-0XN$zkj4aqeG#+1r@}{eaVYW5hg-mq$ ztq3I4935kz09rcWuz4~Tk?2JD1^04(Q7#xm{B#5KruEt)et{}@J=lq(8Z7c|`Vzyw zX@#+940lAhxipTy4k2}QuX+-SFS^xn#*!c|g6lX&++60KKONY$ z4^M@tib({PI(UGFuUI0Che;sk^FafDDq24=+Q397(IfpoH^1aUd?0%a$nilu^}%T} zohj!#!O_E2z~5A^ zB>8`VyRyz%f+qBlrdNKY1JiCzMlP@9QWSrcFPOk89k9)bEpHqYvgzPn*6R3Od~NEp z$!4#}`i{weq3MAL&X$M+x)-4 z{aKZdnFR0Ff%uIG#Q%!Z6iyQTzeWMKa-@NsPFQc8q}rx&M(Y1Hnq1k&Knn=X$7vd; z!2VyO(%;;-Q}g%fH2FKew^d5eKvP1r?*aiZ`4W!>ghwllC|1S%Wrn3#C> zkvcYoHzodG)&l6)wD{EsR9>WGBB-RFOcJsRW~|dbMM_YU-TX`8?3J8;@psPCxP3Q2 zg9$VVRKBn2aX!Mr!}7Gc>VLE&x>6fp{YNiG*(El>N;W|LB$r!meU)r|9(IdOuaZsA zV!d{k#_>N}x-%TVl8(<`CB0t%(lzrD7Xh;~oB3%_h-RKO$vLDbxuNfAbE+o(n{6&j zSGL<=uS+tuIfF^l=2F{9gU>G89otErOLu8IS;FLYW;>Y$g?riwJZsmDO_OHn-raPF zZo}%opjt1}%cR6h3UIjThQyV6YfPn0G1(bEx^vVNGfXj#c z&FF6DJ$kDzh=GL{L2+fdnL6UPck;JsPb`RC~pAxo5n|T{$Jp}IG@B-_SW=i zdC7p~aX!+k?4aqDZFC@Et`W^CFJa3GC4UJNr9P$AlFH}b@Tt+h8?ehvR0a0$(u6%ruG%RD#9~d@SpJKIJeu# z$(cHIw#U|xSN;lR^EJJ4nhBh#1CzQWB_CLHBPC8U$@5l^ziBBq4fn;_L2l_@A#Yswh8XpJxfAG@t4Rj8nXW=xB&ma9icxg|A>PA!toTl(8 zrvFDTt!-cqVgCVQ3ZJt2fArFeH7&jnfy(JRrkrh=j!ofRx&KEmU8HI883W5cD{1TzK_Xe0A#IplrK*wKpYpnXh(7Y8iZWn%`Gh0ek#( z*ZAo<+vca$*KVty?sv^r{j_-5_WJ3sP`c~<^ed#6!A}$V)FyOP{Py_juJP5g()j8O zKA|$dunxElkGKvF!v|ITox|OW=4UX0Wo{*RF!DE(+dR#$rVa#_#T$TJ*+%m!3v^&6 zH;bBIwn5(!=YG-3fI4A6Z60gApIEdc8DzT zwxeK+0Rd)<0j03TfdAEg7C#%H=4%lCY%i(+;i|xGcxe7w+NbC0^-!RYB|zmP0}O3b z)I2?(?aI^iDC5j7az$NCGO#oxPtz|$c%qP-n&;&z+AJ~JJTY2el1P1K(e%bUanF|c zY;SjZxc<)VaO9o&G~szDV`Qdum9Y}u9!*wjH{a<*v-t;>-`%Zee-t5Q~ zJD@AI0XB=?lhOcpgNN(g@7fuTzs(QVS2MYt+05^SLNs%{v9;&n`v1m;7W3fTZ9W42 zoxaT(%r-q-Z{Gd>-LajVaqli|CmWdD&TJ>|K_T18IeXd(N_LlQ{F=m#zy6W>Iy_8t)#O6=*o_&vwO+7&e6cdK8$Xf6KWJXbD zpk_`xQ?DW!6m}+F08)G&PSXxfW)7e;TY9cv$>;h4 z+VZpgA7Oj?sp1swqxb)~C9o|)cepw|+58BWvqPJ;i3XQpEfYA{i!;53DAHu!&hX1c$D6%v+D7~j0`|M<-G z9!-nigh1t$I;LuTrH<{aC;NPcja$L2rB}?%;j>dr&Xa$sTT%*}KLW!pt5!&FOG=vk zCRaWT(8mXo4GM$;}H+7|HVE2%^!!)Zh0G3qm@uLf411^Y|}QXjZnJl z9{InI)H3<3e``vS%E6vT{?4v^91`hLQ+DcW}<(W(t@1{E>3cucsEl#^bqVVcxQO3LJ4vF*@ z_j>NnVX@h-;TE{hXR_E}_y9lcb~O(W=XSL?x2vV!sunUc+B@Rhsut%~wMw&1ZM0@O zX7krfMM&r>Oj>U9yJ>LRuEJn4?l|xOTiYVxGnhLrx3XJJukxigxY^LPyPd(ZxR$i} z%M^}VnE%3VXYiynE@ApvxA5tV1{+L9m$2JPwrLYew&%y&x)C>hKXLYpDB?d=&(`Lp zKZnKEjSJq*XtBZU7CoEUjpa5!|K&{W&R{aSu?N^%&sHnZg?FH5GikZaj(BCaGdNw( zW_HH8h5yQEu)$<3VGppi5;oVmr~`zfzG6fnT4aHv}$I8v?m65E}xyFAy67 zu`f_I1j@$1P;hA|-NryVoNNpn!++-E?xU@87VA#Nz3LT|$eAHG-N$hDN&FbjK8YX0 z*-F&xwbR@A_DS5%C&ILO0xfbiH)5hRD6q8AnPd(?c%q<+6SwoVOpNZE7;R+?nBxw` ze-d+B8+Pj6qvGrTiAmJ%yZP^*Z@_7H=5B{)pfLTCM7l5Ql)j1N_iX;d^WpysoBxWx zfwQOIh!kWi!!ON7r1W3bX?fUNJD@AI0k&-TZb}2(4L1KB_4dwi{B7R+x01>2%w~QU z6r!2$`LfQg`(j8!J24yk+Dc4<5LlF9ANcJek9 z?rA6RtXv|>@_>_iXJpStKvf<)Yd_T~SxaZ1gDrr4umv#nBPx>CB>%S# zNpV|01+TZG%oP7O6UpDE5vKJWpZ>3pFe#r2x-0A5kCC&T+2yZ=!c1NMxvu{!i*`k7 zMb>Gbz>1U`p_%?qj2g86Gov&8pBc4)L22iOdp>wbSH-Q?&i%+}>VCvFr+$IT+@@W# zuY3mNcJG?)M5*0u*X&Bz#10&*dPyC4`dzdC0p7P0bI-0>?VLO7LvC41Up@z`cHS>_ zUssz=>)}V+v>x^Z&^@2W5;xiPpK;?W z3Ca6p()6b{d<{q0rv9|W1|YY)KV9?{q;|9ZG=iLLPk-72_&xn8{8*lY{TDurnY8mT z<@2p=`hAnuOVhlC@Gbn=S6AuYLilRq79BawTL_O+Vwb&za3@mB(3|dg3&9S${?E7W z(zg)wJzh%Rn(`h(8~#IrZJPt!2>;&79AMeEP_|ujfXS5DWpjYxNG+4s?s*Tvxb3c= z2dK}vCiSqXzIyk6w$)dA!>hOAtEJy>udlYC#4hvIdPr@LuZmCZR_`IGPr7c^R|o#I zt-iVmUcD7x{rQLO_0<ORiAWC^wosjOS!twciTjMhQp-YTx>8I zcQ4r;RNJ)QDqAP1H;L`=CtcgD`qNn)|7G_r$Z7oH@4XSF=f-L z+&1U^_Gj~o!++m>y~1C{dLtqpUu~qtX?r(=$=JJjfURwR-M&{R%)1``h8H&7ajRv2 zWGZ5Vp}}ciPVoR+dpX6|6>t6J6uG4o`w~VFQ#|gzCvDp8%J>{rp6Ly48Q8qr89ZZ4 z2DiCq_cM5lyUyDT$45TXH@o`U(=#@^|D{PqLpPJfro-OdEPi%3w%FgdneubnOb?)p z|5THT1A@D+#r^@$E8`DoaoPdTVE*^~IK5Xa&H8hcu^sSQchAmL#s-tIj6J}voK*Zk zgVQ!VZ_corO)758+3m`B%ae-JYV39fr<+um@z-q=!aFeOdkTZe=*1pjYhD~N!~Hh> z4-7r27_Ehz$>y!4+ss=_>&}tSn9o*kE%6;DytRaPnB=V`yu=ikg146BEvAV6ym_PG z(njgtV#0nE{T5SSzQuHaNwc5c73yAfISS~9`f1-{Iw0{arUT4dOzNL@A7EY+g85WU zCH%>&N9z!o$e4Rj=C_9q`lgngJI&kL4F4#jQM+pHm0Q zwsC(+6Dde+j$QaAv$C7*FPVUxaLFEnLsCP-4#_?LRaNS4XKlGYDWFF*?GdS4@!Bq~ z2N&6!CIfZXYxP9fb;}&TC#S}+J^(Bc-yazi(d<>_0 zI^bT_q=D-kfnzKwx1OiyR?kyvzD6xkHl!SZL!e*{BbAoo! z1lG{`?ljQd1@3%YHgBGE-ee_Y&N=-$Hg=uK_kmo~+z2_>%y(}iZt}H>UPMDyP*F_-vw;FDyF6OC_AdkaTdDcdN?_C zR-k7KE|ShJrx_yw9ck|86f#mrb6PM`S4Z|{B&;L*FcQ&`B1Y=zNHHV1I?|GnJRRAW zk$fF##YlY}X~T%4Bl|Jp>d5|#7()+W#AM+hzf4=dOgq2K!G4)T7|E*L5EG7@n!8S& zl_-t6PL(Q?<1YtkFWX&f0|rnee4ao;%V$q;938%y;c9oElU1i*?H*`D7uwJxHuSv> zZL*;beT-~Z9co5GYZ)JFAzhA7(Y1X0Pu8GXSCGxgR+L=le6fnOxTP(&G(rRyZG=%U z+K3X4ThA@7n^!AXw@KYo8rE|o4Nu~b*kk! z**cnClE-LHkyESIkx=G1HNprwPDtwlz;X7WQ%+G_>DrxvwQ;5;p2Ay?Y z9H*hpWj2#-bf9}wV<`jJeRyNXX?&0q3^B22wxrp_0&0z`dw65YG!>ER_X%R@MjlES?4n}77@hXkcA}d?#;97?_9wwz(Oyk=l zJ1vvBj zXG1*DPxKTVluCA-wtk{2@pjfETaE{ND6cFIu|z4Lq1w*&mMr2PzJoAq{dkN+{SqFz zqa{l@c#KYPB@~R~bPgcEQtaYERUQuW6CCGoFKS%qh(wa(9BB#JOv+^EC`*PFo()~C zyCd_C)6GMfTIlYPRMj}n(Tda_HBbNO(N^-&6!OPdurwDs{;{?iq=7ijagET~#4J^} zE41=p$m?B>M^hGWqKXr&uS=UO_587uSl!d>T9}CwyV#ar7STOKFPk1Z3>NiCEn!9P z7C4=3ZI~c+W4=^IwD=>K#CJ)R8%N^R6R(m5a3`uPjrT~S4xF46oujp z14W#c$qYXb#oNAdq4eY<4s_e)jjLPF&8^Y3(XhPByNkJ%*-pE>00x1PRp+`G8`??7 zG3vZ?@oB|IOS_{I&rl2+Fxp^nXKn0E(l?eiveTi?aoS+ynbGk&qdGdl$3;44)^bm2 z$W$ikOljDpW-zKZcztV?OGe@}8Fx`)IRww5ARcx2aM%ucc6*(%seU^3PxBE_WYdu; zhZ)CW7&*+4N$MOQ0Xk>;qL7@W${?u(X1l&@!n`@It`eP}b6uYn@$|W_GU3whjcLU^ zS5=$RtLte#w6@D*<6EFYFlV7pGdYVG*FMI0l`kHECFl9#sz0v=ox<8fVrkgH0Uf{q&MLj6ec>U#{G|Q zo@Nzt9X)097|?%j8as9_&Pz^(0%{jR0y&5xw<|q{v-5#Qv$+P;J_r+)YrxUFYLOSU@@mw&$`1R=2qYumDPo zCMLERV>A}jXf$em8jXp@f>9F_P1I;KO+{nG&YU?jcV2$b#dq#hf>^ZP!OTkvFVS#&`qSRQ{2XxlGWjDm(c|nyO`JH< zY?LhSf@sbo zx^|O}S&=*C1zj!JiL6Atzr5ghOwJW!wowe@+Jq&uQ?%6;FZ)^K33ZVd7^O~v5+&4e z)#sumTh=IJB4JyH~K>9LSSXOtBzHSp#{eAl@Tajpi!RSCWqO&0rxQWZ5~UI#6tQ$=F}yBmwmaozM#{`yW}JgI z+_`RsC&^x>{aLhJh882kelA{SBt7;rR~f#TbCpX5&?m88ru|v85T9Q!Gog=QkKLW8 zsLEWscUQ?{K00i#j0-XCUcm~(D<}x&L`U|%&R6blNay|m=HiRsNyODYmNibUyZL9G zkM6o3rfZE@Ng1YPbeLoa6UwzR@p^NJjhIJcLK{seG6v-Z5rkKDTz`=<-^im;xLo2- z5jC)9up(wq9X^0QiS-QZ&rlzR%8XD)k7v+r@uw58M%-w>@EW9fK|(?Ma+@Yj6mvt% zg=9(RUYq0ZTw8jT16tj zwqWNeW+>MJeO~0ToXI>)Lu%9D;`J-~oDu9cJZb{*CU*6hfpM!D*q7%*F+*Kw!Ma5? zRJL`|RX3t*qtx&PZNbXt+bZ*L7KNg1YPbWIe=)h@=#W4d+?GFrjYI2i_!+LFvd=*Df>*Iku~|#Ig9cj+05z zwYGIP<|Mgx?>KqP+2+B;Pp#}j<8Ghb#_Sr2QPHRC>C<(wpI)@84^8*XYw=F>wAI?^ zb0;9xc6LCR9$HC|q^)I4%9bMf+15o@YI|K0ZMShlR1s;r{UmLTVN$kKT$|06xw!$Y1E-Z~{0O+WIW6{Y`A3c1ST{Y*O-F;&T=Fzuex4p1Z3`&?@xQ{1J(`ioU~Bj<28t#W8MBO|0r0Ah>n~ZhBT~7xOzt;&Pa-lNcPhRWNv#j9#m1iIX&rVEcR^JB-Ec^P z^CY6@G2pFp?Z~;x?9 z+xbZ6HySS9E!SG>DtXL@ajZu-Bg_HqvVTOym8Ve9y%k3_e{_-@`H=-%1bfX|xd(iRv-Ly8k_S)?O&P8#DuOw3#snK}okLa4DM-Cc-v56WM#=cdTq>wmg z8&*}eQr1TGPfE!})-Jx00v12Pn4fG@R98x2CavMOs~O(23oTK!u{?H5K67Qv$-dnyPVGJR&TV~W_lyf8H&qzS8=>wGDBrZQLWOk^vyA+P(~I5 z+Y-k-*_zsbm0}G77Q=!VYBLaC)h)%xnLip*TkOk*v26~bnW{16CzOu6i;3g*;<1_ZD$9i6D4VD8I!W5 zh<>(p(Usc%+?}}Djcq))cG~_?mpM26_LHQxW~{3j?bMK>Yu7~2kBrkNrb&g-Gct{H zC0&=y>D0-bPS7-Nh}olF-hPs{1~4gGDhEB~riqRE{LKVwYY9Y>>Ml+$SB^DmOnN#X z5|;~1Do!qrNcIa}`@o0V4KXKPzNr?$bE!K4)^e^482!>>hY>Q5WWb6pdicVX^ae~O%>>gI%7WaZfi-ifrZSYPo3HBO5*`AGaF$=vq0iM)B7Y=p-{9Mp8|Nw6E?p{?{}sdYFloiULZWAXcv%e=z6{)_Sf7C5%Pb2<7J6E$Mm9Y&aT z+;p&qv!?#n^w3@H1Jkt@r;;*EtIIlreUff26tniZJ#{y7uvelPW|Ex-sG^S7dgQzj zBag-^VlJnWMAYzEoNs1mu~X-pMbhK*&Ek$$>6%k_BcZ`gok|i(txwP#e=3P}D018d z*c{D8{4emSyYy^!v|lDHlI7#s1xhYy zSQqPJizUDHhP)cJovS(C*yOQ1W>=2%$7E8NcHD8|^gVKwqE|&$5NP4{BVV(2M$FS2Uv0vz7f0js#om%jS)Cw&9#<3FY>4z_e{%*&nv`y8{ZLwB1xYo-?A0T!l{Zf5e!@x~jfb$0iCd&-%ufjE63#u<;h8z`DkBvz5g;}~`g zreqlnlu4TH$i~`SB1n;F0!NTm275>H%n>B|BsPL%e- z;;d~Pw{mI~vW@E#=K)n>_)+xm^;T_t-BctXobv^k3A;TR+WwrkT)Uh^jk83E8m9=@ zUr1sI#wKbUiDcg@mfD%kCEdib*ibBIz+!k^SG00Wlk{Vk!`6>cN4Zp{eJh(9w~B2J zi8C8pTsseTy0)y5UsSfSwJRzTS(ZYPjXP2`53`H!=&;_D9P4wI-Cu`DmDA$@DiR3`TLBrPCM>bf zf?)}$k*|w3J2S)Pw{;sA+evm8#R8dG@A7C~u5O`KwYjDdEomg0wh1jV_GvM{wAN_N z6nks)yWu0rV-D;(HEZDW(Rl0v5nXHbk;q|ewqP!ac2^2mb6x2AbyF*{HIYl$%c!&1 zs<6#iE-4tYsPxZIAS#;kjW)o9S?#WNW7MyGE1P0Ab2a{5C6DWOPC|0Z%`k}cSIiW!Q__!pI9`HeP0U!g@uAfI7=aa&uTZMdYc zPVM_hDr_8R;6Hyv86aO+AT@e2-W2h@iZ={MD1G{cEQd- zEKQv5hE+=9Y<7J?jrlU_!Z`7!!wA#f00UlIeWN=*!yQz|QPvRU~@=vomkVVm1>EN|A#RjPoIqA-w&D8I)q%Wm|2wqn}}syUJ$9rGxjg z8*%4*k=^7BiW!Q_cvo?}pKY6NU(si&IhYvY2BOxGOA2j?V}3Wf3bV!pi(x?wwHauG zt0tQ5cB5G4Vf&Hu@-gA0#tyH`QE54f@*Pap_<=D3-mR zV%h5`mOWn&W!z%?>4^D&Rt7i|9j>tGiA&N#YNY(8y9UmvmHv(t}#r? zmfFbc^|PzFGn0HhdmGt7byH(#KS^8rn3OH$>NC1wDX!0S700|$bMDIivnEL`v~fes z9@RqoNs=blMr|7=WlIrV7rmC~n&fqZcOsoWMHXuyl`%jT>T--4N1llB5Bn=VMZ~R9D%7xO6ZV)LL^J zLEHbf`))|mZc|tmTPg=lMx^?D|J_K)V;B%fqbzHal%=babbTdJy{xCQ#CW(yS=x7*TyN>(Bwc@r`uLbT*SK?vAZ*0`50&K$ zRcnM5y521C6mHT z`O@>7rb+b+pL07-KTId{4JK@_d$kbmb|=(Uo|s zf?#&^)Jqfg4laIkWkOlJOPu~u&e*?TtbgHEG`Dy&;=>v{aqzliwG~-DG;(C*JC}n7 zBaiIyL4(#wc6`tveG+@np#2$^Jw|5{(_9do(ko&~2o^@5p>Y1Pil&(J5=#cqC;g+T zQxR9ieTKy_Y=V&wWB4ivnxfMWBeg!k8S&rFZGG=}+y&8`M|ADXcJ%w5&AlC+5{zag z68&&lnQc^YLcva6ju~{5_~-=7sAyZzrg#%0z|+ZMbn^0O1|tK<=B}Fh$3HwAxnPrE zX%5nu16z?@To0C2wiss4=)4Aoo%Mx)yqaxjU_*wLJpV_mdcxzIb5neIPq9tfw zZd1HmZuzh}ReuiFkd6 zV~JOFeA8KE-y1MNuPJ@4F$=nzUvTG{*!Y$=XnEt-y$!Whsr` zba{eQ4#NjEZu^A_j7Mw~7C1o*FlJxQGmeHQqiIK6oSq9+NuMjNMtnzCk5(u>A~=r9 zoA1k<{e{lg4Nyh!?}J$=8}_{G(Lj#|dNk0ZfgTO?XrM;}JsRlIK#vA`G|;1g9u4$p zphp8e8tBnLj|O@)(4&DK4fJTBM*}??=+Qur26{Bmqk$d`^k|?*13en((Lj#|dNk0Z zfgTO?XrM;}JsRlIK#vA`G|;1g9u4$pphp8e8tBnLj|O@)(4&DK4fJTBM*}??=+Qur z26{9Q(!i5+(qVq^)q)_%%loL`7W6YOk3Obh$9-0{yd{uSrn>9gtd@TWV8F zt14O=nuaWKPky`iH7!+5c5%a^^5!a*sjpg=DzB|=s1PC2c11&7T|+&6+$#u3 z12qlwXK$BUrT#f?QEN?Y%YilZhq~&b4=SswNvKZ{EUQ>j?(RSdKILRoeBbICcK(VZxP){2%)PFw41>T6nR%4=&*tCEXE(~@F^ zSC6KkTIYgQx7Jrk!Q7uMRm&@?8YS_TnmSh#q_6tcx~eA1ds<0U6~1s;#5V=HU=ykv zuLHi=W#8RmQ@W<5p^lPS*3jfKO3LEGv79uRCDdT3cI(RP%NJKseev7WBv*7+a;U;7 zO==~sXhE zDfIsDeJ&!28&7NL)vMr!yo-o@wV=gIIO-(+*n3<=qM9V8cxp-H7t|~$cq)Hf!S7C= zQgBPJ`~i6d*PYQ)@M6J5^m|CbmhN8nQ6BOOeztPlm%ilRtsY8mzmfkOz4`l!1@!lw zE635_zs_@izrJF1D4i`Y@>jU~N3Jhyp<9fjTP-NKbH%uV>sGo8@AVn^bwD4sb?tL> z>4Jib^A^Zug;)D*XJ4{#p}+Zpp`^jv`lqVNo z|QiyuO1MEgX1i+8Ak(Y3zuwzcADo?$F8u!4zW?n}cueQ} zpeviRZv}_(U)meTgnHxE^zp&2MM+ODSbi_nHx7eM$g1gyRl3g=En>HjlL~G+J z1DWq?GWzGyi0=M8$Pep&m>-vAYUp|z`ml zvWy9`QFtZWE$2HNRQLn3UA+q~U+Ikt`3-496z@cIl-ApCbOTjD@y)oc1@Lr<5=D&cPJYn)<~H$h~cMEWK|9WhlSk ztNBwXTkrd!^xdFvO3X-_HN2`K@(L!nHaDVh91nF_ZA@Lp!tC*CjCTWPhK8V@pZ#B7 zdv0Vu7`;BduQq;G>h!{U_d58Hg@uRZ{L{GyeOCLQx4EBt-j<(FVT$l9>6IX_SD%7; zdHFx>MW3XOnLekbxFj{-&(i(uu&icId09q9eQT;>`SRk? zsZ@PKQ(bu`=1?}XdQNew)X0h?la-Z>0$enpOmalY9+j$Ssw!`(qFH@IQ~Bbm(mJ1~ zX0IdC#>pv)7F4QDP+i-w%*9&jQWOfIz|zvHCW>fi7$BHkI%(dt@w3a0DV>-a zf7HxrWpn3EEKSXvQ8s7JjOjs3U8=dN!e^g@H7Sb5R4s03I(1xHy$2l>QSZ2#`j&x% zizx7L&_Ub`967Xz{-d-i8X8Yc)io@wN|l$4t1ho?t{Pm_W@?oUt&3`_ihS?`lI4#m z-N8lt=fFdQ>SZ;RRZg>^7M5;BY1Lwra5*$@L0pQG4(Mb`gZgY+Et17-%`lAIB3&}C zHM^Q7jh{DXPCywWf@hbQ%v)i zigJ>yX*tz3voZ?B`7S>$okL$QR9hsRdlRg5y|}uup*cmZo(xNKy7&6qXWFb(%Lr#r z$dnYPg6ig~s+0Mmk=~$iHwaaw^pcU)O%3%e@@YF+oN9EFMt|-6^4eBvE6qz9npzgM zl3kkHSR82QknmR9bxQrK92>i5ks9^XcLLuH#5%dMhO$3AE9_ZTQCd8#vPv3WRq4zM zwlHbSDGD6Z*g&=KjO)^%p^>|4kqeDwr6#rOYc)~_#ly**vGGimw=QqjfL4kDC41}} z)QIYu`pQzyUk94Z2xnTkHs>^tNX@Qlbmnz&Q~4sYW;6s;l)8b2P*YX4Ga!6d)PtJs zWfjf!6?Kgw1om5pwXyC7RV`HInK(1$Ks$!JIHIMIq+7~oxW=r}g_SdBB;`1qhzu^H zX)LR1S}MausPe6(rdCEWp(eiC*>@^x1*>D!5kBT#JbY4B%Y=p{RZUg(6;<;^r)f<| z9x|OPMd4%Z{%xA!HVh=2b~5Qrez+-bTAU(Rpxl?fnOfEyHu}yKHB%#=Lx43?TpS9h zQzdgNnmM(i&Rc_2b#3|LW*ReK{2telUKh~lySQaZx)HV3lXXhfmN&cgmc^;&ayKGL zuG?$D)tO2Wg_e4wM>$QX&DavKE>o$7>S|{`Ww`W14lRIC{6E#$KvhviepV_wGEd!? z2Is0Kmd&;+BU0SR#io_9SCwU4oW^HXl7S(&W=U1W$tl$rIb5MN2F_4<+g6cs0wXmM zKTPu{?p=^EY}wsJ9juX*6W`xb<>bqdb(u-V27NARN7m|1+jbF6pQ(Om{6uj}Gr8E>Pk zJu_;J+ojVM6_=KdCJW+6j5(ui8>@w?D_@>+69->U4!0kDK)zGyM$2D}C&$zW`*Wg1%0RO47baZ)TC5^YurL(=K z66sIs4VbezTA*wyuWt?}&}6Q@wK3xv>NF_3`%79i%V{FmT-72=!Og9WjpSaY$iJ+1 zR@*tmIP}xwIDzB&@HKu2dsh0A^)PAxpw9Db>qj>Fh zEV&`2O-&6n;=2hj&-&5>w@fr5GYqJ|>QMc;*{fGtcB9KmiKZHqC6Z&eCpv8?DQ|JJ zbn-8~{cyc*d36(e)y?H|N_l=1Ql{yX8N)wSx|?>B0zwzZ)Wk5V395qhtY^+}Z^Wo> z+5d5s?Xpx^JJXJasC7$~%}6b4q7LYW$M)|{otf;fdG9&R30+%lkiqOK?~SIvCPv#eyGP3QShxlGwF8{>FHax)v+3hG3Tt~(S!Z;>{i@4 zQ!hRv_HVD{mYjxMBiA(I4hxUCqo}dYNmbP~ww&sET9BGt-h2ejid1So5;wGcN>{fODHhadu8_F6*Yq&<}_t1BIol1OH0x?lO&vAQbU$I?bV?GE^TbKD?Dhz)VAMCMzr z9>=i{tO2uuuAPtrAu9;vp^M8E>R8Yt!tUkN%5>=MK;Pm*ms$OBs?j0SQ82%DAr9_m zGatwVd@}>Fbjwh9Hfgn0l#WcLXzo>-*2y8#3t>8|?)PxA4che^n%H}5M}Z+5FR7F^ zHkQ@|i&`2e%7}VCTnZRu6Yxl?NvoO+ZdhAN7@I7R+o;^o0ihhL!&s|x28Ve(Zbz2Q+aI|pW1XQ z=FEDvQd=N9Poo}{q{=PsMMe!)Le5h>H$+m>6ySEVyP&w3dJqk6Zhf&OXsvgxrK++> zn@Jm!UMhV^Q8FD1;-_&gzu{S1dcaA$ShnTm4&;7Pz0*v@g|;ZGG-^}ikn1cVtm?}Yi>!pWyV-GSngypC zn`#$?t%10^& z7lpjd++(5B-7KEkweJgVjg`h@?cixcqsH1Swpq1?!zL4Cw}8M-OH zn=>eW8xZ%ebPlA7(nH?7dUq{_9-HZT8g3>~N7>VV|0q*UeX6dCo_bnZl@31BSX)mH zqpKPBXjFDeI+J#Om3QhgL4;Dj=HOqCDJO8RQsW!^3c&#vR(Dom#Ix8D=8G8`dv&J4x+ zgN7DbPj@*@`$=ivC>(2&T(uKxl7%*Jb|QTwZH!j3m}}j>`t2=1(`QUCrA+#fmTD{I z{C4%(*?6RVD4oxS%%=DB$|6?5QkQ9vT@T<;OvrA6`KPE+dI_e((RGQO<`(>g$Uu1M zsl9oO-*m<6hBAqAl^^m2rKU5xko>BH4|g}0SBnQYO6EaM^Avlaw$wzAz%6PHjx3v2 z8m!dKmb?ZSo;Yz;X*kK>I;3E$daTKCt*;%wi;6p0#L=v6QAd+X*MU2@kElUB^IkNw<0#Ip*~(%hG!lLUpf=*u@>vQFUqb zS&j5#vj$eShNXg~I=>)at%bL*x+zmhrobAf@HN^z(l30t2^3wa zEsLjF5u>Al>>!zOXseLUK=2M2ZduKvc(WGS;|cTT%$;#mC@M8=-h_pznX^mh2fX{m zS?rdER*G#V+3{n#fU@4$R==Upxb7Q~ZCmMGo3hI7Z7gfin3D3R5*qL=q-|5$?qE-O z4mFKs>Qz_!*sHV-SbHokt~$kSs`I`-wfq_vl5xF@cc}Uh0o5h#gGt9&`C}dUoyqi# zVWfZZpB*h~Pkx7pzca6gh11i`HXO61-qF_7H4}Kv8iUFL^)1xWhQmf??=&X160Xil zc{UfYBf-r?(|*H`(N#*Pcb*C7x`stnm|h^+Nc9A(rKkaY3akkTyTWJxpr6M?L#>BEC%iMz)N6sysojS5?_MEvC zy2^fHqwO2H=&;(w@I0pDI~|;Rw?rnHS=O_?k;JG;+`C6R37lOGQuXf86Vib$72vE^ z+@H**W$IL+Avf z{HZ_hS2}3lYekKF8p-eD4PJ~N0l1Ah%v}Efay9hOLXgKZscY}%U+wi-G52ZM7qkF~->P4rje#Z`7B`aeMO}x*Enxo%=%vUw5=N?w5 zq>!5rNztat!1XD&eSrofU&74(em5QVYk~4fF{}k;?e-Zh8!##NnbkJGA1rlL+4S+V zOUH*w#g1SGq?a4#gbEjGnrd8B`7WoSzL(Uv$o_vGn-VxIZqSkFkN9Dc;V3gfbGzr- z_5}E1S|`i|{3;XVB1gB$_p_Xa0mJlI8_Hbkz#i(oBzMP5h`7%0%HZ8TG#93|i}VbU z1k<*>nA)9&3#iT5p|g3@%Z{8e`zUFDZnEg2$RysZOAIlaQpWkm#dxoN?h3I2X*e+A zrgm+jxjdQRo<720FEtWzgw)*$4Mbx*RhNcm&(-qi zZ>U|fn{Qe9^acr?bB7v;PKo_4)2uCAE&%OA3~oU{Cu9`JsiW0@UsoEa&?I64<@O>9 ztsa_Tbr^soZ84>6=KKL;VsUBrn0xG%4O3&PqL~&8t17C<5c_Ca`oT5Ls|;va;esr! zTQ$sXle(6+Lke>C z+`GxLPl6+qF6FejGXjuaS=3nFQ|Qj5(Fzu?#xtV9B*{FxS!IoT%)>oS4l>m!{;NROeBGDF=yyX7s_{SR$nQCrf^D~Kt8iiqF>1mG4=q*uZ$~$dS@lS)~ z7C7+gF@q%jlQz^zp-2*0Moz&gZZA~Y<(EiN+ARC&T*M}K{Ju_?x&j0KUS`{z?4R;? zIW!>8g%+IMb8F-b_ys%P1wv{zd%7`_va_Gbfbld!c`ZZ25N4P;Z^xQ?(*z4=EuE8C%L2C34SZ3PM zc8_%q8MqOTa(nIFiYkI1h46$1|l8YePl6Dl`u0B_a6h#9w zOE$U<-|eNBe8ulHC5OnZa!LD(TX?Mtc-@?Yqtn?``%j*mX3V)`u9I;4bMLsg>SK!) z*3yy}S>uKVe!jA)%DbR$9zl<~xqW;=Xl1}9)Q$}?f}!47X#YxUE2du&r%PoWVr+T` z677>Elj8Pzi;B~mKlllpq{C_(T`1D_Sg}sEnN3~oXd|XfK9m`a%nhmhQZ%NgSnQzB}8wfbyNI#n^`nkv;nI8+3a-|)^CUN)u*Gxwvxg*91@ zLyc>S>5w8upy_Ehx38XxChjJ=0CnX}C(~+$V{|Z3ddPG04LYLBZujgBmDYK0H0l+G z*F16wakbkQeK!oX7f?kdY#w#C$~Sy@c$Q|&)+5kK$8ntzNBoj5UPy6^8?@A?6Up>U zRHm8PRU(ZnWQu$QJKWOD@>xbk&MSzEWVvEu4H&K_9l%CGKl8!iP}NzPvhq|%6VlKK zLKfXy4l*EemXfH4Ei`%G>8D9##*prgVzjdYBcX>T+;)-d#g^1D^~<;grPGj6G2v4- zyg$O#SMCLu#-_pj1Je(~hu0+4oePF8X{f6jx~QtWu6gK$1rz7d){CL^)dKF3%S8># z-Je+xCb}#|yR8qQ`azpdAE2>26F_(8&&~C5DOv+qTElyn+bNc{i$h1U$mB5e;8?PC zQnFa!?-1c2jLb8+r{olYwr1)Wf~J6L#6u2^L>zW@_l}9V$R5g!2DDY_Nic9g+ob99 ziY5#iROG%6Vq{Utu;P)!MwJXN+J81Z;WN3sh53QQ#~x60U|maVebph0t7!eXrh?v< zH&rY-gueITz)>TL4qWX2pHWhD;Edr#2UgcN9Ox#d6)gwS_W{s@?i7zYuzFcjdE-+0 zJ+o{Aoy-p*D%PhuL1KCQqp|Qv7@44S|CdStM=|Yd(CmPQ__T%Nqn)UNB6jgTWRG9 zL}P8M3lY268ShP+)<+bj+GB`xu zjsdW$!##D$Q#F6G1{rtS6wyM*ETkue^p0$?dq#?a-2NLZ-1}ipF&(K>jWpV+qeq4BlS`}A#3^>|P+{TUg>v*zI1?hibW z)R8pSn&cjCqU<~%8cleb=MRJl&(_noCP@uux#f_Iv? za(itW%Uddzv|Uf?L|B6=>n^(7@8U3Z)CTB;+RPz6X%9iChVo!|do7j^2J;h0S5fI? z#JKXRX2juax9TI)lys}(Qt8M9mEl6(ZhokHUcwK%@v4{$wYsPs%_QW^K;OX9`PTSk z`cb0}=)uiThL@1d^7)|nYWAk4tS`su&|W1z+|(JtER)j4!@V`>XGAG)sjSdo_N>lw zYYi)?&+fY~(nC$PqN2!yQ-nn7Ki{y|8XUN(aX)HfcE7jXU%)hlj>J~U% zcwwJn z)o%s~coc~2^vD`c{5YObWgAA3PduQ*$L$`Qv09m#P;R^3$eHCukFw^YbX6a#K?j^R zp6#Pi&3I~uhw&8coTbOB60}~U8|c&`*JX|Ny^f6j?FXKX%+SQz$3#Py8o?QAAL*_3 z+&07_q|X_0ZgKk9`sgxaXoe86sJ<6z&@$sdx@QX9T|zm7UO|TucvruH4)0?77m~Gx zR4XVfJJ5aD+M5J)9NKmTsk52>di+4;hfy*~@aU{_M9Hv+4tNN!p!ii0*11lkr3t5J zTHeQ|eLc%6{1bpMv^hIYW3E3QPxmd-AnbIHV@`S(R@%w;2kV4%YqSsw-=!Q_x zoNy5>a;kw*4{leKKIA12Qc>~T+>K(tZA131_g(AoT%foJ=7HRf& z!`$f{Fx2YB9_dcdP@;x<{qdHeg-zeoX*8zx5?$XOEnkqq+s7lGw~MD_+YZuiXAh1H z{6-g_A3h{ccjUN7hC^rE&}=jvOv~(eolW7BhPv_o7}l_l)JA)*3AH!c1jgqhrd`TG zK{b0^(8$QP@k326rx}&E;WqGG%DWBDcGlN4^J20zRo7RX`AoM}KaGgSBK4Up+HUX9 z@N!SHQ-iK;t*eh;0AqFP(M+LdM``TzW;gqE{OrAQK5pBgK9k)zGOLN9p5xk`5%qIn zJ?bQx!IU?$%aMcGI=B2mx9=x?x|M6=b(u%W(*dx^evabe&?+G{dLLZLREi4#_z;e} zf3yQ;%$6+DvcBCxkKu8VR8Hx*#wlrKMj19U5+0>cQ@uM@p_)dqdUrg{;<^^vSe0G& zHrgAX@8sK?+wnwu*;?g1U%HK(%V%v+))<&Ok|NQua7pSmyxGk=f03!Lr_>yr^T46V z?DE-epfRJ-^_5Il%;i$4FgDIK$28{1?d_?^noLMJrNyU%Q0ZqY^$*$>wwS+ghMvNe zFPi}c7&e?-6>QwpASKQ?p@bTkPnF6M9)Q%{(m(+AEt(Ka7bRe6{LKGj}G9boSxK)bseoi8?tlp38}T*OJ#oXiS5-Sok!mrS`(}Hnp zt+#g}y;yeHm_4bN5S|WLml`HrCtjJI?ruq$tZs*LAr43Sp<=)F(9gnT7`G#a(gi~& zw0qsL?T6`5u(+Y2lCS&AeNH zZZ6R{c`}3SQu-;zz`ISdT`(M)rcv1)6ap;)`YFXs(t$qm;Fq?z6HwF61`V&xGVgPK zu$uw;FU1U5XLlHIy<7RnIk*=!a1ke5jUKz z1GFYsnSRom4$H3rmsM_+F)oX0Dr=}kyNwc|Zz^?9MP*m7<}ughSRRPUBc<;Ib>|TJ z1MI1ug3xQygb4=~?N6JN4rqU85?!{NT$*><%xSZOyyaW<{f;BM?z(y3!i(~PU@*NI zATs0VcQ5z%_{qm4(|$V<7~ijO{ANKglRlp7Wau@rP~?y3x7CID zNA%n2f`Zb1Md$Y_?YIBedynro?3_Lm`i=Qg-%0(}h>J{}KI)NS3ZS zqF><@O46r!lTR@SUfZO-G{?I%%lfU&FZgSLndW3o^J7W#{4Lr`Q}bC+@Xg+4nq`{i zOwyTq9a9iav(za2M3>Ja`>n|<7?)?Jd8A8oJD*w*zjGAGv6`?Wm`N8>4ApYfKdj;=)YDp9X_QeI<3nG^k1id57fr6k<4DTDmT`gw6 zTygS)4A*k)N<1%g-z8FRcXdIqsrwaq6$G0{m;(htzZkw{4EHq?`K%z=Ho_bz2)2*m zJH~L=lB2JJz?C}sDoFQ;%xC-iKcjj+P&n3DiEz}!XyJSL-Wm|5FTqPtreA z(sh1^dzI3VVCC~1;x3 z5c#43+4^}aM!qi@ewY8lL4J4QR(VH={D~kxBS!vYkv~)9_vUN`XU50}sW#Tir;VX7 z(lVOt;ORnE%A1hfv^T z2nAA?FHh0wx6N*jMBlBDT1s2UrR+0~JaSIy+|=ChM@%bqd)MSaAKex^q1XjwaMyIUrAish-I^xc7LIE`@n z`!B++4Y-IG!(j=bD~ylyqR8_#;mfQK^}_7+c7Hf_Mgi8**=aSvhoB7mQ@Jbbfma0r z)+`z)Kk5~cwXIC0hR&o5>0+X@AUflr;lt0RKmL?o>UlXnmi{RpCidO&gF<{vh#wr{ zgUG*dFDHK({nK=AiQ)apk8m%PcYcS(9}V%tNkG$oHpIjEd_9JL5W_bmf5E-5ygSD5 z0WrKdhBt(`)1l`7ni&3M4F4#Gk8>HPm-`h?e;kd^?uEQertrugkg28PVSPRo!(WNv ze~;lG$M8+WFU9+A9pd5kwnK=Ir@X2@_ln_zVz~O*?!Mu4#>dD{jp5}X9@g6_As$YD zocQ1FzTy6IR}3E^p%0Y5GlrMAU>m(q{+bxRKEx-`b*j%#Lp)rrtvC0{NBT?u7(OzF zPm1AlV|aNCuaDuU$M7GAc(}j36vMZa`H$0QSpMJ`eqjuMFowSq$0cxs_x+C;bmY}C zv2Z+GU&~|oc`^L582;TDepd{CB!)i`;^BV%bcl!h%b#NSYcc%Y7@jBdS*M?H`n!a9 zSZ@PDJS;ydhEIs$^FlnFetC$8(=V2gqswR5KKwq0A1i@%lz%CPS4ij*6;YM5W{=#TO~^3xCx>-pC){G}NFZVWHjGjrc?`rF6w{bKlt7(O9}&y3;6$MBP4cvFan z?d`G<59{-+82+^werXK9BZl7{!yk&_Kab(h#PFA6_`5OuilR*Y9!7tvy(-wt=KF;B zq>%iG5D&ML2{C+T3_mx-!~Nx!82(8N-=u#g|KmgX+%?3*`5YL-N5}BPLOk5ACWd(U zzO!QZk`ONot{IL+95#n!#_^c2w96)dAo&|U5`KdGR(Wy1gQ^gB zL#y8R7yN2YS2yrJrQQkij;%>;*^#2&*PJXVu ze>ucmTT=NqL)^(9C-46r;%*34`G1GFldqNcZe7m3T)jJ!tn$6`9L>~A3%?CE3-Kai zD!)yLyY$Z%dAE+|UM~H;=%30Lg}9UdI{kC6{X%?idav?BLfpw;>4fPuGQ^!}QF&cI zb@z4h-=%-AI>*XCL~f@(V!zJ||4CREY0O?^V7!#9jK@ zKI%f;*#wnu32`U?Ed6t@(?fiJdav@UL)^)~>V)a_)et{`-mARZgXLbTpLh6ea9M~C zB&PCLhqz1sW0Aih#0Q1sZw+xLukGp15FZ?pzbC|w)hk@81vcA)$2s8{#gV!ScShQ!u^Uuc7o$^|^V7JNXeJzio)S zu|nl{32`SsQRMdu@#2vD{vqzBr)Y{kg` zbZynWH2r$l*y%Nrf2H|9<}nx#{9A<#oDbt(n$Dk=@O$S=xR>(hB^@0fm2WzMu)A3Hze?SI??}Gf#<-T_SuX3G?UOIkhIzN$eJhdrR87Rjln;FS4jK$6!BaZ@{~`FTkk!^c4Wl*2ipXMvx8DD!o|7YTm{_(bV19{~Ta@V;VC zG(WV5+rRn&pFfcKuE5`z#k>gk*3O91OYNAZ{|)CH(d%%K|I|$i=`|JjqiztO*U`X_ zm;6)!UtP}ftAVeb!~6o^znsqea^Sz7$oxj&mmbdiG-cmE3b$Ickj>v`ZQF~)s*^XHoXV1pc<%cMEZbRR6p0!}2==UvdibeSkkM_P-c-y^K?nV)!E9bERLe0={Yi-}h_4 zPuQOM)xcM5!Tc8BD*qU8E$_3ySG90DuLHkE?BqXz|8@+^e+pdnwwd$~)wAktN8s0s z{`&)8U&rYW1-?Y|b1?8Xr2R|+{x`92bAX?E9H*ZGe(XuiPX_+Byk8D{@?4fb5BOO! zPF)K8U!u=7z`rK`-Yvj~h#j~C_)n|(zV`w@TIz8v@Ec{^c^>!>x$g_W_muJFJ>dUb z%=i5e_-x6~7Mt+rTJL+x_`5CeK}%R}U*N-CFoRx$fln7c5%{^1&ndviNc$-VzOR&b zG4QX5z4!|7gQb052>gd-oX=Z4}S&xW9ipV13yjV-vWN4%SfIlwd$PK_N#h%{^d~zPA^B`~? zFMbYuXX)=x0{{C-oX+bpJWu=!)w9a)7Q@HK@RMWsMKS#L82&rpn@an97x+TA2tcn7 zfd5(azrDd;nbKKLx(;aMtsVGCrt2Uo2w22k?ri%trxN`9py3cp}Ts z1HPS%3&#P!s+Q$jfa|>Pbl~?6W%)~h|6cTP1@M0y%(dttc}zrYtte4w`*r0J!48zTPR z-oRD<0N~q5xsC*`@<#!`O~%cWfL}0~^KlCBv!q@w0Iu?v0-q`J_W@V=hk<`A_)*e6j{~mqy02B!+2csg&v`NO7X!ae+Ry#KHT_3`pCsei z+rU-+AHWBeaDMiX`IF{T<@W)8l*9+70ay7sz<*rF>8}E=^5+20+neQo2wdgw0sg^A zmVXVn%D)5roGC27lgxLqyn6y)D)Zl|z+WEE>C6T`MeNZE;D^gNayD=}*4V%P5BP5K z{%+uZDPs9&fd6O)^FIK8?r7%!2Ci}PPk=wa6Uz^f->RQKNWBaKe#naAn= zVNGYDj9(QXe@Ho}a}w~sl`>xq{7WO4e--$&q0FxZuImmr0WTlJ@=pR+`R9P2CHCh7 z;41$q@WsP8{k>$|P(7&p{=g5Gc+?c&hf6!21-zo3({Bc@@}~hm>lo1waFxFa_$P<6 z{I7tk{L{coMF0N;{?}Gc=R@Epp3HnVnO~}YRK7p(9p|(B6yPd93wXmGEZ+=V{D&HUYhodMMb({Pn>9HIUPP6u8Pi0X%gq%l{4d&>_tK1$<2-^Bu*H zR{f~_9>AYIj^#^%tNb+J%ccL;16TQ0;IB!X?K0r6%loT=-y!{aE%0;2kNO4hXC*%K zDsYv58~EkopKK%Jw(3XacLsi*j7L*|tNbkBzmoFS16TQ0;7^ya{;veC^49~uNc!)y zz<(k2{sQp#XK?zj1ONSO=IepqEaUaRfL}hG;V8{nGG^T0Ko z^}tV;ar{%@noi-KTn^07Uce`fWx2t?HJy>bH9s?e*GfNH1iVVxLp|^x9m@AT4fu_l zFh2*luG@YCxUSn?4P4i4zYkp3ZT0yS)sL>*{tV=G-S#)Yb)EW;z;)gEb>M>}F8Of` z-@S;-t@%;;$uYbV_%}rVX9Cwa@HxPTRR;cbJ@Aq8{`)X zMCLWu0$2H)fX^1cVl8lu8~+0Mhg{s?CEywdejWI`;>Z3MxW;vR%lt$2{GjBgKX8rf z4g`MTA)KKjfNR{f4EQDGEME>>$$+^%e?Hnz*YVh;6Iab?J?kg zY2o`m3H$}|EB*$2l8jSZOMF-LnUZm22=KoTRdK%eJQ z`CjArzFSKFQ{E(Tnf|~vj&}g?yEvI(DsYvb4Sa~K+qDAMINRyK&lNxW+rU-+YT$cF z|6L1Q;|9L~UMTaNb-;Dq65neD{z@&Ua|!U@4Pkx-@I7T7bRY21Te1AZ!1oio`5JKbd;bpn z-6@<-{=WQM^``z$Kj7;B>;hcYQh2weT2#lRalJHaa8>i?Vr{FoxX;A-IN|J(rl9U1Q) z2Cn|kuYlh)ozs5>xcWbD0pCK#sk{UDI&HV=|MUeu;0Ts00Y8f0Y5^S-{_r{!#;6T2XDx8`e|`@9b@BIJ1+M5K)g{#Yq+^~YubSAXny;OdXn z09Svk6}b9iy6;}|um0HiAg}(|<-pY+y8*cRV|M^of9!tX>W@7W!{3YHdy0Rp`PXy~ z2Cn|t(ZJOoJ0AEp^8Pg7>W`fT{H3{Ezt;d)|LR8IH_3eb0pKeCDDeNJIQ>_FA1?i< zK-#J5Vcy{^zbkO{ul5Gs_Y{^t2)N3R2mW+E%P$13{?&=VPZz&=IdGL<1$;>Zr+*o6 z^~bITen%gczZoc=Yy)gQYN_!{vi9|gWb{O~t{ zuar1^@8WE|seiRO@Cmb6ZUAtV9|U}F@z3a>Z~xMIQU7WR@V6UTZV_;muK|AK<}7~} zaP_ag0{n`tS$++0mH!^_Qt_7_1g`$r&w-b3$LYTWT>Y`vfq%a@%YO)5{i~paKUcjy zA?FQ&z*T-a zaP`M_8_D<4bRLrSITX11Ee8Wve{2$P^~dG_SAQ%8T>Y_=f$Q_IXT|Uw!Nd_Pw|G7pfoS17i50G5mPo4=m>UE(5+$ z<~u8ZpR@zZ>vQdzpP>?Oxd!C_(Zcfg0l&#zNUxs(|H)wHeWibE`f3Mu0RGzvEWa!8 z>PgJ^0bafn^D)5HZcGHO?QJG-wHwC)SG%zUxY~^t;A%I{i{Uo_SG%zm_-6CDT)zaa zcH>##YByd5K3e8A>w#Mt9@7te7WpTcpkXQzX1F>nIF9eT8Z8TI);g#=bGUG=`^Q_)6evPreOY?a9@^7fb)W7r5G!wZONp;BvhHTcp1chFvOT$6{|~s@lYaqMd(vC{Xw~xsS$EhPxc2w{z}21%1+MnwVBl&` zCIQ#r3s)uD~A}$a*LNuJ&Y746lyiXU6brfU7;Z2e{gk2Z8@a<}ZH& zuJ+_*;7^I4pz&@Y7689d*6of5KDvO@Sq%Kk4a}Q?@4F@Q zmB6RSI?h*tYdicVaJ47b0Ke))PXA`$k4yTRp6WsKvliqvKaT^~>z@Oz`FR=mRg#~# zfv-KD^Z7n-y>GtE`!%0>-z|XaeRl$`_uU)#b7Jp?0N4AD1+Mp<2wd+w1GwIIA@FDF zxx7`t^}db3^}eSA*ZZCWT zF5n-FJzNW1^Yb`x&Ck=o=NuRK*Q>xaKYs=Pcm&9n1OoCUDKqRlqerHvyj|>sEIG z*Ze#PT=VlN@S+i%pWg%5{JacY^YaeyN@<7h1J`)Ff7utfu4@bhuI*tm@V9C>-37okopRus&R2jRaX6>* zZQ!bh?*ac$UzYzdaFzc#@LR<%eGa(lE&oVPPxW)Hyx#`6roR{PkE;3lV&Izo@xb4d z@$o|7x5>KQ)xcGs-vh4tTnqeC8DE|PuIc;%xTX_G|5iOrlJRIO;Hrl`fj3TPJq$&D z0`p^muNQlDGH^}*G~lO;KX4v!)$`rJw`t(}z6t!T9htumT=k=09HV+r{p>7yRepLA zr*i;sO{WC7rn3-uo%r)hfNMHu03Xwj@B4M&s<-a|-*XR^zXiDJ?Rnte75%&cT+{zI z@LyDL`hCjyx9UgJF9H7aE-Y6G{EU;CHv>=W0l4b(QsBF~4AAQa;F``4fNMIx1Ad~+ zr(OlF>3jmb=@hkBc7m1U~m9zW!j~-xpp1yjj*imH_|HFiz)7 zz?)^A?q=YR%lPsL@V8{0YaQ^L_vZ9J2L5UR^KGW`?@j5~*7Wb81^j*w;Cslr+C<>z zSF?N#@XN$*oCkdAp)CI+;Jw5@cnbK+U0MEh;6D@pyYDpqT=T!V%pdy$Un=9vp}>!j zeq9N?Q25!vKRkl(cQf$qrJel}_|_u-D)76vzK@JQTCTYZnQsGp zAJOL?z+aViFcA3j;x~)}-XiVr2;lQKM|y@&M+&XYg;;+eC>A6#>6g*3%CGeviaCCj-Ay3;a2;OGg4 zjB|khPTKQT!0(lQdl&GXWgdEO4F4_gg87`EKg95Nfv=K&{eBGJa#nUbIa%ToJH+rI zz(11t$jBHz8+c=HzTax#-#mu-1;BM3^9tY^XTA}*u4DcXxW=C!0IutpzXF~w@7Klf zkAS}<_GAZ%2WWdcZ6ud#H{j#;XFe9V${z-Nl-RN3fS)Jrc@glN4(IgG2CnCTp9lOj zsh698>;C5-0KZVm^>g6wNPB()_{Y*8HEyT+`AGbP^&sC@?88oTxEw04-#0%1_eAEcYg?6^K(CN&Cg@NH9yY)*ZjN)T=VlL@a@DOdk?tg=TqRCpH1ho zzO|ibezpg$`6&Xf`56ejpV*~Qz%@U*e_8LV`I!dtnxCVAYkn31*ZkB1-%b3Y<-pZW zo(){>MPF@LI?c`0s)lS|8T$N{{l|KOZ zn~PZfNZ@KGrvblXH2)MSxQsAopsmK>|{wsj1{%e3= zFLre`aMjOOfWI$(@|D1~zODoQ4VhQ|2>2u0az1|w{KE$3zX9G~#(LZCyRh27yPaXsQYv3P9{$B&G z{o)LfzdaAQ z_KS;wZz^{9PT<-v?gjpk`1#KR*M9LL@TFo;J_4@&BL7$}pXyo9Inr}|lxx4(7vz`7 z{BZ(s?H5yk&)Avow+OiQi<5zCzi0*CApQC*;5zP~4_w>%<-pb7xBY!R03UH8=YKQti?!YAa|=5H*Y>bCaBU9< z0@wC12Dr9|3Ba`->i1@AepLT+L4L@goc~(js{bb7r^)-T0ayK84EzeQV>bZT`nm=9 zL>bo}0IvS$BfuZnlJoyOaP>c506tml-n+o{`JGRItN*!;jPt5b^*?t5ezuG&2LRV` zb2M=EKPLiL|8o{_9cNDfuI=Px;M(5wc^A#Uj-i74{gS?KL!-4Di$5h}dKO6WVvd+=~ zT*uj^z~2);|J%TIoV^D4P>JK;2VBS5hk;)u>mBQW>p1%c@JsVpKfO-m->NqqXEy^r zROWsA1J`kODDWw=UNZ^!Rq}o&a2;ol0lr?=%N7IIe$)zF`_XFP+FvdNuKndo;M!kq z2Cn^LZ4Cc2aP2RD0e-8*XFdY1{Uu-g3$2%XrGM=LT-*O%z^6_L{A(<5l|LN#GHK7p z1K0Ln3H;g`PX7$xD*q+m)gr$Jxb~Ot0Z)luehFOr%TvI=DdX{9fop$x5BOZs|JL$b z^{oA6C*V~jT;7quwZDu5zDDB73xR8YIT84FlKHz{fIlzm7ncE7f8cuH z+RpzExcVVK1+M+&7r@mIc?P)prEkUXUNX+B{?#wt6S(@B`vAYEAJ@wfz*T-S@SVi} zuL7=q(aFHy>d)z)4_y7COMss)^P@X}tDo~@;9uU2(|;1U`lY`EK6(Pn{}Z_SUH<_- zVi?QsRms0q&zBeT`vZY%dl&;;+rtFl+8(9@*Y>awxVFPe;Hv+VfG<9Y^SK(h>i;Xi zf4d3GUkhCI^F84AiCy?9aILS0fDb;9(|;DY`lWva{`);x{;$B*Fa0O*PsDEYmHCR+ zmp%u&EpYWq_Xn=L z?7x67>&x=n$a;wCQ^(nzfv?}3m&{}54euACji%R_AKBhi+_GGa82h5 z;F``4fNMPHUf`O}!@xD2-vfVA)`R~A{4ZiZKLq~u%~)@{E#cp)=L>83{a(P|8OnSD z@Or7gDZtn4&hoQ>KX*9u1;GE=%=~!Z7sz}1&u;@>vIAdm z5Ac-e=TYE~?8ov?1K&!<@fU#qPWGj}1^mXroX)?1pDFe^PyA)AmtAC>*aCRnzMRg^ zz`rN!3;O{7O##an13yg^cL?wkXR&-4@OK)R&jUVa9P@JECrG=h1Fp|?oC>_4h12;m z@SjTlF9yCu;x$(Re@ygyGw^4pa{504{;{mb{0#W4Em>Z_$6M>=c!^{D735ElbUpxn z(I%Wuf%HpF=gUVh?+1LfwA%}T-y;3}3gB}^&$k1AUi#OsfbSyreHHi)Qr`anzhBz_ zPA7AIH>F=&)4xCD@%sV5ua)}_1OD5cSbiMvDGQlT2CnHh0N3xAJvWA51^gDt&-K7Z zl=6Ll2mD&GZ+`;5jnvCFqHop1nyH-5PQY*6j`>31+wZ|V1$>dLhwArzY5Kd$JoJ2! zFCN6{+yML`8Q*UK{-TuYVc=^9ayq{Re&^`uNC__9{3&NcP#{-C-xx)e7N|5%Yc`O{0iX3QqD_(?;-u@ zJHWpw<+>I4A7$Kp1o;0+dw2@C%D)bL?BT4pJXu#!J!^aG3w-=&mLCgT98(RP!IgevYvVy@Y%gM|33jffpPE@@P<+R!E3fs6**Y*W|nb^Z|z~7p}_f`Kz)2S4Hcm>EW6}$Is;Ma?JE!^Cc2`bkEbwDxJe~pkacNh_06+04PNxz0Z8C1I2EIob%U=fk z7#YX!0KVToEU(|Up!qKnJ^T^m_pfC6Pk}!wc6d{%Pfh3P*(|>&@D;m>T5i3O@9h-m0t{8<Gf_4(7U z$M8#m58aXTu?G12h0N~;uIWDpT+?|5xTf16L2l>|EKFr;A}3#HhhqM z-}j8NONLaEYC(NiA}N##2?-IhvB|@6e1}*r6g-fMT;yU(Rbc?@4N4r z`}>~r`BeA=f3(@ zIQP{F;dkMAhFk+P_J_QJaQ6Qi;hb+{;hb+v;hgWC!a3h3g>$~cgmb>*gmb=c3Fo{% zarie5|5G^okn5@czi%nR*`KPySx=g9=5G|vd}rZ&|AZ%nvp>%YXMbK0{tO;RzApTU zd*VEo3V*e8&2^!a43a;T$*T;QxQUiVEkr z^@Q^{>f`X)4qqXh`|T^?uXawPU-k%R{)BMm&k1L~$dGhhg5MW#Kc@<3f9eb8x-=Ee z{zpT?buJRlIzJK4Iu8q{=P%*(WPUnh-{>hRocr)1;oOJS zg>&31gmc{Mg>&4t!Z~hd;T*TSaE|+^aE?1jILCcSILDnPoa4SLoa25hoa25Woa6p3 zoX1_Ip&8eOytQ!ds~!%YD4cap6V5u{63#l82v55>*0)zU_y14AS?77--2bJX$v9uu zSxGqStSy{%UMHN#XekGiq{le+_RX9CahGpy< z_iY~G+_y!AbKDf+9Jjh~j(fduj(d}Ej(eMMj(eAIj@w;0#~m!3Xl+&#kS|5-TwnTKawFV>k`IFI)t!s$;DPXBGfS!V~~^mi3be{bRRPY_Pe zGKX(>_#Y0>J|bg(=r16g-$z#w&U`K5%-ho&VJ4n&VGI% zocrw);XIFhE1Y$HFPwFr5zab`KAW-6th2mu)>%V1>ue*Op1Xz9^N?_Qh6(4s9V?v2 z%ge$!?hN4^cfN3ryGA(2-6)*n?hwv#_Y3E^M}%|S%p)`QpX25h&T-2M=eSjcbKJ{? zbKEwTw2$>%kEkK_yE zwiCiH1kdqY{15$jIWdtUygu>`!E+_A7fk-+IyM*1d9@bKb?hRX>o`_8Js&!JpK$t* z2&ey)a2`h&jE)oJym~i?*HeVEo*NzBTR7_(D4g|-6wZ2H63%+w1m}9C#WE9XCC@rH z86NftUM5RyH$1H4zb&I^x8WgwF5<)i!$W>I@<$90`C*~3Ru5oMYnGg>?z}Dp}(762eb_mo+?i`ri@r)eX-dQToR^hKGFRrt!vW4bPiI z{CgG+4G;O$o-yCT@R0A4HS${x5BUYicQ8EU7bD*loa>7=CwiKEsK0aaU$~4hJa_W? zWw<`kaGReBuKrn0{v*S!f3@M(zrpc;>Ew?XZvB56ZvB57o;Nw)+}T1G5{WEh<7b^$ zZt$>wf@f=tB}y9}Jom#>K{)+2#Giuv^nq$UiN-L)0Wj8Gop=7wVjBc&PIkcxDR!8vJd?|AEO{{})bvo0H#bc-Rjs zas9CHWw?F{pV=S0ESUJ$8vG2h(JC$A(gJfGCd8Lt-+-XFX&xcY0FeEy_@{;LfS z{iNq6!)^XHaP{BmzU?w=9s+oyl=SmeCBvIo4obxGTeH8 z7QP1S@|)q-^Oxbla|Zc;!L`rX$0b9_3(pT+$HImOPpuG0Udjv488&J1Qps>zPj!da zF+BJ;!*eq@>ujHHPb9ia{@Fb7hCWVyl;jJCL6Vork{_H-6NyEVe<)wPVTF_bTJj$v ze@OCpdNA?3$%p5BWba-vQt{uc0O%qG@=%G|}+jX;C2gA$gf9d>Z&{$3NfXt$($X zU+?617#`}$QZT)o#9rZ#fFB0ueDSnK;+V;YdU|2LnI}Xa_sI|N;~4#KPA=P|tFocw6Rt$)1X)<4Ir(#jhk9C+OnyjSvb`8T z^E|Kvybw6&J2%D>rA$85vmf)VW_a*-EET`tGU4oJeetJU5c7>pKKRqXTN)nxo8WIJ zykhC-=_0&0_bI5R;|HJX0a`Ks9iWB61puZ?M`^G+$HF-O36~k?vS391DCT~404Y!`V9nS+M zZ#|D0ZavQkZ&)VIf285oGr{oS>4*FjaP7}bleeA)h6fMdhxudSBg@8mRvT_T>m0t- z@Zi50PgoxYXPs-JK5@+CgMTabbEcPLfcqgwIb0XM61*_D`b(R9@TcN&-4&8w7xjs2 zCC|T`aI@iIUaeB%7qk_gy?o@Ig^vX94$e9`?lY37e~fT?UKY=>IBa5?$)~Ru=KH4M zp?=o+zHs_Ka{Ql~eDLpw|0~0-e~);0-u}_#)7J&hkDW9;cuHLqCw5-=t>9TE#oO7> ze{sK1T6j&IS5t*&4_}zP)CK?VaR};ZWO%4&CdO?cyw1hxnnY*E-_7L1d^^McsNum+ z&rri{ezfC%!O2fE-1^^hJj+bpj=R=y>)Gje_M5!*{A#%M{OfqKzY_bZ>r&Wo>nSh1 zE!L%y;kKTdh6hi7)Bcn_#_Gi=XSVLHK-DnGu-5@XM*9@Gu!dZH+kz>YPj{R6F#D9T#t>0Th9)| zgXb^g_k!y>9x{3BIcB)6CowgS&+`E5$!fUu*_(8}2tH}p{T3G1hm=ydHRU@y~?6q3}}J4{e37!+Lcx{!q^<)boJhp&qW+ zBf>|ao~OkB5B$STKKPHqKf&EcRBv= zo&0ZxTYuuUSTEO|eaHdMb!Q(68*V+79M7dDZ|kpTxb?JfJgrUMdb${HJr4`7jCFa` zaO)Xpc<>BGemJ=HXROIv&t$`GJ#&S#p81Ab&tk)aXAA0C4$gWi<8_>a4*%77faMV!L;O+~SF!2o!~C}&xGv>{vp?0q z+5c|v)HeAruk_88{B*71VO~d3e-q)Y>m+YXUhbHl{wbmUyTN(BqW>YogP)#(hTD3E zgR6h6lYhl<>wnwvd|>i++?9q~&vwVN%jB)+km1&I#_?o&J&}IVzU4LCdP)m_0_&1u zxUHwE;lacA7p)DRDapbX;XbKn^48PXa9hvq!dXvy!>#9T!-MA#>c1a66Y3d-eLGJ0 z7vOJ+=l08!Uzogn;N&+-p6_?PL-L#9|5Nfsu897>g+B$JWk$R`Q}R<#dfGlAn(J+robZUnHI%;n^nn zf_0;Rm+TA)m3%YgM+@%*C37roaCzX80Vc=Ey1&f$-U=K*-0bn-7qegg8ZI{6inKaBi3$rnbQKTAIE z)p5SRNxn4lIcLY)**EeE;N0h_@YHbfH%Pu6@;5vAhb2D=`6ncwf;wN3{Bq=9lRSTZ zewo8}h-WW6d!77WPX1pfpYle=eVeU*yj~TYeXfCd-6Z*{$hVaI<;eFCz7WsT4i`^z zc%FCibDaD_$uEI_qvZR*zeD(R@V(;s7@of+zZUr{b29erICu_l_H8vhWgT8uJSDD) z-s_!wdnbRly z+;cPbpZOx-?Eh|zn=1KS*T%2EN_buH2I4sY&s~!5i2VJ+p96nTJcr;J;_#{BSqRT; zC;zdN|IEq%B>A22AC>$O)LC#|#y+1#z8Er}O4sRiz3$KgbHctK_C;zyUpCtLl z@V_qk)2MT`lfO~&AHaXBQO@v?=kFC( zH9X|EBY&ykApX^s z{Pm4OI+5sMc*yhj4f`1$6sh5hl9#6q5BbVX({W<7;USuOL*(NP4|)E+;S|F|ei-u8 z4G($#zTumOhx{(&7Z@J$2fHReBri)15BZvn({W-oIQPjo?348-ALctfd{Odp*znxR z>qBt;sNpt$23-A_=BMk@_o2;~G~D{j8E*4cz}27XR@;Y|v~{667Rv44It{-9WhI!_s%H_7{8+{8Q4$Mf)~;5orr5B&vA z-uf#!`AePr)rN=tPzKkV2rrK7x8pPGS&I2~F!@l={(Nyh-3$-&t#VW3y@huJe+FFr zqfOrWCmA06^vp5b<`+8tB~E^g;nx4P;;X zk2gH{KWZNRZ-KMUSFoQyll)^XVt$L0|4H(hZjSj=l3xXXp@s4Gu)d+54lU#L(%`Iz z`O73f8~KKkUju(Llh2=2r-l#7OLxP=xDU5V$BBmwxB17xSr7e#ocxQ1TmNLkt$(KD zf6K{#Vz~8xX1MilF+Ak=wTkoI39j?nZ}P!2IDAN6jv5|3SKpG36K8~v0nhwyyj}gd zz}PNB zZ_O9S?Pu~qU7$eZ&lsNWzb*1H!mHjM`Afq4f=>bGypCerMZ)Xh{`zy_-=Ys&jX%`c z3U%%_Jk+@YOz9>as5p3;WfdMbc(zO4TeCx4~k)_;@Zxz*(D zxE&3*o?edU36r;;XAHNVmmSYEleeC?47Z-8!ke^?eP3a?^{g{Icm^WB6c{&9HL_v6>`{^HiQ@p?IM*0~@1xt`?nw2S$MPX10O-$U{T z;eW*BL;cfnyo@(I^x;*E`;y@{Kh5#aaq=GB?r@Zj&cSLVB$6wpzL!I3@}ZuTg0cP)h6n$EJ0l+_oc(-7{9D5pB`>d=eDDv3|82uVv~-7% zP9B%S9|2z>d?olAaIWJ~jJrp8l|s>fRQOr+;k5CGI#;323l_z%<8hs%W4xYMcvJ8c zaMnYA6_dCAI);bR>1k-V%{O=aw>$YxhFgCh$J5{B?YP4Xx1LFkXS&H-&)bGu&q~L$ z&g8Ad&pPB!gX=mb7XR;lu%0}I2hYFoloI~UUGeM78E!ol z9A3ll;GfzldYXW<&P2}0Tbg|E7r_3%%kbc7(>dnvcRUZ9y!8w)+ z$%lHjVqP;15B}o!ME~2u*|$aFUzI23KQ{T`PbnPv=Y|LW!|-ntz5sle@Sni?t|f7N<}0BOg~0iEqZR7B(C|=a*?Z&HR~9}Syq@E4VDh04^xtfF@YB=L zaGSr+@jv9``x$QiqaDu+CU3``X1Mjd=XjQxy!Cu$xb=MNcn+An_55bI^_&%68Lw+3 zmd16{_04H`@JvU(5V-D>QYLTfsbsjVr;c#ebCu!N)4=fHDRN(|y9qe!NyEM!D7-27 zFyjgS!Pw6)7#{pr!vCu9?ci@X{&!41_>aQB!tmf9bAR$f^0H3&3*92$D!gR($iD^W zd^xWZlBfTi@UP&>zAXCa;rsIC2j_lB6p6V~hKKrD=f%QV=OvE6j>(7qbcVl?;nv?m zJSpMEt^Wqc)57HKxa|zLo*s_p5tFx`L55q;1jjSk#87;X@vb{atFf^{h5L zcxEBL0bKk1rO8{*KErK2zX@kO#|*cgvxWyxTF+R2;-mPP^(?_YzgYNk@ao_^Z*<0f zu4j1g-vfU`;iVsn<285ux0`&Ze=GbCOP=qC`MBg0#iD<`C%)8s>)y)f=l!^61ruNF@K2FL%U$*1=L{vQmt{$Is&6psT>n0)Z06p!<| z;N$q2=ZC$RZ(iZWddFNLaQ1=kt65F>KAb2301 zUac^%frf|vbVL2ah3D@REQ!P`j{kL&xBmHt2R}U@8E*4y9sedLzteE*KjL_fo4g(O zyy4bUa7FsG|NH$Z_Om27k8Ad`qT$w4*YTv8ysf9X;nveycx|l9UBcUf-($G-KWKRH ze~WxyaPC{qcc95z&q%{CXYq{jeYYizVLx^;DO9ffCVswc(+jX^%$UNce|+ zBX1#m?qiX+0cV{Y_b!u9?*qo|X?Pfy{>OyVKgjWqF!|u$5C6-CTmN+N^a?j7FLO;k zcv4HIsga3kl$q&g(y;bR-{`-B>EdAs47U1e{ZSvON#qi*#rxasgvnb^;*&)Bh3n3~r&Wo z>nUS+sAn$n6~QwlS?1(F?volOZ#`ETZs*lRIO}O{xb?I)Jb20sNPb9O?f}n}{C}wD zL+sn3!ao9k&Uk`<9QN~M!-M}P_-6`#_{rpr$;;c0{{xc`{-f}3k^Cp9=NrkVluFkp zelk4NQ*2=5M};2(KO=neQ!$@;b^M$u`6={=9^c+>^1+i$J5W`t!J3w)-%cROgDM!dE0R7 zStk5rtjkKnt><&YgNJ{=b{n|%`CF5>o*xaj^&A(@dQKZ|J()iJ-+dB1{hp53vw^do zE3j{C3cnisO5+Ls>DbSW4G;c2L!-Z?@F&6BIsVQjAN+|j(KA5uX{cwY%4AvvB&qas2yCKD`fRV?BQuZvCgl zGdLoq_q56ut}mLU8tB4g6OK&x-TvO~PAXy}E#hdV+%M@_=ym zr>}UPglC}1hyD!4yha)x`~`+5KO`>`g!cuX?fB=Ly!9_NJoxGP+;E%U=J>yL@&^sK z{!@+WH= z^*m~L@N7nYAh^zJn8{nuc*AWy(}c60S%zEBe8Yn$+lW~Id*G~RCid-j!cTzzC7yQh z{Ojb4uZ!dGIC={C6mX7v2LAezFY#>r`Wu8l4SutD&cpM7n{)YcuC;x@yQ%1&lZI^s*jQhLfXCZ$|_)+l0=h4T07J#P=IQw68RLoTr-VnT+ zc#6Vvox|@CPd9k(aqY$j=jA?YTIw_r!A%Jewuo68Ue04+P&W zp33n2>F_*X#PM?_KZWCK20TTWL?8P`ULHJG^5(qBf9)`CH7DOd@`I6Y=Hwrg{7&TiO1>lNd`a?Wk)I;@uE>Ar z@a^Kc@cB6Z@0|Q`$u~y+A17aSWAw3a!;!B9&OSeYI-5v-9`em4-v{|_4j(F>jqr?i z^0S=$d?&wI@+aW`M)Hs6iSs`#`QqauKPUM?$d}v{Z)bnn;d$md;Ou8Tc&>5st)2W` zlJ5+Ef5~@-f2i=W;G@OU6`r}0e;@gGg&zQ4ES?A8+2HU);>k8X_UjKPpM7(@oqc1z z066>H2jgBM`AguxT=*T}*NW$Hcl7UA9~7wbDuL`(aATKd>!~( zN`5-(>?QfO$oG}}T;#_Ke+&F=@$`phk(1x#^aPo5{U*Lr}pLZp{s$k^XC4U+6-$?#*dpIwIMP4dI2XP@CA&-eNH#qf~t^HTCd z^76akAM^L!R&RQ_S$-zu=XaFKu|p z^L>6Q8Xodnk*{ZX$Y0PldTtc{`9+bp6VCSqy3g?Z$>>5n@A|Oe!O!;v>SuVUhkr-p zDZ@iPwP*4}^75?VA^-f8betGtc*yg8fnGK|Ob$~i|vTxg#BavWem6eis0(6 z;pA^H-1?gtZvD3#9{M>5ed`FW<90Rq;8}>i^))m2aP|}*$Vj+hKD+T z#<=H%^Zm86eVq&?FRX|DeBfc9SpUUNzPgjIYk1fXC2_rx@FKW=3qG@+d6;i|lMnR_ z#(cXP9_IVn>&Xwv%R|EVf)8>0BTe4=Uo<@U>6vA?&ChrIi=6x_!>#{I$Mc=Z+i?#W zZarrlPo{6u+w|Z2iLsw~4Y!^Ya9x)wCU5JhW4QG+5MFsktfPtH*3-)H;Nkm>w+GjH zx|qE6^fWwpUc|Tqg!h~o>ltjg^$c_PSi^(A_N?fc3(h)6Vn45u{IAGwbn*u!|M=|a zKOy;r@aNwdZ|CEL1#{x{65y3i(ao+UFf6Z#@SL51u>=wvm4;jY z=Z=4?lRsp*^&c_Z`cD`h@{cZx^F0U7bz$GK?vA(f{67wTD{6S~Y=!4S;cXVjudfWQ z{+cEq>ZHGslW*?i+ZrC~S%z^t3m^4itmi@T@5DZN)Z{}wt1#bZ3=jT0mPF4O;q2#2 z;y+zF=3g`U;7`Hx8}keg{uxVS{ypJ;gD)4}cv;M^0%xB~l!<(o@MXAv`Azr{^x-5p z*S$09%(N%^cw9e^adQdZ0$vuJ_0V6@2 z!>zxJ;h~;eSH`ce2(I(0Ve-Lq6n(qK@ZgyOPh;WbS4DqIaP_w}dFy}B$v^7k2N@pf z>4kBh6<+0&SkDXMKZSiV)#O7xDHq55+lB}Kes~rMXFpen|A`XO^O?y9e=qpA86NzT zR>%A<;XA>95ME$S%>N9|K2O28iT&|*@?quT^}@nS7mmC%IPYJkqt42PhdLW$+*IM0 z;^)g7f^%H@o0)v*1O06c4}N;?Gu-AM23P;%PX1}bt^Y;G^Qy_)apxLtJ8k4u4 zErwgq_m1bV$y?7~hFi}C2NLNQo*&L)U2+<3J%tPp9{wDEY4A)*mO1&4>v*xrTTe~H zZ9UfrXFUxJx1MH(2haET`Sn)dnNZK=*tf$SKGt}Ge=GL$tA+=ER{Z?*8;<84leeB_ zhFi~i@mzyCx0`(MBr1dt$@8n>!Lu9noHX3#&pZBX->2*Td%l#yzPn;LHYEeyB*Hin1%r|V+foxpY6`%ON0I-_ro8y-BD;pc+~3#Wgi_!DL0 zxZ_Pe_*cO{)$rgy0{?8`{5jxvgfGX>(Y_DPd8J_7O~TjX{Cq%oL+qb(;xE2F)}QT% z_?gH1v*7u`IW9e^4sRl!OdF!NmGED{JBX((>b%$F)7QOX^z<@3^m7}2?y#Tmf}3J~ zwBvulf>7iQ`}8b=Q5MGp6d*^o)*II*c9u#)o|;%)9~OKhy1MJRALHl$&I922!F68MBv1ck!h7N846YH+Wc23-lMnT8tr+WQWq7Ec zb+#A&Eb6=)oOROwfXN4cYNhD!Z@Bdj70+Be9)8Z`gJ&>2Qw$FtzJ5PT_%C>UeV+K& z!T*Wy=W#y&S~>c**Z4y{3sKJ*$uB@Y)1f$To(J|LpV#nE|223$xR~%a@j7BvaQ2!0 zS|%Urq5m4ggP)$}hTD8=$KTP(cQf4j2RNRgCU3_bYq<5i?s(>zy!9+H+ViJa~>GpXsOMmE=X&F(#1dU@QmJ> zUPj^yaMrUM`}R)Z2f^<#p5RZd96fyu5B>%44-kGoUJrW)oa53z+T??OdgbV!Bl*Lq zXMyDRBfrw{P!C_<`dm1lPv0hdD4w_71TFdd*7>L5VcZ^jBL7?XI`Aw% z$J^DP8=U)LEBvJmxBd#^Ig0b!B_<#0Osg8lt8aMvdf|Di8-$+)ze)UsOGeM#!e7Dp z^D*J)v0hIZf2gMy>KSRcU9Snk8|{nZzAFBjMIxVV^6C2r{&x)z{&ELmewpwYc)Y&J z@$WEs>px(4@Y8eDaGO8l_%r*BgkNBwyWxBhbA+&}C?Ws|q#);8RFZg4y;Ox}9h z8*V)hI-W;O-g*WbZarg#uf@7dG~9Zo8Xi1%;PLuwaP7~0leeCwhTD4931>YU4Y!^h zh6m60sAm^A>*<7jo8@p^ck)NUbAxj~Y^@q|r3?@LtayBRvG8@^mw>Ckj>(7m)2c;( zBg2D#5+2{Q5dJjo=h_Ir0Oz|-;5u%9$z{6TsGoJt z6V5u{181G|FEjbzUsx^r*BfsAUy3Ic=i%>6K6nz!LtJAg%iU60zV`Emhcxm z5`CF+{^44>S;nq`6IFH-w47Z-9h6hhStm7@9z4IH zp5frE=LhWDdBP8YziT|fzp#4pL-Ml9@Zc|ib^1d1B=GHyf0xMzf667no=BXO{BhKC zPV%jg&-+{aI_?LqQ!(M|@b%?{Uytim@R|MLxTz)|>Rg3!uQNPvlGEQ*IQ_SPtG~U; zr}v>ooKJVd^BR92aC#Qvab|y$51w8%qGy!hd6Vd8T%Rbs&hIfl37q~f;a@2H%?o4x zQ{joCk$)$CuFFB;?9U(Kxg4HTCLiWCy+-tBLA_k}DY%|T_$7bDd^vE=i~hVvo_;28$9=|d>v`GnOfz}wdCPF?S>bp-GkNRTZn*V) zC%ok!aa|4ye-!)|!>#|A;laNX`Lp1yl~c8$?*KiF}Oc# z8Xo+0k0w7PFLl6K=l$5{orFIKe!ubLPk#N@8tIzEV}=L+o$wD5z5)DMaE?p=IFrwx z^rT)I{clOWH|lv`@|}@iV|b{i!=KT!QTegRcL=X_Jo3HZtdrv&GWq<;=vIt-((v?g z;Xf~&{_N<7`tyTxpQP4|^^`N*`m2a%FwT>yCLih?3{RTj!Lu6ky;1nz;5UnZCj9pa zKZ(b&{e?e;^%^gJuFGWM%}>Pn&KA#Nc;=gYnAbwgYpLO3UR_Q`&uZZ}{T2BR$G^wq zt^XIpgP)$$hTD85>^rV6>(2?!^=17<47dKuj;E%{+i~j|Zapm=PivF6o-T%4&!dj# zNt3spXAQTWmxTAkx=bvC7xC|@9j4E;28(cuZ9QDcbM-<;f2q}asL+oBk&i(d6)h9k;nveY zc;<6)y_y(qJ*^B6p1Y8553coeF?s9hX}GOtfN<6`*l_C^X?XCgKs{r@Sx;B&+Yg05 z0KU?Ag8wM?^Jc??|CaN~56R0n!ao7u@A!W<`QUF=J6)5=ax#8qoe!g)+~C{~gOM+7 zc&O*rf8*Cz5WX6`hVVY=uTUluSAgrd*P48KA24nU!^61rw-HW%C&z!k$*1?>vRMD) zhFkw&@uc9q_pHeW&vbYu86G@YGKCo?{|>eAtHIw8e?$0J2>%A>)$PKc#CrWAey+j@q7SJ*1yur{qN@nw_;ue4G;4ggZfJeKL%a{oa;;fZu3LdJYy#-k7}HBfNF- z$e$9=pYV)u^3x<=JWK4`T*-GV9{rz6ejoCigx`Nb^n5LzyWu$|`O(Oq6}}8SfycA# z!~O6Sb$BW`A9wA8=PDh z1%FRG{oq;W@bAU*3Oq-ge3mnDo!PgQ$maoP|A%1QDw4l5dz^1A;d8+2iDx)GZ6v=D z`A)+B2ESK4&%x8r;V+1%T#i`ht4@BAEjNl!^|uFFZ}FOvL+824Jq56B(+&_wt= z@K)ma2%ZNezZvGm@>e?fc9O3Je;3Ig#=M@Ed>iCP zNd6DxXFGhAcm}}pg_A!Z`I*QccJjIL{U!T$7WpFJ?Ar;{dAZ~-%pdz)PxAjD-^Ss+ z#dAG8{hj;-$#+M7ij)6H^7D{iEBQ<%;^TlrlHZ8@5y|I7K0Ce-W`D>p0%t$}fTy~X zZ|LNkJNcfHFJ2(_|1rtuL!B>6z8>;ZC0`8rCBpf-_Lt)62+wXOf5OS1ll-C!WB*Iy z`2+TCDEt=*e;2$uIQzd0o+gt23i(#TGZ&0~Yb~CY@I2t~VdAL>&sZn_hLc|)`E?j~ zgXEjR|CR85;CsZg5uP)We+~J}_&%O}-Uyx@oc-JePZ@__DV{&!Npte;oO~C_e~WPk zO1^lZxL(7B-vIu+c=p2cmgFBm{sZBYz?X{W2Y5C+{1@?j3=f~@U_a@}h3`|@f94B= zGk*l*)|C7Y@YfYyuyE|p_2M}SPe;jLf&6{K?*;E6o|EtlcK8(WjD%;FlmE!cua*2c zjC(-x3*bL2d=L0>@nkL+&olY)eLVZ0xk&6=3E`>WWx=^F+2N_}@D}1}4Nn^<|B#b^ zT=Mxb?nKECfPbp+dEm3fQv{w*B)=K?^}_!F-y)up@Emmbzv3xhH1;_Mo}XYp=}7_S zx-ef=^5rq^4U%sH|INbtg0~ex6#hB*5b;!p=Ou@~E1uur;qyK013lZF z{CAH3AITRj7W>TSb?8q;ot5zX4f|Xd`Rd@z*G0aG!|xW)o$&N<@`AJUxbtk`C^4s9wAo=@H=dY4Kf&8D6e+c=Uc>aw2;q%)ag+GS;K;em$c)vCY zJoLX{@*m&#e!Ah|`S#)^;{KU!c*yg8@A-Tl*KsxSA4s0>d%wc);O|*7`Zozb4Zhv* zFfQLuez)Plv#M0|956h*j*zGmJ|y42-|*n!`^=v(Ja~GPj-GSi;acY8zhWuL56Meb zJkJ;A8~m-{uV{GgB>x3pU)^w#`g!>#`w$KS)r4>jESM;dPZ6ATZ1 zn}@zl0oQrWH2L5ehrYdUc<}6l=Of|tuND8+^2sksUN)J0@E?VLr{TeWWtmV}B5^=? zC-B3G8mp9vCf+uPY;Jb zV?1FUyWsjb;T>@ORea{WE<>HOO+NH9_3~K%yM~8;K8`w<37-bO$?@+ndFwx5c<|G6 z)Nq?W`%u~B?YOlKx1JjuPYaW`p7w@Y&x4NVQIofx!G>GU zSm8UcE)xy6o~echPu>gTKAa7%{h4p_*0a>`;Hd@AI^j9XMgK;_t!JCVcNrf1Tj4nY z&N|DaByUV!^5c1N9(SWs;e` z?vB5=$p`-`_(w~=X-e|Og<_rG_e6jFrFOK<@;Ora6-6eVY ze-KX3Z{m3%CDwV;$Q&YZ&OF9gmy=`UsS>FWi5HN!)H=)X)nCzX1N;!dv71Ww`J`DY2fh#vkfAih3p+9_qQILg+}c zF5z>)7d!qHCU5=g4G(^LzBSzDzjyqHo%~6|tv?4|f8hGE4+X$^{%0Rb8*V+9I-V;` z-qzp1aO-L9csiQA^>jDfdL9?P9_#X?;np+E@Zk9k`LW>IpO;MDdS)1I>sctA^(->n zdR7=7JXckW`)v(4>v=6Dd1LZ&NcgOjbe#Czc!EFm%E-?d9{e5P&xY4ecz*Z*JU=+c zrN6kz2md(uYfFA^N*uSIwZxcQOyo2!b;9bF4C&%q+^67o38|!(} z@Gvg@!-Ug6*73h&^67nm{|&>fe}QJ~ALdoys_0KMJj^R|l{l{(h2Ia} z!SUZ~^48zW@ZhIskl{A}tm7Z&}M%>u8{mM$X_SC_$A>h6NyIRDF;t`hd(NwdhiT%@-I61*Cby7<1UkY zXZY6$9}B)wJXPWOS@Q2A|EKT+;D3qdQh0LXbu;#vyb?IqD_f1&&zer2uM=v%m6Pu+ z{!8KSFZs(*=M>4`g8X#JUyb|{;XI!o5Z(~^OnAMBedr8c20YBmKL20A@Noa~DC(&y zo(JJ+Bz!PtAem@UMq|xp*#t=WF3<;C~vA^`9|3__NfE{XZ|B=J1rn z>rw1~XYe}U+W-272Y-F|uNTjQ@N^J982oYLvGor!Jox*<|BQIX!}E&p$>4L1C-^7a zo&1ozylwK?BTE0c&f&i~{G{=R$De8VekU7Vmka&Omi(7B-JVF46%L%JVfY1v$vC;x@ZgTnJgoOsgkFfM*vG4Y(?VcgQlPXy<D5Q zJadIl247-$821VAb%uv=Zvo!|&T+?K-2EmW#$AH^DdF#fXUFT4q5omrap1)a594+R zzYv_`uEMxAO+Jjf7Wu})KL&4Oco=sscvr*2xQ~GM1n0O%G44|)AI9B{{ENajg3mTQ zjJpc_1H;3(1HnH6=eQ|X#~U`8d>9wMcA7XSd>=d~3=iY(1kZxkOGE#|xG#d|2Ish~ zFm4%>598utQsOe<`0<`ZL&L+kN8!KK@G$O-P(bo>2RO$ajB$IId>9wsrYD{jj+ey} z6ATaI=79fo!^60rfX@TxxC=4vGLsME)<=GuaNO-A4j3NB#mi!eqlSlZH^6fmoZ}wF zxH<8e3jYW5>LdK!+vB){gg=8j;L*a@qyO`SUyuGT0uN<`{lLpg$zRhb-m+16Ce*W2 zc;#zj{%7IE?u-1G@b&E?|3`SQ5|L-a>)Y&q_*Z!~?#&g}1I0^Y;nA8xNQs6Fwfizwlw`bF}^M z`{DC?4*Vyqdw5TaBQ#tINl~Rfz#0c z;ccZJdix4b!*$+2bH051_N?T|`M8Gplx#8hs^rOM3vY`2LWeIAeiIgCt;077zZvOT{o(x{$0bh-AbBBY ze_A-awQ%;Qv%|XyXMctXPfM>Nyw6AcPxut}Is5R6!(SK9{=DPx#lqQ#)ec`Toc;O6 z;roQMKSvyXTsZqvAWS}a2{(uTrX~M{O9|oZPX&ixBK)nWNz`?Cn(zy=#xH2$@YcfF z|1J*iE}Z@E>+pfXYljDG$;(KGj~9Ly@~=7k4dL^Vf6w8|gkOu}eVxO%2-ktxgW?2 z2v0xZB-g%-!z&2iiScSV{3_ukaQy~{w-8x6UveChD-g!4S`lf(ZI&i$4L_XFHNx8ZR`5#e`(U+nPe z!g>7G6VBtbfp8v=U4%Er_3px3;rbH}A1s{v=Xv2A_hsSS4~vC2MjuxQZw0=|;X8!$ z{`a78_U%{U>|1WE1J|n;&gX@Nj{v_=IQvjZILECeoa0_4oPBE~oco-|AM51)ykGLH z|6$?dQGb8%@O^9eeT2*Kgz_LKKSKC>@JtX-19)C`^3#O(2@^?P-W1O*@GOu#&z~O( z=endbr&V7;#_p4kl_9s6$_XG3Ag>zqB zBp%jN*~!-w&f~Y9c-WuoB+v7C6XARuc&m6gueMIUlW-mv4~U2LJnZBj7tZ5|ePW;4 zpO+=ieKJir*Zoa!^(>G)*Xu*!tYfv~Stoh+VT*9iYnS8sL-L&0DdC(~7TiDUe#7+~o@a!2h^MQ>XyJT(I9WLBpCO#* z@rA-!&l2IB=hwnn&tBo9Q0Echtmn9J_LEPzX+Lw|i8ylhv#4;^UsgE#Sx-107c~&h zdRl<%adfNXc^us#oOO0}JpColdY%@}$7y36{-SW!KV3NMoGYAlt`W|9HVCKxYvJ_o z6;A&d;q+$;4NhLTzVzo6PJdD1^w$zj|5d`-&qfY!E}V}W+6w;z_m`c7XTtgG0f+Yy zUIh6;4j&=>V&q>C&i+glemC-S9KJv}@1H(#_!q(lz`w`gKMLo1E3JPcc z%Lr%xD+p)*YdZW&;p~4Shc_3_{t0Aal(23KE>fPh4X&)U576f&c_3vI((yW-p}rG`1iv3_~AE)pA^pL zF$(9+xF6V`(!$xFN)EqN_+a$8zQY>{pNxD<;nTs}3V#dyZihc0oZmk_;qbx2ufy{Q z&k5(cPZZAeea+!-2;;q1?c!dcHs;jCx9@ad?3yKo*admR3waL((v!_Nxme6!_`1#mxbpXU?K{ai*k z_h$v++@H0DbAQ$o&OSGFcq`%T|DD3QukI1f{WC=PQ1pMKaGp0_01pq>!d*0<$9P5Z z?AzQE)5BFgn z;p}H|;hb+d;oMi%gma(N7Ty%+s}{n!zO9Axc)UkA>+d0)$4fuqtY?UD?$2q$Sg|3TOR?gmb@T!OtIYeOZ5Q;jE_^IFFYl*g&Nv&*SA{ z;XGb0bv&0zp7Xt0IO}ihc$!I`$IETPdA!`^cpi~F`!hf|`!ifT?~jiQ|D5F6AO8Fo z`_KNo=6Gg`hy8g=IQz5M@hq1-`?E$k`?J~c{2=-9*yl%t^Yx3r#KZILStp+bKcC3{ z@b!y);M|9N9=ovQ`T9j^;XLjtIiBiH{xacQ_iM$&c{P+g*S(o=u6rBta9(#xp6h;( zaGnPq5)bQnMDo>eUL7Eu=Z)dwVLi_|`H8~04_^}x>v>=DT$km-+2_w3&j!h}KVJ%G zfA%__A0*E{91+fW{pEOa;|D0YZ#l2R!a1*U!dZW1;jI5M;jHs&;jFW*aMsgFIO};p zIP2*nob?P8&U%Ik=l%F};e363u5i}#J~)qe?w=)+XPv8rv(62UXTRiG&(Fg7di`;S zpB2vfvlYqsIEr=V6V5uT3THjFgwtPNIQ@-;)89!r{r3x}{}JKz4-iiO%fjiOCY=3z z)8X$4e-_UJd@Ot~_*&sd!M8emr|>Lze)~s<|0cW;@_!3we=--%xbCCyym4NK7ZuLe zJ1aZ9rtq2YH*|P2;asnWg>$_g7ta1aEu8%yC7k_#(c!NOXaC=H_II z|LqRnC7k{L)!`?Ev;R5p`!PKKlNS)q{?`%C{?`}I{x=cM{y7yM?p=JssXx zIQ##!aQ1(caQ6R2hrcSE{h#mfMZ($V&m6v4IQ##*@acFQ`mLqIP1JzIG=}UD7+{h*EJK)`{nk+`S`z!a6bMYB%I&Rju6iIP5|fq zH6J&=EP3`}nsD}kfA32@{JUH1Kl{VKuSL%Otaj>IC*!hjTZFT3yByCx$+Mq731>f# zIiBqJJtx-x9`<2=;p@Ol3FptFUL>6BQbRcVf4Ok>KTUWY?5n22>x17TocpAQa2_xH z96m(&JDBfShrc9zIr4Lavp)-jUx%N2TqT_I{akom%=Z`JobR8)SD>Er!dXwYk}<$_ zFNw!3g@tpyN(<+DRT0kmQ-yOsw-C;?l4qay2xp&v7SDI+^KX)8pHB*B zpA)6x`f$DI$qLT>#y;m2&OVoLJY^-%K35dZKBqdK%O%e~Un87-Zt8eCN}lJ>uEO~| zQZMoFeyXqJ`8?7<;asn09nToabG=>^&h?t^cxFqU&)duw&OR@3JewrX^Un_9oY#KG z^P}WBuiu1oUZ)+;Imz>Ul@-5e%KgcC6#(ac=6Y3>Jm*zIIOlbhaMpjlaMs^KIO}XJ zoOSjV&U*R@XFbmdXFa2Zv!0iQvz}?fdB40&IDh_swQ$z630(WUUGl7RmvGkkqvQEo z@~kIwnT+>?{C$MH4lgR4^`{7DomGUh&W6HSPcz}XUv49u{=08^RL6Rm(92z`1?FXgtI?o zg!AX-D?7ZV@K$*K!rA`?4*yU%`~RuK zHwtI}zZK5@9}v#||LX7)!rA|9c%KHI|H<C5&i*fO_=m#TXZ~GH?f(|Zv;X@Y{}R%=jOTy$ zvxso^vy5=|rzlfgrCY1{mmSHoAC3<-zS`Xdq{XqJdZR|IOjWFIFH9^4xb~O$K!hrUnZRU=X2rQ zKU;-!|Lhgc{c}h-_rnR{+zi$xq=F!}YpIIP1SuIQxHvaMp9HaQg2M z&i&BU;XQ?OKMWSmdY%=|{V-EF{tQv#E#ce`OCA1+aPEhV4*yCx`|!PR?uWy|58?jq zv~cc+#Kjrck$uP~ocp1eaPEgX!r7nt!tu7diMGO-?NAbIw!g>d$*9k_aWN}m1cEByV;v0pA7uNKaJt{2XJ?i9|x?HA6zofppMSF=^jxPR7RUljz`J{NQH7Ye@$ zeXc4VJ|B3glfOdv6Io(?*Ncb0hu+x9-zp8N23 z;U8ijo)OM<%v34kzU8{)5zhV;5nct4>&iL2vT*jNnQ+#Bn{b|Ix;VVMaGqx#b@-FQ zIp0yjx!)!T=XqwjaPF(Q!a3i?!ny7%gmc|@3+H+r6wdmO3g>#A7S4K#RL;2W^p_D% ze`VqH*A&kEP|x8FgtMOegmXVUB%JT}_oTz05q>AmpA#HDS@=xk=Q@0$aPGI|4qqeu z37kK-Is9AUT$i65{)cd`*E!+b&snQvTz8&73k&CdE-jqvUe)2XgmZnb6VCnLL^$_< zSK*U!9_uN*IM!=`!-op*kNkLtzapIbVUEKW21S^r(a`FN(Ea6aB1BAoLb4W27G?cB+Kd|WqP z^6bMa!r6yej%S|a*`IfXvp*j>o=+stzI`E_ef!Gs{33bw=TG5$Kh}R8p1pd;eZuow zA%~X|&i+>s&OWCKXP>VX&VDu)&VJr5oPFycoPFyroR2G>7S8X##(?LN{WHPIPZrMe z_H6O+@%)=k{ypLB=f~pVeqJqk_IbT<-tX@a59`?_dG`N%;q3o!;$c0m_l&vCpih6gZ!s;d)&pobR(-Lpb|?xp4L~O*rSY;hgW!!ny88g>&8W)yR0B`2&yliV5fX zmKVgDZ{|xgt}oXsmvGi!OgQVgP&n(UC!GEU!s%}zoc`9rxgR<^ zyqj>=GfFs*_X)!J{poav&lS$^M;1GLg>delFC4y2IQzEG;XesyKTithemf_e_dB_3 zX50_#e_`S5XL;e=Z&ihJzcmrg?-N@J=l6ph9o|(q`~Qf;2MA~XhdX?%aDLx0)#0;* zbG_aZ&i*eG&hPI&7tVfe70&P1_B#BKaQ6R#)Qs!P{^t>13Ez)b7S4Q4;SKQpT0P~itDS7({h3HaT@1UNI2(J*6~~uV^SJKp z@NU9+TtDLQ0m9k0k;2)Z@xs}kX~NluIl|e8wZeJ-vPn4W*$J-exJUA=^GD&V^QhxF zDS6g^PB`n&QTzYjS7pJuuQ;!Y!mq*kA=Tk^gm;20xnDTXw|yMm zUpV_YRyh0ilJK_pe<B&lAq``Ns}lE1c`HUpV{!vv3|qe>wcTa2`iFFUxp;L0(We z`(I8t`(If&`+2!=_VXIyobR2&xgYKk&Uzje&Uzjf&iyb{IM?Ml;jCwlaMrUxIO|y^ zob{|0&U!WpXFWTFv!0{E`8evdaPEg}buz9mc|PG>_mU1TFPwd-DV*zjrEt!xwQ$zo zQ8@p;(G$X%A1s{bljnr9o{7R)&pX2DUo4#ST`ipc^}^{tB%J==h4cJ*#^ISR&$y19 zZ&Bf_r>t|oP92HWyXFo zUqLwgP}|}4gmWJ@b$Bb`+=q99>ptx4~F5 zg>zr65YB#nCY<}~SK;)Z5Ke!=x*6B;N7PeNIP=#DXTFJW=I<5G`X3a|zKs&j`~>0L zC(|81S2*{{`{24ymN@xU!nsd2h===RtCQa;ob&xbJlrRzC4UU-lDI14dU4$=31|LN z;mkJ^ehU8EgfrhyIP*hpq+yd3q)b=YF2;c;0mK?+NFA{#ZQR&#RsMdf}Yc z4)Jh5AC^4lbxb&)H_Ll<#`P+U^(rcyeMoh9UE!>=AvpWb`L>fh{hfugZ#^7OFDL(m zaMm+aJnY*f$+Mp6!uj(d%Y~<)Z)=3J{=E)AB%F2r3C_N;&TREFt{46Jg!6HDRpB*I zXD#8EgEtq>?+0%e&hMl92w#GqZ|N`m6Y%N6nV&11`L)77hG&y-=8p?!{;Y83OI(w& zpPW~UaK0{ft?>1zr?K!a!5o)`RY;e4JUb6Up!^ZA4n;mlVNelPqt3unHKaOQgp z?+i~r;ml7H&iowV%&!(c82AL^^{#S!S z@p>VLmlEC>`HBv&A-pT{HwkBdZWYe{baZ%E;p|TzhxZr$5Bf9A;bVleKa(9kLpb|0 z-{Fgdvp?H~vp>6pvphG3eQ?F z=8ri1xbW7<|LgGV4Kwba%W=FHad;Ww+&@(uo+_OCr@q4*32%aWS~G1KwxgTD0_#48xAKr8LGU410pF4c3aPEga4*yYjRqTi34nHfL>zkud#(hFw zKseX8jKeDk=XzZ)oa=R?aIRNthj$d7H)pK7yTf}6|2%KZKjrY@!nq$NIDE2j?uR!V z{*G`SzsnrHTKL5{UbZ;=8{u5X9~^!}IM?@-!~Ye|<2UyW8TSu)Vd2~lslv11JXu$G zA@C*+Zz-I|*ImMS9Nj0J$ICF`f8l;)jPL{=pG=Mqu_x8Q; z1nT_L;b(;N{xL`6jO+D3blnNq%~jX<@!OD0l|o4728yE5&>)qe!4O3%q(Z4kgrW=; zAw#362t_DUMJY5(rle95g$xabCWZRb+28)}`CiZJx_Y12r`5XmUTf`re&^gbQMV#; z>UOHUVmfzc%ZC@v3QaBIdif}PG5G&>B}E-<|=oC?EZ2O6qK{CaNw^_$}=wIxlQrRTMzkd>2;xBkmmu# zGlvh$IbWlLJkJF2&&!#InaV?bUJc^kk~2Sxm4|*U3*tYMGjAJ|hdOT#;(wAepL>*t z_3RJg4{4a`bFKsbll#EmocAKhnM3MRT=6T@c`qaXIeBH}VPDl0&;4+woagGgL7t0) z_{-&-(^ksEzOD=6Z<2GayDATLen9ce+rx6^XLOL~8O1Xv&&%oi%plLJil+{5$=TQ9 zAkR9*v#-r^_O(mS`u~)({zDpN&mrqPOwKy1$XQPfIqNw`&U!AAvz{h$*3(kXdb-J< z&Y#)O-EyA82g_OiNIB2F&&pZP3v!+_-;=YRrScEcI=_^&o^R#U^Jh8r{9R5x^IY=3 z`&&p(JuAz3j;$_dJ#~^7Jn&@-9r&B`SXc3^v!R@IHV^W2QatPFD(AWSp1=pnS^sc3 z>wH4aI%mmQ&+BsXzb7aEQaSmz$jQG$PX4`e^5?lUyYJ*LCnx`ja_V_n;I-vV()*f= z<Qr>e>Zf1ocaur7fi34j|cvYylje}5%^qr#T5T>;GfFr z*B^5F^^ctT7rZRH@6`V&IrT3S`0;Y;e_G(R<n|K9@NFQ@(mFVCI_>VK4+`j-j(cscbyGw^fe z)W31ySIMdWU2;BWyI0QZ`$K_`lJhz{F7U~6o(Eyd-lykk zoZVmQQ$S9AiUoeGd{KHnIVtedIbDm)>&v z-d|3ChXwwaoY&t8flrll?&bx)NY4B(m-9aHb2%=^Wt*mxqRT2uX5&mpPYFv*fe`in9rl+%x8Hy^I2I=ozDvVJUR7m zBxkOg$(f%n@^{mH)l<&BF(7%t1KTci;BP+17^HaWHbPF_#sqoBDV}>^vYc}_JIFIv z@zi0VoH{HC@~l@ppOdcd1@)1^KyZl^Kw~`=X%9c zpPS{>r@QhLN%iTic8pQas;JsUYY4Rt@sh2;ytW znV*Z4hx#;9JoD2`&iq`fJnZXw#WO!Q%ehawD-Y}Gt$1Gd`^)+M#W3YzJ);y~>8MQq zo|1EqO$ze77{t$#b1vRg9`^N#;_2^~a{9F?$g@rH)OnYjI`0eelrC$J!9ppXQG_-ERgf_ z6(7i1&nL-U=g$?-I=_*#&TT=SzZK7V@?Dud5B$8xk%5Y@rPX1AH@;@af|EqHHza^)hivwRNuX#kKA8X~ql5dnhoBZd%f0xfn z@p-Pw?mJ#cz9_|)lvAJb^3#sY~|6YOjlT-hpfj=sz{^RA;e~O&?&k20KoH~CT_@{E}zbWt^<pCgqE{6smgvuDbAo;+91^W>#+*4bRn=R()Zc|N>Z&g*hdIqygAlk@WnaO#*=K1qg#Z!m3a!upvsv-f?I$^P+Y{v3uXyTt$ko|% zMLmlocYTgmJn!SG$qy}%$y-y-`=+{b`f{n9`Zt$T|2A^oFLaPopZ;>@K)oa>2l&h^Vd zo;ix=T+f$NhYx~0A1j`7{i&RD{Y{YP7sXTOy>jZD@0v_qsdLR#=R(Q-xnEH^buJs^ zsib)7e6pN6pB3b(qj>6kp`1E54)QctJaxWCPMtdhdG1j>_vb)4pKA?Q9$u#&RXm?- zjg|Ac)(b(NX^Q8(&ymyj1wo#770>zlSWe$R5Av*4JpI}z=X0c=gFL?|o_l7moWAF~ zHhZ3_bLr&FGxez?r#`0yc}`b6^{FGLKJ|ks%;jJs-+h&nh|V`AW`uHp^MhPjc3i|GMngO@2R15jpEAot*oS`6;h> z)>&E3I!_PsG*mq6X)5RU*IX0$4RY3hyPS32C1;(ZYQ%E|waocxEj$?iM#JSy;GN8o+sf28;kfj=qVo8qShK1WW!zL3+e^>XUJT~7UX%c=kVzz=DgJrC6X zsKAerQ~wj?)c;gD^{*XxJvsGn5%{%o>fbf+UUKUHw4C}+l2iW~a_T=q<@Eh*IrThW&iXG&&b(bcH?xi=if3OfK*>4v)`@K8J zbD!d=!yq|zcqGU(S@G0ohMfAmp*$^8eHJR7`g|y-KC6N}UnrjXtd~=t?LnR$il;t* z$f-~68!~;S@9e8Y@>~c0aqa_ub3c@m-<|G&M(RN^C;%Y`SU0i$?40-a_ax7ocezwr_SHY zsq-#5_54##J@ej_J#W;lu$;P`D5pNB%GvKZa`tETQ_g-D%h~TrIs5%u&VDz^+3!v{``sgFzr{La&jb5CR?hS4 z+48#SUOHb+eJ+(#pXTzC>HBDH1Met5DaCgS{BAk*e^5^Shs&w|7&-NyAgBH>%c=is za_YZIPCdVpZ#?*$9uEAqHSnGCA5;9^!1Hv>!6l zLOJzsCa3;a%c*}yIrZ-%r~VJidG2~#zB0}EbAi7or#`PF_v`ZOil=UG%Q+WIgFK%E z@n6b0FPj4YQO@_L_5_~ODSLkCZ=vMgZxO}Q_mcAA>G`2jkf*ZZnTP7~O({>EAWz*O zzM-7&XSE3YTKRu-nA~-^Rq@PccRBNUUy$c9#WS~0%ZH}9ogDZK`NJvxeK~WuOn!E{ zht~wYL4IC}|6NYM{+4e`eJpiz_Pnv*3UcnrQv*L+&OKQ#@Jr;}lUD`aM$SEOtDN)R zUCucgAm_Xck#kRumUAw~%bCxY<;>x0a^`Tgocez)-&-Klr|p67mVc05cXDpY?k}ES zPW_7pURqB5tH`N;4LNgue&7w{+>=)Zex02Dc9zrMJLTMm{pIxcAvx#h$-u|Sx!+z2 z{8c&g^RArv`B={UY?D*xU2^KVU(UV`>6|?$tiOVs{8i-KS7!u%j-31I3OVa(E$6=K zA)l7cMPGTPf|>mc4g66#=i<4*UzBrRUJ3k7Ip<}Gob$3uPMtT%>El*8^Z&b?`Ttwq zC*A*rZ_VyI^IuF(UnDN*@{aP)jUmN7~Ypb05>Q_1a+9#)9`ESeaFa0Var(eg)>DO^``c+p>JsZkr zrheTZ=lQ?0ociCD{NQmebl~ror)TzakK*aeKskLG9^`pc@$_q~oPNC!;`Zz~U z9~T69-c>yP{a8+aKM(S(RXly)D5vi~2YG%`JoB(u&OGG1J<}iet8{YS7t{Aja_-?8 zf!C6A4__4cWpd`KwVe5BFK2$b%9)d1a^~bgIrA`F&OAIVr|*;G^nJFR{=Olnzl-Jc zaiyF-{w(MD^LIJ*%+=+8_dQ>7`c9n>ms96bL7uXTr~W6%seg?i&smD6FXzeWOQRr9 zW5v_2tK{_S`XEmS#nZ>z<@B+4kmp{-)87Z>^mkN{=LN;n_m}1M((~2pa{BwWoc=DA zQ@7Rf@6z+h`oOoysdJ&OnK@+MSbtGD_e_PrtH`-$&ItS*Ip^XMIrX_hPJP^L($Ic^)RG{*TG2=L9+PIaSVl&XY5Ti{#AVH*)Ipy`1{&mb3o9n(DW^W)%GvKva`yY1oc-pyGrPa+ zw}71e7MHW%GII7?Mb3U}$l34Za`tvU#Z&(^a_YY^$g@ZB)H$bn_WXQ)u&4+A zIy~^B<=m?k0EmC@!+QQvJpDbiM`pfw z{v3T+=GR9hcYR6(@#W;q$w|t?zD`v<^K-Vm)sdO?)Kebz)j;vgRTKICl&7`wa9_0z z;ycQj&u+@YzIrO2xxG(*%~6?s4GHp$2;!fVGyfBmhx*J_Jm+Ge{OxoumIS^^KDcmZ z{ol)(=bz=wXYRW){~q(k92S%_hs6UgBWK=f$eF8Ja_*(e<;>5O@;zyO+6CT8&Ybj- zGY|L6>EjeR{hBG~bzwo^AIN!K_$2Tz<@9TdoPO<)Q~&*P>VHVj?7ma~qH^kAT24Ky z$f;)yIrVHJXZ`)c;{Q^_(K7J~QR)_f0wbeNWDQSIXJ%8aeyjBxk=r%GvK8 zIs47ICworV@3C_Bdz_r-)l&mMTh9DkDrbJ0%c*BaIrZ!!r=A1l)N`nudXAG*&&hJ? zIbTja-<4C(Epp!f?vS(Jzmgw3o(HdB-behScfFR7vi6J0*xeOU^xTf%5RazJ3tj zSWf+~Rvyk#8^zO?4s!Z(hw`wVyA)5q?v?YL@R0Jbp5cn8k59SU!MB4DexcV+@F60 z{*Rn~9d=)K-|1IzIsK|6r(Y+_sedgw^}j$){hP?Ce@i*_>>+19`^wqxLvq$XO3u7J zBd71r%URFca@O;aob{}hv!1WztY?dy_3V(do`U_d`^&r?CFk>v@_|>D^FH*fz|WI2 zpN#@N!DvX1br>k`w>FoY&Kpa`wAM&VDz_+3yc>=IwVm`~6$aeoGC=o(I-nK~BG_ z$yxuIa@K!=ob@-7v;HgPtp7SW>+daR{r%-U{|pQKF**I3B4@ud;qWz;o95|PYcCUhim23 zp<|GzkK(D%{c`TNM*<%s=YD%W@R#J&f4-bLzbmKCpUA1_mvZX4MNZvz$f?_5_h-)! zulvR2tiOD6&(HCSXJ6Ii?5k#w=Um0J-;3q!w`q{)O2t!$>*Um-Q;?^x;;GLA@?q)y z(MUOU7%is`6Xoo8nw;0K*8*Q4r#`FX)Zr_6lk_?H=D>fFQ@0}@_}}wWO3wK@G4NC6 zoUht}*ON1!P36?Tm7Mx_kW>HL<2DJ`^=~Ps{ypTZzps2kdVU)%Cw{zq zP&)6^K?j{1xQf4^;y{L(Y0y$$w3C zZYO8I_sWTXP@X5%|FOWImKRU)Qv;tZZw z@dMQo= z9JWnP-5{)Ggn`+4D*K;d1(N zY~aVq$$x5c_vIqRUr;!+j?3iKxtpB$yXC|`DX*XMkCPMszMS}Fa^knksn2dXb=aTW zbvSBxcKyk7jGW&WcBZ^(+Sj@AR>@lh-cHUsJ11wI+_(J{PyWGj?(Ii|Jfnm7@pA6% zY0AUBJu`@(Cud*pDi8Pe8pX4(4e}wWo_pojCC@V=yN}eNY~UxzS!a#p)Svyz*oyz=lbN-jdlL2c=GR) z^M1L+$m~A$OzSKszb|=hIp24yC+GXi?d0v!&ntG4-<*87ocJf?#Lto6l=94%6aTH8 z_-%6H^Nq@`5BoY?&hI0rD({xobB6q$)IKLC(k)@^0btXPwQ+epOXA; zIe7-i=co9Gle13l{|SmG&r~^i-j~lz`IpJ(CEqG1&rUgiF8bc&tdsk;$Ya@kAx}v; zc}|xvO6#d3U!43ZIiCZ!k^lF3xV*?wnf2W-FOz(#ocP&t;#bH^r95BAiQg|L{*cGB z>qdMw4C}>3jAa_ z^*KB6^X1g%vcOx&sZYDWJISff19Ix~u$=ll75H=Vwdp**6!@$1HKj8Bcqi~Ba_awi z;NQrp|MtLl%Xg=F{yXq|qqFB{Z<)-miw0g=etg+X{E2~|D!(hmpA+~+^5;{0)4*HF zpH274O@ZGgpP1r%2i{*kEyWKH{0aH1DSkrWQ{|kOxq&Z~b6!3U{8Rb+X+7%$-y-LH z<$Wr9PB>qM<(#jQftQyv|J4FNQ_lQf5O^aw^WQS?wsPk4*1)^Vna=@%50TT~Cj%cR zr@zwzpChMVE9LZSjhudM3j9a;U+F&F6L`*;>^b2+JS_0ya^|5z;8o;Ta_+a{ftQhUUTVvWmd<>=dh&|Nn+1NgocpJfoO`CLoc@lG z=Q}2|o+sr+lD`o6%W}@wTXJ6a-pvIr-ke^E{p1N6zC>a?Zsua_Uw~ zUbJW??*;N6B{P17{Q2aq<=j`D<*f5gd%7R)ms7W4a`yF%oW4IVZ;)QEUz6XJe1W`Q z@)hzS$-j_uKWvqA5A2k4-g7;Z-AB${0XgUEB>4%cZl}qsC%+)@Msnu1m7MywlT-iu zp5{UPHS(X*ebPaBSWjogbI;r$xz9zf}HMxy(MVQXcAajpCn5@i)kM zeYrizb7v5LkDS+|2bG7u4^=#`Q;*7dKmKfxXJQaPP0s!Nn(|QR`9b`wD#)UwakLJ(FjA_B?ZM9G;wcW<5m}&-|B`|2NM;o|6?%Jx`ZYpYwt| z%@xnSu935^j&j!DMb7%~k+aT$a@ILc&Uz-xSv==Ydfu0_o@H{@vsFGUy^imc z^EtrZa@L>kxtxFh;@;zZcQHBZIabd5wc2vlQ&0XzT4xhE>uD*co;S*==dE(;*;~%~ z`^%~4vvS@iz945kvy%H9y{359xj@c3KML}Eqj=Wyy`1;0y8{1H&ieCC$nHDqEG%c8 zC(2pRsdDnymXp7poc!0x$$yia{CCL7-&;=p$K~XIMovAa1U^&VwsfYB^W`&=zbk(` z`SQR&m#54@UuY>K}i@J4d_b(@@i z^^jBlesbzRSWf*P4ScMe`cDabrkwh}C8z%H%c=j$z}LvB|MtLl%c+09N!fkJ50_K_ z)8y2@ww(H3ET{gL%c*~>z}v~Gf9JsOlvDqHa_T==PW>MZe5{=MPYZmGoI1Z3_)t1InNKx0>4_$=T1H4)aO1q z^%)ZQBl4N)`DA?HQ{+oh{2ckpsx!+z6{53iE+dFdZw7g>w47B*?Qu@yx>)a`yXO zkY|hHslyIAb@(gDbHvo_dE@(WCFE;T-74DCbJ0n1>UpM|b9b(sbJtML95$6dmtOC# zku!%k$eF8q<;=r_a_;lTsyv6K`h22z>hqnHS~E;Va5RonKcx zbNIHL=e?!M!@fQV;=i<~_qm&thkb1e;&;ip5BDh#`^xoF_B<0`K+bbxvEnRn) zSCDf~t11umsiAnD4{OPJ4!kJH(5;hV}szus0n_u)r!zHh!-d8qR?#dA(~$vLO{ zl!yA{dO3TZc}^%GXU>ZyXP(JZO7Zl!f}DO;4f51bJpHOAr(YKZd9GGG^|@Y7eQuLe zhaPh3&|l7eACj}*$K~wn89DoUUC#R7mb3n)a@N0E&idEOS^pL}&)d7@tp6`L>n}bd zd#?C7;WBd8Upcwws+!{2*O_wmRX50UrQ%u7b#i`gxl`a><*ff6IqMuKXPwW=ScQfCx79Y|GU4%P5x~1+VYvnFAn^2 z`MW8;b>Qvgt5SRyIrZr&&z(Le9}xHud5IMNbl{WZrBnR8z!%Bs*Csjh@S~ji{~@RT z|H!F-!CBe!fFC8N{^bHcQBM8OkW>G2kts|B8X1B&Ys$0>4mB{cn)- z`Fv+NpU>YF_`PyomxsxDzw?-!x=oO?&Z%;q|L4h{Pxrtg`St1fe7T&@lRua9y1z-z zbIXtN|6cdyyzb|olihcohl|L0?ky?jbAYqt^y@r1{c03=GdbT+X&ZP)Iq%2s4E!EB z@6#U&e3YE|c}C9sJTK?{@|?iu%lZDu2Z1k_GoN3{na}U!ywCkP@ZaUkbKY07=Y)AK zEa&?pCFRU>c{%TYs|J3CocG1`0>4DgdAUl?d1)i(yxbz^ymXUuUi!&7FN5Wrmq~Iy zH=ZtM-sUFfd7JmAZz`TSd{54ttO)X~Ry_0bwVZj_66E<&@yyAua_+rr zr?8y`XpBm&jL-EYRIdbNqL6GM%#WN=@NrTwoQ#ljUyYG-Z%mLg4=>57&#Usc((BzyIrG0p&g;eZf&VQ3Chd1`;CWulo~s{H zd@(uoIaXfc*v!9QP0oJLl)s+#dzGC1wvqpm*3((edhV3duYPj+HCRr+9+$KJXXMQD z8*5<_tnKgo=X%@f3J|!-|K=r?G?{`b&H()sz;D#h~k-_ zN94@UGs<&jnx6@ZXMU#2nV(mKJZ~tT`FTgq{45LdtWrGl^Oc`-u<>B-EA&TdH$0KsyUp%8ctY<`q|bwQr?iszi(BIlg;P#)@Yx8gac1LS<4>tW?# zUlSD198Q%php#FR>v==*^!*(; z)?ZQ1I!}_b&iZoJ(^$@Wu9mZ&>*cKHRyphGF6ViEgq%OubFgPX6|C z^4}sS|ATV!50_KVrviUY-Y&hLnl7K0{1y3<7;P`)n3uMYfc`Hv}no1FUWl3$TN z*WDL*-Z!)R-YLZ&9e7#!tttMrz-!CtR~tF~>L927cgU%KZ#nh9Kk#94>i<;W&&jF( z%W~@fnwc2MdjdJS$N8ta+seh%nvinZ`PnJ{vv*gtOJUR7m6nHZ^^}jao z8|Bph4mtJjEvNqX2R=+r{htnelAQX#8u(js>c39DGkvbISPEMUqlk>i^w!B69e5s+F_m55GJWsZf^FFbIocD>{w-MrDW1M;m(!Quf;@jI zo_^(Cm_1kY>#*dm&ryn}kH^UAo-WdoMYC9~k5rta$o9QcmB;26@ISp1x0!)Au<+o_UI= z?~CO0{o^3d2E}v#Z|~r65mb z#WO$E<;+i=AWvPzbAL9JbAL7u^0ZPspC7i9Ge4b!JY5w}-+RgV+;3ozXSCw!*LXSo znik}lsd(x$PfmT_4f3o}JnPvYXFWg4`MST#`MO2k&7MQ@mz0yglAQb}%Xx08FRzr& zOJg}-_v+-H|2B$eJssrS!*>LE?ovGG=w5p|M-K&ghAWLUh9G)d-4lk55ZIsN@yP9MLK)5pDX`jzMX?E8x6|FUx8Pmt5!)8zEGww(Uf zm($z+Ag90I z$?4a2Iq$Cz`5?RR{52EbT{XJ98&$ZSKyrG<*-)JFc9j&QUz`aFLvOXcFXUp?K!x zS~+vlG01bP;+dcBa^~m0AkY1ZXRe0HnX4y*JWng0d7C6>-ev@O-cvk3hqF}vXnKzQ zLe8A5x2HMTE@vKg%bAD$a^4>uvN-!bd^&w@Rzyx6O3Ig{_|xU=w~m~jBdVX==jBqx zbMBhU`T3tVL7p2FPdz)^Q$6nr^4z0%>O4?Rorec`9#uSZK34u%s^<$qo@t7wk8|Xl zmjywdcNI^6KbF(q&x1TaD4sh1Vo!DcJIIsgqwG1P&V}UE`RL@HpVEq_K9%Iu=aeAN z>58X5b>!5ievs!H#Z#Xf?5RFo z{G)Ua43@M0k@D7Q{m;l*|MT+S(|Tsh>DL=_`t_lleyxx*Z(qyV?<+-=XCi=>2>YA!0XG;Pw}k+ zZzsPn#di<9kDPvum(#B)a_T=vPW|W0sq+VcFPBsQwSjMxQ~#ZE>c2-${qwBIo(H^; zocfmu{CGL_uNC+Oa_WDRociA;r~bX<)W4sc`VS5KQ91R0Ht-kZ)PIhg`p=hB=MMs3 zE~ozA1pd98`u`F5KXU3{Ze{j7@V?_jInPC>%X$8(BcGjqzN>!VjpaNqwU$4h&UJfv z&GcM)yPW5ZyW~7?43P6&F+|S$peN)!KRhev`C+P@_d&DeJSQxdQ~%H9CzZ(bX;a`o z%Fj;me+2%IyhVyH{7Lpa;Kk(3Lq$3BaFU$<)|AuVx^nv4SWbVhlGEQC<@EPfIsLs` zPJai;>F-E6{T(f*zpu&pxu6B|?!_{7UlRB#`MearF7VCroZ^}My8{1HUOAoLysI+* z9`9fHxuXKfc^^dlk@DIp&#{3YCugpz%bBa1a_*T61HV*WvQ%b2Edy^WXKrsv?mBc) zJoDUBerUR{1_XHqDV{kWA!p9V%9-XU^YA?)`qKc;Ro*M+-ME*gFze!HNZj+Bl zbsH>aza!>2l_+ zj+}XGBxl~5$(gsda^|h0oO$aZXWshCxrc`a{-~V!oF%9Jugm$q?fY`}yG+jaL$}Gv zze~=2yD#v(pJ(@-`}P<)>!~Q`zCBmIq-ZAZ#q!UKWxRRd*T|a|&&1yx_#JZ2<9&e- zl5-v(34Dy4^Ef5&nR3qK0y%yEK+d^a9r)MsDd~A^d*Hj}oZp-;vir{Y%`cyt-aj54 zcv<;xDZZ+l^L~b$^IlKRoL?g6ytk5b-rLDJ@3+f2?{~>L@An5jOwM_qDrf#@%h#rJ zu}n_e=*=c}sn|N1MZzjfvGx1pT=wvf}` zYvuH}lbrr`mD8_ba_ae*d{ye#4EbNl=gO)7JIQ$t=lc#HDxSWqkkgm1f;{ULPrtUv z>DTTc&mW4XkN?Q&W5F*obLD*3N&&ijJCfj=O>s6?iYBLg2T=XL7&z+aLxhx6sk+q-h+?Grh3^`)G-+9GFu zcF38Z{c`5ykgu}uE9RuAoOviMXCA7^>3a=1eQzTFJDuy6@_W;BNc-fT|BgX?7y15_ z=WgZUzq@f?5I;!X=jcqm9#J0te55CX_;GTcXQnF8?dg5Oj39oloOydkdH%ci6we&4 zke4i#+1FP=p7lZe7J0*zXSedOuRntLf8@PVo`P#L>!R<}`H1A)d&HNJ^PE;udFcCz zLHwz5&S`Dsq0Z+kp7Yy4&U4)rL7tXDd|UY^>3Q!K<)O}96wm$8Q_lS`KzZ2LAjNZU zjF5A0j0y6LQ#|*{WI6ZA>>$rv#dFUrl=D2fB*?QOi2p*qK0SARr##eoOAx<9{!_~H zm+~;r{{-=eew}?kbAKL{oOAKtJS(1i^;G$|^nQ>(|CMvZ{ZLQw+z*$_nTIRo%tJdl z{puuNmg+N5&iaSSdEI|1@aN>b?oSW=6*;f_ZwLO7oO}2SIrUsG=RWyK&b{%QoY(z4 z>$2y8b6rTzxh^HAUlru^>r^@C^lUlj^kO;vyg&wJ(6^FcZDIZDoc zpOUlRNpjXdUCw-dC};gEeme3G1VG$Zi2a-Qek4}6)N^SD+{e>ckM@2Z=!Wb$ z!H)^KJ>=X!edXLgL*<;8N9CNC z=j7Z!FUq-p=E^x=3+0^mWr2St=ecxa;6KQD{`@oWT;JyW`xobt`>>q+lJwkoqWqI| z-p>sDTzS)U9xn~NxqL;6zdrDr<(&7Pf!`IZsn2(E>a$(W`>#VbW%`^e^_`#hJ50{c z^_2{~yqvkM8u%GF+c-{ryl*zgEb3zqu~(&GO6B_f2*NzDLgMY2MA*^Me{#WPn!l2v3(L9pjtRV?oO`cY;AhIY-!2Hek(~K&DQEuM%9;P$w zIrrW`IrSVWXP%#uGtbY-ndcdD=60@}x&2H|zt+k5xzHa1|3%Kvq2=0|Jr8&RIsGaY z__1>4{G`B7lhfb2a{Aj)PJgeG)8967?y+0t^tZd5{tl4S-yw4PJ6cYE$II#O0y%a2 zKu&#D$yxtba@PO5ocw>wxqk|5%bo}PNICbNod~Z4N{pIxQVLAPJTu%L;lT-f}<=iK)%BkmD za_ae!oO*sDr=CB_+3#=iwW*#(e#q_@&$lJz)TdJNf(QP!LI?ilIkvLmsath9b*mHP zsjGPE*-%bBn+JJXDV{pFlT+u;L7uLPr~bX<)PG=*XSCv}^LRP;(#wIrCg)yyJMfR> z^zjQh{aP=lUq8v|%Wrb}lIO?lxuX7sIp?&W zocSCqr=Cy9spqqD=5V^4d3!}pecq8XS4-r~)mAz4uv5>b6JD^Jl&t*?ni;4wo};Rpr#@40(riUp0{v-%{Q_#dntz-$zb;9+Fd^ zQF7|@tepD1Ag4Za zlLMb2r|)mb>F+yo&im(b`uL5U`tJ_>FZrJI{^F2dvgZUpOio{F$fhq4AIawlSJ)g_z<2Q2h|0O4X?q9R} zNdCj*kI&4)Q-mm?nc)qgIX~Y^{9$tHTvB;B7iAPr{g0RPd{SL`SkIY?r!VKqd7Ww)Y;f0-dEn`=uCYF2R>3>sbnU8lAJzHm(!O;fiITRuTSOlWv!fZu|rP% z|BzGvLVsoU!TjJwv$f^Goa_*&efp?N~FWnjVJ#x2U9 z$*KQjIrV>4PW|7KQ=heR=47Ls_3V(-uRrAEFS<9ozvM41C;tg@@}DAS9%==Cft>Z+ zBxfFOlk>jvp1=pnd0#Lp@TcU=&!oVo%bA}yHJbbmBe%+Yd&!smjo_*aRXJ37SJpC2Vejk#v-^YSH zPbr={JSV3P(}O&3E1vp%BUqA51a_ZboPCf6Ia~=l=K2pwk92@vVIrBVAPW@k(Q~wX;)PIGXdajdG z&&_h`lP6bpe_2lF;Ve&y&05tp6|h#`JtxJa=|~i7zAPeyA*GJ=Nu`=TbTOo6Fg6 zTRHhV%E>=aPX3{C?!zYne^$OYUOE=}=yz~s>?~`+0hA0o`WkeAFq@2D? zP#(_9T*Y@u^RrOS{C_5=kL%>j|1Wa-xL3~nSICz=Kdh&Uob}X~cTekYEGNFZocKO+ z;-8YU-{<7id7+&659QS1v%uHMndct@|3$td)#2~tp65J=X4jecLUQK$=;Y*Ko=XSu zmE_FxDaykbCIb-P$j{N?gzQl4u9zd`zEpwiezBeka@KR6e00iFUrzk3a^kzo zi613rzfZ}j^ISRc3+2>dS>T_^>HEgOe~`1D-;=xVg$icZ`T110qH_9JMb7$b$mwHC zIr-bl$=^plHLd4qhB8Y>U4FU^DaYvk0egYxkDa*yKYru7e$^Lp{3ocLLC z;+MaL0Q_gw3S9v&(1B3XXa?axu%ENga8^lkPQ=gZWhx7QZ;;GNaa{m0!@8xS!-+z`f z&jk+8?mK>@oOK?XoIWzoH55;tT5|GSCEuRb*+x#^?+JXMoczO+vrhUuQSs!TCTC7w z3-Zhl;@_1sC(D(GIr%h*Un^%{-zyJuvRCo!E6)+x{pI_@W#zx7`kx@D4i^O8NX|N2 zB&YuD_h!YD{|-5I>l5VZAH+W-XFZQ84|RJ{@vLW-oS$1>D$kWZ_ggJz{W}8xL(V#L z7s>RCy0Oj@$q)Y1gWpFZe>pjyOV^ekp4M4UesuEdbDqoPkuQy9h z{OfY!SIgf>dA^ntpZmz{IVZlLocQDA?5mob?~7e3|1hnmxqM~v-g4sm%ZYzhzBJ`| zK~DTqIq|FI#P5=`uRrDdoMDNhvg`R}T2DFocgZi76Mwm!_*>-Pq&(f^#E+H}KVDA! zTXOdGzWlfJbvMd?NdANT*W^bQ&8`perR2n)CEuCyoF^y#Mmh1f%87qS&b~&;`SVg{ z$oHr9%$4U$-#1?;Cw{Y>_}s;^>yta>DJUntx}5l$a^kO)v#;yq{P~vm$d5?t87MEA z{6#tOv*g4tmlsQUK9>`}PfmQ^;@Nd0zJi>6Rgs^ZzHS3~h2%}-CnfJ8C%&(o_%ZSm zQl1HN;up(_UnwX4Cpr82OnrD_ZP*JAN;2WUpL89MoylZ^6DvnT{-dB z1b&0OLCSM`a@NW7^FYOuf2f>1Q{?qh{+V*(mj(WryhX~hAvx>h`S~}+lYhUQJS9tH z&+}y|e|b6abppRoetpW*I63R&Ir9d^lfSc^JP*pRPWgw+iGMNhS#thd&^ME_PM+&N zQ9Sv-l#}OId55&lee&CrmnfNC|D5s%4#9!H%E?bJ|1am96!>ZKHWf1Q=LUYU{Du_Y zJn(De%Ts)Zz;BoDN%6e{?=R0^DYO1zfj=fMoZ`m?K3U#6#lIuZNp)T#r~aP>zE0jQ z?RRV7JLS~>@4)kw%JpwS4*uVR_ayZ{GVoIJoQnVc>p8~-UR6&0&kp>2IrYCJ@GIoh z|28@G?;)rD{R4kUPJNyT{8{-Asb5nApDm|83j_a9PJKQNe65`N?2%KSoMR47!vFud z&2r`c{bf$!z>CRyrug!KSC)@V^*J-}bLAhU_(p*@lhdy@fp?G}mdfj5;?|IYG5)4g}6{Fvke0v{r0{V&Q-O6O>nykYV;<;?ke za^`uxocvqlt5g2n$$4(smcAeShvGTE|H%2e1&__lgYz7boH^kfm5@{aib0;U6;B<` zm$RNrf;?>%Po9o)@(h#{KU7Zq3v%w&m*t$_H|6AiPtNPhs=&XJbH09%Gl##(IWI?+ z$v)Stzm%NypCD)br^s1Poxm@Yv(765Z!Ks2J>{I=`{d*wlH7AUPVwZKEax7W9rzn^ zzV2so@~@L`O83n6z<0~Ze^}Ys?d0Y9b$!`g~ zn|yJKzc27X@-I^SV{+>Jw0wJtpB(rM`Ti9DcHke$bEW5mb%Ae|)2{;M{&#HP1OHo2{R@=Oo(KF$IrT3qr~W6%seg^YYssm9qrjWVsek*xZ;?~~A@ZE` zJoAX0*QsX$e_qb(*POuT%XwY?An@gK*8g?jo8-K%?Fjr2InPnWD`d|@-Bh14a^A;P z4!pXY=fLvq}?;Q!5i;O|??|NG0FN^<7ml)%rDGY=O9 zewmzkXc>50Is3g$&VGBynTLUa50x_yPXzv~oO-?~r=IW0?@o1I5%?GKJ}LeuId%R` zJ~_=#PNnSr;`!w-r})xx>Q+g9WjbHy$=PpxIrHBl@N4DFf5*VP$eD+}a^~RyIsKX_ zr=HW~-4)Ni`pDVWpdimM#k1eXTsl-I-Dx!bG)ueq5X{&hF-%-x`y9Id$DV}|ekhe~K93#IW`2;z2cuCHFUzHb6_sk+W z`&ul&G{t`!_*yx2_*>3?^PQMI56o?`z>k$Pw+d4Zm(JY~Iq{FkuTJsL$XUXL&ru*sxIq}Qo#BY-ylk)766JMfgcAbeYCnvtPoPE`k z^LpA&eq35lCwaBx!{x+3At!#0yh_S5UrzkDa^kniiO*LpyFTpea5=BDrILFNPfYOa7|-{^W}SUo0P$;=h-VPyVxf zQu03o&vi<6zhhb$x07#5-Z}6)<-1b+D0$9t|6Y$d zPs#HppA`6X`H?ApiM)LBRr2GKuM2#$yhe)8b82>9>LxEFzbN_9ftQsxOY!H(+aY#E`z7xyAC`P@;3MT@Qv9=lzaXEG;`3$NpTj+qewkAw{XYk*eek)0 zzsjfo=b#@7{-6IPzDctD>3{KN>DSJGb@KGvvHp9#ZkN1#`d{+goPJ$dz9{{=y8PYr z>zeX2^JJi|ylL`=@*ZhJ?d0sYlbro_m0z2F-Amps{kor={SKBBH&R|cHFmVTW@_4a zdAsCOU0 zdGqAyx7qy{&wfiPp8Zyrv!0rA)>Bu`dK$`EPg6PTX(eYpUFHAHo4nn>RmsWeC;xBW z3o%!pO?;2WjTGXD`));<%81to63hIZzUgko59-Ac;Gr+Su`v(CzL)>&Q7I%~?g$Lh+N=Z13Txt)AcT4yKuqU2rW<@09# zK`(piZ$CNrz+gG|z)1NS>3ofr)0dfY);~`^C9Qvvd|L9w^4ZBZ$jP%+PM)1|^6Zh% zPx*6F{g@x>nO|Nv{kn+!!u0Es^7`r5c%?Dl`Q_!)zh6XtQaX<%<@B+-oc-36e|T`S2ma#z zV?94)IH#fFcPDQuPygAMoL2JmpN+`rD(CC=lJj-@$@#j2<$T?da=z|p`Jt))>TB02q9ET>-^Uv)?`PylMS8={f7*FSF)N&iaeUS$|16 z>#r`SJ~id}(mdCdlfR*y{O#oQv6GxWc9qk|UUJTRKRM@pu$=QgQqFlFE$6(?l=F4x z$@#jAQi0bIjxh|0lsdx?G&wc9rvWd&%!h>**&Skeug4);}is zNX1kC(Q@iPUQYd|$f^G#IrUjAr#>s??01cv{ce!6->q`?yHn17_sH3APMR<3#(wk5 z*>8C{`>iZzzt!dJx2F7_)UUd7*56Rh`kTsGe=9lb?ME#H^c zGhY5r@+tBXsb4eY^lP4+el3#Iuf=luwLwmOw#uo`PWg_s{ylQ``|mdp4vgHvu!CD- zzxfY-W8uJGIQuOkXTK%o?6D zb5B;6b5GWk4@u{-u6$1NhH^enY$|V>?%P&!`q)l>OS*46$$KR4C#MdB;fRo{68XbYapv}lQo9%Ynv~Ig`ciRbwHh@Y*#3RIp`;KY8-*dZYh2IsGrn=}$>cf68*|t;ngjDyQC>oOTSrWw<)LImYjOK za_a5Lskbku-huqan6IIn{6})~AIr&qA}9a3ocIel@t1PqujIr}F5F!|%wtZ@Jm%%h zV?oaOr!4Qsd7vWy#qg^91K~9}uY>FIkHq#3c{QHzoAO$COMWuEEk70Bk>3^l?aEm< zJ^6{JZTmiy)1Q%?{*2|n7WGc#^k*ukKQs9>;>_jqi?(?#!`Jdx zMIScu>%#L-*~a5_7yT*7=}%EUj=DaEBhi9S^2e88k8zaaWkms4*;PQ7h8 z`E=yu)0LA?Pfk94Ir$9ab3 zCucq9<*es|ob_Cme?Hb#MZOHL%IA@H%^vsba>i}Q8*zL!<=4h>)RHsrT{-#pYK9JAD$8zFKE}Yux>?E}ivF+U-wa>N>E}jHKl5?iv);(3 zASa)qoP0`h@+r&7ry?hxx}3f>IvWuzb=1X)YXtb zKfEbF65f)t-nw$Wf9%Qm{;@CT`^SO&voY>aJ`EqqKOa7p^S=2+K9B9E@?xBaXYzLV zTz-EX7Yq4+gs1O_a{9KB)3^LHcGny0q#$RV6y>awlAPnWEa&*G$T@zia*p4coa47CXWW*Yaocjn z?Z_FoD`(uE{FU+ZkG}l6@PYgd;X^s+`H`G;HI{RppU7EPb2h1f zCztH5ANrY-)6cw|eir16Ta+_yNuG;-mgP?hugI?qugd9vO-}#oa{Awp)Bm=d{&eK@ zrz@x4o}7C7a_Sw(sdp%+-jSSo$8zeO$f7p9$Z{-xi)P?4I906NIrVPj?~3_KF5O*kiyza}SsQ_eiLe^*Zbdvf|el+&M)oc@gE)H{(=?^I5`GdcCn<BOCePYkZ`7NU zQ*T~Qy#;wE=Bp?t|B{^i%X0Fs$jQGhCw@at{HC1vEjjVKa^|roXCC`<=5ZkB{43?1R-sopTPXC*7`rnd|BTies zjMo_*`6iw}x^nLKYdA}cOkzp>Rrn7 z;Vb#Y;cGedZsgRPkGff(v=3^Jx}DU=ehiMIlsy0;Y;~4zHeOFEVj$ZKNVh-lYdG6>Bzq<|4evAeqVT9PMn6EI88ZmTJkSM{I;BacH~L) zvn#(KyeEHLcwbIG2Xgv3mXps!PCipP`OM_xGnbRkLQXzwIepv6S)a)j$=>C>^xwT- zA&5TY5U=mo^2@?E z^2@{ddyMBrf9PlKIeW`+|MwZ`XHiZ*B{}(&<>XV5lTTGnJ~cV{H0AWIC1-uM<>c9s zlV?{>o;^A1xi4ou59F-pvHYQ!_lf-4cwIe}cjEQ!OwP{(=5n6z7xMSS^U+#PJ{$Re zN1n-*yX)kF$dkWs#=3f9cv0IErz9s%Sx%ga{NjjTmD8V^oc`41^oPF(MgH`st?h~5 zkrTfwCw@;({Gt4^sB0v@JbWy_GJGOu{mjqd3;8P}&Qe|tU&&t`o;-JVJrE}+Cr(~Y zoPwP1Pm6MnyOKSgN6K=Z*D7+3)2f`;;WhbR#qrXVQ*TR7y>0pHqi-Gg_2FGP_4ee& zcs}jRuM8i^pBFxqQ}0Mly;C{)%;e-Vmy^#zPCiRH`K;vRlU%jC-soFS&icvA$+I9Q z&!U_>OLAUEmF4^EP0o6&%Xz=0A?N*;rkwX%TJrm2{j}x(%6gOkJL^sUV0cgdt?<5_ z^WH$t&wYn-&U+*IFU9dSmD8V@oc_$^AB;Q~^4|zw%0Cpol7Aw6E&pWrM*fBHIr%r_a*mgYoW4!v^lc`mZ%aArWF=>vtmUkejhy2*`S#uQ!||JwbNuGz9KQuQ$8TBA zxD`3$R^^OalQV8z&bSRZ?+-WSyg%HMpN;o{+j7=nM_#;i+sCe)b<&gbef>~Qe@1fp zGnPLP$I(R2=isMu`ZJUNZ^T*3>HkX3xNAA%Zsg2YQrcZ_jGL3cB>JD1U&H(J^6v{T z%9*c{ocSutnXihR`Krt5PeV?BnsWNnlGC5I{F11vBfm7fE59ndC#Ro%IsF{S>E}>R zKSy%{)S%+ge>u@6Hd_I?R-d@Q0 zdEZjb&-+&Le~I~B%lUnejr^h5K6%0J`r-FLa`GfT-=CM4<8??u&iepG`JM4Pwj}3$ zfU2DS)a3N1F8^@U)sTN8yea>k@Rt0u;cfZ7;T`$khIi%krzfXBeL4LZ$m!2mPQ4R3 z^-kr~JCjc$|GAv}7jp7n%E^BvC;#MyyX%ekIr;UmuJUr?7v#h*%Q;>ua{5-4)3=(O zzBT2nla`!y(w4JMI&zNRuAJkyC+GO>%Q=1ra*p4zoN*^|#+}L;cP3}txtwtq@{@5s zS<3GWU&((Wd@bkmxEuL0Uf(7!+Fft_oHQr@XuLmGl+&M*oc@&M&y74Q@=|zRPCpxR z`q`Az&z78V+j7S3$ghojy7EeRPhJo2%jy3>PXC8;`ahD>|EZk*%;fZEE~nmwoO+jX z>RrjHcP*#hjhuRu7oTIj$*H#}r{0pBddqU^t;nyA`Krpvza}UDx}5oH$jQGgCw@mx z{H~n%Jvs4*a^`U)XCB9L=5ZqD{4+m?FXWt;mU7NZEBQB~|7-bwg>U4KgeOOK*H1Uj zV>vl}&dVQ&*H;BOpYJNm=|e^SqpTnK-QhL)N5Y$O;HkDd|L1c0vyjuDrJQaEJDwIq`dP;`immAIOP6mNSnNIrBJ` zGmkSl=bz;{d?n|+w3c&T+Q@H>-=|H=yX)s{cuxNI@VvYp=eL5KJ{RTx#P^SK`dpRM zhnjrN`jKA|c{b#w@V1;d9Xb8%%IRlM&bWO!;|}E4Mm|G%C43~WhmY;i|B0ObPv!J~ zCa3>PIsIA5>CakDy&F08CRgvSH|ovFsW)$Dy~(M!D5u_%oO-Kr>aEGCw=SpNhWzT7 zucn;ir6ni-ww(Msa`NxXi9e7Ne<&yZNKX8zoOztdna8=Dd0faj|E$m98#(8t2qC99~$ygtRFf5ze7v@Td{pt zPMn^ce)i?`b0BBjp`39?^52Vm#_~^xPvl<=pUUa~Oiusja{9lJ)Bm-c{%qv*Cwb}a zdZXT)oO<(e>Mh8rw>(%ks$I(E}ybR^9 zi}@YNIliWH@}J3Tk?|42^$Q#tWx@=wP)pUa8AkQ09`XC60l<}rEMcAi;p%wtZ@@tc=({1)UKzhyab zDstjf<;1DUpA`M6%P$IV$e$kGl=J-Ck~1%D`K#l6(vdSSeL3|Ghh)LWB(E%L9+skb4g-lm*-TXO1c%c-{`r{2DtdIxgq9m=V9B>!sEJC>9GL{9!w zIr-1zug93jf}D9Q%9+QKobylhfIoga)ZV`}`BUSu zx;)+%P8#x8#`aD5Tf$rN8^XJC#_h@D*V&W4oHzsdEfIexe|Pvu{>$NG`LBmh7 z%gJ*gzbdw0%89d*|6y#OeE0T7cK*rci#Rzs^OBbnry&2wh+md7j}`fKv3*reoSOVw zv3*lcoR<8Jv3*-koR0jGtRd;8FDK4G&N>{*i8GR46Y-~V*40dYW}8kjmlJ0pe|^MX z%Zam*|9HetUcSA-dLT|terv=p%865wb6k|=#Hq-CI^x&m97hc~$5B&GoR<9Vh~GVj z_vH7*_I>%^gb(Cj2_MUeGm-yUY(JF~XD0vW*nTd5AbcS||NQN|uH}rokyBUlirw`< zoSgjfh+mYGXGu<;WjS#w@|Q>a`T-BxORyooJAR+7dBC&t8<&=x_`h<&c8jcy2jhP( z|EM2~L%eMJ2)RcW#{*f6_*P?2;$zo)u@A<-`oQ*&joaB($5bG$jZ2PZoIeGH|&mK#P+XsI5fM?rx z@i$&oW}z3uF=89cpVgKoL~ma|8Xoj!f+ ztpPWlxZ#eQkKS_oO{dZU_HG}$;fB*E?%a9!q5>0`I0k#9bIDlP2)e|cHD4tec&Fj_V4#9^}cYo^)p z`j~L8i|PGrDL*cpt9snve1mg5a{sdQMi#3I#P#9_wsl`4nQi?AO<_ z@wZzCrdJQfx_eZ%x8ktd=NF~7vY6hV7kn-4P~6{hdm}qPWt+tEe)Q3+wl_!GUw4yN z$Ntwmy64`lQC3)bIi(%A%k}l?HrZ|WzgWulP7==F+k20m54r!Q^u}TR@7}cSNG=Z6 ztp8b`-2YosdrJD{{_**LwofNwU{{hvnZYWzRP0adp#nWoG$jhZ5<~zmKNom?A=}=Q+F|3bWBl&>vS`WP z`73+v;qkwe+F|2Q?%j_6*E(T&+dohDKWzN=v$i9Z)5o(*R{t~7FOUD#)Uudtm)_jF z{OlLE<3D@{vb|<}t{+G_yM4iS^Zku`uZ`n(U$!?GA6}(54$FTS`Lj;4{IlEak6)Ay zo{jJP`!Rle95UTvdm(SG3$Z_sbA4~@&wZ}hkNYo<{Z)Q4jr~`8fc)9Nl Date: Thu, 30 Jan 2020 17:45:30 -0600 Subject: [PATCH 313/336] Delete bridge_cpu.o --- .../reccdi/src_py/cyth/bridge_cpu.o | Bin 1080720 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 build/temp.linux-x86_64-2.7/reccdi/src_py/cyth/bridge_cpu.o diff --git a/build/temp.linux-x86_64-2.7/reccdi/src_py/cyth/bridge_cpu.o b/build/temp.linux-x86_64-2.7/reccdi/src_py/cyth/bridge_cpu.o deleted file mode 100644 index feda991ccd2239ff1a884b6e18e59ef69ea37b0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1080720 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

        k;5;{;aBGH>vQ-mIsD!n{%{U|F^B&x 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 From 33604ff8362a5314b02b625be51375421d50d35f Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 17:45:42 -0600 Subject: [PATCH 314/336] Delete bridge.o --- .../reccdi/src_cpp/bridge.o | Bin 534832 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 build/temp.linux-x86_64-3.7/reccdi/src_cpp/bridge.o diff --git a/build/temp.linux-x86_64-3.7/reccdi/src_cpp/bridge.o b/build/temp.linux-x86_64-3.7/reccdi/src_cpp/bridge.o deleted file mode 100644 index b2c315366c8bfd610ba76e95579a2657959e3176..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 534832 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 From 937b62a4f509bd7e066fae6bf55d2e984fd5695d Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 17:45:49 -0600 Subject: [PATCH 315/336] Delete manager.o --- .../reccdi/src_cpp/manager.o | Bin 481616 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 build/temp.linux-x86_64-3.7/reccdi/src_cpp/manager.o diff --git a/build/temp.linux-x86_64-3.7/reccdi/src_cpp/manager.o b/build/temp.linux-x86_64-3.7/reccdi/src_cpp/manager.o deleted file mode 100644 index 3cc9e3b40cd48e9a85c7609b98dbbcfe877dfa00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 481616 zcmeFacbF7K_cq);yR+=>41$0xD#|KL1_cA6pt1nmW>wCHA?&@>j=hUgH)2FMuW@e{$ zDm^(ChJpPT1}6mm%u0h`c8@CVq`j2d2lazPg?oTQg5cFta>G@#M;=zK-gJ@nDygVf zGGjwoK}q=+UsHnPfbA@dtX8jM5DZvVtzP@U^Nafx_w8K%L2;kr@}G-)_vuwqzP9A@ zZ*t*MNkyx!6>Un&FDa^1QZXgBWX<%V<+Ou;EWf5jDX+KXCcl=f*b^(6v8URMA7eq# zsnzmUyE?V{veoOI!#BImSYA?ot=Qm^`laQIi>O<+Pf7W@lJXtK;T0v}_Lu9>1;bPM ztR%yuX%fFKowNY_oNyWv|mW{B& ze{73jro3CEkVo1w&a`Dir&hbzmbXk>Hc|&ZQopo(NfC8TTRzeH%F&jOOJ?0#q}1;$ zyQKVcKK`vG%N}WY+YeX~L4e&Q((o z&K4m|LY}StS32v3qB|fiE&sN(e2-e3^<>dfGAqi8a-B_{SYKYQ4qw%3MJdLz;;5p| za6B7NZ9_tUwigct2d416gwA` zmdRJKu9Z4CUIHcX#t%a_4f6>Q%R&S@W%uPUi@!Prqj&qsT%WBIqOmWx1k z+aH6Q>@Qq;t3e>()J6qLGG-l%>`ca*jM%&NxO=VKU%9mVeVCqD)S0#`igf z{Z+l%jBib%Nl%)z#neGNOqw+C?~*2Y+WSbFqKu2KdaKvXC57=YxfV?q*rlI;n={wj zW}rzQMamm(Ig&Ha-Am4-4K{`P%$d~POU_iP=oIa46#G;?PA&K0=leVdXlnGTU7 zku#ADUtu4&G%?v5W5ir3bf#J|B*(QWsi@{3}CLulKN>8}FX>UVNHF+~d z63Lq;w9MVs-lqP$z#ihCEA|AblQ<=-?$D3nwzDH_b9O`>PZ32*YqFfL1?%=<0>l~hc^ zb}0f@5-Dd7A~uN!a}i15wK28fP2&axjjgF&ousX@P(^Pq|}6(&(*wxg*eqolNqM zz`)FKM<_x5S1Kk=I#ESJF&?E)J(&?Tjec&Do=b|R7bKl>=H0n`wIoAhiK!-%PCxhQ zwDDfjDJhbWeZs7iP9qb`*=Szpiavqy3v*UK!@L8S&2F4(FO_p7ea)JsvleSk#n{+JyfcY7hu zw;vo9@2bgYlrr4@}S1Jc`N%i@QQ(!YhWOsk++Lx6?g+Sn@+xjCU&mp7q%H=rtto zQPQrX!PztrxsGbt2T}X1S5i@{DE$(sCS$Xg$dR_lj?W=@;InToTEZXxV}G`Zl-t{K zq;C(hH^Q{HFtowWr9N*T)Xi`wWI9!<%)-fz&cX$9Jt?8i*AnghJp8-T@-am%ODasl z)cLp$3SQmlaLGh9a`({5xJ=jo(`4LDx0&R5kC4eY=FWPVGtEyE>DEdafJv=n*7Tw~ zfTvCItGjzv#q^?uY%_X#H+cNV@^4y{asZtFN)YUz-$8ms%hHO$xt*K*)Op2Uv92?| ztTy8_h+FOH)an;I4w$B}|7n#+T16p(4a4u6NT zSv>vuuGBtZ;DNBv=0466){6(|d;7eySSJqP;Q}{l6DNF@m%5{O$)vuu*@(*wPc!Bw znUaFP=v-b!)SN9_k$KMPTydgllH3cVEISMEZO!L!QZGx+qLq(Q>YX?Brs$tWY`9%w zo&vWQ@;yfC`x@R4E8oNHHSDfma}!*W>G`Acv8$_Hm51@}yyDB4Yi-4R4GrE-k0`0Q zDAzpum(Ds$Zob>U{G1YkuAT6vEk9R(A9G5rG+s7+!=PhJvZsF6zq<44D;{*rhRqJV6 z+J2#GY;VpZl=PaBM~>--LMHs}bqwnO9C5Kb?HY2v&7H>#PoBlfS8e}`cVry@!EyG; z*?b?4H$Czu{Lhjrzd;6S&G)c)VYRJu`In|CDQ{s5k?wqYv9rJL+{D&CF56+6)%+Di z8E$#IS}iYGg9MGk1PJpLbXY87ETDMv48kfx2RZ^Z+T7Gf$vVBVJ1tyMk zoq;z87w49_cdITGu3X)wr2M1EUCXWyxOlHua_lP?)WCbiU98Odzwp zy?m!LZKu_~k8RG_xd9!y6G>{-&bMuS|F1t~EdTHICn9s&Wtf+g|5u*fun=Q z1(sLJs{T-|dYqO1P;K8}c3OZ5+eVmZmChQBD>V;qvh>eF{yq?PcbULeMr>;l+C;b1#llJ=m zyFS?uE-C$gCg1(1_^pJq8IgaZ$Br%=J!H)2i$)9&h7B3psH||}h%qCEl@*Q}KdG?6 z@cdxxhzrYtZrF7$8!;i6Fk<4kF_X$hj~hFvY{KYKqaf<(M7@n<$a&)jO`J4-{J05a zj@3)gEoJ=KLne->MCw7QrId{uG-1TB(c>qK8#ZLjpo!y$3>y*j9@o=}g7L$Kk9PKZ z;KXVY2q*}~jvFK=-Nwo3s38-E4jDDVDV;Jbm^h+r(D(@>CJWC2y+)K#p$CA`<0efE z;LGsQ@TSc9(NRu=A!A03n=rcU?DK-2lg1X085NXWFxq!bZ=3`}CXbj9t+ZIr12k+D zx^tqdv=Dfi%O*@IL}g_|CY0p|du~}ChEIq0gz?|11h0hgWx2tZVf=>N zaC?YE{zoi+Wq$BL7K%@1#sA3*R%FG0&kMF>#ed2RzRf!5yS!jdc6@VQa8vdHD8G^& z|1>Z7C_DaPUa%`W{!U)-M|ONoUNAi#e0H&_;@WI4)t!E13c-;Otf)~uX3 zEG)>O|Ta$qgRKg--zZ&$QvWFn)Dz@NpP_ zJ2&_(jNg+R{>?UAmleM?KUl^#tj~%s$Pa$biqFjtZpe;bn;$%p9lt6+Sd|^WB0u;b zJN{Q*usu8eYhLhIcKnCD;Hr3h2U-}9e+@rS&J9+J$Ab1sLgUstIO=9Rf^ls3E>hAYDrVSIUR@I@G(mmmBS z#<%5#SH|G@4O#J7iC_)e@I_X9Mk1J=9sfH&SezaI8FggGcjX74WXHeC4|Zh7Kg$pP z&W^vIPru&+2YsJU@1M&Lo{h(!$`3w_$3M#rz7fe!g8n7U={e1y1&?9j)f`$|mqW`R z=dhM7IjnJ44r~8a#^jFN+TcIW_WYR_zb8K^&xe0*Oui1o&%>9(_>0NllQ8~QGME{Q ze;*6qV0&g{#jmLvT$6F7(-O6zbV~wW z&P`(XUXoJV);(d1dJr~^uZji7#b1gA9pVqfg03v}sR|iJ71vUjoEZxiv-x}e2MYVt zhGJ5ci_xxp-ZbkxRK+i@DO? zxFDq2NUi<<&u7|)zBm1Nv0qbr#`kxs{C|12isO^^Z}-cCCxrps3IZ-}1*XhW+P~Pu zvf;rY!LxYAkVn)ox0fFC&Jg`DZ%{v|#M_CU5e++sqK;9~s7om#H3)LJJGf<){PunB z3W6&66r2fW`81wIX}x`?tyocIj^-G=J%At4P)hS<8(PJm@S8e zPs`z^4RW~oFFD-OXff4q?I4HSPnW|TQ{-^x4RW|^sT>x6Acy;Yk;8)r-b1}5ZRPMt zUpXv2Uk;Bgki+AT$>E8$a(MD9IXtyT4o~lYFV&ymC>c`;(fRRXzL(>^M~d`4nu{e&HNkY5^$7Q#HaZw0`&! zw3=eAIgs{bO(_Bv))nGGVbwTJlC-9F4hf&3QKeqU3beUd7q|4~OWOJJ)D@RI&gHNA z@)dN~=w5jU%d{KR$(p|yRURbO-^hARc>&A0DqmO+o>$i^u1?l1r&mE+CqgSYm}=FI zpwn7BX7XLO*x?K))gvM6Deh0fX(0<)FLTd``5Ss!NWKNbff;a>1rGpF=)glL&RWC$ zkq{nBpqN?;tR+wiVb3&R9f1)Lj<-NU8d*qr7T?S$z}^K2JoZ>W$bhS zCX;wHJ5N!)CW&4LCqZT>~uQTw0sT`^%gsAO2%^92w;>^lqQ}G$XV}RZc&I67orW&v#vW5!f zbwGMS6Vkv^{9M7e?-ef-JP$W3)fZQJ`wCS5D#4pLoPC?%&fpb-cXoJp;@lbhdcj9K zoP(?5*#Mj%Yo6fc4j2EWeG=4J3j}8-yq_F#k2@2w?+N?@ptrGUv^b9TgN#kJSB3Z$ zNINYtXeb^$C%Q z6Sg`x2S;Aq!g?9nJ-*N(l&lZ^R7OnuahOi`*rX$7<53o z(1bSwx+4vK+r!TSdN~dLz{4K_`rN_IIC9md3LO3jaaL91mIj>kypXcKS5h4i>Zg!Q z^K-LkOFV1`yaPGXe68bWxvau|5D!gNSM&8nJ-h(er4~1qn+e3U7v2cyR>F~vJx<_b z*zZpPT5e&z+_m$&2&Wl29|QlA9Cp5Pnhq%ovIcuIe*vz7xwO<0p-l8v>H%&_inpRQ zEf$Vk3?~8a<~Wgy;bG4i1$=_zL@tJ>J*NWrjgI3lhH4$9Po=I$fj{RszOHJ0Jm+2D zU#D<%kU3`B)zzAKc8G+#FE(wV%PeM0zV+@k1?lJ%qA^y-8|wyqpyRj<6X@92r2|1Y z5roSeN!r<*Ks9+%l4jlr_)bUh&CDtl6T*28__`EMrDp2PMc7}1`I}>>H}h<7c3&(q z*Tv@h!*s=ko^v$tPL7k_%saK2{XrP#NOA-9Obw#9y~(S=Thky4(oYmbnSE1*u0WF};Du3R}|nXfUTZ zwseON@vNTS>|BuUazwGnof(Cp-s1Bhz3PaxXaaJkG+k=_0{C|+9G%5zV{Y)Z=Hl7! zAZ(FVrw_tIp4}SEK6_zT8j0KdNQ{Nf)fx2ChvOq()t#U}y%!bJC%Zj+9hloQu+s-7 zhUWk?j4?b<7I2dkrvn3n(YyM7p4}46Q!}vBThP?23jr*O(3a~e1(C`C-tcM%^8{!tbWDnRHq%^3rKin?h z2S4Q{kE4g;c|V;ZeOT=sshB>6Z9(dRO>dvl+0IwZ_|$TqcvI^y9p zn>M*?1ua+h7}jA5{S6wA6d%Zr7z z2Gqt&ZF#RdNM0UY3gL=0LsExuAQgDkd?GJ`C?_L2LW^pCD z=rV-;Y~(|m`tq>#2rwfb{sGIl-6D1y+64r+J z5DV!$ur{<6Ry{kE{;xWky&=)?)gmHEo=Z>FiIvPNbmi{bVJ1#c`zzLy0#okAvJP~t zH_O$f%VK?RMEO>11-u;@4)oD%YYfysl}&3YQ$sdcp=Ti&gXt4%pOrM2-;vP7{fXWDUMCzo*s1v(1+jz z4^AOi9l|l#COA-Ab;;!rTt%UnQ{mJbA-K~D6Bp7}k`@%c;wcoDJ6P5`6`8pX(l1gF z)mC`Xw}5`Puy#lxy^Gz)y^KI17R|7UI|(s;2(j2h+#gnmn*cUN$yds81Y=KdpVhN4 z2+qP5u}~%U4r|4Mrg6yDGj=1+*kQN^#s>@~i7APfWGC3ia|*8c*gJ1D!WBV55W_qc z`_D<%XpenCPfU5^G>oh%Z>sR+%{Th;mfJDfhVvEkmnm;$EvCF}oiBgwmpo%T=$l?y zvERZI(K(&46|?iw;Y*OeZZRECd6iWA4zPk7!3{S7{>D-gqAqWvVqb*hgyErh z62vAgNH|aQwi`PDH$vpkLJ*sR)Y1|STwmZH33mq6o$#%wHINt0vE~Ac_St~O5|)lq z_-KJe`zk=Q2#a{g9a~g;hQREN@K8XF)8K17Tny+G2W!_Z7dSi<;xU9+uXZg**7V)`-o^}& zDx3{%-sb|#+u+539(1r=Yqg7ECkS7H^mQVx24g&yMSNW$IGcg*%EZ}MI2*{xDMAon zlP(ZX^#L|kAe>l3V69SdzD$la6KK|nJn-s!p#7+A}mp+ zBRxal@MMTjvzl@xoBn%1@sYsBSUk{6^xOdduJW`LNy`*3#bM96z%lbaQ%V@hI4C(j*O zSCW;1g&OB)$0nk5^}o}R$+FU~L)u5_nSV!@TSbQ3raY*~F1fJKe~xEfW86T0EQd3C zgG>1w&yc&|xseaO-HXG?nTHNae{VANr9bGvTUc6EZZsNcGUeH>wkw{ z>3pdFKM>@BB*Mf;MA~69Q_4CH`J9NE6L!6!0=^vuEKjIiF22@QzIZY0*{LHPEEI-J z9lwN$^Pn`5Mt9Jjf--ev&DQ{!O>nmdW$M@k!uzm2>_GMYk{2LYNuiii;ncSw_|ys$ zztC2a78Jf>H;R8cI68IAM-Lx>O{~eZPPJ8WQ4>H%S-8^Fkv-i7XkW{yG<6&eWQs${ zuRL{}1$?37h;x`8vQ`{u8iy01i37V42X>fT0}L6t8YM203o#IO>NpWk$h9bNQ%91` zH17*~V#*uuz{r~NriXla^V7b(6@E6UeqiIreQ1i zi(}-bj&mTo)ru3b%^bghICoRW$8oa85qhGO$OX$#x1yJLWdxi$eg^PsN8N|E6vNc< zcgVAG-;nAnO&x228`cHf$Wjub4keg2Q^$6|N*(SzG5J=fj)y`c90Ag~mS|v|Ivz%N zI-qL^A3zVIQ%BLh8_)wzJ34g~?UjIDbJ`e9IH*&{lWBYtplwcDVVyc2N0>pAgH7vJ zSf`GnT@O$L!ZJt->(o)SPXN?0O@rj83BzK;;= zO-R>rWKG}c)KP3K2kBL3LmiAv9lrqdm4o%(Tg-~W-yzM$ZNk@JjO)}fpZ*^Nym2Ou zP91BLQw+S691fm%YUTlE>No`0m{dG6b(CtR1HPUV*VrI3b(C7}1N?ZZ6*H7FI}$T% zfxm6dn8xVTQB3RrwA-36uudICI}fkps$q+cv`!sGyD^}{2uqA=-8yyr0pk*$0;p@6 zwoV=YAv_Y$7^kfxZKjTwLwv2(lq=cvpP4$|3G6(!jZnUQ^(Ih_`#8+cYMQ@X{L@T;3bANkE58ehoF=b;n%ubX(d(0sz>RCw zbztd@C3VVHh%Pnqp$&a`SaV+~@- zMi$CEWxE#kkVufnP=Fzx+bP@Sn9!PX_YYwvPS8%-D6msDmhF^{WjkfN73I6I6`V=0 zbRN?GF$i9;!o*M_kty3+hn!8sPT5AxhHu+|x(q)dVd~rWW?UaoU77F8h?#IGJ z;gLbm5L-bR?G;iSlPMc(J|4hH1TXTSOxgZ{(f$AiJ5as9WE=#OC=_!loH`wX>#Z;` zjkc1spzsxU1A4^4(J9-DkiM0IsJ1FD`V`PM3s;)5v8Vq5nulQ$cPdTU>H=x*Q1UBJ z+1dl|;y8B7##%8uqiGy|fF=&?MjY5-GG$}PNbE>lB)foBll_ageGM_&sYQXCvXN}2 zS6|Q*Q{FfpBWuc=F81ZkGktl>IddH6t8u=(m9-e%ZOwc+Wy(h1+?1`w(OBNVRxp!e zq%$(SLF))ncPma@E918>&Xs_-eIsykkt4)WO3VezP;WvnxhdOhfVVj6LfUduwk421 zW3ft8w%frC*8%>-QWByrdCpGRz5}+$;m#A2=XA>UKKu#mAchXcrcKrRole;{5k3ac z@q`!C!|0SvwEF@&(`iSiY@$60(8W$$jq8-{cN(7$=w_#_uuj=_5q<*DvuWBoWfSdp z0DY9Ety4D9{vOb;Y1%qvV{e4jk3nk0rVZ1&b;>62;ed{Iuy(DPvYiTXe?kn7gmf)O z)^x2-*~G>~kft~rT18~aHW$!B2S=xDOCWuQh^xUE*D2eJ?40$$H)P`IlFm?_%=5SFBpB%+u$qEj}p zxEjQDDdgysO(@#{|C&OPnvLIP%9cd16>yV5Wj-;unX)wpc7(+ZWTtGVK-|wl8vNoa zM7W+l;XZaQPA+yFnX(B-`qoa_W`l5#BT4W0hAY!d*`5RIja23lbXkK;r)*S>Z2{>= z5?#1wn6l*}S=Yp-ZD)XFx=BT*Y%@VQp6yB=O;wgKWqT3jT4lJ$_-WTrh|Z?v_vl@1 z601%OFNEYuD@}ajp()`!h;O%0=4sbTz;f%nPUb$z6LD@`I2fW@`SYSKdWZD+e!5M|8$iu!DBV z7zf!@Yy}(9;zZLg%uf57MuQ~l(2ix}l5FY;RBu_UYuLOqt~@&aukiGZ?xc4( z(4X`R<+C?RJ3VBig~{7sQYB}Ghrz*6PtFRrZgwXF!*Be_kdX0VXl-KbM00X%td&1$ z8*A-P+Qr)Pq=~pYT-tsV>uQOyXpODlIGpLVR_knm*;iqAKz#_e_wX2jKY-WaSU_cI z@c9D205~=a&^*FoT>E{Jz_I%we!@ZtvQ6a|dG$Aef9N>u8Z&m~YU3MVzdAf(;~{UO zI>PHfY~n)VbzcvEsWAvnhSAtjz>l*Wn5MnmYtI3+ zAWeIh*Io+f=``){z4kgl@26@1EU z8T)L3MY{{2(+EquWd)>GuE3Ad_!vOip$a7hVhV^|l?GM!b>2m2GKWF6YWezJB*Y#! zP#v%JQJPj=uk~Y^R-r)R;XcKw28#p|51XVxjRm4#v5tfy9_pgEM8cpnt(IQvqBO0e z1QM+qoK}6bEvR*)?3rgR?P}r<5xl~^%6rf83c+c)SKd!q^l%HbOTanH@z@>GCy5s}gP=yM%F6(fCxJL4l^o$UbiCWZ zx!>_3l(s@)P%a0&-ccBbnj8+LW3>he?@Qp{IgVWS>d|;tQ60#uiX_;uQcs<1?JQs90O=V8vLQaoSlRffaavZ8$A3VprsDho8zu*_IdaU z#On!3jB%Juubv(!-l;P<+kyY&IC3p%>(3XC3{2ING5*-pPK5K4=d=P|>^PD*BE&=v zD->h>K{_V`@lY~qtrg;Bz{^uOfx;gPd>f#LQ{V(EG`jjkn6#{QYj)a!nBGk?VaaHQ-2)w(q6XEFNwAeWt_{2(Bc z=WBs4$Yken3G-7sqg_jZKkw{B+V!?@x|8!B@GqR52&aLxU9QF7fd6ATX^%3TX3N9P z-BV40SxqFINbA!H<4oV#%R^!EHc&+7ck)Emvd-XdyO}r4b*>`oAZpgRW-we0_LK53 zndNJF`0y=gf|f_fgkQ@eC9`UIl+5R)UKPxfKGyPl851qvAmgm%1(N@?yik%|r}Ku4 z59-_zW}k{*zra@T_}6gfWRX4)9so&GE7jY{GUCbm;JB(j8J-BjsgCp#@g~xw+>nRW z5QM{kkIlqsEgYH)uL3@coHx9Q_5v>>d@rCS)`Y1+e|BOu;a32yb=q=EsMFJHe+g)Z z(^hzZ`bX`oE*Ktc(Yp1C=TpLm0%}ZHdZ&rB?mW@{ns70oQ_{323oP1$0gX)4p6a!y z0-BMg{jk6irMClGoCZHG@Osw$BA``i@G~C%6wu~0_%($&E`I{bDK!mCe87%RUI4Rv zkyl3_8rG9nADqKdc|!R|Onpkq$$(EIg~O+&w4-{)*k5u3ItTb9XGVUSJb68;Q{qe^ z%3#j}>261)C?V`-()F(jFOI1<R6sM*;G+eWuDBi0 z1B4lS(SGeH90~rFz~8baqMRPWk)GHJ{QFECeO)SbN0@+8q5>>K&B1viv4zhE{f(2{9;S-K9NJP0pAXs}@*;~>T5MVXZrBd+DVCz@ za(&swrZa(!ak%qDFB0?7@(yqzoB>jWB^tQCT%+9xF9!4=;oIn;R#+FCMEgWQozk>*u}QQC z0vevCt&2_Ujqp-HSEj+&i01;|3g|8eYu7H<)b$L+YX~to64JFCS<`p#dm9@;+Ujhm z|B=O}J%HjpZS(Mw9B(m;xexb;w1|kS!5G)Yrl$1&c;F?OIJ(%>nw%lP$B@Gg6i+pO z+K-lB4(!@gJhIp%)hq`5C@J2R$YPV!vIg)wsaDKTO0p0$JAr?1&6vjM{9a7t_rfO+ zuti5&7n?-8382FX%jKxXHG7J737~Fi+L}0Puop%FIxkIIXU7K!Gx7Mt#b zc!|}NE7|m)S!`MXY>mauy3e^BLAf@*0P>wh6BI>F?2*n1vwP!*^ss6F3P~c0X~S5Y z=`6Mav0Vz;Q06*HZ@|M-C{nZW+blLs0b#l$F`pRREH>Q)Y>~wcWEPvAgm|@uH2B3; z4c|}bN9-fuUpvn4XlSJ2cCqPi5NaU%XKc8Pg8gWDBe0H1W%}oem@YQ4&tg458cd=K z_Y8|olR%i}tT90R0*KtLcq0gs%?`9HAqzpS$#!9hsjx3@S9i?ki7qCcAHD*3E$w~! z1H>ww7;b=MtCc1;duU4d3&bJph(hKirUrn;m+w)4Gj~D7x^Ou}wOZd8b)f{JZrBRy z{1|azAS9!$G;uH?yTmlfiqn>u9)Mix<@ak-3$nhVZ#)XNeFI*cjs%6+@Tq0)$#@5{ z&DaXQMvLX^$@(2-nGeutkYpY5n3iPYl58qo{^%0Z^~0h|Ob_=%EyUdt6Lm8$F_GK2 zJce1%5W?smsx3|DWF74;u33iiD@1PH(8Q)0V|cXEM1Vc#Pl+_ zHDDyD)g#OY@gymK99D%qh;@*&f49WMJ~8V-r-zKRFd3ZgmzY|^K?9!^ev3XeCj-Nu z{K=4z@nMiQF?OOkIW{)mpR|qL zfR+(1@vts29SdprHg+GT!Mem$57O9f?0z9E#w&~1Q0fX5@egob%{yT4+nmn zk^Y_*X)nm0k&xW>k^Y_9|5Qh;Yi*3v?#4R4N$){ zZCzqwOJm~!O-|FsycYjN`+7h(q-pCClW0Ez=t-yDk!og%sRoU&1C)>sRY;eZ_zMlO z9chp*F-e{A0nqxG7mI4?5|h+dNQkXYSz;2cwrN_r#3WjM)3geued6KyX^<{4iHFyw zLAu05zhd{L)ul^JG8!w>v~-C{v_4DI(j_L*`ps$8mp=4MOx4fC`X@HM2zoQXlRv@- z<@qJ1HsG9;%2SG8Vj2MWTu14J0ZNEH<@qJ1E5Vt!SDr30oeb@Vz*+8iY@&=>Vl~o` z@lThSNd5@KuT#kpo-Q$w7n}t%*tES7iY_s6sOtkh(os0Vnj8+5uG1x^Q-Jq$9BLVl zbcu;IodbAk3PsH5%}M)2mzda73qV{#GA}X-Y27hWjAdP7qUF^fe*Et(>k<SYjFv`NbBi zyu>sTRu(+_+T3E1?UW?t)A-=(|Lp^0J<>J)Nc0TUmzX#^3BLvOQyQ#GOafOOj5!`QZJ6F1%@R{% zh>s-1fJktdOt0z^)BVF>y%cyq$B}DETdzw@(zWA(Uz~}fOH9I<4}7uXu*>xtS7W-w zB*Yg%dMg7_uS{KH+64TY6i&(#Q!oTieb}^JQWtmTu5Ol?8i3H!kyy3C%@R{5U_Bfz z`s%ALF-hN!243bkavf_2n0yR( zP3#WFR;lf}#Pm2h$6(iiob7IjOft*gPvpb>`^`EdWWulVk&;=pJWA&C zQn?D|Ngr!@zVxM*Z;)};@&d_VT3#sW$}TaD8jklL*b2rlbJ!)OOCgzMrFuJ=Ks=cb zptwn|i1< z=n_*S!i@nPMp(4vmSC2cMEev#U7fbVy2K>fBLR(Z+G<>%cuu788GtIBw!*r^)P?Y3 zKo6#A>k^Y_uLAUXnzk-6iS}kdU#DqDmYBkkc>jql+AX@obR_F81k^AM)+Hu^PXyE{ z4b~;5Yd9_g0gWciVNc9v$0t8QP)3%Rgf|nMIjOwJ64Q+|^#I@}N#Ot(Q(Iw5drQ}u zKj-rIHB`w!6>r90pG)p0w8g-pXI-w)*?v5j^ zR2ycUX*jSlhf77=={>}*GnIod-;o&A1~=HJEXZi zlpG%uYDaGgQrC^Z@62RJ*O|o5bHHE8WJlMT#Lnlyw`a1W>r9gFW25nrXKa=H(RC(C z_YHx!BFDGgy_%BuO3bJtNloL)XD~K3F_Zyb-0gP`o>t#nz!OQ4sbA+?zR}5t-i6UO zoM8|9^6)2Eu1$0JI^T2fXE}XZ3#ohQw;qxWR+@O*LsPII5vrU)|@;SFVe6T{OQ3d1mA*2699)hP`$t81PD4(DCSf+wHE{ftuPV( z1OrK0Q22@ofG%|~-%J~1=CzRCnu4gdDlU2m(9;&y@hgNfUJr23o_-7HN0w3P>wG(b z{OM5gD}SA@8V30QY|6>0b z`0=j4(9qa|YLdp6Knt ztgtSIKjAizc3Gl<>&IwnDdC*4h*4|>4d|gvU(5=tXg2`VjIeZ+!n(pL+8qI%>a?5C zs`&+m*JykgApCt*qph&6u)aX}3P4wmU%y97%e|H(W-+uCSJabyF&n(;X8gy247;*yA9rB+&(8h85NiLD=l9F+eii zqz+?4WS8s%irlU+QG013ZdaG$&SGvSsS`E+hOXXbstz4-mn#ozh7LCJ;anTm+YBaZ z!(eVSwt|y51hrWwz5qA{lId2O=;e3b}St#>FjSIvrXo(X~><#}T*==uMVUX#%$d$O{f7zw!ibJ@5^VBhF!x##(WpX&kPA zCJyXI9N1y0&oB}%$yMn5$OZCaHxpH1-g9S8Hba#6QXEkyqm}nEF9t0xXZ%ZeQl^0k zwRsuUnr?Dx{Ixz&qs*#3`o2?pj8jOh;t5~zll<8|l|HrJTA<8YcrJN?B}Dz@@7x)G z`CBhiF=bZm?H*3;U7FhmP>}Z?_jQ1@!=}HFEt+H$6VoMnxfsK|x958s{4`+1#+g8- z(FWyOJ4+dCeB^EL$7&-s?f|lyHYiscEJbYWPnW{%!()jH@nJolWFHx$uQKHP4c!Dg zTX)iFw)r1-hlcjghK|nlPidk6NLy@sbKU&bH<~}s*?5&)E{7(11P{o#y8K-dSef@gk)b1!0t4AKUI!&$0v(F_zNXjoh1C*KvG|9BMk zPI_|ppJ2w=dfSretpDY91JC~_3i~nlu!`QM@b$SeVzcULWe%#S(T4QffYCQ0LA8Q{*v& z@Ns4tU!FxG(Kd?7;_1DazF$oLP}wwn@TQ$dddaEjm7-g835js#-)cx4)I67d_JM-* z0u_9BWU8WOAXVIuQNu@fs%k<)-1Z#f>}}}#a1duHmgf05bR{z=_scb0_0s=|?n==; z5xW1mHq$k%emoRhkh(&~XhqjhV`)Z>Oc$#(&tI`Q6L?L&8&&u9Xb;q^Ayw48ER$2> z9e>ZDv$|Ez49K6um4Bk|vOt)tyysu}Hns}ULPfl!ccq=FyqOjVfCzCELcAMI4tgbYQJ zvz_CaV`bNcrJ|#_4@$W^=;DQoFqzB$P5)4PX#P-pO#V=Nm3VW`1FOVa&`M46!}xI* zU2c{J#nUjaz*f)!QhmCKpBDCm zWT=%UN<7pzoB;8q7K*&~ik}hSUkD_;0lPb}6?B7QVt5RLeI2PbiMoa7%@*SXFC$E*PBVCo!j+_?a? z*wzJ+A)ew%FDeGuq<)+IiF6TbS&<@x_c5q*2y~ zIo`s3-UnaIXklg4hj+b&CEkKBX0))L7Hp&spPn(&nM-Y?GuhZk=OctEckq8j1(DwD zN=$LE6|@A~MS3wLrB<3~?V-NmnGlb%P^C!UiH3z!0bfH(J18cyP>M$SucX`s;lqwn z%~OVf9Eg=yAbg(`dY1SCT9qSxJMiBfhiXEMMmiP4ebHM5+~`qCq&I`KEfJ|jEXdER z>-D6O-W_=V6pltZA2fm_$1%D!cNfoHWJ|Z z(GJk6HWTRXY)Qh-rYt;g$9Rafl{=dr%v+23DPVL)@ z_=8xOi}#N;v57b#)BYxcZI1EqDm238z>gp&r%$IEO zEr9MMEETJ94H#Yp;d6jqv2b*>HDJWV=fJhp`lA6Ob)5=Q9}?-V5|yI?BNdJXK7|}_OgS1bVrMS!+sH|`qX8p!o(8^x zoOC-HFdU8W6W|*yM+1h@-~-0qAE#Gjyg%Lrvb{g@wV1s>`acN~@8JI=1n!SruEF(> zt>6&`U2SXuW`aW?8Dpi1Cq2|RyaeK_EL7?Km;e$k!tOy*o`YhdK1$L1V*x2Ev3tu= z4)>H{^gyh91>w)6(6huIbV}v>V;*{8e{9O3nh>M+M=FM`z&VCIdX#d1>;mb4R15MO z($V|lIN%qha5VkPU%W{2$~AY6Df~MFd2GRfYkq5Fi?3xjw#7H9yW-lquK4CR;70C` z{96?}uqEDP%U7Tjy+7um4n@d|!g7DCp8`kkk2KVd=&S66$o-M$eH@T4{%_`foU=tw zY%6!nhFDv<^HMZIZiUhp5~lLE91f$pOK$u*Y@6KVWv#mbZt^K?ee73%@^etSR{6 zxq!|mEETJ9&1Z|KeGQ-+EF4Wnn$N_z>HvxdH0+}xKt9Ko_?uI}N1*JFtb zTR|I0T|R3CNjob|oZz9pVJXD@EL16*M?C})I zXJX|kz^{-(&l2lEshrO~2EN^Ks3yc{KBHn7qPMDG6OU5z*@2KYBO8}``97mMPbQjKc>LZd`3gbIZ)}r25Nm9Q3`n8zyXnbb|Qu11b4QTI|f6n zP21V>2$RpGFCIG(xdVTC%LVM4sQevl1uG$S z0lOKJT~?ZS%|m^|zah?@YZNL4?6p9{Lcq;P`4_Spb0^H3}mU@Z=tXLTd zcrq#UEHMp~$^m-~@S7cnYC?<#EEU7Y!C6KgJxU4KHzEBr)dKq`C17_0|1*W70n1-n z3X=TgUOOtc%+EL~TVc_T$~V4T{DUud_>Elj>sM4q$3M70QyA`D5Losn2O3_g{jFgYD`_fTP_7oWvvGNy$NwiWtOVq|$NODqAU@~Auw{8h)Hnh>L- zLdEcNaK0pu9;J-RZ;e7GxY1`L_6e zAY)YI%i>xt{sZ2a(drQVh;nV=bPumXZSz@U4y0~W7DMu=l_ruN>Kncc@f#MZG%DSI zgqyM3MM@1QCPtzZ9hLs1#NmE*Y)YBnDKaWzr7_?(q|mcO2T&@HN-6L&9fxW{jE)Kw z!!mF#B99)WjLLP8-kxfK{gZO7JP!QD6poIH{7yrXzsgV(8oXA{x+&wREZ+#!jEeuH zdA!(v(mdY5f6^Qec0~*EnNVy6&(fFLw2lY6;~?o|rHPk4)Hmz{@n8#88kH~Me0U+? zD@l0;iiy7i!ucPFmWGFH!V&x?W|3wNtOMC>a%A>Lw_z#XlH6cbvg^FQ5 zdaF7%@hD|fiXc6Th}0q$X*Jirn z8*^Q8?d`7k=2#RX6Cr*CeigRFhiv)HC`Bhin;k-46qbq5Uny{OB1A*`!9o4zKx87s zZxS5lfXGCsghFwGJKM?~qan`2d2ry)J@8x}?4&PbA|xLXuRIaj=hln?%LQi}uv{NE z1>awt`ka!2=txJ0bbSN)yL;sBf5a3qJpfO%y5x>1Y|fTxl|&l2UJR1VmA!0&b(stGX~uv8462WJI& z^e81@--q<8R155%lr-`?@ND$AdcsuZT~32(t}dm5~-C02kR#%{+<0Gn2<#=noT4t^vfJOog43rF86=xYfv(Fu4L z%Sm}HAtr_c8fW3C34JXgZMYivJaX8E#2Pjvc^c|hfAqD4)b$uhFF0dDRF1xukP6=i zzA@F9a`d%?*!dlJHil4|traRqUrUIcgMc?C$2+AQeJ#P!2#bNAVmbOYg5xhy!_Q0x zNt#OXwQZ6w`;&a(aSFS)?zAkfJP4DEky2P#h~`)1gu26*O2b@oyT+=>AzKf*DTgpe zDRCaUWyeR4EepEl%9%Y>moV>|tA}hkl#+h%F*$c&_3Gd@m-0;HAJzNisyof+aqImm z*T6vp>;1(K2j~Ze>;27gb(R0aavd%2VY%=C;Rhj48tX|YCoT0PCMRw5Buh@(>q%Tr zO7tX0PI~A`6*)OwPx8Ws8!^YwlSJ4YCui$PRr!+{{g z5puFrPmT;fg3dBMIa+*Mt|!NYC8%e$-ZBf@b44dd-CQ+@Zes3QK z_0Ref6=es#PXf%X&s>~mAyg#}rN;ULzk^JR=bQ>olHJ`mm!DZk(p2AEevBYV^%6Q# ze|oqD8gp>28A7GoW0c-UDR)p~XeySI^%g|j60)ON%X$~muGw)~R`Rc6=x36NDNmuQ zS=6k4H>9#N71f3yNv^WG#K>w*mbk++1N9WBr-NvvpTRB`Y-~nshxjzzV!`QjxBhOC zYNgjpz$_(WJiTW4BzTIB=;K^FPgonsl8#8Ds;SWuZr_u{9Sr=6L(*GWC{_+xY^_Ks zS|QD47O4y2}c=05_RZXu&^ru4!TXIsohyJ?0HZXkhT+1W1KFN-m-lo$)qp&Kr0 z>j}xAh%QgjyqjF0JSMDPGO)Bc=L>!ya+UU<^DZH#l=PyI+LGivjN)Si@9Xf0>azl! zp9z{Eoz66wkezhrQXL;&8?Dfkp#Ci!*2hSa@n!u6xtn3Q)>)1q%ZYrI37JPDdoo%3 zi!I;(-e?oe0QSowbOIr9!FLg5=`rp5;O<&*cYy8f$qT9?gizO<)Q z{9He3otsjVfmVk6=*+_oVhP>Ns#W*(kn3gtN+l?CKuFrRgjmp4hylgl3)x-!+#iLa z$@k-sw~fOx;2M^z>2+7a-n?|5n!iRe&M@MU&kSI*ZeH6VGV1o8YVV ziuV+Ji^JuLigYnzXQ052+837)Q^e^_HPDjt`oIea@gsZGtL;CIZVHGzt5>K@(fG4)O<0 z!aiZFzjrh&!ukiaz9h9DLc{rZ9^~3>pL6CvIJ@a0$r<4zrpLb2K6*`CzC_!)7ok2K zG`%le39Awkb(+^Y0hS~%o7a{Pa1I$Uc6iWyf0p%PZC;n<>gq=GgQ|i*bjZk{>F)57 z&+yT&i6hPr8aHo|yA%;HF=&1y?FHcoHmZ3W=Hxo&Qw98a4p0eEhJig7bs~`xEqAvQER$4&JwKK;FpBefgR}ZD^S0_ zcjIRt@ncmu503^H7S-l8C)oTcM_B;)u1u6Qj`AGf zS29sPCxv|;eg=38Df8Hlc9b{Y#QhH`dXa9@wS(Li2i*BS{%!@Sxh;v6&XIap{ys zfRAt#`E+hN97Vp>kY3S=fKPRl;!IYC0zS`CN;6Sr0G{nAJu^}62mFMi zoSuoY7Vrm-GR#wYxM27e@b8Wi2?kHu_X#{%V5<}io^ll66CEWI44%>t@K8sI1cRqs z1bBv{M1sLnZUcP3qeOziQ>nM?6@RTipzjc&IFnCJNlUV=2rj3pSgQqkBe3YX^ zg27Wt0rzv1NHBQHIKUSJAp7Ipn<&F{w22c42@D@jj1jA`A82$vD zgOsa{js%0J91OULqXa%PcuFzgQb&mdgQpA!JkC)f!Qd%Z0iNq9kznwY2LV6jD3M_B zl(ztXq0~iK9e< z!Bc(!{I{b-f}xiShW(z!Y!q9iVDOYSfKPIiNHBQH0Kg+1B@zstav9)qM~MW3r`!p6 ziK9eHUI*vl*?=cHO2mq%Q~M^Pbqi-t47!~7$Q~%IV;Bj?&K&DE1q%|;Ikb?tc)5pqAX}JoK~K} zlV&&#@Jvey6qN@=L2n1Lm}m{(r}9*C&JyUp0A!^@kE6{NXLBEZ0O=-+B=~e}X7r;8 z&;1aT-vRHj6oZ~a^md{JFXG7;TeRYHiAu#s18Hy3#J!6k*NO2MQg|Mo4tSuY81y`% zeC!P;1Gyv(9qZ8fKyFS$#}SpsoyUPJOGC#K@o2==l!)7RXO&=mdu*U&10G zwrHa#I{5Y3O8!P6u*L8hU|4?*ejv8hW8amjih<4V~i9 z&w+fIhF;{*zktMEPHpeS4m|)!VH$dgL)!p3Aq~CEp?!gz=}?W#X+*>EkWO~Us38;O zYvpEWX8~Af!34uJ7}YyyaRoJH>>mO6q$LESN`e+wI_wR|*E>w>l$RFamyqsAL$0P? z_z$Gn%Ts&cS|Solb%7k}&`}e{T@bXmo@lM5&^-=FC!+G)FRzZ3GMf~>G6>HCd^Rb( zeD&?KUMF)&5i8RG&nCrLiSp)=C#LQPXBm0Ul=4Om8#g9saRYf`Z#_60$aD4rrQAr0 znEDa$KcqNQ=K5Sfidd-)?;B$CR-#@lBu`A808TgZoT(`9W@m3CIOnI>GgaQ=OqBzk zpJK{TZgW{287*#irq-vJQBII#!-fo*Fd=AhAaiSQ_C#jl2Gk03R^s^& zTfs#fD1mDeXz_4(2*iyn6f_p;li@Ltbg!t-HIh|hA6%#765yWx2dU+N&HQVnv& zzX@jnyDJsC{8Q@N>}q-W%2P+luMq!*CzG&OI2L_QN!GhFpbO z_t#-~IKUGffsIR$r9bN0A}<#905~p{AoZl~f~ImC+&{*OI5}7p=P<#h4PC%5ActxA+@KS+Cjlt7pP#H%pPR{xW@0|~jWSfE0+VLXyh10XbQy}k2jA5yZ7)>#A z8z|b6q(%cBXSIW-n7R$~;7kD5IByuIVd3x`UaGk_0w9C_nViE}CNs~tyPIaK1@ z34Dp;$UBEhoL7LacN}@?P>Hi0_)m@_ZyhRes;X$8EU!)9BtF?RW-hQp^|98$^-hJ=gNhZml(tk#I zx$m5Fw{y=u_nvc?7fEL$@K+id_B=#rb^?E&p2@p6W`Kxx8%p7nFRb~Lu1L0MNl}7R`5of6>rb@?+8b1Nf3>blolav1rBve}bX0A%W66(2^9|sCU}!A)v1tAP{J#v1 zB|jF;!QY1K3;(1}u;j<0nGO6xLu1L0MROtWYYmMhKNiguz~5kKEcyAQFF$t!|FEI4 zVv8cTjGn%@HdcSB>zk41C9cQF6KKUsH6ek_`qz@KhtEcvl$&I7*5&{*l}7R^TBuQW84{8%(QfxpktSn^}hd=B`p8yZV~zRdE&bMKdd z|25HA-ji?o=#uYZ5eWZm^mB|Rn@1cC)LRYuB%Yi<&uB3Z;DrVy=Up!|iaie(0@Y~H zGUo4O%nblK(bhLvDzA(-mW?60iBl@b9vM&JDYJh00{*ZA zZOSR)n~3%trTS+dI#;{|$nP~&8YeQsBJm%9_eEkHL7F`hRVxky_*jGbKR>|>#Y})t zHz?jDcL=B8C^pL{bF6pJlNoj+(6}mYJu3`G&^I zqRXP4U`SpD`c)SR_t=l1L?Qvsj=?{R0Wy^nDHSF;3Fuia67JYcvJB|+TqK;b0Bwr+wj|2UrPQ|-~yvft15|)}qJgXx^ zz{rEk;*%&p^2q;DLSKH|*FYz|`Q2lgr;}#S)jk9N#p_da$cnqKLYe+jgj@?Rw%!QB2)duYe2`5%Gh5}m6(g=HxriX zA;ubv>Wc@*Xlr%Z3*auRl+n}2Uj~}gx>Sod{pkOD01+op?CC7JQ-PANEQq8JW-^wA zj@1K^V0K84(Iqp+&^IbR^*qdQ3V4Fm%Zx*2{RQf!m1t&+r7iJ^k~L|p;>xuZs$;k7D+}kM+mFjpg z4FqQgiRhdaOKGV^IYBglYNLZPMBYZ#m@!EZC&i7Rzg@?XBGb~)&z~4)08E?v=v~YAOZJD2P81Jl4Wtuj4Qx3ly6l!)b zo;0L9KQrY>3Lh%Rp(zt?2T^^3M#l!urXfLdiiX7Z@vP@(Lt-4pu`(JAhQ#v(r{L0w46jen*jk^U!M8p! z39VP3AXj}uf?5)1n7F#+n6FRJvq52L>~Bb{=O-OvZb;1fF;b=u(vUb2%A_H&hyb@S zfUYNRNF2@2w-cC7yEG&+6r>|A4GF4JL*gQ&RL?m#Bxr1}=T=xj)HIN*gVps3QsVWA z`zSh%we?Kgz~F`iK^hoY&tYz&@&jqtOMQZr6$*$B(!k+*4tG)`O?W@c*0>2DIPOIy zFca>epcI}7cTPrFp7WS+FSX}rr1uw;p*}HkH+mVJRXPJCTuOre4mgIc($F!0HXcE^ zL&nqda6B6l9YB{64VQEj&yu((iBSi97GMzJPQo#ir3xQJVL3+|b?}ElGM4DLQ_G%> zw6_2vD>Q26*q`W_GwBeON@W(MA}chilHj8+2F@E*B|tuw;>eSlM8+X1@|Te8IhBXh zpj*}_NRS{wXuJBvceYYpny#dz6X$aH&-|3(e;{0+sOIM_6N&Nz z69{q}hf|XXasxk~JD$P>uTN08o+Z7WCA~gDSH(6YuDqV$@=2GaHY9GrVAGJGFb-sK zc^O;@U*_lK=*JBSg4ZV~T%Vw83~~IP;S_G* zaD9Rm*8}xTz%peJR3L+ zjxmJpm}^MToqzS}`4q>!jj{JLJ*Ci)c-yJ;yq}*J;8~y8$uy_e5PTiOAD>U*|5-p! z2`8HD=txD^Gk9VR>}2a`Mv%OVwXFP zXHfWbNmD_+;Vc=RNpN{|vXVQKJmy$gN$Ff9X{so^R)%L&xI>2LP&ylA_!N@rEiycp zWb8H>K9%4P%kVsE@uy{Y{tEE+Mf3{PeIY#`dkHfo{F8i|NTA9^^rQ~@9U%T!BTK0W z-bBJxo=s1B{|m4qFje5_Od-i+4oit_9MDH<5>FzQ6QUfzN`sh4pvqc$5^t6PvBDr_ ztQCY@17K?iv62v50K7Vc;91M<0QQCuZ=)EG0{D0cv5F911Mt}p;ygmU1mLeihz3Hu z24MW>nvJr!=M&-(0FMYEE+E8I0B0J+x5Tc0?UjXo{A;cO&ya3?O4B`+1Rkn&h0dn9gk=8GzPGt#$ zBySf-f%IfeF6X3kIHmRU6!U>vq|wqmsl1#pB<~^#OgemgA0ro;ei%WapYp@XD(U zwj7ws5cX<=JqMVTA?!7T{nIk!+X_rJguT{auLowk!E$GL?0Jl~;8v&BU*j z^v4nX4KjQ@rGJwQpFlMC$?#i==0O>rOf(P6@Kl07EyLwR|8*IjLE&%6@Jyn4Musb? zoX^SdYzqHChEJjJ^D=xYgiZ^Oh*XIdYf8HTno&NAuKCzYCmxgFb{^XtiidyUjXK-A*@v6l=4r3`9%oJx|~z? zeuG1B_-EIb6*s4RBrwN>uon?GxXg2bIU|H+P0cAc0CQ0YyPD!MpEm%rDTJjSD6#JW zW=9Cis-EM16qqMM*tCiJZD4*7!mcGOx5BHy{56DaAuQKuf9QjQ@XzK3J0LjU$-qnx zVRICh^o2MZnB^fX4-uU5T435j*o_pI`Fu4nHyG^M1h2ZxV0Rk~l-qBi%BB#iKJgIX zD)_h`{JbChCW2##cJ%DgN52YBRcE@e!u=5DZgYtF2+!VsjH*xO+=0hRuLWBJhFkcU07a8nJ!2BwNWf`MtiWnLufq$~m z89sX{#bxXf1_OcnA>;`L6Eq%6m6$Vzu4ZK+pEHi4aK~SXDAFpI7^rjAz1l+%2EELMt~BUY7n%iwD{+GheVU1Vk4AeN2{wnNLVQj`?Gl|~ zBE3v#Vp-{fXd}BlstwIPgfYA=B?YM}ex{*0IY>h-tZ2?MG)oK(C8p4reyL_})@X%c z8RJp@D#EZsm|cGFpeS<|)04Y|?2)8<)k<7_g7U9VbiGJVx`!OrH=gj5@RP#z3A&lQ zAwf6A*Q@6pjGc(V7+w^9(rwxGiNE66kf3k_hwBq`e>Qv|?PgotHzW?en4T2I zJv|(Lgr73}7{c|5!}z%z<5xrC?UxXQ#{PP9w%1u#Vspx(Gs@zajCdbLjaBKPNJl;PnX# zpCb;CUO2i?wIT7?pTUjv9fWOwP&6bYm@bj6PtbL%Xapjmk6zU$l1w7O^f@p1RAJLJ zB>qJtwB!ya9+OBgeIl+tL07e+e18E6eQKsYkzo=ErjO{bx06;~E~6_j{}TrZtwq!) zXc?z_)hL+PDPS+bzspIgDd3gOd=N-l8i{Yh`*w{q0rD?*i##LjjQ!eS5rtpWX8jj6aKLujnKxutiWJhi>={!d@ArQuZVs-G6-%)c--~#J{T2 zQ9x3Usv`I3<{W&Z)Ydl8D{Ah8g^o>uD?~Ec=EY+1v6CpXO+Q7AU}ln$2F1yUKxFivU>?3zlQh! zwULtL#LVuI7;56b0rEeZzyu_>&!A-Xp-LV2H~2pAk7HB7E89Uxx|}&a74K(iBn7A* z8SjYi#TGLqUEW;wFqQW!%R&Bj0M}}Au1xp!1YZZ(mLQxyu@}D)u)8&!0w($U@#2-y zC*jJzL&>)t1@b2W{IVwJqIORs_;&&OaS;C9@qqspu)k?IF~IA-h8Q#A?^x8rKdv$b zu-k;H+&KZrqwqdiBPrmOwGfg%5*j}Z?-yw#H3$pmh%0`*RZGo?D+uqE(T=RGq63{S zz5@XB(Mv=~d53?WU>x`G@6*RPrNkZn{SR zK5H3&7Vp2%ND3Gh{+20UB^J^b6}#y!__+5EOlI(p(=q`m6Ld#=_m$98@#8=-TT_{U zq*_2!bf84P2Kj*FD zW@6t&V3~b1Cives2S*+yjx4p&nq@?4he7--5npQ)8-dsCvtr%KnGv~HMzY?0ICZ@D z@<1%u`>;5spKLXg7Y`9;EZu&lN{5c?hsR?}cT}A9e+32gd@zQ@Wi_rCcq=Fp? zQrA;OpzkNdj|A1p_{TYrM3>T=S4JOC=+02jI34dRH3jty@IB@2mn9f3geAIiYSOiM zU$5z?Or`YZmC*;2yMH|%6xZRsS5uI3QYjJ4D?5wmc961q6z^Zwbfm19F4jOWudD%d zTgAVL{XYl5Z%TTT9e=Ah;vGPbf6YS6Mj6@QH;N3GVtzyk9=#qhW+H|p+~+wW^t$PT z%JBsNFU7yhiIf6f8GSps`yoPJg!gx7q-u*cZ$#sdNtF3>laRVo%}g+_?0jUoRji>(d=~)I%vTC3 zR>{GF+h?n|nkXv%gWHM-PRy5TgZuD!@~ed_9s6r!`R* z;3q_JcVPusZWqAuLNz8id=klNIiyK1;13Y|yB3^gx_~!t0Q|QWoRl`iq8H$Q0zASK zvLz|tmC<(&wu+-D(oq1YOrBSnjK2)hPIjx9OBBtTf}$A;mB#r*@kLPh z4N{q`sqttcUzt3o#v+5Ll5rWbyrDW7p;4$jWYw&(4{#_2~ zk=9=xd6rl_8Y!VpkK|E8B?Vx;qX=6nsp@ zdqGEGi>o_9lkQ&w_HPY0#t2V4wu*OCijbgc81Y=4m899B~DjueE|7E8uD>AavFOm#< z-Nzme+A$-9w*>zT6Oe#3Z)J|Lhf4hHV;|y|(uE+oN?a>=viWey3M2$EJde_AL|QlY zmENs(dh(^T0@1;i?rSC>g&m0f2>x+F)SLhUznNfO*#_`ptN0F8^MH|7u}%3oK>Lss z#}2gFH^zQB$bLCkP;#1$V>TiE^PTC-WJ@lwM=i&T*F6T#lz0YdWbuzH!$w>80Y?FT z1z_~O8-|k)0p1Mq#B3F9G)R2~s9=q5o2YAq59knDmg9&k;@`xJS4N5Pqx&36|0j6; zHU9bOchi^C2fRvYgo>xO@HF4q$z_~aCR17#+D2gVc z_y8#8qZV?q!TpmwP~rZ0nINc2A@o9G=FlO#Df!Pk3NTR@;4?&VU?NfgDqpw&_i-du zfY1vS0G#+ICHFQY$F*=J@|2xO=tU)R#1Tm3b|hlhW|~uL7E0L>)>`J|%}C*ezEZfv zO2H2MTITJP#?1E&$i7RL|QXENP`W>NICw8Qe{My5WcQe<7xefd+{3ebh?<)QDJ1IB% z-71Sz4B!eZ^;1JZSs98tpmlkZ`rKgc@JQG z`>U6$_vy531NJ_kKZkto|LN0REd%vt{J7SDuA9=odROkbSVGp4%y@mpEFT>3A4j;qPjD>kY#)SQg z%@sXjnW_JL73vig2=$8N@w`)z4P*bt#1QF^3fL=tj!>`o5uSH3-EKjall>dh)gvA@ z^mj4+ZFue$WU|@6F&FlTRzrCaQ`X^mry%ps{*`_OIkYklw3+ zz2bcc^@twzF3Wtkcuc+DDM+>0zmlsFeG)o6{d&bg2=$0j>Rm^lrrz%{aleG-KvSF> zTW2Q*(IP8G{|;0EF{ySmB}>)}{dNd)vFe|uitR>8atd*;Ag{Fk?W+Q@-Mu0Qc#pVN zVSB{oDs-=yXT{LNK z9i72-(K3#?hr8&#fi8NS=6xUC)RznDrrbq&pd0R##JtzPQ(_ik{ql6msjskPzv(+= zu=x9_iit_-gYxSXP1T1^F&d%|or1h}1~eLFE~bt@m}Zs4xRUL=H}~EdP-jGfY_Dfk z#`xUw}NKHex}cAWH%#eju*-7RV4XGO{WsUpzkM=IK0V%^8!{fHNhrb5ft@YF@p*WURl(171~{z`f^FV$u98|8X16o zTR}^zWK5@}F}+(G)6LS{HOBPX zkTHF+Hl}Zr>0KhBnFOzJG)HCK$|H_N2j_L5XSP3>nPt zRbZZ+0>7eU`)An}B1b6RYsEBceoiLyBPvF4MjkbpU(|FilR18@8OJG8otJH%lf`_D zCR6q&Mty%?y+|XK&8W&-ZjoH9NtCr~NPLrn?iRW=L?(R(Y!zCG-LI(vGw?5KsLOJF zNh4kMGu8*?T*eg6%IrvubQ$tw(#}={A(M8U0_$cp4iGK@ELvFQ;JDkOy}{4aD#{%i z8Zdz#*U*5e{!IOQCFoYjh&y8E6WE8~-MX8=ci-bD@A3KdJ*lYLRX-B6-W zTh+-ac+k|nPD2Cjyjw#9?fjUA1`S{h4K&V63L0*le;IhNaSnnF2tKSV*&b}1$p%i1 za~~UWWVR43HB3L&E**~*TPOnk?lIQxt=;#@cVi8|U%ne_c&B_f*6>}LD-LUT+aFK#t>HwU)^NgU4R3qyt%&wx-m_jtTKwZCqh&mLaNG52s+4lW=cFNY8>Hn0U`8lvzU z?v!str^JlJ`UMS2?S2xsoG^W_=#;_YYfD#byQh!hYpOl6fP72+3~djK`aV{VMSXvk z@V@Itk6h>N!G+^XQBoRNLw4{k1uof+0T=icw1|Vh=VFeGKT$LIaTOtG5=715S2Ue( z$oVGhz7?`Ca=nq3l{v4l8GMo^lMBqWPV1+!Oe2*6YSQpYF4ZK;(ljJNGx&XqOjX^O zjsbh%Nu5^y?7pK(0uf);P{oLVEx-Rv#R#>8P79)b`A^bVWkv_;f0jlnKLaxLt3{S_ zqap}d%DWY~Wc$Oi#U=O8MT1f!XhB#7KL_5=qkUn1i5~MawV+?u(15MY5%#r_G9-5V2uaRan#Z{2`>BcY7HJHBIAmP+`yMi` zKO8cyIevV5LL1u(Kia%g$zt2by_>T?8ZYmW1$o3az8?)4-%o}1aerPJ%i8$-(u!PS4jr9oBav>KPD9r}f=WE^B)tEt{Ax@fTY+Vv$K{c<10*HnANLH5+TGi}B>U1a`QvHVW5{?Cbx z(!*oH2P+<6qlcpDlTlL_*@X=rZqqbsXSngjV!cZ zre2YiY`;nQv;vNgjrmgX9a}pziP@9_ZUxWH(2kieXfoxIR7?%{-X6etl$SM~DtEx+ z@=uKnKquBnK9p?VqUzwNESfV{QhE*_vN1aKNV4O#BYlO z7hBD575)ST51xuR-B8~a@IXn^l;S)#N+z}nZ~eGHa)S2buLT z11DzrTA2K^&l()0HiY|)!iBslq!@h`j)ohKXOJlReP(202-w%B8?yUatjxyhk-$6g z?_?T-=>8KV6u3g@M(d)Tn0%q@NmE|zU4kNBgR5( zpO?^{)1Bfpq-X!cPaA7#g1r&&9?_z(JtApB#4!5FJTE(!j_=bQO!hB!t3VO}A_;}+ z5p=l{{qEvFcM7`b$^OM|FXJ|4R)FXDP_d5k$ z4QBuNGKaN>`~oIluHNrr+TDUKC9{8Yp~G<|&S4y9fAzjw(2Z#Jk1loinS%9-?;+G9 zzM|gm6m&hC{bMJ@Empgn) z0ei)V5yCz$^{%6TO}*b^vR0QntdQq8&!sUW^xGxqnlSqpyGeW%eW6#}4MdNid%)=+apI8>0e9vPaO(vGluF(CxbV=UX4Wf^O995zi`Y zkNA?gLV_;r)j#Z>;~&kL>8@T}jACN!QXyXuNjKBa7h3uv*5yzQEVQ_}(#I@*0r$0N zjGFTV2xw;a8BJhjq*e;_QS~4C1eSXLy%RbDijK>HvCuEaL!Za@F*PPofO9cq%+{E| zNO_Kig5Dog(oX1Q8VYd;4K*l7zM*Ejpihs8UoboI@KyPjkzU7nZdHCB;7XPMDx}JP z6Hw*9?L(FScFL-OsPZ%4_9jy0hpa5BD!&uS?I~4$3(_7|<>J3emA@N(;lEmyp9R$r zRpn`@@{GphQ{~rbf_$p{E}y_ss!uqf&uC~wmH$d(BC5Ou%8|<+Q00edXh4-ub3)J5 z&;hCP?($|=o9sT0S)sTO?_(P*$}4$LJ>)d; z%0&5%gAE>Dh~z=>V-R00@ipS*UZkz9f84c$mi^~MF@RU^huk}p|$ zp^pOT6k?~2P`9gY2TAO4#Qv5}L4SIL?*JsIS9TLJ@1BPW#ea(TziCSU3PyPc;C4Zu z>k@wgi}?4r`YU!EdcN>}b&-2S{UYGX82XzYGv6<0{MEk+I-S4Ye*yLWYk=z!)ZFyj zA>QYpjct$jicd4)BMRNa?M_i1GHL6iKO}wvs=LMS6z$#OpC*(b9^e->MGiSnoP`qk z;}@1_U!$p|ZH7?PSU)C+Kf@&xgu0NZLbN+Y`tKCo{~eOT%yXjx_KJ5Q)FZA`@4H2L zi2U#$^a%Q@2>p6R9aEoW)9e%^IrdNdqc%xZ`kaFI2$Bx^?Goqi6QsqZexJLLh_edO zBi5P_-PTFJozaQ*HFG!?O}6Q0O}KZ9=R)O)UE3>u4OovL*`wd?s7Z*+{Ky*2&wgA> z1Ux+Rc+#&|koA{`?ZkMxBGvx!jeRGY%8gf{UNIV>UJ=LhPC+-b+CMh(zNvt{;wglB z#bbC%3um{W`(W)K8F)7s`YlYK!*jQwi)ig18Fw{?axPO&#q&-ED3v z6~DssPC*y&+CMhxwkaU)M?|PcWYoL1%5GNgcZ%W~by#cM0LfQpNYCXCU<$WW&@Ha^ zPyAy96i1Jsn_TI4XTVY;2(N5tD{XhcN|R`5q4lzbR;YE>%hp+s(3Y7mLS&io;72wG ze)k57JWc{V@sI1d$RnlOCum=4B9#1kwl5V`(8Tnq>Q}AIyA8QoK zT>yZe&I+Wlv5$1<)5}&m^jSxtgdORerG!T8*nu=^)`ZLRZpKds{9z7>eTBB_9+7}D zq0PES$wRlF&|}oDsEcktF{+t*SD`+-3F$YHVfXvhRP>_x=(-!JckUSGMCJf?Cggz$hqk)E(HOF!}WP3{8+vpD*^UrH&K%f863H`l>4p5)dr_%+lNmM_7ouXF~*iAVmKR?l|#L@iY+PW8%B` z^Pm6h6n`*ZQjpZ68cuJcW3=P{>UsN`n_hcADh>hw@I(-Py`T>VTZC|#M3cNFf08g3 z2bJW{^CuY}WRkPn^HzMYrMw}3l7r>tkMk!v*osf@$XoG}LGtpd;wSlo{7J?JS;~_x zEqcW_EnYH_4WCaETnm`VI-o7@|3WU&)_;>HT#G?X zd7WN8P3k!P*YiHkL=*3u{Gthekiw6PwuRoP{pjmOad{qd)OdP{sh1;d%tU(GPhlp} z%l_)+D0+E|dO4b2Myr=&=;Z+QaxA?Zs9uhvmoe()czQWVy_`TV2dkG8=|!Ct9d#1D z2!)wUFS?*7(~GXcR6EWzJ5ISBXSy9{2ECN5_!5|MES!WZZ~g$Pr*;vHI{RRN{7s0e z02fe{w|qiee+5d2-zUU-Oz7_>bj((bJ>P_yO=zbH-KRqQwUSek6p7XuO23DKpd|R6 zay~ujownGN@+Y015Co$i!RZEjj=&$=qVo3r|1d@@eb2L$W@U>P{vqcuq$?utk`r^?O?y;^m>R%sC0Vi+(VnjQ0d1~ z=_?LJ=MG~%?@+_C5kz{}ev%Q$l^A!pi7$C)CT7C7Fg@)>u6 z0WvomRW@%mV252tiv=L;Cbc# zs}{cLL6GNRbD}Lp6(=BVG^jVzC)6!8%Li%ZR-#M^DpQpa8F0n(W=qlvG&V`d96x5; z{(g;4G2jsd)U2Fqz~F#P;8g0-RONX_=vg#RGua{qlGW2qToz6O&7a16I|9Wz!|y*- z$_2jQR&lWx`mw3fR47WJn!((+{lcFa1nR;s@{=H*LkR`}lwJ*0LMDB-!CI~Dd5euO zG7CI!3G^Fx7mC017_YQ+9`v8*EmOgS=bbahXtCvQ0Rfcg7$LP_+x`@-cC31(mpZ>o zV#kCKHLMj@PJ&jLim3IJ0yXU0Xz*WUiUS=$l{yc6Psp?>v4+u#`h41Wdx4=w3PgS3 zBtYL@5-3a(f|ejbyGX&&Z78V}%Eg?Pnq#%n>)hIn;G30elTAwPnfB`>+q2n73!0Zw zU*k8LZeXb;*4hZaku#=wtX}PT7aK6^Q_s7^jxGg<2~a)ZiNXWAn%n4;V$ z-nms^>OzHkm$+^#?kyR&{R~98i4fia;@xK)S`HjO>H*GB!9$tc%;l$1JBH+L(X{~| z=>1lDS6rg^ccXqQ$5LkR(RBnRX~Fke??ic<{f_e7uIo=Jdxs^P%DKbbp?E`#xznaZE_ZPaJ#5{n zAm*cF_n5e}25*;=Rvu)!p7%kUbEx0_Hs|pE0Mez}5$_&EnEpPbV4n9O&W+ZsRWpqU zHPgeyE)r0P6tV9S`yGXRl-`wiQK3JAgh;?-GD@I6%G{yW`j`x%zK`jIs2wq%|G4!o z)xhIAY1Pu7!22RdD^1a5w<486qcYX$lM3cTJ|(2;CJN7c(!|j*KCK`moHR6}vxI-J zal)Vy?@wYS*$jc7gD`-{i-RQY;dH;gb`z?gSw z805t~IDRTIz#=Id#E;yHB6Nc*{yj5Wk z3F<0`pcY6NP7b~8#Yo2-A~2lCzTPg(bKSo^feYs(yyXReq9hTq!l%B&RMZ@`j^-Fj z+=4SHHes}K_%Mc}a`jk+VW!;j|p{x+qCR7+x1u z>d-R4xdyOk zQgGzggHYE~|8=cZWz@yWrgS2EuSt zzi}pEvD@C!a>ETDZf^g5FEuA!Qd4C8>K3HJGV%EwT3ZTC(;s3*?e_du#!)>B^oLj)6-SNN1 zU+!pmHxHbe#igF#K*Df4^))<)XN}aM%sbi<}P+%?(~?bab!RjWpWQ z!*1}HyiPp8nmpcZmk&LnYP>v=Uk}1SCGg^0=Nlq0oX23j;1NSN=4}tB4gLNGkcCU( z9su1l2**gdHxP!a>==3-pnbe`dty_QW47mz19z(cI+W<{e4Ht|jKQI`enivyVy@3+q=y>k-bv9eUy!-!45cX2Hd9fSGt$mylSM03AUDKIqM0yLQibTw( zgd){)$Nt z`=)W53ojWio7-vbAPh%zZU=wE+}m%U3qH&kmuDSvLLXoc{m6+}(7ikZh(1gjVluWs zcZNZ9ylKnOJpYA8A3#of6KR;EL)BbKFGmiC5@5$53@sfok(b4U!besPoIm{(*Uk(&@u zM?QIJ9a-h2btpYIt-Dr^V!1`bQKkW;80lMXj)Yr$&~CMX+ymj@po0Ytkh>0Ut~l9O zp!7JhE;tjnEaZhcc@b$mckXX)QF`N@hhgC!+-+fKI%gvlTkpH`83@!Vw#6=Hl&O&% zoaKnfw7W|TC9XR~H`LLi99bi7@jIDQGr8E~%(_6ra5MGg#O-Uz7H-&AH;u$tJo1Q& z!z1Hy-%i@TehP&}YZF<2jFLpA&kp7}Ktp8w z>yqN@lF8n{h&Nps3lKw;*`a{kP3jtnw}Y@aYY@(EDkGpHfTs=EMgXt?liV!k>y4tM3nDZNZtX_<6$qS{q z2a-fxwnR7ag!1)}aj|dmM#cq<@yPh$%_BkSTzv=^)8QW*1j(Lg-U3QCu*NMQL8sPs zU9b}6(efzh?FE3sBr&fm407JB9P>H~qN9zckzVhbp1n?l;X)@+j~T~o@{WqElZ7dT zHyD08rpk^~o{&{MBFv|ddqJ~bR-BD`BwM{!bPKu@ahKu z)&nSQYar>1HTJaX!?cb zn~yFZJe4h5`H`fridO_7ru zg7zwKwl^1yh%qyQ_VMS&YYxf3r%0k8aQJPQ1H&8`=D;uqhB+|Ifng2|b6}VQ!yFjq zz%U1fIWWwDVGay)V3-5L92n-nFb9S?FwB8r4h(Z(m;=Kc80Nq*2ZlK?%mF6{?tcrd z$3Ibmvlrr@`|pRR5Fo@q(V1>+Y|2c{b~Yv(J373nUD?j5nYPB3uBPmzkc_{OMr*5d4m7G;^a%Z|}Z7O$iOQx-BL!TKorB`>Y2_z<8 zS~9Dru4!y^rbpG7sVf$UtFl_#-kP4eI-P3GPF=8S;mW$|+Nlc`)=W)xcBVEqXFAh5 z?$lIsFnV@l*7I6ZZK*Zs&MCw~a5bB2Nv=yb=Gr@_tfh?*t5exbV=|lT%(ShM5TZ!6 ztZ4@(Eg@~`^?PB?xJ)LKOLr0^NtDUvuC~Ukq;G6*ZEbHu7_EwIlevu@>13`m zg_iQO2*xH79eaJ_+Ek}E0&(#-5D%^1*xuHhp_1auKz5l>l}0LIOPXQ^YL#njq?*b) zHm`3|gQ-`3Td?nEOP4uQX1wE%=N(>#-Dq&GCCJ1Bihge4E~ zQJx23%d{hi4KCSSlMc>Z-IZy{ot$Z#NBt0prgSri_VGOCx1^^=%*k{CK%sM)R;nzL zlFXH1-CFw^0)!w6t*FKN_D*6JngYf5jBK}b(W zi+*X!v{p=63(*C6XR58Ky;TySTvA{GH++z&ru4c@BNdu+$mG__ploi0Q5Tf)5_Abl z7b4n`>P)q!A{g?EgFTsKmJZ5zLBo%(%5eGpMg;?Koaad>M<3^|mnvG^IQkXP(O^r)xDS3mTX z*imB<5+fg^_e74u6pW9&HnD^eiDt%3Az`c=g5*$jSuI`0_+s4 z%<(5SKYiuD;~RG+j*lO=S2NMj-ZKNE>3@V0Z)Tr}Xf z#VUY)659&MH!eH7Bz6&iUloZQppR{ui`IOC+7iImJZivgn^&P-oBM0m7n#w!xm{l* zMx)*(@vnOj4G!5XFNtSXoqrwDeohRsSzqPcZsKNrm78_0#UW%Ei*MjoO{`0-iyb>A z@p9s;e+F2LOi+`>_!;MC2{o*Uo#1Y`ZMxyM?A*B{e()}8w>62g`)Icn+-w&|o2~8X zD-&aSWV;=di_IUcl0;dLiOm^VxpyYv%su>U}pt1WMw6gb0ZEjg&a*UJ^etcC@RJ#>z&zha2haf%m;# zoY_wWN#ZW9$^PL+I!-py&vhehPkboQOmk7bfi=?=??O8rva1*E^!Vn)T-{Jl$PV_B z>R`DNk+=$=Pi~I3Q~A@eg`>BqbmDJ+Nw?a$VDs2mS~gT-J!`|ic+`!q-%QQ)z~-0G zPEU}Y3N;hjE}$Lrx6hNzvd?q-JZajeJ@H3wr(hrYlDF!X#F+Tet5A>YHYakrs=H94 zF^OGQ{`&$H>TljngHxQ};F5fV8}A$3c*$_%eb?jGiyd`PVhQ&#>PRCKvPoGpj@%Yc zL$RYA4}wJ^{v4?Tyj>&aqErupD-SBEof3b`R;Sb=*7rAk52*VErSLs2*8Lb-C``&V zHWK=b#AIZ=KJgL-0_r^;|1lR61tT@Bd%mTzkLR9G9JV#~wrx^luiClu3hw#f^7Wfv z(oEJ0Tfb9z$`gMCQ4fiffD&F6J886z9M1w5i$gc)!o@dGw>>4Xiu?V>_&$jP@!p)6 zNbeW{Z$cWcdavghHHxb8$OdAN7)h-tMsA}gX}7R;H(tmPEzrZE^l)I#Vc9(Rk;F2z`ITdC9 z)28P5VY}kZbK{4Rt~~E0!1j9yp)7T&{isiW%Ug98vFOu+`1Scs4CF~Hryz-{%jk_9)YX_v=yN3(A$$vIrY56Y4TYBi@sA77QKHnHRfH+qUYT# zdd|(FJ0yz=DCyHhDd|02(%ZSDueeM46?aJ=k|p)|8yf)w+@8+f9TO#^;x}&+u}_u& z)zaR!W+Fc_Z8DG?i#_DyHnw?n2q?K7( zUQwGirW;J5GuN%FjwCGXw8_*L&rT-Sv~?vLH*6@M5wLb^nyV{Q zO--FBT6OK>X0M|?3zKkNI+@L^X`_NoPc_egL6d@2zIaxuIf*a~icIHRFlZu|Z1Ti) z?U|;DCj<*RXU>UlJ>jkM;GS3q!y|1>ySb($bLJ$IZS9?{Dc|m+L{FSN5thfCInvxD zhyoaEm|*iJ@_*bAR^=)qN!Bc1++3HNB~zt(wnThh$px@`H3WF0K@j*Urj31q96H!fe?sG?i7t4K;Wg|eG#P?_>+ z^IO&=v+Fat#hkHydiE2sd#9!eahedr zKr^t?@wODqO?4!jQn?gb6g=%rr?lW`smdU3rn)+_p}G~!>_|10%RkfQpBdZ^b-5Yv zj?}ojwAK!?`)XB^A;nQ$Jv~LjGz;aXv}elHvK7hNbO#qOlZ7OuR9jMm_>~~fl@|JP zW;BYQL+^%LE43y~mW#QJHZewsVm(Fs_&St15O_-~q$a4}|c$@XShdzFHW)4GI! z)0D&vQQdP}b!OJA&9$~?6=zU?lPU{53nL94N%(&&CH#193 zRoz;TiVylzCiRt zAK0ocNkfyt&80>kCHiPlE$3xN$AB$C75(aMR?gDb-M<7}RJJ!Ofsv%BqXV;&;0PHVdU;$mT}V4y=Q4NzV>%7JBsL4$*QPtuZH;LuJ2itZ zIy$zci~AV!DGR^yiocbZy`($WDQyPv9jv0QKy9csqIIi%bCPKXmA};l>-_M6;g^ zF7}{_dAi*XAx|9o;FubY%Sp3$raM|vjhMJ}VZd!|ZS;7sYDrHS%q#>z88 zSNhT}m{dI4fq!gOw5rKGcY3g$EV|Z~>LzK)1&0N;>3nl-;DduQ*UUIGojRWo3 zS`$rm{*p!K)YhyxYpI$$aKdc$ks-IHGqoCVU~V-^%O=^m8XF%vGtJPQwt{nU$X6SU z?Q4@T?o`Pt5Uj9`o`5Y-9Ph|16kblVP)rhU&JshD%~lRt~DB_bV4rRY!XV6iMSHQZW3kU8rwiCi@kt`x__VZ$Q6+&kjBeWt%NK zC%LqGsYjYQ;$&eBou|{!&SbS+%Zjf*UM+Sot2G0jpl6!V0@DlPSU+rcnjF*#SB}p=##1GbDL8w*>uDYbz*o58<~{&(*jJE7GP{x(VtC}cdTNBbWGZF z37$%;0nf6raz=x^%ip4s0-b z$VuCpO46K=+R(O^i_=%xWfZW8$8h8ko>pC5i4mNKnz~A~Gnj#OhNw~@Oe?Gu#EuVX7&1^zvEYGaQKS z9W+orhxgXA*9wC&;hKxt2B4|T3`}38 z_+kcT77iO})e2>nD?6AAhy1!T$fql9qM@!$RzV;w)3UWIhh>8Rzk~BvnhUT;!q=aL zPNXV$Z6#9d;s}#Nn?h*9n!UVg0k4Zdp|*EoM`i2Ml=fZc?=sESa$BVIgOaT2<^H_P zvf`=HWs_TlahorudrH&AYla-H&yr7MIs9a%dMuS#^^xlaBvS;zpYmB@FB7_9BbJ01 zJyfA8FK4fW@lj%ETb*gb4(~>C(^%`k$y^F1B{U-KHb>Ulv@D;FnvgE%6$^+us>l6W z&O`iRA8{;RxeN){jJCB^_nyJ(TI~)7OEF0J^ZkWqEMcBo94wA}S3z0wnvztPE_Ia2 zo?+H5Y~@#+0yx?<+0eFL8C|A4gWDlNT1c8%v~1%~JI&HCGd1fwZ+z{ehF?8JfIt}K znxef7jn+JheO&8!F?eqNy$q4*e11}Ya^Ig6I`$?sDc?w>F3Q1>ZNc{Mthc(o9mW@? zZ4_DPD6A9EBuD#nSpgUh26X>S_?p|-qv!amcd5=k z#tPeaWjgi@bZmb;Nq576&D;CuOH5>r zrnVTl_Ym0IKcs)amjc(s!y0!j=ct;I$}VMmT-5y1EmyS!_8=y{>FP|gT!N^}?%|D0 zQUkC9STFyRYnP_nY;j7>s^{IxH4Cqh_U-uY6f&xD8iL(Ls8PVXHK-BWQZE({3+{9N z%x5sZ9JQ=W`+Yp-5zazwm>b!=!EO?@kB!$B7NoHb*x8WoY+s&gvR$lLWdLM8e7dAX z%oYUf{>bK1Sm)K=D&wRopKi~vD=`|Ae?s+Mhz0Gu>DNQnh|K`iSlx=a%*ipBMPgXR zq>x-*WfQF5O=LlfR&`W(T_QSMdtxR}#NntkDn|RTS|KB>z#{X+3gw(v8WM%;Os|Hc zajtEOlVlA-?`uCMqVIuWns!2|RWkShFvhq>RI;w}>;~&|+nzL2olKV~42Ti`-8_%{ zTC~WA3TLqohFGr-snM!ua(Z=ZBPLSh;g(&TXJ!2=ZEdzRc44<>TjR!Lc4O;m8Y_8* zJF}A=!!)b)n%8HVxSf3s5g6H~r?S|9)SPUh!(B4|;P)2rwmjC$X3#6gpr-_?UJrR% zjTNdx{Dn(@7m(WHM)UdU{(K&`A?ge+Sh5)!VKM=?R)!Wg*-Kr##%I-mc?3KCXSS&x zj-dqJo36I5Y`SSWO*=Z<+m%aG^FxhGmRk2mH-*!aZ@Yr7slUB+i-k^>t*pI?1e?Sp zu+S7)g*AHA#A=(IS#Bt_9knrr6=l_Ywh|cB;H30#pAK7WF!Yl1{gaJcZ&P^1SldP6 zca>Rkj{ym89adkd1xa)126Ik1)FhKnBtoGtPV-__M9ofLPCHC}C5!Ef9bRyMF=b}v zqr51m_UWl<3c6M;t^V8N8~IYXKj;spPA@?0T$Ow1xaYELOYJa{ZOdV9IG8Fm11wzZV4C4kO-LKrtJuXQrj$vzl}`e3~x#*U&Tk`*20-kSFI zCTwsr!#(YWL%{<1hNkDm=?9^msd^-yZJI^OkHsN-)BFrH)w(B@p(h+5<6 zA&NGP%Y_@W{f4HQLDtXKmbIQP7u_|~ub-MYZsj_-F-Fg}z(ID(VU~Ulnie~B$Q8l6 zN`w20X!6OEc)i}FbrDZXB?i2rGXb>4dy|~JGxPkxMQd5!C`SuraD=2`?}b{#rFtq< z^GJ`X)*_W>;P!wf;~@3@zcz=8BZKAS+}DnkcHa7x#L~A~pc=GkV|-3S=%;-uno1~| zGt?TV7I_zgoiozt9{M6Nlk6I`Ld`C7a+XKep9dw|ym`D|n~7#n=-$Z=J~EZW0jf4n zTG&hV0hvMTP1zoD^)88PELNL6!xNiux-6HTh`qzyjdg<*Jl(|h0XiqtY9^cE#U$*= z>cAo#okT*f(vBC?d#Q(_hhrbAK1?FJXxQYC(a}cAGihcJyydBxZ9u90eWhE4x?z)a zPL1ZlDA*>XHZ{`j5c2Y@$EH8MM}(|+W#miOL^9O~Z)w(SXr!eDsfvAV;*w&swGZqK z7JzjOKtbmRPl(j4&`-J0=74Y8h%s&W?QdFwR>S&hH3>V;Gj(Q@DQtzvfqKvEe!OODG0I6M?fQ|*Qwn}) z`t54UKIY=q>@Q>r+X+QZA@NkjIy0q4ry;I(I0goGS;(zyvLh8?$S$WHc(%&yXHO3l z9K=ixm!^Rn8~hm*+|$n>b0%rYIrA4L>&{zB+zKYd2Wzaha4c@(Y@UA>j8->wH{r?;XVE`$t@zhYmVtcKrVi^D*>_2>jgGcO=f zUcPWohj6>k<6Y7r5!Xs#^X@U3-$Zhe!Y5jMB;s zQ)#)5(C4)Rw8ao>2Zb3;g{)4yb%0W2*J48khvz3`wf3PD6Ekl$R&{6Bl58CaWD4 z=H8FNNOcNFIM`O9xo_a!M00wR+2S7#S+a7$c`OhGZfYQrmd8WwQOTv~Z9&Yd^VMEN zT0i0Qiv5}{yjFst8uMAUJt4CC{sNL;tTcD#yn0sO{$Z$~#D`28M&|E*_6;X;$ATGY z%&8-}b%mGtFk9G2o9(HO72o;e-_XH67z0;?t@xGvB@4mzSsZNJH>mOLD|5BY&hhIWOnk zmM}R-Scjg$-a&Tt2U@f^vr4F%;6!d=noqm(A!gM^Ls!dY=*Xv*ae~R%fp)tWr;`2} zqddw<{m;&2P|{T%Iuwrys{3^Q@^fnH>dsk)t737)ss)EiunP`$7`JF-b#nI7_NK0u zuIvKdt$_V^XJMICgG8N1rFCCnN^AGfRX^>!;=VZc)ntp8}| zpWOMo2dWji;lz0-2NaaNn1~IGz8&L*%<;?)lzDWYO+{G3iql|y>J=!5kiSalRHy65 z3{!zACr{=3xLSenK{re^J{#VBq|f7IANaL&L9jWmhucx|o@MMKk)XRKT1YLij_a$q zl0ipKG=9*l6UFDeF3hD`yucQpKFYfh6VriQX0}I;R*|97+>%-otQ_NW_^2Ge%B`<9 z^GRT2Kc58iS{OLhg_XhFdhQG~Iigc>jqAu4&Nrb|Yo%S#D!hNZ+c&)eGBvBKjT|U4 z(SrG9PY7k#b^oUj_6l>QDWYHC3oH zPVTT$dq$$;C)_mtUT>c1*AmyTa7@cNU9=+wb%FF6`DFPHDkTPG2G}L{#7=*`j;#c9 zPh=4h^F5J?yirj*Li`D3amGdK^adTC!tR~=`beMiw!iR+HF>NUGY755mCxOG+tEaMuuIJ0 z<2%TWJR5$U2Bxan#579EmQuz<Ml>;r?I@cc0u*B70LN4SDd5R=?lc5EP=qS z6V|NPa?I2HGNC)ZYL;tn1$@-xrfyan+-PW*E@w1$WK!q1)zYx?(`U$MV5x$fdvsGP zpR#XsT+HYXG!>-Q(Km*CHXHJ)uM42KaJ7Glk#ba97sU!7r@KSYK6>zMK6wotR4Dzio(aC!pc*GqT%i8Ir zTFAo{K7}!Oy=b<7;D|zYO`zWqpUlKWZ3(olY*1*vVk;x}nEJI=^QZz(#>i=u+RhXm z0bok1H8Cvn;rdV5@1EJQOT~yNCR>K|(t>Z0I&ZwiB;KxXV8+W;ebm1&d)tQhQgXOHAbayIAiNgrd$@^x`Ze1=CJmBHm6=r+k|e5V{PJ?w`Qyg$J9 zl?-a6@~7XZ<`74{KAjQ1R2JIR;WYveFip>5nLwBEwo7kY~!&i@{ z^aTycOcQoWbik2EH`~x9w5FZxUQ-L82>RLwP9q(5GA1H+JHL5c?c4XQUms`f}22su_DorRUh}Ygl$> zEe>>|s%kIBeEN`|%puD+bK`U+El>qrSb>p+@1X0$$;tRWoSckDchfr>cmt!^13HM= znbnHZr=e;!*m@AS?NK(P;d!(+yvMB%Jg+tMfxj5{Tk+=sjG*^H+=uIwS<~vty9=pW zYB25ZTxHl&q=|vO5G8LlqXhdXSAR{;yXbtqtz>aU-mlS){0If^1 ztC%{wzCmUgf3JfMoa^mZjuRevJKLVvMy##5etY_!$XpJu*2F+B=Qw8O=ola@%-w`N zfbugQys8L6;6*!L##39&k(56-EaE6)s^9jh|Yb1NmVdSGJhRctsS{ap><5#`-jJ9e`Rn=wBjtxN6xH0FFAeH zjOoepS+Zc7tJ+MFXKn0xsjCU)&Sf&mYqIQs(BILaSrzWdK)u-$M$WZ}fD=QkYl79R zaQcjz?EKb_6>H(CS=-*ybS6IOL6>u=(=S%LsGxO;Vj&yg+>evse?*AymUijBrIn35~v&o?YFY01ek!f zrsxaLlsx(1r2~N-SH3&`tQ0POgErbkYf`EkQz^7DTB#HS2Hb@hd2xv_x&|%4VvQiQ z4l;M}>pE0K$VT8U_6WC&Gl4NaThg=E^k`6RSVqRgHwN~A%8R3E}DQRYXF7A z%~AM-1Le_QO{qV-M*OB+(vWF^v1Im6TO&D8K6h{xSyP^@BsM9 z$BB=KEJOMzy(J0)SNs~QVYSbjhN!~&&Wn)PNBVzou7S(2m2Z*NENWmh7CW=FXDu`Z z!>F@DuA0-XUU@yZAJOr_4O-ct9bD=x=fGu8*>e6x-c(Pr1juE|hu73dEnTMmRT&*v zJ|j|7yny?#T;F7FZ`S2mUaN-#-}K=la|gLPr$>v@Y8%Ep&Gq(9tK%Ddf5)u!N6Jpt zm;Wgl3v9!Ka8dbf!5Y+{8@RH>dEF~-eVi^cE6A7PA9q0$z^Z3H_tUgaJ6#>g_4Qhz zRmp^XSr`F&DAlkQ=QNEVJ z$Z>K$eVr`17B~KNvNw}%7~>l{(Cg(&mhOdq6RT-~J+ZXRab=C#J2L$N zkb?$C#^`^1%R%v-?!W*5Uqqs%r2MyiNM$iZ3*7I-RJ^VhZ1}70?9BJg2mdNY%wqIc zsFbG-J&d<{u_7A08zOwPMSp!nb4|NS^4wpCxv|^G3(YP1+qOrC>$B-bk8WTK%48qs z+*`~!_kqoTxG)1Opd6XZz^a!|LZ9yfo?YzZvXjO^{?65CT|~i~)ck#m{E^S((wb%S zYpdteP6D%i-W0&xmd!_uNTW&l)a_R2sKOQDZ*WA~(fChz>K_=WBNIePYwnIR#q>{^ z_>+=~we9c`EZ1uiauYoh29J|4D7aahL3*BMMGP)_G8LZ+@q52^PnwS%OFwhJ$4sRe zfz>oeLCi*;9KOZcIg`Do+ATOlJzFZiQ9&-Czi*nW^NpB_b@6Mod(P-TTBOe7}z3X4ITuWsOTq|CUxocokE2ch_ z26x^Hx*8UJ*T037CcVv}v8eyk?be4=a5UXt-SpK#aeM=sNr6KIyoK1ytxMwmW8T!F zygFw2J*u3FQyPC(LlalGz+lx-4iYFtWK)@P83R;(6i`!P!T`Kp9}qECL~E_jbT?dvn%M>$AY zuJ_`IDI1Jz(b`uT6}xNt8*lT=PgCGRo+i4%O1CV3i;?GYFwSu$5w=OvhR&&L+gsC9 zSEq3;@6-jW7Oup%XQsjfOfwz~ z|B~&B6_b6>aoZFm=(;+-@4Jp}5j<3E>)z2aG#mx~u0|PnTw0Fm7~i?lv>1;)bivyx#Tbh7UfrsmOZYnK!Z%1 z!XF&;|2J}3s+Aj0W!`4Vm%{@K#us_RC3sS{aJ?vRSzlGpN05^5UOZXc7fyY#t;E*8 z(lr+s1>jxKxjCYrn1@1Qy-Q_fAl|17%g;2WXw3fmqkm9l@|x?|M59*YswZk}dN719 zN$GKPm|PUxD@{V0vu_mfTi67brgN;F=f^vIwAIMe5NO%?*{U>a98Sih-y_|xBh&uy zF%#Mh>D;+ZkKOz1-m^_^x165cdgXR+)1k0rYMT+o)ylhe@7u9W*RtxG@{<13OUmW` z?J4qWapja5{pa`T)wNfTHeIK;={mN1o37L5RTj^gD?bbJhluB241YBY)=l@xFbe{M z9(US^wde0s80}m%8Qy|uC4d|&-fZ$7geX?b>#1(DrmS35l~hXCwUhsyMl*k!+aTkw z?v$ta?_e>4QVHD>$yQ9pn zeVF+=k2K+dv~sM-VKtZzZNAB}N!1O+w#eaBLYerdw!h*oJMHf1{IEq=|?|g zd?6n4q}cpc3Yp|^|rgz4Qx))SOWq}y%cnI_x?M0EVM^dVN&JQce1=gl*bo5J_t`62+h4)sb zv=gUlx;q`SM5NcXIBU z3)hFEa2dDvz9dyVb*ku`eq;;V*;*OjL1?Fxan?Nqu4hIu7ET9pAey1V`ir*F|IH)N z(c8q9k%KyIKV|x3>RJK5nuB1|HLi`hm2-D{gxxh4-dy6_oz1tAVV^PBV^I$M6HDA~ z-+@%3Y|PcAmt>XQRF3*SKx1^#tda%dkBn~c#IWgacoLgSf}O{ePA@CAaA$el>_fkg zu*_H{aUEYyU#plW?Q~fFDDOzh{{84=Szn-a^NVCPRKwO@KclLTMzays4-QEOeoE7n zeJ(*^#$CIo-=wS&wsF6xYlBU@SI(SsaVps5l0K}|e>vp3(1_{catvpeI5?$FlZ(?w zT}+vtVe7hYF!IydgY=?!w$jaHYmEMhmZjW=3p(t?E9vWLB~^@R=b?}&my{gvBYXH| z!>jzu|JRL#3CdsgeWbONvXtEH8CCJEM#a8nc9}HXxC3UJ-Zb3AANDYLgd7xHFRNHEAt2Wr$x+3*Bmj-Jjs8Kz~sb{D_T2rYU+M!}= zA6ceVE!*4V!Or7UsK+43?E@>7aoxrfgXnw`YdyQzsR8nRH;9B&uFNJgu$3^&yY?Ah zF|<@-R9y^~46Sn}SNe1RMHQ=K)Q>-|O`UdYambrfcw80KgXW$6xWVkTZ)T?4-C12) zJUiOOn~Kd^m#O;iKWh%m%${Fut-5={Zd!F0IQv88(@ZM2#v!xow2Ew}1+SamTU@@_ zA1H^Q$_Bv<)1ZEor8S&S?>05aF;XsWqr#n)Bfc3iOnn7U9s&;LC3B2P_ zqCm|FKB%y;Xz<7}LnRt<+~`5$hm1%~o9@rTm7^VS9Lg*@(xaAC3aa^-J~c z#7{Y|#RVB?S%^oysIX*?w*=+u(HWjjb&$m#IiJ@wCsd`Wb7_W~cczEC9kMwUvu&l3 za0j_B$4v|CWm@CKuk0QkoQ2`qP<2JkY^SXZlY?{Q^o5f0Vrf!Vm_rNmC*~FU@|4-o z`vAk8vGNA2u;uho6<h4nt)xjqtG1@z3Bb+E9_2&aN z<_0(12gzrNeRTI#Mzg$hJRkcgSJvs~!uUz1OiM75Ur~1lEc$~)X1W+=>&CsRYUGUR zO4&8&y)m;(=C|=z^k`-HmMe}NJ!WmHTya=dJX^!bv~}U7>`|)Uhw58ScWL~x7b?Ge zYN=e78|rWceyys`bCgB-W?ZK2wu#Jhw<@U);`@EV6zeX#!9Gzb4UL+~^FcHIb=<17 z8^~M-O+V*FkG?DF;ZJ$#=F2X-0-MvVv<`$$=vStQ3U_+5aK2NAG?f3j-QuE46K;>;Bt&t($2;2d<)BqR}+vRl*g<+QHx zKWo+p*oX1qkm=exi3C5y2R^&inzEE`Z)*d4Ik4i&oV!{SLBF?K zu7s1z5o+wn)jGLpSXWj>s;*5tima6(V2GlIxhTcWQKTxwHfhGOoKy<}L?!v$R+W&fzVUDlhEX ztwt?L0f_eFFIg2=q1h9)SGJ6ZY5TfeecSSI@Wrf3L@oRL{jp7POF;jH!X7Q%hg+C}_JhgQ9>-uni$oy01ZOGov54?9e zhdPHH--9b%#-G9-MNCOkLX@K$`iDtpny3SQh7u5M>UKA$VB`JH{atHxx~J0}(}PZ@ z)KtpZx3Yraef4ge_y14D>;ISYdfFTuM(L)>NQbNISQlNS;qTs*?iihg=@w~Ha=_Yr zQN+Ytimc%H8KzQcM3~)V=&u2hFmpeMNDqUH+TE{EQZX&HHa6$_2*@Jqb$vV{V|ZO3 z4{-)Z<|0O2YhRZCqm!BtHH3xnx}2aR-CYAe)^L!9PAYYbkdL-&B<*Q%S2^UG!|w=0m!!frgxFE)#TO=Sr&3bqV*^!snYdufQ{3*##On_=p%phHVYT+2)}|P z0h`S^h27GE+Q-?ObFb1Wx98W*wDOGE7XKZnXr$AH247&gd+jWGg6|_!oDn;xRNP-f z{KhT0{XmWklKl7q-^uzA>TE{|)UwN_EU%Abv~;?3p*+blAHe7O4+iXdXl3F@s417? z6OXDGkKS<9l{z~KFy-Sr{74ebr>0V)#zTK)Hl;n-fWOc$>C5Re74yYi>3tcRbbZ@S zv|1A-PfqNpKGPOqd$_Zoq`kz)ISh6O>1S4jtMxXqM;Fy%Rz>^=8y@1W9RDerumYcx z`B-fmViXw_wJKkT={YWuB|^z@dC7FSxkRqyaK^KfXP0CTXQ8Rm2{%NJ=%TtSq}aI* zibjTUQ`)cxi#O136L4x(tjGAC%B{j%t?IhB{+r5v)9#qDWAajN<=CB}E>|~5{H^#5 z^hEL5Qv*eg-ysL*ReBBD-x?_S#_r4F+0#?9vL(UwGSQ`6uxg5y#eIvbauI803KmR} zh2m;CKPy)oBTPrDhd>#puyJ>Em|Lv(Q>u&paUO|j(H@h~C9qcUiCF0o7u}Ev{a6;&E(!q3hd4)5~jQ5}aH! z-PtjecDMKx&(QHZMq0Q=JiF9`SEYF~uKdy5V{zA=ztJnr^;00>r)ADg(paye=w^;0 zIj65g&Kp~hw(4g$^SCmvqXHecIdu2e9J#OCy@(Bez4Y{M9TL}6kt4I6z*!nK(Avr- z3>OOb(L3K`n!}~mb;roYps7ZkRsP})34)kA4UWmbX<^o{Y5_wB!>M(#I&MPHt2_J- z7k|l=->>HDoqBE^+FjbkQCSaT=Yb2m_Pn-QDPiZf2smc!_@Z$W3JS&+j&~ah!~Rf< zN>}AKPTQ8`b)FS!w+ZcF9dQJe75U{$$t3s3oZiy;?QVtfa-2f6-%)y1-zZi`_LRu< zCharJz^-mDT{=ozgOHYJ+b8ShfQnl58m#7EH7^bVD_iSbnekK*blR+QQkE`1$DJtb zq76jp($YzfE1a4cS14sDWs9B=niyD9vK+zL*G5d05*KtEHZifRSP9K9$TlcR4!yk+ zyj+%*Nja4z3M=+Lcv<2bK5FdXL8DwG)8wLjIq1=^9qc}3j^CRHmC@aMWC4NloH-S) z(s_Xaai8uS@w#LtER&4&0X>OFPJfL~YWKc14b-${uQuK&bOmOiXjxCKkY&s{9A4*L zda&CtefF*O2*UXALBA9gYxdr~;WA-m<#g4-CDp~Q2#Ti67iG6ZcKy5AO?J2VHIFhQnpUccB?b;Jd5PWb@$u4NRBKg!OJ4*T+9sejf_#j zd8MO31r1%0v|}sCq95XRj1hfWWku#yd)5H{_MQ|y6hypLQ&S70a!rk!Q98}7OuJXj z$hcdzjy0W()|R2Dq)o==caXggnE_R6rDm?nb^;l_{a&@W(Cr4~XceGyXIBJqn}|2w zg#l^K6!8mU>B8KA)Kb*~tE)zp?fNe_Lqs-qJuQFAe44gjAlUBbiwK>hv+pEvqpYjH zH`rDj4b0Y{vD;F1pt;+fT^VNg6!>XS?pn=yELod{e{+e|9X}<3LUQ1o+vF~uV0VVTbTc}+I%+xbF0=`{>BAYfE*ey4 zF^yDEUvowwnhV<2`lBT6K4*+FUAwxr5_j8Lw0%9))@%FW<9(gzfZK14+aaTguNKjG z6(yEl9}n?s15r8jk7lB-dW@z4WQd56RK^_1yY4aqI8ijVFL9<`=mb{nD#o$?jk5uEyaL#DO> zU3{fcQ~#9Q=dtb;dVZ)jri39YQ=-=2p`*SfY&yglxf>oV6iHV3-Bx><9NfLPy6U0J zEQtyQ)?UN?iK6(3(_S_NiEn(W?-R90=0-z4m4(h0a1yz88Z^PWT9y*vVE))xJJHJIr8+1gjy^^5f|#{|ng@}6M_f{ki(YszkY^YdpA7#rv(SzSebQ>3gcU{Z=3 zmKBfLL~?{gNqL11TQaRmlxv0D@a|6iadR7Psdvkb^AMqpJ7uEfCc0lL8kE+chpHMD zj}dzCjy!k`V^x+l7C)BGPL;UZ8EP>!w8C|2jUQ5rem5ok7|f`NU|GBpabB(xv+g-b z-9do8(7%t{knvFP8$IUAhAEaIZ6!o{XK^P~*hsubo&_&8fk#`D5-wp39T=#i3 zZ6*@mRMyjZqCF3((PQQM#r!;pd>b}CuTaipDI7Q66>Hq1vyO;aT4!0Amb286*Er;e zX1@i;Z@Gx=6p7!g?-dSjyhQ`3hVo)u_0RengQ(vYB=RYLkr|Z)b%d$u;rK2TzpQBb zG{giwdJzGe!sCBCZbl7*201fn68u6yAQE; z2awx3A&v&SGuaQ;bdD`TKMHkcSdm-wsm&kg=aRp-6(!u9=dGafit@wVrO&RL##^zR z*5&Se5{INHUC|7rfYr9GNca8eX|Tb6)Yl+ znlR*mqJqM_iPSo?8lbX~ike~`Zaj@HYm*>IITgK%pa2HI%vG=l%M`zY2 zy6r9ohID(m6-0V~j>a11nsT=f`C`gG`8hwG^WM3FOfG=X{UldBit1K2ht8%#7pb#; z3$?OZN2jwihnC3JiHb0`%~>3}Oi}9_ zuam1Y8l7EXl$PnyFX9uMQ&TlVo-J`2+FX+xW0ty0-`y8$6TV%?eaXt$JXgijhWZ15 zx$S421hVMpvOw$g&HVD}+@YmqJzP4Nl3mziVBWY6RwP0CsCO~LkmR|~e@=MD}8u+<4Ml`EZ@`q1Qx0#w*>WP9hQH zCTnxd77*qRBCsIkD!&CVzbah~myRPLL+IoAYkWu+#V2pn$9g4v=0MQ*~N0Z@L{IQ&HowZQpV zY_T_5pp=QothI1uGJS)ddztB##c~&t?C~uUdnal%YdsZatbVx((Jg#M^MP*@uF%qa z&ZSjyf?2eln|aE{_z{J9dBY0*Hp8IIvUK6Nd)7Yci625*s2Q@Nl}lrn(+7jG-5r65 z027?SZW>hljJm2pabrwhVRH_QqS9$%is}l6XdzaG(PDE(k*a`{sox7$T`U*-RL19E z$Znjn;_yPN`c^JuLUU0gGv; zdASGz={<6k-c*0Yvb%B5H_pfw495km4%X2NDwd1b*?DG! zhtTZAwYXLTr`H@L-cx-Z+4N!;Pf%L!L{ObY)y3umsdD8er-e)Nm-`}dU1TuHuU(%0 z#!(1vRa35TP4fr1sGSA=6pW%uInLLOcoZCG(Yje$sw~>ccDnTu!9ok+>*Em_Bf|Q4 zh#RzZfedTNLvu0w(Xk=nsF@pTBPO3+CyNd%udax#Ss8z8u}`N46SIWuI^ihoc<)(GUG4`eD33N+7jR{A_M? zsI2kVIlETIBX{obDXwX|eWSg4NQL{;{Oo!v@3aZFjX29h1!{?JwE#eQRQ5uhGFRpj z_sH~kAD6f6U(i~Bl@v{8=4I*;AEF!@scSWg$0v44okp{ipJ(jo5_eVW9JwDsmJ`yK z#$$sqdI^u<_tIMqJxagD-J|qyV~^4!j6F&(bdR(Fh8JyklAZ@2!WIk|>!N9fr;YX2 z3kuU8mLB`-GwA~$;AY5`zUmZ(aAnpk4hwm5CCsC3&&dm9qp{K;aKoSU)35YS18+5&lI0%>|DgqeL}63rH>lH@YQBJ+QYG7F+zQ4RIWZ@W4Ou_0rpp&= zidOPNO*m@$ca8@&Kh$N@C^K%blKw8o5LOix%fd%#b&dF?i+qERC%pKmhx)Hb_^q9m z?<}>yeQT}T$Sd2$G(tfXY)K`~dD?v8?@D!{c`{ww)Ie_%SoxZy(E0<2*H`Yc0y$MS5uCU)zO} z=+r1*>3UkPJA670!IRNMJQ-^n3np7A)BF?}B@mmoZgtg9HRqd+niMidR)Ds%Pl_TJf#>LngHar}=K{M_WK-v72CI{tMN_yn-p= z0Gp-Vj4K*fC7u<3H;jBA>%|uBCS_4emzWv^qRdU7WPMwYlrsr8(k`H7kWswBk-KT7 zpRKFbr_P;aHDqBF0iDvAP;uCoPuCNhqx)cFI@D$o>FN1vHH`WQ%``unxMym+7E#gEDVbHBJ#^i8UaBLo6lVxCu*LAebauiZpldNkxL6a`1 zte9R28=md;xGyA5E9oa;$Z!=5Vs6dCYkMy8F>^Kovi9O8 zY>Uy3-vQo-EC=_B)*VNS`Q{qbYnFkjAlu18@ew@h_$upkIjQS~7P2kH?sOr)GVe}! zmtu}ay)^aQ>%X-u`ue}G^HP4i1ns=>wP!{hERjniG9&}Nu9jCx_ZnorYPt&{^Y7{Y zgv`I23B$2nn4kRdU)bNc^BUeX-CL6REI*jn@~-nE_g1IqU!9|Wb#+fy$Cz7%k}22s zI)Qfnlk+-Az(YxSmF%k#g-l|}iUy4uRa7`(%sAI6g;+a@ zmvDPQd(K!#S|9#w($Ln&BQkWo_3;q%%V!)CHZ*V8pb4YK`$}Ec!8+k!GEvcFr~M4y z?1Cu@Ax*g6rl`o>Gg2jnmU!Yzuu0#UPebJdzVUWurM5iph%A_r8Y9OY=gTsp%YK@w zxpw-ATUqj1Et84cDQ^}>YRO{~uj`~3+Qr!?EU$OE)L{q4CmqV>Y*8{xWKm$MMzER* zTwnXLZ8N!)r!(6mWLw5_?+Q>GRl*JLTqaN-K9oC2IT9Bsl zr>%49*}X1n(NLCtyJl$h*N^2P&b-J^nY8s#qV=T|bvB9>g=`~Qdh3WLCKRh{i;ZTJ$D?nM- zdPHAy&y315ThRyMgi=|u=;U%29gDjj8jf>t*Sd^uXZF|squ0F7QXeB{Pk)R^pe9De zU)L@!gG*+6*IQ4;rBg9SPs;Km(Ha!#EU}n#EO^!k=TS}{} z9#TA84w#Z%A*PYbV45~Bqe-W2(#-V9_O>m?u1BivY`&ryt|`T5YuTKlw^jKNUhxmj zS+Lf@hvHBTPn?JwX||~&>p10g5PznL-_Y%56z8RP0Yq}dPo-Q#AoqgGVd*Yl#T`A_ z&pX*d|C;Rvq8=XkVXGzLLTo04T!hoaT4}oBo|>ZS84}VUi|%rAjXxf%%r8#FVKBPX zpuI+pZY{0S6Yc$2yv{lC4ybU0VS(uJ8M`lB9M=#%ogxadh#Psvx(g1Z3sn)_LgH0} zxck+UUdVQX?+e9p%D0k*rmF za)EyCAQ=htD=V5_RxJ@OnZdX?kGg1hK~7F?PIuprBSpc+eJuaf@$BSykwx}ER~L(i z7=f_<#S#{eDR2S#r@(dAu`5(mFq+jtb7W9z_yDk{8{&BPTM{XhUAdF60NoV7G)fFnJf68wcZ4 zdZZ}2OW<+2TY9dwnM}*tOd_ky`(cB2PmL_gc$~hYDs7!nUG%v*;-!;CX*sS!1_n7! zHZ-qLH}C*OF4!V>TJd_lurSLoOD%=sn+~lmq*D=~# zHD>KJ*p?)rf7%>9j#|90Xxp|tVa&)eWA_{51k9?*bw?hLs+bq=>T#Yi&0IpSkyu(E z{{_!-8}YCNDdzN&6x|!j;uFLAg6=gatoF4+v7jTzOD(3`ny$SJ z;&WZ7SiRmu;ja?$r;$2KQxqu|QR}vK`9LD6N$F|PC=!Q4QVdy5)Ln0vNVmeXE}KbfqwyrK%*vF<~YVCV@W3d zlMA$yb+1Z^x|5T|DyPf;P2(CX1eGfIl5>Z&AH zd>@3zXwAn%TQ+ACjHW0KG;+7)1=F65`C`Pm|Haonh^ZnYi62XYu_=pD>!Oa`Izg4c z?b~f`^?IRvS$Bf0vy;aM_&XypJ>*`BK$>Gwcn-2Z6wQSS6pbA-O1AAr>up{IbiZR6 zMVxCcm;O$v_{e2RuZ?$c=%E^7(z{F3a&(vrb{^KxBuH_=@o1yxrp(ma$faGDiRM&4 zzTZ0B8fXi}@syR(IpaTB*m%^QeazEjoQ*av|G+#~=7E219cQ}Ou5we{_==&Wa-L9i ziXM=j9V{U`TUVBm<#NEOQ~%Ds4=hFNoGNL1Pi-F;Z6Ie(yPYns71GJ=!6^iChpazM z(!DxXkYvANydz(`a;R8l)l{>c%HS5JqC?8$yeNqn&r2;VkX5KMytZyguQ|J9lm z^4|AZgogtjS!Q8o3r^7$jgi!I*N?nF;YhiNSsSSg7Kt9Z zzHn5!Jop!hP1Uv23jOh$#q;$bXwfpW+0HH+A>N|lo*RuVX>aQd27hXcy9sFxa(-8# zJdaLd%*hG1B#SdbY!^8MSvKhn&X);jaDJ}7HoAdXBas)*hZu%aZT-wq-mj>upx&hr zcuBGs1+*Bap{iYEOFz+B9KQDO8g=cDb-jug9a6Lp^$m?v@ZluxhrRT}q%?s}%PY|yQAM=4Abr9-xQr8REcz$=h-yqp~8G)up=F3`ZT zP7Z-SXAL7yv_F4jPhrWNR86_N@RxF6H|qM_smUB@IBVCZ+$oy2>gqKv*IL|W2^^^C zb*t#8hyMdjdt8;MBvagVxo*>@P9;HE{#{pfnx)+{4%NcE?oQ^ycp;;k4pntE!zrR` zZMW0$HjPMc$)X8(eND#SaB01&S{jUNtKxTXMxJbtpW?2l^~*f6kSq==*;y_t(&bh1 zFRw)7?h-7XMW@KlpNE_3;V zA!HtQ$3aQ*eqXlBgiJkA3|!hN2-$9*Aknxg6Lq?@4H%h8qBpF?D@J}Q@t?_c-7whQ zJ4NHRAF9)L4tV5;-*hPiI-yddg%{i1gEI_^ifiWglY<#bd}~fmBmIN`|0JD=-M9nu zIsGf?vHbok>AJc{8tyFL%*oYtuspvE7Wb04CeRq8bucatKXV21pv@5Ig(-Z74;iv& zn-0UrOz7CA$L@W0@7X4|TTahzy>h#^=}=fQwatj)YUN$K_w6X(*~-4x;PAp!gZV8Q zY`;m9re`%srCJDYZGYR)e!Abg*}r#jKL<5$aa_ak8#iw{ve}^KO(XdRhZl_UsWrL8 zNo|ib3*?t}j>xCAB)Wn7$Kd8I&TKfidCM~z)d+ zWa^)_r8zXp=kVsM8aA4iJb$q8>GJbE8CwNrLrf` zNNXwMD~(bZ0n-1}C?yR!%coJQNfw$)HA=bK%ltG-ZIl6BQ*0P;yt5mF8U*>7VQtnW z&?x0vPUfdkYST<8q*1DQ0(YgC`Dvszmhp#1sVy^@1C3H!C-7|(c&h}yT>{@Bf$x~X z-B_Q>QeV4!o>^brO@0&qGyYE>lkX5C|F8c3znSGc*z?Azok@PU@m-0#{_FC&2l0K4 zYkKh?CmJ6gBmb|1jL#rmYBdhdUS@nT@haoD5?^5aUgAd?e}ec4#$P6Ws_{37 zpKbhI;ujkKg!pB~zb1aQ@&6LP!MJp?w9jqEw;}#73|jznH+A$Q+(6|E&{v*91N|f!8E( zr&nZq?)eG)#svOE0)Ib&|CGT0OyFCKqL?k8?Gkve1b%Ho`xz$kuHPMM?c3Q5?sI%X zI#-+gl8sf)*#qwLQG$F6`MXQMz+S@X`tGxz@NDlj8}g3a@KIw2 z4;oceR8=#%C|?!{%8O-J$nJ8Vinu~X_3@!aZozo>QA4`9|Kzy;1Dxc^#?|6Y#&Vvhf2j{jc~E zH`jkR*MB$He>c~EH`jkR*MGOW|895x-R_!M|K09AoPP%)3`6WR*y#5hb)4aMJuTMC zXY8Xue$(Az`j?XjwA$6?Oj($;p>^4ZrB--LCTB@!tJgRZ&wp#fNE$)2Vy$k zR^}o%mSlIX3)+`ECoJuBCzbp?A%I&wQBgt~=Mcp(IY(Dbn72L>1wPdUNEV8ZI{g`b ztuRVRooyPh7eQ2G1SDTlMJmOMF7mh7iI^vD>@`s2& zpHSuSXn)>(bQVNXBChaap=`;xr8PMtxpYpYT!S_{p$`1RVkyc=dJVL=5pnaZY`&_1l*cWB!fhp%45^M_n-}w-~aqeKhL>8%16}2RG$1F{1XS| z8f={}gcN z%fWj!6nn^h+7cjeQ2>8JP&kuOm@AeJ&A%Xk>0WS*pp~hW)oQa0~ z%nani{8R+|&_Mo}fQR`xHQ=HAWdRT6Zwq)>Uk@hm#}oL<1pa0MclNsbxF2Er`6}RH zett~geol|3?KpEYAZ19*+Nq1Uwx7p9^@H zpKk*mj{gnBesv%BUg2|F1w0)8a{?ZY{}Tfq%Fj*U=LLLl569*9Z7RRW$GulLp6?j&a6HdV;CTtWAb}qk@UR}|2Rt0lPY-z5 z{?AX~mnHCP6Zjng56AQW80Yc)fj~YS&mReRIG#Tp@NhhTFW}*OeVV{mC-C1B_y)~= z_4@h^({G-@TPE=F0T1izk_5gy;Ndv`gmE6{Ukv2KarNzhhvWQr0T27vZvhX-`KFu2 zbc8Sqg47h5di@pdy?2y#4Zhn)i+j{p4w9zJ)paelA;0{QU0E(v(} z+!X;2%k7yU{m|}vHINU}e=Fc&IjjnJI3JDQLJB}WTs}1c59gzk0v?vb4FM15mj?nq zN}hvy{4n65e4{OWc6@$9-YVeXeAFf2(}VPT1bke;4+wZTf4v>>P*368N(L59h&`jq^PC zMj#)~gYO1BoCiM%csLLKH{juWHQ73@uaIw+z*{Bowh6pz0`Hx`ivk|j*VPI9g@A|i z;OoYD9{eDX566eE0v^tTzXm)kpC;QRlv@JdHi7S)z&j`K?g_kq0w12h_f6mjCGaT$ z59j@(10MG4%M*eWyR|N0-R=~r0`7q#Ny?hh!Fh4&h z@c#uote1SJe8`9OgaZQ}*30C8htItv;9vQx0nB;9rjOdLzjeUFdTA5zP`*O~KQ!QBz03-DI6fQ^ z@UUKv3wT&BX9PUV&jktm@_>i+@_E3+dig!zVZAimAuiAGxqAgXte3$759_5c;9#u(8 zEaYbycV+HAkl#dqO_kVB$9I(f9*I!d^>~bIQhx~7;)KT^m{B`?%5pgpU zQfCKzC;2y?dtt!c`>wX%uOi;ge!n5$ZRFob=k|cRbh_B@cLjWB`8VVr2)L8)XTPrq z_%8Bq$UhTsCqLAFe<|Q?<=>EhGvH2sy#4-uz}v~cA^%yxo%|&G{o8=Imw!Y4=YTtT zH%7S6fAxp2FV`0!zd-~21L~{Vd z?;da`f2qm$40xwNzF)wd{52*&B;cI``F#TJQJz5#b_1n;|lz@7YkCSMfru7SMU z|KUC;PqdG+fbTAUNBY$Pcj>?EzAT?30=|d*4*6pP?&Lpm!tyyK;BM@JyxW89KFH5k z`fKXKfaeH(yXRsb)N10b?e|{--ZMzY?Wb`c>SHxBMOQ+XdX^bEwJh9PmDYe20KL`B5g1_%8QnH>V)|UL-%s&lKg2V z-`&a+^1n3F0v$lS!$eJBAL8S`S3ZIGp9d>Hi1>FODqleSVcR%(0r9DisyyQ8kk2hI zQ@)JkJD#rm1>(cq208g)4>!^|)D(&@NxsP{C!I=tPyG8&m2YN>7t(osTjkpje|vA` z-HC5&6V#r>e|DWuKKl_zc^*RixlQ%Gjv#*7WKHK-;$v)JT1@<}Use7};z!uTwTyVq z7b<@*@phK}o5XKut@0ldpLDnKFNnWj9rt(Qd%MX^K8@XAAs>|gmAP6DTM*yfCb0Iz zM{ce1Im92gdhAd9ZtE|I$HQ||J7_vZBoBT#@e`iaeBVrbiS@6$iNCo(<)0>=+fVuH z#3BC^alCJX4fT7-e~$IjEs4LlLgm^J|9pn>F2qr8eTbvnh7#{-euM(zGjG)NClTNF zFy%9d|Hl-lYT~V|T^&vQ<3lx_(};Jp{9HtQAM3x@693f3le>r?RHW%YO#IjDls`*+ zQjWHt*NJaZqVn$&f65GrPl;FNsr=W(ueEltf%PZU``I6<{Kmu|_)huG#J7J-`EJC| zX{h-}ydu)?vY*Pk{eSKQ{*l%1IO4aLs~qAOA%Cm&-@{10=ff&LkNDniC_jVv0-LAK zBYvq(&i^7l`AALYKH}S&q3{Ory=JQXd&GaR=l(*x;(nF?AMvB!R=!OW{fTn8!OCq1 z;yM3QxgNw%H3M!h;=8`0@&^!q`Ap@95PK1*_jziSOr>Q28L96Xn*@`s0rzf1EiU{vf`U&0qe28A%W6Tr$8XpW51# zOYp<39(xh*Wg9pUw+VUK`{O@FB>&D=%BK;Zvx%1HNyLx8Rprkh{@44;ZzTTKJmpJ? z&$oO&Mf|o$RsIFy^P6jaz94??3YGtk_}j~sZ@iKHlpjv7e)muPeRJafv;1@-4*4A7 z$C%!@4{^xvOMHm+_nE{Ye;Dyf)BhF`Z_q*We>U-4n-^{%zV!|&e>?HFe^>q@@nu%d zZxCO)naY1f9P`Bw#E(B-<^Lq!@<8QVx`rtqv`_He6L@|CFHhhXCGh(b_&W)_VYBpn zzP73Uz9aGFR&MQyAJ|{p?O@`Nm!q%z$35P)&x_3QHjOys%ZPtqhW#Sq2i>gco=tok z>lZf=hy3ltN1HzLJn=(jYWm+0?`7@0@h19ryw_NBSZqrCh#Zw`PaN`Hh&MF(p~N5B zMbjBce7tk&$Y%<1$j>BxeJhnemiV$=m7hYqysz>riNo%@p7_@9sQg33Tbup+IPpu4 zR(Zs=qC9J?9zP-Zy>`*|wt=-%mPfoR__gK$YDe-9%+lv}CjR7K%7+l|VDtDs#DD6n z@>7WSFbCpH;^*2pypZ_Urq7%}yjy!sAMvhuuQK-!`CLQtJxq^XP8{-25Z}@C+AoPe zd7`F|I8r=!>CVbKH`kxwS3R%4=Mul-Hsxc9Lw+Lhjm}p2D&mkoocP-vv^`u%d|w-9 zE+@Y0o|^u>#3BDM@$XH~|C~7FR}=qjJI&7)HlLt;Am57kpp!K}y@*2|ai>V9(OD{A zMDojR-kC=Hldn|%DB|#YoIw1u9aa7+;*h_A_})$QeOD5P{A&?|8*#|v5D~m@ z)5R*kLks;04*7P(ubHoM!-&7rR`WTU__o%SAr--ALQ*7YXv;5#QYW1}&YkB_E`N^miiugth;X#35fu z{5rFv7Z8X1(Zuhx{M<|&@^=#daDwLhJ>ro6gm}+9mEU43{mJj!iuk9es9YX#q(6%I zWhpKH`NXfbc6Ai-V@zMUk@z?}FkmV19g8(TZxc@~Q2rtDnvTkG^d;W6`$@_h+ky)C zt(D3V9}5mYc_)%@I8x>JCI0ww<@*!A$QFJNBYui|kbLG7|8kk~vxwhe2Q6GkJkQGQ zHsXuSpYU(u!)9vw&k=93O8G0q8(gCNPvVeow2l59<@TtxzxKo---Y;@d+PVc5QqE( z;%A?$^7Dv~v~ge|@w;ZL{1W1jzm9mXZ&m&|;*fuZ_}kXrejyI|{}F%I=Givp??<_P z&{dzi8*%ts^NB;gfcTE5TKN!%{6gY8++gKH9P-x@-{>@zf0FpNA1Gf*{K*@Ye@`6p zh?_+@>}2h^O-ubAIOKOD-oLlXiQvAbz)%&n3hme--f?P2YZ! zIOJCn|9qmA4{^xDt`%a$X`YL=3iC*N#c;lIfQtx8k;W~Y_Hz~e-q<1@e@sd z-jaCk3;O*Xi0?E;`7XpCdrWy3;@=&ud%dVMf`Uw|38Q$oef%RdZ-tqvjg!nOs_yZE##3- z4#^{(k;IpnzhXb)S0AAHIGFf3LzGV?-qOa^ImA!tuJT6`|M)EBClPyHD8UvQ4*XF>u$iTDs3hZhsadi_6%cYa#azk_&< z`DY#=j&=E`h+|#;RpN+S_$q-nv3UvQe8RJupIwL_dcX3{#7{TBVlU#8b5wp9@yA|L zUPv7Kf~FEb%IvH;#P{#6xe{D3){&-;mgV(}}l5I+a@GI7)| z=6{s)xFa?F4R_L?;NL!=zi&<)aT=|OkE>AmU5LMQi1NO~AwPh4*WFcqB5~L|lZa2X z_pKs6d5NZTast0DfiF+stBBuGpy~fkym?#YsW$o(<$1aF>(<2YcuwVZA-?PR$_Eg? z`8(x##M@q>d=YWX`xg`c3VsRVzgj!Ln>gCfqr@>jtR#-{;cem=A3h_FxSbz~BW?#5 zJfJ)gx3kI4DgOaS+)hj4828!{M|$O7wI5npWms}J!C^KTqP{Qb8z z-TB04m_O$z;?Hfb?dL+`kiVSx1>-gSe-m$D^XC1;|J`2YUm*_pw~2Q*{q0BM@GJg7 zyx*0Y{+9L}lqcl3BR*|UecxQ-Sa<77yxC2fej)MiY<@q0_`J(hzKl55WvYmGJVoWt zCl2{biSOT1^Zy`mth1~jeyY{`2gD)&8Szg_H9s5gYCq-2mhyl2jW;L0(;F(+i8$8H zbBGT(SmpDG|6m)2MiKvNTYcY|#E<$|)0sp3qQ=V4Aij_3pXU?rY5Muy#6R0g(|M41 z+y2VmA%4=u%0D80(Sgbvo1KLA+38Q^n-cGBdgiXgkG?_WdlQF!eIW5iOz)aS9CrFC z#D{*b=`SV@`Q^l+k3CI%;cJ@CO5)SUDu0vsZJ#RtnmF{F--tth+pvRv59JB{ZFAz# z-*zAl{jDQ$*mnaG_<_V>-_;P`$lA$5;;`>dArAZQV&bEZ)%U!XIP9;xh{L{nggETG z=ZV9IU!A}=?wDTwu~z2u*(i6zU3vF zpK9WeKb-ixGgba<;;`c`BtB`B%HK+S@)G5bB=8Rs_@4=U`%ao3+CS{Lp2T6t?L~b0 zZTkKFh{KLMnD_?QtNh`_VaFX!eE9|{zk)c%jhBgkX?pCZ#9_z%KpgGoFX9*nnsrVu zAB+Rr62~~umN@LVJ&41O+lx5txZ%WM$BiS7@vVqB+Vd>pu;Y$N;8!K^XA}76#9_y6 z*d@K(V8=Bh-t0-0>p&cK+#bYp%|A1mIP9|V#P2h`eKv8(R}pV;xaQ{^;-{GXvy}MB zZ>s#0#9^1MB)<1{D*qXA$bU<`{ktmP#MVnUmS3G71-q;{@h=}&`CW-azAN$jc2@a3 z;;`dJ5pOzB<);#d9XE^k?CVtiIO4G577@>VMCGq14m<8P;=kXb@{bdT9rqmZ=WKoF z6XLMrz9N3D#j|Z_dOFG0W=G7TV~9h30`WncB!IP{-t;#*8m`31!1{6qP1#21)da60j?c2@Z%#G!B8 zOdNXD-Nd0sJxUyU)Jo#equwSCd+PfHzG<%J7v&Fossr&4Ej~nU>GL1R!=CC#9QM>G z;(0IY_xC3bduJwb*i&06ZrkaVNX3me3|Woc%3-v@iXGEr+y#~ zd+IOZ&_6fso?gzdk6I8PZTlH_BM$kl#3$J}Ka@D^seOo_Z+cNN@ySaxe{&P~`3d~C z1pXXx*i)YohduQT@ttj-^~OEY%MJEa3*t*G9;qvF*i&*7r2n9u=UV*LeC98x+)2bQ zIY;?o;;^UwNgVCx4&oRG9w3f!;3?u52VNx(d+Gz?u&2Hu4twf%;;^S0_e?JzjBi^I zM|<9pIP9q&34B5VKRSV5N*wmo-Na!}JwUu>p}x;s#9>c;Ks?Xvja0Ana)5o*g!pw| zsN7D(A-^l}SvKD05&xIPp-m-zgV}>e5{G?s9Pynje&!P5kiUxf9ky%ZaZr zyYCI+kY7c7%d@n6ekBfj>M!Ci-l6i_T6_fhDeS2oiJxqK>|VrSPa!@O=`6G79Ypf5 zrzR8s@BW&f!->P5I)?b76IK3V;;^T#AikfCS9cSKee@vl&nId6Zxe_7hs2lQV5vU( zJ(L6NsV2mmTYh#We#`Uv{e0rT&QLy$IP9Y`;t$@X@+T07{At8bd{5=CAr5=$CgP`@ zrt*&vhx}8-Z}~yxKOheK=yT!&c2M~Sef1~G6Y@=o_px=0HpF31?M6K3GEH|NaoAJC ziT`zx${$1=_E9nM1-;bXIgU8w7ZGo{v&!E>9QM(j#6P$5a8?qB{Hw%&-cs}bD{C0wiNl^cg!n%?sr-?|VNV@L{OH9h z|4-tur*0uW#MdpNc_TWw7z~M4twek;y90KhrQCv6ZX_@#HZe^a$Shuv9I!8 z#CO%~qy`dyWv0eJAcFmo{Vb?rD{1{s|e3dxz`BegM z(odg{_KAG%MEt>HRIW4eZTlq@nZ#!f zQu)h?|8qa(Hxb|NQ{@j5fAA9J&k(<;t2UH3i1&X{gh6CVrmz*(MT)y?ik7=4LO|5Wm9C(>s#*%U^4L&LjSV9n^XW@d#yvGhY{@g_z@(&OnXyyDW z@jjbq`tK0m|4QXQ5r_Pr#JlXF`Ppiqeh=k;#-aNA_QYG*MBAM>AVdZ=o@vde+K0y4qqcxos#4ox=`TNA* zvhzbeBi{EymEUNv{zUnYze0a+LHxqYl;;qC(0=bjy!Dn1{1*-(zVWA;P6_cdFI9db z@q3ypKb?5>|CHZA9OtLqPW-m%D*poUhn`dZI`QAXP`;Y@$}g4wLVS6V@*RfgPn0L* z+Y#?-ew%%WPw%GXwlDF@n>F2e#38?s_&=wq{58ZUn?LQ|1pa;k|1a@RZC$q2(De6( zU$G7G1AbJw{>1OHeP=_7FUnE*NyOnNoI>2pqtp?^A%86K=@pv(mBg<*N%=#>ue5dT z*NMYV_#W}a$7?#j5QqH#h@ZMl<+sVxpJ+eu6YfA9``d9|1bqz&%%{h#zO;)iK232RoT~`+QCRQsPZkDZiTdkb{&zL>%&u6TjZ<@Q;Xp z{(z?QCGl^y`J|efo{sXocD2fHM*O*Nly@Nx`R>HuZlm%A#GkhLXg}h|n;)Q>IOLBY z{^dV4{fmhAIZ*i(#E;xT`F+G8{|NDu=cxQD;`eN!{8Qq)Ssc+{#LG?JZff<9az;Gj z=ESFT(u&!RcvJK9v?UHdVOQekFVKAE5`Vr}d2iy+HdWq__|CJG4=Nb0#J_r4`E267t)0&&4nNHC#P1xS>6}Fz{+UaO4_Tt}*As`oWf}4Q zZB_n1#NmfoK^%UV7l^}u^$v0PXFewm|IEmJ^!aF4(3c8{KYo?URS<{2WiIiq(^dWq z;?RH2CqBydtKLE!^2>-neSoI_67k0ilz&gW8gU3C_3s^AAThMiP;fN#-^7i=FKgMBhG3k z;)t{AOdN4my@_LeWC(H0r(=m@K0Syy=11($Lwmq{T1E1he~%)LdH+=6h_kvffj^wU zzfRyA*}R8*BF?Hkam??XiLbm>>uCgW#956cKJ(uyUq&4Bbv5y2X1||C9P;N9Z*_>K zk9b48*O0H3zd-WmAFBLw;+U^jGe2GBo9?SWkv`-%BYsJ9mD`Ot=Ih;wpSq!r55tH< zel+oOOkXM?j`?~v@v;*&KgSb?f8$i*I~}g_R})8^)s4jOu=S}Yh$GJGdE&?auIYbD z9Qw&O#Fv_%zj2{{59N^G9QsBV;%#jmB%e6s3y60xeWQ#x;;gEPU-Yr& z`&{C;S^WIJiDTdXOT-a3^(OK6zSQ);Cl2}Fh;RF>%5QFVFv=5gQ!R;~-dW|l5r=$l z;-5XQ@?(i3ZfYX&mRGBMIdRC>5dX^dwVh5JaaQLM|9y8&{}$qivsy;HT}SPYPY{QG z_#E+O)?QZ=hx{+ZZ?N**&gNB=KlHse#D_hu`R`90@p1rjN8HrI#LsN4`T3sse+MdWVE!{ack_FdHz)q&!^(Fdj<~5k zh$C*QA92J@-Ge|t#te>HK$P2EZydhbKT5jXV=al}o% zNgQ!gpAtvh)Q`mBuWMlI8>pAaz90^}pbhastMq-l5=Y$Bp2VTg4<`=$Vmxu!7sbS3 zN0bwX-EjnQ#6cZPe44EvEhY~6D~T_fr0@G5=52I-e293TJyrg7;)t7ik9cR(i+&-F zxT*gU-|1&fe_QkCp&k)8wIlI%i&TCu;)t6XO#I27Dt{1h#7#{m{>&>Xe-v@VL7hna zm+iIOE+-E8Yl-*kr|I8M9C1*O5&jI6Gt3W2jY)a zs66})NFVZ8Cj`IpVwK;I(n0wgLVT&kxm6NJ`79v5YI{xpbmEAEI*<4rZ>s$D#36qh z@qX{C{3FB>2lW(j#K*i#9P%F%zqg0>_uq&kZYpKtE6Q`+Y|YQk#E&~#c?aSxj!-_7 zIO3*8693fn>e<8*H&sRamuEHo^N1sE>JsA1Y&~*0al}nMLHx8Pnm+b9p&Sr5wVLGj z+)?E>Iaq%}9&uA!67SYX<$4fD+|*vgNA9fhOkU)cGmhmnmFW7B7Vw6n*J@s z5eK!5_(yN3{F}rf|32}fTWfxrm_H2VgSe?36Zp^sj(f|I4&tVcBzgD=k0ajN+S?N1 zSVy>ycmrz>4-$vp?=j+Eo89^@amas6{IS!tJU6g-H@w#XYiDhVpZSQ&??oJbzrn;` zvHo}Q9tE{1V#}zrfaUdJsq4)Lz7M&enAICyuzOBI29%(f)EI zal}m>N4yN{q{I<7bu;lLd#3#7IpTc@!zby4Iz%WseOolJVeuz*ePhu`lk;!SKH z-1)?3*|@Zrc*PRU{}sgF-&*+%#7Eqs{8r-2|E>H^;<+Wt?ZbBF#G!v4N&J5nKYTuM=nt0?KWx6He>-v5J9iQP%GL#+CyuzOSBV!k(e%F| z-ei^XpNLnOe{YK!`gfE+Gru|IYM)g~TC$0`YI3 z)AX+*4t?VW;{88T`NxPu{#oK@x&o2U7sR1&d`J8a>+j7=^?N8!$Zt)2J6qq+B@TUK zC~@cy*uRMMp+8I_`D;vHsvwSe>ImY9n>vX&;-=0ej<~5Sh+}=^CgND{Tb{t*CXV&K zUx?>+(DF^qOfP4wOEx2pb;<3C54HJdH{v))t}k(%Q>ymN2O-@(L@eq{nb zjX2J!JBRqw=KsBpIO_2(;y9=7Vd7XvdyY8tr8kJ<+`0FN<6M}Zi9`NR;+Jl&<+J6i z^m>Fo(~9^_r>k5y;**ys&r9G_6Zpaeei?DZjon2Y=hWR#e3tp;-XM;1>fR&%mg#kW z6301p4bAVnvApJ%^8ZiY)%P7v9OJ-5;w^2SDkTp6xrR8}&oRU?4xCOL_E(8tZt*JL5QqFv#6PofY^!p84$5cVVEw&2@v%=S zAIaSOV}-;Y+d}1M5{I6D81bi@tG#&&ap>)55#PJ3rhh$g$lpf%y;D{GapKV1pCkT< z>Fu8ohu;1*@sI4>tqm*mIVexWPi{i|Y8y{F5l8%F4)KQOcgiOYJEeg5jo)fMW)MgG zWI6Hnwr+S5ao8Pa5MOS7jGKr<{tn_T?VP&ji6egURpM9Mc^y9yAHIjaSIar+<^0-a z`g>2}h==S){C*p6#}kMALBu<3sOeV`M?B==#LF*G`E!Uv{$k=izEk<7#1Rj9H}OZ! z@3)dTJ59CqS!#2@ai@}Clio%jv$!qzI^(Bkh< zo`|2^i1=z7-*zL8_{pxs+xFD-M-oT;WFhe%&sF&v;)tI-l6b4dD!-UG;wP^pK5ly* z&mSR<_{pb;uN>9Cp(; z#9=r6P8@bqW2+z33)0^{f%ha1yJ;`ttAE%0k0XxzaAy!l{mv&2d+Ipiu&2%>4*hd6 zao9&oh@Wcqz+J>4e?RfJ9?|!DnKOLi^o!#9>c0uF>>R{^0Es_<#g{2yxg` z^NGWrT1fooy)>VTiNl^+LVVJ8n(zCG!=8GC_**t#G@YCNz8FuoB|h>+m1|ABP_voZ zmH2<`_gvyji!`17#L?bH5XZPNj`*1F`rw0!?|PA@UrHR$ttO7=9z`6_T|^wuJ&*Vy z7H6`Acw6(g-$Wew`8RRoXE|}?=NaP2&#T1uI#J8v1LAn@*TnJMUy0+njm%$;eu3w1 zO8gMh^IH*rcai3&9r5>VJ+~9_j!#)TA&%z`BmT768~YMJ`Fl<0VB*Nn4C2U7Iq{Vi zr*RB%@v*s@&*m0i zgZf?BTzL=T*KV)8FYz(gDj!Vzh(DB%ApXM>%BK^*c7*au;<$(OMB=+oQTelpL;gq|Bz~lo+dIS|{}=JOD>OgN57(b4&%ND0|%4~TcQcJe)O znjTsk}dNwDXC?5BpN(rx8aw6~vLw z1;huM{r^wmc&`_UpR~0;_XFaPZ~hPcJKDqSt@QVS#5;{vK9)H0zdv#0|1jb|HPm#D zA&ztw5l1>piEm@`=|jYk&dbEV{6U}l5pl?WO&rhtnfUm(G@Y#$>Q9v0FgyRe9dY!# zuEf#rh7teeW=(e@akTRi;wKcSJnpMOeo((xlKf4BRDLOOr2i1{;uBPUC2^$xC-E&h ztNiXq=}+Wmf1B_66G!C7jNbgm&jWT>Wd1MvYCpLQ$pVP>Z+ zBYu(jhwmYN`A3@m7sS6aJNjqh@E0{aTEB;KgMHDQIQ&K15r^HeD{=UXa*1#BbIN~4 zB=9N3+m2WHg~TtuSo!h9XMLgkO5%{ej`&xvsr;kFi_8vxig*)ie_s*LGkffN;tOs} z`A>^u^e4(0>o407U-6#G?N0n>YY#n$KXr@B7ZP7;`PrX%|F#YM7mg-=sv;rllA-k zh+~`_O#C7n_hu6R&f*j15=VPDhB(^8X~fYUE+mfja20X1!&``>{O=^bU@v{&r-`Hd zUm(7h`DeZ$j`CSey!2a5e*@Fk(9Tg`8x!w%tIF>{Jm=ra+Y;|!_F6CEw|%7Y{fOUT z_E!P%L+@AlNyM?PbQtlT<_A8XIQ;Eb5Wmy(ft!h6(V>BV@IA!g*L|Eg+QZAl(XQSn zzMai4zb5dl%&&}kInd%#wkO{4Q7xbD#J4y9!=A){G(T`5@w1=PbPgc?t;IPUMjZ0< ziIMZ_0wsp;QN9QN9O zi1+Dz!YXA`bZ*h@WTvna7Bu{Xa{5&t;na$HXE374d4D z7dARYzlZ#zzqBAecUP6mC64~mm-#@IpGX}2}sx9Qp>%k3l-< zFWpEU`bIzE&_4?kco}i%pC=QCK6wW5f9L6Y-b5VoONqa1#q%6-=szzL-_*|G{FylP zpFfFjXZqfD=3n1fp67-_=re7IH{Ve+)Q33q&%KFP4pjL`#GzkJCVrdwQ5O;a&GyAy zKpgGiO5$h_HxoyDxQjU2!^6bU4xc5C@_&i=n5Fu@UlK?8e@FbC%~gKm)9k1GaOIEk zX+iu_EB|)HQD2>iuQ0u_KXK@vLx}HtmgZw3ap<3uh)*~BdJgf8`fEBz5{LeIHgV{g zmk|Hb{OL=GH?Gk1Zy}C(_Fm$cPoE%;_V5aEw5tz@V?O;Yfp2}f<_rA@^J#11qjyoc z9>g)9?nV5x9MxyW5y$*^An}u*()25dLw*7APo7ly3y5QWyo`8(oqzi;;*h_O_*)h~ z{04E%r>ls+Z|gw~&qyy%%%>X>|K(ei+m$%x)2_sqYH_CaA&&WUU*d>!(K$hx{?b`+lSOzMMG5^J|FX+{VXlaOJ+(mg}K5b6?<83wnU5I18$R+;vb}D}$@!^(_X~fYU4kM2C za3pcGhm(k-J)A=v?eH?zCEG`sIj;wYb0#2@-t)Blk;>g#vn zDl@{)EDN{Er|~}K;?ENj`_3;@h(58{6OL#+PQqAh+{r2CXV@Z7V*E#UYptLpEdT$3pU6(O?7f8}o3hCsiR=g=J9}j} zWR_Xv5K49kl@(=YL`wF`9!W;g|8u!suW#@3`v0!a=VzBuPeV{yK|s<$}j$w2W6pZNaF z75@ajRGjliE2@IpUlr3ⅈ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 S>3zLE?V`jBhu{Tx8u~weiV5QY From 613090b660aa9b3ff2f0ed932f36a520e1d402d7 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 17:45:57 -0600 Subject: [PATCH 316/336] Delete parameters.o --- .../reccdi/src_cpp/parameters.o | Bin 708488 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 build/temp.linux-x86_64-3.7/reccdi/src_cpp/parameters.o diff --git a/build/temp.linux-x86_64-3.7/reccdi/src_cpp/parameters.o b/build/temp.linux-x86_64-3.7/reccdi/src_cpp/parameters.o deleted file mode 100644 index 6b82c379c7ddd4af6c450451fcbb24a145233c83..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 708488 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 From 611b2c1950e2111b487f97c7dc7b19e2989b3e69 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 17:46:06 -0600 Subject: [PATCH 317/336] Delete pcdi.o --- .../reccdi/src_cpp/pcdi.o | Bin 286384 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 build/temp.linux-x86_64-3.7/reccdi/src_cpp/pcdi.o diff --git a/build/temp.linux-x86_64-3.7/reccdi/src_cpp/pcdi.o b/build/temp.linux-x86_64-3.7/reccdi/src_cpp/pcdi.o deleted file mode 100644 index 7cceb8efc17847bbedbaf134fed26ddddfde1542..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 286384 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 z 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 From 9dd38e1df9a3ee0859fb8c3b56aff47e7b20cf87 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 17:46:14 -0600 Subject: [PATCH 318/336] Delete resolution.o --- .../reccdi/src_cpp/resolution.o | Bin 218368 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 build/temp.linux-x86_64-3.7/reccdi/src_cpp/resolution.o diff --git a/build/temp.linux-x86_64-3.7/reccdi/src_cpp/resolution.o b/build/temp.linux-x86_64-3.7/reccdi/src_cpp/resolution.o deleted file mode 100644 index 955d22b75c8891462fba22254836da0b274b6bbf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 218368 zcmeFa2bdI9_C8#TNR*6$VL?ISC@A0%WJS^pNkG&giYSOVp`xp( zsB6v%6$2{9HH$f5)-|o+d*5@a?!6swS%1I(7oKnXd8+E%^S_If3SG< zK~2i56tCX)G0lqC^ekTfdwF8)CrnLQH+F0F#{GgR`&Vzgj0)fb>lBxM|84bT-c4KA zO^qWBseHiOM>X43~_a8Z`c=gjGick6Md>X7?+&oddc3ksW57a?Y zG8we`k>b@~6t8|;QU^Qn+v4hNf0sK>uKsCtdPKO0o>s2No8 zYkclwL)MlzPkQDnaqXn$Ma64JHg7Uy_4nUYuW>Mik3!0a zmKCYM9tOt|rFiZ1=KY4O{;+uUm!U~$3f_d`)t|y=L=~3Srg#nO8x|z0V#ITz@)A6`z$9Z>xl|1jXA1CcGE556$@XT^h4V)<+1!RfL5Rq^10SpLVc;Bt{S zi~jGieDLpz7dPwWfi(CI#{Lrtl;)i~W758{_{_G)Z4oVDJ{h+8-)u?#+ z=hc_r2In#_tbQemM@#^S6HF9?)|M|1sxN0d6u17mcx|s6iy!(aR=oU)@~4Z})?CYC z4Y9LG9QZZ#wCmQ;{`2a~zNG1$zw4(j3Q~RLN3>eod5cWxpPZSg}N#D;Jp`7{cj;&@LXbp*+qzt+}VPCmFoWJ4g2 zL2HIIM}s_8-1;}ESjC6G42pMd&U$Jct1tWDx8HyNBqcerJyvfUvih6I3p^ljsxN1O zq*NGOI$s{r@%uwMzW+&=$WAhyF?m6Ga5#2@$|uhW=1eY|Iel*Vw3#!;m(Q6tbt+WD zt!iYbnRvpi@nv&o&6+u<+_FY!I-<-vZerQwEYdJ)BTD(q@pC4ZPMbAnX6eM~f_3Cr+JgjRuwmWs}Rt&zduN zp71O%VsbeRh5?v1b8cCHvP_zW(v;hB94yIT;`FIA=S(XLO!=PYy+fVUY8A03ZI8uoVh)P^WovwJb5O-tcxOuS3 z#id@o#jLbDE(jSu(mnqFIi+prTGRCx+cmvqTzjYM|A(oq>>v9X{c;enI6;tLSwfjo z#wV61G&wt~^kPq-v4kwKF_R!Q7SmK-s4P&Wgq;{ATFrtgFE4-EjB?m|!0Gb=C}%Cj z&~bjEAhC%_BfiA%E0w=*i6ER72*F;18)_YXlPm>u}Tvy%xciqX`+L<2#NDGQ6!1W zG|^EK*Jz@XByQ5g0j3BxcWR=Gl z9QUT8O35(nRUAiDyQj)X*Hu-H9sqq_P<0c~(;!wm8$w*&S2?CDG}6^|_70whEM2#E zK)1e}7wTD2?e@I`%E_QQnUyb6AC)g>UugGVK{1p!u~))yxte851_g;%kzGN8^^>x( zb){_7vM8eM6=_q@4nQKg2?jWVRb@Div4jj1$v;t0;{vE8|ALfjgMylr^J<7yEu2gR zh2#lCX>fidG+K*-E?-$MT^P5a$FB6EwJ7LDeNsJke~lh#lcHALiXGhIWG<*#Rz3;6 zbQ(gd76?JpqJ4O%+P@M9w#ox4aV*xR-c%cR87ft06GPF|rK;L^Rx^}K=l<2olNM2~ zC!E=4Do7__E8GBWpxQFC1e#TmHgy4^`eLxqoE@nPrL}@&6DXt=O!euXL2f`|^;tV0 zHl%p(CREVwf<_7pw0s;OyNlc;$Be<;)0n*ESQ@rQ(z>#O^C?o$#2EJ@Sey^fhO>3-qS`KT!l*1YM$5VM`Q#q{bFNgKxmRyDK}%;p*XXxOToA zu0Kx>H{2|To1T`#-#?eb&6Q@*?v|!a zo-5>V@6&R)?_)VUP#OK(w8lft9(|Wg@Ld!YKawIRdLRg-CghRztauy)3AlU#(ElLA{nO;Fy8c~rZg0KaziVW4d z<>Z-Dg2Lw3u$8n(E1OnU&@|QMBxKe!)%ChE9=bh>gG^wFnzM#u#J8qhqGr;x!OGT# zGfN;#T+Ldteg|!d*DN%3p)Gs|#yWk<1Qp1%S99S3urlq0*w7pVqDj)5`e|xDN6AC# z0%o8yWX(l=oxFIklb61Dq~)CQs*_J;aYNgRF_hW9L7kdszlNNcM^N)z<{QfAQP!29 z=J_w9q_(G7txhboiru(=sW_lYc@XSRLQP&f2S33_2T4A_Jv-%q zy@H?zw!(ct4Z*DuI1IpO3l>pba~t>5pqxqITX+lTi3O|gy#0n1Vi?IPZFC!MUt`<#@ffZJh{ za;t}q)YrOK!mb~n!Rc@(!ZmfAvXrHOr$vKO7=vTM2Hqqsu`#Y4Rn(J2GaE; ze#FL8RKuR=BS4-d`Z-Vu)sWIoipWZS1o-m|2b~06h$zV48)t0TeD_@~+6+i*i%R8d z9w=yUXb&R7jKe(p3&LuQ1#*03r;W>#ra(Om65dkaXQy*$ni8Vc^9bwkdJyl;CWjdx zDLe+~i{QL%dE%-w@(pSpE0o^>>3}Arfu;EIf;XyV@rTkJq3F?~X3C{K7EpnuI+-Z~7dQsqS z09C3MMT_NVJ7{P>CdB$6HI0Zt7q|&(UMmPEg|3pm&6ok86kA$1s%!n-lt5D&X?57h zSzoQqrVQ$nEc81=N1;2+8BlLZgS<*8=^=9q2v6^Zt1S&sCra=JLqt-v3!9Em^W94#CMoOuQKTM;Kv_&9+XZ{`O;zY>-SrN`tMlY*MF zob^6QoM2hsgh)qOKDH(P++65*lewgPe5 zGur_@PuT000|h>TO|uKo_YthaUHfLRa3+#dy%2*Do2zBeV`6zwbAofz32<*xn2Wj* zN}2OA3h;zd$GHUfHJ0NIhT9$IA>i9BXA_%Q@~U;Pw5jCv z0r0OZ$K_RPl;c!R1wkWhT61!|sYgAwcI<9o4zz4LvxI%}g)80!kd99yhQ+JnoGk-> zw&i4oRs)b$Co?r71tEp!$!fpiS z{+69t&EuTgfglY}BZf_}z;TWTzQ}Sit9iLra~%j*S&}TEj;TTPoO5|Un9o?Y5WQ-D zw z5o?~~a_s}s2urlN`fJ;Djy)aBHM?PF^~5EvC$5Ce{W)6}C zd?yE6s^QgOk~8@k^qO^|O1m1klTICOGn`3#&M9478;xf8pg)3YTj}>LEUI|`_@j}x5H6Hk1OmSW==}`1uE3+X+W!hDUN0<*TG!g?irN5B#|V~7 zvdmFhv#U5`1d?9(i{yY|}?U zddU(qvaVH`fvM+SUw{EoNGYfjDczg$YQ`iVM#<6MD-P|O@v*zE0I12;H^aSZpOJt40TsKIr z!Wj>|+;XflZ<(xhg=4P;^ZMPeGpC+fw>rB=VY9>9vB|=cY;~MZfd6JWt|T7&1;?(9 zTdf_jWi*1D1cM}Rz@j~I!vdQK`3Q6o{4S^LVs3->FtxAz=OQYxW5Nnb8V9#xDA^YMa&N*7<*gJ z6wQ;sUbDC@iAF-Ko-8Xjp*-eWkba7YA>2&hdkGgdMF(Lke268KdmpiO&blL@ZiJt@otuYJ+C*tFi-v=0hw_Jg_$A=Wu1P0OAQ+YZnAMLrG(X(Wl# zc3Qo+1eO~VCjct5a37lG_2=HKg!U{VHiyu8OvdE-EdO=DZ_mZ4A)G78c^3F<YX*yE4w&NNJA*KAs$j z6NQHgEG`xRI*G8?Qey-b>+=9zLfEs`RY$CE2XrrC&w56jd7sQycnQ$!ggxtd0-sL! zJ3v1Z7HjS4nqWK7fZ!C%PNr+EYyb@03 zt76j@({)co0suBxxO2amg~T zj}dq0fOSvvBdxh`i{qgI9zvR zx#B{gUvlr$$6u=6Z-<$1Q+t5XQq>xAxO}`laDOZBTr<|n@0{!8cQ1GHdwc*RwEcjO zNrdu;-*>R`NB?qi+ET@mn0m;ZOVuq{LGQv=*z!s!>{9h4R4+y9RC{8{^N_Yn)h;B0 zmZ4p04N|ECzzV62k+w_KKA<(V)E@L@m#R+C_l~fvrK&HuW)$EF5hW$&+9TmoH5b@& zi`$Zf{i{pWSd_yRl~}(4=v`~=FI8gwFF>YMWUaBK zOVv_3uLr0JVQJ=Yev2WWpp0-2Kz%c;b*U2T5orG9w?PT_B*mk;9iI1N^`rZ1_>Um359fW!#Y}&N`Qq>9C z-b8E;p>tiT4r2L71D}|Sqf6CLa!v%koE&zZlr)@@!lmj$U{|H%-clvm+z0q^Qe08I zrAl(y33yk!m#`~kHWoK|ZSW)?HovEJsS+2>0JSD8QKr_qREhNfK*br>x>SkvL_kwB ztaYhs%T_oU(25LeU8=ef-U#R_Ypp#UE>(9!{b*zKLSa# zjhc=s-$l4oH3XqkI*GBPOmC?YkADGiR2tb|s)TX^;3a946!l@b!=>sh5H7JK&L<%r zE>$-JyEDQ=C|s(ZhWgD2ax)x$VuerMYuv}a2F~YJG-hO};w-3+qNQpd5ZYRjw2rH| z^g^^$^#f~II`f51aHnCSOBGFH(?D8Cq7C;POVt@5TwuL1K!SeQg4oPFCSrF0+m20^ zEiNK1^4+6%L6RBD5{JN7E*B8J1j93omtsk)^VX5j=o*yv4C6#TxEJb=eb~vRPdj-M zt7z)MK~QbBISB3sVbh1jR9j|_gl1BtO??f6@Uh2*rX1>}5u_`Ko&{Gs&cwy(G?rH? z$r@lGW4aQhIoQ6%)q+_wbM$)c5s9z=c5NT=1%vxwMXCu7}DjsYgsi4C5DwOL&3QOS)wffZXsCTfeQ)FfbvOfJ1nTRTKqN? zA5baoRJrs!D1MKWsiyRmqz8phO(EAt*u+MjpbL=|?V;_RhN!g~ZX5z=OayC#Acfjp z%{_Zy2GR>7hPu{9zK)F3fn01+@|7aPH+Bmt@tc6(V>ukYLDSgt%oPW^#^G34;=pFa zfen^pFeG_m=iQ^&8)N2RW|3F>$VMpCA(VA*G~Alh9{U^s>Brg=@>y`{-r7gsvN=*u z>`I1Gj-{-R-`6gsTu150+yy$$M=>C$a8GD8wiJaBIDx=qq^}@AAq03ATrBP(AQp#G zReKTlBq}>dvJx^(l65BZ?-&-a&SaKV>riKklv_Hl&h*NlRL55M012v`)d-6HBW3DQ zAhKh7b_{3@p_2%~K<1xhMslYI)65f)>wGi;YCBcTfU2DSer6`oRIv=2Gb3#(xYj}o z%|@uNjiB69#WR3qs<=?TfPbLJt}dT4QwhXEZq%lF5vq?Z zsJ75Fiqzo{mo_zZ=M0Bl^5rE%y1o4(Sm`uKG7oK7RxZh^7Sp___F<-bUrf82xWmLoAAnql>l2u@?=rLv6L%X1L!vU- zweKA2zk2X&Gr##Vp|A#AWTPy+bb3;=Mo^5RtSAnCW18 zmL>>>P^>-PaGaXtap3MFnqlS^6!kEXUp2S0q%q}=Fbu0OG173Tgo!bRZDN#GVi;*A zxfw21GtP`e0Yms`v$sneV+vhjqG5c5wC*uBVwmU=>+KRfV*^~GS8N~?vZU9ZBy~TE z9(#30{jn8JKuTBq+Q$jZwlZS@O(ZfMXW`+DKTOYrD@C zICd-44@6Lk>@f2ao%t)k-?JPxP1tv<)yI#(;$1@bzK`pij|RY7TFy%@pErdw9ZqBY zfFBxh!eYE5@R_W|ctDd0du{N6vpxyXvJC4_ob@GuHf30U?yTw`wpz&``xRjuE9KZ!MK8mkMaF=4OdK@28=Sa%21C&M~VV6h$p=xA$wIL&G&1ipvP z7XV60gDSMQKpg$C4H;0<<#_|4Q(+&dRZW-Q6NK2}Aymg%y`N##z*+sCVbw$+DPg^C z=?kBZAud=JW6}X0yA1 zJc3QSFExh&p1c@kP~HH`dk37)(s@d$u#`NE?3&or)h}?O{*?Ek<+TH+*KT>=$?EmIrLw9HfXF{mx3sCkvS^)epo`By*TZNb62kG9|CG zo=*Vr)Iauone}`jh&S%eGXfV?S`{-7g7H}7Qg2e#J}qYc0o6y5TGy`y5+d)S%xZi_ z%=`*Q0#mEj^du4#yEJC%Lf<^Xbm>R4A=B5TpO=AbdIK+xI4QAL&fg@0xfq&>z^9Vq z%_G+e%-%OA16mQe2qS0?K_?I{eT{^)(YS2tltFmp0(DZZ56mO zrhoGbpcpRWrTSss+XUW+aD6~c340~iCr!orKtTO6teR$JKqqCu z{}7mGC+0jrmt?@NJNR}$_gWa$K)-x0kz<~N`VB%{H&g7Uux2GPj*s9<{!idM_g9XL zC2gG9!jX=t3%q$Q&i#(l8~9$#!mF0VtV6uF;$Hy!$>L(K75`B3kftx}jni3d+BhWCC}<*#Bd zE&Cv#ry|(~7=+Q5bgrFw>ggK=E{4L)1b$*Jj{e+;?#u?@7m#y>bJ0&u zOdlb9GoU*o7djy7>5qwa5PlBOKdiMZ3H63M>#qQPZ><#`E3jBs?~kYTu=#oG70<_X zzCWPOgr#*P`0Jfu0(`zBd>Eh+guRl_6IiUL1DZqFvtBB&Sg!%Jp0H=VMPP~2YXRMq z0pBd}8_fF&K+k5tcR2WCKwo6Qj|+Sa`=!zV^CC-JAw=o%D?z%|5~)fF zTc+iDj|tH{0m6%Eq%cSQd55&o=fHoo9I2)H_<>nW_h2Xk*h7Nk-i1gj`Qv8xWXI zAoR8*Ms#f^aOChYo2 z+x1}KNDRLK{4H`^2PkKlaHJ)E03O3sl*Q3+ZX~bzz*~@$nU^jJl2>2gf63)%f#fBA zN`cSF<>yr4h@X|f&&uWJ9O1}xe;x4KbNRVOI5OQo3;eZoKXyKs`%0WqMUy^_Cnuos zWsb&;yZaBpU9;3AFvITw{C6Boya2g{`ePqtz{@mRt@J4;PkN4WJ%$6mA1H;pY1j%s zVXUaO%q)avS)@&U=^(uO0P2kql>4S%9$=})ky7_0)3Tu9`+=XZ>V)#pp@-tO7{T!N z`*12kc?9L?`vJ<)_X9N{*TYu$FO~}91+j8eYbZKL%9P;^>mvl2%>6+YsU)|urBt!Q zZUdMc4@}d8FPai%e&w?)l&WX2fVg#yY-V#`6)w()(WP{nqCW-a5@gP|0l0@?T?Z~C zI1kF_vAtqJE&bw;p!l3hai_|qzd%t5jU~!dWBN+cgTklQ2h_sCa;sgD6l7*e5`ILC|B9EK=R*OEEm0*c|!}5vKjg3#jnn z#NObVfq;ic6g8KXC3-k zJ|Y)KpZMrc&UE1O$zcOZN%hPjdN}cPVCSXd-V+~^&5eNXCdC!Sd*VZKc^>ea>0ZLF zl-X9?d=LDW$W2%oy}T6{weXcfeQbVD>k}Vh-5Jn?ZyeB$GJsPBj@Wh95~7e4W^9oX{`?mzJ%W8+gGKSyYaD&NKL z(m19%zLRN=P1{#U5>cEsLXRsL6XLNKhy&Be{u3WU84q}78bxvr%N;)Pu?&PWEs66< zh=)&nTnX&j2oIs~iH`@Mel~(M_@$^CzOS*UvG;&~YdKshyoyIpd?YXrH^i2+;?fJz z6Ca(x8j#N9=}s6$`oss@EH)OT<4LsPp5uv+lR;Qxy)i&?EmGdK^>0|)q7${LL$O>v zf|Vs)PSPLbxM`EsAN$E)tz0??4IG}dP2yvfrXC#dL~U=lE95qnU7*@BvoAF5BW>yg z2Q4(cp)QV~+$U;$wo(>bo_Jz{VY(6}oTy!a6R1!g$_M}35R6XLsEAI~C`Tu1l%o^1 z`yg+{R=AL*(zB1Fo`>SiNSRtn#5+;@%p%K)glAxfO*sx;6T_nP;33nZ%&%Mki|9m+ z1?)gGJyBZ&7yV&05L@AT`cqI&)R^-z045PU&w+BH))>k~*iNyamVWU%D9)u)+^KTu zRZ!d%DN~owSCSqSKJ^iZ&sx|&QF{y8FVYaTR>O_I0!pB9B(tm&HMVqPplu>X)`?ng zAct9${Ol98iNL2@PIRKiTyaiD*Epn54jkBwIIzLeuT>;2lKjz#HxMQ^2D|?7SGMpl z;%PaIl(&r4ANPf%CMRwncHF*lnAQyk2{+T=?ncAIK5cM+O-u+f`89Zek2|UOAfIrO zxTP*KyK$5?yTzH^dapIRjSoqQ8Fi7_a~D{%7x>WDet?1oFLFN-$Z~A*^p;wZF_;+d zdN?0%Iv@1y`M3(m6Z9c@+T62!yxMd`RKM4sv*mb$xqJfqsz7&Fj_?r})8N&~&c|ir zqH>6j_CSuH4?gLvb)jU-Vf4LICV#p)A2j5MpW@FlEVXoZYot?bZrw?3w8I;aTK&X( zVP&i5-b)w03h(SseAs!UA0__)DI}km80i(!dpVwFb#@mYcD`62C5ta)h$_@F?17Py zh0QNec#+g_9bnrMsPCXb^2WZt)cUB<@hd;*6XYu1#%wd7TtBEJJEbWN#ZkY}i_cQM)~YIc_w3 z{dP}`&T4mtm}~cpfQ#Cl1G6P;rHYxZuQ4o3X|`(;#kG{xn(2s8*V<!-OIoL{{+1zqjczqTd=UGU(Cj|{&ni1#L{r!w)rm%uEP`|-C* zq1@lSlQTZRy^}LO)cgyDG$mO5PT@o=r#tZ@ObuunMB3C!2aPuEpzany-gR&s1;Py( zx*H1kC{otKF!cgddP*EWnv`v%%mKW_Qr>oyQc}drIe@Psg(XYf2uf-O3(|*-_zB#b zyMRAoIW!YunB8o0XlUL6=Ogl1qR_)BM9sgTt%9O!F5-dh6LOXdr!nw0X&m(H$XNkn z5^sD(2D+j)?6wH3_S7~!a4Wp1*wcx9@3-21k3*C=oKJ(MHGb5WQJU~&lrisRlnuM_ z&48g}+J%mtnA7nrI__n6wJDkSfiuVE3>}W2D0DaQ{?}(98*i7CKCsyM z*;pGaQek38te;Cf7wf`ASMl&d%zS{XcVR1Ba3fT`Mg4Nj`~p=aOiZFqokXm=VDH9w zxEru(0=xw|s~!BIz}pD-1$0OT{Hefaf^UuiG>Ncetj_gSVeE6W1kkDo*7rRt=X>Yk za^P1-oUnYq3M?)j1oTt{`!4j}l+@vU;9ru%I;75FMUq>PzvfjSog&4pie|5aO&dgr z%F(aBB*Tutdy(UuDW{tAGYa^GTz(3LBYqYFUzW?yKEh#dm`i|fiZ~gkU3<4cHEh6q zG{FT7XRz?0Sp94H)rrE%4iN`O$!3Z2#F4^&ZFFU#a8%`d;C!F+_5f;L}6EXg=6@Cn@T?j`(Ga=HZzHrcJ zGYjfP5tOwM{yqV|Hvqnrl<#1estw6s2&*7%ZpZE+OKIjPr6335U`iG~I(d0oDh+AgPwr;tIicRG^a<})SC_(Z7zoT z>Ill}m9{|41K2%D%6l+O9R$hmm2RZGi{0mzGSpGf00?VR@=?QD*ra5s#!zMVN^9Uf zEQe-7^m~Pd<_K`ckjE0G^~&+kE=uU5IN20NVB%eu$P8#{;DwQ~C zY<5T_KHkBKPxiFpQv;Ot`!lUCmL#g>r#C^ZwcK^hAz_3{Tga3yUtss5x$L5V z9fh0O8klJp$nN`qct7`jK)k>EJ|I58eII~;Z7>z*|JVvgU56~9fb9fL??{^(>!8u* zFsMr+C@Wy!KwZo%z>7$k2*cEOQ27D-F)14WUur1xeyDG)EWL-`mfELmy?tg-|4 zHQ=9G4$Xw<2P_Ru46T*GCM8M>*apzHBOll*R`5+&1U zAzxJ#2JH63Bk}Q9toY>nR($F!D{g-fq6UxzEWfC@2V1I)H9rfIAF!`kgghUXfc-8F z_5+rVs-l4U{f-x~{Jy7!1-yXmN2L^kyQr3*PPDb$b;QsxV5Kc2VC6=>3s`NMhTZOf z5iW^%@8Iz*k=WCTIWO^h(jfBilk+eDjjYakIx(k*O}>Yoe~ruz9CAY>_H<%S4>%`8 zFZ1*)$&>mZ`YR~?SEpDqkGR~>YTAu=a7H)nZm26rlp{5!ME=*QME*Vp|M4^iqbI?; zTLt013AiPR%djs12MM_miBVghTJB)c7RHJd#5V%#PmF??DNFGm#Fl^L zl49|EsA`;f%qMhx1~fQEh=2GZ27Y0N3&cNxQHZ8ThJ{%q82=e28~aoW!oQ2rG8}~r zf+}B$R*QP3DS~S6>0t17VT!2~lc?~k$VFKv2#fzPqZQ7eDruVhP1Io|aR&z@a7a2Y z=Zlvm){97fhIFgGev~5e-)pj3@Hc_@k2V5@2IHg^_y;#yLUHRi({ds3uWz*BeXLfT zea-*FNm0O2Zp3bE`3XVy zX3IOw48N9cwvq+W@5h_1qO5-e)@(Ip{jR*(X_WU)U>7u7Ls@@}-t2VBHC4Zsvi>hz zvok0+Q2m*do2YyiCze(!Z(yVrg`wA2TA2TJB&7~p?^3n||M|$Zgbc0_{u@2>ACX*h z`0%;3z9NUUHrb_;A%z)wn~B1+-VWoIch5Gwy>$>kJ651ZkrMjRzkh!UEcS*z_6 zrZqIp(+LXIGo&3%h=S)p@fQu7i$7g(kUyinYPfPO%Ykd~JyHaCQ@VSq!jhdPbIo1E zIbuWYA)T)Qs|#{>-BKK`DapIrMz5+3(kL;Qe4K8haV}!kbgfV`A0MK zsiNlJQH5$bv#7F@)nPgL4^>)VI@CW#s#0JgnEzbm>Z9i?RX&Z-hb`(E*RaO?qbtw2 z19LC8seHn#=z+$vA6%AfsEyck`Z^3i^tmC!$Aj&#koBxG! zk@_4=xx30kDECwOFv`U$AHE6lFqMZ=K0@UqC=XY81mzJbkD@$MOU{=?HagdND0h z8|LAO9?C81a8Ivh0C*Y!iqt24JZRC*CKq`1QhJ#k9Vq8jTf0obHvZDx2Zp_cWk--v_W@M~G$JOu@yF^TCUVvHZ*TQ z^L?aEZMzPh({~}WsVTscRRf#Yr{d1ZzNRVE9W68r?o;~_mkw>&3{pU+W)L_-BVLF$ zx9C(LClD=iwi4H3yBx@x3|on9K{o-}oM9{REyL^~AloBUi>^hJKo`pUfWOQ|k#_Ei z5}8V9*+On?K;KInRzWCj0C&knX=^Em0WQf!X-7&gW;6@%B1>U&hHWLIZvZJ90AET9 z+bSiL(y5cn17*%q-D~6-g1>D?HuFgg21$dyPY{^9#5BRT^@&d+kR*g;tyw+0W22*B@t^$0M zrQDJ$qsIZiU@7$>pUZ;9i#UY%a=3z~e3DrCgNx zfKRoQ*K<)W1bmgHeCQ}LA|x2@1N^w9c){Q(I|1*q6fYPYCB7Kn|6|iid%@r+EdY14 z6fYPYWf0(zmf{72qf7@p-%`9_aFjCvUuY>_FgVK1fbX*uFBlxU`4Mn@ zNmOYs7#yWO;1-tR1%spX0X)c3ykKyYiGZhDiWdxyvJCKU$zO_V3T#?wFBlx972pFb#R~>U84P%| zrFg;MC^G;rv=lEG9A!P=i!H?q21mIS@B^0O1;cO~4F3T9uBCXv;3z)>&ObS-v=GK8Eyn)(_r|)QN~#>-2e};6wiyJ90ho?rFdSBwqBM1US%ns7e~1a@O75r zc{#><*$Vg>OYyuo%7=izwiM6HcPbY;ZA*LnZ_7Np?e*)1WqK5z( zoPo};Xep3s8R$%+a=CK~kd+zeETVGhx)I1#8R%?_-UnoB20F*0uLF4}11+=YPe6Xp zKygDT%(wPRECSg4p2Gc;5bXk_X9kM<4AC7BAV+4PxcUy!*+AxJptxQQ(KCUZlY!z| zEkw5fxg`U|1x<)P1?0I5bdg0r0rF)AigV!5w$dtm|BcPB?@1Qj4@g^!YGj^F)bxe+ z5Q~&fEDKs;p$WTo9Du12m|~a)r6Yq@m~}(K5`YyEAt)^lT47=eu?wKzXfe$b-Gw}F zf%dKp1W6!IOJ`0GTAgG4Z3O4qG=G6o&b6){ z2K;oIt8jdtXT5v?_@8NB{8F87T~$Rb8)9=6^m!Lre_g=oN1mK5NLy(`Tx4C904_~) z6_)A}>tzw(HECWnw<%<_y41SbnC3<~L6V&|b>f^kL969`|xm8=VlITehHbFeb0O^w+C+V*9qeHZlL9k^C?W6W6A!7;EoI0_Xfff+D3d-` z+)CeaLC5ACKo?o~K&ei9u{JkBeNP1GQrKPaZi35N_#*JvB2MVNm%#G%!?%Eb%7FU| zESVRs#UQ{YWz*GAb2wBu!;qWl3cOdu33C`Ma1r5AfW~IPM>x0~(1{uFXn|!#+yLl; z40x=-GL78~=*|pyf`gv}^p6a9vV*?@^nC{WR|i)=15ZL?^E+mygZBs2IRh?t@L_;P zWWWm@JRQ)S4EQ7muK~0^1FmrJwSaEQfLA&A2|&+g!1|~2(rOIF_&d$ z6Yv`%7b%bPm2kw*HsJ51`4OVqg>LmlXX5r}&}(9G(>SMF$JShW$P!s4&haI=v1iIrT={Tb zcw(^}__{P_A!ms5vl;kZX@2|+4|C3*2kG53XJMQ1J#glBj9AMg)g5S`$U5kOQ@2tFjsh^&g4+G33C!#o74QQrNA5Ue zafSdNV>xomA&WB$_#(@Zdk$Hgvw?549J%R`#kmvsR?CsQ4q2QxfPZ8;a@!$`6P%5w zLa=Gw<-S7}r#bKrmLoSFvN*-SM_7*BdC1~S2R`3&w>@c$^o3zil~Q{CJ!nfyd8{>h8sl$7uk(rR8|><8k@{ zA8a{Z{CJ#6z-L;H7e5|n74Qv~`~}PL;>Y8B2K)!h@#4qhBrm}CU)Z$nUi{qP;-@q4zLw*~kH;wi zUTQgB{CJ$jz*kz17e5~7GT_%)ju$^3=Mmt~T8Y8R1U}w!y!i1r3xHQxju$^3=VIVjTaFh$9_K;ePg#x^KOX0O;9pvf z7e5{+fm;{6oYcB|@#AsY0qz;t<8cDqkE()A>+Z#m$7v3{gXMVf<8k=> z=?Kg5;>Y7m2R`3&y!i1r>wsTmIbQs1llYNy?^}W2O^$c>=SU#R6lRvrAcZ1U`&RqOV@ZN$n~ z7PLNKA70g(V@Yq_y$Jg{VWKy^HZenK(0Z6z10UzoPg7ot@&R>y-m3K|^Easf9zl9N zqE^S7hoF8rg2c-00wv8gAA<0`CGlY}eV$A4#ijsdt$|ImZpi}o#1^!cJILV~=r*`JihtN5+KdS6 zt#?L(BwIQezbt%oJ<+z#LNKJ&+SYANGnMO6&Z|L1+Xlzc$!uH!%LA_AQ?8YWCEGT+ z%i1@U&{z9?DJRsv`8BkkPkU-Lgo5P#(8?fe+x`hFwqS9RuiA9G_pR8d2gH4tYrC(_ zv)6;hyQ0&j7m zTm)e&ydG4InfCR}cxWbPXzQD~(3~7;^`)TFkL??nbx>cG2Bn6z>!TK!+GlM<@&V%+%O#rG%q4tfiNli4OX9~VA_p~&zWK5_Bl6EsI93-jW z1RJ#efP0Q8`8Hzz7nx*_%>}#fND)&Kye){dIyjF92GrRg2$GTozm>o}EUb`N;>mpG zRgmCg+yx0n8GhIZ^CZO*QIv?HAi-A+l_dD;r-E?Lm+h1!_&2yE3CabD8$}+zKQ$_k zfsEf|LSK;hx&!sUi-yl?mn8T{>-ZHzOW7B3Pkljx-v`S)Qq&>!Ip#hIpAP#F4CUIC z>qvKZsArafa~ifnl2hMer=8rPp}7!=t0G9dK}K|kCLrldcOT%VBZ^Eg^6+{vg^UhO zxo2~jchWd4=U`|G5m+Aq(}y~{!XN*0e`=s zzY{5H$V`rtsuuA-!-MH6H)a>jQn@KRYJtl8Qa)Mb{WvwPQn>~Br>oqO{@1D8ikxdy zZcWbhDz_u&CY3u-|G3H>$=|N>0hFIsxeGZvRPM%dzNm5!%CD&0lkyuX_olp4<-W}8 zW0?Vp`cn=}5q3e*LEInuH!K3!3SAEtVg83^cBIuO|7qzxN?lZJP66Tch~#y1(O^23 z9}Zjz_}Yk~>uS;AL|Gs6Fp$SH&|yTGm)QyA!wgiHMB4raB=72|+!9_z!)eQ!n+8Dk z%|JORYQ6^o>6d|yBFf%1B|whJKu2429+1TuXbDmFmN^^9g&8QuaG3ASK<>;yk0L7d z-2vp~3=|_j^!x>o?=sMFM5QJ7z6LG9O?pvV;~1jixebt_40HlfDRVK9!!yu{M8)$I zAk#C@V~I*TF9UK~23l&-D}Y>+fljjMgFqh3Kqp)DEg$ozDVtzD1`{U$n@g*INYh z7ys3^An}~+`Ja#_iKhT3Ig{Zxb{)At6np&YPWF@w5+6;VhA%)W2>1L4sglGKg7V*b z@w;2uZ^XVtMEqlHi}blq4t@B=}z>C5fXB7h#VhAjmmrxcR_;hdoD=uCE+EBn?%F-C`q(w!u=@O|6Ne(3lfx3eVo^| zDd|TfsgDz(8Gs%_(%^=7{Q*@!&7?Lu7{`f@T?wo=wVAt3~tcFje1xg z7v))c_@^Ge*TWBb_^^^tKB^R!^r7eReLqUNmF45fXxWql5GQ4&*qgE`T{{P{vQq5h zWyf|8^2*Af&M%vbeL>mW?m?xpGGK|ax!6}OE9=-b*sE+V_EkdfFD`~hZIZVxLI#zX zOP$s=c}1F_+qCISrbWkD+gv7?s zag#Q+dA(GnPMbQ@a4hG;DQ)WVafotW;kKzK7s6AgOIJvN$}bX@5sO&@5m7OK5&xEw?v3ZPTNxDj-8!&_j}^$6LKem zfOx^R+>MM>z9U@UeZW_Uhsc}!X*FLPt_a^T9wM(%?nZU9}|fBo&wqAo9(t7=h zT@E=&^6i32zTj`(yDh=K70UY~wq!ByO6s>m_j0Ndf^YIZr)4se_d1pHl5mO`w z$seRqQP}ttq-SBXjf$vZW1j@wdS5RDZHtBNK-dWIwusONUAKf)i5;5XmSH#VlD6P% z1^%?p3Fb9rIJ^$s7rx#(Up##{2zj@J6>ab$2V}5#2ODf(Xr;k80=+lmFXsF8<3oHj zY$XysF<8u(>&KV*%*+OJCTB}FBx{2$zKKQKh_twD@FLqbnAd`#vjy5aut`N2I>EdH z7%`7R_iUtR#02v`p#DwhK8o~=kYL^pcE>-V`#sV##)El$A9B3vt+;x}CjKb|$q(3v zeCKk!4blfkU^t3q1o2Y$j^%k{*r&t6nHurJ0fbR=wTzm@T}Fbk60nU)=~4WNfYfs_ z|3)Cb6Zl}{E+^u6pIGMm`PD@KSYUVZNlWP<|763J0e#CqAczOJ*P4-WlQ3ic$v}KC z@PD7NzQSHJ&X$A4{6m8H>2S5XlIwfy)j_r#EdG&k_@rM}TWAT20A-*I# z<0eKk=07dOAJ5L1sQo_$&FmU6$t7zY`L7J|)SX#%u&!9XT;?Q1dUArr{F8?GNVrP> zD+A}?VXrLdvN~v;4+m$#K|{C;n1KicrK^);sml_>IOhL6#Gn5I>*JlZC)zlUje&jB zyK?28700&nh-oK>aZDd!9ACgisW;LKeZTWrJ+4lAQZzGehu~~W6T_|g8#OCD5 z5*Ezc%C%}G+^xrEJq7cYQ@;_q&1w3@16Zw3p-b--7wzdiVYAQIzorQ0Z9?JVKf*!m zZa>3Q3~OPULn%FCie@40iNPY?sWr8O&Y%p8Y^|Ut9=wlxsyLyy=+h|_%*C^4cQ3yC zH}t~KGQ$Pl|CqYlfK?bS?EEY@JV%H=m>cC2o07M}@cf{{Tw~!J&g#{?=TAH1X@&nW zwYP~go?7s;((tUt|HLjc6^5rZ{H!u@F0S4ucG(J31G);cUx-wgdZD!1@Z>f6R0)OH z4J!;!U@OdzAzEQR52e$j%Shb$lG0b1>>^i~{~L;1X%C9KCabu?>4x|3jZ6#lP&IU8 zF1`Rkax1pAV#Fvjqt4I}Z8!@oGZMyE(Rkm`Cb%o~Z!UfrhO-~UQ&rZOoONoxFU|Rh z(!Aj0XT9J@J&0E^DwFR&!}~}yu^(TpW5$K4HZ+Q_fAFL*-IjM0Gq0$6{Yvr z^tz>Ii#KL>Ab0p|zYo9pGSdPh_y4Im*K+tXh8uvNXUwQr84n|4^KgIA68O3mALOj# z%>Rk7_#iYl#U4Pv1^1_$!mqRB3x_&Kgp)L5$^VGhVy1?hjvkwD!8+WrJ%rzR&5sbV z92paLN3gLxBA*vNKO%-1F2)ZbY)x;7z%=bsP8&6js|4Q{^;txir3@4tqGy!CgUR3L83eEXA~z327ZNSjvD>mzMi2_BBL zC;5I~$*KJ^)W+9ew$#fm|3TLTu4?roZCZ96b7}`hS`_#~+g+&cD1?e1tJPk%0f)1T zIXs2C1GedlG5!(Fomr*JJZ}iktmYX0#S$KsF}<-&MxWcl+|9-RcrXa|e>|E1xHR)~ zu^B&pL6CPj5q>Ta{-v_dyK_6%c7B$bgF?Qh@fFdX-5=r%%zGRBI0@tlndG}B3z_#i zlpIOH#x&1+DIVlKdhYJMbMf~-d5>TAFbnWzsIM^3S?SSGT4{Ky>3{OKV^z8*RIV^L zLRw)qVZYMwblCsoUk~blP+4KRTB%JaX`@|chKA{tX7+==16*{ifQySmWrbO1rDdTM zx!4@0-E_9EhRDd+5{}j*INtQL%<$UG|Kx4IZYx`2X{fI-WmcLRN-GVo`23HwL?27+ zWTh6?gjc8jM_T03P+4K_veK4NimLN`nEpT2B4MGH8D8A^pS)*!Kgy;U5$Y?IWehHN;%-4`A%!grGYqrYpV%Gm8=T?~et<5cBb4{3DmDN+p zqg^kpkY1`Vd)PxO411`;>|yV$klv{2`?V_Sz(TWw89L>zQPc+18A;KHHFV>ID?7Je$s*ic$! z8f22MsW7~6qr5&=Iv|wXns+cNl!RZIwy~PHs-854)+-IK#QaZeZeE3{AC|MiR1c*U zCJw2>{1DPt8eRbUABng}LM3_((h73}_EEI)lGFb%+E!TpBH_=%ewE>MuK!`A4YbUj z!t8+kO2dn5|0DB2fu;Toc!l`_`+qYdu8$a|ndt}w{@_g5LXK$lPKh6=gLU}A+_Y5dVuMv&}*6YoVcdG?(Q4#H|W1>1ZY z^F)0C1(W1c1SjdBF#2Ezt_%+dmtIo%X)A*U^ovge^35|WG#&C&VTOd#M#Br<=u6z6D*(SN*4>F5byU)xr z(lgU*j-#Irg3C;at*w6%S3N2~YVeb+ZFDiWJnh;uVx?Vwu1>rDjLtXq{2J6n$A5AS zx-sn>xz|(wA1r>&sP$_;`Ul02Sbxy^dxwtpy!A6LssH`B+)c};4&II*6G-5g zqjwuNo8-2IIXXRPY#}bw8yB18#>HMsk_AhGf(D)IZ`>sJFU%-Z&#fkW66hFYDyzvn zAK|k)3vwcS#^wtVh?z2YbC-eumO zY|E$r_gyx5ezz5m{mD|6?cU{|t@vZRcll>~yzUFTt@xiU<@DXV{Ij9{!0uh{N%ySE zF>UN-7TObc_}!(8OtfJlyn|oRmI)Ig?U;xP z+MbE13LSi#BHyN?Z_~-QIe>}0svFTL#V>^qid75r>wtp4bcd?4T>!!YjH5~Q&C;~3 z8}muR@T%aezPeOIM?CLt4mnbF*P3Bgy3|UWt#rk-i1&<@@{tce*P3J~HDj{Vc<%Y7 zfWA3tKT#gd{YBWgJf`F^jqB{%$QvC>zTWD{<^2ND%OB6BdeXisx|8lTIDdAKPbiIUMZv08P!OxQaemCvA45CY#K8tMQydF!Jt$Jm{yO< zgNSSa9b$2R)3>gcu~*$mP!#4v-?=U-NC8pU!^9I&!D{sg3x?lVg|1L2JXRA+D}S8^ zFzsHY6LPE@m?De0(D@$uZZ~+n>pHyYHHbBR8rd+$V`>{`MgNk!YcC}v*rE)+LGp>5+N5SQ~9C+$(TY?TL1-+xymKYvD&+u6z5|rDA`{QbJ72fnNq$KUGwvja=lbqn7Vz zl_+tf?Bpw1VRdjowi;ie`ATiCF1ARv6}mc>>-BC{i9qR9w=~SAyH$(1-2Vfai% zMp8~)6^`@0xo(aEPm)Zx*D_a>xM1mut+!YYdiOXV!Qq0@m3`{kt zqK!E}U!t4~*8++xI|u7RB*Iq0159B;)~rP|CoOWZSpBgeOF|byJgExK4VH$57tP5A zjTD?>_D76%uG>U<=~SdTre;*DVG1ktt1~He-T)ap6(&FEn2O=FV3}zM!f-RHc1e{Z z#bmi?XaEf=v_iPNN$)YCU*)Hf^J?D?>C?>WQ%z6<-to4XP(EisT_#UQskD|E{E~ z)_!z+85r72mwR0NQ=#ATGUIMS9$=!7SBBlMg$TR*DuLM)e^UwFceUqI!~Pm-!h({! z*<&==izl|7gMo-8yc`Fa@ce8B;!G#w>#c^Jr#b{<`p4+s()vmhjPR3`^MY^9sEwK0 zJtk%wj>=TUg0f6iRyrP()yXPE0gKiwTmK)CGqW=Cw(m@BTKYfo{~wXlvOyxJ@gBGR z9uqUO-76?-RZvz(Zf@tmk_BaY<2w_pCLNM2K)3v_+h*pq2mSO%)%X+c_P9Csn3!1z z6!`xoZJRYnb4(Who2Ae6wFlXmU}UzHT;2O>PG2LlW)2f%5q%@dMqeA_tLf{AEMGo@ zax9pWse+ET+tWXBcpILsqH#7clVk9&lo_9Ru*Ce^g5_w_9Fdx1T;*V8{k?TIL+jSrd1*Ro0|q zf-F_GRo0x7V;ah|iUl3BB0HBZ(=JE!=TPl_^kngDKtP#3<`^=njG;a=7rd6)i&85q<%Q@>0%VcGya}22*s%)#0Jy2y+vKli-lV@7x zs(UV7rd^I9kwcYjwI>r%w$+}j71>r<-IKEuvliiOM|)D}J?Ph1P?R+)_EeW$s6Ao0!?)dj;-E#B6L{vS42B zn>AH}_5BJ^lAL#HG9AVAx4fC^wDcbpB#nr~p7`72rpt7`SFrn9XL9%Cg8P5l-=6jB zf7CxY=CI6~?g3>F2Y8NKu{kEp%>4i8Zrp#ee(XU#{wS-=V(o#uJ*(Vq@7(=~9RG*y zF$7ua!<^|?vpwz8I9jIY$AVD_qo+Kh^nZ{4ZGr!`z<*odzb)|J7Wi)q{P`B>SHShS zO&-2gGXJVp6??-cNwJwZlS@k{P3urLr*wSjtXV;axn*-YOq)?UeeR^m9ZK7_?a+Du z?)!J@aO|}5vfW{m7nBE~m(Wm|)2AKVVQOhS+|jKRa{!deW`nG-D+#yTB}uCt+m!_ZMDn)oO{lBp8I@eCPbs(-|IiE zOy)gj?sK2JoO|xM=iVn}nH`pFq!6G~roE*rn{IDAhzpI%F_UdcEKb#D+dB_xX49uF zwIq>jX=$%d3L?Wtzs}azvjG1f+0xWrm&~N(C-v>Et(0IhMLf{A4GpPA`kNv%vdcPB z8Tymzkcu?jPJhylFp{u8m(({W`LaaE*L9^^vP08t6S%QZS=G0BOESd#{Adp7 z>rA$@t3FE-in`j;ZRu<}*^)jk)gZXuT_Ls!rASvwWIL189P}%`#g-I*M|YC0Pf&8{ zHohPw7a_rY^Y@KQG-)n|Y-dV~fIoF4(^`i7sj;iA-j#EZzt&_&kSi`4zBEgwv#Cxl z>;#u+!U~OY(bm

        ZF_n*`~U1MG+x>5}JNThf5|Dqr_Zmq3NTJBzl&4m@`jYlezGbQgYBwzhHB+;pdTvO!mbt$vzQ#2*5}`lotXlaa-PVv= zDt}V*=xDJI)Hu>@u2qn<`b<%sJN&OB^yiXxx7f8 z@=h(6i2~E+w0)oAetnCcA27b?4}G#l?<}5CblE23`MqCJQTaji)uFdgnCM5# z=hNqxV#W0Lx)s^a2HijF({V3f_4B@ETP^In*Ps)hYKryk*Qfs~`nPZY0mIyfPxu4> zQ`G-NMYr&$r|F-5{ZBaIq!S06GvKKc`X01(QNw`obfu?apHTAmujo6h&xr>gLQ;MD z&*vZX-Fq8Kwdm|Vw-jy8*(jgik0P~5^!gR<`~H20IDxbJ+!qQI-LPUlrFmwbmy0%c z_rjk>%rDw}yre)Mo-W#aRq!E8ANp=g>a$-zzj&_f)2C$YnnUTge<(VrU%#Rs9zTQr zUf-{==(ZIzie8NI`*?bvLEpXoy%|N#e3^HP_~XOJU(s))qFejSrxZE2zhAy)7J{gB`DpHrl}{;r&)>2l4M7sA(>6aYiem@#k5qmCP~^N z)x-FCH%*Lz6CK63;U5WaoOG`%6@x1Mwt;tX~Ra7_DmL%eNE~uFb zF1Vm-5|daLcVs(bnXZnG_RcI1d9k+kY$Da(7)xg~F{-x;Qb#qZOl`WU zH90linPHP+F=?n&px0wH@o94_%WEnY#HS?6XH{2L%$YkSo~WK(QCmB^Dwb_cWK#8% zW@Ae`wSl&#=>3!oFK=n0_L9!lH*<>}PPI^)%*I<;Y-av48k5dsNLOaK1vD;6H_%;U zg^o|RWsBV)dccrk8j{D2lSal|K``nvn@~*uiy8+7?rU24+}he0{Up&rH`bA;Tb7{A z)Vq=o^E)z~p$9~B{yLNOiH39&+i7iyOuDHp(b1l1(*c`@Nxsk8?3hGNof~ke>qfdQ z^}6AS+EfemyOK<{g1S>2IysT}nAYS{O5Jq|srXpcb)}arzkC>GK>t!3A)ErQ>wEf6CasKQ2KHHMNlKHm0oY@k^1rTSYA18c1^{c z>9Z2kD`s=LwV6>gAo2~g*2j{KiF$2YY9W!|phzLAbWIifM7 zjBJ~RI9-tItJf_yQJd&YH#KMD)zrj;=1(2DA?33Dja-HMPNJ0zXR4rXFO(@u)TBB_ z)7aJ2nXKc=O;S)U_>9w<&erI=5&OUCFwoA zuJ_SYAuTByHVaj|X{ew##`RLv`|te}Cdrl$OeXj@RzU^MBiROez+Tx{p)csV7NtxVEj zNok9{P%?UQXM4wFQe~;m1*y*V>STj&I8-~8<~18q$NpTXf|_Hb>BPy3sigsk$Av_D zTY_62w_0kjWD0hq8r&2qZ-#wk*!z*Eq>S21OZyU5Htk)cAF8=ojj-X&^=BEiCMRmh z$cnX-`9P|Lrs17U^j|9JGMS;D)VjM!a1~`pvDFgb?}8y`q*HWp)&3lj*rnXW$)-`}&)E#5i0O=y94ak;aE2Wbw zD6jG2Y`d?}2)yY|H#No0*fp$R*!p@_Tj>bZvoc9ZNCPDMkeVM~VixsjW^zPVn;JEi$8DN(YUIiu8(vnld2wRa|)oKef= z=iDSo^4W>4gkawny0VRJcZ^x z)VrMJ9&74s@9N;$igd>qskr(@p{I^YnrwgP=2}uuH{Bw`NX~$&-L0hXfJ#|5<05Bn z*P6^MN;ODRGa-KzunE(sWQJ!J@z%oST;^uuu8_KE*zQ{0eD7@9ZoVgV<>~8O73WlU zH@{!Ff#17Q?&kMunp#=ee37Dq`G!wFjk5)YE(K?*WTVj86dN?R@^)^E1;oLR#p;hs`h?@*p0n2q_{EJl1WX7 z<@XTHt*V$hyJi*_Ope~v=1)d04lQJ62cw;9zd5WTD_1xkmnfhd# zYt}OP7(u>Df40Fz?lrnRorK-G`6n1+mpB_OktBa1Jsprz3q4;Y)1@H88_w6C#3qp0 zwQs#b`)`boPBt{q1dA-9MzVWd>A35WHl-UTqSY2&PMeN65p_m3gGU^PAPjoE>N88iJ*xZyT+Z~;RyzpocUF_E;&mL zE!A$A?zJK9O~QESsHh#4sH_`K70Xs@<6xvgzhBu62`RPbLd~YtC19)?YS|_ioG=ckkVpFYfzp%oq24 zboh>#NA7#qB1?vozg<_cr<6+bRyShlaB9z$?Mp%d*5M-3O<6e=(ara+lENNr#&m7Q z&F!_jwMWV=Kyc9p6-73Lm<~|EuBoWwnnt7Ej(^l$^O>dYDr8)i3=h5W z@z`>;FC*gzC~aTgho%04M)#KcHI&;$sx{TxkzK|kK`b#n znVH1;J@8wG%_*DXE^;2T>Uwqq&32BpTGZ8YB8pISJ~3wq)nBAZ$Wr9DCdAx38H5;6}(x%ReYm6TA^>gdY4(ZIQT^LPa# zMIX_KVj^&(p_Nl!cubUY+)kpI7W~NJ^G(=(=mwA$nq!RSYo~4y4IMIcd&3iAPz2L? zH4?^jw9_gfFK1KB@y1=Aq2;lB^Ioiw`+!#3=~2q4znef|M2giWjnRJH*4}m;d8OS* z;SJaM#?m}yP-}&lL1cl-#ES3CO9m7~y{8puI5D4L;>gxzUp-EUSTLMG}}Zi%he{u})s*l1pbwM$&JC2{8F%X$TA^!LWE@z8-G& z;ld6Zo7wgTd25unMe^p%0kZl=WxDEUK1xZm?G(gLa2CXVA5+VL2D4}hHnhCrvSi>* z;O+YCkatdO$v91z!qwL5c+KQ^)tp56+&OO9H5_dsjijWEykN98;-*+A-gym5 zV_P7h@fN)tew>FvXA@*#)Mm*iY7HXl#B_@Yu}Bo0TQ3;zGD*H^c_(kAvrpY9LH7AV zTgh>&Ub+m%;T4l-S52*$Hn%1|g?|y+_IW#?n9LkW;_M*5ap&tJqzrhWKJ^xZ67e?|Rsb#-=kGHy}zV z)B@c^7_`R6kXOP5NjM*G_@fd~9g)xoSP7>I6?LHK-B@c7mq?_I+nP&M5xS<(%QkJ! zBIh2a1WntF4IMFanrTwo+}@(0RXhn)dxVuh!3h@YS(Zb9&Hc>~OheaDmsJjUg=S`R9dRczXaA>0CXO0DsW<*L-1G(78?S`qaapvo>p|92A zB8CPF%ES0BeXm2lE}U<=Uq*(OtebJq=ngFYNc(g(voyA(HAUga zi`|k+c+1)!%K~pgEL`yCy9;|zH{Gs22<)*kI)r~~&6Ovc9Bfn5o|Z}=r2|8rx#`#% zw=u7sC!~2=dW@WXiSo+IM9ti)+E^VgT7AV?7b%wLq^k!pUA#KQt~JWIH&x*K3EiK; z03zN>uL#QMKB!=8U3gk5qs0&wE>92ggc70&7*{`$7HE|VKBQPDT5F<-i%s?=qqde~ z%{)}Cqq^F75sETFMzutK^R3~&^kXy}CR*u^ zd3~M63kr8;=WTx5x2ug8f>RB}?4fdAFexChc8@^G%SXb z7VcUYcn@)Y6v|3_bGUwj#V!6-tddGYLW#*A&#GS5Zz=kNYMsr)1RDa0oNU{T%w-c1|e=DSfo5ozfy=jbDMj+4XABFoLi}jJ+9Z#)Na~y z+FLvm%iJq*zkba38VL?pw?|Ay`A89sa&dU-BP9c*mjhu*2`x?s;e$4=^)SXjtsN?+ z(ZT3O3t64KX=-|3x&w5iRRhaZij~aMn)kXsMbf6- z#s<3)N2EG=ibg|C8*QJ_Pyq^(55hrgBq7gbBk!Gz@hp={!4F6l>oN2Mx!+JraQ7Zm zYKb4@8V00rE%jP!@H|AL4xOKXx`f0Nyj+f9@@q}oY?<6(c^Yc< z=jN5#@Ky}yfmW_mvVrfiYHE$dLQ>Xy7VelcKM&GM%!<#7_E@tRbmJcds+UtNBc0%4RS52CB~bUWGvyZI+>T$X2gPW?w$qB9XJE(H}fKEc(Wz_9w+?aq=&07sBhPN zqMb0co_gVjn?q zaN+AjeY9SL^K9z5jCWG|nmOhy5%P<2du~n2o|okXoquI)QN<}{E_!0hFiOBb3&ihT zkydPm0hp296eO)*2T_TxL-ty=l=7M}tA;A_14JC@vVRoYZ@%u5Pl>js$pILRIvYXG zQHf+V=gCN_6pasd3X}CNJEu+C@x{I2F;94-KUm~M^O57d%uSapkSvpI6cd?xakxrL zZHMeqzEO$j7iZf6hJpcR#KMHJ`-yGvVgjk!2_mwN7mx+P1cWD{yFl~Jj>r;r-1}PzG~?nE*NhVj2Y+wk7pPaA`Qc) z?S6AM-$-QBWYElLO2c6ib_0QpqBeAN>^9F|oOGef%U23)bv@NBuViVb zEbTX!+X)8uuNN5a+~018b{IDkF2nj7Azw>#Mm;%N_+$>+ib?%N-6NhRfl+val?QIb zk>W<|EY1g>x zMYdiLZBo!60?U;nN}Q4C_H**`GXJjI%ekR5h)#7cLs28x_dZI&*c3vjWonAaW|f0 z$Jt~)?}n2|mH2+T#wFyYYRgieHTNPHd*K#YA6ZT$FJ67johHNa7p9q_4JWTI@^(B1 zswmPhB}6zU;8t5l!VM1Et}Wz2ylSAx663Jock44$EFU zj9Y;tjm(ZMx`OTNp>e~K&6&Si)RBvSvCcYDhx zm;@}lBMKy}kIr6^3--)8!yY2pBS&TC&X3?Fuo%re)O^+Q%hOMt)$JSsZp;mLz`OIy z_;=m=wtE;VKv!_lY_x%djO?!zC(jXs-^BS9>R6km+`q=-xDk&NlTvj{U z&6U(%c0Lr&xUPBfRLwuziC1oUNuVNAMOvqv<6~IbW_F`^&O#AfR0Qpx}qw#-t~ zv01a}IGYMSb!_UKcuitzMNRFTud1MEEyz6XzQgEi9V+9t@bGl8Swb(ueiMzL;7X)X zFQ~5GYZTAt-D~Ys!fWL^Hj8(XRFADT_daz#9?+jv@JJs^wDDoJO@0vJH`84UJ65Q} zxoo)Wgf-*-^%v%dKdI)ZoTsIuarO~pfJk0>76xTG`Lv6$YgD<;R(brlAKkwb`F z_TJ$)?0~4mU50cXO(r9{{2S;fQj)!#p>jjz*g)T!RDZgw)xv{%ePmE)OVQ2r!d0;; zlPX;jy>IWlOzFor6k0W?)#H)4iG3~o?7VEwJTX58tmLWFIUEvmJkQ}*wvyX@Yai+2 z;bc%DC1%&PXdYcbOw*=3I^EIDlBtKgP$$=s(B3h#+YJlc(@>zK)DPlhi|89_N8aYp zpiM^CFLLfKIIb|dyb_s)xupm<8R&gGatGPjvJ4f?2J>mPuUpRopFqy^N@Bm%1@TGy#_yPTq-FnJfIoTW(}9f8`iSe*?teY5>9c9A2G z<{BjR+iIbz&IKACyoXI-1RYRH4UX3gz;Xr3=F$9h_@AIlYA{;~;{ z&}^$J2Q;g{Hgx&Az5m??0ZE1Ng}kA6gX=}1W0nt#mZjlPr|A8-DJzfnd^j9$e4?nk zV7(}aJZW{igE$J_wHOMy^4*sCZ$4Z?4yQ0*49maFQhZ|NvKO+7sB`CA{xoSyndE&CiT?k@2y6_}fG>p1HsPn8vuWS9u_VLk`C z7hlawmF9WpcGj(a>&`wlz3Z98*5t=fljr76E?qho)?DOt6c8LAUbuxfM%E1)HOgrU z#b(lek9P8~XY{=3T$?%APv%w|NDY|Ma&h(SaPI!76E_wW9@lh$_UFY~61HK}9}Dt1 z#YAH`Tb{N(xOFfN?X#5?im9dZo4HbRR8pZ3u(ba;6gdZ&f1h8$IQ73F8@}0Q=yVKl zV$#g2DP$hh&MKcXd3vlPQJ{fuv!d40{c?F^^V>*1ZcM^7IrKsz9oP&L;-3BlQc z;UF8)^WL6<&J-P%(jcnO)VCXSGIh1*;m%N~exCrqHI0oZy^DnywJsNvKqcG|un?P{eYJmXjQY z+G~rJBj&tAT{xObqBZ2ooVD(|a^N$c#V3Q2x^$b{+{}k}M)>vX)>-Sgwb~|3ukziO zE`TJsPlsGkfam$kO)+|!g8NZ)C$&QoUP9_X?f2+D;oMZ+01?fK)6l)vB7yUUMwV!Y zb@_~4I+mvrG3 z-CV|X-Z03*4eiOJ#X;xvGZ^XJ zc37n!!_N!xbntl)U(@?lb}z=6W~vkd(clUo<~?gAm={s#4Ha(f+{u&U^tdpJc%a8` z*10E>#?02I$D*~SGn`U zsL9hTldN~QEWis0t^m62EB?O8<&h9K`Rz9m_eE!MN8`TS+LU)xN3J)ojAyEmeeK@b zhiliZe3D4_iqe^H)IsIQZwWdNnlCS{aChnL1TEbAkTViW%orbR#x4))IqsO7uc0RL zwVG}^3o8hUJEK-ktA$#PaJWX`*5X4V{8DtwhfZyJtq^7i(G7MH-x;~tX6k|O-tY71 zQojp>T6L-;=%3a(dF@c|nGXGIXm3p<>nXb5_9oGDmuZs3Yp~?y<~!om&jQG75={2;XqpSrN5fdd~SyKAExYkl33Q)?S=f`;M3f%ns$urZcgI&uI3orpu# z%MT3XyEnK02$}#{ykv`>$=kyX`?}a>k4_1lUGU@(s?1DzC^nuhIyq&(#R&a|Q^zeQxa@Gt2pwB$$NEdy=b6PD3)PPr#=j524E40=~mPJglD zkBnvCvPYeqp7!9{Z~aQXyU(ZgFAMbCK;`)Xs#`-iKY874+?WrZ@96uV%)}s-kq{Qv)(WgQ> zRYnStLdxhFT;bw>EIh@_6%XnJZ{#3{YM~g4Ao_}$J8yU+Z#j8n^KGf-i-eslGKm~n zw=8RCeDVTUaPXwM--4`Z^YYj8=+0hk|49*u{0-#OiD>&-3R1+g|8TrHxx zja#9KMm6)A4W8%TwuDMEy30K_thv24HLNa04@w?3dH$5S^t`}fG)v)Q;Op9#@}Ew# zxiQ{5gnaJU(T!m3atNXdQkb-PFyhQ*;{jR(tqrFH7Am7}U}NAmt;x9qm`PK1em9E;AOB z9Wd@Gx_lsU=&90!@FPoiWR02EI?uK_^A<&qf=aVPi!P|AP6S&Wd)=4ZmQr^d8IKFN z;7-THS9ABteVTl)FYJ!4^OgskXClw_YbVK*d2<#GyHS>O&bvB@(K)SsA>X-qq``w{ zU`f?ucyD0M(p;7dvsP*WE*QXzyoqt>ZO|nSbX~$X?|VF;al~;8#(i=Q^?Bi(!>B)$ z7CL+nBYhtZC8KrUH5G>oVU}}>^`VXB{NxfV&FDs0b-`9t(H5qv^2+eW4&iGJ}Sb(k)@UDJlpAqVCE5J$)Q0$GP$xh1ychURts>ldT$`Z&MkOr|;O=!> zhaKgCe)6m@a^Ym*WFE&17;7w-VqSiaUhE~Ys)wWZ1JbX0deO&`>WD;^@A@UZK-wTlGTQr;fq%Hf`G2gWFYm-??uzHuY<+nW#t979ZRRczHdx z(hwq#L#Rp6iw(}S6`XdI$XJ>2l<1_{^If}{T2bkoA%6Hw3A+o} z^q)d{C7uqIYur8MfVWMO^604RTx4pWy#=lZ<%aB&2BH>dHCas4+G5#E!Z#Woc3HNh znLJf)u|6z;oWU!6dSh2E z`RPh4GBv?r3*1!ng!Oc?g_a*1q=V6++b!)$-n9~W*VY+K4fE-{aBXZcow5PXSaCHe z{)tet;YscONzSr(6I@Vj=Fr-bQEG!vknKq;3w%bdrT2D00Q~`E-n-^QHh1($3Fi_Z z8$Y&O4?pYmepB9AEDy|JZQwd?(68t?7qPKKNraWq&G3>ApD0j4D{AfBMmT!RoqfrL z6{eE!WZ~*O76uK9?$I*5K#`!cgxwmBw$RcM75QD?oMrFq1224|``*Cz94!`P$e?2% zyqj3((GNkumop+YJdQ2d|AQTNqGU{G@-x@y95_D2B4{)kPDI_6j%Fd_gWpETTbaC# zbcyt~-MTI08hhs*j>fu>hV)r8|g-3yjqz zW<=$2zPRsgb_n4v<~rbI9owhk9w$|>Il9zzEjO6+eLYVgpC{}*o`u{bT;JW4$wCfz zoI_ilrw2QpyOEAY>E@Q8+K~B{5y-X*d=z|snls3{xfC_j$TMR$9F0-z24*m|oZUlu z$t)me`t-i1dOH)Hc2&LFeOc>Dc3=hNGrPPv3U4@uRlP-P$7C zekixzHS)|NY10R+I+i4=2DS=0A$mv(Tuf)jV1nlJu z`l9E5vBwsE{mHL3Jv6$_w`5zMBi{O`8%nBZ>2YSei>aQJX7r43X!L6)2 z3XCsQp*&-xUy z#1hjgXHP1xB==TVU7~{B;c$lX1}>8?28&h=-2B`7Y5pGKIaj!MxTB#c$Um~UPK6b$ zx<{Tv=Sn!xg1W&aa8if+=VfIzSZw9fNWSH@=^)%8=oDXXfC{5m+)z9M=Cu&%y9VTmy!F3`5Bi-7f zX1w_gC*LSdnI@-#_uTMsB}I)Kxi`w93s!M0KFCj`A&~JP=g&yr3547PK1bEjS#(V< zF|TFk%V56o-93~;moaNA7Q{In>&1N92agftV5OrE_)#p9o$fS9aLARL*w`|szcM9J z2*EA6GRa+=^=>6kC#6jbxfVH@|D>Nr&!KXM7O4KwX93XBQ|t?g zcBNiBFxiACrx12pa9q;fX|v}Zc@cu4N1k2!P4r80M+D*G8fLq}2q98~ya47_4tUCE zTj%&;5Z(hN3n`Y!5J5Iz5GN3x_~Q-dk&fURJgHg8a$wCIK*|}F+mDd8R=Q zjCNS+qq2a?ogz5Pmu14XyFoX!TjgX^xGkND?kLVJ1{!|#A%jvCqELCXW0NY-sFZ=A zbLA$|N~;*OyF52q#GWeUucuJq+M1`#z$Wm?aqi*Y{CF91oXY~TKcGdKTV;)vcEkk_Qn7(ESHqQ*cyY<3 z=A4xhjzuMTHkWEQ)nAuE#prV za%@OmizBEb*CcnE3$3BH>Grq+s;FeTjbOdBZg@GAqvhF!m)~JRYcox)S=w>wI%{v& zG2GF#+83QyraM2UjJg|oa$ef@c+2qaPBwB?*L_n7%-Ctkt_%g7_jr4Tc>j?g`8EJ8{Yy4%p{9@FNjKli<>fUrGK z@|Dzf?ASN8P)6t6jSEtA(O&Ut*>o4Ztn18CM29`##mQ6bFBmy3nzLkN&e@neCyRTN z#OdUw=hiKvSItVuTCS|~vqoi|`lA-x%hr!h0G=bUaUk|>hF1A{e=yaM;tdZ8Hp+{w ztWS7#$BMa!g=}acgIWfiw3MW$cDqN_(w^6JOO{SO?UDyGlK+e!%;-)(i|+Aezmsdo zmVt;zO1_!EqqTDYMrtOa4qbVk`3F3U1t?KDvZrh+Jyy3x+dD%?}K==vT;p_>3xwzqDQE2`X8N{_Jd` zBgZL}JlR496{ksExQzFgkS{XsvRs={3q80Kck|g8x_-XO6A$vZo$-MO5>OPqXjJdG ze2CcWNeYUq=7Mke! z8@ilIbbd8Go`|MOk@j!-jfS$56+@@MbEt#_ZG`qZjfSrBgS#(Fk^fRG8g{MofeZYp zu_f7*(OAyjYI;5a-QNmSO&X+|D0FU{LG~imm-ASz{9@iwayD`Xj|}Y50Shi*pR9o_ zJyDg;l1?_!43*VXL`B6ClXzmn_5zPB6TF1uyIK zEHAY0Ib=p%gYJPY>KsgGYUvTOHV;-;mjx&380k`W`~3LPeO+y2KP+*LEOeXXhERrc zYdgJ5ET%E$>_dYo%srpG34;P_d|rAWD6f^b7%;aoFo(4F|j4Ym}0lU_kchGwU} z-LYJLJ+kX^&$Y^3Nl&A<`-}x+Lt1`ix2S1eJJ?WAim`OnupM5KB%+B%?U6 zF?(W)g$HN5W$C#u1ovalbkUbD#OIIsq<;T)T1YPHW2Q==hIZGlievd zn=GU=ZVzT6k)=3_4DB#&@1!FvnyJ4u>(0MGe^^`fw;{S3@0kbGWhzQO3sb*2qK{J6bhKZoU-~Bdf5WIpM#NqEa)oK{aVQh zvpCBEOo5~38?XWM?6F~;lF_9-(g_q5Vy+73GiEzXPE4jJHR;N7Q0&@yLtB@(ndNb2 zMrT9cayXs(zO5~gDMZhh4Oid4^~X(o6UvI8?Ak?7|8vHl^yfDAdFDiYb?d;Uo@L%+ zbzc+7SsEY~Y=Dc{x!j9#22S5C;733~V03giB)8f(bTCBFhe|^aQM7_9I6#K8PNqeV zTq7mJ!*QC;@;rM~63O2B?JOuhj8G1Sa#zz*);94d$+Ld?RYQbq*_7+h(zOWkB=qcRGy4 z&QA+V$eK3~t{P`bMo6}YZZCIqigyZrdt)r}nl^dzxZ=U|@Xq}={Nzsh;kNqYKF8I> z`Yhe5&(51~JYY?qSZo*K{2#wc`JeKETb&X#61eb`%N@1<+>xjJb9!eL zk?fiMrVJdsn$tV6f8SY~4jf$W{eG(b{vP-1SnNPAPiOU|>zr9c@~b(G6E~VRaAlvq zKbIuR!z^(5P2ua(>)^if-rc`kZvA3^`(HkpqF7NrOmw3Hyng|{aREM{0N=C#=Msv( z_*VPILT>lGJMliTFh9*&Cj9H7poQ?K@KqGsGW_8ERTSIW`xO3J6x$~J;Qdt;v|0r*1YKLOsM-1?|}y;%8!2K4=S7hSn&>@eWZsQeMYUr@dfIOC$&uI^j>r-(E`zE=@x4t%{#U>i!wUT&V!?7jO@% zoIITWDdB%g`JWN|PZ|F+lK&aS|BU8;#_&I5`JWQ`iTh27`%#JeRf+pqiThoN`(cUu zWr_P~iTiD-`)#RQ&;7R4{kGKow$%N$)cv;9{kGKowsb5TT&y>RtB0v8@G?87p zG|`dj%(T;yUlc5rSj=Z*(McDa;m{o<+k{-E$PM9w=g5$EVR2tA&W`2?ODh`UbhrKk zYWQN5Zl1^1$QQC-xiWBuOwn=)z~mBg9qFQ`244l6gd%QVNjl#XuIEaa7=;aR zm>9|B%v6Ha84IqaGUFpO7q~DiT(rok%*oLwmg$;I>2Rvf%JwC6T@6>@x|M3TWt&1f zH|+cT54EIQ&{b91wMnsS^{F_O3E!FhuE4TyDB&{4`Jvpo=4KDfBoV*OQSk>4V-vlz zi@dqH%~<;T-~W@>2_B!|@pC+WsK?E2;yKbpk3UC$^NYDJ|CXb|%js{s?)x5}<5C-~8h1`sv^4@e2CR?)OoT`|{5e;J+-u-!H)bQGgfec!>F|^*Gx; zme22c{4kHVc)Z5rt2|!o@v}TW)8m(U-0v4_JKJKG)+M zj?Du&|33HIxzF$L(y8*UtGDGW_U%2s3H{A4Eq0cb4aS zvgv-@K^Nn>A=~a#IGO7o6F~S=x@93MIPtteypFb0lv3>{*lMo zyJ6|v?r~0MhkAemx;?E}uO1nfxz2&goCl&o6nL+lI-%=5dx6 ze?u(xmdAJVwYbRNi+f4fl^F2KI zZ9LBDpQQ5N@%Wyee6hz_{!Ep(@s!iw%acC{7bdYt8dMgQ^Zdmi7PK3n>x z-|T+haniBaX`VdmWRqtfH@{5&L-`oH$m0hRGx;k#&iVPb%3tU4A)dV136{RKr=NK8 zLp^!(KbZUgm3z#S=j&R#c^3E>{rn2>ZT0h;9zV#t?zaf+~eEO-@jsGie6jGTa4wIZ=wU&cEBH9 zE`W7DzgT`N{$peQCl=#A%P;1ZCV%F($1h9&XfAAeaT)T<_&w$Fd4jwJe8wsPao}5U zW1&~2yan=O(gJKewe(9>5i9`tdsRLOe4!33jldt*3D9xCn{^D;JtT_8W_c1g$dyvYx`Rrom|fA3o1mmz;x_>X|E*+}?$;Eh`f zH$80Ey+iBk1(1)OBl5omo~jW30q~7g-t?-aKTvr;)l0^=Q@%Cuf!a=X1KvlkHw5^T z+9AdPe~Sktdd&o0s)p@6;0I3^`8wczCkbx@zWj&6&j7xW>b(nrf6y%Q*8m@o5`HW2 z$LfXO2mE#}Kzcn1{1ffJF9CmPn8?2d{NrW9-vj=5weU}X_d7=Te}Q*tznHEQEvw&E z?IJ%H_?H(5UjTgL!NMDXpSehQC-B+#3ttZ0(zy!wMR$n&Ex`AAQ20H-FWpD@hy%(kTPJQYVxXf!}wJ$X5dY_-x_x zfwycaysZE~4fu@5MgDr=pJ=)L82FWIMgBqHo1H8CMc_B<`0@&Hlm83wGuB8t{{sG3 z)dK@mFIv5vJWk}d25#ve0DQ0WMSdi3OJ@RbOQ-+F@;kfkwn_QC4e<5ao^}O3l8rlh z4F;ZIBavPQ0pIi(hhvq%UsnSv4SYzs$e#dwXC0?b0e;UakzWh^71cjC1HWsI$Ug-9 zVbwEF0RKA|6usUCJ|!jmec-QTg!dmH?^ez~m4)@#7QpvZN6rDjtvpMBkJ0g>3i#jy z<$800zpVG$3j86}w^`tas^NAD@Rv3JX9Is?rd)R&@K@&vUk`kS>gxxAAAPmRzYYBD zGlhQy{Qcd8_t`|=t(>>zNdUbD0yp^sft$V>4g9H}N;(z5=bt2e9`N^$5MBq|^j;fq z(|gAOKVJ2~YT#Wzk@U|6e!rH_6~H^RoNofY{|=JQdf!29#myrB9Pl@_f4vU8 z<7AQl3-BkV3I8YX^;(`q+Rv;WkDMy<1A+f%7vb9ie}Ap;U4ifZi159Dzk7x7alp@r z3!ezQO7-^Pz@O6oay0PKnx78fAM5;UG4L&Jkn5fX{H5W-&jG%Z>dza1zpVLO2Yl&| zC7s8CpQ!iy4Dd;+*ZvIr5gp$@0p7ku(%(|s1%J(5@u_QtZwLIZGldTYetNO+GT?_+ z3a8e2X%XUkLn&iNcQsKH&i2=Ky~sEBr#>eYO|A4!FtR34G#dBL4#LH#>#@ z2KXnM{zt%f(ed#!;MeRW>1@8ayj%HyIz~PZ0)EPo!VdtxWs~p{;O8_7p8|YdsqmS= z*Gv-L0{pctglB*szK8G&fUi4D_+`NVeW36Mfp4yUlE;DHP$lxe2mZ4P;eQ0a#Yo}i zgtGE1njm~*y$|ENog%y#_{r0R?+3hC?Wl>suhaZb1HPx`=NRB7-voRI)vGIkoBS!j zALSdN*Hyqx{s!Qk*NOZi!0XkXe+u{;w~73lz_+_e_!`O zPZ=!yNZ>!y@?Q$vb!M4@Rh0uCIi22Yb`h6CSM2qnJSS#4*0LMzn=hn@iLLW1h~mx z1^mw!i~K#n=S&p-Fz~6j3;zvpn;-oS_$)1le*hn^ ze!|BAH~Dhl@0}>}3xL0%^MNGr{WSe$z~5LY>8u3)6VzLBJJC-A}7 z2)`fr(OM2K0l!Pz?Q6h?R!Tab12_5q0xwhhVGlO8=w;=9@o4!x1^6;;pGn~VSS9k! zz<;3j-pRmC{!HLg^uB%s+~jWu{A+2XHt<&u5cwA1CZ7R5Q0w;s;Hyoq0>AZgN&hb3<{!8p_%k}Ly#n0i z-voY&w)6hmM$52F7n3%PoFIOMC4P1Uyoen z*8zWfUy*+vxTXIx@N-il-*-ECxAtT5n*jgK*&;U_xXF(OzW1>re*|!oKL+?w3q<}D z;3j`I@J{tF-46V-3nZPpfqxPg{wi>j|2^;*CyV@lfSY{3?d5wbw}0*^pZ5j+fqote zyx$2TKL@zU9|`=wT0Un2H~I5`kGN0Le;ByQKMDMcjL825xXFJCyh7VgvD!ga4ko`J z@F%q#tALyQT;Ri0pPvBS{xp4y+k2Y&rTk^dv`TXfvt<~#De z-EY&L^7%W!UmYQQ6!5<+7d{?%=jp0=UVq2L9HmBEJr}$=?Zl=x~vL8Mw*+7WhF& zi2VP6AG}_8fAt?*xh*?Q_+a2BKMeT0X_21?+~ki2{;Zbg3g9Nc8u*ZTlKzdr7d8sN z4fypJ34al|$-e@8$YPQIA8?cJul9nK&l8hGelT#89|nBt4@CYj;74jX%m@C(-6DS+ zaFag)_~>&*{zl*?e;e>W%@Fw)ft&m*z|Yh1>kHtY43TvD>?ZG4J`ZTW-V3;`R~`Vo zX@dNI8gP@Z0zUSBk?#U-^2Y=JtByzOfSdfCz&rJRUj%OQuK@qo63Ng1fSY{(-J|7G zul;v4@O|zPxrxAEUm?5#__gW>s0BV%`}us}Th5kr>VTiORCpKgr&Z6M0Q_{d-_8R5 z`R0<&CBSXH?>gYN-ggIZTkm@ixUKj747jcL{TjHf_q_$&);IqG+}11q1^ntka$j2( z%e%F6uvSSkEC;ODmrKM%P1>n;U;tBO%gsG_@EyOKL)tTHv!+(>>uDe zwn#dwfp0cX_!YoS{yN|@mx}y@z->PAIPh(@68SfPoBSVuZ>8hcm%zJ0*IGG0cd4Ya9q{*#5k3O=zb+O&7Wk0| z2tOS7PvXMA3;b_q2tNUMT>ICl!0)=jxYUqb9CI_9k|&=`v7m*MADrA-0Yk< z@O@7g`8wbxp9a2og~+c4Zg$aGz`sR{xE>1iq>EuT3;AY*YF&w**Rl@ z|6A*O9&nRC3iwMuk^CDzYVzUk9Zxp*-`HT|C#!k{|VgeihjDzX60t~(pJFDUfKn?*-L|go4r&9-1f`N zD8N&|ZNJP);1fEfd`<)2p!VVU!0+5h{dN4b@)=Vj^4kFK&~bl9;BlRA><)a*cuD6#;M?iEay0Oz+8-wYe`k`U zQw97CwJR0?ANHWgHv&JXukd4m&puK365t(|2|pdU$*%$a%6TGxE%4>4mwp8N$5)B` z1HeuGQQ)JrJbwfH+M6YvKLBr;F8r^+?`;?UCGb-!gl|D;U3 zTnYU9XNlb5z|D?I1OM@Ik?#U-?0_=(FT zotJ^XcCqk305`wW$H2`G_8;Kp2isKbTq|euckKY&{9}6q|IYU%KL-L|d8lwY1=YPQ zeUqO7{FQ2vs{?L!MH={}_lf)oz<)GH_^H6p*75Et;NQ7N0e-)Z$4>$O z$tX$Z9pJxIJLk{9-?>5L`|0|*mCsvhr)>s&pMynyFz`Xg2_FXhF`Y0^18(wF!1vdD zHUb|zS<-I>{^LgBCj&S6Gl9QREb?oCPt^8&Gw^Mvi2P%~P5v3+X>C7m1Fuv2?S0^n z-zDky(R#D;H~9g;zt~yii-G@PzVQ8kudfk)C~%XX3jA|zhu;N$LrT&~0q>Y9d>QaA zUDsF%{H>it{(Rs^tNrjp;EU8wxDB|;uLqvh_WTU+(TB-(Uj&}%FZ^BLCjTMuDLQ_| zbiQKsW#zLm@JH1@wli=mpFM&9caG#|6mYW}4*~wF=KnC@CO;qeb=ye#Ex^rg%mBY; zuE?JP+~m&&e&~fFe+}?WmI(h5@bexN{tWO(ZV~<>@FiOa{|oS&RWE%CyhG=8+l`Um zS$(~&_Qo#2vpO$31o#pix26D}sP@T1;Oo_XJ{I`zkCc3z3p}p#luLl`a*oK~1>E*~ zJ^=ja6GZ;Ez=vdnzXQDAdBSboz{=+@+TV-D%J;^Px?Mi+58UL31GjzY^MGHf<$pBr zmo@(<0yp{7fge#T`MDkVpC1zbQ~~~%0(_Hk(fd6`$IE?y+j`az;2kUF_Z7g`EEHZ1 z{EKacHv_lzsdnJ|G>iNxz)k*a;Gd}fXC3g`tfcb`;8phte+Rg&PyHGAtJ*$`wEtN< zG5Jk_@1yg_J%QW$)c(M$_L2OQ12_5Uz#pD1^2Y$T^`Iu;YcCP`6~O0A6uuhxB|2ZY z0=TVzT?hP;B1z{#;O0Mn9C&Mk$p04je%A_r2l(b{Z}idmy_NrkkBR&M;K!XWd>`Qb zv>y!te$X`{Uj@AB4&ifwzgaJQ3GhEJ5WXC^#UWh?+~h9@zO~Mq?gMV?7e56ae^{>j z8gP?;3;1b|iu@PAO}@_|^1YSw7n+~lfSde2!1vK{Z8C6^p8T`v{+8-d%tfZKpyc!kLS0=UV)1bq5>k^dO@+Y^O<4!m`y@NFl^yOr}a z9Zz=#{sxy>d+EEt4?SJvz6ad=Evtb4Q|C)j|1a=u)K1>MT)wyaHT!2*;7|Qn{BgiXNOof90ylf<65yX+EkC#e_?(Ht?fgY6hZ{?TzX0-PFZ~Ai@_r)!SKt;u z^AF%3>G-&tmXlq#aRGcHkzz82D6#gn`Z+~QR} z0&ejtUjVmwmHz7YwR*AicP_w30=IaTgMly9`9L*rtH)!2TU^Q_;I@vo1o;tCKC6IR zoXM%c@84bIuLN%L*8zV@{TmMeH+$w$;N{~a{a1looXJN8_!iUTcUJx;zh4196}ZKv z90T0qQW}BxQG0R~aEnVh6?m1F+jYP#F6Cz6`>P)Q7`W+y{{i2Bj@~0=M}5TMBU7 z&u!&q^8YL#zpdI$CU0^6!-1QfKMMHy+e>}b0=GE-1;F37c@}W9+gAYpte>QR5pa{g z0{EI6MgBqHo83MZ_zq1X ze;9C+pAUTUAd&9?Zg%?;;9Dm|{v6ra;5JWu75Ir)iu{+rP2R?HEC1^s6Zw5+$-8lz_Z+^OMtI9Mbcjb+~$cF0k?VM&A=_r|Hr^9>m~gcfLomZ%fKh7BjZ!x7U%yZ@W$&U z{oShM-OAJA{PzJqc`uQh4BX=UX8<3k^UxOH7U!P<-g20ve*ti_f35`HHbdms0$+c+ z@LPd*?k)VMz|F3B7P#30RJvFZ~U;*-QTcZu6!=vn5|v{>BdiZu6!J;J-dq zeqRIJ=1oTfw|P@5@H@_tbd~|PdCeKXZQgVdaGN(>3*6>Sw*j~GA1}av2i)dO?*MO< z?8p8E-0E=?T_?11wt3UGz-``Cj9lkU2LiWwPzmrub-b7k+~li(j~*a5kOFS=rbWP; z28;YE;HEb(D!|tl;4c*5e+6#yrcJcJT6x;MX-nXvIwYS50=Icn3GgxMf35;<^QJk# zf4Z%te+h8Y8#e;CeVBG0x#j;CKb3U;1oDgT68lX_DA8>1Lo7TwpmcHqS?SLPz z{;1u7U%g&_e;{zX?kM1P-E!b|-Adqg-Fd*rXnEEFuX{xD(+WJUc7F!=v1$*j25#3q z2l%GDO8S=qAHBcu>w#N-?f`E2xf}SJ(Kz;PFwC{?))O{o8^6SMAkDfLr<>0)JNLFT2f+ zmcvJT%IBfL?RizBfLr;@27cHXl1>7+rPB=D(m4nC!JA7uR|2TJHRdd!N4m!MScu$OTPj5ohOTY7P!e@1-##NBL7R^ z+g&02E#OxE9{{)VFFIU)XZJfy=VgO{TROV{w{#{0fB7a!_c-8}9VdJR@TvC-KNw)@<#$U`6Td)Wg@>E_-ge_oCJKP`Z2Bt{=pWK&Mm-ysrB*< zaPzah0DODZ*M9PI-|+$AO~A*i9n}f^G%cU=fN!Mbc_nbm&rQHBKX(DQ{5%5O^7C`xmY-h(pLDI< z*K5F6TrK=f;M=QS{WEaucb@~depj?W(zANBezzrX>vuZ?w|=)DaO+=(6yWoLTffTy zw|=w?_(R)EzAprB@|OYMOy@!O0=ItmFz}0qNcwL9w|@6W;Kdh+{6DTwz6{*T{|(^VYrpsmxRuYBz_%PE<*?;Z`Ri*t;7Of#4+d`M2pgiiy0<&MIS1a9X}Gyyk%)bYS=p1vA*!)B8HdB8317ZtdY| z;MT5w4g9%vlAjL?@Bv55_okP|s6N~hcueip{eX{9`}`o_>&HvFQ-ME!qVQS32dUkj z0&emxz=xeI>6`|9;ibaY0RPv$!fym_^0xs`s{Aj2+d9!pz}s}b{~2(5?##b|-<6d7 zeCNCJZsosL%fA?S(ZwQn2=H}36g~xbRk83S@Z$Z1Hv_*tCH!RIeRRF!OyFzI68W{j zZN9J$_`~W)z8m-*$4WYn1GoP2OW@XD-UM#_8Nh9F_pL_P-qX)#F6|Lf|HUIq*%@ZoCh;wf~<2U!?8rRp2K7 zd*CBiN`C$W-1Uf9V1~d2GzR z&INA$*RM<&SrmZ3w*N)A~yuM*`KArTf0QQ8o1e4^MJprw#N)_$hE}55E9z?cq1Ttv$RA+}fe- zQ@8T8^8Y)?pSwWvzgeTao4l3(*1(IFiQECet$c<9pKyxEPXTWAH3RrM)#pb8xA|;6 z@TWJC^cMrS`Rwt)>n4i)8sHX}ei?9^&)xyt=Ck($FDaAs9|8W1w(}=|FVgwQi@>cO ze+%5&&-=iw{d@-8+E1S*$(PlywVy43n?BjA0G|Nd^vMyxO+O@nKXHcS<9OgEzY6%5 zB_e+%aBI)k0pH{pZ$PaeoBE`eky=x)=ECAf$w#@@WX+>a*ObzfM@m-ek1VyM+mV(*JK? z;pc(;@tXc^zz-QE@;?W@M?c|j0pDBwb$nNgchqv82mF|F zk?#P$V3hEifnTZZ@NVF59wYLP0YCOM;m-q~aJKN*f#0X)`A6WJsbA~w!29UD{(r#V zT`uWwruS{-Hf>AcI{<&}2H|@FKSS-M;lO`4Oys8mpQY)ffY)k!I|=x1tUTy-E$}@x z{^2>`BUJu<;8*P->1?X)#qRe8<@*4?Re2ovUCL9yH#uF>KN;Zh`mLgXU{LBjBD}di3 zICci`^@qt97Xg2+SopQT=jnBC1Ae&rMehfG!vT`cQ@~Hv{{9m1OO?L~{5>6y{tSGM z`hPwL-gmrQw@CY?mFM5?6TT(zE7V@y8Tg8%$nOXIsS|{c0RHp!!Vd+0kNR6?0)OE) zkv|;xO`4y2;8#5)^6kL8RQ`LwJ9YkY3h>>3BwMw+z&{!;@)rW1qxX9m@X>1L+zz}+=Y#8kxAu|rUjV+-_QKx*{@Fa?9{|5w z`{{py|MEoRxj_Yl+U{YKlB0NdjY?E6XD~5|6AvYlYsxeT;z`ge)&bhlfdoy zpvM8X^j8AkNEP4tz<;UNy%hMi+JA2Ye*cYAZZZu0Yhzqz@{ zw*fz`UU(MxHPeNk3Ebq*1%8w2Jv)EM?rYyNN#}NuPpjYKS>Ue@5c!vYUwN|dkAeST zh46m>AFAmOS}NaLer(Hq|L*}e`4fP@eTd}q65w|3#FfAw-c95m0B-V+0)JcW*f)Wj{JX#} zJXgz2+l!T($qxXYRQqrr;3j_{@G`a2rUN(mD&UEmB|nRRoBXlB-&Oguft&pKz!#n; z>E8j|q({7yP=!}2c%ezE5N5a5>nWZ?Ix{4u~y zz7hD#=S%sV2;AgP1KzMse+Jy-p9lW>X(In2aFhQ8_%qESzopun zR-Pum9q{doMZOfc$&Ug4dmS(40yp_1f$y7?^p^rR`Q^ZurA7XSz)k*Y;FqZUL%>b` zap0$G`Md?(I*$^Q@dM*B+oyDXP?D}R&U z6ZpWK9 zF9&Y&*8;D(PV(~zaI;IF1pcM^6YP5{AN%}1$ZwmK^!u-rca+~8`2SbhoyXZ!|9=3# zc14UOOR~!nCS;9o#@8M(cA;j*82dUV1{JdQ^(9M-5L0AH*;1*LAtJJ5Dalt5%P`J8jlJ@?#uM#pz8S4o`p?-MUN-tw)*nQt$C z2It3zh%^7V_~9avjA^zw^K-=?E^7I=#hL#=d=T=7#hE`Q-VXh_CeC~&j0eYg81f~= znJ*_^75!->&U|z6>B#pIXTHDqo5)WQXMVc)^1C7#)9d2QuMyw6!ScJsdoD6RAl~T? z^9$n4UlRYSp5+VRb5xEq^F_s@qby%rocRXgC9%JHM4b6J@s+u({uAQNKP}z{{aGZ= z{A=Pfkl!NC{0{L|$e$Ev{*3rn{jL8w@xD#RGmrQk11w)zob{`V4@Q65h%?_&d=K)& z#F-x{{xkB=i8DV>JSm^`|6OtBKNO#Y{1I^;Zyy)Wg5&e+;>>56Xzg>Hf5CaYQsO-R zDKB23yUpKNocWgGxv_qGi}Uqpp!it4emx`3{IlYVkbgs*`-gSnS+PIaE6)5O@p8yt z6zBT7BAzF+jnAEvZXRdmi-|YI`h8IR?Mya*5Am%%%u~d9-fXn^p{16eExx*z`CRcz z-OSgD&%4L`UGbQ9=6l6?zVVPa|8DO&apr#&PiSiOqbA!ex7(;@cE6DLu!ZK);+L`i zuPJ^Xj;C9TA6jp9+Kb0y`|mHl8RtodiZ8_L#Z>YBRjvLE@tv=lFBM;h^T2P2&wtPI zTg4wl|96UC$2fc|9-G(doEEQ)enzI);~f7n$YmG5bg$(~h~NE^c{%YOcs*z!o`!M$ zr}!@kR;QbIdpz&r#n*jg`Bd@fCFW0wue#s-1@RN}%om71P{w?{_)_%eeeveemftU4 z63@HC;^$wp`~~sh8_h3?KU>>8&s4kR`Z~JO?iUn4jDA)TAHCJ`HN@MY-B#lJ)>wX^ z_#=3|o+{pHndQ^Ozs2)tsdx(B7rZb2<}|C5F8)|+^Mm3oaeR10d`tn$UlH&2fq5~U zXX1Fay3@R_IRBpVgW`2Rw0yic^S#9@VEku@_uFE1){6i3viTlyen0r2cz&FBy(G^3 zpW;i_S^X0KvRjTr=InOAocN@B%^Qg`-&}kmK1b^%UZa`S=`Vf-+uOgznV&8GMo+7= zL;Pxg^AqCy+~IPF=f`$;doX+c;2-le8n_Okk4i}U#5Tk%s1EdPf%^O>gG z;~bxP$d?f3@y0#kqj8-54{;uEG!Y+!*WVuEJl;qY--g$zG2%Slcv?Ikw%2*$Jl=Rk zd_9);J#ijyq>E=?VdHgJoW~pAh<{eh@|VSVyuts^f#W|li{%T=xOu(sc%!)Zs>PP8 zCC=lG2IA$hU+XB&~r7%g4{%Q;(|#~Uw+CpNeGYsGoIu|Yfm`|W+= zJl^&rNC=BJ3K^s)L&#F<|y{>y61?+|Bx zulS`j%byiz{#WrS=uZ?rm*%)JUs!x2@-@YouP?qA`L5#3$BB1A{t0pBCy2Mh{vl1A z`DNlOP=Bj9^Si|VLjJTk^XJ9$_qFlQ{hZzEcoq=Zb&qi_PKNdfV{Bd#SPl=bs@@9R( z`lZX8OT0bazgHAz{rkihqkd~~<~xY^D&eiY}&){8U$fp{034?HZ+{5Rs=(4RlWndjdd<2VmOzSLY>ZaVW7#BWD`nus&s zN<0PmzT(Ue5ihjV`tfgZ=I4l)++_JR;>^D*UIY1q;>>?7ei;3~BF_9@;@uv%{_y=A z$CIDel*REf{UqLR#)vcDT>SeDR=<}x^8>_N-EH});>=mqb2QocXchHIQE*&c8RfSUhVf>;DJhv7ODg zh&Q>*{D^o{)HxyEyu0PEit}@*$U=Mk_TVOe@UQYRyI)Y8pF!?e`FBSbiC@Hid!sn7%h)1bq?s-65%GOB&5w(>d&WF#n%#0d^SF&7 zn4;1$ZX$GEpK`Z2^EJc=-EH$fEY5u25T6j@3q$<95I-n>3db!+#51*wWK37YPvUhs z>J@vO+d^Ao&Myey^E$gWD|MUc70V`D5a&Gg|xrmTR&&>(3Tv{e|MJ zvq`)rUf*|$Gk-)pF0b|fq&WM3LA)By4`h1P=Hqzs|K%wv{xtRj_lRHVX7kq-FJ0R_ zR-E;FhxqsqUmD{3Li{iBB)tBW#OFd>-m25BpZAF0f#+#+@w!;9hsA%t!|HSv=lAn^ zi0`ax`4QsxRxp23d}M#~=f$}nTOgi}*R|G5Y(6gUmw4WF6|aQzX}!cdZMFG_inGo% z@o8%b{=i_<0NBku$??Le+ZLH28;>Q}A=fL}ZE-(K+W&!c?*x!~EpEAJe zR2F}>s(BspaU0DWi?7^d-d6m<%;w$2zrphK5nuU%<%f$`Nj4uVo(27xCcdPdopI3Z$qIog#g-y&Wh_86lyr%dy+Z z`YXj(K4HFAd^E=4Q}OYo!|bdPy99M5w6ujBP1mw4?M%a;`| zQ_#GU_>7U}jl_>UV%}VQUN-YM@xIuulEjClTK-A#pR<}z5O0k-^Tp%vym&=C3gi5q z`0V;tf0K9{jPsY`EAf2!kNAG{|9A0JynnwYz68(50@#kYzWz1G`cqW=dDN*cJ{$Y1 zI^wl)T+vp%Lwl>=N&G}n^FiX>v7a0+p4`In)5P;(JZFi&iR1Yd;!ooKYVjB2tp0ZK zX}6j4`Nwgaoo0Sg^0TpDIwQVezU8y5uv^yoafIE!O`PASDJ|Xt^(%g!^GC&>d%!$V{4=~>j1j+#X}27o7Vq2rFT|gk zX#S1(OGC_goj2>$s%w5$^89;nzlvvSX8AwFyWD1;=?%MO{Wb&aeopbpY36ywOP4h- zBwjwJd2#U=JfF*nztqL@mBkCcYhFXVD%!0l{$m}>$B4J;VBTE3+(z>@;+gO~>Lk7u z$00q$dnZ_(MDa}%%=?RfjQxDF`1Tmfj}sq@=hr^*M7%zJEk5@htMh|+C%oUeC_d#Q z%ioUU1#SS&N>anCswsOBgFS&KlZdZ{~yq2#aV~{9}D}_3(uFYBwurewR>K? zdoJ_aR$=*qoBYAQ%z5m7S@DZ_9j_}Mi*e{EKB$1z=`Q|PCi6k!T?d+P$M;RRT#xlP z=im3Dm&E+%Lh_fy+rDCTZeN4j;KnU)Reau5Nu2Gr5Ah)(J|)E84)NU~elo=Kuf4hd z>}S&uA0FaQh;uxj6KDOG#hKqI&ipoU=8uW<{}25$#Ivotd3jHiu=`QsXRtk&7iayt z;;hqHoOSw$bGgQb_*8K&Z<;vktPuaar7hQ1apsSP_(^fLdsTcfo_BfQx_LY~K2<}! zwm8SFkvPY#i#Y4|6K9;_PQ%an?x@XPt54tn;GyBpmmqiF5m0AhUio%a>zc0Np;?LHyScBhE5-IvAL z?ox5KyIP#>^8e-F_^{n=l4raB5ofzUh_l@*;%ql7UI(<@C~>x1OPuu|6zB7|gE-rb z6X)^{6lc3r#aTZs#6J;dyZj!IF7GkPvt9l_sLZq7tT;bGe|(a?F6R+{qojFJ@k2Gu zYl*Y|gW^1XYcIaLsMYBVcZYL0m6q|q2rr+W#pS;MI@$#KY~9a^^0J+mP!5u z@@vKK$YL|RD|Jet&Tes>UWy#@>bU;TME->5uK(3g|4c}oU%k9vCxY`&T)(VyJDls6 z{mJj;{W?64#X7UmpJ*?iG0u2m)Rp>`uw0!bAB%jv_yTxusS}MlW5r|O^SwH58|VIE znfU4jHp51#6N@^BCC@s?J$K8y3H|)RbJs5GU+~=JOW?fRCC^#Ye!O7JmvpS9~&jmG}(!R`E6P zBjTUHe-YmU&yj8`!rgVt`vttX_&NCf;(x$fis!(7yNCD&FUd$n6VCw9-t3L;y`^1O%0Jxjo)vq7?bJG;be~LP@LVSVLdC1B{mUwyB z&wZKff%Trde&)yLUmuCLhVKxc4BrpW6x4A2XS+wdyx;CA&;53qg|nZ9-7mqkRJ^ZoWR+LP)z8?O1vejg?&|-9`a8sH;*G(6@rCfC zaQ27oe(&Y|c7O5QZ}*xw+s*c|>vSaJd$ummcJsou-NIhpZ?~N1e!J1)Y`3mB+kMb; zzkUnPUHyX?pZ0L=XE!hJ*XiTA-_K#` z3V+6Pzs?-bU7e4Re;Ll@Vt-!q@~+N4^yeMV{r;qjvp+kfKHm04_Ir6(KPpS`BbbhP z?&{}oKZ5DBcr5&)_yYJ9IG5|7m5Jp4#D1ak?|GINXFeM4_CKzlvFK-g&s~!z(QZ?5 zj&mpRVt79r2WNlSZXYl2x0~X*Ym)URd+z6FhSZ-Ml3(JvU;q7(I$ONF-|imI{W{-= z)H&9`e!>-s9^xnHNIcqgov2R!%t)5LREXBzTt;M$+gUf!>h z=(*pY;o|JiD9`;m6FhfyK1P3@fwMn+fBm8OcWw}aX`5Ha)t`y&{BzG;{i~?|wfKE* zreHcLJ`#Q&&i!;Q) zjx+Q5;9Rac=ucJ2cXopsOm#x?ZA0>pgye^XOLTasCkfnJx8aq5rES zpB*O}HiYCqmwbEVzn1(9sDD-R+mX+*(~Z*K?`x_QwEK6!InMJ@r?TW@k*_8G1iZe~ zNkg4>;{5xugQQLx>WmD@&kV`Wll*_s?gq(!h5B2>v)yUq@R`*47Il7-d?n<66Ym87 zL+YGDov2;b4#&9&wx25S+k=PQ_A?4~YKP?8hU6cSd@0l)DfvaHKVJMZ_%x|=59+Lz z{CVWxmi)cQ?-H*9KOf>zpWQq@HIZ*7-UZ_sFWwVAT6`${Iq}Kxba6gUPlzu^{+jqZ z@H=Qq9V79shBko*A2XGgowNWL}d&k;|B zzbtifq0R@ApO5@D@$K+kQity^{v*!)!*5<4_tNt4TpQ0TUOuN$#?OL#?T#B~-|L5X zW4K#i?se?~maCJO&k=aG;GdfYiJL|uPkEk|7~IbA-1P^C1CbZtY_}R_TJGgtyQNVp zT|5u`bI)A~etvzzbJuP$_AQ+4MqvZ`&C9!Xm!VGX&+QkE^E`NQ&t1Ez@T#7>cH6;g!P#yM+HLOT zUAr5Qj}w0jKGbv9?o9YN&t1Fy;8WpjcPQGO=jC0y+mK%;j*oF8AA9cFU5@+#&t1F2 z;a|hqZW`J>=jC0yN0HCA-+tjZ@)kyA6UAuMR+dOyeeh1$TXS@5*?$=)4 zwc8*0U&SARXFV8%g2~-=?ecTm{BT!4fAFu;q~J#|l@LGrfO&24J!8!qi@)s}38q-_ zo%PHg6(88ryuWzE3FafkCr&k=D4tx^e3tmiH_R7`&wR~%rFhvg<{QMDKVrU3ykA}O z{o;?{_~9Gz@i=ZgE55j()wwEu2aezl7E>*D(to39sdg%|9P#OIf@{0{N_ z7@z&(BdS~esCYeW&nLv6de-u%#P{I%_LBH@Y`1@kPpV~gqQ0jIPW(I@h0L}jght?j?Mi>KWiZOxa8S?zRt7%Tpp~>8+GVBK4QKk>S8x^BcB(( zUfSh2Y!2~H#W_A-h4=|^j?d2_eo36;!|w%ix!8Zcp3}L!{QfV!5bE;vkj~|8;~<#S z`F%G!m$$d%>4U|&ykkOqf;g9#-#c~>yX~3%Un%*ruG7K9?~yT2PnSHGm&X^((+^0V z%XK2ee-!8P{ubhYigS7S{b={Fzr1De;ee zvA(uTejwlezJI zWLF=Dk{Kg?#mhS{j`7ce5cBk0;@y!i6yhbs6OpeJ;?>3ZeG-0en*BkUNJq(czyon1 z-bb9rm&qYMTAcl#8sam>hoV38LwvFLV&qqa_&ee_jS$%!;-88iLH&avepEb@8}MNI zDa0>|=SBW{h-brrI@jZH@hmk;r1@%6~p3-Lzc+}`;8diImA7ri9U?PrKM zx08|LxzV4eL;PRjJdR%=ULJLph_nCvUO)SPm#xOgcFEU)?+@`K;#}U7;#}Ty;@qCE zgg8I!VL!P&=fWFT^#bDDo=b!{|Lzp)aC@#Pd3pnJZlBFVysbF5&qqT%Nu1l~&=5}* z=lbP!6uZ%b>+^aG)~}E4p>zLVL7esP6X)}b*LkoG>vxnq>nDh_em`;6=k+35e}?2)f4(^DFBa#1 zfY*O${T-5L{R85x|Ft;#&+9X^{(mLU`nS0gW5L8c>*o_^eO~9mJjcJLuJnO$H&iZeQ^YtP<#CM2uJb9f8`@`qsMalDg z+4T_5mh0yAIN9z-@`-aCii$UM9S9~~hoSvxAbB1ywF&Xg;_Od?IQ!F2oY!xrg!mKU z>_4v;(f%)$Joj&F#o3?t#JPXtbue20sN`Ayv^eWu5NCZ}zry+)=YqLy{m?m{CB<34 zf;h*A*RQb72rCA|C-KMJjKTD%IQ!4*MYR4n$v9C_XaDaLPjWK`Qyp>E=XDaS z&wh53JojTs;;b`BoW~oyzCr8HlsxOt7iay&;;hf_^|L;Y8$Xf!@r+T3L_Qa1{jbC) zVcfnC@w4JQKIC;6?9W=Xn>UaBLT7*O5@&zPh_ilGah?aSCC>5T^&f1P{pl)s_NSLP z`!i6S{Ye#Pf5wTkKfLZl`?Eyy?9Xa(_UB!3_GgPY`?FJ={o(Z}><_n}bCPF&u86Zg z5quECI_wXxU!k*pS;@10HF4IjE6)17?m_E6DtXrLE6(~u#aW-%ZD{>Dl4t!z;;g?+ zob`DfhSuLDdDj0zob`{1vp%oGVEykRHf4&!ZE)jGX>k9OTl^U}V=xsIXMJAJq4n!X z{q4~tSjn^gv=E;oeir>%D9-*Y6=#2V-3j}{c6Unt9P0CW6wRNL zJp04zIb7bIV&?TDQTePOou6YB3-PkzXK}tdI>c*>Uqrr1h_@E6pT+ve>sQ!M_J4@v zJEQ*S5Pw?y1LUWN`19iYe*5AOUn$P-x4#qOABl5$d3}s7@As1D^)lx}{IWRLZ`S;` zUhlcZxqgd=cxiF2-|8V=Pn^rk>wCDoT&~9?&;Abx@!{g^|F{sJD$f4T4e>N__Mg`S zvHy=^yV@rC1o*xXKP-M8`R~N}z40^R><_OuVt;tOL!JURulHY2zi5b;7U%ffC(i!V z5$AO!yq-z>(@pZcZXzkf`S-$E=N$TVb9s3^7W>K1 z>Gw*05!bIc$Kj0l56J%|&VJ^=_w3j%`@`$N=%f@j@-CM=*W+6u{((5xFRue*eO@niLh>9>ULU6UJMO&s`NBM}4`ZI!kyQ`L^SUw3 zKN^zf^*$^?9AtNXchL|EGzw-8tfUk>_<(T7Q$|S)bQYG0*F* zz75Iq`YO%mDSY$x$@;vGih1_Gy5u=Nye^7)UO&}Q@?2hCFQxf$A$eXe#XPU8S{#z+ zbyS+)8f}#(f+P-}v5L1_nP$;TKn*^E#^LIX+r}*bV!GuXFI@xEuBH zv0cVBR&EaFahmbQbxU--y}GGgw~J>TeEs@=>cqI>!NfW^47hQf5FMLSBt9ekcb@I` z6=$8H;;fS@UKaOfhWK3ZinyO9UJ3V?i*tRXi^t>s4)H|X-zPo>_YaHDa03-g$1{HZ zJwD6fr^WgGlZ=569&<6b{ov*J#&sTaY_5?g)T8tJAw|UNpuJM!{5+A@ov=<93h<%g_rg=fqv12fIX-j6OCz5q&UU%p z+{13Yu-!G1XS*B3YoPu<@rU4t#XG={i|54s)8fT(pI2+CS%;zNS@o%266UhpE&z-So|RRb6osO_-S#Tx4aYpE$plSVX)h^1N=F_1SJ+$rnRDMx1q8i1$O@|NgM+ z=M=dA{bA?N!{epSB6wf%rSNg$?B`VRdytz zoa^zlcyr`0h_lWW@jsB~b=zFOtW(7MzN;JmcF30!XPt`T{C)+m&t`qrX(4%Thq2};!mRf8gbUyAkOPs_ldL4VR1e$ zj*GL-X>slk`6h?s!{-sNlcV!_6yQa%`Om3G2(~dEyRz) zhwMLwEHi(x%{e9x> z=V5X7^SC(coEEQ-`h0`whKuBuEN2c|K005I^!vt^3jPjF^c%YQ$ZrnIk6lZ_x zc>5*4Kb^hp8HU4B>f~ke){&+^BhmRVRlF&1_ zO-Z)fzWgmYX<$NhN>XY{B)V5ZNPK z9a3tKNJ>l@lH9U)hlG~Bn>J18(6oK44%Op=+z?mBHB>#ix{m_Mm+T<_$BK|$p{$wPt#`~OdI!TRGdlV2?cceqYV2lrbA|L}CU zaT_*&i(Aa^wpX3MRA6os^0&d@?v3r2&vR#Pin5ydb&)0K4 zAmuX7t2xUq1-RVY?{R(|zsA7>w;I3rQ`XXQ%vd_Ob<3&aHy|*VVHn0;Na_q>%TkKsr{cFnEQ&4uD_Z1J~Z<| zBxB-z-cAqnR_#Zfw(}X#es1wf?sb;bJ2dcFK$rAFPdE#=&jnXi1wG4 zvN>G)?%b-jzdA6j8BpZnH|}R7GWmA9tGj-Pm<&hGwC_QSw$)&G4s zp}((^&FK2?&H-!x_Xl>X_IqYFjkVct{M793;E`LkpH|PdhvT= z^?y0~&*xd`pn!X=;QaJD!Thd$?SDGj=lNK+@3L;b%7 From 1eadf652f39e73d60110c70c79ab6af6adab2de1 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 17:46:21 -0600 Subject: [PATCH 319/336] Delete state.o --- .../reccdi/src_cpp/state.o | Bin 213304 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 build/temp.linux-x86_64-3.7/reccdi/src_cpp/state.o diff --git a/build/temp.linux-x86_64-3.7/reccdi/src_cpp/state.o b/build/temp.linux-x86_64-3.7/reccdi/src_cpp/state.o deleted file mode 100644 index 4306da007b5b5d98156a3f70ef2528de3ef21392..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 213304 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 S-Fv>r?`dFqw>&^@#{LK4Ju4Rg From 59a863be7516c8677089c436db469d06ddd9da5e Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 17:46:30 -0600 Subject: [PATCH 320/336] Delete support.o --- .../reccdi/src_cpp/support.o | Bin 196056 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 build/temp.linux-x86_64-3.7/reccdi/src_cpp/support.o diff --git a/build/temp.linux-x86_64-3.7/reccdi/src_cpp/support.o b/build/temp.linux-x86_64-3.7/reccdi/src_cpp/support.o deleted file mode 100644 index b3c4a23524bc430e9b247964d37c143730d0ed5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 196056 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 From 8c48fe14bb26330f1be1bfcda085e5c41b247007 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 17:46:39 -0600 Subject: [PATCH 321/336] Delete util.o --- .../reccdi/src_cpp/util.o | Bin 255400 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 build/temp.linux-x86_64-3.7/reccdi/src_cpp/util.o diff --git a/build/temp.linux-x86_64-3.7/reccdi/src_cpp/util.o b/build/temp.linux-x86_64-3.7/reccdi/src_cpp/util.o deleted file mode 100644 index eb4e487db4b2bc616168ccfdf83258ffec59291e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 255400 zcmeFa2b2`m_C8wG)jf2N;0&Ra%!mUL1q3CC!gxV@oI#LaAV@|~B+lSqBBKqCq68H| z!GzZcUNI{mQH+=)Vn79qsK8ah_kH`EI(53Ixxf4Wy|vzYYrQvXRnK0D;Pj{oO6XF5U5mpabqPdyXqDxt1UBPUhVL4< zTX+23^}trQi0cUpi{kD6PHY59;3v{pQb7Z0iHFEf{La=d=EHa~7@N*eChtzO0-E&a91Y^7HRl zklE`?_9s6auu<75xUk@Yf_{a`!v%c{lfU)rlbH2=&BXjmqQ&#G63LH?o4%ab@JDFY zAKtX~$@dcTFUT!i_qY1%qVy9T-zh0d%=x4wYpcgPNzB?9E=&&0kIvfc&N>_}{k(8^ zB3d}SSGYL&Q{nK|J%)F!EV)R`+ElYR`Q3m)1p^BP6(qWO6nGshfgc)xFu)q*GypRhQE-5oCdQIK{WYhB3U_KY!=RMmtUA%pGbaKR9<6s zVt(cPMAM%W8xDmMbKXY&Ld;+HHU|=O)|b>TE^jx7`o+nu)Gto%SJ{FROcc&9$&dCd zFK!(szv<2dvXVennnP`^QbV#k6UpNIXmK)ZsZ%gN3>zB?=XcI8DzDonG3W1+;|)`% z;?v4&M0-GAYOFBXH$QjJrXzp@22Bl3GClGo(tCXyxjd5Pptl4Q5!ft29q#q&D|P~5zO zV4oK!4<$By*QLqh6v3 z_zkLjPjPZ@aq^(b^?Wo%aq@s-YoXCjeyd2@8uDtCRJjsR*TsiFX(NAYQa3d6j7@BR zs~;tj8>!Sp8&(DjlUtFY9?2ux!cRStzw6+)J(AyR?oY+Z-M(5PxlaXQ>!?}Tx41C5 zW#8(;8@bo$U8lxNRbN7@qqpJa+}_5*0t4 zS6vmjzQm!Iemq3y0G@?$Xm6K<`*LE(ANvzI&0f~o+zI;roT}Y)9Z@-?mAn4;%DF{G(+TUR4G50q;a`EIs%q1V-fN?#~&x0U->V2<^e~1&)vQ z=d^fhf47_#uk*ACu~${DW^7s^R%G6JBs(Ve()id4#j7@9VR^zbH{YFu%3w-F`1m zeva;=lkta>7Mod=!VQPL9&>)knNtjpZ1XlU)xFKv5EPbIu2E7C!wLNDXmd)(*K%g} zfLdWWMx-9e-TUI0|4}#2sDhl6yF0}>=X{r#wLY5YxUF5XN>bSM0MU+nvQfxq6u46{RdM`7|^GZ><_W_*7LS=pa+v7Ssz@;kISfOZQN zmp_@m0#I@J3;C-RWjzMHzWH7E=UnoZgnFrbap>8}X>b>4ZQe%Rws|GNxfnwxR4$G{ zj1;P>30arrV{s={GR|=8!Ff(b(c}?-qDo*6e@k?8#YQn(6?1tvf1W8X&L6_ruSudD zv#CEdbMj8;toc)tZ?ZV4ll0w&Yc79{BEDPj0=yU{>V~cZU!K5FE^{(ni)%8nKu7Wt z^Fc&?73X*51c+tLH}rZG8%4il8;V_=Z|bSdE8UV`GQ%Cn&HbM$2}G=?KDKA$5{xiV z&6BFqWyI`{By|n>^FOMR*m;v*X_MMsU`H1Pg#cBP41eDn5bi?>k=u;|8vCqvMMo&Tmi8^-ssrmr znHl%J%@{iO#(kgSv|vvu`ac5d%B&#bCv9vR;hrX>+ce*8_Z(XhQ3XUoP(ZaRyZbOE zY~1%HPMoRttxKD)F<*R8a6w_xEb0HmK=2?OpKEyJ;~*MF-2RdL36M$_;bRmfKTp04 zPipgt2$NU~DR06G1P+JxLj@LY_#R98O@%xD(j?QYKFO@D-b(B^RM2!&x8#UrUDL?j zygZ6~;qDH;^k=yAR`j)j$c7A6vSu!Z;q+Didhrr}q)<*gzqrD(zW~er8}qxObX=v& z*zu~|MMy4)tq?=9>_@%IErx1#F8fom(M{h(jKRH@-YfoC@{GCdObeG^GWaSK3yvF1AXn)s~J(!C5z4P+zZy5ID<|7||@ zE#NJ{!|bqY=Bq{ zulIB9ng6|?>#;1=&-1jO>t6HU`?>O!G(T_Rw=C~_=kTFS;>xKY-hg ziR63O68IBjIF>A*aEF2$xJsD+ROwkS*jUiHEkBj@@*L~P$oxv+$~0ik+Jt%XLzW9e z;^_(0P!9Ge60?5NgR9oU-kRD^WD^xgj<88F>-#2i4kWf#Vq(8?8jdEmo)cvZ*IZt& z8~l$L-GXDMjw_DnFIx23n8@VU!9B?C#MVy79$Uh^_3!%t;5$DZNb#$DiZseng z^Mo7ucO~a-H}YF0=T|qfyOML*jl5CGnG=dUS;;96MeeEOEDlA=D>?UsB6BJ^)4kLF z%5pY(k%L*z2VP`Rq`!yZ9mU_G3>nSM&60AlHQ20VqS?j?}Q?o zBopf*&LS`JT*SH0i>!?}TfE5Xh=XQ*JIrQ97|jYfG6W7X1pc2Mb?1a>=jJeNqViyW zWjKPgUf0RDJqgKoi#+Q(eIo~5=hDc2*C~m-<~r9fG~1={Mz=cfdt5NL@`Or@wQhB} zGgC*7xfQ1-lg0IoTxI3xZ(iF#A})2Ltpu(ZuQJIk{c`!ia?dGB=bc z@AX%rJP}Sb#mH3@<+CF`d#Rt;@MQ?MnKH0N6HVXpH%6eN#=GvAC^qH#)6d3WKQl2u zC((49dWf?=XZB{~EK%OhNp$=5avCu_VuJQzb!^k z-sMIyc_o@2Ol~oH?}9Be_d9oZi6m zpgqkXV1^Rq=q~6{at=bWnh+WH))lH|PZ1tPE8sGxiDX4C<;og2j8y1oToBT1q+0y{ zaxAF1plyPBO|6-u$x~VX$FYrUpR~W9yC}h~b^5B~PS>Ka>#(66CrUrkVTRKFLQ$c4 z;mDYAB~BQaPx|L3Tn4xiQ6 zlaS+NM^_*caz!aST8PLolS@W8dCr|@J5FUp9k+5Hb*-XyMBOTbKY_T)dV(rPZk6Fb zB3xygExMFH9H>I7;~dLVz1GUkvH!?nG^e0a>w&mP_^e9B2+Jzb%^k=)^r}xH1CCpb zaPDBP@O60j4Pffgc4$QCfAvhY%mn;OF=RQ$oH1&CT!?7|D>5r0LXFDKO{4NeKi6l91!nsou5CU|!~L zxrCSUb0l`tAi3N;RW1wekjpJk%H`HK<+5wq2A(#a#_+rF1K})%k7uR<&K-> zvUIgv?)*e9%MQrpuF6BHzM`dERu;>|xYf-AFEL zy36H>!E*W6RJlC4P%dj9mCI9GRYoa=ASFf?S^aL@v+&A(s~#jUeU4u5wv7 zR4yB?k;}`=g7;>7;&!4Ffx29(E+@XU1nB)W;J za+169Jc2R#HHkw(9N87vQAieKjzfM&ABmBtQdgX8;cN$I5IGD~Na0w+nQ>H3HN&~z za3n3(f}_$pPB;``{qDrxLRwC|1W^Uo6`1jzgryP{k|zjj@UX9_v`-j0ev}i-H;N5m z(TQ=S!SV@)6w9eoFs_PzzKG&3 zy1wHyl1MeT6!07z(f%-?27DRx8WX?C2lR+1!)tWv>BxB38sTo~#E+#6b;Y61(T^+uS zVKtvcZ|^D9p%v~t5=9-SYVlK;X%%cg3vHl+XU!h%IGi_~=vtm9A=*r$>v(2k z-3uH4#1Xw2ms8?YtNwmw7Wlu1m@WO*dSPYChCyj%y4SXU=$c$K{$NVx^@vJ^8; z3(Dj2@X%Qe==oH*CE=**zs%)3fIspn&dEgM<0W~bKlq5sq7>6nCR7I?>9`mMGaS(& zqY+c6>JCKP0qH_?6i~HFQIr;NFjdG40S`(uaEhSVm~cvgT%CrVX3&K|?l7nnKH5pp zMc1SroK+9?#r*SOmtdB>Nkjwh?j z_&?pRApX%nWpo_{J?$QWxO!zjZ-fG$(4-CSi6ESD6q23N>uwLQh8d=5ZJYG2I|+oD zsU#T#RGvO@Zw0o>;HJry5mgJdL+&$RZ1h=brf4fQ)KGf*btsDaDe!N7PD~1}IL!i% zQw0Mb4%Ir+wu*CVz{v;R%5YXN8O0eS96Fqv0Dhj&(eP-2>2L0(fUY1c14_G*<3>2q z34!)pKsOp~1z#O#-w)_vqpi}OEpQbKWMS2N@S5ip2>Z2Z8Npkol@bAcx0;n{8mu}@ArZ~q=!%^l>6m_>AuoHb; zTW&58hdsA5ptA^DRntk}&sa4B0FClt)!kL~6$xhtIn#j8Bgd4|X*aY476UW)0Dd&p zj8G;ARyG5EE7gih=|15|XV?S$H^Z?y!=nMG3KnxUaa8CGPX(Mdz&jg`G>N1Y?#BhSN;{5{7RNyzIaIB$6S!^1xSAqGoVVjXfx5NlN6%j#A^n|eght^ z>KD_DFuLvQV!?}+sRcs5AxSw;BM_IH6e(tBz~>lBP|Rqtm=Mko;H4>?3dK|_7h&H7 z=3R!JUd+*f*{4BzIfbaJqAcKi0(_t0q!)9gDkj&=aU812WdaSD%87OaCQkq)VtLRKHL&?~GLB$SQtb5R_%KN7 z9MA_IMMc-i&jGs>%$qZ?(;Ftl8dW8K5cC&~iukFVEcc5C?DxU^IRiVr1kD1KSRC67 zIINbJ1gN4*&?R8E2lM<4?DP_h2vjZueRd`l*jG0ZZCTprxIkq&=uc-*kz!aGn;NLR z1^V6$DyGJCS!M+)9<~tc;Ycreuv%`(jK%MiIhTHTD%d@ZM&O1)>6ONVM&nYjXJpU_ z8YGWtM7K+}xEQ}5Y~^+<5L2r^+02RGj=0>8Zp%QCI*h+92{SwH7a$#A%ABP23LkPY ztw#KKmRd|4gMG*2aHx7BBKoH7cvhIZl(bq+rj1x!thY4{T!hfcO|xeS?6=pFwmr#Pp2z z2{L*yNaGAKV@A&m%w7-XZ57$N=?4d9SA(?P5Yub)lEC6eAnh^4^o(8>SPa!c(Q*8T zroT2Y+ZxQS71=tY(*m;>gEYnv(=&RPSnS9_VJ1ko8lnuLJn1%CBgEE-yAOl(lp(T2 zI@N`es&L)}{~{k8^u^M$zYl^AB6VE%W{8&h;@Ada@qvgd!bz^X8j;P0 z&u>1ZXo;-b0~Wsp%#Jm zNsVbZrA4H_fLi24eWj&cT^X>+`*sptQUd2?xQh^Y!iPg6JLUG zFqIT^R%LOnv6$1)acbjGjX{e#(OV7W6u@VtP$XrY@4jIY-3vh&W=I@QG(J+{R|31% z$2IhVK%rY9zQ>1@^K*oAl>2^6^P#7JZ!sKsKq?%mTmDRuq)$Nj*^s1mf`TjNnTi=X z5yLEwpwzLQ%V9z_bO*U{rE2J8kj^C0xVtRVbpg&6VyF)Yml$hw5GPLUPJ{bSkZpaL zvp5^5C*a4OY0p=Un_<2>w-XDX=PS->dJg&gM*#kObyYtT{$frL{&GPO{_6G%3}^QX z7n$%k%R8I!xAz3$l=*5tYTT`k#5rFz$;X}mj_AktLty5sE)bpTi(|Wp#VaFj=Bpuy zlo|pb*T%j9OH&u2n#_DPAK(&0{hqeWe6)q z3~q9w8(Ga)Zy`T!^+x!;3l3FO^OeBO0JS!-s#-l?b%(egA(lBNRm+yuRjcMJu`v#$5@SOZ&zi5w0WCDJ zJzuSY^a&y+1#Mi-SI@9=UIqSsCXSk~Hj(oa@IT05^-E55-_`R~&Pf>ma9FrCUr92j z06v41AS*&q^OdC15AcvwE4nE?)QTf!rUIYlo6&_)^Ocym9nf9A2@R|HO0=H_^kSN} zny*CreL$b4X{-5a1#97VK!2ubtNH2?!Zn(p5^yL-P%S-2a_+W*xDz2MJbSXPKRsXd z1lG^T?fFXj#uY%W_0bqbG8kwRdcL|9gjJ~|@hC~mnyJl?#qmVrdcHadSW6$*ke;v3g1EO2Dd(50+Vj;Y;8P4o=BuFY{P}7= z2rCRpY9}bTv_eGBS8KuAoXVV(K3`Eav=gKsNi^=BVZQP(;~a}am7Naa#HlUw6(=8= zuQ(exb&l`-{W4zqd?A;<^6R_f2ZoS(o#RK=mCNYUz%G+Fgvz zSSFX5YveL(t6XM(CYQOD?j|MKP%iU3$mOO!a=Ce&To&9Ums=l`%k6K@uE}JEn%kP!T_?P4|;VZdJ z^6sVj?eNTGe|^>$1#KGX~^G1p6`W;8Bn^O zM*m5B3M?halI7CN&+NhDa^&veu1yR~c@$NGKC45-5pDMsA=8-i$80cj_LzzYup!^T>d@Yc2 zgOaZ(GIWOiMT)l)_#=kHq0^}odYh@@LesePfhI1jMqF578P?iyZUS*Q)0;#)>INNQ zbt`m)L+1g@)DieoWWOWq4#LA{)A?1$88Of92>oDg0FLNkR<-ILlikZ9nc_=h9_JVZ zO?Br&e2Wid?g$4^ROtv9&hZy#-0uk9DJIkq9{*fpjxy9imuQ;YDx0OclfLAWM58&trgvNeUHBKi|*P zeH&14zk@L2RtGr&X77R0gEV>))37=SbF>b?W`ZpPP&&wT2tUQ~r2$o`uK5LmgA|H6 zC7hOp8;zOyJTX9-Y@XSVlS{qn=P$6@>K-x0}QQ8W=`w~E7e7HgfVGB$LI^Snh z=pc6idCZ{XSL`4!1ApCc{0_oY(HCeMml9~=!fM2Y6(${ot|UGs{t{n{hRB78+oqk+ z2dh$GZbL~{-X8j#Inm)=_xCd4FIETPFP{&>U)_Da;q2bn$ArIOD%#GsU4n4RZ7B1m zrWo9YJ`PV`izC{RZDejkw?MSR7st9t`z=J=+=hOO$X|wVJwmbWU}Na#d;Zp&fPFT`bu(}Nu?Y@Ber)jI(P|=Z{UM6ajJT>QAExZ;4{c!1xil!J%zpvT>@-nDsJ6|N;1y^ z-b6}}73(%sQu!3{x2aZiQ%X+63~!gRaM&%aZbQXH13--kTP>|_Lq+>cK;6=`)orL~ z4+1niOD$m(ApXdQl=DkgmHU3otcHF7e%Ns2HdHuLxBhKt zH4K_3;jn5aD7a$k+tAKn6{j+}4ANafZJSaxG!mpz5{V}Kcou`pF_k%n)W3#pBM@g|YOG!q4t)jwq5q`w40RO!CJg(isFQFUH3^wjGEAGO zPk%`nMfwp&-71gsep%K!Ro46ni3)r`d@auhOt{RP| z-ktHk@3ef_+#o!BthFfRrhr>rbSJudk)fY)MDL<$j7udramFJ|4|iv`V-2LkJ-KaNMRpMM-5CY`qLg8OQOdBtD7_QmmBdyv zS87Goe>DWp`@+~$M65;W8$doX=nF(;QTnAXQ^ipA9_lf^ADre0FlmQSQNIiPOxq)^N$ z;j}v;c)%CN-leTLEhu>Aa|muWu)QdK7t*g&5T&gY@BS6g5g%3+q6#2)ZES%!n0YuP zI~5kCZGrs5pyXFvlwJsYnBn+~Ql^UaCr#rLQ!!Q}Vyv(XJ5F&v3bDG_j1z+{_7&`? z9%T0`Zd>Sn#hnUqPs&WstbK-0u+`X~v>LmRs8QytJ$JrQdnxF}>)7>_+IsdjQKQUP z+p*ZFy~A8I0OVA8m*+u1X5di&|7!AiCNVy~4QzZA*kG0{8!LfqrVYue$+Tqy^@Two z+$wY`gk2a3w+%5TIf$FvQ*d1wcmP zQ2(|o`6B}ozl=J6W8EVVs{BoGnTN*_KWhGbB8`3M6M2Uc+YO025p%lYaKaPZ|6Gvv zWF5y-)vFr9w#jJlkH;Eb)YFC~f08T{Q{)(1U)vhzlbL+*FVeoPJ8d|q=79VVZPjAF z!XIYcf8|!WS(M$?>JCBG2ITpyF-fk0Tk)c;SC# z`fBmUCFv3nx>@W#{ZS+mtE?<1YK!LMvj^p-IV0~WalL{Q|Y-!Q&OYV z*;ek2hBRf`)JAqp<~K<&YZ9k{-nM#r5|wVO$-TcRK8KN*IXQ8zq%dOP0VJ}GpF)8b zk3xp7j-TFPiw1viX6#OPuY)PCj@N=~$vR$3D&`V!y-wW|`d|OOGl;6YBCiX)#1D7n zuTHhRAb2^8cUJIn7O$sU`5f565naU9m)s$F=erFdY3WO2O9SWv_Y8;=K4fhNdKWWi zuc0vR5Wts{vI2^+uOU)91KuD~J|txp;F}EP=YTSt6tVIE;HOAo&SL99iA`ZfQ2lsB zas|)scHkcy4%LLHlbc8m72W;d93qc7(iUbAbt|JD>*7$Uhy~V<=FAaJYv8A+aNw2r zUDFDpalQ~IBD~t|Zv?9e!?ioT4=XBodJycg!$`Y+f}nU_G1IG4{g8T#h^yZs60+VR zQoB80-JlIqPa6(`84b5)PTHH3pUF0bzJX4kF7tz@2f@s?m`UHln1;{={Kd_o1%A^I)$acpmJX6+90{e;Nq$!*E2ez_?-h z(|4)N_iRG~lB1>&y8>3LG7ax7|xklmk}kn#>rI}N34K#~3=Rt`Xz zg;Gk+V!4P_>`%3UH!~cn3DNFPRCLb*CqW)_l+vFDLOM3pg8Zyd_1ZaLV_^e)ehNqR zC-K)f8%ViHovHlkd6+tNwpPZIOcmT#(*(EYo8YUhP4G3o{-J@Wy~Q&hRR4)1#u+vC zHbPE4LEquIcCn9;XTu*8ZkGaUv!4;6p&mr%uo6^yy9h8o$^a^tggfK)Q z_Gajr&ZvGBc`Nir5ZMvh$cStVX1^118}>k-#1TDmKNPW{2<`VnZbyi^`Qljk0f^fQ z_GO5dgUF{l2>5Vvasv1pfy0ox*WffW4c;qo9DMgqKr0DL!pgY%zjwNV`y8OnJ}fUx z(-}ArnAi#YYoDXx!vc$m!-P;ll7ekQJtghNa;E3)6+l+amAerb(W4{E@ z1?~)pZ}g!GV_q&0_dc8+C*>d%V@(jU$Gp0vY{ltqLunUKhJ);gmAw%DK?-vg3nNr< z%sUpfP#=flP)&&Tm`6qTG;lhT#~h`MdA%SVl4?Po3D{#^3Gitt9Mz?{+H~Ul8HPXR zaitihw9eLeD?hmH1QXoe(ga`aXo9cB5VXcT{`TM}9I|wcZ9&K$^N!_`l#ALJc{VI# zUXv8q9`k6ZfT;YG!y5A#?{5HW%quarWD%`Pxpy(ds+9YdBIjo1t$bCU&39uZa6H@C zCm7G@oWXcD1XXOtvnfGjN9b}!+Ry^Wv;9cz5RT{|WHT7gV!iRwK^!8E$zG4@nrb}T z3Jtd<@V4ZPqpE_{c=j&gVnDsqU^SkVfbU)oXd+=rSZS;AjLq!M1GLzO?ZHTmXJX

        tE3h}$FnpcXtj@(O}SN8VY%qazGzjr!s#3y$cGtgh-} z@qG7mNY3`9v0DS^0`~%lhx$;3L2Wlm;Z6lSo0Qw37&{D+J*fRc$}+&K3?+t;rpTZs zR@OoICMnEW>?3GZ9Mrx7{;T0oO^EiOMn(4+)K*m-lB1MCtr4WB5|LEIg8bgr9@Gkf z_f6rbjx6^aaX!Y2u-@D{Q~5s`s=IG}2o_Xu+fydE{bdt;^$inz?JfkZL5U--U>y| zKpmegyd9xGQWkRikm4^mq9V-|9u3-Le(hlpb*5o;^@YT#QB4Yx7y7UY}~z-r)o zop5(RMQN}a_&R{^jsSESVM$mSR|B8?d(JFCH~FwVYN>%wOsoR_sLx3m_{78(Ks$Wc zHlYSSDZ^gizmvl<#Li?v;{QVKResdKCuvnjP1nbvDny8iqXs@nus!gz$O()ojvDyH z&H&(}GTBiBpV*lOd|oCyYT#pQxc378r_WL29Ub6!HWD8PI>twK^$&bR9>ST$e&fI` z-U@XNB0EBD7->UWoE&p5My=q8c4Pf?5HS|}jUj5|i(}^!Q^i$2@-=ejo(sGeIsF1y z`N%JX#{e3i1}h&Kz(U>t=qAFFurjWEME-4S6`&`4*lu9uBVyuJ;5&RyijRniy?}oA zVcUfA5h=s5sK8n{qztj4EJ*wVipf&+k$N;Rf9%16Y` zG~n|x*-<_scJ2lKSSCBlN7x$fR^YGu9OW8xfWSxMy#I*P=i)Sq{V(iwwdNZ;V*_x6 zR^il|LWL9%Ig!Z8X~=m*&PYYNP%*o?$EUWJ0g_}>Cg<2s55g8tYG*jRy^wGF@5s|V zcGOKiImP>9Cq4_yJZa0*J>H)E;*(SEd1Ad^0GTJJD-I`ny2rK8f6Omly&WYt6sjbb zu)3(1qJ;Ft%~F(zT%swLT$$niL8M;$5>!#5UI+PNcVRR;dJW>|W=FYS7GD8IQB<8N z$c}P9u_(&@-E4j4zxo$NAH+F3`V2TBexZVq&9opASKa@zG2+}$jI&)O5A|E`LtGR- zY;a)gC64+DN(25L*bo1;6hZZKlm>?x&XuAyIKpsE75Hf}8)r{P6}Rd66t zl}y9FffqC!v=i*G({lyT#-Q}N5^+x@)$o$H1*ECV2*z2<*-`F5cY)ApINRm_Me$wa zYD`hmJt0abQ_2%G=z$8$@}7V;-&Y=EK-3gV;Ri*RFEWqO$8D&J$9(hU=CO5YP*I2w zUwAGGc4m4Dlr_YMsCvH6%+-Q5%!uukjCAlZ2X|5^@XsPuS-n}>e*_uw))%&Ej8PPr z?`&7BD};43SyJFMsv?aM@425Oo?zf%T;hS1+r`RzB#0FW*$L9DvUNzZc!1RO8ayHp z-{>xoRv0L?z!$tL+hW$Pra403tKU_{+gRLVTaO^dfZbjrL~S-9@dar#Mp3-$j6VivrFN`GX~R<3ZDB-vmD)TL1+B=x4dE|XJKN2vVFK#-D# zUUs>MH^4v)p}Lv0(tX8k4+%d?pmc?xpxQ2J{7`{aJ_~=>Wp(ij27#(QqJ89Y2H>X+ z(sAXMn^>AZQ_V~LsO0C#SW|T*)Y)Toe!Gjb4W&}wL8U9LLdo>`#M2r@;pYiH@u+xj z!EZ6R3{6(9E|zZipr5`!LeCWOx=N!CU5Qg28j`CdU5Guo&Vy<7F~MyE5Z`gEfLhE+dqbPmI+?>0&> ztom!CLWWg;ZFDZft(DCphC8TmF~eO|xCg@t6+UkT!o5^jRu$)~@cESYR^dJj_fg?~ z4EI&x3mNXG!j~|7feH_1_(ByP#_&ZdJc8kiRd^J`{Z)80!vj=!Ji`N3cml(N)G*TM zT4uT)mVi?K>Ua9sJVVt@Zvts{^!-tKHQl%gM;z2UmPj|UZ>nIq37(Wk0#@!wCOi6C zU7q=>lk6zp1}njFg;XK}#1 zrpGhE{#0mMyX#%JxYZ?6$L)fmcgGR!MX{3BbNfLu-j~K2ux3(Ent6gd4Xk;F*)A~B z&|M1gLk8k4OY8#Tr%BS{x-{y(49+&6r_p?J1l)ORN!-F-ABSyu+c(S(`k4!6eAb}@#B(K4=%?=oTk|+?mQ^p zO#_cX8hetb=XhdGYEoPGaS)y}r1gP*2X{Nf@A;7R%%xc{0{j5@S5mf6QHtNJGeW8_ zA2SZmKX6C}G}@EsYhb%gfwc3{n53)>1e9XH7aGdHmO(Y0G9K_%h9Xaf(d}h06~}(kb-;H#L;6GbL02xY$sB%0w9f zc)X#=PwLVWx*qVYhVpwRD-Qu)YbXxLH8;a!& z0cAJfpAE%whJX^Ch)#w>720x!fYKcBX@+7sLqItX@WqB=IYU612>2R9v78~GECPJD zp;*okP@V?-vY}Yc5Kuk_yxUMLX9y^V2~YA1Z8<|g$phTnP%LLS-#EiR0H0?lmNNvD zQGh2JiscLeB?)+up;*okP#yvNw4qqe5K!I({IQ`}&Ja-c13qjhmNNvD_++g4aa3@I zfYJf*KMcikhJZ2v@F+vEoFSlG2RLacmNNvDm4F{H6w4U`$|k^X8j9r%0p(l3`whi% zhJcb?f;|x&s?e4*1eBJ5I~a=P484sr^a4DD$fXfZVvJz142fW%)#ERUQG#f!H-`$DAYy7RU`gs&2SWBiIc0X-F8!xhnua;8V1D+`+&JP|5B~KsKeJSk-Iv zQy^cap;-Fr+nqmvI9L0nR_RV4Dz~mRfz(e!CmQrLAf40DNe1l;q<!X@IP2MY!89MXtXhq z7HKG}Pt{d7Am^r`NJyi@fQ(K<5!L8)1m~uq*BSIKAom$mdFFJY?lX|SWRL+vCp*n% z5RhG|_WX7yq^G1IHwbbz zq{RkNzH}oI@ud+!E;HzWN#n0{n%zuvAUxTf38b8;-1oPpTu~M<$Sni+e!#1J18S2^ zrEx1MVr3iP4^ynzyoJWp&)_(yU@4v2`BF&^A3xSh2O7&y#J5TJ?m_F`&_g44pK|X;z0LuQPNqwuqX^o|=0eG%lvr$*>X= zxH`=>d(<5R@pvC{P7&#o?lef|`BGcqd3Pzq_Zvu7M#|PZ?pla98;E1La&m=#@4g3Y zZz>*;+DOt_uKOn#@#%hMg%F&i( z&&6@rl`}wK8OE9eYLf;J3E*=9^-6JVqqs@}`DnO5>!6hNK zkHA|1y_N<~4dC5?_NBqs1#lRHe>M)g+_M7sL_kf`;2Q$?EI^4gSbcp}vNjaZrD^c3 zf%bGjbJO740{Ct~_oujWWwf^(;D| z_NGroU8bG7z)vEFoh4>*ein|{=?c7miX9;aCvEnR!0cqu%Tvq-Y?VqonIezz*uIj= z1E8-lsmO$-IF*GXx!n%@J!4ils?_S8dSd5C;73yIsF7b0YX-)SpM#>~P(`OPMQkT? zVB;WXT|p`$QR-3UOgJY6#zp`ipJGf`$|-@J8-U-QV#m%|+rZcwkT#?kvxxfixh+n65J}&iV=O4J3aP zc-BO7k>}nF`BGv`Og+SChn3qUqAi2e8lX@6+Diny&k{S!J#;^+fadXD)6p`BijuXI2QvSVK}niP=RwT@EZ(AHXJH&Rsw&- zaAe1!0%tSuw+u(N94c`30RPQ!WY3`jrwUfHHF2o2%cesGP8;Bz4M%nzDscJ%A7VJN z?NEU;75Hq!k$r~>oaMkDG#uG@sKD6({58XooremX-N1h~9J$4=z=_2W=wmwRl* zSrYh9OW++0$MPSGb3X8ahGY4U#VG|o-Eb`bu{d`Czt36y|5%*Gz*iWKT%t$MPSG^BM5(49D^xi{sA6{ud5acFTV(P9xy04af2yi&F@^ui;q!b5GzuR{$?F z9Ls+!&Mm-~8II*Y7H2K+^@d~lkHz^2_}7MG`H#gpOdR*As_d5kSez4pw=f*be=JUS z;JpmT@*j&c26&0#SpH*i%7Nc*IF|odoHf8-FdWN&EY5qtcNvc5KNjcTz{BN!*)9LE zIQ4)xF&xW(EKULNV#Bfg$Ks3xKEZG-|FJkp;EN2$@}I{7|9KSnGlpaNkHy&m{8PiR z{Kw+_4&1rPFT3SG7N-{Qe8aK)$Ksp;JYhJN|5%)%z{eVnrX4%II#|FJk7fp;?;%YQ7+AmF17$MPSG zGXwaIhGY4U#kn8&YQwSo$Kt#K{9VJb{O9?=e|`Xd$Z#zGu{c#1VEuzbmEH0mi*qXQ zu7+dzkHxtd_z1(X{Kw*43;YJdvHZv4tOWju;aL7-aW(^g%Wy3Ju{e8x|7JLr|5%(V zw_yE)LzUg~AB)olcxS`0{Kw+-13tuXEdQ}MQ-RMm9Ls+!&T`-n8jj^Z7H0$S*9^z< zAB(da_|Jx8`H#hkVK1=;4pnx`f3}MM$lALl@V4YwyC-i1a513XY4E!Ox5jwmUJhuY zfz{3GrvkfkA->T-YTdP4Ai0OWAJD@FR+>L5&Gis(G0-ri<1}j`_nQ3wJNHXKo%%XW zAy%1ohEE>-EXNs?H~)g?>r?csYI5Ste=a$BE!y!OGK=9Br!Av} z>JmQP-46A)Xkt|$?dfgeOes0UWi;VsW;`&Ozp>(WDG}to#9O~ageM;qoObmiFEQFS$O|UVu z6E8FI7PCyS{)Z?_4i!%R#r+H$>~Zd$j-ntp+^Ra?61)o!7^*VhsDC?cb=;*7An8lV zX?6TG=tRQh_vfiU?)yN0YlAq^UNNV$3W{7Twdrf4e>xGMz@vDkakl4CDLY% zPd?X>&2GH>$XQu!bCIz+`Dn!YLx)XvPPx)Ic%#o#DYa&eO12&+AkPpuji?6+c?6rC zERMyjzu_y#WW{pX1UzFq<#v;Y9}FzctF${B?aFuf1y|Z5%O*IdtToz=eOQ&PS)kb6 zN2JXL2)Dz=t0%k-F~Ecjd%)UpmFnb~4TO!~>HoKu){iw44mTJc9#*KX84!$KSVTtEW=UFzoNh5Pa&T#C{*^ZWU`uH#<0(y zIu9HfE86W2Z9y3SWrFkN%)>4Ohim~98i~o>het`p?q6O*Y5^q8ads_ z{Bi6XH;P|E88;kfcigDc+Bu$xbpfN};y zc_Pn_a!$;Sa?;F>j)Bi)NBKCTD9T|XJF3ddhalNeo{KcfIlCx2SY?mef*0>nb7*D|N#ASk1=xMcCBm7{f zs%52doXhs&_d{)I9r;($&(fs(L-hJecY`|x0d?YnU;a%t_8eVhB43c&F4yDW#t)DN zlc4&C&~|M@r17Jqc7oMBj&A%$X^i8UoV3CK`S<*BzJmIf+%B-;v>PS=rhF42`R7rY z^_d~9dWon$mI0q6`iDaN@~J$FRz;A)NI7~7VT#m_BA2=RFsgd2EEU@BK2~U@6%b0o z?=M4CAy2aqjZ+Y{K34Ga>_pu&z+GU$Y4@76;s77lg&8A-y_!iS^Z!2GIkHmgRDd60m*m@W zE7Z&5{h`<~6)Dbbe;oMEB@oLf+WvUHfkTID^8FBcx@upGs*_1>aHkr48?59TK18j- zJq+sby?ob)8hjh9qKD_AFHC?eJIc3a^jrZE-`OFZjnXlQh?F0t6=`)f;?*C=jEM`> z@8tcAaEvFY?1CX_&-yKtLfjWLAGFxx8Kanix=B|-dzrfmbcF7wZ?=BnnAW>>14L-ePw2(hPIeL{+? zNXLo3cdxB)+y6nbeIjwGE$Pq9gwEfIQh+lJ&JYUF4VQROiv1z#@x#5g?HXd6-|+zFkbH?;eWKGM1}c*-R$TikY`8v@!z5-ziOKu-BFj} zrS*8;EazVYr93;zFeXN1C0nM}>?mI`S`_6gU$ga@FWD@L@-whSQHHal8zju-Y>^I+ zK{z|gZ(?Rgy;CUXCquKNeEDKgl%Jn0it-ziMbT~@d8QnWfpB(|Z)L>4s^1SM;l5OM zbXy+^l$fuh%$7AlwyX)VqkLUpQIxN5%+_bV3=eNY>clg{+0hFm{BJp{Fu!Dl|E-qu z?VZWw=cBTtGfrgq+qe;HrtMn&i)#IDLt|eTzHD3>=gLG+dg~nHh zdBY4=5NH&TrV^?94{~9YuM_iT8TNSr`#dpP#*%rrfbbj+DJBDw?lB#f0>ppK9MgeZ zOXkGEai-yLj=h5A@OD8UU*x)um8gVH>7QXhhX74?2M?Z%H=enhMnR|StOk&0J%}j= zha}2?6aNTqS{BL!cp~DRe2@WJ7>D2(g92P9yhPWKQp}nZH5ajU+P9!M_PDo5OLyskDHvz_{LnX8-(ZK zkOD~>Wqb{;HxRN>zMNTgO8Is;Z#iVg(|XD);&dAA1=f)c-aX*j3GQzM18X5%=No1K zZ%t;2`5JofZN&HcAOqqC-VDCMUi`+JaZptFR{l750ZRGOb+64sXlDO)>(CjBmvmAl z>UBQgTh>Lr&IhMKif{e->ScTrw^s;Z9~@E%3^;MVF}#egPWMJ3eytBOU>a?vF!_e_ zc$oCR&IWxkgm?RN2AudJcy<{-!{I%F_+}fl{Ad9h&3gynH$K4xlpj4nGknRb_ir$2 zJ*@M~fUYLK-BnjpeMp@+-}xHnv#CMLi65IT}_nfYT`Rgbu|qVb-o!@)XVsu zOK$>%SK*LMGvLJe3e7UUnA9sr{5~IKz*N&eg~|7a#`#XnGJaOTdjY~7IK)=a(sS6- zPAT8z@9hVyGWoF%PH^gc%(hewSeAvL7kLCrQXFZ9t_VJQP{uE%G80sKGiZ0AbT7DMsjlLQKPJ9$?uBr_1eZ=?J zpjD}SWwmz@VD{s>$YvN&wa(9>dNlzy_X#GT%6%6bm2aK)&IIEkpA`%uSI8@(`BG`8 zEUzJOfUgpJ^%OmrT6y8sG3|3_9^S9Ja1+3FvslPrxDBWx$C) zPH<=gfb9@J(+6d>RLU8T7(410!HPVYbVWGP9 zNwk7aDL)|TonbRod603%TNJ2BFh;VTO8D6euNUHjaY%VM-p3eo;{4`C*??AHOhWv6 zpTT9G)Ku9bhP;tuQ?9e%&*TNy$r#m`jA9sZOB*@zMat;Sh*^TI=UKhv;eL1_R zQ^t?`dKW@A)R#+tD1GD%$ghM^NG#*a^u7I%ResVcB8=1Hf|uu) z@jJa>_W7>c>9-P@ePcL(VO6BKDz54-61<^rFrHZ$dHXHff8>6G%@r{32oX;l2Is4mpilCPsj{1Q%gwcGIHsNN}0+tqheTB!N!xYVd~rjq*|&CV7pZa4pi>IkFI*Z{ReIN(yG$7f@7&Y z*L6zy4OZ{$XELR3762;u`V*{~BCfPTjArzF%n!AC_h&RKrQ`mUwp7h(!fMs+NDVs@ zcWF+W=XYGaA2XWQRjt0)di01>#t%Mtf5Ar9v${viy;#{F`H4^*t+SW4Mv_^Dj)s*L((t)z0Vzm%IP;>t7?qZze$D&_Zdy^k`QmHcr_TwAIp z$~scrj?}OtahK+_d46u!YxqK@QY%CHv${u*IAz^>z(#A>=!8SuPqul=&aDr50y+KV zWYhO}4Ws~=7 zQPEDd0km5oIFM4@TrdY^|3UlmK-&tArIh`N-z)aEXVjPe)D(%R-0RO3XNtH|Q8AiP zdoHE?sIm8N+pH8IYm&*03OZ$rJAj$H4*$u3!<1YcjS`hy=+Q70b>uOL#I_-|Dc7sb z@YUf>u!Gb)-Vfh=g*Hb(`{w^-bCGRRMPiteSS@9IRN*a$_7gZHGkUc+)Co8c zh<5r)OXSXERWAXV;%;!k zciiWlm_0N2wFvib^f}xgj$21mbxwTTE4}kuGjtJ+)(8<}d=v0(TF{ z>gFj@D9?5s-FT4;+)GY0*hO~aV)y5|2I(&mWI!Gid~*h}Iv$qOrn+$35Wfhla*`h5 z%;}Glr-t|`a1UY zWMzVDWhE_QXJwMBvXYb+M!VQ#QGXA+>gq1LW4rO3lR01U?-oJl0=dy0kk@h=EDi(I;q{pX&t*u4d^g)W_ee@oo^(m0`8yn0A`vAa!( z&ujQL@d|gK`o-%V?q0~3x(7A7)D5Ga__x%pszXa$HlzI)xzL@v2_3>+2q0^}KzF)x z5pi#G*;2mwrS3|tx+JC0)ChHo41kfvQet&>mbu(4v;WYFx48o$)X6M%&sU7)F89Lx zzvFZua!xsx)GLk})=xv9p#h3+Dwkwhryf{%EvbV2V*`Nhq0 z_b)yY(|`UT5*g}_*-R@r4=H4^+X$hBZfzaE%iWYgtGWVXXB)+P_h3-oxwC4X}@6F@uD69YRnR}Cxwirq)t1YBZ5GY-e?xhsc zHf_^2Bxz|`yxiQ}G#9cp_ofR=tE_^6Eh(T-T2y2c6clCAkKhW53%DRE?ud#Ti;5pb z{hf23bDlZ#%uJG2U!ULi59ih9&b;S5+j-7&p7We%8GCmJ-|h9$f|W}m8GVG`@0Tp` z277mwy<5q5dwn#Z<+2f^Ac7+;@j>>kjPC+1Cqef3XwAzd=;*$F{{_bT{b%jnm-%jw zk0T1XY^Zbl{oR)Kz4q=>zT4~LAV)3oBYx5EKV$E{z;|&`{+8bbviT(=n`fl9NdokHQ%GO)i%~|qLIOeo2N8~4A>p79g9yg%kYHelL4{(s zuZ4nw3?>k!Jb@7G_O%dD6oUzXM3GqO&0rINY2eoVULU7t<>Ic$E58)vZ4$re_iOFl zOupOWzkx1nzAE`Q_0fJGXMFMM_m8l5m3()*Z{C6J2$G1`-jI46$*)sar-!NKKnTg7~@oDb#PnAyp4oicF&##5| zlBuajb|Cu1O}GCV2&WR9V1 z=MF9^)M`-F1wjG|T_-5WZ$R56C}cB0FBf!^MsE=`#FdXTN*PvheAVLb3rWP!7^iXt zNxmVGhpPS{Xa^{NWjpT75T;tkOKy!tcC9!Oa1@O~Dsf_;yWwsf8cV)VDC~ zmhRbk9&pP1%9i?7oF|RwN<wNjlUOm*_(`VpoI@e!+S z0an{;X_1HUjlcWHLA9-xY71lvx2#ebOs|=K-EW4+GyJLWw~_v?L$}A(K7NhKKRX)z zso%CzadtF%+~hih=(qe8%#&0zM0FMXC*K!3!M0*@%7=Kpa_6SZgIV5`dasWG!S8p- zY2eiB`xyE*o&&`3fR^?6zl3<%&Eh;@isEJod>i;xCm;M+<}wFm0IrQCN? zTk+e`OM;g%o{j@b_GMjg1i#t5$@4qVy>}7P`JHFl+b-a?cbAWB)tBG#zVG3TgA{-$<;v3ntd{eGvtLpLj45)hrf`bxdOtlvN0k{@C3 z(C3Sn80B;L`8NNXDvARQk(YX)?ELRy=6}yG`~9Eu-5&p2A7?7~kpROs_4}_d-tYg? zQrzU@LIHiH9xVG4MUATi@ap%s@ZBzdj!O*w4P0$t=+3rx4SW}LFX-cV@w-NVse23* z^Lxn&x7$a*y}nYP0$zR57Vu%dyV1WF?)v@P_<6UF(*^n(jf27SEqR8>oB7!=c$bg! z6#7Ch!O1qvcnWhUKkxE!jznLhVG#H`#%}a~0(anM;pg2xPPyod27q^4@>_}gdP|P; zL;5Pi!QV-id>oOF;%5<%**5sKEUXem84mm&W$;G-KDg`m_l6|;7XL|p4zw4K^lj(5 zP2vlF@AA=6uP?vzIcQ4#{?ShuwBH}icaqOZ{EQ9p5_@l`{o>WnW9auVzT3w|srpLY z4rRersd#~x@;-AXe^a;L=)W7V8~xqzx8L8%@AvqPijs#OUh1Pa`nUx6M!!VV1*Qpj zfMZNjv0xVCbweo2;|&OhMlSun&i39=wuLH`^*y1i2P8wu{#Z_S-?JYyKRoxK0GU?( z2Mjor`G?2WTow>0bNT%W4I=#WJ7M%IZ$dF0SLS63H)j&2M@~oq#QgOCWz$VHF=+ugVE5- zshWZugvS?X=c`QN@ZvNH0t^jQE4~4H1HYT-Z)P!quhg46fA`9t!)j-sz_;S0kZ0*# zXJ6o!`Hk>9?C`-}o_m zHQpu388vc`zX2R6S8!z81Bt*2U-*LI7L3rg84m!o-hc#;^60Z9KfQ!Vg!T+GlmP2Y zg}^gDK43%qT0)qhXCU)~*zt_nuUXnxgw_N)!>>`Kcr3`jm=ydmP{GY*J57je;2`l% zS3&TokQ0Bz!a%MRbksn|Gs0`&=BnvjDo;!SH!mpafqD{3c5{4{1ry2W>p+Nvp6y?+?>mH zBGa@~p;#aGlduxd5{fdtSl){$8R@sf4aH&<=q@1-iBVLTZxlMN3L=jR@>5J!w)3wn zYeYYgApgY%Veyo(EX+aeRQ^<2G(@hLIDv6+nJILxpxZUtAShH%&|Fa-i}J<@kt>gQ zjLvldi3*HI=sYZMtnN0g5i=SjgR=U(P+AXz%JU!OWk@QA{Y=UY98%O{8AmT}z@=%7 zI?`G%#LyE2#My+XwHgU10w@kFVEK=EmQB=&$Us^E&C5xVyVfy2ESyo@^_Gp3k98KlQJd z>@akvgybIW2II50KK*|4{K~~9X?J=`wo;R2~4^9SBj*14I6N{j~76d_=-3W+zy z(BKe6V%X>qKnwxvFa}CLkXlt4(;)-*Nbpd~mqXk59={>4Eku$X25wq#r@?J=ST6n{ zaZoBruKlquN^^LC{oNsvUcj$Ghd~NSkz{QokHpOnTqTi^`bvuA4x!>&3F)7&%F6-s z@hhQHu}bl`7Jn*)r=d+j3Bl)&1q(FS5sagyAE4Ei zIy^(Ll=1Y=XY>p~#=@Z)f=vOeeg4-n92VL;7Vu2`K$Zk?$KRAhe@f+R(D1f)PQ1ga=V0%Mr#5bT2@!{h9(=HSxO zn$xfQjga6OCd-ZfOeJq03#FB$C%$2$6lD_<+CNDo18RyfzflbV@L8iXd)AlhQlOBhY>+@Z(4yDWVBcBj@sDxpaQW~1$> zu>ZQ+|2S4V?1(hiTlv@DUH%8#Q9UHp9z=pZMH2bf{WY*E_u)}c+hZWaN$`Iw#(_KQ z%|hIYKcwlbt*ia7VN#EB3f@(G-Dv32x6 zPbB0eF}C4p$si47}%94#+qEWJGy}36*#5}Uzyz(SWvF~}z%J~r3%}S52vf@1GtjL_~z5eZx7rE}E z@&IpkUjuO;{x>-2o)Fr02t?*Rtml7*o5}rZI(YT_Z?U0LdZ^D^9=U;pR{*(^PNQT3_k~w&69e~)D%pdL4!Dv zE9(kVJ!^fGF0QL}^nf84SnuD?mCnFf7P!gBR-rFgzQ6KMxO_hia%7k9{{^UE`92E1 z-z0fH7%1?%&A$uUfLsUg4J_e53L?7E$5W=vUswRDm+%i4%A{rdH~A;p?!nNOuk$xk zq>b>R->;L`H~DxJfxcj||I0uL>(KedjsCH4x5t0+69L)be2a_y@jL^(U~h#D@pr(2 z8j;2R=)-gy!dno63)cFd`)7<~=nX-F4&D%M^Ov)HV^WfNSo43|8<^zH{IcJ_#@=0G z?|S%dua7&u;SvGP+`q&xV55S)dxq}<;gukJ zeBAXem!LSCf42>No4vb%@Amk(^Ik3+3TE}&E$!L%ZWZ6{^Wn7tce zgW<^na@k-w%m1X+AdlI*`}rh zqIM;KnQB5CS6w%SOb#T9#Ja~01Fboy?)Un5z?57g z_=cALxA6;D7iI6d`EHLtRRt^OV7T-j&#c0$-*2>cOZYCB#+If3=IFX3PXOa*A{ZPC z;Qv+(jrIvzPqal5QSXqK!0x)*|LytE)qEaF@OskxfO+$wH|=2H^HUk+!NKQeB|MwK z!nF{R2Mb@sQx@{ppPL`&b6N!q$-O(5_CO1ySBe zoxtFhkOX_%^EZ+u6mJCujU25<8WM0tQ+ITikH!)Fu5so=e16pn#5G_3_9qx#TS@qPf|}bG!VtdqT1| znkjJw5Q^U5VkbQ$E~7!Q8=AUFQ`WkuGoPVIz^ijY^*iqHqTm26s;m!UnVf z{H{gb$hY8e32C!TY~(n6Nb$o_`b`x+yoKM4$A?OOI0hdM;)i4LVH7`1z=wnR;W&I4 z%@4=p!x(;eJ3hRXA5OrBL-^q&eBdQ)BPZg6&u>n~2g&Fpe2^kc(P5_QFx5ItjSe#n zAIetOLt;Nm`DV{gB|Ef7E_)WBzoQQFRZ{MqNDD< z>jU=w9=w0ZU%S-MKICWZ-N)?RWA<(=<_xZf{H6A8yS=-H?>^}tzURcpK%YCok9K(D@MUEN|6<=t zuf2zDFx;PHFtP^be&R$RJPtv;;m}#UMX#r!e8h&v6wGG_JpW+-xXLjj)0Ju((v@>Zo-(q242){V`02`#Bk|FP$6;@=?`DsLPnAse zPdma8&pVU6m%}Q3Meyx*#zF9KvKskQ0 z2OP)X48lioTsqG?*4A1%7Hk678n6=?eOwSgxOBXMrXOLd@$Er?(~dx1!bg{bnm-Mw zU_~b7gapN855N9q#lb+P3MOh;Qass$P!ItpX%P8fBA6V7VF{214I8K0ELrAM2ULMf z)L3vNf;moRnuRHNKtG*cSf&RrX6O(BJk!D>kq^O(St*b(WZrB`QI2mV2Xib80fS(3 zK`<*&Fi)}d3K@ruj{&)`>eK)-Y=twmrjl5Xg#f47w;&3JXQziDm`H?=nb}%3RlUIS z6|#ldUkI(4Xi&Nq+4f1oRu{<5Y|7>0pfO{nmrUlcl7pplZPTeob>Vr-jt6zNd=#sW z6=Qs(E4nH%xs`|UBR;GOq!QM=`+hyO`G)b(z^6b&XP{50(dM2C4QJv57b^mt)@TE5si#01YI*fw9RBZSv!Y5~`4(1-ziiZ#fwVb9so7>(4Q6ZgXN&b90Y z?qb^SKy8Zo&P3BgoqQgoNEtS*KdYk+WUR#oR>JRjIY>?Ms#V8@wV4lM3*u^{ES94} z97h$hK@}PtAMG}+kt={A2v`VSV8dB4a^>Oj+Vjr0Npb7O!e4L**Lg=-NJ=_S0H%zE z(QX&qRNzf_kahTg*&$HH8-oZ%7JF?5%1y-E zFoR*j*1R-TxV0Q|VLHSM1F<(jFOqhK4g2C5)FoYl^vE{Ew!wpqcDv0OyfYEJ(`N$e zCEtZl7?z$c^)VY5Q`Jb5mCFPv7vyq(vWMlsgQYkx6!uCVAnz)~FnPk>4WZMO(~mGI zUoCNsJlG$7!0CtIynq_PHIgC7VhYTQ_xK~h=oozfdV~TN;hXCuL8iRkzxq-iXse;v z@Aa>_)b~<{?_2B^p$lyF=m8Ri*Mk@$JzFgxIT}L1b>n z0(z!^AK=2`ijF`AQjnJqF~hK&cUYF-(}(#9@9%_siIiYI@6x#=j@+%{#r)rc&n!xq z&b?HBrtVtDaP57BqD5iFNbi$Gp!)Ioetc$ez~_%j68!#SEFd9)cmM)bj~NT)e^BKB zbM$cu4gxS1JgA>g&!*3L2#_UXy1+F3BrHM0Tz?9ZKx-2<0~#vGi-#>H$RidpR3OUk z<$G&fsLX@a7JFUPeU1qj3pGRo#z2uwz`$t#0!Bkc;{G=Z*c6REl24Z;<&|8>OL-SZ zur%W=niyHwuULk_(nwo~CN!uxrM&7$ zEkvUkw22Kt1cy|&k^DmQi^y#>e}i&jXvK`AJ{(dXR`kZ!96tmm4Ju&}+o)lE-q`7H z8$xUmr5P>t|9c7gUZf_{Uh(2ViyNn*%RD;3$}P6@obon02zZjrM^r;N>h_3|4pG2E zjIK+2+x-2?eo`hPGUjF?ju-#Y$YQ&>q2ywS0sGvzph8M9*ro`E2}I;R<^3CkZW6v1 z;lJ-?Tq?9rnj^IyL+A#K?VKY0XN;J+5mk6S-n0qZ=o{1Fcgb(Ubg|Mrgp`MQu--4` zO2S=I-#d5zAU9M}f=T#)I((cx5Qn+x4vhhBsH9TuEAGY{(=iVXibk|Qavaz14i$^$ zU?`I1hDv*lah7ik7!7$&T*!tYgR#M5z-Yqf#-$Mhx*?OK#iff8f&C!)zfCQ^6Dhj+ zj_qu~mVmAJ5mE<;G2LSrmG*kJMEZsUyq)jdHf;9T$P4UB&WNBf(GHo=$ut-(jV^?7 zHAWJ3sZw5CPaW-SQ_vT=S6rv;(!><qt8oTC0jvlCi@SHy1HA5~KaFlHx`hgAVOu z`>Ke`F{x7-BB5KRIA+8RP2+ovsOoUzkM&jwyB8Tf6^sv55>d z#+XbGHGltBy23R1jZrK~S|nnUq`aNHicMmJ1zb>zaRzWCa1g}Y`Ci1HiHkoPY$&qj zh61BL>ZMG3y-`cw4H?s&7+jRV zB_8KuAK~@lyV-H?qESb>%oz0^14Sc>_&J6^66Y9-ne&Rq6k&B7A7gYwIqEsbZLf^(hyY35GJ%D1&`)s2$C{ryNRh=H=#I@aA{&p zrzpt~iZq02$H?FVOu!+`(GALpp%pWd`hFC1xL5p-PQ(q$*Z*{a5v>uU*s$Z>&!I)6 z;{`{;BZCgSe6Pi=3-UFLo;9eNiXT{Pa-##^-u}6w;#5nFDv5#IEDX)NA43(5DAFKe z?7e8Hhz~qU5|NIyR~m{z5@R^UW zXqcCB_J*LcZBU;7`}&svX zn*aC8x4>W63yNws%(=BKpevz^5$3)d}L(^S_uW#OXwDe$q{?AEqIZ(hPq$+p23 zuTr67GO`OeSS)p9%&zar?Kp_(%5TnOJ36{^S=a~;5X=-INw#A{cT2XIH$)tul*?fd zd|xQ#doe@?i85_{UAdwmmB8i+-WGD1VyU;#wZR~{_H1va)SHDG3Ia%MOw!%i+1&;A zAOMi-OlfORJ~4>N0FrQgP#_QX=zuWfy1Uv6m@F(L&_(1Tz-!1@U#=A7qpz#bRVWp* z9fb??t(=+7m}80&nbeWT+fcDASFn(6n}cweDGFFDwL)dfZJ`_Qy81fvy}%pG3Sc~C zGK`eEI}5o&X)9y~2uPIR7B-)Q)^+fF^|1Tk-G{gC zxUymcJU&}iQ7S7-fA8XX@NiFh9o?7U{-+h|mP4R>H^KYz^gsQIb?~%%+cF?{)vvg8 zeZ`l{%GZ>YopVaxdU!u7HPMGR8<#=IM}R1uu6+*R_otp)x_mug4y>O_1PRxug=9$+3S=wW!pYXFUW z3jQ2;Dg1d0{;9-22jQPl_~+m~@Mkps8M6cb47;r2y{TLMLo3FlKAsv=@jvi;3;eD; zcFt)x{dvOd({K9oS#w{i_+{C!bm>ya>r>uiP?V?riqY`!_^^5K@VTwarj#9!zI}4V zV-@FA91TVJ{^}PYYJb?eVVBYGef0Nr{Cg(;S&x76_~%solR9+_{+xn;=oQ^9FH0ei zo|~HE!xAdo0>Y&hsSTNzO>B03Uc>(4=c8I9RwVa zI@YgQTyfZ}E!)nWwEWcyOcr>%1o`M!l<=wI#bK$1V=A6VO*r`ecU6qX7sFCBkswu3 zMP&2nei{5tBb$9>a~ZO<9RCbMmZtGf*|5D|fggX^bMQActYS*~!b>X_UiOil1g>Kc zfA*#(j;feaG4}q7agfEI_F!u-HpHcYd;61}GPfZyG=c69>=`%M>x)6%7 z{#?L;FaM9^>^=Tr>rbf|zy3@kX4E=Tsbi^-SUYJfA5~F`Br#R7zM{TjQmXo}<@Z+{ zQdW`vz6WwVJl*pg-2b8cQn`fKGVZ?A5JDE;&oyd402xqKenKXxIue0zU8JUmgp3|>5OAu5(9 z$}6hUBQVZ~F1+tX0M2|aePD@1H-$D=S-IAC|C917Ccw)lw(S8O@}&RVip9_d|KKl! zryI6mdxU#XE9L3;ZL4@HJr~v5#}24yOMe3rLtSR{*N)|7Bhp{Icn8ouchNk!zZcY^ zxlgBefRciId8FMw>pum_iE?}D)OSs}x2$|gpxi1hg=jZoK^}qRsllOcTQ~PqOycip zRCSU>8{enWFCDOhGEgy@pywd?GmvU|`T-wb+*^hb-g)7?)JWifF8^16AtTd&*yg7` zT?Vf*XRT@~Ro7(J(g8YTgwz+Bvh{_!x&SReZwF5+GsVr>o(%SBb&X9m8E;9x)R--S z9nb+?(Izj~krHwK+=XJ%L5wD%Jd=_GIg80?jB>URkh|j@}+#$+2@9%Y=tOW>*{9q<|#lYq}bQh zSIoE8gy}fxndYpZx>a*BnGIcincS8w)wAHB>+aspY+xGJH?%cXXX;{d$I(dcAnP;M zfQee1Q)p`|726AKr8;B;Gr(ja;3`_2^_*i!c4a2lo6nZ=U}bjqW;f*PIw?Sr7!RDi zAOnU^D=;AgMypr5I8)cym}#m%tIo@`6*}@=-AHaztF9)lXL@?Ow``rZAzy-kt5!E> znj7nvEU9Y@vxB)jv$rL`q0og%oHZCr3XwXh>#PSBb$DzWRke2awSbkGn5ovaKwiZ6 z%Wbab6p9=iGSSst%H+G-yh4$q>dkM;_kxu!R<_qzw`9$V+D72PqD<||h86YAYZldI z8dldgHLYIdl{z!Ud=7$>)dV)J7|(ggBb&_g3SFi7;XH&mH@i?Q_GBSZ$WPnmLMxR= z$)^=K%Q;tiFoh~g@1&Efz)G7t*N8vj3|O0iX>t9k zND>ByG$@^T4lb!()70ca1~Wat!k$da)(mhVX9{mCYeu2i+r1eX)0@p@S_>O+uxf@y zIA8$fu(+?IV=>BRwlnX63~tU5tDB0mb6JQFh65;T^)Lh@#WT;Aqb=J}%$s@{q-n;; zVJlTuPj@j>!sJYooL%2ls#ydUeqBUx!93oQ>27N)=Al`wShBjYzIo}&%+mVR7`mxw zl}XOawqDtafvG0v*e>XGej~qz@k>XCmsy+b=!42Aws-fITKYg|HuqG6T3{815i71u z3yqBHb9L2ITk|Y(`MQRjQ8RAdXZLhNy`xfAS{H|;Cf75JcGLR302jVp-c+0p1ESVC z6Z3MFl{noRQ-RY_Gm>Pi&TNLkQ9hIJY877xdrYQSUjQTtDP|h;J*Y!B^k!R-Sy?D3 zc2NNJ=G$`JJzGuQ+;WQU-kd9TPj*&GHuUxZOCV`U9FjHYpd6W%C)__NUbEu0C#GEm@ZkddO_`qOs3e^lBv&FzITI$ z0?i6um);HVKcA&66sxCYnqXwwvo(XNpa=ri1c1q2b+u6sv!;5f)K%gc=u?fW;PjVk1rK<{iqhv=xNXAF34~l1&RriLiGpi>Y_#% z@LWu$84#LUNhS-10w|mYV5@6IaXd4~d6NbABB@zwEKZx2Xss=rWc7wx8f$_fHrE0* zSIkpT9BFTDz1>}CrGeQ377xfJb+6ur-tN90G+r{`)4D)Rm~N=+MR{=hb#KMGg(d-i z=Yz`#j7RJt$cT0d$O%;^C@m94jPp2?5b9$Zhyw61uCIt?MD z2aJ&>3QNNUlmYA^3tQ^WA0#arI}9LjpaO_3Qbg&cxtD{N0|Xu{apL&^;i;D$xb?wU zXtwQ_vFSNIvy3*Fd1$rZC}$9^P@^3nV_OCZPyHrZLDs@me2VYFq)k{u2M%S05hQwF z!9rlg2i->|TQiR=J(6A{!zay0GT>(YYNM3V764NeT(8);dr-u?a?qQ@Z?T8$u3-2O zl0VQ$#?pp1CCUlQI%p-#YBdduEVqU>JD{O1g=8q6osi%PXrg%>qnVVMwGpKa?Y7k2 z2ZaR1ZAL(mF}P@>q{f;tvoR>qsz8pd*IG9VI(jeyigk^x38SSotLhi8Zd{4p=H6^q z(RjYiu+h|-jJ7f`vyumAwK1gPSuhO;1Y`vU`i-Rl8gM80(o4oOkDO^Lf_>7{0pp56 z&753Qu@22S(B90iA{u+#5;kov=CWPX{Ee|c4Tj(D$XjtKrsqR<$1Jc@iqN&@N}291 zl2Ys~OfRMT8Ak+`LUj*Z4Q;9#+Q8hPGGkvIYbBroJrfECbR2Vpmo?cEdI!MdB^v|V z!j`sPqb`cj$>ne^Bi~hoX$UuKaYp3w7=s3?3kUOqwijgFRA3x%%#L=NrWt!h1_D@X zo!-n2V|9U)Z9t{f+5y%Oib2FA4|)d(i1l2+-hF`Xf`(7j)x?V>y{EC~0Pm^08CXg{ zLnjq>fQU&jn~Fm;5k%CHH3LLSo!J2IsSytF{(Kzu&g3QHTG*5O(u35Ew)#@`>*^ZvQ zIxqlo)hkwo^>MI|5{UAhJ*BOv{=Cf6Y;ghh|8{_Fs<791l+Z?iAzLfC2e4XQO%ie~ zQ~QQ~)*XZ5SQSR8I0{wnAFA?9LtW#-x>e1gwm2R7I3Bh`Y@kn#$EF4HLDrj5YQ>@Y zmZ`lDAi$=kuonV1Z!ZqkYjKrBrX8G-IN*zP&*DX+(EwN)B=D9qY(#4J4#Z&>3xI*u zhAbuLpZ4oPqbruOy#rX2J?O)VNKaRH*M<3BW92C28rKcQ^g`@XhQ!$>!@{U&9D65M zXKlBJoL6e^?kj?`qli9CuNQq%BypfaaOkK9o}fga{=GKv<&a{Em}4?_s)m5pM(@Oq zx76Kge%j2>1?GnoCHCatHGxWi1kil7^Cy@Qc1$+mJi*HB7HzOJpq;#hY!H)WxBiS4 zBzF##1I&RyU9r?=YS%QA4>Q3)uAUAfOz=vPT?->j>|xP$!>(~uu9+Gyw3LK$WW6vH z5DfMVOtJ(b)JjB|Y%ngB(J3nka;xz@PDw0Wy=rm&k~NKWiy)@nb}{hK@+~MeomeM> z57=d-Y%+Xu75&clI?y5kH&|~k4yU#L;OaL00M~bS;6(`-3KJIWVlnnfAe%K{WyU*W z>O1RZXV_m}$IThWJZeO58JlDR(D*pg)}(s_v4epbX*CqPq)4c7fz`y^!TO#D>xhis z-F6BgRZl^v6%Fv7y8eJgGYiF*?r!WL2F}Sq77flU6|6V)B&sZ{VLR=pAmDzrqZ#x_ z2<9PW9&wVrn}Tubp;VlPiZhh0vzpxRc2qV1e+Dvru%IQc2sX0ORjNdB8ETDmd38PL zLyERX)f#DDWq|w*;1QtuHy#03BdN&_Q_s_2;nZ|g3w5pFYz8bS%K&X7S2rV*0n@b3 z*379?Gm+NM!^&$=~{_qwexb~-m^%AuzRhOI57ZkVBJE9H#`4f=^1ZH{2v_13Rz zb;*#Ys$%*#9%aQ;mz@gZ8>%$uPO?Qb)_8F4`$rJ zbj0_8ps;Qm;&8-FeNzl(l4Uk_oiJ|5V;*pp#SA;GI7q#qnGW;PumaQM7+UE7W0D!g zjso}r3SO?S7p%J+OgL`sYym$IPnH@kL=0mCgK3Nz-Xy$;*-FxOU| zLLGpe^Fi8mW)hma_nlwA7#9%BUH@YotbPd2TrxX_AX^N;6yO2vBcJ944_W( zaK zkC=8{J#}Gkch5qYh06Epro9SEN)A?PY%G#B=s-(|(kLv;E$Y&s#m>PoFLA8SYlC$Q zW>F0;T+qBF!)sr;2TN)&66nI5v1biU?B{Tvx;NhfwQ9%8G=Yi}6PsbpPt@S%(Titv zYbb{^Nt4=n#AC|+wst#)?S}x!^7m{AkL!Ft<;s$RUbl*mHY^||scXU>Q zrob3sP|<-C`JmCs0s!Hi9UWrSb>_G$AugG22K;Px<{n}YgYDE)(T9v{9)MfWV~{Ns zkt-VCX_svsxbabA+49;!JQ^s>ziB<-yw*MyF?46sm?+y-!nI|n+|7cvW^hNtlM%kz zAU>^zui!i{;F|8O;t^Q|1DwV>k^!56kXDtUvz9>=7;=7U{{(^28Fr=L;|v~{fH&@Q zkA_n)R)g6@-6_NcYKXHfafpx879^gXMlPxE1-)c74C-o_#Jmt}1Y$bW`b<(;INJ_W z`ruw~zYWn1yP2r~@I8sjvqQYu#O=DGrIG`5_GAOmyYJK?@DqJIrnj-rfgoNpZtQ>UKIjoWK>I=4Mc7l)Iwo z!AZ9z$dVb~8;1?}a7x_L+$y&ntTGQmGD-az+6toLY!8%K(}fv=Nv0y~@CkEGIs&yu z49zmIJfWdwXzNa)E7O^W?N6Iv@)qZQ#Z8G30gI{Q3s}ozgFvW6ywT7mVGR6Bbuf|` zV0J-VBU+b|=h7@mQMOr&Srr4!+hY2FXa_xu*Pw#hqrpo;ZB$PU7MVg5fFdRfK1>G6 z{IcnkY?nZ_9-hS_DC`_2s1>%mZGe^6Fo%xAL1wDymxv(DAcDgF6@msBkdbXXBuzBf zOtlg{N;Eu$L=dTGZG*@8I%0;;CMCSsnlr~Fk*!Mx@4YUyipjsYv9H_s>Wl-4CvM2Kfoi}t@kFskJ)E|Sg_$Mv8j#!>nJiY% zQtkmZw#h{hS_ZC7cdHk`K*jkW(}SteI(PTe>?(|a-{H|Fd*H;sQ3s03RM`-njby8# z-ZWl7VipMZ5O?WN=t0*4ps@pD1cgQo+tX1eqr6UW-I>uHZ&wP6T9Yk;&1y$^i3$%} zc@Y;Yn#Jg3cZze2xM7Vnhp*Ps!S9!cDcKwvDkqH7R_vsp2qDF6@=4Z;U7Ui=$(hU} zH&&qy#%*To;THH}p!OZkUE?^VEB;GjSESb>_pO}_ucL`@(?DWu z8?&+mS0j+dk`X3La?k;0VB(?0!<7<98A)@ff^4=oM0O6cW+d~7odH2DgrujMR_B46 z)$AkbG0P#8ZsVx*h9uWl;Z#IiSC*jiX(>E_INhpydweWr6S_iLA0$nmgQ9g*p^W0{8({GHcSY$fo(Y%+ z!)ZHINNSmSAFMJh<-C=vVJlZX?hjquT-TUcT;JH#ypJOXoHvp^M|u>w|7-Zr!fiKM z4w^{Vhk(u7%XHx(KcR+6$h>L9Ng? zPElSv1EzRuK3Bk9(zNwRI{X!@YZqmj*01!ItXfmGaN@)&I{&AtW@`0}sWWS)Rh`fX z%S@MMO9r1bZO(~RlR8U%UHMZta3pcI&g&CC|aD*oKd1ug?S;$0S|Do2xR!V&XHIJqukKouk zUsSiYeqmj>ve_KkH~S0*8lbDlzq)WuQ}gPTxWBScgcWUM4ZuV_ryummot_m{q$g>sQq_*3|~guoIq^1r(QUR${)&YD2rIZ!o0@#(>?nB+hVL z?7;rIVC+h3)CZhEf~auhMCV5scDdOj699I3gO!7ep0hdf|Ds9T8F-WImYPne6>=zv z+)olQX4huO`9(8Vu$>Yd{@sv$a{>ir!&b>`S;}k7mIM=H4oe^{1S#_Dn(-?DGvgOT z&ZCX&(d`Fzasp-`f_VwlVbbuW;)b?a+U&l>&C=WgsJmKGzW@sg<(vlT;1n-U?3&>Z zH4xyW?m*PCtC+mt@^#=5Y>07=PDt*b+CrnhHk{x98*7o?#G_;hbRv1oW0but4>JQu zXDCnod)8S^U{}K$-DVfl;sC^+1QS2@1^;#*F2V6+gaNa@owz1RSCM$J5@vE*VU3k+ zJ)`Y#aBQ8~wG`njtR1i}5;@!sCxe{+iW6jAXLJi~I5(RsKniKkq0tGT9dQA-ssEVq zF7;^bA}_U#jhO|@S1rn{tZ!Ob+q`h8*OSQ=VZJ|~%Y&v3MMELMpx5(Is1{psA2k|) zaM%DOtA?W7(dwZn5GbJ;qM;J>!a*C=UU-lsSrCGP6w(96$Eq^LEiA!F5F`+?1C&<~ z{6pP+B@f)J#{Z*=6XVf<`BrxeY+DcRs)t1%9`qwnS-`pwpF;^#(YJc&*a`Mc^RSoP zdSd@>u(9Hr{~UyXiAt2)V5}0^S45GY@7cZfNG%PTXBG<8!3w(w;5nGEsKdbl0%FqcFc4h;D{pA zHP|kLt0R{$7=M7O{5V;Tan;E-L=!!At>Co?<%7IH;b~KX!qcV%g&R6Sc)So9PtiET z6Q)EBsz!~Hg6+$u;=mN(oB3XGD@^;5mbToW7{W7I1fkDWZ3RV}g4fj8elD!jpz6Yr z4%Q;V+=;fBFsq{Pfp7I);21$qmD#DFau6kNgGoU+nI^Qc5ZSA$-|_0?RI@j$TL(;F zfO%_fq`adMwSTB$qnQmn-c+;hI(c+EgvTk^`-Uqv8tGsaLT)@;htcrVtRQK2<57n% zcHF6_4y04iki(fC(YKHYO*;}_g1L{@O(Ay^8t|S1~29_lsgSur*fOxWq0KkyTdQ7-%=N?D+I>97IP->4p$uBBfQ3VTkb& z;s6w7L3M6nwYN#~6Ra$jv&=}znzkJhCrXD}SD5593Xpz%T~0iAVfvL6#| zM-N8wcDt<@9N++j%5GY-aA6%BFeV*47-765F~OdYy`clCkk*h1-HH;8=PMxtBU3tJ z)Hu8OfK;id81n>A=#a@2bhqL>2$UI?qw)z=`*LU-In-j;BMiI%g;pZ~$z~j7Qe}x| zIN?MpZD5p;^TfJsYwC+IqFC4s8!W(mT0nb>&8djdvj2Gtb&%plltu8kyNo42c_BT| z^3!OSS4C5HK(EnaCp7Qh)(?3j3(K(&=ft^CA4$3gfBYYn~rv?Y+jZncA`72ErLxz+qEPXo!#az zL)*Z~%K{ynoh+kP4BRr)@3=kCG$v>8Z9Mcifr3Ul(9;f$eOsJE6)Zk>9*__g(UV3L z`1C?N06eyV%b;@_W=9=%2WMGjaB7kRIm_`yOVK)c?nJdb@2eQFcg(yEM3FIZAw zwkE~$SaL?AT~O@iyc3zT>dn*e1xMdFbXFFsG(ecN=Yw{H)8=_<^kWr6j)dH0A_(O?DV65roLRe$9k6WybQ2OXs0-y-NUj9P()GzBd=Pf zL$);ASlRB7SfMClrUgBnR!$LXIaq*a)(L=`;1$ej5>!>36G0)=R~FEP0&@V6VcTT~ ztaVmY!Pze6A1Ml$thoT@-Y_Jb6bdU*jdI2@Ca)2bf{}JX`_s-msU=7eNJ}+!*c2rx7FDWfLZ`mqHI|$deWdW8`{iPaK*d0z9n|PUp7a$9snGKh;I82 z%pc->AoM%p9&m=9^Sxl36rQAI7GSxOr}POBB)MfVzWoXW3vvg(u6etbWI_#>&N!Den&kvTK(3=wT4Hfvd3?6;a(!FI0+=k9|a5Nn2 zA~U%#xJ?ve!>~;hEaiY<%SM>}0b`(<9Ixcq6BR5J! zZAgO#yBr2Vc=9P0)~s5Xh3%rTyWlSCG>!(Gyo;{Dh}dHxGYaQdNRdP&MAiYjrzhi< z2+M_u6R9TR1v_*QHYzKd2G>{IHXUfn_8=~kF?YkE?L)x?g#ND6!;=}j%z}D2K6pWW zO^`RJAxFW?2hH8HHE=y>>r(esaSc1JE@9;*E+&R)O&H2!ZY?8dQ0;im;eF60&EoZh z*zU=C5k``yV+Q$};T^jb>Q}+Sk5#p7e%PJ`!|-~R8a>wnrVH{r<{aC>3<+QjLSJz))0<6rI2&5uM4D8j(pg;7!J@jR4EWz*f(53>K@pgV zmO)xk%sK`d1XdN3yh;A&e~#KZaw6(!HvV#ig2it(&7s1)%fId z6pZc`TJjJw*#oDto0n`yPkYugdz8@=&UZstup5pkVyW7mBv9cCR<9!-(}n{w*lyIgN_M2+*DzH2fXwP(|WGhf1J|ccwidkB;C15|LWKjL6b@SX-4m4*}7_3S<1T0sKreKhwkQ zRXchDKh>b;$p-7nMT7GfWw0cn589!a(Fy7_1%Ua5?=H|c7qnA9xolMLk!EjKwSv$% zQ!%s*EwaeRM5E_}!ZuT=!!cuRFoHw&t1N%e#-t2sWZ_es<_OLNi`ph}%K~t&9$h2c z@JJhnvS+5E(05J_&N$Z?EK3M>+88Ip01@)3!%~%#SnKM+k`XlO(&(svIgrB9YppSQ z4X2*X2Lu*(_u_FJdKMIh05OLffQdKI6d@Rajmrm^lco0q%*oPwu@<2UlqAYWm12*@ zvKlH>9TZ!5t~>hP>d|O*QuqOmN2m8RUK=3&0i>D24^aE`p7iSg@sl5RfcNH5>!6*A zUZKNgL&q#?u_j4|k%}`7HlPC*BoP!N{+&;LGdO8Fyn-m`44{7uEg7tb^S0=`W#!Ut zgh{9d*mh4&3D0yY@j55a+bVyFe&I}gaiy$@ad$+?^jX5$6LO&C0PQ=*@?wsQ9}{(h ztuNd$B41&`7m7u3!_An^PDYzBBMD~{SK(q+SoU57hi7&}_z818Nc?fbS#V8|qe=yh zuRXhc#nc=o7nz?F>5I-!Dis{j-K0&0e}O5F8*6Yxs?PMFnz7tv^=Uu7<#51prWVu& z9MB3@8On!|TtjT&WzWzKVy#@j6O9G5a3c!=VHpqZU8SK6O(vW3pX@nOZouEM9;&+a>61kW|f0H zq`IfjIaiy=(A1hRP#E#PRGP;+Cd!;iRtD%PdR)r z#-WXq0A?5##5dHV;K<&=!)3S^B_~pXw7Z97Cy?2*YN(Heg>3eq6H%qn1u)gsYT_D3 zRpC(+F${R9g@&p#=x^DI3i=M$igTJ!n=_XTN(!ndp+tHSgE^HKiA7{kZJ;oVjRI0b zQ!F?(kP(8e{@~*}L2`CSFKP($!8sG0zo5x}{spvI0bG<_cl`iM_ya!f(?+eXs}k9aAW?B!`=(;2=2}%3itJWEEr0l4 zsihdB0nFXVW)aLiaV}`#Y+l;oZ!j`4-}rzjjujq!R~kP8px60od%>f9<2dz{S-oln z45x6=CPM@nt=SW=hv>~VPDq$MXhr73Nm_UWcBpcb*WQ3sgW=)Ku<)qbwS|Ixkao!p zcs1c53Yfluf@pgouAhool>tT{&fS6)P|Cu3aT!R_7e}De3_E*BVoLB0$y~li_I6p> zp_gItC5Xh=QiUW|e{(LLf?|l8pn)Qa`|?Ewx9Ju$EqSnc^02QfSj~i$U8EH*fsq!f zCP~j7`oX7aVV6G#Ql3y{~NFq=OmZ23p=h8rkBTS1YV&OFoKZ|w$K{B*H3{T;r13OIDqx8OGe!&Pv;>44RsQyhaGF!%qZYL5h zilY{U`?6-5#sNHTB$JkNXughv;~q!j6*qL!hmY0BnAz@_lx%EFTcXdM(|Lt6=4is4 zPDzH{LAE=CgThm~`UI!<~#Fh&D&C!9-K6;;VoSt~ZJKLK0NuQ=Q z4GpUsoAHZ2sM2ia#nlt*R#$2zbgYT}o&_im&^7j3VA5)I2Nn^RV5O`vMnRKDj{uU6 z6PLL_54;exSu^H5l5x`XJZ1`Ba$}X{ykcaAV_>3SsCW{DgJ8`|I;VjFP^+={q_P#;o7M`8tQuLmh`e6C3ssh)tAsds{r z)MLO5uI+R$}xHaMnfD>cA$giDFZSQ|I@o z?>1{SC>P`}qC=aY#Q32Q`rM?f&x6eYOBSyK_0M}Y(K-s&F!M?u2uKTSaPd{JnZaGr z0yAp#t*N0%ZH)Uxgx2y*Btn1Co|uEXX=r^Zd`zOP4VL+Vv9P!v-RPitJI!he-CRlT z!t({87HmI95DJ7%)7f0eS|s9irG7V@06~sjgE2aG4MLzAttX6m3Okr-4=>xQmL(Kx zhxw2IvLbk4mcIi%Yz1(pG!ryC4987s#$Oghg?S?LW-uiXQ;9s&=V*`t`UNU|AY3hW zkfaNTIdZHZgkYGmsf6DtvFjzFjmR8;Q8T!#Q*ZAUPb0J@oGQpbUqkg4@Q9@@=)`dw zWfwYL_IYk?AC};Ncbn8Aj^4nX9n5(fZIHCg0BDupzQMS|Y)yuQT#h0J-EIktU8NQ< z816^r{)lU|wk@Vtj``e&>FjMXp?uiJwvA0m82Fdk3y#}>t+=4SZYi`DaOWiWs^HkO zpmt!A1wVjlhVSu_?DImm@Byy27^Fs8jG0Iu0|l}3+-u3gg>$P;fCJc09Q^b(2>VtJ z?_b#H`CCT$Z#(dSiXFb^jRJfuzq_4(4~O5We19bV)>e+XEVZt(0&bVW{}qVA^$`f~ zEvOvz-qeE1!>>;-sI0oKtgiBeYs(i^PQ7wiZRPCC4p>y#kZK=MIUA7L$`gPBC?Ujx z%8Df;ZMy!24J#;D2i%I$zD@Gh01p!of$I|~&nv^5AiX+FZvm!PYtvg+`OdPmmx2@l zb5g7w3Bj>k2V%bAYUKQ1o2som{L1vA%BsuCmQ_CCr|0;URf{SQhhjrUO_Pp z&qw225mVpwl@RCX0pdhiZRa@Og!`cE#Lpm~T4o>cQ#%uij_qhg8vejVZE8{FsMS!b z)8Y9UPUkAPmvpX8fgrJLEvcNEY8;_N3pjZ?(C+5=?n8cpd|!|4={jsr*Oq|{Uy1GM zvSCXqPfwjaf~2}uwWH-Dy?GE!^7JI!OWN0AJlCRJUs<-O@`TGEo`%$}5tSzZ0upc9 zA>?5cgsGxHo_7kD0if6mY0JD<{}uN#?QubzmuauuLCj;?8q97n?tAWF>)85fxfS=M{RRlktkSHG}GVa#cRK`(`^fiMX4)Rbp z>T51NxUqQNX^gw#x`=UCg6bJ}(_O{*vGg1KX=2>uE5O$=ZsH5@cQ9_=2Y4&vT>(UQ z=QDnhgZD80UI*XA_-+TknDKiY{8Gk0>EQ2X{4oc=p7F;Wd>7-WSM+rYJydw#&>-C3 z&iIcV{7%My=HT}+{)U5pobdxxJ4EOa#t(Dw&oW-+;9q3?BnSU0>f6ch`$Mnd5(%w<}(cY&)GsRtC=tST@05Td{wp_RKO$9`OxIB|x z2k(vn+-(yWWH!@3fe&zztp~s7CeZgJ;F}WgZ3*}lfMY&;xM*ni;q@Tk<5OeJ1N;?@ z@b!dvex888mVl=roj5*>OTZT-;JF0+T?zON3HS#R@JABz{{YY<-==a`OSUcW>6;1h zd?x`%TMpyd!Cf=iyAaQ45Gll;VZ|yv)5(Cx@og#7zv9s666oK_^rN_9(e}mbt_1qW z6Yw7-;J;14%fRl5%m2s(d;;La=Mg4derE#ycmn=>0{%(@UJmjR zSKgx%@KX}-X26jTr&pTtquk)NJ%N5#0{&D2{<6e>u!$GP19%+*av7KZdcZM1Rb-TV z-kXNpyC8x7oeB8+6Yx(a;Lj%DuO{FlpgmANxdCx@y-AFp&iGZF|J8uUm3LzTz9j*_ zCIP<(@MDzyOk)s8`whS`pU-f9p5*+%Nk}VJFQ{Dsn}z#YGW8i))YCCJ*MoLt$%7dK9*X!q!mO8VXxOVQVOC4TY_tu+u2)GzvS-WR}8Cn~pv)cA~qd zYNtBlK*MhIsW;WS<+-9Ar zStc%1?UV`dKg)tAoWF%UwYFOCGfk!dMBlT(*D$Z7e5nI1YO$WKki*V?0!YOYB3M)% zc#tV|1z-luW8{OD%=g%dV>z=Fb3|wSo8s`9&;_^x8JL5c3k*@<52r$#6sEyzcYX!p zjsNP0m7nNm{+NsLXI0p6)dNm3n>eOrTZ*9qVPOKVY~(m4TQ9=cfL5<@1S!mt6v9GH zn6snLvA~)>IIA4bm{ODV)k9r#H_*0SQxrOV1ZMTQX6Pt-U6#0&FNt4zc0LKfkwNLF z<+t=i7-qR*riJmS1CmfD7TVECFOm-!hp3!=pq#dmpuv}DhU<^N@?o+Qe9jhD%mtj{ zQ_jsY$6zzG2@|uzTo-a^xuPZlB?~ez#P8{H!vy`=h$l_xw!@R}f&9sCYm@Kz@5*9D zg|re2%RqW5^e&`rh!IjYr`EWxO#!M0nqXy;q;Kg!ad^Q~%~aTEP1_A{lYyMgU#Ct| zh@O0;*GlnPeUM(*KA0o56m&2=%dxMMyP<_yTw9^9{(0U<*)9Nc(>oRZzxgk7O^0y` zUWnJif5G3a@C6EgTHy;7K7#E&j7Q_u3SXq??@;&>g?~)pOBMb<3HXl^@Cq15;DxWz z3n%3|nsLl0`i2CbsqkeAUyu;b21T#qxm@8oo;?Zi+^^_$JWnWG$AjZ0yxemAM$zkd z-c-1bXB;vBF8o;z|Ah}HDI9(Bg4ZZ~rNZYbe3il%D15cTmnmG+H!57ypQCV1-==U) z->q;>zggj${?-KiLke$D`F~L1nh&2*xK8&;h3j;`rEpFEBZX`FUnyMEzp8Le|2Kte z`js$V!wX;Qc9&7OZg*Q1j=olrhieqB!gV|+C|t)gm2tOybu0R2NJsc^zruC?A6K|e_xlRh>AtLR9nYHz*YO;B02PCaHOraxQZn!ccLO}|Oun*Jt*FM@Ii-@d8v1qy#v;pZv*O@-@vDH{Pqa3O!R zzCA?YI^FRK*Ys-`$M%bJRFcoD6}>Lk#}qxz$_f4dDEbzKKdtbb!hfOgR)xQ=;zwV; z#GmFVPb_a<;S&_zrtrxM*L<6qfX`3B7boCN3g4j8eNf?=Z{J}Y`Kfx>^RaGmZ;3fJkrl7NrmDS514O@Fw; zb^ASD;hKJO0zNwdKV9KE{^bhS@vlw5+Y|7f1pLAT{PG0+`UL#T3HUb@uFLg9h3j(t zJ^}x80)9XxR1{opeI1m5AC-V_RCp)EC++S^g?A}@hr+d<`G~@GKlMq4Yx?IEuIYcS za7`~uLr~A?apEBd0RR{Bp&tHA{wFDXnZoBV?#A;DMX%$zNZ~r3s}kb5PtogmzNl~= z&yN%0`Msjo@%%&KI-a9PK_THnJ}ig-!iSR--mUN&g|AfjT!pVv_yUEmR`@c7Yx-t| zYx;L6T+_EJT+{a|T+?5ua818Q;ktd@sqhAs|A!Q=`S7^Hb-G_wxK8(53fJ^6C|uLO zq;O6Dio!Mh-xRLtQ#_xC^{(l=6uwcFcZGw!y# ze<*q_=ZEmpE-aUp^YM(k@hn#KI-Z=ubv)e(@$6FcI-dI!uH*S~LOkD9^g5njDqP2N zz!)efTyFavt?+JmFYWqBg=@JzM&VjcPExp*lNyC<`gsc1^otd)=^GTT>CaNQrf*TW zroU3*y8T|S@CL<)-3r%yxJ%(W-H$6=r~8<~HT@SAuIay_a83Wb!ZrQR6|U)DR=B2L z$`jcr4@FhpyuwQg?^Af6!r!fMT=ORKbECpHEBrQvYkq!M;X42KD_qytrxm_M#s39` zYxep+E!|@@G5zm;Ag(;foaBuW%jD zSwMpq#-sf(j}dC{1#mC%|6Spl{=|fNig^mx`AKs;$j`AVeyk_F5XU^p#m&p&=xe}h zocXc%RDOQDgJU0tSB?3x^ir-l3dcAFH|uGG{G7*h*cad>`NXz?SCjd%_zr$XnZ!%z zdH6=Y2*Hnn8%Y<(hIk46-R9Bj<6ps_;AfNpyaa#VJbKsgui)I=yqyX^8tx_Cn-z}y ze}$hv=-?Ch`5uK=!M()ufWk4Jlll2!g^!1Oq5rJHk$xUOe@WrTz`f9aP2otth@Zc$ z@MGa#=zpMaq;KZupDBC-+zb7$6^``h@be!PejMBj{a+N0^d0>C4}~8O_d;LB?Lz9M z#B?JSjxsFtqZN+vU(WPLDEtIPFYA3J{%e{3?TY?HML${L82@gjpP}%R6uq=-iT@6! zmvz91PgL~FR6H2}Lri~$!cj(~yz3N>^q*n+jKU`=`Zk3ly~szW!Y3qGhw+m5aosas&pY^A`S~XbpAK}A&tEDW({14AR~&pS zKfj^y87iKCDjefEnV-usgK*)`O!zP99;k4nmwERw3ZJFuk5o9)FXH&eD}1)1KSAM0 zzk=zfC>;9~$7tab2)s|?WM;9o=I3$8BnW8+Do6B@1y&5y+;{tr3$ri=j|b@0~~8{l&e ze%M9>e8s_!V#WP}gP-&s14w@%e3-)gNpbxP{_sJDez=3bx7^?dJNQr7kQwLT8_`&X zOYAX;|C_Z27ria`c2v@EEp_7gz-0z+cJS+%&*wS#10xMR?rXqH;un0UgTHx=q5G(V z%T|WR9Q=TH8~QIf_{4(2zwhAx;Cgw{!G->>4!*k9#Pcr)7kb%$DdnncH}qB9t_A<% zF$NbsAo$x?7<{%vFY%w@;AtET!F8U4OFRV!mv}C9@IP=vxz52Qo|_z8;&}%uDYzv6 zKjn6DzJoXLbDx91%8KNj4*prjuXON7>r8rgICwkLf6l?@u>61D!CP=p1=mj;{QKt` z{7nb{1uNZjxp^<;{TeHJ5FZgWuC+@OLP~Q=gHjeWZj71x3XN~z6QJmAC5*JTyq_~EN}3|4*v1O48GpM@8eFj&B2BKN(cA2 zT(>&7=+C|9q=?u5|GGnEyvQ_@~*>INrg>vmUN-@UE6{PQe-XFK@gY;UwUcn7zy?G8ST`5^0sB%igcPi}MQKYX|;?;Q^Q5YvCg z!GFs6{DOmDf4qt32M#{D+TcHP@V8eP{9g{hlBr$^PhL{T}PUDE_U#jPcryr4t^^S4sLPqJC_;y4>))&;}1Fb zCyz7qpLXz#ICzEY1qa`T420_!4*o~3_i}!ZKR6EZd3KxaDm``>QpdmQ|1bSl8L*}+d_J-Nfdv#j@ScJLRNZx1;5gsV*a4?Flr zIX}-hxX^#k!QaYy^%Vyf`ZpYW1<7tb^J76;#YwZXSL_-($yZ*XwwFW&FqhaYX|Kj`2`US#k`6L49_CHxWk zKPJ$>l?VJT{rm(xmw?N9CpVtE9r|BSHu?XegWqzL!Jl^UA8a-FuN_?I|LEZ7vs@kc z786eLBlKe&{Ohd8raJhncbo9D9Q?Jn8ho{b3%#s6l5~G~x}ooL=zqJw;JY0BSG5Me z&%qb49{7ZVAIo;;(+)25-*WJ;u%3C@!SlzPbYFGwFPv%c;hc_?OXx>A_*Xj({Rs|! zBKHeZ9Q-aqt?}x5L?gBm9RAvviGe@Xm6BPjK+rMT1Xt z@K3BZ_(BJN`E-LXbMOzcowLEgg}%$dcd`Aj)4^Xo(Zv6dgWt;X`K*IiGM}G!@EsFP zJb!j@p?}lC-^b-Tg6$*Wr_fh9_|e>Np6cN5S!2>&- z$uj>t6X;70p6BPA9K4t7^)?5e$bLUr|0C%N{nHNp)6AbY9bD+sY+pz`E3PnnnBw3< zKhwcqY%=ucI=IlcI{1MsKRX;;=x=uLEvzp->)=BFB?mu`_4%s~F7$tO@Qv&rIQkG% z4&j5)AMfA`wi~)e2N(MF4t~)IhF;dyxba`>&@VpC&_Ckf693~4{vGx+{MNyR{xt`` z<0KRRQHPpe$5FLm(BBMpAFgP+fK;GGWs(%FXo zJ_j#vHTYK?T>Q+>IQX+~GxTpb_;G9x{L{hTVE^!8tS5v&SMfORC z;Lpx6^j~)Hhu&lGuRHjsE;6|IZ=}3J{}+e8nf+knjxga|`UwtxAJ4Zgc5sP*rGtNj z<)PcbuX~qCZ-bKf%Elad~SUTnIP!%aNH$C+Q@v&{D$;@~phH{QWzzHgF)%Y5G)2bcN2ItQ2e zzB3$L<~PrEaG9?xIQW?dneuE;z;92$pH9Gk<={0e|7rF|3g5(kINZUHWH~wB!Dak7 z$-!@6{kGh}#edl7;NQK_l=plG7y6A3{s#9iI~=@whKc864u0r#gForu;y?U`gUh;> zmmFN^fA8QU*gsp&<9^|%_zw?s@EIqW{7i6gp`YmBmz`$l7dp838<#owPDAdsIJo!^ z3l4r1+r#g2aPbGe+rckgXA-#6!NnhVzk`4OEJOb#2N!?c*BpEvkKbQ(aPc3$?BI2) zP5kL9^DF#+`E-7E@HITXd%J@R{bUEfX`zW{xr4v;8iO}F_<7u)ZglX;&4zxLgWt~M z?gt(GOWf~2;^1StO+3#yxX^#k!Dr7l^nY~lmwEj47YA=X-OyKZe{1>4^oKb3!K}|G zIk=2RraO3++sg_E7y2d#e=ql67dW{1>v|phNY3Yb9DEtq;|&ge!pWw*cRKii=NbGy z2fvx^fp0jt(0|v#Q#ljQUmaZhIsbIJ2ful-!9V2Szv6k5dmMaGm7#yq!LMO`{tX9j=kfTf z4qnCW>#q)e$dxAkLs^c5pIvMZk8|+ROAY;L4nBd~>0$?efb~G9gNwbi*}*SwF!5jN z;0I1I_>B%OcF_kMTjz;AYNv5P+8;9?g&>fn!TH062D!No56k%Rwy zy`lfRgNvP$IxftgquR{#kq$2O;~o6F>`y-3!T*=-=Zu5@k@e(e2NyeMn}Z+7{)d|! zT4yHZ4leXxa_|jo7yZb=#m;%r z!T0d|{+kXi^yw2!`ohn4)+29oaIuSyad7Ugy;B@q?4kt@{)@v*dTSkA?3{BP{5OW& z+veaxe}#j;pZoW_9bD|3k2?4-+3tVZ!G-==2mj`FlcCogTkMpVi|NlSsB{bGZc7@V}Bt(s5%^H>L`@W2=EGgO$m9!wKX;)gPly*r{ zTD&Vo5z?Zfs0b~7uQSj4z0aB3xAWicb-C1dUFZIKJRj$I&g;C+>%3;p6b`uzxQ~m@ zf#0m-%x-WW7hM5=xKF5m72L-~*TB1K|NH>l$3@HGS6mb7Z-D!_=mU72;UWJE+{Zcf5f(;U81`;%@7 zJ{IoZ$C(RnJ1{KgLipbq!I#1P`vXtGn+yy2m*6$E9yh^j>%9Nx@T^Ip&K~#)7X|+X z?)v%94Bz*9u~&wV(tf@sJUlurtqI)gu^rr>&vl0nE)gpAhx@p36#U8SLVi5F>geEe z;LhI)uU07JAA$RGv=#7&wLe)0uhcBm`8>f7CwRKH7tg=zoCUx4%22-@yp-N&c82fP z`;k%bK2t-T@$hk3!Ec3s6g8H*-3c$+I`}rY_XGZUNiSE|u_3=7`KRUv{{#NfxxtI- z{gdl>zflhE?X5c8`;82^_Zv;&-fy&qd%w{;!LNdQzp)TLN5`*A;ofgN3ip2F1^D33 zVSd)Z{rvqD?)}Ctxc3|T;NEW>fxCY3dRjlJFQrre*=xbQ-#8O~Sld-A_;d9`-JWo- z-;r?dPbR~?KbZyh{$xJf`-g?_3~iT>!<~Nye*KA|{|#{OPu_>$r1OD$;NA}$N$`_2 zPkvrFUq8XSz`Z{i3HSaa3qEU1Sg!eS?@t!O*Xg{?GjQ)uR>Mc@ecUm)_a{Xfgz>$+ z*;T{+Q{X&#Pp?eO~2ixX-K1fqTDqC*0d} zHr(e`UP$oI6FjfBN6)kCREGP!N>jMct7O8L>wI+|xX-H$hHvd3*6($2pC_3MKd9rV z2jI>xhd-(9`5pM%dR_YtzWCzM&p&XVCn?Y{eBbld`}%Od65RQk@cQ{ez8T!-Nm73c zDd*<;SL-;Z7u@-Q@P~BXV;bD&Rc66|Dj3FF0{3~9Z1}G_K3N0zd6hTdZ-(+|JK#RA z@(uh~Z9jj(eO@J>-gkO_R<#HNRD}DyN;UY+dSBTT{$pmS(*pkB?BIRj&JTf~F(Kry zgZsS7TzHXDA-^2{x!#X$f`>m0otCy2?(-zSz%%tev{0ikj_1w!67X}iUp@`)^CV}& z&(-$d3hsOd`2J#{kHK)CCm995wp7Sp4|o1%_`7;v`XJorRs4Igo(KP2;5y`eUgceQ zem!4yz>D<{eeQt|)b?D!$GNFk>C}JD7lY@$Fw{8_cigfG(TT6_4WZlUgF@apNo2f&MV z3O*X{6x?>7g)Ul|elo&xv#$6FHo$pqh!;NQaie)Blo?>7tR{F&#obcN7oHMrkz z)`Hj2_IVN9?>F1SOKAUm8{GT1``{hAhJGG`_vjw{Dfn&LU%dqPer!G5+uKKQ?>D}H zdq4IKe2b3r55PU{pKy;`uz6Sx&%ehl3HP`a;m2o&$Jc^;+y-!u+Z^t3+rmBWCGdBy z3gh;L-!nJ(2zU)WpU1(cYd?D(+~dxJFDn=7-wn^u=UETJ-Op2S_wyWmaHzil?tVUk zyPq%MUA6!J9`4Tr($5d$c)b_UyfuPfmp|k#gnPLSUcp8!$({lJpTpZtLLXe-*Ep#xR1wbz}H+6@)>aFyTIpH z4EbJg=f}anIXUE~!JWSsek?k;OWodpFKHM2J-F+91%FwuJ3qjkKOr;J^Sr%rQn-II zyr;JFI`F#Mk2QubnHcJHh2MB_@BwgdS6T3Gqe6Zryu8k<+zijJ^?nDui2OGU4v09o+p4 zgcqt4`k4TCKeOOP&ky&%9GeLVv2Iw&mfYPi?e>u|5H z&*9TbhC1KF{d_+RUw%`_7u0s`dG`8k0PkKTcN}oxa9)4>vV(n(|&Cbyq(T(Uk%@Ud05`- z;2W9-UjQ$0L-4!d=jnLhUifS-MU5>h)#MfX~^KyrI9l;3GN&e-VCb zv>>V5Yw%CCUcQ9;^Pt`Ejasgw@IUlE*3F9ejbK@sQuDPxchkp?tV7F-OvBv?q@sP z{d@=Ss`n#5!8c3@%X()%T` ze|Cm%)&74B-22ao@G|-wWGQ@XN3HN@WVPD*Z}u=@6GVmLqnY%@H_N#7(c;%zV`^++e3klp`O=^ zx2sa{kEe%Rodjf6NS?4nMAWZUFan1)IS8_X>3`ga4`h zRUi0aeSSR+o~_rTS@3e&KJSAc*827JrMz56FA4puL%!$u;P1lw77V@{?)Qm5!e4I| z^1s8o%jdyItT9kY74kuXD?6i32?v8-U9dQ z<{j`iP7KSr67Kv9@OQNy{c~ZSAMfY4A>ZrtQ2$T3_w#wW?cq_lw}(}5Zx64+y*<1G_jdR( z-1EN`e$TYf=K;9q|1f-Ck&r*JYxv6fDGOgQF68RKy}r(ZFV*|R3*mm9Z3{oWW~ko_ z?$_A?@ao#%PKNvE_GiKUI(s+Vucz7Y&N^Oy3hvj_SKxj<-3a%3-vamc^EKSBr$-aK ztoEZ`Uw%D31^$`d7dM3a_4GXW(n?|eyTSeX*c0BqTgXp3aALI{*10{KvCH{V(9&k9`OC z_Wvu~`_F&iejXLo&vAG@z5gr+_v>lh1aAZP>*+waUmu6VTbB&Wdn4TWdGJPAA-^2% z{rS^yUq59t-23y-;H9q$^?!$Z|9lLduSUq1(s?z{r(aLY!$;^mcq6!9Pn*I0dxL}F zr`HMNX2HEZOow}WxC!p<;dZ#UhkN1P4j+Si{-1)6EFSuN8}9kv1RpXX?$^^s@M5JyKkecExx~xhemxxpAFt!O z+u(kkT>`(ia2WSdxL;?Vhx>K*O}Mv*58>XfzJ&XA_SXb2q4PAJf4|O_g_qQE)R}O< z&NhV4&Irrf0q)n$Zt$%BAwLT4`~>)G{X+gWxL-H@`Gc3M)QutkbV7bLytm$We+>8Q z>^68?eeU)r+^@5FwY|8X`}BE36}Vq#PlK--9r|wx_v>tX_=xf$KMd~I*|G57_4&v= zxL;=%!q*Q8^`C(Ib@n;9UuR!~=hyMddvHH5w!;0q_!jQx#jkKbFOI|gyeOy7AG}`d z4d8xWG=W#ucH+-5T*uFg9?0(+ALcC!?(O_4c+Dmue;eHSyW#cE4*BQceqOu`FEu9Q zKZZNM4Sto5#}32&y!acwTgMMo^ghP(p4gC*;`*|@Ie&HD* zKM(Hb#X`7$zxNrqpBFE{i|YNwhj2eHK8O2xaR9!zQ0TL$&To0%W@tZF6TVjG4bF!@ zq4RN_;O^&gxceCeUpgc7Gac?aH^5zIG5lWLUk-PjRdCmN8@_3H=w}Pub-seT&ad#V zTZTISz+I=1ws+6J>r{q+T|Lw}6@Hn{JJ*HJ)%(`7;rsP@SyTAVNuhoV_~)wM7Jl-a zknar7(CgD>@R3@-ec&aghdKk{?X;c00>A#kkpBRFyif4m@Tcns-v_TaF!&Mp{KCQW ztDe`(+9|=);jfkpehR#U&J)#!m(=@*hVXA1hdM3b_v-v@C-{r~L%tV0Q^&W%;fr;g zJQ;qomg_qB&)WWPgFh(07ygp=50Asw=Lvnj0DpT%@VDTlwOpIwCru9d9q`P#!GDCm zQXu#r@Fz|P?w{xK`n_7~tEBe#_GLpuzB1guN93QAa{giE8za9$-U{BXX{dh*{D|JS z_k-^W@w74ULOM>E2ER}5m#>BYtmD0T@ITsy0T#g@kUs=(S~%pNf#=il{Ht*Pz4CY9 zPc#X2K7+rY{oeQRgL)qQ3cpOxqkrIablg%@$Ms%c({w(z7W|lAFB`zi=)8PexUY}g z7oI*XEY~#nhw^*i>F0&~YWP#~&G0kwh5S!&|GsOX{^9#x-s82y{TgupJ?|#)UOEnM z1z(k!mU9~gKT*%q1@JQMLw*%}g|@5h@RRg>`~$wdN~lwOK=|tAny$~KGT?nK3c2?1 zn`Z_e0^hCea31^t`3m?K+8#E;pVRq>1Mm}+KS8fQ?tguH=;t(eKW(3_;fMA9w?F(! zz3-a_?{syje<%EX_473Rjs_vW5q^r!JLS{)OZWd}-jF{L-m!J?itwGPTMJ%J`^mH6 zK2LN3{L&tw{>AVcwEw&uez0B04}$yeeU5{ls@KQq@XPf)nggFxBhX@f&O&;Lt$eQyCjze30jgtwBiSUFL*_$zZO2ZdGHMh{uMk^ z+w->x{x`hmj8H$Hws+5iy&`=3Ng-c7!JEPxsGk-I-WPtOUO%S7Kh*Kk5_p%Up`Xv; ztplg+fj2oneB&4Rm*s>134cK278(}5@A(;bR=8gpzMyLGD)556f}a8Zt5NWC;al{2 z)Dk{xe8_i(uQ@Y#FL-$^*D&}+`9ppp{DL;YuZ8!~@#{SJ@mV3i2;Q?*@Q2_hX?uGH z{-n;2y#nttC)9ZdUQzvj0-rG|E{|EeeJx}rv58wBCAFJ2L%J5sR z54p48YqZ~K3h$uf(pK)ihf;)dDyrJsf3D?VM+CA`%Rl~T?!8vkyM0MyT^E zynVyqCux6HGc4OFdRGIUl^OE&;Lf*B@T>%%m*6YljSGZvSHb(982nwh^B=*N z7YX_A;ltVn-w!`s`>O)l-aS9gp8(&W{ay|DW2c4sb>K_1T&>}K3x#|Kc&GlsN5DsG zKQInHUG?X~{dvJc_zs=leg^LI|EuAB^t$#j{Kw4D=T`W#V!;o=o&OU)q<+X(9uvNL z{%_EE*Jkh;IzQPJ{`A!F_&)GIs|FtlFRA_ZIQXEtAwM1NI@t;S3jA&D=Rbpgr~Te` z_-q}&{SJ5j7~I#rEj2du>v{9_8_UDz=y>}axbx@1zbYH*_JBLz7rs>c{poP$XTgu3 z8S38$cm84cD_4j7n{emffuE$;op0dI{|GNKGSn|LE_~&D7KhhS{&cwO`~9Em^wRuv zOvrbGPggz*?)q24e^CAoxbsWk?bQDZaOYozk5GOa-1(jGca{GO?tI>?-1Gc{@>Ss8 zkDUtdspG#3;m)^(f3N++5V-TB;DtJb{^r1)zZG7;e8{hWJHHA(x>m@42zUNdcq8?5 z5bpdR@I}g((d%2$)Ns-3zVj!;UsV2Fxbw~7?_3=E_vgB--yiw!m7f83{p;Zc+l2br zaOWR|H_QzAx8Tmd3*V#V{SNN@KKPW5p?(p)pWyPI2w$z^jk<8Z&NhJi{c2~p^OwSJ zDiZpc0C#>0yzD6MfjggnVyNeNp09j0 zxbwB((j=`33ON>i;RY^UuNO>HXSfxbvUE-_Y{@ z26z4_{7|K^yyf&b&$IKVz{^$+`6h55mtFub*Er;R!<`=p|D<8aUki8sM)RD$hPNsm@+au?BG0GuCE+hCp8x@~Ujy#?b>J&> z-l;YGHtqL2z-zAxPQ!SEL9XBOP~+3>FF=V7?>PryG= zeP54|%liTHr>p-T;jVuG-d_3QI-kV)rQv&&uLpPiM(}(k!hCjv`*`~b_}q~pe_0_k22E7(Q9~Q{mn}oB{8t z{YhK6^PS++lph86`Wg=(kT=ZFt#Ie>gukWj;YIlSIxoEiK2NWA`{6!s_8YvVw$~H% zzS;AcRyg!o5aqtT85!zo>fzP=vG-f4y#9$HKOVk9=cDd~H%t%tRq#Gqt{35BW{3PXxbr*V+ini|Lf3?^p0`Wnr^65H zJW(6?cD-J7gfG#08V7fNGW-+WUj(10=g%_u*s7uLm*LK@g}12}@;l(|wH@w(AJTjk zxHk9vIDZ2CJe{{`0dL+ZJiaH~pF3nF_`C#vG{H9{_)iI5Zf5S~azCvTd{~0dN$@w| zCAEEi1;1%-TF&h-+{YV#!{_OBu&h4s^>*vyjZ@$s>-^F=a360pgMY2{*d6ZUhhFe% zdR|O~J3kHn%eb(-i{L)qxDWnV-;jR+?&FQu;1B9J#MguO{Pfj4Zb!a`-ar2i_wmM` z@YX{@Kc%(5bbTLhoD46b`Dp<6@kSH4|IT+;cvJP?1Kv-^_gQcsZ(Ie>(C6c~!F{}O zH@tve$DfA#cw;quR^Bi_AHaRQ@hSZH*&)9V?&FQ$;3G8uC+Ky?^Y7!0Qt%7T4fRil z`*@>1e6RM~?chG%=mNjGd8j`e?&FPd@CFq_em3048@IwQJtgEHh5LBpDfr^iA^$eq z#~bg%r)WRF3%ZwOyK|IVKPU)LbyYQvpB3x2y^?|Q+V9|$kgBhUi1n;Nygn@V8G5{hSSVzA3yx z!;l{cucY^_*TQ`sAsb#_$2YIR8^E`RCyWs)v652X}re`~~%M2=4q} z@OPE3p!c0cQ^Q54)Sa&iFRK2V!=1kf-cR`faOa1^Cn$d--1+(NiF$o`9Pa!|_)W@x z0C)aV`19)LAl&&Q@XJ)ctd2uHpFZDs3jCcKVf{9NJMZ7aa~=PE@jeOp!SMQ{Lj75A z*PjFL*e2v3fjj>se1pypybE`JGkl-&`{B<24zJQK^i%TY@YVC+e0lh_s(%jL`DXBi z%3lF@zCV1M@-yJh`|q0-O|=_6j|OCfz8^@)FNaT3{%yGHzYou7AL{=Acm4pptMbL? zg~t_5eTn*Xz6^Yw`l%0hzA=1@@|VJWKD;-)<;>8>RJijq;jd`_wG8h3!|-!;9_dZE z^BduZYKDHkg*(3w{-OFQGCw@d^XYs#{CDNgggf65{{FyFw=3NF9`M^#e=^+ptLb{b zwuG+tmD%v!s{b0?_1D8|YX7(!?)+Z3ud7wymj9m5V(^o-zo-Lu{d({-mG205zB_!5 z`X3K>ehU15I{$eW+@IIn3xBt4Sk9N=&aZ{{)co&&JO2$lP3J%J+?snnoi7aEIWy!= zg*#stepttW?cmOLfuExDM`Pg5PlBJN{Oxe(7sDUW^K&)a`B&jSueS~E{4RJA_47B} z`TV!#o@XB?Rf9WU8~(N47qx;r-vM4m>uUtu`7C%XnPm$v<126bDG{iSAsiV6W)AWczg@E^KId?b$)CJ-1*V)4|Kk0F5LMA z@S6I(^C`IV&%@7E{(o@ix568A4$FH8?)+cyr__Ii+jGye^Ht&5s^1*${6+Bg>VE*- z`Qh*ydOv$3-1+(N=T-l4xbrLF?_cm4=`sq$qP=AKVqr|1;;1Rb9> zgl9|)k3SE7k3Qe;2Jc@!G?GQ?$4p7!k^W7o?GDl9O_Q^E^R+g!u`3}bMUvT zgg)PaH`nXthwztlem>6~x#zP^{cyhoy!aKt8^J4_7JL=l@8e#C-*HyRe+u_{`~qG{ z=e2)@`}$W$;D>Y`rtFD+fyH^hW5d6^+!JmQq_gP+nJO4j;bse|tgF9d7t}u@0&0amhn}zQZVdM`;HOLoelC3U*}=QO4;K#J7d}$k+c3E6%!GfM8S2~$&!^*! zMR3iGFq_$=-CzJf0q z9_su6zh_qP-{IZ#dYX1`_`bK3b9FwgJbaM0|5M?v(-A(jdZ>E?yvNMo3*hT72)+#N zI$y&FXuI7HFE%vP$+s+g^>W>z{X-?V|Gw$D@FMBq@g3m9H4nq#HBJoqnea>U244)X ztmo;>`*Qc0_snpA8GOeT!JmbX*75vC_#N`E;QjSFTjT!R;})3~?l*xS)OOe%zDfJH zaqvI8hB~*w*Y*hh4E*xm!8gMjj|;vXepjX7Kf{l=4qiAreD!*NR`qMaCu@DRhWEHQ zJia%)?}fpyhA%xY_#*gU+Alo|e_F@$8{x%n4t2hVAJY4jf)9l6d%1>axvIi@>->3h zc!g`i<6FaLXdW(s`{#}N!85ysIwRpTY6Kq-Z>se^1HPc8d;Ac$<`A^|n z^9SDv?+`fc5BO^rgl`mkFnslV{;Aig>hQc3L#{FW!r8$)!t?0!&_VEXFAw<};KeHh ze;EF|ULW6pmnt9f-@t3=cq#uw;rm{$VcOnm!Y|S5MSFOuD&g_{;WteWekHu6wyRli zUnhML+`pgjIDEZc*ItLO*6ZU|_*@;Y{s@2ew9sdshjY)vJ$m1L8vOAVAy*$hvv2U$ z@NLb4uXr?f{X+A?{f!C!KlmZd=PvkN+Wrs1SGElG%RiQT+|hl){TlFg7Y4ro?tFW= z^OwP2)%Gw3?mAQ8uCoyC`B@78QTzF4;IDNL{jY`BEEv4d^6=H$x$Dp_=bwc;zdOOx9?!j8zFv9}xUZL98a_b#nX2$x^?K9_?tc0t_;|ScnFe=1 zH^AM`?Qr+=0^I$4lHlLNy}h0GMDBTOIxyUC4|n}x34V8iKbPRI!oA)_i}l8JHoxZ?pPS%sB=|e*@lA&(j_7B@;v6-@)DILAd)&e=hg(y3g7Po|)i15_~k=+s{pKkNbLpf0^LF zC3wZ>|9iQb!hIZd5!`+Df|nm1>JEYX?|F=c7t#BdDR8fs8{u9r3*kQg&xU`Q75Z5N z_j0X+d%3p3yJbVE6JbVH7JbVxLJRE|1{T6>A_k4P}PJ(;6GT>gW#&9oJ3%Hl-Vz`&9 z2i(gw1n%X!8ty(9!rkXHaF6>c+~d9r_qdI44o&)!|m%%-5Ke)#o4xgp-lM~?X=UTY?nGbhAOW-|pzH2qy&)?VK ze*SKRyPqv^_wzN}{rnC0{<-W+xz~%mA>8|`=5U{{Xao28itccqub2w=xVI-Y@+C_kQVDxc5tc!QD@hS97l~ z_frn;e(J-$A8420gW%pTjfQ)_bS2#TrR(9|FD-|=pS218Dct>h1^4mNA-MMsrC!TD zZ=TO8aL;F5xaYGe-20_V;O?_G+PVk~@bI(t^+2MW}xcjUIcb{j$y&l`Zy&vcT_x`gd-22aAaPL3o!#zKD!F`;T z4X@chE$8+GJYV_XtKpZ_3cgVuo!-nFDChq_%8RD%ofz{2a_9B&MOv{pL&*6idd$gk z=dhFLrsStc0ykwW)N8yEM1TVNQe2wNU>SvJ7Yn7(=54omrZ_jPu-k!U|y*&?vKb#rr zUjz62JOuZ0y$yFiAH&_xPPqHo4|hL#-wJ)@Nqxzi`fqKxn^sfq?QKvLNZn44dC5RI z|8ExaXgl%WM{bS!U+OUfkuM$%p1O@r@T*YgK!~SZ8_P%i)RW&H^QfPCs=qX$&O@<$ zRHwh{yd3kW&QR6a81s03Ys{m3w(?)Y-;(cxeX2{u9eb<1SF2CD(_4MC+?~ z>c89bg%wsS=J9;}nCHw-zVP_-;kL2%a@hdMqUo{#)*8uxB^x%^>yvf)kSPr!T2pOTuVuEoc4n6Z|sN@wolr9(N?%<4#JbKOcG5zZ>rQ*>Kl? zBBB0U$h-araM%AF?)tkE>K{Yi_4B`zdwscn3ApQ*k#oJAj{LRSJ{u>V5a`URF7xSnekJ}3F zaXZ63?xiu0*Y781Kf@C86Js9lX9nE;%!a$4+vOa0Nh}}l^O2ax$9)FwabJRa+_&T$ zcT+4MA9ria~PuAzFq zG?BB<7O{N1PN$g1=cfnUeGY`X&*3qT*PjscsQ%6BbBf%3meBF!!|>|z*HCAp>bwL0 zN&Y{0xq@MRe2Mx#-u?~wCd&T}?=3I%UheffTV7o50}W zUzSj3Eb^{%4cv9+piX1;^8h?c{lA4e1qy}!KY?E$-xl*|d&pA#Ju#2o=VoPwI={hx zt`$7rrtr0B>PwXGrxOaL<(}u|>a%_T_?z;n@ZIu7aF6>kyoQc% zcfp&=|ACK^*L*)Lua|3%yd`{g?gWUc2I>s6BM#^6V zKVRMx-ddgo?k)TMaCn;5?_BuF@MPDNfiE#%T;eqxHo771Q1<|R|KHX0~(s~YpDPW=mVIPLV9M|D0>oyIYb z^5?V)`IhkfdcJp)d$~HR|6Z|t)KAVywbYmKF^|SA7i|Ek+jMwO`Hk=e@_8|j*S|~7 zewHQVpNM(9pXcH3=XJRISs(LwKOf53&u0nwJu#2>vmfq${(!rmzhfTnr_h!#-+tb0 z)_j(fv(F6Vy}la5-Oq&yb$TN2I)mY^lZ86Hv|UY!<)h`w)bZrpm`C$g;e@c9cfh^8 z%TRx%w*Nu-yBy#5bx*Z(b{{-3dYynf-& z!}|C0-Rq@1-1RHRJYJ`E%%eWP(st57&h^zamXFtI6Z81;UJiFZePSN3Gc4v&9sga< zF>?1aSI?LG;0xuC#_B}%cjK3{fnpmm%6Qm-y`1;^LU-jF^}q$E|F6vZM*#6 zKJ|S6CYF!tr0f0W?=g?+bX1*x66zG(8piSd!F5Wh>Q)c=3d*;KH`I1G3f@e9BfO1#Dcr|htKpw1{}Ft*`~dtXdHNS&IlR0@v|j4N zOUt{$&y-JqH4LVj_~qiBot;P=HmdY)!# zzp*^#QJv4DZ>Dam;f1ONe;e+3*aDxaes;z@>Svnz`8MX!xVL16`iEj3wUVtq3vCbI zkLEL~^M&dZk9m~$=i}Aoc~TbbvRCW)sulb@`Bm^E@`vEX^t$#TyqY}Ej?`eOo5!s$ zKLdWgyc4{&d@#I|d>Xumd?9?G{0aDI`8xPi`M2=d^5S3RUap1m4ER0ri{KB+d%`>G z^)Ue=lDIFQo15 zJ$P;T5qJZ6`mWslG?kwQzfj%`-d=tQ{BrqZ`0HAax4}P`zXbnU{ssI;`2qOv^1{2* za&CSemC<^s4EJ%}Iq(L`Ukq<19|V6-J{`VOeh2)ZdtsW zgzvlmfy!S5zg9j7zEVCHzES=t{Gj}Ocpkl8{{XKculsH8J~QMU;f>^j;OEPy!duI4 zgLjfY0`DPz4L(r51wLB7AAY60z<0Tq>l%4Q_=EDZ;cMjW;cv+Yz(15vfqy2y6~0UU zDEvqH>+s*@pTYl;{|qmv{X?GbbI-#Q%2$SGDxWF$e(CJ!NuRp4j(L2))FtN8CitE5 z{o!Yq$tjaIH0IHeS^0x!#XKtE{nE6UNA<5&otZI@^4>2kfP24`9rI}1%^LUFm`C+r zQvEe@KYy>*{A`0Sk{^RVAg{PLRWx;To%Ql&@DJrZ;S=QZ;CZzFTm`Qn-wbarKMWrx zFZ)C8J{QZ+gRhkLfNzsu1OGw36n=uXlds_Aw zaq#x?+3@c2`{8}%FT#h)KY-sX{}!Gt{|mlCUizop^YDWFbolG?O!!855BSIOEckZ$ z9JrtF+3=s0e-6G-z8PLs&%3?yqN&A;qGQ^G<@`0~(ew16@<(DGJ+(?*9#WGx$65OW@zghr^G_uZ0)TJl_pZmp=jDr#kPzt1AD4-0Sgv`7g-V zk(c>7EU&j8f9~8s?s>>mzI!YmZ6{mhJ!2ki56^cBbqB{h%AZ><_{f+?+f}Bvt4T4B z>Xbb-;Sr6{*zY~0g^26b8$Y;Xekv}2#^Tj`3@gm$m zU$GwUpRf2B{%~ek&Y$6aK9)ZCfAbJMFZ_FU=fK_1g>d)N8SZ}iz}-)lJeuc1p@p3P z&qv;U-Wl@~Q_0`8e(#BS)W3gU@{yQF`EC_*%BQ^mUvP5pSLN>Kl)z~p$MR8q|K8<} zm`C+1R16RJKA}$jU&Hsky>(H(1pFp>dH7m+bvgTNioEMz1b6*TaM$mN`i(-{X#->V zk}1p5esx^Tqj@-@KBvO#X+p1uFO=UR_i}mMyJGqHxDUoWKJJrnkNX1LNn( zeB3QDkB_?(?s0#Bd)!}Q9XeR_p-cG2HE{p_^4yq5zd77ZyFeao57D?=^!RSbXDi<;mXG?`tmpNFm`DBetsEXO19euZ z&W*8rR3}p}=6AzQSej~hSl`!z9sPnq|IRMwkplQVqg@E_N8LD#< zysNw#e3JYOx#!>YTO#lJ9pSEjIo$OJp}tOQq|HQrk@~qA{<8c|_zwAf@U*I7UY5(f zTpssLOr{?Ev}{t>wA=lvu1dUXB5@;s?; zN5_HQ-YO$sqiT43?Sy;_>_tPlmQ9m9x6Yg=_!#!@7n8)k)l(V0K3Hh-xkM}bL?tZR=yPx@Tj(cY; zAMZ0e=J9c#fP38M;U4#OImg`)%g4w4BHcivx1M0c{HDAYuu}19@YQ0ZphDyd6ZwM z{Op)V`R>tzq;9vzJj%bP{Gymg>vwIzD4mw}K+K~${}y=byix7{(1>O7-5Kf#a4521cl)i3{NPPv>P zFO2GB)C~8l!@J7s%H5~yv`5}`y2D+kH|h*iKi9&))^;*GRwtT=1)7INF^~G6t3Dq{ zsPlL%AFs1I=J7gjB-D8)mXFu@BV^YL3PZ%cSd zoj>o0IybA%DC8R|KN;R%J{@&#Q=MDki{y{Q>O{|%>V?DdJRZx7a=!6)g6~W4-(&To z`CqH;q2S+PoM_&nr>;1yGCX>YMYpqJotY^_TRulq`>mKqr7Ozsk$c=O8u!UqJ{q^3^6TN}$hX8i8n>SO+n7hC zwc6A6%RTN)je9(nkH#IVIw$=T{^9xWA+H_tXxz5)#xajdH3V%R63a*9zN~z@-XM6MSIeu#JQ{a_ynf81aYx9T$USbR#=SU}kH&pR`9bhES$YxY-)_U@RYv ztG8EaMRLyIh4Xlk?^d0YV;+sWRepNRqjB$&H;{YW%^LTjSU#$MQnW%-x8CqV@-Z=w z#yyaej+QS3qW?$ZKB)YSa*ylZBUlv6N8_HZ{4?;X^0hIK#w{%09P?=0H|1O99@oEj z@MA0=jeEZGdGmySME{SxzPxnIqj9UsYs5Snca!`KxyQ|l{*k&hkL9EKzV6?p@Rq7G zH0IH`zAnm@F^|UGqx>~;kDIM==g0EVxTBSS7~V_1I_A;1zMkPnvHH>LY5U%(|D|r* z;U^Xd{sVmLnBa%u*ES8FFK=idYCEc5QO8~B@ZtkQz7o8d;;lC07Q*^MFx-Eq7(|WldUP~`9Pr{$*pHn97 zCHSsp!8gD=Yq|EoyOs(0U*u66(e~imQRH9L3rWFzx!2>uu{JJ5*$H6=3KxZm^c;%449^Oa?D7V1SoR z`qB*k{Mq3FneeQEDx@z_S9+@CNVKnuZgzh!+E+w3x>o1Eo}H6QOKYO9%(sB+>6q35 z?&I+8a342nv;KEnyH?M?et{l80d-pGzE;n_c^@C%h`jw4xQ{m$CwMmeTHRj(pRN1P z!RPA!>j}OAo~`@46Z{AGBf77T>HeJuyWW2N>n|(s>ur1eJ|wRmLF#6A9iI=QpM(5M z;o<+DXL8=&7J2tG2)8x$@Nd=U`*0rz zexBev;nj5iN4Wd^74Cj~-RtPvQHx)ypR(%L?)j{j;Emz#rzPC|Tnu+VzP`1`b$%@J zzJB0z_@%mkJ>2!P;Zrm(zTTV1^>v1QooxFf%5OrQ59PjoHuFCtzf$?537$vCJFesF zqZWtnQk}AJuh)9;;mS9LdmdWCJ)alDJ)cA2t}_+7C6|D*a`i2UF3WeNTW-2MA{sIKom{c}Th_v7oN+MWLm z^&4ux#8z87 zg(#4^`8ui0Z$Z9{^1BjzFWmKg{Z!Y_(mWI|6vnqdCa;j-)!;R>{(K!)*Kz$e$h&^G z1n&hOp#9yj1Rn=?KfZ3C`|<1OoyhOi^4_1|kHPmT@9R^#em%{@`^a~ZZ%y!B@N2aG z_9gi5@avTKbsXJ~ulHC%Z>a1ml|MDX&xCK#cuf+#1^hkbeZ51E>+2#8MSiF96B2wH z{9EOH9Yojn^%Cz#{Wi_m3oa>O^qP&ExvK zaj^t11Akoit0j0H_z~SdC&8P;eI1zg34RH@PIRI#b@TNXyTD~j6_reb={~O$W{t5T>?tEQ9_v7mtRn~ml zeLXs#7q`29W8`1fc)q@%^R7P-dG|jC?)sDA?tcN?^%ujPe@GsEiGH3rp&F5kG0r@|0FR!o5==pa))lLY@ZFjz| zJSrETpZdsqewx5NKNls`@pT+Mu9tTJ>U^!`8l6yQJo280sc-&0>u0K)R)rrM&uV0UQvYhL;3i9r!7TopHRowP2_S7L!Ae;olJnc|7mddes$C{&#`)LLD zeyl&-*M}Sq-=gh#GTilNz`eY_PNe&E{RfeMMD?FZ@E74PE5AO$--o}e{5H7z-wk*F zKf}Gg4#T~^eBC22ua~Q0iQMb`1@%)K?&YcnU#GmUf9d)Q^t`(id2gTn<=oHsdOWN% z19cu$eP6fId0*c$8+l*H($}YS-t+br^1jaAhY5Y|LEd$Kg1e5dL+NqL==HdSJ{YoB zlKVP^b{|*yIz#sU$~Q+Hdn@=-<+~>M74Wsn4@vMb@CI6bUpLWxy8kJ;8g!UEkN0Wc}-qZ?E-xYl7bm&pD_}O^vV5?2gozv-hO(RD?BlAgbP5_|}Jp_YGqf=`9trTk3^ek**j^7kb8gK%#j&m{PZ@TXM&tpwi$ z_xjtK;Je@rbl=zQ&r{ev|LF-{9==BVmzoJ)7w&$1y+Duq@AiPa`{|wFgW+}6 z&-etN3U@!g?jZYl0QrI1KA%eP)$kjYe>1_~h0j%fOM>r!yMJHT(Ea=Rf%)_UCH9|H zzeIxjI#|yCs=TkqX3x}ibsp+;khe+j&hTlv-z&if!Dr}xR)SA~&(!@J5_~?~*NIw^ z;19s>(*36rd^P-l?ypPm_u%Ergx6_b?~3#9>s{HsA3TOS_Pna+e73fy5(!=o?tXk- zJ=ghndqCd%_tpvC3GP0xNbmu0_v7pHv7gzzsL9_umuwi&cMU zf{%rdReoB6Uk7(TzFyJ4{V4Ys^0jsUxdeX&-ca{_y)M`Hb-i{W@8$d{!GD84q5JkjM4)m&zpgDR5tZ$=45a9ru3$^6tNVf?on(uD<&u_z<}JpP1m&;V-EEO$mN0 z+{^3hoN;-dM}DB{uTAicaBokaCir%^mv?W1AAq}mUw4iDm(kCC+ueVa1g`~m{|yqn zDct?HO7MdcQu8-1l3j6wYtaEuRAN}Zn zmup~xkA!<%Uzg7HeI2}8koSIOae`;VUEkNqWBm=tyZ`?s_%^uf`#Nn=eSIXKGjD&z z@{wPWqp3`V@DJzhC&I@ne{zCXhhM3Dy##Lze==$yb@O%O+)vQ7v|h;DhbH(~c!nM@ zJ;ASscU1n?1iu?TSowz%d+o^PZ-RTCKY=e&epiC;g=Z^&D8c`RuTsA7 z$>ASfU-oqPYsyzl@EY*Xl+Q@;MsWZBSIY#y7(PbZTaN_q51*<0m;|2;_x9}T9eRGW zSZRxqZ=i2Hl;A7iUhgj@_?vLg|N9C4DctkFE5Y}|J^zOj{2#dI$JcT6{P=lVO}}tr z@1yyto8S%Mem?rTjIMKv>hwVV3i+S}9|iaG*VlJs{aca0O!b#0_(O0nudfry`WumV z{ZA77OStR%`jM{h`A^eC*i=taUAeDA>3;k=UO>M$Y5(_i7VhOL5BGf5Oz^t!ht|25$5{|vbM zZv%I}GyGUuxQ&E+|1bgW`nSNHzYFgD$x68MYv3iK2}#}Fs+#j9=jWgbrT%H(1b6-K z;jaG+-2E4=mMWUMdH$U*1$W-pU30!v^pDi75%TV*E8N#%y8`a|zV2F7Hd!gg8MpDz78DwzX$mu>i>}he+usU z@4-DkAHxf%{*DCy7Vi4Ko*erxUL(x6-Pd8Okl@weQ`OIz34RXT^WP%D+rizxuW#o* zkL!H(806jm)C8XeAE*B3!`c`hLFL zj=cN4H^Co7$EbKckM zYnG7r_4$||o{;ysaUVa2E>eG|UH@<$d)1gnuNS`6(?6oTex%jk%K7R#UrL>^`}h4h zZkH&Ky6NGd%mM@N3E|c66)_o-am(*6G}y#_wS<>)^gkZ`v~c9*DnwE@B3AS`}YNE!~Of1 znQ;I9S6jG$zpo42{q%slpZ;+7GaT-IX2M;64&3z@z+Hba-1S$&yGu-vJ!XH%qU2xam3wM2AM9t48j{~SmU;=dgdf+qbKtt1W}2_35^%1ol@29ZdoZG+Fxan}8e=84n zKlR`zs?WyoI`T|-U3pu$&lh!ppRIfk__^}_@K*BS@V4?SxX;&3f&1@GEP#977Q?-M zv*BL9%i*5qwK3Nra%#<`{%$1PFE5+nXXT_*`zyHjtGnR6l-~;=~c*j>l(|Lh}Fzbfj?me+>gC9em+U)~u0sJsi@efEH#s(gRA>kNmlQ+_7g zb>_gmUKYSzXEFRM)n5tsdRzluiMk^TAzk*Vzm2s`>}uu5$!lE?Uv4Te{v4 zdA++%dAPU3s&Ln-4R4_OneY)|*tE9riSjOR*XaT8r21KK*O>yJq53o7t}_QdQuVXp zuCpBO=fz66>#Tv_r23oTejaUw`+2kr?mBzn52}8e-Y-UXqfNl>-`BUlseC%}Tjb^8 z+vWbfcGihs?`;A?gNv6#2kzoRd&#yqN@r9s|~ zxeo1fBwgE=`>CgIUIh1Xs?P&E@7Mb~kw2hGS_x0rN_Z*e(U4QsUw-xL`t>xwzCLK= zQT|EgeIC+z|6cQeSe+<8MB_af^XQ+MI)GRm^Cz zWB=xL9P9I4cK`m@c+|N^b$p&Gx*Ol#zKP|d@A>n`{V|XF@%1okYI}~d@$Ek?W8%~? zlLib-eVsHRd>!t8O&BtIK*ppYQzoTl3?49PKw8GYi4)T@h7B6jZ^)EEL$W6IOXWuo zNz0fpF8X#$@b<0iBl+HF9)p{-igKf7PYej~mNsW$!o&W9MvoYqTK@3u)Z#lH&BjHSrye^rBeif-ru54iGGXGl zu>(erm^8KDmG#mx28|mtX2{soypA0=X-Gz!PM4mUTB1Rt^!Ope`wg8iU`(p=unFT* zOZorDZCPqN)+U~-T&C`Mo2Z_;e{JeNZ7%}gtAN3zS1-v}sw9`@+jjyLi>R;jZz20y6 zzQ6iu@B4LA|A=bx@oD-!vEg_?RX!-d(k20ZuFLtqB=wE|n*Z{(Lcu9|VD;43=p~Z#zcOV}FI@k-^mE#N z-AzSuZXAC_O8;y81scDwc8<~b(W!in|5nPPQ^{O^RjZ^hb#p%4`@j44*Hhp4ukjaW zgyr{k7L6Z$1mMTnKT27&{H0R=#c#DWe$_ap{_V&6>+Y0!UB;tr_4v;DbALDYz0}`V zNj(eE*~nBeQ5 zMq@`ejvu`r{jcTU`gvIXw&7tp^IswLZ;szm)AbP)K+@f0y^8_q+eqe^q@T=j}Y2zi5}_$J-}seD=Rr<7aqaeGOgx-#lKU$0L?j z?y!@&zeBx4kH_MtmDl6zMGF_Zxqs8GsmK4<@;BD<`*Zea`KzY>^W(kzQ9m3zMQLr1 zMc+yNoRdDstdaV6bS{XGk6shPmXi8M?ABi|NG1FLeJ@n~zhHFi@?Vc%`$f=)@c`US G`~Lt1wME(h From 280bfad25754dd61bc6d01920641d6d4cac8d3bb Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 17:46:47 -0600 Subject: [PATCH 322/336] Delete worker.o --- .../reccdi/src_cpp/worker.o | Bin 999584 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 build/temp.linux-x86_64-3.7/reccdi/src_cpp/worker.o diff --git a/build/temp.linux-x86_64-3.7/reccdi/src_cpp/worker.o b/build/temp.linux-x86_64-3.7/reccdi/src_cpp/worker.o deleted file mode 100644 index 6dd12c240343471543c88145130e6f03d910c356..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 999584 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�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�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 Date: Thu, 30 Jan 2020 17:46:58 -0600 Subject: [PATCH 323/336] Delete bridge_cpu.o --- .../reccdi/src_py/cyth/bridge_cpu.o | Bin 1151360 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 build/temp.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_cpu.o diff --git a/build/temp.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_cpu.o b/build/temp.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_cpu.o deleted file mode 100644 index 2a3948f774327f162f87e8ef7d19e760d039f621..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1151360 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

        $glf*PfFXv9mXul`x^`URH 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

        mrZ)e#HaqKG)yZ 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%0D|>Kh4v+7m~M1UOezJa_%Rq%D+tG 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Ü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

        CG~9j6z}?3z+{bSY?&CKP_wieT`{z~4aL1{@ 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 Date: Thu, 30 Jan 2020 17:47:05 -0600 Subject: [PATCH 324/336] Delete bridge_cuda.o --- .../reccdi/src_py/cyth/bridge_cuda.o | Bin 1151432 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 build/temp.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_cuda.o diff --git a/build/temp.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_cuda.o b/build/temp.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_cuda.o deleted file mode 100644 index db2a05b148a5a84c8ba73ccfaaf0d690232254e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1151432 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 DAUt1!`*{El2NOR? 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 z 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 z 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≪y|21(JzPY3aL4Jx4^{jT+;PV64}{B& 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 hI Date: Thu, 30 Jan 2020 17:47:13 -0600 Subject: [PATCH 325/336] Delete bridge_opencl.o --- .../reccdi/src_py/cyth/bridge_opencl.o | Bin 1151632 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 build/temp.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_opencl.o diff --git a/build/temp.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_opencl.o b/build/temp.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_opencl.o deleted file mode 100644 index af70ab57cc79229c072e11eb08612bd591a38888..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1151632 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

        ZF2~%I@zgWKq7iuBdcu$+BwTbU_c^x>!W-` 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�Zd?fq|oc)>5|4MvLuZS@N2@{3x`&g`7N;vm@ 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

        <4) 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 z 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 YC9Xf%B?~>jS`PQm-ofIgKKT6q3)ziIlmGw# From cb584cbaf98d93477668e63015b965320a2fd7bd Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 17:49:45 -0600 Subject: [PATCH 326/336] Update config --- conf/config | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/conf/config b/conf/config index 6d139b5..83516e1 100644 --- a/conf/config +++ b/conf/config @@ -1,8 +1,9 @@ +// This configuration contains parameters defining the experiment working_dir = "/local/bfrosik/cdi/test" -data_dir = "/net/s34data/export/34idc-data/2019/Staff19-1/ADStaff19-1a" -specfile = "/net/s34data/export/34idc-data/2019/Staff19-1/Staff19-1a.spec" -darkfile = "/net/s34data/export/34idc-work/2019/dark.tif" -whitefile = "/net/s34data/export/34idc-work/2019/CelaWhiteField.tif" -exclude_scans = (78,81) -min_files = 80 -det_quad = 1 + // working directory; the new experiment will + // be created in this directory +experiment_id = ab + // a string id + +scan = 2-7 + // a single number or a range defining scans, optional From a744137faf75cc84c873f4ba0415ce1f14ac5c24 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 17:50:40 -0600 Subject: [PATCH 327/336] Update config_data From e774432825ba63bc98215e526bafe75acfd2ad6c Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 17:52:27 -0600 Subject: [PATCH 328/336] Update config_disp --- conf/config_disp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/conf/config_disp b/conf/config_disp index 3d92547..07f2ee2 100644 --- a/conf/config_disp +++ b/conf/config_disp @@ -18,5 +18,7 @@ arm=0.6350; dth=0.000174532925199; // detector pixel size pixel = (55.0e-6, 55.0e-6); +// +rampups = 1 From 658d9db85ba482783ad353860165e2b186b6539f Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 17:55:07 -0600 Subject: [PATCH 329/336] Update config_rec --- conf/config_rec | 56 ++++++++++++++++++++++++------------------------- 1 file changed, 27 insertions(+), 29 deletions(-) diff --git a/conf/config_rec b/conf/config_rec index 5ba9922..3252ec6 100644 --- a/conf/config_rec +++ b/conf/config_rec @@ -14,10 +14,10 @@ // Adding a new feature/ trigger is described in common.h header file. // GENERAL -data_dir = "data" +//data_dir = "data" // directory from which data is read -save_dir = "results" +//save_dir = "results" // directory where results of reconstruction are saved as npy files // if samples > 1, result from each thread will be stored in subdirectory 1,2,3 etc. @@ -25,26 +25,26 @@ cont = false // only applied if generations equals 1, or not defined // if true, the reconstruction start with previous results stored in continue_dir -continue_dir = "cont" +// continue_dir = "cont" // directory from which results are read for reconstruction continuation // if the directory contains subdirectories, a thread will start for each subdirectory -samples = 1 +reconstructions = 1 // number of reconstructions to start with // typically used when running genetic algorithm -device = (0,0) - // IDs of the target devices for each thread (sample). +device = (0,1) + // IDs of the target devices for each thread (reconstruction). // If not defined, it will default to -1 for the OS to select device -garbage_trigger = (10,.5) +garbage_trigger = (10,5) // ArrayFire memory management is not reliable, the way around is to call garbage // collection per defined number of iterations. Decrease this value if out of memory // error occurs -algorithm_sequence = ((2, ("ER",19), ("HIO", 10)), (1,("ER",20))) - // defines algorithm applied in each iteration during modulus projection by a sequence of tuples. - // The first number in a tuple is a repeat, followed by tuples of pairs, each +algorithm_sequence = ((3, ("ER",20), ("HIO", 180)), (1,("ER",20))) + // defines algorithm applied in each iteration during modulus projection by a sequence of lists. + // The first number in a list is a repeat, followed by lists of pairs, each // pair defining algorithm and number of iterations to run the algorithm. beta = .9; @@ -54,18 +54,17 @@ beta = .9; generations = 1 // number of generations ga_metrics = ("chi", "sharpness") - // defines which metric should be used to rank the reconstruction results (samples) + // defines which metric should be used to rank the reconstruction results // supported: 'chi', 'sharpness', 'summed_phase', 'area', ('TV') -ga_breed_modes = ("sqrt_ab", "Dhalf") +ga_breed_modes = ("sqrt_ab", "dsqrt") // defines which breeding mode to use to populate new generation. If "none" // there is no breeding - // supported: 'sqrt_ab', 'max_all', 'Dhalf', 'Dhalf-best', 'dsqrt', 'pixel_switch', - // 'b_pa', '2ab_a_b', '2a-b_pa', 'sqrt_ab_pa', 'sqrt_ab_pa_recip', 'sqrt_ab_recip', - // 'max_ab', 'max_ab_pa', 'min_ab_pa', 'avg_ab', 'avg_ab_pa',= 'sqrt_abg', - // 'sqrt_abg_pa', 'max_abg','max_abg_pa', 'avg_abg', 'avg_abg_pa', 'avg_sqrt' + // supported: 'sqrt_ab', 'dsqrt', 'pixel_switch', 'b_pa', '2ab_a_b', + // '2a-b_pa', 'sqrt_ab_pa', 'sqrt_ab_pa_recip', 'sqrt_ab_recip', + // 'max_ab', 'max_ab_pa', 'min_ab_pa', 'avg_ab', 'avg_ab_pa' -ga_cullings = (2,1) +// ga_cullings = (2,1) // defines how many worst samples to remove in breeding phase for each generation // defaults to 0 @@ -77,16 +76,11 @@ ga_support_sigmas = (1.1, 1.0) // the support is recalculated with this sigma after breeding phase // defaults to support sigma -ga_low_resolution_sigmas = (2.0, 1.5) +// ga_low_resolution_sigmas = (2.0, 1.5) // list of sigmas that will be used in subsequent generations to calculate // Gauss (assuming algorithm is GAUSS) and apply it to the data // This determines low resolution generations number -ga_low_resolution_alg = "GAUSS" - // algorithm to use to apply resolution. Supported algorithms: - // GAUSS - - // TWIN // twin feature trims the image array at the current state by zeroing half of the array in each dimension. @@ -103,7 +97,7 @@ twin_halves = (0, 0) // Support area is an array that defines region in which the image is meaningful. This area is recalculated at the // trigger iteration. The calculation employ an algorithm defined here as support_type. -amp_support_trigger = (7, 5) +amp_support_trigger = (10, 1) // defines when to update support array using the parameters below. // Comment out, if support feature not used. support_type = "GAUSS"; @@ -118,7 +112,7 @@ support_area = (.5,.5,.5) // At the begginning iterations the support area is modified in respect to the phase. Support area will exclude points // that phase is outside of the defined bounds -phase_support_trigger = (0, 1, 45) +phase_support_trigger = (0, 1, 310) // defines when to update support array using the parameters below by applaying phase constrain. // Comment out, if phase constrain feature not used. // when running GA applied only in first generation @@ -129,7 +123,7 @@ phase_max = 1.57; // Partial coherence triggers recalculation of coherence array for the amplitudes in reciprocal space. // After first coherence array is determined, it is used for convolution in subsequent iteration. -pcdi_trigger = (16, 14) +pcdi_trigger = (50, 50) // defines when to update coherence using the parameters below. // Comment out, if pcdi feature not used. partial_coherence_type = "LUCY"; @@ -148,17 +142,17 @@ partial_coherence_roi = (32,32,32); // The iter_res_det_range is similiary linespaced for the duration of low resolution iterations. The values are used // as sigmas to calculate Gaussian distribution and applied (multiplied) to data. -resolution_trigger = (0, 1, 40) +resolution_trigger = (0, 1, 320) // defines when to apply low resolution using the parameters below. // Comment out, if low resolution feature not used. // when running GA applied only in first generation -iter_res_sigma_range = (2.0, 1.0) +iter_res_sigma_range = (2.0) // used when applying low resolution to replace support sigma. // The sigmas are linespaced for low resolution iterations from first value to last. // If only one number given, the last sigma will default to support_sigma. -iter_res_det_range = (.7, 1.0) +iter_res_det_range = (.7) // used when applying low resolution data mask while iterating. // The det values are linespaced for low resolution iterations from first value to last. // The mask is gauss with sigma of linespaced det. If only one number given, @@ -171,3 +165,7 @@ iter_res_det_range = (.7, 1.0) average_trigger = (-65, 1) // defines when to apply averaging. Negative start means it is offset from the last iteration // Comment out, if averaging not used. + +progress_trigger = (0, 20) + // defines when to print info on the console + // the info includes current iteration and error From 838b1730ccb2182c364e505577b2bc45c4ce882b Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 17:58:11 -0600 Subject: [PATCH 330/336] Update meta.yaml --- meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/meta.yaml b/meta.yaml index 5197ae7..650e1f3 100644 --- a/meta.yaml +++ b/meta.yaml @@ -1,9 +1,9 @@ package: name: reccdi - version: "1.0" + version: "v1.1" source: - path: reccdi + path: . build: script_env: @@ -21,9 +21,9 @@ requirements: - cython run: - - python - tifffile - pylibconfig2 + - gputil - xrayutilities - traits - mayavi @@ -33,4 +33,4 @@ about: home: https://github.com/advancedPhotonSource/cdi license: BSD license_file: LICENSE - summary: Implement and parallelize genetic algorithms and phase retrieval methods for Bragg CDI techniques. \ No newline at end of file + summary: Implement and parallelize genetic algorithms and phase retrieval methods for Bragg CDI techniques. From c6083efa2b0e11822f064d9c5134bbced6551686 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 17:59:43 -0600 Subject: [PATCH 331/336] Update build.sh --- build.sh | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/build.sh b/build.sh index d115277..1a332d7 100644 --- a/build.sh +++ b/build.sh @@ -1,7 +1,17 @@ #!/bin/sh -export LD_LIBRARY_PATH=lib/libconfig/lib:lib/arrayfire/lib64 +echo PREFIX +echo $PREFIX +conda config --remove channels conda-forge + python setup.py build_ext --inplace python setup.py install -# conda build -c conda-forge . +#conda build -c conda-forge -c defaults . + +conda config --add channels conda-forge + +echo PREFIX +echo $PREFIX + +# conda install --use-local reccdi From e2e2bb2b6e25082f7bff7d9943c67958abe01ab9 Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 18:00:59 -0600 Subject: [PATCH 332/336] Delete bridge_cpu.cpython-37m-x86_64-linux-gnu.so --- ...bridge_cpu.cpython-37m-x86_64-linux-gnu.so | Bin 1983176 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100755 reccdi/src_py/cyth/bridge_cpu.cpython-37m-x86_64-linux-gnu.so diff --git a/reccdi/src_py/cyth/bridge_cpu.cpython-37m-x86_64-linux-gnu.so b/reccdi/src_py/cyth/bridge_cpu.cpython-37m-x86_64-linux-gnu.so deleted file mode 100755 index 8e05b7d3fbe1c99f5814200d4a0e6ab7608959e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1983176 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

        feP` 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¬wC=l3~vVbJ@9UCqv9u_e!re#O)wG>=Ofy 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

        GRS6E?R#lT{>KrP5iZTA8X<{ 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µ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 From 24e4e1d13e11c5e0ad8937849922498677062b1e Mon Sep 17 00:00:00 2001 From: Barbara Frosik Date: Thu, 30 Jan 2020 18:01:14 -0600 Subject: [PATCH 333/336] Delete bridge_cuda.cpython-37m-x86_64-linux-gnu.so --- ...ridge_cuda.cpython-37m-x86_64-linux-gnu.so | Bin 1983256 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100755 reccdi/src_py/cyth/bridge_cuda.cpython-37m-x86_64-linux-gnu.so diff --git a/reccdi/src_py/cyth/bridge_cuda.cpython-37m-x86_64-linux-gnu.so b/reccdi/src_py/cyth/bridge_cuda.cpython-37m-x86_64-linux-gnu.so deleted file mode 100755 index 1313da4c956f8dd959e9b233ea942592671b8924..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1983256 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 {*X9r^8*^auT&fB}|I+k8IeA>? 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�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

        URY5OXcgRzV}pnA?k@ls}2NUD~Z_%68k2e^29N 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

          !fet?DXsYPFIz`1Ah(8fl(ehoW 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

          h9%UeQ?|OlBD)L6y}>x1%vpwc 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 `CoDMGuL24R%uv{nM&VDw0iaxu}?DEHcf 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%0D`nU=x0Gf+>*F|lnFzWUU7J^E@=)Yx>>*Au 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 Q@=sLp#2GUR7$2Sg2RKssUH||9 From 678b80d5dfdcde700999e31eb15dbfb80cba734a Mon Sep 17 00:00:00 2001 From: Service Account for David Cyl Date: Thu, 30 Jan 2020 23:03:45 -0600 Subject: [PATCH 335/336] added some comments to viz.py --- .gitignore | 1 + reccdi/src_py/beamlines/aps_34id/viz.py | 16 ++++++++++------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 45bd879..586a174 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ build/* +bridge*.cpp core *.so *.pyx diff --git a/reccdi/src_py/beamlines/aps_34id/viz.py b/reccdi/src_py/beamlines/aps_34id/viz.py index 70f3e46..c118137 100644 --- a/reccdi/src_py/beamlines/aps_34id/viz.py +++ b/reccdi/src_py/beamlines/aps_34id/viz.py @@ -79,6 +79,7 @@ def __init__(self, config): self.diffractometer_obj=None try: #this may not need to be in a try block + #get attributes out of the diffractometer class and instance for attr in self.diffractometer_obj.__class__.__dict__.keys(): print("atr", attr) if not attr.startswith('__'): @@ -89,6 +90,7 @@ def __init__(self, config): self.__dict__[attr]=self.diffractometer_obj.__dict__[attr] except: pass + #get attribures out of config, overwriting things from diff object try: self.sampleaxes=tuple(config['sampleaxes']) except KeyError: @@ -111,12 +113,12 @@ def __init__(self, config): pass #axes values are set from the spec file, but if they are specified in the config file #the vals from config take precedence. - for axes in self.detectoraxes_name: - if axes in config: - self.__dict__[axes] = config[axes] - for axes in self.sampleaxes_name: - if axes in config: - self.__dict__[axes] = config[axes] + for axis in self.detectoraxes_name: + if axis in config: + self.__dict__[axis] = config[axis] + for axis in self.sampleaxes_name: + if axis in config: + self.__dict__[axis] = config[axis] try: self.scanmot = config['scanmot'] @@ -157,6 +159,7 @@ def __init__(self, config): except KeyError: pass + #binning is used, but crop is currently not used. try: self.binning = [] binning = config['binning'] @@ -243,6 +246,7 @@ def set_geometry(self, p, shape): else: print("scanmot not in sample axes or energy") + #I think q2 will always be (3,2,2,2) (vec, scanarr, px, py) Astar=q2[:,0,1,0]-q2[:,0,0,0] Bstar=q2[:,0,0,1]-q2[:,0,0,0] Cstar=q2[:,1,0,0]-q2[:,0,0,0] From 1f53986b77ec3a79e3a80b2b13bd5dc7efee9c87 Mon Sep 17 00:00:00 2001 From: bfrosik Date: Fri, 31 Jan 2020 15:04:21 -0600 Subject: [PATCH 336/336] added headers --- reccdi/src_py/beamlines/aps_34id/detectors.py | 13 ++++++++++++ .../beamlines/aps_34id/diffractometer.py | 13 ++++++++++++ reccdi/src_py/beamlines/aps_34id/prep.py | 21 +++++++++++++++++++ reccdi/src_py/beamlines/aps_34id/spec.py | 11 ++++++++++ 4 files changed, 58 insertions(+) diff --git a/reccdi/src_py/beamlines/aps_34id/detectors.py b/reccdi/src_py/beamlines/aps_34id/detectors.py index b700013..04c4329 100644 --- a/reccdi/src_py/beamlines/aps_34id/detectors.py +++ b/reccdi/src_py/beamlines/aps_34id/detectors.py @@ -1,3 +1,16 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + +__author__ = "Ross Harder" +__docformat__ = 'restructuredtext en' +__all__ = ['getdetclass'] + ################################################################## def getdetclass(detname, **args): diff --git a/reccdi/src_py/beamlines/aps_34id/diffractometer.py b/reccdi/src_py/beamlines/aps_34id/diffractometer.py index 479fc0b..7cf14ef 100644 --- a/reccdi/src_py/beamlines/aps_34id/diffractometer.py +++ b/reccdi/src_py/beamlines/aps_34id/diffractometer.py @@ -1,3 +1,16 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + +__author__ = "Ross Harder" +__docformat__ = 'restructuredtext en' +__all__ = ['getdiffclass'] + ################################################################## def getdiffclass(diffname, **args): diff --git a/reccdi/src_py/beamlines/aps_34id/prep.py b/reccdi/src_py/beamlines/aps_34id/prep.py index ec9c02a..cd2d926 100644 --- a/reccdi/src_py/beamlines/aps_34id/prep.py +++ b/reccdi/src_py/beamlines/aps_34id/prep.py @@ -1,3 +1,24 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + +__author__ = "Ross Harder" +__docformat__ = 'restructuredtext en' +__all__ = ['get_dir_list', + 'get_dark_white', + 'get_normalized_slice', + 'read_scan', + 'shift', + 'combine_part', + 'fit', + 'prep_data', + 'prepare'] + import pylibconfig2 as cfg import numpy as np import copy diff --git a/reccdi/src_py/beamlines/aps_34id/spec.py b/reccdi/src_py/beamlines/aps_34id/spec.py index e547082..1c7933e 100644 --- a/reccdi/src_py/beamlines/aps_34id/spec.py +++ b/reccdi/src_py/beamlines/aps_34id/spec.py @@ -1,3 +1,14 @@ +# ######################################################################### +# Copyright (c) , UChicago Argonne, LLC. All rights reserved. # +# # +# See LICENSE file. # +# ######################################################################### + +__author__ = "Ross Harder" +__docformat__ = 'restructuredtext en' +__all__ = ['parse_spec', + 'get_det_from_spec'] + from xrayutilities.io import spec as spec def parse_spec(specfile, scan):

          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%0A9! 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 Date: Thu, 30 Jan 2020 18:01:23 -0600 Subject: [PATCH 334/336] Delete bridge_opencl.cpython-37m-x86_64-linux-gnu.so --- ...dge_opencl.cpython-37m-x86_64-linux-gnu.so | Bin 1983408 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100755 reccdi/src_py/cyth/bridge_opencl.cpython-37m-x86_64-linux-gnu.so diff --git a/reccdi/src_py/cyth/bridge_opencl.cpython-37m-x86_64-linux-gnu.so b/reccdi/src_py/cyth/bridge_opencl.cpython-37m-x86_64-linux-gnu.so deleted file mode 100755 index f5b190e2df02e69ac61cb81fd4023b1a2e8bff78..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1983408 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�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 z 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�XePut7BaKY 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°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%0A9! ziNPAksKWjzl@^Y_D9)Ghr%EgGf;t<5fi9{ zek9v**(e=TjQGQcm#f(r!*Rd0OhY2%?Ok(f<*~EC+rE$ z_0MgL1OzxHAp4j^X<;fvMyO!HGVU=X-|S;yO~4ydI2)uzNi{X_S28QYj%t8BR)z2r zj6@=TtOY+0clE&m#Py@g!|0VvJ;*JDm~vaT*PCTeHLqg^-7E=|Vt45dv>jfX=pbuw zxw60}W8Z5u_)iN&*dPMnH4QeoKeHrQ2V7M|qP10l{2EL^u*_2pJIcZUql%+-uv8JP z6PX*;R))F>B@ooPhc26ewZ85B0imDa`DcQ=OHG%^lyorV{kF=~vVh)b^BO`mRgKV` zOG8oc^J%m7B}SL5zQ;C>Yg=jpgm;+xXzB-(inbW= zcD9hR#~kRW>{94jHLPdyLf;K>7k!9lB-*wzh{DUpC~U6)>wL^6>tj@d&3VOFMNg(*?*1n1m>UP5vpYjQA^otgr{0U_i@)hO)a|5Piiq zu*K*!j22a=hd`8p9Y|t%ssnz*H9LI_ka5^y z0;PV}>4G*d*!EOLAlO!dsAXF(j|Y9`uAfzFGl7ucRj5470k-^fDvT98No*{z8n4#c zh>!4|vT62e$msD{ZqpO=K@9Cp!}o+h_-P~)`Dk!{5U0s#a( zQ!BKxhk#WaByeL+O@Ow?mUVpN1C0y~Kh;F#?QCo>W7;An%b zqO5I}Y6%DXumWT(+{kIp{cJPNj$KW_(Nu-V_q^D^)uEt8{FoCkbwAG3YQPxSFvt5B zsRZWA^!2mSPh=$hKkU70jAZM29#s1{wu~hpmLc*F5MvTq$H#m7O!f5KPWIkXPfyM4 z@=RY&SI>Cw6CanWyQ+K2ySuATS9i~h!5abu0TLwP2k{?rqDV*qga}fCLky9KLZS%& zARvCgA1+EF2tq(YxJZC_p7;IU@3PjnR;{|7mUAlW&InHts5LAmQ_s-SvAW4Q^2nTqF+Y0^{W4|W}58xpuN@p^yC0K+=43#J=z-JyCet)j*GY` z6AnU#uoOx0Vf4qI=P@8q1tKI^)7vqeq4SaCdFcyMPj18Z>2FC|tg-ba6OgsP4K zE@#DA$K)}wXhs-~ayW?)#yem+#?d$==MjKEK>3n%bGfFcE*h>2;1+_<;>QT9fdwv3 znZykS4wmT%u1D~y_|yZqB;)fqhgIZZy6+*NG&6!Z6r+S$Gh__oq%lGc@QJSm{gbQF zh`|Q>JxDQ9abV;$MdywU-Mee{^4sGpG;TX0E4`WA*aJDOQHqYS`xEuT5f05}V zKNn*Qn@oawIWdbY5#U2O7)~Cdb5LRs3L<7;=t_>9-wSz!cnc+?n*g|Px7U(<*Cebv zZT`YDlaK^9fF)mR)1- z2j!+t9lXfj49^ahlMAG^MsU*cJ|_MgNs4+>t%Ug+Tphnb+8zNoaH@QABmlC$NX9HQ zUnImZ$>0s0o6Pf^7aAM1j3BucnjHPge6~(yI!>k{gr8r&+WrCy_l$`g@iCrGZUD~U ztn_H>OC)$EQ;M06NHz2ivVx*_3_`#^#1bt|bUC`~0V^jhI=+Le_YyOdn3pJKa^L&m zK=i}x&j;sPOXffc6KQ2e z$R&=D5&sr%qkoFfI)xCZd2l2fVG#}Vj1t{xmqbT6@3d)5A+jKjRIK!k;%iY@Rc!a6 z2KVNh=b?z%0vqeel2xat#jIm)IRs$EEuieFH?=YF8exM+#`q(^s%YrL(fQuZ7)}vT z9ZWgH0-r+e5wX{&LASs##F)$uB$%y~6mYnhFKS(i;BQ@Bn}41xx^qUGF1p6D7*GR3 z#-+`=dlFo@anVFP-eF_BQQw78Pe}r6QkSnH3bx$iYjx^X)dg=p(w0$U-@>BXM}<#xW{MO^qayG9Q`FShEtThLt3x z_F=#@iZai5jY~f!l00_Wa_Y@Y5?I5*Af8(kV_q#g9NC$cJ%?Wj`}^V&fvM{g)xA_i zEhsp+@Q5kEM_MS^im78*0l6FrT{^AQekgHf4b>?WNRoTFI^%u27(A>m1nhu10Hy#U z)$B_~oSZDh;0X#CfejEAM{;%q=okW%OyI)qY#}&sF}Y-3bQ))Tux7x~4#&5Qk86m< z!8Cx3(8TZckWqPI5(#*yZTVvK9=-L3Q`J?Okz+s*jQsDXG_~O1z;97aFF~RHl{%Gl zC#D-rwm?TS^_3G44S_K#AA0v;yh1EUgo=?955aL?2t7NJsn{6+>4~f>f-=VdODjMC zrVoQlkYS88j=pyz;KncE1IbgT0|dMzSaN~bQ94=^22rRwq{l3ID1c<SN7tY=L8kj!8w2rJf9*lT4fid&|i)&PduCFIrQLEMs= zhw0_n4Jai}J&GOXgqO~6F=J^cCue06w}K_mH80%ZXvxyvia8Xo&cR;00G%FP8{A^r zCeaxHaymExLe^RA^0K)DI2(^(O-SUD?tm6ez^`?ANP#>dEGiWS&J9he2$%)S2T!wsY+xYp ze6Ao!-f|?zlhG9ca!M7j?r0m`FzabKwE~6PV6r6u=l$X2xP^4}uOilRs$bIUD`8=A zA;4UsWotOxaRAiBG;#tD?{x7iQkR0CXPdhs9ct~&5AW0(`YK+WZR7IYa?aTyipDcL zk|BJ@yfnFdwn>Cjk##&HTulJ-J8zu~#%DnGwE9q;48n6w2;UYqiUd>6!pSCg6w3fb zgb9mAMa|KtQ4bpt#Rtq^AV%ikWYf@~IA#KVO#+ygIfzYwD=iozF7Cl53{Ul{q2H%9 zZdyZytX`TZWWc+|Q)o5@6w^~eBg zWLT%3EDit*7tthf*TFIump8&xegR8)RC{w}9yMschJmCe#IE%GX(lb-nhwXO(1M87 znD}mNv#ZQ16n-g(C{nZ!xagP6V5@Q18(F?Vrg?f_K^80?IB(s)bw+d~ApLA3DsC1) z!{n3~tlrIbJ~RYf{|u({;D`w<1c9eOQ1q|gG9zrI6L+wtk|JUD+7U9n;L*EF*j0q% zz}^tc2~UH)MGH#==J|l%%b#g->x7Dn?yc`WVoX#DE&W=!m96VHV>8v}*8Lko!4Zyt zd5J>(h>~ixIIMBu_$B1D!zkM?d9$|z2~3wwcbIBkm8l6Y@d_z;Qk5mMgZ!}+*U>n{ zieeT7umfpBS3gu9;%lG|r7pv0n6wkg#X=By99KOOG9UZfj`_4~FE;yt)~P67>7I39 zUcrd$U?|L}s19==p!gX?<`-tZyPu6)IyecPS?IS2s}!M>e8O@U@Oykk$rWfC_Be6b zGQsUp_3CHLZAY~Qu`(v!0bmsn1tT;Q(d=SNA*#o?FVW(#9AH|0$vA|V=VH=nI7C@O zO**+y{H#m3OwMBR#vp<&sE4Hos-+sIXOkmXt1=fMEpd)o4yiAcbUrfFApY)^B0WAsRjQSgqhtqb z#8RFh?!XAKL>=(rh|hDAotbNw;!$dX5JqUvV57d+^ycC%9CDnW!ZT_C;|ZuY!xey> zk`PVU#g>qZxdS`GgeGo1J|2$Yc4@`7Kvhu88Va^$eL&lo2FEJZ)_g_v3lSv+d7_fM z5Hc3ISSQ1gGDBzpiO^KE)<=w0+GZ@^nl~ZfH$oOdf{>tM7?-GCGMlgu?GH9OC#f4` z7&2c3MzYWafqoo8FW?B?77J(kJKf!_gU%M83-QKs6;3tO#)%bn6=%_#1hMI&Cre-F ztOi!D(@FLP0>rnmYSKbkPE-`Cb2rYe;b9)Lf=33$U|LR?&t1r-Qe8O4$@6ANxX?%7 zq1dd&6qA*rw77PjWUaOg$uL-F61AgEr+8;!6A}3EWsnN=6)JXtNQ3^X3()|hA)WwQ zymZwdk<2Pbdt%uY!|9X{N^2!F%Y_nU0HXJ4eolHh?rta|aI*%4Ks1-vZ}4UGB@SFs z5qI86WviK@#v}T#OTB90)aB$Y?7$>fpa?mQ48oX1CbhNkK;_gnj7T*zrCg+QK`feE zS4yWj6aU_@@cuTXbi!nrFc-_kyi|7>lH{HOV~&fA>A=7elY}C3NUjSbSTH^m*dN~V$jS` zbNOe`7mZ3*$tz5_q$auam>8cxkw7woxC`dF2te;f3x$GxhG&dyD4&SmhW*KcXy*@kM{1}`RIgIlDGJG zzq^geENXi&hBNz}!e~&x0tF@A87QgVom}C|5P?Df4YGjd&GDCl{l^SZP0HkWp+aLG zmDR9CPN3UdPAbp_G`+^HoLAEIjZ`2I@;JWZcL>}8JCCAoahVvE4H3sLaZG)OpI~g` z|Hbyc9i!V1OA9!dtLr;)6_Sn@hBD>fiQ3x|!kF@NuP0h;8T;4`1)Bll^eJa>vMhMa zkX4(WqDxI|LDnVBJP% zly?`v|3Y>8S=Ksajh95k+Hm2e4$(&}VCWNK&84LoPPli?Xr@y+0b9=;1#A}EMj51rnm?+T|--Z*b5 z&OLBF7EE~4)ioeRClv$ETLGss=)nA>EIkNJd?OIp@#yUA7X7bU4jqXJWPQqOSF=LV z??VZ~(sX}BB*4sO9}%%tOstEhD5P@S9Jecj($BgtJ8{?_-A1m)?@&&R=1rGCq2UaNghH({FLE~u#-y<~R`aw;_EofoNNI-NdweUxT8RTE9Kb8Md>lMDm zy)@sM3gaZZG2D9gX4(ReiOGnfh{+K|p#smG(a6LMwudK^MS9;oUWEd0HjUl?&hTts z%}34^itaN^l93-3?@UjhTO@c&okWQaHH84xC~B8>i;Wy}7u?)}ur80T zq>>ukpd!8*Xc-DySZEQbGlO-^5m<1;xg4IX4htFlFXAz>UwjLCz5 zK=l|LvO2+5REB8f0xe=rf+Q4ElbR-f>n#c}sb)c2CyIDf_aI}*Xb!7f+om>q_1Yb$ zeP;HFOqS2YQiwmGOfGS4mFdtDQepxrim?fV1AMImORJFGn5Z7Ku^*8YxW_}mggd9~ zcqmUO$*rXQ5G=CU3z|zvi*W!Pfp38!mz>z^$qfxfAyM`vP^Bh8_;alo5w}5m zS7L5Lh&zOfd<#ViB7==#v~|-SS6QPp{1{3`fXOoXWvF|recw)61EkyOTckTKpo@|> zW$b&Fk9iJtkrkS7nji_&?nGK#BqWLNU!f!H*7yNib6sB{g8~hpc7H}H4tfN(_$r{e zlRfBh11ghFd0K@DYbA;VcpNtspt$IQ_QOP!)UlZsZP189bC8DLw z3IifmDiB1r2iQkERnVFd2rqh6PAF!+TM)i@l2o@j0Rcw#xs5*Z5?le{(I_sX*)b=g zyL(QV1bCISZxVJyiw3&4plO$d$ILjS&?9K`XAUHk1~gr490OX&48KQfL}&ukg>;|H zK5U)0INgk^%00T^<$zATT`Cl5<%ULzzG+;XcbXX#D3WYR35RaG;zk+HY7^6U;9ZRa z%3KlFK6qmAHrB;`3E&KJ1OOS>q|WPUv^QWPqOmU1wCaMP*B30DW`>^%&^RrEGtT&u zMOF&|>*MmLVga*RkgtUDbhB|Ek)?bSh=#o-slddZ0S?KRTPI6uF{ZGRbiG8wLz{!{iARdhA{$ZHV?4@oD-XwAUS4( zJ?8Kr04{-UbTb6+x6g>+GKoz$Rmy*I{VMjt>6O2ZUX<_fWDBL zXA_1L_}WAWx?3sEO)K-f;@}&M5fTq*ylD%)5%m`Mp`@g1WWfbeG#7ItchMVh(Jg5p5Q=G^U?WrW-yn!J7%N;=jEXo2H6n)anyfAR zaZ>3t^^BN4Ay#B+(>Stf<(qo!?(KF!rV_L6BfM+E3#5v;lEyD}(3&vRZgOxO5kdti zkbHYn#)h1jg_oi}bMc$3K^6FFNaOxOVm;!phs&K^Y8bqXhlt&N*Nu8b;f2Mqe2b>NH7J2#ozRr0jSHT!TL4T7jdq zz>XpoZbA4OOeS2TO(gql!XYjC<34(G8{`|(g`CC_xe}dAP+^1~8>|rW>w=G5t`6|S zJGH8@&N$HYh?WwF;Orvm^V|Yd4IIae_;#THOKCz{F8g`>0_I2;GFRIYH8ud;?TJ~+ z^Wkb%EHx=NV;ShkxFNz?3j-t-A(ctYDhU&Q?`CioT)Kh*Z3uSLPAqm~M|HH*0nMY- z$7Xn5+Z9e{a0s659rU+ezU&{o+U>C=wIT=cXiab{H7H5CWo4nh8PD;YIB5VkPkmyQ z+~*<=aXtPgi83pgfep^$v>5$0Kf8(*9%UFLbsHHTDnNr4ZwwyQw)Q{_JK&y~hpC&v zs#W%>qGl(7L@z2Bf#X5|3awK;3R*Q`;r^WMl|#8=pv^!hX}eRR-pHQZEaQ!3CmReQ zCqLZA2Ic5|Hfx_Is<8`k8aQ-wa=`)gcAn8@6l?65dHG)b;6gr}dEt3V{53D?-!gPnKjw3?! zss&r-_)9S~@Mz?Kw>Ji-yJA z_&BW{5j*57k8cqL3CGHHyNZQJ7{Pw$V7s$>=(*r$e^!$JzH`2tVYQSXi_~KiLnTh? z#4ML%nM{-iFyVF#6Mn!n5P5;CsnS^fL=#@E2JL{+-qs0M;LF1(!lnRG6w3<1w$89uCl9ru2PBA{$-Vo_>v#L^K2sB2h~;lhay?C_WiPsB1*O3xPmA&kzL@ zoZ1!@?!9Y`s%b?C&HNmCQySZspqzPh{Zs??mT2TOy4aVocMD_ET0oiZMUw3;mh7Nn zhr0?)S`JLZ_zPVEbXrhXn+o&grZ0QPZ|G-%1`MaDNQSUQAmCTg#cw=vGL`7F38G3S zPONdkE$kgI9^OYA8sb=D^06gd6L>pL0j0&&3@|ks4=9+>e7m+&0M9_-A5ZB^9gi@J zARC1kNXO>{Jos@Qzgy2DD5&tsNWkp^eg(E%L%-4Ryi_ts{_i1cOM&YRVTk1@y+OMc z=}L%T`j%=>x?bJInQ8cb4c$p)a7J`Jitt8&UD40eOl#Q@$d#8P2nJ_UtBu;EJrCMFmV&`!0pI4n4e#1s~4V(?L*VC0V>RREum zU|9;TJAO0v+j$hqWh{PpAQ^d*ac>$ED_)kg@VFgOFHn%Fc??+#2?ifVgrVCP6Fp+w z&%T9+xHv%E0hPc)Me%Gf@O_AmnovLIHkzA?G_dC_4K~1pW0`+!zt4?VyoXF_F&htw z6xoOdmk~LfY%eJ5fwY4ryCV*;fT!#?mNrlpXC_6JTFBX-WvE`bhw4-u61PvL3I31O zZ1Mi-++W>(4DICWkx<?Dv2nr~S3sHwt);@(yZa4i?{MLv%3I-U;l1(A{4K2uj_!!9% zShH&iD=M7Oe@SE}GBuUqxCEtRxjM7xmA^+UxkJ}BJ{W4{c8u0L0sT}x>ey^NW)My+ z1iv?&_KcbKx29^C+qMLtMg@{#!l=5U74bM@7sgXDtKFhen^G$Tn^==#Q?dXoX=c)A z11mbW614E-p@Y#dhSx+ELAA|nywexaa~y&+(X9VU8tcsZ3L$Ia+edW@DHHb|v+S5^ zbMquc&liG`DP=#5Yb%htu406H08eU|Nl=54xp@&shYy@5YLc_Ji(wN~SD$Ep+R1gi#R1@0Y#-OeZOCqN z=-GRG{YoP_&WBaIMqAXVRinTMzYCMF((c}2|L~yu{5hglEC-`01$Q1ZOv*HtCOC~cf`yg&p`61)I#LfoC*oL{gWf~XLxEL=-`+({cyBqy}-OqZn#mRmH|n?3Tr8aKq7f0dkozThr(%fv6P^q9icFk3gkW= zP-ImQl8v@ZrBR2z)d<(Z6f)BmSykj+KqBak3|GRMbhmq6(I%C1r2p+%_$f}g`!}t z!GxD+6UabRRIMfBFN*oNwNL2dP5J4_hm)wrn{l56*PN0d;nkfH|SLXZnAew7`IrmfF4M9B?(5M}wa{!h1-@&g1 zP3jg&EWpJ%CKrI`VzOML<`8K>S2EMkSP0D#!u5MlrP2qZ;%LZS{J{qz1cv8GtHueC zNT*vcai9bx+nT;dA0=2itkAfKrWgcX9x|sFBI^ydXe%TgWlVlvUHJ%hxS?6tIUmLt zTrd_0MTLK#ZqPH^IGoh`)ON&FA1Z2Kg-K`iz5i0LNBUM~TbP*G=gH}O3kK|RV`#_( z?k_8@xkx+7<7q&Y^IiNl%Ozig7NZ#1J6an;{g4j=pa=vX@?c9Fi`MoSLe~19k=+t2 zCvPC-x1WX<0tv+J;!3(vcvIG2W{2%d7o2WY@qxBk;s9>~d2+@ALEdzQZ;o`sTT~8R z0oH^(y{jGq`5mDkWpH-+X0YG@kivGKsyegut$Lat3+5L*8${?ac7)(QVXE_hxs#PO zDdt6zx29#9=Fh+1rSFLRqT7KICPoZWh2w&$aJ+LU?iOT|tH`zO%AtgVTkP1ybPixs zW7$L_);T~!YA-b$i1v)x75OZL+N7pMY&k?+Z7I~SF;*@*Qy|A!!{#_J6KXQ-OhU`K zdvg}M?2&mcLR)CVGp+MJjA?_TZ6(Ob>oTmv9ZO34Ds#8isPqwSW7D@f_2Ro^=k&C> zo*^FaSr@qi=Vi*L)El@$a9Oj@ST;(yi{jvzsYv#Z=~zifi5g&X4Wi=*L}pQL;xmgT z*bbf4OYY`LmmlK6$x;2+TNVh``cA=e#WgI4gvrfNS!f_MK502(KQ8T7s!{@_y0JFL z$Itjq?08LmfCe}e|A~VFlZkGWz<_7ZR}P8c8mY-ZgEF>Q3ZCf@84q1E5izO7jWBMb z;@rF7?yilk5EV_CSZqlE8s&ujFj<>WD4pH7tLCiQn}>rV*Zn2fMD{}GP3a!;Eux+7 z$bSrbcn8J?OadlKlU7u)W-JrD4ci!r;HZ?xmrBr<7K&lmmbgu6&Zw&v8A%FUD&r@u z?6%ZV)9-^P;9i=1vJ0Cd^Le`#ZAeg%8ChD=07EM2i{;F*<`crgpx9L#z;jn&p7$Uy zMDA`N9t2_P(!gpuQllW)E*6Bz6p{eGWFP@uHtsDf+g4~LBUOXsanvq@43S_F%emZ) z$PSGfK%gUl^h%eT`Dzq`!APd=$V*--do$5DLE*2(u%^Y<1-xs>k#BfY^=JLjM{dnA zHb(DFzQHOJc?X4UyOSetcItK(&;*-wPikt-%luSJ+y>ml*@Lx%WxB#%V3yPNAM#17 z|D?M?VmFXAt!|9@jf9@cv2efPud8`;P3EE18N-aHypWcKeG~aRY;Z<6v#uV?+Q&!O zciU&j;B;W*;u7w=px|6Vu#6-u#=r<2s$vF7$9d_ll^AXnT?$Be3Y>yq6Sv0XE|m<# z@GJe+P~{Y#Xh62EW>#5WU&L-30Ipxq2noBmsrO7tbf-O?1O*txoiycpt=?`v;b?#RUvA)&E;l3_tVx2aYb zBkpPYDQg=uGY&#LpT+_pF|y@%%qk|G8kXcoz`ZE5SnjlEm}IwB+K&OO?ix~a#{GI) z@@md~21DmmnEhS`XejwH%^->LLUeX8*pAWYgR>hTju2I1bv`Tr1U}LG68&hL)5A#I z=yY_I+p`?ADkVc);eu2^l0-JzqUE6@v}}{Cu6UU#TPu5;~kOAq2 zq%F($;?3Pz&rA5v?#;QRs$jIDp6Lt)2O_{}rOfT%Tf`TeeuBK^iBzk!%{ArhjpJDIKqa z%>?jQfmj^7CwQbjizrYvG43>mV( zf1+T&i&=2waHuC!*+E1s{s3RWom^40$0+cxD!m=VjF>Y&blo0r3y>3<38`o(Tjm}>C4vclhR-WWT9ggV@bVLM zH7oBoo~jV~-Y&1tO-oUM!qf!+@=LU zLPMV71pA&6&>3im$x7Nyz~!tg~FfRIiH1s5A`Q(mZM88FK8XQf>@B&K32`F*>NSxUmR!wt$rbtOp3~ zVp@fJHJFxWY%~mLhRi4n}`PSzTDdWI|o&!*gNzI z9(`Ggq11*aOew~1m2;IYxmBRe(pAGiSZ+-_u3G9u+YDuubnRfP=3TXpg9E#%t9?-A zSGz@QAdPaLr|m4G1*#py%ylmwCN z;Kqs6cAV^L8$McvhS)qZ%#Pc#|^YuhKkKa|H(XXJ2=qTZ1n(MN|o$IC-#7<33-Za$YE$W9A1iZ|BEQoC` z;Xp_oJ;{SRX>jaejM+XDFEX-2;2^F?!s3shxt(PIkE>zb<(_tgrL z2PO#jep%tGs7)g}$VN?_W%U$li5D!fIiWwrydw)cD`uSI5;M^oE=k=iiTs5u zmvGr4V{rlOh(y~Pv0aOWJz=y?0?U5g=b~aEUc|*^V??}Ykzu+zRMj;N7P5*Q%(I_Y zY0Xa(RCldh|n0J3WaC zY;1YVp#HC%QMaIU1a4GX-!7o*1adluY^nPYQ^RzO48$8Evh^~niqyr8o6{w%8zY`~ zh2~N0B!~s3y`D&Xv(4-g-YApKKMEX1=MnJ#YDh3)4aBx$36|2ED5s!;+oiU&kWH|a zW0$m6|JxVF+Ck2h%ndm!%F`Ph%}wqmB1esjMFgq_Tv2@<8V6XNRz0~@e!UtAH2w@F z9_Bo5$Sp=Xmurz>TRU~`B}5X`$d;onZC9XS7e(3>&&5clG14xlOA$u&Gl>L*MxmO=b=6(SmDp_#H-jzWu z6XHS`4#vH`0Rw7YV`J8&J?=m6pRnVeWHpHXpw^h1ldE1MiUYm^_d^aWTu-mTXAv@G z9u9yEkHEtoE3K20vm5lXIvNkh_=V+bq!Qmd!svjIzGq#TD(#gTJoLUjls#i>F9e1svo>~FhDkI^t~2G zOI(pU7a!iaos5UvKQNx7Z++_=r+D^AN5u{kX*Q z&m=M1cel=vOb1x=_)TG(5UrVbf$zURxVjp=Z@1+iGzOZyd;e$*l;N>fdYRp1*eVI~ z46Ff%aT1~z%7LiI0K=N7ck@(c1gjL~DN-o6L#*gQ4-Npps-*-;ydE6IT~ecf ziAt+kfG%Xd-Cj(#igyT6)Rp5u%-xw{%dpZ?UVR3*|G|shUSHSUs%JbQoHGi6k#Qbk z-dkw(q=}1w;?F13YyC)kiWd*EjFMZB1ReHT8lT^sbFKTWt!Mqt!2uKGhuxhHQ#j9< zz7fQ@TO|LS#l*}b^gh4@ox5hTw(6KrTVf}Z(y4CW1w0E7(s1YU^Tgeg+}4r!$k7$Z zIy+5R8gj0`7zzu`$z(c$fs+jaW@3OYx`B!Az1rUH^m;I`qz8l-_KHFGOlLYkPtPGI zC5M9*46t=s#_p2LX0?LlCm)brpqNG%Q))Cwb{G8}U7)H&C(JSV%;j#&1`mJ@q5~>; z`yO^Hnp~YrjRnW=IVTaJ!`EOVw7{tSU3~AF`vC{3z5j%DxR=~Uy8b$;d8~O4_Kn}s zcD*wmBpAn<2WetGe?fb5JVi$1Ozd2Mq*NN@ua()8IBL!B0{5!D}bhAUQwl4Al@3-_>)V z*dPV=oQn^gX}r1z!Um;S@azC7YH+`ty3<+;kZWXm+#OFNqQIhXIe?PwjZe=9&&F5m zXB*!D^F;ACNB=j<^Be_(Ymv))PtSVX0%-gfX=l8zvyKp!-*2bF(oHz_x)@ zPhjsK;Xf zO1VAbJN@RxrJlEWMXFhQ%Zea`x(VK2Kpb_3(NQV#3KNEKNRPFQ5h{Em4 zyYq<7xcOJ-RLsDFB2hcOBWAoU*wWOIjLLIv@J?HCluP;B=sBlRV>8gJNWxm3c8T1} z<1@P3Q}OCn;Bd19Gy)^~mnV{6G-;vguc<;ZFr#QQKU2V6nva~1nKX;cv6`;Hq}Ewhw2^zn6rtyl`l@#rXIB zB_tClC6M-_kto}$4r52sEm#FlpS)BGUiIod0&7dGN159{K4PQs^ojHrEKc02$fq=u z1u|VsdV?kuqRgO7P`Ew>naHdGL&?WzCy(a9&YLt*(U`}82&5rOVmri)0tqRkmgnaC zaI4WC{k9dNQh*sJV@kL`_IE(NLSD0CAondG&EN-iyKvCz$(2TeT%x5qP+rQnR$r>g zNfJn%KAYie6%}qUymR8(WSaMFIC<(-J;H_|=!tne>Y$v3r(+Sb8me_BK1l1K_sVHi zGOs39T)Or&LND2<)aw$@Xp2Qb&64Akhk0sDtFHT`pRu+?Jho8;GP?TC=xVY*7{+cX zVjnoOg)T4bCeQ=8L_)syjqQzCzjNOnTG{SXJ^j-)o8lze4Dg6Imz2b&^ZgwI;cB;+ zYDkGl`eyYDDtQH0EiAH6g1JSx;cT6z3>Yc(3h!iNFh%Y4Nq>0l%vfXYyhb(~B%8(9 zl%9~1VVa*L!hTv|=VX^y!3v67eV_Z^a0S6t@RyJ(pK$k$*Sa10{I9hBL+qBJDV%s& z7n1s(Eo)pXq@Rp%)nI*~Ax@>&@EKX5g7S`UnaOh05~R^e#p6E4-`noDzA_of z$?|g`N*9ho`z~d;h8SdN>Oa>9BO_IlD+S9$ceI@zdMxbA`UzBtY1z*PXSX9#wik$x zy}XN;gAGlE71YOEXaIA(M532XWsMp;6$%M%dhd~DN&WQaL;Fj}A8&7{_m3y7nyiYs zzwj+_Z1^6+tOPYcPYvENHJP&eV=FOp8fx{!oavZ?%;L8$ChAPNNG2goIMB$I1g+I4 z82<&UUZIda(Ol1R)`v^+2gW@QxpmagJ67JITf@S)v;Dyq&i8vYk+t3)f?1xp2%LEV zIc1PlndKb(Y9y-IC$W=D_qH4-T!@sK**?^pY9a2R$XG~tQ7_lczr?_-@!%cZf9}rj z`>sCQX1=LS>noar)uQTM5*y+M1Wot|U?!xQubs^Iazw7x+(A7@6yQkFn?%~+fvHg} zy3PYM=KVJKuRg+o3fGxcx0YE@!|Doq$0B7gzP^Eds~F)h6B5dT626Z*9V8WyDA)hx zJjO(dL~w%j#q`sKaa6Zlb}Ulbg=}EV6GFZZ^d_IqDQx+;B83SE%9gsIZ2Qe1*uWy}*rlEqO>ZU5&3Fimzb*)@>q?`*Ty{xC`3PEbaKFdH&XE!6Rn}s zEQmO(#1QfbbkHF=Ky4jPfR-Gy;jcM#VbWIfJ?ShiZ2?KYfV0ubb%3cgWbP5-U{6n z18>cux$l^l2y4baKu8Q+Sxtg7C$cKco%x4LNL|Oslp#hFB){o!Vbo=mps-Vu)O|1kkB@5Hg16Du-V%;!JBhs14SnvUI9iyNi zi-@F@ObV7$`eO|BNv3%HPQaT;wLKSPvsO_9sY@fc|>UwI`jMpg~XT7FMGkHkoj-)msj^1FEaHSd3us~aoh+;k1q zA1Mza^=it$r!G$U_tf7h|DHNO<=?McH&Cjx-Xb{)KNaE}<-+d%ih^bfF#$|QlLW6= zWnrH`+~0cp2K)5#cD#fzt>at99He@wW31dLscpNX>Z3C2^5BM>^SUmkjYnHhsLteA zAPE=7R~BP%9SXG+u3e3vd0Cs3a^=(*dC)?UM{QkbTsvKzwVyA+Z?R;D8(7CHN&{NQ zONbXW%;@UHVFWed_BP$#noFRkb2*P*$zvx`rlnF~71n8x%od1_)g= zVqC;qWl~HFnIZ{*yac=tK4c{T_8tM;u0~bRzPbm5HEivOgb(4?P3HM^@guXMURXN+=ec~2K^gZ}&tN;Q zp?xgzX>LOR+qq3E83re6umAwZhRUpzrk~G1QsnO|kWf@spn|5kh`4<`*e@Dq#v2Wf zuV3w|*2Zkk0Sq5t?Yk3#&kB+I0&>Pg!2+ty=RB}&;Z$}K_j=2vTq7VTXU^$*G-VfK zt;AmODp~9@1otUE@fY^6d^=l5OkylzVGr!0 zDA7$-)fc&}NBE+J1YNL85}$XWXVsegft;Ii3w)#VmO=I$#|1Kw4zb~(l{}IN;>REx z`uvBNC6C|J?1e=0^|~}RfDXzIq>Qa*0U{9S&KgVw?iLq=Uvo%RHbdz2B?s_TjI!fA zSt6btH;W~as$+uUd7#)>$TlgV+=YO20L&$< zrZRL1LgwYqwc+A{0fQ1E{mEW-vei5oKSfJD zbcMPdr#<`vELJRm{$&-^1CK%h0FjGUa>k>Oj#dxNsG2Kfq#q$8edBq(hTU>!-bIg_IN*rY7P z(pnP`(m>u4iyRg9_<+1S0@g|mdvEoV44l%x8gBPU?wW!hey~GJl^9Wc7<1qXN(dsG z1-&Ye{BnwQisV(HsY;w_YDg)eH+TgzN}~b8M}HK$_r+NeX!T*1SW06lEI7p_)m zX>x{8NDM!XPs3~QcHh#k2!y&lI6J;M;}*KMkHZo+Q@fDIL%xfJYKhvkm_H{VQP+U*NyC%rJmab%zy za>_)s2FXLDKYdmjNt3I5bp0BA1+VU-@9vc|F_&I?FI-|^|bp`UiiTZ?uVuvb;YpveULc?P2cqlvWQZ8$n5>oHOJKXYlHEJ!gfix-q zpeiZvzzwUyOeFl8ETkBMITX&)WEr&vAa^ina07@x-le6hzTEtPuTM(%y^|u$vdOAt zSU;gU7Y@MXNpbU{OiHsIMQl4^6K(?6nSmAhj=ys?fj#^1>sxMKC^>}Hza+@}Y9>X@ z%T+Uryes-b?Txt90uzkZd~X@vF)LLHYhHGr`2E?!rpj|i&*HA!wKlmF4t0$f&;+BEuI4Jwr*IXuf2jS4r z$Zm*a=ZQ7lY-k)?4h249u89dCCa}b`F#`n2CK{ON77OvbEM^}w9_Mf}^yFPVn)Id@ zO7dDg5t$TUQ`gziUjbeVUC%>iepYWBlNAXQi;>dBCer(dec@afaApz3BF&Oe(L*qv zdxIm`l~I#!ehSW~B9@^|@hUgkkgJ-}MGH&zH`e+hAv}9)(-=A0R(iHJkAQIDFDQV~6Ih^qqs+5!`;ozU#3&yeh>lad2N^ zb=cqD+kMu3{_3Ffw1z;@oD+r%)8l@g=3YqGU<6ZT+5HEc5Jb;>icue)&r77`Kd=I^)LKP8g{FB2lLl1RM62CnAGonM^{y=`$U7EKvn6Kg3@sLP zhlw0+@bzjs8ZrynLm8Mz{raak)21n%CG!zCw~MvcYRtP01B1ET@f*l!?p1^>7`QER zeRvMmn577ds*9;B%H+f>!=gFF$iq^|Q7%*;Y+t+oM@%`>ixSB`xezoY#)OSb{kA8; zAYM$YQ&=Q8v|QSNVSsH9hzP{c)I@o7Ik`kn8gHg}mWBnV@?OcTIL&S9zog>Y$Z^Tf zj#7C1UjMWx$uBHeD`)3z%#l>wCy#GBkD=>KQ_=3)jJq~#fHP{0Wu~dLYQXjmdkD)0 zEUwk1i5ubPlV?&>2PSXJE# zPfVNr1cUs(AUbvTuKC&V@g;T(Q-1Vb-Wp^tThpDwH;rX)h{Dfog}xSaM%4WQJ<&3q zQP&jeM2?PBE*rnq%u35Les=~Z-};u6$kBv}^f8rZpo4@pqU?DkKZwCp%wTE(1UqT) zWlr9Dgi>UT%<`-)s^F>0Go=K*v7>vjk}U-=WpZGvk2)L7Dez6siq`B#p;L~0g;=kv zXP3AUII}v_$<5XAh?5^#3Z;abi`+@oWs*um0`~=rFDofQzQrL=ih7qqSu$BfrQr$1 z-`n?l>X+_gLC2FDciG}5tIjrXVR$k9UF^TZ_Xa|Tq2PCNz%@mUA$T&iBy!_@bU1k` zJ0t4nK;?UlzZj~ln4)uWZBOnAUpgy4bbICy;~}g@pUh5p=7*<*pkJW&>ti-~oxT|t z_NQU_8ie`DWIf}b(ItXNj(&g2=>Ftl$PGGW78frnj0%=uQzOahLOxqSZasOi`?SB) z?d@zGZhyuXB_y+&^~%stHxCV6(*UBrAJrlzmW{6;qehFWFWX=aPy5UTKPI-G+k%jS9Rq1#pnBB-PVYwNjH1BM{kGB_+x z;?I?Pf*4#8O~c2r&a2hSV6bpX`)8=E00w%5UBXAkflm***o@DnPrT+Bn}}5`DWpfQ zWq(2xVfZS0Otf`+T+_$WcTS24@`yXD;mTBp{D2G|%cr~TqwWADcUN~1+vcOno^I-+0;nuFG&Lk#=|omra#WuAldZdGznl+F#kPy3 z;6eeM*+LJmb0+;3g3@W)FzkNSNP-vP;VQ|S%Ks!C9e?e)nZOmFhae&X2o|z?){)>XSWxSDMF|tXj+Zc!QI2LbUA@Y! zBamBYQh3o6oow**MjFPWWU62(W+QfYUvItaKJCL>+xo(Bcg9o@=e7*BbD(R*TCZR) zN?F}Cg$}K#H`i5j9nmrOKFI*ccP%|XcRtOt!ERap> z?}n>cbsu)tUYVQR^0}{?1>77#wW$+O^hGzjKn3Ve=0LPD&x&gr$lkr!Iw<7Abe*1{ ze4~GPEm-{G6Mdy*s0_yQ4YPy1PzRuAB)#U z%?hjcnjirqHgjj1T5}dk(s3BsHMKb%-x0tJ`6==>tYECo>%Ct*sdBrag*Vt)EI)2=9^a6w`ab?#%7BJ1X zgR5bGP}}4qUcH3`d!v38kl+RJe5eYk#)xdk1&FZ?89*A6QuJHe(v$%a$jJ*SNa7AX zJALSH1csGV7mXwoll-oCv8TDx9>5KA>5luQDXJL?U;mj_Xt;fZk1hy>ukjv1-Fi11RAYB9=$srU6MC9**qU4Kb``MZ$D?^oYq?! zyzP{fplNxBOH!K67yFl*%JsyUC;`d!gw8~DOIc`ny!1*&(S-~`v#JqLQ{AKSX#dd; zorQ^t43>uezA#Y@lj$6)+yNJ5LS1RiRu3Q~wEAam7ziiksw7EVG|_3)A1t(8w9nXx z{%yk6(nb(@s@3IIi0rZbAh9}m0J4T6(HaqhRm{6^i z)>nzOxZl>&blPnD6{20lapc#|Ph;oj`21D-@DkVejFds4%)w0O{nL|)#4Ur-l&lGT zROr$veN+cPdg5_)`DKj2QbMVobGobXoa&8dVgy)*-DjLafrj~E3V(|s-B4{8%>g*c z7n6%$W&cN#cmUjxR+gvFHWb?_5cpDPEs@EH{xT7fz|)n{G>Id|Z5t%F)M7KUNi zGgd-a_QKb!W)TarGb>-I+FkvD)L2x;sX_2C!Cj2mQE7Mguye4x^-_o5DEf(h=345xdeD^_A_ zI*Y$n2q#+ogsNZZQBGH zlN9*rhpn2jygTB2tVqn1Vn0zs9?GR|x}j&1-5i`el|tTD*EJ{R=uOP9P&Kj%C}sLc zd>Sx()t@L1&S@e{Yn;%gk~H>Dl{@m9M#64s)p(*~<#(wUUp zKJCaOH-9k(1FDCz$*P0cJ3$xakO4_q_>pN%)h&svTu7uOS*saCj~i}O6MFp75x|c5 zKV-wsu%9$r#YvE``XRHCdm-Qs;GT;Xc}O}vi2i9AX>0weIjPahm$3*6CCY%M>L$0w ztt=_B@Trx#`^7UtX)0&^3OHCKvMc~)V!MvXEh;Xzj&hhjqnxFV2 z_a~pUzCzMjHu=S7ZG>Ut%|%(V@%&gdw|Mii`NCIzmUWTl^OZa zUoy49e)FFur_%jE^sysFYK_L#iYWhSi7~2XadoOTftSg+ZZ_5Si8ZsE2IgTf9M##_~ zk8FD+rME>>^*$moIQeX%ZR_g&qe54!I#!C?bOfb%zW+j2X#pmYPEhC|dJ06&n-Lmo z6*BHknJp@K-M^Zg(s`VK{IABGf=}cviYn|C^81k^S7%Md>r(Qf=2eT{2g`174y}g856{er zptN^i89KM3DI{{BHoWR;?pMEhO~NM2GwprBF?&TF$^E8;4Fd_NLE2tuI)pqqYP(vY zic3UGWDzz6lw}GBO>B_^yHm8S9lF}V!L@_k1d3@o_}FQS6>epN2TV{S{6nTgh`BDU z3$*&NVzU)E4)quwhW}-QBaOjBtT}0>;7R+?0#2;xU_NwkJkEW&ZDVL8EXy61A;-8m zdeNyD;ITjn8BV=M0Ji@|Bd{V3mQ+s>=;K^W7DIbkM}3zevm(DGUnh=9(i91#Q!-VV zA#n|b~_@&DqUVs-mw3uzLvODW3dnEKLZbb!#g5f(g%c&wo0iE%Cn9fv+3CMB^E=Q>STr zX4$T(NdAl2q@`X+6-?-`@R$os1u*~LyI{l-e@07Q3JjLm+2CH^y(0)v9^g zM{F{L^k8?wQc(Svu+H*%4xIOD_r>nsFYNMbox#1q3euOw{n?ApXtyO>qCFC#tx?Qs zw@o_`L)7SHhJZV3f`i4mf6ZFd2h(82c{{i^+R%85D5g4ATKO;KcZ@6}Wyq!(${^KX zdS7(0CU`{<(jc7LIWxDSGGr!T+9*(C_{c>=m?_S34IBs9MgQsu@z$&H2{!}^_$*hU z4kPdU2rwEoGPJlXa{Ut42`wqq_0-zB5P7c;%Fhx~GYB?mmi&OupiVv}t&vhSzZR`L z_D)_8&ThoMYzy+^}F(PzfNs9Yw8FJe8e z`;p}plrDoYm9w-hFB#hk3vq;G?@xi&-DT0TFTv#)d~8VcBmcHQhqTRU^K;iAIt$s} zV3H^TT|($fe|Cf3N-l6XkC^p~FUgl9E8^*Ozk||-qy_GhLOI%<0n*r-wkPx_L$E9W z4OT=a(Qautbl~Sk!rPDqD)RAp;(`}?44XLzz*&Inf`Go-A6yLpV5;Pb*mH{QgN8An z^D#^^v2r3Cd>OYZvBwF-(at{@e_+O@o=v>(@d9^ir9$jn{%pL z>5Sw-9zf|860p_)RC0+e-};{KT^ufAKDU)|B7E?cPYi6Im_h(0a>F=K7eGdWK`t3k zcp@$+?lD>MyvJ6F%~*nb$g&njqsHFwo&s`(@AZ-+`C3u$L*iQ4`DVs-0(XlAM{gWWR>#+m)RCnT_BcF^c>Fl)_P@| zt=*w^W!R=}NSvLrd-8&>7Ts2a`FO>cX*D1kxUhxL^m-(nxG)4O13ad%V*MX* zI+yQdw<)$2vCyM0$nY^p(ZPYsV$Ion%JbizK(mR=hG??sX9F%$x4I?tSko2AKQVkK zQCAlKa^;TY7^A?zA>`Qx*(CCk2phV5Cgm0Vv&8zFHycT85gRE=MNXx?pPVRl#@8|cVe%PYKKsMb3PFfy#)BG6p;2F+GWd}*-qC2V@D=Ekvm@_I zZ1a5$rsz+&6$N2K@H6`t8?EW})%9f9I+~6KSI2KW4(g6XI+5WWx9}hEiH&r80iy+& zC3NZy=h*2-cKp5I_KrZg;=j6p4L+sGbjid&MN`?U$@`Ck>xegnKbov@vv=M4Y51v6 zJ{DCUy`~bwOJaR+HXPrQ;J2-kBpPjLurD5G2)SqSKlkGag*WYUG)I#*s*@{aD8Cjg zX`YwI*pbE?Gokw`mr|<|nd!H5ZJ2QG`_P|~j;0$GeEC2{Asf#Y)Nu5ecwYF-wAUs& zcVKHCu>MrqZJu$45sBZGI4|CfB)H!NnaBj_`oYJm+0Y0pnv5;}L#Pc&tz3U@Q^z9L zO=vXN1a`;rBA^Qs$mJ`Vsv&9jg3cqvsX+`ufzAFzQ3!nmbx#!XaINw8*7;cEflO6I z>kq&jl-&?Z2NTpGgQR=?>3igbhkZ2Ic>`%bM1Hl2<*p6VHK;!}o3`YWtN%@nf%3LB2G3 zo**+g!X6`Eb@^KAOsGT#Q((26w-Blj`-pw_F(dvpQxC{J$ zx6c!j9ZN^_^5`yVPBG;&`3`fwg2iML8^|r8*qgJ!30Bqv6*`U3K+vczQQ8uLR!HQbEf3T=>(9wiy;V=+~{Cv zF`2ujs3zv6Pm~)9DQ|M#9~@(!Jk&=@c9Z7X;8cbaWS7&sk4!u`s|=)bg_7rpk-!Sq z=pAljg+O!cA6`U=@mesCib;nFq>Z(vSbLZ+Jf`zU^=`{Ggxi8Bw8D`g~+QnTql zzCEImf%xGqI(100oYOpQeQ!Fsx>h-JqW_RKH_X=e-K zapkwJW)EmX)oU9n8~b4TPP8DdMkm_qIIzX`2A3?PJ;reP$DPiRyli)JfdP6Y<6qNWJz&-U#NNzJnH+uyx$u-VQZZhi)B%p%p?W9x5K zV&|n;Nv4rLzVk5|U|w!XDdHYjxAP9<+#j590%f6^ex@hi=0Oy{X#FlkMK6e_=8wQz zh1#%F%*_a9^~k(u)RBmw3#L`DG$i3I?tk7<_kC%qsDhl7C>F;bE9&|tNzwGaSoAii_&QpX2?aKCjz4rpK z4%olfl8G;W7i~+Ik_@Pc4yG9sh&TqieP5jF^x^F~9}pm+c<^l6JQH{U_b+SNQ+d;3#SAA|d4RxE}9aSl&M#S1~vU z_gKQiSi}S5EaJDl?Cy594luAD4)}{3{La?Fiw@2o?Da6b+@h93(e{=$%dbz)Zr*u| zLnjL4HNw77HDqSp#B8m`F?qDECgXlOEnL^~q_j8ioe&@%-jA<(*5!WYzrd&m;L)d} zq1RF0(k?z2{V6AwQhTzv_@Q|uxg z^)5!!ece6$qW`F3UhY0+53k#oH^=W|jznlmXo3U6#%iDK$vkiXpFKTrtaI;j@;2c+ z3Fly)9^r}5{1?~VVW$&#`4C77{3WOXK)O!)Lm4To;PaNJS$>>Mcf{=F<dfKsX5$ie(6*ve#;mWxD^v>r8DjcNGe;;Q2 zIfSeyA6<0EvoH64K_6ZoJgZH>a#WR+6&gx$o}x3#++zRyen;k=tMKII-Zn&FcgwFt zcU$N&CcCzC!U2lt1J_@q6p`{ONyXa9C2Ya#6HFu$85lI1&GjMMv7O6s z2(E-#z(}pz1+hQ!L1FztQsy>9&QJfDY|%pGk9J! z(9YK9*v0eQ6B$^UJtg3OxQtr`mnEtyB3nj)-C7@ZpFLy$LF3+dS;^tD^N-Feh2~Y* zmktX$yiFMK;Ds!x`~D|g73lhPBEom~RAf1czW?%-=o?|Y&gc7EyH8QWL(Oh$5UE{Uib|*p-8P_6+ zraKpFrq^ed`ChJ(DK>X+*)o7D>sJ5gp=gvcH>cmbN^KxyMaGvRW@zcy!uaoXGHvHB z^UBx&sXqlRQjYjf!7GTc-+MQUXye1IU&h}GUWY;K5MMB;s{yDsYg&VKXCGue4FEL55Kw`N7O!H;1 zT=*3<4)%9wKImveAA2!aa0!L>{$3AytkrJoG_wFvG+ymJ<+mU@FzR_ z1s2m#j`(^xqw`^D5sUKgv%Q_Y=LcK+pMBAPxzl+nQaF$=ei5%h_>ATwQaiHO5Wc=F zXg44x6a5=^fPWO}_+}gA*7dc*>hdXm>-+sB^|H2G$uC#XIjZ zc9c+=c=LE(!Se(b%k7aY{-@YZ#rKH2#zDxQXqpI%#}WD7He9(9-^a+}(T(&Y#@M{v zfu_+e@sb#gpVem1Ci~#dII_;XKX?b5n%((*-z|E#g)bS70Aa;D1unqm$o8GZ``{a0 zkL2U6l4Xof@>O!0)aq=u!6)J_)eLyIEEVh)@$P_ z@=uO-y4R~@K?@5MhL^mpWrM{#TVKgQ!;raIfDD&dylC{{icR+L!jFC|ZQkQPhSM)Q zTjGN2$@Sn&va;gBWG<3PrVi3>*AE>QUwVr^jR-&lpSqi6*A!{MU|dwVrWmV#I7jQ^ zDqc_M=fM8H4_>+0NUUL}nEm|>KpaNAWtLKB8DSL?AK4XGEMKn(J zW?`A=Q`+rl5@RiA!1dEKE_m>QPA0g=w=2g`&QfEWu9J?j^ustzZc(Nc28hR=W*_UR zA=3ue7oO3&j=mC%%qdek_7O)!h|Ot@u7%u;rZJw9_=%5o+CXpd6@beqPf14Yti_ZO z2uqeNG=aiM3Whmnj8boMaxxteN|o%91xb9S>y|F5KaXS-V2r2$xCHHkasWo_yPf9o zu6sD2kP0=J_J3@h-(c%?w7G`pJYl0M!j_7=sX=?0PK3|@=)?v4;F%= zAnX9|lT4J*BTuimUlApgd^7NH3~|&0fn2+$)TPvu>OUgU zGX|~#pLRPQat@A1;{f9N;71<|X?oy--s&I?b$--RMdTk%C zbDL<-N^ECe7d{*d!_mv~C`2_`nCA6g6*PeEYYb8uN zwpmwa@o_i|Vq-_Jl~wR!(ve^vJB5h@SQO^Yn?N=V)+K!!!U5}*V+D!d5gV9Ih*Py$ zae25d1Zb--4RPCIbhzT4^^c}Pe0c0bQ}%8;Tc2voYL*gsk*DrZL>Xy;VQ3KaaB%Vd z5IE)TQ7OX$u~AK$*|&9)a%|LwzJS&d>n5zVOpixe6f3%jxzZ*4@J_`FTeoY+;&nAj z`SN1u0axod15H(PyD;vW?a(QjSh*sLUmvbO6fQhX4@$vr6%0=;}3F7=w4U7DmWt3VAJU8nolazU(AK0Y@J` zg*_4P@GgMFmo-S*+Q`y5lgFRrrc%wW5iuXV{QfubV!HIj-bR4PDq zgx&|#Vj?&ZQYlzesk-xqmYfbSxIg%#%0{06c^ zPOOc&YBmGZ*i6Hznoz6TqoC~^(u)f*WI_07Z#58`OWj90NlXJJ}YP}mRA** z$OcHQOtIAuOg>gRt2(qm92H+cMiMpxb@^>UH;W$RU*olM z9749>!J1et;w}c_y4dVnO7U?%u8o?@3UD?}9L~rIDMsAI8AcN`zz9N|E-txi9HG$o z#8TlxvtBCV6py68ymnk`YC^?r{nxdEY~r45I?42nPqVDWY7ITs*7Z@vEl$MQSZZ}` z%&(E;Mol}}{o`u+;KGG-=;Src#0Hfi!`N<#-vEONEa?r9AXG55W)@;grhq`OOU<6O zc~?I<4lm5D&mucppEjoyrZeNZojTN?8fUQb9t{DeJ{~>aR(VCYF3=%se`PV(-wrz(~c2MOw)M+=axR@I?kh~b7`NL zWOLeR4wY=p4Cv%Ea-<8p>o&YA-5yV4wo7ucX*ehd+n{ePq|`1%*KF|XdD;D-0DXtu z5)0?nyum_bqxD+T43!j#h>{qLEGrFIS**BH_;kGRU>=do6g@vT{<(O`cTHK#A`E)8 zI<{rhYtn=e<=)V#N<`(bb zWQ8rEncA8k*DBMCo7{*QwH5+MVFHxc{xuTBb-hk}tGilfv0fXlHTK}sf!XFlArZJH zA{XO^5Ui@0_r6O+E~yEM651>=zi6w(Sk=H*v_q0wwEtq*r0yC>|i8v8SQYS8JS7MnO{kSV6tz3J$+%EgIKU@V(qk* z`V7_HV2yL8iA8g@9ZlBvsY+GT_35n!cjY|^=~`o$KV9ybDTmK50 zi&Vij8i<6w;sOZRw+ZNNPDc|r&;?;rxu!bNXNMyCDVUyFPo`7AsX3g$x+V&c!7oSE zN{no_qyqDaQ`KD6)8UcAm3DVzcAFZ6H4_Bx(q=gJ0CK>el2lgUHq529DBj{;80v>r zhDGW`!wV-HmRvUV6H0LPrM(;PlHubT=?$jhN>G^sCqeNRlTWjqxI`f>n+FvXQguVR zhS727_o!GA?OGc)ocWExFljW^sp4z6K0uiqf5|Xj(vhl0+|Eb}iSJl$_2!kv+@iW- zC~*R?7}-er(qsuDr=0^yX_8Y;Z!%Oin$BZM_;1kcNu({)R&`BKr^ zcd2n|O6_sop^-5gbe$gTYN@MLQNIuH=XJ5neQ8hblhqM9t->Nt%4E=X^u_A4D^@KK zjXcK)^CWD<$QI19n2|nmCg`S6Lnc4Y32k;1waQ1XH74I+E9f*?*4ze?v<1qZr*8)+ zr-v2fkTXka?)oeOkVFt8NjHE8k{b#-jTgdL%;0jEFUjDXxN9(<>;S#LBI*Io0-9i;0as+GTtgz`5T; zpYeGBV!`IjQ?kRrT0@4}q3jCU{r`Y#xKw<@n=`4|s-qK&Iy2wrDN$zoxCM&oTVN{>&7xZ4TE~k8&;Uc2+oKD`d%+CHBaEc8Uu*f3yQI%R-ZnYxw*Mk8DtxXz`%X6UsRqg!gY&)NCwq5e(GVO;B6QBu`I%YPTEUeju_&lD^7{|*>Q z;^m;8}dn-p|4osP`0=BiLLyy#_^yBgDH1NvqDbo=Z}b-X}^kZ zto2CL>BxIH4JW#}Hf?^TPX#n`ZY>s{|BOXqfD2l}i?0Ae-m6pFp({l6%z~?*RZ%g@ znffUv&0fEoy@&7#g1rnzA?=hP*EACt>W?*S0u_sma^_m2sG>2iWl=u~vM_7+qEp+k-$eKku zBv~4FP4kjwq}CP0e+0xAtW5Mym6>1Dw`|a!iR$5^P)D#|8cFmxT!}eZ%IlB6-8#d{ zEJPf>te@n%Xsz^#x7wDQ4b3AQ?i#~Y^?`9ZVQS7dTEP@pG-G1s$-NldCB$!jFbaOY z_z!mx<)+u-K7fK7&6y8}a&s^-?^-EJcM*&zF-!EZ$YW{uHYDttI-Jr_B7CwZ z%Yw0-*&BUPYAe0I;z7arT9?|hhh?D5%e5)7w?>7 zA8_o`HMUKF%xGRJVEW-5E2?YSKdFY)Jm!5}OPK8w+fbfb2kzev__-RobJDqyim)o- zS-5w&WRRDk&vQeeQZdT;-QoFU0Oe`Kdo!$s2CJXL$p){uDK|bk9-z-Z_EL4Z_8H@v z$BJ>qKyzswXMQbZ3>T{oJj8dYr>4dpLU?tKR<)ra_ynIXsh~x*XWnZIxV0rF?jN6x z2Cggh+C&@OCBZ}Xk0v)4!^*nS-g6iKovpJQh7HVeYF_abx~(*PMHHE6B-yMZR@!c; zf(U|5yOs!oDUNLy16#{WeAKdGKW{Zrn$7;a;unx7ROJuV6gC@MLNyCn$1Z#u$;(3Y zadzQX0KmJ5MI#~#l|wUxP!-6^T6(RE=jZR+>AHRCHtaX=I!!e{usaNV#oI0XU>s#< z5=I3JR%P0s)!|M_yn^Rd@F#h@X3XH)#xEI0V%)*NZV_SUB1a1vC_;Mx7oy$T)zv^Y za0eC7(_Du+S*vQ*3c58#`UEJFs4k4OSdYhs3~}bN5eNGih$J7@B6xkAt0rR3XqVr~ zTthK3pqg7|1=&L!Wx0olJdCqNCD~e92^(6a>D391zZ8Mp$1c{`DR4SDQ3WvDP=L(0 z4qs{Fs5Wa9Hn2&Pn;L0c%ks090{dsJH4-jmbC8Bpi8O z)tzI_R#~!eP|yw7sFL6VV7Bi^C7DX&kF{10{{VIjXvchrT6Ktuy3Rg)bPF*an$_);C zr{QITID}LdQs^WX_A}=IZr5AVdhKg@LXg#E2h!pSn~n3 zl+VvxF2y>BC1atqC5Y8mC9CJLoH=ALve}h5np$)D6(##K zZZQ|iENa~P>=Pru9kb{bcNxD(WVRHVuh9}J)C_0hMl1M|&|L!*AFW#>!#%eBS2C{> z#myA&dOL8HJv|Gt^JcDcm4Xafd^sjML4H9asG03aYRsZaEn_xQw4ZRzVw!}=j?CO|T+tBYWdgDOijGO=|hR!%#$>44dcI?o|v5E^xUEhwbV%!=~srk_f-Ddeg1Lpk6Kh=`|`w!i} zAGBWC;h%S>en;zXeeml0_Satw7uw-pN-osrh5we{aF~0;Vdf2oxi=hsKRjEHif{N@ z>*hy`!{xc+eRuyGJ@d%@i*L8X9d}B9)juX*ZwWrzQ*&-fen?eJgq zr+Rj1&jLvl$N6jS>R*goFZ-e>5-TEU`^}qWkzyGhezwK>y-u|{%%0r58`kU@e|Ev4= zceE~B|H$|4um97X%}l8O$-Nyq`zMPJ|8e)*Pq}|TXqAZf=iE=DQ)+;lg7(E3F?jGtAO%l0gLGginB;~T$SGJMK69@vc!{2;z-hw-xx8a(TB zd)9`3)@wVApY?g^S%2A0%3t%7vu}t0oj=vH!@uEA?c3qs>)+V3!+*e^+PA~DKULBp zHiEzIo=sY`V|y?7$qwzkyv&YNxC4s9$T(U*4op}UN?+Of?}hGXsNc6)|w?I(L$ zo&bwif!c~(Q@-T8voCpFyu?1{nV*kWcKE0MJ-rwoVTXUloyrfo{H#NJR(xZbMfTmx zPyHbFFWlj;hEv6%|8e)zzZDIt{OsaYnI-ux_n`kYyvq*l*_eMj{I}ifasu#wa!>dP zKXvKiuQC0tND z{;t36wGH>opX%9R_<}<_v@g+5wZFa}y~2+Fb^pBAcK9d#saNIkm&nG};G^i_cKl8M zqzlU-gfFZHNDqJH=-me&7E3$A8ma`q~cTmzKqN`K8~sm)ea#)cV8! z$5*pI{GfOrM^?6&$}jx9cq3l;&;1j{7k08_)0eFD*%;58Y3j z{*wLY?ywt96(4Lr{i3_%Ypq`^UeYRFlbv$=_W#Vk>y;h;7yi_@?eM>Hr}D&Y&-zdN zjfZv^-&iJ4yYV;tjo-Gz_{OrCZ#VvBf8&82+K|82dfT$&_+e$L{iE(7cJ&9X&+X7| z{0TDR-}>O&pc5Q?^z{!~zw0MTq+%EU(0`yy0!Q5rf5e^A`LnacS)h zKkRQjv_pHQiVXYfcZLh?Fn&XMMgE4H3w!JbtuM;Y`l2|lzg@cP^YUGv&%SHFd{@b* zw()QKPkUvDPm{^Bzdj2W+Tri_r(WCP-%Rc;4z>K!!`w>`zh8dop}q8f@h|-)JB(ji zUJD!AAMiKs+u>jLr%H0=Blpwq^_Tpj9omq8sCD^Ieqba0AH#LUueRa+-~N(UcKH9e zQ+a`4zy9c-(?^06?C_WUsb93ifjd?ItbfqocxZ>es zAcoHy>j7eQ5Z@buU6jW506&^YeL#E>aez1y#ew}WjqL#*kUZ@JmY&u%_5qcFOmB}4 z57x|Rn4OUfBw zM!<8fE+vA!U#X%R@bgx!DG_X+A0-Nr*FR~@Hu;&fw*Qy-9W3s#H|!5*C=)dwVqkr6ECtJ?O|b}Yt@_a{3h z0nr@9FHUy6GEIU>Kr}~2u$-|;Kr$B@!LCjjn*@AGQQM1$VCz!GCIOirQ6d;qL{7SZ zWIZy1k#J!IBvQ=3UK4#}O8BG=X&7l^DlQOE z>OHX8kOZ3bKG1Ao2b%RM(DLMu5Keu$nB2hMN=|hEv!7kc3x9)j;Ou*MG~ZKGApV}M z^VJ?2k}MN|3sY53W7l|!|1>r{JCQno=$kh-Z9{`>`krhQ07<)?qEUDIWWiBK>x3Z1 z!e!GaBubOaIk$Yw0oS7@>QU8G3XJL(6$bq3RAJ** zl2-t2qMnvSEqt$ zC)#8^sj7zTTnYZD64b2)RV&@kwrUh}fCWX&0Yqo)vUE1q31I|ek%)|7tP{crNDw2V zzdp1t26@KKuo&2+;2+M&RK*jl5t21UNZ64z_U-cHOncPbEwz*`>WG%?TWtUECJd6; z?iM>=d21r?+4cV$T(BHDWc#S@M}^~I)Jz$MS>s1 zDU1ZBri2ZUnhI>d_$zEUdr{uF0De4?I)E(8GSJ3DNH!QjrHzKL%@m4#)$K40_&zxl zfH@RXgyQnFJ?j82OvXPa%0dYyXS8Y@}c#~)0 zs*S2TlyKRwJU}PLL(&A90L&ItD|_uqXS2F+QWDewM9@xS3wFHyg2sZ{r4CayyVSv@ zc{&ND{^u)ra3B$i{useL)BCFeMen*qCh8S(!^^u+3Sa#YhS;jw6kemD+-% zuz-ZguDcH6QFRcHB8b0EiJ3@X3gS_O7&{k?o%oQ{(}|hroIO^Z+R{#K>4@njR%B0d z3y4u8B=WbK(9rULb8;7B@B)ocV6zqnS{>Z#NoNv=mQv$R>BQE%je`5>YhVM;hV{1I zuxiF)*f%s33&u`eH3YeDvTOp-vEr~?KsGw^c~Kpl36gi`Gz+T(6>pJD5o9au03F@J z@(Z<$;*}kxmBO+4X{pnuV>(xJG79k3$`!VBy&)J&v@o)H_)>~V7m)cDa>`muBxEGB zJ|EU+w3Tzc6g^-zf7;%#$f+NzFhNMQ1=F<+x3S<0j+AGdZJ);A7K_ZQB zR&dvp@^L_7AWt`}UuDztVpa6Aq_6{c56y*)TepgvRZ`Lr&ryyKl$cG(`UrNseFi%kx?@K}ckF2BjvWns zCOha*MYAGR(uQo7wr8`#vrAJi?tE73=*nDAfV*gCYU<89*$}OVbx*5SS3WP=Vs5(A zkU9CmG&fhNjfGmoz%-AK%KGDJeXD2XE9nGW0>rvwfAS{y8b=7)vi%L|d7S(Y?om+{zLnUey zU+%b7qwxG6b+mlVhG@SflWgAZqi@Y^6x@93DHEGnd|J{~wdo`Et+|cjnS-Z(BHAv= z2fX@|kh*{;e?F4@3%BR147g>_1^Cp~ft}Aqu}{)haTst(B6R^@l}H`HUnWwurMvy7 zqU@jQs~EN9;z;^``YNPI$bS#gw;q;Qs@?Gsv$LS!f+VE___ajp0)97X+7e0<>~ z@G(jgCjnoSNZr#Fd`B@7`2C5k19(9qbw93PKl#`tFY}Z2UEJP3ljh>k?uA*v2PPXj zfNxHuDU8o4n!+p;J1ZOkd`6)UctsN40VHa2=K@HCLVAD+k%S&FSHz$;Yk-BL5M$)SCBRXlOmzq8z|YBc0cN|>B%tEMNMJNezXNPDg5Hv)k5nOb_o?n{ zkyuoR?I|BqFTa?)tuDiPD@&<9togEz{%(>|vG7)wQa$B!wT}Kxl2Wno7R#@*r2Jk- z?=tfO`(b_S8#A-;RyMa( zW7EJMAZp@06xi1@BVehae#8|G_#*uS5Sc;4_z>(%Ny9i`siFRU$8kE~lr*pd_?ATK zzD+^YNUE<=(x$}K0sQojW7LG}%L?xGlSJBI!GkjCPz5p7sifmo%~|>y<~UY;vY=rD zq5@x3o&O^1WjanSqL0>(HxRjA-;#ACkBbna36rn@Vw~8IAZ!y7rri|bd868k1;On{ zXzU-WugyNmdhf5Do828hU`GhPtrOaAzGD5`Qm+8R-=R<36Ll2cGXJ{M14ghFwqt)6xO(oI#XXIt&dXy7$79{zc0zIl8=D1lAsPC-iaVALWhtpP?^L@ zNY=HdsLZ=1^?d~8QB`4WQtqqMs0qLqZ;mSD00sCGCB@zZcJy_L(Hga<4!BE_H3@ik zB`p|RzG`@|BG1cwfJ;k0R9>3-zNO&7$%<;DjgyE96@;WKbao@08diAOF?fIm1X_iQS@J+k}gUi@+4XPc=T^6*AsvX{x>p90|(qeNwI;0U6mQF_}8o0vy=Eq zz;`RDndt9P8gsLRnC;2%1i296+d8QcRV zNz%Xpe^KTOBpWeV8!?v@ex!&o@F#PO0nsbn3=k87`Pi^ajwoP`O}CCsmoO1`uN>+; zPoXahpQ?pd4V+1Ff%F>T(Nm+k)6#a+lu*3CL66r{? z`Zp=}b!pTD;Lm>bw2L3D!>;aYo>%$}i&-q0ZA4>NF3jbJDdgVOoIAmaj)1MLb z8pnk9wV3d0_4VC4Zr<1v0r6mm@K9IsC)@Bu8~B4%#{H74Nx%mvsac*MtjNnUAK zz6%xEP3@Ou;jRiEn@QFRJSrmrd|uMn2gFP18-Q;q;zjJT+tqwW;Q|#NG7Y?IQrH2+ z7D*xs@0`5p*ADja^_hvQ1Nizxs;s($YR>8gsLSyj)at4asSreVgL}YP_$0zfT3`dt z3g?o*@gknU|C-|o_~JzB0%BIMVKlqC1mfTn(GDQ-m+k{d+=BvJf5e6=mtjv-6ERt8 z4G>d>i)j5QJ2boOKC-i*el4h~4%9zC>FNNUq@=J$A?Z_@ZFZBoNXRC2?I?WAmC=8+ zMxGeU{8*u+ws4Oo$?D&%4rTq_iAsNW6#c(aNxw@W@+4XPgy!98)C_I6?mt!AMb?{D z*3M(6ELwQV*uuTyQyh^6#%hG+otl9*2Q06n@$D*R z6mgc<5w}^z&HGifTUY?kP?Eo$VBif180!I+1MBSs0}od5q01bq@CgNNiNZ+py3wez zkc&+DC9X#Sk0O7!!Y<(blqT&C@Swytns`LrH;L*35)pYMw3EVv$y+aC=OE7VI^sGiZi&9i?^ytTBa!-mJN_mYdv6FfP^#=h06)D2qwNSNJwY|d zKff4Du#ODjp06;9=F5NA07iqC7As%;w&JBYtaNFymwZ~Zp0q};B_=>~jrN_RK_e^@a*cMjpT_%5Y` zEQx(Bs9LM8o!QP8XFF>_eVd4189~xg9x}wHWh$y6f~-pNdw{5H_^i@~IGb82Rg@xB zNLG|Hk)Ns7WE14MZadDsc4XuU$)9mROpyP5vnUC>DDwf5>4wj`c%1Sh)HT8~InVmy z3`&IsuvNcbq}EEx?)}NTs@68@Ti;166M!dPALaSG00#a~8rTCY2iCg)2Hr}=ht+*| zg%=mJCn=0HZx=ACEaW0H>;iyCk^eJwGS~n-PwkTy3wX<9{%GP6b((HfiFt~dw}J@y0RJgQ5_hnDhq)me@uUkErJ-QC&bH(o{AGCOehgRS^SyZL4f} zG25$bC}^()3YtFQ;MINgE-6Uh})#%uG3dx0es*Acf?#l1~m zg$3}i-?ddX1K*ei_5jO)b!9W~i#jk=%U2ZMT~!9!9TY~ISJ|V=LM}2xWdn~Q|GdIh z;7=yUJAj`}Y@>-s)R&W}E+7$UDjNiooyz`ziujnmwpBK~nC(?Ia@u(I(+u51U)y#g zme(o81Lq*l@;c%kqT!s_XKkbLO6Hd7V=H#vH_1UPs(!6?gmJ#|AAdfG*?2zc2Rj8S_2Tf5P#-56l-3zNYEKunZh`T=}LGGYMu z;Y6AS#AN3|(Auc++Nen{w&O!geSI=@5)k`B62^yMm?)1B0b*ig1j`0b0+z9@zbw0p zCjFzS9{QIk$Ux_&_}0pTd-7B?KHWD(amt!1Tsf%`x~&T8CH2z?dUy)X^kWn}CX<#b zNQx!3fCO#9*s5m?tql#)TJbQ|eoC@pG2jc8Bu!}js@tj3eUlxFAE+QE$`6h8lr+d( z&s7kso&QV!2vxKs*)R@R*l_NuJE*8^!+34O_)(P&<0n)$jN3RoP<4~mu-@Fp=nFIy z;$fgY%ZT^ZDzc1xNt!i*w?2@<(4`)~l1YG9B+@t_<>M?6wm_sFZFx8)YDY;WT)4`P zYlzktMt)2~BklrzPDwkCJ%8-5yQ~`9e+XrxzOys$9I)dM+Sl`YtC~^r-b_lF1u}cB zvCf2kn@YY)Uu8uH%z~UwIk4*KV{giW0JET~iAi6xf-Y16-%NsffLOMheDb(pk$%m6 z;r>-95JAvGNdgl}=OYc4xt}D>9l-2Dw+?Fc(Zp|5Kpr(p1mV7KZlpFguwa9P&shLw z8uj=jcmVh$CB<@FA>|0=7=0&}qr4*}2kq(kJt@cd-b_lfsr}m2>T^GQe?c;}1DFL( z)qcKU zHw0Uk7<+(UO{7V{1<8mW;LeFO33y*6MGav8lo)$}??|Lcz|U?m7VP_pu?LvrQMI@! zH5`wnFXQHelAu1|Bb2n`*a>4R#`Zq+z+qo0Sw%IG9-}J$Eybt@n6-A%O86vqfP_yT zfdC|Y(scld-IkFgRw53NKt)C{VkJrdvri+0Ejf@!Rny_PD%fchzKWeVg1t@^FI7R5 z?t-z2Gj?PgNot6;8Py{fdn1K7`^Z5aNf|5{6XI+mWj2t)Q?g!X)$u zniUmjHg8r|IO?bch!T>OBqS@S4wL8IY@?d~YYlLla;w#j6J|J5@{0f z;za5Jej$-20k2b1)ByI!#MlFTO7dwE@TE$MW5Lc&j6J{{k7|RruWG_$DOlY6eKMjC zxKL&1m3>d8WEJ&{S2+hIc|E|awTo85CoK+;@W~1eNcg0E0us9|BT1}893X+(zF|ua z3*%#L%Wedzm%D`>G zcBC{D#$l_oFRn)|u18fXem!cyC~S1vy&V-=yB+4Wdpk~M55t%;LIT9uJbP?jnFP;C zQ)L41WF>{RizoLQbd_2QI`qv}!BzPKLMt4CG)Vn$(M@ZApc z;_-a7E!((wqVlYoC1{~oi|*LczUonZqL)Wi?VtXSsWR4nT{^^zIJ%|-b~t&6FM*Om8qB~ ztVnNP%&>2zVO3GWQb@K2tykZ7dNSMF3BY|5sS9|ZlEOA;VhA?*uZ*oMKs>LqFaTbq zniq`q&e##;4@#6=0`8$Y7s&1Ejv#kPw)Fw;RPtfkBNI`SfOHa3B!V21B?3Mtk$QkH zNu)mD0`%fFvZyx3%@fnQM!rIa7^M3su>IvE!EyK~TG3?1WRR`vf~u7HwzT z@@gFJ!93S-B&D$wqrx3Kp+{$Hk%2EnLEq1=L^R6 zzF+vL0vg(PmJc!Hy~D$MHto;U#JxRL%j8~K`OE}ai65qP=BHFEs+?z{eyA*2Q&o(x{9IXg3O|c+l60N=TZ5L>Ip6<8rEJz$C$6xJ zpwO~93ODJ8^pE^wtT*WzfEUe+yP|j{1okDR3M1gx6KMc=_WW|JE#))wlxY~kV$|CC&T)Gui)b|3GjqO>H@whk^1=k8zlu>fgh+|%4QD` z$GwJQV;z3rpbqxwYgR2p=@*jHlg5D2Aio?SoHn%g*H}HM2rV$WiX7)S4v6D#QXJ(g z=P}9)lNpB$3FJdlhz0~QM{R%u)I$gd@VC>*4&ZZBAP0aaB~l0QWr;KZBp6<}AF3h1 z?Z88o9hID%#BZFGrM>oXvaXED&#E6(L-P%G5b8ms0b;BBP4_lqbCRZOW2b9lr|X1F z|4@x3yv~!4l+L${(gFUB(xe{&VoC@r@Gyn73%Ef^ferWziLC>8O(J!%{xmf?j0Dal z)}_RVcwhs*YpRs4jecOWlV*i__rm1mv4Hd-c}VM*D|c5T_fN(i3rImVeE3cuYKT_p zb=rB4Ql;^iK)@(e*~$YJDps!oA@XrF7_}^lSFZx0P$DZB^SEIJq1q!W7{PB?K?r$d z1taPWD+m)Hvd$C_7Kg|M#w3;{43Gj49cxyB&?SWr5VZ}T)p}FQf1_r%sH5vwI`wh= zN^6-ja`h@_GEn+uO3zHXzNj<=wecl7g@ruRwtQSLSjBKk%eT9zE(%k7K>3N%Nd1^+}hJB%50O1 z#!*(e(Ii=`X}9zSQDz&0bI}QRv9F?I(6k+2chQXRo-*GbVHDh$#f4K zBo@kVFS$PvXSro!)c*~6?>ULI+^)#eRU}Qy?L;uWLzx>U5Jvh@c%u$^yS^@JwuT2R zS{QbSO(c+WzH+q3$;uP0&Q|lSvud?fXGi#Qv9;ajb5;9j9$9WTP4AtPNXzYtJX-HY z-kWY)CICOBq<9q#_RGn1u(8oY7O&Eb0oSUm<|-QGT}fvj@coHTE^t9UnE3!dQu1Ni zw-ZsWgs)NLhCCSX7RiMk;J%5}2YiE)npBVsah}Izc$%04v5Y1h8PTU z`ZD2H4_1=LmYvxO_F+m%$FH%lW8DGkXz$DA1%G_t15}%&~24s7*@%gtHau@!&+V7 zkso5`OkT_4ogw#Ey9;})$*|l#1*_^LuskfWRJX|_v_(QMg|3UG`YOE~W=~?}d>RR=M5~>|sik_5%3m zL>d78^DWD>e@seG8Usdy?7M~2#&LnhYNsNO z!03`Z0p>Ukh~pDega&|5S5k0_K)x-r5lF0-Lnk1~4$)do3U!XK;QGoB&sD?-beiwF&Wx=abr^?x|kJV>}pT zBpYo&DoPHO*RKR2U2!xRmDaF=kjBUg#>8t_L8!&Z3WoCyD+u04Rxkq4u!2yYk=3>u z;z8?)g~b5lPXC1JYXTazUXDHQlc__sY|A;keI40u0o>DST==Z zowKr=PG_YzL@U1`S`BWav^v7%wJHM5Y6vu|z?=9l)_A@>CFsPxhSbN`OQO}fU`#ks zn~EV2ZJfTUVi323{BXyeDz2lo5TBbmXmzq!t#7T-SJ^G^WtF`}-^Bs1WZtE{?BD(a_c4d?(e&bc?hfEJd!tH6h5 z!F0v9CL1g753fe`>QU8Ms~**NK`kma{}~CEj%WXuuv8h zt}}{Ok@q137G!kF#%+`>*=Uk%F|ZL}sT5^)eH4-%1$S{SU;)K?$JgUD(&K4p9}-NQ#VLuT`q-g8*;bf)VTyw@nfO zU!02;@ufhmOQX?Z6c@;)Lk{TJom=?kaNUG(tFhKGg$AaaoSNEbe>tP#5+L;!ZatQ30jWOG!de><#MJiLdT{EO}|XR?_|=b zL8Es6H8rB?QR7HViKo~LNI7nOXa{Yfy&;8mP=|IaymGHIH`w~j z4YptAx^0;|J!P(2XRcdku1lKor09~Sx1=<6NfWt|RdTePbVo}-w=DtVY3g+6nt&Ik z?M`1wP37JJq@Lw=o0#1z6=(+pO-Q~+FoF@NeVO@ke}%BoNgR=2*~4ijvJsr1OANCq@4m1 ztH4H(*g6Lq+XQxVfd>4?yu$=FdwOi3ygFnQhI2TwiZok(%#IH0F^C#`Kjk1SHgv5sY99BOsBAj0B6Kk5n+q zUWNk_w#W!Z5QWjs0U^;ssrxt}KpJpl z1iM8(-vN@;$Y>{5q}nyr?$?ED^~#jkD|GV{sbJsDTOz>4bg_KA==0_L>st-`fu)ap3 z?o_xQZ-~~Kr>SgoI1g>0@rTMP&!AS1hm5IWta8NMMOhBg*B!=|%i}6wSngcH+*SQJ zJny`$7x&Y*SeL!HKT0ob7N?7w4&We>CIQ)p$w!tm$aJz=CWQ&<5bm6fk(^`gzrpvY@O*%GH8?!pIsAx>aL^wzDq`9zN`#nwlU%|es_ z#%4jN;x5?MMEWOMk-yZ}oySgIwD9Dy<_Qae`x_1UmQPq<%kOn(v*o)sqgK!Sv6C&! z*ya{nEVJeHl~A2|B~)i# z3Dw4@#rNy;43dFhMMUK12x!+u{}JAsG$O@Z5mjJC{}Hpcf1K{AHF7_FE$g4q?4%2$ zRQOu?61qG$6n+KDTDaxAHXl}xSFeY(*ka{bUQgb?sJvtKRUZE3%HcoK%2qv($f)94 zpR;fK$7jrpGm>oYcHTOIx}%bj9YE|3-|n)8d*ArNV(tgzP(~d;PB$e&;wVaK3yHeM zPa)Mu`)+-VuO64VK%L;GQknxGM#+X_^9pNLL*zaZ!y003TE8}}k7;~d+zbWbm@LNF z;GeDbVw@i_YuNUT*f;8k+2DxX+{+RgAz7Cl?`qjzJ=C&Oriq|9Y$Nw$wfhd~T51|W zd!&8rv>gTaK50}3kUEiTwmJaQwYQb*@2f>W(^vVTA|SG*EH3nF@4^+>PJkOutF$3n zmyn%Hs878hR8nIv(Y+1)Xp*e{V>Fc9PC2$$-4_Un%cx?p6LEI=7e>~8c6?DU82dkAv{51i zL`eq9Js%iRkk}CdJQGswR(1U>T(w(W++w8^F2KT5v7`31i>K@|Wh@}>MjybqEE7gR z;t?5bNKXGNuL|q$o7CU`&f7mZJAnNl&5dzDszSmijJ7Z$)z(I&QuRCJ!=p$5+c90a z_5hh4akwp|NTr&J(h;GybRsX+LvcjvOc8mPMn-PmupGmLWHkuM3c6Y+K5lGryTz&4 zy~twZFI9p(wF!s`a;>u{x%v5YjXVyR^Y!F;IFkzX<0crS zcKW$17s^k6%MX7Okuy`LsirJSh`n?O2?QA7|FdTT$61cUz6tNRu=Dm(j3Y|Yv;em< zUvs48!8^Z7EU=Iy{w0^`BpAmg=+%3llB;1PId%TLaBn8fbPhc|RY5{A^|Q zlRV?<049Xc(+k zYnEzS!@`^zb-FU{{G`2FIk*)^beu-EwtuDq{JZnnxaFi>e~a@Ma}sH}U6I^y7QU>m z=joW40lvJtr6AtRug3XMlWK8WMw%=lb`BkEJidNcRSAA%`@`% z={mOqhzZTn1Y!S^jwT&I!rSoK=>9_GBGfg)GC7|+qdzO#>5tV?0~3~s9KbxzIX_t@ zM?WbltEArfAEt?XkiLdb%T~${+OBLqOR%xA++p%oKO}wloJ3k~SLB0LWZ{c!MXYrX zQ?AEmU)G8*t9@TAcbL4DFOQs)NXzYtTE@ME4Gy->a3{IjC!{k^`&%6-Cd*)v)(y9)LLD4!~K;ssso63 za`A>m2o%y?RVMxl$+{~f8@YFw$jOZ+va_ImEvUNpyuY^Nd?lNnz<#~H0`nK5_tji-5n(O5K)F7quk9_ya=ZQDzvd*;a=RiwUi;#-n2VL` zi`kc!7Gt^He(GP4;pf{=OcLiq z0n1W;_H8vlnp%E?=e3$ar@R@H|j?WW@t~dKy;$Mi|4g==)W@#q#Vtw&1Ln&u@xk6y8H;;@zZA zJKyGZeDi$*@REB+l1zZ>PqpR9xTmFYJ-|oZ9#LJuCo3uZ077pF_LR&Bc;lUTxGXS& z?S1DY5%48SiW0%D%#47~KA@Bcc8*eI(Ez;QE+r$_J_jY$fcLs*$q4pqrHVwrI~`my zf*pRZBoXigB}HezF3604U)zEaY)?&;s0Ji=QR3{$8z*^Z@0o2LAA*rbnTdb|C}?PuMRwh-YjmW zT3`gm#fA~2^cNVv8%7X{C`be*7!4x`MHCo;DX4~VYr-WTxwQrBcXwbm4ydQ2Q}GO_ zr(8UPduY)-Fcr^$dfJdlmngVvn*W0{6nuLoovk2A5?cYuQJJq(QXvk$4|um^{&5Pv zR5=V-HjvMo!`NLiY!vou*}X_Az%n8{QAZISH|&aufl zjFUHg%&Omk7$s&hC04gKf*)$s8b%wphG-+#5N(AwL;^|_8zM+su{MmhTpOZ|bQEby zwjp{6aC+0~CEK%-8_iqOab)0{*1Qn5h7rVzA$~WEAUHllgI?nX!D-NImUwgAY0zty zj56^X8@DoCYex;&+9e}~YweN|!?kwQaIGCRTx&-S*V-jp8Ll%&4cD2YhU?5x!*%AU z;W~5FaGg17xX#?FaLL}ZZDBb&Ei8S&V-jfs@P&!gw{2A9+a@X`x@BH|`fY`q7xq3) z@p)-sp8(7Yd*3VW?b-Xpg_&xT^G;|#Y|4MFr_?|rKy2Is&B`Jp@7KeXtj>TNmDK$B z(&O(Mw=z%GSGhj`{9-yqRm-zTBNiNogj64cCT;%{F5BsZG?VdIDm$JFbszWXWYoZB zNVqVHUM!^AfJT;rLz z#xrq^XW|;q#5L6-OoGK!n_eNYE67`bfpfO6BQwgoji&r*ZO(xP%v$1HkOwyF{Bqrsv26=Hq~r;I z7q@7E2K*(ZN#Oz#m%v6qxMvGA_R!p_1sd=Z^0gY^6LiDXXjS-$`YKuhy^u4}!cgGX zrR$$T0*lO$24VlamY=8&dBS&e2!nf29NW#!tD?DnVdzw^H0m#NJh_ksD zHrpEl+g$QYe-Go{sK=obQ=Yqkqvn|l)gTV|_h~A30lA6_Y`~nYq<8^2W(79jOH$Qz z0k2M^4j`AZvWNh_HPulEkb7F;0;IIW3MMnlR^!E)D3mm6$jA|n`+LG%DJ86qRt{@Ou>5s;=D8Nq0=!U#yGjf`OQU17BAYh<*^ z3N~sFW>FOqAnA)^Z2}|JHeb7E6|T)Wg{#v81Az+m()7T<1YnUFVI(v77lk@53a@oB z^5SLTlJGh%33Voy*6K46Q6kudnYwoA5bS>G^Y+u%FCBuh^AHJZm!-P?`d)EWja0BJ zl`5M=z#=Fz+zE#e}oM#CN*cWo10ZW&bx-Kns zU0Uk8wA6KJsq50x8C@cWAs_#TGK$+pMx}JwATP{CDpastbCCiT85KsSNQLSYsZgCF z6{=IDLUoE%sJ2LPiTNiP6)v#CQ7Ld7W&Zs|%|?5)k*0w^f4;+}HLCd{0%lPr4bfIf zL$pQG5N(Y#L|Y;a(N;)9v;|^K3>y_|VW3$91I^kOXx6+yv(^QgH7?MsZU1hLtIf|4 zVjNj*h@3?C){{p=*8yaloT#jk7|_D<1Ko5KEo@`%)sM}+TBu-)bFT(u5=yTVMqA{O zYRf!QZJ|f1E%ivX#U82FYg}5CcTQpx*io6fdFc?WaDRR7;D4v*deI|Pu>I19pA&$E z`@-nBFI2~Up*rph)p1{_j{8Ej?&E0Tk~qqAUz;;3RIoSXi~<%e38UkZP#u?q>bN9S z$0eaUE(vuem&lgnL%6^SM2+nFj}EzrBC+v#ga?}{OX_qj|J31HvL zREZWCH&P-&c%32@s#BywrAVjs1}aJbo5vgDH;J+&zQ}#)?)npJF8wMjA@lB$l~N!rf^HRhnJeL1+^0 zN+wh~LNWJ+%6u+nqfl+!TVl$Di>kp`mBe>IW}h(1dg+Ft>g+Ft z>MR{XbvBbiW&X9#o|fp*?W31qH2nXgz28YP-99!gu)n(APd(AWqq|`AiC8RPbnwUv z)?Sf&>PG)>hk~1IzIG5Q7~R?L%EIV$WuZDdGP5!!mXAiXm8;QTHNA`~zg1t3MkeUW7rijS3Q{-Q@;-9Lo z<((0;;@!@BOoYR9B9!B({eAMikNoQ1>GE?@;Z}$_aG(6H{EnSuqj{IP(9Q2|kUN(3 z@m+GeIo}x-lF9M>d@EE)wz-yOUr4s`mUq{Q-nCJ$jitQ1N$!O<`Zqr|re0$|x+U&5 zN0!%R4^6{F@PKBVs?p8XQ2?P zGrNT9%r2oivrDMX>=G)oi#ZaFwGnQK9)%tUg39)86v8zCBxHyiR&fOZ2Qf%j?N&Iq?^rd9&M@h3a%> zp*o#esB~twT2dZD1!JoDomm*2&MZ`?GYi$}%tCcKvrwJREL1u(dzxshjc`l!xE+rJ z!TwV3%2_PA_=sMCvGEb=U&m*(qh5S>Ly3GeyW+pq3 zXb_mQA1U^`Vvy5Sh3a%wp*mevs7_ZEs?$}4YBSrCHMXeHAF#h|Sep?O1I&WFAC{?mVfuz*R+oN$>7-;q_1j2T@I$#eXh zmRPeIBH!c3u!dNh*0&3mD8V#-5~CRk!nKR=*@(SE?Zr4hV%D(j8L`Xih}qzTAnJuQ zp>bSxysKq<^-#-BnNAU`ze91Y+I`3L-R(&PJvH5)SHFn`_np$H4j^?R-$kzjFliGk zTsD{d#?EH7Onyok5ZO`|tG(J=y#(6{aKmYpHbkoy*|~)J)C)pG0?m(4c;AZ|O_J6B z6bpyF13u@T7hLi!JBIB}2NzWA;nW_X-v4IHk&PKzfNR%EHLGnO-G~ zcGD*$c6!D3PR6pmo1cCpJV*rNBLo@l?D&L{z1;)#X*OX5EFNqVM!Ve;MjKJW#TVek zIr)-27!i}C5-y@3q&fusIs|xpM+F9RCT%6|Mlm;S3ku#TC(4+ zvB_zjs?$1Er**1M>r|cAsXDDwby}ya_0A*NLb7#=>F-N3e*&Y<(+_s!YpQj9RR0+6 zHOkEneT(mW@?8e^>z#}oCVk_8m>^$vT$EN2h8%F|6+Bf%0;Magk^I63$G1= zD+eYl6FGpbMp`CE|HrB-8`M=csOx7?*UzA?pX#@LFb zM5;9DIRlcVOR@lFBX|n%Kc?p(0f&DmBg%|9I{Y$xE zMNWm62oxXO3zZ14&WgQ41!FCWUXba1@(L}Mft9};veb)~$hG+=T6?E`$pm|i=cc{J z1mFoulK+={;WGVy$ymBjZIXUBlM>1*mI)Y@^_N&=x6kDy1q$}oOx?U<2=<~p#pLz` zj43p4>`8z{H3}n5iu#Me1Ect&!>9|O%6E4F11tN+gZG<6>HC9G@n zijM=4YF&s_>qMklHzL(K5~vw-1ofHc?Tg zH38IZ?@tJCnn|Bg?Yc=wMF~x-{a>0toioH%` zh3Z6BY?vvs??@AVf&$n#?<4^C&pU}T*-4;%kC}H8q>sWBXF{3$)t2d9b3uxqVDHJ) z^(%*9hvhQexN-2!yd+@wOF=qiAJY0l1a*`$?S~{hUE@0qk3uDnS5y>K1tg zEAl#W21TfoK{3GTGLkMQi6Vg{^2Oya1@kxMi+&<<3GSRTMw~89&7|5r)GXER0TyBv zR&jzwLk%<>y&cPq&~Oun0-tp!&}{hynr)5Pk-e#Q3Y4#W>n|CnZAlyc+emj#u~4?Td6I%-l`)4MGCkT}g6W zzkaD6*U^5LnHO1KI4qYXfMsl zYOShSsAz&Rxbz!L zRBK+O+KGhr*XFb0`jtblyk$EIurza}Yi8cF5W%22?^%dpq!DtzIcA=hx9WiJ&s+5iX`tMVTs?CGMG2XX z$p9nS^Tuu_dFQGsnhC~Ll~6aj7gtWwg^_5MNxvyBqinjJ3nptySPIA<^TgYAGma{d z8UftOg4o8ZBq!1`<%w`{q>=d3#fnR4;iZdhc|9~j46*#!G+(OKp=PO8hs2^^x-M4- zq8(_~r9i_W9(NBk+##ERW}OK%+mMqT$(w4$pzRf{SlXVG0ijxRW81R^N2)bBQmxUE zYR$%`v+_D3nFh=KWHDf2yf8Y(3)L}RsE+YMb&MCPW4utU@${3eUq>8E=lE%hW2v(? zVCg4PbxaVtsk}A-9-G&OGg%vm-sjU(U)AOsC1g)BENUCSrq1W#jM`oqp18!xKNB)q&MkH1P({0Y(8ofVC6h<)j`S^A8yQT3vj-E2O-=(FVWj){QLCGTUwOh%=Qcv*0PZaa}<-90^Yo39IlDu zfLrOM^D*8CiDuOCDFM~2t68d92MZA%bx*^%ti75|e3Kc`PO-vrP4Zzo{8YJ}ZC9!A zKkYZFXR~7d*hD#69CUPmr4e(hSQ>u36Lcx&5c^<(@0 zy7p|E)HRzX3B%edvUg}T$BMMvu1I24L{>igvZCO6 zm>LjvBQyOjpB;Okj@g>uGn-A8xU_kNWx8jp!r8c8k<7ayN*n7a9j=P~-}ASMEw?D% zSo!kcIf=B~u1IoN__DtCnmTLFej0g+ZBlqH>zl^S#(PmKJ#q;DJ$6Phn^A?&mHOI&~itKqY;x~#xbI)-f;B*YJyr%jCBl z_>FXwkRNJQ7i zh@$s<`Q3H$?%Mb+`hS(*T`li!Uee^s`fKfw(5cZdW7~RYs|R#EzPt3n$k%k7H9?;=W0U%plqkJddcwxpmYHF@iqDJ62Q0W?}Eq!t$_Tzjd1aWd_HgylKp8j=Z8>!uA2GHk#MQ_MAd`d zK(nH}%SS6q)LBuZ8Fix?bwF~s`wRtFXOgWRxDQG!9YDO3AMn5;1PbZJIsku#WZiXs z`QtYxa`N*U$j*ZLwV>)3H(sazkC zEw?KY9~R_C`JHQ)8&vUp<&q6*@dNGF7t1Y*>&uWE=Oof{yCU)7cG(x_GGrHh*Z&8F z))&hyitEdeMRO8qxm}U?z}I=he5o%(_EE)fg@aoD(S7TSZ*i`3X^P%T+vTgqqj%RT3O;!eRw^tRiTZN<#t8lcM&CL?w+cON1K0^TNKxa z*A;UTX}MjI)O6vC%pn^VxTx{a*|u$_yF1KwBw?rzudi-3$A-glyCR8I5!tnM zWZ|Megw8fnFW-X0yt$`Y6A!|U5x71}6SZdW9J7g2Kh@_DLwwC-uSMR9$2{lJ_= zT5eY)&!H3#8Evf31shfIxAaxkm`(ZLM%y4-Zc)6k`pEKs<|NW`yCV7h$6o#*XJfrD z;-6gSUsRm34#495>$}-_o&DM~)SgkqSzbrne)`|4ivP*Hw*LQAmMd%v^8f3$URZ8N z?GdV$fBY`9eq()QZ@EIH$W{8rc$IF|T5d;eSJm==55mG-tF>IBw)p?!R;}fB)Y^Y* z6?$B~|F>Kr$oZdNS+$niQEUIPV(_-kt>p^dirN|epStCC)Y^a36>?jvwOk>$GygL$ z%k8M$xM%zUoO|oPJb%c37p?GP-_&SMKcw`P7LY82i> zUp^DBmh8OyMEAsVz>gmpNz%VAtL|Ah>bN7*xE|mUhwxKDznIq>f?cCjxoiSF`++4R z*yMw;qzic8hn9?Bw^jQ@A|NL3FcwtXK-V^pV>2enof_b83pd7xU<>Yxb$!4$|3kKJ zdc~&jF`gir(7LIq!wNv~CqNQte0 zUeJD+GCJt~V>J7=|CG#Mq2Sq>^c4laok?x6J~;KH!Gjc>$fOe$BqPo*;o2VM)sTFq z(Uy;uhvLv=osY>nACm;1t|Ic=V)%&^!^!7VF`TSpI5}FtChLGr)&Z-2Sbvm&N#$>9 zopd*7$Qni)w1#NI)(~wWH$M4N+#xHWA=242&e1%lKtf_M?bp@tEJb{A$0FcYm|+!~u@Z_zf@-kGLa*H(>; zv^66niX%_8E`9E2sr7Z~b2K*@*cOi5)VlSA?AqcHVYYOH)E32kQwQr(A&<-?>SJXl zy;8w9WYRebuFs^I^5HH1XXtJ!B$r5&+(5IkNZO;)u5%Lb=}KBKwtU|3t`Cayg5tjz}70y%VZB6E>hwy8XGjT0Jhw9w3{Nb=CyCQIcxDZ0T>+4GNgQ7x5rM2u*`W^WZe|I ztdl~rE(&S(sXM^Io7>i$U{OQT>}&-Isa~-L^@=s9l9X z1sd=})A6YbNdIftbRsk50}Yr-AzA^M?}5!awY#p1N9b$d!Kq{Qq#9_zSLD+xApQn6 z9OXnCXyk2~}jDW_e) zQFF>QMGyykR=UmT0&?;TY{2a8rBDIc<_9)l_WQyH`2AEg9YBr%((eIZm1?E~m=6e( zfRvGlXF{?x1uLi`4hq5s=v5Il5rzWitB^^+xt2^2XKO}0wIvhSZi#a8m;w+sK=L2hfGGfB10;`u4LIktPfqWlU7%5_Fo_gtfTJdc zNgBiv@ws%_@R5`JvjFY6Z`N2wDi~8x%mXBZkr9j_3L_v9h>Qe*UKgogx%2e_>2{G3 zjDi+DfE09O1iPnpJYfW+F-Ar(+N3Z7(k&w+7{xD)fE0gZ1S2uRNM6_iM@Fy{)4{qA zNCG3HT`29AM7TEO6y8}s=ZI9WgVLuT6M#i#WH_0@>^L0D3xkArCWD@k9cV^>-3ijS?JYZqGFgnHy)iGYE)_BY;3=%V$5KqYl2^H*F*&x8e zAYpV25~^d6P-ilTNJ)f*3#>3xoWV>Y6{878uw*w1SeUtual6?WWcQCZi=DbPs`-*C zStA(@(Uwd@v=!ri$JOcxOMz7pXja3hOU7PiV=mvu-76{J5Y!Oab8`%8h-|t!2sK3e z5nm+gZi)~28ls&Z@6|I6I^^QdvY_$)y8V-XYQ2}`>F9e{<%oHKvYeu?JB+OwyVDSC zxl-qiOV5prR9&e6NZ_oX|>4&X(JG!4jJQSMiMUtOi}(easS zTnCVGvQEupKnu&o+T4q_v@W-$pXBZ-RIvZe-4l?RApJ`iZJ|c0oePm_ZN{LVC8rO_o=?KFX?faD zvpbGd>bQuI@KQJ&P$IA0?nSEI@ku?h-DB&fs?5nYQrVvs`xh~QWN;-Bc{#bhQg>b| z*W5`)s!d!=oQ})YE~>%K$N>dBFEg%|e@v>_H!>sONA4d#43mBd}52b5?480nN0Ik}YKExEi#?~|fLu-|5?*bjCq&9v}} z{dTJ!B{+E(1IYWnTVxoFY7qM=1wIxNp{rL6!Pue;BjC|lqUZrTQK^y=z@oT>kx$Wz zjkHj0aUG&1@Bn??dF?>P6+^HEdKVR@z{(+55zy7{v1^kXP@xh~KI;<$0Qp=< zR0$(kdyIvV7#Bw=p@QwJv5xkG6@6Lkck&?;oO}qCe9#1VXbn{VEv9iuuOAFVvg>&YW#6m?PGMa@bco#Tm6ohBgEIoB-xL9{#j1CdD07Ihf3 z*L^{#bE!icvX*dAL9u|rsGK-mz>3h_)YEIj z>TEW8v*+P0epq>y*OT`Ym3NB1&Kv8|)}OBns*tQ?MitNY@&H2nbLjOvP0x>@C#$=!NN!iN^7Z=GLHFYeab3V-wOuE_f2>{NBe`1u(lx?jx6FCC zvdcDuCy1nG>|;Z5EIW@&i{0|FAsCMf$#6C!o0L&VfIKS{CDzXfb)BuVm~CT6V0bc1 z#L3fJV8lk!M_`D8knCnlNOcJMHUz?j|Jl<%p5m5p)jp-qOgI1tmv!i!f0>!CogFcO z?^Azss;25xP1UKIs#7&pr)sKB)l_Zjl&v+ntFd{(&X1-^I)MdWOizSQ)UvCekz23a z%(CVQ7CX*;tc8&uOZvtEF+m;>Su{l0UGlfx0r@bv;j=D&NaZ5bHNrAEzu%7jtjziS zc$lzEZAp2Se_a&{U%ba(nz&> zBh{*oRGT!kzc=5<$e{)7BBjd1Jb+9z5hsi`Fp=t*>7Rsz>X<21Yv!K1aGjv9(HXG9 zrgb@VKh`xY@`4os6<)_up%PG*B#|IgFxqyM>)0>6GueOlv;a>Kx{s%&b^`EIN|OJI z_POQyU(wM1wX_yit$`qsJuy&12}S~MHo1ID&ZU?M_QG6<>sAiIvhhy>ER&uKku*o& z!OEn|;~d(kii5hS@{+#NOS%~ACA}_MGK>{r%SRe1B5xbWILbjDyae3J%6O!P`b%4c z9E>1`GM_`paqEZ&q=#xGG+=(nxg&|H2>B<9jo`{57@>-(94+KH+D-GU`sa5wOLZpz z3ndnQ;RtW>E6{8q1sXnKeV|#}1I=~_bY{z|f1KyHJ8M`7?c5rhH7`oA2BLi%tA+T* z3a}B3R2#!c^~|g%9esq{MQ8q0K|=fbRDTnw-c6^8%x1vdl_Y)sT>3oK|LK|gJW6in znZR*6LTGh(muE-)m@eap(zXX|8yg)C_@z5aOB=0pG4t|NJXQ0mS*qp*3lktT8|y)! zG4-%N(3p6nDbTF#fo6LHI@*4O9^*e$d1@&y*K($Zzg z(w7&D^70|r<(VoHz>2!wuq=61Jmw%&yn26Lszm}A^)h2hM8ZtI{)74|)0{9*sGC++ zNtfZ&F&P(x!zH*C5gFR)7NP`uT zc48_KAi~8&l1LL)o*RnscOpAl46*!}G+(OKp=PO82UzeabaR}-{6NEaKI#lKYkHvB zz7}Y9rlT`kUabzaILr#MT2>hrsn)bewZ=uNH7`=FfoOm87U>7eU1Bj{Y354T%$$BA z7*yxgf$EP`&&+ytpdZlrqcdQIP10@2DWw^C!N{~wg_nRb|08wefI7V$OFy1!bpnIV z%e@`&{kgYavrMl$(Eje3dpkH&Nii}{SY%cxU zmX*_)tC=?zJ{Bd^#P$pn*3uTj9K|H2fH!X$hil?E z;8uF+?2<-EG^3uE5>U;$nx&d`un^%?IDntYhk_Xq8~x>&_* z?=P0krf2?G^=}@=KG$N4m1lW9d4z~)$_$pZ+Dd|p?^{MLuwtz2nC;lFtHoRM)w|hb zg~vXs7+v0~(2BI&uE^0my;>FfUn8`NEw?D%Q2BE0oJ3k~S0vAP7FkN-lhXmtE1tgT|pEs9rHzAT!PNXzYt z#0P$~LT0Z#OT+gmc?2U;57tN5`I23vT2BsEBatXQ*oqU9mF0A51U*0n%BqK;2j=y= z7E~?icT#S=X`XSgxsEyo-j{IwAQyw|n0lqU0tN*7i!?Ngqs5+nJk^iatu9^N%uERUy|J2=}m9W=8^S#pv zzz;qg(g5%xC58XPIxz(M<-a6Gz`+wBO#m+GK^g#_mPiwThx8MdodcM9Xfm}2cy2Pa z3y5*?-|K>XDl-E19vd}AMzCioRZeDrS8l-w_Pxvq_=7DN!TyjL0e62~sT%B#N)^?B zAANku2=)b~3L_x#kIsO-uR~C~fdAbsC4wED64C`ES5YDu=@Qj|cbh0Bg5`Wxr|CMM zBtC{ zLr{Ge*oGjS;B5?~7uf&=wz{GxsNEA&rA<(!3sX%^P-gpQ5(V|?R8SLy^3@u*pc43u z6w3)4wZLWr6lgXUfi~Ox4m>s(&90~|9N673f?#-%2#nE24~$#muzXb3=I)wDGP9@1{)bZbr^tRz_0&>L@heiQr^x=Usf|zVuHaFb^i>7F zn@QhSkT8p_fJC{B_?yO)ttT&z;97l^kx$TuG^wvb8YL^j)|QhurG_^3p9)@_N!Ka3 zv$ie~w*B%p-IllCJc3wE*Lj<+^EOSAewFez-4^RRrdUruOu-!f>Cpl^Jz8L=>%dOe zft}u7ftA^H*|N6Ko~TozVYI<*h&H?p(N2tpNYn{+Lj-B7@rKb>c|){y-VooeMNeWH zA_$FWhNg7cvQhHXNVJ)1h&ERZaeHM;R?)Ux{X9*BKH%m=ngG00YI1#>Pmyo4DJ0UC zCrh7>_TbdM`gAnfm<()7E%Qj&03VTN*#uyoWqq4z88}Kxg>96C3Y$%*kZdxAG?!Ge ztqP^a2IFzMo&*}B{l!f_?fy%J2`FEI)Kb9`RK?-Oi0!tA=#A` z8&D{X{d!IOGt%azT3?*C#90x9WYyVSihSro^r$Ey;T0|kiK$J(g=BXVLYiG&A9c(k z$vYskNcNF{f4T{U&&(LH3y>Kjb^*3eo;p~4f|Zx~5hulLA#IuXd6jGoGohdkAaBU_SoPMmiEnzbySS7ZVJgdDJ1KnkY;yq3I}g) zJ8yzT4N04_6(pp3O`59XH&w@P#NG33@sldrw2TPS8XF?!(;OS3HLW3H9LqpMoK3Mb z8Psy`BP5oy?Qvknf#PsHn^EN|`@P4+13{o&r!eNpB?}-i3v6g4aKRI{G!ezF`>-JcR#p-OL3VaQ9K1hNb|CL14pqPPT!@ zu8(tUpaHK-XQU~>H|pvi*nr=bwt`cDvxS#f9+=OqfE;Cm2H=Y`8{p5C6xf)IZ_?d= zpxKi^ptWU-l`rrC)9Ylu19IpMY``Q}*tRvPbo(Iw?wa5~=3P7Bs7d9%B8UV2=X71w z2js{W*nrvk%SHo`Q$Sz?<~Sg1fQO}W=m2s;kd*=Os>}tL&kxgp)RBm1ma>QiE7$@t zTLX>K+Oa4QVCqT40eW?muTG``+e%BkYO5^DBN(@>^|5;~>4ATc>SGd+TnClFBwKd* zfaE%`0h4TD10>gh4VYvL8z4CgY`{5xljQI5MP7hOhDZbS^3s-sptUUvb7`~jIRhH) z9@5U6slvU zP-iles75ov3gb6tRa z;;U$Ay(l_6g#&rN0Cwroq3}|6_x2X;3 zYHL@d;&^v%)ItSYpBptGQzj0##T%)1(nPAAHIZsP`M$2oyCv0=fb6Pd;QAG57fUHd zDp@Mb6kfveOATt|1>^i6aRub~5EI}_gA5m00Pxg{jR%yw~1m-*e9`Srae8MoZ`bf44C1n(l-BSz!cxr5=!oDSM~;V1HAnTQ>EW4A2B0jpvX?G)2J z^TR?RgJ9LZR5EBw>?WOb-`D?#_cpFrwlV#zFIDvjEtdKkg*5G4qjuh^bs-N{Z{M_R z>y}ONTY}Wk2g=pWa&>R|-7IQpSGg)bBOJaq625;(RzI&<70K0A@;I%TldF|vn~mBV z8|wNRaXeO|JKLMN;<>2TJVM|5&VZO(d6w6cN1mASQYe7+lyn=Xl&Lc%h02tqRfaXF0YqqLRkzk`XAR_dg(bt2{o%kW~z@>IhrhdkUdC9YLtJdaI?en)|}&%zdFcb6==Vl?m0E z`$Dyc*HUFdwecC?`}Mj9P6NTJi0s&J5vjHXVk1};CsB3##_4@pBOliP^%kAbe5Kqp z?39~^9qFdQdLtY7>Z;9$)#KIc2L{+;wkCMsnb@FK@PjNXv;mIhTNs|vp z0E-~+@iac98~oTN^9M^rJYX>@KV|l${A`5xh^7q+rvG1cTn_dCaY26SbU85Y$Qj{s zYeS$}@jQyhN1$RldkH>?6B3`mvAqxyorDMpsr~eFvi+p8`Bdt$`Z+8QV@UG>#3(rf z+`iG86^T4@fnkx@nl{y%HicgkX=e>ih4n)q{coc5GB zc_&wQ)lcuY=SQQa0IOAX%f>!k;u-n*m?=QIMp%^P$I-Oy@o~I($SmXGBq0G->#2<8 zGx%4OV@IKaad0BT?WQA0)RRIE0)^ylH`-4_2?0?OH{>-6U_?P;M+op&NUgK^$r(Ho zF5D^(Otub8whl~M2b=`n=O-qC*4b1}wx&;1f6u9Qf}8qaS1MJ$ED1;ggSbt(jLBi5 z+B7CAW&6HzU@j8C-mg^Ih5(ZCG~8xAQElQA)$_eQna1~r=E*vNjhG-GGg}QpvO#>6 z+RiMDpV``R?gzPyd{g#*6c7{SgK!6ec+dUIF{-^3?*v#M^1?X*X z7)O*O0)Pt)*iOv`A)05va9}>Ai=#=^aHWfxAIrtly#BsrXU+&@VGqh69W$5+wTj>|i8Ye(DXdil#7PP#qz6(Gp%FRK-H5PAr7l6^qwY8J_8b-M19& z-kCnwIfW`)Q84_FeF$LXk}%>DC6OWmMo9=&c)=?7#Q>*3go^tlB}o9AGbp0X2E|$$ z)(R`nTR#{_=}2J#F0hKu)U@oHl^(Fsk_d?d7zs&n03#=z>2VSvLY+kHauXp`62bEx zVt`0+>d*-}j*jO!*{nbXv&DkWVtKOy z(MB;#0wayh8kVTmv_!SWC8{+qQLTY!zjRi$fR(yf1z4FW`E$$^s$-^59W(t35UMqk zp2O;roB^wBl8%l|RHyI?6^u+L30OMJs^SFHSwFD!9l2H~Q2msAv^W8{N=dTS-p%@f zP1ocb*yipSCFDt*k)VN*D)~7%z$!w*NQA0b2o=55eGGmgYd_Xk{H4IIQiPYo=jcVp(~^L%J}cgxcBZdj<} z&}*q;Lc1@08u`V_rcckO*$^<63n_7F6;6dY4Fo+*i2X7>9D}5|9fO>bXTB2qQW@1FQVk|+&M?kaCY8ZH(voj&>bd%xKS$gl)M@;r@W@YxcRw1s_|Q( z`@H)!aDi20ceT5{cdOA0dD`5%WMzp&btsk(ESQMUnWA<*P74 z1-m9cc{2`JsTM{@wX-y%`q2EQ%L()%RyLYemXNFuf35alMEp?8j&nchV&prsN27q4 z5I;sk*w@O(ZGeQ={kZL|Di@)y5thmMxC{M7ne$t5FkzX<0W9O>vqKv`%jD=MMRk?5 zpJv@v6M3Zm58qpvmT%!qyT8?CxuxK@Ok3OTF)xvp+ZB0~imZIu+n%Jtb${g!E5OD+ z*y)A3Yhxd*k|_H|>&pFf%*py+qO)0|vp4+;8j>GbuI`cFNZXaJqTz|zd_u zMdEiAC8t^*ql$;ixaAhbI~rfkn3qV)?TX~7Mc%X{cRhf-X=mt{?(ncL_ee6(J`pV> z8}eV)7y0m%SGW`5HBgukXjYVW$6{rPIxA{8qkdhDdR~6Z(BuvUcNUU$1@7}Q%LpLe z$pcDQgg_yELS*DSXy zayU;th4r~|Iyz7T1-9ks{kt09IHXt^DMykh-weN%+@ zJODhutUR*Y2Ygl@*8VOQ!;0u%YC5^)k>ADoNZ0RTIlP^}i`8439{xH^|BL5&l_kfRiI(hisA*(UW)KMckh9a^ zzz4ieX~B(EAb(Ra0{=?RtT2M$caR8--$66*Q+06Q1FqxJeB9Nh=;9m~Tnr|!2EoTg zy^9-vWgGV1nPr~GtMT{`)Z@eohD%Ws2tEZ(z_l;UXWgwYmtqv=IslvO@Dmh*Q za^!CnM&NrZEtt0kgn%sS%{awyNe&Kq4Sc{SS2{Tb z`(rx2pRWIx_C~fX-?jpjd@b!w2C~hRlC99k>jW9m|0)!e=q&9`1)(IG04TW;s(~KS z{|Hr-dAPK zV@GvW!aU6G=k3wtw*hq-6Xy<5@E-bqaqpbveUO!fxFQ$i)AQg-z>Ac$ymwCT)Z;Gf z9ovWU`+DVYuB=?%hsNxcYn$RIxz^=Zabl`$Z;DxoQPLe zE^(dU+T2czwN8v%C*(=eHV@~|I4+D?7naGpUC-$q-DKfVq270ccxF?;0BgD3lgMYR zv;*dC`n6Fo+JZ0wGHnwh7@a~G0oes4#(9{sS^G&E2zI4XVy5NZVP1W0MBR$NiP_)JV^wj*b^@cR!?_QiT9q0u}mc@*yHr7*fb!BG{>X|tPbs} zW|BD(a{}SmVRPgN+LzG#5#7hw4HuF>)QTbd>=dj?&`B?ufo`=yw~=GVbyY6fF;ajD zvXG;N5D1B^oSCbmd4V&&Fd>%oE|!HH@sxU^B93B9RBJ5~U$53K?yWBZu{RQ}#gT{- zf)$BfIuIw3d)udEujynU($R!a_?-+y{vq_esY73+JNhEs(HH4f9~oy)O=W=Z>mJ*Q zQ{1a#H#LOblTGsxdgQmsg5UZ>JyrRNd;Knb3zZvoL{?^?S$W>x*xI<@DaGyMu+G|G zF`oNP*@yumQud41P3Kq`L1onXcGUVV^^EF@Y1cSxt<1hOub5L`RB&%5jQ}pz4QSkD zg50eTSLD=QmUo#`fc;s!%&xAqwTNh-P*}5=hU0~CQOBkDX znGi?;1FYpk?-6WIOB*D_53`xF-8o6H2C=TuFX)9xm|xWsu6zOg zr>XvY!Fq@lAISP-CxO_bw1LF^f%P&H(L?ihcM|9zWD@PqeAeGdM7opBNO!Us=}tBy zz023ij_W(@h;+w}NO$arbjOZJw{}of!|pI_KlnJa1=UZCvoQdb~O8#dvENbn6u3IYSOhtPv@9uU4A#GtCHM63H6Wj%s%XMpsu% z=VA7xDpG9Rqu_TlX#{X-p6hb{1agl;T#-}zh`cjc3pg@sXD}^`DwOeAI|I2QI|FFk znx~yXy4K}aabkVz#Axe;>%_Qq zLUsnN3$in4T^O@2u+Uov^3K3o&j4#V%L1Qy$&ZBs@|iWf0h!u~k*4}R zEsR8^rP9(86^sTVLT!&tj9q5GWqtZIPChQ&zNrs(ty1N!On}A4z}VUtsMv@#NoZ?O z;I#&QSC?0U_hS-A%wD9QH%V6pT%x2qhxD&pu5Zku41TDejmiMP|54Imy&1U4?}NH` zNmxMcZud;$Ar%uEG=5MS-U7!s!m-bhIaU)ebY!p~g^(Kmzj+?kHI7H~sc{T?U@n&C zae#2Vd@^eFDAU)BtjFP0?~<=~93w zmN%K~ot7V?I{MTTn$}M+$!7{V7%4r7*|jc)ZiSCHC+6Nb!kKVFbeop^8v23NaaA%P>i>MVKVmz$FQ`0Fwk;epjm7M--Q2 zI)lBSP{mR(98MC!@L4|013W|LTw(+x3_=y5V1z-aRX^ELRtDj9+!tOPeXh=pqz&wX zLKO*J?!PV1zUHMCMCeiKj2yt?2{sFfe0@p{7Lv7ANSKOILh7;z+4b6k@Oteb`NOU~ zxKs5TYXU766KHkTN9fj3=+;~4UHV=#tJ=UQCb<;>#IRIB)~rOeMkT5>DN(IK%zoAs z3_228pjCJ`DT5rKP`H3N{MS>D?uPg!~^1|c8|DNtY} z;vnYa+d4xJpwFnl%iG;&o7Au(l2uaZt&(=!{wfC6zZ4iS7675{+~?KMPMIXsI-Lx# z(Ag(`ZFP!Y(Xu z&JU4|pn5Sv(y$8;vZ@JeQ`Oa9t?~3l>jCsGxeKgRt3D;rD)+08NkRlM(aMBwr9!tZ zA@}s0^)bL-QIgycY?)bhVQlYhMT}tq#VSn#kkr-^Fzjh%H36iQYj$X*xSB^&aN%~y ziVa6-qBb6ZX1(y5t(7Hlw4#J$B?-xbYGpf*x-yDz z)NKKi05@zeqQ#6pk9I^fvVHSIsHx<9M`<=fNpW6$9i+KxW$UVSY5k8*XdT$LYv z4p*`C)^b&TWIFulbGT|FWi`pSsCG8rj=Eu>IaZ|Qc17X?k&t*g_ib?DQ{n<6`Uf@_ zd(`>;5p63=LbIod_SXk0w9&TQu1F$QMO&)Zih}Fl#Pz%C=5Tdtxy8-Ro2&yroR>(; z?TY-7imW2Hy^Y)wo#%Ja|1w{9$efcOcn?3&Zq2mZqIi4b%VF~pX}MjID&J6LZlpEH%esn#LNVc`-F{Lyo)Hp}Ns#amPxq8t`3aS$Qe+}UdRoT<1} zZ=mjyZ={-E$+SCKsc<=2v7W(owhEfP7o3aRd5^+bDrh)?mfI1ySp~i?yE*~*iQnam z%UkzMgWRG-5e4{|=U03nk5{7b0Y0j5~JRlO|zMo4Q%`09Uah*fS^4v0;4>9lY0~d^??z%nBu%lpf%;ZY|4$AuJ8?f;9b8% z9^|o45X=mWz?d1n(hvNl-%Eo7AMn!WRRTdKlo%L+ADS~OnnCb8FaqOu&krf1=f+pbFm*!;x ztuL2kU+(fOQZmy6zV^8#C2K(NGkjGa7(c^T`hiJT-~(P+rEU!f?gU0)+zA4KNmt+l zuH9|k5wKXR>~8vBzj+Uu)6kQrnYXR530RuQwsrhK>%ONgL4|@65q-k|`6B=wFCO@T z2D+!h5vnNDOW!b%4cAiXc=5oon$gRjld`z9w=Vd(RneWZ$=_6zG%GiTzcTBJLjGM* za;V%kElRdA+@byCqj?#aByRX7>!eMHkSGuIIIAhLcd2Yym@oRaJl75W-9rDPKnH)p zZ>J~;|0@EW@cf>p20HN}C(yxhMCegIIF1QD+5?W4$N{Hv;0Grm$ls-zxLN-rhs@9* zp@S1jk1G^O+=z~J`zzvmfW`;(Dx8WDy>B5HpPsmQOeWifQXb+Rx8apz(!CR zHPw!49(b^$x+-BFW-jR1aFN%4DVAlDb-id>L~>tqvofX65)z3m`; zogT`udL=xled=*?MV>Z?#;i_Ho2P4CeibLCS|>(ZC**1K)(LsqoD^WW+}!|Ta(dc4 ze3=dk2B)XZ!x!e3xK4Dv?SP~fCnj4b#;p_bI6>=zJZ;{(Flk*_*1J&ReRShMeA+y` zi~^5H0RwFK?WRc{XQCZ2Z^QH6qkS;if-nLyZ4)CHokAD^+0P`#d6=?O`$-xI_HRm+ z2l@6W$o^gKpaEIB!q`=Puy5<;L&gs9jH#XUf{~vj5sXMDUKX;y*Xg0!6=Ru7RIrEZ z{!wfi5JZ||(gRk9wtd@y6EPPzngpHnk{Re$ z8+02vc4*(sMLR_bFhN=sS_pxV$O?*`;~IQnLZmksAf8fBRK!ti{@V_a_%*dQe#sDl z*c*w~;z&dZHoM6&((YLHaU!*(wBHhs!=~f>Z zXAe$gfFGzmxf8#*=f@vv3w!q09=q{hTWpozc+b#fhb*o2hCdCYSF(Lc!p)E0y;q$gUJx?L^miASs37#8m6VxOGBy zrL7CHD{WnvvMwy^ZH&88>peUuS**$f-}tK%Xaf5!5YLmNWYNY z6nm=G58YY-onA|Cf^MyVZtY<0I8;x+WS?t~Y=mU35|TYI5t5aSk8GUN+Y!KS&N~5l zlPAcnO3d#%z?g6Axl+D>{-4)9ZobfE#o_8<+&UnZ@JFKcG7`~4fZd%3o+3`7ed-VW zokyfQ*^G22o00BhGt#?!t?YPUhaHjb*b(WD9g*(X5$VdG4>66if8S! z=|^stK3fFv&m}jkdRAtjS$W=0!rHjtX~=1LRTKkTjdhCgoVJH0*_^b?F2}m*+*Ke5 zLuAcrN3}Z%o%xLFis?MeJ}uv?PhGCy_DmW9e5aD)P6Fh^g}5T8_AB{tYzpv)N=iG4 zuv9_0Rj;I-L^v8+-iOAmf7(f;Yh8X7C)T%4jJ8h5PNH=}b`qoj%Oxv-m|S)eP%yaO zNkFTe=-f$YQi~I7TPMb?6S9+NU67qb>%v;=!ZP^)Gn{W(2jWg5yzIhS&j1_#o-QMN z=qGOh0A$976@N{i-uf2ZmL)2kiw=;ewy!3tReeuYjUMSjuMeNSSWVEaF6dSpbgS$p zi-@t3t=merUSlk}Bsx$1Z$HYBZneR0)j=OZ-xE6YMY^Le(j9$~ZuODX7id<=K7l8- z(9y?dn9!}<{XIVPd8^x7C#~M$O7el~J)`jo@2l+3nqz#h3qMhz)}TAth;nSyu!B#X zrJdMMoP}hq5)!qKK|->&2+5iuq%I4Hggl{h#f()LiB@GKTBVU_)kfl6io>@XtlmJg zY6Hz`4K%AX(7JS1EzPn#%2dXp-qs#w9jVJ!paGw(G}#sbQapjJwSH@_wSH^!h(;J| z|1j;V&rTn{%R?{n%rw|dN)ZJyEUcbemlo z-QXTD7BP3Qi3mdnC(KpEdF&vF1;!T(+t_2T1gg&xxi&W;s1c>kOF!5nmO9xM}j zl;0JX59N8f7VuI%6Rh7*VBN2;*$_ytv)@<=Hl^&~=t5v&Ti2(>OH0|-o&2$4V{R%_u1 zuSg&QxSJ$^Rp}84q=yNVECZv$l3bg#*J_CFSKQw-(+9h}P{k%Nf|K-s5uf>lN>n*P z5mio5gctXhYv)KV4eh>2=yLz>axZDtd?G||k*9%d(uHK*5E4E-H+O_d93X$fh4rLK zNL@x!V`2HV`U1@=3^c1T(5%Wp>(WVQl^F;~AnF-tBT`?prq$*R1TenWZ- zrEZL$s{e%@kb11yyKK6{B*jJ~ECMzp-ojwV`H{5lU#{I|f$rPP`*ntr*LJrySYDD# zW6a8Sz8uUb3OF<#JIrfFjH?QfVbsn%%jiGVH7xN10oP*nGI4?3vruI%0b5YAGWrS>n<@$&ik4tdMt_VkuVEWAg#x~se)5=&1gR|mY| z%W9JIio{BMmAFU*tSGpMOyUA#Y*(Bft!57w3Ck^Jw{OmS{Jcb3Zdc^6-oRIVbZ5gg zqSi4@od+hlRK?EyAOk+utNpcpA(wjz=MHDBdVy+(g-eweaTT=zfsfTyyqMQ&%Xp3z zodeM4s%MLWzG`n}9lA)hZPNeFUWR80-=x6D{?{oCO^pF920n06g z-1gXK&P$}_c17X?A8MuUX@hc}D*pZAOVtnO;ughi$Gd1=A}zNo5+5#C(SFB!kzRdy z@nt~ww%nq)?OA_3FOinp6^Rc#zunb=EuYhnwyAZ9a#*;;mr>|NHnWz`X&l>C+g1AC zVL{8^D+@itYO{RK#NVMJ-kY^GpP!(GFAIn^w>MZmXX5WvE!Spk&94mD`*W#5XK%ei z@6hk9|D`uncM&!YmRky@-MJn$FOinp70C@ChX-LkwL4e1Ru^A(l=~&?i{*A+YdWri zh7)MH9f9Ylz&GiCVFBE85$|N&x_ugC`NfGSe1IR^Sn+}UlM;mw@V1)I`rg_x?%46x zY{#9m9piwgmVCW+8U*F?o>aifj<+_CC|NtgTTNR-}mn(r_W?%%y%<#5S;O}ZY10V3MFQ^299RK@?7#M*s zR9f(N704SZM&Q@v5)ej^*C{bb1b$1+2=eZV5t!&k)gXj7I0*caYA|pe{^k+nHvAXo z@Ds`Sl2i~v8D5eKOejOEn_dP+h~jV%Vw70Ha4E8a;8V~9T>H|zjlzUJ3~xmR#?SEfRNz}Lp+aVQz*J8Z2y%R`keOUcPpC?14G6&qnt`dFC=rD6 z35>v0PhPif zHz}`GR%$1nrTh=zonO zC|>F7X{}EkZ>`;~Q}R7|Q63}56p-w|NCoi_5~Ym!&OQy}VJr>) zTX&IowMve!%|#%!8;REWNJI(Qa^Jek8iP1eY$ZassbD;dl6+ke5Rq~_X{9-LmTX*fKu1c7P+3WM&z~tX5_@PW10sNGb;#)~TzFLSYazXxq?n1<8z`syZdA}Ky zSL&7YR+97%GiY>+^i~r8{bt0YI5E{aG1@vIZzXA+khhYM0xXwP20%8&K;^(jmG&}t{T-n!d5G1fXUZk>>4u38u5tt71rW7dUby$$iLB-VlWR+8{iWNSSG zY+2d8u{@B0_$`0)(X&~5jN|h(vcPYr- zpnNh7_)uNC!`M}QFcxb0ZuW9u7U{$Z#u6Pkf&W);HbwJ*xX>7q)nF{uNekHFx`UE# z1jyPQ6x;PW(Ck{B1X4VdZBh=#t}%?a8^%Dh>v@vNYR)PhI9aJ#p#u&0UAoFjcZpNrDOpq-Yv-SAAc#bh${whz0F{+Sh;oPF&9^Eay78#9no+f4#YPRA`llM(K-={xWSB%L^R__B-+TK7#$Mf^#q#L5omMC-=A%X zQ@Cm_$F6Jb@A94T9NWo82N036RkzZd&j=AzMy+p0t+%1Eqq;)hH4a-Vv(MD?NU`xX z3hv0H5x{>`QoQW~`D7uk$Q7_CuN+f=N6fnI3U@3}?ltSSE4}a$8q+u3cBN}weibLy zw@!?xA5Pkpe82mq7wza(Njf6bw$cUFo&b&}t{TUIs~0ixXq56XVtix$SCQ zklU`-g)!>_cTv`XeA{KMXMhd=fPE!RBJGrOOV|5@L?t*h;zWIe*2Hh=ej`!Y=F?OX zmBpO4lBlfaY?Ts~cFHC^QRm?jH(hBU7`I(vPY=vZSKt(TFA9;T+d;l|UdDo(jiwc)14NfsjAsftKzs)%%_Dk9w) zjb5iJB7axRDu3?Z;ZLMH{zSUtPoz8kM7rZoq&xmZy5mozTYsqX19f9SmC_EGZQxb@ z;|&1uqT+-<(!p6@kh8xw`c52U_acsSZQQ&3?6SK{pUsbz8+M6SW}sPl-e%m&T5$W~ zqiT{!GOS_Hty7HWvu#-$0TC(3rB<4dx&)O`>)TPy&KvcN>WXQXHf*iTJ}a*XYu~Hj zb(u5*_yr}!oj1r$g}5T8c2(YauLXSetetmw&o`9cowf6pEAkq4Xv~+i^G?^g{3=eY zZ=D!zosgY(>xAsQNdcD2&KnSu%g!4L2G=`pXtfhvJ8zO&oEU4J7`INy&bxI%cHXTE zW7Y*W($;~z^S0JAz=nUXF26kNBhS17vdV-l<(fYAO3zGG+c6WB^<});d9Uf))g|%T zwIxyMeDxlCO>=|K-T_Nx%5M#i9avkTTWg_Pd!bv4pYJNof!s$_X2@H7kW1%~$59bo2uHUsP@7;t1;w zRy;QAldT+LxoL?TG(>U|=I+`MS7mkev3^z~-N|aCJ6Vl%C##X}WHr*AtVViQ7%IER zI_!>g$L>gX?2dHD?nrm+j&#TFNVj%VjaO>=s9Kvr=<}UjHtEQ59)5|l7rU!nPo!JB zyX@=IH`n;E65FxfPR8mTZmO=-=rWopFh8oQ*{2@H9Xj%<8a#u}6yzKPx>HTFvO-6O z-$vE?DGy+8p0-X#qOGGyw38wY*F6TlMWS^q60KK}XkCg#stkW3vCA1cn`|b!SjcPm z?znX~(5$zCW}S^=jjw@bT@5trX`oq01I_vwXk9*3>yc&gPN`Zqw=T!c1)Mz5_sDWM z=V?9Py1ez=|MUhUzU4xE$?1G@%OhUIlLAQQEx4uEQnT2kBgl^Nv z9riZuLejIWD?+kf2#F^Bsq8-)jI2eVl zuBI^$v!AWAM{N9ng1a(l1n{eQj-9i-5AxkYT#N{`IW$O#gZ$Lf`E z_;TuTaz##%pm7wEPLR^IF29Ns>su#ATPNfMsdYk5kVpZROI83extt(D!QlD?30mz$ z*9j6yEl!NJPK;Y8qGk==4{y?+MAkb(8wD3T)O(4+d;xxKI>oWJ`^V3&V!gqBy^}!ydR52KETuE|+ zuy-Q}&Zg0JAyBIEE>W$2iE2GeRO@4+S}zmT`pMn=`TCWd5DVbQfBT7~QiANYtG{|_B{3G>2;b06f1tF_a)ba)m+o4(%&~4y?DjT*S*9ML8 zgzb}6u>n&s@OB0B&1L%x_*Ny!H`7;?pPM2EAIzZ|1N>(t%^rX!f1=jOPOZxbYBl8@ zjB@?SsocNTDouWZov4K>RC$*O*j>tOmbVCiFiPzR^;{oG}R4FbBkWAg467)PZ_4FWE>Xs^@h z@tIl41RI%^Ofb@yyaOYH^GT+3c7j0qQXs*u(uR~&fmJD%8Y9JT*2W~fLIwMNp-MqH zi5D9P`kaXux%-lMg8jMNrkXFZw=B(XX~Dvz2q#8Fk;nuZak+nPsQyWn^*)TXMIUH* zPBRWPTiV$6$?ReCTU!6EmoQ&?dfeSx7ob}=pxabJx9&i*xPyer9y;6A$p)3Ozni z3%+qf{%&!6I0Bp=E^^{`Tfw{X&(udR_?g-YkOO{kp+~*oGz;O6c7pFN{OKrB8w3pl zz2MjDb@bXiz;81F-R1&1*xGao^k2KTKGY1eAypO_6GFB=fIp^lgY(h@5kq7XwV%`&+M)|P9b0vQM%ghRyd9C1 zwa*3orn2FY_6&BSwl+!0cG;9F_QpcpJktletx)$&_ra)l`F1HFeNco7BN$yVW#9Uj zs7zNnV3Ghv{|me`eK5M8P{jqX-DP_v?y~OC`I0s;`e4##yI|tAc}!H>0Tb2cH&Mwp z-A+;gm{0;(HIzHc!ud`D^4l4;7 zfe;c!dsJSX)>&tT%X%s#+@yMh)MYo5GVFM*34vy92sCR%pjj&d&6*KtU3OHmGEvVWV;X`c0w z;dnXBF`e}i8P-qeU7r43p5J4Dczl?A$hhqM_@lKrdPbh=V}MU7XK&SS!;_ld&r`fP zdn4AAOUeis6(bn{q+sso#lrzwatQ1$`|~)>R*vh|aAZS^Fo ztsSa?nH#owR*SdwV;rR;TR*@BSJ44E_9DFOxl$Owc9$KPbUP+3d#)5-u-QjhPS8cd za6!k>ujC2a97MG&%|R3_q#`U`c#B_whF6qQpjqn!&DtJlwp`HpxomlJz|_@Ht!Z>K zYaVoKB6MpebZaVhEO4?~b5q?|V-wYynyA*$M73tpQ^+FjSpCqg1<DN(IKoB(mijp5)NatnRnp*NPDSq`7$p)UBvg+A~Q z8(%n#5xr3k-f))=9i01g>;&iLSLp7cG5+t(^JNV1e!5qeUt*KDC2x#B+=iRDQ(uF| zWR{kLH_YUk9gncIz6R}<((wUtsAlgje+t^@4}=dci|{pmoWogUQ?g#GQI>SikCP*1`Ik^|ZcbO=2Cv zW%{$#4c+R6ZgoQM(s$3Yz)E$1mDaZk5W~`Zv1TQzH7Zf9Nr`F=qO}~Tg%sQ95fYdM zEtp+)KVLs7kXiy@kggn#=c%ZAph9)e6_=rQ^!f3}yNEt>vganABVM24eErFB-g)F&|<YAOlG?#t*Yp*`mbEv-3=A7A07idGay{Ylo09f(Q!9hR=D61hOgh zdQrm3dQn1py(p0nZ&5-%-D4jbiFL59XX|Nw%|@JFjLY;)8&l|3FLbLDdY3*vQB6e* zMz87oeASwjhFhZ&)tZ#3)*vSN!3qHSjwzpr0N$r8COf8=UFa?*)q?Tvyx|%Hq#z~Z zSps4B_p(j^QmZw4SA0m(?Vd1O0%1+SM;!9j2|G?A$uQy}BtRq$3e7$~D?ruGZj?6u zDEVr4ON52`k(c9J+0JhSFp9#j8yhBhO^k6=tpp7a1L~k*2_-7*fM}`Nt@{(YdBsY9 z62tY|WveR-CfFr~DjQ(1zb#a`Jp#L-Q03tUux~3>x>|gW5d24l9*=Us57U_}{PCy- z951@M<64#XEd4KM*?Z+IdykxDpLVb8&&B2H7WvV-&FM$J@$0g3wfadr{M%Ws@?)4H z*+$*kA!n9*nsd>ot0>=CE7EeiBFPwWl59)HtSGqfIB|jDsZj4Qd40Zy>cD5tY6_># z&Cgz+KhPW-Zp-b8B>Gk6B>GkqTzAAAy-B_Z41WZ{nnDzu@q+^)!%s>mt} zJKHS4^=jponIc?ZA1c&6GkvfQ(w*`WZhNDnCh%# zn3qV)?TVzPs)$NW+2p{ru*&?TVyYhy;5#8w>cpttP++ z&Yn)_`(=-ZzUt{$Ytn8th4eU&t8%IG&h5aKFBDC)llzA1!)2F=ii<+fQ0*M?aH;ab{V)_hcJ7k>dF|vG&xZ}pM<9pjO#&($7A{rR#uIJpIDFiI zIk$U1quPE}|2r)9zAUU#(@pPy>jQfHF#8_GT4uSOU%I|p1q~9J4}&gh5XpOL|SfFBtG!zK-eR+zWkdi{z~zsy7#lbSZ-0=?oPir zFOinp6^ReuSJC3j&eoT2>ec@&zEpcg>x<ZdW8e@SJ0qE3GfLsp4gN z_7>(!+2LAWEVn3bcVUZE)Nmp#w<{7K_*zAnFYTV;uB!OR;>&;&1j{Xo+x^cy<|Wc{ zyCU&{FG7d;()w~gReW;sWx&0KaZI9@cmI||F^EbC8F5r}eFxK#a|guC)vK4)28quLPV zuyBdT+a-7I%5C|aW%*gE?Rom&Vd+h$?_-~;|7B4GTsM<0Nkjmjp``G7=ZQYp#|tCi zEtxa{xO{UK2YBa9ngINbOj>J;wKa7dQ_srk)&XK%Fm>E9bseVmHeuH|AofYE17hDH zy>Y-|>bkj1UDP|bhpp%hKVCly@=bLhFao1GGJ>EyFal#pWb88KKAPY~z4Lm&7iHRo zJ>V^BNf5RQs9 z%rkNdV~MEKH5m0N9VK1kOHY)y8cO^Fsbr?*4wID+*`G6Ihv3ei6F>bDzEC8Y1JfN6F_Q#v0d?lk0OyT zp#d^fKL0YpdyM*;R+=o9H_m{Ram{3694ub8;K7W_qNnASIrcgQ-dT2mgS-IB#m zHb{Up&M|G16!0uZarAN+-hsYXes`MAk`C)#2shc8(9YtlOISeU z4@e%cnjD6%jBRAl>(q?HMX?`nVcu@lpbqUV7NoFHbq~~dChB7q!=psCGZNLW&Z%w| zua>3x&M7R|6`n@1Rt1{1$$M%AS%01_YQ9VQ4!wjr7I~`@x>XC^1_QZAmDw-HD_~4{ z>2`n^Ah8ujt3FY!@Rx0!^xxbNT<|KP{R7rD0%RTdqoJ7GB3kmSa zN;*tl@vv+|eE6+PEwM{ZgAu+15=rY`n87%M<=(8e<0LE$!*L-2B56PjzNb}+*K@`I z3lbwaxsOKMuN#ys%lU1d!-Zu{W*M`xovkjTFsh!?nB+}g##IG}wyL^py_}@Bq0M&| zt}~Q7ae*T5eb5u$h6cs!$v0C#iMg`roNo%8TmsYY47mbXpCr0?X}uhV^qQ zXgGnE+YyNUvzK!lkmFSCFBCrpRDk7n({<9kL|SfFBtFndJLjgVhR;dwsmk)p`rlzW zOD~D+aR{+C-*!2iP~H#qmztH+grfDaxx@KJj8ab+Oj=)i$z>D9B#K)`bc z4&1C)UzP_>0A5)QoalqSwlLZWwo@;Ctgrz7`z%>tUnz`M)?U4I)E{v6Jpp*zixWwv z&+ciErGKQkl7vk3!Jeel$O`iAS*&1pen};@%bL4nYsLZZ_lFp`7VwwUz%+Bf`bw1# zD*(SbixKRW!U%{zNg~)|)De*gh!_5(C8$qRH^LD;@Qv!nqTWmo7}MjiJ;>A5yf7H} zBbheS1IC>=7=&~MEx@=F89{I;Fam!sXH(8zK=3#)+P~J{^RmCkWPdmGfN?Q?4gi9W z;bRHlo!Q?FJz!jngF(JoF#_XaWCS@yeOuJq&;x#07e9fEFfV{W5FmnVFV-vi4lyF6GlMNk{H1#Ibj4OZ;27t`A-O5tD#7H zOt7uFdrktrI+Ml$siia)jQGnvCLr!4MlfnX7y;=Xi4hD>gc0-k|G1xKvJJrm6}v7^ zfeAor^|0P~oMIA7{v(iL_%SaH-;EWyoF@UNlqCMjjVjo`*gz!S0TbePvcPVw-+Wob_RVIgPXIFO8yofi4ryothPb|BmqeY7=8*Pw(}n!o?oU2 zATwa!C&T=Fph5nG^~%ZNdgX_82KrxU#WwgaJka-L|-zN}?w_GPfp=EHu=Mm^AI zs`PVjUxut=QL`^&nVfS2V{J%H4l8~lTD$Go7il8BEyP^B;qcV{ZJdWZ%j?PG9BuZU zwblAPbN^j^W-4F*pNm^gK-*8wQTU^>epopx^fQb{>woD|fWPq4{PD(nr$HX7#IP-y z=!3neW(B!r7Ax4Vy{wYjWz8wsnsLC1OY?^&fWLQHA_ZH<`(U3?s(i!&c=yVZ@jlpz zN)<*x{7DkQUQieT@ggyHx$!b}BYf@we4F~QsJE#HjOpPpeiYB|S0gJ3ekay0&tIG~eQ^)?c=bGd%mj?9LB(ni zd|lMLxbZs-_Pkzgy$+0?&#SG^fzk7Lwe>hK+P^l_m*h;Z%9XvL2aJos-!&k6a}{ss z0pm_&1i6<^ywFsEaVIi@Jf~s=K1XSh5oANf2uy|}qjmUZO)R!cpS^ba?dkw_Mk2QS zR@N(==q);gXmuQ+;#TT^`BaFM|EQ4csEukF6HR`67?9}8tqUObhlaH#_e!EKjDYx* z7{Q3XFaqLlVgw`l!U#wV5+fMV7e+vWlo-4G{jB;e6H@M3!A5kl$#D=MSxSsxL{=C9 zu{|+@F-L?EkQtH~!7$r7iE48+K_V{CnVkTn4-B}cLm+O?4#MN|8aWBLMM=Ua2XA0M z$k7@D{7tndF=8cAOM1Ylio|=Q7Ceh+;vEpi*XaOBJs`V-BoXYk!U(uX*QUe>wp6Ji z5%ADij9`ZsMnKY-B!WGxFanb2#AwUYM$EevNRhUSm?E3<6?suXmmE3s<**GRlq?UvgcjW$R+vZy| zKi={@7q540y<;BoEUzbzgM-=kiPo}}=5BKEXa1I3PGYt<=aVRWK)#)9zU(@pw|j5Q zw|x_UZ`hI#tgo5|`5PsMC4Zt1_MVy*g7qA zd>tC_i+@rSjQ7FLP+No%@THZ}<9)F0g%J=VgLmWESA`uWT5~EEeZd|W!gp+LG zyIr1)4#&yBm>v$|MnP^>@4{f<=c&nIFfi`K!62k7FaqOTWCX#XzzF<>oFXv?1djuw z{lniIvcKo`fPX$GDf|=#7)}OTR)HLvy*sZ5jF-}#WH=aZ#^E6NnOMPaG_rzRmP<28 z1;f?I3WDEBYM1B#nmxa`2Yi0c^h^&JSA&YxAov=N!GZBKoJ9lUXdDcJpMen=HzOkm z*$s@qI2jp1@Yp*BZ!>*K&h*XM-{~GOE(Qf_K=5%POfBaWSyjKWsflZI!ts z2Pa_HXx+%&4j>Uuj9^4X7y&UTF@pV$hFur|$wXoVySOj{QWc32?8d?fh{K7o%VpZ2 z?A1xd|KvPR05T)0*O+t(Bx*@5*h_O2i~)YO1Y7Q#!9JFiPht<@O%lO~uux?<7fi&Hw>2i+ETbAao5*A7(+%1wWauaCGQVjC$Dv?zzYVImo2Wik!34mCT$_*Q6 z7*5F~Mj8cuAW^|sMP>Mb@6|Z>jWR_5=RFy4i>4=?01)3&rGO3R>5EIdk(CpS_9jXI z>1{~~80}3M0qJdt5sdaGjDVDMVg&m_X^DU=jFK}zs!qh&_3V)v>|fLW^_e=+zcpVg zkIh@r^*Q}qI=q|nM-Q;W%Co$lywxg?&6v0jNHK*i67z)3n6Lqs>AST@IZ-WPDA^~t z-i`|^XzD3>U>G7wv4i=V7{M?_7_o$E77`%FrLmYtMG7Mz<(L@3s7PT1q#P3?7!@gu zfRtlm1S2xSXj91Uh@1!uAW=C8>A{NEXtBsbPa>X>H%=3PPf^l<-5~Qo{6)l zA;XCg>?beZ)?aVi1rPC-Yyb`s`k{AIKe<6B1lQ(rZVt*@mS#%>3)LF7DmG?;Mkk`} z1R70;neT0LkYB89wmB?3m>?6zS|B70p#KR85S!Ap!YcZoFapy25+fM>PZ$Adeu)u` z{wIupG{3|M_Jy)e+gA8p&6c;y&c*9}&iuo9$g{kjylw6crnT&qhHLP#x#gAvneEMa zCU>;2FRj>W?fq#w#eI_gmzDu|zik{;uLnF=*q#0YJEj0%siedRw!JU{o~}M5MzAMm&!zx3&SC`ni^2#L533C(Y&sImj3HfC+LqtOq8lLGNl1!Wuqg0Di}xr4Wa~ zz{E5T1|g(@5txWZMi2rT7=ejrWCS6cff1N!Mn({V85n`T< zUy^IucwLg?_0dw2G8~K`1+&+H&=is;Fv1jBL5Ndg1tUp}WI(5L}chCsVa zuVYD|*}p5bYrj$d%ZDcf`$c)VYCb&qIW-?s<(BVA;D@NiA_=eTdIx?^^M=7B|1Ez+ma$@=hLx7*DbrOaWb4o4n0aI%t4v==R^?tW z2KdUdG|TTVg8fZq90w$9B2gH@h+NVG##~9f%owIgq8_2aVsa!Z*pv0DP^IbFnUQ$O z&jmT`V}MK%VHEel$X=C5sy<01k^fR80)Dy}Boe_sR~P{)f~4Bc8kb(pWIsgNy|vq>0gX3@2j5<|J+MA`9^2WsU+8AQA60ZW&ADm~Z=K>Jh<# zlWfxO*8_se=}dA4?9HVO10L+g{{QJL+^hfVk5@^~BQ#(2N48|?OPV-2hOK_#*v4n} zAuYbXN8O)2))tbr&^tQ5X@D12p5^uA{h6*U+_Fh&0aBJ>ZwbuyT-X4a!-37t;6StU zH_)g(=4qfYL78lUX8*931y71>d)Yi;q!#Rzs>VFWy379-f{g^>VG6%ybxXN?7Wc3}j3?kq+y3R+?VxN#OE zdAhPl1Z1|SK!7m`L?U1{_a(GoJBviXkIYgH#+FYc0)BcHBN$sgVFdj8EJm;!i)z4c z&0+-GTNnYqKZ_CUmcj@~WvB4i+UCZ9=_fV=vaW_H0ZfGpZ9m^fGbOki2pXty_pb>2Y4^~K(K4je z07+)5Q7~GDFanb4#0Yjlsd_+4Au;~6dxSEVI3A$x;ny~238EK}TR}<79pPBPHj`x5 zyvvFnlZMk}SR}-Kz)x$Trm6&Ekq|~eI#gn`J&K0J&cZt_fQL>crv-pRG_8Ym$BzdG z{~lwGea68~DFHt;-@7#*Ted9CT{|o!KirKIVz!_4T|1l2Kx-G<2j}};x@q8}m)@2a z;0O0@fnrDTrn%$i<_A-y_^qWvVpqWKSV(}_o~8)avpW_>z@ukPIxu#}!U)LLI7tL! zcPxy6Y>g8m*y&{zqOVL95+I9P8VknyCQ1P5LWz;6v*{H^Kz6)|5$w%HHDFcKKi&Uo z$x?>gZ%bSOsZ5EhtW^}}f$mf!nmi`$V5Cya1gx?uW*+#(=fT>c=6`B|#qZJ59DFWe z^>`15|Iz?kY)`Vho;>e1hs5*YpL~uDSX%1V6?CeF+`o`>QW@@5tofL>z#SA`U~(!e zYjmO>q4}YqB`Q6QmX)a1^hCABv;AXA1qZQ+VBSt~#k6PS6VfTbXO^?K70dFkr(^e1 z^WESS;G~kIu&V(Ct{izzb;ak$GPwkV&KP#1)@N^r$~dAYuLA&Fa3J^b11MbZXUQ-h zEe$sxF!N7x(KWlhmZjP4!BS?`gZtKldbfxDUAsMNd*HK`iq1>3<;^QF{PoismKp^O z2-6bPZ$OyGTIjc$&!}Pk!MSzEa?3MTdzzQker{eOEw?L@M?PkMo^7o=QyVc{(pUHm zZ0AkhmRl5WZl1;V&qu6c%O#2j{9cOXmRn6L5D!N4uC!rccfca(rx&jG47G=_+>T}M zR6)ZDwA_xs-e0DNK<}ad<R%pR5B$^S}|nPiNA)-3lJ1vJUC3v%$uK zqm^}0?}8ri$1`n14;Yb)dgt_j5g&F*z$dB7@UY_q$b*y^7=eGKW(0Y3#R&Y^ni1sj z6(cZ_i>j@^PgkFwum6{eAEzES(>u25UU1GYo{S=1;T}O%5iZ%h01_?XvW8x!qvofc zQRv)f^`B5Pv%-X#Sy zy|oW9Rs5_Nyc-ZKSnjDI&!769*8Vty<#pQ4|4}i+h_k$oxDge1b}oo2YiW+jV%OZQza1i z@|qE3YsCn>t!4!I^NJCe$hqC?9qQ)?^?!Hwf^&ZHWEAm|_5nz^qaz z7n-X0SuuDwAXuR$bAoUf#7&_7HlrfL+ zc_H8$dZo1k?hg|XkE~&<>`v+{w)ke*nr75pbEHN9PgK(4-o}fYKryZ=;4aa{k@j5W z2-N{kSGmGBK;2O)Y5>cb$}*z=ohf#fUOGFoj02vlB>yYLoAv68%0R%a0|#!`tM4iU z0dIVD-Mnplzoi4dlLw9fUZ4YI>v^$)?<*uL2n+r}1%<6A@bh$7*ir%`GHgA85g+(~ zKdNKn{tx66l|bMx){G!ut{8#8S~G(D--;2K$hlk3MLOWF`oDYY3FrLc$tdC_GZBz* zNsj^~TEb-$bFvyZKlO}4=RT`{zM3J^1*6|uNY-dr2KZ%JyhRh90h&%%BL+Ka?PJuF zvJ1`D6P7COT~aX9TPP4y#m|bty8*$1<=txUpslCnb@qyHS24qgv%HSDy((_WYf`I{ z9VOst{XyO9bRF>MJa7c?Bbl`BS_KbNSh^NS~=h?levK*A;6 z3y^3z-RlKv;QZ7x3Z46`{)1|UbT5qlQ6bq03CjS#EQ{B@;2EIl0Yo@aqp6XnO^roOcg&X2JZ$03znr?=7YMI<#pQ4Au47VahBH+_b3(jIQ=i(3vg6P z{%-Fqy?S;T2zc(mf!p=!?lKT?ZzfFw-fw%|Lct!dRIwKDNtrYWIFd=@fTNkz9Cus0 zmh{fw)$3c+mh>(ZsBNl3}e(yw=dfYs=2sDv8C=duI>F0I^D% z7GQ}(v*o(MT0f<1Sbuj7)xeS`Q4hvN*t>cPAKpvFGtpY?;S|0Uzi>e}# z2cOeBV8L*&cbux4i`<1QvytO~cYZDHWD@XnC8gd0wk|V{1D>5plYr08q;bIK zWKz>RtX(o?b{x{TrpZ(msiMo(%sGZ)?3fg}WU6@6SHIZaddIul^o!-HylXDp~ zy#p4iSbE2M4*|Jr9=8e*QK@&lH_g$iB9RB5(>q|naIbgVT{RamP475IS>Bk99M9nE za_=}q!6p0;D|;X8gv>Y&_<&5B1Uw~^#sMFkNlovtb}jCme@fq4CSg9MZ*5C4J*BZO zO0f1t3D&~MX>E+0Rf-~Lt(2yLjlJyK7$EVI8Urj5Xqv`rO=j+x5wKPs(i_D$Vl5;a zVIkR2wu1IwC>LhY`!xZiPr3yl0-bKbs9W-c8UbW<7WafWmpCyVVT^O~0t+gn(E~DSaqqnL6GX;+HOFBTu#7vm9rroqheNWUB~xbeqP{gvrm|42b*XpA1#4gu zVr@)9teJ_|TAFyx^zK<>rP8tVzj6@A0I^C+4X^~F=^bzSaSDVrR=NT%5_KWjP&>V& z6}0~%x-g6WQS(3+rFQ@#(CHnF`bI8;rgy+X6-)29bP>oW^0-xih)TWV(nYoykq4jC zJ7B?ZuXo&_nv0mGckF#yn)i2E&HSGLd}1bz0gh$T2;dvmFt90mWIr~K8V5WhlcoR> znEDdfS($Mha9bu#0sdnqjRRhnNmGE|QBu+X_P?2N9Pk<0rzyafC@GBvdwpgc2Q2Yu zzCe16YQkgrj2Ab5l#Q4KT&A*@_s;80_l|zZ3H_f{N>S0Y+{0DQ&u4k#fJN&VS_z-b z130BvAV|Y}tVliKh7O-vm34!dI~qN3d5&b}l|b1wB^( z$J-Xhk)%kRd!*dPv?HB+n^x!AGLkY_+!NwlI%OHN8ih3Xs8#K#rgvB?59zIC6gCQJ zE?uE<*j42}%3XsH<*<m;ZRBxh(BpOtB#^oW$ zP0Lr?pde6Y74q(%<&6WPqKxmdxm564rDAuYw z4rpKPs7az%Mm6o9{=6$kafDG90;zt#Y^DYyF8+Hp>!w4*{v+F@Rq+HroE ztamqP#;Y>DMAJ*2oW+q*yLEJaU`oFFZim;`y0jxFbY9@k=VG3)BID7ck;Skt=AafX^<5Zr+5{*MB9v5L%A_gO5LDUuw63hB0a);(J1E<u~e3orkKRUoXJ~9LuEjfEzPu9pDQy zX?+`mb;S3-a?;lUmKdyWW6)`5ad=S3OVTIX806)@Sm0&B&S57kzpcIxjKTUF)%T*# zad`dQ>Ly!tUJP1w3-fMWtInBc>rl5eH^g;Aq|*j-ac}0neXB4MZBa#{RT_y_Z6wYW zR$1U~nfV=)$4G1y3+GKHmyxqoESy#`I?m7YWdaSy=XG@g`QOR&Wdi9>%>izX*$_l0 zU)($FfBTGMQHVrq6(ccWaqpaq^GGyCV%Nx7I=h%=iMLEc84A-tn;xklg2{Qx#TK6I z4ai8D#gl};OxdObw}RHSg4Q9ZnjO}CD<~XXSV@6~C~Wc$IND_)uR?=cqBROZSLJFQ zazUL-ki3N8zJ0q?MWSugk!Z#JiQ2<55a(YjPUc@L&Y6^myCSXuvA6c#ex)X6198RNz#gcqI`%=8iGENt7~m5XqcV4 z6|}fFec!$n6^YiWNVGxtJGJLi`ae#hR-DY2R-7}55ck3C<^;kfaynw_8{oXxw=LG7uAOkR=N~* zIcGqABwBZ@2HEc1w{LYE8pJJIdEdU(lP_3b@&&8!>*@)6uQ>gz*hsV@Be6@|%{f35 z2s^cG8LcR1`rTc*$xkeDJI<|qMjo5>jRImqoK^@su}nX}k|C$Ek5ah^b&ar0PWhw1 zD08MCOjssz0LwVXNXz8tCq-o5DR)?A)wWGJOvv#jV0%h9yBtkRdD?Mq?KAStS>GriCd3Jdu&)(9z;g8M)b?K~KSEt2ER!<< z&|j1}6A&gW6FGoooMWVAa`Zo1{UGzs1cYT)ZQGQ?gdA@IwjXv(l2|+x^?1Z>hhq_f zo|}_40{BuTNnLK)WTi)=L&j2WSFeUo0dm%9()wtlZ=$mbo40);=Sz&-z9IF(FPsgng&*0a5|(2J~9x zN2qIrWpX9}`inAW0>Xr4A_uUHb0(l=a`clTGVhc-EVF9crW_{ZcoVSwymrV>GOaQM ztkj`_FDSdo#lOWd<_fF=<3#X_>8ya{MLi)C)dxwZe#I`aCgZxj#{;>1GOoyryz zuw=-o?Q4yE*9gnxOaSy3WzGbI3ClzdU>WBaX_*}Tq=?Kr6A+eJwQW-l6LP!>*gj!0 zNy*}&sQ)$1#DFI+5VSQXcLeYqN|L(Vyva(BL@PfMtvgmjoPbt`OsCCp0$M%!g4LBT zSbeWhvzaDwT3NA?XhlY1m$)l)fF=;OG#C1W73EC8Z>a$C6U*F=b8DZGw`3DW0Wl#? zK!lx{?HUE70^Akw+bS2Kt`U~WnE(sbPiV=QGjU*vo)5vyA+wtZx($6XJwG*pWHi zqkvR^J8}MAsh3adT z3s&>X)EzWCUpx8p*5iHGi_kZ!aLJzt1$%p;N~MB*xKQPNPhd9`szeryu7hZb?`1Wly=f zr?*UMGD^0Yv{pKqyg~)}j#z<~+YyNGRkZiL5h0Y&rS1ks$b@=OivX)`?=)LGoV~A=rStI3J*`v)3hLua`i zfkc%g$#mJ`rc9`Q%H)F8i%=R<5(-wS+UKSCqZ*I>(HN~PCt4pLsLqDLaytSKL`*)b zMh>?eSZ>G2&(BMs<#q&qSp`xF`@R+Yx=OrR|KF*%VW%vCrz|_#`ME&L>{$4X`N*@( zj=XOhkL8PeIM1w-QGoPBe^-B&-k7~4-=IwZej<~`06(pyBn#~L-F%^?`Dz~G`7hs? z2E0yXE$)qPTaKtZeKv`TM38$aaY^r@-nQjC6nmfk7m-&h_^*Woc$1Q%!0#x6!I5Yu z8uq;+yFUtumBIbdJ{V@o?H}MuRV2T;ekL#$rNLm>CxZd8GBJW-vvZSqnOb_e{$JYr zjcrS|EdeFa%K~}LHu=4>*?$-5F!C<71ISS4tD=m8#eL11WpZ9CW33#DrFodRmC}4o z+_HFINrvZda_(3CKla`{K#sE7|L!adLx>U<0WY}_NIEf6*eW|*~p0o($*Y!|`M16W?d;^}yHx%iF8S-ia1f+t3^|hgPHeD^3^nR}* z`d36R))gT(ZE}?l155<@MGyvPdFMyeXzi^&1p+xI%(=-8=xDsx8uy0(5v|tK`k7s2 zxg*K0N_;W9?$;ITiE_XPf2tziQBhNfW1ZTX1|yD~8;KPE+#mOojT({WrY z#H-lOnolVnTWDwPKx?vUJ8K${V*{iL$>4TY=EzLU-pi4?Oa_E5S+_t_t>H8&T3-mU z*C080$?H;2cfw8i^z?n3=p7aGx*!Q)RKJPMv{;&%JidU)uxi>k`fVnORop%~rO}TXH=nW(nSjYzOy6Q0od89BG#xa7#{_ry* zGSZfb0Z9>^RU0iJ-o3I!M1Hr=g$uU*){l@26?E8vR&KZO3w(e>8%Wno>xg6wcVdY9~o?^H{uBe!KGFrtz^hR-J8<31p$presL1oT;BqU4ab4p@ljQC+pYNe*F{(($xp zkb5uWU=URymj+QUxo+U~nvFL&u@Do~yP>=LC%^>v`ytgKTmG z`_~59o(=23n=fBi{3H6AZz36^Z9)^s&XVFERu;m%I|!=_J7E~6+@?*88c}W;^JPP8 z2hEv~%s^|&>k5k*QJLP#7nPJ*`Y|mEF*+01j)m;fKC4<^&`;-HIpLr!hA&Yx1L*il zwWg<9E%S=Ls+T9elG7W$2163l&R6m?K~#f`1xn6vsiFSVP(3x2ykZC+52^dSVdzv^ z-R&Z)nKcNCEIlokA=@U_n7o91LIZ1Y!Z>}3=G~!w$$1CJLjf`!(-U=uIi0&g(JO;i z6|HeWD;eR`S3g?Y1+BG?g6w|L+CFF{P4KfM!jRXfpp|qkT5Sr(p_qCP;Y7npnGaN- zEL5_&eewOypNpBNxJ4nxI^?54)B{<$w>Y)x7f9tc)K8hukefCE;XV<8kQX-rZ6~JD z)rjti5M3W+Il5W{ZcK362T43x8np%-p*XL8YpAoU^s}QP=YXz-o$yOlzJc5&%-*G~ zE<5ydgABf~6G!7YtX5_#PXJgk)wo2RkgmiDiNj$hge?+~>lBdxt#0I6Dgp1S0SXF| zSe+}bsqHF;$lN(!phc@mGeMTKtB2vDg9HdkQ2zA|5~OG?>u1NqX$Wi)TDI@7YTjNX z)tl_-rO$|dW4L2)gK%QU)^fF(KZ6eQgE0Da$j1UsR(u!|&y}sy{Dfh;w{o+Z`DyUb zXZ4(5(IObxze8du_hwDGA#AUG4A|L#0HM$2^7MoT40`TsLeK={B(tabe|?xw$q4~S zw36({r>OROf|caNhZO=JeimpR9E>Ml#ZyS~HT$)yeNwQJWC5g2EjSddB;~4nu{a@Z zubp&lWTA(|<*>_m&^m^{d8`=4IVg%=tz?^e9j*@d4nx!n z8G}FfTSE=F=&?8T*qeGx+8K{^^(>8u?W02w_19|XwUA9ZbrgM^e&)YFv3l;0QeLYX zUBO=$Bq8L#c){4~Ll9k%#FgXhWO$RY?*?H(&JA|_M`zA2V*nAE*ny0C&M#vu$nnn* zF@su7CPpCkMo-!sJ@f_vi!}l~GZZ+P(6fg*BmNOFFs)n8@HB}2v=IGiA^OuoBwx19 z_$MgDhlaaaq=jg=TEvd%O$(7MAO!L8xPUyY6YfQ!kLqdNlLh2S)uL_lX=?S{xr^rC z;sOFm2>HT*vAsfEU63r(?gH|Z+Qq0FgatVh82{0kvw#31GO+_0^_&I7f*k)0(Qp?K z#!;4rbdn5bwYX{>C&}~XaM(*j^thhuz;%Criid=D98OKYzOIu#rWp1E(c^GtI3B+f zXZR;{Ml208uFg_%Y{({=;TI|TM*Ym^k=1i27n)xT{<*9BT{M3d{B=PRLcTCy?6gqjE=b~X z7my#TU5vUxSdcS;*VjL#U5|;+sXdNqnB_zx%Y*$=^>3Q+KiuK^OzAYmFn?o;$^6}J z{ZnL8MC(ZbcUJ3szn2@)kbD6jUCF-cvw1Jg%+!1`=Peo7&<$OQbWm{J5|xR z&pX@dx$TbTQ1I6UNeKB|!r1X~&OuT?cg~%zb}{M(VL{HE!+&(JGOqVHuHNqF!#p^0=c1OpyGp3JiMwy&?5Sqst?EkmxzLizchq zVfyJj7Xc(%NluUltM-!VJKpLih+q0m6MSTFIOkPSSLZYsuSHR z`$|Xxlx3Ij=t~hn;<~v-W1XfGMyylPc|X&^iXMCM_+Xe6y?8n}bak?`!O$*2s~`GsORd!^$VFO`43^fU zo1#w8QOaQUUm8T+1|i!4V)$JcgFgJl_UcR9E7>}Ar~ytBGTzueIoM9Vwx?R5DWg`> zfnyV2)znwgI7G$}$nruRW2(bhaZ*FmQ$xdfK&wXxK$-FMR14hb`xBZP~;6M>6s6UD9bs`>N#IH&}!3?lT3kRxk(KtV>da`s-ktD9&(-<#TS)uzJH{U zI_Q}CaN7T%B*Ku_ogu;`FSObej6*S;UQ&;SlPSX@%q}V42EuT%8kId_4D$({e>oCn zaS#d;W>pYoPcxf;_~2wDjsCM|okz>@z>c!z=F-@&p!mnIUbNV4wNfOFe3HP#oaC>; zS*4w@ap|KDdD)eSra|s~Lm`r9wHFP-9DfJGbLS7*(Zc>^;TA^?@*BZ^ z59EE<6{fPUX0-;~UsNhL;~;Onz6^wWM5O|R{A&{s?%4>0B#Xjzt2C&M^a3PhkeXaE z0E0DIZWax+GWLy7lWs`##n{(8W0xn!eyLSl8LC-@q<&&-#lR+CDJoX-up)T);5Wk% zE+05snNkkR6SoguTWFlHr1+F?KaeH2_YAyK-JYSJ63aaUFz2XHlp#yu-4nvwB!+kE zz>Uh>{k;(Ltpkg`UodlTEeV$@^XA)2!lRVgZbeDByE3JeZ%tBuMpGs~`N4RF^!E5_ zVJ(wE@1m0>TX^?TnoKeoiR|_*bWf{5cL&+b3N#64y5xJe=AHS4UKwPkRiLR$hNCP; z{}{hBE70!>vePQi2WrJKU1&<0#X?1&4!F}Q&{R3orO5keu`?Moh0pBSf7j^J#DtSG z5G3o8oPi)q4K&Op>Jhb%1^Kh;lN&IY+b~=4I^AT~xi*Lzth4o!IKm)^_IG4BV!jZbXOf9R096>@c zI*VdBZ|24FQE{1qEJd`S=*UuBZ%HFs(lR1B(jp=`QZky8ST4C=lDOae%Y|qw{gf{> zkdIwc9Fi4n%>eUy*SJ!x8hD#Bv&%wOS7yJQAyy4srYjXwGZ!+)m|wY&3B_c}g*LU9 zX|%77QA3uZUhGA^z>9i8I46{%Uf@N&V8Drb!GII>f@FOq>OD1T?@cNkJEMe|d{r?J z`{<{P5#)_=jOGtIW3=_jpyj$E)H!UKQ{0s(4RQ zMMC`Y)nVydGzfFO3T661mQq>dReQcy?fG7{=X=$j?^S!gSMBtB$?aNgq90Z1TiDsD z4ZKNcWVylu6O$2SI`$$=$6kbXZKgIy1RrzUGewJW8iqNyL2mViJ>BC{fl_pCAgSiR zX+9;*<(|(aNmrrSr50p=XDcZpoA@4yKY4b|>bVcbq510IuM3h8@~7@F_Ez23%6C4< zcuIC2e0zo3#i$#E1&MK+A^xK?=jl8^L^j+Y!DHO<|IUB@1&I*nX{fRnTRrd*Wj?8& zay6S-&g9E+w%!;+U-Td`HL@}|4x05qVC*bjq8mLCaTfz2h2&~9sqGur z+*QdG0z_>2BTX<1LvaQsG+=%hgwD0q&*{Ohh6*N^>hOp?`38m-kvf+J(W0($uDDu# zd@uM)F2terp#Yh7U80p-f&?;*B%?AY(O>M{rWDWR?4+8pO(| zij1Lc+!Q3Il(m7J(OIR=o()-aLq`8|RwkzZW`dMawcb4f6uAbF}KLy57|{hzVoFUn#VM{(R%jDUP&YGyV*cl zb}_sM$0o-*Rr;=)p5sqfA1tS`jIJ7(sUBDlbD>@9B;<5E`JvR@@`1Ujx#iwIHr+>H z?&E4!HVqhCszya*BXhPE3zHD!#B253vpSlW27g_UgphA7Fm{E0@0YVLWV{66Y%MNQ zyBKwYupsBuj{oS)*;)W1vf%~^9^;OGmXlH=%^zf5l^V(2_NU*aF?X zXhxioYk6(6U&Cjr1q-%p7AT8DdM^RctT0qHNLHMV;*#Tj@Hlqgm(Mn=bTO{Q_haXa zdAdwZ&@Eia+!F8W_7d+)bh=DoZpW}QtaEu`X%yMWoMq|)MaOG$GKsC8yF#FOUGP_f zB!qmKvc{ZeH9n&zF4Irfp9MK~tSi@!1vz$h(3=ZfA9eO3ll4B%ar!A%xH)!cxFJ=8 ztg2{Bc~y1igh`zfcG`Q}y(f*DGJaIv>pO5)<~MpfN~}RXq@qolROQbB9j13^PSQ`& zf&74qTDh|mZ0{tQE|S?UB+~`ClZrOA5l!smP>X!uVDlw8S=~uzt{;0)wXwffV?R3# zM6yM;5WV%_{B>ZAe5tiDAdLX2L82w=N&3?JgS2Xt#@U8i$mq(cPK>8%fw+6;7y|O~ z*cy;%xiOAV{FtDZ?7=tJLkyQQH4aQ5$%t5ppJ|^OA{{4F3(DA!SO(Blgy6JTgUhaNJd)Mo%2k;I=jO%i%EGiqGuQa}*%o z$J?9AxsW{rxw||54{GR#X+#^zI+Vw>Z4y%H5J6n6O_d#zuM_8u-nKy~{W=V#Lj-hB zdT6zZHv2&_P9?2({jd<7rk|xlcKKSQ$$U*erh0tg`Lq`GjM@Ax;QwjLhcjCZq0zTFQc4(HT$9(xjGty+*FOp)fh{Jk5`8b2}Cknoph(8xysW_FUeh}K5vP0 zXIP*#1}uGBElCeTmWJvw{959@@SA19_QChHH6$3BUelK}gku>SHs<~tI0C`prO@}-;h`Jz&L#B?6LPRzO zXM)w#W;8S{H8d?Xlw8+8K=XY~Tu~t37DQcLrYg=wDBS--Bg<#^pOxv1C0-p${1P>q zBkk}z=2i_j=2m&;(iX?u4`OuduepvX+@d~Z8G$T?F@K0rq8@^?)i_1#SDFl~2bc`# zyLEIlS9zLg$=;v(92O{DIT9gDK&y9^Se+VXK=`0-w=~jz9YPPS2W^>_u7jyO> zX*NGr+iY^3Hn$M(v8pfWE|e{(V}^|*JD0K z5eIpG$Z*DB1Ll&5gQUV@Z=eBlUBp2yjrQK(fcaL$K~hYy_x=V7Wc}np~q_WVs9?Q;_ejd{K2y2xy(87Z+rahU9B-r>q~vj7se#(+7JG zhOgCKkdFsZH{??)%BK%ZM+l`Ga!k1Namv^R%u6E<^4}wFTmxpeh=ZIQaa%NC_K!Ho zDPA#0EnH1D6lgg|Sfl%$}78*IRA8F7#l zRB!_gm|Y?cl7b5E{SBB`L>wfw%W*KVkTqKor&C90*2n0l+)`aI)PUn!rL1X?{G>)M z&#dvTm#qmu8REKbVG@pOxpLiL-cZ9{$1SAxs*h|wR}F9pi0eNE6pr0l4&~AhS0i#E z3|D#!{iFC=y`uPDS4ekPjw`%{)NU%c`buj5_)FS0r+AIp<`s|F+~N_N-}m+6+>i7# z+w#n)Y@6)@T0!|imE1&t4HGEaxACPzSWsb9=frG2y$L+EmRCp zeyX*B7H6z}=C9&`d0!9;@~5U?`LD-p5gz$}bnu9K^Vnf42YQrwd+4wpYR4c-^;af0 zo-l^KtdfwJlJ@|NgZ@Bk^P*{o)>(21n&2d;d4pCj7uw-MlTh-P&!G95(Cy9}DYw<2 z-w}fELyuYFY=6)qQn@{!Y9)8gsgRfHqA9y&Ir*@J zuFENDWYfuKGv$VJqOw&brdu>NiD~)V2HfTvsgwk=6ubZlejoxNOZfkq!LKzQg2*4ww|ed~`)EEKGU|dPg#5P#7<-9M zak;wz$!yPYHpP`{7o%}U+k`w7I$BEN%IKhVW5+vs2%|j<7)|{Suo5?jFSsR5r z+-M#ha;icSOx{Z{rN~YXk#&SdtU^*>w-M{=3{P%k7Ub;JhLs^8A`?51ZG*HR$N!M# zQ97$hi*d4I`6ybnB}ax}?ImUKu$$ot6}6PzvN5)I-8{dE0VkYmTXa_v}vt?+%?P zoW8Rl$N%>FTjQ7OXVGDYDEFQw>21n!kFCJkzS~hzC5zG`SUfIT6e-+EDwV#2EV&k- zsmSrznB$~wdM5PTQwen$Vb=exkHZTQ6Zx$Bq8Megt6Nr4wCY^eOFaHM%^GR z$XRdjADuaU2Z+eT4rJ7G`p$wJ|1a11!@3~7v|_NqJg4Cc>2r!5tGO3a+jsjr7Uu?w z7wgeXcWwjjb1Id-gDktA+wfecmrHPcNHA9?6U<7JSzAuuov8*0A|G9==MFiV=Y$Zt zAPFJwCyb2@eb)s^dELG{OYLIR4Z?z)^#=dZnbUWGh)nE2Mm?wREXeV{O!K%!KZ{=a znQ}NTr1;vZZQp&vu{gJZ#Wf{Aa+yxKXY^D04zlceZo_k(_MLSt9fe=aipbh>`fjDh zLlF7sT0M8j(fm`$s0v94c|T!nlhAinNXqN>-2-YDqizru+{8g7|-lxA~bN{68P1Ga=--8|xd^$t`_|Fq7$sOaZw3cMx z-nmaf(lxe~0hLC_LTF!{ISsm(#qu;XMN+xrU4H2&qHHaFS;LU#SL( z!HGD9B;#;UVkH>|R*4@dv^Ys!uny;=@xwYF;ph11XXV@m9Nr~O>smziBqJj0)Tz%$ z)sthJlSX^noJEFVJ3ng@Io4aBAc-Ci?g{c-jsNrdskgenpe$#_R=2u2m9|gcM&jgp zgQ;WoB)wem)DBs$pR!|FJhuV&U6sl{8Ir0LK7U40pl05BC@ueee$Im z4?*O+QLE=}QPI3EWYh&o2>JdOW83L$kgqV1ag?1c=oM-gqizruKtiyzn0imqHbfLjm- zvIbdlEkMV$NZ00Cnhw916%iyJ@>}87fzz)iYmiY-M$_uKt%BxYNV5t_FnPbiL=SUM z4<5#aCayv<5bl?~Q`H%s+{i4*+58MELqJ3(b|BjZX+e(vE&r?dYPIdxice?vbFD&d z(a#Z;V{B{Or-!x)R+60PY+#cF^c@xRT2ncVK~i3Kd0VV@G3o|kLC!f6|IwLqjs`?z!wnKV#vT9P)I9Fc&!U$eP_Fcw zYUxJ%dn>>1evn#}7Qtetz9U$4MG7}IzJwUE7sC{noIQ0E$C$%)fTI9U}=NOe45KpLmd1nl(EehMKH>2XL5 z#sm2sTKK-Ab(O8ZWop6 zcMLg#WbYH z$&HfNtB*GaUscG9gQ#Z%eL2bA`svjAa79lGT2-_*3R;Q#-zyquF%wT$g)8*4kn*05 z2b!d|43DK2<$E6%KNodH3U{eWWmSPJxfY<~TBNO9KOIU?$1i5(WMgeP=btk*9)ieE z8dlFelc0G{$fygF5b`q@#_owY$Oly9?q$x>gBW##upnm-i~s1%*~jaC?S%S%WOO7NFzW z={xIMItss-6_K^&^xdW=|9o_Y z;y*fb`VJ70i5p_azz=f;&eQ#vG|j`90!)4=f7dT?xI&f=jCF`ge?n<=?9rJ3@<^8&K~ti65L{)Oj@*Sk~d8?zxU1->#Mr@+@zmls9&7qa>F{Av}o5PIk2!xpF3T7vpT*#<|0ieNH-UY7RU3FTz<4pCN0`E`QWw1 z=B%=$_Om(_G~!+MbWwUZmxNBHB1)=zjJxXtBR<7;$fw!G2HIvZV?E7BI;s$r!f ztCnxE!rM!PH zO0W5p1qqIqKSn$fn$=&x=*dz?Nl(JjLozQ!3df|=QIsP{@TF165jzj@N7qXS3kr^| z7wM9J&4Ijjl(u=dK-U+83P;DsCO|^h7kD^2KH`!5pPB=7A6;K`9~@mTb3l3$j$zR` zAV-jxIUq;u9Khedx;?ARzgGO>tjYQwCnFNp_+s+HvA#z<5<1Xd@##AHTe@9#7I5^p zbh}95=xyzGIf4XV8igFO-Ht!@E`>ih{EGBnJDH*pShM56B4OSB*DCIO6*J4|cl3vZ-S@xt;vEyE*#9T@A)Dy;r|tA}bY+H=0*-H2v3G1ow%31| zT8;Wh4sJdoYdDf4nvZ0Aa+SQd`N)D14J5>=-_fhd#Mx3+No;Io#)6R@l4^d>d za4t}9qvrfH?bungW01;FU>!*3lnat7MI;g`qeq^ffql7V{LejfHcF?`dk-rSJA_ut zF--Z*5IWxxK)xUYb(rS&zcqWTf2UG!9#)8U2&|T4n1Y%ikOj;d1IhZJb7ftYx@nrl z^S=OD%TA{69F}vNwbgPAQxHnna;2ZC5v}=utK*nGQ_Y&RCMS(CUxDZ9 zr=Bq6c2stTn%psdzirm4})^Q5~|XBHw)F*F{_t^i$%3ye5cxAg@)Cq&TGkb6pS)yrBW} zl^`6fHei;ium}Zi-}{RYoaad1uL}5=_t$qeVDK-&yuk~m>IE}338o_}`^3)1AJx~> zA#(9$hmnBJR*<~sztdtq{SOS<`fjN2EA(?rW#-l$GdtZamc=@){e^WfXR(gCpQ|}a zoe!r?;a&y(b{HvGtmE_kbueeKj=3q?tjC3>twXL{8TuIV@ZS_7NwnI4=~bazez;<8 zN9UCB4J0S(kqs-SRXRGW;~NOxTebu9p~Mc7kLnSbQIMZXz(^KFFyv_LETT%x{s{PszAS63qP_lRDs6eD4E^K^RuJW+n)M4rt&$R z#VZe{8({I!aT)er7B5eWHc6AcL7*~ z{9_RHLaq*?8swuv)N4n|#w8DEb~bEeaw6$$*x0huLrqQ(HoDw`jW4%gBg~OD#vHk} zD5al>@urYl4&xoOQO&I^FHdP>W?#RlVanK8cS~nz?Hpm-$Tq|q9oSz@ykg&bKKX;)z zj%Jb}sytY%UYqErc!GRw5cNTB@lagrYRSF~TQ5_^k(E;_&}e20R`Lg<7pTIb;4yhD zd4hW0Q9mV4$d9jT7Zi$bRmChQ=<4qZ&Fq{7eg5wYSsp0N)hf(@&`ZlenBSLx(8TAa zo`!d72ygcg-e3j#vXa+s7(&X<8qh?PdF_TFqznjM4liksuWHqPt)aw|bfvPRhBBb_ zFCViFeXQEKEev0>Hm+6|YxL8ZhYQrx68)5=8S-`&$sd=lHef#br(!H+lecWJqjPfl z@D~=Bsd{!UhDKZNL&-N@n-QA$%K8fW6A#C}g8t1P3z=A3JlFx(p%G?{1-+%p3MAZ4 zB_#CTO-Q&yOGxORCL~;M2?>2%6B2H22?<@Qk7TsA`pD^l@_bm!BYPuA>LJezT{Q^P zp-u${Ni}jD%uW#pNiA|5%&Q{~l1k(_n7)XEJWfS94(8;DgZ$4j4u*nB9+1>7w`WV& zr}eoww9(`S^jUvkc{=xs!DFc|S%DjSH6+}HB>4t+mny6YLwSt#cfXF*@56{C4Y63Gy)i^xhur#68lo3+dlh9% zx_ocnZ+rvEqzHyQRz*ekz`Z8|AwQg0MRIbQDG5o^9Y1|NfQum zn+SxQ&;+zyM@wC)EtPdS^hv9W@Uk;5G}hcM-$S$9HxwXgVf1$lfz}{*Q;~erlfR&> z%wDDF({1$XBZ>%LG?hZuA>SNCJ&-*?RE50kNEFjemfAivXw@KJA4GkS7|h14)_^-Y z0Bev7gQySkJ3&-~{9zFFK|ZRY!UNoM0a$~4XUM4!@*^rLbm6`bfHlZikL2B{+o~rr z9#QEf&1XUoy^tMhyR&ktY@o;QwNqnDl|&cGRgW=h=VifO4KjM|!7JsHGZrM}ldn9G zluzCp21)IjD@m=y93+K$e#;gTh?Pj1Z`Y*QL5o}^P7)zr5!v~DfEqefKSx#S3p>$c zkaFSLHM>1c5w2acKWfqjqbed?o2Gngv9XG1?ONTbR`Pw#Rz}{Ah!!zAFHE#r*|h|# z=3QT~dNO-ZW6FpKl7We{$L7o=cu$xrb;vm?l6yTBGT9?c^`v@OVu9+c%&6=&X|S?G z0|^FYR$*_~V6O&=i>Ti!=Gejg*oz&U{Ha^wLo2JURr4yIMqfpZP@V71$7%8KCR6II znrnBR4cg!>lEvA1A><`$AR0=Rbjjn>YBNTZjH@*?vNE|rNchiW z)>J05-EVElbhoBNWG#uv8cNILWw$o1eEqcnxQlY?uixr93#HY{TGFa{ZEE%WGTH3z z)DbVW>HBne87JrDh}J!-Eq9;CbF~|S3xal zN+2c6*2)y!HNQ_k<)jHY`H8UOh1_37qbfsF8ZZZ_Q1AN6w?`yvqJ>s|2ZP@l;kW{5erd8b;WclH2X9MQDIvDxW3ot(lBUFc^9daBD?I6AJ zhE}~H7mMxSxlc;mras4pvFeBXP^d%p2jLk4DlC_GMVgi(liE_WaqVxhWvhTbD2&ZL$Ct$MIb8W`n;&D|D}Zj*-9j(J@#oNW^=;Mkv3MUp==&tmMm; zwcmVnZGN(w9QNPO+r+XqtY>d;jhhPREn*9s3++I=&4jtdO~VIwl}csH3W;ACeW|>4 zTu80wLTa<^e||H;+$kaEI?=s7EChAPX)4+%J6Fxhzgf>!(FY^CRmjw*NDPh=y&%;h z7v_$)Hv&VFa=wCGzkJWqT9V;9<~zJTz{#h=z$M$~6q4-cfzY4XrpWsDHcIG4@5vVo zmJCe$?F`CaSZpU*wDW!ZKCQ>_3|h2f@blW(oWtD(;c^8n(a&~|5?ZX|^Qv_)XR(es z_8Q+)v(Ap$LduK39R-VZJmTqx!DI5(pGR$vh)>}{zAuP+Am=tcm<#uT2!#A#6VQf^ zhj$0XI^=s*oKB{9@x48Lomg&v0FFbi6{rd5FTI~AfAZEyGrm63+6cWG*dtG zOkhY~zS=;NdA3iiCv^~@twI5`HNY)3kjb=jhdi2_y<5q8FMl&4j6n_e#aS2=$92g6 zxh~-mMOhaa<70K#7NavxCukU68rGb}I_7NV&wt&mhjM-Xk+mfb#!=Q6hK}KJmYmbI z+(f!A(c9s`Rw)7tS*-4Urk}EXfqde>`8qfq@<|nC4PR@(9r;uMuHAeW=F#%MjoG+H z$~_P?=V=u3&|3xiaE&2<{s;ya8PNW_M-%Q0S@uJYRgwJlz4Ql6lY5I~-=d!~gpeN# zq8`YFK~#l&NbiX`*HWL1M5N47kMsScAMXi25K$g&=B>V}hs;a!(Z% z9^eiRz#8P|gQySk`%SuV4+dZjGS(xxT{cYvCu6yeMVbc%L%ooPsVH9X?^Q{3kz5FT zle#!Q)Tjm-z4qXh^2yjiQa+hDkd#lZszOq`=1Nj4F$YPZ3LqS{5+{%`r(u*WBoMWd zOJeU%iXF7bRpKNO;&rW02h2WvQmz8A~;t+hwVy+!;fYHgK=ZT1}bH z=n<>4N~c=gsaEn$Ce`Xkix{0ft<}oD$XGS+%Z=5O*@GHWMnsS#8)uJQF_{EchpAGB z{4W({n@%!$Z-#u$_7iqmjn(jeJ3bM#NP6!23`}i`XR|zE}Y7Hsj)RX0&VWUQCmAl2;{4Rs28$iUS6b) z`56J&4~a*KLx9%l@6_pE^s{{75bv*4qhsX9RvmMSJ4)92#+7rYbY!ny&aU#T&53u5 z=aDvnSbG-h*&}%BC5szmbLp({-8EY;>$PFMFWh^rgFTD&?Aglu<7!cD$H#)5jXz!V zzR+OF?)G(hh+cFjIG`Q{=O7p~o%6>V72mC&a*hZW6;YoakA+7u?1))APO5KhX&uolNuW>4stJuZKL3totETz+MHLUv_au5V{= zc(EauwQa_D!kVOK)t!ugWil>%SbKan2CS80u#na2@aZrxb;#}iCv1!$cTiE$N!Hd@ zdUQfiJOUC$`B7H-b~yC5QN1yh)5dkk`zE}X>R7BZ6DF&fz7R$o^6Vh$fn1=XA|<$6 zBM|Z@O+cIbEIs<+pxBG8A4CykwB?=cv2}(jhBLaf;MY`klXI+9OxSU1HAl?=DZ8@f zEY>kcbmS?gbIA57qd1(jEY^wRhIOct#X9CztGS*3%8aN%P6?u3$Wv5Q?AqZj2*4WT zXM(5~a&ZvVATJ4`$F!;||0UM?K{FmIQwTNtmop(s2hMvDtu3tn4 z=m0Q$vMGebpmUl-Yg!opy$2yIt)7mmtByglGVJc0Y{AT#4#i>j;x&f253Sol;L6^$?H5Ah_{45j)A21nSI-h zV--&C$f60!_&DFc&^k=DmhMoCaw>qt z_(-`aWo<9kru%wmzB=TK{uVaFkXx!qezH_;z-*;L`8nGXc^S&i;~Pl!i54IaOTb7D zk6_66s3>;_Gc)2K&nV+y=0zOjIb|Hory>sWyfO~v!ia;ssEmWTB;p{iF5_U9L>%Px zWgN`Xh=crE8P{q=Zx16{gFNL~MzkMtPc@ZI*;)gR(UQCAkfc`t;Ydb+ki=a8;RxBe zKTiu1rA%DN-9x~=kc60-?{Wg}C15-kK)4u3a{fr;=q3)dvR7NpwFU3iAY)|NUoWMt zj|>IQr0-FV`pMlX=g;dLp%#zUPx-}Jo4<5w(GujmAsb}hI+?U+*QD)kKNnC}YUb^8 zv1sS)^+h!_JcAbP7+kIff32Saf$V*b3DX04go@;fTeSgmWDpKaZNMBAgoCFyV5X@s z>&kiq?iiKIsUPypvNp^|A`bGS0Vnamd_3YHKUv1XoEveFpDW{Fei(7Ku~z7zzXV7f z^2*A{94%jgAiu1lB7L~GjtIb3<{ww{*-Mn5H&$cWZD43j<}Xo#xuyh!#;5zXC6dCE zEJ={)70ZeZcZOy%J7iRY98i&5DV^GY`Jf6jYw0_f7UR@6K9ie$-Is!@LABn`|=62AI^|p~tcThJJ65&8k3S-W~L}tHQhWQ_cX3lOHk@#bLqv z>>B3T5)hin znOlSzqZ2Xf9%v?M4usjP1cWY6v*en}WK}pOO!YeCGeOh?IeNpm@YEY{Z&0ah9w4VS z0pX5{K*)DD0pU)GK*+P2fN&p=K*)tnK)4Gc5OPry5bo0v2>InEV6qaL3T7JwN_e6k z%T_|@89_Fy0!<~ev8=&ttZp-d(60-!feJL$&6Q!OWab(A%c`6M*OrD{2_Xvtk|lV} zT$ruYnBX9zeZj5Wei!yf1yj=?@ltGZ;BX|nAxL~WSGkv{+3SP(I%Ku8+{ZRlP~VD* z-&XQZQ3UyyAgVs8!*x7 zRb;860Icd1cX?;y8&RLndCkW1BV%>zChZHEszUB?P`!{ z$@EKZdZ5;(5s&dUf;;iT91fyS$z)dzq~5OPu4usQ{1%)qz+W*CF>qoM+uF z)LBVNW0vfh6=gr!`YCH2!Db-=FC;_3Dm4Pt7C;{y(CAwQR5;?&_ zPE|FzFae3{;(7xd_62CoKc;5?JD9IResNrpr}PwtE(;!$JKE2wf$^%9{YH21Npt0u zxG0~b%JGN|1{>?=nc(D+g{Q6?Q>obMBDY>Q)`)vTzWs#!>5y;#VkPn7-0#2;5F8FS z5WId$U7>GXBe#iI{cJyAb-g`;)sxh$nv?BBEf?BEMf8|JKHMr`w>#9n&zh7om9^%a zyf9Sirqoc<$7qpOcHXsWnal>@ou9E)>MTr^I?E2@AzIiE>*uJ7yZ`|`s+tR1Y1V^g z-@;CqlY+3iuoLEeWnt<=)NP)lDk8Lw@o`)*C$D3`$EjtZ)tsWEOu6ZnR=Doi6&7-c z9(q%22+7=~kXGI-&gri2s)--B_O?P|LYDE?IoE6+VtpqFT1**zm@g3c~WL*v2wi6N<9pC);G z6g{EjU!!QOmS7Y8l%zLRl6p9GSgnvrTgLu?K4fcTb1TrVQ(3-mf_Xy;2>tdl5T?Hb zgkDw#!aPs{+Buend`g9oPuPl(hbqw6%0f;yuhy7c^1{|HwIp(BY{>u&#^jlsQBQ8V zOVS?L+bq;`b_MzsK{m4jy?>C+u0Z2M=GztN-u(d8_?&*qH(1C^Rpj2UTCF90CX{wo z1^Pd>p=@(2(7UTFA8DA$B_Q-6WgyJ!N9o;t;R;EF?l)<5}UHGg~XJ<2vAGV*&+ZPHNDZ>LA{?9qUeD zgIoT4k&=uE3JRx%oFeP z8TyVII$4gXj9PYn(N)Q+4VEJL^|FQEUp>$-a%mb8r+!DExNh#299cXsw9(snZm15q zZ4mW9?xdnDf_ek4?uhi;(XLq8j8`LDUO5O0&=7gZcL$6u&T&gHZg!#Ns87_fe?_ zLQ%RP$**VyIHHu@G9*!EKOBN4$U+$|29oS&7@Ze|?2mzDK)fF&-PXFd7&K>fK&wNY z$)#E0~0bs|a$AhWfypnWW@Zp|R!8Vsh^YoiCM|xL#6p7w z`HFtb?Q%8mKvM|h_QXJ7L?u%vEo)C&)?`g)e5jo>2Q9?AxOTSIvJ{UE8OY_K?8(vs z1=I!`KLAzqp{t5;k(KTP_aLZYXn8G-yoq5Lq(xe;ff&V8{*)XHl8bm|IZ z7!EDeaX3$RYd7hqtQwHJZp*igKFF7=C_C}i8gQ?VKs$jje?u^T3?y1|Az|52E4`&b z?;Vin<<}ZE+c(*@;&O$mW?w9zchN|*OH9yYk$tg%#)o$)>RPpn&1`9b-Y!(42UD+z zBAX;ykA@`s$0#})>c@$g33 zWrGY!tg>x^jL9ZpQ_xpy(&05O&Wy8IX966cW`<+VVjXi;HP@$~0)dyQrzQ4i#wnry+XjzGxDcE!9_r^r=TFKPyw@W$!U$w9FW*&jqb zkjFIHf;%<>A!juKjnB$FJ$gYxO+dJhMxae&fgZXtK1yLX5 z<0>k;1a714$+r)3l8Oo-+(8j&p7Tj48 z2zfyh&^leLN52&m>yVr8Kr#9uU!tO7@Zq)$(robIUK-UQcL~63@ZolgK*-lN0pZ>l zfi{h*9y&fi>X2UuqCUvWR8)*9+!YZBxvU8YcVh%X-r5AT(XG&jzJyrA{7^&9<^ z-xMwx>=2~;dR2>df6DT!buwwuuE|TZXbhj9%NG@Ot$w!8#iCuuUtTAZ7VVmxtQ~c5 z=&U;A8=G3tPNu3Joe>owZw#V-$mPM-44F)D2fmCZ9~3FvDwWF5&Q}d~bRIpvfn@H^ z;Ir9dBbuj2&(}}c6hS^aEX9iyl|5|@jb?r?$9j~X+2x|i`Y9eEAKkS$BpV&br&T0* ztr_U(l)nIq392minuS>v4-Vni%Z%M#N>Jbe2js$Gi zkr|5kTu`n<-mynmM46<5A@@_pMgADne z1dL=x1Vf&hfRW6OV93)FFp@JO7;+#1BN>Wd$PXr9Bp;4o$d4poBxgr32;I$@visd0_%Za&ZJhekK7UX+$vOr3o0xWf2UyGyx;IF@hm)Nx(>c6v2>pC15*0 zRw`oTo=k>1+&y~-Aml0)6+pPhBM|brCLr9%eS$^E%~VuagnLN@ zLhjfEwE6C;dF~PNtwL_6$&IX>R)Ho(+2G9^g1Jj$&VZyAA{UwcH(7nXOFuV~3zd6K zl6OY$&^T6oo~oavL#?b3+6xxuqoFj@Ajv%2jt@29zM(L9;}*oqcin3ocvGI0@5wgIOPBO zP{?VJ_!wQ8xoAX#0x_@GI>jf&*#~(-n7NrnI2Hi02+8a(+8B-nK!A|cssOI{#HTRZ zhbr_^7^)zbcqjo*MTAGz73V?_wuikO;4xdyt;^w_U~n33?HNXp@Ut7JHh%A>Dz-|~ z&n}#wOB;(GqmIoh5^>2;lH#x%izfMB>=*LAF04pZNH#{rtbwBn8)grwO_b(GKp~nZ z8ADV^863`6ouH&lrQxlP~d%M`V$&aAas*~GAF-ej?QQU=s0r-&d) zJ66_4&q%Q-OMxJd2#eKJPFdr^;3bcDU}!(p>XdgK?KNqR6cS0aSHs?h!Cnm#7cY`6 ztNb{5ubm1bt>UJ?rNkJe9!}K>60NMlR?VwADZD0>qzjU2Wj}<><82@z-|U$(IUjXo z&yC@1bV$4llEkASn=^)qzL=+bswvVgq^)$13K`T$YzFP~EQxV^hV@Wg-76B)b*ow$UZVP`0zf5^9-jm0D#j^>%>PRw+A7iO5!^_LB}Rr8v_>iG%V81L4S(*(uryIKoOrTjUG?l0BG*viZ+ zMs(y$g*=#IZ8RTk701fZLv?GwIrriDH>%~w394kO3;5u4j9+8OJO_0aGPg5JEfLA&WGc9k{{P|xTvx6cDKv(3rlNi{S)gP_|OoUE6m zy2I6~I^+qj2v@owPgPNIr3-H7eFG43KNS@~xI-fl@@-8(xb6sqd`A-y?p+ZGIlBpH zN928)=U~XU3VFOHmwmN?CdK?B8_bUCAp?>ck!LddZ?5|KihgES()KPcvR$PEP=#I!LlxxIO9^l)B0RFL zI45Xq4|_SlW44@Im%}~5;56FWGmIeNXFFLNzqh-^R%!a#GtnQ@#-hilV=+Q-#3e&X zigeRj8;d6SU+fq1eNOY1XUQSi7!|Vyj=YO2Vbc5vC`9ulV~7eVgTxN0kiyY=!L%Km zjkKv55m^|lcM&lR-wo5Y5Ar7}(n~?|$F&#&;uL*?Bphe?*&_+0&KiIV=Zl8b;(`IH z#Dd(WZ}nx0T2*J(TCHqiST%35SUo8NYLrt%kfa?eYolkR&Iv119kLNbQ(1wJ4uh9m zkHOG9)ygii?VVp_LlW)Puy;hTSA)cbUS!*Qr@~09xan^xF-EC}Q+0wwE32?o^Quk? z9}Okxf}~n{ZA_XM3Hjz1*_OyfHaUi~T1dPLlEkASn=^)qzL=*UP*bE`NL%TCK4efw zadC(x8C2_$Ie;oYk+BuU6cHmsc&0;xfMCWyKqW4OshHXCj>lo%&eZ+I`z zqQscGKchcyojWji}8p_a+) zTI%fpt*ugam=ck-BqG}bHoN?KnvKf6$YwQVLR&p&j$5s4z^$6s1Xj;a*k-q#4iHUH z%)Vz;N~QcciS8st%Vo6Xa*-`tD&!BrSsTqqTg9<+XqdV+;GFyLyo+l2ae^w@w(j4m zoyP)O?8aK5-md7<#VO}6-(mAaMLT2NqlboP5cE;44cbkQp9iSJ^#VZqJV3{tOY$qg z*Quf583f(N;5;>WakxZLhivT6HIyF6FR7@wb_VzJ2!veK1cZAe0wJGn0>b?*0wG^~ zKoQO8O7>_z+!iX$o;_D`VgP2(SrNs;Plw20Qn&mH7nS7Hd7SlUs8@|?``*XuDZ5HQ-JSQtwYl&C{bFj^-dg)mCw_9=$9oLSEli zak(D7B`QMxw5{SwJ-Y3ItZ+5RgMz3R@;xfb7QI>n?vnvngFG*YdLb7DQ4R8|1v&duql8SQxP}7DjBC1=dDdU~T)@U}e`pq$h?HdmxEQ zE>J+mLL_gOc&Qq|;6HUCY_Re|4N|1)BC@4+Ub~SRdj2Z9ei7}hg#KpyX%SwK+2Tr~}mX78m5CZqM_J^wH zXeL?Q7c1n~A;=o!GeOh~x%)xvTC%kR?yV}7C?RV>)C)N^h-#2W22rwh*tlfM$kja? znoMPp+USb4Lk`#g3nMnh!iWvCz}iR)tQ`v*tgIbGx=Tp02a>3y)gWUblC|R(W`O>w z3t@wmRe=<#x`=G4owXx1^!!zH{UUl?$AM9lwF44^&f0<2zlAnP)(#+av8)}-M!-B5 z=3qA@ri!&=S+aIu51g}h03mR1?HHvIM>EOVakN4{7m}+%ej|u_A^)VJV&4Jx;#Y+| z3*;6-)C;+F5Y-@G8brz3VdE;Mj18@r$~L;NcGv(5BR0muhz+yA+DQGi!v-sB2a!G; zir525RMKjYu@K4HagiFp;6HUCY_PH_kRnwVku9~ecBF=$zlyG3L|@TyU=(HTfW)A) zcA#}{XoFV>>oMa9|y_mcpuLH;a=dLi!#q8j8cf+$%#Y+S{Zv7r@H*+v)E4jW)$#Ku?{v0)Zi z8>zo`*kEPtAkr^|6nh|vN?Hvv79v?Yj#L8}{HHF24OUhKQl#o4vZZ#`j?~ceSJCy0 zXr_(>qbO?!BnF+e1Fefg8zgH75V|;DJ79)_UNr?y(@vzP8xid*#*orA9v`@X<gAk_8d1orA9)-0vAh!!X29zcgw=?w}(1GYKaoeY&w8+(JLcRA!Eo zKRwtne#$m2vEvk*y;~m|eK}j$j<%3?E-cnDM>=$}+**X3tbwg#Q`>;8hcVe7P#ln& zykVOLuJ%w@FP2GMpE#~V{?CsS0@J6gi;Us4x~<~CmlOl@m~iUzGL4K#%Ml>M;@Tp> z7I??q6m>UUKLrB$)bXrDJ%Kzym&L4XNrR=fYS{X%+L9-^mkq%@791qg@jgA&1~Nk< zo)aRkLN1Tq77fAtw6!-(MQ_PWU#8k^tb9-dnI8j!{A>(p@es_ltpmbT^p*s4zG}Cz za-IfqaSRCZj2O@rLogq29T29Xwhyg7bf;q8uK$wc&l7QZ( z+HI^X(LnYOj;2GtIf#W8d^2$KiHu^rtf5jwse zS08N*r&>L!)-Zhar&>vwt*>lHY}LG7a$5T&ARt?W5+)4>gc5q5(hf^J0ogTpO170i zXeZB8I*$@hKwc9(O+QS@I7z14lQUXCJm={Gk~jy_8=NP%ih!_Mc%IU=Gw}rEebE!- znJSW#>lH&bQS?|SJ@@IkBykVqGtoWd<1hO3$_#YKpqH?D&(J3l<#b8@zKMym;Ds|TG$`HG1eiUoDz0mkbhN?JR>Au zX5pR*(z%O<8gS34R9;%QVs8FYPb3?@CK!g?M@7Zv8}9272>GohAl&>zfBd>N2s~GR*~MR5zAM*dC5JSAE)WaBTP0ODegU$Bp-Q6^~y@Cgii1h64OpX zBDDz>4sAvRdsOJyWVz=M8A!eUH}jz%i+tc{$s#y7TC%{x(Uk=jj)8AqrzdrAok!Ow zCCwpUkRksTsyp5Gq&xx5_z{8gP&9@f4(_Kz{yFsGPvk4-UbV7K5FW$s>!wO)k;Pz9vKV|TO-G((u<1z8Eq51#TU#y$RWBhi?Ia{pn^571 zjFu!BjnZDOg`Vz(BrPf8N;k>XZjx)#B#SfOM0p6&&X>ZrlcjhhOBMymQar-3C=?dp zSQH8@9E(DMg`*t`tgYUw|5X^jFmKVql-lF}-U)=W=zqs)V_RF!DfBg+=A33QbZjux zhoRA7)7SDOz9!XTBPr*r)O}(Iw`W8{kY}lARAnGN6P>IFXX|IUJnCHV278KPM^*+Z z(C9m-4hw1L!eSkBr1Ju_EdxdAWtmy)K8|Hf=9p|8;aJ8B3veuB1s0BFtiZz2Y6aFV zY82rd9g6IUclmjbJh+}+m0ug$sp`kn(C`dev}16A8Y~Ud^L2)GhH0&5SO!MQDW`Ne z21ZIR7T_3|0t?5$6j->@Fo|7Tc#3en7NgLGE0sphsBopd)VhALatb4cSv@!nOAsQ3 zqZIiUD;O$KK;fuF4uzo*1r(05xL?;U)M_l&PifxLZ_}vG&GG00Y3+H%FV}2^tu3b$ zKhxHoHE7X}!AsO2BPOXoKYL+k{MNb`X2|lrFbpGBLSy!Hhw)Fxqit3`Ys)F}yV|<5!CACp@V#n~go{N3t~q^KxvYmdsy;6!*k<7X zeWs$FcrerkLQx5F9Y^e3bw0c?0o`aFGKShf#_3Z5d+4Vm4*C5P!)0N}J5*F$XtpI! zZPl>#6;;fyw8PvS93*$LzO0AZK&EKKhlR+ikPD)>MME%`w)Tdp=q^3x+HI`N z(Le@bK#(ts0WBGV*}ru_n2O$#fVNZZHdf|oAR7fo(;>GBqNF*|iiQ*4BUHPMl~1Ve z$3rptAfFAQ#5Y>eaN_$B)ox?uLWTS?I)eON5G6Oa(Tau>-#=6BHdel%kS|9^kY5R+ zX^=k(qJGE~L6kg0fbHl$iO})&9W~g-aH`dlY7N6zf2x&~+4{EJ23j06NLo~LvkB{>1vG)&m(TPCw_x;ade+PLxA3;ZQQ4Ojl?~W>!W+fo1*(=L$=G%ySa_~m3nN$lh|(6 zA$JU-9>}9qRP4au&VDz#N$8m8Q=W#0+*oams?-*CZmG;`gU=e|;X%|3*&S4S7j_cG z{2&y2Fb8XB`J0ho>LK15Nc_r%w+YntVUf8xXU6C@|qB^JlP6E zjD`qQl+gJeZz0}lHCbcXKgI+}7-QtmRLEahnKFK#of^mpZDV4-}5%cCKMTof$T z@k`WMA)(_`N`9}vq5-s{^4O18jjdEpHyI8p#_jfDo=X zx$aW+XeQZD(U6#tF}5`Y(xzvDJRRcghD1w#W0Ne_s72>VB`m~C^Evg3D`y?uL0dk0 zO40c18bmb~%l;!_}y(}Ji6 z@;DV0CqB4OKZ9;k9nAA78z0DR)mFaofq7N%*$Y_ zmqcaAtAnTp`Mn_Og*;Rf&9_l7{UQ4rAr;x-r zvU2Vlpb4>1hKqqDiyXu7mJrA>kW@aiZ>RcLh0{5uCSr7)Mn>x})s`K}=?xg%x|<@a zDZkZq^iEIC?4$>HUG*50JW`llLan+Wu|NEbh>WyloWd;kf zPnz_Y?4JfrA&}d$5*Sg*)JeJ2V=gdJ1@%B$YOhza11myQ&bdse7$e#lw z*;Fu~rNnJ*Qb@8-N+HR-0TN?L_DMj9#hY4S{t!}1_R{ntW}G1a(xzpB{4F@@hD6KT zC!rRdCzY@eFU^tKx43flNjoVddP-UZ$Q}x1pX9u&*Fv3b%dTo=vVJ;s1u_hW7V0=$ z^8c}S=7CmD`~N>F4aUqfDUmsI<`Qx*aZa5ED!Pb_r8H%vS7_l9KJXee8=ljk;Z+fFfcrI^nq8A4 zYFM!XQM21~L=7KYfoM9+(xwu*hQUL8(3pjs@3re@?ab zsJfbVWVv=`xmD)%j#g%`C?M;5V+uW|GL=&-+X!o*Ox|REhyFf0WS;e;?+6s-J_+fl za!TZke0CR&y?=EV6Prz~TSw{=%s)Z*zD3#jAh)Ezlp)8m1`=M>NO!TmS*wb{n%26F z&B|vkURE~gf@bCNi*{$yC24u3ob_N+Xx(}%dF@qqYotm@rCYMv+)_wU!rsa$Iwh_s zcHHEVq%zIliX~kTB)9TCW!+Y=pOME*Wi*xtt`gRPgncJXl2XR4sMf6~vRa#pxu>Xx z4EM|}E*m&l=27f|Vzv4CQ?TPIS89-#lCjAq69BKiK6%B*p2 z!^Cb6EyX)y6Fdy1*MoK3--Y4VifbunBNp%^q_lrR`$N1+C)GM~KdPpI3CGl4;zQOf zFG1DW6thRPuVPJMBrlBajb0qJ(eV3dskMf`MN6d`9(7)Hb7F&)?$0Bsat$S&xlJjr z(5%k6(p9eEKG9M~4Nr}h$~8PITI#6bNS3?>&2EZ_zG0_dpWo-BD;&5n$Sy+?A1TaTA}87^rt5P{8s5xO=5H7cEXn-9K`XcMNu81bwQKs1?qezEQ0$g{ z5)RGIRYSv^kFDjS9CJ6w8Y{*aeeOR zmGVTJqk86tm}#E4XBf%JWWr;OwdXE{l9I!2Nkb`e{|+b*`<d1hLF-}-_Q8&z%c25$BDWNhssp8_JNw<;BZTHTZROH7Ez(x5 zp$x3+-om+`DeSxBzB>$bO02Q?VecfRxm_R2y#mXfm13ka)v?BsDz+}shDGxddmAdpw+Gt#=tz64V#V$j-PIQahDV5YV(FL|tLtP{iZf=^P zAg3sHX>oBJjLw`#vASACnFkEHB>R~)t19Uc(du%|#Hw;jR+C$@M>C$Lr0CM5vK`+# zka!u0+v{ZI656np%4|t1mb6W+TymOhbUmnerER)B5du>>gJa+w_9y0 zG@Hq)J6{?$>Ry?sSvOW4QNzj6QX367?h)D5aQA4bjfPWtMl20qXUTh~*_IcI*ha&B zdTA+k$E|#v9_6E4!|p8AaIZ^8)n3G`W|XCJ#q@X-Q@H|Y8wF5)KEn&6rB-tF{V1kb zFPC4BM1GZN*eLR#wT7xpCKF{*oyJCWD$`K)a$8Ggqd7@@7<%k-7v;tAH z&vQf#wVk|1d%}8CF&!&+3#Xxul{*g_c3b5qtWQ*sHpGtieP_t)x?KQe^zL5M{X{+Cc2)`%dVT@O zrizhtJ0p&qajt5ZhhHz56eVO)l((TK{ERS8iFH^}lz^mL4smjpVn5-p&Jj^7b}dT7 z%4fT*LMhYc_1!}=HCZRFp|-RqCY|N7*u$B;=@7M*Yuyj(G&?2QDdigGe9RE#W6pGD zHEueyYR}S^|DzHiZ+43=mTi>kmbnJ0VHr#A=ft%G=S2#YOaJ#(HB&m>Yc35}U1sID zs*-f*#8E`<&}o=QaLvflFfjR#$BNZ5%4zJuHBO10J5iLM%(>IPQxussyX%t9r*!2! zik;8%Olal)%@;hVlQP!%L zoE-mYjwK}=7fVS>wB;lmmlE!?wv2AUVjV}6I#5>jcFl5=UYo5cJzK(OXX{g{F%lhD0)`f(7%+YKNZQP8P8s}a( zx7s4MiKDm6n@}$IdPGB|cD<5bwQF`SasSTZf|6|${#C&>7*`Z7U*f#v{Hh zk%Cg<9BfH^UhSKfdKuNtij9=9(m%RVjn|DPb zx7~e=e9n1yay%umyXZH_t@2PQC2GyV;B5zWvbI$w+%n6e)H~PXi9I>4`{cOpSTw)> z+oO@i8qp7e$`sAroM`t&AG!Wn)Td%M=2Eme(jt$vH8LmBCOESuH+5}GI8r9%OG})G_2kc2PY;USt=o zAK69gNp{itl3lc=mN)I9n#JCjh>}ZLTe*8dbX(X~&h8zhtZga7Ho2uV^I0Fq;mbtO zz3AG!LX(FgM`I6hib3-3K3YRbWq+!sNu_{_^IqEJTcM7Qjbdp#one)IQW7fZUbw1s zOVQd<*~?Vp@~FnKcKU@epJ`>vx3+dtdy`yY)_P#=Mlj*`h*-)RCB0)E$#N1pk|@e_ zQb!sR^Cs4jb|Q1iWcCQ?$S6OFXIGN@q9IGtMC#lju*wpiFC}$!RK~U%9vf+QKaIEN zw+SCM1J^3)UAJcM|#O>A3ZpshsS^Un9RzC`}Ui);Fhd@w`8>^d~Hs;6-Poy?#421 zu65j8Ynl6k4Ulk0Dl^YV9j3L0udtN;v4xmV z(OB{cmjX*!nF-5HP}hXxkZZ%S?|sH8v7gk4(lk2xu^Vzxa)x3QNw>;r(XazciC-`~ zk`G&gD@%#Ee}S9Hy2g@ENRy?k%!K78s8cw(WW=&A%IQ&1xj*)9cfRE&SnQ0NE?~kl zo+$ZPwA=)Xx(n2c^aP7>O6-kHS5C(T(TN&Vx8|Vado{~l!~H5a``>v5=(F4;eTuFh zdK03w6xWw7kG-Rm{H5qgBvt3j*_(n{k|yen2{$OB>=b>uyS0Xr%HE*ZWNiVzKDe?U zFp9e^+{{n=G?skAF0quAnXudhbu;;wxbH{*BDal(kGF`vYOUdHmfT;{yL@oX+TFLV z(8{*QL}U#cv6LfgJx^;zC?#_L(-2YWutvs6hWSRS<@zxbu z+59h&pBgq~sYc0Q_titq8s&%@?!uA_2(4Oak|S$)RE|ulv~o<2tYOO>nHaS)HAl9a zO{M!fDqXpTM<1;yPu6e~6lGp6mse;eGwz+RhO+31=|;|be%4nve=l(je+hGm5$Ihas+v6C~?P>IM9mo+Jp@^;%l*?tt z8J&RrqV1Jgji)oSYWLEj|J&gm5D#xiuzGcqs^{o|>ea1CsGg$-s#iDaf0e4|=n2(x zs|nR}tG0RyZzy5ca`_N6*H#5)c8Xp|p z4z&F{hy9|Rredltejg4`FdyNWTuhw(3A9rrW-b7D?yE= ztW3?QoXZmiTbHHia!BqXuA$@-Ucg979wxnj>5s;on%M8vxgW|3JJfn8(sammGuyak zgSs^{kof&NE0J&;J_Tj@E42~{O6>{BZofHLD*V9dw6FA3iZqEMoSq#kkr2pTD9c}| zl}J$ffBZ@{o-37Z#eLh-?5L=jchpc9F;CRYT(R3HUD90J4P4UNCtcDUJ#a~DpL9uc z^n^>ATh%44AG^alu37Fv6nj&&H@CJ;K_|GNT7_muvg)>shH}>vHH+OL+fLCEO%ib8 zE4y0>iFeDn>BKdwq}1JSReS3%28@TY%4 z3N1T9VN>3B^#dJ6!&{=Ijv9_*$^GTuz7?8GU@`MJ-=;#dS&?)b4VOeq9X0%_vO-Ok zt)Nh|eR}IHN*fKkL`xkte2}HAhnmcacx^OXQkkbomp(GlQNym$QX36tL`$(=rfd$1 zA}zm(p;GAHZ)*5lj`aq^MbT1g#l2VLe0e;c@=y3wA-LNyx!ynWv;2OBIoD(Vz(%h3 ziaaROP$l*6jWl~WN7PU*d!lAP=ZG4vf!Cg>*~w9)Wg04CPt@%398tp~iO>@@>l~$^ zOhaYI6E(}_s!YS-$Y%aBfyTqB7)dt8eDucfu zkzLe8SS&1{yb#LkMu-QTs)M9IuDl`tKKtWKMrEYmjot^{#e zg4{2hD-CammO5&voVtHMAcN25 zSRr%gMwCt(%B=Gs!CYK-?3c$W6e-L+I%+KCTf3imHW;G+s$E!lvU`Q>4#T^Q28|W( z$~9OwlOA8CDOW7_yTg^U`IxSr`Gw+|Xg5_aar@S$^kpPOa$D~3Bit6X|2@c7ekD3C zu61bgX0+%mX!3Ei=+2NX5`RVxI;IZq2)bCJgHNJH9mzR3GUK2$sz+#DO4TB@ZUeIN z{HLM>kovh*B(Nd|*DRl||oKohLa`$yF z4Q19zC76rrjvW@OJF`)(aP(V(&7UAYG9X3}AiCT)`JKTTE6?!a_* zQ4?*O#JzY65+b?1)u?&GVW~%@)u-J*M34u%8E{J)>cZytnr6Bga6}Ciapux47j)To zG!0jF2O!UMAM0+qHOx8NQO?R2x0yB6)z=AXD7PF-Ude@oQ_zsyGy~mTsfI11rBV%Z zPPLX($LCH#+^N{N#AQxVx>KN`%sLMe%*A!bPJz{(*@0I1*6xoDRk~#Ks65%dLUzlD zJflHlg}!nP*3G0-pv;v<8{YM9O*%!3t|RwgG9X%XOifhh?9s55PQ3BD5H*r?=jE}a z^D-0Oa?ouq4L9!_Js4?NpQY>_i6#wM%p9UN6`CCsNw?AP)M%-rhNo9nsL7ctDAa6n zB;7{C_oJnb8t#0NcRK5#CI_+Tg46KS$~;XziFh3~{5)D}qhXVNQC{qIM%nx=%4Ye- z_^1@REwABWk^AMxGCU<(YOT2Mi=9+aP;>l~rwk?4mN*kHlmbHBr{G z4`Z5)s?5|xJ1EPvna%1{Vs$#QOih%`EK>>7VaPIVda_J=Ha;Wl>Xlv8WbJ6twL(pD z339iw@_Tbinr(%0@wm#1*6wzDf26y0kVXZsbt!F+QmtFPR^D$4EA3Z9vT9rI zYOSH%$#yWSE%8xMlHZa*T<1^s-@I|I6qr3!nzW1--FeaEq-fEd7hMqgL=HNp4(eKT ztV9P7K#jVObMU#0gVLyepmix#JJh<}H&))C3@e>{UaYL!U{=sAS&Qcp`xT&j=+f}o zXsJ}gvC-1W8a@y$mCBq_m+;spb4t0p;nh%Pom7IkxbE1&u(~rF)hf?z@C%}YA!|1f zNk&d%MVTaLT}nC_lGldFKFujV4WcdPekGA6+9HYjZYv~2a{K7yqZ1CsZR}6=U-$ea z4|I`tOB(8e<@c3lzeI&iyxz+NUCy084Oez$muI>^b@!VZ=A7*)XXT6AxEkuJ>I5}Z zAskCy$%TX+e+Rjl0lK?Q4WEscN;S+m)ml!y5+$ZI?o{j%Pv#V*+wmI8tn(njTwHf- z$6MW*9cYzr=pOO>rJzT&<7I6Q@n+;SR=`Pe)}^E!uPn_aOWB^R$-kmS*J;0D@@ur{ z9_KVsO|!?qRyFbF={wX&(w&WOlg`FWeh|OyU-gXAM#Fl?YN@q`+p|=or1$7S6`JiB zt!AF*H2Wwj`@O}l>_(>G?hR^~~vfzx4)dmYyP+5{_$*?Uq= z4(7w`;&TM?BA9(yYt?-~4i|y$kxIj#qNUhB35-jXS*bNjE~qOFa?f=Z1-W08;h6Ha zd~{NdqTvFT+;1V99RIDo63nrZz6C6nbh`GV;mQRSMMIKYGxMI?-F$SwsUF~(?l=Q=7(A-B7T$~mynb7d*EPs7t5mD^Np%*y?2@3KBNL82+>zV55x5z$h)h9^WzvArxsqPi?= zD5*^6(zs7p(`Y`rHAm4smsY`npa#lsijF)_FYTUuo!j!B%&!G4NcQo zEUTeu{wnKHLz~Bfe26|!R9{niby8dPaYjKQ`IM}@bA{GW{$%@~e99I+)tfa0O=fu0>3wc=+>rL3%uBeHE zOzetk3OaJW*qUiSyYgr#ZH4TLlH>e+;pU(_DH`72QMZg8HGG(*%;Qv>3eA>viHJ7W zzjg2*t%IQ3VKXnXq%E+$GwA#uIk-Zzn5D0)Qj%O^$v%k=*TXfGI(I*3btPPgrAV1`twvG`%PrZhDJj|V-H5Q| zd17mm9Z9-3K32J z>J=x~nA|1L#&-^04h6GM40{~!PeTVV+tTb2Nqn|Y&@E8sO6WSLX6;yY8_S+7Pqf}y zb#5P9U2BwduPeRX!}=3W!2PfvjikynRN&65k^L+7p#mpWszm=-^OZWuW>0|?O*|U2 za9}p5cB1*4mDgQY()>f#*UWq+cvNjwZGWmpv(ofXmb2QO7P;1hsAN@hMT>S@8aXGc zg``Td3cwXdL#cC3Ob*JCgc3@TGU7IthM$uh_ZnG>6q#dbnA075MJ?U(DF1rO1xY5f zI!p1{vpKe`q*fQ_#9N(mA%~K!iS-Sc%eFdAB%0Xj)I4rN((BhuhsxDYL!FUAHqBA& z-vaunT2{7nZ*ghYZpbdG{<^)-E^1Qc&Z{Pu)oP1d^90{y_W`p_whm4<0TY|7GEpgu zuE{FCWr(`mx>e17Vm0BKZq>Ou$&K}LQdYfVS>2gdEIaGaRTAtCqmZLOr%6NQ!udYA zf5iyyE0jjRYV#;{lFcUDiY8XzW*n#h)d4lXukyO-aVNQ3f!OBT_ zlz-vmf+Q0ftfeIH9m`5;uyIbj!73MWDA}4=&y%@qgVjW$i49gKy&IBVzh*i;RXj-B zuu%(Wu<8@p((OyLSfT5x5BwXuu6ASMng4(w*Dm$lH`{f);`vQrV%JrA)Ms1`Tz^&2 zEfMvrnw7Jf&;_kJS3IlBEm=jG7AvLag_WN|l;?m>lZFc1IXbt0#Thgq<;<_zE+BQ1 z&1Tk$CZ@Xw4)g)lVl}_4^15rWnqR{@Eml?gELzS!o@@G*(IVH*Av&JJHC3>IJ6riC zqlIKjvhv?0UPGyKjaUB35y!GAmm(#^?H~$CVrJ#J~A2{5F`_c$FS?A6Em{copPos9t!tHtIicqZrq0( z?igA1j%9Ucda>*%^$Css00M3fI!ziX7cQb@{VVLH(y!XaAa#<>CfkZ8R^YEVZ~~}a ztog~6*Ih5x{7lwqmn!5F(Q>vIYx=CwBG)#k{F=dO*IYLSfo3e{WVMh~Nmc>4%xfrh zt{KZgIpSD0=TfAMxGHPdjc{EvmLf&wSQ_SZ$C|Np%cK13DHkM}(2Ol5c}rPVQZtTo z;>}pOkVDDV#JY&gWt*`k5>0HzY5?0I>Gf--LsiA|^)ku}XvS(E+0wm14_V>Xc=f(! zSZUwAy3DuON5Sk3?_Y4T@5=hFGNDf6((U@L;`<6wzpB~ytS0n9tIpL)ZXBPJvg#en z>dy3C*-@4g?5$70TY*lKhRTKWedK_Oi|I^y?c-N%50E;^W{Yh_6Z>v`9M}m|-_?Bo z%ImH(YJNEDbVe2O#%MX)cQyT|(IVF_tK4_pSLQTVw1K`W=VY~zR7q9=xXf!Pb*}Hq zK{?`BHs?~LjJPUm*n)6f-<2Xo=2#l$bjSLxbjzds>nRr`nb3DFC3#C(R#M-MbK-qh zxsXH2*2F3!bJ@PDi9{3ot{T8kxxVX;jb=JjRXktgaI1j6tM-vC-G%g!6`Ha7uC_>) zsZCMk*Sjn2yJxiWeRmX??Yrxp;ujAE6YqDG33VD*PS=+=;R39n0#@^j+CemJ|B!=M?h0=!BMOs9d;+CJ(6CgfGn;0{T_!zSK!JTS6${q7#yXu*)9s?=Y~R&Xb>^+Frsr2y?%J;Ay(+Ieql#op zl8{m3=$a}wfiA63WVMjQN>=f?ifbr!u1m{5IpSD0&r+oPxjmtwlH|Iy6e%*t(lDnx z)}^Ie9_3$sxgg1eE^R5v8_=?nx^$cq@6yVJ97?t(*3RscY?szVqKREv?c!CoyVtLo zj-acbhB{G&Y?^_%RX~?kv&ok3KswF}t-FXWt=*JWs{Nxc-engx(f96Llnys{T zAJ*D;>2ttr>pl<9Z(UjIR(dL>*0pX0-3n3Xid)s}L{<}8sa5BSXLY$Ht0>c_rL;#_ z`ID6LMbK%|P=Px~=MJb?${nO~?pJLWkUGg`i(o~wi&pYA9C!;h^N&J9B?*y^|MGUr0_QD^FdDHIzEnV&#eQ>sTQt6uR3h8vaBU zT#J<=h2&To=5)tetelib`4>(uNHU?tT1xWXv8<#P8|TDZta2fTlC6nVEjr%rADd_* z(Zm+3V?Cand;OZ}^i=U6wZW}oTkL3#d{tYlc2jmgtm+oKX}NE)&B1JoeF@Kh1rzU% zl^*pOR|D5f74!p$`c=)QvzpLitvXjctII7}MVS^WrSrndZ=#fUfKHQ!3fwumY(Rz5 zds^;R*sa5Zz|kI{1W9fYR88!d9JD^ba+ z=887ZdF7m}7LqE-Dgc*x4W-U?UO6a79Lwfhij)zzg)|&bxUTa`ks@;}4Rg9Gf--LsiA| zwIouV1ytMCv4)ErJzI?7S!8 zz$u`5pyuaSUU!{W^FFN88&$PeqUCJo)pWkmBG(=^omX>38|b`pPF4#^m1Grw%e;nC z=Q^((lp~I1b1p^7h}%LM4kldJd8J5^IhKYw-LcLq-SQ~^dddY!CUjm)N#0VHmDG9T zoOtI|F62Bn`yxL+_?Yy_O z^|!Y#g4uiC#dy9sKRHY6yh@MSkE?;}ybAgiRQOfR=7*c3Rp*Llb-5+0DAReRbZJ=m zc0{);=rn1lz@4LW2Uh69ru6z%+XbXfve_b7(ZtTXHx3*Cs`F}obmeu|c{M+Qb$X+! zc2~5V?Yx@aYqZFiETq13s~D+lF>W7(Wbkuu_Xs)p?d z*L7YgQe=*$VNQ3f^Gdfo%D0s-*>R;T%F{`WZZBk#;SKLt2@(oWk*?dlJ?O4r2R$UPE&Q0 z3m4I{ffe@0oPIT=E|*95uePmdV&7d0tLua6yP9uXdEND0&39s*&Zt5Tik7o|S1z2A z^7ArTlbS+em#jQ;snk&FTqBhy`cjW$*(6GlLUd)*a8JT=jZ}&hl4EI@(;aK1(k+j& zwU8>wB^F37NHU?3T1xUBv8<#<8t23tsd6EQlC6n#AeqZHQcWb9*hqDvKg=~!cMdeu zDXHRt8G%~`G*b10Y?a=mDXj24g_VCtY=s|eml-T3OFj(CQMd za;|48ly4FBtD5~Bb-&nok-CcLaFl8&3och<2Fteta;jugE#6gALm77GN<;aO`Mq!& zEAa{E_*MLQFY>EQL*>lHIC4+O{BdlFioNiY6Z2k8t2~P`y?2A1klB z-m3YZtkYXn@U|43AE3#FBP;)tV5dcMMHRSrl@rolNJ=CtM_my#lseaP<)9o%D3uf` za#wT>YZ0w$xl*La981HT?pVu}Zh4e{-Q2^NUo#yZS3eDP77E!kU2rRpmU|+dVuhBw%DStzQ{tK3nP2sG zO!O0BK@k(htx?nn{GWLNHnnqkKn+Qp!%lf zuT)-l9Z&POSYI>qi+)GdmaT0}gVbC;K)3$On*1*$cFD>kcXTwAI@ciOpd3kPkW!=& zU3E2-Lid|5rAU!EmWDaqvEO_t-SQ~^0?7qQCNxM(N!}xtmDC{PoOpx$kjl%UWNTtA zhMm19)kLC+4N@oW8YI1b&2&m!{WO%eLN-l*T8Y z+@gyba(k2al)yjT7kXX_lqCaNV7{xv^iDCz673 zdn}>amX*{Cl=WQ4@*Q%0yGMLHySg&f(YVeiHqD-ppN%W?!?K zP$4VmC{`--lqU^ar<;N178%5g2T5M=6R+5^Xzm(5}%t+QJr4&6)Y$J(3tYE>@Z?ia2{*{9+7Rcq@AY?OkDy?3($9TI;#c|r{mV}-rMGC@Q zVk9O16RtXvlC45^zbt)#>xow#k#Yu-Hi=~=U3KD|_*G{tuB_aeSRX}>yQ_{S5)EE; zbl9~M(;AHUQtX;t-iPOWu3@@s%*e*?iNzX{yAC>*W|d?U?x%YrGZT==g+eKJopm$ zc7Q*0hL^h%90A@7S}UI~^ede{^4JwT2kZv+1up`Jfy2S^;N9Rn(AulRdNc4ka18hW z7?N+u=evNrgL{HjpS6D+JjE-!)_?h7<>!#cm%zE;hu~uH;>WC{pVxofVD#}`KKPs zz`rcEl73zrxoP0tpZoO(K`XTzyqojne*kYW*!457u`g)#i>G*+;J=NhJ?mC}DRzpL zSN`rGkI&-g=ip`JWeoTT_&j*(BJa^a(E9gx^j-m81zrbQeO7)7yhp*Apz;**)7DjX zzBYbu!#+7MuwUjHd)1Jy3u@m;zx7{rYi0I<@~k|{FXhqt7240^*%z}w$xjK?L-t<5 zfAR9Q_dRxOJeL#SHK5|N`Ph)pHvzW*cLB$NA^EKe2BECTP8G$2q+f91Gs?rDghg_W=I^);~^>A7bRw_&>rg`NG?82|feP z14I7a#OKq%&6jvRJApPz@ua^Cc?jvB#OFi4@|s412Q9Ul{d_w79S#2(=6|NhAHe6$ zz-30xTKy}2)ce|h(inUfwEXt)p994|9ezcM{9DK^1VS8t;e7r#@O^L*Xr;tEhtIo#y#o9RtltlAj34y^{)qQ7eDQV*@Tb7bm)`|F zXM*Q}gTRZy%iLr`o%le@FoTLd$XP|{|oqazVn{03yuRH0>A#=M&jo`2IQ|Z@;3(L+rjGvP6wX` zt<}Y>F9ZLA-ZlaK;;m{1J`C3q%y4mb=P4Sw3r%cbcngWnE32|O9J^0J>M zcWOYsAL~QGCivMh;IHDj3w~#KR|ojwy$oNx2?74w@EY;Cc%l4>U)S&-W!HD{g7NJ9$Wv7(7z2h!}x9a)!X}hSPNVi+zH$jYyq|h$DNqGf33a^ z;BN+Q32qBoe`G&Ru6{uNAl93M%fWR6{wkg`;MIe7e1I?B2>9Z44e&?9TLg+1%Afdi z4Zk<~M}lec&mcb=d;v_89}6!ee@lw}kX$GpTmRRw|2}w;iQDo&EL;dL91W9*6>dPJAt*4TN~T}+!&PJ!+7G;QjpY2cfPWl#JlGi=3XTB(0Zs$Qlz6>U zKc!{=5tCW5fRwIjjG3{P+nRiJbhh{4WdSw?|(euqA%<2>27l319hd z7U0)peM3+@*|GkwT_FEO_T3_IYDZtMIiS@q-V*rVfKQ?mT2jrWx-U2)hyb$aI_5-c`r`U%tf%CwN*YtV10X(u+^7+}gx?kS{ ztPeH@ZwK!ICxg#{%W8P}+SsxFNpC&)7lP6|m-*XZDf%XZGeOyT4LcjwOpd2md*@?k z$SSt~_dMgx*S^i~Qu6T~_%m21ke?m+ycE0%-g^Ol6L`%Gzaqdtop@DeTSx2vSq1Vp zqdxnC_u`lKh1IV(+riU$7|Y!9&tSa=D4y(C{y7EmTX7ECg6D%1YWw{>6MSwhKYtNC zWNklh2EM*=^8OF$ACH~#^}Sq!x*pft(Bt*sAK=j&`SnY|=fHZ{?F(KDhWz<=+f$s4 z3(V(n>-c!vgR9GLyMN^GebnbY@I!D3xD2%N&$AwqvwZ2X`FWarDgM6XVFB29U7w$N z>yal=`{-2m)2gz!zU+a;+OI}jg~pq&eH-r~abAf#6ZAo8JT}q{&ePQ=W57v*Q|LA<(xPg!VJ<$61CjRAX zPx_t;=#!rI_#fp3|E&FM;f)97r~0P);+ynGD}Qqp9!#@uuOCNq{U`%R zQ#b7sT?cOEI$-0GzPZHpJ@_kF1HH9CE1$322FPy=?gkd>Z^*Cpiqt3j&yu&ae1+oB z_1xCO=1bRm%XpdPc~&3!B+yT`ucEx{EynIw;BR1>ecQ+9 zv#*r54*0G6MjQVv^x1v54y5swm#xUppOYb7j$j{9*9FV}i2K*Y;2&U}P5gCf zJ@A;#{Jb;x%9eiqCivH_{Ja%74}1q~zcupUhv4Vn8Qb{J&j-H(e*mA|!+&0^|6PdV z&P~0Zx!{x?{CvZmJnp`$#~;D%cJuRtclX!>oC3Z9ZW{3K-)+yv`JbxSkK6ftmDKaN zs`DJ$4~qX>>OBFx2Yd#69<=*uB3tdArvbj~iuXIb8tlgbp!SXGcN*tT z`K(7?M}iB$?hSmtCxF`5rR;AT@9OgBN&J~xMgJ}-G9UTcxB1wWJnaeY4;~%JpXzMu zSQo#o{v)>V^*I`B37!ge0lR|dH1hmjpw)L3ygR_g)V(Qa`Tr=8FTE$w=e5sDw)cLO zV#n^gXIa0K{;Ko;D0!?Fi05tm%h#UteG;gT^qhqM%8UHA`MD9^{orLg`#7fv>G#io zR{r)X%FEu>*t-s_$kV>P9-qYZw+mQG-Nt}xaGhHpwDCya2gJ1odg_21f}4O=K3}=* zkgpFO1QzOV$gi!7)F=Bx^UPN$4&5Kwdf0sF{>k!mKedoJz67Ilh<~c%Hi3Ft{a2u8 zB=`^TR_QkmY9FP^-G%%_@G0rTPvteu-;iH-6sb@7+9%I^h2jX-!{kf%zqW3=AMVQi zZ%=R;el@M{`;O|U`%(8P3to(eI z`>dD2H2veycMmufoDN!f?V~igS;#*Nz7H1aZ^*AFi_|CkJ*j6}zCv+?>S6Px_dm97 z7gE2AzyaW;;8mc`sh*2wa$e_vY4&zQ&pzNG;NhT^*S<=V`wQ~Nfv1Co`Wy1==pyyW z{zg2%rR6IWN51v3`8$>OMtwm&C+^AfqMp0--p$INQ$=~%tAo9D!7cN&AA9blkLaA( z_lnm4ugUu;o}1J7gLv+}7`zqKbFtO0Jnl<8Z9%99}ulWwR6#NtFLdz5GG=*&V#|V81@(P>*{x z^SDvKURC9-AFC^0qYm(Ki~-Z)4CPn;{+0Y)1`Y>r2gif9KIgM;K$+9yx4Uu?Xq%b!!^PZj;!yvTgy zYv1PMALQvaa2z-_kU!Pg)^TZ|{_Xen_2~$n2KEK}gM+~H4)gpzp!N55cr(Dp)V(Qa z`S%ydm)=w9i$kdA7_byOcHhln{d)S9&hswBp}4GnOYkpWd(ziBkRRze5C4@H`EBjr z1@AHN&cl8FUjw(N->UCg`TMIVFMIc3Z!-9Jp7!na>rAd!JwVlM8TEU)sgG{~XycK- zCB(HpdNu{O1M7oUK3}=rklzz*0T$|S$giD?)F=C|=b5ii9J-&d^|1NU{f6b~{$nX| z{0yp&O%L>Se3CklY0pHhrw6CLj4W-HMvNAvfm)je1+l& z)x+jX_lve}x_|7&{o)W%bsUL*4^mInHBJ9E=-C0>9c&C*dF`V#xr2~D6l?<)>Tk%e z1B%oq`#tl_S1689J#4;ozi;cN`~TmFqt^cZJgSZh@NXRTR9(~b--*7v!71Q0(8_Bc zrO7>o{4?Ocz(V~E`SnDR`egsy7i=feZl_VQ1D7nb=7^>hg_!@ zfob-3MbF;g!Qf$_mDj#XlRF0aW5LtFLj4W-bySi1WPc;>57Y7$iX-3p*!(r%x#>V~ zBkI%)+>PhxLjup!yH!zM_O`;_cCsr>v2X9IbziDH{z!k(eX5QBOY%OH`|>pYS3LJD z1J~w0Tld{ozw&rA@pJ_Tf|fsvc%K7504E&f`{zus^)Y_l0h|lI4YvP_|GYD}0Q?ke z+}3}dul>D`^!(qz#`y95@qYc9QjagT_Sm`H<3-@bV52sEJ!F4%>$h>Ns(c=ItdFZb zSZrQwJ>>6!OK;*{GAKrOYghLsgB1`*D=_! z`))(}+$W&Ucgt4Z-;tp8uM2kawI_YO1Nx-rQ}ik?^4r?qj_bjGp!|Fq{WsH>CxKSJ zQ5EH7Z#4F91t;cd-(KGq;Lj3JbsJ6nZs7WJJ80vPzSEE&23`%`1l|l<`F!QZAwL0} z2^Q*a$gkUr)F=D>^UPN$4&86qdf0sFe#G*0f6|rvk)ELHxCsA-Qb*M_P5=7n*%aIk ztPfgw?V~ig-H~q$9s?HYZ^*A*iqt3jFXoxAP#mFp*nH`J($-D)mtPRa4`5^ZsrtD3 z&WoJ?H2pWB=QeOWI0>}!+DB<}Q<0wz&IJqgH{{oYMe39N)5u#|zCv+?>S6Px=K)){ z)BozPYu&-Vpw6ZI?8y1-8tAuH{}$+}2ks2+3R?fPkJ9A!NB%&t3@p^&kYD>0sZaJd zp`K~^3dIqsht1bF_*skl=$pCEdKp~Eb^e>c_5PPC%FEvE*t-jSC{O$LKI;VbmGY+R zx}Gy_{0DP?_BxoxS6=4f-*;f`Kz~}F^$o$@LEX1me?~s{&~1AN8x7W%~-9^i|&5WaYK1^D7AZ{p1g z@Rg_Pd@kMx0ls+a^0|1w1o+~q4&rV4qRo7Aoy6Naz}I>ipLYSz4e-V5V0b;54+O6Z z$V*Ok#JexRw|d2UF~D!U(C0z#eY)ZvzIFcdv)=1A64%E zR)0t2t^Ogb*E`MYX>z*9&fw+XU$JvSp7y$<_adXeC3Z@|)?k```B$ubD1P~w%bXv{ zZ{;UsHfqkNp|^Q^d(=gH*zF!HRtg!BzV-*E6+(DFmPn~gtB@vAv_G??a3 zJ$S{+%Maxzq$iXw8}FUOHB<5ZjeO&$t=qojTXBZ;O+eq>;Dey$hj@<~f12V~bMR;| z&7XSkij|ii%1=m->T2_4<5hp!`(&Tz1Hgm8!@(Bd0{WNY*oFKn?vVc304+bX&#c^F&)K*t-O`fzO-_`A^#`1S&{x)dtak(b?aY_okH_lC_j`x z#cA^&id*}`^0jXF&2Z}R5I7wyWj`s7v)NCf`(x?f4f%4g18Dsb&-!EKx*~rL*bgk! zKWk5Zt#19N7wK=I@rB}0eQo|nQqSwae}H4aiD1(+e7`vcJQwT+4nE6&J{s)O&Ck>9 z-5Rhrll8ghdOZuy^H}?QkBz}2u+t(>dy~;S!|4AVJ0;ku4yNgsf5pm&;+LN`fAU-T z3E2(h%j$cYJS;u6#Cu0___GZB4*U^J^Ji`q z<>iO+6Y?XJFB|VC$^++S?%CuUKW*I_kZ;8q(zgh`OTces#|VUYzrvS4%kb+v@JBGs zpQ_5sj}r0|@JEkDFl|C>pFTL#YMT)Yd0^wq-Nx&c472>4^= z#H$a#P=5;L?}(k9!976b!^RuBK0GRa!KcAF;9RgC`>Z?o33*)_$gj264?RP{zk?&e zQQ+NRq4q-hM--_~_D{$&UR`fPe%N}1;?B1oR$snyho0&CS_|+5Q0GQ*>)fc$Y4*M+ z&%c6}AKF(|t~UOx4K^s!KWk5Zt#17_iuAY8{Dr@Bse?rd_(*G3ke+&K$T7Sf|{#d!1_)`bmzDWP9J^8h|^{-K+zlG*M z6o=|-^RIPV_X+qr1AGEhUzkgOP+zDWc;1u#rpR{%yMfjp@vJ{qZUFLw!K=YS{j>Ju z*Xq{aw@7~rjV~03>TB~qm^xkzUIC5-{{eRH?)ybo@G9^c@bnA(=jVc>!CSyhd-=~B zgTD{(^E7|13ivab^#y&rp5=W#4(ac49QY)5p3T$V81zmw`qxE&U2r2XO~3prRz4KJ z{IvO#-^x$OZYWx9@x*4{|POUSo+Q}cz zNjLt);_*IkY8)>X7t}!|Kad&fZ^L$bFUST950P>Z z=|$?3{dV-9w0QM=6!OF7Clq(S^|1Q#l{=Su_67%mll43R>bYwY_o-?2c0f-f(DFn3 z%F6ABd=sz~EYv@1Pkya#{d*PZZ=vyp;!u5U{hw_u=hs}@jc_;DQ3qA;rBtP=ACGmvvEq%uze;Rl;*c0ppT7UAD z8;txV;I&|({)YS-P^3QDpGMx&@)e3BR1cf45N~bluMchv>b%I$=G0SuhV)M$A1{M% zfR-iBK<8izEB*hug(8l{+;VW@K12vmppSaiyln$~@mj(c@1Ou*Jk>$GwgJAalXyJ>e63&0=i|V80(|jqF}#PE zKMuYYke8h7h_^Jrw|d1}`<3K+lyvgf<=ZdzsPhrxuX~B-)de>JKL8hkJN(`Anu6;L z^KDvPNL%}1#mS8Dp<@1$03HeT7FR)O5Lw>a@QlIRf zooBv6afIq&^QC&15B2pu1w0c}-R1=9CHYT@w+?c3!7ae8L2Ex>xgC+;8Egio`4{q| zL7wss&;eOs7JnAYxxBg1s zq3Ago{2SN@8~|E*$ytBW^gNEfS>Owx{GE>98(r!B-U>{!e;#@+1TO*q4qAET&-!ci z*gROh*P#D8a1vN(JZb(|{}pGNe^(XhkNm$m&w7ON5URJ0NBj43_VFn27Et?QIsSy? zw}5{rcqG^oECsE6zH%oa-wEsmrui50qg|fzA-kb`+4vf9j`jn0qc4Q|gXJHP!tclD zmw>~-3h)lF{Rn@qJAyA=*kp+?HAQYc~YINU)KLn z-a_@X^4g!TQtx-ck3iMEd!XKu?+pJ^@JjG{@FvjO&sT0N@^^xdfocAQ{J1So`H)zl$-vm4mYytj0 z+JA22v-Xd}-U*=Phy1g04;v`#hk}=Zw}GqL zzV$cc&yXVR%ip$n=1coU^+?N;^*@xiP(7`@_Tzfj`?_ucZVxWI(XTfN)LZfu#QQY( z0{A-kCTQ*FE4KjokHKHTH2*?=yq~9h$ZjZKHonmL9>qDo1-uO$3r+-;_aWrJoW5{& zpg&l9t;!fN&jE*mh1v`0?^2{b**_)Ec-1dMe%N}1;?B1oR$oi%VCym93ih|LlN%8;^MM zNA|BlUh#zNje>V0_)k#&TYIt-ire!4Mx2}8;_J~E91U9jgYbV>e&E$G@@J*UKZ*P+ z;A`N!V4D86Df%A?=(q8RCx2xBL*$i@kiC!LeFlC7M*bUvvJ;Bi&`Ta5&h2mY^=S&W z2SfZvk$VDsDv+-bZ*G9E^}5*K2;3~-kNCf#uNJ(uQ}`dk{{;Lp;7^E`uf34`HwD@Y z@k4$nf3|*Fw|Q0lE&l=Xc*Z~d{ulx-0xf?H)?0$5U^yuH8O%fS>+|`xV0~~GFirnm z@Iw06;&ZFt^2L)svcD(tiYH`mA9(wNhl29o+LImYm+V@8wcC7M9tP)vO)C7l<+tMV ze}ZGcJ3-0UNs&JV{`p`JupgMF|3`Qs|4!m_tKag)lRvUQ7jlw|d1pHo%|E&(SZSzvz5~__xEG z0Nx8e08Rlv1HS+_8RPrk=HS*~Bd`p#S+Mq|qwiJlbx`&S)winT-^PzL`=NY=;VdKL@uS>+911ECb8I_F!l53NX#yQuMD0zYZvSh3Z>X^6TM8n*C6| zLUGxAq~+7{AH=We;N##k;B4?Wu=?%3ZhL|If=$4t;8|dry;sotDY)3!D^%aAl3$7+ zY4$_;3dLpfk(N)(??GPsfCIoG;81WX_&E3*So;p@2d3#ChTLu7?V$7*s&7@vkIyrn zP<}#j*?c@mo~DD3gU^7o!Qa5@camRlU$6<-6g&$|v-b*mKLr;Xdxh#-Rq{*mBh7v& zU!k~cKGO1O`8~*MUvMCJDL4##415~=2K*je4wj7b_1qauvv)Oe=mkSRmtC% zXFQ>Nh2paLNX@4asNUY^w-&fAxD&W5*aB=1>hHxEbtP8c2Jklnw*1%TT<+Ylk&HJ$?SQ}gy+#K8*YzXcQHU{?tOTpIQY2caQW#E-XRD=Ia|eZ>y?4cXF=o1^-(wpZ8VWAFEogN2t$2ur}w&*6XM| z&)5I&*Q;Xd(S!W=0d;-)Z+-l^SylHFh1N&cmwfmC|JD1kf!vo}X711an@_(#^S!?v zMgATE7lKQ{UqRjfuI~K)Z+SjAmb{dLx_|j^J`3xQ|L*?J0W{tqBmdtI7&iSBSCxqY&~qeRpl#A)mL$;epbKEfqnm{^R4Si zs2}C4Z!~o%RNpno6)P`$)v0qWa6{1cR~wJ|ntdMC^~vTX?fMzg_at!^s_$Xsij|kW zy~xLY;E|fA+z;sezV5&D{$1xn&(q3_&9CH_5=Wu(pCVVRyzH&ddEE%C52pFApJ(WK zCGGjd#xMD1^pis64?(V2dD*)KJr&?2&_1tP|Ml}5y)Q_6&JD@;#9pED=Ob6FyzI?F z&vW2B&_1VI|Ml}Fz0XT~e;1PP%6=p^_XX%c$@Vl;LC6M_f2nt-+(1=`*kZXxuwW|5B>y7 z&pYT@0Df%rt`*S#D|#BhUk_fx0Dm8Ny}>WRC=L_AiyeGii@>QJ{d^8+=q2JUf&VS| z12_h`JHUzHJ)rcy$^0{LF=*}mjNWbe{9W*4BlmqkzB%hHz~jIR!9HL=(AqziJf918 z2k!@`f}euR!MgAGJZ=nb0qy|y0VbIQD3E_WdKQCUfy=<<;O}6KcYPgdf}4XkgEro=$Vq=1{~q|SfxS}ni~lhE z8Q^1}^(VxWJUSlFVOlQ;`IygwSE1-91Nz}zmvW` z349#<6Wshg-%tMmTK{LkTLfO1C;uh*uY#|ER)2^mdzQaF_8WqYz}-O05AhBP@NZ}R zF7Q$Cgn#)wbq3!9KLkGlmw_GL_x$eQx1ja!8T479=pyh{nZv^-? zv74_yCB#(<&Pj=P!vOzv)~)~IZ^7qVgS!^UuNUBl^fnIg4`JQL8}eUu4DA=`(SEV< z_oW^~z~SHs(DFmPXHxjXjNV%VeDUOmcw+i2_XPOL(^u#hZ%%+O-cRtw`y{{@Pj!fRf&F0XR0417 z0AK3|^Z5y2+W=p@qYSST^E1H#0eQ*Ej(DR3e5+Ty(0RCn`?_)9_=*0y)&3rjr-41e zA>c4@IQSg+0(kemUj9L_+Jk;x8(bf}7aTCfe?APn349Rz7W@G`ajNHc1{==s^TWUe zGyQxC_$#>4Q+~ZQ*cO}yJ^>#3jOYCYd~3F!F94U#@$+B7gP!;EL%}oocT4uX+kD?g zz8?mk0AB!K2IqkvgG<1Fw|@CCAN${dKLz|LlrKHMqHpU-KCksa8*ia}>DdW=Ey41D z{zCcE(*b=KgO>;N7s~$;J*)bB{(PU$^CnMt+zV_4_63K7kAmaa|5L$ZU-j~x!R_Yy z`JSMy-*$KV&$kEn0{^eXcL4Dm1|GAT;(O;mRKHMs{fP56a140Y|7Y<(yqe;j`5&tH z3B=PCEcX830CRuPnRsl!vHisM5Bbvxe{{d`68hf|A7>~^xXvSW^e*%^@n)(2KfJC zeIfV>_;Y|C;{6fehxVEFk@a8wU?%&uFZ=Q;uqSoa`L@^BG<`#jzCl&gHw^h}z)|4s zV48o5Z?K84AM!SyLixv_S8_VH%A?h9?{Dn=OxpcQJ??vSe^jWv_}8K5M%_n&Y4&xW zHvN8o-?aWi9?t~ddd|;B^PFPim;8pvZv{>)QeQ3P)&{#7eWk`f>(3#4E?yt}4*9<$ zpYIDE3?2 z)$6zZ)W?2f@Gsy~|HJ(0ieFt`@NvBRipNjELgSOZ8(;Ezz6N{0?C1ODslOF|h4g(D z&{r)`kC49G@b7N$Sy1tZ^eK*8h-VzA{Mr3*8~L?)=|UWqKM(%+7k%Cy0_)=6ddP+3 z&xW5Sze&Kp>^+a3cff_ml?7 z^#@z8rh2XhJAj=)%YT(VsQ#npa`l@u{>$hM@k8&sLg(DtTUGKkpZEKBJ8(zP+H1!8 z{_Ojcz7cA8OLix&b$Pb&J5AbUtxENG^ zEdPineV$9fR$w{rv-9P*MeeC8%0G{MeeCZB9v<-LFYx96r_8?uzXpE-*FsOe`uid` z82mdp4x9ukZksRV@jUG6eSat3`&)joKTp_cmapS-aI>fV{55b5>}?2cS4I1$@^cL9 zzkdF)8J}+nHVW`Vyxjx*Uaa>62ZC1y_#xiN0AD|!nak(zgP#ZZA>NwQ!RANns#l@) zSqHrvsm@@r`egrI_Q?m}VlZvL?1TM-z(c{opxt*i9|u%XzB%&8f+v8T!8H5wb3FXp ziCcNuopYj}*IECEBUh}v>`lV%ec%i*&A#l~b1%I*=h9>Se+&PYfa)7fvHv&le9+2& zR7H8&+YbE=z&*e;`|`6LeEFGg{Kq3#ti0^?Mo&NRN-!<|cd@_z0FQgt_wBymSnxh@ zGv2@S0bc_3UdGnvP4s?|r+zEHu!{1EryT#=gQtNuK5Jj`?m?VK6c~R)_{GZ0-e1vk zJlFwD%YUJDwejyko{j+RzW9^%b@0c^A6P|s*&BkMOTlZvH2d1O&%%ErAg4N8{~v>2 zti0^~3q1?KuR!H3WWU(&i#*TwMsDQ!W-eIHb4^chYre;^8))Ot*M1G`S$TcG?$+RT;O+r`LcF~Le0~3>2cHiHuL$r%yzv3P)T3r781Q(o4>%B1 zoHjqo+X?uq_b$x>?_U}{?(;kVyc*Qcz4YE)KS!1x^*w99J@Q?Rz9*Qc$)8q5dHH`M zdTs_M=4oGk&V&CE7|Mr@|9SYu%FEst=vfN>4%&KH`+dxPjIK*Mhn7Dc{wz@ZJJ>JZ zgVh4pv-^;n3eKpaKH2Y&-NE4SJpGa1kHCLEAQ#HV1MrKLm%VxDnGb#hDvu%iy06fC z#ofqz==-7X(P#7JOW(feZ2~q2JEqv1N?&;zd=_jvJ-J^$X822){{a39?tuKxU`U_V zpNDtPW8UtMpxxgm!s`s430@D*MDELgym&Xk9}7MM%D(hi`xo;4;>nMCKj(vzli#&C z-y4JK%U0iP^zHG8*S9ZzcMte4-ktE*#Qve6)o*!y;oS|&f7!METYaBn_g65a@1uY} z-&Rpx_J*MUQt%oRPsqO3e}=y%dCoWfWylpPFMI1^cLT6Kn3jLlS$R+$wI6N0w2!nu z)ApmjKYt?o((YrcU*ChV-`msoTr7Y31i#N81D^&z1&2@cpI;01yvNV=Jv9683hciV zu>UT=e(&FY&p*w-cmId^*O$BuHF?s%+pzJ3{@uk+fuBDPsqp#M^=VlCW{; zzwfB?oBnhCev-}|{9M1Eqw(8*uHSz#_7{TnKlXEL{|MHP0b7D)U^#dhI2@b`P6rjw4& zWv@_ut4h8vex%tCz*ZHvxNqbHJZKD}QBxxACXR`=dVV4Z(xJ zBfu8m?9aS>qt87KUX-kFNq~1%fPWq9H-dMAlfkLrbnq###S(9S30VH6pPvq1@l~>a z9T)rc%f48VzYsZ_&o1ysfH#0W^OQd$#ZPN*0{oZ2H^F~_mVYO4p0L!%(;0jh-12L` zz7u!=cq3@_O-0{s$p1BkpJvDEABVn4;631Ea60%X_%yiwH$ILt!7<>yV7+hs=hogX zDRP!yy}j2{3)J7&+ll#q|GwXf8T;?w_w)Nj_fsoor=;ZH{rCM2_|E%tBRB?}05<*J ze|{Ng{gwQ|@Y{l&z%#(JKr5fG+=a;Z0WSm7{0sSUL7wu`e@5BwVZ9o*`5Z=pVD?Md!E_~Pvh zzXjL^JOw-hwECpyQ}l^$929!_R5iK2X+8Y0qriZyi?(w z5#URY<@F5kwceM{F9L@I_>)Z zDepbf^p(MH2c86;3|e{FPm?<}Am5MmpKF2ApC1w)~2p{Qf;) zxyP>Hm7wL9%=arBfO~?6f*rt9K`Sr0tqkuh=EJ}nzzXm#(CU+(hK4sQz!y(`i}yi* zuee(9xp=<>_~MoExp;yn*n=J3GJ^PjwLQvH;)K zNxa(we62sl=kvjT1^D8pYlPIkoGHo&)f#XC5_*L73pr7`C}>M!Iy zBtMsP_6GPC_+H@rg?L{C_+5YY=lUG*La;w*v-SY%Q^0B969N9WtS<+D2dn+!?bZPI z2M+?ffL+0J!M@;F(E4ZX)rPkn*Z`EhLiMdG`9}DWW#-jH*@M3twjod8( z`LB`t4qOh_gWmw$F(5yMIzI-^0_TGZz)!)&;4;w0)093_26h7ng13OTgH~R09SmmCEwhizV*D&;pcTj*Y-nH<>Ya8H;r@V>RBfwXl z9zwr(R|ojwJq};INddlis)KmX1^Bj3;(Zk0YrWb#z8;%^TZ6W0;;n6X4Vdo^9ubh2 zoa~5qa)593iq}8DAIWu1=S8UVtn(6*|B7?F<{!Rq)dTkhj|NW!&jY7{HeVn8>Gj-J zvPSl!`@rL?`MKra!1~SLSnv+;UU1trlI5GTel*w;tf=An)4=*QljV-eTsp-t`jyue~n;kFvVn{}2^iDxji(Tcj?y z#Y}cw14)2LfJndvmtit9Nk)>Hab^+{*Ju~_np&}1H>?}A`ZI17Ypbc%;#P~h{%sYP zTHJBRy6`{up7+drbLYFAB+@?gsq+Bu%=?{t?z!ild+zdmGmHi90^9>=>JvTJqrAvX zwaAN{*e!C$TjZr(E1+NGPO`|0+>?+Oxl1haA}4+mx!W!B;-`J_JHga6wOCi4$xXe<13zXY&h~>q;fz~JW?1K8f4;1^&_6gq&IkO&9 zelps55U>g;{xs!Z!}T|Tp9B919JV$4bu-{r!0WbU{&&FF#`0%V|MuH3-we4=fbDtY z=MGSQ)OM_YYv4Fw;W*}J0AB-|_KAD}${he)1~lcrf}UaHS^o&&X28+FaloB`+wH*e zMZkxFrhc>hM3nCZn)1&=&kMk}fs1$K`pySF4m8UT+ll4o0FMDK2AcA39?k2sw}9^f zw_U)zDPID<0l3pKELQ|HWx%U}1v_)U6auFMZRIaQxm%6$ru_Z5{vzmjL0?qPL?j^{J++L8M z4xA741Dk=SKGE}c=o7g!E%G8Kc8lCq7I|sc2wWGr-&*8FZVaxA+;bLrkrTg(+(#C9 z@ly$|i`-U!Gd;tfMebn8i`?E8d6AQT5V>gEv@6S* zy?o3>=C1%Q13nBi<(~ro9B?)8wcS|HTHv00c-I#K|Jkg1^?s*KYzo27C&*Lor`3 z0`6Ywt*;337XdE=UIlDL`AdP1m9U-{fM$P*zJpPI4zLk;EO33-S81uwv`^&3KCvf^ z@`G*fVC7FhJ?+57K=FrZuh?nxqbV=_mM=cmqF#v)TRT>xpWn0ew=MqGxBlB;@4dhW zfM)w&1^+fM4!h5>*e~s$j`(&US89rWaW!!u$;|Ovxj`I0e%C9ua-vB-R zL)7;m^sN9s3LLDyYf#RnFJJp?7b<@~eP5K+mK+`p!f7D}mPlZvw9G`hIMw&-9tX zFN4*$CCZNiZaqYOZ@~{XefipFD`#u3*?+sh?!ACt8|^UV*TP?;DmgB;2DSnh0Z#^+ zUNJHV|DVE#CuY42;` zR|DSzegga)xbK0irvw-PhJdZWIPfxHzWTm_{;`lB50v@_t8aak-x+q~tKa4?Tf0nu z&n5Xj93 z9u1WG2CHvuo8GbngDC@8Pv^{2h>uY`aeY9&5P}ZC4yFOFjK-a@t z!mcquSsxEppDDk}vL63Z*5yWl3lHV__Y&ZBz+VFmac8jdrrz73cRBFS!1sY)0f$$y zU1t4P;=0)RZT00VZ`LnUrOp9Q_Wz;(b8Q@s1* z7+nAH0Oc!NS{3CEB@EPEnz;}RO1BXSpy*mJR0Zs-^1s)3w15XE@4g4kW*T6e~%YhF7&G`Gy z-|YXP`rGv9ck#*oG~=@u@wWsh@%o+r*k88sZTjbbCBL;JP7*+gr~fs7nC<;#zT`J!XCDYkm1K)|YFI z_2&An&(t^2_3&R|*Q-ET9}iZaDc=Wu=6d`w@TUAX=>Pf?cphE|Yz5lnw;Q0m=s6qm z^A~YFtw2-1$ejoIi-1djRVY^ttOM2qMQ;?JPXu-W&H65b-v0xdFhQ0{KvZ-MuTKBGZWf4*`LSjzuD@UH`V zVej=oqdI3}@Y@0VfG=9)MQ%SsZkhrW`875|0%#-jdq*zow$BF@CU%*QI5||fqw)(3XH}0dJk}MoIl^0 zWPBPpA;q6}0S>hO)v!bK_oJRT>XG{L>6iA{^bNH9S+M77;0?fAfwu$A_6@Y$?@_)V z_&CsPe?EI{cKvpU`lSAw;QxH}+u9-iH~sT2?D_^M@pd@k>d_-ml;GV8asbD;h=^_l&2BHCf*kGY5^ z8Q0=h$shM1f0+7z27R{xZv);1yccNJSA+Uy0PFuv_22(*u3z%+6R77I;Pb$jfUf{e z{|(mPBL6k~Rebn&EbOrDl;I_~|5h(iKw2U{Ko@LM{diH?6{eVTl z1AvDBrJfHh_1y!#e*%7LtRu|!{snTTf2-lwb5UOW`5M+CZ(G(Q&-|P8y#&3V1HS~C z?Xk&8`v%({(YMN|cYW*Ic!>TUY3n zZ>g^z<^KkJbv^0((-8HEJwq-3_8{#S|4F^3AI$Ny2zkcLr=`dP=b#^d3w#{-0#Ne8 z2l#C2@3H8A2>cU3sn66uSba}_OMNe){952w>q+0ML)0hs47L0w=*NNjSNtdSntm|* zqoS7Q)kA;}13v@ilV6=j-jC}i0Na5-0Gj&una1`M0ZV`<0As*O(^+mw9phcVeEP~! z{$Svtz#3o!(5&xw;2#DKwf=$DcdJp~bNKura2vFLJD}KOw%^vC>!9aj;7I5hY%F? ze*tiJU?p%0a2D`z;1R$uFb+HkcqZ^H;Q7Eyfop)D0-eQd$7aAWz_Gvyz)8Tpf%^gP z0h<15MLWeGL$!A~?0f+Ds@QE*xES@F4*UV|$3R2exgEUpkLX?B{+R*)oD00w;;;K* z&kEpUz$bvF{ez7cn;o|Pdk}U$415mw3h-6nxGs*LNx%ib6tEk3Ht;IowZJ~$J-~;6 z4+9?u{tdVq_!01*z;(dk-E7ZjU@Nd4*aJKV_*38#;AOyNz?*Y4~HP z_7X&H6q?eP06|X+O}E-y6L2kLX?B{&^Voj)0#EE&i&2J%<9P0&9V${ez7c zn;o|PdkFLX<|}V2C-s~4Nx#m3zh?p$ z0FMWbME%n5U*Ypm^#!5VES~^>8t~FV)-UB353&69gRJjP$bSIb1bz{Jne7w#KSF*5 z@X-O5x0RFn&HA>j=kdDLEXM7C4ZucV6R;ULY5~h{51a(t2RIpcFz~u#S^gQ|YT!G- ze*(V&#*SzC1n>;tkANQmKLw8Tv;0=Txxo3r5U>?^8}LrxAAu`?qZhKiZGaPjdjMm= z1n>;tkAP1Ap9HP~z5(1X!1{}T)xbL71;Ae5wZLBi-vh1z4sT+8n*nD58-RXb5O_22 zR^S7`hkcBYr_25jHmI4r@ercz&XIoBg7% z2=$8HM;dlqVzFP!NxP+-v|Gvz)SeAp-;MBt*`C#w`1lRv`+*MvR{+g;u*tn=k>4Hp zX%cW>V7`1-KAYpY1o6E9cqiH+abwyy)cO{|u6+7`0J*b)7Xp6{yc=k<-?Vo_*SBJj z?RgIJtAK9+{{b}HZw#O%$RUw0WSoKz4`3f(DhwC$oBjn`qL)&cZ+;Jznl7ZLfjMpcLTl& zw9W57M0_T)rKA+!B{eOm@mB43!mmJRVB>S7NW&d&p z)?L2_4pjf^sK?w7ndL=pHRL}4eh%Coc8b0E?Ag%u?K#NyltaD>SOc66H2rClYq!Yf z^Si14dgxgOycrms%kd=p{k^eoH}}h9Lo9a?aG?6{MLniIv%JXlLw*JDFTf9gVsAcs zHgtXK2HBpi&`;xlI|6qBn*OxO)mr59`Q6liD)jUKe+Zn`$Z=vjFFFVD^*-{F^y5JF z{|xom^tVI5sZYvXit<+jZv?IYiv9WQ+tBqrKgjmH3Hdd^Pk^5TO@G?tc0&J~^7;I3 z%Fl=bWjk+NjsBNB6}03loBlrOMFSWILa>uo({YkDE8;GZ$sC2 z>mb{6ALJhfJ`Vf~(CmMk+@}`#e113e?}s=l0+s?l1KQ53r{mmN;_6&WeA)C@=h43p z^qcldxfv)w2Y4iKF;MK!XWxdd@2o+#=Mu;-1zrcd5or3;CiiEHd_KRM`Zt-+d1@qZ zOW+eg+x?Ck(Eqm~u3oUjmref;dGw!ai7zQvfbx3+_Xo}aiv9WQ+tBs-2icw|1Q`pohow-WNt1788I1B$)*?Ag%uje_3?+Mb;uKMA-m zaDSlbPn+C)i+n!6oBA(+o?hU^z$1?0cq&939R@U?M>rJc?{dyPQ2p1U9#fxLUgVZR z{#M}Kz~_NtZ$5iAbbbFAWP3h?yo3JQ7&roG`qL)2pG7{O-%b5t=xGJE0rxtZ@t9US}M`@jTGyy(EvC_DKCdf*sA! z+Xg%l*abAp{{-c(0^T&l_5`5++qTDM&l9lgsSU)wOALSg9-lwN^L#S~>5mtV<9OH@ zdB)b?;-7r=e*!xO+8_P@ruw&q-kpJm0Kcn`N8+uB8#8{S|K<$RUlM;({y3EXDez81 zpP3JAYoaKnffMx&-eVXt-RUZ2IxBucnWZ!?X&5dKSX`! z46^>8L;f+~yGD7_e^H{aN5&E%GAwm?8H%KEDUtXqC5rrJU3w zaywh(O}!#_phdo6XI|IH^W=i^{{dDt^Yvk^jH7{1M)>n8p#1*kntu+{4Y~X)#@CbPsoek)Nxw9_z_N@CqL3zc8Zt$W{$Jei{IQS@Z`5}dhhg--_q&x znJ?$zs+}X-;dblTCG&OD}#KC+^8_>vVbY zW1SvPemiHiC%?Tj?i;Uq$5AtfyPK-t4|m2p3pe-TCpi7vdht8t=upIPXGaUalZD^e z!tY|?3oQJu7Jgz5zjh4$daCo`I`e`W#~V4B_}Lx;`+_fel?iFdY2a5N-d>0N_23&I ze=hhB!QXTj6D{C(rizC-6Pz_;+0P@v7Zb1S8S@(^=72v6{6g@DfEtk{~q+L1i$QVCN2cO5rvbor(!u1XONtF`G_CpiXX9GB|z1#rG`D-(6j1Q zF0cHeUcUmr{2u=N0)1Am55V{Sjz5bZzE90m_PheVm@hlWgCFyICQyxYG5C+bZwdJa zh*x$lH0*p4^4~x{2>DGm=6VD7F|h*tq2O1&#zcftqk8#?SNa|3AI-GW0lwF$_YCk2 z27f8|xWV5p`i=N`2mBh0U+I^S7HsEg24^_=Rr}Mhe|zx#244hzmBG&fztZqq z6ZjVl`IAMDA%8RY27|v3e3ijJrFqJ?qq#x77)PUMK345oY1F$X_#%Tp6#P;{|54!k z4L%CK&*0Ak-)r#Kg6}c-2f(i}>`{TF$B`kwE%7R@8s6f#sYO4wgJ1eC^S^)}9s^(X zem1`+EfJKSRUa_l1Ni{>g-9f)fxlGbKVtb&$S3cEU-Jp`*D^TMDBhL+rJrW=mw|8i zjQJGwKMj86=h^awTdK`DEB|Cud+KKQCHv-#J+uK~Xr z?cMErs$Xavjbg{QaxrHz@!Fr?F!3PzqA1-?^Q-T zjG(2J;(H8!C-4gmz65;S;OoFQ82oXXr*VY*Fp14^9wA=0Yg@MS@8kJG#VEFCw4rA< z_yU6ugO3~WdR<#zBOM+60hWYAYTdjw;$s8LRoNoSvVsUiC5IFEqe8$80zc?Eoh!G8+A z20RUO{n~;I9!Bf@Sq8r=_#?nm+R?9a@W&hcOz_PHzYu&BJPl|4N`dbNPia%X&IaFO z@K=C8%i#OK|HR-Q1iu74O)L8KJowAOiyz(sf1Sa93H}y?{~mRy^4o8~({!v~yMVtJ zysQU`G(W*9z<4Que6{AsI|Z2UiohQa-r1THPXXfd7UI3u=T{N0$ID}^z>Mdr@yKt8 z=M@$`%b{oV6W)6ICuHk+&7$XN=xJEVdT>DCd`P?+U(0r4Jut_SaaXltw*FCLz1!;$ zugCjS7CWI|#_ygMJ>#IqdDdG`)h^lg)LQhELr>N7-g^2Avh^Hq(K82ndS3L_Q#CPL zPq#(S3DDF3lDD3IwLzel_~)ka?d4f?W)r9qn%5Q^Nrb> z&uy=2px5|apykIqM;ZH(lZbab&RZ^k{H2Ec{oq>-{(10|4E{s#XB+&4?Uf&L&sFx+ z{CKC!kgo@@Nt8`M)SGnHa9_j8RV5$)ay6k8w@?qf-f@oHQ=iZeoH#~ z(ff3R|33IigFh7fQiEThdHTmVM~Xwfz>xnb_+Ep*pLm+Gb6!soPfMVj*C$$@_7UfE zT2d`*`r_e#Cz#^)jC}kehKO=`hx4d3Po?Q)O)vu zf5@W$WsCf~TAubPA8@@rm^b&JBL?M%rB^UNgTblMd~Umrv+y@t`1>sU^O~p4$EjT5 z0#2jOR&+$@)xUdL_-Vv@_1BSFp4PoJ+|W<4;5gT!=U0$lb#V6j^9hUo*Dd^K7Jg$o zK=ZP5jD_Ewc-1c}m$HBEL023CzQ2y`JP7^RYSFV;%jfpvxfcF%i=Lac{FY8U#`au* zh4rR%u&M0qf0g+r2B(a8ul7#W^11dLPW(jDBX?L1gUET%KYAB#XbAjmTK{;*%zMir zU!)Em>Gcuf>Sge~81J&~{g`+e`%tZ6;?Cao?@zpHZ+t)2ABO&V@GEy@o|bd^71KOE zxZpgC{-0a;{}cV|*uipM@eKIhwaizdj<+=Lst|9#f&8i-mY23qprdouuBzjhFT=(r zp!r-qXF-0=SooR2x!ofFvW5R#^jyjHO8yyJpzO(gP0~E&^I=?}>?3A^kN=YO`~gK< ziT8@bPRJMS!Fnh?>emwR1;_(3?)o*)GVXt0)jZ{~%d+kNf_SfbH{aFLF5xV! zb3gXH$O$6ZAtDc6Y@SEFmz@#F$FE}t$oTr9=G`sj_rI~|dC5JMHdmf4PO9LA>h6-fLKooC{q{`v~!gyLBxVJ!fb=Zb^QBnT5Xt z^%lL(^=^!!FB0!n@7Iu*CmZ&F{H3%`_LAR`1ibpO#KPAQukuyj(QMDn49-QwYyaTD z=4RA;m*(-o1+QB4zh{x(bWhg53gbxPst|lX)=?u+$1KgeD#Y6;@m}pc4SF0S&M&v< zxexMvh%2$@C5!y0kZ*vz#LwtS>`!@e{u}}QCtCEMLA+N# zo^O%AQtQuc*XLz z>zD&oED zoGV(BKcaUD`$5`%nwHP4_d?=D#(njAi~K#rdyUfa833vLPd5cr-^><2pj)vwbuj}I>RsmL4SYnes<0pdry%FEklE%I+`p7LP@ z+w(UDXQWTHH}_R*;afCM;|1eF^6I(ZdoVvvgvzy+_1M)G{r6hW`B4#3Az?^w;}wyPBKtFR9L6-16AepfnY?#FX_G`;Fq8}VL#K1u7@Ea!R19_Tmo z?adZFcSC*+&J*aPemyLDkRPZf{dx_2zv1VPG!G#cY+d5rzxxpH)vg1zJmu}n*`Ldy zs}X!rDf?fZ4>{GM|27N%w1t1y!jCEC{_QdLYn8;SyySe!cFOwUaL6wOe-HA~$;219 z{335J6#bL9U8my0-I^Dv3_cHe^Ze&s@C~R}`q3$4`<*w~5IpYSOa^bxv-61e>X&9M zpRq&U^;r0yTJ*HieTOkp*o8Ndyz=LoBiT+l_gJCzlb>-;br8xt2flY1%Ri3+^9A^- zSD2T1wxAq-z&=-Os0H7LI3Ef9M{C|?Al@b*Z=MgFNxYZeu7Lc?iQKiC6xVC)WSK#hlwA-;4Ij`uTC<#Rhk) z-`4VOhTne!J$=`(Vp+FLpaV%SJ#&cPI#-PoCEm+#KeEXGQuDMPD9X+Qk6QHn&7$W^ z=;<55dX~brv6I=K3*k>`iw}GeHahA#TJ@Swyz+C=3ry64zX$UDJxqw6r!~)I-T%Hz zyq6!oAYRJ4ndADYMf2xJQgm^DIZzNv% zLB6rj#cp+`9H`{!Ifp$E_^4_c@yZ_OBDUvi1mXqY7Y<_u5}&`)dUEZ&SIg(}PgwYO zEPB>i_)(N_y!^Q@@m_wYCSJ9x7xrHP)7rqV#5_9z{7K*&kRQ6hU#I!pcKwccuX-P` z$iHmiKh`|O!w&4{uTa(4gT3{CpLnnFTVdf3xA0L5f2M`MNb@wljP=zu;CrzSl=aC2 z;76+m+UZp$6Z0Y5FI68gzZ~(oukf!ke;fQTlXx#b9|QS?xPL0K(Mi0D|Aoh}o{Jfr z2Q7M@(L9X{-0w!U&MN3P?cDNE)-T^6lKJsa;=SxVig*==al=0+gLn2~2Q(oOTmpWT zkst2XyjYjPzgqbBMb8-4zY+A0ukyBYZ{l?xxPcw^L-fmGn$OfH?-p42pIG=CEquS` zDgWSqo>(*9(XW>*@?Tl_u~XRoHJHbDM7+%+-m71ZweTsehi!2Gdya*_Uh}!@qC3H_ z+L9ePcNlAXns_gJUV;1?^t;6WraAxx;#EH`#RE|HplFrmbM*u){7Dx6 zJmM$js&Q_y$UkD?->~p&iI=hLu4a5Sx66F4pdNfL=HKt3P@Cr68uAYXv|Bf0bz z;#J;=Kgk{S8pg{uHQs*SpLpfx9<1LW?#$GDZoNU`m40)b&;>n9jeX5E;1?QvKk;7i z^A`*MlGc-J&nLtyd*qvsuVVw>Qp@c!_b(@FK3C6;7XDG_G3VJAi1)Jp4GaGv^en~t zR?Zp5(1DEfo!hEu#Cye0EAa(xLA?K=)`%OolUA0O{lc%cJe0cNLFh5}U;hB#H5;g4yq zvB>X`XnCpMA1BfHVt;ue91Mmc{_p~#sr<3T z7ihd~jG@vazEn)g2Ev_g7c1|rE!ePkN{ zDGbJ<$y7WMix*BVQS#Dn4S_^5JSU!t#G-+=nc?omu|z1Dc2z?IH2C~&)JC_KQmv)j zRqK>Q3&lWNxGvfmXp4kMKGN3K<}Oq2F4NFmJ*^`eR5kmj1(K<1io{ICRBu+%$-0q~ zrCTw$vdZMN)K}!w6{bgptJLfmnVYVTL!v_00k4MJ5`u&r@~2XK1G=>NO^_)o#=?BBJHX$MFOm?u8%~+(_)EC z#U=h!GE%E-Qbj`%%4VJ6M3OpeKn0cJbU|%w$WM{cp=~aPR+S2ZZB#SGw?8Fq)+R$D zt_M=Mi^iTS9j3cZiTaAUCZ#7D(+uj?szD+7G)LOPDmy8$5@f=7cXNU$Kc&JzTQc6( zk@Ux!n<=MhT@-by9UKuI(TMWCzJT6HrV=!4{iy)w9#@i61J|uWwRRrmHj0Z_LR}Ca zHE~kQzNk{8s#uju1fnfmDXfta=?kT3@}juPt}#mO&4G@#l;1B|+3yc^gjN2E>JChM zO~<$nT*=SO_=}Z=WiUdeOrOsQ)DK`tZVIgI}IdAYviFy^*V1Wk}TrG%Ha?QE4TZiX~KR z(li^2bu_hw=gw?Ql`~%#Y7EqcYHL-SOC*tbm85CYT`WSyB3!IolF49Q<(o|L=}&gV zU3qGGKzLesmyxh=NXbbUEObntpBl(k+eB|C`6k+Yf;v3BM2WGduW z8JOv`Jvz$JSA#dEOc_Hf+X$^YD6je>X}#jVA*(JiROc+Nhu$?lr8*dE4JX3UVAfJf zd7~VIdC=bQ>8=T@#Gf_$Yo$YuPVM4Idw@0xIo=(5%xmwm)*Qzcr`KRPtG60jA*8!l ztsL9vuWSA1D=Jd0m1&Ka(KJmdvIN;i;u9G`;*&x;kkPFRV9vJ`a4-0^i-+8AKAJfw zMNt3;(~YBcA%tZ`rluf@7h`3hSTe9V(xMygn#4lk&PXt86`^E9fmFb+7X~sFYc|rZ z7IEJu`0S0Sl@`Ri1Bn*3FwzUgO3cKAj`PVGclj4bXcybk5l$v0gQ|h$D9h}Zxx>HnqEI=>Xdp~M0GUz>)hLt!eBhE07zS(Lp3(_;ZWk-mhLb(+rFm`GO0)S`8yZKFw&ItZ)wH0v5; z^%)Jan$;Q*jHH*>RN16^@TVo2kT>zrbsLjjnG~vTTh%$G`*B0!pT@$ zhdTH1x~ikf^8&|<*CkR$hec}SWm`apS&Pt+V1nYcqq(^-==lAIRnPU;*EP=b`<)Oi z^I9TFwGvOY(};^j)%-_$5PwTstcez_A=;QE{eg}yCm3s|)2&oER9Ie8M#qOWHOME(A0bEnLz_1Dg>AjNhr)o%c`t14s+8IzVqh_w-Dl&U=TcnBOySTJ5oTAgymf5k? zv{*+pls=fMb(d&NO>PQ={Q7J-oA(u|3uO)LdbuPQ8C1E*xbNn?& z&z>@?uA2NcZ&o$@oF(ilBcIsnB-i_NO7Q2HLzjwU9Vt3B!bwe*)=K5GAf0i#TcC=B zV)|$|N8Rk=Ky$`!+V~=_=S-W{SUb-@Z_3pATEAP_?8a1OB$o6y1(M;4=0K#aBN5K( zQJ24pix2}k;fr(B?wV3rRn_$Rx~bJi9px`6EOpX%G1Ot_w211blfsEEusniX#M&&{;kS59%4iUiuKWwTgZJU>oL z_^`>>W~^6kPB++BN-dt7-XPEAwopr3QdyPHovF@t8&kCRn%hLDq+xYhnp6iTG@@vx zr#uy)y=qef#Z+ZlB&rUHRX~u}=QjGYdo~!3w1M##7Z&T=A#gqtD-<`XbPtq_^}(6=_VC2jcNCWjKlgBdk3%`bx68LffJCv+Dj`T`Jt(sLyyQ z2MJ7M4Kzv4jYYWU&1U*4 ztM&b(DQzvW1ns5TX9eO)vZ32QFVPVuo5&qXW7^N{_0)YTSTq%(T-K$BNJF;@`a1QQ zgPtVNsl}D)aeE}yF1dCktj2a`K@5o2< z)J-FQ1KsL?-6hHJi88P=iKNkAH_LR;w9d|2iax5H;*YSDu%_7J%u=*!ULw*$>l-B% zRvT_rYXz?Pil+xUlF4d1U7XgO$}&`Wj61G^`fX}B72tXrlhp8VobFII;ub+7Oh@pv zY@k(CZT6^>#_H%Gg=TxoXU9}Pu;Q}$w5&<`e09m$9c^t>)SALH$Rq6qJ5_PYX|$-( zw-e|+?t78hxD`zcfUH*gkhfYXTe#~`Yi^{^YG17kGISGX#y}%Q93O^AMCq}VPKqj< zE8lSn@p(ksKw=Cjg%TX?S5mDB+FhkrD4p3(RwirLO>PK;rX=(#Co@87XOpp|bP!NV zIh{n)L#NuO&X{%P*=lLfGn*GUGM?xRfDA}CMtX(8ippnq)xam}Eax$E%(MLYD zTtMP&GIa_9GCj)SFk}feN6@84I!sY_4t3|!7^aw0F{X}?a>A&xArWh#WwsLbxa?Dv zX8K2;y=P4Im}Mz57x`J2v{b36Q|FFq(xR|dH%rpD@M(P&>_ZJmf^UfTu#c>ZNaIOAN(_DwN6B}n%QQD7t>pvqbawj z9F1ye39i>E+0z@%9dzF>o1?5qjyy7up!>5K=9?urw_z0iKVS%Lp&5z1rNuO$U z!OI>qeGVk9C2MA;iaK@gKdRPP={bipBsUminVQU#qxQ63sMEs3pI+-`Ih?HJ5m8C^ zc$0DRW^JTd9Zjf+E{#N+W9VE&rKHftq#E@!ebVR))CG-XM#ati<*T5m#OBVGW>xp5 z*Cln0$;MP^JP=9L(fTh^OGBDcXSj{RkWMLeE~o2l6ul&w&hB)YFiRFabPM)GTD*}_ z`aW2W6)HCMEXVP$_e@z!Z6jaMbUK^%eV9&ps#MO6GO%k zarV=hkB-KuExPk~vR0<1?|UK@`bsjfPX`gTv*~QUCE7tFze~-AQSBSQx|;-qFq}mvRmpga76G0k9_dy!3%=Idg-moIHRjZ*x)HhM z2tD19M_fTHy`1fHm7FR9QA+KhZl6>P#dLbIZQdH*hh(gIXbLTq(0c`CI#txd)UV) zS0fovzvT{@$#bF-QkfN%+UsWRNFz~t9!?!tSvIQqN7TGnO@!_!b3&o+38ZuysL_uM zsCMR>mYoY-)?uS4y{GaPVsu_BEuLCqZ6Vc(>O@azc5PP8s1fb1$wo|wo!a6rTa0yzfrY%vGtax!PAlaX0`T1cKEm1VTPNR?!j?&?xc z@=zky+a*pmw1iE>x=GA?c_F(pZ1=G&M~A6(JXU1XS{0x)k7Ye%r{ke0GbBlkdkcfn zqX{2WcUlHX>e^T!W)W(;V=e2`PEmTM;SKimpEpor9BLd0|S*e!$RJ&haQu3Jp z)uNOxW3O69zMMvzRdoQY?u)3!W7_u23a}xVSpm|dV-6y` z56;4=NRU0`Ul3|*$T>04>pR!2jhvZC<+Ol0f+6K93UmSUWtl;E zDP9@D5sHRaDF4$}C74WW4yt2rwQki;(1-G_v0F}CCwgW_J+U=6Mk8Dg`+=P)@zDUA zC);SMwSsRRc4g&NTk0vE7t7of(3Q_S!i;uG6^;I6G)_+*r)Zt8?j@?&kn}>`s!IH; z8B<4^q;I}MqM{An!)DG$4%YkGS%EITBAGxMCuan-q!ag$ zn!hAtD>tfV;j-GGiqZv62}UqAmiYOP63VgOmBiC|pBI;zWLCPkHGq!rxz;Z})f+0p zYv|OvHj*)b;`gvlIuPU=+0|`2(^N{?TGQ5K5mI!1JZeZISF<{t4=eTH@+nrn`S9s3@Zu zpe9U*4s;4hi)MAyhqLd@&I~ss(+7^E2FU}tUS@n{7p-T~i!c;aPyKuBJ4*Fv%D7f1 znVfJ?x1IDo&)jWsIjt|!Hv=+j_ewe{Q+p^ZS7pTWnGz-tj+1u(%xG+JRPLafb(hXt z9EoDMW8F-Nx>Z3-KzCl$r{w9iPgw4wxQ+inRJ5qPCJ&-LzYx(+suW%&f50jZrP3I!+c>nM?<#s2M)< z6h!vaPK$^@?jje&P-IG8i!QA@^m^ymr%d+z?sY6 z5|VY34&`KPgw`GIbRMCXawN6@v?{KNv{%OxdYi7VNM_gPYDRcT_)g|KP*d9D?#vL< z<-h&@t2BH6<=T45)(RtDr&#y_H?GK=q0X!pt2?Y|@6&@c)cSdKbZnRV1cn(k%7vLU zuLlx6c^^(BAegxo&l#8Rq;-%lqv{?|dYWs??t;uM-<xoGTs__rqUY3jaihK>nBeDdDe{_mt(hCC`d+KLXE9g#!99G{)?Ym~qn>R{ zA8#wCYR#o||5C5Z^~RIF?5ghSni)_To9t-!$Ym|zR6G*OF^39d768-`z zB!k^|N2sUNt~)~Ar5}b;_g46ED1Q^pP)T)*Q-y^``!b6)qkS2xJm+vZBj9ycsfrYg z$hnbVYc)M=8Aybu#$s)%UUZw@@S)rE5s0hf%!#cuvv@)>RXdAnPNwNm%PG~ByY;e7 zE&Q^_YrG>Rw~ky%nxD|9(9eumhH3-NVZ7T>i_gp%x&&f{`aXLoedhyD_~-$s<5oT*FCsB|G`3egvGoS4}X=I)Qn+hVarw6&&1F;a$6o63{}9#WY^ zt_KtQY)+7}BYl}L6CBgS(QqOXq^{KWzvz zmF{@=DriU#CH(6R1|5K^NA=wM*ZEO;geSNt9HRbLO_U^{HVl~dvCPvEY?~2XOGw19 z>0Y1O>8B&ibUmH-$D_I(i-3APtZB&cql`Esq5v~)U}4#r$@2q!L~pRu6Rqj= zVLv4XnkS6VkX}y@0D6#%4uA9(g%5l@ALJ_2Pjb7(B3TDRSY4^pUU|w$Jz^lY_9P=n z4=R7F2`4?VWbP)ZnnE4!n$i``r7WI(TUMPC=+Tt*IJq&L>gLgn`t%nU=u!4IdVFPG zfW9@YoFf}CvWRwK;i&q-27c^|++FKB{FD zFWIh_Kth+Qg`4%X$H-3m>r;}y>flw$_o#alpXnrZtp7&^Fsi`J9rtjTmJ%ZdI zOQKSmFy+30zSpDUBr_8h2a>hvp-ZY&M`aq5(~xgHz36-7xMi%5u+n!>>6ssSwttG+ z?(#Y-?H&CTxW1|DZ)vBWd(q2x^_8N`*4pzK-L!&S_v#&|IeF+=MrFM06HJw!}HEfld}YERF4QELtCFr&}I!!-{@QiJorfdmz+`Os~`w=>$$A!uyAKToF=KO+SxR zO(!jM3(2)M$viJi&zGtnt!UT3-=u!zN`HBW&bcV>({UdEbeH}zra$YRooo23Cs%3o zX9CspAvX7Hf98LfKLO zY>@i{eb1e~)YcYI1@JE3mU0Rssv8UGZD9)?trgP!X!=(_gj1M^>F4ze!>#xtU2BMx z$S0~Q7{n8>>c@C!Hq^@aJ9ex?-k%Vpf=Zb(f%Ix~1MQI@DT$?2?R?oOr0uUmzhTg> zzh_q%3O9AMkP`K4JjC-yb#yE515HhdaHo7yKS(6+$$9dYer8DCLX*dj$qk;`fr^Zv zzxX*lrxI@jcQaJV@9POo|GkX!*}8QxDZdbJ1TWr%C5NNHNGS-cB;11jO8K?Q7s)7yweKZz&?Cb_A6J2{h%FHow_Fa`lK9iEq<6@>X-7;{wT^%g~Da0@EgJ2 zo%ypWugaL^yNFXh*_8h3*V1g1-&F;xZI$;5ll0eJzF?_h>9-@7YH;G)GRnX58*ZfWvM_DAP(`s^-We+ictd?Vd4T+polS4R1wE4jR2+rHTqir<92!zh0R z{{MNw-|i@qjAs205xo`tmG~Sdzsvd#+i_HO@pSx&9Z%BrQLgfFl#ipl$cY;HEciFN zp!_HGccFY&p7NsaHKTkF%J-mrs|W%MjL#p?XVpbg|7w(9jq>r9Az2ZCNj6t9l8JMR{g3|2~WQ7pkP|dPzB< zcC(Z(gCFkdm0u?35@z`#OZm5d!96^yU25_!e~6`g#YlGC`ThU8{9!0>`tOeqbNLtW z|GA46v0re$rT)vm$BFxxJ24?cfs_+{3oYe8`-56pIL?~4vrA-u;(p{v6OD|kZ{A72 ziPQh*pkBMt- Date: Thu, 30 Jan 2020 17:45:05 -0600 Subject: [PATCH 311/336] Delete bridge_opencl.cpython-37m-x86_64-linux-gnu.so --- ...dge_opencl.cpython-37m-x86_64-linux-gnu.so | Bin 1983408 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100755 build/lib.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_opencl.cpython-37m-x86_64-linux-gnu.so diff --git a/build/lib.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_opencl.cpython-37m-x86_64-linux-gnu.so b/build/lib.linux-x86_64-3.7/reccdi/src_py/cyth/bridge_opencl.cpython-37m-x86_64-linux-gnu.so deleted file mode 100755 index f5b190e2df02e69ac61cb81fd4023b1a2e8bff78..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1983408 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�lG!<)_R4U)`y7@eMYB%={me(N`aV4)N71-UC5jeH4WFsuAH!Un0c=DM4So=zRd`tM`Kt zUp2r~JX`SlDv{!=McNDV2=Mu8_k&PHU!4XbXQR(o`=B=Ct0_TWokd@LUN@(N8gCFk zm6p&?_d%KV)4w!qKVjNWul)d((ocJS80V*cyzx_kd45V&;->+u@>78Z{WO45ek!P- zpZZb8PX!kA(*R8SslZ%69f>v-&_wamr*I^G8W7ZeDuS+`dV=)RiXXvGTV&ekN4S!V zrh_7L{>@Jf(3&P!{`J~V+d_%>=>iZkrW#-tfN;Xr>*D>ijjnX5f;219erkOTWwVO# z7?cG4wC*R`PmPF$(K%B52b7AR3XpzEp!lf)W)bKcQ;8Hm9iTn1lmMTfu7n2h(@#O< zO!fKcQPgJqbXw3)WlZg=n^V_Pf7(~2HS|^5rhPR>Ll3cX?W?U1p#QV^jr)sHv6 zDlpGisY-k`fK|RK(4emdP|8;Y74%g<%J{0lg1#DnX#N()rUIHMzWOze#8(4? z+E+!;^;J)hzS`(8e07oTJmaecW%%lBu28+Gfyw%W*tNTFfWvU1Y6%q0VfJDe6DhH? znZfu70CSn<`I=TzQ7eg*Ca|9fZW5z+C38Cg^d&=M{rdoSloWe`rG% zh_+t<%~aS58twB6Cc$Q(i?4wIWp@El1fsBtMh3jX6jnA~Q7hpt-N$!9NcuR8F@5|h zZD1eA1H_N>>Br&`&A!zATV30r*9Nd)CO(``AC|to5XjuRK1(?&&QZpR8ylW$aLq@I z!MTtXgTokO@U1k12FC+J1|Kj6r~a40ztG^8A%k(t#y>IG@LYpykG)&>@M&LZgTokO zFact4JRoFnZz4HLwEZuGM+2GLF=Q}CPuJkm(Q4H2oVdOQLV)1 z#O~1c06^jv9}rEWpVVld6T3s3^|cPWb|4D(Xk@^NO`&J;OUB~MAtXK##u$qU5Q|?r zg~c;z0|(=Kh^ED_pTgo-h~_}?2Z+MA!WMI&FomAQvp1uUIZ!k_3X3^VgfX<30|fyx zP<$9~u{%(l50DHLQ;Ft4aX8*$cc55JGzW_3KoouvwwM<@Q|P*Jt+w}SulNQ+(#K(p z>0<(C!eL^fx_@ygKK_l49;T26u$4^l%ts3?@Jf9;_>-N6oT_tQ)E8_E&lShngUT)2K6ga|p6)oycF!GW4|J9t z!p{(AS<$?4c80U8WZt;Qbjw+0m4|Fit;}Q>;7-^9rgz>@|`5v1oq4w|f3Jnx|IJWt-!I z@677CykwyA_h$864p;L~R?p?I^amV%ggJ?w!qxNH$0AmdEvxBr%;u`q^b}SZSr(lf zLx-*etya_PalJhEN3)t&Vy`{QkMNnwhyZa&B zvjx}o^y2zVn22X2K*_R&Uo5a}p%>SEaIRbg;Qo~hy}0hdW$_~6C)`r*G9Q*@0U!^|h?JYV{S(yXaR4p{dev?B&j4{Xq0R{qd=N1jM9$wD$p^MCLm>km z&x;ECPEs0ti|cE2=Paet(uDK}Q9T#eAD}`muKxo<))@WBxV4i2(=4vn!1*zY>&c|? zCkuU#=}LFAQoVpN>K9bV1&oa#LW}EuJns~_xGpen0fVY!0V9A_3m5_oE?@*uY5_w~ z!37LIig$`!To+hy0V4pzogx?41?Dbbe2X>}&_r3lX#6Yg6uGz_5X7A#7uSb^=`CQK z@tYP@(pvLJrD?p8;$?Rv-I?6SDN^>+-5TwD)h%tGHef1q05;`;8euKGPn zwXRivYF%NB(RBy_|Dxeutt*D>yj?$KTU-Fj;`)7mp{ayO^!a51(I<=R9+sgO!1_Z^ z7S~;@#9hkYh&wK>8=)-J2*>ZURXctG0OI&BfDp&`BjX%Dz*LKdZB9Z17uVN-z@LQq z^STd~vbwDads!XBywX1ab8(%9sW8t~L3)fxwYXl%a#Wa)Cc!W-1(9=1BN^t~p%7t? z9a~&n?-mGjiMjW+0Ua=rGcor&)iLI}+D{0`p>yswCzDSQT>u4aQsmrD9G{ z!I<--Ow0)^7;^!bjyZw3F?TK6R6r9Y<{rh7#9Tm7$J{YC-(56(A)*D9^s|V$#g2(7 zU*t*59n#&JU}CPpSopWZT;Bvo#atL;;)DQyoE*`*ieR+epwEu7wa&^eOMCIPoLn;v~RSadI~VB~IEU zO7BXXe5L!qf|DaozF~EYlO4cFoX{{8C*xI|WD%+2Oyc|AAf^qT(h@4{@$vF8C z3K=JJBu-k!$H|}CfD)?J*QRqTKpo@cIuN02lOJ#5L||T=P?f|<0IT9epuso^pj4a) zDi|kzl!+681>+u-Viu;?& z#9wQy9@S8h-Ebj%JDa(`%POI|<(%95_>7NxQATEd37OW^RhX|j8k35#)owWBF~rB~ zD9+!@ubueH=6twPWtc_CbmmU`Wf&jdp)CI}zOtDS?O~af9l#+v<~j4(4Rdnk&gRDs7` z3gS}`_?yY){6yV;?s-LQlzSAla7}+;GQeEdr%|%5zk8hOZQKemHn^^TA3P$8QV}M=G_A#`%Zj~tO`$}i8FTN=mQ+d%6>o)k-?RH5p-Af zJwdMQr&n{V++Mo#)bo9=VdGXXVcF`r<+;v}$$9usQc^C|QduyODJi9_@r7$KA+7_* z-37u+N%7<9xN{9`Dq%VJDxfM!NeN(8N{VRgNT{2V5_VHwL`g~c1V`ey0YUA!BIr77JK? z$f@pg&otC#hRjcb?m4#)0%*T(ju&JSVA2`}7;VFNbQ8QKnr(x`+ecZs_R@{4m|l8u zgE%ks6{fcqLpZmK?nJYU%3(InXPHLTT?4aFx1Boo88{77 zQ?@{fEcu_A3ZG>fl>sss;j;~%hR=r5sQPGK#}uT_ZYWz&gvWuc;5RF?b&$R&RQWy#+FcN6Ga@+VTJ!Fk#nV+aZVlK-M6sFPFRJs@&! z_4({asLlB7iIC4SH6>j)$LF(5qmtHe$-hQZ@mZ!(-JqepSh-&E@7W9$bIHF)bNFl& zgqKF;$J1w-MkO$B$)BoZ$v=QqOa1~4F8K#gYRO+v!6kn`iayIUDuD%;`~xufEYqk2 z<}Ue4+z3vi*X7?&|UKP1i9otxCMN5r|vxCt7^#~mihi9FN`J`m!o2DqQ6ql^6#ygKZw&uCrN^#XZzkM`Be(x7Zs5wa0l zfuOHeXsvzKh~!bE_;yN2${&IBRRYCV4RAk!K3}Cu@zvFOd`-ozl;2lNp+S80FAzCT z_@<;cqBi5JV*)p8mZYb=rkm4L_nA&lk=D>x&u`;^BPoC7b8G<(VCC9Z+qFf-^wqaP zgnZSHH@+$`&sV8Rd^LbozADh5uLe-cR|OUHRX@u3s=$K28h~kE6`1R*zoAV9G*NtY zP&@6b0YUAnBIx?6CrDr24#C_`y7P>$s+7MneD!P%EJD3@>O0SAU+vo-9Zg@|2||3; z01xqWbg>JbjrY}FT2~CKfPm!f)4qCP2PmVjK1zbV+V6Djt45@VBE{!Zg1#z1`YM6q zs|Lu8M1Ef-Qhc>UkC+`W_4oVgN6;X?TJsF}>R#Wt+7Y!GUoBULulCo?scWe}?W@un z`YLVHzB*e&vsk(I)k{#H_-ZMLkgxjj##aUA`6^Y3uLiKnR|OjM)c{KQs-S|t>PH!0 z6Scb@Upsb$OoBthb5 z4RlkfQj4F5!!VWVRw$BX#4yGzBR&RzEF=D|mADIozGcMA&%!C=>iv@-WEt_KMwc@_ z;9ExglxQv^#yUDyp`%B^K)!(~bXV_FyS<<-?g$~VIE*nCUj=|zjDIpNwU=e_Cjg1X ztvhLpV;WtS#RC8mi|2wUtXY=DrqHwaTVwG?2#LjEjIsDd+Q6)t`lqnCb7yVw7!cCO zjZb0mBBI&HkAf&{5w@5a5~k3zcHlT$Kp=CGks)1bvSz0GdU%Mwb@HO_Ib-lNV{jN_3?@Jf&eBTC8jJ4)NXFt9iKfwG zG`g&@_-ePxTdz@&F6JLQSoL!d1rqHvv)$7{g%00BjVT`eu0I~S`Q&@Z^Kw|L- zqG|Dsr?7Y-(X@Cwh{9XSve*>5Zrtz#WAXbCl0FV&jKu_q#qog9$Y%G{*50aZ_}7uG zDUi8$`Ya8PY=#$8u5H;3Zr-ost}kR|pa^4(8xtUI91jS^-6SIE!X?_2Bwbxx^4D@2 zyg6jBe`MRDd9K0ryT73ge#96Y#u$SM5QF0ZA%j0M2ABSq!B#IA{AkEv|H$@)=G8Pk zocg^nxCvyXhr<|SFact4JRoH7B}B4^cZd2Xu7@Ym;1@y$`$x8@zIib>Dt2ngo4SXW z8H2+ZV=w_?a7-(yZcemsUc3_^8QDH3nns_d(e60tn-^E?4Kzo#E+7gUXrw!`F-O!S zHq~&uc;EqT@zoHLE)HXi#RQ1O=~{E8GAzE1HgG1tm1tT#NTU-C+Gp`wMAPC(A6T3b zvN+e=Q}AD@NJ8MZb96#riAo4$ULXijul`hr;k-g>(^vL9>?Y#`A8H`iud`%WcknzPsc^OUM}7dR%JPmU#>Z^^?ngt};R-tx^nB-&XP)5(5KXi#KXoykja z4H^boCHpmFI^VRuj-_6m)0~Gd@lcZeTJW&pg*cRCzm`;)kHh))DEuceJB{oy7vX^b z->frF_XF4d>}DI^1+>iMzp=G(^Ibrcq*eIE0%;XG`OgPuW<>z*&#chNe;!vRmZDy)=)U_loR--RwJwGOF)N5jc^q+Qx|)d`BT{8Mbm|8XvmI_B!AHFZLF81P zp^#kBeE|y1BZ+;pRk<(u?`GXO9k67Jwd;QGpn4|%HR%t9O#Yh&LUN$|$hh2&0MjJ@ zRXq(Is^6?ri8THs5$RrCX%;Kh2^R0OLMB+8b}6211mCRV$Me|+lm7(fC0J0EBv=Hn zD#1da!32u{N+nnbDwts5NAcMPlm7%3Ot1*R@N9$0e*$w8EJmVD1vF6-ELP)45|ILe zc(!rhbyzN9^VfoqH|uOp*Mds=S(INhK=q__r}>gZq#Jd&8ou4^2ROSVBDJ^-Lm-p? z!Wff?^e_PaS=k{}=$`_(_Acd5w?ZMpT)$c8kwBnJ%)O)y*iW@O<_25^b&R>CAVM+c$D5cFm=|+Y zB{3Jks+bdKFy;a%6?1|L#+)BzVoqSemmpn|zTtHCATwgG~ zm}_{o7F5!Vxg#iw`;(a4ue&utv+Wk6KG1QpcDRm{Fvi5mwP%p*kN#4i&cCmxn@62QjAiHnsud1!==6C;#|8WAViAL=+s8VTRw1!5Tpxj^`l zad8r0syI184NQ{VH_D5X_jDhWu)3`YU$HvI$!((nW}MJ4iId;-Mb5%QUmYhOjRA;p z(s3*Z#>spTIdx`wm&5m=(2JADeA8+DBU|yV1mBdK^ ztKvkU!8i$^RGbJZ7$<&|i4%bZ<0JsnaUw7`PA*5A3TUFl$&EOYYg0f_$H_BnzI$!D zJx2>FX~xO$ab?8`lmCwCZZ&+nmh%rI zPRd9Ed>c{)gh&#gUnV{Y(8DqbFo2Cq0(7yG1h_aCal#}(BeWkiB2Jckg4Qt!@Ergo z5pdW9I4%J2jHmlYd~peoj!hAQ&Y~1gx8svBA_3|C}AR?z=DZ@ z0T`l$iGTug69GF-hBwhfNd(Nmk>pba1Q8`n1QbCxpUM+thD!Y@xbg0&J5Q}n;otuj z%|Qy_Afy1szwk#cD^s~dX{1VFgq^kzUN1AdUeGw5Gdn-uTw%!crW#%ysm^uH8pBJ4ImErD@kz3{{=)&sz%b4Ux7kz$bTu|%-7nS3!baHB}rez5x;{! zgB83H8dw0myw2?fF_*6x4Ws?ny19JKXdFOY@6MSHO}ySUogr~7)3U+ljIc@ia#Lw0 zfV|xF0}+~*`SIp*BQWoBa|o*BaudL+%Z)&Tmzw}eU2X&wyxjOv=5iyj;N>O&)0Z28 zxtE*U(53>KD3_a;aU_?UfS|tIIJ3}v_j2^QKn*Nb|#2nqN9hM+i zT3z`iPA0Qvht5XN@VLf0em-X;sB1PdWA~@KCiQ8muSP5Qe_wWXW)IAn39k9kcR9g zMCT*UKt+;|`1y4>JHf13Kc3FXtXYA1`G`~{`G^7RG+0hG!|6jU%D(T}2Y zGEq-p+d+6QatpxVoXnaP*x4W?7cqK0e2gYaE@EpO$tWKX)T6uzx}&@&$Wi`z2RP`025uY6w!Wz3ZsSqx$_h^IhE4x$n1upC;8CsTsCGI!qyAai9Ri{O9U zqH2Jp1p4y2h?JrEn0CF?TLJLBcIYTH$gte$COBwyeQ(QQc?4>sgU*A4-X3&Nc|F!i z-JAi`s9ujHEn%L_JSfBEiTQ`^C)*(Lni0Zup3Kn2sI*2AR_kwpk48aw`G&3F zL5Yl~k!5;3HNeyrI2~Q=M&AI*@$>)yGM+xU90bSHp111p)QEWFY4K4=aXb|%j;FB| zW<0%HThf6QsPR-(ay+F<8BYypDM7yRlt>v*J7{-3M1XHR{T=nlczXJ6aMyI-cp5`X z%y?QDbXS$xey27pcAK>PJmACQ=@S~#ix54YE2@5+cp4DY zsFFgQ4b|Dy`wNlR2 zG5E9ZT*<`XC#|c4f*k!$JMyg6P}UCq8@U|>9eFkg*@a+4N+?qNG$ptTL4b5m0>wQI z&{_qq&pnA0_bk=pcnCxR%@j|qzD9d$Kv;XK2-8zVn7a@>VS4LS z2eWe0~lazHBL+y`)>Gmcn&aG z>*}Q-CC8v_0j__mphM;WtJZ>;jFJiK^c=v5lv1R48YMUf5FqCO1j-!10AsfU=$iu& zDRY1#?T=Xm_~rnALxao#I+nm|H~PGG3~Do8dm=cfN^bXD-5j6Savy@UhVy_Mpis{P zc4+8QR<7p(Yu2M;&I1-~h?@ua@n#+%FmE0}RWc6?5P<1F8n)gja`s^_bQ*KtcNbq!S|oHZb*eN_Zq zU-bm(tG`1qcZ}{l_eNziMB-`95?s_aXcRLhh{$u)`Xh zjxP2|cy-uUCuv<-3i8_t?W>EoKpF3?{w6_Rec*oWt43r$MT%dg1btP2^i=}IR}HYk z{{Vc%drdZx;;X6J3yTQw`D%{`P$zx007TBYK3{zjwHaT1w+vsMt(z0_RcQ@fdqS9gcU+J1sic`kyr41k?dugOb zmosQz_R{l2GkfU-h{9}*4CGsxLeJto#^RK%+Tt+ASlkN$v3SxcEItm9SUl`uZE^l7 zES?XLSo{!(!kJ}RYzjS#^MBWU{1$|ykHZ*a@gKB-`Ox!EVe!gs+Tu?^NFOgeg~f^6 zwZ$Dl6y6lJnAy6f(6hMtAF!C&x8~e=WdFXWZHNX(HgD@hqsK8eAM#nsYb74E@ozS}*zl578CID~{?=W59%QA9 z!x+=W1V|Uh141d>6NqH@9xc0jz0E1hXz&j~gXNY|nan;mT(^%~Ty|3T@eZ17p`I|t z^zp|ugri$LAk@d5p3r^#^MCbm29UXb1x*gTOxf^UgPTYG(FV_ktQZ`|7=t&_3>q8{ z2pN3D7;NijdH?DZiMwEM1&uPhJ!UHhkZZKzxdyk|W(;lxSur?_F$NPL2FC+J1`i~X zUR>qB44y`VYlRHPQUU+OVDlWPrYggvVvJ?0uv={m4r7eL1cfxIi=RJ*#S3Wzr$O6^ zrp2$E!s7Rd=3t!o6fAzDEQ?K{XYq^1;x-Txi^CXWF#%%n`=_vYAV6Yq5z(~x<5O6C z7tyr%0EoiR!WMIEGlibTg%R{ICl$XzNXE7>h8A;DL4b^H-^5$&UOpN;4I8pB-1Gw> zw<9`3u$Cm?{J1A&!U{Yat zuEEU*Cu)NWjKN`yF_-``I35r(c&#xwq$kfc>*zQA|Ef|HRku5T}y}N$ZO1t z)UGA&VZyE@>|v7Em}3)@>{=?~?xmQ1y?GsHS)KCO#Z;i{GP{_j!ZNjsX~+aT2We}~ zQBOvO@`)7w>@};V~1Ro?m1tQ0ur;tq2NQ6R+W6pHEioURNkz%NIMU^_&PmHI(L|AnL5|+MYtbR=fdc?)VVl-*-MnsAKk0>5)C4aKS`iFQyUOlhj!@% zx`$DpB+wlM5lW!*Ordq|@gX?bV~XAFpv!YcxS21n*Ayw;*zE z^7-DksLlA^g+bqwW%!46bG!(W|5hoj;c^je)5}GNHS`!O*ULrS-$KP)F4_Phl#b`e zo8=;bdCNsqCCfzttXeJ-XmGhGfKtmvf(kAd`B7%MNMOO`q5uqD%5*$|xywcS(53>K zD9c5E;z*W@0)l$ENCe&GB2SRZMQ6SZFHO|v#4H!7*H-E2B6^sA@?E zVR(Nz4vOU7CyX((#w7sAtg)R|Qr7+Ds{qOU<)1`zZhodlms4h#|DGoQ0WkF)pm~3J zDTu-@8tL8<^ZwEldKUjki+S@i6+-IfC)6rh%%=_n$jwjpc#GZp%iC!K?=PPxT5f>i zEq3oOza^UYmnrYU;=W;vd4FjN-CKzc8>;I*?g=63<1ohbF#+n{M{71p^pc$S-|4c6 zlzShI{MY--ML^~b@>$A=P>^EL@yo8id3t!WiQe1c*~Kjknl!iaTio zo#I8J=@e=47Q0UIJ<)WEdhf&Hc43R@6sEAI>UUfycG6-7UT+AAQ-m?5j|otLr!^ZT zaZWLgNC`TP{MXyHn}N(d+h?iIDRRvSuuI*p$qUEvFQ;%D#(z0gf}bIhMVWi9R$%VI zcy(0wU?(TwVt8hj=2tbXUQ@T0ZFR@znrdCJ*8*vNo6q5!6$U1itZ(GD%L}MuU|!@gHUn5#x?h=*u#eO*&V0i2*k_R z_BCWERlK5c=lN9}qKdwU;#9PN_(gsdw^GHo8aL9fVj)%Z!)q#}Bfah%5AmD*Dqf+A zN*Y(>SFwpIE=!G5@c_hM_p2!P0aUcnxV3&2L)e{H_KH(+4C2-5`1+y;RrJ%iU49h> zRB=^SoQg9ceuZDfbgG!3aR>b>R!~J&k!Ce^U8?}%cl%Y8LdE!H8n+4@?c>+kcj!VH zRIaysY{%;pURH|Ej;LRI%?$cDfjtZ5_Ck9Be*XDq>Y`~LDs`h}l^@#q zG~1f?2#PB@)oxNM*DbK`M}akMy%bkA#nV>Haj(-j7sBIgOVl0K_GF2=g`T>0Moy`- zwYs{dSgRWnRQHWmS1Rh>_S6kBa!Q?})%7yPT3udH-3hJkkf>{#;x=}skqcTk$`osL z#X)tIUy-I;u}$o|sh+w!j9jqq7MfzMt|X|gwpQ0m)a~)q-DBi}js4gZYjuwX)iu)U z@t1A(8S)RHlj9gINHdCzCeHB!9u2#2S)IH>> zd(+4%brEgd9#gE#x;Wckxu5^wfQ0}*dw&njQJ6dmpq+aHdFw)#AX6x#?>#52Hx(BKx8?_%{oii}H}YZ~uVHQS@HYH`z@tN8Zu-q}qY%Ce%_;mkwjuE>ID{ z{RHY)TxV{wPlDQZ52=oW@XTf#sa~LZbj9YXHJvflys9teZAqw?*Qb{@ zW`|2Hi<7Msa;=-~Zr$+=V;r7UxMhp&*TH%pA3_9|QfEA61VyIikG2|FkIh4mFL)3qBzn0s1oqn%G7|WYu z0)t~>#Wj88XYCOADVZrh>u-~v4W;t4=^gpG=NI|8ukKxxyZ>zYdGJd4DV;1oTUW`? z!&~KN+spE^{d4(w%2K zYS)4wdk~N7l%SH1jhQsoN@{9vtfB;~&Ke4SOZzdvs7Rr#YCAC+R_dMj06MbTt!qH{ zN!$;*`jv}udMgiGmVmMO>v=H8u33Bw&RQl-w`(3k$W|WJ3H91F50V~z4(VFo{0e%q zJp^LI@u@wCEm5UY?TILvX-boZl2xZ`HUwtc3rulso>G`m6$Ob^I%WZsSf$hAE&SrFGHwVb;)pk5TbbY&WIUH1?wv4YCM(0pgbCRADfoen5p$$G8&zg7ml zigdL8-wi;oZV1a`R>Di@nL5s$LlV)}sgSZ7OluDhIfF(wxa%^IoeMUAY>d;G+$RG< z4JV%g`A2r*8AM+krnYX3!>2QF`sp!$L(VCWo*50EmAW2*>g?@`izt~XV5GXtMz>A` z^ZEVP;=vsXyOPnHQjK24*>GO2bU9Y#P&m+I9Kj{ad40uLyg3ntd4`cBjZ8g`>$~&u zd)MH7Pj_J|0`6jiuu@-v4bG?cB`M}6Ft!_}oI7;_lP7maI~zszFTukS*zz7QqFsH7 zdo?<%BUF9Ywa~J@0sEJL8msZoS3$!ryWu2^R_N85_(-!<1x-F22;qqRGu)q6wgvl4 z1F@REKMul^BCn2D+`fjROq6C?O&0Wpil%nUxeAmAPyvA**?EfF(r$FK;@$$z?c|;f zuDGhzq^KJdw6O=zR*l>W_D)a1K6dgMb~~J%b8$9b2j^{%+YNr^bh596myr7%I6t}E z#@(BO+s!VI@gp&cAjC&1wwf$$2u^SNAM_5J(F~l9xm+x;8s{wl?jrj^n0OKR z!-E)#CJC@fb7U4dm)R{BDTM_9E{q3TP4*4~F2lZSit@p=z})NNL{+n~X9F_Q?zs?y zKUgZD$x@Eh?9WW_bM1Yo>g%%j!?M87x3|OpDpWA?Vk$3RRQA zlK7?hH`$|b-MYx-r<2bw&0k{Afb))X`7-M8OY?8FzXpAy%NP5leaXkGqyANPt99z) zwwV|)k6%{fr>nr}-m)F|(=M>yz(;wDi&6d1_?nvle9m4AkLUki|Hc5V<}xPSXK(7Q z289+o(M`@Hwq2t4G%iZ66o{prz)wbLGg;%fpd zUn3Og8G8-@tNsP#ujy6$9-wx)NcU{}L2ucw0PtZDBx8W8?gRT<@NAqGUw`qGD~)bhaCH;uLa^q0(uY>#iurORsh%1l z>^s0J@z|WtId4Qh!AMO{w;u!RX^%YvL!9$YBoCJ`VZR5~$1c0|O!Q{*yhz6tko*b7 z4vYx7fh8d4$HPD!1_PHp9lSY)Z>9ad7p&IK3aqs7(rd2-YYo||V}C+tJKdZfxQcgX zzdr)jZo^jE(*$#g^LPY_jKsVT{t;q43tElHx120zW*@EQFR&9aoJcK7jXN{6~Oq0o-{$H*&}Y(Xge8?DDY7& zbVn9TfX??$DSAuPwgRYQ0H`p@b?gl|^Mbh){NXM}Mr3J6>zuaevw8{bXW-0C1z@fV z5`LS^EVT3ZT1VNO&GsUQyN&{PSImubErB0JuJ3XF8fW6o5%CNG_lr zGEIvF~se3CxFUJG@ZKp_bwmrZ!=?LJz2St1xAQi;Q z?L*K=1=TQ$HO9wtc{PVoCbuXzbCd?24bXrfFx-MhtI{h zH?Z81o?7j4fHt^5(a0|=O@JfIeSr(PXnX>o=UgC*6efA0{c)bgd;GI zn&rQRM~ioK0P^B8(BT%eD&KdK78wQjjDHc)E$CUk)^!@a49G2Ipu;T~UH)JzE%Gej zAD1EGO*&OSO)UR?BQ5eP;8knHH(Hv(FKyV&@_oqU>l7H~4oRkXH?61m34D-pWpYEz4jS;nBNE)B_B)=JPn(52`*#Hf|M_oRp zvt3)Q*3V4^x_qSbVhn|2fXX9MT#Q{~rJaP2Inl%$U<^&QZv=md(PpI;Q8Rqq~E52 z$+gj;_^77)3_TZxPD$cF5e@8u;|pD&&rkxB+dC7^*T4}tE^vWiLq+XViCfj&c@oB~4+CH^>20}liAqYLyIN?>vi=T74z73-ks_^76b z4HdN~6KmDgYP$e=VLTf52&}(qbf4+^5dckgfj&dKtpu=Pw1zQs5kPmiK%b!mCSUG+ zuu50G4WJiXVAxPm+ar1_CfjoA4+HsQJlaYVwV6(pi!`v}X?W&^Pu!`09%GX;Ji6#+ z4LlQ|b6ud%Py&<3I|DJzlB$ORG}#4)4HdO>qI2Nbf?fpV9r0)@P1MeFQgStL8$f$q zpsz>QT@6FmMqeLH^kZMPy$DZM&On&AeFyhB@g zZNh_yqxMmpn`(K>LAI@P7Iugn#|d)3tPThB$re`A!(h2zQ1dX{+pa$NVvNM6p990H zUq!)hsOp1`=(GR%b@C`lz6i2TUv!2I0jjG9c@f}288u0r))|erum-_U`<@&8U>+sO z7Xf%cI^l5`SR-Q;bf0zC&nP)--w{}ACG5H0wo+?cRjWRxnjgG}WrZx-Z&k=W$F^!* zJ>(FI|GEg|h(Z)c>wobRAR|e~>c3wB<)cW~sW67{;lly1Qtb^u#;!t&Fj=qRlSD!@ zu1Rs`B`|kjTIIQYB%*6eZD77=9{V zu&NIjjGn4ItXBhAdEi>;2rjzxIDy6K5$tEX=8-;lWIM8z&}uPeKOD>~#=Jw?EXI6} z+P|R%eRzhBX2@C~jm}>KRyrnFL zEo^%_4sLbtbG{lZw(|##9L=(LHrZ@#o^%F=*+74NDGo&OVoqrNJ?ZvMU0=Y$8H5s z2LsgXCXwXxv7|)yMPQ|qy#}>f@}N1=CX$t)rE|cV=t?Vg$H++poJijQ)?!y$9yCXK zM6ws5OJKWwH(2+((u&Mb7WB@AG1+m_Xex4%a&)zk=>E?MUWhZ;t6EY zIaJs3%&G^;k+&mjaV-@c3jn&w)ge!VBOgbK*XyUjo4~ryWq0Fq=32cMltT?qq4Y&^ z+!`!-5FCj(!|??4b<}2m3jTLxVX8U>7@j^LrhHR40Y1_NVyV^o$aQFFZHIHiNOSN` z5Ayk>IMT{#h8q&8<|42M5#pI5kaL_0m+D$3fIU5^C9MMPydr&_ClR8eW-0h9jT$V# zk)7_WNz*DG0_zc@!b&Tx0rp_$fofX%HL&=wNsQ3!Oy}5WE&Ux>KanjyD)-otiB4zO zx0Ah4sTn3*_-JX~f=3FRg(aA7lieDu)5#WTd88Xz;GB6mSQnu9G9xLGY_|v%y*m zzgnv`z60Rl0N7HHgPfbR15z>(p0F}e= z?zy{q#M}D#TyQTax2_$2QUGX1kT^6Q#A;Es4aSBC5+XfOJ_sLo%B(<58RznK9?(`L zR@R~cvPUB;5+YN9FQyEq&;*5LaApACIu!6*Fzf@m^HlKbp`xtIX1n$iaG~x9(MqdR zaRL1rBOj)ex3=&0W^A3%Ji&WCze%g~l=37BDgY#fN$-(!j+#>b4_;cw<$O$z zrKgU!;R0LfEb#QyvG8Vh>bME|%+!$v>Z#*<@V_HaaSeo~Qt46Z(^JQza0k}B2#lp< z9uuaTI_80S2@3DQ=K+_gr;fW&u!n`BPEQ@*K*5KmFzFZSszeQX>Ua#~pDtTwXNt41 zB6>IlAJHb$Iwh^Aj%i?>W!QnKWAiKE&ro>@xK|oPVCuN_GK>Y_%yhZL2d0kGBA7ZZ z27k4SF;hp@idiC6d5~QXQqx@gjQ2WZq>GHs;T20INN6GxK3y_b!07O>NrE__^BgpbEl58S|hm@ zpW1)%9Jy1+Whh!>ijyLr^85|Qu{(9-t^e~bU?8ZZC{P;u1$xPyI(`J^S1z;)b-7c= z-%*~>Mpqx0I(8U^{sPvn2X+esNfL20b$t39@XrCSpUZbGai@;Yt;b3lsLJQ5*@!(BbdLvl(y3%IqICi3z-UHSPuC$ptI#n#|0xCZY)|ald znL3_@1+s2rTeyss$4AvIDGZo8=8x3U4Z-5uJJd;1?2O3GF)iH#tn)l+J$2-*8GFON z8mv(sTTdMm5e>qg4c4_T+e{sYWI}Qkitizd&XFWt%QNdv9aC@9I(7r}oU6l39Z$mr zP7(<|0qb*@t*4F^V4wXvN)vFM^J;LXj+ZP)HXQA*4}QzCFjbwVT~Pxuy}|EC3{Rd| z>P{Uy4M)h00B=H&ucwaZrRr*~2YU%2ZeuMyb^P-pUCTXSKOEFzrjA7mw3?T}f5WJ8 zr;g20ix_$otYb!nJ9X^2T1!{JygnHpeWqn*nduatuccdp)sAfOQ8RTs9r}*ryx4ug z>hDSGsbgfGWt}8@ELamaSa(<3*mYzC3IvAKo!GFQU z$kb6Vt@YILrk((O1i*0@B)#J`+)N#3vC2e@*tPi)7ZfC?JMPr+tus`-MLGb~i$K@i zgHy-%CqUa30A#t^=pbcXq}ru|(a!0C0sa7~AMnzIO4mZH`pd7OgDMZZ0F~C*dkdt? znzE&$OU#t5xzK9L)<$SvxGIl6gS45leFN1$(yEJ5>Q32gR8k2aDNPz6EInnbhvF87 zrKfC5^KAc=?PlncDI4vEA|5AHy3poR!1+g23pGKEPa$nX6pSpFsi$m{ zP%w>!qE1iQu1CQVQ8k;blGanU55fAv-F$2TmK8OMGC;_VtgLvh@Q05*K5pY^)WtGpfeVaY*8a-H0D{ zm`vH|GBRZozo>KxP}QfMM%Q_>`PuM%7PwP3g3XkTmY6A99?qLaQkoYcW%{)?R&RUErh zwlO%EcN$(`%JwzhKeQHD`*pAn8c33e zn<-oK1K|Gv-ajtiwZxsW{dI+Hy$yTpI-RhO03X#<$vTZRiF8KvA11pqSl!9qL<`N7 zEqSt*z7niquC$r5)$6ULr-4=IN}DNLAFT2GPUS1Wy2F(=Q?|7;ZR}bOOjH_0^HqSi(az*nyl1J0RECzW0q`%8mo*h1N5#|VU}!z3#!=L z0PV74t0i04wkq~nK$q>ws5^< zd$%~+AsOOoIwtpIvt$b?3cLldERE|WTgYtHH--S2qEQcZHl;!>*<53wVhIRq{Yh+5 zG;FB#*!03Pl*Tc9BptAB6V}iEGC$ zxL&d~IR|xH!8+j2EJs<^yL~tCR~Z!5aTTOLiD=B-f63PN3y|Cx|ATSJvXg;4Ym!Q6 zQbAY=Gw)!6o(@Wt)teEjKv9d-K?UV$w;kb-VVGm=Wmgx7dXeT6lsmmsHVTrdTI%_c zA+_vU1o3hWsb$wARC2bRvR#0A+4VB+p^=4ZxDKAtkh4$(qLAE+vS;Bs;9p5&zN^`? z@EDRnkXh;}NRWORuYeZIQrUTuF%YteI6^O>#GcrT>Llx$lv-X&qe=*J5n7lEEv37J2b2gLEcFxz}|E1filPS@Es$ECMB3V*zFe z8on_s(jp?HqaXtp-ge*?xc&f=CSnz``Xc$5L(Ygbh-5j^`O$~wqV*-Z;0GI8hz@+= zu8pj=68uz5I(a-pS_`r?;avum>9ooTX(tkpL6N>Y4czwPC)BA(-%b}D#4Wxcmt{z2 zLG~fiX*Cp*>Yz##>9iaQdBKsy7xY$QNF_%_zM#cXNM%PQx`??*S??we-Nf!6rIm== zm5Mk*)2M1B+)MPmf!ZawF`$+NS7(@3#3B7e;u-vHJ#sAu02*e)ANEBa28%7NgtZN@ zV;-PI1heuo*Qp(c<7F_63#%diR6`zOTQP~~j3Hyhj9DuBA>cn44pog+CKR983YjGq z9fSH?z#bS}>iDHT@Q+06K&2yJH5dU7&Vpw@r&9 zriHMkQYo4PYD2KBgBvA~!gcZHFDmvBK%?x~4F4j|q6Rtk0zgab*d?(b4!JExj)a|2 z+8Y3EvSTy+yC{WHa_l33PTH~G`U*L}FT$c#>Fxl!XUAsvZ}9;2OeJ;Xsg7X;hsyc! zhlp)Cc8*uE;{cT-ShhXGE=R_03S(_h$9PA6{okIAS$(0bHyCQ3UjP{ihDy! z>$DwdjJwAaNk{-~ewB(%x=aN4!D$fW|rUvx)NyxqD0u+X6-Bf&|07VlrA9&*pw1xx;`h@AmWd&8q5a-Dd#T|p+J_Mq4yd0atIO61`n zPV*;Ao_7b7M!QybmAqx(tTsGJq1Qh{D!F?7E1P-;;G>2@b|D9c;ul^-k{w-*GlfM@ zO8sUy-0!3ILLM^66$lfj9OZfuyIweC%@T#x@C;>1@+4Pl+$2y4#dkcbOvz*k*U*2rK~<1`EA#@C)k^W=9fWym&ni3T&ng-6n&;cd=3_$@sDA(CPJxNqYA37?Ad4j6l{Lr1@ndFSgb4Y-k%Hbrlc8t{ye)C$2uN=Dd?ZvzD6gvS>GQn~LWcY}q zC6sgQhJc#evFWY8kmHVeW7VAkHE_(klR5ZOfsbI??4lsK z_z?KNnq$TL&^CNeQw(c8T4u*bO%m3-6A@@tOpa>2RY?nJt4g=r_*mtVzp-ckE_zwQ z0t*}W%P{a&*;^gJ>?SxR?Z8s%SS0RL!aChSy$3Z($Ij*qV)?dVo(P-W30bwCr)7Rv zS6<~mA8-ZoZrx~<5$6D_ zpcx~qx;TQtZ41F409vb6$QdK7t~h+pvi1=C4WNT2Hcts*&BUL#F;NhF4bV*!Tf%L{ zTI_*yY-fEm4-S>~_LRr^ZfJidxCWp)c5Ipw!bXUH zXQi>VowA#&5lhoM%X&B0S}k*Uf^;-@7XZT7-1Vlf9$3lrP$j6 z?Y3c>F~T;B08FF|p96HohUpFQuzezIA7WFxJO&g9R~;A3bBZe7I}&PXBQNZ}cx#X1 zMS+vx&tuBJVik5y&XKCxfSVG9nop|Y*JZ<+Im#V^wNPgJ03S{qsz=WaPVN-|k~rP5 z?FH4?i$HqU5UB+vn@8lZy^c=kGGYq|yZuP=<=3!NjmAVK`hsspFAjDeg$c zKft^Vb&fb8I>}A3u-wjIfrN^I5NAka&~mH}3vqt%HI&oBDL|J=m#d z^W6pfuvVe!o<{nxCeGWZR89N@{P!Fj8pXppI_v$edP#1?c^*ghw3su%xpuBfD*^Zm z#L3pqG>V6fat30bhx6PFc>5fBm@~!sf>-Go0eo@}Jv54kz3NJN>30H7@oTy@70rWG$99w#m zsyaTxim(SM7frDU!Xc|!!gU;@gRq59a3r8;f@N$Pzwvxf?rAD^H9)lp=0?)b2mM-J z#qI#88^JQRayB(g$9(`P9}j4%4J&8U5Uddxehbh$2G-7|FP9_cW{AHfh|=|N)l$nE zXVa$fO2;LTelj|=vuX7l>_o4Do~M8Un&}KGXVZHvfE0qX1R*8`<7^7eLMu@Is{qe< z7AL=RjKGSSIGus_BMwyo=hQfxh7Ut!P6jsDA6L$%%vV%0?*U#<6gw-**;KB8O66O? z-xI}7MLV0$j8tlV1x~NUsr3K(_eiTmGIGe^5LZYKVc*&4xJTcCuRt15-4s3YAQedU{Gv$4SdbIq( zJlWqIO+e~IL}Q5l&ZbBCp=~$_lZ-Yp5ZeL5w;41MSl%)bxTOe!=f%4eg~lKm?wL_0eq13o%;h~?P59$$xmA9xx$cgG5rOxfF6#ZTuhS#NWFQ#uOwi0 zG5wAJGV>0i1V1^4czN1QrYux^EqfL+AZmmoH0;l8S?B;sZ!Pr{AxOKJhHJ5QG1c#c z^h1Yy2zmUBOY#+Fb}`Y5w(+)$=>=>y!Nqh7ya39Gb}r&P5=+u1V6xM2Y@a7t`0^Y8O*(5Veab z59F5Pf4i8dPK0(bk);W*)f!z{xtJ;l2X$&(O!xR=NivL~vmpC0E+(o(<6>IO z7s|!-I$tOk({j4dE~b&#jH*m&Ekfe2;|NWss?jc{BY$Bdn&6Fqwh)}buyQfwx`34_ zq~aJ(KiIHxF^y{`tfG)Q?&9I3TH`iRwN_H&eVtNhFesC@`?O4jiG~gxt5eDUOunj2}Q>*=Wa+q>B z*M^jf=>dF`lrP6BJ1ym6I@egW#x6S+`;ihI?XKZ7-xTY-9gCr4$G0<8tcNC+b}>!D zy)OBC^0kBi6Nl^sEy%#Ve?psfF^%>}UMe^*`t!7l>GQsl(iU)ELuroUdsv@#F;#z2 z@}`2b=vlmfuVQ4m=d6Ky?%Ig`5jZ;xkBZ2x=Gj9tn|3k%@TDZ52JvTqvgCPpKxwqA z<3Y)@+CvQvSzbv|E~ekNNRy5NT;5Qqh2`L&T};Cc<2DF*GsEG2uU$+duoR~3_W?Z7 zkHTu?f z*x|ouHZG=6Fnq+~VbZvm5+JIo#d7}2ViTdE*SMHkfYH&gIuXIRmp=Vk=pPfC zZyDiYdI?hu)u(vABRT;NS$YX?bG(X00o9;L29!pyOq(_g;bJ<6p3#Zm=78Fm*xJSP zK^y!J4#7hJjk06259y#|Kt2_F0iY#zY=)0GnjOXc1I69|Xp9+i|K-Dr|lpeeg;vy znC=GQfm7hO{5ZzNv=6hs)frc3X6ucI&CI;vD z+QrnwA!OC}20qMixF2g5lcPG)m<8;0gHsxwYzZ}Yz5y4%_!xw*3@K-B{|F4i*e{NQ zaMh6L3!)x685h$Jd7$Yb2>)u5aWN$~R82s)d&P0cYT?{!7t_hgsvA@SUYj^PMoErx zF}*famAWJFJ~=qb#q>2iw%puPfxk=~HZ7haw2SF`jM7v}u?qM`qepU-iz(kP${G#= zKb1p|axtBRFM{>_2K-SDJ<7%O0`&qi<6xYM;K*Kf0;trnPM;*T4uA0Y4t<|S{0L{8sGcTLK@zsDR3e!K(9$?RuZQ$xL>^% zx^R`o2>>3HCl}K{=&e&Gvx_OSw{bBMOSzbKBXvu;n0S@1TugF*lO8Gy>&^>)bi( z80rZQ>W=rnaL63;1MhG#jl#}%DS}G_N+6hH^OOJ=Q;*v!b{#+sO>7Cb6~9kZv3mgO zXJShqQa6$Q7`K|Fd>WuRCboq8i`;mTq&~s#0a|0nW*^cBu?%Zwj=dYuemge96UAEG zvT*DxfPS`PD;HA-AbEP~%#p~$Z0%>NiyZ+G2|^h^ zlJPSQhR1^|p(gOghQp=Qex?bhkWe>Z!wk*|(aHFk*29A$W`VHSkjScypJ_3wNqh)w zy~d57Y1ds0<0zci2k1M3rFAPm(=sfV3Q}2b0J?3%%Fk35cZ6IOfxYnj1CDI%r2R}K z$|xI-1zv$Tb_4Je1@JS?|4x}hBj9avaFn0v{YR>+3;{l#IJQmja340nnWv^o>owpj zbLdfirqZ~R=R9u({!I=&%Fi@+J64=j>P$yqJ+9Aijr`uz&=Um8-Iev^(t zqrK_Z7BFx6O+s$aSLxc-3!@lb=WEi>ex2_F6eWN_{W>2B^y_>S*01wXSijEK7vaG; zLeEpK)a!hcAef_to~wkY*ZDH;<1HYA{6dI+oo~SF$lE4h>UF*rZy<4cu-frnG^F}< zKFXkao$uxI*awG--vHkyrT0mndYy0JE-aXE?d^+w1RSA{8KeosF*<*!u;?E?VgQsi zpn9FJDg-r2$m-PVe9a-~poJcR#<#qrLA}m51kiW`)6TU1c-LG=-||CbZ1pnj|V9@e2~ZS7$l#bMe`bo@lAXbtoB-qr21`+U;o5juJA&57Pz#YR<6#{O`E-rR_EaD5I*Yli zD7a!d;14y$!_l>e^(^LC@fEP|3~q8_JgnCS3yc5X^#(|{HPLuj@1MmZg~+Z58~_`| z5n7UR$jcXaST|k8eHg(d0hJ+`D@wu@9Gz+-X^w$ z>o|Vvk0-ndo&sp59h;Uf@UY%Ku41nQw91ana2v-XtZq2=4nTYD*viAY3d%Z8N5K+KlG_F0Yi!Q0Y zQ3FU*je4lN@L*t-Q6AP2SmcWyAdK}Vu|;uW>I)3He5$W50&%$?S$kM7v{RH#fcN@Q zIA!Buy>=Rjo(172L!$A-cv$!E2mTnCz&Od}HXha~C(!>2LL99jY5bg3u;RR|fl+6xFd2q+LWb z=I-xdEq(>0A3(Tbw2^^4Ym!Q6jfa~PP6fil+7guDzBN!IdD?w76w}ps%q*BrXbRDP zc_%-W^}!z`mkYJ-?@;*CbKrC>g9_H4$|B#eS*Ue|y52ZKU!*3`3$@XZyriX`x(um> z+G2=TXh<#8Zbd?)y-;%j=7kz9JTZ3DwX1yqJ z!g`?=f^ayF(3bZ=RtvQl2$HqX)0PnR_0`*f*#8F7%%GhK<*%={)iPNOy?`tF7V(NAo>?v&VpPcNo0CMNZb1% zGPYX4^#e3g!+r}m=Sq|gDZC8ybd>Jp1I zN)cP$-*@Ld_$f!&TPdK?kby z5ymc8c?ac{o1DI(>!He)C$2QhH8GfyJ<}L5Wbx0|G+95_bTljEyw+v3h<5L!LM{b&7t##Q(dV60WTmR^8`fgw+|!>UHgm zZ6FN{T1ZC+%s|ChPL-1Ljd@nma3Gm{L*S9%p8SG+<`4#Ejbu5I0iLV6o{Lsy9ytyqZ=2@t>+G54LKPBiZFL^5K5awTt7H z7)L~8=KqY5L^sR9eJP(U5#fLT(?CW8WINd6Bwl@H4BNW>bLU|b&&U&iHXAF*K#n24 zZ4R7S5_9p40cAIbyL-552+K46|1s__zjD=3+-ivXzf(&(ix|OuDZ(H`FyDAJABeSc z#vv=sYUVscNZKedpC{C-6#h2ZW^2A0G)A>hE>^|Zv)QJoHP&F z&6#6X%2@vi;zkOZ@xFeB>Xzs?=m=DV$N#CC@?fhrIZ{ngbDe4J_=&2u|IZjn6%j+W zb_Yb@)}{z{Yv)WN=5y29%byv;Zf*alvbDXm+NqLq9jDWi;MX~eQK3Zg;UEmU4L%-< zwe#4eE3lZ${c!zW|tT{73D%0^(>Lm@6Qjv;;SshZ!*-ZOml22I=l5pbDXK zGcKSS{f(8py9ua1h?YTocN0*fB33o>?j|6;GKC9vh(X-OqQ)ewD{zFS)4E4Wn~GMD zbkR~z21D&BLZ%o3@puiXZ7+J|C!ozYFlGTnyo%G?L}`SGoS({ltjpi`#e9ibX`_eX*mnwuSB7odG4dyJ!L5)X%l*a*MD9!@SXyH4mBY;lsFTu zINB)+82ll23@D-~1x`HiC`VS>2kAg3yIKIL0clfz4OBl?+Jm;>OuMicobJE}`Eg*4 z_`ib}QNfm%{#@PlaWU}1Q+9$?O{4IKRM8jg~N;0CRrAt0^WOV6}) z8Y;A<(_o`5oo*qtrOSU&QI=k2Dwa4nLKDF@mRBHUNGzOmK$B~v! zHyZfNB@%E&V$2Z{qv!g!$&X&u19!=z^=LRN0--Vw)#qVaz*2=Nq5{W9Xmy_lk$$byVWu$7nk ze8l-)=+&gCFrgV#33+=p0dVQ|8@PqQbp-?D-hr_<;z|h=tFh6=bEk{{EhpmUAc*-7 zb0U6?EkaX^`j-={Yy{@-h#wXMH$pov9e#^-v|m;DnB#N0DD`OokmLCN15$i|BlPY)D6YifQx4&t zjt+x^#d6snvuZY?TyZ?EBCNfLA>x3SBaWaunwVXE0RQBuJWN=}39b*QsSOW8GZen* zD0B)_5BQ=Fpg{z4!Z8g0?pS&fo1GMU7NEr%_VADvQ=d}!%h9BXkSf*z|5S4<2|scC zgGC~%I0Wbi4J#G&L_%SQv+Xu)m{Kx#fj=e=mBEvT3gZ0&0RO9T;XvoDhAOQ>sOb_o zWQ8y><`b%r+|H72m0%U%8N{)b#cZZL=XF{)Rk1q*@0UZ*m!zkFv-)(UXBzPNIrKO@ z;1qOzu^UcXw3PS|_S_6*I!+r+y0z@^n*mImPZ7}OGM?FARMSI{~iF1KrWiS?QE?tm{ zaX3w}VP!CHtj5Rksl;yrT1hY`tPQ3WVCn^8E1+*Q>~AnHu2(890KcX=#$eolS;Z4T zZqyd1;BPSFK2l{U20V^9R0hvYDv0+c($@xa^Fx(ZJ&;-wk+Lg^+F;zM5KeFa@X^Gv zm1%>i{I1fo5cskjdX&M0zo+zU0=_ec9%V3_QM=R{;z!_@G)Ec?wZCmJ!Pkp}7LZ1N z81#&l;5#7e`EfOeX>bXsVgDsWK)U=(2sJ;}hgCPl5&AJ1on8rchNPdCdOl-F&5z?C zo}nSX`LPCa<^dvB;IxJ)TM^L{g^->f^CB2ZlwCL-Hk7hVk@I7&#Y)R{2=5bxa^`u8 zO7WW?Z|8!VAk;!39FjwcGf~fv|J_^eDu`mVY{CEpoH9x+X ziFYZG)=eCqLsase2dq2mTLns0^M&Du{P0(%0je7_HI@M@^T+ zAuEK5dOT}bKqXiecwOSy%Jg_fpE%__cLCl%haNSa{o6_DnGSqG4n1l-dlHO(N!7Oo z_y*09;~5zMk7xA#bSwDV??4MkYk}LJXN+f&SAeqLE}(iehvj%?e=j{CojxFH?rbAo zfr|@AXey*;JWGP4vX*+PGNi_{1`xN>kl%O~i4QuQMc&0g!1TfS(3*(o`4b{Np7~k} z>jqI40$ye)PnjaevsQn=w?mZA0e?dj%9-Z~M1JGhTx{lwGr)f_9E!$7J)T{}(*qPy z2-H?C9GoLPo?YAvBm&Yhgm5aXf$B%!*|y&YPBq~5{5Y}?^XK5b)LC8ALXn$@(S5LG zp~kb1k`R>R*=7pL@oYB*<#=|4f^s}tfuI`C9&`~FeaL+)4o@bPd;vmwJR6V2)ER>i zPr-6LJBr5!|MY|PcosNXSft3i08#k+_i8+=fmxKUOBz6pXIHZD=_2T28y-8Zs4#q*i9U! znhHqYMq#}ba|nrlk0W#!q{d*cKtj97EcNVTNEz%Ch}{bnXP!x*_!;buolr9y_#1{pi8E0f zY}^sJ%P6^x;A|lt5QeO13XcQzzhV>cy@o^4n5bLjOXP?miVNUeBOc{Q zx5`V=sL6+rx>1)h71qG-SgFNot{1^647`*dN4Cn+mQdz>8wmveeGaJvq$dQ6)LSg?j)YkDmyL#Rjpz_X&z9+e$qT3T|Q~9ZtO~6Z!i`|=oge1 zJ%Xh{QcFucUo)gyr6t6jH00MRMNxul$h;T@cq&o8K}63#5b0J~S{I)KB+8qBKQI(G zLVAn;yYnz>qI?D6cSNC_c}_#**D5z+QD0Yp|6w>3jfuKd`lShrB8uFot$a8*N4iyB zhh9+v(quw771qFyrm4R25muoh19)>kj%<}lsBFtiPyM^<7D8?!M$_ZVY9TbHH-d5@ zG@XJpWS_oxf_@qbRcjNHyttEkhQX4mbqw`ydtjR77b2xRs%N!4x@++(G$R%Rs;ri9$K^%mT&FVE^n2HH(11Yd92*iP~W2 zHo-SjDY-Af*-1Rgkv7A^Z$tEv7JD`jrne_#)y^89d)oLA*_ozTTGT>Q!ld0@604jEQ<%A|_cScoO&} ze`R`G;`jba&)>jZNS%u<6O2*Y66ar2dVIi36UWX}jM|oXt{8SBsQPLEucJ9~TY}o3 zw<=oJF}iSfdb#@!U->x3isF0($JBs zS_XbxxxSl;A9t?(@@EhIh`^mp2?*i_kdxb1fYTG2WP8cKG&H9d`FjEG`6JB!)+p!-az{Qp5A0Ohui1 zQ9b+<(i^}R8R4-pxCrEnCgE+m;35}av<|O25Enrr`V!U{;R%>ni+V&HE_#L2%M?ZP z@Ly&O3U6Eq7y0>OSoow4xCj=zKf8O885pAX1OT*u!i$uP7JNzBGNaBmt;UCgP zIlkBszJV^vi_=x+-4sRxdisyow7&n$RJRi>LBBk)r6jK*&WE9xb26)_gz zT8 z)L6y_Mlz&9*siy6*ia+#27@mCiC&oB`SiRc*-b;p(?6B zv(6HWDcv<0iGiC(Qcm8LW&r%H3ebBQRFU`ZKxnu&RuXl*8>z zszfA{LxqQ>0Pn|mrom;@%szm=U}$g-=u8nnL%7munDp?8t8;^FAL<)PZ>53tCN=9P zMB?_P^sS^%>H>L}%N})RNQAAn5z2ie;6Y!9B&-0G+7hObWYvmr?YR zvncHLZSIKhYzljQ=@AIep>RImYvT}}OW_dT`Uwcnqi~q--I@r$OyR;ldfB<;D-@3O z)mVt|LVED0v@b3X!i&gW6RnJ%$;f|EuIJy7DQ-P0X(Ekv%c(4RSLs4=yHd%lq%Lg% ze?Xe!31%c4e3LrNYZSY|Gh$~@f?Lf7dy3j8rE2C*& zK)VDzIS%6_p@*(S!y%JuNs_tl+4vDoq@OE&iF{Dk3r^EFNmkG zIRA&LE?QZ6Yo|keiO!V8vKo=Y+H>n00}T}PLvSMl)0LHXJSr~gCY|ZJpFt@%)^o4L z1I;h!hu}E|=E%=AhUrID7W6{`dZtshUAD4(kpa#@aRDhDFt}{nrvzOUKLDbK6YOSJ zZ9Anm@SEZ@;JMfQC!Xc5>cB%>?g2PA6pnEV1?-J3G8M4cN#P2J+BVBggH#sJ<(Y1J zkTJ_WW-`I@oZm%~1vtBI=f-+1y5c;npnNScYelC~udsai$|78e!fszFlsLKuh4cBg zVA6`NL*X#rNQ@oP85EB6HKn+9DO}p;rMUGdoal?9xb-QV>ci5{if%yR>b`Jv)#!#4 z&hVXh72!sdFGk@*1ndcryGUa_ip25dW);sG=0X;TCjvvffWg0E4~)dm|z`AQclx)!amv%RoNM_z+^%l9dE zib@yz4PmzxGzG(JOe7`arS~y1-J8*tvG|;z6EJ28D$4oY_*61!irso9harskd@?~doY(- z$%EtZ{X#3b?3eh$IX2@{@JC=G`TICw9T3T3@a`NG$=~J@)*<{urwdee6gM`x{-$kv#qoR-Mk|*RNRCLT7S+IJNFOlS3|ItH_!B z8!G96Gx_i4NH$mU>9O$8=CXncQ{HyYL6MNt-D}nfYbJ8qu}ArGICsTabnHZI3 zinFt0msHEuaVW$A9f#u_*l~EOm8;`WVD65?aSrM@G^wJMyW?=2Jyy_1&=-560yIMV zsnOBGT1)jX8Lem~Kj@7uL@Q_vq_JlfK^}CiDuNei<=@E_yF#?V7w*KzV0I{rjaDl; z4D@{>c`P0_Tk^!goW^O6&AK0NKC6hTSSdrC3ZopYvpEiySR|5(Bz{J zCB+rw2RJ)-$7W1iAqu;FvGee`%fb}SX9ZD&IA0#{yL9eh#oiU;&g0Rqq1^{trQ_n= z8(;xLt+?`}4^KnWOZsuCG$x0M?$KzXxGH2*k)jqwh-)HV1@CPfp`^vbNf&JF1h1vo z0P&X^k~?)WR$p-t;!7IhSoX=1q~YQ&2-bS7x&^L0l(xdhiG08!3_b4M#@+F8;_^TYZ zfeT#?a6Ln*kxk1!otG|v`x{DwY?PlhWg6i5hSDq>J&5AmCGm z(v>N}Slh)nIb2$4xdZrbLy^WHDSI%aa*6VPiaQG&*^NO`#{Q~WIvH>^Ly^WHDQhq# zv6fbVyBLZz21(hCZp4%^fTtOXGzLj|Qzx_x@M=Sm#vmyRF;K9U9e@uSiZljEu`r=B z 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�XePut7BaKY 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°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%0A9! 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 +#ifndef offsetof + #define offsetof(type, member) ( (size_t) & ((type*)0) -> member ) +#endif +#if !defined(WIN32) && !defined(MS_WINDOWS) + #ifndef __stdcall + #define __stdcall + #endif + #ifndef __cdecl + #define __cdecl + #endif + #ifndef __fastcall + #define __fastcall + #endif +#endif +#ifndef DL_IMPORT + #define DL_IMPORT(t) t +#endif +#ifndef DL_EXPORT + #define DL_EXPORT(t) t +#endif +#define __PYX_COMMA , +#ifndef HAVE_LONG_LONG + #if PY_VERSION_HEX >= 0x02070000 + #define HAVE_LONG_LONG + #endif +#endif +#ifndef PY_LONG_LONG + #define PY_LONG_LONG LONG_LONG +#endif +#ifndef Py_HUGE_VAL + #define Py_HUGE_VAL HUGE_VAL +#endif +#ifdef PYPY_VERSION + #define CYTHON_COMPILING_IN_PYPY 1 + #define CYTHON_COMPILING_IN_PYSTON 0 + #define CYTHON_COMPILING_IN_CPYTHON 0 + #undef CYTHON_USE_TYPE_SLOTS + #define CYTHON_USE_TYPE_SLOTS 0 + #undef CYTHON_USE_PYTYPE_LOOKUP + #define CYTHON_USE_PYTYPE_LOOKUP 0 + #if PY_VERSION_HEX < 0x03050000 + #undef CYTHON_USE_ASYNC_SLOTS + #define CYTHON_USE_ASYNC_SLOTS 0 + #elif !defined(CYTHON_USE_ASYNC_SLOTS) + #define CYTHON_USE_ASYNC_SLOTS 1 + #endif + #undef CYTHON_USE_PYLIST_INTERNALS + #define CYTHON_USE_PYLIST_INTERNALS 0 + #undef CYTHON_USE_UNICODE_INTERNALS + #define CYTHON_USE_UNICODE_INTERNALS 0 + #undef CYTHON_USE_UNICODE_WRITER + #define CYTHON_USE_UNICODE_WRITER 0 + #undef CYTHON_USE_PYLONG_INTERNALS + #define CYTHON_USE_PYLONG_INTERNALS 0 + #undef CYTHON_AVOID_BORROWED_REFS + #define CYTHON_AVOID_BORROWED_REFS 1 + #undef CYTHON_ASSUME_SAFE_MACROS + #define CYTHON_ASSUME_SAFE_MACROS 0 + #undef CYTHON_UNPACK_METHODS + #define CYTHON_UNPACK_METHODS 0 + #undef CYTHON_FAST_THREAD_STATE + #define CYTHON_FAST_THREAD_STATE 0 + #undef CYTHON_FAST_PYCALL + #define CYTHON_FAST_PYCALL 0 + #undef CYTHON_PEP489_MULTI_PHASE_INIT + #define CYTHON_PEP489_MULTI_PHASE_INIT 0 + #undef CYTHON_USE_TP_FINALIZE + #define CYTHON_USE_TP_FINALIZE 0 + #undef CYTHON_USE_DICT_VERSIONS + #define CYTHON_USE_DICT_VERSIONS 0 + #undef CYTHON_USE_EXC_INFO_STACK + #define CYTHON_USE_EXC_INFO_STACK 0 +#elif defined(PYSTON_VERSION) + #define CYTHON_COMPILING_IN_PYPY 0 + #define CYTHON_COMPILING_IN_PYSTON 1 + #define CYTHON_COMPILING_IN_CPYTHON 0 + #ifndef CYTHON_USE_TYPE_SLOTS + #define CYTHON_USE_TYPE_SLOTS 1 + #endif + #undef CYTHON_USE_PYTYPE_LOOKUP + #define CYTHON_USE_PYTYPE_LOOKUP 0 + #undef CYTHON_USE_ASYNC_SLOTS + #define CYTHON_USE_ASYNC_SLOTS 0 + #undef CYTHON_USE_PYLIST_INTERNALS + #define CYTHON_USE_PYLIST_INTERNALS 0 + #ifndef CYTHON_USE_UNICODE_INTERNALS + #define CYTHON_USE_UNICODE_INTERNALS 1 + #endif + #undef CYTHON_USE_UNICODE_WRITER + #define CYTHON_USE_UNICODE_WRITER 0 + #undef CYTHON_USE_PYLONG_INTERNALS + #define CYTHON_USE_PYLONG_INTERNALS 0 + #ifndef CYTHON_AVOID_BORROWED_REFS + #define CYTHON_AVOID_BORROWED_REFS 0 + #endif + #ifndef CYTHON_ASSUME_SAFE_MACROS + #define CYTHON_ASSUME_SAFE_MACROS 1 + #endif + #ifndef CYTHON_UNPACK_METHODS + #define CYTHON_UNPACK_METHODS 1 + #endif + #undef CYTHON_FAST_THREAD_STATE + #define CYTHON_FAST_THREAD_STATE 0 + #undef CYTHON_FAST_PYCALL + #define CYTHON_FAST_PYCALL 0 + #undef CYTHON_PEP489_MULTI_PHASE_INIT + #define CYTHON_PEP489_MULTI_PHASE_INIT 0 + #undef CYTHON_USE_TP_FINALIZE + #define CYTHON_USE_TP_FINALIZE 0 + #undef CYTHON_USE_DICT_VERSIONS + #define CYTHON_USE_DICT_VERSIONS 0 + #undef CYTHON_USE_EXC_INFO_STACK + #define CYTHON_USE_EXC_INFO_STACK 0 +#else + #define CYTHON_COMPILING_IN_PYPY 0 + #define CYTHON_COMPILING_IN_PYSTON 0 + #define CYTHON_COMPILING_IN_CPYTHON 1 + #ifndef CYTHON_USE_TYPE_SLOTS + #define CYTHON_USE_TYPE_SLOTS 1 + #endif + #if PY_VERSION_HEX < 0x02070000 + #undef CYTHON_USE_PYTYPE_LOOKUP + #define CYTHON_USE_PYTYPE_LOOKUP 0 + #elif !defined(CYTHON_USE_PYTYPE_LOOKUP) + #define CYTHON_USE_PYTYPE_LOOKUP 1 + #endif + #if PY_MAJOR_VERSION < 3 + #undef CYTHON_USE_ASYNC_SLOTS + #define CYTHON_USE_ASYNC_SLOTS 0 + #elif !defined(CYTHON_USE_ASYNC_SLOTS) + #define CYTHON_USE_ASYNC_SLOTS 1 + #endif + #if PY_VERSION_HEX < 0x02070000 + #undef CYTHON_USE_PYLONG_INTERNALS + #define CYTHON_USE_PYLONG_INTERNALS 0 + #elif !defined(CYTHON_USE_PYLONG_INTERNALS) + #define CYTHON_USE_PYLONG_INTERNALS 1 + #endif + #ifndef CYTHON_USE_PYLIST_INTERNALS + #define CYTHON_USE_PYLIST_INTERNALS 1 + #endif + #ifndef CYTHON_USE_UNICODE_INTERNALS + #define CYTHON_USE_UNICODE_INTERNALS 1 + #endif + #if PY_VERSION_HEX < 0x030300F0 + #undef CYTHON_USE_UNICODE_WRITER + #define CYTHON_USE_UNICODE_WRITER 0 + #elif !defined(CYTHON_USE_UNICODE_WRITER) + #define CYTHON_USE_UNICODE_WRITER 1 + #endif + #ifndef CYTHON_AVOID_BORROWED_REFS + #define CYTHON_AVOID_BORROWED_REFS 0 + #endif + #ifndef CYTHON_ASSUME_SAFE_MACROS + #define CYTHON_ASSUME_SAFE_MACROS 1 + #endif + #ifndef CYTHON_UNPACK_METHODS + #define CYTHON_UNPACK_METHODS 1 + #endif + #ifndef CYTHON_FAST_THREAD_STATE + #define CYTHON_FAST_THREAD_STATE 1 + #endif + #ifndef CYTHON_FAST_PYCALL + #define CYTHON_FAST_PYCALL 1 + #endif + #ifndef CYTHON_PEP489_MULTI_PHASE_INIT + #define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000) + #endif + #ifndef CYTHON_USE_TP_FINALIZE + #define CYTHON_USE_TP_FINALIZE (PY_VERSION_HEX >= 0x030400a1) + #endif + #ifndef CYTHON_USE_DICT_VERSIONS + #define CYTHON_USE_DICT_VERSIONS (PY_VERSION_HEX >= 0x030600B1) + #endif + #ifndef CYTHON_USE_EXC_INFO_STACK + #define CYTHON_USE_EXC_INFO_STACK (PY_VERSION_HEX >= 0x030700A3) + #endif +#endif +#if !defined(CYTHON_FAST_PYCCALL) +#define CYTHON_FAST_PYCCALL (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1) +#endif +#if CYTHON_USE_PYLONG_INTERNALS + #include "longintrepr.h" + #undef SHIFT + #undef BASE + #undef MASK + #ifdef SIZEOF_VOID_P + enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) }; + #endif +#endif +#ifndef __has_attribute + #define __has_attribute(x) 0 +#endif +#ifndef __has_cpp_attribute + #define __has_cpp_attribute(x) 0 +#endif +#ifndef CYTHON_RESTRICT + #if defined(__GNUC__) + #define CYTHON_RESTRICT __restrict__ + #elif defined(_MSC_VER) && _MSC_VER >= 1400 + #define CYTHON_RESTRICT __restrict + #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L + #define CYTHON_RESTRICT restrict + #else + #define CYTHON_RESTRICT + #endif +#endif +#ifndef CYTHON_UNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define CYTHON_UNUSED __attribute__ ((__unused__)) +# else +# define CYTHON_UNUSED +# endif +# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER)) +# define CYTHON_UNUSED __attribute__ ((__unused__)) +# else +# define CYTHON_UNUSED +# endif +#endif +#ifndef CYTHON_MAYBE_UNUSED_VAR +# if defined(__cplusplus) + template void CYTHON_MAYBE_UNUSED_VAR( const T& ) { } +# else +# define CYTHON_MAYBE_UNUSED_VAR(x) (void)(x) +# endif +#endif +#ifndef CYTHON_NCP_UNUSED +# if CYTHON_COMPILING_IN_CPYTHON +# define CYTHON_NCP_UNUSED +# else +# define CYTHON_NCP_UNUSED CYTHON_UNUSED +# endif +#endif +#define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None) +#ifdef _MSC_VER + #ifndef _MSC_STDINT_H_ + #if _MSC_VER < 1300 + typedef unsigned char uint8_t; + typedef unsigned int uint32_t; + #else + typedef unsigned __int8 uint8_t; + typedef unsigned __int32 uint32_t; + #endif + #endif +#else + #include +#endif +#ifndef CYTHON_FALLTHROUGH + #if defined(__cplusplus) && __cplusplus >= 201103L + #if __has_cpp_attribute(fallthrough) + #define CYTHON_FALLTHROUGH [[fallthrough]] + #elif __has_cpp_attribute(clang::fallthrough) + #define CYTHON_FALLTHROUGH [[clang::fallthrough]] + #elif __has_cpp_attribute(gnu::fallthrough) + #define CYTHON_FALLTHROUGH [[gnu::fallthrough]] + #endif + #endif + #ifndef CYTHON_FALLTHROUGH + #if __has_attribute(fallthrough) + #define CYTHON_FALLTHROUGH __attribute__((fallthrough)) + #else + #define CYTHON_FALLTHROUGH + #endif + #endif + #if defined(__clang__ ) && defined(__apple_build_version__) + #if __apple_build_version__ < 7000000 + #undef CYTHON_FALLTHROUGH + #define CYTHON_FALLTHROUGH + #endif + #endif +#endif + +#ifndef __cplusplus + #error "Cython files generated with the C++ option must be compiled with a C++ compiler." +#endif +#ifndef CYTHON_INLINE + #if defined(__clang__) + #define CYTHON_INLINE __inline__ __attribute__ ((__unused__)) + #else + #define CYTHON_INLINE inline + #endif +#endif +template +void __Pyx_call_destructor(T& x) { + x.~T(); +} +template +class __Pyx_FakeReference { + public: + __Pyx_FakeReference() : ptr(NULL) { } + __Pyx_FakeReference(const T& ref) : ptr(const_cast(&ref)) { } + T *operator->() { return ptr; } + T *operator&() { return ptr; } + operator T&() { return *ptr; } + template bool operator ==(U other) { return *ptr == other; } + template bool operator !=(U other) { return *ptr != other; } + private: + T *ptr; +}; + +#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x02070600 && !defined(Py_OptimizeFlag) + #define Py_OptimizeFlag 0 +#endif +#define __PYX_BUILD_PY_SSIZE_T "n" +#define CYTHON_FORMAT_SSIZE_T "z" +#if PY_MAJOR_VERSION < 3 + #define __Pyx_BUILTIN_MODULE_NAME "__builtin__" + #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ + PyCode_New(a+k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) + #define __Pyx_DefaultClassType PyClass_Type +#else + #define __Pyx_BUILTIN_MODULE_NAME "builtins" +#if PY_VERSION_HEX >= 0x030800A4 && PY_VERSION_HEX < 0x030800B2 + #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ + PyCode_New(a, 0, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) +#else + #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ + PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) +#endif + #define __Pyx_DefaultClassType PyType_Type +#endif +#ifndef Py_TPFLAGS_CHECKTYPES + #define Py_TPFLAGS_CHECKTYPES 0 +#endif +#ifndef Py_TPFLAGS_HAVE_INDEX + #define Py_TPFLAGS_HAVE_INDEX 0 +#endif +#ifndef Py_TPFLAGS_HAVE_NEWBUFFER + #define Py_TPFLAGS_HAVE_NEWBUFFER 0 +#endif +#ifndef Py_TPFLAGS_HAVE_FINALIZE + #define Py_TPFLAGS_HAVE_FINALIZE 0 +#endif +#ifndef METH_STACKLESS + #define METH_STACKLESS 0 +#endif +#if PY_VERSION_HEX <= 0x030700A3 || !defined(METH_FASTCALL) + #ifndef METH_FASTCALL + #define METH_FASTCALL 0x80 + #endif + typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject *const *args, Py_ssize_t nargs); + typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject *const *args, + Py_ssize_t nargs, PyObject *kwnames); +#else + #define __Pyx_PyCFunctionFast _PyCFunctionFast + #define __Pyx_PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords +#endif +#if CYTHON_FAST_PYCCALL +#define __Pyx_PyFastCFunction_Check(func)\ + ((PyCFunction_Check(func) && (METH_FASTCALL == (PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS))))) +#else +#define __Pyx_PyFastCFunction_Check(func) 0 +#endif +#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc) + #define PyObject_Malloc(s) PyMem_Malloc(s) + #define PyObject_Free(p) PyMem_Free(p) + #define PyObject_Realloc(p) PyMem_Realloc(p) +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030400A1 + #define PyMem_RawMalloc(n) PyMem_Malloc(n) + #define PyMem_RawRealloc(p, n) PyMem_Realloc(p, n) + #define PyMem_RawFree(p) PyMem_Free(p) +#endif +#if CYTHON_COMPILING_IN_PYSTON + #define __Pyx_PyCode_HasFreeVars(co) PyCode_HasFreeVars(co) + #define __Pyx_PyFrame_SetLineNumber(frame, lineno) PyFrame_SetLineNumber(frame, lineno) +#else + #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0) + #define __Pyx_PyFrame_SetLineNumber(frame, lineno) (frame)->f_lineno = (lineno) +#endif +#if !CYTHON_FAST_THREAD_STATE || PY_VERSION_HEX < 0x02070000 + #define __Pyx_PyThreadState_Current PyThreadState_GET() +#elif PY_VERSION_HEX >= 0x03060000 + #define __Pyx_PyThreadState_Current _PyThreadState_UncheckedGet() +#elif PY_VERSION_HEX >= 0x03000000 + #define __Pyx_PyThreadState_Current PyThreadState_GET() +#else + #define __Pyx_PyThreadState_Current _PyThreadState_Current +#endif +#if PY_VERSION_HEX < 0x030700A2 && !defined(PyThread_tss_create) && !defined(Py_tss_NEEDS_INIT) +#include "pythread.h" +#define Py_tss_NEEDS_INIT 0 +typedef int Py_tss_t; +static CYTHON_INLINE int PyThread_tss_create(Py_tss_t *key) { + *key = PyThread_create_key(); + return 0; +} +static CYTHON_INLINE Py_tss_t * PyThread_tss_alloc(void) { + Py_tss_t *key = (Py_tss_t *)PyObject_Malloc(sizeof(Py_tss_t)); + *key = Py_tss_NEEDS_INIT; + return key; +} +static CYTHON_INLINE void PyThread_tss_free(Py_tss_t *key) { + PyObject_Free(key); +} +static CYTHON_INLINE int PyThread_tss_is_created(Py_tss_t *key) { + return *key != Py_tss_NEEDS_INIT; +} +static CYTHON_INLINE void PyThread_tss_delete(Py_tss_t *key) { + PyThread_delete_key(*key); + *key = Py_tss_NEEDS_INIT; +} +static CYTHON_INLINE int PyThread_tss_set(Py_tss_t *key, void *value) { + return PyThread_set_key_value(*key, value); +} +static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { + return PyThread_get_key_value(*key); +} +#endif +#if CYTHON_COMPILING_IN_CPYTHON || defined(_PyDict_NewPresized) +#define __Pyx_PyDict_NewPresized(n) ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n)) +#else +#define __Pyx_PyDict_NewPresized(n) PyDict_New() +#endif +#if PY_MAJOR_VERSION >= 3 || CYTHON_FUTURE_DIVISION + #define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y) + #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y) +#else + #define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y) + #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceDivide(x,y) +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 && CYTHON_USE_UNICODE_INTERNALS +#define __Pyx_PyDict_GetItemStr(dict, name) _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash) +#else +#define __Pyx_PyDict_GetItemStr(dict, name) PyDict_GetItem(dict, name) +#endif +#if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND) + #define CYTHON_PEP393_ENABLED 1 + #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ?\ + 0 : _PyUnicode_Ready((PyObject *)(op))) + #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_LENGTH(u) + #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i) + #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) PyUnicode_MAX_CHAR_VALUE(u) + #define __Pyx_PyUnicode_KIND(u) PyUnicode_KIND(u) + #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u) + #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) + #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch) + #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u))) +#else + #define CYTHON_PEP393_ENABLED 0 + #define PyUnicode_1BYTE_KIND 1 + #define PyUnicode_2BYTE_KIND 2 + #define PyUnicode_4BYTE_KIND 4 + #define __Pyx_PyUnicode_READY(op) (0) + #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_SIZE(u) + #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i])) + #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) ((sizeof(Py_UNICODE) == 2) ? 65535 : 1114111) + #define __Pyx_PyUnicode_KIND(u) (sizeof(Py_UNICODE)) + #define __Pyx_PyUnicode_DATA(u) ((void*)PyUnicode_AS_UNICODE(u)) + #define __Pyx_PyUnicode_READ(k, d, i) ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i])) + #define __Pyx_PyUnicode_WRITE(k, d, i, ch) (((void)(k)), ((Py_UNICODE*)d)[i] = ch) + #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_SIZE(u)) +#endif +#if CYTHON_COMPILING_IN_PYPY + #define __Pyx_PyUnicode_Concat(a, b) PyNumber_Add(a, b) + #define __Pyx_PyUnicode_ConcatSafe(a, b) PyNumber_Add(a, b) +#else + #define __Pyx_PyUnicode_Concat(a, b) PyUnicode_Concat(a, b) + #define __Pyx_PyUnicode_ConcatSafe(a, b) ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\ + PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b)) +#endif +#if CYTHON_COMPILING_IN_PYPY && !defined(PyUnicode_Contains) + #define PyUnicode_Contains(u, s) PySequence_Contains(u, s) +#endif +#if CYTHON_COMPILING_IN_PYPY && !defined(PyByteArray_Check) + #define PyByteArray_Check(obj) PyObject_TypeCheck(obj, &PyByteArray_Type) +#endif +#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Format) + #define PyObject_Format(obj, fmt) PyObject_CallMethod(obj, "__format__", "O", fmt) +#endif +#define __Pyx_PyString_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyString_Check(b) && !PyString_CheckExact(b)))) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b)) +#define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyUnicode_Check(b) && !PyUnicode_CheckExact(b)))) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b)) +#if PY_MAJOR_VERSION >= 3 + #define __Pyx_PyString_Format(a, b) PyUnicode_Format(a, b) +#else + #define __Pyx_PyString_Format(a, b) PyString_Format(a, b) +#endif +#if PY_MAJOR_VERSION < 3 && !defined(PyObject_ASCII) + #define PyObject_ASCII(o) PyObject_Repr(o) +#endif +#if PY_MAJOR_VERSION >= 3 + #define PyBaseString_Type PyUnicode_Type + #define PyStringObject PyUnicodeObject + #define PyString_Type PyUnicode_Type + #define PyString_Check PyUnicode_Check + #define PyString_CheckExact PyUnicode_CheckExact + #define PyObject_Unicode PyObject_Str +#endif +#if PY_MAJOR_VERSION >= 3 + #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj) + #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj) +#else + #define __Pyx_PyBaseString_Check(obj) (PyString_Check(obj) || PyUnicode_Check(obj)) + #define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj)) +#endif +#ifndef PySet_CheckExact + #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) +#endif +#if CYTHON_ASSUME_SAFE_MACROS + #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq) +#else + #define __Pyx_PySequence_SIZE(seq) PySequence_Size(seq) +#endif +#if PY_MAJOR_VERSION >= 3 + #define PyIntObject PyLongObject + #define PyInt_Type PyLong_Type + #define PyInt_Check(op) PyLong_Check(op) + #define PyInt_CheckExact(op) PyLong_CheckExact(op) + #define PyInt_FromString PyLong_FromString + #define PyInt_FromUnicode PyLong_FromUnicode + #define PyInt_FromLong PyLong_FromLong + #define PyInt_FromSize_t PyLong_FromSize_t + #define PyInt_FromSsize_t PyLong_FromSsize_t + #define PyInt_AsLong PyLong_AsLong + #define PyInt_AS_LONG PyLong_AS_LONG + #define PyInt_AsSsize_t PyLong_AsSsize_t + #define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask + #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask + #define PyNumber_Int PyNumber_Long +#endif +#if PY_MAJOR_VERSION >= 3 + #define PyBoolObject PyLongObject +#endif +#if PY_MAJOR_VERSION >= 3 && CYTHON_COMPILING_IN_PYPY + #ifndef PyUnicode_InternFromString + #define PyUnicode_InternFromString(s) PyUnicode_FromString(s) + #endif +#endif +#if PY_VERSION_HEX < 0x030200A4 + typedef long Py_hash_t; + #define __Pyx_PyInt_FromHash_t PyInt_FromLong + #define __Pyx_PyInt_AsHash_t PyInt_AsLong +#else + #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t + #define __Pyx_PyInt_AsHash_t PyInt_AsSsize_t +#endif +#if PY_MAJOR_VERSION >= 3 + #define __Pyx_PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : (Py_INCREF(func), func)) +#else + #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass) +#endif +#if CYTHON_USE_ASYNC_SLOTS + #if PY_VERSION_HEX >= 0x030500B1 + #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods + #define __Pyx_PyType_AsAsync(obj) (Py_TYPE(obj)->tp_as_async) + #else + #define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved)) + #endif +#else + #define __Pyx_PyType_AsAsync(obj) NULL +#endif +#ifndef __Pyx_PyAsyncMethodsStruct + typedef struct { + unaryfunc am_await; + unaryfunc am_aiter; + unaryfunc am_anext; + } __Pyx_PyAsyncMethodsStruct; +#endif + +#if defined(WIN32) || defined(MS_WINDOWS) + #define _USE_MATH_DEFINES +#endif +#include +#ifdef NAN +#define __PYX_NAN() ((float) NAN) +#else +static CYTHON_INLINE float __PYX_NAN() { + float value; + memset(&value, 0xFF, sizeof(value)); + return value; +} +#endif +#if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL) +#define __Pyx_truncl trunc +#else +#define __Pyx_truncl truncl +#endif + + +#define __PYX_ERR(f_index, lineno, Ln_error) \ +{ \ + __pyx_filename = __pyx_f[f_index]; __pyx_lineno = lineno; __pyx_clineno = __LINE__; goto Ln_error; \ +} + +#ifndef __PYX_EXTERN_C + #ifdef __cplusplus + #define __PYX_EXTERN_C extern "C" + #else + #define __PYX_EXTERN_C extern + #endif +#endif + +#define __PYX_HAVE__reccdi__src_py__cyth__bridge_opencl +#define __PYX_HAVE_API__reccdi__src_py__cyth__bridge_opencl +/* Early includes */ +#include "ios" +#include "new" +#include "stdexcept" +#include "typeinfo" +#include +#include +#include +#include "../include/bridge.hpp" +#ifdef _OPENMP +#include +#endif /* _OPENMP */ + +#if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS) +#define CYTHON_WITHOUT_ASSERTIONS +#endif + +typedef struct {PyObject **p; const char *s; const Py_ssize_t n; const char* encoding; + const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; + +#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0 +#define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0 +#define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT (PY_MAJOR_VERSION >= 3 && __PYX_DEFAULT_STRING_ENCODING_IS_UTF8) +#define __PYX_DEFAULT_STRING_ENCODING "" +#define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString +#define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize +#define __Pyx_uchar_cast(c) ((unsigned char)c) +#define __Pyx_long_cast(x) ((long)x) +#define __Pyx_fits_Py_ssize_t(v, type, is_signed) (\ + (sizeof(type) < sizeof(Py_ssize_t)) ||\ + (sizeof(type) > sizeof(Py_ssize_t) &&\ + likely(v < (type)PY_SSIZE_T_MAX ||\ + v == (type)PY_SSIZE_T_MAX) &&\ + (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\ + v == (type)PY_SSIZE_T_MIN))) ||\ + (sizeof(type) == sizeof(Py_ssize_t) &&\ + (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\ + v == (type)PY_SSIZE_T_MAX))) ) +static CYTHON_INLINE int __Pyx_is_valid_index(Py_ssize_t i, Py_ssize_t limit) { + return (size_t) i < (size_t) limit; +} +#if defined (__cplusplus) && __cplusplus >= 201103L + #include + #define __Pyx_sst_abs(value) std::abs(value) +#elif SIZEOF_INT >= SIZEOF_SIZE_T + #define __Pyx_sst_abs(value) abs(value) +#elif SIZEOF_LONG >= SIZEOF_SIZE_T + #define __Pyx_sst_abs(value) labs(value) +#elif defined (_MSC_VER) + #define __Pyx_sst_abs(value) ((Py_ssize_t)_abs64(value)) +#elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L + #define __Pyx_sst_abs(value) llabs(value) +#elif defined (__GNUC__) + #define __Pyx_sst_abs(value) __builtin_llabs(value) +#else + #define __Pyx_sst_abs(value) ((value<0) ? -value : value) +#endif +static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject*); +static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length); +#define __Pyx_PyByteArray_FromString(s) PyByteArray_FromStringAndSize((const char*)s, strlen((const char*)s)) +#define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l) +#define __Pyx_PyBytes_FromString PyBytes_FromString +#define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize +static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*); +#if PY_MAJOR_VERSION < 3 + #define __Pyx_PyStr_FromString __Pyx_PyBytes_FromString + #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize +#else + #define __Pyx_PyStr_FromString __Pyx_PyUnicode_FromString + #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize +#endif +#define __Pyx_PyBytes_AsWritableString(s) ((char*) PyBytes_AS_STRING(s)) +#define __Pyx_PyBytes_AsWritableSString(s) ((signed char*) PyBytes_AS_STRING(s)) +#define __Pyx_PyBytes_AsWritableUString(s) ((unsigned char*) PyBytes_AS_STRING(s)) +#define __Pyx_PyBytes_AsString(s) ((const char*) PyBytes_AS_STRING(s)) +#define __Pyx_PyBytes_AsSString(s) ((const signed char*) PyBytes_AS_STRING(s)) +#define __Pyx_PyBytes_AsUString(s) ((const unsigned char*) PyBytes_AS_STRING(s)) +#define __Pyx_PyObject_AsWritableString(s) ((char*) __Pyx_PyObject_AsString(s)) +#define __Pyx_PyObject_AsWritableSString(s) ((signed char*) __Pyx_PyObject_AsString(s)) +#define __Pyx_PyObject_AsWritableUString(s) ((unsigned char*) __Pyx_PyObject_AsString(s)) +#define __Pyx_PyObject_AsSString(s) ((const signed char*) __Pyx_PyObject_AsString(s)) +#define __Pyx_PyObject_AsUString(s) ((const unsigned char*) __Pyx_PyObject_AsString(s)) +#define __Pyx_PyObject_FromCString(s) __Pyx_PyObject_FromString((const char*)s) +#define __Pyx_PyBytes_FromCString(s) __Pyx_PyBytes_FromString((const char*)s) +#define __Pyx_PyByteArray_FromCString(s) __Pyx_PyByteArray_FromString((const char*)s) +#define __Pyx_PyStr_FromCString(s) __Pyx_PyStr_FromString((const char*)s) +#define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s) +static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u) { + const Py_UNICODE *u_end = u; + while (*u_end++) ; + return (size_t)(u_end - u - 1); +} +#define __Pyx_PyUnicode_FromUnicode(u) PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u)) +#define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode +#define __Pyx_PyUnicode_AsUnicode PyUnicode_AsUnicode +#define __Pyx_NewRef(obj) (Py_INCREF(obj), obj) +#define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None) +static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b); +static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*); +static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject*); +static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x); +#define __Pyx_PySequence_Tuple(obj)\ + (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj)) +static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*); +static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t); +#if CYTHON_ASSUME_SAFE_MACROS +#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x)) +#else +#define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x) +#endif +#define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x)) +#if PY_MAJOR_VERSION >= 3 +#define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x)) +#else +#define __Pyx_PyNumber_Int(x) (PyInt_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Int(x)) +#endif +#define __Pyx_PyNumber_Float(x) (PyFloat_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Float(x)) +#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII +static int __Pyx_sys_getdefaultencoding_not_ascii; +static int __Pyx_init_sys_getdefaultencoding_params(void) { + PyObject* sys; + PyObject* default_encoding = NULL; + PyObject* ascii_chars_u = NULL; + PyObject* ascii_chars_b = NULL; + const char* default_encoding_c; + sys = PyImport_ImportModule("sys"); + if (!sys) goto bad; + default_encoding = PyObject_CallMethod(sys, (char*) "getdefaultencoding", NULL); + Py_DECREF(sys); + if (!default_encoding) goto bad; + default_encoding_c = PyBytes_AsString(default_encoding); + if (!default_encoding_c) goto bad; + if (strcmp(default_encoding_c, "ascii") == 0) { + __Pyx_sys_getdefaultencoding_not_ascii = 0; + } else { + char ascii_chars[128]; + int c; + for (c = 0; c < 128; c++) { + ascii_chars[c] = c; + } + __Pyx_sys_getdefaultencoding_not_ascii = 1; + ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL); + if (!ascii_chars_u) goto bad; + ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL); + if (!ascii_chars_b || !PyBytes_Check(ascii_chars_b) || memcmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) { + PyErr_Format( + PyExc_ValueError, + "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.", + default_encoding_c); + goto bad; + } + Py_DECREF(ascii_chars_u); + Py_DECREF(ascii_chars_b); + } + Py_DECREF(default_encoding); + return 0; +bad: + Py_XDECREF(default_encoding); + Py_XDECREF(ascii_chars_u); + Py_XDECREF(ascii_chars_b); + return -1; +} +#endif +#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3 +#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL) +#else +#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL) +#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT +static char* __PYX_DEFAULT_STRING_ENCODING; +static int __Pyx_init_sys_getdefaultencoding_params(void) { + PyObject* sys; + PyObject* default_encoding = NULL; + char* default_encoding_c; + sys = PyImport_ImportModule("sys"); + if (!sys) goto bad; + default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL); + Py_DECREF(sys); + if (!default_encoding) goto bad; + default_encoding_c = PyBytes_AsString(default_encoding); + if (!default_encoding_c) goto bad; + __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c) + 1); + if (!__PYX_DEFAULT_STRING_ENCODING) goto bad; + strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c); + Py_DECREF(default_encoding); + return 0; +bad: + Py_XDECREF(default_encoding); + return -1; +} +#endif +#endif + + +/* Test for GCC > 2.95 */ +#if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95))) + #define likely(x) __builtin_expect(!!(x), 1) + #define unlikely(x) __builtin_expect(!!(x), 0) +#else /* !__GNUC__ or GCC < 2.95 */ + #define likely(x) (x) + #define unlikely(x) (x) +#endif /* __GNUC__ */ +static CYTHON_INLINE void __Pyx_pretend_to_initialize(void* ptr) { (void)ptr; } + +static PyObject *__pyx_m = NULL; +static PyObject *__pyx_d; +static PyObject *__pyx_b; +static PyObject *__pyx_cython_runtime = NULL; +static PyObject *__pyx_empty_tuple; +static PyObject *__pyx_empty_bytes; +static PyObject *__pyx_empty_unicode; +static int __pyx_lineno; +static int __pyx_clineno = 0; +static const char * __pyx_cfilenm= __FILE__; +static const char *__pyx_filename; + + +static const char *__pyx_f[] = { + "stringsource", + "reccdi/src_py/cyth/bridge_opencl.pyx", +}; + +/*--- Type declarations ---*/ +struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge; + +/* "reccdi/src_py/cyth/bridge_opencl.pyx":36 + * + * + * cdef class PyBridge: # <<<<<<<<<<<<<< + * cdef Bridge *thisptr + * def __cinit__(self): + */ +struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge { + PyObject_HEAD + Bridge *thisptr; +}; + + +/* --- Runtime support code (head) --- */ +/* Refnanny.proto */ +#ifndef CYTHON_REFNANNY + #define CYTHON_REFNANNY 0 +#endif +#if CYTHON_REFNANNY + typedef struct { + void (*INCREF)(void*, PyObject*, int); + void (*DECREF)(void*, PyObject*, int); + void (*GOTREF)(void*, PyObject*, int); + void (*GIVEREF)(void*, PyObject*, int); + void* (*SetupContext)(const char*, int, const char*); + void (*FinishContext)(void**); + } __Pyx_RefNannyAPIStruct; + static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL; + static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname); + #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL; +#ifdef WITH_THREAD + #define __Pyx_RefNannySetupContext(name, acquire_gil)\ + if (acquire_gil) {\ + PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\ + __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\ + PyGILState_Release(__pyx_gilstate_save);\ + } else {\ + __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\ + } +#else + #define __Pyx_RefNannySetupContext(name, acquire_gil)\ + __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__) +#endif + #define __Pyx_RefNannyFinishContext()\ + __Pyx_RefNanny->FinishContext(&__pyx_refnanny) + #define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__) + #define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__) + #define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__) + #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__) + #define __Pyx_XINCREF(r) do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0) + #define __Pyx_XDECREF(r) do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0) + #define __Pyx_XGOTREF(r) do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0) + #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0) +#else + #define __Pyx_RefNannyDeclarations + #define __Pyx_RefNannySetupContext(name, acquire_gil) + #define __Pyx_RefNannyFinishContext() + #define __Pyx_INCREF(r) Py_INCREF(r) + #define __Pyx_DECREF(r) Py_DECREF(r) + #define __Pyx_GOTREF(r) + #define __Pyx_GIVEREF(r) + #define __Pyx_XINCREF(r) Py_XINCREF(r) + #define __Pyx_XDECREF(r) Py_XDECREF(r) + #define __Pyx_XGOTREF(r) + #define __Pyx_XGIVEREF(r) +#endif +#define __Pyx_XDECREF_SET(r, v) do {\ + PyObject *tmp = (PyObject *) r;\ + r = v; __Pyx_XDECREF(tmp);\ + } while (0) +#define __Pyx_DECREF_SET(r, v) do {\ + PyObject *tmp = (PyObject *) r;\ + r = v; __Pyx_DECREF(tmp);\ + } while (0) +#define __Pyx_CLEAR(r) do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0) +#define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0) + +/* PyObjectGetAttrStr.proto */ +#if CYTHON_USE_TYPE_SLOTS +static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name); +#else +#define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n) +#endif + +/* GetBuiltinName.proto */ +static PyObject *__Pyx_GetBuiltinName(PyObject *name); + +/* RaiseArgTupleInvalid.proto */ +static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact, + Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); + +/* KeywordStringCheck.proto */ +static int __Pyx_CheckKeywordStrings(PyObject *kwdict, const char* function_name, int kw_allowed); + +/* RaiseDoubleKeywords.proto */ +static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name); + +/* ParseKeywords.proto */ +static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[],\ + PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args,\ + const char* function_name); + +/* PyFunctionFastCall.proto */ +#if CYTHON_FAST_PYCALL +#define __Pyx_PyFunction_FastCall(func, args, nargs)\ + __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL) +#if 1 || PY_VERSION_HEX < 0x030600B1 +static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs); +#else +#define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs) +#endif +#define __Pyx_BUILD_ASSERT_EXPR(cond)\ + (sizeof(char [1 - 2*!(cond)]) - 1) +#ifndef Py_MEMBER_SIZE +#define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member) +#endif + static size_t __pyx_pyframe_localsplus_offset = 0; + #include "frameobject.h" + #define __Pxy_PyFrame_Initialize_Offsets()\ + ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\ + (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus))) + #define __Pyx_PyFrame_GetLocalsplus(frame)\ + (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset)) +#endif + +/* PyObjectCall.proto */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw); +#else +#define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw) +#endif + +/* PyObjectCallMethO.proto */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg); +#endif + +/* PyObjectCallNoArg.proto */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func); +#else +#define __Pyx_PyObject_CallNoArg(func) __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL) +#endif + +/* PyCFunctionFastCall.proto */ +#if CYTHON_FAST_PYCCALL +static CYTHON_INLINE PyObject *__Pyx_PyCFunction_FastCall(PyObject *func, PyObject **args, Py_ssize_t nargs); +#else +#define __Pyx_PyCFunction_FastCall(func, args, nargs) (assert(0), NULL) +#endif + +/* PyObjectCallOneArg.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg); + +/* PyThreadStateGet.proto */ +#if CYTHON_FAST_THREAD_STATE +#define __Pyx_PyThreadState_declare PyThreadState *__pyx_tstate; +#define __Pyx_PyThreadState_assign __pyx_tstate = __Pyx_PyThreadState_Current; +#define __Pyx_PyErr_Occurred() __pyx_tstate->curexc_type +#else +#define __Pyx_PyThreadState_declare +#define __Pyx_PyThreadState_assign +#define __Pyx_PyErr_Occurred() PyErr_Occurred() +#endif + +/* PyErrFetchRestore.proto */ +#if CYTHON_FAST_THREAD_STATE +#define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL) +#define __Pyx_ErrRestoreWithState(type, value, tb) __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb) +#define __Pyx_ErrFetchWithState(type, value, tb) __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb) +#define __Pyx_ErrRestore(type, value, tb) __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb) +#define __Pyx_ErrFetch(type, value, tb) __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb) +static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb); +static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); +#if CYTHON_COMPILING_IN_CPYTHON +#define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL)) +#else +#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) +#endif +#else +#define __Pyx_PyErr_Clear() PyErr_Clear() +#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) +#define __Pyx_ErrRestoreWithState(type, value, tb) PyErr_Restore(type, value, tb) +#define __Pyx_ErrFetchWithState(type, value, tb) PyErr_Fetch(type, value, tb) +#define __Pyx_ErrRestoreInState(tstate, type, value, tb) PyErr_Restore(type, value, tb) +#define __Pyx_ErrFetchInState(tstate, type, value, tb) PyErr_Fetch(type, value, tb) +#define __Pyx_ErrRestore(type, value, tb) PyErr_Restore(type, value, tb) +#define __Pyx_ErrFetch(type, value, tb) PyErr_Fetch(type, value, tb) +#endif + +/* RaiseException.proto */ +static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); + +/* ListCompAppend.proto */ +#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS +static CYTHON_INLINE int __Pyx_ListComp_Append(PyObject* list, PyObject* x) { + PyListObject* L = (PyListObject*) list; + Py_ssize_t len = Py_SIZE(list); + if (likely(L->allocated > len)) { + Py_INCREF(x); + PyList_SET_ITEM(list, len, x); + Py_SIZE(list) = len+1; + return 0; + } + return PyList_Append(list, x); +} +#else +#define __Pyx_ListComp_Append(L,x) PyList_Append(L,x) +#endif + +/* PyObject_GenericGetAttrNoDict.proto */ +#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 +static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name); +#else +#define __Pyx_PyObject_GenericGetAttrNoDict PyObject_GenericGetAttr +#endif + +/* PyObject_GenericGetAttr.proto */ +#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 +static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name); +#else +#define __Pyx_PyObject_GenericGetAttr PyObject_GenericGetAttr +#endif + +/* SetupReduce.proto */ +static int __Pyx_setup_reduce(PyObject* type_obj); + +/* PyDictVersioning.proto */ +#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS +#define __PYX_DICT_VERSION_INIT ((PY_UINT64_T) -1) +#define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag) +#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\ + (version_var) = __PYX_GET_DICT_VERSION(dict);\ + (cache_var) = (value); +#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\ + static PY_UINT64_T __pyx_dict_version = 0;\ + static PyObject *__pyx_dict_cached_value = NULL;\ + if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\ + (VAR) = __pyx_dict_cached_value;\ + } else {\ + (VAR) = __pyx_dict_cached_value = (LOOKUP);\ + __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\ + }\ +} +static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj); +static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj); +static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version); +#else +#define __PYX_GET_DICT_VERSION(dict) (0) +#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var) +#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) (VAR) = (LOOKUP); +#endif + +/* CLineInTraceback.proto */ +#ifdef CYTHON_CLINE_IN_TRACEBACK +#define __Pyx_CLineForTraceback(tstate, c_line) (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0) +#else +static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line); +#endif + +/* CodeObjectCache.proto */ +typedef struct { + PyCodeObject* code_object; + int code_line; +} __Pyx_CodeObjectCacheEntry; +struct __Pyx_CodeObjectCache { + int count; + int max_count; + __Pyx_CodeObjectCacheEntry* entries; +}; +static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL}; +static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line); +static PyCodeObject *__pyx_find_code_object(int code_line); +static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object); + +/* AddTraceback.proto */ +static void __Pyx_AddTraceback(const char *funcname, int c_line, + int py_line, const char *filename); + +/* CppExceptionConversion.proto */ +#ifndef __Pyx_CppExn2PyErr +#include +#include +#include +#include +static void __Pyx_CppExn2PyErr() { + try { + if (PyErr_Occurred()) + ; // let the latest Python exn pass through and ignore the current one + else + throw; + } catch (const std::bad_alloc& exn) { + PyErr_SetString(PyExc_MemoryError, exn.what()); + } catch (const std::bad_cast& exn) { + PyErr_SetString(PyExc_TypeError, exn.what()); + } catch (const std::bad_typeid& exn) { + PyErr_SetString(PyExc_TypeError, exn.what()); + } catch (const std::domain_error& exn) { + PyErr_SetString(PyExc_ValueError, exn.what()); + } catch (const std::invalid_argument& exn) { + PyErr_SetString(PyExc_ValueError, exn.what()); + } catch (const std::ios_base::failure& exn) { + PyErr_SetString(PyExc_IOError, exn.what()); + } catch (const std::out_of_range& exn) { + PyErr_SetString(PyExc_IndexError, exn.what()); + } catch (const std::overflow_error& exn) { + PyErr_SetString(PyExc_OverflowError, exn.what()); + } catch (const std::range_error& exn) { + PyErr_SetString(PyExc_ArithmeticError, exn.what()); + } catch (const std::underflow_error& exn) { + PyErr_SetString(PyExc_ArithmeticError, exn.what()); + } catch (const std::exception& exn) { + PyErr_SetString(PyExc_RuntimeError, exn.what()); + } + catch (...) + { + PyErr_SetString(PyExc_RuntimeError, "Unknown exception"); + } +} +#endif + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); + +/* CIntFromPy.proto */ +static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); + +/* CIntFromPy.proto */ +static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *); + +/* FastTypeChecks.proto */ +#if CYTHON_COMPILING_IN_CPYTHON +#define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type) +static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b); +static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type); +static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2); +#else +#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type) +#define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type) +#define __Pyx_PyErr_GivenExceptionMatches2(err, type1, type2) (PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2)) +#endif +#define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception) + +/* CheckBinaryVersion.proto */ +static int __Pyx_check_binary_version(void); + +/* InitStrings.proto */ +static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); + + +/* Module declarations from 'libcpp.vector' */ + +/* Module declarations from 'libc.string' */ + +/* Module declarations from 'libcpp.string' */ + +/* Module declarations from 'reccdi.src_py.cyth.bridge_opencl' */ +static PyTypeObject *__pyx_ptype_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge = 0; +static std::vector __pyx_convert_vector_from_py_float(PyObject *); /*proto*/ +static std::vector __pyx_convert_vector_from_py_int(PyObject *); /*proto*/ +static std::string __pyx_convert_string_from_py_std__in_string(PyObject *); /*proto*/ +static PyObject *__pyx_convert_vector_to_py_double(const std::vector &); /*proto*/ +static PyObject *__pyx_convert_vector_to_py_float(const std::vector &); /*proto*/ +static PyObject *__pyx_convert_vector_to_py_int(const std::vector &); /*proto*/ +#define __Pyx_MODULE_NAME "reccdi.src_py.cyth.bridge_opencl" +extern int __pyx_module_is_main_reccdi__src_py__cyth__bridge_opencl; +int __pyx_module_is_main_reccdi__src_py__cyth__bridge_opencl = 0; + +/* Implementation of 'reccdi.src_py.cyth.bridge_opencl' */ +static PyObject *__pyx_builtin_TypeError; +static PyObject *__pyx_builtin_range; +static const char __pyx_k_coh[] = "coh"; +static const char __pyx_k_dims[] = "dims"; +static const char __pyx_k_main[] = "__main__"; +static const char __pyx_k_name[] = "__name__"; +static const char __pyx_k_test[] = "__test__"; +static const char __pyx_k_range[] = "range"; +static const char __pyx_k_config[] = "config"; +static const char __pyx_k_data_r[] = "data_r"; +static const char __pyx_k_device[] = "device"; +static const char __pyx_k_encode[] = "encode"; +static const char __pyx_k_reduce[] = "__reduce__"; +static const char __pyx_k_guess_i[] = "guess_i"; +static const char __pyx_k_guess_r[] = "guess_r"; +static const char __pyx_k_support[] = "support"; +static const char __pyx_k_PyBridge[] = "PyBridge"; +static const char __pyx_k_coh_dims[] = "coh_dims"; +static const char __pyx_k_getstate[] = "__getstate__"; +static const char __pyx_k_setstate[] = "__setstate__"; +static const char __pyx_k_TypeError[] = "TypeError"; +static const char __pyx_k_reduce_ex[] = "__reduce_ex__"; +static const char __pyx_k_reduce_cython[] = "__reduce_cython__"; +static const char __pyx_k_setstate_cython[] = "__setstate_cython__"; +static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; +static const char __pyx_k_no_default___reduce___due_to_non[] = "no default __reduce__ due to non-trivial __cinit__"; +static PyObject *__pyx_n_s_PyBridge; +static PyObject *__pyx_n_s_TypeError; +static PyObject *__pyx_n_s_cline_in_traceback; +static PyObject *__pyx_n_s_coh; +static PyObject *__pyx_n_s_coh_dims; +static PyObject *__pyx_n_s_config; +static PyObject *__pyx_n_s_data_r; +static PyObject *__pyx_n_s_device; +static PyObject *__pyx_n_s_dims; +static PyObject *__pyx_n_s_encode; +static PyObject *__pyx_n_s_getstate; +static PyObject *__pyx_n_s_guess_i; +static PyObject *__pyx_n_s_guess_r; +static PyObject *__pyx_n_s_main; +static PyObject *__pyx_n_s_name; +static PyObject *__pyx_kp_s_no_default___reduce___due_to_non; +static PyObject *__pyx_n_s_range; +static PyObject *__pyx_n_s_reduce; +static PyObject *__pyx_n_s_reduce_cython; +static PyObject *__pyx_n_s_reduce_ex; +static PyObject *__pyx_n_s_setstate; +static PyObject *__pyx_n_s_setstate_cython; +static PyObject *__pyx_n_s_support; +static PyObject *__pyx_n_s_test; +static int __pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge___cinit__(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self); /* proto */ +static void __pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_2__dealloc__(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_4start_calc_with_guess(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_guess_r, PyObject *__pyx_v_guess_i, PyObject *__pyx_v_dims, PyObject *__pyx_v_config); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_6start_calc_with_guess_support(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_guess_r, PyObject *__pyx_v_guess_i, PyObject *__pyx_v_support, PyObject *__pyx_v_dims, PyObject *__pyx_v_config); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_8start_calc_with_guess_support_coh(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_guess_r, PyObject *__pyx_v_guess_i, PyObject *__pyx_v_support, PyObject *__pyx_v_dims, PyObject *__pyx_v_coh, PyObject *__pyx_v_coh_dims, PyObject *__pyx_v_config); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_10start_calc(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_dims, PyObject *__pyx_v_config); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_12get_image_r(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_14get_image_i(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_16get_errors(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_18get_support(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_20get_coherence(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_22get_reciprocal_r(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_24get_reciprocal_i(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_26get_flow(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_28get_iter_flow(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_30cleanup(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_32__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_34__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ +static PyObject *__pyx_tp_new_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tuple_; +static PyObject *__pyx_tuple__2; +/* Late includes */ + +/* "reccdi/src_py/cyth/bridge_opencl.pyx":38 + * cdef class PyBridge: + * cdef Bridge *thisptr + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.thisptr = new Bridge() + * def __dealloc__(self): + */ + +/* Python wrapper */ +static int __pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge___cinit__(((struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge___cinit__(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self) { + int __pyx_r; + __Pyx_RefNannyDeclarations + Bridge *__pyx_t_1; + __Pyx_RefNannySetupContext("__cinit__", 0); + + /* "reccdi/src_py/cyth/bridge_opencl.pyx":39 + * cdef Bridge *thisptr + * def __cinit__(self): + * self.thisptr = new Bridge() # <<<<<<<<<<<<<< + * def __dealloc__(self): + * del self.thisptr + */ + try { + __pyx_t_1 = new Bridge(); + } catch(...) { + __Pyx_CppExn2PyErr(); + __PYX_ERR(1, 39, __pyx_L1_error) + } + __pyx_v_self->thisptr = __pyx_t_1; + + /* "reccdi/src_py/cyth/bridge_opencl.pyx":38 + * cdef class PyBridge: + * cdef Bridge *thisptr + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.thisptr = new Bridge() + * def __dealloc__(self): + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_opencl.PyBridge.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "reccdi/src_py/cyth/bridge_opencl.pyx":40 + * def __cinit__(self): + * self.thisptr = new Bridge() + * def __dealloc__(self): # <<<<<<<<<<<<<< + * del self.thisptr + * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): + */ + +/* Python wrapper */ +static void __pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_3__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_3__dealloc__(PyObject *__pyx_v_self) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_2__dealloc__(((struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_2__dealloc__(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__", 0); + + /* "reccdi/src_py/cyth/bridge_opencl.pyx":41 + * self.thisptr = new Bridge() + * def __dealloc__(self): + * del self.thisptr # <<<<<<<<<<<<<< + * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): + * self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) + */ + delete __pyx_v_self->thisptr; + + /* "reccdi/src_py/cyth/bridge_opencl.pyx":40 + * def __cinit__(self): + * self.thisptr = new Bridge() + * def __dealloc__(self): # <<<<<<<<<<<<<< + * del self.thisptr + * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): + */ + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +/* "reccdi/src_py/cyth/bridge_opencl.pyx":42 + * def __dealloc__(self): + * del self.thisptr + * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): # <<<<<<<<<<<<<< + * self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) + * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_5start_calc_with_guess(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_5start_calc_with_guess(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_device = 0; + PyObject *__pyx_v_data_r = 0; + PyObject *__pyx_v_guess_r = 0; + PyObject *__pyx_v_guess_i = 0; + PyObject *__pyx_v_dims = 0; + PyObject *__pyx_v_config = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("start_calc_with_guess (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_device,&__pyx_n_s_data_r,&__pyx_n_s_guess_r,&__pyx_n_s_guess_i,&__pyx_n_s_dims,&__pyx_n_s_config,0}; + PyObject* values[6] = {0,0,0,0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_device)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_data_r)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess", 1, 6, 6, 1); __PYX_ERR(1, 42, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_guess_r)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess", 1, 6, 6, 2); __PYX_ERR(1, 42, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_guess_i)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess", 1, 6, 6, 3); __PYX_ERR(1, 42, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 4: + if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dims)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess", 1, 6, 6, 4); __PYX_ERR(1, 42, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 5: + if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_config)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess", 1, 6, 6, 5); __PYX_ERR(1, 42, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "start_calc_with_guess") < 0)) __PYX_ERR(1, 42, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 6) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + } + __pyx_v_device = values[0]; + __pyx_v_data_r = values[1]; + __pyx_v_guess_r = values[2]; + __pyx_v_guess_i = values[3]; + __pyx_v_dims = values[4]; + __pyx_v_config = values[5]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 42, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_opencl.PyBridge.start_calc_with_guess", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_4start_calc_with_guess(((struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *)__pyx_v_self), __pyx_v_device, __pyx_v_data_r, __pyx_v_guess_r, __pyx_v_guess_i, __pyx_v_dims, __pyx_v_config); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_4start_calc_with_guess(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_guess_r, PyObject *__pyx_v_guess_i, PyObject *__pyx_v_dims, PyObject *__pyx_v_config) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + std::vector __pyx_t_2; + std::vector __pyx_t_3; + std::vector __pyx_t_4; + std::vector __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + std::string __pyx_t_9; + __Pyx_RefNannySetupContext("start_calc_with_guess", 0); + + /* "reccdi/src_py/cyth/bridge_opencl.pyx":43 + * del self.thisptr + * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): + * self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) # <<<<<<<<<<<<<< + * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): + * self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) + */ + __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_device); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 43, __pyx_L1_error) + __pyx_t_2 = __pyx_convert_vector_from_py_float(__pyx_v_data_r); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 43, __pyx_L1_error) + __pyx_t_3 = __pyx_convert_vector_from_py_float(__pyx_v_guess_r); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 43, __pyx_L1_error) + __pyx_t_4 = __pyx_convert_vector_from_py_float(__pyx_v_guess_i); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 43, __pyx_L1_error) + __pyx_t_5 = __pyx_convert_vector_from_py_int(__pyx_v_dims); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 43, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_config, __pyx_n_s_encode); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 43, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_7, function); + } + } + __pyx_t_6 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 43, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_9 = __pyx_convert_string_from_py_std__in_string(__pyx_t_6); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 43, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_v_self->thisptr->StartCalcWithGuess(__pyx_t_1, __pyx_t_2, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_9); + + /* "reccdi/src_py/cyth/bridge_opencl.pyx":42 + * def __dealloc__(self): + * del self.thisptr + * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): # <<<<<<<<<<<<<< + * self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) + * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_opencl.PyBridge.start_calc_with_guess", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "reccdi/src_py/cyth/bridge_opencl.pyx":44 + * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): + * self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) + * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): # <<<<<<<<<<<<<< + * self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) + * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_7start_calc_with_guess_support(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_7start_calc_with_guess_support(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_device = 0; + PyObject *__pyx_v_data_r = 0; + PyObject *__pyx_v_guess_r = 0; + PyObject *__pyx_v_guess_i = 0; + PyObject *__pyx_v_support = 0; + PyObject *__pyx_v_dims = 0; + PyObject *__pyx_v_config = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("start_calc_with_guess_support (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_device,&__pyx_n_s_data_r,&__pyx_n_s_guess_r,&__pyx_n_s_guess_i,&__pyx_n_s_support,&__pyx_n_s_dims,&__pyx_n_s_config,0}; + PyObject* values[7] = {0,0,0,0,0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); + CYTHON_FALLTHROUGH; + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_device)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_data_r)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support", 1, 7, 7, 1); __PYX_ERR(1, 44, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_guess_r)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support", 1, 7, 7, 2); __PYX_ERR(1, 44, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_guess_i)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support", 1, 7, 7, 3); __PYX_ERR(1, 44, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 4: + if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_support)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support", 1, 7, 7, 4); __PYX_ERR(1, 44, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 5: + if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dims)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support", 1, 7, 7, 5); __PYX_ERR(1, 44, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 6: + if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_config)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support", 1, 7, 7, 6); __PYX_ERR(1, 44, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "start_calc_with_guess_support") < 0)) __PYX_ERR(1, 44, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 7) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + values[6] = PyTuple_GET_ITEM(__pyx_args, 6); + } + __pyx_v_device = values[0]; + __pyx_v_data_r = values[1]; + __pyx_v_guess_r = values[2]; + __pyx_v_guess_i = values[3]; + __pyx_v_support = values[4]; + __pyx_v_dims = values[5]; + __pyx_v_config = values[6]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support", 1, 7, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 44, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_opencl.PyBridge.start_calc_with_guess_support", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_6start_calc_with_guess_support(((struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *)__pyx_v_self), __pyx_v_device, __pyx_v_data_r, __pyx_v_guess_r, __pyx_v_guess_i, __pyx_v_support, __pyx_v_dims, __pyx_v_config); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_6start_calc_with_guess_support(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_guess_r, PyObject *__pyx_v_guess_i, PyObject *__pyx_v_support, PyObject *__pyx_v_dims, PyObject *__pyx_v_config) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + std::vector __pyx_t_2; + std::vector __pyx_t_3; + std::vector __pyx_t_4; + std::vector __pyx_t_5; + std::vector __pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + std::string __pyx_t_10; + __Pyx_RefNannySetupContext("start_calc_with_guess_support", 0); + + /* "reccdi/src_py/cyth/bridge_opencl.pyx":45 + * self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) + * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): + * self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) # <<<<<<<<<<<<<< + * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): + * self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) + */ + __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_device); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 45, __pyx_L1_error) + __pyx_t_2 = __pyx_convert_vector_from_py_float(__pyx_v_data_r); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 45, __pyx_L1_error) + __pyx_t_3 = __pyx_convert_vector_from_py_float(__pyx_v_guess_r); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 45, __pyx_L1_error) + __pyx_t_4 = __pyx_convert_vector_from_py_float(__pyx_v_guess_i); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 45, __pyx_L1_error) + __pyx_t_5 = __pyx_convert_vector_from_py_int(__pyx_v_support); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 45, __pyx_L1_error) + __pyx_t_6 = __pyx_convert_vector_from_py_int(__pyx_v_dims); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 45, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_config, __pyx_n_s_encode); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 45, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_9 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { + __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8); + if (likely(__pyx_t_9)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); + __Pyx_INCREF(__pyx_t_9); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_8, function); + } + } + __pyx_t_7 = (__pyx_t_9) ? __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_9) : __Pyx_PyObject_CallNoArg(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 45, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_10 = __pyx_convert_string_from_py_std__in_string(__pyx_t_7); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 45, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_v_self->thisptr->StartCalcWithGuessSupport(__pyx_t_1, __pyx_t_2, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6, __pyx_t_10); + + /* "reccdi/src_py/cyth/bridge_opencl.pyx":44 + * def start_calc_with_guess(self, device, data_r, guess_r, guess_i, dims, config): + * self.thisptr.StartCalcWithGuess(device, data_r, guess_r, guess_i, dims, config.encode()) + * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): # <<<<<<<<<<<<<< + * self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) + * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_opencl.PyBridge.start_calc_with_guess_support", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "reccdi/src_py/cyth/bridge_opencl.pyx":46 + * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): + * self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) + * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): # <<<<<<<<<<<<<< + * self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) + * def start_calc(self, device, data_r, dims, config): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_9start_calc_with_guess_support_coh(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_9start_calc_with_guess_support_coh(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_device = 0; + PyObject *__pyx_v_data_r = 0; + PyObject *__pyx_v_guess_r = 0; + PyObject *__pyx_v_guess_i = 0; + PyObject *__pyx_v_support = 0; + PyObject *__pyx_v_dims = 0; + PyObject *__pyx_v_coh = 0; + PyObject *__pyx_v_coh_dims = 0; + PyObject *__pyx_v_config = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("start_calc_with_guess_support_coh (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_device,&__pyx_n_s_data_r,&__pyx_n_s_guess_r,&__pyx_n_s_guess_i,&__pyx_n_s_support,&__pyx_n_s_dims,&__pyx_n_s_coh,&__pyx_n_s_coh_dims,&__pyx_n_s_config,0}; + PyObject* values[9] = {0,0,0,0,0,0,0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8); + CYTHON_FALLTHROUGH; + case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7); + CYTHON_FALLTHROUGH; + case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); + CYTHON_FALLTHROUGH; + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_device)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_data_r)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 1); __PYX_ERR(1, 46, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_guess_r)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 2); __PYX_ERR(1, 46, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_guess_i)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 3); __PYX_ERR(1, 46, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 4: + if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_support)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 4); __PYX_ERR(1, 46, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 5: + if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dims)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 5); __PYX_ERR(1, 46, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 6: + if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_coh)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 6); __PYX_ERR(1, 46, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 7: + if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_coh_dims)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 7); __PYX_ERR(1, 46, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 8: + if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_config)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, 8); __PYX_ERR(1, 46, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "start_calc_with_guess_support_coh") < 0)) __PYX_ERR(1, 46, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 9) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + values[6] = PyTuple_GET_ITEM(__pyx_args, 6); + values[7] = PyTuple_GET_ITEM(__pyx_args, 7); + values[8] = PyTuple_GET_ITEM(__pyx_args, 8); + } + __pyx_v_device = values[0]; + __pyx_v_data_r = values[1]; + __pyx_v_guess_r = values[2]; + __pyx_v_guess_i = values[3]; + __pyx_v_support = values[4]; + __pyx_v_dims = values[5]; + __pyx_v_coh = values[6]; + __pyx_v_coh_dims = values[7]; + __pyx_v_config = values[8]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("start_calc_with_guess_support_coh", 1, 9, 9, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 46, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_opencl.PyBridge.start_calc_with_guess_support_coh", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_8start_calc_with_guess_support_coh(((struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *)__pyx_v_self), __pyx_v_device, __pyx_v_data_r, __pyx_v_guess_r, __pyx_v_guess_i, __pyx_v_support, __pyx_v_dims, __pyx_v_coh, __pyx_v_coh_dims, __pyx_v_config); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_8start_calc_with_guess_support_coh(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_guess_r, PyObject *__pyx_v_guess_i, PyObject *__pyx_v_support, PyObject *__pyx_v_dims, PyObject *__pyx_v_coh, PyObject *__pyx_v_coh_dims, PyObject *__pyx_v_config) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + std::vector __pyx_t_2; + std::vector __pyx_t_3; + std::vector __pyx_t_4; + std::vector __pyx_t_5; + std::vector __pyx_t_6; + std::vector __pyx_t_7; + std::vector __pyx_t_8; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + std::string __pyx_t_12; + __Pyx_RefNannySetupContext("start_calc_with_guess_support_coh", 0); + + /* "reccdi/src_py/cyth/bridge_opencl.pyx":47 + * self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) + * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): + * self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) # <<<<<<<<<<<<<< + * def start_calc(self, device, data_r, dims, config): + * self.thisptr.StartCalc(device, data_r, dims, config.encode()) + */ + __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_device); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 47, __pyx_L1_error) + __pyx_t_2 = __pyx_convert_vector_from_py_float(__pyx_v_data_r); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 47, __pyx_L1_error) + __pyx_t_3 = __pyx_convert_vector_from_py_float(__pyx_v_guess_r); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 47, __pyx_L1_error) + __pyx_t_4 = __pyx_convert_vector_from_py_float(__pyx_v_guess_i); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 47, __pyx_L1_error) + __pyx_t_5 = __pyx_convert_vector_from_py_int(__pyx_v_support); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 47, __pyx_L1_error) + __pyx_t_6 = __pyx_convert_vector_from_py_int(__pyx_v_dims); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 47, __pyx_L1_error) + __pyx_t_7 = __pyx_convert_vector_from_py_float(__pyx_v_coh); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 47, __pyx_L1_error) + __pyx_t_8 = __pyx_convert_vector_from_py_int(__pyx_v_coh_dims); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 47, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_config, __pyx_n_s_encode); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 47, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_11 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) { + __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_10); + if (likely(__pyx_t_11)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); + __Pyx_INCREF(__pyx_t_11); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_10, function); + } + } + __pyx_t_9 = (__pyx_t_11) ? __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_11) : __Pyx_PyObject_CallNoArg(__pyx_t_10); + __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 47, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_12 = __pyx_convert_string_from_py_std__in_string(__pyx_t_9); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 47, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_v_self->thisptr->StartCalcWithGuessSupportCoh(__pyx_t_1, __pyx_t_2, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6, __pyx_t_7, __pyx_t_8, __pyx_t_12); + + /* "reccdi/src_py/cyth/bridge_opencl.pyx":46 + * def start_calc_with_guess_support(self, device, data_r, guess_r, guess_i, support, dims, config): + * self.thisptr.StartCalcWithGuessSupport(device, data_r, guess_r, guess_i, support, dims, config.encode()) + * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): # <<<<<<<<<<<<<< + * self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) + * def start_calc(self, device, data_r, dims, config): + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_XDECREF(__pyx_t_11); + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_opencl.PyBridge.start_calc_with_guess_support_coh", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "reccdi/src_py/cyth/bridge_opencl.pyx":48 + * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): + * self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) + * def start_calc(self, device, data_r, dims, config): # <<<<<<<<<<<<<< + * self.thisptr.StartCalc(device, data_r, dims, config.encode()) + * def get_image_r(self): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_11start_calc(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_11start_calc(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_device = 0; + PyObject *__pyx_v_data_r = 0; + PyObject *__pyx_v_dims = 0; + PyObject *__pyx_v_config = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("start_calc (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_device,&__pyx_n_s_data_r,&__pyx_n_s_dims,&__pyx_n_s_config,0}; + PyObject* values[4] = {0,0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_device)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_data_r)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc", 1, 4, 4, 1); __PYX_ERR(1, 48, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dims)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc", 1, 4, 4, 2); __PYX_ERR(1, 48, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_config)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("start_calc", 1, 4, 4, 3); __PYX_ERR(1, 48, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "start_calc") < 0)) __PYX_ERR(1, 48, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + } + __pyx_v_device = values[0]; + __pyx_v_data_r = values[1]; + __pyx_v_dims = values[2]; + __pyx_v_config = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("start_calc", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 48, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_opencl.PyBridge.start_calc", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_10start_calc(((struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *)__pyx_v_self), __pyx_v_device, __pyx_v_data_r, __pyx_v_dims, __pyx_v_config); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_10start_calc(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self, PyObject *__pyx_v_device, PyObject *__pyx_v_data_r, PyObject *__pyx_v_dims, PyObject *__pyx_v_config) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + std::vector __pyx_t_2; + std::vector __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + std::string __pyx_t_7; + __Pyx_RefNannySetupContext("start_calc", 0); + + /* "reccdi/src_py/cyth/bridge_opencl.pyx":49 + * self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) + * def start_calc(self, device, data_r, dims, config): + * self.thisptr.StartCalc(device, data_r, dims, config.encode()) # <<<<<<<<<<<<<< + * def get_image_r(self): + * return self.thisptr.GetImageR() + */ + __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_device); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 49, __pyx_L1_error) + __pyx_t_2 = __pyx_convert_vector_from_py_float(__pyx_v_data_r); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 49, __pyx_L1_error) + __pyx_t_3 = __pyx_convert_vector_from_py_int(__pyx_v_dims); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 49, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_config, __pyx_n_s_encode); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 49, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + } + } + __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 49, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_7 = __pyx_convert_string_from_py_std__in_string(__pyx_t_4); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 49, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_self->thisptr->StartCalc(__pyx_t_1, __pyx_t_2, __pyx_t_3, __pyx_t_7); + + /* "reccdi/src_py/cyth/bridge_opencl.pyx":48 + * def start_calc_with_guess_support_coh(self, device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config): + * self.thisptr.StartCalcWithGuessSupportCoh(device, data_r, guess_r, guess_i, support, dims, coh, coh_dims, config.encode()) + * def start_calc(self, device, data_r, dims, config): # <<<<<<<<<<<<<< + * self.thisptr.StartCalc(device, data_r, dims, config.encode()) + * def get_image_r(self): + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_opencl.PyBridge.start_calc", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "reccdi/src_py/cyth/bridge_opencl.pyx":50 + * def start_calc(self, device, data_r, dims, config): + * self.thisptr.StartCalc(device, data_r, dims, config.encode()) + * def get_image_r(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetImageR() + * def get_image_i(self): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_13get_image_r(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_13get_image_r(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_image_r (wrapper)", 0); + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_12get_image_r(((struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_12get_image_r(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("get_image_r", 0); + + /* "reccdi/src_py/cyth/bridge_opencl.pyx":51 + * self.thisptr.StartCalc(device, data_r, dims, config.encode()) + * def get_image_r(self): + * return self.thisptr.GetImageR() # <<<<<<<<<<<<<< + * def get_image_i(self): + * return self.thisptr.GetImageI() + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_self->thisptr->GetImageR()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 51, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "reccdi/src_py/cyth/bridge_opencl.pyx":50 + * def start_calc(self, device, data_r, dims, config): + * self.thisptr.StartCalc(device, data_r, dims, config.encode()) + * def get_image_r(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetImageR() + * def get_image_i(self): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_opencl.PyBridge.get_image_r", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "reccdi/src_py/cyth/bridge_opencl.pyx":52 + * def get_image_r(self): + * return self.thisptr.GetImageR() + * def get_image_i(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetImageI() + * def get_errors(self): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_15get_image_i(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_15get_image_i(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_image_i (wrapper)", 0); + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_14get_image_i(((struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_14get_image_i(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("get_image_i", 0); + + /* "reccdi/src_py/cyth/bridge_opencl.pyx":53 + * return self.thisptr.GetImageR() + * def get_image_i(self): + * return self.thisptr.GetImageI() # <<<<<<<<<<<<<< + * def get_errors(self): + * return self.thisptr.GetErrors() + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_self->thisptr->GetImageI()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 53, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "reccdi/src_py/cyth/bridge_opencl.pyx":52 + * def get_image_r(self): + * return self.thisptr.GetImageR() + * def get_image_i(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetImageI() + * def get_errors(self): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_opencl.PyBridge.get_image_i", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "reccdi/src_py/cyth/bridge_opencl.pyx":54 + * def get_image_i(self): + * return self.thisptr.GetImageI() + * def get_errors(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetErrors() + * def get_support(self): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_17get_errors(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_17get_errors(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_errors (wrapper)", 0); + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_16get_errors(((struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_16get_errors(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("get_errors", 0); + + /* "reccdi/src_py/cyth/bridge_opencl.pyx":55 + * return self.thisptr.GetImageI() + * def get_errors(self): + * return self.thisptr.GetErrors() # <<<<<<<<<<<<<< + * def get_support(self): + * return self.thisptr.GetSupportV() + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_self->thisptr->GetErrors()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 55, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "reccdi/src_py/cyth/bridge_opencl.pyx":54 + * def get_image_i(self): + * return self.thisptr.GetImageI() + * def get_errors(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetErrors() + * def get_support(self): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_opencl.PyBridge.get_errors", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "reccdi/src_py/cyth/bridge_opencl.pyx":56 + * def get_errors(self): + * return self.thisptr.GetErrors() + * def get_support(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetSupportV() + * def get_coherence(self): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_19get_support(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_19get_support(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_support (wrapper)", 0); + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_18get_support(((struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_18get_support(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("get_support", 0); + + /* "reccdi/src_py/cyth/bridge_opencl.pyx":57 + * return self.thisptr.GetErrors() + * def get_support(self): + * return self.thisptr.GetSupportV() # <<<<<<<<<<<<<< + * def get_coherence(self): + * return self.thisptr.GetCoherenceV() + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_convert_vector_to_py_float(__pyx_v_self->thisptr->GetSupportV()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 57, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "reccdi/src_py/cyth/bridge_opencl.pyx":56 + * def get_errors(self): + * return self.thisptr.GetErrors() + * def get_support(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetSupportV() + * def get_coherence(self): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_opencl.PyBridge.get_support", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "reccdi/src_py/cyth/bridge_opencl.pyx":58 + * def get_support(self): + * return self.thisptr.GetSupportV() + * def get_coherence(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetCoherenceV() + * def get_reciprocal_r(self): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_21get_coherence(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_21get_coherence(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_coherence (wrapper)", 0); + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_20get_coherence(((struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_20get_coherence(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("get_coherence", 0); + + /* "reccdi/src_py/cyth/bridge_opencl.pyx":59 + * return self.thisptr.GetSupportV() + * def get_coherence(self): + * return self.thisptr.GetCoherenceV() # <<<<<<<<<<<<<< + * def get_reciprocal_r(self): + * return self.thisptr.GetReciprocalR() + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_self->thisptr->GetCoherenceV()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 59, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "reccdi/src_py/cyth/bridge_opencl.pyx":58 + * def get_support(self): + * return self.thisptr.GetSupportV() + * def get_coherence(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetCoherenceV() + * def get_reciprocal_r(self): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_opencl.PyBridge.get_coherence", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "reccdi/src_py/cyth/bridge_opencl.pyx":60 + * def get_coherence(self): + * return self.thisptr.GetCoherenceV() + * def get_reciprocal_r(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetReciprocalR() + * def get_reciprocal_i(self): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_23get_reciprocal_r(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_23get_reciprocal_r(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_reciprocal_r (wrapper)", 0); + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_22get_reciprocal_r(((struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_22get_reciprocal_r(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("get_reciprocal_r", 0); + + /* "reccdi/src_py/cyth/bridge_opencl.pyx":61 + * return self.thisptr.GetCoherenceV() + * def get_reciprocal_r(self): + * return self.thisptr.GetReciprocalR() # <<<<<<<<<<<<<< + * def get_reciprocal_i(self): + * return self.thisptr.GetReciprocalI() + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_self->thisptr->GetReciprocalR()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 61, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "reccdi/src_py/cyth/bridge_opencl.pyx":60 + * def get_coherence(self): + * return self.thisptr.GetCoherenceV() + * def get_reciprocal_r(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetReciprocalR() + * def get_reciprocal_i(self): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_opencl.PyBridge.get_reciprocal_r", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "reccdi/src_py/cyth/bridge_opencl.pyx":62 + * def get_reciprocal_r(self): + * return self.thisptr.GetReciprocalR() + * def get_reciprocal_i(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetReciprocalI() + * def get_flow(self): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_25get_reciprocal_i(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_25get_reciprocal_i(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_reciprocal_i (wrapper)", 0); + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_24get_reciprocal_i(((struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_24get_reciprocal_i(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("get_reciprocal_i", 0); + + /* "reccdi/src_py/cyth/bridge_opencl.pyx":63 + * return self.thisptr.GetReciprocalR() + * def get_reciprocal_i(self): + * return self.thisptr.GetReciprocalI() # <<<<<<<<<<<<<< + * def get_flow(self): + * return self.thisptr.GetFlowV() + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_self->thisptr->GetReciprocalI()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 63, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "reccdi/src_py/cyth/bridge_opencl.pyx":62 + * def get_reciprocal_r(self): + * return self.thisptr.GetReciprocalR() + * def get_reciprocal_i(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetReciprocalI() + * def get_flow(self): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_opencl.PyBridge.get_reciprocal_i", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "reccdi/src_py/cyth/bridge_opencl.pyx":64 + * def get_reciprocal_i(self): + * return self.thisptr.GetReciprocalI() + * def get_flow(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetFlowV() + * def get_iter_flow(self): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_27get_flow(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_27get_flow(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_flow (wrapper)", 0); + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_26get_flow(((struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_26get_flow(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("get_flow", 0); + + /* "reccdi/src_py/cyth/bridge_opencl.pyx":65 + * return self.thisptr.GetReciprocalI() + * def get_flow(self): + * return self.thisptr.GetFlowV() # <<<<<<<<<<<<<< + * def get_iter_flow(self): + * return self.thisptr.GetIterFlowV() + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_convert_vector_to_py_int(__pyx_v_self->thisptr->GetFlowV()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 65, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "reccdi/src_py/cyth/bridge_opencl.pyx":64 + * def get_reciprocal_i(self): + * return self.thisptr.GetReciprocalI() + * def get_flow(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetFlowV() + * def get_iter_flow(self): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_opencl.PyBridge.get_flow", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "reccdi/src_py/cyth/bridge_opencl.pyx":66 + * def get_flow(self): + * return self.thisptr.GetFlowV() + * def get_iter_flow(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetIterFlowV() + * def cleanup(self): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_29get_iter_flow(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_29get_iter_flow(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_iter_flow (wrapper)", 0); + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_28get_iter_flow(((struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_28get_iter_flow(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("get_iter_flow", 0); + + /* "reccdi/src_py/cyth/bridge_opencl.pyx":67 + * return self.thisptr.GetFlowV() + * def get_iter_flow(self): + * return self.thisptr.GetIterFlowV() # <<<<<<<<<<<<<< + * def cleanup(self): + * self.thisptr.Cleanup() + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_convert_vector_to_py_int(__pyx_v_self->thisptr->GetIterFlowV()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 67, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "reccdi/src_py/cyth/bridge_opencl.pyx":66 + * def get_flow(self): + * return self.thisptr.GetFlowV() + * def get_iter_flow(self): # <<<<<<<<<<<<<< + * return self.thisptr.GetIterFlowV() + * def cleanup(self): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_opencl.PyBridge.get_iter_flow", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "reccdi/src_py/cyth/bridge_opencl.pyx":68 + * def get_iter_flow(self): + * return self.thisptr.GetIterFlowV() + * def cleanup(self): # <<<<<<<<<<<<<< + * self.thisptr.Cleanup() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_31cleanup(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_31cleanup(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("cleanup (wrapper)", 0); + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_30cleanup(((struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_30cleanup(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("cleanup", 0); + + /* "reccdi/src_py/cyth/bridge_opencl.pyx":69 + * return self.thisptr.GetIterFlowV() + * def cleanup(self): + * self.thisptr.Cleanup() # <<<<<<<<<<<<<< + * + */ + __pyx_v_self->thisptr->Cleanup(); + + /* "reccdi/src_py/cyth/bridge_opencl.pyx":68 + * def get_iter_flow(self): + * return self.thisptr.GetIterFlowV() + * def cleanup(self): # <<<<<<<<<<<<<< + * self.thisptr.Cleanup() + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "(tree fragment)":1 + * def __reduce_cython__(self): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_33__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_33__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_32__reduce_cython__(((struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_32__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("__reduce_cython__", 0); + + /* "(tree fragment)":2 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple_, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(0, 2, __pyx_L1_error) + + /* "(tree fragment)":1 + * def __reduce_cython__(self): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_opencl.PyBridge.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "(tree fragment)":3 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_35__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ +static PyObject *__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_35__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); + __pyx_r = __pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_34__setstate_cython__(((struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_34__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("__setstate_cython__", 0); + + /* "(tree fragment)":4 + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + */ + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(0, 4, __pyx_L1_error) + + /* "(tree fragment)":3 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("reccdi.src_py.cyth.bridge_opencl.PyBridge.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "vector.from_py":45 + * + * @cname("__pyx_convert_vector_from_py_float") + * cdef vector[X] __pyx_convert_vector_from_py_float(object o) except *: # <<<<<<<<<<<<<< + * cdef vector[X] v + * for item in o: + */ + +static std::vector __pyx_convert_vector_from_py_float(PyObject *__pyx_v_o) { + std::vector __pyx_v_v; + PyObject *__pyx_v_item = NULL; + std::vector __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + Py_ssize_t __pyx_t_2; + PyObject *(*__pyx_t_3)(PyObject *); + PyObject *__pyx_t_4 = NULL; + float __pyx_t_5; + __Pyx_RefNannySetupContext("__pyx_convert_vector_from_py_float", 0); + + /* "vector.from_py":47 + * cdef vector[X] __pyx_convert_vector_from_py_float(object o) except *: + * cdef vector[X] v + * for item in o: # <<<<<<<<<<<<<< + * v.push_back(item) + * return v + */ + if (likely(PyList_CheckExact(__pyx_v_o)) || PyTuple_CheckExact(__pyx_v_o)) { + __pyx_t_1 = __pyx_v_o; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; + __pyx_t_3 = NULL; + } else { + __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_o); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 47, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 47, __pyx_L1_error) + } + for (;;) { + if (likely(!__pyx_t_3)) { + if (likely(PyList_CheckExact(__pyx_t_1))) { + if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 47, __pyx_L1_error) + #else + __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 47, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #endif + } else { + if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 47, __pyx_L1_error) + #else + __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 47, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #endif + } + } else { + __pyx_t_4 = __pyx_t_3(__pyx_t_1); + if (unlikely(!__pyx_t_4)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); + else __PYX_ERR(0, 47, __pyx_L1_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_4); + } + __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_4); + __pyx_t_4 = 0; + + /* "vector.from_py":48 + * cdef vector[X] v + * for item in o: + * v.push_back(item) # <<<<<<<<<<<<<< + * return v + * + */ + __pyx_t_5 = __pyx_PyFloat_AsFloat(__pyx_v_item); if (unlikely((__pyx_t_5 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 48, __pyx_L1_error) + __pyx_v_v.push_back(((float)__pyx_t_5)); + + /* "vector.from_py":47 + * cdef vector[X] __pyx_convert_vector_from_py_float(object o) except *: + * cdef vector[X] v + * for item in o: # <<<<<<<<<<<<<< + * v.push_back(item) + * return v + */ + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "vector.from_py":49 + * for item in o: + * v.push_back(item) + * return v # <<<<<<<<<<<<<< + * + * + */ + __pyx_r = __pyx_v_v; + goto __pyx_L0; + + /* "vector.from_py":45 + * + * @cname("__pyx_convert_vector_from_py_float") + * cdef vector[X] __pyx_convert_vector_from_py_float(object o) except *: # <<<<<<<<<<<<<< + * cdef vector[X] v + * for item in o: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("vector.from_py.__pyx_convert_vector_from_py_float", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_pretend_to_initialize(&__pyx_r); + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_item); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static std::vector __pyx_convert_vector_from_py_int(PyObject *__pyx_v_o) { + std::vector __pyx_v_v; + PyObject *__pyx_v_item = NULL; + std::vector __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + Py_ssize_t __pyx_t_2; + PyObject *(*__pyx_t_3)(PyObject *); + PyObject *__pyx_t_4 = NULL; + int __pyx_t_5; + __Pyx_RefNannySetupContext("__pyx_convert_vector_from_py_int", 0); + + /* "vector.from_py":47 + * cdef vector[X] __pyx_convert_vector_from_py_int(object o) except *: + * cdef vector[X] v + * for item in o: # <<<<<<<<<<<<<< + * v.push_back(item) + * return v + */ + if (likely(PyList_CheckExact(__pyx_v_o)) || PyTuple_CheckExact(__pyx_v_o)) { + __pyx_t_1 = __pyx_v_o; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; + __pyx_t_3 = NULL; + } else { + __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_o); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 47, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 47, __pyx_L1_error) + } + for (;;) { + if (likely(!__pyx_t_3)) { + if (likely(PyList_CheckExact(__pyx_t_1))) { + if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 47, __pyx_L1_error) + #else + __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 47, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #endif + } else { + if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 47, __pyx_L1_error) + #else + __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 47, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #endif + } + } else { + __pyx_t_4 = __pyx_t_3(__pyx_t_1); + if (unlikely(!__pyx_t_4)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); + else __PYX_ERR(0, 47, __pyx_L1_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_4); + } + __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_4); + __pyx_t_4 = 0; + + /* "vector.from_py":48 + * cdef vector[X] v + * for item in o: + * v.push_back(item) # <<<<<<<<<<<<<< + * return v + * + */ + __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_v_item); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 48, __pyx_L1_error) + __pyx_v_v.push_back(((int)__pyx_t_5)); + + /* "vector.from_py":47 + * cdef vector[X] __pyx_convert_vector_from_py_int(object o) except *: + * cdef vector[X] v + * for item in o: # <<<<<<<<<<<<<< + * v.push_back(item) + * return v + */ + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "vector.from_py":49 + * for item in o: + * v.push_back(item) + * return v # <<<<<<<<<<<<<< + * + * + */ + __pyx_r = __pyx_v_v; + goto __pyx_L0; + + /* "vector.from_py":45 + * + * @cname("__pyx_convert_vector_from_py_int") + * cdef vector[X] __pyx_convert_vector_from_py_int(object o) except *: # <<<<<<<<<<<<<< + * cdef vector[X] v + * for item in o: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("vector.from_py.__pyx_convert_vector_from_py_int", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_pretend_to_initialize(&__pyx_r); + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_item); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "string.from_py":13 + * + * @cname("__pyx_convert_string_from_py_std__in_string") + * cdef string __pyx_convert_string_from_py_std__in_string(object o) except *: # <<<<<<<<<<<<<< + * cdef Py_ssize_t length + * cdef const char* data = __Pyx_PyObject_AsStringAndSize(o, &length) + */ + +static std::string __pyx_convert_string_from_py_std__in_string(PyObject *__pyx_v_o) { + Py_ssize_t __pyx_v_length; + char const *__pyx_v_data; + std::string __pyx_r; + __Pyx_RefNannyDeclarations + char const *__pyx_t_1; + __Pyx_RefNannySetupContext("__pyx_convert_string_from_py_std__in_string", 0); + + /* "string.from_py":15 + * cdef string __pyx_convert_string_from_py_std__in_string(object o) except *: + * cdef Py_ssize_t length + * cdef const char* data = __Pyx_PyObject_AsStringAndSize(o, &length) # <<<<<<<<<<<<<< + * return string(data, length) + * + */ + __pyx_t_1 = __Pyx_PyObject_AsStringAndSize(__pyx_v_o, (&__pyx_v_length)); if (unlikely(__pyx_t_1 == ((char const *)NULL))) __PYX_ERR(0, 15, __pyx_L1_error) + __pyx_v_data = __pyx_t_1; + + /* "string.from_py":16 + * cdef Py_ssize_t length + * cdef const char* data = __Pyx_PyObject_AsStringAndSize(o, &length) + * return string(data, length) # <<<<<<<<<<<<<< + * + * + */ + __pyx_r = std::string(__pyx_v_data, __pyx_v_length); + goto __pyx_L0; + + /* "string.from_py":13 + * + * @cname("__pyx_convert_string_from_py_std__in_string") + * cdef string __pyx_convert_string_from_py_std__in_string(object o) except *: # <<<<<<<<<<<<<< + * cdef Py_ssize_t length + * cdef const char* data = __Pyx_PyObject_AsStringAndSize(o, &length) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("string.from_py.__pyx_convert_string_from_py_std__in_string", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_pretend_to_initialize(&__pyx_r); + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "vector.to_py":60 + * + * @cname("__pyx_convert_vector_to_py_double") + * cdef object __pyx_convert_vector_to_py_double(vector[X]& v): # <<<<<<<<<<<<<< + * return [v[i] for i in range(v.size())] + * + */ + +static PyObject *__pyx_convert_vector_to_py_double(const std::vector &__pyx_v_v) { + size_t __pyx_v_i; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + size_t __pyx_t_2; + size_t __pyx_t_3; + size_t __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + __Pyx_RefNannySetupContext("__pyx_convert_vector_to_py_double", 0); + + /* "vector.to_py":61 + * @cname("__pyx_convert_vector_to_py_double") + * cdef object __pyx_convert_vector_to_py_double(vector[X]& v): + * return [v[i] for i in range(v.size())] # <<<<<<<<<<<<<< + * + * + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __pyx_v_v.size(); + __pyx_t_3 = __pyx_t_2; + for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { + __pyx_v_i = __pyx_t_4; + __pyx_t_5 = PyFloat_FromDouble((__pyx_v_v[__pyx_v_i])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "vector.to_py":60 + * + * @cname("__pyx_convert_vector_to_py_double") + * cdef object __pyx_convert_vector_to_py_double(vector[X]& v): # <<<<<<<<<<<<<< + * return [v[i] for i in range(v.size())] + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("vector.to_py.__pyx_convert_vector_to_py_double", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_convert_vector_to_py_float(const std::vector &__pyx_v_v) { + size_t __pyx_v_i; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + size_t __pyx_t_2; + size_t __pyx_t_3; + size_t __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + __Pyx_RefNannySetupContext("__pyx_convert_vector_to_py_float", 0); + + /* "vector.to_py":61 + * @cname("__pyx_convert_vector_to_py_float") + * cdef object __pyx_convert_vector_to_py_float(vector[X]& v): + * return [v[i] for i in range(v.size())] # <<<<<<<<<<<<<< + * + * + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __pyx_v_v.size(); + __pyx_t_3 = __pyx_t_2; + for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { + __pyx_v_i = __pyx_t_4; + __pyx_t_5 = PyFloat_FromDouble((__pyx_v_v[__pyx_v_i])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "vector.to_py":60 + * + * @cname("__pyx_convert_vector_to_py_float") + * cdef object __pyx_convert_vector_to_py_float(vector[X]& v): # <<<<<<<<<<<<<< + * return [v[i] for i in range(v.size())] + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("vector.to_py.__pyx_convert_vector_to_py_float", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_convert_vector_to_py_int(const std::vector &__pyx_v_v) { + size_t __pyx_v_i; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + size_t __pyx_t_2; + size_t __pyx_t_3; + size_t __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + __Pyx_RefNannySetupContext("__pyx_convert_vector_to_py_int", 0); + + /* "vector.to_py":61 + * @cname("__pyx_convert_vector_to_py_int") + * cdef object __pyx_convert_vector_to_py_int(vector[X]& v): + * return [v[i] for i in range(v.size())] # <<<<<<<<<<<<<< + * + * + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __pyx_v_v.size(); + __pyx_t_3 = __pyx_t_2; + for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { + __pyx_v_i = __pyx_t_4; + __pyx_t_5 = __Pyx_PyInt_From_int((__pyx_v_v[__pyx_v_i])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "vector.to_py":60 + * + * @cname("__pyx_convert_vector_to_py_int") + * cdef object __pyx_convert_vector_to_py_int(vector[X]& v): # <<<<<<<<<<<<<< + * return [v[i] for i in range(v.size())] + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("vector.to_py.__pyx_convert_vector_to_py_int", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_tp_new_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { + PyObject *o; + if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { + o = (*t->tp_alloc)(t, 0); + } else { + o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); + } + if (unlikely(!o)) return 0; + if (unlikely(__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad; + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} + +static void __pyx_tp_dealloc_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + #endif + { + PyObject *etype, *eval, *etb; + PyErr_Fetch(&etype, &eval, &etb); + ++Py_REFCNT(o); + __pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_3__dealloc__(o); + --Py_REFCNT(o); + PyErr_Restore(etype, eval, etb); + } + (*Py_TYPE(o)->tp_free)(o); +} + +static PyMethodDef __pyx_methods_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge[] = { + {"start_calc_with_guess", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_5start_calc_with_guess, METH_VARARGS|METH_KEYWORDS, 0}, + {"start_calc_with_guess_support", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_7start_calc_with_guess_support, METH_VARARGS|METH_KEYWORDS, 0}, + {"start_calc_with_guess_support_coh", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_9start_calc_with_guess_support_coh, METH_VARARGS|METH_KEYWORDS, 0}, + {"start_calc", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_11start_calc, METH_VARARGS|METH_KEYWORDS, 0}, + {"get_image_r", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_13get_image_r, METH_NOARGS, 0}, + {"get_image_i", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_15get_image_i, METH_NOARGS, 0}, + {"get_errors", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_17get_errors, METH_NOARGS, 0}, + {"get_support", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_19get_support, METH_NOARGS, 0}, + {"get_coherence", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_21get_coherence, METH_NOARGS, 0}, + {"get_reciprocal_r", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_23get_reciprocal_r, METH_NOARGS, 0}, + {"get_reciprocal_i", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_25get_reciprocal_i, METH_NOARGS, 0}, + {"get_flow", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_27get_flow, METH_NOARGS, 0}, + {"get_iter_flow", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_29get_iter_flow, METH_NOARGS, 0}, + {"cleanup", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_31cleanup, METH_NOARGS, 0}, + {"__reduce_cython__", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_33__reduce_cython__, METH_NOARGS, 0}, + {"__setstate_cython__", (PyCFunction)__pyx_pw_6reccdi_6src_py_4cyth_13bridge_opencl_8PyBridge_35__setstate_cython__, METH_O, 0}, + {0, 0, 0, 0} +}; + +static PyTypeObject __pyx_type_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge = { + PyVarObject_HEAD_INIT(0, 0) + "reccdi.src_py.cyth.bridge_opencl.PyBridge", /*tp_name*/ + sizeof(struct __pyx_obj_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge, /*tp_dealloc*/ + 0, /*tp_print*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + 0, /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 + 0, /*tp_vectorcall*/ + #endif +}; + +static PyMethodDef __pyx_methods[] = { + {0, 0, 0, 0} +}; + +#if PY_MAJOR_VERSION >= 3 +#if CYTHON_PEP489_MULTI_PHASE_INIT +static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/ +static int __pyx_pymod_exec_bridge_opencl(PyObject* module); /*proto*/ +static PyModuleDef_Slot __pyx_moduledef_slots[] = { + {Py_mod_create, (void*)__pyx_pymod_create}, + {Py_mod_exec, (void*)__pyx_pymod_exec_bridge_opencl}, + {0, NULL} +}; +#endif + +static struct PyModuleDef __pyx_moduledef = { + PyModuleDef_HEAD_INIT, + "bridge_opencl", + 0, /* m_doc */ + #if CYTHON_PEP489_MULTI_PHASE_INIT + 0, /* m_size */ + #else + -1, /* m_size */ + #endif + __pyx_methods /* m_methods */, + #if CYTHON_PEP489_MULTI_PHASE_INIT + __pyx_moduledef_slots, /* m_slots */ + #else + NULL, /* m_reload */ + #endif + NULL, /* m_traverse */ + NULL, /* m_clear */ + NULL /* m_free */ +}; +#endif +#ifndef CYTHON_SMALL_CODE +#if defined(__clang__) + #define CYTHON_SMALL_CODE +#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) + #define CYTHON_SMALL_CODE __attribute__((cold)) +#else + #define CYTHON_SMALL_CODE +#endif +#endif + +static __Pyx_StringTabEntry __pyx_string_tab[] = { + {&__pyx_n_s_PyBridge, __pyx_k_PyBridge, sizeof(__pyx_k_PyBridge), 0, 0, 1, 1}, + {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1}, + {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, + {&__pyx_n_s_coh, __pyx_k_coh, sizeof(__pyx_k_coh), 0, 0, 1, 1}, + {&__pyx_n_s_coh_dims, __pyx_k_coh_dims, sizeof(__pyx_k_coh_dims), 0, 0, 1, 1}, + {&__pyx_n_s_config, __pyx_k_config, sizeof(__pyx_k_config), 0, 0, 1, 1}, + {&__pyx_n_s_data_r, __pyx_k_data_r, sizeof(__pyx_k_data_r), 0, 0, 1, 1}, + {&__pyx_n_s_device, __pyx_k_device, sizeof(__pyx_k_device), 0, 0, 1, 1}, + {&__pyx_n_s_dims, __pyx_k_dims, sizeof(__pyx_k_dims), 0, 0, 1, 1}, + {&__pyx_n_s_encode, __pyx_k_encode, sizeof(__pyx_k_encode), 0, 0, 1, 1}, + {&__pyx_n_s_getstate, __pyx_k_getstate, sizeof(__pyx_k_getstate), 0, 0, 1, 1}, + {&__pyx_n_s_guess_i, __pyx_k_guess_i, sizeof(__pyx_k_guess_i), 0, 0, 1, 1}, + {&__pyx_n_s_guess_r, __pyx_k_guess_r, sizeof(__pyx_k_guess_r), 0, 0, 1, 1}, + {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1}, + {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, + {&__pyx_kp_s_no_default___reduce___due_to_non, __pyx_k_no_default___reduce___due_to_non, sizeof(__pyx_k_no_default___reduce___due_to_non), 0, 0, 1, 0}, + {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, + {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1}, + {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1}, + {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1}, + {&__pyx_n_s_setstate, __pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 0, 1, 1}, + {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1}, + {&__pyx_n_s_support, __pyx_k_support, sizeof(__pyx_k_support), 0, 0, 1, 1}, + {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, + {0, 0, 0, 0, 0, 0, 0} +}; +static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { + __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(0, 2, __pyx_L1_error) + __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 61, __pyx_L1_error) + return 0; + __pyx_L1_error:; + return -1; +} + +static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); + + /* "(tree fragment)":2 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + __pyx_tuple_ = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple_)) __PYX_ERR(0, 2, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple_); + __Pyx_GIVEREF(__pyx_tuple_); + + /* "(tree fragment)":4 + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + */ + __pyx_tuple__2 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(0, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__2); + __Pyx_GIVEREF(__pyx_tuple__2); + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_RefNannyFinishContext(); + return -1; +} + +static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) { + if (__Pyx_InitStrings(__pyx_string_tab) < 0) __PYX_ERR(1, 1, __pyx_L1_error); + return 0; + __pyx_L1_error:; + return -1; +} + +static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(void); /*proto*/ + +static int __Pyx_modinit_global_init_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0); + /*--- Global init code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_variable_export_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0); + /*--- Variable export code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_function_export_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0); + /*--- Function export code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_type_init_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); + /*--- Type init code ---*/ + if (PyType_Ready(&__pyx_type_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge) < 0) __PYX_ERR(1, 36, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + __pyx_type_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge.tp_dictoffset && __pyx_type_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyBridge, (PyObject *)&__pyx_type_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge) < 0) __PYX_ERR(1, 36, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge) < 0) __PYX_ERR(1, 36, __pyx_L1_error) + __pyx_ptype_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge = &__pyx_type_6reccdi_6src_py_4cyth_13bridge_opencl_PyBridge; + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_RefNannyFinishContext(); + return -1; +} + +static int __Pyx_modinit_type_import_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); + /*--- Type import code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_variable_import_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0); + /*--- Variable import code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_function_import_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0); + /*--- Function import code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + + +#if PY_MAJOR_VERSION < 3 +#ifdef CYTHON_NO_PYINIT_EXPORT +#define __Pyx_PyMODINIT_FUNC void +#else +#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC +#endif +#else +#ifdef CYTHON_NO_PYINIT_EXPORT +#define __Pyx_PyMODINIT_FUNC PyObject * +#else +#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC +#endif +#endif + + +#if PY_MAJOR_VERSION < 3 +__Pyx_PyMODINIT_FUNC initbridge_opencl(void) CYTHON_SMALL_CODE; /*proto*/ +__Pyx_PyMODINIT_FUNC initbridge_opencl(void) +#else +__Pyx_PyMODINIT_FUNC PyInit_bridge_opencl(void) CYTHON_SMALL_CODE; /*proto*/ +__Pyx_PyMODINIT_FUNC PyInit_bridge_opencl(void) +#if CYTHON_PEP489_MULTI_PHASE_INIT +{ + return PyModuleDef_Init(&__pyx_moduledef); +} +static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) { + #if PY_VERSION_HEX >= 0x030700A1 + static PY_INT64_T main_interpreter_id = -1; + PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp); + if (main_interpreter_id == -1) { + main_interpreter_id = current_id; + return (unlikely(current_id == -1)) ? -1 : 0; + } else if (unlikely(main_interpreter_id != current_id)) + #else + static PyInterpreterState *main_interpreter = NULL; + PyInterpreterState *current_interpreter = PyThreadState_Get()->interp; + if (!main_interpreter) { + main_interpreter = current_interpreter; + } else if (unlikely(main_interpreter != current_interpreter)) + #endif + { + PyErr_SetString( + PyExc_ImportError, + "Interpreter change detected - this module can only be loaded into one interpreter per process."); + return -1; + } + return 0; +} +static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name, int allow_none) { + PyObject *value = PyObject_GetAttrString(spec, from_name); + int result = 0; + if (likely(value)) { + if (allow_none || value != Py_None) { + result = PyDict_SetItemString(moddict, to_name, value); + } + Py_DECREF(value); + } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) { + PyErr_Clear(); + } else { + result = -1; + } + return result; +} +static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, CYTHON_UNUSED PyModuleDef *def) { + PyObject *module = NULL, *moddict, *modname; + if (__Pyx_check_single_interpreter()) + return NULL; + if (__pyx_m) + return __Pyx_NewRef(__pyx_m); + modname = PyObject_GetAttrString(spec, "name"); + if (unlikely(!modname)) goto bad; + module = PyModule_NewObject(modname); + Py_DECREF(modname); + if (unlikely(!module)) goto bad; + moddict = PyModule_GetDict(module); + if (unlikely(!moddict)) goto bad; + if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__", 1) < 0)) goto bad; + if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__", 1) < 0)) goto bad; + if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__", 1) < 0)) goto bad; + if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__", 0) < 0)) goto bad; + return module; +bad: + Py_XDECREF(module); + return NULL; +} + + +static CYTHON_SMALL_CODE int __pyx_pymod_exec_bridge_opencl(PyObject *__pyx_pyinit_module) +#endif +#endif +{ + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannyDeclarations + #if CYTHON_PEP489_MULTI_PHASE_INIT + if (__pyx_m) { + if (__pyx_m == __pyx_pyinit_module) return 0; + PyErr_SetString(PyExc_RuntimeError, "Module 'bridge_opencl' has already been imported. Re-initialisation is not supported."); + return -1; + } + #elif PY_MAJOR_VERSION >= 3 + if (__pyx_m) return __Pyx_NewRef(__pyx_m); + #endif + #if CYTHON_REFNANNY +__Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny"); +if (!__Pyx_RefNanny) { + PyErr_Clear(); + __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny"); + if (!__Pyx_RefNanny) + Py_FatalError("failed to import 'refnanny' module"); +} +#endif + __Pyx_RefNannySetupContext("__Pyx_PyMODINIT_FUNC PyInit_bridge_opencl(void)", 0); + if (__Pyx_check_binary_version() < 0) __PYX_ERR(1, 1, __pyx_L1_error) + #ifdef __Pxy_PyFrame_Initialize_Offsets + __Pxy_PyFrame_Initialize_Offsets(); + #endif + __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) __PYX_ERR(1, 1, __pyx_L1_error) + __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(1, 1, __pyx_L1_error) + __pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_unicode)) __PYX_ERR(1, 1, __pyx_L1_error) + #ifdef __Pyx_CyFunction_USED + if (__pyx_CyFunction_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error) + #endif + #ifdef __Pyx_FusedFunction_USED + if (__pyx_FusedFunction_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error) + #endif + #ifdef __Pyx_Coroutine_USED + if (__pyx_Coroutine_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error) + #endif + #ifdef __Pyx_Generator_USED + if (__pyx_Generator_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error) + #endif + #ifdef __Pyx_AsyncGen_USED + if (__pyx_AsyncGen_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error) + #endif + #ifdef __Pyx_StopAsyncIteration_USED + if (__pyx_StopAsyncIteration_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error) + #endif + /*--- Library function declarations ---*/ + /*--- Threads initialization code ---*/ + #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS + #ifdef WITH_THREAD /* Python build with threading support? */ + PyEval_InitThreads(); + #endif + #endif + /*--- Module creation code ---*/ + #if CYTHON_PEP489_MULTI_PHASE_INIT + __pyx_m = __pyx_pyinit_module; + Py_INCREF(__pyx_m); + #else + #if PY_MAJOR_VERSION < 3 + __pyx_m = Py_InitModule4("bridge_opencl", __pyx_methods, 0, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m); + #else + __pyx_m = PyModule_Create(&__pyx_moduledef); + #endif + if (unlikely(!__pyx_m)) __PYX_ERR(1, 1, __pyx_L1_error) + #endif + __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) __PYX_ERR(1, 1, __pyx_L1_error) + Py_INCREF(__pyx_d); + __pyx_b = PyImport_AddModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_b)) __PYX_ERR(1, 1, __pyx_L1_error) + Py_INCREF(__pyx_b); + __pyx_cython_runtime = PyImport_AddModule((char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(1, 1, __pyx_L1_error) + Py_INCREF(__pyx_cython_runtime); + if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) __PYX_ERR(1, 1, __pyx_L1_error); + /*--- Initialize various global constants etc. ---*/ + if (__Pyx_InitGlobals() < 0) __PYX_ERR(1, 1, __pyx_L1_error) + #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT) + if (__Pyx_init_sys_getdefaultencoding_params() < 0) __PYX_ERR(1, 1, __pyx_L1_error) + #endif + if (__pyx_module_is_main_reccdi__src_py__cyth__bridge_opencl) { + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_name, __pyx_n_s_main) < 0) __PYX_ERR(1, 1, __pyx_L1_error) + } + #if PY_MAJOR_VERSION >= 3 + { + PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(1, 1, __pyx_L1_error) + if (!PyDict_GetItemString(modules, "reccdi.src_py.cyth.bridge_opencl")) { + if (unlikely(PyDict_SetItemString(modules, "reccdi.src_py.cyth.bridge_opencl", __pyx_m) < 0)) __PYX_ERR(1, 1, __pyx_L1_error) + } + } + #endif + /*--- Builtin init code ---*/ + if (__Pyx_InitCachedBuiltins() < 0) goto __pyx_L1_error; + /*--- Constants init code ---*/ + if (__Pyx_InitCachedConstants() < 0) goto __pyx_L1_error; + /*--- Global type/function init code ---*/ + (void)__Pyx_modinit_global_init_code(); + (void)__Pyx_modinit_variable_export_code(); + (void)__Pyx_modinit_function_export_code(); + if (unlikely(__Pyx_modinit_type_init_code() != 0)) goto __pyx_L1_error; + (void)__Pyx_modinit_type_import_code(); + (void)__Pyx_modinit_variable_import_code(); + (void)__Pyx_modinit_function_import_code(); + /*--- Execution code ---*/ + #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) + if (__Pyx_patch_abc() < 0) __PYX_ERR(1, 1, __pyx_L1_error) + #endif + + /* "reccdi/src_py/cyth/bridge_opencl.pyx":1 + * # ######################################################################### # <<<<<<<<<<<<<< + * # Copyright (c) , UChicago Argonne, LLC. All rights reserved. # + * # # + */ + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "vector.to_py":60 + * + * @cname("__pyx_convert_vector_to_py_int") + * cdef object __pyx_convert_vector_to_py_int(vector[X]& v): # <<<<<<<<<<<<<< + * return [v[i] for i in range(v.size())] + * + */ + + /*--- Wrapped vars code ---*/ + + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + if (__pyx_m) { + if (__pyx_d) { + __Pyx_AddTraceback("init reccdi.src_py.cyth.bridge_opencl", __pyx_clineno, __pyx_lineno, __pyx_filename); + } + Py_CLEAR(__pyx_m); + } else if (!PyErr_Occurred()) { + PyErr_SetString(PyExc_ImportError, "init reccdi.src_py.cyth.bridge_opencl"); + } + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + #if CYTHON_PEP489_MULTI_PHASE_INIT + return (__pyx_m != NULL) ? 0 : -1; + #elif PY_MAJOR_VERSION >= 3 + return __pyx_m; + #else + return; + #endif +} + +/* --- Runtime support code --- */ +/* Refnanny */ +#if CYTHON_REFNANNY +static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) { + PyObject *m = NULL, *p = NULL; + void *r = NULL; + m = PyImport_ImportModule(modname); + if (!m) goto end; + p = PyObject_GetAttrString(m, "RefNannyAPI"); + if (!p) goto end; + r = PyLong_AsVoidPtr(p); +end: + Py_XDECREF(p); + Py_XDECREF(m); + return (__Pyx_RefNannyAPIStruct *)r; +} +#endif + +/* PyObjectGetAttrStr */ +#if CYTHON_USE_TYPE_SLOTS +static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) { + PyTypeObject* tp = Py_TYPE(obj); + if (likely(tp->tp_getattro)) + return tp->tp_getattro(obj, attr_name); +#if PY_MAJOR_VERSION < 3 + if (likely(tp->tp_getattr)) + return tp->tp_getattr(obj, PyString_AS_STRING(attr_name)); +#endif + return PyObject_GetAttr(obj, attr_name); +} +#endif + +/* GetBuiltinName */ +static PyObject *__Pyx_GetBuiltinName(PyObject *name) { + PyObject* result = __Pyx_PyObject_GetAttrStr(__pyx_b, name); + if (unlikely(!result)) { + PyErr_Format(PyExc_NameError, +#if PY_MAJOR_VERSION >= 3 + "name '%U' is not defined", name); +#else + "name '%.200s' is not defined", PyString_AS_STRING(name)); +#endif + } + return result; +} + +/* RaiseArgTupleInvalid */ +static void __Pyx_RaiseArgtupleInvalid( + const char* func_name, + int exact, + Py_ssize_t num_min, + Py_ssize_t num_max, + Py_ssize_t num_found) +{ + Py_ssize_t num_expected; + const char *more_or_less; + if (num_found < num_min) { + num_expected = num_min; + more_or_less = "at least"; + } else { + num_expected = num_max; + more_or_less = "at most"; + } + if (exact) { + more_or_less = "exactly"; + } + PyErr_Format(PyExc_TypeError, + "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T "d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T "d given)", + func_name, more_or_less, num_expected, + (num_expected == 1) ? "" : "s", num_found); +} + +/* KeywordStringCheck */ +static int __Pyx_CheckKeywordStrings( + PyObject *kwdict, + const char* function_name, + int kw_allowed) +{ + PyObject* key = 0; + Py_ssize_t pos = 0; +#if CYTHON_COMPILING_IN_PYPY + if (!kw_allowed && PyDict_Next(kwdict, &pos, &key, 0)) + goto invalid_keyword; + return 1; +#else + while (PyDict_Next(kwdict, &pos, &key, 0)) { + #if PY_MAJOR_VERSION < 3 + if (unlikely(!PyString_Check(key))) + #endif + if (unlikely(!PyUnicode_Check(key))) + goto invalid_keyword_type; + } + if ((!kw_allowed) && unlikely(key)) + goto invalid_keyword; + return 1; +invalid_keyword_type: + PyErr_Format(PyExc_TypeError, + "%.200s() keywords must be strings", function_name); + return 0; +#endif +invalid_keyword: + PyErr_Format(PyExc_TypeError, + #if PY_MAJOR_VERSION < 3 + "%.200s() got an unexpected keyword argument '%.200s'", + function_name, PyString_AsString(key)); + #else + "%s() got an unexpected keyword argument '%U'", + function_name, key); + #endif + return 0; +} + +/* RaiseDoubleKeywords */ +static void __Pyx_RaiseDoubleKeywordsError( + const char* func_name, + PyObject* kw_name) +{ + PyErr_Format(PyExc_TypeError, + #if PY_MAJOR_VERSION >= 3 + "%s() got multiple values for keyword argument '%U'", func_name, kw_name); + #else + "%s() got multiple values for keyword argument '%s'", func_name, + PyString_AsString(kw_name)); + #endif +} + +/* ParseKeywords */ +static int __Pyx_ParseOptionalKeywords( + PyObject *kwds, + PyObject **argnames[], + PyObject *kwds2, + PyObject *values[], + Py_ssize_t num_pos_args, + const char* function_name) +{ + PyObject *key = 0, *value = 0; + Py_ssize_t pos = 0; + PyObject*** name; + PyObject*** first_kw_arg = argnames + num_pos_args; + while (PyDict_Next(kwds, &pos, &key, &value)) { + name = first_kw_arg; + while (*name && (**name != key)) name++; + if (*name) { + values[name-argnames] = value; + continue; + } + name = first_kw_arg; + #if PY_MAJOR_VERSION < 3 + if (likely(PyString_CheckExact(key)) || likely(PyString_Check(key))) { + while (*name) { + if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key)) + && _PyString_Eq(**name, key)) { + values[name-argnames] = value; + break; + } + name++; + } + if (*name) continue; + else { + PyObject*** argname = argnames; + while (argname != first_kw_arg) { + if ((**argname == key) || ( + (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key)) + && _PyString_Eq(**argname, key))) { + goto arg_passed_twice; + } + argname++; + } + } + } else + #endif + if (likely(PyUnicode_Check(key))) { + while (*name) { + int cmp = (**name == key) ? 0 : + #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 + (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : + #endif + PyUnicode_Compare(**name, key); + if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; + if (cmp == 0) { + values[name-argnames] = value; + break; + } + name++; + } + if (*name) continue; + else { + PyObject*** argname = argnames; + while (argname != first_kw_arg) { + int cmp = (**argname == key) ? 0 : + #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 + (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : + #endif + PyUnicode_Compare(**argname, key); + if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; + if (cmp == 0) goto arg_passed_twice; + argname++; + } + } + } else + goto invalid_keyword_type; + if (kwds2) { + if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad; + } else { + goto invalid_keyword; + } + } + return 0; +arg_passed_twice: + __Pyx_RaiseDoubleKeywordsError(function_name, key); + goto bad; +invalid_keyword_type: + PyErr_Format(PyExc_TypeError, + "%.200s() keywords must be strings", function_name); + goto bad; +invalid_keyword: + PyErr_Format(PyExc_TypeError, + #if PY_MAJOR_VERSION < 3 + "%.200s() got an unexpected keyword argument '%.200s'", + function_name, PyString_AsString(key)); + #else + "%s() got an unexpected keyword argument '%U'", + function_name, key); + #endif +bad: + return -1; +} + +/* PyFunctionFastCall */ +#if CYTHON_FAST_PYCALL +static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na, + PyObject *globals) { + PyFrameObject *f; + PyThreadState *tstate = __Pyx_PyThreadState_Current; + PyObject **fastlocals; + Py_ssize_t i; + PyObject *result; + assert(globals != NULL); + /* XXX Perhaps we should create a specialized + PyFrame_New() that doesn't take locals, but does + take builtins without sanity checking them. + */ + assert(tstate != NULL); + f = PyFrame_New(tstate, co, globals, NULL); + if (f == NULL) { + return NULL; + } + fastlocals = __Pyx_PyFrame_GetLocalsplus(f); + for (i = 0; i < na; i++) { + Py_INCREF(*args); + fastlocals[i] = *args++; + } + result = PyEval_EvalFrameEx(f,0); + ++tstate->recursion_depth; + Py_DECREF(f); + --tstate->recursion_depth; + return result; +} +#if 1 || PY_VERSION_HEX < 0x030600B1 +static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs) { + PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func); + PyObject *globals = PyFunction_GET_GLOBALS(func); + PyObject *argdefs = PyFunction_GET_DEFAULTS(func); + PyObject *closure; +#if PY_MAJOR_VERSION >= 3 + PyObject *kwdefs; +#endif + PyObject *kwtuple, **k; + PyObject **d; + Py_ssize_t nd; + Py_ssize_t nk; + PyObject *result; + assert(kwargs == NULL || PyDict_Check(kwargs)); + nk = kwargs ? PyDict_Size(kwargs) : 0; + if (Py_EnterRecursiveCall((char*)" while calling a Python object")) { + return NULL; + } + if ( +#if PY_MAJOR_VERSION >= 3 + co->co_kwonlyargcount == 0 && +#endif + likely(kwargs == NULL || nk == 0) && + co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE)) { + if (argdefs == NULL && co->co_argcount == nargs) { + result = __Pyx_PyFunction_FastCallNoKw(co, args, nargs, globals); + goto done; + } + else if (nargs == 0 && argdefs != NULL + && co->co_argcount == Py_SIZE(argdefs)) { + /* function called with no arguments, but all parameters have + a default value: use default values as arguments .*/ + args = &PyTuple_GET_ITEM(argdefs, 0); + result =__Pyx_PyFunction_FastCallNoKw(co, args, Py_SIZE(argdefs), globals); + goto done; + } + } + if (kwargs != NULL) { + Py_ssize_t pos, i; + kwtuple = PyTuple_New(2 * nk); + if (kwtuple == NULL) { + result = NULL; + goto done; + } + k = &PyTuple_GET_ITEM(kwtuple, 0); + pos = i = 0; + while (PyDict_Next(kwargs, &pos, &k[i], &k[i+1])) { + Py_INCREF(k[i]); + Py_INCREF(k[i+1]); + i += 2; + } + nk = i / 2; + } + else { + kwtuple = NULL; + k = NULL; + } + closure = PyFunction_GET_CLOSURE(func); +#if PY_MAJOR_VERSION >= 3 + kwdefs = PyFunction_GET_KW_DEFAULTS(func); +#endif + if (argdefs != NULL) { + d = &PyTuple_GET_ITEM(argdefs, 0); + nd = Py_SIZE(argdefs); + } + else { + d = NULL; + nd = 0; + } +#if PY_MAJOR_VERSION >= 3 + result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL, + args, (int)nargs, + k, (int)nk, + d, (int)nd, kwdefs, closure); +#else + result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL, + args, (int)nargs, + k, (int)nk, + d, (int)nd, closure); +#endif + Py_XDECREF(kwtuple); +done: + Py_LeaveRecursiveCall(); + return result; +} +#endif +#endif + +/* PyObjectCall */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { + PyObject *result; + ternaryfunc call = func->ob_type->tp_call; + if (unlikely(!call)) + return PyObject_Call(func, arg, kw); + if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) + return NULL; + result = (*call)(func, arg, kw); + Py_LeaveRecursiveCall(); + if (unlikely(!result) && unlikely(!PyErr_Occurred())) { + PyErr_SetString( + PyExc_SystemError, + "NULL result without error in PyObject_Call"); + } + return result; +} +#endif + +/* PyObjectCallMethO */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) { + PyObject *self, *result; + PyCFunction cfunc; + cfunc = PyCFunction_GET_FUNCTION(func); + self = PyCFunction_GET_SELF(func); + if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) + return NULL; + result = cfunc(self, arg); + Py_LeaveRecursiveCall(); + if (unlikely(!result) && unlikely(!PyErr_Occurred())) { + PyErr_SetString( + PyExc_SystemError, + "NULL result without error in PyObject_Call"); + } + return result; +} +#endif + +/* PyObjectCallNoArg */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) { +#if CYTHON_FAST_PYCALL + if (PyFunction_Check(func)) { + return __Pyx_PyFunction_FastCall(func, NULL, 0); + } +#endif +#ifdef __Pyx_CyFunction_USED + if (likely(PyCFunction_Check(func) || __Pyx_CyFunction_Check(func))) +#else + if (likely(PyCFunction_Check(func))) +#endif + { + if (likely(PyCFunction_GET_FLAGS(func) & METH_NOARGS)) { + return __Pyx_PyObject_CallMethO(func, NULL); + } + } + return __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL); +} +#endif + +/* PyCFunctionFastCall */ +#if CYTHON_FAST_PYCCALL +static CYTHON_INLINE PyObject * __Pyx_PyCFunction_FastCall(PyObject *func_obj, PyObject **args, Py_ssize_t nargs) { + PyCFunctionObject *func = (PyCFunctionObject*)func_obj; + PyCFunction meth = PyCFunction_GET_FUNCTION(func); + PyObject *self = PyCFunction_GET_SELF(func); + int flags = PyCFunction_GET_FLAGS(func); + assert(PyCFunction_Check(func)); + assert(METH_FASTCALL == (flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS))); + assert(nargs >= 0); + assert(nargs == 0 || args != NULL); + /* _PyCFunction_FastCallDict() must not be called with an exception set, + because it may clear it (directly or indirectly) and so the + caller loses its exception */ + assert(!PyErr_Occurred()); + if ((PY_VERSION_HEX < 0x030700A0) || unlikely(flags & METH_KEYWORDS)) { + return (*((__Pyx_PyCFunctionFastWithKeywords)(void*)meth)) (self, args, nargs, NULL); + } else { + return (*((__Pyx_PyCFunctionFast)(void*)meth)) (self, args, nargs); + } +} +#endif + +/* PyObjectCallOneArg */ +#if CYTHON_COMPILING_IN_CPYTHON +static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) { + PyObject *result; + PyObject *args = PyTuple_New(1); + if (unlikely(!args)) return NULL; + Py_INCREF(arg); + PyTuple_SET_ITEM(args, 0, arg); + result = __Pyx_PyObject_Call(func, args, NULL); + Py_DECREF(args); + return result; +} +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { +#if CYTHON_FAST_PYCALL + if (PyFunction_Check(func)) { + return __Pyx_PyFunction_FastCall(func, &arg, 1); + } +#endif + if (likely(PyCFunction_Check(func))) { + if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { + return __Pyx_PyObject_CallMethO(func, arg); +#if CYTHON_FAST_PYCCALL + } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) { + return __Pyx_PyCFunction_FastCall(func, &arg, 1); +#endif + } + } + return __Pyx__PyObject_CallOneArg(func, arg); +} +#else +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { + PyObject *result; + PyObject *args = PyTuple_Pack(1, arg); + if (unlikely(!args)) return NULL; + result = __Pyx_PyObject_Call(func, args, NULL); + Py_DECREF(args); + return result; +} +#endif + +/* PyErrFetchRestore */ +#if CYTHON_FAST_THREAD_STATE +static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { + PyObject *tmp_type, *tmp_value, *tmp_tb; + tmp_type = tstate->curexc_type; + tmp_value = tstate->curexc_value; + tmp_tb = tstate->curexc_traceback; + tstate->curexc_type = type; + tstate->curexc_value = value; + tstate->curexc_traceback = tb; + Py_XDECREF(tmp_type); + Py_XDECREF(tmp_value); + Py_XDECREF(tmp_tb); +} +static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { + *type = tstate->curexc_type; + *value = tstate->curexc_value; + *tb = tstate->curexc_traceback; + tstate->curexc_type = 0; + tstate->curexc_value = 0; + tstate->curexc_traceback = 0; +} +#endif + +/* RaiseException */ +#if PY_MAJOR_VERSION < 3 +static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, + CYTHON_UNUSED PyObject *cause) { + __Pyx_PyThreadState_declare + Py_XINCREF(type); + if (!value || value == Py_None) + value = NULL; + else + Py_INCREF(value); + if (!tb || tb == Py_None) + tb = NULL; + else { + Py_INCREF(tb); + if (!PyTraceBack_Check(tb)) { + PyErr_SetString(PyExc_TypeError, + "raise: arg 3 must be a traceback or None"); + goto raise_error; + } + } + if (PyType_Check(type)) { +#if CYTHON_COMPILING_IN_PYPY + if (!value) { + Py_INCREF(Py_None); + value = Py_None; + } +#endif + PyErr_NormalizeException(&type, &value, &tb); + } else { + if (value) { + PyErr_SetString(PyExc_TypeError, + "instance exception may not have a separate value"); + goto raise_error; + } + value = type; + type = (PyObject*) Py_TYPE(type); + Py_INCREF(type); + if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) { + PyErr_SetString(PyExc_TypeError, + "raise: exception class must be a subclass of BaseException"); + goto raise_error; + } + } + __Pyx_PyThreadState_assign + __Pyx_ErrRestore(type, value, tb); + return; +raise_error: + Py_XDECREF(value); + Py_XDECREF(type); + Py_XDECREF(tb); + return; +} +#else +static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) { + PyObject* owned_instance = NULL; + if (tb == Py_None) { + tb = 0; + } else if (tb && !PyTraceBack_Check(tb)) { + PyErr_SetString(PyExc_TypeError, + "raise: arg 3 must be a traceback or None"); + goto bad; + } + if (value == Py_None) + value = 0; + if (PyExceptionInstance_Check(type)) { + if (value) { + PyErr_SetString(PyExc_TypeError, + "instance exception may not have a separate value"); + goto bad; + } + value = type; + type = (PyObject*) Py_TYPE(value); + } else if (PyExceptionClass_Check(type)) { + PyObject *instance_class = NULL; + if (value && PyExceptionInstance_Check(value)) { + instance_class = (PyObject*) Py_TYPE(value); + if (instance_class != type) { + int is_subclass = PyObject_IsSubclass(instance_class, type); + if (!is_subclass) { + instance_class = NULL; + } else if (unlikely(is_subclass == -1)) { + goto bad; + } else { + type = instance_class; + } + } + } + if (!instance_class) { + PyObject *args; + if (!value) + args = PyTuple_New(0); + else if (PyTuple_Check(value)) { + Py_INCREF(value); + args = value; + } else + args = PyTuple_Pack(1, value); + if (!args) + goto bad; + owned_instance = PyObject_Call(type, args, NULL); + Py_DECREF(args); + if (!owned_instance) + goto bad; + value = owned_instance; + if (!PyExceptionInstance_Check(value)) { + PyErr_Format(PyExc_TypeError, + "calling %R should have returned an instance of " + "BaseException, not %R", + type, Py_TYPE(value)); + goto bad; + } + } + } else { + PyErr_SetString(PyExc_TypeError, + "raise: exception class must be a subclass of BaseException"); + goto bad; + } + if (cause) { + PyObject *fixed_cause; + if (cause == Py_None) { + fixed_cause = NULL; + } else if (PyExceptionClass_Check(cause)) { + fixed_cause = PyObject_CallObject(cause, NULL); + if (fixed_cause == NULL) + goto bad; + } else if (PyExceptionInstance_Check(cause)) { + fixed_cause = cause; + Py_INCREF(fixed_cause); + } else { + PyErr_SetString(PyExc_TypeError, + "exception causes must derive from " + "BaseException"); + goto bad; + } + PyException_SetCause(value, fixed_cause); + } + PyErr_SetObject(type, value); + if (tb) { +#if CYTHON_COMPILING_IN_PYPY + PyObject *tmp_type, *tmp_value, *tmp_tb; + PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb); + Py_INCREF(tb); + PyErr_Restore(tmp_type, tmp_value, tb); + Py_XDECREF(tmp_tb); +#else + PyThreadState *tstate = __Pyx_PyThreadState_Current; + PyObject* tmp_tb = tstate->curexc_traceback; + if (tb != tmp_tb) { + Py_INCREF(tb); + tstate->curexc_traceback = tb; + Py_XDECREF(tmp_tb); + } +#endif + } +bad: + Py_XDECREF(owned_instance); + return; +} +#endif + +/* PyObject_GenericGetAttrNoDict */ +#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 +static PyObject *__Pyx_RaiseGenericGetAttributeError(PyTypeObject *tp, PyObject *attr_name) { + PyErr_Format(PyExc_AttributeError, +#if PY_MAJOR_VERSION >= 3 + "'%.50s' object has no attribute '%U'", + tp->tp_name, attr_name); +#else + "'%.50s' object has no attribute '%.400s'", + tp->tp_name, PyString_AS_STRING(attr_name)); +#endif + return NULL; +} +static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name) { + PyObject *descr; + PyTypeObject *tp = Py_TYPE(obj); + if (unlikely(!PyString_Check(attr_name))) { + return PyObject_GenericGetAttr(obj, attr_name); + } + assert(!tp->tp_dictoffset); + descr = _PyType_Lookup(tp, attr_name); + if (unlikely(!descr)) { + return __Pyx_RaiseGenericGetAttributeError(tp, attr_name); + } + Py_INCREF(descr); + #if PY_MAJOR_VERSION < 3 + if (likely(PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_HAVE_CLASS))) + #endif + { + descrgetfunc f = Py_TYPE(descr)->tp_descr_get; + if (unlikely(f)) { + PyObject *res = f(descr, obj, (PyObject *)tp); + Py_DECREF(descr); + return res; + } + } + return descr; +} +#endif + +/* PyObject_GenericGetAttr */ +#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 +static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name) { + if (unlikely(Py_TYPE(obj)->tp_dictoffset)) { + return PyObject_GenericGetAttr(obj, attr_name); + } + return __Pyx_PyObject_GenericGetAttrNoDict(obj, attr_name); +} +#endif + +/* SetupReduce */ +static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) { + int ret; + PyObject *name_attr; + name_attr = __Pyx_PyObject_GetAttrStr(meth, __pyx_n_s_name); + if (likely(name_attr)) { + ret = PyObject_RichCompareBool(name_attr, name, Py_EQ); + } else { + ret = -1; + } + if (unlikely(ret < 0)) { + PyErr_Clear(); + ret = 0; + } + Py_XDECREF(name_attr); + return ret; +} +static int __Pyx_setup_reduce(PyObject* type_obj) { + int ret = 0; + PyObject *object_reduce = NULL; + PyObject *object_reduce_ex = NULL; + PyObject *reduce = NULL; + PyObject *reduce_ex = NULL; + PyObject *reduce_cython = NULL; + PyObject *setstate = NULL; + PyObject *setstate_cython = NULL; +#if CYTHON_USE_PYTYPE_LOOKUP + if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto GOOD; +#else + if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto GOOD; +#endif +#if CYTHON_USE_PYTYPE_LOOKUP + object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; +#else + object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; +#endif + reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto BAD; + if (reduce_ex == object_reduce_ex) { +#if CYTHON_USE_PYTYPE_LOOKUP + object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; +#else + object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; +#endif + reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto BAD; + if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) { + reduce_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_cython); if (unlikely(!reduce_cython)) goto BAD; + ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto BAD; + ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto BAD; + setstate = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate); + if (!setstate) PyErr_Clear(); + if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) { + setstate_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate_cython); if (unlikely(!setstate_cython)) goto BAD; + ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto BAD; + ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto BAD; + } + PyType_Modified((PyTypeObject*)type_obj); + } + } + goto GOOD; +BAD: + if (!PyErr_Occurred()) + PyErr_Format(PyExc_RuntimeError, "Unable to initialize pickling for %s", ((PyTypeObject*)type_obj)->tp_name); + ret = -1; +GOOD: +#if !CYTHON_USE_PYTYPE_LOOKUP + Py_XDECREF(object_reduce); + Py_XDECREF(object_reduce_ex); +#endif + Py_XDECREF(reduce); + Py_XDECREF(reduce_ex); + Py_XDECREF(reduce_cython); + Py_XDECREF(setstate); + Py_XDECREF(setstate_cython); + return ret; +} + +/* PyDictVersioning */ +#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS +static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) { + PyObject *dict = Py_TYPE(obj)->tp_dict; + return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0; +} +static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) { + PyObject **dictptr = NULL; + Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset; + if (offset) { +#if CYTHON_COMPILING_IN_CPYTHON + dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj); +#else + dictptr = _PyObject_GetDictPtr(obj); +#endif + } + return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0; +} +static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) { + PyObject *dict = Py_TYPE(obj)->tp_dict; + if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict))) + return 0; + return obj_dict_version == __Pyx_get_object_dict_version(obj); +} +#endif + +/* CLineInTraceback */ +#ifndef CYTHON_CLINE_IN_TRACEBACK +static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { + PyObject *use_cline; + PyObject *ptype, *pvalue, *ptraceback; +#if CYTHON_COMPILING_IN_CPYTHON + PyObject **cython_runtime_dict; +#endif + if (unlikely(!__pyx_cython_runtime)) { + return c_line; + } + __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback); +#if CYTHON_COMPILING_IN_CPYTHON + cython_runtime_dict = _PyObject_GetDictPtr(__pyx_cython_runtime); + if (likely(cython_runtime_dict)) { + __PYX_PY_DICT_LOOKUP_IF_MODIFIED( + use_cline, *cython_runtime_dict, + __Pyx_PyDict_GetItemStr(*cython_runtime_dict, __pyx_n_s_cline_in_traceback)) + } else +#endif + { + PyObject *use_cline_obj = __Pyx_PyObject_GetAttrStr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback); + if (use_cline_obj) { + use_cline = PyObject_Not(use_cline_obj) ? Py_False : Py_True; + Py_DECREF(use_cline_obj); + } else { + PyErr_Clear(); + use_cline = NULL; + } + } + if (!use_cline) { + c_line = 0; + PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); + } + else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) { + c_line = 0; + } + __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback); + return c_line; +} +#endif + +/* CodeObjectCache */ +static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) { + int start = 0, mid = 0, end = count - 1; + if (end >= 0 && code_line > entries[end].code_line) { + return count; + } + while (start < end) { + mid = start + (end - start) / 2; + if (code_line < entries[mid].code_line) { + end = mid; + } else if (code_line > entries[mid].code_line) { + start = mid + 1; + } else { + return mid; + } + } + if (code_line <= entries[mid].code_line) { + return mid; + } else { + return mid + 1; + } +} +static PyCodeObject *__pyx_find_code_object(int code_line) { + PyCodeObject* code_object; + int pos; + if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) { + return NULL; + } + pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); + if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) { + return NULL; + } + code_object = __pyx_code_cache.entries[pos].code_object; + Py_INCREF(code_object); + return code_object; +} +static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { + int pos, i; + __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries; + if (unlikely(!code_line)) { + return; + } + if (unlikely(!entries)) { + entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry)); + if (likely(entries)) { + __pyx_code_cache.entries = entries; + __pyx_code_cache.max_count = 64; + __pyx_code_cache.count = 1; + entries[0].code_line = code_line; + entries[0].code_object = code_object; + Py_INCREF(code_object); + } + return; + } + pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); + if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) { + PyCodeObject* tmp = entries[pos].code_object; + entries[pos].code_object = code_object; + Py_DECREF(tmp); + return; + } + if (__pyx_code_cache.count == __pyx_code_cache.max_count) { + int new_max = __pyx_code_cache.max_count + 64; + entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( + __pyx_code_cache.entries, (size_t)new_max*sizeof(__Pyx_CodeObjectCacheEntry)); + if (unlikely(!entries)) { + return; + } + __pyx_code_cache.entries = entries; + __pyx_code_cache.max_count = new_max; + } + for (i=__pyx_code_cache.count; i>pos; i--) { + entries[i] = entries[i-1]; + } + entries[pos].code_line = code_line; + entries[pos].code_object = code_object; + __pyx_code_cache.count++; + Py_INCREF(code_object); +} + +/* AddTraceback */ +#include "compile.h" +#include "frameobject.h" +#include "traceback.h" +static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( + const char *funcname, int c_line, + int py_line, const char *filename) { + PyCodeObject *py_code = 0; + PyObject *py_srcfile = 0; + PyObject *py_funcname = 0; + #if PY_MAJOR_VERSION < 3 + py_srcfile = PyString_FromString(filename); + #else + py_srcfile = PyUnicode_FromString(filename); + #endif + if (!py_srcfile) goto bad; + if (c_line) { + #if PY_MAJOR_VERSION < 3 + py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); + #else + py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); + #endif + } + else { + #if PY_MAJOR_VERSION < 3 + py_funcname = PyString_FromString(funcname); + #else + py_funcname = PyUnicode_FromString(funcname); + #endif + } + if (!py_funcname) goto bad; + py_code = __Pyx_PyCode_New( + 0, + 0, + 0, + 0, + 0, + __pyx_empty_bytes, /*PyObject *code,*/ + __pyx_empty_tuple, /*PyObject *consts,*/ + __pyx_empty_tuple, /*PyObject *names,*/ + __pyx_empty_tuple, /*PyObject *varnames,*/ + __pyx_empty_tuple, /*PyObject *freevars,*/ + __pyx_empty_tuple, /*PyObject *cellvars,*/ + py_srcfile, /*PyObject *filename,*/ + py_funcname, /*PyObject *name,*/ + py_line, + __pyx_empty_bytes /*PyObject *lnotab*/ + ); + Py_DECREF(py_srcfile); + Py_DECREF(py_funcname); + return py_code; +bad: + Py_XDECREF(py_srcfile); + Py_XDECREF(py_funcname); + return NULL; +} +static void __Pyx_AddTraceback(const char *funcname, int c_line, + int py_line, const char *filename) { + PyCodeObject *py_code = 0; + PyFrameObject *py_frame = 0; + PyThreadState *tstate = __Pyx_PyThreadState_Current; + if (c_line) { + c_line = __Pyx_CLineForTraceback(tstate, c_line); + } + py_code = __pyx_find_code_object(c_line ? -c_line : py_line); + if (!py_code) { + py_code = __Pyx_CreateCodeObjectForTraceback( + funcname, c_line, py_line, filename); + if (!py_code) goto bad; + __pyx_insert_code_object(c_line ? -c_line : py_line, py_code); + } + py_frame = PyFrame_New( + tstate, /*PyThreadState *tstate,*/ + py_code, /*PyCodeObject *code,*/ + __pyx_d, /*PyObject *globals,*/ + 0 /*PyObject *locals*/ + ); + if (!py_frame) goto bad; + __Pyx_PyFrame_SetLineNumber(py_frame, py_line); + PyTraceBack_Here(py_frame); +bad: + Py_XDECREF(py_code); + Py_XDECREF(py_frame); +} + +/* CIntFromPyVerify */ +#define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\ + __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0) +#define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\ + __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1) +#define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\ + {\ + func_type value = func_value;\ + if (sizeof(target_type) < sizeof(func_type)) {\ + if (unlikely(value != (func_type) (target_type) value)) {\ + func_type zero = 0;\ + if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\ + return (target_type) -1;\ + if (is_unsigned && unlikely(value < zero))\ + goto raise_neg_overflow;\ + else\ + goto raise_overflow;\ + }\ + }\ + return (target_type) value;\ + } + +/* CIntToPy */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { + const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(int) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(int) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(int) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(int), + little, !is_unsigned); + } +} + +/* CIntFromPy */ +static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { + const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(int) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (int) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (int) 0; + case 1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0]) + case 2: + if (8 * sizeof(int) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) >= 2 * PyLong_SHIFT) { + return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(int) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) >= 3 * PyLong_SHIFT) { + return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(int) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) >= 4 * PyLong_SHIFT) { + return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (int) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(int) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (int) 0; + case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(int, digit, +digits[0]) + case -2: + if (8 * sizeof(int) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { + return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(int) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { + return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { + return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(int) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { + return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { + return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(int) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { + return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } + } + break; + } +#endif + if (sizeof(int) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + int val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (int) -1; + } + } else { + int val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (int) -1; + val = __Pyx_PyInt_As_int(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to int"); + return (int) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to int"); + return (int) -1; +} + +/* CIntFromPy */ +static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *x) { + const size_t neg_one = (size_t) ((size_t) 0 - (size_t) 1), const_zero = (size_t) 0; + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(size_t) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(size_t, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (size_t) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (size_t) 0; + case 1: __PYX_VERIFY_RETURN_INT(size_t, digit, digits[0]) + case 2: + if (8 * sizeof(size_t) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(size_t) >= 2 * PyLong_SHIFT) { + return (size_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(size_t) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(size_t) >= 3 * PyLong_SHIFT) { + return (size_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(size_t) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(size_t) >= 4 * PyLong_SHIFT) { + return (size_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (size_t) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(size_t) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(size_t) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (size_t) 0; + case -1: __PYX_VERIFY_RETURN_INT(size_t, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(size_t, digit, +digits[0]) + case -2: + if (8 * sizeof(size_t) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) { + return (size_t) (((size_t)-1)*(((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(size_t) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) { + return (size_t) ((((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) { + return (size_t) (((size_t)-1)*(((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(size_t) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) { + return (size_t) ((((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT) { + return (size_t) (((size_t)-1)*(((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(size_t) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT) { + return (size_t) ((((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); + } + } + break; + } +#endif + if (sizeof(size_t) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(size_t, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(size_t) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(size_t, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + size_t val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (size_t) -1; + } + } else { + size_t val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (size_t) -1; + val = __Pyx_PyInt_As_size_t(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to size_t"); + return (size_t) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to size_t"); + return (size_t) -1; +} + +/* CIntToPy */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { + const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(long) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(long) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(long) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(long), + little, !is_unsigned); + } +} + +/* CIntFromPy */ +static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { + const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(long) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (long) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (long) 0; + case 1: __PYX_VERIFY_RETURN_INT(long, digit, digits[0]) + case 2: + if (8 * sizeof(long) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) >= 2 * PyLong_SHIFT) { + return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(long) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) >= 3 * PyLong_SHIFT) { + return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(long) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) >= 4 * PyLong_SHIFT) { + return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (long) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(long) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (long) 0; + case -1: __PYX_VERIFY_RETURN_INT(long, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(long, digit, +digits[0]) + case -2: + if (8 * sizeof(long) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { + return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(long) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { + return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { + return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(long) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { + return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { + return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(long) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { + return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } + } + break; + } +#endif + if (sizeof(long) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + long val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (long) -1; + } + } else { + long val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (long) -1; + val = __Pyx_PyInt_As_long(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to long"); + return (long) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to long"); + return (long) -1; +} + +/* FastTypeChecks */ +#if CYTHON_COMPILING_IN_CPYTHON +static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) { + while (a) { + a = a->tp_base; + if (a == b) + return 1; + } + return b == &PyBaseObject_Type; +} +static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) { + PyObject *mro; + if (a == b) return 1; + mro = a->tp_mro; + if (likely(mro)) { + Py_ssize_t i, n; + n = PyTuple_GET_SIZE(mro); + for (i = 0; i < n; i++) { + if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b) + return 1; + } + return 0; + } + return __Pyx_InBases(a, b); +} +#if PY_MAJOR_VERSION == 2 +static int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject* exc_type2) { + PyObject *exception, *value, *tb; + int res; + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ErrFetch(&exception, &value, &tb); + res = exc_type1 ? PyObject_IsSubclass(err, exc_type1) : 0; + if (unlikely(res == -1)) { + PyErr_WriteUnraisable(err); + res = 0; + } + if (!res) { + res = PyObject_IsSubclass(err, exc_type2); + if (unlikely(res == -1)) { + PyErr_WriteUnraisable(err); + res = 0; + } + } + __Pyx_ErrRestore(exception, value, tb); + return res; +} +#else +static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) { + int res = exc_type1 ? __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type1) : 0; + if (!res) { + res = __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2); + } + return res; +} +#endif +static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) { + Py_ssize_t i, n; + assert(PyExceptionClass_Check(exc_type)); + n = PyTuple_GET_SIZE(tuple); +#if PY_MAJOR_VERSION >= 3 + for (i=0; ip) { + #if PY_MAJOR_VERSION < 3 + if (t->is_unicode) { + *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL); + } else if (t->intern) { + *t->p = PyString_InternFromString(t->s); + } else { + *t->p = PyString_FromStringAndSize(t->s, t->n - 1); + } + #else + if (t->is_unicode | t->is_str) { + if (t->intern) { + *t->p = PyUnicode_InternFromString(t->s); + } else if (t->encoding) { + *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL); + } else { + *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1); + } + } else { + *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1); + } + #endif + if (!*t->p) + return -1; + if (PyObject_Hash(*t->p) == -1) + return -1; + ++t; + } + return 0; +} + +static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) { + return __Pyx_PyUnicode_FromStringAndSize(c_str, (Py_ssize_t)strlen(c_str)); +} +static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject* o) { + Py_ssize_t ignore; + return __Pyx_PyObject_AsStringAndSize(o, &ignore); +} +#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT +#if !CYTHON_PEP393_ENABLED +static const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) { + char* defenc_c; + PyObject* defenc = _PyUnicode_AsDefaultEncodedString(o, NULL); + if (!defenc) return NULL; + defenc_c = PyBytes_AS_STRING(defenc); +#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII + { + char* end = defenc_c + PyBytes_GET_SIZE(defenc); + char* c; + for (c = defenc_c; c < end; c++) { + if ((unsigned char) (*c) >= 128) { + PyUnicode_AsASCIIString(o); + return NULL; + } + } + } +#endif + *length = PyBytes_GET_SIZE(defenc); + return defenc_c; +} +#else +static CYTHON_INLINE const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) { + if (unlikely(__Pyx_PyUnicode_READY(o) == -1)) return NULL; +#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII + if (likely(PyUnicode_IS_ASCII(o))) { + *length = PyUnicode_GET_LENGTH(o); + return PyUnicode_AsUTF8(o); + } else { + PyUnicode_AsASCIIString(o); + return NULL; + } +#else + return PyUnicode_AsUTF8AndSize(o, length); +#endif +} +#endif +#endif +static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) { +#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT + if ( +#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII + __Pyx_sys_getdefaultencoding_not_ascii && +#endif + PyUnicode_Check(o)) { + return __Pyx_PyUnicode_AsStringAndSize(o, length); + } else +#endif +#if (!CYTHON_COMPILING_IN_PYPY) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE)) + if (PyByteArray_Check(o)) { + *length = PyByteArray_GET_SIZE(o); + return PyByteArray_AS_STRING(o); + } else +#endif + { + char* result; + int r = PyBytes_AsStringAndSize(o, &result, length); + if (unlikely(r < 0)) { + return NULL; + } else { + return result; + } + } +} +static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) { + int is_true = x == Py_True; + if (is_true | (x == Py_False) | (x == Py_None)) return is_true; + else return PyObject_IsTrue(x); +} +static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject* x) { + int retval; + if (unlikely(!x)) return -1; + retval = __Pyx_PyObject_IsTrue(x); + Py_DECREF(x); + return retval; +} +static PyObject* __Pyx_PyNumber_IntOrLongWrongResultType(PyObject* result, const char* type_name) { +#if PY_MAJOR_VERSION >= 3 + if (PyLong_Check(result)) { + if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1, + "__int__ returned non-int (type %.200s). " + "The ability to return an instance of a strict subclass of int " + "is deprecated, and may be removed in a future version of Python.", + Py_TYPE(result)->tp_name)) { + Py_DECREF(result); + return NULL; + } + return result; + } +#endif + PyErr_Format(PyExc_TypeError, + "__%.4s__ returned non-%.4s (type %.200s)", + type_name, type_name, Py_TYPE(result)->tp_name); + Py_DECREF(result); + return NULL; +} +static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x) { +#if CYTHON_USE_TYPE_SLOTS + PyNumberMethods *m; +#endif + const char *name = NULL; + PyObject *res = NULL; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x) || PyLong_Check(x))) +#else + if (likely(PyLong_Check(x))) +#endif + return __Pyx_NewRef(x); +#if CYTHON_USE_TYPE_SLOTS + m = Py_TYPE(x)->tp_as_number; + #if PY_MAJOR_VERSION < 3 + if (m && m->nb_int) { + name = "int"; + res = m->nb_int(x); + } + else if (m && m->nb_long) { + name = "long"; + res = m->nb_long(x); + } + #else + if (likely(m && m->nb_int)) { + name = "int"; + res = m->nb_int(x); + } + #endif +#else + if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) { + res = PyNumber_Int(x); + } +#endif + if (likely(res)) { +#if PY_MAJOR_VERSION < 3 + if (unlikely(!PyInt_Check(res) && !PyLong_Check(res))) { +#else + if (unlikely(!PyLong_CheckExact(res))) { +#endif + return __Pyx_PyNumber_IntOrLongWrongResultType(res, name); + } + } + else if (!PyErr_Occurred()) { + PyErr_SetString(PyExc_TypeError, + "an integer is required"); + } + return res; +} +static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { + Py_ssize_t ival; + PyObject *x; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_CheckExact(b))) { + if (sizeof(Py_ssize_t) >= sizeof(long)) + return PyInt_AS_LONG(b); + else + return PyInt_AsSsize_t(b); + } +#endif + if (likely(PyLong_CheckExact(b))) { + #if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)b)->ob_digit; + const Py_ssize_t size = Py_SIZE(b); + if (likely(__Pyx_sst_abs(size) <= 1)) { + ival = likely(size) ? digits[0] : 0; + if (size == -1) ival = -ival; + return ival; + } else { + switch (size) { + case 2: + if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) { + return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + break; + case -2: + if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) { + return -(Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + break; + case 3: + if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) { + return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + break; + case -3: + if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) { + return -(Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + break; + case 4: + if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) { + return (Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + break; + case -4: + if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) { + return -(Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + break; + } + } + #endif + return PyLong_AsSsize_t(b); + } + x = PyNumber_Index(b); + if (!x) return -1; + ival = PyInt_AsSsize_t(x); + Py_DECREF(x); + return ival; +} +static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { + return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); +} +static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) { + return PyInt_FromSize_t(ival); +} + + +#endif /* Py_PYTHON_H */ diff --git a/reccdi/src_py/cyth/bridge_opencl.cpython-37m-x86_64-linux-gnu.so b/reccdi/src_py/cyth/bridge_opencl.cpython-37m-x86_64-linux-gnu.so new file mode 100755 index 0000000000000000000000000000000000000000..f5b190e2df02e69ac61cb81fd4023b1a2e8bff78 GIT binary patch literal 1983408 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�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 z zLy^WHDb+P)A>d_(B8@>(y8Wd}^f}-ihSEA)OMjrXoCbW=P^2-?quKFIJ55#%@ECC5 z=ep3+7$l`Oo+ja{D*~8a-O6qZl2UD!qSOG~z)++yNXpn^iqZ}6KtqwnASp+8sS?cq zywFgjF-Xe6eoD(4z@Hn6GzLleRZ|WFK5Zz{7$n8hUun4u__3i#V~~`pT1)UIYzyPa zZVZyrK~pLMu3;$B7$l{qu9r4|yBUf!21zNS^D++b3`3E|ASv}VWd-0hh9ZqYQa;y| zU4Rc8iZljESvOl1nm&(v*HEM}Oi0HR)2wtOMR8+x55^%2Esa4^t~F4UGJq=@ipA4} zq>RK;lI^7t;5LRLjX_c#;#mWx3(l669R03R_FX$+F`HWqGdQa1qqVJOlVBxRh|l6xzh z?>J4b&?o?s}_7$oI=O?eIQN<)#x zASvHy$`^q57>YCoNon@A%I-P9Hw;A@gQN`6l&64m<91ROS{ef{+S*3yWkqqo@rE*h zCmTtrt|_$uH!+l9_I%W?lb(-y0Ul~7QVY*&?Ivl;9Kf#`iqygbS^MF7tos=77ltCW zNXo04at!b}Ly=mz2XwgdNY%?dz)uZDYLOJjV?_zYZFg}TvRp(l=gso847FZ*|YmFE54h1s<1ZWPE$+*JY7>PiFW@JlL({BfxJg(0j|@X@#v;K zPNEO?S&O*afb248T6zS~UbDO74)_$Lmo?&{yJIVE>}!B~FTiNN@CQWx8}L(2vEuf4 zf%ZAj5^rP?8VY;%;ZO-P+IKKMI>!lD08(9}o)1=#`ew&qCjExz#g`ayEm{Napea^d zgXe(uZ+R8-GcqGa02yba;ZuMPczY(EL?U!CkT-0!cO{?$bK{9zzTMdfWQ&bH*bQ`0 zC)`ET4VO3ypd2RiyX1dLul;F^tApgYbn6R;XK6f5~r5f~*nOZ$tSn*T7n55eNV}PG&g4Hv_il5rWt*`@- zA2nE7p*cu%`Vwpfh-;AEv=Mq4BYx&+Ja;Ajh19jf)Ibdjapum)d_KkW=!k}^NOG(NkJnMbq-+>0pGedX?R+&F5#g#%z! ztYs45`9v{Vvhx;=hZQBJ` z`l+(wp6`KNEm?yVJ8LP3WTSEXN3NK+^!<*ifK|b1L_AYKm3vnh>iCT!)0Ms+;0*TD zXT>q)&8wr7s#$;+`>C?xZXbr0Wvx+ToU65fxA|$2snuiN@>j8bT!0p!jv77{sMCWR+&=XCeiXbS=#u z;Y-mB;`RpOm66nST=a){yn$#al}0Y{TVfutcl>diREm=h6yj4b4nKpHlUhuO3!pvu zZ&aIKiB(q-A}POEckKK!*%mhG)Wf zM_L{X-H0mF+3HfIMV;XO()HE0T`z}IFxpt?J7H}U`FG~umqsk9B>Uso0rsV z_#&W28kVzR49|wO9Y0;gBfKk+0&U>;*BmQ`r^EV=g|d(SFx7?de??|Vw~U@-%G{b256TJ^UOHaQ5n6TvvwBHWgF(Hai-(&DFr_QWbHNO z=DBg6!=qyt0#ww7d2(FnSX*7CoeHR`4fE`{#IX+pBd6U8P2aCkg`+C%5rD=S zxD3ya?>ZteWr+n4FELQeDhyBYCmnx0RP)6KKwlEfBUKtK_g9yzK@VwiIumT)}u9|7s2 zpE5~|g0##}qZPxPbmzR{DrcL3@AOk<#qcE9z*&E= z((@zmn|^v!f=q1a{1PU`b>_qv9E`&*rm8bqoV9dj!n(dkrx9hqsc3j|Uf7KrhWOS_ zQ3vv7gppZFCq^t*ZXKM{>#9MjH_(APwiSz|TUTcwvd1IXbO3V=$bWAVKij#syg+Lr z<@W(?AefDwr&P`9*hO*n13zInyxX8TjZdPNke=JX9~usCH)zf)7|@uLA6ra?amciI zzd>_`=(H*TuWmTJ;h;H7HKz^mZid4<4x00k=8OkE({OmpL30A8sr;-2zSeMf&p~s3 z#PW#q{0;D4oSRKt<>qc|Hd zAh4dMz}p#)v>(Oks?!<{e3Icv`%#=(n)5pF_Y6nckK(+gIopBnGaP9@ic?B+E(5=1 zIMRL;=Uv>)ah?NUNcnKcvP=6>oDo`24De*bk@llF)k-Qo4S}~d9BDs_vtH{N41Ap7 zNc&No6l@-FeqIIsw&6(oQJi|3^9Ardh9m7qaRQ>1p7X$eHXLa`ic>=C5x5ic;*e#R z_QP9B?>KkhhL!VE5_qEFNc&No&{q_vF7OtHBkf0V)?pRPdinz&WjNA)6ej?;vCLTj z{4K+g_M!ccz%Ln&v>(NJU#Imqa2M8NvRu-B6sN1^_<)x-9BDs_GeUD}0B>M8(tda| z@nh#3*j(j2cLzSmaHRbx&cJY0&$ECpHXLa`it`h`FvWV-0pDUc(tZ@@2sVwFa}4-7 z!;$u*I8$_5_kmluyOCv=_M(N3r#aJr&o>-tKZ(MOtn+gi_-VtD_MgrBkf0VqOmMuJ^69-RTzgXyR;w0 z>2gPLDgdu;IMRL;XSn9H0p87Ur2QyPiq7+R;4=+J+K=L#r8^rc*Gk}P4M*CK;@r`k zZ-5^)9BDs_!v!EczW~2yIMRL;r=HGF9xNEbaLBSt`%#?snv(>)vf)VkQJmK_rzP-C zh9m7qaX!?X(ZF9a9BDs_Ge~om0bgx6(tZ?Ys^;tje#mg7{m{cy@!vZ4j#X>#>%e~{ zj@&)z+aHVe@0^DpsMWU%>*L%w6xT2LJyd`_bS*{Rbj)HiCfqIutL(I~Si-=j`GSYklP)ZAn z9(|L!vb^-@SnxMd=$Q%0bU(t+VkK1kg$DhCBu}U$zC*MVr1c(4cVaI)p|ZFJ$!}UJ zZ%$-{I^rqBxuJ|B$lD$XH51_wmo(5LJDK*P0>sq~#1F~ISiM9Oh}#;7yQ+kSh`tby zFc9CC#}z}l6UL-tvgHbU8SrAFc*(Tc8+{D+2Bw$Lq9tmS*!3E^-GyZR8PY+(;5p+7^N zhopQ0=**8NWXndjGx3Y@Gl?>OaSFTp5T|U3`V^n~W%g(4yqzHp3M4{&KMFE8nzG{^ zN7wIB+Ho@|$k`}z4rM9u@j5(^`MaQpOM}0?iFQv6J$(k-Nwhte7(VwRN+1dnkQgDp zMcl(ULf;~>l={SZNFHdZ$A1fwFBP+x$aNYC;^6plOH(Q-E{a23&OjefwY)=##L*^X zV$?OGecuX#}`U4hnsNGBK_)+UW~QXfWV$hCU>eoOR0@T}4#Pbx10euV2EN9ZX^kXW8cYsronuPjOeOEma7iYlR6 zqB_L&4a8at&LORhL|ce^Xh=QSNqsh{ZFwwauTVxO0G_2O9#)*T96M7xkp7)?pq5@yW)WzfIbm<`qR)_RI68T)^gUgS` z(jHY4LIF$oLhj=Q&4LwicK1IDD=Z&MkHouOJ-fq;Q@+qz>^+e{?17pCI6~`yY851P z<-^5~kX*_kjSzPsd90=KodOx5u<#&hy3JrU@_j?@?UaVn>Jy0|)bl6t>xMa*MMV}^ zqo2XdK_5`CH?mtyP)&-L!GB%HktQ>+&TZ5}@gWU_MKOgVpM$BN6RjZ?*z%HKQ2h#c z_W8OKGbqiJxvRoYnVh)+%gpOw%BijXD-CfIA1<&(n5T1>p;m>FC6o^#h~^ERt?~{U z0~>jJE1HZZkT?P+!5r8T{he}IQ4a8so^=AVk*Ro88fAd?i#l8 z(}Yu@f;fcXi6Tlq-ix3dXSrvB=%r`mvsjSnriZXy)e$E$A(ZC%W?>0od+ot z)X?pG4nugBn71odn)|cdBl%1(F=x3eUW8^c`z&`X29qpz9TF^M0ezl4 z%N@n%4kV_xU9#N0DM+ulWVxwGS?*5Il*uV)xoK|C+9O@kFOhz^p);Yc{dG%)0?g{DKL+sE2A&L zVBQFV=p71LzUAmAMc<7>*zMc<9>S}rJ@Y}|edHn29r!jjd+1%IbWk{#B)tQSrLDCz z7}BnV2`lKMa|F&=?m>XP#0koM1s@;erIO2q#&qY(zXM|5)7tn5b1)@o`6^9BIE2Ek zKE%oO{CZGAiN~E<_H5{$1c|F+Ulb@;h0x20IiwJjSD=@u@c#&}A!bF=;`ZGd4|xj7 z^YtNqu2cbfD8-R)Y7&h@l;yop+c>3QU3AM#wkcQ;+Ah<5d#}L}8L=x+#oT5BZ$Natdd;DV*u1ulHrS>1&Fa>RgS{ z?TpT#IdYuL*`7vl(} z6EweppWy?s-pwaciW1*f@C0rQqgUOgsI4|3TzVtIZeRQigk!fOoX=Mc-6SP$AHre2 zvwuRKa2(-CAN?n0N+OMOrG001Ae=H0IExylpB?$5wEl{_YijBp%o>H^I zLHI(Evu!wJJw>+r3lZw%Dk7Iv#{pc>pog+xMZSx*QcAsP$Shso2O5A(adc)#TCsm9 zrwv=~M9m>oL{qF{cLpJTlO?#DNg|2?B4e>4PifWwuM|?4VfW_|g0obD4RAKdm zu)htQ9tZ&ct|+WY5Kgy&;u!5xGW%8+*6R?iuz~y-5>r}b9m5?kgj;N&6XyAp*2Q5K z2O&IW12>VMls47z7~M4pZ`wf8cL1{f!v4h*2%Wf(lGRx3<9h(wCI{fI3BtlQu$F*! zA7VSDEQA#dFrrRZE2aGe*k>Kc8X9@AHSipybOeWWCeGhf2Y{pP<0MQ4E;-JQBx?Gc{eTWe{WhCCw#`k{!)zPpO*9cEd zrHoIXtoDvN0_kp}trCGwq(`dA48?dLQ*E@=-_SbgWmq|*Zvt6qquoa$?&L0w75W8` zuWj_tYKS}Kr)YeW6@5tj0OY)l=EppnGIao+X`$XG?gM#jqceIy^GoY7YH-|Oj5CFB zNUMm;qMko3F%crZ49KPjaK~<=!|mh@$KD4h}$2?P#YaY{eR|g z)FPvEfGjX*z1>*4r_8=W%L1ya_YHz^kw#I>Haz0S)}vAO4)kLdf&}Xj4o_t?umQ=h zAhNd`B4xRULohtwmw38fq~@n4_uYShf$#avT`h#)b_gpql>Q7h(bpe6E0uSOGJNCF zjZzC!HkRLnaug)BC=GLid?)upXE7QQM)_{Qs8fqmc#^Nh zR|uD+mH15Gc{FHhH1X&9dcs;$OOgKhz8$dj)Y8OR?YoF>ks3pswZ7rF1x$@2&IVsH z#);IjB;V&-))(O<;ve#z#&Dlnp2CNH!!R7DRv^w%-*0UZPN96B@SXeyoEIp3+P56H zv8k0Pe9m_g#+h1$!k2tU+aX+y()zi7H!6D#3R|LBgR;1IG2a<{OztM;2ppk285N`| zO|2uEK+;`H`m&ElFXG~chd z*To@A6_+#%X!E}4Ae?RjkYpPjf?+?kK91d09-#Y>A@I7t|sntXgASG;c61K!sJI(H>@?056x{Wsf z7wLAsF;;2L0z$7pD9xoXsitEc(1P3wcY*w6ql06C_N#}spgtq=Vmt`J zq4M03T7O^`h9FKi4oEp0or9q`b=aa-!lLm))C1DQMq6hA9r+mZ9c%6dWPpuMCz~97 zv#@Hx=|JWhwBGdupkqgNRp{FW!QgfqLs`PH0yNI8gFGPsvstEl3kNsR{q1fFPC-jy ziH~3~z3rawg?v$Wu~Rjqdspj)5MEsRUd8J1h36@A?t;X5Axz}C13r#WB3lKYehg_L z5d}$tmZ}M`-F!erd#^>g(*gC+u)HOsiNa%_cmRkYm1!KW*t$;b|uh;wb8Ov z38Jt;U{7aYPq<-f2`lOQJk~yG!5{pAzqB5JH9%U}$^NS2w?q_qS3YvvejpJCQPtcD z2HMDMbepsyS21MpBgV4`p#-gwNtgoCqB`Nb7Ci5-CWJyBB3dKw&j4Jq2u6H{cWKxf zd5@6j-%2awoIytQ=rPPnE7ejjyZ$oB$dKd6VCnAYEvzly?w3g5-WfHsDc~ifb*V3>=d6~y!6ijp8=3oX*Z@GPIhh%m}6HPg}IsG4>W9z z9su8DT8%$2K8T%Ks&e!#2FbMavbYK2NY@FbD)X#G8>#kiA49fk-NEqAoFGCdB#FZ> zQ3W%ncJot;6YtNVNy8dRw^L~u8A8E-NTVn>|?+Xarccg_DT3m;s1}Z z>j1B!=-NAbQ|=8RQUyW@p(r94TIeN!1yp+P9YF;`2MrMEf(b;b2qZ+LTEGHWQLs0_ zf(-=}yC~RD6#3ux%*@`sm-s(lp6A}3Ip;lR&XjX@&hBP!?;zhy-ap7U#rHPfg~F}c zo0K2rn{UhR9sC2|{evv`mvZkQ-=B?ZAZy6g-!+B%H@o-(7M3 z>K`0@8!0@O^$%7V$M25veQ^@Yr1uW$vYrIKBe;K%?`-aEzWJ8i{=w(vo8{iYLsFhJ zg>+q>jxtVC!Yw(C^pvTj(E0lZpY6i$Z{)kGa7phSWVwqfsjtHEg{u97dw#=cj4C9z zKNdy*peFMrvb}?R-6|%5klH6n7$Oi&=FfTIn(6{V{vo7>Kt>8gllc>Iy@UDp5R&pc zAln2oRv?2Cd<6A*FNx(31h)YTuepK)3+%^Or_xdPCPDJ$&565c@9SLw z9}FU6n&^_wWGy9q8fe*(bpFI%AQ!X;Eu95V{SH)|MEX=l zNdEw|fiO z2HK!L)G|3CvN&V!;;(~dtEnq-o$W62okTv7HCJWA=>qFP@P70X0>kh_n52np#Si&o zoO;n#{BV=Vc1C-mAZt1NI`9OD&*LNJvfw202N<)?QTY+nzqL#jydgX-$TJ+mKRASZ z7kt3^3!52yM3)r8Yl81+&zg@&6}SS3W)>xdFseOKe5ZThW*|me6m{vr7#Dtpd)9qZ zftv!>N{eGbaPH1qrbrPEw3B}BB#wjXd8#|eZkNCg0H3o`QV83CONkiV$rYjeBp~uT z)ZCiM)|7u%?t_1{l^n<-Oq8q7|J}D^|Biu>s z0$Z}~gUx|~sE@`+#+LnbvIa^2L0jaf`y7=&V;fin=A#x6URC3`s`RhcW>u^T+;hNu zW^r7aW+1=AqDIjh$a(60P%wr+0j#hs@fLcx<+sX6j+b?u^v6Ma#ZM1+ zB8$Jz8+aeg?<^oZdlqXH`w4+6K-I;^^NwPyIf?x7 zgsidjj11I!Sp+=;<37wOKAAMU5SF<5oYFC*1B25N)blNZ!O3VM z%}MM)+dNQXqWdZa9FT)t1Blf@rY4zvfk6FxFXEI5fRY3;*g z4n_SA%QSN_9=}q4oJ(1Ljy&rxPU>P{Hdvfl%2>Z!B@oP20fx3Gz?aTe{ES62C`~E; zD(Xk9I15hVB-&7`I+&+W|H(4tG%;6Q%OR-nuL;DwoiCbWJ|Ydp;ZDp)RZw&i`G}`{ zW${NT0`);`fsgc-1t*ceKas^Bz6f+ieT-$A2*}>@_bNV-l0EVrYEMXlKGjd7823uBHmV18(U~5p?EX@ zMm^_sbC>GEdqV$=Sv*)Dl@TtHkAcxp{m^j)%GrL_|t#`RNouwqYbEP4LC`} zga4ZWUHt~wiWs0P>@nBjb5Lj3Ave9C?+~(6@%A(J#yiwZ?*zI9b*jf4e1+1A-20Cs;J+jn<45ydm=fJ|Y;7 z6bnrvG|X`qlIdr!)tU4MHZQ}vI z5?c`^x&kFXaMd-$bu3vkRN`%X?5ZQtt~yvpL@LFu#W*Zbi$G{B|Ey&zveIS^VYnz+a#R;tibzCy_tOK3DDF*{>=H_Uva)rPpyJ+JP?Skm#M; z3}Pe^n}CQqxA6*8w13{INcCcfuE?nUXACKz`h!InP*oWN_7hPmc!>dIM;owBguHW` z?vEJYMVY^;t`F2nlqpKd0lyMk5hY%fsZEX11j+rsEslt+9;#TR8iVSnYweJ z;j{lw!)-ndrYsu5QD!i8)Wa3>ORcyx%21mZWpqW@xy@GN%^pQHY( zMTU0|kDILO6kWYdF)r|)nQ}keoZ&P5J5O7Yb)D($Ja1l&E$Sq-5i1K9aTV`Isw!uU zwUx}!srAF4eoQi6I;VI6m?PBTSio7K_FP6hudW`I`lem1udRwS@UwukQjHut4s~Ar z&iS190t78pMKm1`IIGmqE%@aE=v}QQV6UvI$_=(Piq8kCR6dgN8(?eIi;0-7G~Nda zQC*ssV4?fIoY!y80T_8|nJ;+4reQj!Ne<#DTnm*=y9< zdC=B)>IwXt`-yWa&#<~h)l zP6kloGAa2*z}cwg!HX=`*@_j^RH@?1$ydDCtiOS}7Y0-?8Z$KNvLvc}0*sHKC`WBa z>C-P+;=Z)bDfWqZtQD&vJwgME#zKFNDg;kUGM)Vuc&9)ehF#a1cDk~i#X0I5(6nMM zSt>42Or$Mt7jaMKD<;l4Y7V}ME>IaLWh~GG>TCmMTfSlvo}-52d(YQ2wGT?4ptMPi zFvy4DOBZ0Ecp1)}h3Z?&k=2YF^NPtte`94mYHq1=RA&&&e?z5hQTpiH07kD7O8M$a zd_SO=!}x_tyAb*XL=F8KrF``XzBeoCEKtmxA_S)9s9hd@v*6d_yFf8zi$D&_QR6)1 zP(k*<_XCRQpC1|X7L2InK`RP0NuW$sBcKlfx)nri?>dxnR1UuXMpw1X52`(=SNSf0 zmKa(h#1}$56%Mb(%b=8_;_>YluZQ}r5Z|Ka&eaq53Z?^7(aoJ^mXAK%ub9O=Z9t_A zPo;J*LAA_ga-e3t;w9E-lv@Bxrhw7y`+&1m@v8IzqbR|y(Sm$61@s)X7~fy~z*(Jz zQimTY(Hf;!jf6c7xR2y3UgOSDL-Bn(a5<_MN^4OnRBsuy1ZuRQUG$`(W@5TkS}i;- zr(N_}k*13_I&EFlVs~-5HC3C@&mvs(E2Hs@LE%|y?V`(mqCs@g_@7y#i}poHyQmcl zyJ(_F(nYl-U6gn%Ho9mD#5(!g4r`2yYQ=O>0=0`;Tvy^ET$Jdo;-d0K7bv?zYm9Q! z$IsAQy6J}~ZBbjTGwOBG%f%j_f7&UpFm^3xd)6t-o}~&pW#%tMIi+97b4m^MJ0*2$ zr;HFVPO0(HP8oqTPN|X6PU%N_PN|{MP8k8UPN|_`r(A)qZdSBeJLMkKwNpljTc_0G zVW;$q(<$9wIryE;@On;(U5M{bJLLoe@|-g58(GE4oiZBbIVB<5DW@AnMLT8N z-#Dvu%5f-Zr_3@EMLT7lNYE*tL#a^RWzg0swfR4o1ySAA)9=N+=V4 zfy6S)cW^=1HEk}HIF^{VYfc;##Z_ulF@LFyo$94W&I;LH+i;dI;Y^3J{xGyqT`(5f zQQM@}&DFtxXU?Xum}kyF0v@r z!PC17)#rx8e^%V2?8@N-Qx99*G^*>#U2(43Xy)~ZWo8MJdpxhP?FMrODu1y!qXZ}Y zT(!plf|r}EfLQX3p?-_5=BkfOt&zn@r+Nkw>L}RxrQsHP33q`kVzRaqC$mlJZvzN@ zhC7)SFxz$nrgl>eX)wkL=(zcMl=&*O%@#dNqi56NBm;QbGKGrY4wZ%cuA#={y*4Wj z=;nrg#?S-P9X&BHEmw6i+~Va-?{&{O9l2__Vb-xsZL`%p!LV<#Y~5$g-lS$4Hdo7N z0|_MHbe5~u8rEh*j>$W$SBo*On_e~D?JDZ)O3VH9v_EX5pANSRolhF-VM~=!dCpM3 zwp0vpu6o5#FBmGD#qxX4kok`eo78br`wjNj!6L^D^$G<}Epv6eC{(8m;D%4Rc7L=r z2j|i2sGBWS=B$RHK5eO3$A#)`L+uS~HmT1| zEpe)HzB9N`Ah_H!zW74DT&e@GN%0-M{39H{{cHMq#`G0E@2MTMy1_LOsdQ6ggy?9b zWXfPpn+Rk#A9AvX#H3@WMi}1RhOQ@hvZ3Z%s!ZpdhWezX%5=^*)VB;(rZZRN8uBSa zwsWx7(Esu1dJYN& zlP2;x;5^0WiByy1*vWqjkFLCDUWV$@H36Va2UBnMN|+AL;RJx?W(D?b~&I7wVEekJoiCeV)o* ztG@#{d%leAMY{QzXmOC@Ut*Y3z$83iwhf|u~TsNRt` zK@&P@zVaWtBe&R$ojA`nRgLkydJ#MF>#a!|m4UaG>K(aODM>R_>K!?iZ;+(fij~04 zRCm!j=++6dmf~)_&INBbKEr&7Hex3~-{jo6KUDi|irnM?GtDrD-4o>{2Fvima)W~@=LXjhvA0&(|hw}#>&IgZ1?81E>bD?=KGx( zj9+xZ>=*L(<{IkXn^ULWn@0$ky}8Cm@698SW^b;M(R*`0(%YMBX!PDZ0&4f>8XDf4 ze}S%URH%CD7{pro^PX^@e&3nyD zv76f|P@^}u(I{_oThom(o7+E(q6E`~-Dv8BIVTW@jRSCsS)^KT>JZHFTg=5jHV z;NHAFN`?5@NWFyYF4J7oGSm_e!@o!Mt7hHv7LjJcd>kcnP0L`r0t@&20R1e&Ju4X0 za)YXB-LqsI4WfJAEhQ$*pP*!}X&JF_!rV$EnJ{Zfx+w8jmU2zY2o$g#LY`A!3mB)=_-Ln$P;H!2Bcq+tkMx{UL!+HC0&1O7L&Hva5M9Mp zEZD4_@@v%1RV<(NG1e)yc-SfZ;&jRe2^{>nM$~i4q7vo@49IiJQRS;!r|bna+9{(^ zo>LN{GtQkxQPED>p_p~bDJW^D++`$+cFMIPL8p8Pr9$1y*D^wxm^d|x|6yzs=4_iV`ysxB z8GM~ETRwkP)y6TKFfT{KoLyAHY=vyEi%OV>!O%ig*H~yrZIe1=LLtwbV_`Af(j?3_ z^sX^v*_?vkGbZl^$%S|!6!q?^9!|l<&4e&z-fblGj=YrN=#<&69j44DEY6=Yzir@w zn%;SwjoP-Do_}Q^%$RFfn8`nJ*3VT5ck7USgJqhW(b!ubklF@vtA&_s*Mn?Q9Snr; z7Frnv)7K0nD}=JX2D!tcWCwnmp}uOV{>*i@VV<%~fBu|jn7BWv_cESwXl%V3w3iuxPH4;7nk2MWn_AkHX3%63(k;eN zWAZ+doUV=OQy?Pk>GLMeSN9gPTLx0fFUDJm$pd4Akb3oKRU`58mqW2u-qfG%&PO;k*={!TzEZ_mmuxqi+3m+tmuy$+uP2c&*{;+NUdB3KtfI1+?LJ;2 z#@V6oB}+Y!=fs)pH=8ZHdBIicFir~VQ8C%?Tz~dEkJ;}7C1dQZN;;NOZI!8t}nOQ?>b#)HryBgPp$6PbuSyyWE0&3y?CzquS5u0cXf4G}blo!ECi+EVPYHs}CR!`yCYnn1 zCfec(h>O@n6RmFypID|B+!NVE0U$mp%NAL(tqH8gtb9RamlZw(D^y(^UG)|)o#t#?b*_0~H= z+-|+KczEmW7w6V{F~qm1f6egzzgzD{IeKort@peY`1fIb19>OZ=)G$+%G71s!fO0#Y}r7{ho8=sdF-T0;|HXpWP z;e5E0NYa(HBwd+!EKBCYOHDiV*p6{!t(dM%pmt@8%O)x6GD5&O zrN&1)WdzbVrA9_Or61`zrG`d3WdzhZrG|!`@<()av!cz~DKAU4P8lI?ol=X3ozgE( zrK}u)PO0aFh{`}tlnta|HA*fQ%uI5HDXm{uZgnp4D$ zV=H2NTT~vr76ulo2aRQRv^J^B&G_-mIuVxA9Zeo=L+(aHmJ=@cJ$Vxc$8Ojov z9!3w-;C)6wrv!ZsN2kGd$uJH6#^S<>T&}8=t4{|BjZADX$)jnDX>cP0VH$k3h3Om2 zyic2}`WZlH%Z%2Mt7aO=L<=#QrmvY52EsIWoq?IId#U4WHutCjK4*1Z+T4BvdCx*b z@LfYaW2t5!uw&0vUmIppx)&tv;Dh^@;a+XICXJT<%MZU`Id-s2bDaT=Zc<5R*Toqh zVE`smu47mQh8&Z(%RDL|hIPY)a>DIG=!@$dsQ2S@VY#ZU5#AGS6x5D}`j(|iuGGy? zzpzy4aX&--(^7Gzu279ORGleLGBsw(S2oro6Ok!THvpX}<7oqlU^hsnyu#G_8A05; zhKctZ>I6%bG2CpZ3k{Vs5AY*~ywQ;Dm5_agzQ?2EY69>F4E-ICuJg^e4E<}5&h)%c zO*I~>6X=De#ss=-6Wd$wUhyXNtk0qA8-UCjntsRdZZLE`O`jX;AWM}A`Pxt?TdGXR zSwmf7sDZr0v!VDeLoTpj8Ag?-hkB2t$}lDv>f2U@9>y|;{FNcwVXR{47d*Ni##)A6 z7HJ@s95(-Y7#kRRU5~DZv5leY3kzLMjl(#?AfqlUpudG`u)*mI3z??IV436T*Gb1L z9}?%(hs}r-m0a^3QtDAWUo8vqLYy4%$oeNx*}RiKxqb#Q+9cQVe(K~JUUK~?lk0{x zS(oHm>Ibi2U6O05*Q&+3B-fA1Ye}y1l545!duJ`nXB_d$~^+vNLYlPufh`&C^(jJhP>ujx9I zb$QPFbzNt&F3I;By3XW$0G^LkZ|Zu1eUkfKCg0ayZIkb6X3S6UJp9k`a; z`+_uQQOL zo}Fl&e%D%|mt;0E5$X3c4QM9!>&H>rq`DX+PZ_IWAU#mxVWBEmqm|hE%sTt-V9eY_ z)lJnqkcmii^hST4L7gGWZuBcRWZT^6$E6pw(f12^8+{G+Z}h2CZ}cMs%tl}1qc{2y zNVCz`$mor}AL(uMH8gso9|5%+eGLt7^sho!H!Iq#H~KfDuCwn5al6si;^B?HUz{8L zwGiK;cADY+e>eKa4anQ*KUNYiztY+FGf<;9`q3zFr+m7x-6?-#6cxSEU)hwi%Iv#w zGrQ6M(MWiE>xk^TKX5wxUWihmI&08&>#DQw`_0O%w+H@t;F}EVpF2dF*>~UOHv6{N zOklAnN1&e(i&AIb`9|X|gKA^FxKS$_L@&OsHB0p3)hOw^(N?U64)5^fH)R~@$y$=0 zJgKec$#0l;USK=MleJ=cG8Jo2wzv{|fs62DqILFtX0>+0+P3isZ~m?w&80UNZ_jm6 z+PW;fnVu{ch#{$+@`SOgE8DY9c@qS+Q$BlbQBLU>@|;pb{Z2`p+9@Lhj8kfSv{ObP zjZOXQv{Obvty5}f*eQ>rtD6;V)=ueOXPq)a+&ZNe4?Cq_oKCp};#*X3 zrJgF!DY3`({ps}eDg*MI^1zn1)+rx`8ts(PD9+BP!Jkid& z+q##ltS@7pIGk>_Qh^Zid%$(b+x+ z#mnF1p9J19AkRhL?0B7Z(M3?BT{IfyxhNs}3e!=esAw0B?aEoDi#9|_yXdDzqG%WG zD-v|kg(wxO69#QvRGXh+mY=<3q#k?KGk+)KwE58}&wN6(`5lZR&zOh{WJkmpntu@` z{OJp1os3W>CQcogcD)_A8r?X3{C_b&!fTameUZ$v3!uPWB-4+m+z5;wuo)=n0ki0M zGmk}GAG;suLOh|Xz0wZWPL*#c_Cc?-8?3RR>-^y5atE--7f{^z!I;Pmcj1WJW!UzFjS)Iqaf;-39R7%h8t{U0HAH#gOi_4PbH zNDfrQ(=El!Zh)Ed1_LiDbDn8%I^SO6lX}mSig;#S^6g~?$9%g`tu!@#q0pY)c%iUF z2NOE|&&v!l=bna^X|90z9%PwhAiPl6+rVP-mYZu@a^Yi*fz13bExBs1fvmR>@1Yco zmj1t)w+)1s3SY7?b4Ah&DuT!+b;96wzJ%X?vp8e7Tygo<0RFa2p%ynjT(zSfhnT!< z(+6K?A2A>fSUUsMS7>_%@=ox&jg3a*JvECXFYkHUa@FrfTaMMFJ1wIJRY9}k++o>f zW@Jn&8|LelsYgPrhHP!a{?@YfRnM3_Sc5TYWY}D|fgA0@Ex~_I>1J4M3^^w6&n*2P zGh&@xx#l8mUwygK{AIXc=8tQG9D&sxTQ17zTX}nH2(@@t~Dy9_w!DguX z@??&w@$%#=1{ZO8@?HbbmnYZRnp~dTZEEL@pdOK2^^BpHy2&^FFzBG6*D`edUlDH` zYKDhiD_0^vH1xh6eVfov8hWNjhl4=-4~D+jqZfc)s1}$#jlM#;+SC{z_8O$`5uaT3 zkO91Hn0nlwG1MSZ^ZD1dR#RUa7Ym4<2u>$st}@#yds;J-2S zURH}N)w71m-_l@&jLFl3^|zrf@aTH5VojXg;L-J9U1sP{dUOsJ7PBudAMtotwcsuG z@qRQsb5-SD!(w2}RfkQj1TMqTNY3*%b;3}Eg5kr?rJNyMdKofnG49N|y`kW4eE##5 zKe@hF@VL6d*OLx&++~V_i}322`6u}nn&LC@&V^4vih4asOs4?%ZI{1U*OHj_*H#%TYs6s@9Vw z4p?85R;di&@9f5Z-{(7+tQJz;l?p0AgbI9b5<$LP=|hw@i{Jx_FM5g)x-TYQT_r-5 zJR!c}DJ=A$YK3~$Ud)sZ`NRv@=B}8Vy3q8W!N^fx;+yRjs2~1uymknTo0hMNUEsgO zUj&C3J|M#vKHh2u;xN_ij`;}cu!91F7UZZrl-TxG)g7f125fgh?lx>gK<^C%{*ND} znNk{y(gu_^sf$K}QT#RNw(GV~#jVp5tgje8p!j~S6$V}685pxCCP%#l;tQg3FG_!) zl&^N6l%qD_yFzd76ZvW|zo29_V?6jkfp<0V&5F7U6kkdfA%x843Qs0kWRi?bf#Ms{ zBGAZgz64DhbQGl=^*X+_L3}-%A1xWqMh~7R@cAD6U*u{LaArAeJa_|v*EDc#|AVSC z>Mf=FxmcSK;>>cM1yLLKC`x#a3*R)(ioc2aP}FhD!VI~|a(e3jwD83by7(B_R_|jOr3QC*CpfX4C z&9U=f-B!i7>n56oVsjMknfXTD9CZZWTY$?^ub}jTt~q7 z?;^1grPMy$Ghc4dcC)`p)i8bJFJjF?Xpluaog23_!@21*_>bk7J&yp|7yx&6`z^rR zkwU`_2EZRx|2Palc<*jFKSxme8)_^9o!EhM;U;Bc$ioNmqnDN=20U-@-EhiiW;t@E ze8q6OSSs+jD%JFUR0Oq=q26h!SPt7%OGCAGVEJ5SND-%+JjI_LQQvko%y1}w75Xy! z`9t}&n1fX+6RW8o=q8kZ9}eZu-w#bcGL+8(QbPG@hVoZX)1mw^(@Ft!sMFWes{ue>P-S;p4rWlGy;>WVawds*||nq~m1mMJQ3*P%qct zhn%l|YvDMTw^83z)xU8tgB3y^QpW*as6JT&en<5c?%7LLu;512dn>-9bfLOF5tY8C zawr{@erhi?EmYUuhDv{_z=ETnGaLB|;}94F-O<@dL$@|eoUh-RZ7Y(EG?dqZdf7<2 zt6!9tbqu`;OoOT&wl{nuIs1+GA~uaJm#Qn1S>cZYQ3EY^Tg95UtL6dX?t}CptHJ*C zh`a-kR3~vc%*tww4h6nI{hURH->k0R0hp)wb6x7!0y9UrFCc$veT4za`F^PXjOq^L z*{#HLj`K3;Yg87ZvO33e=16evS3LjjHhNO5oW-I8=EyTH z4~w~69j8&+sJey1*u%i$#`KGW2%Zdv29H7M<{|7G-_}X74YJX;O*qd(Y*BNO;$~Y* zal=h4y6`?)J8tZ$NATi&^#f=*ifbNarF<2@_XCP=X7vln&fpyo zHS_>V`Dzco@z4CwS)lkn*a!ja3hwdn*@B;f?*hda(MBM#Bk1TMTM9A_-w!Ch)Ygxb z-9U^7JqLEa`X1j8D87I<0?M7hJP@_L(@?@1#rITnRoncax)=4es6U{%6NnJEI{_^o z-U;}{xf7uH7FA+BVhjGvP5`&|XJF-<{~_%r4j_DfZBTrRtChgJAFxhi5jb)b-{ktN zn8QrXkB~bX%+km%kSr~dtuwTI$aZ!oHVhZ<%{+s*Zf!|?Oo_=I28 z+DY2G-5~jc$}(Jhrr=SJ)0G`%Z)jjsL(355U-kP;KSJd{?c0tlpxvWcBlLuyoF_lXEHu`4l> zUPy>e>>`9B6FV)$#4aqP6T5y;q7yqS?!16Dcg6fXoTi7b(NTp??EJvU#Eux7*d>^e zs7H0XW3oojI~kQ}flln$wodG_4H)|u`Lid;WrAg5_n4G;f;@`SCY5g_c!Ingx@FF1 z@utQW%b7z}IW z2yq+EwRkw3`^6c~?}PXj)yWL`|C-ocX7B}^qUCBle8HdC(Mxn<7Xi%nU!x<&#!$No zE=la3g>^cBK4e-fI-8Tln#BNp?fW+<>!&wnQJ#VPnEp-~N z(OKVSVt3GT#KOU*H%#n4vz*zy8aLW-ezjEKbJdH68bUC&{mfPG8)}NB!ezIqV}>d? z*n#Eqx*0^P*(vc7m8hb5-UNj%>J zti<#363;K9s^fY0jpmH;BHAslKD;e5p8tG{jpr4{u*7)Y1tr{bfxyqV+IVi&kQx=w z*NPzH`8z1#o(mv4o<|5p#&a#icpetg@x0tv8_%tH0o&Xavmd83e>|rO9nby1$aqeS zjpzN%NF1iR-7z8^OY!VQa>9B#`BiY9ggRJ zSdK5A&oi_V2Vjhi=X*sZwU(k!^8Xk`4gyW_IbnAE?A!OpYmI=pm z%IJ6=fj046qr>rB8^n0-M|<&H!^81h!x_&b;5MFXcsQPi?bq?Vp>&_|JVM;Yb1fc@ z=YDa<^F9#YqBfWz|6k+z5QER)6fIY+#dE^!c)kHR9nW7E3GV7~^Aio=7OQ;2&WL+1KZ*o*_T_J5JdZQza6B(#T4X#wiw@d2 zw@IZK&M3t5Qnwq9Kc1%<0ONT>3-HJDCI-NG-YE<~WNl|SBO<6b8tP0-m3VG_oAG>w zC63^=xsxO{bFr=t>&Ywk6}W0PxiWMcKl_scnN~E) z$`O`sRR$|YcD$2OIaE~M<5RiLibjp)LQA(Qt468pV^l5|mB)Q5w_4Gtj(=|HR%O#D zmBWn67er-)%y7q_v!YsMj2+88mTpycjZ!(&s5~Po7x+{@V@0D>K5pq&<(Mdy^Nh-> z2s`opKk})3*NSSDuC?-jrCXKRQ7Utc%C4gF>WSfw|6oOzt;)4gDjzf|vqj}> zpUPtQ6zx5KN2}ZwrSh>u+L?EW$|F9NRU%b-(^JOMt(C7usXSs-o)DEa5F@OQH?X3* zR1Pl-)yUMg5{qlpuC;seQNx* zPJD6x{(4}wIyM>|tjvnLT79wrl`4kwRw^o0St-6+@n;I-Q&~w`t=1Jor5Y=jtyaee zp;Dcd606nVTTrRNO3Br#+jvxJvQlcbI+%yb6|9tAttO8_mju;YuAo{J&N{VOflKoSY7O9#u}&TjeLT_`tPL`#8_2AXWqw z^RYo~$+K$J8vNFRYTgPzp)wXfx8iZ0SHnJqk;ArEv{Hv%OPjDLNx9C~516ma9)bbw&63s|u|@f8;nJ9hjO zP==8L`<#G^dks3`C$GnE50(DoC#Viq#n_iVN4yh!t2xU5G#QR!a6ny@FR)x9cnfZ_ zmHwCI^1%^U)1@!6Ts3rkOO){|PpH%i-I9iil1jZ$)dr}zQfV404!cSRq>>TZO}(*F z=@6=Y6)JI3=^E+>HKpUF(l^u^o>w}gdgnOK(9ks)$kN5sKvc$r7Lrq3(c;Wdmlmj$ zl**J)HrxQeUN{Kbz!{-ivA#=}Q|$oD4sF7~mM*WJ$if}V(8^AzR8YgAZC)rL1C`2Z z5-N*B^QqtpH3kZnhgM>AN~ft-E`G%(#Cs>D>q(^`RLDwwscZ{vXQhEuc7=Aa(omsS z&c0A8El3yJUI?`-i%JtU1MR%zxW!;X*^F_3#iyfhuw0MdVF6!LUp%HA_?a2g*zAgL|4wS=vcgbO0p&agiTMp~LmBYq=@w*q}u(mqa$NK#NmOJi^ zvrznzOS9sTp(y^+38_-!SZMeFJxKl(UruZs>Xk-K#E-Y{UhOz1LF-EdnHo{)_9;%{ z`QdFeb7~~B^6yB;6aQUsz2mT*wd8(FQTd`lPL(5YoJ3cBe2wFf@R-FoRZ8CtPMpd@ zJS6_81fOljzB530FP~u z)y~66TO0+a%1s=*%T>k-M1Bwk67w6tPHah3tK7ixtfXdRLRh~uY~)UyJrb*`%OS`S zTxSKfbjqj+qn*SW>VYIJSoMznfY(w_1$14boMJpLRcssI2o091lztwHN>yrnB_e65 zN=@40P-g#ftdYv?i>+7>V7vGOBass_ysIh$=f*ouwRNK*s;V!}g|S1}FI9bdJ(P!j zFXaXh7?rOx?gv`_`h;fGyvV-_(mT!S9ORf|8qB5dwSvf^HSCXGl3U{a- z=RGQW8S0aHF4PUxdI$VtmSI|v?j_6&fvm3DUl$50D-}c~maT+N3Q02Wmgq4aFvircUi@nBkOmKSSv1iP#4uJh^wK<9vo{ovW*%y1$>RSK0;0 z1wt6P^WZskHo?IY4mQJClgls}jH({9?uzkXzIu2rE;oVLjEoN{RrhVoSi+l$Jsjs| z5W9yNr<#CqXys_f83kgdWh6@{>-;hp+|NH6haDScY!SFQ7U9%+3pONtv7?w~ZU*BC z%apm*6I^9tEA%tfJ-iH0?!%UkfD!HbOIBOmM(I#>y4jtM^8?s_M5uAD`E39+JgZVB z0K`$nN4ljONITXYbXWa0M;lTX?1mQN)cbfWgeSOf->SJcSdKPPy6L1XxB)6^s9La( z9nA!28i8+e@HDrUO1(#ObHTZf+#}%1Qg+g^n?pez)dy3;PVNSKZ&<<09OMS-8q7|6 z%;q6*J_vK0R|L1Q>Wx)G?rCs-^|;rxssV0u6^FPJkD)G(k2LJ0El0deXsa$_bl8oW z;G~mFqxIl|<2cu3EhdITnR1b=WOhN8&=OuJ$RfZbHBC0gM$02f{gcG3gzD@i}_Q{4)HdY6Q-A9X);*^7&=>%hU|CJ=Wt(RN|N6 zuTbBie7DCJ`=x(XekqOi*Qnb0`lPsx7%`7u&NcgS8c2Cx1uzrOf^`HRy;?ks9*1kj zEd}ruwGrX#D}a8mK&OGkgdJ*gTOAY{?uFe6Pb!s&xKj!ry$BkSoU&V01EsE|YQLx< ztnI25$Q?Y^moUlEti7r)$m1edzD{V+i)t1CYyJb|Z|QBd6{u%Dq&M4s(EI8w0FFh1 zBnIf_K2<-0r!aiJ@#2(gB@Op*6p~$43W&-UrOz7a^D&kQ)!e5xVNIczsxkO&Ehbqy zt}(UUO1%xHKlr0OjLfaZq`SXiZbi>*@bC68vi{QZpGRAR+**UR&#FT3w^@v%*<;+> z`r~v9i`9!@y-KzOl*XgRk8~0;-I0iTT(0T_SYLb6nti8x8y2TXUj!@mGAo__++wsn z-`!N+ac-e>6|icM&3NQ!c8)s@>;YuA0;_#kI=3XGSG$d@^gytNhoyy`?;gP{i1eLc z-4&MR|MVri=@zS`LxfrfRzaA}ePF^7_xJ?EehRGpVfKtPu#dW#IEB#>)JI@_?y;N9 z#Av3>ano0V^()8$T%L$p29AId&bqyG0V)qb^$3uYejb)51OsQYO&cx2Z%2#_eUqs- zppDk2UR((Nbns?bzLWmfL9nh4tSqI&o>~poda^}x`mfk8 zCNvMU##y`x$NfpLUa)NK?izDb;As~pePTWa{}eHDDv{XHc-RytVQ64xJEP_wu;Vdj z;jr!qWOCpxa70TA*tH1>Ye_FX2G(p29P4EkaeMGPdl>Buf_XTQ-@#yR0e_N*(as>4 zJ%RMK2D23W)gDGWLjc~Ca;+MUMIjFJDELo%7~Pg&dZ{hwxnSM{|Jw+RFZ84f`YJW- zK7&>m^OE@J9(s|*5n#ekfn69aQCl0J^a!BFq?A{Mn0di;27j=Jk%%n)XfmcQ#;j6I z+6>IhWB_J+AmKM1G8Fy%Wh1sdqGvVOn>>i_CLswo$4p&hFi(SjC<5c}rYLmPIGjvG z7jky6t!bww!^&ySP~MI@ClEHlP;JUF|W2Tm~`;3^Dw?{?rsVjH^uDjf^PN) zV1fsd6KEKjF32M>PuU(X26C;37NG970KbXp1e3+S-2lCLDbU|{ir@i}uC`030RJme z#5VxaK#ACw;bYQ3sWQlg@Ch$@y@$~zUl}`dgaNhysB0uJx`WMP|3Wm7Ks*-6nI2k( zLoe}@?Gg97$DV3q)ZPnFp$8O={BqI-I6U@iY+*&?GXTBf0ZG!Bl!fZ^OoKTN{?8E@ zy^BeIiQ#lr>}h+p3c}9H`1pG5n*>4cj8%34GzPNQf1v#{LAjI->V0f9Wo*YoW^oa6 zzUh#rK8h`#ZA3N!zUMzg9NmpGvE}bJXr_eU6@m6mj5OfJt(t2@+{=+_;-h;m6C+=G z`3bsg+>cn%(t~w+*t%Vx(6fUKB;X) zUIP5{B1FQQPCZWJ<9ss44WBu!?i}FHsIG5A>xgg5t$cv#a%{Z z5a82`5DD*=(@ONg3c25X2rHc9yA0^nec|1ALOijO{h z%3yo8I!#`g40N2^BnP2z6i}H&%2|~CbkhIjIXxJ^2u9IVbvO9StTrcoF-|E7rQ&~I zYuMYsdL+yqvjXf2@omy^ZINgDSHXHa%;u%BloM|CwZ_!1!TQ^>C7k)al<0)U@zoLy zx=aP^`tZ>mqaO&`Nf+RC@lz@pU@L$+dBE_93ozxJd-;t9I2xd79#DpzLxuAxn;sD# z+r$8u0hI3neN7XX5(+#%!vOaI^tK1|nl^@t+PmUcV{qAy`WnbTE=BA1Q>p~ItTMpM zlFkV)pK(Bc~pP|o9f}tnk&vrM!lK`FdfIdSBOlcjs->#8_im2nGyB=+* zsQowoasXsRo1)O+QZ#Y|wqG*%vK{(i08R9OK0}+Y1~4U9#u~Z=pmiS5XDERwJp!Mu zF-<=X&}$xW0DU;@cj=R-hQN*Ekm za*qKv1gO0S^chNE%B_L!$SW+< z=%5GmjcEQL7`icds3)$can&CK=tmFe8zWwJPuLx7f)EO;y!e17Mr{4amy~X;Tu(OPdSA1xN33pP#{{IzXtRcOR{ktx5b`; zyq9+nr`@V824U;*g3}^@DejD_7N2ay!EJG_KMpZ1$|v9uY%!oD4kcPFZjVFN7SoW9 zWkVtZUCf5aJY?;=REv?=R=wf0NJVYF+hS)+GGm0{@56twv?%|85@T8h((t@Fb{(y@<4dKMb=4k7v_7A&oYcxL zuWPsd4tLs9tGK-8+>of$3a(lM&<1>J7MlY*+B^ZJskkE?_=VgSr;ecFd?5PHHh-3uZip`AIFIYb7$i`xUh^ zx>mLAgb`Dm)N;C(k#P)<>7`cGwd{7EVfIq1=$fP2oyRPuRx?$%T}2Fk>J_FM({3uVqor8Tt2Gph^dpD)MaWA z(JHnb4o<0R-7C%Ep+`wM^prc*)dn_@+Nhi5FlMwI#@@+8^=bR%F#Tsa+}Smo#Jk4H zVeVWx%v&pm`H#q9;YV_~`&T(E4c$e7+!}IN)ILz<*@!E zIczv5hmDuRUrSXls3V6>H_PE{inQ>@lViy{cZ(4Jnk$F%N9FMMS~>i)R}L4>;1IuM z6UHO%_P45GFTEcA5|^2WVukXJqHoSR*9Ng)iObw&*&P<(^yGax*JUBV#bt`*XVbv) zzR=2JSEH5KK256QWgjmNN5mRH!4RqyKE;la6%q8*`4r#Ka+nnmaMDaan6+g2qAX(H z?N1{rg!*-b?iLUJ21<*UPoZ%q{=j_1$IyTP7HaU*kI?#1n&Y^)wNy@M&|~vJ{-+~~ z!^VId41Nud3k_$vMDSyHSZD;x<=s()58elO#lHpJWycV_eKLxR{Lk z`(&`-RDSwHNKCo0vz9nbhDdY}#+|Fn<6p%+v=hrt#23QW62*s3rri^8PAEQ#wmQL@ zt&~%IG|Rz`?e9hT_7;G&#i!=;1ZZMrR}h9;V)9Gi$d_~Dke>A&N~6#~3Qm0JGCUAm zeCTyGy{4{)quHi-J`B3wAdnUxPP%DzHEgOO#V`a!=0BP3>Ummtg#4 znL2RZ#2)+&S{&LIP01%k-TKXFZrYWgHo)h`A-(EL%7j7#IYDb|*L~0}J)&XKBUq33W-Khx^UD1uhdfjE zcup+ah~N4Jer`K7?<@%khcjXm$FyiGoBYwHhb? z&ULW1>xK3z_lYZ^fP5!(V=5FprKsKs)tZOO(~7Etp~M?dc}5Xi>&kpAq|kHf22?uX zQ?o6HOj8f2L7T-BbB0)(2mDTutPJ@5aATDX5UW`z$1gj%{6SV=!l(?_c5 z80vo1xDJgM;8Sx5YK~@)QHTD(K$HCxSo_HyC2U?02;HvYKganURP_IzT*5&Rec6w?^fz6L{5B!l}xmgUN0T|J5-6XM!YfjZ9NQ! z#%WTnG%$Cof={5nH+aK5zSi;GP2lfT6%h2rggd}r;9(j{I~A}}L!YU;rYYw(D0Mf2 zzu97(bYY)VFCNFOY|OU%99Rd*)?@HZ4Ycr;>T}Z3(#OF1A}lTJ@6^a_{DT*z{{~Cd z_M~f8fb?ngC{Ae7b~0F1$=2g9?6d0R1S8!HtTtik_0Pld-&NH&5P#4Ww=Y#$9(7J7h{f3Dz^7bhkE~ouC`@ z4WbR%N5M*#0qr)s99W6&jv!702psO&FpIfJsDyidm}xT+n}*~Q7#OFUu*$eY>ltgW zB#UF_bYs#ID(}7*Fj9P8$4CjQlDj&^NDT^0iG@|&@z@iHg)_n|v9N~Q=XFP0$i&^W zB`5q^?l~+R+T}hHZcA8o++$tLY`h+pl5=}Kci<_!x{*?+!cxL&F0CQs`F0D9LZ)jfZlW;kz z8V>d(57HkKlq~wvdULtHADhu$(sh=s&ui0Vi7@nPRIaNA05RG_%_5-TbyU33RntMAYkB$% zCl3dNJ`Hrmx|s*Cx*z;47LzRU>5H&o2yJn1#`N-JsP=>ZGBG-i@Y#XT4!74wdREov zV4bom^s@t@-R>io>oHJFh?$^kX?Zvxw9lQ-Qw%zyDuGpvZ0WsbKkKf-W`QH9T7cEo zla_}ALI>Sr@Qho??hn>bPg=8Ib+_O>NK?q33D%sjG#?HKz3GlGVWiiBwJ|I$>_cw% z!}vW{O78{hxv(_vpNHOazuIH&pC1M5SeVU63ql{dg`qX{$ zRl_b*4~q>SJuGr1KXf{#XD{s4(m-xb7KbF6)8wSz_$& z|9~ghiLv}4av54aSUEQeb4?v!o{vSotugn5zth7=;Lyr``V|cpiyMq{y(oJLp!bUa zUQ@XNG`<;k2Km&t;QtzdaWwnmxYuyjkFSrIhmY=;w8bx{32!=vng#k#Md#}Pz-xvY z#HJ0uRp3^fxYfE|@~97d>r;KSn3bP<5q2Bu5;21n>Z zT%%5A3aWs0m1UbtoxBMWN{Ige`%$*6+JWDR7>QBRqx7db19N%&>dB_pqrvA>SANXv zjEmy~{J(mc#U$oFdW%Gb!*cqO`R22>4HVdNk%rM!{);65pBC@GkhDMd=aD z9f1$7G&cVMzG`Ug(R%9s4x1l~X$CKt#ATdJK0jiQ?w4SW#5|1IoK8$@@H={XH0Htq z=&2e1G3J1m^wejU;GJy|1fG6BTCkmm}arrcEsNmCiD7O9`VSN81NxMlCSumIE@ zzkzxlpPDC^K|yyRJ`%$Iy$n7=O#Xzb>ug=ZAvv^7IZvT}HMsSO_=aM24%`ano@})9 z5||yp=p1Hd-U8+`e2u|rfJcFG8=2Bz9bq2W4CWz7&IKdKGLw5kwNvLN>VBgkE~`>} zGq^h}!Z43)T&2Zd1mi8sG~y$$rwe`jc%e>|z6AFtB4~H=uQWcE4cB?GAz+^kK`Wf7 z1dMT6e0(rTGbMA3&qL%2hE6eW(GziI4JINa6H#AX4LLIt-!Mk$nfUet79|(@US>ij zf{$Dk~cD98$np;i1foY|J zwctEpxkiCZYi;!k?Bj$z1NJL~uy4tavV*Y{O_O=OMkT>g;=Tmtr$}6QVw-iZiFYQK ze;KkrV?z<&kNW>$kmufo>kmmo8@0l6>Do>?NsDMp@LA+}NlO+(ol~7jdeR8V z(W}SeYDdz@o*=90%-54fNxELWQz|f{WnU!E?kC+M*?6;|??3^UVbThTwDNF%(n^V_ z^8WxytK{4y59cSXk=;vm=H^LjWwX(9+^|e1sX)~MsR2GU@5ZuqdI@#AY6nVpOVyjf zW#q>mg5g^933UqqlRVHW@@2o56jT*QD(8L>)Kc(QM`4)OCpA`Yp=VU59tHnNVm65i z?)Q>1RH=8d^Cg=`^9qBuP@WY{>ZoSiqnsbfJ`L8dp0sS}lDezWr;T)CGb91{XlczJ zpw7-Q(pQ63pKRSWpA}6SsoMSRI5E(vZUn2VCoTKEq;V>t4b~IcW5Jpbmga^oX`0%A zj8~)=gOwYW7WN$VP+23r6|9HD(%kPQJ*;Zf*DGAT0@hn$Hurl;kEsf2_*Db;`zx@1 z2(!80OWLdIUqBi_c1&|bKYUEb__SrxYbw-JIa@g|)xo-kY)*Uf!yNe7e8}-x$)w-a zW!PN_?j~S*N8$wXubT4}(io~55B5w#ID|&kPNwM}f0M0~!^pj#qN8O3I-YA0*Lbg{1A73xE zj`Qy9qiE8=k=vK4d=x)?;BdH)2WYfi!F%WGLPQ>nPdbd6EZF zlCBNZxZ14YpTR$GRp<$j&012|z;Z+h8Hv&@aZMQ?-z3RKENMvK!Slvdntgk=2O^Av?+`SAR>5RGDYPV@}reLToVs{ps z1@lt({stSX4Ez-es$IMtNEPufWZaWg8P*Fs0ag7}JB;k`{qzL+C#otV-jFgcu~r#* zm}UF#WNV>rBW?PYi^yJse*~1LEH(KjVVPS6uY>%)W$8}z$vy&&xK&_o6Ep)`ZWEM+ zHE?3q>sGK6x-0u zsS^&MjJn$fYVfI9UYI=NxHC)Qy5T`cq>$k;JB}?6W>zB*nv*E%G;vNx5PDi-auw=| zr3THOI|i)D9-CL}4QJt8Q16Z4Xz7k)*jWB1upY8(Js@=+!^y+l8gmogs)H5|g8Pm| z$UlENb??Of+uivZPOT@wIqPwW*O0zf-T}ztpW^0VAT|T@h>vtgvrD<}vQ-?Y8i&1* z#DT+z0|!i8gG)*B6&k0u5=@IU6TB1F|J@F7` zR(phda<7!>5$+cUq|BX*`{f&$ZT)YB?pHreWSJ*>_iMJI|EUaq?>ktXc_nzJ(-< zc#|PRA%0waij%T>0=$8g_N}_fK(MjqHEGauJeh zwxflz-*M}>d%nbVSh6dEl}fe@lxC;9!`dn>-5jh8Pg?dnZfiGm&~cupbU(0$c+#4E zgZuM1P?{GBK z2Vi{~W^=#eE^+59G3?*KI`6UN-(K7o+?H@Bby<7(JU)6A$k1|T_5Z%OAGmS2G9pbh z1*kQFGIsJ0EbixSb6nkHj-dL0HOOQ4<-f)R+a7^^Y9gpvmfiL#xor4T0T=9HOQ@_#KInb)wl_0>3?FR161e z4B2|5c9ns2pTLWijPzY#EecBudr07S45S!P0M?eUG#?9g#|Kv9qS39iZ$DTshoyx* zEinBMp1vddbFfZ%((+#@`2B*(lQ0i|fgE$4?L0l%Y4Tk;Xx|?A7lA@m058Szou>RR ziQsK3P8i>40?rMVn@o3+VBj<%&b=6z_BUD|2*AWhkgO`g$V-iBC+UEEVxU)4&XyEv!#Uj(3caeU^- z?&3NMh8N$ejOZ+My^G^>C*Ce@Fw~92r{?XTdb_wOpvAzQ6yxUeBG+{e0e^ z&)Gg_x#ym9ZV5aFK+?&V-b1O3;(A(M{3!0JF^Ka>$jm72zOjgj9>wiM!tE%I5jUf_ z5#ul(<-OTj#X-!WfkMscUXa8Qcc zoEgQP4Mw_Urr%Fn5n3>#xJw{v;fsT#xU0eK6(`Z!W)yb|L?f*@ZWQOP#!MMPm<8z~ zi-;S=H8=~W-$Sz5ml7X0in|!|+3qgL-}f;RIgHd8D*n+l{!N4?{xKWzj~Nzwz~NF~ z@t4SpD2Ve9Ur(2MXKWYL2r~Rp9R1FY;usSH*8#bxz|JPO%8 zzTA(AKZ@(M2!lw(M?C=0It%niaZ@gFoS_uI4AGkuzs?xiQCwS88qxk7qOW~zJBnMM zX|x@*vnBA;+IAH8D6)DQjaR3LKgni0io2^Mc63qvABft=w9P0k6%i5b8zJJsPe$8} z;*Mb&RJ12RG&QDeMsb}mGGlJ23}g{Y=4Hlw%)QNXGhxa}zML-0p&mHOaq2;-jv z`Jm!3WnHWVaJmyS8S;CGVFVlBc${-Rt>sVck2{Vej1<6wv0MINR6sxRe6jy10vDg{F zK5<|>imQ0BfsBNBY8)h;A^W4a3FjivB>>#-gV>(6x0{e4LET4)4s7c=7(6wNphzL83qz6g&y z=}$E5iiC4rM*5RH@Je1`ra#q#kCcbb2KQ;sRi3+|P_NW?QmVj*pf-wXyB-8!W^P`CP7xmKE@o4q#4S z)%r@EfRzdi2(NBsVYGS`5q}!_wgt>r@T>hCZqoVo-$1@sJ(p?7M-YGILuBd9xd$*) zqL)H5=#-l4m=DL+F}&%Kwxi~qK*Wd_?lBx8Eku-YdZIppM3|S3Oaohtmv-k{#vxcB)PTz4k z3hqhT-MGmVTw_#vC#wfsplqM3A^nKb*PjX$tL_ciB0D)>puFAj;**tn!FTHoGR@~T z{W|EP_RCzW`FZc;?7jlJHN2<-2i0S_3Bbhs>^2hXvv@|9+HekSq(k95w zDNZ966Ji3LfV4n4y;nfLoal4&X>y2Clzf>KP!&sBe=lmQJ4CW<4E3MEv#7-QOlQyL zv}=Q?{zsbrjnGKQWbq#ACio_Aot%T{z)?WF`R@N$w>`R4#FV<#Z!j_C&ADd`ZFN&< zR8Z`P|3eKrqTf4JW2TLJ3Lc8<`C zB%0XUCy63Q4`Cu4)ZdVW*0}1GZE@WMT;wo#H@3uJ_v~x>S9hGgAHh*BY`mu=298&N zTXM;e)j*=6e+6_p38&#+E}U(v=3uy2svo%QvPGmXJCT0p>e(0&m0a)}8bB&(O(&-_ z!mTt-anm*r71wJLb9S7C5#YBWayyaBixc*~hn<`ZJT_G-;f?}}zjV1s$_(l*aNTg^ zMog3BOkWA`Z(@kYlc!Urt>t`1Q5lz-&yXt@W8!%*BE;sbEe}-35K%nQTy#w&=iUTS zR}t})b1kBkeooFY1YT*p$jbLmknLpRj!K;BS((#+Um>_Bgqw4E9O!u}1A+D=0u7Oq z&bxHpA|rSxd(Nc=Kn)Yr6tHzhBtUcC%m!#Mdpc(cLA=1g3jB+Rl}AvFm6nQ?HwcjI z6e<`X&F0*_642izir)|#$jo#Mek%PfqQ9-k$+;KuTmY1?AfWK(~{tI~7< zv?9PS2xQ^JbjT{W^nsp~kuXI!hdDn`)W%XIJ|eojMeX@p1K2d&k{BuS+|nR1?jAJEAug)v&C>s^Yz^p#>+L>_YcDE>u$z~!dV!<^=I zrt=Ve@6XGzV|NB4;&|7V2R)N?*!vtwufq-xZ^||!GIj1DUD|6`1@vsvXVZv^W7uOP&LX~nVp>3{{{C-;r@qQKLd1D=cLYp zyo1EOZ*f*LM?rp_$R`yicj>-eMPB5~rJCtj%|nf?)LUxk(>8pxJjdB^Ocgdi#URn@ z=TyyV2lgRe8BczlK}VPdooY{DtX8Rn;y;Q@q6Wv(<5Zov65^x0Qp%4x1eFUehP15W zKZ^O0hk$am&ZrNSE>rwR@om01mX-nQkr$PJ;%6bsRsLOn9YUF}Lxkk(5aq)4IVD{# zd@;NI^SjQ$WJ$Q?MM$f>lMi1`seS_)Zp~Inzkv+%cp%W6tqiw~9n>Fgrw{7yi>wTH zRzD$5zvEZ?e)yA9OSoN>hY|5P_z5?Ct%z=`Sc3yz5)Y7e~Ec!^mnAOsOo0 zyAZM-is?JSa+(X|#uY>Ho|2Hk5RdjD?+fJVvaoXVivJiZ_d;Aq2xFGM29Wf5j7YCZ zV1|dyfsd#SAh-D#1};FSIbV;3?^uV)AS$W@zv&N=R9MK5%uL@wESXpPh^LtR?&jr|=hn zY$fDvuvfSBHrTGWAquh$x#xZp($iH=i-Yxsrmj(n0}%n4;x9J zjJU|fIsfyTm=O)P9Ef(cn2N(G2U~IW3#}^-=aQ9t;Ue6Qlg3I{kRWNFIUzX^4KF`NcO@OvknqH4XPiX65U>+xqF|wuNVPB8h4({9W7MMS_Im_(>%n`^>#9?%) z$Zf;h&=mddi9A-Nvh zTjDLqq@JlOkA4o!c*yUL!{}0}fXsFx|De25I-HBxWZcEI-|{{(>NRol_O)<1d?1ll(G9-kX4!djD39$V=W27I*Ff5J*4je{MlUoAF7PEqEOb_|=rkc8sdG;xRVk(33~7=Mb54lP{>U z4a1&{!+okLXS{DqCP7kUn?}abLa=40M#iyE5OaU##A!bev%nc2Y=hiq2BIn%8(V|l z>FHaPtSDThNp%~Q@#h^OiWd0%4A6EU}z zrhFBei*f!x6yFKa#F&`7M^lc5dSk}-0^n5vM1>Sfz)eK_W9S9U=g2mIry<&A#d`GL zgu6>qPKHk5Eufe<2>E9g<7n|;p=%))6Td^`B7-CZW8!BfJLI;+#JHs4Jji*Xr=%gh z?tHrC5yW1;0FY9`ZH#_b!n%?}-Vm`2;(mQovMnJ7e0NrJ?pi{*lGRX7isOAG z6E7gd#9xrRsFucrxX@prS26u3CeDMXjuprI$fo;D8rneKkr<{SeE|~^DG9UIN2`$Xdj^i#C+uZTiOB^Zu!8NV!K4ng4-^!15$0f#MoNsa63-m`d#8}aJ3Qm z)$RkX-zDaOGuv|0`-{kQiOa!WV?}XYVi<4#>OrDj#AOE|gP@q+4wUT@f5V%DYOdHf`1>D2&<>k@yy8D{E2-rUDfO@Ovbyf+&U)?lh^V0seA z7}+lI_wtb325vOo0`tcXRMPM)spdkyEDobv{O-Wv)f56qnKlBrjJr5}Z@R>4SAo=B zVm*?&OKeI~cZuyt>MpSyNYf>Lghqplu}i{|yf8>Vgge_MHbd0v`V!)dSa*rT2V(tW zoY;1WTal|YltZbkZ8u%wHP!KU99BpB0@Ecvg=e?9zAbrmk#f8SQ+f0WuuYfv0Aen^ zpX5dRU31Z!e()~jK2s+`qAD3HU7{>#?ldF?vpwh%`M$+Ack&u1bOl%Nr0kYgVaoQ8 zeBtZ&kA3CFw0+%p~wioZ`;07Xd22vq{iVgiI~<@ zZDQKKIX&@0j^ZV_tcZzC+js14tfm28Jp6Se z|FIaqfBeWbCMsiMzb1YXLVVkI#{!dv%OJms7^We;BNGydz@%;axZzf!i<5>OuHx6m z1Zdm7{^y$jXFewr_C{tme@WImdSxY4fbZyb^SngF%Pc8|N^?;eVs?tKEf} zGGcCqW!!XFl z5yLd34`)ImO%c9zn43$RunGWL?Hd!Ib(oCCCcv$bzZP%IIt-t2B+j2g{%wLC<1n8T z7&{>paT)vqk!oTb=4?18OG8}nM3PUXt@C z9u89STn8PhSxe7>MFGdTe)_E&0OrN19K|>(rJ2ij zqymf^AEdwV6o92jCq1tfoZMp(ZDNDCjtOMskzi1bU9U8CuOXf3)ue7m(#^eAFkJsy(rvu-zMwmi zzS?_lG3e_CL7MFyAl;dC7q5IF=q{wYdc7HLH`3j_+eU!yLAty5%SE8CC*8wakPf;p z>7HK8-k|%DzTQitodKkKd0eSoe<11J-XPi;M7oc6f_82to#V}+o!d#@;5DV45u|T) zvc5)pR(~QR&2Q>Tspuu#gN_Y{B=1^q!`^8mIdmaLmlxOV4!uwzt{30SNzTyi09-tW z%H$pEB zdkaBASdCX6mJ{~)af4iQB|lgAXE%n$(+FZPApAT+*khU^WQRR2CkWNK0ZVEdlM$M* z3gp&0lPS9x*GN}rW^G07Z14nQdo6hStuIe@cd|NEf#eguIpS&VTEe5>ovew3j)cES3xND0nXqkAaytGfd~Uk-5X1OgRQ9?1ahz zk(qlRFs0KnZ`*{L%QNFOeu&I2Yy42s9yb01kvVLq#*dwjr-JHv7JnyesIfneH1Kx= zk$Kl?;7k3)ppJx^0w4A+!*vMblMO%DUY)fO@yUDF0Z~fNCxI@VODMaTvKrW|y^(6zQ^a_M}5IDm) zMV^`FGWUKal5y3INzU0=FP7OT#DXt51za7C3V0gNEax)&YLUwflM9wyG52$1Ax3Mf zU|s;ac!tXyB=4X5Q6w)fY0${8V|Mfv)yc)khu?%8$^1REiZZ53CqWV;>FEF1asb9k z?hJpF^f>h*!A${nvIa6g9%P0dAX5T%kOC)bI1O)RB7TdL=sd{!hw*x@F_1jvKc;B1 zXcCKkx0E7}|2J85oZ%0a#PVwZ`pvPl=!~$F^Aa9JGY3dw`6eT_Xu!!S&)lu-R?kDx zQzV^%_*>3a=58(NBKXEbhn3ZXF?gE@zW+#!VAevc(#d?EeFfi(B#Ccf>L23^=M!;a zC#w_fKEd89^}j(yCzN^^t$ZowWlFdmrb*Jua{AZ%Ckxv$&Y}C@`yrD-mnR**otU%= z?E$GxT)@HL?wrd^X*vX5MOu@`Xl3NNFy4eN=Xm2WI!J3uE1q|JBKXb7PrIG?wB`l0 zNFAMhgbBr3lmm9y%dW{Qzc3K?c+zgJw-fvb7cHSd750_2$tIoakq&!&2a)UXolw|Z zc}Q5U$K&e59#3Kqdz=>!dpu1&SLj@!!yaeKb3MMfKoc+5A4T`5;QtgnE#!LJ>+o8> zF0ZeH4tqS&EbN7vk#k6-7t|-sb7XT3Ut@TxPOirz#d19!iI(e;6E-xDi^}zQ9#yW# zqoi^@o)Z=JUYmxbGrMyo({qIp_Bf54>v38?Y_43tnd|Ymo?MS~*yHIjx!%Ka)ih6; z341)dBYq_4zB27NB1a#PAK>;t<&bWp>KDXz3oJR?pE1ybp zJ#IG7gd)(KZ>v11J*y96AuE$NTxgK}2=6ZQucqKn9 z^oX?QZ~%+CwCvsYz_ot;4X3tMU=}*ws*rLnt;E=7dc&>-eJ-oU)!xK%pwFX)Z12|d zKvyOIR`2LJpsSG{>J?oEx;oP}!rT8kY@W}GGtT>Z3+M|-=Xu><1YMh5@l5ZNJAuED z_AfgN`uZI<}q)~SkU!}+2A!s{kpUP`EPnFhJbEJ{BG~S z&#=>o^d4{YOz@i!v(Nh>2Xr&W^F43>YrwQ1eZVU!4}L4sAA9?8R@9}JlRo6_y8(1- zhV{)I1DW==q#bqfwK$^V(ks#qV#GTGkK*{%W+pndn5CCqr5b?K-g0$oLrqyn=+vrs zH$Ydb?f~?&ATx2b`*w&r-Z>hLPBjE{C&Uvi#A%-Y65@Q_vfuTqakUtd zy_nraSn5ego{dR=t_5kAw#WgdO}!1t2QlfBEak5CyBX;Zko+2xHk<`%w;_X+!+ca_ zX5z5`Kb_|0BP&7LW9$fQZb0d(iy&zjldemJwC8`|6(a2bN#~ffr2}cN)~(HXD7Qc| zEGFH)3+e4$e}V~jIwZ4W(ouDw+vg#?l#%p40Li+Tw8o#%&AGF(vAi9UH)7Hcu7>Un zAI>qBKZE2*O!{MgNc+CCA5Xi?$-f|RXZh*P>kVoDd-@s6RUkP(Chhh&!oBJ1@y2os zNLt6Fb+$t~;P5HEx=CFR$&E4T5~k?p-shWA7z4@pm~=`>NC*A}*OL-l2+6XT^l(c^ zbGy4nx)GAiG3oIhkluP9N>EDSElBpqq<7$L-lfj$U}Zl2-;Q1Cjn@S(iHdzRN3{6 z*{r=gCbtD(M$ zxVjZPqkf^}!XN4yNef>xdeETJPNO)QJ;PR z$;HP}>qT;}mB_{rXVf2I1lH)2eMbCfg7~bDpxvx0%1yL)CWsG0(5TfbsQ4oOHbE@f zt;eBd6tR1+jn$apU7^_aCzOt=X1OLtZ@@(xwQGQvm!i~;VrE%-WnS2LIHSC`5v?n~ zN97XCAm4-l>7E9Y)$M(Q;Wq_i`ETqz0GDobb^rGaW}T0rS!Yzso)CBV>km`xuUN4& z>ZXe!xuz)!SK8Ral*mY!7ia9P=m;BieDp0$yP(5VdZ0$nPv-@`f72kR(OFDTi#Lwq zk_RV-M>67fK7cXCIm=THq8F`v&g!1Pc=weA>wc1sSJVmg12>TEz5XERhnXd5(5?+$ z*c*nsvj^ca61QosK#*GvH^QB1x#u_oIxa^ZH{3iA+s!UrrJO1t#?3%{!{wH$L%_Al z0M}{t{7RHktEcBHC)6sk4(sPz4Z=u1+-fZb(UDfGAT81A7d(@swE7ck-94vC`eN9< zL@i%!YV0Z4`Uk(-uOI}cIp2Mj`|wF8WxPo%nBnp}-%jB*v!bc7(iMJveL zT8z{DJA_$oYk9n<5@~Np`o*Nn@vK$ul~4H8Dg7TL6Jt^deg8%zT|!?B$to+AB6ON; znFj-D>aj&8{?9`GYCNX-UrT`5ej0&DgZ44Rhb_cuK8o>w_EJQX0|<2*5(jD3889-1 z`M$02VVud!ZnV5FaUu(mO_!Cr7Q0ZvY}Oq4T<&|-4%2SxKVWnqvLQ0gM6|^HkXH}w zz~EjIGXU~iiD?Fmb5{ivR=FS5jd=VJ@kA@q>hQfnlpsTDv6E%FkW?YcIkJM(WuzVk z6{&#>hJB1&u17Zs%XOeCOLq!;+**NE7xr4UTcCu=z$j>~X3y*K0`#=MTePdx2;+UkZdhPI%^eHxkl8 z{GC&xxrWVYU~H3sEsS3Y;pAf28zd0T=4;ik$1T^n9*??4W$H$nXFTJnqA9OSYLU-v z($QY2=*-`Ose|~9FNenm5>8|nk`!G=;c?ubj1x}SjmNRZztLgc@(bXSlNw`wtMMt) zQ00R-Vt|{;oO#VtLl8Zev$9iE3JSASCg*Oas4 z&@{25xz2P|6K-8~l>0lyGQ%MDqg>hSmcYc@rT9ss=)#9kdd@U88WaPXqHb7X zxlV-7rcpLY?v>E!Y}H9P5wJ;NcW@XU z&suOIYl-AZf9^U6pR`C4PJ~B+MR}H<`#SDFu|g8QnVoHjtVJZhR^*<5@U%sea3cNS zd3lOkvE3mHG4Mb0&gvOz7)$A>ye-s0;D$LfL*2;a91YRJ#F=XMBHSGhb%qFcW69cwt0S!Y1KFxb8U0RnTrF+}8^V17Y8m0zh*JJ6eDc zv9O<_nHEI#1>)8q%87DSqB|D6S(YzEOq;6(qfIUZst|}LEJ}zNil3&-Q~WTKy9W>! z#yEbMiBk&@@Hs<9?VGl5ircDdfsIHxKvsTOkQuYr|8x z>Q1*T;VBP`5|p*pqL{kBW(3tcfU> z5V?PWnNna9Ou~t9xmJ{GzT9-&H?%?$%;UjM%KM?Ff-D7Oq%7fF@8EU-bBKl0m2E<} zR>CHP0PX*IitqN_bzt}}@NF8%v}xe$e4B>#qRj;Yx(e|%ue%-0UHD0%k#Hh>9UbL+ zdG}M?|7wLK{4|^vBwwFL_)0iW-P0BLN@(7usPz@lM7}3)?eY{4TX0)|@4qXXApq=l zH3*)m;LZTT-@}@GCWC1?^eGFb<9lwWb9Jha3e3*j6KAi=bab83CB@^Rxt zc&JH)i>ssjPKo;vn9o@_2?mSmzFt0465&@xqWq4NyBD$p7AUQIlxx%6ufY4u@=5r4 z8Cu5hxP&aiWl>Qccq$hbqSvNu(TV%PhrH zwoxwM0qWdm(j`PJ8a%c;PmR0)=4$~`%r1L~c|M5SB`BUEU1EtS$B9$aG_=Q>2AIc! zxc3IZersj476r6~PAA-nu$hYPMV#H0xL=2#lmt`iM0pCRyBWN_md_4h^JjL%0yJsyoDP>iTozH;C^UxBvRZwhGN~le#X#sd>i90q3 z_S-a@(ty??35;+j!p1DRi2chf+%LpWQY!sRbW%3>tHIl1`5YnnDdkC381}M`z7D`a z3!-wMyXIae_iG4GS^zuyblzcn#jd(DyXumK@Ok_se0J#cqnn&+qsVk3TM1lW8Nf?% zf0+f!5c?kWE-a*`Dfc??Z?ZBW{2Y(GMhogJSQrh&42u#XhI$*QS?c{-n7Zlj@{oZI z7AQmv$n7gpZpUz60pg%Vk75QKlIKn1R?V-uZR1__=$t)wsj-3za4njT0X~ePBhHXTOaTST0Tc_PIMRsXYNSwCRjcRC(@Sn zy%~k`aK9{07%juV9|muuBxNvymu^LoWS>xDEFSYhamjJ0vJ2v9K)s{?s~6D zlplh1ORjXB8u-WDmu#jm{BSH_cs$rKkU=AI2?TG*z?q^ z(!h5GeunCUX_V9@>Kjz~8LD6GX5wt940KX4X;BTaK%9AAlDiN}|8gMG4E1Rzv>hc= ziJPGwK{QfRQ+_qro63F<3G?sSJ ziTQa1w>$3p;wPFUoJeK1^E{H?y@LWPl(7YRU1ro;FcS;+0GXz64?GS!Sh(Ei<8A}< zBm5*R+olc2uF}}fo+v-$;C>6xKNe`m3>dmSEF~P}+Ge-R{aAg4pBN+IM7WGOdVDm5 z^>BZs71{=mA;lI7H9{Ien@$W>xSJa0NDH^jWeMc5)USJ7va9h8X)0B zc&c-hhrzlVasQkZ>TxbtmAgB@J7D>YUOMlb2$z&cc?P$84EO2*lR7^3>F}$KBGZJ= zv#;IqxUXk{9KLE`s1KP=WEw2yDW2Kob^s%GDi`nU;{?y^a`PyD{VBX*g^F&TabB0u z94To!T@LBWQ;X<}OQB) zTtq!~H+hN^eM|-q1am7thyYO!)Rj!q+zlkjI3% zkHK8>d0!?G`cNHX#NLPzeFGy0E`X8m8SA7oz;rf8a$?zRX_|=KKt3$+#4-2MhyKNa zoHM5TQGII96v@fRP+Gvd*gVBU$lU40+VHzqohEYznNE{`BN0-P&*?N{M+7{o%-tNc zYkX&9EKxX>4AF3+MI0mU1-8T*q=m%S}2@N|iPnRdYjl z5A49)J2Y1nrmm(ro4JYR76r}eoAlu@hg^v|Yyx^hdnkUQXq$kWaNIwcPK4*G=P4ek z=I#!L!o1TgvHFta9zF*LW z6Xn-W-C^KO3-W0W7KXdzIuU+|G*9un;qLuln2>9PaWIAfHbnRkcaevB3BG2AN|;QtrAIr04K z82WPX9V7s%WZ)BD=mTpJ==$nX~qEj3YOao_rooaBR|`Rkm*Dm z)PQJ}+W?$```H%Ah&s_#b-`Z--UF5|!mZwG$o7FNa)&=;D>l9Rp{7bkLx zW!Q=_eu;KI2lE(yk|s0k;X#FN=|{|XgR8?ByOG#kO{Np!5dhJ-46QouFU3!^8A#y4 zvTX(cZ6Lhf0&I1`uz8jlHcuxg7l7M?AScQ%6T1_^n-RyqN6oB*)tH-=yA1rttW2I4 zVk7%Od?eTk;T{WM$bqQ!ZUw+c5FW7r5_qk~Z29;~2!F?Y=uwj}P9QkZ`#Xc5241@5 zvjugc{04wq7ra(Mejv2|Z2{;2;SClb?;`y8&QkpB+*$qIVUXupj6}`HKjdT_~hj`l;$z)KSZ>(2&(xAV}l2ux+{T*6@BvYrl#n}s}6{i z$ya+LMXw*>Y|+Oa)Rxiu_F}@Xp-lKZ9o0?SloUS2{u!ty{I#NF!nZdPzCKD7S;f;- z-G2XKPCJ9V5w{ljRExt{b?z8*guxsSSalzSx#W{lO`Kj1#>w7@5&yZbWK9_P3Pz;$ zWib9DgMIEJ(=?Yknx+Z=xsPYHy7iv?7YjoI77Q&GV$Xd%zSW&rtc~R7K3dcHjORXm zBj(I=AI+FqR(_+xU55LEG;O~;;k!1++jvyFJ3+6n} zj&-X&m6-F|$))&gW=rwe8(P5ux5oXso!e~+BYGU0afq~;G-&}}c01sH2!0Y@`^bm* z-p%|X9NE(&6?TV&RX(nRRs5Ez-rx_%T$t6$ma{+F5aK*v64k@X7C)0NCnwIh` zwtJ8Cg}J5wW^PEpoT0^Btb6B4yza4LZ6tT^wB~!8z7cb#d#4%O{qoEj*L%hmPR1e9 z<`ITps&%X2{&M`JL<2L1aV1KC6XEA>qddpS&BlEnt3<+y@W`g<6%-D`{Y)#glkuEF zj2#XY{ge+a1puwGK>es#H3R(h;Jp{*n}^V-A{VZ|dl8-9oN1d&d( zd}Hvh2k$1!=VQ7P-CPU&+re94`FwEIHKWW3GD-7+ya2SBzLupz54VKoIxzQGO~z@4 z`lS_~D((*PL)s>ScZUdZBK!n;v<>*~A>4H1)3iE3p8TZ zX2S@l%vi#lNH(s~Nlf)hP|x6(SQ1@ByS+%Gy&2D{*&krP+1J_Q zZYNV0r@K8Dw9XX0Y-L1cXpIANDt?kMdDAmT9Z$#n(^@cRsIO6v)vOT1nW5gh-M?|> zDsCH5EdT`uv) zADTS*3#~0seEqUiwZ;|jM)+3*lgrdq23i%XhW8=h`_R&d&p5 zn4G9&EzihTRl(QkD-Vh>#YzO#9R>clL7&js(FEC1ptzn>Uy-{UNgXw)%r}st%T&I) z6U_HuCSTnKD)sg-@Hc`gP}#UHP#nMol_DW1Rq>%`3)IE6P|@aM#bINd!kBz@5Ik*q z52ymQ9oNN*RXfuIw)E@_Z4A7}yGW>is z2Gqqu-3n>~C>`$=YCi5);(mc*?T9mRH%!a|Q=6CoN}ISHRM5l{+`j@7Me1x*o=s8G zDCI7pv8D{ozqyK=!qoYp{svgW2vp$_)Qg|+i>u^w6}O403qvE4@D*O!nQTq1lt;If^ALE1lyW_V4_HMG}(OSwr1T-xOa!pd;|1Qj{H-FT~IIj;+IgD zxJ6T47g}ZTvAQ<}*tyAgZrW7cLK_S|R`)gn`w05+SU-QkXxqu*&dGHmO{ZgU{v#jb599uKiwr!* z>%sY4#Vx<8S7?L@cDr~2ScO$E>U-qPU`^{QX=LpiY0%q{e$@vxZ9AAJAau* zX=U)7ZGkm*iEG`2&MseNLhw5v7>I)^ijv}N!`Gk|srLf*M^J5MBhfkrzQ!_1#4c7` z`ecLHKrCt+S32dZpKv95iP{9p!eQi;$dDpH&Q)WDX$ z{w1LD)djeoM)1itR;a5W>o6hgtX9YHzHOgLM=6tzNXI<*Q@$#X7haQr%2yt!&7e?B zoa+0?C@{nL7r7>1ak}pZLd@S>#ck;7#!wqm9G(%V!acD5A$|#c54ZTM0io<9{9nMP z?nuIO)4#eU)ZgG!eESyz+cFu?V*u39&Emw%_O@g^4+cW4&?o7t>@BlSFv?>Yz9k8d9@!Ytt@RP^PanYA2{Rvx#W2 zuhm%gwZxjf*2V>KjqhuTHht}b$t^(AGj(d7^tA@c7N8aajKUaSF>Qhm~pOa0@^^7?Q7d0cDk<}3#ypDHlXD9wHg}iYiZN; zwLt~b*J^xHUmHZ4zE&fX`q}`}?`t(Qsjm$}ZC^{M?rWC`#lH4iP=$)|)_ra1DSlrY zG-3N%ZGwHRHo?9&Xo7uhCQP8OHR@;TYv(E+TcM_hMi^kMZnQvbF5MTb8{H&Udi?2r-8c$L*A1(-ifS{vh!*RH z#u#QQbgUH`>5ttZrl&NnG8SYjPs7 zZs_!}ZZM{{ZcH@j8gEHxMSLx)C(Nx-k?ciqtWa&1b3`_p5dt9p?m&TH)W*`X7dkT~R64eqbvG=Z)vV z-UE2IG0yQ;Q*unAJRebhP(3sSgR?DMefr1UbZ<^Oy1lfqLqK?2o`k)8nRV|-fNKEeJ$p#N-12;|Pnc?lFl!4sI|$k(_ZC82VrHO_?15p9AwqD?SIf+m%d)Wr%g34FDaP5Tq1?qdGGpH-=P)#3R zN#Lanyin2nV)a;}6568A!P7zP2Ze_hTp7e-DXF+1&>pdrG@7N9uUJAlLM)*m+Akpu zX9?vimX3zAbmHK)bTpi$ldo7ZgzNaPP%N4MO7dAUaq6~Yv^q;BU$Inz>MWJ#puSw) zZE~G{8v83$Cy-5(_}tfos0H zAJ;l_7++#nsGYdK5%&w_ZH=|lA2KYdxNkpI_{xTc^lKX`FP7Ift4*M*2ws~nuWZ&p ziadnI4?^+HO{=-=NnbT+_N4c~uJojn_~zyzLO4T=X0#ZefS5AM#LBktXk1?ntd z^Hm7fX}DjmJ~8NC*6HTw`PWBfYeZC%|ChjoNiVIx3G{J?lJ1`i{i z`RY|rB^IzyvXK)j)H}Ezg!_eJ=U!u@2Aax}x#1U&Q<*AH0HV#b$d?jDJ`o=1M3y4-8wMdjdw#tWbAFn+B6Hz{P z#42C3*eZVp3Qf?bR=I9LqH>!gmE5xc}Dx&sJvvT%fp@ zJ74X_^*Dfw)x8P8@brAeCA(TWC_!4Lf4<`8a!MB})(t;K2qd*iXxB$H|2qV^D;OhI zhfhH*QapJn^Tr@#HLuC-*$r)~Q5cu?re=+ilg3dXOC1Wdnv1=K2)h|@m)2Mw_ZYZ)^Mehk@4@x!Gi zu^!?0^L??}1J)PYf?6rQm;|=|sKNBdfucr#q*{?$74S!Kp$R%1<3*1capuv07tItK zY|-8ZrM<`k^9Y=+K0XxhMcnACy(kE@UZkb;qM+1z5vAITtkl$0mi`aY!n1x8roAW$ zX1$0I>qXC)lgefNmMLfYM%+VM-|N7`s#+CYZCBGvPMc+pE|@}iqzLAPjk zgVJ7<1h!tJ!SteaqDC*GT9JAq(TgTBUii~((I-ZnjVwgpsN14FVuM~(@nP#l7C4{4 z+3EuH@WFm@9Dv%3fB5bH%ptQXNa z*we5r`UU{)Ma|Y)FG?}}RT{>BsV7Uwh=^@b9uV4#wt~`LbgserPSN!_i66ZveI4=i zqSl~{7u7z47Yz_Fy=VrgRVopuz33$xq8BwTzE6crw?*HZ#HJFCKff(HEa9+Uj67n! zC<$!6NQ3D`^#IOS^dhPisoxX4D7;|RWV4V<`%z=lpl2f!eLuQRtk92^fYPmz1@ix}YDO0#N%=5NQ2KOX){Jsr4gDwI5k&z>g+=Y5j;W?MF#4>qmrGKf27MY#-gj z`qAJ=tsiXxrCXzg2AK98{pdO*%(O<2SwCt8O8e1jgN^x-D|l&*1TU=-DC0+;Co0(1 zNWjt>Jx)JL#F^FzGW->(Eym25`n0x2p5#Y2!-8pzK?MFeN^&>5%9|fh> zk0{lCWTldO$Uv0;Yj}vz?Ga(xkCI^4j|j1TG~A?YAKkqlD+FztK# zQ2`RB{b(u>x;=Uxl=h=H4L0US9R*K6I&TB<^rN<*j30fUs9^kPpn&N|vp}s? z+i8e?^qDbpCO;Zw)dyI&M^r0P6OH|tAI*>Vqa4#< zW+M}QKgt#>^rK~p~h# z7y3%n=t5L0QV$yYF&D~Q^fZ9l zg@QoqLRv}}3QDaDQL0_YN&_ym6g`r5A;Po^CBdu<5n^5FE|ao-^bG4lwV$;vG#Zp{ ziq;um+K+Uh!AO{Pp%($h4LngGhUP=zEH($iQg1xzn` z71Sz~h|^8cpEN{2ddGx&CO?{F_M;@Q^&<_YAKfBq^dqVjshP%p z%#YSuKe|V?pMjb6zw!AbRMv~|lgV}NrHY;R@sQ%|_Yat&$}~$Jb~9o4Q-z%&@lG<= zX<#Xm8cnDrmLvR$TD;19v9cUma)WTnAP`E(xT+w{>2(GQ4XTdB~M-g6s z19g6aH5KY8)_7LRod7LRJc`vqG64}wJc~77ZNqhkSXv|Ty4_f^lQt?8TH(j-I{nc7I`a%7>-yF*EmXw@LBh0(qOH z-z4>ZiLTE#N&kS-Z<3ap@XprR;e^%~$eW~md5d(xHfr!qQZ}gNYL!9L>-o1vG0qPg zZmO|?cyC1X^A+Pg3W_Tw-ia_j?r#FJMBaoYLxS<|yWPhBD^NQAkD0LTd}w_9OTKL5 z-wf1pwXxXvTW;A{{O|bL#=j2~b^H@ye*B*RM8|(iLQaHM1>@h~6&wF$pmh9S_}BP9 zFB;7Mqo9_nmy3ZU2e=5Ibm>Z%kN>?;)cKzX^W#s5j{gV$8vjEQ8~XoQuiN;4{IBtE2%L_8 zKTyln=SlJBaZZ*Si2uf4ng2Y_X(|*~s=a8~5@8a59xqME62(Kij}#Msp3|MLcH;V; z#O6g%>J4g40(G>Q`11(xe6cCWR% z4|c1+8Fn7k>%>|sV&4JdF?FZ0)s5!ycj517Gu4Oppr`GiD*PAkuy=6G_1I$cQU+RD zBOR~3YV;d(bQ^@P0EWf$piT+38&tKOERB)HsAe3`aq%`#dXn%%J;woQ;H zPy${@H0f)>YzwpbYB{KZLd^v=1JnY=!?1!X?wy!0-3+Eyc?6VJSpiC`@cgbgmF`e! z=Bw26RjL{lypTp@R;Vj+|A>UjL&xGwbY!St?v?000xDw{qr3tXL$xMe!~HZ!%-ok4?&5aZWvvH+cc`K z*Kn1D{S`cW_pnKX9r?m}*W=4r3~tUobVmhh9&YfrP#s6f9W(I$j9o9)2C*wp6`w$s zs*<=?+JpRAC|gnfFvx90_Et{QlZ!jD(&)hjjWWh}4u1?6uNJqU-rOrOapZiq$fiizpBgN!VbHpuKU+33w$aH?q zJVSmx2!zhBk3pHgmC{9SFeuLS#9P_scTQLTzmWsA|l*XrwQbv0UiYsTa17MUQcnb=83S#JY+R|%vl zs6T{C19jv3tQ$N-FHuc8%OenIwF98E+AdI9jpy+tsj0-&41ja%|pSM0(cO5Z}cPN11@=I3Qgt&rdmJklTptttu)73|Hh12Bts`Qqh}QEU>c4TDu~56L5M(?tamb zvs6@x8+2~_UF<}v=?Zg!k=eAMi=8FGvcjAabF47u9i(AanAV_lg-KMk6-H~Z!e}j4 z7-})dJJw+8$pmR5k8XB{%apzd;Q$F}BdF;@JqT*8P)k7V0<}`ssV5pi*P<7yYXe-U zt_^UZx;DVY>e|5f4<^ULU$Cy#xL{qYanU-}R;k1=m&gM4L~g_^V%K)|BPeZW2PoQE zA`97*v~JXk*|pXJUu&AtS}9u&61DtA?ON?xU#+#T#)a)kYIbqER^#G!9Y-#3FFvh$ zvHSOu|6J^zWYVrj)+V_gS(}v28O3Jb3dQxwDy@AL`bM0J^$V>+ztAf5i&%QJFYK56q%XvouzsLT&=0f;`a#eH%l;Hh z6sbGn%f34f|0$;ISISIW)L{Moox?0HOh4}r(^->^TEsY$U6?*c zuw0nFK`2gXeFSQ`nr1ZoVV0a$clVOWo|f|kovUT@QX4doz%@IOyfDHu{ZE5U1{TZL5ys$8*sY$2 z5A~L;8~Gg7YX=xa+~$;Q5a|S!j8ECEu2_XJoQcQ=SS?vU^0mi`_9z7R1A>PzP;UtJ z6sY5%7OSoaYPF8#tLZ*&oWU(n9gw1+`P5RW`Kmvd+90!-2C*>~VXsibai8{C7}R)B zjX-TsGeKb}gX>`2FH}_nK_7xv>a$)=iE$GMRsw>FUr_r&VS9y`y#n{84uu^){PB}T z6HS8CPD1@DZ=R_0yG4xEN?GV?A$F9Ix*LNfE>F}DE}c4bPuQ^wZcGW7Me$7*~Qj9v5nM)_L>2YfZdYKA{WCqbfLW~ zR#|9eKBs*aS|3ol(1L2V&@_&PMw~9RAkHr|4P>DaSg07bF0@6s*M+tjRIt##!~Gh` z32V|mdMvzF_!SM!ctQaACIo$VK$N`WR$R zK)&z5Pa2892A1Dle#Mm!Q23BQ>}D))h)45r5Z}@+`G?EO$wngTl>EnKUB)sxem3%c z)e^DFGcic_8;S3sef;cTBawx;vXOxC8zK~a3C2dX52@adyT?^UJe`&7AMt8oU+kBx zL&ITXwM{xE7fTL`Yz8u4t%Tr5K=M^SsLPL#nht82P)zJwpl~)Els2fxalb)r#dV?L zQKyd?ll^J(A2*{6OPA-JVxkV$hF?*Y!VT&*+%Hr-NYyIMr_uyfu{4! z=saVlSX~cOfiQdsM zSN9myi*lE5?q0>9A^>T&wXr!g|u%<%gwH%xxn&%GW}PizBHBME8B9KmfMW^q-X0I8pTRc zq?Q@*I{1RrqEY;(Yf+K9&%|nBRb3@?QIl7Od$boi>Ue4288Nw=*e z7e7Rf(p`FP!FwKq&PEZcQlU|R7O2S(pmD)wbUk3oD-dw&=Er5o_ z&esNCgh9MRf#5hyp-~0Z?-)zxGGlZvnoKcldU&R2p==bhh;7?Fag0}{fvmpgRYn&>*G;0t!i&Uwd~Chj_$ z3ra89X^szq@GqOdljljKxq9#e!E(t?+3&(;$<8$fYe!b4y1p&(-DJYGOLolJquM2Un3T>(0#xbH z-AF;uC0fA9CUr}3E-}7%m$2Av+Th!gC3J}wU`o40+aKr>(f{cZ7I8wGy1Kk|iPvF3 zyF?ITU4l~W5>^^;iN5Dpmmo~LL=w!p1R>TX{%fL}c{<<{*PO5}@fIlU65pEa9zo#A z1`=tyMCBierAu@LrB`wNmgEv&O8n>&n*`5=fFFP|F3}*NsI5z!7BF3+`cHI;M4Wbs z>mkEmkvhwmDb^+KH7VVI1gJ8hWk^BLC8990Nfj065|fK}35z|X4Sp$ELYFuOQ`#kN z_?a%T@qfC6MWo@i72=jt(YnN57|<>egjkoLRJ(+g23+Ef3f3hE(=L$&vo1l1b&0Je zy4i?~-%7Op#k#~sP}(Ktm|~t!;K_CpX}ZK|!O|rf|7u-gWs*z$Ch?<7ECNcm63>D% zF46rAF7dH|=@RNBT_O>uU7`hK;u6o8aEo<`S4>LxG271yJ%$tnUE&59*`)Rt=MvM3 zcL|Gi{uG11NtVzh4#AXmiGjb-CBFHeE@2Uw+SK66)+N4$0qqh&h;<1{wM$rOz$K`8KoRKe3F_6we^#A#5*B}ON?MBH-Ws;B7>iJ-XU!e9QIH=H(!Ji#14JG2#%33@{h znBSyI8w+v6h`GgkgT>bPOAKPl5_v#xcpav+H#GZ$-ca2bJ@YWaBC@rq2^b0KVZ=HZ z(B2S)SZ|cRnKHdqc{f)*A+a(%vx00QV7i z@@9!Nz2OPL(i^@7rM+RC!N!IWl?6|4=_-vt6@1Mv)~RVopu z8;I{|h<(Ov6K+BSu|`I36-^lD5{o|!B|h=9zU<$8eBuZ$5oWWWh$21IA$gW>`wd>YeW-^?7$wM`Dy&=u=j>Kz$@9UzDU9of`L#mv0YCL0aV$_1 zKy6fMf8zi)Xe2+{zig~$1A#~T@>OY;kM`e-2|nJpbRu}XCm{HEZx!>XI6?h|IN>;Z zqo^P8;~@4C|87{rQZPRRKIXp&UXj{uqEg&rzLjlYXp_{P=dn)49`jF%Q9kCkQxOyf zAM+0wb7>~u>|_43K9`)a>satDYDy##Tox0T!dDJ&ne28tf2*ICu z)HkTKe_-TE?-@TVCPIf*+dy1u;m;3CL*!9E5n{t41b_dJuYuK)XsDx-xWZ}sQFHoeu~25N(8W<~s4{kw3h ze^=z){lDDmx3a?6!<3J|cX~=n;jR9+pmIz!P;d2%#5hAYnBQ&3h`!aAoA_?}Dz@%{ zN$423)3?Ru8p9qo?O{faWp(%O;opS=mR583@Z4Ojhhp_flEiysZ>fq$OORpDN9M&6 z`(P{wq2_3@UFP^Bi1hh#*wHPH0kj^qI%bR63rOPf*f!TNfY=Sn#=CB?Stxdc)(Nqg zExSjFxh|kMb^+pa-#k*iAN~qt_!Ef34wS7Se+p?0`QnMWLw*3#8ir2gMTX(QgeK)( z$S(&(!_Yzecy=ML5QbqMhzmnP@X@kPSnnj^;RS^JcE2ndu4Oq$o{(1v%gO_BWf6jp zhWwkhtn$pl2fJGdXpP8_zdoM}`KLi`Fh5%n|Aa(eZxx*E#bG?|7PIs)e+8o_199)` zfZUu_aVG=S@>3zBI};QF1x$_TRY>bccSnm`@tQU_adYf*6#b)3CC|hMaom>m8z$zCH~q$3z3w@0Y>T&ptC2 zt?@x6o>;tzwRPg7(shd!Vnz7Rwex)tHN|d^O|Hl$;eXkl0@wyq)I#zPvIjPtFqcZl zcdQ%~lDHkmJnZy`A*FNQw?eTYn-_MSK2pRrqT<+y#A&CG#Q6=VKsF$O>kP})Mw^7R zHd+>_$VNMZw018rsjI?qw9z8%Ry@FS=2yrXP(!dz_E0m;T^xg5x)SZAeE z!J&lpC?hf`Vv}4@R0V}sN?N!J3L6X+XJCJMM&z`UYrEO)Fl(p0!Rp9lkuFfiNkI&h zt)Os11f~YZD@fbVKC=Ybb*eHt9>y!y6IV%ectz+j9_3B3ad;N6#H`plmFY1abi5}NqoY_+7afseE;0ESlLfS?Ls9e#3v_^+hnGPuo(_O2$=%6wkrX9rHANea2g)l<$KwOj%f{#YY zeCxPOmUSrMILeBQk{^K8p`&Us`gxOu+bD5EMr91qlRW&1IElDwoamsk#cD~T9r*aM z(gB6&06rR2j)?|p+$;l6KO0Ox8*={Pf<1|t1;9ob8Kzl8BP)~mkR2T!m%@(bV2e&D zwtxBJZkUf2b1|S;#sIN8%tvGWI8ZR-fZ!Yx4b%~%HFz2mqd-N*!~;k#H+-nUNiJbK z9ZVR8M=y26*aL{hgoEUnx)s8h$OCaPK?put)=cZMqZ)r_{j#*iJOp!)JWCRVu&g`~ zR~8}o=rUo2Ez7kiVz4Q&=RO3R9ywmQAxcAUy%kQT z3HbP-R~@=F^g4seG0{K`y>Z~VPwcpRJ@0_Ivch;>&uZor(ut$;y|*6O>7}Tw9%YmX)v~&KE3tzpC80#-t(x`GqCF zpv&KF;v}PaNZWlQc3Y_OeycK5R8EgjS<{KCO5B~Q%2b!{RQ8EdxzeiKD=N=KsO;%P zRb|krZ0_=%%CS)@H(He!MddZug)2VQiAGsD)a5&s3!+pWvMQ5e=*x)_D%U#EC|};^ z@}0_@D3#A!mCZ%vi3pWjooH0WKXmy{<>4rmr>x4cqB6BcxZ+2gsH%){zI?*vJC$dn zRDNPr=7`GC5h|Z{qERXjxO}JbKT#^bu`17s%I70go^ztAGT^Ly!R0%ZUYXo+`HNNQ z#j<&d*9=$uD<>LdCadzSsLYH|*~W=R zHBSSV?^I5SQaQk?^e|^7-Ets8Wu_C2QrX4jJC#d(m5>Oxi({ZoDe^%0pQ0e;wcM6*^&;njQe|jT|pAGhE zrzPV5Sj`JE*NaV`hw^rG266||&pTwqzoVTOWUd!`kjQ$dSl|PslWH6NAKq<|Ep?-a z{kQ248RqKmeFB=Gy@S2LVne|Pj2F8bh=nGN&qx&aDkHPl_0~yzAYzVbmW>Igct7}L zjw!H)bP+tbI>(GjpadUGn{kgBdg}d`X;@dY&Ju+Gr{I~E zO*N-}9fBs@i5tV#?T|I|NqEt;kz&Wt_;y0_9~zquBw_C;&vX=WX0rkScedHLd!~ye zZ}UtylJYrZ+Mp0EwqIv0cA*ptMMG85(Jbg6-e3qSJ8c!nTdg87Y+Mf-_S$;nkGEP6 zncwTu@LN5zMK#PD2vfF_Rt?*P6usN2_mDYHD@tsFmIESkkAcMpNs{{uxp!{>_ZiED zbw?bx1WKD3hdyGCg}KKax3bs*{Hu}!7m3|(_JQ4pOl#$i9_E?z!armlpt@=gLfse4 znYm;O$o~kLZz;$hNFFk?2#aOL&myS4|5IpoI=DH(D0C;F_nT2Hq=00xJ4p$pCAq*z z8L2iQrBt-C|AFiRBjr@FvQXujnwp@0U`$3mmLL^tV+NpRFaV&o0zzRDR-Mccau%4s z>8mbg+AxuZcqfQkP)~CwK*$>$&g*B!Yu?0gUZ$C>c?-jN!_9QfTOZCFYvyR)zHr`T zbD!oN59iG__iJ8EeZMO33-Yuo3v*TFA+wSkTa_gdRY``pt;$NXR#jdX&Rb_TYF_hj z-X`;i<_!)Pz0GWA0pi8&*42m1#IVqAvs;A%xLDU8HV2S6g#Rw<+wi<&xU-K&Q^oKO`74y2Jz1Sldw+b@| zIqV!ZjoIL_H9!wfcnGZ6hC;3(*-FTVNm5GEN=Z`wj1bIDpG_GBUXAiaq9IZGMfPfW zWNa}dFfPXBU>|%N>xc(os>%hwwfr6YW@~w)$I*R-+@RC~^^;JIK|NiPH!W>IC6tQA z312#9?XJs=x6SlKUU2Efnd?m^s9xZ%H@Aa&71Wbv5-4hZE;$z1If9)%YnypMsGM0V zNN^?Z@fYEjP@`8dQ9AfjI6^DRJB#1{DwluA37 zXNM7&oucr&g=PTc6qVbdHkV6;qVkXWiXQeAIYd_=qF&qcXN01jR?%!Ks`#C+s9wlf zkwzUIwqwTjqxh-pt<%#xgSne`709 z#TZaMLG3rM?$V;TIE~nvW1#>KD3likd;{E921SxhZG*5 zA|A7Kx8=Hr6k;YFrMq+&D8VxQok2d?$;UeA5Phs855(=v5W>%L6ORTOx>K$7lHmB$ z=6Dmi-3~{|d^{Wtm5b0Y$>5*O}-0j^dj(c~++5OuHwf?@H z0=aKTARc=_nYvfE9ckUGdlgjVUR|In1Fj5|yP{`93j0f++(5_G2csb%c6$@lIzxc& zD=kIZZNDwI7VV|@frKvNcOHV%7Hwn)iGdJ5{`Rjzxc!y~;u@I{eDwEAt8G~qSyt}f zFTE_r^7l(g*K$DLWugAoubu!`oQZSknUNcAS3Q?zk@)E8+xu2kN6qvKoiRt6ahwP@ zXIzza)0l)qcr6UAsGPX(1@qJbLK z>%h|w{N4ybSD#^ zjq>PM_h%L390BWf5?Y6%^s%pKh?|Ir*kJCk3fyB~!KLeGi2fDw%-9ollFLCIOs}df zSu_5hnCBs^vzS9%W(1@LzGy)RXR)N~*c6<_27%I9%z>L11^CKqg5@l>O|X2_?h+`S z#j^6uVsi!0S*&FZ>gFsq0+gM_ww$>7EVf9%eAI3aC>-8I;dB=Jf{N(&C$2t=>FMVb z+jdJ>0XKuu8T!9r9Q!EQuEUUx&n6SZ_D2J&pa`?@F};S0Q!9g)uO@3%8dP7Qihz0s z6r496(bLw7UWRhht70oUdLi=j*PvDk}{Phep%AOd{1(JLarcN_gE z6yI%>oX&XR>%5{x-Mfucitjd3DZbl?QuNtf)@OY4nXZ@)%ZjO+T>@w@m9Vi^t{5vY z<3<-uBcVl~|8$6WYc^dhW^2u zIRsuADrPY#y8xj}tA(I6DA!r6zf$U+EO-Xxn}TOh{szhhW!hN{$|PGO_nU!G9V%x~ zwg8o5qH!9O!@$D_L21kNmsU&na%qLp5Vr!f20 zg`QeMvj{+Et4B*{7r`0fN=Szf`dG#wl%Tbg)i{iLAfi57ZD}!+a{D05tcpM#4J*zz z8!UsSvyO>2Jp<|AeRXHmrHR2D`y4e)O14P4)pxwyBO#X7w&e|Pr#igh&6%~%lq=48 zpbygX(X8vuP*6SVG78tB@5b-ZKp6{^$-093EBpg@ z?|v5oxSv_YnToGe86aYOrOIqj`bw2(v1{L5CGQ}@Yqxv}zD|V_47z>?)Fi&DiM6wj zUa*<0(KlGcUK)M>qBhRx!%{kpz5r^YygX_0%c?EH=tzT2eb$o(R|KU7M~mb(SS4sM zCGgp4zI{o{=))vF*P#j4n=x>7e?YKs0yPViy1cTr=pwD3^s#UK!$7FZk5h4$F&4;x zh=EFJ>ZQ230Ui#w>RgLt_eFGq&&Ha^McA@K~ z>=CxDb5QnFSN0?XBO2&)TV3+<*u*yCf9^eO6(p5FEpuL$lK8)R8$!SSPhe8G3-1a* z&F*yAVz{YI1Fl^zB5%D}i!@$Z32FjV48Um`v4aAkhZ#@bDx6RB(9{b5saZ&fZ+K^+xHwJ4Oc7=5i(RO(o zly-%EuPQKNqWh{Hoyo3{)Pw@;4)uj%bln03u}goQj=4R{q(@-ZC`Kcxp=C&Q_L)rBG`t&~^aMT)t0R0+1DO0XR%!FCMV zF8x3ISeE(3wh9|^In0P~3vZ9I%;gBcP6g;Pp$vP{(oOk2h1RGDrW60ce2QQK5>*toDRwC>S})?FFqps=34yH7+&Lu86g zatc3bMPl3(9X z<|9btnC+J5HUZX~uaLji>d%C($GTD9^T<6S`g278X{6(C) zw0_i-ZF|-Bt~6!WDltXPNNh)gXht(oYDOd)W~>r3mKmC$aGJ0faO}qVCgijar)k2w zNb6^l`RXthk=6wFw4d3W-JS0H4ZJTqu#2YR?m8M3_-&cF7Ws5c z^fFBP1*-R&eYN?1mi_y+?)(W?mU-5u0(gwzJ)qcI6NAf_>cdHZzi0u+0M9l*N2H+p zD0KJeLERfg_gj{&x<9rl>b@Q*)jc(=`|}8G*(Pv64P!}|Zn$t=ZL==3om!YVP@+Aj zQYY7kNCEv)y74wxbh(hAQ+xA%$b(_a%#UElcBahdpwflnlP(RqaH^gSftPRQQ;~6x zqF-4x%nhu-WLOuODqI@Zxd_tO%fT8u-0E+d& zzh~Z@8(d`4GBX-^iW>roIPS>Qfy{?iZ4T8w0T<0eX5sF%c|53JL9H^wK`k?V@He#w z`{1{al+axOLK3{R2jYzahc)U5Ltx24KWwmz70{)O9g$e zMK6^%Wk#a0T){>T*b46`@Mb=I4V;h*?%sl^aJ~f*FL=UV+M@RB8xa4L>hleVxy0QY z5LKLSK*X^n{zi)P?T2f6a(nkT>+{X_W)TKE7GRE=QX|8)tC*>U$PVwFK$)rV!Gv z!QOp1%Ec2JeTXS7nC3_iKzhBYiuCuu=qjn5)w=|I)78`fL{~}0doi52N@@T~?-2_e z)zTwYNrgp#_aR$EfcJ=}gyJgcTTr@6iWYUNB$eVSNu{_-q7*u@X<&n8j5 zS>_FEIoBASVTJTW{XrQwR1lY5 z;TFbPGsIT5>2JNM^Vdk5;{0{R7Md6=w=96F;FE3cjBtLo>3mFMj17aP;L{3USwJSr zF+E(t$RB@8! z%3+uPKte%rC{IPz3jTP+L1Jtr{nKlO@KiJp#GO14f{&hxma^XJ%CZh6%tl#}KODIm zM(L^O+n_d>8W!%KV9%048b5KHp8F?m|ML5h+EzztXS@5E+iy}>)f~K*u0K5(4b&6S zX5jfBJq({{HM)H)>|4DwF!y2j5J+jW&j+Q=9xdjYU9oI-Vzt?$v3|2Fn9WXbj)?|p zv+o2?oBa%^$iwg-kk)2*lC#+q2NPmY13e695qcQzAkG7Rvnzzno(JNZoe+Gq+3&U< z+pEn!S-h2m8taQ!s}69@-T~AGvm|%3ySGxK+3(8T?74njpZg$uh1F4#R^a0wgwK(} z*zAvh!aMb&fZFUYgQp*TNa|UOx`-O!D7n}mIaI({qYp{_SCsN0shI=$kknZVm!Vo# z7IL}+ckoo*ag)l6veQt8l@1t#2jxCh{|;$ARnH~jPSq72K2;|i_j}N)r|La2xx)R< z+QL)yT_{RyvOl`h-w$(o#U92BI+FRP>Vm;b0mTpcXjiPoG*`=S8cfUiXxB0nrH^(+ zLfnZuxq6Q2xbfDzIDfn)lS+7wNtm8v=7G7eBE+3z7O=+5hB5v*<}U!~Ip+Am?i};n zi(0d@1YW5wM)Mr=X(03*^Jh?cj(O2y!{?Y6#Xg>6_8LMw&oS=?g>KE);T5&>n=jB) z-($00z&yu%0aT8O#_2ic?^HzZ|7FW{=a|8zXXSAQeVXA{Th%n{HvegcGDA7M@Fh0U z5a)X$@I!2?KKwMp23_ec7vZ{Af6_HFBkv!=CgI}@tst#0A8cSDT>#0db?+d~-@UWo>Fo~%Pj3f@``!*%ZzowtxKrcG zfas}l2T*vtB?_nBo=Zja_5@pQl(*Fxvn=!MHR6o?!<;i7g}8>XgG7XJ`Jpb13DYpn z19M?ahzsLIwz#AU5sv*80CntLw>rl@Y}>FafmeQz^61!SfY30$0!kgb*JAys?7mg- zbZmMYQ0my(78@QKMhTvd4c$RJ9oqtw zb!^%(9pwwrLHM``9wuNqb|EM{P!fex$39O*jNoirZj@uQ%^n**ybF5VoV2L~#58Br z;L@WraK%sJ`q(=mq`KiOX(sN7TzHnoEmO9+Y(@1}wZAP-?vHkw0oJ+@t-LF}Zr9T>#x;vEiP%L+}is6+meKJqgMN(57es+cV!6FayYpVE{$rG=MU| z!v~LiSv64sq&>6LOIm@kr~n*00)E$twm-zxu?`Z^GiQkZ*)s`K$L4`K#}eWkTgeu; zm;Q2&-3@^D%xlLw$F{V<%LHEOEN0QMqIv93Es^GuM+{u2j*zYGbZCj58&x|+M-{G3`O&G1s=^zpPq~qYlMvUO8Me5+D9&%r%Hv&gZUUwKWQqk|Ch$rbF^kRlU%|4URJ_YI=Y19%?kDHO zJ~rpQKxseO4$3y?KhXlVIbRhpoAY~6IVKvX&3Wwv+ngJ%nyBW~ezMy#)3HAa$1aB7 zwV!l^xH{HBBKpY|sVMsiVd~gCFy~l8oMWG{#f?RAzGF84p#3CeqI2w<7PyzdE0e@5 zI(7&U+E3Pj(tdKuV#EEUy5Q;9KLyVjto$V3u?7A|Ke-VQUEGcWm1ClD>ex+G#D4OZ zEjP-s*(T01bOtMDQ?I}%?I&k#KUtEupSbYUe$vK@YCm};B88P5clhQX)M4&2n{SSp zKatJH9lm2y74Gm&pUj(80(6J3%oMl7=Y+>zD?5A#$5NO(d@9TxJ__p&UoNoQ;Zq=Y z_!P(;zDQuy4&N#itvh_3r;_3hUp6S+;oEQP@;`R?^50F7gE^je6DZy4i578NJ&NU4 z53#z{6OHw^dKAp99)fdBG*GvCW`U<$J&%Km-0Jxo>E(tyd`@yN9Eu&j@5a!f+~HFz zxWnfld3N{|!mXY>5Z93i!AG}xp0M7!$g&P43_;^X?(o%{MsM*qDoa4&<)IcHy~8&h zTRpip_5Nk6=d9I{XNT{A6vnNdw?XBYXrONO{05%?(H*{0k8Aiw?C@TdG~G3O z3sBnZ(PFOI70YHPR+~K<>o>cC+3W=8m}sCj`>o(9_?M{^ij)?|pv(EufKf1%0Y1NHI4Y0lPv(zB` zGss6oDR=k^%;XN=cnjyqX&+ML^V@I-claDPN0sfli>~Jm-%JQc{%+WC`0 ze0>Q3ot9h7cGL1Id*+`>;FW@6G^gc7Ko|vx!zd{D#t|QbXq=1MfCo0TW)w-#=Rjvy2ID=tQL~SEPVVOzONy# zJABa)=X)YHn9){2c!zIeDldzz@Cw;RoM-ktzTy*=Jy!;7GF!PDDc3ZC9Bbg%F20@m9}>IeTezBVAb z2)Y>*7C})s_4Y$lL~k$6<89eb-D&<~Yl)`;<4(W35rS*3WstWrE*rWBo#a!76S&zEIuznctL zS!Sy>hNs9c!-~iuZ8{Hh_gDZA-m}eXHnnCEbZ47&HmREuiMAwN8CH%+SvR$?@FjH9 z1Lib5t8U7FpL0_SQ0k_E798QGJt9Citrh_u!ygffZn_9c-4reA+@w-;lS@6g-#V5<2PPnV@;I=O1@IU?+c+1912>pIY(V;l^85`0RA4Kq zkb5W$ad;LE+a|G^uReE?np)q|?^&k3P4Q6verrNvu|kMUZM~ZK zQNnb_cpd20JFq@SG-kSjXEvK6)7*fOJl_rV4&s^zLv)q93FA;tm=5)MU~Z@<#0~XB zZE;IboIljx27nGepMlcB=OGI`OW>7Xr92KkH5U-eTicPKbnwZsSbya1zDw{Nd`<|S zgU>gh5H&o^X<_~13)rDPX(5$!sILzy$3)|F@VOH_38W`&xlu#CI`&!1OsXZ0y$ycX zk$4Hjbq;lq2*=JA|I@LAsbllNoMQ=bjy-9M>x$xh$6f+J9Xnu=bL=GxTteWLZekW4 z`zR3V*o&alu|HX?@2Bo@f~RAf-%mUpI~@1-LS=9%#`T^uAl z;NrkRBH~~HiqsB9m|aU*O+L)U0U<69c3V($6z9jmEdXd7yah@-*j=^{EFthpUoneu zQ1(F=2YoR78_nRjSxH?o4$m2I<^-m>sVu#L%x7@ z>=XghvFkzQm}s0j_AM%+V}G#aMmaXy%(CI59W2YH;t^WPWOhnpzXYEk21a2~O%QHs%7&lcw|(B%I$x(7(#w3c&$wg6TzF!`Tf zv&`p~!v)&*Fo#ouK3e*%1=!~#_uJ%EmSoK%mSp^;=bC%z(h;(3;;)taS`#nQeS6LB zxz2q%#Rqg>qZQ75lP%aaJlwZf1mrdVFm>N9q2x9Il)5ik)VXhwVCg=UlG^~}(S2v0 z(bn?ar_VggA*F5o71pA1bz%NKb0=!2tzUR0t)cl7Kxyl5&1-&V5uo`yM1ZY-S}2DnMD12AV(d>t!&P4; z_j$;hKaY72Bd;^^)|)+`R)fki?>(umV?_LfIx@B*o}TUKq9V(DW|54-LeM8sh-av> z%&(TiD6ARgFbd@d(cV*925+;nOc|RZx_=a!KX0uRfzCD=wt_@wo10v9p$T36BC0mz zK344=ROqx+?Nd-CSF>s@tRhzJj4ddlYJu8az+LvLIpkq*kv56?jR@$%HhzMh| z%)Jrl22p5M?STk%w#oOjx<#v2!lvXQaQufXETMaRA;Sl$vA&vuS2WwCC^&ENf~*hj}s z07@5DS)i5~Jx}^P=dUVymjUAGRs(OjH7jwMq=O4eQ=&0cv+j z5n`3Qcn{>PGS?t~nQ4H(uK>5qR0maJ zJte+c?RjxlLgE7D2X?PAzaf8_DFj?2;Fg&Hs1cyDO@52!f1KlIli2Taefu{Td%&6h z0OZvCXq0b0A!>f%e>MMv7(?@~hy=|q{;%ezZgA$e1C?!3qRiiCnj=`oz}USe2nuf& zum}y7?l#3>=?;_z%jIye^tJ#EmI9H%qD|{!(|1h^Q|m$Jo6#^zeG?7yeM5-)=Ae!8 zt2gZmsVRN)f=JLePg;qqH|-Z9!KN*-k-mA>qH{N`%Pl3%jR4#Ht#5uK$f^0!DBpZS z)chB$`eIg5?#RppP9yUnk)ZjfqAQ#$G7pFZ&HorwwmBPRK3;c%25tWko3=3)zgUwz zt1+uhdy`GEX=?zbO?%O;F0xH~3(%&W5s|{q%YqZCtBkG9Tq)-mZpE_A63b&b*=D6p zQ4NNLH9J)B`@&fN*kbvEv&YRo%Q+B{n`NG{x!2;I!f%E-9D{kQkY!F;Ksx}wbpYXf zY&j#rDY;l{2pNhd23NS>S7n=t?DnXs##{bMe@y5sTQfPxf)_`v8dywygDj|y){Snhjw=K#6KO(i?vT!@r`zB_C_{TjQ}`oO(5Au$*+ zF}-FZnaEmsk?!B4&_;`-jeUKjzAz3Uv?szwi}ZlZGD**AC{S)`Ub$~vdt{qri&VMU zN5gU_^U56!%Pp`-y*1eyA%_`Jx-$OPpF6cU7na+TOYXG@xs1GW7oFS&bI~H*8_ndT z>M7G>E#JJ&W#7|>vB9`a&CkKOga5||h4}3<^7-EFl_qOLZbYF?%gk2fk-OB)iQ*>m z#C@^P9u~oF-T<$!J&JmcM`jb0&d(wlE_6!miI#*b=|6N?ToF(I{8gNl(f@} zyS>T1OjxnkEff0eqXd@;saC>&u~@EU!ZhG?0lOVkwkc=PxmP(=Y;H1Zf{!Wwrf>SI zkkeI8G|D&siWtN7cg=q_|IYo+{9*^3`E~!*{Of^J^X~waZ5m$H{APK~U%uLTelg_K z{AiSK{*z)1&2Rm$=9fI^%wGjcz2D(q&3{rPxJdgBRJQ4QRr7o2F~9p7XMWMgo%zuy z-~1Z@(cl^QujbDJPS=>{MS{UI^k2>YQzU49ohNAi$g7$^#^#pL*g^0V$#UlRf}DCk z8s(c$h?;-bznVW2I5mI2NYMN#|7!kQB0=*L57GP?dCYH&u6b`B^UsR;?ZCSZavRNS zYxAPS{P)2iWVP9vg+1=8nEyEPmzh`aw-<2B%(I{tio{G%4_?Lm2Sj2M{_Yfsm7p$y z$~MdLnBN~JX4%~0zW1wQR>r@E2QPS-w(Z=J7gZ>8nRyENL}Z&SRtNvp1b3Zw*>tXd zLoNR%gfsrr@^3=;UoyPd#=t*gM&IZq73=~sc*MMaD_&<VbJ7Vq{i9{79iXSnjnj%q^i4ssS5Q%C`ct^}T7^#!0GhvRHo+(IN#{>)=jiEoO z1{0`4k-L$oWo5=<%uY(TGCPJKQQOK~8HYq2D-$;eiMmY06z(?{k(rG*qS8Bsyl2gA zy}@ih5?P5s_iqM|m^~W-=}(cu&zW}D!Q5^Av0eO}`ECp+YSKr|7q|^+f_770A zPRI6+ndA*6@jtF6j2Yjk(V$L)MvcB}`1lEf22Y#E79$TCv>fVXQND`CfEc;1wQpr$4zxaDE0Ebw)9LIDdzGIN*>eF zcvJBug1c*_`+@NKJ+a4lC2o^{np4~54)S6W_;0;p687Qm2@}&@O;UZLfbEMH9Q_55 z_jYwWY-G;02A%qt@t$w#c{y!#(MC{zv_&8x=EItJq2VC}PQsfM4kW~%T!4#7cn;nR z1mc^u#U&>GHOY*7UNU2o??6~q#yxFfRcP^IVq!;)o&eccgtHf12U8Lsm`rjEs+;&A zNht0$3H>u6E&*@3K>=|mper~TyT7t_-u(ZNE|=K)2GE{iqH5xZT1Xg4q$ifEgG4|Q4HFBZ zV)=uTXr8!_dSfNgHnG~ZNW@8^YhvFaNW@E`PhwN_gZzo+rXb$4l2{Y%o@K2NxTgmIe#hB4vE=`o6?X-HocL!Cvin5 zBvSCq32xRC^EF4Jj2Vo?g2a2Npt4yA*pfu7MDf;gla0ihLWghh6I+%*qJbHKa*lby{4gP3bGAjkgaSQ&h8O0c zE%L_{xcLrT3k>auKYhA_U0_RT{OM1wmv9KpSfHmi)c|NHFrX9iW4wZ!!CeWm&lP5_&xWI+;QVUhpR%3Z~>B5nms!PA=pX zgq;cJ5hjH^n&Bn9($~>33DYpE7V_wrgoFouI>{@%nemeyf4%{9jG^oP`its!+`E=`f#$u74Ta%Uisv>5`yUm%um zG%Hx-t_j0nSYKFNv~VV7I9vwb17Oj@Lp5{QIN=SyPcFBvlgo(xavAxuTtmQG85>T*eNR%lMgcxod-5CLEK?r1#`9`LbN5{2`aAMKEv_Ej+V=TxK4-Sh7lrpT@U1#lm!pLj6u_&$fR6^bkU*5hLV1d^srY* zm;UM((BsT|0A0j4^%8PD&ArQ9M$R8DH}oH}%4A@EE;`l3qZ|RJjzun7WjS#1k8Xm_ zVs{Jzvupxp+hSu|flN!Thi7aa!LNq>KVG@%eaIHpjfk?4{|9RJV`MeOd%ptN^3M;! z6yJ}6JjhAAP+wJDMW<-@uDM~b6A>b&%cf`K^6)!ydE_s-Y%POUE?QzoOS$YEBA4AWn6IqJBbU=%}l|4yjOW{PB|RMY_`PabC$Q`|wCZ+%Wtmi3lghNk z;q3*<45kuf6*gz^j@kgPK;9SF}|9b||c9sp}^_%u9nMxRh$ih36i<$?(PCWwQ5Te@C0m_qMFL~;tkTNx%s{vpc^8|n< ziP{n`W+JD&$pr1Ctj55UJcR}52$?)>zt9{Zlczr`^x_=jCC@tDie5k_P>7ZA!Trc65f}mHEPDuExEa)}+VR@1l|H?)R zWSau0YY0+a&55;OTOAr*a|>palm?vlYF>kGozn6P2-O-_2O^Ijn(BFPA(>wN8YG|V z8_-616gqa|oB9KIUiv2Vh2$4A?pEfDV4U=swU>_u^X0Sm;GZfX^AZ_nC{_D3S|j;X zfgYasGcx}OGd|@se`W<%>xJ^e9(+Y2B$Z76VIa64zI!M3R#`T<*E@ul{wi!pzO(}w zWOl-JfMZJAX#-Xn*93aY2hJ|W(=f1Q4ltr!|Hv#E89Y;-+YI=3&wSkI? zrs_-urJ(K7@J)S@&QoqxQ~m+vHUOt3xhKJuQ1$B0ZUhC_ncma2lDB}JNr);qPAAtf zHPJd>BMPQ~Gc(L>lnURgKdE6?&CyN{aYIYGQ>2y4?o=lOFJ}KQm9w|k3rzyZjPgbj9saTW<>pJ!b$q_qFZHYPLot-U+Em-9^G7$qP`w0Ho#&8FdD8?DPs2gpjjxRs zhq1sr?+5TDvmws&9s+2E1A5oXn6Se<(n1G?28S?eC*$<;aX_B-VGWs`vd^4C&f6|m zJ6>sFZ8x7I`+J{tfuWh0~A@(Y10*`;XcxD?MTp@ zW+DLda)V?HP@688mEi60`F@kDk_J!E3#9|*X&_#5C|$E=+zVeOUlVu|bJ54Biunlq z|2j-aDz2DnfzZts6HLOuhp&1-+Ey|313#f{MNbv*>-ZRnzl@E~qO1Xds)$bpoaq35 zH;3_*Ju-0nEqIL>*|&i;mTVah8V$!kicTII7=}?#q!)s<*q2uJw7~5MPLbXQ)^1-q zGNv00=?2?2kYyw^g~4;y(&=8Nyj3cA733*GK9S` z@H#q;NLK`_8rfob2LGdR@~J@nkPZ>16|u;%;h##7ajkpU1#u%7Ite@x6@SUIeRp za0PO>STfB(+(fpz=11JmBsU5+#Vmf2l^Y1wD96_Bo*|eH!KVUv7J`_2z<-b!zm{I3 z!4tgX%;40PR?QZ$_vTh3kh_9&(5Ry21lVun){;?dB&>NP_ZHzhaGc2EjZLtiQ%$>VeYX;+fP0%}le9A}rBa0`%oa1@jB| z@x@&={Sn4%JhBFS7K*7g1uYW-po$NYdfqT76ZQOI1C~9ary1DoeTY_*kmQar6EQCd zW+?bma$zE?DGCGTP8cNUr9f`-(Gk@YwIgG;qk9SPDS(dW0(u#OnG*9dW?sR32>!P| zCZd}A8p6g+F^9UKnnCn~WPG*BWdaQ&GX(j1%#*IhwSjEmqXnqd7T^~#ov;*^C>tQuhJ$k`MGtwR4-GAB*MTj`-*!Apia!=*X6! zT*`X$CKj3^SE>|l81M}bN{WtX4k_y0*n+dINPEBs{SOgOt8qCtd7(v50dm<@&=CzI z1q9+&-eW}`1N^8jB5^8zH2efzBJOKMwAA1{kUw4p9bJQJacwYDiAaHDY);`D(ehFN zMQjb4#g&|E(T#xYc@=bY4Ti}QZd(75lZd~O#RwOP3rvUgy*F3yhuA9^w5t1F)8LuJ@f$r{0gu^gg z`?|p_NNfwF)K-bxfWG%C65$4^l5hiJ{gt>L7_qnn-v+dX9Xp_|{wiMgl`u`N5-|&@5+Aj0a2}QNn_@%pmjtew+5JO?1(xCBGKQJh~jK4Xj zC&bT(Q8d-m0ly(JI^{3Gl#*OD{^vE8-3_eXVfM)7V5h`4tM7RyP^K9R)}%0-yGSV) z0~H`m&zZ$wJ>u9Q-!*D#2GPma$6r&xqK^Q1+DEe=L;`P$pAfRZ&jGsP1AVogXiWJf zP_n%R7EZ-oFTUz3aXanuGK#Y3q4BW|EU+O!ZGB)w(FCU8)%Q~@a4%FOkQ?)&wfvN_!7eK;@Gw9pd|-s3tfYJ=#!F`)vGwx>?JJ-$F|3mgp4I3E~c=#lX-^kV$?-7Rnt zKx=(qgrNkcG!16E7&!pY2_G13sHpurz9gzF9{m`|@AIO)3;`BN;1WWB`O4s?5Z^pa z-)I#KO-m^546O@LD<2qPD1j+Gf)`d>jr{={=L4e+6}3$hmSeFkx- zUsXA47hV)q`O-U9_?anjwqNzRpg42qo z_LQ@s)c$29b9h6!jO;F#Q6q3Eb$bi=yJ-Jc%Ap0;-;DBdAHFsH8MlsudE#VJK5Yq= zL$2ffpgojZC;56P_bs&fhjL?}ZX&*^2Z8Vp<>n!0iOUT=B`kX=mxJub97{JjntqM6 zDLT>w`{NF^=%^$l)7B-c8&P$p;|Flo3brj%0rV{kNq4!cJa(hW^b#6g1MhTahL^B) z9q1mU6B6FT91-kEI;k0@f;X1~T^Zk0p7VN|c}sm{GKDjYj3-_s1N_CA}(F_v>*U*wL;#Zl>IBU#wSDPYZY zY;{Qb{vzOP4Q}#0w!m6&w>X5HDtWc1jR4}YTG+`u49*FkOT0o_RJj|F12yX4@B83? z;bX+OqQP@46&I?;J9I_b zZx_-EsDl6YTM_%8_=;R;6Ih`?fwIv0NH-8&*Bf&kU=4g|U<=A=@E6vV!41Z=MSc&* z)Aqc9n~`xjUtp9^0M^_N_9O=hiFo5dnGpX7|2PT!`@zfh`MxE(lNc-==(7UDDeN%^ z0eZ>-ExSTsPEEWDj_fzUI!|^XS|~e-!RrDorda78!1~pfR(Acs?sO|%q!OAMUzL`f z#9-6FV_43tr1EsIt|wdEtn4;{sfl9^cY?J)%;rvFa8Y3V4VHZhtk-?EY!U{K2AEinei+!sh8zYxHNmRqvs-W@F|NfUXkgP8 zxjo47OYmf;FBk}xx&^;Hq5XG&Kly5yBEh>2w#|uI0)93zbb(mvHU4xitSA+nI00R5 zFL+Pq=5s4BSS@(-Vq44`V1GzR*c5@>5Uf+wmU0DbQzcg^8Hre02ipYCPqu1GgI|sq zZ7X4S3AV;+Lk!ITtC>^bW$Y~u>E6K(*hP`L_5o{PSX$VFg3U2gi}Yl$W`w1A6BQgC zT;2tHOZ37ju-1{SWea;!@RLnAVkG-B(N>FR{`O zZV&cb1O8?3t~kDT1NW5TZeLy1_KiXy%Hpf8V`sA}hztG`9D(YYx&XAz4GMSG8@Txs zcVDR?R%0fBx90+T3RzYXJB`wv=YqXF7bL`dy)zB=jG2xh#%u%NfDht$qWjdr;W53j zzhh2-_nPB-jR#{59(*QdK4#RwC&>QMvBD#q*P=fHD(<~^7XlNHA+{90T5%4tw&L6A zpeM~M2>@LOKnouv-U(N{aWAaP;+mSRwSl}Ds9SR*xeW3$#&?8W4P$@7JWSEREPxgh z=!d)9^m>hdz~V00I`(%AAc02!*yC$sfOt2qM;ivm#4r&!4c;Yu^L_^0r)7ykm@Q&BF| zk6Stk7v6=NG7Ew9g16sbywHGqb|d@Gb|42gBO>AR9|0LcIw|3NBJzilP7V$yeBc7W zD;IqokXu*JFdkXU@C}i$j5}kV_Po(ZKSl-#ukusxfSl02vq~HzLnK-YW7?`@BNB?n zBh>)JKMY%w%4D{$4y(qXG0P06tzJT^+ z_#JEy*{QL6KsXbUnB#Io`N?w6$5nCJcKsUPArs}79p4Z6Y4b1YybxR`WF2v_o;GgC&9|Q7cYrrwAp$I z6f2j+sjJMMS8t&~MwV|$9VC66l!F8m9KfPk+&l9l7`n^)ZYzle8ZyJ92p$>TfE*K-2NXM!*g*7a(Xl z9${jj`B)OXp$H8&j1SY1%g|860G(($@?oG*MxeDM_yka>aiD`FxGD|Z5a`N8#z!=L zn3)WhUdys>s)@?tn_7#mQT9l4<_cnm>|tQtMs|H+^HwBuhl&3XD^pl)=7O~_%-()G zY#3*zcQ@YaUP;;?VvMh-w>rM;0RCep1p}FwPzn5WAM>GUaN`=oY3EPWI4 zwPg$YH&gmn!^;wZ*i zdyXvn%HZ z_GdnX;iVnB&WET#Xi&_A(>M?TKc=p$tBf6WU%DCWu`!cyH$sa-VAswC5jDD#sNmT# z8_MF}ox@Y@031j#yNQIf{*jriZbiJ=Dzqf#HpB-tPXh4%|EXEPIWga%aj1DSfQSE= z<_4|bLU9WM<|GhjoJvo#7X|Q|F3-E{vUUDyBO&q?%uv)r_+brZgd+HA!*?Q}!A(@W zAz-dSehtUdsb3xs3S9_xMcniN*t7<}o5O@eK4U&+{m`R_AxSWsIqT=M1lF^ z24b!k;23~rT?JUDOdV)E6?Yl;2+P6WkPG7}`+VF9%=-JmdLb7(!~(s>yz>lY1aFy$ z%D)4^B_G71Ex$?dwl`4mU%(4Aa1|GMd2Au{d0f|kQP-z}U)je|0^*vMoEn_p6m=v$@o=w*;*Ij zLJ!|a%t?-mql3?lv}M%?zd11yS~5js2xffn97bs=t1tN6u2wyYslrikQZVUD8x1qS zUl657Fn0&vs$y;41pdw_JvDxYjr(IV*b5lO$H71A>(P1%=Jl9eXw6~7dtrr-@<=gEE#tc$+1ObKb-&8^>9 z>EFQm$Cp-iKlA-8E1irLMOl1p*_;y6hMAUs;4qoW8-Ue>Z1IjvC~0?^e9esa7uh$1 z)t_v&oKr&DB(olCW|5u<*0iv+uxFW_xMdOP6=1CmOLN9Z+hr=&)|*Ll0IVm&Y|a>I z`%OwM<9)`m&w=%Bn9Ug@?U1Sc7iI&pzX$7=Fq=8{K zal#ew4fX~jYNko5Rnd%57xo}B(69N z){A6^+esc~NxLyvvAT`n_rd?dsn7;H) zeT*1~gKU#{??OZzQD+CSv}9Em@CzEe1iKhvflyg1G2?Y%B~+6+yd|HCi@Clf08ZI?vOk2 zMf^;Q>=HME#ji-aL+M>M+|La?e_1*?Yly!e_ff?iyY2H;E=l!ZujLbpx8}VLF22{vxnTT!#-03xedwjOYjf5yWy_6DednD ze*ddsiUbd1OSL^Q6TzQN3>_$z`iI<~PsYCXO7L=W^X(z`xVP}88>%=A_KSpsO|ggE zpB%-_3LzK3{+y6-DejPaA4U#Q^AGs3t*shQ* zt5sN9*n@&U!;xY@f3SvxrR^d2D%?d@rhU`EniH0`huo9TcwQZ{*MgPfOS?nvyT+p( z9!K_3Cn-JIKji)!TN36i@GdyMJLFz|(e{lW!3nl;u48wxD(oTmq(4x4G5|GlgCwFj zY}ga*`{K*kzIqdYU2}omA@_&f5?3gZc_s%ko~S>Y4D4w_K^Gc^T2!!{+~XEQ-!U#J>*_l8nIUd<8WnsHL%1x z;flLM?!VH2Yz$O~+(<5W{6p^QleE7Dh5QUGo7XyT>HeH*bKD_lsEZWID0hG=W`XV%iC;qWL`vHWnza z+T0z~7BJNn7GuhTh}0&q_(}T-%j^qgkC>z(tsMw&EFaWktk)lomHCyWdDU8OC;BEc z390JTtV~r^;-IK{1ld%z6j%Fp6j8+@L>24j#aG9Dn<@9y1>^=Nr+Z$xXXm3VSz?uY zj?Z5P`LJ2JqkPsNZT&hN?;_8O|3~Z{`6I;e`jy*kg}nIGE>yRtT6?GNKv>;DKH913 z9$yDi)G^PCAMylk9@7$HP&dxn>s8xzi22LSC@|0#E6pGfk>2C82wwb~ceB*jcd^tZ zxZ^MP2J!WOD8Uo zqLMrKMKRwN)dw427aAmz&r-Oj~e!W~X4T7;ET4 zsW>Az#0b+r;&QLor+bVy0`Qwjn0}yAf7lDmulR#yH8quutBBCK`+ksDdFPE+_P*L+ zuQ(jZ4j0H`^rbsTL3w4X#Z%Wi4$O*1ym+VV<;v6*)5#V^c34*!EV_E9u0{<@7)C_} zO0Wz0<$1k7K{9rlIA9Ri9je`G1G43ycK=7&dw@q(MD62ub~l?F>H z-{;wTXU_Z1nRce!xpVJr#>B>{t+XTXS|Dv&DaSC|3X5XZX%A6NOD`jFIzY`OE6e0YBC}*Y62>$OE5T#7P!l@tI(h#ECLqi10)G4o^N=jLU<#rS- z8RjGkPX+4~zLnAx9T8w^BAEuJW~JLo%JEFVy4=42oTJ>y0t4lq!yZ#^%|qBIMSaTe z4^dsa9N_he(o!9X$f26jz^XZ|PKtE9O4&Ju!%~Ka{x4yd;f{sW!SYCT0j?uj~L4IpEob(bi4W&%L$dxO} zO;UQNnMlvAgY;3B(ksriG4!;Uaz{$>aZ(MuyOdjFXy7_}AB(yZW~kw%gW ziJ|wZrPQJrhPtvLDcuIa$Pqc54xHqaU)~1pQ{t|{9lq6ikcx2lw2<(k|0EUCEl&1w!YNcFDo`iFO8I>|@N%4i-40GJWZ(mwe4LBt zUI*(}7losjxQXrsR3v`ZP49Hm(r5nNfyaC+4F@%)Hsv6VGhYB#`T9xB&I3_Pxt?~@ z8{hPFEqd@)NVZcDdjFdUi&5aWNl0&l3o4k-k8S|+hl}10r{nD0luDtcq8G*K98xh` zDeqI^w&wQ>(#zulkgkEMM0)0RGM58XF42!|gY$C=OK+Fc$xTs&zt6e6NK#6Xj@F&) zDn`xR@eqW2aKpt8FF;Fo_5<8y2`@xE%dU?Vvv5DTJzaS7Jb28+$N$%@H{O~&cNF#*_vMvq>wUr?5x_K1d zqPpaj-dLsaRHEs5K~EyJsiJM?U>Nq)OYDFPQ(7VMG$2&3#&{Z%4!s)VNhXujt1+HN zfj8rM8tXUXbw?R^TB*B;>`(klo$b+Y#kU1dKcek(I=hZrOuTPed66c&tM?$CMofprv;<7HV0`D}a|1 zg;Ex|9+b$vl#oVgnAUiP%t7I+?ZEdt916xnD~Xm0JR>%s_$i>e0M2FNQHrca>u|Z? znc{&!-NnI!vedD#1}Yz`(I4pVJ=4Bk2u?BJZtz_0Go*<|PctYHmnu+agbpy(+w$d&lCK%$<<&u4Ip<4c4gwv(#Z7;Ndt(5xSD}N8h{5$ z+5uIn8Q}Ir*^GdZ$00He;15imJ|xOuz~dasd8X(F@DuXKTIK>?K@>_^kcJ`QIu_Qz+tZ~1_{M@$9C%C! zM>haAFdx-r_=|9>mWga5Kmxgt}z$z9wF;^2yDetR}k~n zyC_vs^gW^cRAFp?6i&?L=4C94{0|%;X5T0PSKo%M7e{tX|H;!K``9usRi2-hNZ`GYQ+Pd&A530}^4*v0cbS4+CmEq{!CswG{!m;cQ5pcyo` zq%tah!c`bERMnCmA}jy7D;IfczZC}LluNyas5jzYve8zQ%3~}(i}yc4^pO!qHX*F; z>$4E#sw?+M%bEa4UBclz;BY(0Buf8q9UH0#-2(_!7f$4CWIQ7pvF`XpezI4d&$) zl84j4FA<0G5Lurx;>$+-#$bBqk+}W=$wtxZ0%4*tnD|E|!f4=?h!ap|4CWVHl5v`! z0Ny%>9x<4&7K@$%z(?oMBLdEA=lT^I(WAxf4=nAoN30#z-UgG9&|G6^QE@ zC}beadkZ(DpiZ>~+>Iy)5HRvAL}nmt*HBqUi82N-z2jU{t};argcS!Wtz{|T^+chR zMQ#TrWFQ>>4b;2`{FuX`$eCyc!aYb41ytXHbDemUA~O)a7>knp7t(wvOC1Yq;C+iS z5Qbw%p(+bJF@&Q#f7*s+`KaX35wV(Dxx#K;D?hMX*UBw&n_5|j z*p^X@cOZ3YWg{dzj5P8-LsBb;AUiLwg9O%5d=Q*^C-`W4KYCQU_#za#qgX`f*2-4+4X%)erQ)Fu8)jL2EAgxCT$HE%;c8|1`H?Dy5 zG;sR*L4c!cg*T`8P9lQvW_Wf5lSbMSAd|*Q4dK+2#yaHGlg7u%sV9xC$*CueQEq|sjhH?WWd9gtu%X>79#w;kaxNht5e zkxAoQ-=Tv;G>AJXEY@N{A`HNvs*eA+=I9yrBl)tVATf>yUT^nV6ru_A>LE?n+-@-8Qrpy0# zQDtp*`HS7h!>=y?w?`7>&)|aHSKJIl| z{$+Ic#s3a&FS@KE%Yns(tG$4GdE)Rf5-4-^1&cm>>G9`6UTmvK6G-CO{^%D4*+zPRRO$(sYtKO-yXSi`)fe%@h?W`F#jmz!0X=tcewv6%C}XdIs(L1S3R`8nkoxX zo+5plfuHyImxFvL%-;ebzs-+q1CFb!wrctlY6(h%9(49s;Ud}#Soznc^N+NaGrPQN0SKPf~~h%>5R6UH+9Q9;7o9SllHQ3m64+MU8@ZBysmciSoNq zH7@^VO0!jD46wNGR9nscLA3+8oVW_buKb-)fiC~q4b1HTEbfL%1023;Csv;;_%Fh3 z)1LSWMdG2(>P>G{u27uZww*8sZ8wtKKFdu3DwNs?exIIwt+?Cj@1=MR#i(aTSQRQH zuEpAP-%(bD8l=xs{b)Z{g*sK?E~fg$wt=SsjRsMw6$faos^e<80sbXP3rAsJRZ`197Op!P2BLY7Pk54(S&pD3an9e3E(-*e(Zmy$Xo;-&L4C z4_V9$zd8ZFbubDxor0&*6|xltPq`Hrp{=SGbai;c;$A zxS(RPil#$_9bcjtmPY#jhAEpJUrD7+#&W~<=J3RIv#j_kyJ!+ng3$Qt>JoI_C4KKh z8hMZoN9n-Ds!27J2P^dX@zwj=s^3fP@Q=*)ufJuxd z?d+*^E_(p!YZU0(if?re=$BxtG$1b-G?HWH3XN~&F_cw+H#wAar_SSB&F>^y4g&tn zp)BKM(DNqotv>w=n}{i*9{~UAP_711{&`un39GNXtl*qs4$%Ig|%Ml)oOAwCo0a(4p}C3yG)%_TO=) zzXbe)LkWA0sz;a05tEh&fO8Esnf3)yt{F;Mz=;l}ND$=%+(6@qo&en1p+p8zE*VOH zz@r>W98>7M+VQQAR}d|;0WWqa+88wDASO~A(PqHA9f~#vO__K@YWj1)Upf?R44SgB zwrIHv_<=*w#-J$&(2O{uqQkI6hkvj!XiBDus2<=a9EvsuO_`65g0*x5+~1*SW6%`q zrclxW&vq!<7&N86iD(Vr%??EygQj#bl#c*^?ohNbXv!W#`4RA4hoX%^Q=&{-@?f%G z6n~v*Z48={Y$#O#*K;V^7&N8N?~S&S)6}INhOWW1vOY_%=PJNChkf zyvCtuW6+c*ajTX~cMsr?9EvsuO=22HtPC<6hHaVXjtG$r>C(J}|{Qir0AK~o+zTDAh- z<509QXi9fOIR*G@hoX%^Q~H^5`5myrJp!F+Z48=H(WIp~;24LZjX_gd7)lc0CJsd# zgQn~-lvKb29f~#vO?h*cWcmfba~z5`hBVxQk8fMyX`#?pR<=46Z48?7ZA+mX0es4# zXk*ZnardPfZvg(?p=e{!lzY`hOTJN9E5bk67&PTw40>#J)c_|s6m1NeGW@7S)E;oE zL(#^dDdqnZ$~eF;I23IRn(~C9ECamOp=e{!l-edodjTJDDB2h_CB;xK1HR!rk{YXv!p` z<#oW@9f~#vO*y?+v>XL|#-V6q(3HD|atrW1hoX%^Q@Wan=-zKh`tyWQ_Y9h{)=+8y ze$=68W6+dChSCvmPluw7K~vg(AjzEo_(g}JjX_gJ8cG)6*By#B2A;oki89lQ4*(x^ zDAfZqk1olEaux6`hf*gn^XS^cj7MQu>Z0W?ooTIwhpevYhEf4=4Tqw&a7Wf{jOpuI z0Pg5ev=&WSWGF)cPjDz&3%7voS4}&b2RO^2Xf2xJGL7VIz#ljit%Zv&wV)}wF92V4 zC|ZlAR5z4A0f&t@nPx2m`aL_^itl4jRaSSb0;y7f%NdHL(P!^q5Mi`F5PGYoO#DAg zL^JJs25m6155jf^lIoz18kYpxf7Y|OvK<9!nn8HGoRvg7r{V|9LvLPh0Rk@uoMk9h z(!o4H2OjN!>uy5d2J&tWbkK;x67fkOUl}yAH731QQrpilxfnbqpR&lWegpiMp;$>R z^8+2y;Tx>)6Iy5j1_AsfUnO1uI&|esJhe|~H6XPE=z#h_hvk|impiS1bO@k-8~{4J z2d<*&f=dknGAe*R*%8?q@%kYw!4f(f$h-hr`8$Li`NLxpb_0+t0kj*gkK#u)_*B9k z268-rcA~l%{q+P1`yG%Q0rbh%K*x+ZC}G{t;UysWOMY|X`JDK%t&v|&RWuNKr>>w+ zjsZHZL_t9t0(l~Uwh99}{w0jw9JU*f-T|~;37`|cLnp!LL?BZFXid7}d@ikugnbpr ziU6ALK1yR^!D52$1hO}PW=uxdNy*T_n$G~a7(lwuo4toSKUoRsU_1OPP+7)fSo4QOx0zpy)9>b?cQHilpgXllhz?PUwr z5Aq=n)~NVw#5sM*E!6rHNM{6)A+I2xGbiA7fXak)m4hTT!fILk%Ne_*^mYUJz(EI$ z95&91pW75qW^Ee;tzQ7SN+@^Z!;w}?Q!)}OD2tX1)SrOECP`-Xo%EzhRDbh_!m3zH zDZq(DakK>U7EHzf#;TqGr$dM;%^T2r*kCJu(Gu7y>l*^j_z-=TrYwH-3sIE;I5R|* zl~lMdQnh3wX6&rxEx-ptv`DI$w{&f)Wbh(5H$qei&r=L#ysY$e(dR~K}z?rEja#kX$m--~fBn z&k+CVKs+1j<|_u`Er9aH(4W^E_{|$OMij^kCKF zVX(OC&d0c^M&n?4gsEu430&G$1cMpFj{|B>aC3^SE)Rs|TpwRV{3u1$8_)m;uFoT3 zqN`qBRBal>FBwP=g>`u-tnF(2E3UL@v|9~)z2V@~H8d6`xf)y$g!{TUHgQ^m`B%tU3%;Vw& z*V$7Nx*nk90L%kpnrkvfPma4Ypws}&BjZ$8(uWdyJfO4y%tPZ$*YUFgF9DPtfO%}3 ziqe=wblo(Q%3E2s%bi+Fd|@24Ef@vt4yhi1I?1@D#^i zn?rpbAJ@2|Fl4F95I^ETb?G&(@n>AW-jng-DL|bF=ALRg8Xz{95$8)+-tVP@9|3%l zQ4tx$x$U}!$u{?;^vSC&A$ph?IEdOmU8lYjwMRg|8lpD9*0I#%Au_l7{8Q3n{{^~t zs!1)6k(!goeH@Du+*_9cogRPkWC@-IM~Sj4Pxb*sRB|xB61CLnbl=ZWA~i0lCpNdyN4*V>hd7i(%oW& z=otrmMu;AXkcm&Z_rRpM%vOT5HAI<|8BNYQxI4nSn$1Tqc?6tO4o{B@2XMg<-^s1M zh5Tp2DAD>RMm@~jy1S=0lTOMz4Fd!I+T`nD>ek!sJt7moasc8Tkl%e6Kg+$T23`=l z1~E4V^c2BdBs`=VPHHdV^aVb`;qYpM;j}t~dL%uwfG=`5yxd?obJ3wOXEX5K4u{tp z3}>W?>m=~691bry7|v3|`5m~LZqm#v4upJC?2g8|Z@?H=46Ap(ju?^>2lb-It2RIzQ#^z0^ z@r&IpPD}Z`0DO+a(e}fO4~yNcF-PDuuLHi#;b{92&No*?&r#rK9FDdh;cP{RzoW6Ia2Rcq|luop)_N!g!(ZoJ z+mCQ+WAT8~Qyq8%hokLBIL!^GBk-OMN868Z!eT|wbHJxL9Bn_si7|SX1K;3qwEggs z(rWiUT(EL__5(leaJ2mhr|4Yad=LB=hokLBIBz~HoLsnrT^N6zcWpny3BzS9$5k14 zU5BIXM>y|by33rlz`HpdZ9l?kVA3-d_!Nhu?MFCQjhzf5e#_x#`w>op;dp1`{kQn*yleXrPHV$S0AADKX!{XP6lNiu_osn(b~xI8 zgfsCg;fw@6+2LsW5zbl@*J9wS9FDdh;q*3~cYz;rINE-MGuCjv2L7YN(e}fOiJRTa z-j(#YUdGl5{B_>7{Rn4R2`T4T;ME+CwjbeqKUz4=fp>5?+J1!d85WJWe1-y_;Bd74 z2jF4oBOMaDF$OcYuHBaJ2mhCjtwN9M=Wl-#Hv@Kf-Bd^!y8)zKNytuI)!S zT@9x!@I;5B?MFDLu#1u7dJ=dWhokLBIFTkj1A&imINE-MQ^jyz0sgAP(e@*psfM#1 z_+E#j?MFC^4d*QID-K87k8qk8&Y!@;u-c^auI)!S&lpZ=T8(lz+J1N$d5`;WE6ICf z;7>UmZ9l?Mm&C^U0w3XUwEYO@qnpB+1$>di(e@*p*pG#?8Tf98qwPmHy?zqTN#I{O z9Bn_s8DluV16OlR-nIP*r?yFR3E<@&jM(%dK7pwhokLBI6oOqFW^HQjnz!}%2Wd55FzM>vZO=U3qWI2>(1!r5RrMKUn| z!C%{kwjbdPH=KIFpKv(ZeuOjCaJmB@;Bd74&}ORm!|snJ%G~<};4_J%S5F2F!KD3D z_wheu_Pq+w>jC&#+)Ru=?Vf`@F2iwosrCW-$bswg^68iEE4Y4B7a_jlKy@3@`ssJ> z1-MVZSHXV*vgVn12lJBbPwwi)5wd_IwtTcHtmvU~mKBxo2wiFLE~|uE1L)$m1j!TX zt0%y3L19L-^h2ytCnTvZkn}ZDec7P{G*M$Ao?;+{9m+)oDZFeC~#hCpR zemjLHDIXAi&JNUNrJ5eBqP6o>s&yA6|GurXt8y=rhdmv+H!G`B{ok>-a-17}Uj&$L zFKJBllarOlQu=){-{QK3mm_}#=bqsS8uL6jjQSQLNBEZIt68Ykd4Yf z9wC&IpTubFNnAxU+7d|HK-k_CHty%|Wm#z;kTC|;3$sZd;vzb+!Vgfub~p#{(i{{T zk`m(|Ie@JLNRiqKcn?u11)_y!&4~#;$D$gEatbg#!yinciBV$3{{M)U-vKMsQ80xb zJ58*VgnF7xT8aaXaVS)rRuWSZ*CQ=ciIN1k2~nu5^x7)7oy5vpQ1venB^B_qMvFCs z7M2sM^qZqBsv0%H1crgpV(w6SXOhpO3ej7VE-l6uTyj{-_Wy=skv>~t@xx9apQbHF80FkOP#E*qQob5=8L&BF*?LZh3N}}fVA7&Xf8LX^_FmupH6d8alN2_T_ zuG$9vdnSzTRYx|t1)%K6mbx7)m(Ru2b3}WAio^1eU{s5m*n#_<8zTVq>al;K;Z`n_ zjwAJ1rIz3U9V`oht$UHc9fr7`5LS*>yEbTQ3s57eljW{E$H5vs9QWd?ELHtP@j!=7 zx~Q;>Vz&D@hRo9BE^fI=UqYGUAbD*XCQ~_@RGTIjsrJ)2dij`YF9pX( z@uo7d$e5MT+fz{~y6?kw@(f($!s~NdEyKHKUsUu(=M(tr=|sxM`9S#5Mbhs{N(X4J zMIqwz1M|9n>W$MfVC2wN%&e4YD**h#VdDtDOSpzE5tNr-MAVp|zXH&DKcE(_;fSXj zK^!gltdv*Kfbz6uXo3S#(6Ls^4fNi5CNj1tCw7!Fah((LhQX|HC$b>D&C--V$HP5W zRYfdc5QDo8@9MJjFfJSnm z?;l2|7tIr;K8@qPH~zvWBYjrlV6MPs9M(M~D~d0tvOEJ3a+u z0V#;RG;=Ioc7-h z@ZPx@ln~2qiRM#%Cb>QK6=b^lOXRlgovCooB6l9UaY?vmliO!6o&@*H!PPbY|7(k~_+7gr24P{Bdwsuq)+-djVN$RV$_6BT!w2OW3zuQf);) zkC{iF|=2yhu2;SSw}rR7js->1&Qsj#-Dw^%C%AoaloO(^_>D@TVF7_F=f2EVV7; zo|Puk+%;+abE&iF%+0VQ;S@D`=$q6#yujk>0dee;jUm2FN8+_M2schEZc8hmUPUK@ zhdD6$tk}s&U!Lo9B>x--rPNq)ixYtsP;?@AlLK?$xK=RzJV}a9Bsk%~L3!ET6r4{~ z7VsMmuIu&zLEk8Po;mlbht%y01At#wuK=(35Iog>F`UNaw{i5!QA;k^m@nMQWm!FH z)Ec`Qjkg2Fof_0%!0oF7cYSi(b{tY(qY=4%_O8}&Hz9X1dmQ?J8coR^Ww)WQ&B$HB z&O>3Fle?;2j>5JecO9F|uSQF9C)*{u!~GPwo7$%_+pY2R8n|2A=g8fP+-+=s7Tj&f z-PZ0*@wOv(JA2@8xI2)$y?wVL+$rSlV9&$AQlmS$JKFRDq#CK@PO*KYrx&?9*&Rqv zA98oL`;wl%!^gf>m(4Y0==3D8vXsj|e(`R)&uB-6XI56sjRrjwDZId0r~9 zUlIB_P+o)BM*??TSFG(n!p=!6;e59c(&x2{hg1sIj7( zl?3t?wcoZ5V#8%cw;<#Kx%&~q*@}LT6um(~CpkhNYR+=m?)K2c_ve*yt!&e}gV&~o39tP=dNQv~cjr@Wn%R17J!PcZ=U$tRse;l%NUB|i zkMsn8s{JQvM*YD_Z>dYQbH4^bV;0aG>{4xdMO>;~mc-Ov@InD{QqxGaDF>-`9C%)i zIn}0h4^$V@m6zCbjh=5Iw7DUr3tX=~n1a)4ftSgtEKapalFFc$-Q8;C{T{8*Yg3V@ z^3iM4OUF`edI_9Yj=m_89OWaqz4k?Rr$v)oyQjhp(_pkzIg(c_OA>kmQ>uM~k40k0 z?Ma{`$-V3@8upH|GHMlQ_&VBbk<*q{%YXk33mf%D4jW+ADojM%F0@%$wTe(OqwGUt z;4Vt@{21GX%amHhNM6DI78gXdN>JrgwKw3}sa8pH*Ri|fVx(3ixs&buxQeS)ie6pW z)Q%*1X)3VRHmxGnDnst!)tz{ORq@)^i7Wj+Z& z;{Zt4t+irbkgK=O00tN^kV2~j6>6<`H38U54o>CDB&)yQ@a2iFt85UD2_B&dLGG8UjVuq3MUPs#3w#4m(}V|z+tG_KoMGv9^kUNR^@BZ zqlyEH355qfM|D~y#b~HwV9T25+k@|>sM-Z6Bld59VAEmY0d-M;_DYwsY8R!K)mOEL zw1k@%L7Uo>3&I^q#n{^Jk8QiPOHrHeZ(lD2cWH7DwwL1`Z|yQv55w&0oX+?VYWUEyv>aa|kMhw|Qt+}KawvI;zp`OYKJ>+y0A{7Z5x zD?vqCyNOy2$xb8H*LM_B9$_wmUA(oMs>2|hG$d^;Nyml(YB6rKvQDF;SJwgGHWVvq z{s&0&)34q`*-|p>4d|-y*KsF(L@96Ghl6da{`8R-$ibL3E);5y-7TJgb#$QS!>TiVY zGR|zie*{Rq0QyB!gzb7^j%aQRq*DO>r3cXNC(r0t-l^e0#s<)I+{dZiW0u*O_zIAP z0kqw}h_~kt6GihTAln0I+=oDWUA>P7MX45!0yz;tmr#y+caD}?xCZ2>06HZCXrF&z zdK}h^R+|TZ$?sL%`l$VEd$*u5KoSDz%??2OFGCG-Ei?wwG=Pps06Mri>Vn#g>H(y0 z08ORZANC9edX6^@$cq7Vb}OKx7o^}t73eQi7Le5ew9_*{$NhzMeAfIfkbMDkI@#oe z>yc7}=YV|epaZ|dw4wIIaoFEPZAbm;AQR!+C$^PX= zA7*Vxqt}iD>a{QM@e+=y_A+Sly?}$)rq}Ix?N&IZvOAUCUYlOPmuk}s5xsJ3&zzIY zUtWpiYxuYxN4z47kL32+^qRO-`*;s>>*E(3_Dx1VU?yq6%rudXAMkMmj$WHS+Um7C zV2n?->C5KOQ;m-FvF%imYYxo=QtgKI=ty6EO|?nl6*qkmGu5W=Kcw39waiqTK85ME z7i~e->0M!|{Lb-I7I^KGNNlRzyBAUPkv@=?YSX6*F^R{~Ytt9?z)7Z~cK3(dYt#4K zytWHnORDW_L~iP4Qf>NlTB=RoN5hpuQ#z6y*A#Gj`5Mz})4R!1?S!pJ6upwtYfnY} zrHYtdw&}I$&1JaaA_}!8uRW6~T1+o+&AY}z=MOwx(M7=nx++Mt!v6(Tu#RyJ8jT(baa%spF-3K42jV_BZ#hJAO;z8t!DV=zY%pI`qv0A3*HqPY ziIG}9dJDVPrkiW2HhrvQnree%-6VJZZJ6`ouj3_GWDE|L?^kH{-NRv;dIw2Xh1~TZ zZ|+bjv61Apd~^eDids+}sp}5G0Ea^^%a;!w?G*Jp!IL4F846EP^x{_c5=gf=2)U-K z)YJi1`LnLK;jw(BDLpY9)4do3I0ES@CjiGZMZHVNRY-5;MCcvU?!O@|w%ufwTrVP$ z;g)Ae;HA>O)u_rTYHeBYD}m9<;gd`A-EWM-#GKqi@nW=z9!lTW9Bd;@!rdFhiB2$b zIeAHk2VY*Kyfopw(EGRD3nAU$1kfpTDu0T~hyrI9@Z%0gyBv=1ZNxrJbw{e)t=!*$ zcF&<|SAhBvs54Yd7^snNq4JA867V5&yb~0RWG93&~E6O zP2?AY$ERIM1?6OCikce_ z&RO6;IUI7$REMD4{bX39aum~Tj_Ium5V_t)%fw&DL|nvFI|fK3q}4)@pqOT;^yc6+ z13p!4E{x0H)6_>G|Bq2w_J^FylA3?e2YF^F`mT?AQ7~-ElBlLE$qilfT_5*}VDf*; zGAPtSj*RHKEN7@2l*U^Sm^AV@KSh1l5%Rww58q*OPIiWzr$zxO0%^2^kaYnmK=o1; z()tcU#suVVLYhO`!9k?P=soT3K9CM`5OP^QdMEo7MQ?+5PlaHG15+||Q}Xlu}CzsB*-3@*Ui@{a-#`G?T4c zzPU4#&D-%z7=Y_${WYGK)GU?I4&HP{%STjU^kF1-f2hxyfGCpy`uvf5=l@#*^cRsN z0mj1#&>locpG$K84RwwG^ARS=h5pQrC@~&ZqCHSDh)nj;ok;b?n!5Qr{eU)3f0sa$ zHEvSj?<&Pg3;OOC{x=Q$y(Mkl`a3>T6>Atw8fGh`fa;Ve}G}ZkKNiE+orqTQKpL`Kq9|pP@Ro06ZH4X`Nqk4>Cp3 zi`CuBAYbbQBbVi)m#xoGA5yUWLBXW6pifh|zlGfSzLaD9!k~{&xxKrEL9sau>AW(D z@hliQng>mKoUcqd&4Z*)^UxkPtpBlj(D$p{GaizFC?yG?uT;6u{x<;xJKv&`1gz&k zPV>B<2J30zM18|{l94#6r@4itRc|a=rdaG$M!rd75{B*q|Iq< z+QaIkwUHXr+P2UD+yjEuq?@J_#1D+FH2Fb~JR8+dU(i2 z8$BNb?>1L1QC&>btgNK{V6t$mP zd;*lz#9v2DF3a~VjAw@Wz7ycK5a=!-<}$fWZ_%8_t-cVvguf0OG;U3&aZ7rR>BO*n z*P(NY+Ks|-XG5^w3C2^Cm(|S@n0_CFbgKGc1n!BP9*$5`)#+izZOu`%LCpG1;eb5x z5n-}!BG7&OU*U@ia;XluyhNWeSIxw6^xN2dC!q>Cp~_+%BpLqpQTuORy+MLm!0R<7ns!4GTCv!@OMw7yi*}LKq8Glb|?Uqo8b&YAvG3 zf3Q&ML_JN>I=U;`ItC3_@YkiRUCzwVM|TS5DoV%uSO~Yi)}>QhpHMovu#mjqL&_)V z*~h88gW2FjVMf)(&e_;*U}Y$pGj`t{W-V4U6E%$1V7U8wmMEHjW~j?J{tOcKbSj!) zW{RSGQZTOQ$Pb7|)67EehFPyFn(*dixmT(TMRQ)FEK{X0(yS0gxkQnBDktT`vjRxg!V+pQuT#U!GJ7nD$+-dG>w$C3sRP9 zkV#q@2wAF&5XKmgrTs-ZJ4l+XMg=L`WRS5z$|ee7zX4g}Qb(ypO_7=kvQ{X%|K*BL7GQ#lb)l*5K)~~d@QgTjWYo}aqvltsnN5gKt9AYNhFPms zIvV7D@YblZJJERgUBB*mThrF4w{Z{6RfpCG-SbvHzgq1BbIE=*6xG{u)uiRP9ng@i zN?*|#xPuP$Dd196IQ7hZHy&5O^t;>;{`T&1mKWzX*s7DQ;w2o})=(2}l&(RPS(d6M zgcl76=|VMHq!JAk?jXrMy#iyGA&V_Ql&v-kf%bEsGX!mUss`}Sg7AAe@an*S48n^Y zkSt30YQXKwx(G;rUBTU>ZgXBZuT_OW8;D1QDsVkdw6-p8Rh?XEDiXD#%g2p*Gg zb4?hXD=J5z?F8LqP-&U4!)(=8Kw4lwZ3wKry^gDm3-*_-#tN@#I)+2T<21ELVnCQB z1gfWE2X*E>^VX+PO}0nsk&yX9sVuOTE)(hFM#`4GTBOeyDQY!a?H4I+o1POuC<+r- zkTqG!2y#?{(BA3S13{3SF9g{eBE2Ef3jrzTU=+oFM?hN8z8fGw*}sD1LL&jc0}2oP zB(Xv=xrzo6lY_!6^|%lk8IU`No+3>Nkxmim5F=&te?_EIL!{Xvebq?00@jLji;<$J z7pgZ!YLacORRcss{Sb?hSo9)vo7`1@pMbrzHKP~#3;I%y1otBUpv|vRzhQdds!zSh z=J%-=xsARd8N4;B$qpb52yxH5oR+P=6P?sF+Ts4RM2b^;Zh8-b@KHH%YI>1Z15Il| z4xE}^-5~sJ!QE*=O|Op-sOjAZRe)((dnBYS8Ujw8T->5NYvUa*!6FVj)lO-4r=6hM zO&2uQpn=LI^O;Dm87Uj@k0SjyMEXFag;CK+LkIV~jOUSvT;J##s^o~% zpNH`k7O`gDhC!}Xzla9M`j7@#AMG!3HL5BBJdn{(Wley_>GCV?bX7 z`J4C$u5sw1X}smGrATb~Tx;nX;Ye8+;)f8NbGSj57H`RtSlO0f#e7UxK<$U~&3?J? z8LomZ-;IYZx#T0~bOqKD<6hWE^;m04^a@2=VO&opOJ*=LAEoK(Bmf&g$xy@LYV{$x z=wfOqTnp6pAoWe@87Lwy3d=2Gbpcb%dYMkgu6-LXW`a$<(sg(I<-snKv9k>tip z=G^O-C|aRhuU^Fw^f@@)1wC8+Ak-(&-?T);WDRI%n1cQy$WvTy&>W9dnNA`sYBbNl zgdK97KUz?tl%jA{E0pY0!cM2O)=}G_e~F^|Df);@54!%JC9HkKO2U;w16%+n?5AR? z3Re%fmZ)-YEm1{qT&!r>AvloVg+Nyz)YLO@Em0rixIvN5b&3`{LIR9I6*~L{%%6ed zIz_82A^U>6U+=dhC~!~sJWQ>4@ip@Emnn4H-Xv&LP~Fjst4Cp zb|u2~Ib1s38&ya6@4~-WQR@g%F&!$ruvo3)K47ilCS1WP3WHPZKp5Kg7AfZLsA<$P z&n~1E`SgaO%~q}!*0;L5z&&pMsjMDo6@xwvZW;BVQ3jb7G?dJMAA<}E`-|f=$b5}$ zYpzy$kXiZs8Z{cb&0MXue=GboH^JYA{H}S)*{Xs>Nt25o5g8kyo@rtTXajG~xkW<> zK~G*4MU))E>Ek(jld9s>mS=aZg#9kqbqw3-@XpAfc!&`=XPM7Y}0rD02Fc!}=*cVB z5~}^kgJegsyI~FN-vj?@)dSi6`xM#HR_r5mEz_4cmvPAxP0UQ~Pk;VRb!ZFx*%ZfX zYIx5+mTN6t_B?Ya3}IVf520(Fwz=Dr*Qh ztcH#)4yP&S2wUtF;#fr+U9;6t2~QKJIiHCMicz83vem>O!e&EoY!oFrQwRk%5q*9T z{VPKc*0&;v@UI~R>)RBhk2JOtKh1%wAa`t0q7kBO)hme5+7LwJWHR!@LKu<*iUG^J-lN+Rj`X8Kv8#cxGyM#Mu!k{R#RKD-E?fqt?a-D>9p!X1v zwiOloTxZiW@7!d4{lnKZb%at=V10qb7f0EuX;Ao%hTvR?A%Y%4pr+Grlj+iRr^p95^2<`7Tp=F_{Je>TrH4hj$Vk~vYW<)q zZ<9#f^U~80!=obJA3{zM>G@D{KN0_I$Xo!!L>hJ~xB$k9w4{-80Zb8T4Uw7xm@V=a zj$9YO0g?AKS~xFXigcWjjw18CC(>6$Dmlz|O=o;XlKQnzi-yqVm3&{3>phn|;QmJsyR_IVRRrXCy+{H@#^ zZwT{u!wT-7?h8n7^(=i>B9{J1tI-QZcpeH_!d9%o82@wd*xLL;=nw#5-H{?4WTf29 z#E5i?k)oAlt4BmiPn*AC5ZwWK<}KA_KsQ3N)ziYH(z2Jg9 zMM*+ynvUx!p_!VLRguSq@?Jm-a@|s-CykVAuf0gG87bFZSCRf}q-;`|Ql~VyMxPHU z7A`_$;tiqDicMofaheKJ@sC5_A@QV87*$kG^*jyBTC#H}RKSw=dEq@8}&X;>vv z%u;D=>@DJ5jui6yg;VB6yt48DO0RSc{46UK2o12=%RuHkbn- zqPF^u#%7_PGE^?ecSQQ5k)~1Md?eBbM#}mBRHTJr)SMsg>dQ*uRy0y*Sg4-(Pm!-y zD`Dmb!QyqM3~EBlVAPrFlIYc!5N-)cy~K2_Gqjh;F9hl(Ue^R%LQFBeM5gi!L0>{t z5}&m6N5mW4(!*XyOYgB#kaVY|{|W6e-vzhyy-2XEO!lBw>id*h`Uzw#<6COKeEX}n zZom7`(tmja?X{2gpMd}9Ciweme>&Rl5s8ylc}89dF%zEdd>4ez&wYzQ4BRICZ1tnB<2SwSB& zsB|K*i)=MsK)N|L$Pi?P#Jo0ote7c0n&-W2c+wi4r&uzCu-bquT`JODMvC-itM^1o z?}NH*5NBG3?6sj8ezy8tc=TeZT;E7(Na~r6i-uikG&MLc%qYX+*uNEN10$8z$cgw_ zz@IQUbvFcO$_1T&2w}7V`I_N@NM{)-*Fg9$y53hBDL3Z)B7Mh5xiOCs>2Z;A4~VM{ z5r1RItazG8?;9yAo+HxyFmi7Btay(|%Nr?c_(Y`jjg*V#8sgZi$kxMNrE1kLT}_L;krR<;ie@2)?fFN5!%WrGoLfjkuCyh65;LEatnJ(20z zq!FJJ*|@L|jx<*kaxP9YVm{P?1JJ#>*ExW3K|Ae7ttSDJN&Au1A4q%N_mFKSTW}?u zq@>UR{#dS4RA`hA zeSa(&etmx|M1{FOrd81WF|C5`j|Hos`(xvwVyz1AtV>(&j|FeS(WSIN(Gw4yq$Gw@ zNgNw^jY{Gt$d5n??n1&<@HDwj!!-%6#fqM!2oA+1vB3$FEAz6QG5n@)EO#({cv@JYl+$cSB6@TLIU9)ZZ#)Nc@9%t!mQ((3Sr|uF4dAw5Y>{dA)O$qp?bx_!}1>rO3HRD&NS}O*qw;<@<0*1YhbdT}q-2w+#CG8fV6zkmr8N6HI zJ`lZQAUL42V?fhGb__tT-Z2moKz0mhe$E{OAxzmZpqV*$3I$wm9QJHWL}(T3=A5+Y2Lxi@F2jI_CUkTgn=hpj&rYU+ojVnK%55)V(@DFU8pQ^@f#Z*2&y@zC~`ehrrXFH$b)8N-|`_x%h-PZ??kJ)ig=#$@b!5e8K2jqArGviv5pf(w75$Y|gF zq%Y0J^_(ncY}hs zJuTq8tv9&6!!&Q9zFO+oJL-iborae?2!=*P38SZd!v1#agvj zth+yxO4@1l_$5jZ?X+6JF4}4J2V6^e|B?w-Qp(Xi<7o~_dzf@c+QUSAbON+BtDD5L zkK&n`p=eu{R!rNnh^V(^8J_Pk@Itm_5nFeQ$#-=rv?h*h$;#j@StBn~qNz(<3|F>F z6()6wSCK&O5+~6z-c&(kR~8yOZJ`=1sZ1x$W((C1tdu&%mRC%t7`%llIFQpJYHDzY zNIG?g7!p7_M9t6HA%-xeL)6Ti9bz!k=@2zFXNMRon-GoIQ=+GPL`8&qUc`bbx~B%Bqk*J7dSE0`+L7J$=@U)9-jPo@N}=z z0j^B7P1vEy-9<~7)t(OxbV~U{gDK! zit2I|kGhNc;wzD+AO`$SCdsd~%k30`k9W7gR3aEWFJqimUQAQ#_=26_)x zrus>I^k%C}bzgk+CaY`}E=Eqv+GT!oa>%OCd1k4iLP#>8Bm`i#DkC60VbC!^K(GWs z1_w#A)te%vS0~LCgjTsJI=MG@PbjnjYnww^$rO6HBTKy^Rdm>><|1Ay(n}&W6=GWA zZ-zaJmI#f3)A~k!OkPaIE>!144@;=edP_~gdgs2A+H~qW^Pc3tu+*#QG0mKq>-2i{ z7Ub$}^#M)~9xPDXwgzY!u-x!xb|Kd7>N4cH+y!TAtt-~6vk*Xjl;wGie7mCez2tK5 zE9K^7tU!Arm7hzhPO!?{e*{!kHbJ#Yv?Hyuq>&qy=W?jLC@Q0#pj37bQrX@F)hgXa zWwMbQmA7-K{7zK1W|iB5R8BBKbELAjksFnE>ClY-BP!EbrRQECQ3fo@=bs>zdrZ(AD&I14qq2Vvm9)Eye#xw|_5DCuo-{$VN|#CHej_(3({re7AS#Em z$~8eMZT@>XhxhyVYUJ%0IchizaAz~-YNig5b)oodSp7*SUW zl7E+KS`*)JDMO#?D5fp!cEiv!z7VG#?SQA!-y&BtxE`%bt|f4-eS%!8;i|_jPe(k( z)sxWo9FQ-Io-KnC6Rl3!&RTs|DLj84}{X43>`(vjx8{q zKKwp-x_uEjs5K7sV!g4}9yJVCl@stsqAj|2pe>^W#sXAm*N^@C)Mfc z`jEQp@Q-KWr0fq+KrUB!!=^+F|CEK^4_O#iY%nY)b`41%BjJ-XqWzJ}L|AKM}uIL}A)dsJnpU1cT~iaNpM?=JQX7PRe?vbr)or0b$DFtsS}YG zxruPICplsp=?!B~(};w4c)aXs9nrZLJmKu=6!9pUe?)}Jg_`OSQ5iK6kz4uT=^rtj zki1-@!y{Uu_#z6hXLLk5+FwK=h1^@?BL<>jMHE%d;7N~IRR*47Dg~YwA{IUcPjOWQ z+NMV2N`|MDiiKxp#EYaLR=osTM#MtYT0|8^HM}$;lRQ<~voc~ed8)BzeFWBPt%&OE z*&2a<%8IDLUs~7|5ltzm$!Xgc(YP=?wN)j=bI@|LRx% zcgLPM=jq)No=&h-E6>^zaCRlsvUj5Ha^nF!a(9D<+}#>O?$Iv=oCT-6DBS%A6z1+u z->C_&iJ~i($2tkOeIC`G$0D_seYCT2d+doz$xRux?KzIyXXRf*_K+EVzBY73tfIQG zmqkFdnw*xsoC&oc2JZPe}x4^3q*$*(ldJE|?pqTjv64q%eg@s?~Bh zs9gcEf7IwcD7;xPt-|Z_W8-7hBGj()HVUVPU1R}@Ja6Ohac~#yI0s`vzOE}hNXHuR z@q+A`ub^P?)^u`TM(BLK#|$L*1#Ic#g{0lCC)Y8&XYBD4*QS{OOnwKgE2##R@ntj21Y7@F` zg6RDo|KV^66jak@Y0gs)hvTABuwq+K*%eXA3osjnpdWF@Lm|HW0B>v)D$hujwj9kE z{^M;lYaqiK$$vUDs!tdBQ0k6w~jwOQBz)&M#>VATca75s-!ynwghLO6_oJK$SYkE1sHpX6zWDGh`(1HiYn0erTQ=E4xJ zGe9BEWR+jhzxuyEhwg}mvAsYK7=~5l7}DUsx)J##@B)DA2IRp-k1(+#8X%w1t`l>y zIUZ@r2R>`p2d?C*k6;+^->N$i<^#AA{+w>Dq1xRp(D0rrgB~myP>WEw`j>4H*ro11 zuM^T6@Bl-xYMdW{z{6ZL9#AqT8$>6OvuRbI)&weIRE0E6S_jf5BK|;yr_l=P|D)_Z zz^kab@8LN!DHjpEpzeahql{{GLG=b6d5d#$}s+o#N#Gcy%#)aXk<-XwYksJN5>gmGeq{*u{0V8N?2lXJ5I2ZV>@f@nggjl~S z#^%&+Ds!1O_yCAcpHKGc@9hCzAGHmQo(_5hoKGB2Of?vh1IpE^#bPW&0@4kdkanyF ze+~jZTJ1wr8E8o7;r#~#pQ0Xx|Fv+qBy}sY+%1&LP8ZN<;%?@Yj#dtFKay1k~ z!(4|iBF>Y+Z&A}xN1Gi^|IqcR?XOl}LGql#CH<1Wsz1aK|2kD;vmQS_CP$LTlUMIK z^q9qur~v--1E6I5)ZXGax*Y0_T@K>QYEu%XVjxwpM6aRr3HPbHTIo)q(G%$5QXf;Q zH7M;Jtue*LA5wXc47F0-Y|;hVt|mh~$3g$nbu{#Zx*1}2?mBIR3S>f)UQmyK@cMs{ z3dZ!h`UtEa9MjcyLDCV04FFyW4{1F@l0HC3_kpSitg*vgm1`r79%m_}`>H({xt68p ztXcd}c4|d`Hzuu#=qlA1;L|K8CK=b98h)8xhO+|r9gZV)t2qt*pHR1A=TYF#Iga>W z*5+ps*8o2g{z->Z?*aeVay$)>@<;c@Yq1Ic3g~ab(xEgNK5m$oI>8@?UQe`3L@}V^ z&<$I|GyTzUPSI`%D2K3UXFanNaWC}mEQ#)j#(Mzj>$Ej|lb;WGCE>|{W`x=|7lZa% zzk$_W1!#S!E%0XlFuYc@9|H75sC^u35vi~Fh0EwJLLCD1P6%_#lzQ0zWW0gD1N3tU zPp<>`9e)BGjTNhkGA%fC#gym8{P`2I>b!~iJLe#@Pw3l*6(#QNLPW-CywN0 z{ehIHMuM~ROdOMdPbWtTFMBF_`r<#UM=;}1H$l8UUOoG!nozG4ynv2N?Evrt>`r6=IQ@m8|H=GxMA9Nhu7y`7W;#a7v;S|zfP6Geladce5>8b8U z&V^GbhUZ^#=$xO^^<)XVx*BquVK)Y|onyP6#S>!cx4|xymY5w3(&#v%<`gff{)d_u z&O+d~I!*!C8dV!*Rwkj&bkxjt5FT|T$!E@>!N}(in=tJWI|l*3>nJ*#q@;FAn2K>p zINt+LO#QEHia}qEC5b&&IWRAE>;l;ov!fEWqj?Fj9Z22dh+dX(rYG#j$Sa)Dz-Ky6 zfowjMg*4uo@I)8HxB`T2jwAzU$jlPv;e_2b$IpWKhGPp+XIqG;5;|ilB5|JrNuh~_ zel7iPfzd^57ays*+AO7mUMF6qKmkYu(L_9Bt|MpDA0vV?eb;urWK7SDq8mm^Z7 zImH*Nk0%&T@e=sx8xCDs600V@#O`!W;u$+yH3uoz5nZfiY!mkViTp;YRKgfAm;VR5 zU`(3p&qUK(9b`NL2477MW*M-Ua=e|4{L=g#CSD$r}tiF%7dm90j~1 z%!@8>QSp=3%r`1opm%mEu80ceym-<#@My`w2r%befPHQbY9zJ8NF^$_f&SossF)nI zNGh?wu=j)c=>^!5jRH9smc*~?NCba?o{B;DoJ!U+U(P&DEaQ^CtzcAYgWm1}Dv}MJ zjLM9pc2^jc!JuDv0TowbMrA=#)$5JQYS4FFK!sBeJzK6H?F|pP!+#)ItLy{&6Q>bY zU6}j&0ebG@_xh#kX^mgOE>_BBKGX;+q-vxo%IDRjT=X0)jfP-rCuMQ!*pMUQt>Oa?p2Z+sKFt2@BDn@pK;u+F@! ze>kQ`l9wP+OsaYg_&#gR%i`NDQd5$DUT@%!0i6ipQL6!$N^a2*TWL|4>Tf_nx=D+d z#Z{!@$NfssW|CAHK=mvvmt+N7DcPxwk}F`a%JmBOfpCMPyF#C;$gb;JTulUTe^@W^yS{1&93w6*A> zmTVcb*C($<;p+T@S?heZCKfLjbXjAFZ9wYjhy@aQIosHlDGWhPV!-2ORO-go@c`lfUd{*!#dddOq9B65`?Hi`yFFw;=uFhy@b*%p@fAc=Flq zhM0!Rs)j=seSw6MSiE^~hxL(`AoX;_a}z3N|4A-^D0Tk9oO3?g%MxO-$Ua;2>p;54 z5ep05lOWPeIBGkj#wa}Bo@yNK3Hd>{tBdj9P!+QirMCo)tGEcLet73|2TC1 z9ox$ivx9=79SpH0NL?MVKtlJUZ%Q2)S$3l#UIWq$M=X#~5{q9Obic$9SAleoBf6-K zkBZsZk=bx;N$B%n9y*`xWr^9jLHcMz{0gMs9kD<{HxEEUH$~p;fe{23vnr(=7RGVt ztTPf5HCL!pABr?a7mA63r*c4Q>xj&emqkwT)xj6YwQvRjpW-;qm>DL8{lB2vM8m!b z%m@C1U9jsBy+?yQ;(PfHvp>C2@EU#@rkgcmyP{TXGxgL#{OqZB+O-F|MSt; zki%tT|KtP-bJ^Jc;vRGjdfC`N^?-zVv(EpLYxGK%rTwpWT!nD@_G_T~n~IdjN+^z$ zt@k52%|z-cl>t!=D~@d^7X1e0q6yWMY6-BXBOC`5+XM6 z5l0|@lTu3{Uu7}9e3HZElY}j&;Fo*ARrdjY%u-^ao;_$V)IU*e`v89x*!vE5DbZ^m ze!8D`D_+5e^r#;}`rQ%@T*<%wQY4^U&mQcxOh z=s#H3XmR+_TXzu{@ zNT@AvAOG}aMw{D)-U_w3G~zGvJHwe+8tOElvmwm24}Y0Isi}c4f-^>O=zPnvhX1_3 zXA?B5K-`cJ^Bj|+WzFif4gaYB_-te2Dv)|O8?r#*f9&78+$>Ox1vJ^g&AIfE(CRK! zuv!A?Dk3fhPu3=UKS=9~MG>a|e&CN^h*K=MPT?_Oa^3{~J~^yBNvW58VgWLm7EGOj zf8PQ7BOd4CgvR_ zHREZxOVAemqnMZuXpS}EW$j9ZcJH7gF3cpa>i}&GwFMp&v_#7n?Z*K<9cs%<&Bg_* zyWlE=rEnC`2cfpW`N8LR;;BHwKLPr~X=ihl!Cw^I2PagQ;F>EPht51(vX}i;8u0Bw zzxBZD0BdM*FNasb38U9#nzqpy$N-DR*w~~q@UqGC{|!bWdukF0OX5jkW6j~^YQo~Q ztBu9YAl?^8_B3Tx38Y$@^NWDrila!(dM@qvNSK8#Mx6rT2S;Lm;>pUIKRlr~E)!KU z`syM$B;Q{4kabA!(+NwO;a^3F>sv@Wzm!Y!{&1*-_usn#oVLJwIgZ>2)n&Jx1+-he z8UblE2=g3CN+-;Cc2A5X3C-0#^}t*M*0y+N7bZDtQYWBUiNE6VfU5qpAiY7Nb3}dT zB>M*pM}FJHKiGkM4#Kz28Xd%IVc&!;!xaYtFWA0Kc_o_5P&I763{@v;;onx2vm2_a zBW#DNcIYteP_?`t!`uVnf4Ww}dZ@Zn!g{FU1`In?afgH|rH86t&=1+6>Q4!uKU6U# zZm4<$Bj|1%Db?;ma@zXy*YM7;2lL>c*(io(5=ksBMO-=i!?y4Yd}~ zh7dMGRWc?r0zU?5kAv+{l{W~Qhaf&qh^f|<%$jvWRe5yNV&iv^{&hC&P*nP`N4OQhf0_WznCoS%Vs=sf6%e)TpM-~cuIL{1KPxc1qEO3SHRQrq!RqO@5Y%^3X zZvj#X5NbM-lunp&J5*iAC|iQnHJ?{<#bhEc{3dD0Qq(_ie&C4-qqg2p;F(SBz=`FjVBpM#{kR$$19@CP;a{IFw zB$NBzz;G81!Zjpwkt}4+?@oaixn~2yxeP}l?_N~U$(aZb5SdNwHY9SjOn9APjAY__ov>XKW>-LIEsYju92%VZbwjA&_YMG$5G*Yq zmoxnt69A5b@Kqd#9N79A6rMlp69`UHDCV?q?oSZ>YlX22v=yZV4bP9Ee9Pew9oa!= zkj1qjZ5D@U?bf3h+2&4wdRtf*NS%i{1G}ecPb{1xhH*e=ScW!Tcjibi?tchl+l@dr zIFx)%Xv~(Llgg4jQGa_yFg=za$?uCJi5WA zL30$q#b`5EjCl%^(6m0~a5dXz+fT6FX5R_;rI-BTLgkfD>vtGH_&ng@UG==v5U?jGySP022RvPo}BV@XY%@E&b zA=6b{pGfnrt9S#jbQQOwt3__P_cHD8580jcuK`iX*_e}sNjMAmS6XZ&@yPz{$toGd z6dshuni8@*vCCPpY2wKp2P6Jcle$A*cFA$QYFPFr8_2`k@;HO?lAEAzRjE^Jz^lQ8 zcy;c%QhBAmPI^_(v1UTH97jqLqSLoyWf4)FmDeHo+%MpE_k4yBGZ$r6+aJRhE9<6p zR#_ORI@Cfv)=hgt`Mt0RQiHfx=*kLkvfYZhUZKnd`0W?6nC!$cDXqWifdr~fd-3(4v;pd3`SA>Y3{)xdgMDt= z5Jmq`op?=_mgTb$RVS_=rZw@K$q()|P0R6H%MV_nr8V{2@kiDtO!_c24Mp0Q7MsFg zYaA(q@ypZjDD~zqc%+JOKR`nWj}Vx>b=nw}{4p*{kZN@upm`y@eKgWAQO)YEyaRy! z+W>7QEXK1>vL2_Z-UG0v^(e&8Stv%fmsJ-}g{57mqQ#B+d%!<;92Sk2ofZS<2DRmV znEwq}fRRJY8yjDB1b)9Ng^o;;PzHE4$2ltTlzJPv_()x!ue>oZ>bC^m)^fZofj?C* ze1aCuTnqvSI0c{PntCWKF8MPCgw8Z^1 zpcg}JfzPT>#~W=v%J6BZz2RA;{AX4ERa`SLX@3Cn8rcHQ68LwOK0luZ_(=ApL03I6S8aScxG-hc);?W|$zTbf_icRb9V7hE~y99BK*Fz~8^rXx-_w>M#8l`Kp*WPvHXv=*@Nmc?pMh;7N4w z=mw;r{(zz=(AJ4F3Txh{;CvI$t6v1(o3P!n!-)JX*mgJpVTgW5b%eNLif@QyWYphK-!>$DX(K281O$G zNBWNXFZTjGAt4{D$V^cTSLm5I!mdHg=zCV0JTGBWIecaa@bTw0%GB&%O} z5iGArxEB6F%VR;D|DTqHyd~i~R1PiQ4&u)LvfQZcQDl9okMFj6-pkgcr^U;B^)5uG ztXPj<)5S$TgJsRS*;jvq5y`eWokK#SHZ;7+SEV4YY%x9b%SP0+4}z}nn}r~&X29E9 zPE7Q(mSEIRyW8)C>g8alh5#Q)j_yaePc`j6zvp|pRu%WDFSaK13Rl`g{(~iS8K}*G zwmEHC!b*G6U-*mBeiqP6PFurI`)e>MU7um2%hMj>?n>MuY(Tu3S! z_n?;|Y5V=V@dC3Fgi8aeKv<`oOIT^I`QxHSI~!2TP+Q^RbKXk*|0hzJWO@eSZY905}P1&H;^)`!K{lD@|^!ZP4%;y9j$ zk0l+zsJ|W1?l?Hc2)%6HF-U6?^qq>#zX8HAM`F|lZx&qpHWK_Tu-_dn`m#YT?Te(Y zzS2dXf-BatICKF@JJxY@3H+9bqdu_K4rd&(0uki~x1;}6y+Ii1NK!HdQu{+vA@u!f z76>;wl5D5tNiX-L^$p%F0!w#-aE~SF%`|C$CpGA7s^ED*uUXjKR_D%~w2P9DVm``9 z)d}F=kt2PSWbT(y8VCP!RLhKMZTObXsY zFD-F(1>Vou(VS}R1@nXGSH>Hr0H1q~9pPLT9Ia;3ydL=0bL`aq8EJkvp$S_7-S}zX z`<)$~FX0?c*n!&YN6vBJr=1K2&D;r4n(`lg`H=aS6p4fBJBy zM3w4{i<|Tj(zD8K{PdABpKm(&4H)30K7F;cIN1}Beyh}pEOMo2_5Wl15glhm#e=qmLlrTJ=%Y5rkfjv{rf^ z-osCisM5ofw*dk*9{6?VaCl*m-bfup&S*}p27Vhk{}U4&G16PAl(*2;6Mh)blh%YD zG15Dz={G9x5aGjs-gVkCB&2s&BhDD@?*aYdv^CsMoyD`*qJ2p#>|eoQ;^vT$K1{X# z6K_zU@k;?UAS|ULBS!jIbx{lD{Y1DkpxjWKLqdAK+K4%`XpaFjDbyBtu6h8METX*} z(8^GoBS!iTRk@zNm{j)x+7-eaG14DarRpf}L&p6Ipf^L9BS!iYim$5>_)9?FhA{X2 zryo#-dMNK+)=P40WQqqf7JHBdA6)>myq%E#v$_QRv+(MGlO4|!%0FuENzBh^sypBT zq_Fyosas%5c0#9j_mj~~WE7eS(qd=pDT(tAM_lYbl!^}uFl%>#^r$0J6ce^|%jqxs z9k3#xUIF1q97*qMPJhRrh-C*UgfqZ@a~#Q~w(*BQ=N&{;lWuh9Z1RM9@ zl9uoaKx;#oU3q%Lpbk19DTpkUh{rm2($UX`2zak0Bk9~Tt4!o<}A_?73_VOO3$J;=nByrg+3 zaJ=^>&W>>A2RA;0HCtwT3Gh|t*kMBjKX6+>Ik#vPz501Nym|M*YZBJ? z2M#lA-+eF?=B~k!@)do>F8a-YWTBPDz7xp4`vBt27BY)|{B&f2MZW~Vvgp?bsX<%i z@8nVF#c+S%_jU-I`vYCtVp)u!XYLPBVDAqwZ0`>+Z0`@GBAkvRSAUttc&+`v9c@Rdui|wQFQ?LrB}iAzItq2j~H4kcD;qnfm|<9hJwD&IfwEWyIYF zIDnDzRv>pdl>E5+03Te1wZ|uc?{yq|AAqr9$)Be2?^euREE5c#dLj|&50jiENcd?Y6rNxrD*l+L4#2s zpQsNo#;TFPra9cD#O?SvF;RJ)ksh@Iq_vjlc6|K&f#>xhyc5u4gfC|bW%`26iTomn zXukpIh||_^Lw`ssrM1rh`q63YEgjAMLVNL{2O7WlN*LxL#jN3W{&!<>Uxjc@K=lYq z+*zEyU~}RbOp-ulH^AKAFvm#ct_I->dG(AhIP zJ`N*&sxqW?h`1Qsj*o7*YHrB%w+EhkAx^R2Ni3f~C8ci1#~0JEu6-l0 zb@8~_@iFlzw%yUhPQXu*5+=p$`1t&JT&$4t7T}NKt=JtO525D}Grs`;%bM}*=ER?N z8xzHGGqyAiQ`2U1;tOSrb^}1!gtecT9UniVASD60fck{mX2-``Tt${;`nZQ}dZ=x7 zd`x>2_qqwM1hmd++Z`X1C!ro5fcOckDJ|LU`1t1<;0J-dWpTUXWA$;7zPh9{Ry}a&@)eSJ6uS+xonvuwS<_aVg4iyOYpQy{-fh? zs4y8fJ3iK=!}lWShs)x)V8-o^kH4{S?$-yabv%>P9k=77X1;E3em{^#ljz(%e#b|} z&ycuzAS`#*=pYvwq?+bo<*DgANw~xM55~5%(YTVqL~Udj3|B8rA*W~@k9s1-^l|Kk#4{J|GI?}wclW-20=Sfqrgto7`78NhV4Y{8HD%ZNSVP@ znTgt45PW2XvAIOdMD0uxZUs1G5fM948!-x2BVFA@t8LoE zXa%KqI8s*9o|&jE7=#rb{2mBk7{PS{>WNyRn{a0d!kIX(cc7W5t$<)Hg<{T3)V4ve z%L-!~X)8(#W}@~If^Ryw;6&|XNWYCkw6>Y3{S7FBN|4CnCThW*xKc#MGl15xjJSzf zouZg%0O{;d^5Z6IwXwhx3;{mIaqL8mv0_d})A$!dI`EIhh<_}w@LGk>lZanL`Orwy zR8&mUkt~2A8DN+0{@xD$%Y9w`^^muWmG1wo{2Cs4kk}}`l)6IcYZ~KUawe`@RGFvB zbw|>s)x}#Lo=ruEAlr7zJjd-$0UJq~=efhF?8Xha!H9sD+-4=!cJ_2?kA!NEKJC;V z<0dIlqYPIhWvO=fHma?_GEbSexk0PSzZW5Rq|6rF9|p1rhwR?cnq+kR7k8{UD#OOs zrDEfw&<1TA8#x|c2*bCYSmeasTp*aA~r z(s68fXk$x%n~o3b--u2ENH^NxPG_ALhFm(7SG_i}r4q-e^`Lcst|1;7nxL3!sqX5~ zim|x$Npj;gJ+TvS>-3jlbINs3Lo0mM9C4lHGRfrt-}+TSIJD?^v0tI#m01oCy5zb@ z4`Yi-Ebwx?GIRUTR>OjDXe%U(t=zn^$UnjMYn8E7XJS$ zF&QyvL`O4cS3%+b{gS}k>^q=<6>4bQd_j${OkH{D-0OnvHVH{AuIN%bsLz6Rh41Aq zuOTqK_MnB?ZnXR6=A-49a*y;nuiWWkVY#2?EbkVeMc(9m_}bLpPD zA*c{GpmU?x%SzUD*7|}PVV%XR>V}p3cYR4Bvpxm-@kzW;fkfGdwtEk2dp$lt|5~xZ z>nMA#=Yx|yuY8-fsKW|DEe;qJg4$%Jb-xL{N08kBEmWpEK{KNI>O5$HUd&8)f|h)! zQBQY*R^dB2gVy?;oCDF*1YOjhNTkZc=yyG$^3p}xO%;QrjFrZg2sD5Sy;LoT8(YX+ z2d~DAI_R@69}6-x*9CB2Qf`7`>}`m=9H9)@I0hH%q)Y-l+fhCd%45Y~W$4D{#>yJN z+el%`Vmm>JjblQZ&%wwSjJ*lIsdfW@#c>$95WO5;ItCNBPr%)CM)xT=r^sW9yykaf z{0pv6K$oHZgtRcqQpX||SUz6!U;BZx=;K?#$pBs>j)QvbF+raB#2a4`K{6jFQ)L^^ z1grKZrQl%Mdts&awoM4;Nbp+NE8F5(N_Sm{V9Nstmi^Ml)gYq7>nnfLFQZhd{3N(R zF<-xo^1%vXm~RF&hN))^OYpx9Bln)y^hLO0(@sU;IwzUPAbUJgask(2`_VJype6eQ z>pJ0<=b*LT@@!nEQC}Fwk#dZU)4EP4NP1go>=S{E>x_hWl7-@2rxjB63$mz|0bWDO zNhrpOB4k~sD1ttIs~tE!=_u(!(XNw>$`UJwAUsYAQx^LghT~l4Oft;;1UvyHp*d6& zqII3c7}Th!%79amJf_IHP7!o~su84Z<1NUpcjGz_T?|fN;KSoM+I7&D(9dxDdGh4j zz$-U{eS^%v%IyzoBgjjZatAJ9kdv`;ua;);eFk5v#vreC${qZ*7N#G}ez`-Jqf6wT z>!UcNH;O%gkXMQArQF*k3VR-3S*Q{63`|Ea_x{f)-=auD2zyo7h{}DWrr>#OaH3~Ylqt`0;*@w{U>ukwbmMmM_%Y8i)V%gnZ?(|Y*!gZzv zHt4s1tQjWc887+lUpqgv4)gE*zV!coCr%$T4$3dpi8I%XH~kvy2s*KhG7kAIeDzVmJtg`@C z<$+fv=LUgaL<`LL!hZ^txSwzfKy5;J0?Iq%Yk$?{xS$7L4Foidutc0C@LB&Vz^rpM z8_-e<>-Rlpbz}^`_(d?k5fgU;zsGVs4gc*wKFpYS9?)wRHYRv;FT)Q4)STqu1n}?3 zVIE>@n33oX#4qpU%18>fqX|k}MNsS|aY%ACG3y}~$VI^tG%!hXJ>X5r35{iOPM1+M zShd91=?Q%BId=BYPD;?Ko3X=ptMQHH1?~87)Ql3r3+=HthQ+rL_*TmaXP0FkpXqrQ zS4B43r)6n}IW;(R81`V;G;172`ZMb=KO%PLFog;_%s)h&!<4}FYZ)9VJy}@JVQNE^ zWyP_6#H_n%4Y-~pJONOC2pfmF4AnV?IlcwZ8p0B>b(m#C z_1r~02xzy3;~nO}LSy1B;O|+EbC~?f#>81be_1%*VOnf9c_@z3ERRF-5Szq|L_bFA zt;47pCa&fnbs&++)kNzsol{JNR|6kQ4hzI^jKgp*oMd}3@RjG-F%I(&#Ow~#eF!{8 zP60c{Vg8O`(+P|34d6#CM>`DbKXjP1Pb*=eFvy;M^#upQL)&3QmW+ay??{-POVH{= z39|`Pe=w^Y3y5p%s@B+;+YnT8wmNS$bXS`wHojy zQhtJBEDa$$5awc|L1Fw>kK^=$qf`=#9tdk*i+!}Taty++NMXuiKSC5Y5KjLboWFq= zK}l#1)r4pV!aYb46;%~*YLdqk*@19jRg`24NV~*akR4!VAWX*IEHxDPxHyjP{JEjU zi?ZdW{r(|h39^f#8C+m`a`AmYO|7IzSl3EP3F}%Z$FQxHqloPT##k9rS1YF>`Nc|O zH3TxXl7t3U42LMh)ykYP%3A{^RUL2xQtCo6wgVztEB9d!+nuCz0^HkCb_+$HMJ7n2M=1khM4s7 zYS8*H!?spNBesc*@m;3HP8zR=<@*q%jRaGimJm89LPA*!l)bv7cFfpW>IDG(L-) zhSeQHo`LnGF}0ZTE{}ulq_NwR*ggk(f1*kd@d6^by(?ujMS3pi|eKOkrs-VX>` zh4%x3*7|;cxymVn*<3{&DLuL3Y#p{fB+aZe)=wbgu$>{!vrwGFCg56=-+NLV@cG1F z$`B~VeuBt4?5~*0d`Ze`z?&S!L&(d~4*Md1aKw684#3B~tH58_EkK&?VwFKTVj-wrR0#fZo zd2c3}UvYrL@>NB~VGmw~pmx~z7}O4Xf>#$FuRB5OP5~%O*7>B(w12Y#yQ`G^+VINJxr4NOY z2%fy;Z^|>5Uk_m}`3!Hl)7`olhn2Dj-?Y(mbTX#Um$rk_?JJ;Ew(%2CvX}Tf!b^Mx z|N9a@2eEp|V~`YB_&u~B@AB8H4-))u3tPnkZxX;l&b2NLoggvG3=;fr3z(OomN`9( z^5Ouu5tCn9%72Lj{Aj{4Y=Z4scQ6(?8gm7wSA{H<03<0g1;2Xd$#=IMAplF7u zt_TOeSI08Xwaa{99q>CT!ljekF1KSUwNUYXN#bbKB-Om!SBirBmAsq3G^IR2gP)qp zt&Z7W;iOw*T`q0I+Mf`4CLZp zRIJn^^M0M6DJf@dc?g{zUfH&>_BN z9Xuo~enRJ5R&Fh(Zld7)wvH}8m%5mk${oZMJ|iT4c_&Pv!Amv5ZXxLtrHOBSAN3e zco}Uf19_eZKm1b=>D3v?YFgvBfC^fxawU+znCJ2FI=O{$@m;ugKaS+#^OrCoUZfM6Po<>{CqzC)rYqgRa3u1?AcU7Od~u|8 zX@r+E9F44KwU;rs6QrA168!Q}SQ64=yo{@{B2)NoT3%pvbav}PgoPtE zm9^C7my*ua&YjPy*(6c!C%zFnF$q!KHeFU@?oM>Zg*~D2GfM?3E4LfEgu*YX?#M=f zlxT<{6gQ*Joq=L0{EDg$N#%G#?j-7_E7GnY#6ST9xld5_h+=UKi&Hf{+P%5JkMVub z9w!B%s>U;BV@xdkQeD7XUKU_ zP2sNPPxkv@z!m*L#VwG$BT$#9RzPc;$l z&2Z1iN(?NO2Qu6%l8xC+3~= zq)7h^p81ebQiQKC%`<1p^F&^R1;lSV4FH8NK}{QtO`NJ~Y&9nQ1IIlBS1WlGn?h+- zwFXanz`&-i!c1ER^#9WpTW zZ6q*rIQA(D@^^@Q{5g=?-#lk@%1pJ%;5DN+@XrK9cG*XV44iWgT=WBIH!h2Zy2NhZ zbKqkDs^;wNWZ)U+z@pt^Iv#cr?bR0c29LuN6jfXOfGMrjN!8YMaN#UU zZxLpZ#U4k3O{qr?BUx>}J!(?@i!&j_b^&uHoVK~|7*0A((4scR8ukWm?TNVB4?bcz zO&o_rZ(uea38~uQ?>|ko=UUhsIHWd^D;uG5`O;f8iHOV}dGdyg`W5Nxc>kLiqX}z2 zt_~!|6GrGEBfP3bncuYiU!!qXOJjsrzjU$ks-<7D6AYD3pjv75GE5)Dk&;2NmX=i? zLh_51#`fP2%kd|}te}!GWEI09`mrE1Qc+caxSoT$!hEa>@thZsyK0qA;9(aURUN?T zVtEFwJQo~6M*QQL-sKSb)X~zqC@V#t>}h z6iN-i4bP#_e6^aR{x()R1I{~#!kbamYBfbYHDyHHHaOE!Se#ytP-@?cw6rE=HQ-I8 zu&iQ289H+K6ug6KC#t?ZDUSnw+FJ3330i05P0C}{s6$p6o-?m9zP_57e&r_IjQtsF zbdk(jYS%JsyLk9Y{HQhn14W(L4>*%r5T% zy%TJ;3&>ue?mNisC$4YXs4s1)GJ zj&e@{%HKB{D@_5nbCewgD5cvN${@hkI*QyQH)&aFDf0o}=wBWV+}~tQ_Ld5xrEv$^n~}dVrfc z%9{l!Us_5Jz=Is+XaUM|ZB0be0MB=n4+>B|v6R~ZZ*!C{gu*77+4XgddXn5{03UD^ z?F^do5^l~2MGok3H)Zw%#Oz|S~}b_Pw!u@M~weB4pA zGiXXbOZg3OFxzHYJAaV2_m9ZSeJ`0$v4t)KRoEXi8f=7btaf2Jml=qMbog zTHIhLQCz~6#!=82G-YN5L%9rab4St6pecti>5_*%+8Hzj%ThX`=K#OzDB2k`rMb288Q?RHqMbog23ktuTwGJ&(3#fGpeZA5 zxnu&q%u%#6Xi80+mX3gXIf`}$P3dSU;{eZa6zvR}@|dNp1iZmfv@>YRj%6m(j{<(q zQM5B~JkRW&i3fb70^SAunWJcD(3BIM4CN2NiSulxwKHhSwBJoNmIa*YD7t6Rl;3#I z6J3&O3Am%9XlKxrr!eRVWhmfrj-s7GQzpD>B3cZ1rK4zP(3C2F7|M3Qk2;EW22E*W zDF*?+>nPe8G^Mf4(RYCVa1`wfn$p`+Qm)5_0UQOLK~oZKL=6GAbQJ9jnlju{@&FHY z6zvR}vdB_q0$%JW+8Hz@f{DKr-6p`>9Ys5Xrd0gXl*gBxB_S z;O`toJAYRENkT$;1iCbok3HMJY%f<1vq(u z&9rs~P5H@EG62_b6x}muN`D(sYrvfyMLUD0Y_pW%fG0SLb_Pw^XDLeouXYse44TsY zIg{M`0YC02+8H!ulBK)>_?V+;XOMYazw&lkaTf4jj&e4fdGu>(DX9yw7>PqW!>{4Y zqyJz#9yJEs+EKI>8M6A%vy{GohdYY4A|2U)skX114S1=eXe*ks#!|KbzTZ)_6=?wj zKeO#L%bB?r@HH#Zn}2sFB0d244NLKIc#)iW?W?$Qmlc;UfP8ZfI(i~j zbtK}1#dzccha^j1aOHHz;z8z^sYR8?3oum;aBWNRaynfCbZpPhxfBkx4Umo@nvQmr zId02RyzqwTP$1WY=ruV&$6qwdT<%;CWJ!qrx)t-O^LbNT`8Zsx|v(H@n zJ_BTLh+cXUx|2>}&k>zSeE{Us5FLQ)qs+<8-Y~kq1Nk>Z^H>*CKAvH8)0SWmz+q~t zZC9XEr@mx#8v@A*(ZZvE=66MYCEi>heL}SDRG`z+Qw%y0$g~jck_dGA4H&&e_ZA>) zLNq%a=!}!-Bm~_7b% zrztCHXDV;kGEiy(ZcGZBuU=%!nZ^2BH4a`SR=NNl6lbL%Z}n^pU}9<-I7{M8Y2MJG zNK`zVU2s3DS2_;d+x0hRN>@@_ZC3!Mikh01V${n9iH>UCc4~;YB<(zpPRyO9L z#3WTS0WXiUqGKB&yiIE`f0VM?9A`#zyeLhK95QK=msy&9t2b&gmWVQ|e2?osc;D1p=els!MOsS8+J>&RX*3=2qaet}Q zKLCr~X!Fg?>9s#iDCDaQfX(9x5>NceYr++{%u@c3uV4=jYD4vg&H$@t;BtNm3}yo7 z1DZv+5Ypsj$v{}if8_(S9=Zn59S+Wxk+8O(T?AFT3*tQ%(nDdE426yT)<2+!<5+kE z`1_XQWyx6B)Nh6nO$Ngs0sVds+{*8>(2RyDH=z;WkhJO1FiS?mw*D6w@VX+wsuA#} zmg8l~aM;mbHPnoFJpuI#VHpp*`TNjfWk8$)=(-S=0kN0=R|(Vetp;>k2+N4r49&o(y3b5(oQpsu}n&pm#%9#>C-%&kO^959pT=mO=4a{}oIZp12kny9AwSaU7;% zWKAcSRDoZ>gb{Tb2j3@A5*Wn7%$zk_9NfyV%v6v8qv&hcks^b~kG zpp_vkBjWc9SufnNdiW(dpJc#~h)YJUmn+Ypw)ah3l-OA~kU zEg1iBn0(9VxXwR-j#1*S3aC~H%ka3-Z*s`Q-3Cxc2WQLpxYaL@AxjO0c!Yzp_y+XM zqy7)Snek#Spk;)mr@DU!TZ3>u^ox99I{2-?AG9W71vuaPUw&ik><9j7oE;&CCu8;x z|LqTr**`!}U19y4W<$1)rHKrYg@a?AO^;n0^en1KY9}DEp5|N}yuQrz*4=>jCx=a2 zch*@lNTvmOcyWgG{8NE1BFEV&NGur~z!Yv5I%%~DqzB`SX<`!@CaVVNST_`l`$2ju z&Z4I|)q>yJ8Dpn`{}N}+%aQ@GKAw6rb}m_oOCKEPrA&yI1vPA?WP#M4M3+sI1sMlh z1)n2UN!bvP#>83lvV_w*xT&H^*&^U8;*5D&G6;4GI!-ipwgcZCXU9Y+#LmGUxRjLH zTOfTFXUvotCuco_Uhu#=>?QvIClR-Ybq>CR$ZND07Yvzsfhqxc1!AlqeG{VzW^Mz6 z#ki*=cPX-fHn-Yd6HMKP21y6Z#IGlSeh!q^24^k{9>85G-cM0e0L>*V)h|P;Nv96U^!im;(HOa^EB}Njw8zrmU9a_G~pZve%f(ly}@!O*|-u`bR1c8u$=c_H~G31_-4nEMF-1S zWaD}g_+H16RR_y?)^a`se#&uV*}-xSTaI@twr$|hd6#tu%jt&UOv(fDDdYTNBfT~ zKCBJ8VvZnbeh>KPj-&m@a6bRk*!c^1@*10W?LUUI3mt;k;rGI7I*#@q!x?Jhx&k=A z1zpg84Ce;R83lZ@<7odeoDG(9Bk*;Oqy5Kls#(r1;CmcL`;Xyl#l@VYnHyO?aUAVG zhLdmY{02N&YtyX#$8cIyF?PxTujV+~e+*}*wbK%KN5|3rV>pemcp&K+27J8ZX#X*s zD=lX!@YRl^{l{<;s~S5G0Dr=9wEq}RWozdU@DChE`wxfk%>M$I<>{IGLWW({Z%_7*2wXD|I~vK^!{o z+J6kEhUH`dzua-O{}@hJ%jpk%q~mD+F`V+4g-G7#0blMo+J6jZ=0}Ee7x0~qqy5Kl zw%NE20Ds$YwEq~+P|NuS_^*zm{l{?fEhl;#?tkIXdDs3Ui-`{gw?Adl(*Sr2$I<>{ zIOEezIp+Z%>Nwhe4Cf2%d6K-(0=~p?wEq~+n^-gw&KBVJJC61r!uKQo9Y_0*;Z((ixNwdGKkYc$e+=j9Zw)751Li+Cbl$c97|vA7 z$pn6x<7odeoW?fIoq+dt9PK}b^TEd^t_i?rI*#@q!}->7ZUw&CakT#!PGuX{lfd^n zj`knJxzchz1b)hKwEq~+0L$?KFx8o{}|2!%UJ>Z4#&~{!zZCL_XjV}G;{Aqfj>o#UOgE-7L)cjg4cgFv+uV7 z9Sh;%xS5!FB)AECTqa?Tz$ zK=mDbjV#H28`Lia&C8wGyLR&MiC$*)+W&0E$T!)mepv}#)vBxc#?R_mbrCM9uC9uu z+C2a>y-NUIPjxrM4_QcGk7%vY>II13v5;tmCr^{6 zsxLtJ#gVufOz-E?_$-x#v=+mmqprpT%hsUki&s8@Jma^j4!FTN6jn_2HD6z+JepLU z0C%?(ynmADU3c%t8?uRB3uLNAb@p<^z++8*Hk6wHuRn*v7gAK;U-5ZE*#&sdITUUn ztNwAPGq(N#A0s7;`RMj=E)0Bn2PWZP#_1I(CNIhqrtPbQ>Zs9xSBJ7Qu12GqX(65R z8ab-w7Hk5-k#d_zU%;J(8ckIzNIF@mt{Sb-PW6X)q=ocFsD`?$X%NqM(B?3j0csV* z8yzHdp|wV-9S}e1An78e&`FAkF=?o_nBd2DWQ8Y5~K^URb>~c*GisAXSn&o#p{R-mxTE8O0kz(Z3tb8x^ zr%|6$?LuDkSxAE<5^BG~pm3`)IniVMeHY`db%H@jM!6;kmUwW7@@kz`Z$1DTS4GG0 zJ#*27+A+SGuGLmFQU*K~NriLPE^!AIb0T98Epi*XpMWz}OKyctiD zeZ}W8Gt?(w{c{24IrMQQu0e8fy987fL+;Drkeq0b9^dW^N}=MUPI%H7MX&s*FVt+( z9%hEUCgxeDdk;yWb|%)7!Ybx!EVt*f-!O4sx2Ns4|_$z54&{F zek%xq#ALwFWZTbdl2GeD4Qog=u`{2Yc~XSixRWCECp_2)^(cdRBFGa#QiQJ>%8T&T zPf6y?@2=)W_!->12*XK{of7VTDJ44G8(}>oCEQP!wIfo+O^+UKZ(|IIv6t~jrHevX^$R<33P&bF+4IjuCSnCwcNc{u0hKHsTiX5u#KZ`?&uL_ z9+eHGWr$8n1KKlx0>1Zy+EsZ#28QVNi-7iO4zCb2AIPi_&BjElZeEKPW}vzi$n7Ee z!fVKHpIWm_ybl9;GDIii#!ub8+gh3Y9s=@Ch?f5gy8WivO#t5l`6)!-Z4cf4@84uB zUwki0f``;%&RGm#bqBt66k9o2k~M(T4bgdMz;y>Nvv)|^1Gy?hbN>N($f=pe@(3Vf zLbTcoK(GGncT7xJ3k!iP3(^m!mJhv;Y7K!^9> ztdW*K267@qzrkQtchv2uL8*nmfcV>8ekaxdI_65$1=|chKHz!fLv#>pe|+E8#&Q;r z<{`Sg3(zU6@thO;3)Krq{}9dV3v}9_n1YGrDL}3Z(Z%%18DEz%HMk1MdWViUc`4AD z)3DAeweWyL(0}o(wn>r0a^{B|^CGVSjF@U<{`5x%A;$(;Gg-Mq+M!smBv^Ta}4WawoK zKQ8A{I44E;xvQi|rxujY7dby)nHS+_3iFIya|R2iQA^7Cy{x?7e15};R`VEwBIO( z^_lN-&WrHP<#`c?Q3(BOU5rmT>eBX0Ygf9uti|i5!Js>Yqqdd<&<;>59=S3(_ ziZC2}yBl{ZYw;<~NeQ)Dlpd#NXKmI$jYPE>`4Zj>-@1avT zmFxv&khWScymh~%bnktbk8(0PdBkP#lgUGIR+C3GYT)^khvFPezBNc#K}`} zPMSP53olTd3@kEvD$a!_Pp;Rtn2eV6Kj37Kn;9FDhxR4*lS?MMxDht6mCwbQHuK=rtk{4M!H-GkGy8sbgxF~E5Yz0%Q4{8 zD9cWvWF&YUR~+RSF69NZS0kf2NJ)`k3nODRd67DpyW<@hIO81|5`G4pDC5l&Vl)SK z1HQ1aUIPivf_A;9J{L=0kvklOjHgyYx|5#D*MI1DAMh38UPgz~KtAH5)qHKZM);0# zFQX%o_Ze}VHc$$Xpr)noBj1C0dj|7*Xv-G1uy^#uu8xAJAgH?N`< zB4K!{m14GuyvR2U@*!n(IS69@i*S;}nHTv}(!w$>LN=d;D|#!e1z_+Z32y>{D9X(* zNkYyOF**cD@&rtha4%JKweb0B6tqujy||THITE!Nmmf?CU!0N`SxCy$LTM=!E#_+* zi$Ln}s%k3J@-Gv^YYp`90P=Zt6TA%c7>;QvStc-gis!Kl@}ktte=`8<8-$AQGAstB ze~vCADGQ51-i#>-&>yDvUuR`r^n0k~a~c?Ag5KQfGH~6XLE}8%50+PDB-QQ$adsw% z-GKG8LGTiabP}QvluLfY=f0E0PELy8SnUaBJ4%^cEKoL@R$EtHLxFr z@L9{2DDv;3{2*lS#LJKOh5Q6$|5!N#GX@Qs;00sDH@`-Yu_$NM0lC;iaA+J-lne;j zzrWq35=5Twk0dZr#hEL%hgr> zu-YK326(q6NWc-Ir;*N?^^p|6ORxu=H!M#AA@6VSW<7*-24}$t-+4_B(=UymwJ{fH z>4yuT)5k`z267!a(-+pXL2nk{J0Ij0WV)BPYL#0<6$!>j_M*SSQ2q=gHW-256L7df zg;%k#=RmfypnRIkLjH_eAZ!Nsm?bnv)y>|AV)xr7)}-6zZ$v7Cy}(~D$no+k&>cR2 z?AwC!(DINtejgbmW0b%+I45mG5Iw!i{!#-GLa>j#|*qNcz|GzG?> zH;XUV4;B_=o?Bp{%B>O&$-2O1?PAh4kr??VoXJc_G#9AcjVFM5)7$agLWHSqfi z3z}9m&I^Wy?^w?7%{uK4&PdBM4G68~9%(hR8ukEX31IiFfZ418yz5@_Ig6hW2#y2) zzdjZ)n~rK;a6g-#YQr7u0udEcq}m%a?rEu$WR( zrZL(uy})CGVRHL-zzHC`AC>85$kU8tzp9IBy zj2|Cn^l$wi+M`2l9TaWn$NcO=PyyFN=f{4YAJdZcV+o5X`zE=rcHRxT-x?0CCCuw7p`((@#xAsO|)0d-{>_ zHt5adO07!s8i3Ny>Po=>KyhFvW0B$7jiv1uW1L#F1!sxktfnBt-=Y>MPHT1nUaA5NuJQ0< zRSdEPstV54zDPtU9ii6{x*k<#=#flTy1?o4PzZH!$2&JD&^zbe$!#;jg z)0ZkHd9smikt8orOl~vqb#e=$F1dtta^vBG$=wW&PHwd?ZE|OrsFE+3+yUS%P)zQ2 zgqEv0=Oov=QE~lVm0e+gBF2o`a2uTDQ5-iZUenOaRL`4L_h(QEWha28dO&#_l`C#B z%5XUOQyboa;>72%tI8=KMEonXdPS<&{EEN%@j+FQ7o5ZJd!;&r0_zLCRVumw2;YB( z_mQY{+;C7;_-Y;1f3;HlRf9^w%ID{-R`dD0X1jpD58?Mxq(jx#`1knToWC#CzgNt? zRlR4Dn+@aqJNOKq`BK+-O4k4PAt7tk=Z3?_7#;+^PN|;$Wd7^n=VN_PeQOAO-AX}l zHVm#+M-BQj+~TBBSM32*{6&`$?It}NuL`?sRYODI3y1hbuGpTVBbNBP`Lp<|yQ&9v zGsEUvu&xT(K=KU2dtTElBAPvXG1rZS1>#UcZ-iE6YB4SsknPq>QddTqFS&pd~G4gDI zxUV&Ygq2UuNfI-YssFN}%nS7)eZxrCTB)S;9V30fN+ks!8|jNyI)`?>Uv=fa7bh)Y zq~957uyV^>kjoiy;`3n<+@`7;X=y8!=$aX6y*TNWM%vCwk>J}^ZzDx^d%{)ds}UnA z`i^rrOyMSR3ikwb;|F7W5iOiqnJ@=T^QE*ob33iYk4cK3Si)8r)eOUA-CjE5kLiCH zX5NL}OApu%fJ5`&XjdE5ph45Uggc4!`8v_tsG=Q|w@Gcg9=Cy>JczOVn$sMRE(iZ| zV{|5)s zzat8ahap(!;D4P_I8N&aw!Fxsd<1#M8CpM#P#+2HLufTZOBAP?1+@|nVpQ4#AypQu zod_*fTX9~ZI313oJ^*TK2wxYQjSvdHWjr+yYJ$*4#dK^@UGRH6elJlIpFhXMVwl(f zp*FDsA#GwILIq81$M1V!V!dkDTY3Des9mIoKbx(!8{3=yTc~(#w%(LP^h%V(!Ta~J zB<4c?tE6x;Lan}IT1O&uKSE0sulNdTNl7$!D)pU8Rj0zM(>N8D$UX>lEV~iXvFt#I zvA~Uxo-OJv{Qgv8Wr@U@uqC2Rutc;8mPkPpERj;*vqUDGUm~9VTc~((ceg2umMn@l zn(bpzqSarvFfohBM8b~)Pa<{0_`28Aw z|4(tr#o9Rz3>OaNU#1GzS!ig1>W2`Om#Q)deQF{t-x1_{(QYA2{eisZ2n~?XWe9CY zXst>xZgvGS6op;swlSJ4Qzs2Fr#CaYMDa?@vIo=l)Px19G}8Hln7qWKc(Do)TA+Rf zJri$sTcUUYSWrbs_hYVdf6lD-tcNh!QfP+zYek8k%JLuKY*Iz&`W!9P7^j~Si+kFxgwucG+E#&`B6Hya3W z34z=j5E4oVNgxR=bOJ~RNhqQBF1`0IMT#O_MT&@2MMXqZ1O-Gyq$3C-0*ZntDhi6_ zd(WA&xsl)Z{r~rQ_U`Pw?>Td3=Ipd>>ri|l`)2VB!+V#ioMsudI7G9IClHde48M|~ zX%7ADS7-4o<2V>|c%~tT?Z4o7zIa5j^(@2kRmZ@4(l8o*`>Y1&P5WWvxhoCS$M2*O zuaE8`n7Uq$x#f)=m>E_A@dDr;_hf^gBzNet=L7lWGb&qBSok+GzXd|05n3x~!aH2a zL`$2IMBXFBr@1WgpA@v%nVV(*F-y>b=l9H@WzzpJrl3Dn45*fg%~gr{O=9CsV!eOY ziREVL#3X|f`wv4UMhyHg=Rl=(J%+J@=z!dQg6Oq8iThd^P(T|{sQD+9Tbj%jx<|8O zntSGEnF(EYP@d%Z=eJ6c9&gy|a!%^bfF~z))$eQXxTPdq@5ng^?FydsjwcbCFYYL| z_6})&!hKn@#{8%}N45E{Ku(&Un`O)=iZs8xQuJ{1zhz^{xg-D3=2uh_4>!Lmc+&h{ z2+bGiiXCkJ02LdhOF!z6F@Fx^r1`m7#(bhk^M@-%5lT^T>2GIa$ovZ|K`Q`bltk_+ zbvWhh&U+B?K@h|~9j_4{4&&`418+h45bd_d5k=qF6G#j`{$uq_0 zonm>5RW7=A1Fv6*cF5ieu}QfC-3inUiE?i;mXJ3TLig&74?^}UgzoWK5`>&n2)#J= zeT{HC*jBcRy}ZvXoc4Q2Iq28t!S4Nd_DyruybN>V72>{9MmHM$p$Tl7S7nuMP%4BI z(KWi5Ldbx+F2e0GH_OI=RYH3*8NeDw`I!e%bwW2(+VUfYe!^Fbn>#w8OZ=%_DmTlx z)T5xtx@oEuJ^YNA44yop53&Tg)MHBG;b+7RmY`LdLJ!ET+9-DL8KGkfOY33&MPq(d z$Vtb_%`)Z_MVg(S%S>(tR(d6kR7xpwwWc!{4)s67d>*Bze?!S z)J#CBQeG0>v2bIZl~&ZW;H8l<;u!YcX&nl?9bm8LaYR z4wV(Os8orwR;nzj@1JFN0d4wcVo(OhLYN5^ZG>vE}VtW?Ifr0OYq(#`lLEt)Ii zmvy{W`F1XqSxRLltDKla-IXO+itsC-w8=2E#+$7_|} zLmjVGTCu@?IYp_w!YW7QP=Cbmvj@K&vxl}G! zDt(Vp^?Z~=W!{AkKYJeJR+*Yh<%{R|WU?|?W#F`%@#4WMP4z_Scx`2qTq-|MDu=Vm z!8ue`)S@!u=7cPxGmAVz` zp~Z5kYo+70y2VBvmSsfKWVB41eQ^67JclbA-jZ}sV2SvuD-KH0fp3ZE)*lC@>7d{e zku?+tW#}Msi8$~K4&v#c&=N6f01nF1LDUj)v2Giu5lghM04_L8lU(Cmlaf`agLVTOXHc_KC-Xa2hw9p~R+r@F5 zj~B2Jm(~k7od77MLN{oqD*{P@HOna8*1V@Iie{!_-0r ziSC#I(|4ncoimkj=yAf1%)?GN`(Uug4y)S)yO6NYIMVw8M~3(N2ztejR!t^=;D>l4QErcyW2MOW*Q*a>o zAT>O;A`Wams1}|Nxyj?IsTB@P0j0JO~t&y#_JM+EgH^TO#Kj6CsTCTNSpmtnM&Cq*p7!K(1*=^&L4 z)`h=F2Wfn;IeZHpROEx#!e66vwIAUWA{<;uqIlEDJ5p5~smeUm)BD&HrF2u@5 zbvp~e{EHCqSoS?AjOdnvn6N4+I)6UvD8kMK@bX!t)^a|<2_?fJ&ZJcori?nyA`|vm z1vZdBJRf!ee(uk+p6bGRE*w!WQqXeNP(f~>T5+6@u=aPqYZ4$QKmu)1Si8x9%Z4Lc9*r zZfyQ(h_z(wC~+7ur*v#!HbF7f(NGtdATH}@KV=i>ygzf@yy|HhT;e^e^B#A64VrIzaFy1=T{U~!OkQ&id4}}QFQPS zovhs|QF0r~jRlzOz>Qrp9R>K0l;E@-{0^KZvg13@9k=l=V&V>6N8(o4hfmq)Z~>eR-t}ucj*R85FWe{lx^7jhln5}hrfe}PjqD9 zC=mX$%5-m=W|1@k6**u55Nt zSi0hJ3Ts!a1$FhY`Cmb-amCh%>8fJ`I~h{0I0Vt-H6-0Jer;zmZGf=pbDRYRQfU-h z?Z*`;%Btm~+dP;q7Xm_eDKeu|SdxdX&&|9ignUj#Foq zO=W1ee76%)%LHckLf33JUys~5r7?W6U)qd>Eqf(SFncH&p4f*H89`46orKyaA@npU z{hZQ};Fzpvd_4-sF9X<4;Fk;zSPIDrNid^7A`f6YV!+Y^QF!*`^N6@ik*rQePP>hW z`#Lgkjdb})gM?>BpnRjTu?#$9jV5y zGbFL2V#JOL4ClabcBNwH23QvRi*Ge5BC6Fab=6UdJ)li!IVT$^8! zCGw20uY81>m5sCg^+^uX8DU?&#Nnscq4uv`Ctogd^BIJ{p{7d|`HbrLTS`R~IYZ$a z&vKX=eEU1u;Im8IB-=#vmVuDHFII%(PJ3+r@2QT;bF76oiz4c69Ub_I>u(~CC84Yk zpW)z|Aq+(*@Ecf)YU8*9>#8cmA2==76usSe7%s^nSCMvj;U7#V} zq(JaGKra&$H@KpZlFEwxgw%F@MpnV(!!TRePhpFoNR3E4dA!68cV{h zJgdto6<(BF1U6MtuSG$+z2}ukC0zzk62W{rrZL>zbEl7zeiTqMSDJ2Dvxj=pVPAeK zh2DS$y3!1f^~_m^AsWFm0nIbgsRPPGdbX!h8$d50dNVa#F5nFN#Aqd2jYuNw#} zbk28cl*aNPRtq9qlCtC{bZdMMv7)HVR!^0lN_(Og7rcK`b9hKcuIsl!B6}RHZB!KT!u4l@UFXb_??IZc%yO zJ=K7BPj~0t;%U5l<~iOi*~Po1CwRB)2i`4rP!-8hD~j`OWg_oZW%BOXF}!^|oyANmb?!b$@JNO~*4t>qLkM8mAaP)W*|2Um@N80o5lX1K|`V{Xz-N?IR2YC0{ zRo)%9CXn2T64+Iaazq2(hl_5!&m*Q{A9iXMJh|}q{z9nq$I@_?-J*G--E0biKMX{$ z3iX$Te`$$QU4*VBum)0rm+)u#y5hJho<=SF`|B%YYrTUQ1WHEL!K1ChfA+$H6gB0a z27@JkLz;#EnTACm9MMTC@Oe+wvlQ?fdq2(KZ!}P{fp2fsev{7_?ieN6p^lfmF!m*+V1gVgI)`C*H zTHj&)tiq+m2DAetSbZV}a)lGb9+UkB$_50sBipIDi_pxZ zjh?ZR!!!(yo=N7)VQBQM4HORhxg(5!|1EW_( z!E&D!_Q_fjc>W9IsVsS!ReMYdVk(l+wKrxVm`+O~wM)X+{q>tdsLqIrkl(c%g_w@R z#3YQeqxW^RWu;6*%CoWg+XAx^*N*~tpgKyLYHT%t7Y&%ObSS{XCuZVVLqxty0Db1q zN;rnvh&~$82EzbEo^gTe=>U!|Lvw!vk-umlz?n?^r5n)8=g}cijf5jh1+Yn-iJ!uT z=&M`vN-!QkRSk08$qGy#Q5zC*_KBy_9l(}O;IMZ2$LlZ&m8(G2?dpJs03IKt#;SX_ zGc>#>N({pbRsgLGhBGd;hOjN}PLqc00K7|6ta=v)LU@=>&w*1Oj%Y-h$l0_qW@9`O zU0Nid6C%R$kD`R>MC`cCVC(BG$0$iOaQo$iA zYuTr2yJMB=b{^k>!GhZfU+MtI;)bpW-&CcVXQ zWI5CwvH-|OVvQH`e~^Y~qSb)ggstMGda_Zdup7gh=v_iQ1y2<8)8!jtSla88z<0cfs~<~exu6ZU%4 z%lD*w9iW$uw1gMgV*!6j@IF9?TxptvN3XCeYw62?uDj9pqZHf;P!9w14BkJ@uCff0 zV-P)?AZ}!h8{qvyDDvo^?d+#OdJcq*K_ofDk9IsiPgiNY5Bwl;xad=93h)0->_qD> zE+G1PusF}LqDy%`K*J^e0QRrOtu$I3h)(h>!yt(l2mC06;@G5Sp8ZGH@YI=r&l^zQ z(*f1jusq!*r@7}HbnUMYr!(+=#4)+FXzCu_!!x12QZp6slfi13GRiZDnE1tDY6z6;3cMV6L49t1UQ)QLnD4#HCz-t+fOp7^q|0#0LoOZw;58}A3iqcq4^n6yaXMwrYuuaP%iP1lL zUPEcI+U+3i4k9XLe(@q|o;fFgUoo5KN=$AOHTEMe{I61S)3T-h2uE6Za!JKH=IkL%W2ZU_F>BYpQAgu`^ zT4~G~A9A>+;_L=~*l==Wlh!t(*N5zGg=}5|;b%kQ4%B6)G4o`|9-ZSnC9oia&2?AR ztTORNNXyPD?MfiE{4X(Q-buvYUu5bm^#grUut<&q-~@c3hp@uN1+Wavm;TGf3r{F> zWkVZv^oeC!A&S3S>KhPR*Gky!q2ZqhXu^N70rO_%+bnDRTb(PwvSX>gomZKy{ zts?dc{We@_tPN5VLnMuoFuC^?FhzMtc{*=fBZ{tUm$ac^_dWeWA10^!c8$UyddO*)8|BkV`v>h!v=cTLMv(tSaVZW_Xa3Y{o7p7~F(SfkK zRq)+gocN+CpjIwSt4RJUb}2}cHDUmuDH?XqHZBD#jo8su!%9Xd_6jgxHf%Z%auOSc zjV`8$`#?Hwh;E6qM*ls#NHazJ4y5~rNcE^RMpDwf!$Q*)u^A6h5sehF21v~e zF^8dhF?Ei<681AzE?8r4kVY9|4nv9Puj6@M`^Z9&)*GTpT9qiP{U@wQQKj}BFhBV( z+e%|%LFbSz`fDKlYKS=ut$}kfx`Y#@4UH&^dk?Vvr|OC5Z{xYRQYB4G^34n}x1p@I zj&x+kdK_)lT!o3{u1@AT>0^9EPs#3Paa8$J?R@p|idl zNJ9;g5>b^&YlqRVJLzab2jW~5b3s~Sh?FBMjX3_Lo^O$B=4=DL-*AjFHA-Xli=MJ0 z6#D|0_x}f*jmTk%|4mN^7=@UrIyUeTLHb^` z`8rxAZ-q7Qf%F3--$#70xmToD6@m`9_^KNfDc;ZzxZ$R&2vO#Il+{KT((zi~$d=+I^bU=aaX(OM z-;-<0_Vg@SPvl)a}HOVU00XM5rqD`N{>$kZGtY&mi zNo03HmrjK547i29xrdlcQ3Ax~bQ4nK1yK_5xCq7f#CVYjH;q`R2A+n3O3$Uj6g zx+)P_&89*W&FJo!$m;eMKA>A-B5T^O@&R3>h^%Grq=U4t?%|-17>6RgP8v5O@mI0= zZ{o<3@BnfAcia(7@L@p52)@HG4Nf8li?GYM=^C-(Tm1dt!dnKxh7n?NYhhJJtR0HE zab9dvdFnS*k7GppuDD|(7STx>3J}{$OT~@hkrPoMO8imatqg~X25+RtYvv=L6zjf# zdU{{vFoR1S-{X1G$ZaBk8xz@tdBB$%PCZVCo{5P3Qp^}Dtly#3-VXc?&9TxL{#tzS z70zhXs(lpDNrGh=+`tQ~Bfk;tzsB2rN%|(BJFYat--|xeg_I7jfa@RFlysQ@q;HEI z?1<;Rlvb10*%I=Y>tgS*2mAKVn?E*;o?b9A5 zmFY?`RLovcLP-sBrP#t)dnoQ(WeexH5L;Njtj2+{94Gy=3E1_cAgN**#?R zG29CRyuab_d7tqS9;b*L9x`^KVDqN|UKT`QHL`P(jU zMPwO>yp=Hj#U`csLPg};_7mu0s60g?pj3i6_Y!{3UXDQlm7r(}sFjiC3l)(E>`OQ^ z#t=+z*B@%6C4AU^xudXV5K z*774y+uyvU*7C0dy6M7nnIrOZ`^9hZ)g+uR!h^m#9GfaNx{eWf(cX1f!6gAD7?@WT zB5#MZZHEC@ZA3RAh>9dY)nuhLdk^9rLO=EkYcKWWJ%JB496p!Q&Qb?EBDBf^>8fHj z@Wr_}6_UYuKQse*6^)=Jj?%U(du-AYFY3vF;;yJ|Xg`_YUs) z{~frfq75fymV_^OKSr-#7*LrYIKZ4#S}BdJ?&&lJnXdstLqnpZEs59mJboJLI|1u! zaF*wl*2r(YnYNHcKNa|shQsHv)X~agXCMu_mGf1DQyPIB3AOP&hxS(-0O7PDamnPc z_7`tB+J5mJ2=@(%*NfyeBf9S{vXkfYe9)AyDh7?%q>J+!O61?($}LqDBm+vZ9p9?2<7t>9RX?|bD9SAgHjrH45aJ!i`*n?vBI1+Yn*rJnM? z!R9wYs?%9OZk&L>O2lD%WWJblGUOH1=3(Nrz+Zdf_+%QLy9GwFKx#-qG%ss#Unyo1paL<4owVVs)|pMGg2r1#a}3vT>Z(cf_jXY z3=w$>=Q6>?0hK10E#wR1F-^tzh4{c2!LOO1lc6nl4N|M$B%J z_BVP1g4+V>KvV%CBZwrgd&QiyM_}233!x+MK8C}&lsf*jr=CMX z6M#Kwa88K+JjEWP`&1XN=g&kOHjN=xuxfb3cZrlvfmiYEmP5En&JK=A~-^~7C5%%h&tNy>-o z0&k{O$O_=*J|@$%7_9`CL~r0jb8)CCkLm8&_@_Em<^o?roE&K}XQ(INqbjX!z~9QH zhnn)3@ty?C;Q!>(Lrrao?x#(5T&aVM>86iFL4Q_Hl18gP#JGkL1M- zqImg8UbD#*mXGAMCe;!#i>hYdh0hDY+IWFXuLj)Oq$Az}nYvO4uh-gHDP(2;>Hq{~Md)FXLo0c|xfE$!(? z^7bJ1NDv~W)gyW50bSFuED-fbUPyCcQ4RbFG&Dn*6ZA;l$LK-*KoSf}{GdnjF5*d7 zPc7h$4Tp`xV|SD)cBC4+A0dey6(e?3V0>zjEAhaF{l%98R@B)i$fZt|Y>YF4BFrOs zMAnbwktO<(yfLU*{Yc()4$DXK7I0WTl82kT!I6*Tjpi^dGuq!$D*BPUvK;>JBY9+- zc_gn~JJ*VIv8mQSFwB66Hf_DJgqqix;dBy>5S>jB zIY)qtmTJ~KlIO(~ijx=y(io$I@4CYyc{Q*Mz_Wv=04+1HdL-{8*|!<7I|(re0Z^T(l zz)3|Vz;%e?n!=P?o@@JYU6Lr-fO`gO(U0W4j+TSfOawk%t1*w{-QA;9JPT;8R$<9! z?%I1kD5j*}2K2rwtscqy4F$;td=BVKS6V%iw*s@v^<>}gfc|o&)gyW1j$;l+aN&k1 z1Z>g~^dotrMxq{45nYoY&ODvT=8?RA1_I9nmaTF9NZ!&b>f9I#WU593bh>b3U>?aE z`v9pg1z~eAi9L!FQ;+0@J)+Ll{U9C$>E zw-AK&hQy`gW?Vm#_cs>Q?YF@CD45xqOxBO&C5@HmoBb6?KM~QmyS&F;KayASDvS$3 z`(FT?%sV;A!#b%-9k3!*>6{l=UT1<5HHeyw0$pxFu<(R_ka^eu?li2@1GusyDJ%zY z7dT!H;J%`;9>6Vzx)o&0J<5;1YWp%`Ue~dKzZp^kxDOEhsfN@5?uS@tbO&&0fO!B% z15%7H=s2uvC=#)o#5Z#XaFd&007sx6z)^%Az)@Ha;3%vIaP<&wjLjcD1!OgV%SJ>` z9T_MOR2+iP zQBoR5`qV&eR(I4Yj;{jvj=-`E%7I$=BCN+C@?UJBO*NSAyQfm)Mfx$sNtZ2nrA(p6h#UffWE33K?Ajv{J00jvlB{su+`zYV1}*5<4nJ?5M!pISk#0z<%MogTjxx+8$*C zY9>6NBFsQ-Ai{c}MwaM-T0G?SKrM~Ka-dd=!*ZY&3t>G_E5l(qP@`1zKJoHh(3mBQsF@9#MC7bf7xd-&;5~1GPNO@q$lmEEm`cC{PzHMXiHlGf=An zT85!EBwc2pmWB8(8Veez-Dr!UBDi8S;Axr?U~xTAYt#|=GGH$m+*o1;Y8{s0PHNaA z_JVXk6BS&_o>2i)DuOQox=L^sS*QnU^>EU#^aDVmg)S&PP0{LI-t5nS`XAFgkv60a0fu$Txm5>%QIU^j{`Ktl~x0_Ta}db3P7t}X*E!5iJ=>n zhS&w@T^CjZwUMb$_^+2+J4Djg>;}rDZx}Y_bIL`v77oV^J zY^fQjjTwzoZV#}7!MGZzWk0QwxdiwIQCw5hK&@h=O66a`c^(T&MGw?2j8ke#0WU`! zKB4rx6B-p#D(VAjqE(oITJyq6x+kFiuCyAcW#G)`Y)%I>$CXwCwWY1FtVE@-7SKjl zS`E~$p=Hb__~oEqf!f^KFq>{6|4Tz|3umc;+W9BJp%3-OVv`x?ff}`f zR;n7Ped2&r1%zgX#HHhATo2SXrGeQUtYN`S8t#~Z+Py{ce6#0)w2Fw-+DO~@ZaO_s z`;%sRuYmBj(MAsPuuiH{6uOT}{Q>%tK(V)M6jsqXbg3h`SnH(iv}+T~ySDryg<@Um z@loH-yc;lvcLV2R7j}*Yl8@|YnFT%LQt>glo!u~YICi@mTK zqk9Cbur51M6OX*}gb{n+72EfO5!+Aikzg^3v%+@2NMa{HCb7j!q4zYYEBS981kV(M z&c#69#3o;$W)f`rZ@O%k@Hl##qRH(qLlbNH(m)OQhq%ETiLMDWl_3@~i0ifDHS;=nz(o z^2mh<87$rcEwjYSFnzfAznfm^`VQ3X?`Wxf6Tg6z`}#PNlciL&Kh*k`g|*26yMlW74q#|!U@=3feUS(}`&S-#47R74%FzmtHQCSsn!cl#B43%wcHUhJs_GQbk< zpOrPFC}d+<^__>Pj_(OLlT|09-}?WhI$tPcCvn{j2$C(+y=hZ6t4#M+GT>UIvUKMl za=e*kslRm7{r@2Q{Vm9T$g<}k`~Q|Gei0G{2T?(VwL@Y3Ki^51_14=EusDgv50!YB z>#!5C|75N2jF%urvi#hK$`^ZWD3&HL`N~x?(*Lp=FGA4{;%eDL^8fF89wuFg&ad+% zK`umRr#xA+zM}I;)>TyYf6ANM0=KSmwG3H1UWaU~pwqt+WOJ)-hvrIE<*@&%CL3JU z#v`iR)p`+HFHenA9dL1+rYN4; zgv#lVr|t^K%IT0NgE}@j9rD!c2}SZfpPu^tDIDFc9AsOGXJPVMZ2lpL#ohlDnS%oM* zm|ql|q)cJTu7c3g`-M76OC`V!h(eYHT7nYjM1~|yMW5>#vIyQH+5_)zIFvXOtrQxo zdq!*-j!XHJ+%#}z6OSyil3vCL-!mfw=eBqjv0H*QQ2AI%_d0_!`|>hy_5%MnhyzE$ z3;%EipvkX?1j7C-310DZdg*2DuP}ZpUSkKe)ZVxT!I~U=9Quma-Ab{qO++x`O$3X5 zXJeg$)I_x)J3TeFV(|WudZkle*DIYqx?X8OpzD=-c~h?=V97Xa{^t>E>UAz+mgv~P zdWKZJzKG~oG!#^?c`;N<10oLL?*vgcK`_u1AziO+K&efX@9_7lp|oR)tk);ux2z>E za#$1_TNWq-N>IIiGZJc2fY&t~5@VvS*CVTNDkD;~2d69X$Rb^@H4!03;BN*Yl>Y#0 zpz_i6ItJrQu^jliAdak88opRQs>`rgoMEEGgzKn09*vba{1@6(n=X}>_}K9xNCUGH zpF~lRRvStjjin%+nI%5ON5-s@l>HJXHW$NO5^4FMiBJ5%4IEij$eBx=9)-$JF$nP# zOkP;xi;u>mMGbU2}#5v6Hhp1EUw|1@3cwB?v zXYjYug@>aWyf^K@Io#h5zIYALTLg2$X$=2tuR4p#9+lN`KwoG$Fc9fmY0W8x-|fsy zAyxbe{144h@Za`d7}Kzd$gUV|W8)N*3c7{GYkNAsht~u`Qd9+Ak2sWvz-h{e?_Z?P zZzk}1JwM=j51ZQ^q{odiCZ@ek1(L^8#!(5*0{&F6vb5b~bAFF?Q)PP-@HcYld6)D= zdNSrHJx76`%caN83r-Qwo&%UPQt|x+{5Q>UhnvOTnuK+7oO)KH(+H7|RPW*X2sLc* z5t@>CKef4;(+<-yr^5`(=`ekQ9A*GqZYVbY1u87#Fw+nnX zw}m)28CDKsy@5F>!5`x9V;5Eq^W0`Ec~XwQ26Tg9PFOokd%$!S2n(ykd9g7Z>@W>> zC>5oFCu)vy7zZ$`XaMLj4F@~S6J7vU|iuAR^+}xtlS`5e z!#F4qPVi0O`+}8ehpDwe={XPlS}r}xVPY^?qvLArSQ63D8Km-=sr{X`iAc&wqEXNv5ClO7jR z%Ts{Y5QQuYYz8H$3m$(BYTf|;q2W;COw?WQyRe7^#TVdQAs$(zyWl6{QIdBN8-lWw zsjvpVm0At0!Ww|%2VN?OBYPOSGZb&UM*>lQTtX_I8V7nmv{qIiRb4BqIV@}CMGnha z*-T+Q;GK`u7E_9^BG%N(I>c<#v4J-kQnm6fqCe75P_0ZIEUacg#AW<_Pn35c80dwN zu9dC089bXP0_I0xla!%Mk+o9d9keh+DGj(XQOL4D9Yh7y${$#>6-|J5FdPzNqOO&y z?S(~xVmLTsiANUcT5)hgshE%0=Ylm*`RIXB-%jAX3VcrxN7jlr2}B<~d>OU#E>iK- z=-Bt6wLnp9$~^Vl8_GQO=}M}pmDoNw|FQXdBG%MORm9ZOv4Q>!sanZGbQcW; z)k+EE;0lZv_)>y3jVMDP7`TrpT`Q}a3hM`=tOWd`p@bl0rN~`S;cQQkr1CqyC3 z0%s5vR4X?UQC^pU|7bWQ#zb8!gKG$j1ceu+6@iT{(zWvJuRvlEn@R|$!W#HWvpQF{ zeGSf|z*_}zWUcW1az47bFRW<*)|8k)cO$9c>eICml*85MDJX}lnylz31cG!E>@IhRnGy&YkP97MR zC>?e*1*OA2ilB1Xi+M4tL|VhK1w2#m*BBw~u<5h$)<=U7Pr=e*@wRtsOAxFb_8pWe zDf*C5z9B+6Y_k%$vmJ$U(E!R}-}GYWYjlw%R@e`*l*^k%D3{V<&%$z^N^x1R!=@q1 zsx&AJe-#i6du}m=il+|-Lyc^T(oj_{DRA(Ak8CPKl@&G^ra;51t_FT-s?@;2|E*y) zYj9p=4R>4(Yh4>S_`fx@Ck;ND>-cCGm^lLz5$|*l&0oy=vl-t7n(sjY(;tRWPT0YD zvqF9MJ*aJ5wdNiWy-p7twaa$M@@)QMj@O~J znQVvF%J9`4{-^gGWIH$U?{%JmfF~rhD{9N@tigegV}w0<36|e!0o(`ow0u-YUWcBy z_d4|X7q3H)m}WaCiLnQNb{;gBVR>oYAS?tA!Z=|CsRwlaZG`W}6e4lUsfjz8!|0Nc z71EwKVTFC5_=(4Zc{!qoZfe59suC7fWjtva89+o8TG_LlNh=^(m9#j{5Adz9bc*-2 zCw^G9UL-{_@+Cb)ldnaB+OmlDI%J~PnUAoKg4rCA%@JOQRy?vDT7mMae_BA!cIbO9 z*$#!h4t-uE+i4Cj%~oOh3<*AtAt z)X7LRcqNN89D?i=IfHXK=HC&Nwb$MeR>?oURm4cW_t< z&dqc?!ucF|UZ);|a9ST+>-%!`d}vXbTy+HfyWQ3A1v z8VQ_3%~&0Nt&4=436h7vRo`?7<#5v*o)EVJ)vh$2{_7FJL zDSX~p6NUJi6u#t~#X}XPYE$@%a{@Odma0o>eb=cE<-Hz-Es@XyH@TK-;Jbij(4n{z zjLk27gNn3NW3d@Adv&aQe-udu$RsPe2-ZMKH4(=^IIl^nEB|yDpyuPSyz~V+PjLtE z@0wzzEZGN}AA9z`dR0sQVQ_wIGVPR)$nwn23x!2#iDV!ZUG&$|K(p$h1SoH!8IVjD z-AT3FI=PKP2LKuBqG?Y8Z8NB!azOex+(H)}84a}E*x|yW+7&MW+3KQO@&L`Q1FvB8 zLm(f!Xbr4slneKtj-zs{D?^6OpAlZNwmw^IHr^ zNf(X%3$mTZ`IY7xKr&qP^Cpn(@&ztmk!OewK)Si;&pm*4JB4LB);t!-WEY)|+jdL! znBQG#UIyej7j5$o((QR;lG6MJkhfj5><2)5UHt>bP<~GUIp?A)DM!6K#;IEP5y)K^ zoe>VS&);x8mW{w!8;MPo#?=}?`?mEcG!aOui~i6K=z!-?gIo(ufIQ}+BQX0YHMkk- zf@`54kijn6ooatrCv-NP?h`=fyXb;eKu0gdjB#cLa`YmQ%`V!Z6VP!FW-HD6fqdkm zbI2zr+$^SQ@G_9=2JP?-I_grB#`RX{eS@G^ptj!YOTVXz3=a)pJSp-(O&}NKyBbwU;ogj#lr6Vhg zmQo^GGen=gkPwM>wz6&w05*v+`W8kI_6cR;CL2N@$dER4If21T#2t>!`g1(OPYV=` z)r=T)IWIs*0Xjs6=_?&s7194k3}Mz7VsVCZQL{eI1Zg1M=xQxsl2q^vc0Sg!6$7-0 zRjlP*qlH5`6C|}+bEuf^vx%38nxh0``T_cfpAihATwuVTe9V zk`ua69MDKEboy9{9J6t8as?M(T?6>@WDtGCL|R6PTE$;)3S`4T1nIjbt~plmhNXe* zCuBk{B)cV$rKF9%ev(sLnPx!#qCC?FQF3U@%G(-9dk;aUj1V1362+mM&tvEN5`SGs z53#D1nN8nQasI+uLYcW_h~>11LU@FEKPoehs7{1kY?*;!`j= zjW|fT`8rrVMOj%tke|)xwuZib!)L6OwO|%v8**$k+BG+?vQ)G3JPEuh8=X!#SuaUa zYbx54h{qUj|1jJ`p4yu6aR%peNyjYUU34e5hBtQsx!57au$Og?TS%dmzM~aTub>^lR}D-@R>>*UK;EQ(KAsRPyrMkNf`WDgmoPAs(_6vy zBWelSQ3PG`aFbSLwWkR8-3%`4mYy?+xF(VSO$~xn-Od~c{HCDWO4d9C&vxk3 zH`xw-C&;V*Wz5b<%r9@}v8*2P{Dm5)9UMEJ-Ykg|*_VQFO$s|sSy&!lkHS8O?xBot zOkuw>4sAeu6AH&VS=hxlrEr21L9)##oa&S!+2$0k=G4T0d#;Z_vRa-y({&!TW^rz54?hQe)}$KmJk?I_&VxtoM=dkVL6oHQkn4!z9L>(ILl zy$-GHd!4-a&*pG8hrJH1^=CVD?ZvD9Yd|X7@iCv?@|VpTvYq1`E}2X*^j1KxLoWmI zI&Y^_481Wc+o6|xWjpi|CoBwbyyVd2HQS-Lab!F6Hj!+HV!SF$Z(7K9=v5Bc4!wmT z+o4x1c%972a57pg$>ueaY>x0cv=E-{(1i)F`lknMvmJT_KHH%%zNgIL%lt3H^yIeJ zq33~7oEgNV$ECf_Ob$1%M=@jhKN;;`HphD%3VWS_7RAVa8n=2KTHDNaXsy|+{%LhD z+o7kpvKiRScw7M_{S z@m>zwKkmWFluYM+kC24AMTcTdVJcS0R=o$);`$%7tZ%Hi5#@#TtreH@F0NEtam&+% zbwtFSN*2~9BF>M2{!tNkI80cdin!__xUWFOwaF6JaS>Out*}mrxZ9ZPy<*4xg-PS9 zcAWnYd@RL|oAN1Eojq~SUd4pk6E_4??cY3cQD0&5>xuiRoUrbB;{L$g^xLqw^O#uO z2(#>Bur1+(UQ^i816yCgrEyr=vtK26MbF;&7d`t`t!&vnd*k2JvsX1Mq~|C^hxQzU ze{at*)vU0dqkuU*$KXG_=cu%*R-T??@SoSRw?SXRnFwgKuj8$q33UIK6}EminxJw~ zFC*Gn`#v5sC_+7})r&s!SuQ|f$4Oiyta8OD?6YhVDEG)1@C)|rXO%2CdK=y_I;!so zE1_KZVbd+E&nT;0B~oXJzVy^cxoSA0uq4wr9z|BJHciH2MN1MWmnr@NFKilM(!!}( z(XBAuE7wj$Bf6x9%Kft>3Ga>sp}!%$i-hD#g~TU|almF8d?M1f z_;K!XbDlvCXX98r2Y6#H3SGf3xBTWrVUbF)7w`d1!HO86FTH#iH#8A?5y-b1mDx*S z1-q*MrYQda4o9)&D1nqsq~&nQ{fZI?I5`((6lR&_F1NUiJGz00NAcH;C<`bbt=_;m zrQFxg!*M%Oq$%7S#biZIhYBY#=ITa#Bjh(sw4KCc(FDzH!#A4YplnwxyQQ4i4t3Fl zCRP+%pzD3ocMh?EOZ0b@{-{b7sgn2%gbRlB9n0S(`D)^OMBmkrS{tH#B-Y$_M&%=7 z2Il|R{6CUl3Zu1l_Y^Xhi9k{bB?Dw_CAK;b^e&D?6CiCg8sL<zLN!hYlQ)&ZlVkq7m360b_>H&C=p%lzPdGM&RWftJ4425s< zR0+jkU5GRNGT_$@B|3+ekF_mF0G~0Gk~t{fY03|P?->f+g|Dk|AFc;*LIp4!j=?6q ztU?aTSDI20aBV}W&J_BPOk(D-1f``N;2wq|ok3C##w*Hrz_ScRI)kK4x}|FRdB86l zigX4^*@`ZL&3zy65kryAASnlM8ZqT-z&{v@bOuRzUMCdt1fG<|CNnLaK~k2Wp=?s!${h%n#0Jk#~=?s!mQztY8@OVR!&LAnBHDxj2=M6#86@Rpt)(vDW`-i2f$rT) z%<3^iRX{JmLkvYagQPUVVmp`aY`}{RMLL6|)Wu36Q#J$MX(-YeBxO>Zq8tT$&QPQ? zNXm&1RgQiH{D+}PXONVmgO!$ob1;j?meUy|<(8&Y223BnlN9L;l9G3b($XGqFGG>e zASrdUmWhC88;W!WN$I93F96wDp=?s!G z{1cT>alqvaMYar*Qsz%ZsRy`)p-5+tl!ltp2kr-030er_$q%%m$bGX*P&fv_)!ap{dY3U4-QduXI1h}f9NN13gbss2O9s}Ib zP^2?R%4Dr&1mMYrBAr1}&g@lMmH}RCDAE}u<*uge2K=F+NN13gE;^wv0DogB(itRW zqo(`~*jb=6EuBG94rxj(;3PwlErX=A-lxoM0QfOOkQT;1Px*o#6=_Cw7k2 z!-^+yxXe)K@hCMo>71b{+X3%3lxFV8qe~Cn9~}q$g`r3-++}r{t|`9&{@YNb7H-J8 zj?ryh;f0tcVUx}vwMfcxO{oUBfuTq(dEFNaXuJr-nI){pr()E61MqE4u_W5}S9BtbhAzVO ze{5>t|3P`2rv1+19Be-YvZa8OGiXx%qCf}C?~9pyZNxUwNPuRvRtnt+k~r`gwC1Nb zLAVFtewt#X9E?gnOqO733ONqc2ZTvO9q6a?wVaK*x+ZsAP`;Iqjl(2LK(LiTtw7w}AZYqK(D?9T$U@ z5k|wG#vmA*@_|;NK*v9c-kZ^~K+3yljToR4zCk0wXhR^)U9<|#I44fUWo1Tt0~zR| z`O%>zPKxv^bOw;QF1mOMWG81p1Iw-jve8AaW2q-`YI$7?dx0D|v8-(Z7k6IIEYVur$P{ z8!RcX0BO!yc^e+n9I;t0G6Y4PIB!BtSko7=gA9^V&w|Xt#c!+9n+4=agZ3XeY@C(& zbQ4^{o{h=dEP$|wpx<1xO@U$wTdMJaS-rvtw1iQr%a~$TQc-B+;T};ZUDX) zq$MYB=@fKetg65>@Oo^VbGbGwlk7cgu$8!cC480jrGrzScsZMX5dD;ftVcQaO|b?sTXbwr zfp^6oL?1K|kBp?Q)8Y)GuN#QkaOva{|3TaZ7QR%Q!MIDRz)5?BhykPWLs+?~aY8f% ztz1-?W^9i`zxenK7IneOMGWe-}zEjXT0p_K}O2*HBMb9#AC%r*cnN z-mZ}kRoev7Z8Rji!Zhv*)9w1dpjD>cZZPnXnuBjOQeRlhu6+`#RRk{p^h_?ep55^Y z)f;XFv`fRXH%#N+u#x>OI=rSZSbPTjjOJKr+#NQzm*9q%as=N7^s5VVf0$(-!WqkO z1TI@eVpF;24l&#QtB7j(k^rT-F!zX^?TlpAR5t^Z>B8J4_OPeo1|)9D2Lc-A!rUkJ zwcC|Y@H{|IxiEK%kK0F3L@d1t&?_#?z2Y#t(!Z(+{Rq&fF3jEHXuEc*lKuwJEf?l~ zae{sBw2}_N#jrfsRKB@moN7-&@5yPG0#we0xo4bZ*FuxYaD6~@{ZL7B*Er8Uc22=P z0rhub?i&}`dA0O(KyzG}JI5vV_6(KwT0k3Jn0v>S_Qz-#IqmlW9du#t9$&DlpHOLk z3Fw-EQ@MZKV8^1%6891PkAc$YYhj6J?O*Pz{vvuM*8j1|mg*mzfOsyEIG5~v->L?_ zCh$hYp_3($gLB9J?gyo(JMalXdYI_`DYbvvr!OhBOF-Wqq}FB2R4Q^8nb&inrE0Mc zfqufIG7!dEk`v)MhQ$ePt-l9;*QjMq8h4V>o(_*FJ^5DQ(N}CT*Tj)6za;uSA7co| z%Bq6Yh=`nZmspYez<5v0Z#w@VJszadlAN-h`;C>dS-_tPQf8%b2UyXQfrTsXlQse0 z9i&HD#>7gVL|rK-K)Mp7OcA*stmnCgR9WL6AcZ`eGp|+}bLx8*l~k5J0z82@CYx3o zcY-ZE%||Fb^?+vu=}`$Xv8CtT`>I|a2WeuEGD)mRgR^#?YIBepTH30Jp<8c{_hU8iyA9x11M&wG66bri zR}vOoPZ1H%;YtcNS^eClYEJiFijxYwrs42vgXXk4i@SYEPg~&K4TqN-H0NnFXv`T8 ze3s$xdV}VS)M>2-zR7TS!9jCYY0iG&M-7Kp95iQ}=3EExpSUw&q;d_9OtW zWH>y>=4Y1^S9qGAQRUMDINimO(|>sJVTC6XV+6LD?!uU4IMRO<=i1jw&oba^4M+Nq z;=G0if%Uu%{D9#||52RYI;~5)0-S+eM$dOoL4Z4Wj$wre`Pq*e-tMa z(^%%*2ku#`^+^9woVPA2A1emDtl>!iQJmV^o($m44M+Nq;#}2w`T!qhIMRO<=jW%C zJ@bGsH5}o5t# zCd*m+kK#=FQgLblZ)`Zye-vkj&e1YLe|52Q9EHrXjF9F|SIMROWNSG4Rud zBmGBlx@gW1!0#E3^dH4Jjr)r@E#He+`oSjiF8xPwifMZ)1Fvg1(ti{uMRPg;?`=5J ze-vky=1c}Y*Knl&D9#GaSqFTZ;Yj~coW`1S5cqM!k^ZANoiyh=;J+G<^dDYEe%Euj zmCAd>28@5O$-GPdQ5^A=^08FlH4R7lkK%lUK|hyaTj1RdNBWQA#2-Gh-HtOmZxaHRhz&KS+v5B#X%NdHlsbZzr>;6E9T^dH5!cv+?8yoB)&Hko(nKZ^6C z<|G48Hyr6dic?yrl?lAF;Yj~coMxIc8u&EBk^ZANT{UMF@C}9|{YPNfm3<;^pfXm%-_UDL~k=t zT0L4n{l>Et*9mwQd=Stl1|G;uvOjt%1|WISL|Z<(DJ<$xDa(pYs!THtzRN19>en>6 zji&gdnxeqVcnJzN{|_Ad0amG#YKbz4N!77(+93rRiws0J*N~jhNT{{wjOcy_`o&GA zs~C&u83y9p-=x$4@eHC@8;DOr35^un5xv_$JmF4>s{soq)<-wWMR6SPS)znsA|kKz zB+d8?oIEr!xeer3gLa^?a?*l=SCC~w!%!xiZ#m1he8Z;Wp2Hg`!LaqmQC!LXu2gFI zur89!k8k2R;vNXc(9QlK?TM3ItOY4K2zAVmG%L(g5YH_q$G%|X(oX)Ef^0_dM-VLZ>MOX>@@GM} zaYh}!iFz*|9oULRX9& zi6&sRF-%^pluAm9-iRJ$pr%kC7*C0$(DGvWQr9sJ;nl?j;5?&w3N1Yi97eYQ*+J+m zmTixf`0`~eEMYNv7|1bKmeKfAm=rVm4Uk)|Y;Te+`_s2-mB_ONS;xkj{juB({fR$hbdpK@&R1DfJLGy;I>4e0#sUP5L`a7=U5>rg8`4rMWJy{`J@4V zD=kk0el8b&H}zd6e=sZRLYk;%U9Te zs(+p+_W}Py6t3^bX`Q%yO8-T|qN)**a1&Y3mXFqE2hn?WeIXSJ(W`m?4`bf}9!2%N zJ$Gi4Y^a-%z%C?^gih#$BnE_l2-2j5(0i8}0)!5sOHq)jbPEFdLr?)liXaGz2uKkG z0YyX+6;VV~^n1^_Wp@MqpD)idJNKUVJ?FM_%iNjF^gvIJrhp~fQP}9ITJ&$|xI3Rf zIja_<$D7@*0sU|XpsMe6>|2mP41mF*WVGNG=oKS#Rf~&BkW9}bEg=>|vPMhg=Q^Z9 zjMxJ42SE^*&PQn|tFht~2tNjs`2X&jf)mIrCGLY2gVJ!W0$Uyu3~OE+8`0MsjN3F8;{kFyWxA(= z=b?v|Gg%Porl(@V(lNHgB^IOMIlnj2yBp`>bYCTr?}H4dXP6U<^P|qa2lX9mC6-tX z1|DZXE)rwOYrSsg7zVhK6!uv**-I?72&7Oq4QiR3Os1Qrf=ss;zoGn#{~^He}0ReF(y6nZ)UaokQ}bh=FUHpo3R>N*~$#sIv0 zBF;Hk6)&-H)36unrg1UUJ!dNYPQY)bdpL(>k!S-m)J?yc3SG@L@DBeLfGc~*Q}Dh8 zB#`NjB|#k)(Cb1o-SmbJ`~v`q>9PJycYO-df9_B6yQucx%48^(W8-nCpQ{W%R{dx_0al0 zhu*&Fw1UvQViP*O@Y+q1v3jY`>2;f z>c}j5ho&D7H%hw_1a z1;QJe&6SZgo8*5$W^Yv)l5%?gtmA>Kw3c&4nTF2l779WQfQ>YP1BT%F9}1mSf~vU# z7+IR-ujZltH^yd-bb~hqoVA)q0j^K`we&C!qJ3YZw@TP|H^A_}9GW_ZeD!qBdu@S6Z3{q04@F))wvwbiCj~rtXWeFfv_LoQB5FAR+ftz_&kC)1LY(AiuCF>=TCqI-&9%SfFXG3WoKEp z9tA57j9Qw-0Y597So8`ur!g2kHH&P?UNzMJ#|2xiG0jO$j;;81Ppp`>!{dejF zGP$|wKiO1s`&E{33PiR%Q>Y$7>O=WS#5>~P=BDylS@exgr$1!l0_6dXu^hvfGaKLw zn!ux+DPtDBE!o)!aE~VVJJd|-P*x7TqS(0v81;#f=?fJcfgp`c$|HMG2mb}EzXAep7*C6dQOmZ;^_*-#|%>_;GbOv|Nb&w}qdZ6NESgi6Jl0_oG5O##dED$pEysj~Aj;<7+rQqc0ydy})CrPOyKz8?qY zmIC-kcLJy62Y4FsOB&>{Er-6?;JCM|F+2%;Htae_G6Z{Du5$$uv^=!cz&}~^x@;#7 z!ZaM5kgE4#mea@odhD#$)K8xPr<>-ffefS9t2}yT(F?zw!GOnW3Yqdz%<`$X(vWu( z1|IyR1rJpbUChj+f}|eNRW?3-Ji|$R=fAc2iy1sN$}cXAX6+%QJrN^nd#I0psJfXS zxq{V)G`JW#%$5W@gO6;;u_=c>w&9$4s7>?53~5t-TtnI{!gj{7%_tczK;?`UWJ;N) z?{GLJ-bHD5tiiwEqYUPwDbfw(=Qd2zWA+Hmb>@L-dB_s~WNjehYY^Rt z!*4t*tS96?0TTb z(A9$Zf`{%gB$QP(L2#I>>ft?xJ~-lxg5f*~#|fD*eN@ER_h7<==1F)XtH^{^m=o4L zYB-s)-cvp5AqEZv7*Jt0pnFs{^{9F<@Zgt4RF5K~vQKp3AgSvfwVsln^nYj%_G`-^ zYwI3GUo>$(d8qmWJ&FuT@5lZNh1rtoQDj58J-sf)xsEtb4yCS8P)#DmXvX>z@#4Fc zZ~14eSu|tG`D7Ns_;xy4eA3P0*w{!%eDw7!gqor3*67p2bN+&vHOck`w&}^?} zM^2%ohBMl;cB-HSN?w9}ZwjqZB!N~o4-h6zp~Vdm$mZCIRDu##Br;GI2lqKHidl+H zrp#49)=#Lcqf+=!ta<`StG(FO7NmdouMlgRpmn=uw#H2+5xW*xuAn9RWB6RfbU~K} zpDSDNKmN1(yJiTwKFAeQ@w=41Yhle4w8lTJs8h*UiCjTz{G-5UiRbd5_BxR(=-Pqc znSw6G0+sD`GsG0ga>Zi&#@-J>XbwWN5t=HRBJ`z7s-Vu*mKlOB>T<fP+q#K z$rYWAMk}Q;PsFH<>hj`=LM5Sh3(gmXRBUb*F7t$FZ|9&ia|FG;Qk1K%z%^V(NLI~6 zDJ$&{tP}AsIS|#!K*iolZC<7E`?@~HfH8~fBamV0g5a547r}5~Jsbc>)8anEFVB6MVy0~sdE1j{T3!+}}e z&KaPl`wAhM<#+$jEW3oxa&?5}iM@HU{EXT0prIj%ST)i}s+?TS-O3D-X~ofI25HJ?p!0jDgD_ejSII_p!$_*0PfY2`$fG z7?HD<(jdMM@za{^a51T=+aA6o*)^kQlBvSbh~sZY3bwLeU|iD&LDmW5iPt zpCzbQ1eurx6aPX;8ABEkk|wSr6lkIVyt*q)%ojaWHBUrKqm|p(7!(5ka?Z3t{~C`T zkf(pu;&0^0#i|N(|B_$gRQ;>AE&EqiE!q&A11s;~;2uwV7IJqxHDnmZ1BA2T4k2`Z zWc-Ag%`ied8Zr@T_?J;p2_Z_Ke6f@Z1w(B_f5JknSwGc6~EQN2hZz^da!y4 zf@OjR76^zN8Ww6T7X|*3MsSJ3f3F?JE6)V|H*H8$e(~M2pgk{&zkxTFDQY1_4QV7^ z{E&J}6@VXtmMiEZI)8I06`^E&nQN-}8pX@2TIyV`puKsiv5_yCsMB@Tzs*W7l16wP^@!Ak{6124(nvVpHFn@$}W1kpsl&_ssu1BnU97{`5W@k+xsIRn<0Kd1b+)f8?@>|#g4-xGbq`9wmA+! zt{95n)5rjrG}fdD4s(b)!3~6DC&;U+JAu@qP9U|Y z6Oa}qIR(D`xk^%JKIAEJ{V0|62*82`s06zas?MRU2({zT%Lt7@Xu6=ipS(sQeCSQ1 z07wG^5t0VFA|ws8Mo1c@keyX5dxCgW_@zCqRq}EcS^|aEOE@)FQuNF^2J&jt1QG3Fu(GKGSYBV8*8MVJa zk$Lwf)pa(DaRr5oo)!tV&4fgVEjfZlix^X@*Am4 zej}C1Z-SJy&qx*W8L2`(Ln_Y+%H&M;lORRqBT|oiMCy@`klsx8ksuA_A5w$-Lu!zJ z$jp&{1Zo)HkSgRGQiXg&s*rC4sc65DD&!YZh5W)_9_b5HxjxAkf=p;XkS53vqzUqa zKoivVFT=!q5&O5`HV&99c)b$b_S1PApq%1jdy)S_rooeGFW@jt$^C#E9HRYz=t9)n zXg?rPsf8#tdrL0w2c&`__XN6di1q|#Av8}^R~q`-P~HungJIGc{VA5qIPzTH%ydX- zdG26(nj`3g45IE55fvg0tYbUfIwF!X~7*Qml#~KD~@Rt}wO#0Px;c+Maf} z3aOVXCPVfV&|E=T*olxF!w)K+nU0=z1|tc%kV*280*&FFI7DOkWQ61xo>x_m;Zlpn zaH&OOIBC&z@{>xA7JM|Fg#0Snm-cXzEgA^MDzSVQ-VOh`EOQ-Op2e!kr)l~sg(5$I zHCrSqLM~Q|B%J>JcbcHbFf^?v${*G_?gXavc@XDwBIik?YZr-W5Li=kSX@wxr_hrc z`JDITu;RquT3mLKy*4UK>)751zrCtjQQ8yAUI{H$_Ri(8*G1X8#rEF!+sn|3(w?L2 zrE9UWcPo#*e#%}P-i#U6*>lpAcbrxX&R-ubR`%TS!R4K#?6qclJ^l7x(2BwJH%p6^ zy|_H~W-EJB+1^&ay;rqjaCt9jv9gz%$KE1kZ!6ogJ~QRrqZOq+m#V)VTCD7~&SP(r zvUi2;wf5V4Pb&u7drOOzy@7e`y`}7V+EaV1^V|DOD@uE|%HIJkR`#amvA0LrOJ{qx z{Pup(ioy9iqs7YJiahqtD0?H=Uiv9hfBEM>w151S$KKXF_P##H-NjnR_7?i>l?=A0 z+apSgRsN3Tu_w+;dnef56~DcjT2Yo)_qVcItn6LMV=uq5=gFk@sE*-8jR#G%VsLw; zXtA>Qhp~r^I*bRUmA!Pfr)>4qO2M{TX|b~9Nzi=_k9&%ym9dw+F&v^b;^*NAZ= zF|3glR*;@EbJmHA{qbB_EJd(q_{B^_N-E@&ctqkTQgEH9HyV+6iWFKWUdWF~0!0e1 z6PLRoQko*3b)x$KM9NSkVx4F+43V-FiCiZ>ScFJ9iWFHVvN0fsm8VG5I&rifA{8hS z4FlZ~sYDTLo%kFRV^|_Z#5$4TL!>fAkkMgF5vf8E6d__fBGr`6h?R&`S2~+}BT_@@ z{GNqKO{Ejs1Cd%3aTP3&sd2{{^$cMlYrS}?1Hfh*APP65^*Zs!TC{IhQYrkRc%n9* zIxR&HnR=x+-Krma#&gi(YDfHECbpYj5m>i~U=tTsAIFE1co%U)$!=fZwZL`mIosKl_lWYBVdl7=w-Hzr6X+sJMRN1h0; zR1uL-jb7Z$;h zQQ=dmBj8p%kg?%Uk%t!(O%a(IzP=P9UI8DqriCwQiHJ`Wg|+G7`O*=I73C0_6F!3s zloL;bwlI7NS}m-aK;N)dgs-GXb&jkHe~}_JII=N(6GdurWNY|ViqsO-q4Q37JmsJ^ z=k5LQhS7+mh{{OkpylL87ToEZLCfb3Z+8c^Fdl7@-xZ$O3+DoTTA&+sYz?@;E5#A) zN~q=DiM9*J20Dei!9sYqhLF3gf-gZb7eRV$ise|&T^J1So(xG?ZB(5%pY<8S?(=B& zd={Ct+#h$+VV8Tt3JOy}-R=b@?6C^JME_ z8J|{d3@M+IqeA*W?pA`0| z@aaGYK7EkGr-RG+bZ7^kKKz7Fhi~%fNC9|3Y@v@T^XcOjd^*~PPoIqE)3FtN`gA9s zj-TPviQjN4S;#HCaG8>Y!bL4U=M(L44*P66TD9=^i^I^Lo~(iC>xY-%2~M*~2;QXT zFV&+bg11{@IHp};AH7V@M{kp}Jm)YT$Kk&s3je-s8Kw-lP$gmzC>e1>Mp=db?2Xxv zz$U?9{GB2&{LjqB7~Wv*DMF`^D*upYTL~vyfMSdDRdG=V!3@o@66l?wg+s-}(O6MI zX`@Db#FMEf{L=%Re4+xz#F^lHLL3SNra~p{}GI zPK#>6N@z}XS5%}g#)JbwRpQJ88BcQ{n$U#mGe%5agO>y#-jZOh#Dv!{Z556aMWINQ zG(;;(?b7{*_qPg{5ib>zie<)k2EBrK7o{Xal4ZquYA-@!v7Y3;&(bO798OUU6VYZ7 zBYY)szvOr{g+1aI*e^%@*$V$U7K2bUPeWFD!XqNZ6~JD4U7e5SIyo#@JlI5xn*l9R zVP6#xV?{nUA|A39ex)ZQ@#1ZSt)k1Ze25rJ3CM9NV!}cW)3_8daTSN3T_>!FDVv)T z=f)z0bKl_br>WpfqwI>Jrzt$WB!$C%!4U3^Sh5~Ty3baJd>N%{x$hQ4csYgL?)zXy ztoR-|_gG;cuO)?*?en3mBcNqf99<2gY)#5^#aG%Om_oyF#RQD8kqt{OgyUvm9*@|* za~uXhL=zJe5Z%`aBRDn6pJXE(HY)lStsK7lKylj0;?+x__&aXx4Q$qbZ#i#Q3ES8fX>wn zEAbQLA>!-J`6aj>z%~tX+sOt@$a)mzjJHpqb|^1rz+vn1hsXZPNws0>$44gMLy>@g z4Kia@`K=2q>=vblW5__QM&jUN$poriYzt*u{5C~qq!QrjnqpNuKL{Gb?PE_#w2?++ z7P**K)tOCTqKv38S(1i=lug7xk!gii5b+oZsT$@1Sw^UZ;;^gYO>Jo~P+4@CC=0m- z@Y{X^hp3WkimGUxbhPFtKtA)MX(fOri%fV4p*MisGH8`Y%K%Liq3EJ6RCPWaoUm1O zA%>QS27iS?W`fsLY(W+q1Md>dAypp}tCkxJVjEFmt~8hp z;`9f}R@D!%2#)9^UKuHUa3we!43AA!?_UR$-h$p6{vjaQp$U?XRsF9Xzz2&%Nb1{% z;az(IA0^&~|AiLN`kd95P$a8*H8gg_Y*BkQI+?+#_I&iC@Oh#SrUtq}Cev?0IQ=O6 zSuqxA_cu6?I`pIP#o~K}XBnLH&*e+FT?FYb7nRn^`QsJhaQ5iOsYpzxI_Cm@$vq`D5e|A(jJL?T2Z}6minNJY2y$0PXg}W2*r^YmdMbMhz>@ z0J>n{5MwqC>^5BUOp5r$&U^->Xb|FpNLJFH$a#d@`DLm~;}PKX ziNjT&Jh}itbXdo(P&yW})?c42C-K%BF{zakD#B|LW2?lsDa=;@4WsLb30 z>_VIQhjoi7*-kDHwh{xlJW>2sl8OvOZeDgSwug8jQc4Hj+;C)PV9x)XwNEHcU*N+H zM|KA0>~LzYP@Fly7aNZ33=VozWFyfVPQhut4t%HK$h4T#UTi?gnR5d8wIEKw(38aM zilP@T@0k4$n1xX9vV>-2v6vX~ld~1I#l-R;)eIs^4qm|gB3hm~&4G6@95cdL$pfpP z&SG5E#-hGPfH1+3xST0HdZL`S*I?Phb`}F(V<@tiM2TqO8a-Qab^`w-h!a>$HfW2X zm`vE>H8AfOc0e)N>_FEhbT1|rf`*T@xW#2lF=wpnFlJun)CAtpZ~}_CEfslO@7mc4 z#q0pW5JTb#)Xz*}=1JGPy2LZVTx!@%l*MM^byrI)ML6v(ART#-7+7{vi5wtW>mq#x z`tQLi0TsXrctQ@Lk8uKpqi}JE!|(EP4I{H$K4e@UMN9>$WiT;s0UrsuhtYrs;{ITc zF>J05>Ed5KhHLUAqv zzZt}ltC*yNG@LFC`BBeSA;@QO908>cXar`z79z9*)B>~Zf3O2vg7hL+i_=(Wa@`Jw z&di7C1vCdIbuOgfRHd>8bQ)6gW=wh}vu}lXpH}Qo!2I?h?0|-06+3k4G^O${=ut&= z0^BhCBi)bL(V;it(OiNmU^aOOJ8uapg*F+kRC(a;5z`Je=xxKG++K2AA3Y!~LbIgONLOqwT99HTHsi z?jaif21#(&g|B}c+7A7Is^o95rIV6Dx%!KL3B!EkihYkrN-6JylqA|xiTuoV%Btx< z6{MCp|| zBqiM^EF?t{=YzD$5Cf7XVr01U)>uW{4${YlXp&YLWwW_q%TT$Lj<^cuuMe_i`jI7_ zR!bGJKyg$k4q5boj6MdZiC7o*FBTbWu{KDL8)864i5OYU8S=Oyb_Xfj5c6h~&F&5R zu8m^P2XobfY%7V0C&LOfR>bWf9Wum#jP4nUj9v-*rL7`f0_i7149F-EBkMUUwU30A zK+$o?qUX&hoBb!OCH_ zGD^hAcFu+6D(S5t9Wunc8D+Ee+>5c;=8Rqf^QQ;dRuY@-;S_4Bh+**RVmKaX`or*` zi0%#_?;B!3jjrv6jIMDX&%g{qUVk2>?+uX>QQd=fs3W$yQ!s>Lprf`y7*=Gi%$70#m)dT`#;!$Ll5h{?Q}%hIFG%2ZB1 zaJEiVoUOnQ8IC_E0qj#w%Z`eD3CutKgDtDWLmRL$7cu%#UB)!U&dMhkoMX-o#6QPS z4pL`h$WL9~3s;R)ug<1d@P_Sr6pW2(TOY$?Y*f1>K4tK|p{TCyIo5ADp9a!5Nn)c0 zt-i!#V5sU7%6k@mg+h0NHO<|Awd^qHNDC~9m5xsjo(BmUdg3^CEz5_$hcQ||$ zP{2^vd)PQYTp&ds1+4g8pF?9*vnQoSaROMQ4g(XGc?D}ow&kHhguRHodW!a3NBJI( ziY(fX@@l!uJ}RuD{W;%tAA1hrAp=1fhQr&42vRs=5(Eph(ANwI|5%Uq$f#kFHUc#{ zfJfpBao8L<-S(*nhAgnlgd5x#)z1`h8$B*#5fc30Ht2p%FV52aD>)vr;idkA@` zsOjhNRnY3uEyZ$Nv^J=WcB~$~Q`parK-ScL^q71dkDH^B|L}0EpqKHB&|gxh>w@)hVXe24Y_4E;=a^QkXzY} zxTjMC|4cVlF=gWzGa(YORCbrj@j!sAAy5#8m9?kdiMD;j-}25vX8h$DL_(p@a) z2;C%#?j^`SL?gNz6rE~QC5lFLJ1F`Qdlg6M9#C{0dp$?!=1_E9djmz1E>qU~iX2qw zWwN*uiLb}uy@r@2;eq1#@9=SgcL92z;2#*KMPc+15q1g92B|oYpUZxD(_rKwOH9OL z(B&bu|G>{b1hetvYt)YT;B+_qD_D`zxTT7NAs?}=r0RJ3Cwjc_L@V_a;0+Cjs>Vt# zRs@`<#kwzGz5}q{2A4LzZw~x5;ln`2S(pHPmf<9EI=)jV#g`%%F9G}oM(wr0U(p;Z ziQ%ur{>$jmXjOYJpo0XU|IhR|02E`uC&ttrTev4?M2S-h&c2 zj|DW@uYKwdXj^ubv8ryC16u9ZX4qxF@C%xPw08j7ZL}NLr`B=XuIm_92>u+9k1MqC z}-VaT}rl9vun^I%@pg7Dtx=^@+E<;YYYz}be<1r6k5 zdsQ>ZT~CLkKPGwez*+e)-al87wcnfu-{GM-Xuk!{5yPV*a;y0UP$sJ$#6!^01zn$G zf+zA75N`#OC9lByFj~&lTw}%y&e2G~vx6vXMovzWJk_4%U$D0yR&aDBJPw9KRx0o2 zME~f@XpaR~b%^T_L{;LWX0no+?S^{CkRw5<$19%U^;l7k~h9=moklOR4tBSF} zr|02RtqjiIkoZB0vkLg@hQkAgH1-p%|MQ1-$6U|tbO@v~4K(AGSR{1;~y5D2-tdqQyRX2gxWbTVEh$3K={y*^5*t-XgJ1x zaRG!M42f>0`Q*Jix)&GS+4;O6ELoNDBmfTS;=FeieLpm*rD}pwfGTNNUGCCGSaiOy zGgyyO%HlELPZEd6C@xXbyHA2sG;CS6D)j*1BlB=RqH%GUvkz|q=T@8td>L`L33!S~ zV$MkCv!l4RL}|SNe3!8!Ipt{-9OHPtSKe?6_@z8{m^0ovQ(ooyE^r&ZD)TJuRJnsZ zzv+5}dI7m{3H+2J4(CUfi#aD<|3ho;B2In$G$T$x+3z2Kow8x)(FSy-BKiOyq&Zeh z>}hpP6Azc6Wp+&Islw{q1c46dn>4EN)i*7qt$NF+39H^B^qSPRW%1)Zgn8HvTD?|P z0o<*HpBjJTifmdgu2j4|yVt^1bL)n}^3Eofd-rAJZSGN|ZWX0vzPAsr@{5Li4SC-Y z5R0O;;`jFB1%J_&@!<65k(HnN@($qjd}_~6VSpC(-o@Nj{D_x#3AYJ9N#U(rufVR!`(S51cY8ew_YiQ!c-e&O&Irjg?bmTnR=Az7-Wayp47+!G0*RDD}) zMtHj+mEe(w9!>DNMTx$`iibda3Y?xRWb;1Bp$h|VviJlgBXi<5e*Pd%c{V{ahBsYA zeukl*;0TO`#c;?R@)HN%ref@TVO1lzI-q2NS(~Q>Z(Gs-N2T2gP_teIK+D4>&mZHA|a z*Kx_h+BX2*@@vzK;r*W|Q$t=%ity@q{so7s7Md}TeT380pKnC{tokBIOLyxg7Ir9Yr7f~nbkwW#7fU&ATsj=T4cD2(x$dC!3Jd@zqG z|A;Bquzy6RwgKKv6lwrv>L-}uJCxqGb{M(|&q7~-bj{eR&uRW?h_mc%Q9`!3Qv*vs z95Qp{1U_c-u42Mf8ZTx9ZK8vgm0XEU# zoDluU+a=z7&KnrW#3B$@84`K5#Sc$-qnstECb13JPK{f<9`eRI2X0{)r-nEI=q$m~ zyPw3%4ZLNY)mSc-B=~1Qcl{z z0eHCgwssbNs@x$Hc&|Jh8p^#roLBx-U1dD*nZ)t?1P}M#VNStDDy=oZH|4QIL%DaX zQvp}4**Fh9)M=(sWY z^Kf4k_#?#em)(r#ystC@&GnFB+(Qr8M(xCwCw9$ZX`^IAOE80<_^)?ISOt28W|I7y zhS+=S{Wv+i`cHt?9HzaP0(~0P=H$@-&QmMQ{3@gXF4~`bIINHvN8u_#X|a zO~0upVbQ}UCL`RL9LH|81w|=Gpyf`*EMm7Mf#rU6 z6~gT(>~?=q9N`QKd+L&wotcgBI2_)olq)IhJO_fsTIicaNYi&Pf7tz=Ks&u?kokn* z6@#cNyX6zDV0AArr}v|vHm}+mDblW&{c=@EEr<4`>|vC_#J*%K>zOa{b{?3x3*bHu z?+UUf!O_DHU_%D+sM^>^z~NoPAWb0lxCm?{oPkCS04WBnJID)gVq*wekdVzu;gl{A z^w&b)%Vf(#79>1vJfN8drY$^$%vu8J%Rz|Lt~-ztTl*HEy&9J7m-uD`kXK#Jg+(=e z2Iv*d;D_g}$`b~F@!Ap0l)nOT(1@H_AMqunS^4pxymbLP;7&2%35LU&i?u(aRB=4Hx>^nCkD zJG89yeEX~J9461VzaGS4T8P+JTcWk)v*z}-wj8Dfhy5+3BA+$4uiNko*~{$jc$bt{ zHTDh4n<%zv5bXRRTq$_|7l(HtwP0JU%wf*BMrM(Hz8-8tuJK29?b;H_60P%X0bDl)Y7kj4tDwZ!)8{#_P zA4yxnw0yDW+EeB#IP?(=t2iXg&qCVo+jY^ML_EYb2%<9kxN50oi9%`6 z#1W7crqp$=zK@F)qSOFfmni;JlERlFl_t(Mj2vvHJ@78tj3wb#&TsE36Qcl)*Cwo_ ztx?eK;Ovi4+KT}_@7HFyhjRxN$r*SP&^vx@dRD|9<}AZiKjdgbkeAgx(g2mRxw}q@l;xz6Es$7hNa7gT-|Sr=eN05-i1Jaz60kfp|%R*S2d&-YB%Fx(Z5hD0GJnQ zBVZEi3yOzzqpL6b317N@p*Fl8<}w2HLX8A^p+;f7P@}M3sKp?hfW!L_)&E#N5Q zY5_N5EHq&D9VpS4Exbi34Yh!q-UHjYh@Sy)fxs9B>wt}=n6U_oH7Z8og#CZW%2~c$ds|6f=fdRi zvmeHZaByGH>P4LSz?Tz;8jo{o7I336-`cMO+Zl|j1zhH{Dw*SezaWY~D{28p|Gm+R zQn?NIK2iLs=mp&Q9A&0xBTOqeR7>;vu9efch%!+dP#uEV%k%=Sd9>2b0Myy9trl?U z7*RL_*?`9RwbcS{aVrczl)vWyt?+BB1>Dv3*bpFi8=##=TQA@?!wJPF5Pz;UxhIt9~4^>PVzas0G{r6i-wGp;0i&-&xfHu2^qnu`7rJ zg2;LSR}|Ypoahw5&jwL^BsUAVi9RIyG6-)N5{)Nj0oS1@@PoiU*0@=~&Bh36UxxT+ z4f#hnOD*8eVQRJ=^zR}#WWjj>N28#XtQK$|yFsb|!lQ=7wc{_iUckLt1I)Hy^$upz zGRQ38?qVJ$ReJ(R^N461F?a#@X9P&=K%fCgW{w=>VUtv9)F9lM8vxK#5|q@w)3EfR z^|~m&D;yUHP7a2+;(Pl!2-51U_&!>(IkaFa{yyc7KdnJBE0w;g*)p^Y)&t|KK=ono z!)Q4R1ueLQ@7Z{hums2Y$V{F7_h$J1pmkHdbJ$(Ap4^g+E!fAaw8vcQRHjOfb*fN) zqS~T9gp-!9DXuYpUm3p8n zep(bnCSO>{wtn~9ss@R&#lio!h0XyBLqgd?YBQ4?eusiACI|o90@qfUdkb5j2T@gd z-ty;xga2)zJLMtjtJ1i*cGB|0=N{4l+SAC*`{7PHkK%lpAzi(d z_zXEYhr>G*QquvxgXC8&^<^`pI)Kw0Pr~3}g`f^l@JH+xLrIhaT!Sd%py=BSk?sKP zaC2@AQJMnIFq9okksToMDIu*40X&f?lr!HfP=Y$Z*sCzJ5coR7p~RV}JHUI$5h;py zz}ZVY%8~8>Gs>YRKZEq^U<>@zgz5lc*klmD0~e@onG;Gyb^y8wj88Zs9(C^`C{Eh? zmJe-}MMzb*%5o0VSn4!b&0*OpFHu;x%0Q$xj8fbLscDtTkUXuWzBd?Bt@1p?FKZ~M zRVEL?2f2ZW-S|07l^J!)R?GSCAovJNKrfqP6qKPN4izqxOXfDLOM3s0@aTmmil!DXFl-d zK^)mC_u@eG&~w&NZ~cZ;oV1iy4{a6yy(1^xfA7d?;JQ1qRJNVm$0ro#G|D5C*SHI%QJ zB3tFtFX7fiSpj$>Q7C7=Hz5jYmFtyIU%P>SVmPG6MBOSw(u75d;u~;o5RY=CTjlv* zf&2q$A=ITzg)Q)AljiyRc@cAXS}g?W zCSJ^uXDCR$Bj)25C`g?n=I90r(sUp5$ruFVsrWG`I)9CaB9PW<9KP{X@=*v`rD%qX zIkguX?Yj*^JO$I#7V||^gs{#A!B#v?n=xOuc?XXj0Qs3!s1o7_BCj!5-ns?=aW`V} zCSj@fvjKeF8P6XkkdQM$KUNsuBaFH67?qO#Hz4MRFsyydJ)eM^KB?OWU_WhT9brY$ zg)bbI{>SSfgS&qZ%}Mv~p*aowduUEWTAmq)eFKSa$Km~gvZNjM5F{tG)OUp;<*-*E z{y{@Q4(sZOy%r$CLEZ}C@O}$L-)xAq!`@BBiiIfU0M{^-#Y~Y7OIOrvr77S}M4_Dd z`hXJTu)p?!nW4ZZ84js2Q9JB>2uM*Z1&2QO$vM&v`$rUzHz3^?Y=P=W4!LP*6JTV-%DQ+lqqHVM`&X9QHzfJV}bQ zo`fY{?)u6iq#ZV8CN6UfLOcaahsE1Etl2@ZcGz90RWh`WP~H<&4%-Y96vf{)fO6Qk zv5+}sZ1KW7>}DL5^2TovD~H{RoSTKZbXeZxN*x@Ajhd=h__<>b+U3!+AK$hdYq-NU zUlZ7k==ve{xP1v%BBBx1P3#H#H;&NdMC?iXdy3S2D+I_XTV%Gw*H3VGKU#&_XwKrZ zcp(8qW3||KoUo)<=R)Ocn=}$}h(-8WPMj|oKJXOaZ*8v+Yd(Uv;%A2+9)W=&_J*B+ zbgzIfjsrSFFejYE@GtfR7is`f@e_XTY1qdOk<^@0_}#vNLa~X+45-r~O)z}lK3ZCt zr~#<1hLs6=+$Yv{=C4&{Xb-$6ai|QwZ>b=jl1P@{o)H`B^eLdynhes@#uyWmwo!%T zb1EjO1YZRHKjQd}CGDg<7jk|Xs_c9S{3LNG&oaTJ_sCA9^W`#S=LYaQdFpULDvt6!G+;x1idQbR& z3SHT>DwWD#kP3D8Myz!kev4@vepzIwo31k2xaq1dRQ=Mw+qH53g5Oa0Vkp?IkZuDh zvJMdsON2e~Iozb6{U{GzWq7CwoqU)zT=^>^80NyGe{NREHWrqv2sg634xZg` zMN!z*mN>5HJFwv;9=D-vNTfxxT3GU6V6NKT$jV4~o~!n1Xj<+G%b=M|R^0BJlORta zxu-4hU8zk#_mYl$D-_WQ zF5{k{llF5(Vcm7o?%^K@z70z|H$hm}!z?ETd5haW4*5q;KiK>~VU0mfGy2!6iQhi> z6&d}LlPo)<4}P7D-l>)=BOBt7jM4ZF%^00(g=J&|b7zdkZ+J#_jbtld#%TQJx185t zFYa_{SaiO@f40S4T8Rn>qYrR+RK?55`v0A6PMEtBpC}MlW#hZZlF16#DBFCo|_e<7f?-B)Kr*oClvp4GPY3fU;*n+s4RM-d)0fh z86xGo;f`FjpBKVhF+vk+iv6&4mh9bu)b|(th()?uC8?J97KC36DGaz(>^IU+6{0h4 z^x$B9wLqeBB-Gh=T9u;=;7UX(NQx$+t2 zIAw0ogjOz1nGX0FLpfsFJfYQd9hH?0fVUaSNh-gx^66jLyrhIa0({y~e4JByiYB4e zeO!Mrs449M_cWBmfP_Zs z5{(5s-B6MPD1S9ld07c~gQ4&ymP)8No`v8N?FIaiq0|kqazy9lE5J7mrAYwgJ56zQ z#iPGCWT9IIQ1)R8;e^Tqu4yRk0w|X?r5WJ%hSHrW^p>lH*2nM=Dq9%}c&wpFXONVG zyXMLL6|Y{neH37rM}m7z#ykdzP5jhJ!|unXNu7Fs%k zq^#5l#Q>%r7w8O<@*D;Vwo)H(GeeQiASu>OMd=NAsG&$_kd!()p_zae8j5rVN$H{~ z8v(y%DAE}u}QQil9 z)KH`|NXmqGMY#(2Cqt3WASovfs1k+tz^y+VfzBW)M~5gY6#*w1iX0gvSnfCmM>JCL|?EC-fNL zCk;h9gQTq6ukz9#aF(G+XONVM+RD>_ml%q421z-+M_G9t@J>UK&LAnjY07cHUl@vX z21)6v6S@ufzM)8Gkd#+6CAu#z2XF*BgQOhNlvKcv8H#iUNol)JWw#69{)Qr*K~hF) z%4EP#8;W!WUbJb_3Wsra6(Is6|4gx-ID8v2pQP-Y&KDrM0wxLKXJgaq` zsww&U;n^k}ve42B4`kg&>#?p1;8a7ARwQMqrnCm!#ZaUb?g8Du*8M0O@MJ@gRwTvN zon#r{^@bv?aMksQ)K&K`;Dd%Dtw>5uO}Pm8x}mU@E(7|FvJ(2brwc2Wu7&;u9MWGE z+LCC$UonX=8VjT}p#`~4_g6tT?SBS+un#VWMI9gw4BD(=37`Y#_QO_qdq{g~#JAGI zUkdFVBn(=F(fo(0P#z0-vZh!m2MYjw>f`pf0w;7CkX3om!CBEN;kSY8)2OdCn{Rs( zi;E$n3ki$j;&Z@XYKoQ80-IY2L)%})ZEQmC0Qt+07M})m*t$9R4@yFdU{B45LzQ|^ z9iYSWO;ndVHGrh}(Yqf29nlk4(R3XvS^;VAM;m9NSXr+gQjZV~1(NMYt6qcd$m_Tv z$GY=?Eb^n>aD9}J{phDkcN35|{AfpNi&2-xDc!?Bj``8Xt$~gneNgFM1M-6(&5viL z6UMYgc{yDNi}Y|Ds=SRy1I;Optr14!ft2^7twMl~eHybjqxFG2?nl##108n_g9M|r zebvX0)}|}Y@ssh)JEIeT6L9Iy2$#h;xFUSyrdF2>D`DEZ zcz}a1=&Jy%r3qG-C#;0&z1<3H3VADoHS^6wnzNQ;D?s#tbdVnzikm(ObH?H3h?oTF zbc3Wcu%I)4;XA7KRsvaX&@Ll~=U55PJ`sZt26uwhcYz!vl&||oAg`9BEUZ#NShQsz zE&{%;4agn7l!?@S&kciDv6X)T7sk5WZzYhocoHTsHdP*+6yniH5U^v|rO)soR>IQd z@Kv_g3Y^YC_AE(R_Wb9{)JVXSf=pQ{(fyID<(uP`m8F1R39_Pc#k>`-^iT!d0}g$F zAaAZxTwc`i3ngbMd)L6Z6=ctnl$BSk4Q&!54$6#f3N7NXXEfH`XqL><& zx$4TiHA}I6w-*3Q-e`77tMfLNWv*|~LSOD&7!=FHv!M#wX{hbh70PZye zDx8m4mL!DR;yA#cf(e{X@Q+oSr$L|n>qi)ZXdVp1orHooxabNlX&1$0#&9`6l?l$J z)RK52ENy>u0mB>3gpUJiZs25|39Hy?1<|xUAs(zDITa@HRG4Bnyp2(LD%58HpQ|}| zku1%Hb?rw_Vz-LmmjG?b12?cc%}}%90YJwzEN8F`_NH#G-OM$mNF z+gYRPlH|Y-1lnkL3xm44_JWm?y+c`|qM^E9UrNF20B!KYJSje9e}pPx?R|g_`C*O}Tkq9A}?BrLoc38j7yU3#kE`uRPN=l+0Q$?o$vi*4WXEC35_CtYC=TTc^h&*iGxqI2)O=A5 zP#VEJQhkaJh&!0Xxo8*sRt@m&fOpp>d;y$W_IEdxogCncg6uHS|D(+QX`i~N%x(t# zV31iqTc%Q*r^x)y`Ic(L{u1=>OezTAk$C15aE@Vff=6qSh5c_FTwpm^C-Ed%%;|{# z#Nv^^Eb!XI;Zl>GK%&<~q-vRweYg@Ik zbnD}U9#IRwkZg>9IF!@#73f^&b-Y}K?x%<{fT|J9&CgRRf6OFduG6Ep;yeMoo#F6q zgXXk4gWg7Vh5*ko9NuowoM$nhF=rw0m4?In4Vp7jr}Z}QeTKsu4w|z( zpgFH;&fmbpM(J|#mV@Sm%vAY_1Dhvf=Q?gXZ+roIij&qjlMN=RtGk z=(5KEFK;+}iLE)`==`JuZ*Dkzjm=LvBrJ29pH}tL7x-|)k^aM*56hg^SR-(r=Kx=9 zIMRO<=jvC=&g;N;8jkcI#o3Ahf$f|Ce!+00|0qr$oz`!_|1})xKZ^6T=6J{8(jSNP zdFeljvr2R70&ikC(ti}Eyyo--KG<-i|0vE&xR~QS&j9|c;Yj~coH5$YM&NH5j`SbJ zsb5yv`2_gqh9mt)ao*5&ZUO(xaHRhzP6{>;I6qN2xc`kqmR@KG#VPiz;v4~f%5bFr zD9-<|ie)=Df!{S8=|74Sg3DOuc*f#Ub{w+o(ti|Z2bR0cNdjKqaHRhz&Z9a%9f9{T z9O*xb^R>1!5%_Gwk^ZANzdWPzvkv%ch9mt)aa=mBgTRj)j`SbJsiZmI0sqx-r2i;R zYt1Pz4%h!UWZ9+vC{7$!Azb$A!0Q-}^dH5U@TKBp0PkTq(ti}^6`j^t;L{C9`j6uD z(VSJlUo{-*KZ-L(bKVDj)NrK#@Mhu`=Y?G=Ki>fV*>I%)D9-TWs-E5Bas7)!mR%gV=|0N&1Ur2i<+hgkG;dkq1e zV>r@(6sH_6#F?`Y_)5c({-Zd(e^Q*cf$uXM=|74yT64|;ziK$re-tN0=lO5oVUu*( zrT-|-g-a@}IN*tfBmGBle$t#qz*`xP^dH43qthA)Jlk-j|0qr~&6y8;x#39vQJij? zvlaMzh9mt)ah7S$Y2cR)NBWQAY|@-RfIE|Q*`@y|&Irwk0bbs4r2i<+bj?Wz-rR7c z|Iou!35T5zC#bb|U*Jy>NA8{s9*RZ#r_QmvYV|!G(9?dnA8sZloOTxA85df}ix&ZH zG;lI+pI&sn!u6Zj1Mvq2N@_s+r`Mdt(dsJrBA~Ag+?}^%e{yQl!}`A(vE`wM!lDk9 zwye0)Npz*bPg#{t-bNR<#YkSdjwn9`{{(=;yPKu^u}fXLu6PuZC$!YdmmN}}iRcJ% z9}US18VR)(*$_`Q&;frk-NZ8xKW`v@{7q^N6q_J^+d$k2B{WhTg!s6D_<}nnJ`Fh> z-w@L%ZwOom{3B6LQ*wNtr*!V8;Cz9&2tldyUR@tmRf%anHI zD-`5xl&p`Td-dyCUV#bS}U=21*-mH{H62t_E=NYIq%==bTA}O@JShn;xxD4Ul z#h1X@qkt5Ly@DQR<1u84F z2rgTx*BCsROOzRapUp#|bxzsDf%lb_R{_77heA)Cm#thE?esQT`55pSL!s)lQkYU@ zBl5C~C_e)JgD6y2KBjP2C|mUnH2wQT@xT#^;*jm#gZ7EbRvWNDSkyG45+PjCmgnwN zY+%qo3wvDUiqJn9=ghzjWC~cq9d!qFSM=s8IB>5MC}+81^nA11)ukWq0F?8+j(rOf zh$%2QlZ@U6)hb5j$`uz&Az7J6T0*=A$qp@*|0*pNV#J3KUkHM@bUsQ$S&bDxfDnQ_ za$52`So9yo4=_uKXt0tV!puYOU33t#8!wV!STqGcL+i+~uuqd8Q40wpTL}4;FWX}? zbp+9z)ySIVAwl2fwej5SH3#E1jm7<153*_&F1SZnpQFFWf4CcO+AmcCzclWA0NqD3 zcxK>Hl|4${B}kwVs6rJndyb@j3963=$^;sZD%2LAzEYw+m3}p~T0qK>@8ZdJ$@Vl%#oN)Rd4ryS(Wr7Mil*U|wUhqR3qX0Fx33`Pf zPF7~-nO=a}GPK`7q&mGc$!CBl!)PNc+-XG9E3?0^xHJ}RIF1#z(!gt0tn^o0B|Cba# zlL@Y;VUa6dVUvmji*~53OA$r^)m{sz=KHc*eS)}ASeK$G-coXi8w0`G#;kr1VGXEE zxyxdFF5z5%CU-tIHJ}IOa1WC<6UpRI;ocPBLl{3~aH*P!Su^}yhOXp+&X)u^APRy71p!}B#DW!35kY)K@W0P_ z%Irq`zW>X0&CHo|-{(BN&Scg^#~Ruw4#*pXw90{Wd<@7caxyrFw=&Iv{6%S=9cnWu zPg@|JJOokKmosxnhkSk!mxz~e8kRZ2s-7^f0Vb=?Uv=<=GMge|IW5tA5*Co`b-qNR z6Bd%}I0t({UPN+Ur$IF2#Uw{KYp@DTSVD3kXAk<3gry`$I@=pUUPf{;=j;&3%Sn!L z>aT>naw6n-r(!tdRa8@xtwDpTBK{>ghdU!uoKe=$nJuB+OgS-;lqO%JlHtJ`+P53v zXUOv!Z6kA7!q=&(tRbWQ53wFJn~G*L2l)x%G^R$eMCQ8bQi%=P(;ZZcsrN!cvIb=g z1N5dS50k=6V8$g(60)0u9yA%*;(tfbd_FCdFla2<78OM6M39?4b};B5nO+c-T@yo0 zRrk899q`Md7VxzX!G}(70{jG}=0K=>&YwXysGcq2zUFH@@;aUA{-QxCHdgGKM4AU zx<~{*?jd-Fb196*WXDGpO`fHuQZCFFe#(vUqe8W#%h7l{VBD!tlV^-hL=xm$Bs)$y z#Joa%k|Uf$Z6G%xIntSkKA=KVl4G0=>CntjZ^d-5o(}Dc-C%KC=ko*iJxvO)N{0t_!o3oVsj3T+a zQ;qzLCb@?-^gGnZ3ezdlmylm_4np0MHT=hsK(eku>vLA16g;!he^rb@08qSwjP^OD zOVF8q7{ce!&p~FWGwCx}A5Ixm{&D;x3n=u1k`biv(0>IbR%LP8R*0`Q2gT>K!8u|8 z2t#SrmAHq(8U>vkPpd+*hBk`^@)(10P*w}CR8B!r#ebRji0 zj|`_jiPRD@97;ikGqNLvLm|W89Fi*_gm7ZhN;%&X@aBP*mYF_hJDJm(-N)n%R%bY* z!M_y)^s(H!Qut|1F$#r!i&|YN|JYS%B!w?v=31!YI{0%0=Khre6sY5jE(Wb~x5RS+y2t0}yR)vMcC~@nETwKfmy38;rsZkVwRfG~ysg&3Z?B!6L5+Z#Sd6Im^ zinl=cK$AG)R`Y{cxK%10ji`yQ0NvFvTXGnjDy#YPM2x!zPa+R;D;kFzUCBwiN}MvS zai&}mDd5!5JS(j_#iHzTpp<_i14t)>b}#o|B&6IXl_O%9L9CGx$b?9dl%G=M+_{TA z_5l4%faPqp@$&~o=u5Q8&Il}jl6bqUsWTn#QIC3~!NnjKrw|7_*HL;&B}g9b zY_1KtB*k;IbMbBXEJYbQ$@%UOYFp;1!R)PZS4ST2rjFmB$e0R!{z+eq6T}koqqAHpRS6w4sZTC;Gt;Q*u2V}8}{@NR8&yOzR z->@hrw*z_BMYHf=AgTAFUMkMVft+&Db`KD4pYNtB&z}SN#zo5=2io^5v`H?7`#?Nv zO?uZ-iu!darAi?hNGTVcEWU`u-}(7cs)vx zOJO{asV+Ju0qF4NC<|&cVik}lU9=aK{-~}P9`r-`amdo|{tbrAq^T3}!VH%}8G~S~p@GHc zoZ)e2I$8>LT1wJ66=&@KfEq!+GmB4GuzClpNzQOc_Br&4u?&Yk`Q}q+`kko^Cq9NW zxB2{EK0m-Y!y!4tA=&3dzzS28$4HjvL`FTONE5(0gFR$8Z?YVSCCw>D9X>ygZZ^aD zlF`y-Nv0n&%y6V$a;PiLaOhX5GMt_%bS8~Y$@Ggu8P1qwI@7NaWjORxLq4a)lSn#! zLnDK~q>;f2pF>}X%5dnbT|RZDAE3x^idUsG$v&qN%ZK?a<)e^&4*gz+&!Jyk$#4dy zl1wF?;gn6IGyVQVhLfufok{Ow+2>HZ%HXrl>C}c~`UI0to#~@Dh#{Xz_Br&q?F?s1 zT{=sdKFjTM=wr`5C#oLl>08)7hiXHH^BtcH)F=6LV>*-G$8w=z*vS>i1>f3;dEdy_ zF^olC9HAQI*!Ad#DRS1R*WLjV{oVofxM7KlEJAfoE^!S_`EC{}^)rN!duvo>bj``7 zd)JlI2XT@Rnpi{;(HeCp8*rHt=!r=wKG(1{>NX)|e~DMfe+@Ev;J{2Pxm<@g)zip= z8Yf*YrF?c)!NYRE`96hpT5+^! z_PZztd>KG;t+y~FF#K!|n61+%Va#OsEe%^^M&ik7a{XIqw}QSSA~S|Qv1N@qh0ZIv zK~f22WTRv_%c7`^RCze(5UoZ(UsSO!O9%xaiPUjfqnOjU-N%a4Jd`8Lbvrt{Y67D^TGC z$2$0FqR*i?`W*U1Plj_5))DmeCZ9v!bIMR^+WrgQj(E@mmvK)(_?u?g^cceD&=Z_Y zdhp>XvI!eIIK~&Ku7qKk*n*%uh#NY=zm2$Ufcx}(RH zI{dr<%rfayWuD0(Ez!0txFOId#4?xE0c#5wFKHGFE{lFfAhQbs^qd6abIl@O6MOX< zZFxqFLO}8hW0~8~c0E4<3g4_!MFR8e=jp@k5Jy_}^Yram{G>ga$0YiWzunps3tlP? z&I%UXD9{fBOt!sn-5HFBeJXcyK5XE4W(T7aMqrH@K7}gggt=JUO3|83U)%M(8q74G z>XIf;xF#${5!s5Mk9}oss|({Zxc?6hjw+?k${axH{s!V7!TRwg37IMA!aTk$$S53a z$bun6(3iBQ+$f3~mk!2+@5Vry!UcO_loqW?w2BeoR%=kQwIdQHMq%Gu%%ReZDz7>?*J5Tb)U z0S|mdm`dJsAoD~4bw^YFY*9wt(bD26Z8eRM>I$Ke@-2-_Ah+#pCg?JI5?$C$O_;_6 zQ5m!hgpNyFQO#N?hAVI3Pnnppr|H;|5z`cypuy=u!K_dqjS!tRVTL3y&xDhVSZ`Ep zdcl6OX3v!D85Gvjim+URtbIXgcW5og>!{M6aJ3X^?}}YBd0BC4{eyL4YZ-h zS}vd@r6qR@bGnm>SST_SX^S@HV7e&neyxSWg<_J@zNfXEOY@ZWORYtYE)q+XmZJk6 z%+IPCnipLPsl6)>As-itFO@#d=#gaTe^UCIN^c{R7K*ycaa+SCFWI88(l>b>^8DXAS@LBRfH4`vex&v462#dBA>HG zex)U6Lp35>q0Lo0N)fU&$l9_>yCz7REh+~&JE##=L)ol`BAn46YwIiRHLc}3)J$pr ztF>H*GL-fa1L86$aSG6|%4s zUxe=4qOyp_G=#s0`d632P({y#2+QWWNpGMm)dbUp!%>FKITWdQ+ck&tIYwy@Yc06* zM7+|{u1~h8t?uYmmS0?+iX(>rU-Lvm?Tf8?sXKbZrR*+K4}z>bD;}Q-_hS{2-gRlE zi7JJv@8<+eQM~?|gDSC5%vRbdS_^KrSf;e}9{UE3%!uc}Io)d%VV?$ByIE;ZX)V{# z14{du)^c>-QQF_MmOY$PT0cr3q4D6nP<*YlCAF5hx0SY<(t1{8%|wd+R_d0TyrLeo zd4(+IzFNzvFRiqbw3Z`WO=*_}X%~rRO3Tqg1dvTfRZ!HPjs%gj#pNL6qDGMJ<)VUe zLpJORTC^bA<`%8nDA3DQ5}J+qp2HS6j>k<45*LvI|aGNO1>>qSw$q|k22_5rXahG>e4k;j%5W42O)&t@p$ z<)VZFY4OfJ)d<8KGpDMI5EhF@lr2M(mBlTOjH=jp7LM<|6r3$95#OcawWCPmQ0mHt z7e${p8o96+v{mBPYXF8*{+t1@Of1EVVPb^r^Y%_(CPod${YZKL2JRTZtx{Ugi=lap0>~E6E0A`F;xxfbY!RiG z6``gExm}-D+D@*P3l*bUwz#A~isvLv2=@7fA}rG&d}1U~T6!(;fQu-ownxkgc>?A>f6!vXRP?d_Ox2cLiQtN8XQl0_ zwJIde+F=T$?X{Vj;Kp^K7^euUHOL{&SK60cEk}-Hze0hOyz`o%8WdYUsR%!45ZY|< zg3{6`o_kMdH9$UOi-U?lxl%zBg8d#-g!&p}zrQIhy{I|VML52)342z2F#~1h@yasG z)+99nU@uV$ER4Qpk0#{o2oTB2ibr27{V0@&g~W84>()?|?_C($`bzsiYq?#t(82DN z8RA{>IDBM_c1lmpGg)EO$z_Xi3ZefjYv&@ATpfX_iZVpQTu{+puM)Y5mI!38w zPAn9EDSeuz|Aw(~q40*u!hB4r<&r3$(he|AWEu-A{Z!57G{z|HD#Mm(j92<+HJj7e zNNJC0EvKfF(q7bB6w*R5NNIo6TINnxT7eM&<<&vPdA`yX(OTxNQQE{1?PjHYRBO3p zPb+N~t>x5RQrb~k%YJVuZMM>SSI9KmKAE4Jg4l~hQKjYBA{S8qPO0*ssm;5Z%r!Gv zxhCZ6AY{3SRc>-jhv@AAQ8ihCcy`EtVq@`_G0#5`JeXE3VHOnpzd{pA`mEJr+>k-A zr!lQgj9Fk*9Stv=a6fY|2HVf~(*lDB!`f=FoViSVM}uP>cQ72IqChWmKZC$Ixn|gF zk5tc844V3Upc!h|GxG!#e753!tvP52*)A(Xchnn`E^C;sX-KXws>D@>2>n?8p*Nni2(0Xko%pQH%_hvxGjI72(N39 zwRe^Fyw-A}B6G>QL?73=tq~I_LaV3i<`hQHI%KSP)Y1fXW0$<_95(LCA9Pd=SEcfN!l4r!g7Kx-6SdEt&UN zRrEcA|8*86wqPeZCpKlRh=*RR6Dhd-{r8h1X_HI4iH76t`Uyf_FS69Rt zU$0Gb@Ap4y~8>mCLj2@??<9AGK+YSYFh6?J_cl%fKhH0a|$Z!`n6TRX5>zmOQ-m+{@`Q zIfu*GPo>Lbb~!A_Wr^KUc2m_!(|KQ zax1&ck6uT28%?xnj^atvdhK$Oak+teqJGNdS$3)2_10!N+_lzv?e1~o4&O5s%_`#M zzFiTh02{?GqaZ&^@+L8|q2&#yXUm?I;>tigEG|wr_Db;yhG}mJg}h%1H!*Y*zEad3 zkDF3-lW(P1p9eRwbo0nc@p%v2l%|`Am7?b$+{DpM{*@wQByP&kO@Wo-trfT_OE(2q zigAN+Q;u#5trYLo#Z5fj1mK`2ZW8DQn9=CmzouS+&4*dj&`wY{Uj&uk z^y@3do-L@}-O1#U&7x^4{)4b&8%!=DWlg=A9(u(W6-0D1JZ^oNq_U9e)*vYp(vC(X z&4g5wr7t11>Q1`w=13mqaa%+~NOv)X*dkg(dKnw5B}@0m`*6LITj3)(ujBDC5{e(J z5;f~s)>lLDvbNFHYW=FPD)$(0SXji7ztwKFz&j#d>p4W<5g#>10_R}kF{{NhK$U_j{@CmSUC4zt5Cr@=Oek}*du>7R;6OAPdp3YX>*ur-jNz3gZGw^Y&%>Gu4wE^+W zI}eL#k+)sm&d3cB-X-h`UwctQ34a48yj8guBen?d_cP@1(^8d%phWl}fwYAa6~+6^ zBY4=7ocGw{m;>i~^pS(850BK(m5hvkWYtET8susTIillISVnZ;1#fztrbLM0f{-!#? zcQs58dHm*tcdAiB`A4&5LFByOoDj-O6(|**_8^ofXA;_JH!^I4+ajN)Vp@b7HZ<;n z97i4RO9td_mNuZ9hlIpo;@`Zg2pCYz**gpWOb{mxyTS$QRYn_)F1Yw@bP3S~mp0+M zWj*+^d@^4if08dNUg68i5Baj{I$xgf^(MR3v3yxmoiA$}@@3snzC5{{FYEX6Wy7a@ z+4wtOHs|d_=35i_vaK0kp6bt+rx)>M=W~2{?nA!3@C#pd=SH?f7u;KhFZ&wt<)vPH zd3iElURlML{V($6z$v~Q%oLsRpY%dH1S|hhoUFhQ+?T+A#+0AW$+&49~RufA&q6;H6No zpls9-uz?bBp+r2p^mt#33O#gdw$XpHI9{RB~oLjKeulK+IbtIXeu8!=hZUVp>q% z6&CeY;bVqS93#$Igk=RXaU0Ww^0Szju^Dd~;r=SYoQW~dPk|LI?;44&3g{z-xOvOVN zz#Bu{SQT$~gNN5d$x-xg9%%oeaN?D=Ft)|*nKB~h0bkY>tI}o6egdOx`Y<=8;U|sA zC~`8bMEVtXCr-rAkfg$XbY?i5-h(OGjK+&nOC(wqNIIbdfy!A*VpdJuR}`J5$wYPn z+{1Nnk}|o9sD#q_0kvQ}kf|F@~O6ynL8cz%&Itg9(c{fZbb1H;NIN0rGy2Q0uvLdHbcD_q!pTIC3BzfoOrsv>=Y^=bl_vZ5HEpp$k3{gIsk|RaR+{M6R?Zey9$sj4> z3h?hV$Il6uoCLdAN5!$wi|3)9oZB*&t>mQIw^6q2Ck}X$;cP|zSt;~8m`)En9`%zd zoM;NXmF6gTuuVTTNcBw&0yKhP?og`IFK0TV?f&TX*m^#oCB|C9Q|)0W9k$*9=y_wE z^7;Zenrm;1!~lbiT$}*(uCbQzQhNemLGU#|Ke*P*^22(KT~%A#sHzSf+^M86yv05T z1GX*&s2sr@^A!5EPUk&4Pchj=hDA4zil|OF)-&v&z7c&6Ap)wIAm;O zV_?n!PwG0wsSLcf;c$_pc+i>x4Mks63T`kRfcG{W85VOoh-Z*;=1c~@EQAx(^+=E9 zMV}`XdncF&4cqiA789MHJ$sQ`?Di~3pN0@6ClD!~Ldi4dHgGSs0+Z>gY7I_=vY0n% z5=tftgg8UubXM!t8|l2Yd5ZE=8*mdtk;x>A)6zRWTXA{=A0NUAP9{6V4{>8K;h0h5 z+iciD$z->Kz0aa~G4UWsZ-x-96y{9wp2En>oKJ!OXgH=LwNm$0M;y0#54J`!EmYWk zA*=Y8kD}je8}@a&a$6mwriREK>13rav2WP7m}s%bJ|GP@L{dpkV7|CIT5;w9Ume1c zvzU|<$Q);N*iU-2+6~fMhG;@nV;i%d52LS_a2{O&^WML(gG++!0-MAIOf=c9P$Bvk zeVqwzC_%-+L0t+9&r&8$K=1x9CYDUb&9KOYiaj38Do z3x-d!`Y}7;yMY?bDfk%7n-5{+$uX6d zIli*9l!>P>_Fr)1Ou0K-PK>~ocVL740;Us`zo}riHWqFLaZ{h@LC+o7Wk*$(7K6Z^ z^$-iUKw_NQh{C(Rb|^NQhwlJeR#K`Ea`snpJG%M6x??pY<@7@+DYVrR_{jE@QN#b2 zApK4u(;%&;`Dldf+Dd(U9N0cPZ7I6KJVmhn#Ub;7(rKkUpfTOam5oSIR7Dc-RN}}X ze*uORr$DYd7#taH1*p9X4_*a0Dpz_cz6wC2{RlwgT$py30$uo}`F9K^kX>CTJB=b~`KA8Y*#4KbRZ;$(G>< zN_bkYR>b`voixOth(1cm+?wleOfuNxRgiu*#Gr^0F_7dL-bfL1MIq@pWG%@VQFePY z7yZjJyG;eN(LdQ%3KP%e%G+2GdxA955Q8H6`dEbZMXq1lDq=QBYYj0dqC^bT^=w$D zhipd*zHVD z(P4_%1*9Q{7!=VhJrLGr=fn2cPo`Qw8>E$nNP(#4K|9yZJ|_)bXtD+3^B^5CL`spB zLY%-V&$mc5b3O$Awc!|NYJ$M*r#$7xDE56Yi=ms4Ne^XnB!XfRc*WBhY2#2*VN=i8 zQQ4}Pyye+DO>w#aA89zQ?;!Sh&tshxI~&Yx|H77$2+#&>5n9qyUKVMFos}Ng<1X?s z@_~1n)3VX!r>*US4556D_^J~YGxkRlO5*|73l(8w7nmH2^Hoklfx35uWq)2BGk#Iv zYYZ#)7yDX}Ob_tvFJEJswvFwtPO(he#`d)jTM~!1jqPuKYeh0`8{6N0SBYfWHnzXJ z!7@D*w7;jld%@e%_Vu4CKrZ;~5ZL}9CShBA25pTWc^Xlx&RR=|H0yrvSe-)HCF(@_lp$_GTgOLT{H)!OQKFYI7Ik zNzK;pP%qDeD~bXxqbYtiPwmwkW}l13U4YjF*4*GGCUWn?E^2pv0#76mjOYi_5KUBY zX?qrOsUpF%0WBc-GR2VhKJ1Ei{YlDt8=#%WTEeOJZWJP0zX9lNW6gUXc3t~<>^JNqn_;;cYWgq!} zz;xx~C`c!a58j}#uiCp%ko1&Cd6*tVxgSEwoe z(ZI_-jFaCp1=YF`angY|Ck_=J$J9#w8k1zZh-Z8zF1>&a4aI5m!cOpXT&{wd4R|S0 zD3hfNrquRSDWF2x0eEkymlQuH19lV7<%!D8JHS8GZY&A6_B2NS$PxV>(9hb1m9n=G ztUGyH&`g=qk*gH;(r~DfX1JH99{LuxE(@q4!CXgEXxe9w^sH))RR+pMGy>GZwPtvN z=h`;>z9qr^0SzUXty5{2!Jg-N4wX>MgnAJ{oOo)`hA_jdKLyI3BOsa*-Axa7_- z8;AXwAD4C@^fcb6f>;5vuGy>oXdXX#%%ai2@;Iy!sh{9hvpwaz5V@oH0TlI3{y6wCh{uNKz; zM~_$Wao7{U;e4_K(J|vyI#kWI+W!S%fxNgk<5h3mj5h=elK)$<6!i&YlNqlT16*UM zH^`S6uXaNJlEy;DtK@!oqzSHg7w|<*@w2%euZ~d)uLJwj;3g(!yn1^ZHc=5DQLqf& zcflc($~*mbX}djqTp_p$py~wwu>&#G;}w17maQ`Ybt0HEN{?3qM=I;lfF=;k)_T11 zRVUS-WwZYBet zsoj|Isw_g`h^_;)nP6E@)OeMSF@e*15YX!cb1jp@Suf9mM#}nQKv!IAHC|Q5lxr*H z!W}^OTx&I6(ZAiiKyV?9FGX?4u=RMAIRQ`-)HMm>#8XQ)3ZR6?X<^yz1NoE>?oDGnC{uRyAH7+^Ret1M%GuvL3HmBRU-DSAcJYP&i~W zUKOAzeXjC&djy9}7xgD*yeff_K$HWPsBtr1-NzipZUA*#4av&S`J%?FL!H1G2z-L! z@OUNjPK{TK(?MDc!d64#+;J1G$Ezt64TCFyiFHA=6G3#0ro#k5@GK@OVX|ffZe(?Tw9eY4;^x+Vk6YMY`JvJ-Wz%Vtg4~ zjW0v!W5&^u6I!pQ%fy*{nL2Yb-Obv_m)ZOHGUpUu=6=SP`MI_bWnnB|7FXxXvUYq~ zP9GDBj(mI>Usmqs%eoKwvi?)PZ1{;U8*^pB>itqmVmM`~9k}|6I7v1U7=RDu_yULgTzw>24o~H;KSc)%$ z()cpCC0~a0<;&1Hd>OW#FQbm~W%M<^jP-0M^Kqs5lG%(e6X@&A(NPn}^JP*NUnZ~N z%Zy!onfW?jvi`%D*+1}Qj`cLz%`d~3>}0+yXoO3|u==Re5#4uIM33*q_8;Z~!7s7W z+Bl*Qy{;+e8WDZ#_aa%o+&Tyz^vkU@O)@XHwuHO3IGmYan3r4oLNh{Z{qq=7FSkyI zdVz-Is9x(v3_L~*7T)gj5z!$uO)5g0g0yN!#iaYN9$_?9YWfxWv#_oUNp4LG`EZ_7 z`KrgFQnw|A<=csBYPTcV@qJPha(j{^YLk`S@jk-#5VnG1C6!$ZKv7&P{q!{#tIi=z zEA0V4`LGHw$R!6=)YK1=>2IDQVYn?l|U;AsN)Fi88!SiCO9r(B^tg5$UWYY#yt+0)KK z@i8gcom9^J28x?n>EBPj0^~u$v%Sd2M{uwWzuKsf`6ZyO6oN?W+Jh;uEp-4j)vzqT zgqLVeveSdsKsntD=upj&t}9F(1jh48`7jm$S!z(?OG=G$Q$Tq+5#5+)8}Jtlhq_KH z+Wv?_#f4ns(hiomP&VR18TOF5c7Qg4(h3d12@$XY=Zc{sv_bEThOjpY4dIVgP(Q38 z(5uM0A$-HKYzT9y@~gMJ7X>$j4sh2EhjX8@TEFEz44MgA>-W$YQ&2U8`B1OWkZK59 zx>3|jL--v@<%Uomc8EURhvgp14Z(wq(hZ>t8cH~UmTCy3&<%lP-4ICD4Z#OFFJX^R ztW-mYhN7%i`U8YikPV>@N}&djh6ar$v}_l&s>ifWCPO!n^=%O6A;44v$-=Z!HIU;- zxNaa6an(RdfLsc0pTcz)4yPQ2p&Cd=5xB$sF#snCOk_|tkP3)K7L-?Td}Tn@Kz@bd zE-BfaY9PMKD1RKR^rw)o0C`Xiqzs^B19Kge$ozC@TZbUhS~ZZKfQD!|q=6)&g;NP+ z0bQ&aAr0ht^vj!p>^3OzLmJ4_kD-CQ3H*%V=mtWeqAieXTry#a3uPlNlwsUJs4DT` z&h;g*9|aN7dJZo`Yht+1PYSaPC9+ zFe0(_T|oDZwO)n}T7>sf$$4RnR>g40Y}U)re$DVQC&8(JY7xv~>uuBNvy^pvKwVvH zwG90Nb%w3S0h;Vut7YhO^)L>S^ObX0BE6K0pTzte2tNvS9f>)K>_i%Hij% zrIIzv(9NmJ#~qOF86SEXx&UJqFGCA~R}_a#o?3>^3quH%pshiO3BfEwd*;JS!4&_t zzP0U@Uw=fov8tgT#-U1@cU4<^Hlnd}L`woHL$EAqwG4f+fU>R&sG)1EwoPyL zSJw0e=zgxXT85?}e&r|^rU9DmTB~K~{H-W4f;Rx#W~}uxG^HJ&15h8=mfVufGPD}{ zMDa1OD;n3!(5JBO=azLFh!+bRnRTR6E@*od+opGy!9^4Zl|o5wV^z!0@3CNEkBvd3 zPhYzp^)mDqR5PXw0X#W`;wQaXhQ2fcfi45#NkgLk#4JNkU{)h`1A9f|W*NEyU55P* z)R#3RD?jycmRg1m^MLac@cV|t%TVT|s%7X813{vX)s@5HrX|RmUWWE60cLHmT81)d z8f2ECN5{zaW)A>qJP}QG4_$_CsRVC}Kv-?OQ3bIo=dXxIDldBNJ2ySrI>A0fR|tqna3k&!D84D4f&|EA zgT6*6PfEYiI++YTDIL`Taee?yO-eg-G?UVf&{}HMMiEz&(o0y^y$QEzwXiD0;hd&0 z)THz}DjLP8J%FwRe!!rdl#T`%fN~6ui3U`Y()my8 zBTt-H^$L|?BDpoC;-`ek69;F79ej%8HyN%}8mR|U@hkQ+evk&p037n)b~%2;2##MO zk}JH!#RJgNH$=hHXhCt-_eD0 zl^|amf?+qCUGj6}D=MiVl5okl*|LtpK;{YRho3ZjvI_g+D7eqGKgz$Lf8{PbzcK}v zyPirJ!EV;NG_6FL9(6?VvsG9*a z+*#@Lb2Z+8ph`Z9h%~&JkgW6u(0S`}MSLD&-2_ZMxY8FnfK(B&$g;&j7D1^=fB#X~ z#<1&mAL9BlhD>i8cI~VGe{|g$voOS(npGLtng%7?S9&}a#E3N&P@jLgCN;;}EkGk# z=`+ye5o>at^$^!tGdR{{@Y?^?b!8ZMr*a+tBgD35uV&5o|MYA2YApq~5~?Jb|7s3cZ;ZkuqZH$61f%z|NCbI(ra#jfyF`m=b;u4Yc`zg z+;-CUp~EXsfbEN*+Wa%bB6~+-2L{zSN6z@A{i-=g;xI1pW@JyblidG%IbTCXM`2JE zo(GE@8A@s{4AT~ZYj$*PE)2qs|6gq{VS5vWLAJlamJ8#53@z$iSQHpWoVbQ6Yv|@* zKhcmr3)5*729f$d)Z$^C3bFm%v!s8Hc%d*z^YlaQxiDyx+|3jzN&AM_xJ6-*{l{eg zzjqZ~P*iBoGz{G#3q8q}<57Be7`}QkRZ!nmxzRt$iqu?IZr^4kD}6*XY-8AU8`$P_ zee(ntB^fOFzqTj2abJc^N3;~Dg-o>|`ZK=L9Vi{X%=um{Q?tH#}K;LN-F z1USjSYlU!7EAd{_R`9F}C)9T@SrC znK-cc?;aXa9HJxNkJImPaX2HW zKhW)IEHu-#)<2FR)t;6@y-q_R?aA92RTGHVi_;OJOs2l5DkR;W?qYC?C(3!8t{O@` zrpWg6Gt$RieuvVBRC3Jx5x5I!Prvnpo1(xI42R5^sN2($Ht2w$6b-;>N<4~@Zcl#{ z0@5AY;h`QVe{_3_Kp!EpfG-Z=$o9nbH9!RvHg`05(Ua-bbAH+!eJU>oZZEyG9(_8J zMB4d@em9OpdiE0iUNVW)BSyb(K`cqhk3Rcp9&9Keta~_kMD~9K$tq5rNc8!%d1#3( zH9|ZEQ|piZ1pl#aRSkiylGL+AfA%VJl^i`r=se1Vl7o>s(O)z#i76272O6OG8|ccT zzj_5tC(HQau|4cY45jk=HmLd0fAo(lDq2B#QTRPd&VNngT9(#=0+7HXN1< zC6fDuO)u#;q93WueTwG|mfe_k;&OjzAF7Q28&lThK5Ku#H}ot&_c{A5x~cqf7?AU} zh5T+V6b^Sjx^tF!{>PGZv2+5l_(rct7IMZ<$yrZw>|g zt-TbxOkQZkG@NF;@Msi6?&~)F2z3B_u>lbMpri~qh2dZAzJRGJh*trf)G&WA%}QxO zA^dI!yvoH@;9qNwg74d(dX$U%1R;Ys1m)s4O1AA8gYlQsPzrcO;!qm=(KuOw>jl!FxKe4fn0%FjyRn{xO$LVgN( zhR;=g4gf!%!;hT@oWh>f*u$dI5T5}5LUY{pXORO_@vN{Il95&kqhLhKPT+cKE<}xe z$Q*)ZGP=+EhGnWSp89jqj^!?^r-6L*ull?;t?{GkIGi8BHhtbeXvS!*|5t`opEnEY zB^nCp^YTnb^ni$`aoR(ayD;>}L(+X-J5Y)dkP9VnNDc+gMBV4TvkrL+rKko@ZQ@akbe~tNE08wO_73&H&ji#QV!Q)R zCh(ad9NDBXsX`r~*D%6jmVp;NnP!Tr&kH0$lzm<)5@ny4NTTfXYLF=VJU>L$=j}pC z)4K=1;NYpN|7}RR&l`ur&xbH1LOcb_KJV>GX!;?r?(+s?zC@1d6Uwi0s6Ou}43c!; z)c~r`i<^yCUyU!GM2GP!9?{oVL#_I}^@zEdc?Uh4Z+H(=LF&)w>ACLDc$#hcGn$K= z{%iu@sQzpi-I)ID7DD?2htngZKl5V_SqKNKh*6lU?E;9u~|8n^kaVQP`DU^`Fs{nL=cH=P>R#D`185}Z0n5g@+ zGFYN;fOUa4BaZ7#_h;61mF&L2N96FM`m=iTm7n>*SLE=c`m@7tVGN<{dk*+s&2g8T z+@H~dCoAnddbR+?E8?427Ls5`a!Bk;_Kg3E*4%8!F% zq&u~60i+DHsf1Aa{p^9?w^g0mzP#Wx1KvJ_BO7uWVr>QJF<#iXC&7!JO#hRiI<@D} zGF7K`fJE7;y-A|%)IK0lc50g;s!r`uc%WxjCvfmSm45>y-KiDEKzPj{#8a^B)b1dE z?}xy;Qxlo^!7Ctz;a)xpRGr#!43zX}Fv$R_Q@euhsu?M1vrO)oh4CZ8=<7qFR-IZ> zP1UJ!UKB19K@+)Uz`3U*rL^a$a>lxE95>uw2l6i7^v78)HB?4p#fi5vDu7`^~XthJ`2#ydrU`FsvqWuVTPD zLvSNNEnHZ2d@CPCC^Qr44~RY*ECbdZUn{`;?>Tb-Ez@vl#}__8x!4K(Ma?lC-+}(h z#oK_+X*jgw^I-PQX}Avj4sj?A{<@Tqz{`le?)aWX%jD=5L{68$Av1)Dy5q}!LIs!x zya91sXS(BCnXUYE13oZ^AJy^Eu*qqk34BowKdR$9j%7ZThS(1LSWB&I$QPJ_=sLm=;mqJzma7FdFHH7p2iK9xbYtqsBVCXyIGl!*Kc&OAr=C2Vu(HwXi;&fnG)seJ~sB{Dm0W`{mRUJt|33j7IE&#NQU=CQ^c+T;<|D;O8{Q)R75s%Efg+cQhPYN9YHBISu)cfl)X(4gNlqkidTs zzOEx;vI;8=qy|K!=t`olBaanO0d@mEFw~i@BeQELKQnSuxQK1>;;>_+5gKf_@a}Q-V6Jnxzm`u z_J1WGoq;Nw<)MapLX$&kzrXZhc&3w;J}8UHv^@J&lWEt+tam7MHK^Nhp<(O@UMGhw{EDRywg0p2ucrW9F z;g2Tw#t4;`i7aYbygGe&+iK?IcBbLJd2WaH%K}@WYvITlpuz~yeqw;i)jM$`dbQ*qaUV7g;-!+m5ATUh zpcp7h-sO__yqW;#V zUu@fES-s;bt;J0qu@g6gC@UJm!Q*jH2;3wIDz9~M z8|WsPZ??ugMK_iCW>?&^bW??I_Qvg{n-p;beh$Tzq8Oxd+}?<55Wr2EcxxM~vE|K! zD3qv2Wr1qcVFHRI6-kVYvB=VQc_T8{Di751z1v00Ufww1^r(XeT!W7 zDe3f$!q^{d(vBl7onS#VFugnmrC6WmC0Nt<%Kap;nPjEU+XDP9+tP>3{Zz*l^f^J{ z9*Q@8+}wZ6h3I=(u`O(Z=!55Mpdz!Z51_UT`Fd-JOf#(XA5r$PQyGiRiM>mSxXux& zt}(0a*^SWNWNrGNlOQkW^6yU!{^|>rsh@6=?#BB%D)jV&`X9>Afh1uQTZvB5^2gQ0b9r zz=tzVpQM+#H0?MP&|!wkre6eb zv(PW$>mbFhAtU;wfSlIpv#Dq{bC4zb1Ls0ziStc0T?#IJ4^FWbQ|V_0+>osFjA4M@ z6zCMKZU!O=*-b&GPe!)Hz9UfYEc#IbY0HH4v1D6R5RHDQASi|sKS-t*1Z5Zff`MzQ zdbC|wUB_M)Gy>318|1{JrZ)k8f>LuY)IH}<`VFdQi@2}JKLF;`Vy*PWbD(X++RCKm z{B|=vJ@-Q3%{bB-gy$%f^yG2CTQNT7VYr8CYFoxv7@WH%8LQ=Jwy|Bf8Sc{Iqldmh zy~Au)A9K|u8#jRZ3p!I2=@%Mggvp^5L%YYZK0z0P|1vP$StX}a2YH>&bWeR^u<@Ei zp!o$|2(DpZHjZgM4RCEi7gErZTi06F!1TjS!Ff+~1wP5(vTXk*=$fFXkn2JqRkpLy zYGSX8G~kCGg12z!hY(sg^s5oM)mdteg<)RtQ*KP4%JAk!7Y+q>H1HasJEq^xOY95=d4&w7H#+Q3~F&sN7}alR@>; zE?wCr)Hc1N&`!%PWpOq-xNz|7r8=l6@znLc%r+i9MQ%1oX~--7k6sR1uXARR#2 z26e=+0N$mKFPInoL&uS?Bl9CKju7Z3vEnW~vIxJ}7hmGq z1Iz;9Li|DqKl|xe8JpJerF-L5$2KE?)*nv zO_bAG6{AyrKn;>gC?k5{$XVu(LcNhqwxe?n(Q5SbMHTB&#s%fAzb^9ElAOlvK31Gn zp&TkN5B);@9H&59RiekQJTAB|n|;{}6o!TJia4;T&=5I$D4EA{1cP6M2PIzG%J8V2FYQ zl#dqaNKqpkP8(87ZE?{7no(NoFG)EQdQ!|%VkTIN46~~1Bv!14`Z)v9lEvSV@M_1A zy7HyJo+m7FD&7R=wB{)^ZYDU4egWiLLi@07r#`SPW1&7W`T&R*D|Q+EYK)fssF|`Y z1|*hHY1@x%%l-1L%I}&$8fnzeQLlD91(f*j;DA=&q6gr?IVdwwDa)6y`j%x4LX1Qf z;Kf9t3{+m|ljG$R`r!X)n6e%4?i>_)Xk5O+;QPwU+knsIpwNTt@)c{NoJLSUKLEaM zD7?C?#+1Zeh|4&l(Tez3=#nj}{g`2SiHT3-VCKG>o>kg6K>bI6L~)s&WiI~mH$8z~I>s9-|tm7SHB zQGlly3O^ZEln>C3IiQt*HyO%D98>A#{u1S7Kj1eE0({L-_@ROdXo05O z1MC~6Gn`)_QIuVpQUY*!L-{%=ps_kd^#QjulwX1<_Zq6W^ani3P?k}7s(^}ONZ>?g z172w;cY?f})^T|b@P0$FP~Wtd?=|HN;7f)={~n+z#~Q1EZUVk%D0zb@pKD6N(b%2A zAuD1LrcjeiXmbXm9!Iwt;QEFlD}$t*D61%40QWZ(Ss5f{>W`|Vrvc736j>Q0<+(KF zWeecv3`JH3NqGy+h~x4m;4_9ID}$tL&;fk|_@<%A${;B#@2I#q*h4CaLnc~Q21&7Q zC`tvu)eJ>e21%)<18N1hi=oKMASvB6WenhHh9WD2q#V%{`jXNXLy?t1Qet#mXv^zO zLy?t1QtD~SCxE{(6j>Q0rT_0LMfV9Fs}n6NgQPs8y~F^nU?{ROQ0JSF(R-FEfJXth zG89=EB&G38MHvWqjG@TNASvk!6=fmdCk#ba21%J(N>N?_e9%y2WssD!m~?Sv_z>_X zh9WD2q`Ws=dASAnzM;s1=00CzJKSs5hd>z0Z#4)6>^k(EJG zCjM6y;~K!*3`JH3N%;f663Hcf81M;0k(EJGUd5otlq-P0GZa}FBxUrwDxkjs=N_*U zEh~ehl=)LpVgV-_itHIArIDsI0^G(>WMz<)G@YWsfX5k%tPGOUNmCXBUSlY-GDu38 z4rn*v!-gU&gQN`5lyiWu7>cY6k}^+IZUg??P-JD06bBQ3&blHKF!jR`Tp1)KR*%y) z0XH%fSsAXjKxJrG&8NKd06f@GWMz<)=3Yg~0=(EzWMz<)LPu2rYzMsCP-JD0lytoA z&(VDw@Hs<~l|fS0w^o!N0N*wgSs5gystzdcM9lwi$VAJ^ASqjqtGFZqu4yQ;GDyla z?WHZ?9)=<-gQQ$|U3nP~ILlCEWssEHnz9b?c0-YsK~lQwfQ|ru+fZa>kdz&oaux6o zh9WD2q@2_gfj#@YIAo$_WssD%Se0__#sQ|^#0jnpk}_6PngDKVD6%r}q^(mM6 zJl;@ZH=D^xw|bhg6!1DjiDwFrN8Nkt@n|pLBZeZqNJ^HboCkc>P^1^`$a;*|eckVX z=~=c+k@O-dt2HGGaGaq?FWdrpex=({ZNN;Jt>zUU*@W(BGLOtnW7{f=|OkQM07m#sm-^#M206ssC7 zk`so$iaVQ6MK=wCHT0BeyOP61@WCD;FJ73+Sla)6{b3PaxJ*o$6|Lu?kEW-8(}q zT_b^%aM8xtYe*Qg^Q2n)Rs&MoMJs&++p*t0s%+Z>>FT0Aus%u{SLXv|I~K?!7wt@C zk$H8pvV9!L8W(MhHy;zmk3XSocLRCFMe_^>I-w2H%ggQefqdkmjmHC>ShRpbuLHU1 zqOHS#PFjf3n{AzGcoP%{qF$((gdqpQ!8OkUq@jDrepILhiVN`ixKAh zwLhV@RfM*Ri;P%?bS|JDrWK8$ZE28d^)1*edHj&dz5YOk8noNkQ4_6%b0n=>@O0W(!>jj6;swc`5)z~7U0GquB>W-fr!=G=P+Yu zFFgT|4Dq63#k_SpdZ`4?2WL%)E5-9hB9GUXn6Lcp2Ip{yKdTy3He8#eT%7}aCB&6g z?WZ&FvZ*t2jAL~huowC2rcH*{i+P(@WB$l_6-gZGF@y36KgWPV>)mJUSSul#`c|vY zIBXFml(~uZsAvU?E@V|{GpracNE<;3FNz^hkJ6A;g|)AUnb0iK+F*ktVm;J548$`d z>Fd1M5A{g{QCBJ}xx{aXi@>gj;x4H&2kjH$9vFcv9a$#0CvG&7T1tqrpf&n8s_VKs zyRIWdM{oxkKJ5+42ug?F3o#L3wjogB*nF(*6kNhCjKPfIUjW@9xF+IcrSL#l+J5I#wI7;q79QZ@kZ>xGgo$>|a1?EM zsHqu(ACu20R`P_W<9oIaUe}hb`=t{nUu}0iX*m%;RB(eG)B}hs&P;{pP|vAa=C> zDy(|Gycj+U;82;vBVsqZUPaYaR{&Jmg?UKqZOQ2I zaj5+crVBg{EC963g?UsQWvBeDy3n0~UUXp|7BlTS$;$d|K<~RSkBgJ-kIyUXZvg%1 z!aOj}u%{1J*4{ao|KL#R=83-i#pz&`V_f*Sy8>cTuWF17P$>pp-6 zxiAloEA1ERsj#yE&39oQ9oO2Y(J^wiYyq^xg?V_~WY;*W!afSjCc?;)jXuNxA*gK7U2I9S8c-5VtN{hEkP>$UL6QkEtH}8PNBcP>?Gm7?b<;wM0V5X?#8 zAyspF^;Mkw*?3n6hve{XgXXlph}k#!p4F}Cxr#ahzzhF4LT7BCzu{_oWmDj z>Wf3Boi`mcXPyqLGVt1l!@CZeb5wIW0Pk%$yzQVl=QL+B@VSP=`wp6uf#HnfvkCYv z!{IGS&FQZ>$AQ0ZIK1*26F_Ca|ZD4h9m2b;#~Vu`56!V|1tI+@KF`t`|zE;n`9G^Kp;St zUZvMirHg_Fq=-mUdXm-?S}y>9&2hB<7|tTg z`2zS)j-&m@aMoE)+}*fgiLWlZ_8-H!(sF77Pj?*cKZf%lF6Jc9U4i#;9PK}bGsW7O z0DQXRX#X*sw$+TC6~H$-j`knJdDPl@2KXzEqy5Klnql!k^79$+?;J<_kKtTzIchQ1 zzwp&%*ZyNTan+5TYQP&fj`knJscP+92fUZ#X#bHVrOo~UT(C-hGJ)qfj`knJDYeXS za)GaN9PK}b^9W|KV&_TV2OLNHkKx4OGFCVr0sq=@wEq~+Q<&}w=O5zt*s^Q?F`U*m zKb3&jaUAVGhV!Mha}DtBj-&m@aDG{8@-rIvWXI9|V>m&Z))L^W9Y_0*;ncF6y}+M$ z9PK}b)7^632Y$+NwEq}RMa)8^?0*0cF0p0T{$n_Id}cW1fY)#w?LUUI)uz=Rco)af z{$n^pEoV6J@s6YY$8e@t4*#dU+;O!3$YSDdf6cQdKaT)^+Hti17|yt`spn(BKXn}K zKZbJ}&pb)le*^Ae^+Nl+_8-G}2a86+NdsQhakT#!&Yd=`*1$VEj`knJxnMbifsb_@ z?LUT-h=oQ;YaZ}>9Y_0*;aq3!>;V3R<7odeoB@{e7Vr~}qy5Kl-c2xR{Q~@N$I<>{ zIAv{qQkUWWAHKSNwEq}ReamS9yrbi2|1q4omU9d6QI4bi$8c6!&K%(PIF9xo!|7x> zTY>L!9PK}b)6a5V2mYSpX#bIA}E`;Xzg z`jg=_0p8AWwEq}R_16ujFYsZGqy5KlhWuZfxtRaptIMwa$8f6Jv>F0${IJa2NG~jnRj`knJS!p>B0N?I7+J6jZhvmEk{7uKv{$n`fE$18HXB|iTkKxR< zoW%Pu|G`(6UHcFJiC62e|LPrP?p+snV{-KB$!(dKw7>1YbAn z2F(Kyzv`eNHCjTmM&NU3%GMoU0&3aItBLe=roEw)hEMQn)UNx$a`@*YuXf|Ay!KW7 zxD9>n=3FKzt@>5R0(9-xOuM2QPKDatRjoWc`h{<(J`@sZ(JS7~2k$0z4aD6oq_0}E z)@^DK#Mu@St;mn3N!e;12rC?kkBsT3zBE2vZ3VW+;Z2xfd4Q<){M>zLiHNJ$0Kc1$ z!qZoK#SgbDk0#ZRfPb+RY>G~F%R`58hmdF@>Z1g{QN?R22A*tzYh9t#0o*JfgzY>FCT@Enbkho<&5!?iGXuRxt8T<{n(8#@Won8)%oY*Na|75Qkc?I;p=Pj)yT( z(3h$j>ZwXXT**O?M3T8hHH5g8gXCOjtx>8A#5X%gx>pTNR3jmt=pb22X<7-sTIco- zm>`Lh-wpU)QuZ@Bxr0|{&fDM|LR@VJvfH5pd2hAO;$o*zWTGzKuT*f_r!-UU^+ zVjrhpNnBs+SC)pAKu+DNov6Q=`jpBKGI0x}!FUqtj$%-_)tQ~t9LBdW?K*QAlx&pe zBl5|+A5mVtU({!7LF3x#2yW0@G+4hlcL_eV3J)qW;Hmf$zv13=$&n8s>5)gLD6f90 zSW9_8OcvInrDaqJNGe#Vega-AlvVX1 z?id5fLTw_`FjmW{ULa(}lH}=QuHZ&9E2x=ZJx~BMAAMBG(a3HkwE@{xkAeS!)zKb3 zx)T~#{mK)&D36*dP&6Rak4T%z0%Kng=(f*jf~NS5kKU0js^VY(4JxUpcj*4T@@nLd zZYzx;-;Ys_)sU~XO^ty^3CKMJ4kP+TLPZ&x>IDbx*NMDsl@n#gGG;vPu{Bz)M#7DlhcgZq z=dH+It5%C(C3peh!uQ*PYwh7VK68_Vx65@@fwRrwRshW?NMIi)m8Az zbcO>pgOA25w%vu{sblaQ2u$}br!MJM_!HS}P+_*o^zJBiX;G2;C>36Pp3E}%rJWO+ zDb*uC5oSd`wOy-Qu<>q9z37sZsZ?c?qtBkuus;3Lb>Tl4w3QTMLks@=3|@y(hyT*) z5=tLZ>_O#q!)>Sd+4n0ieJFX}pozmXz4T!W2fbhl80o`nfzzdE`k2S^&C^58C;1$c`X=xy!uXd7es5zQ zP9Y$B!RQTP#s=%PEt91?gUr>>gOEA$6)cc?nG@y$nTcEQzxkOZFx9%?Xa29I@-F(Bf82;<6EaU=ZuM<~7c7gs z)q9DVMotgzgbT3m%NoHqp=1rkugV(HG~Eki4aKjYHKe&0%$fvoTvj%Inpqokq86rpuaatAE4r5Ej zI;A)~cP(9~H2-=(j(1G!r12))I8LbQgk|0}X!NiguTGghV0iJ1(SOw`$HB04y#E#k zxbh6Ac|qE%Q=tn;Ng)nu8Inv!h*N=#(7X6elHZKb8{nie-3%cng;1f`003r!SK_Bh zx&)_hMDW>*pe2R=!Eb84QAp=m%#fQrO5fpoEcO3(zX0l`T~`LkXRqFhX_rHO5+sAj z#|-mrmwK#7d!B|Krs^OkOuc3R|LyK4cTmV%Gg!?Cl?I zC3sAJ|DvFb1i3S7M(ERZ{7qR8F;TkmJc==o73P=-N7)L+Z$LNw~FfS0`Q50Q6uTU2l(bwxfiXAAcc`~^xU-; zgeg)x6CY+cNAbm|`nGb~FxJNwR%pUT2qobU)*+gfMZ^18i0Uzjo*$=OV!obZBf6#l zxa~~#%5Tb9>~C@WWtHiVmcrgaDQhrsKkG>scK<5iL!_`P9WH-dZCir1TiWMXu$K_M zOm9}(_F2|$Rr%xSVL~i~mv$3#aE!FmR+z|=nf&K%1N;HqIc}5DiH1kA^t;$3E5yKF zT36bAv>y~(#3EgaHY@q-llWf`#PNr=;0mb}ci`~iZ+Z&h(%c^c!_|2(nx#>7(t|Bw zeQg}y)l|B|rcG2^lL*mf2EF+8T@ik88^WRZS7ENgHugwG(H6!-mK5Ty8QnHQ^a7&N z*eD&1h)CbH(&E^x0*RK-V#X$Vn-Og3pG7#4KTtUZLuo^HL4JlQ@Wr(nYCG*g2wTbd zs1%W&z&x^i8Y)Jr=_^8P=}~P$irlu_c92Sn zzKdS4(^Si!;=`4z0Is#uChw!t>R>Qh0CTn4OT`;PWlN#=*z379XPu-}!5V zrK$V`g?s~Wq+s5}Hamb^4DgM>I?ailSqm6x;aj?dtY)w6i>%!4(qUAKfpixrEw$G+ zy30YSUzX(csQix#;jL1ro z46R8aZZVn>;+C&T=9e#-%n0qN&tHatV771#->C4U)C3iX!oAM&fie3KRaTP?qkRAKn~s{GBC z-)(|Yo)ls@Da7ruGD1o4qg4L!72QKW3bdH}|0adFc~(ZKE-BoBDk=1hP_&pk%O!=l zwH9V2q;UJKq|gsS(c(0OrH|qz_+)OVbIAvV7p6#V71qgSB;cWxbwH;~9XN2j7kZY> z7^_A9h9KVw`4jj~;|uB-@KOh%qs`&D=Bc`+vx)&z-+!VCIi~!ni%yjO^tM(ge6dzd*D-AtClKLvrjk!vO^Q4787zk+~%2Q*s^95@L(o~c(xKryF7 z1<2#KV~D|55@o}u|Ed!8PVW0cZzcOT4aAQ!1b0O0Y^yvhi15It-lwH*DQ+x=4P~)^g-Y)M6lk( zHpUH8bGV_Ze+t4MES&)_m3y^jNCV8~K5l*;bdi_ufHp^+#7K-y-3ZT7JEtR3$8U&; zm&$$In+u-^GARA%j%&M0?h6z3Z*?%V3Okk5>bAL0q(FvZb z1_Mt*xZfIP0J|o$#N3A7KaTi03o;;X;LqU>_Tt0-oQtBuUHMbF3XsiB*ZqbVYTVB1 z&>4(PIw=$NG9Pl6^%>k5w9JQ1A;r7?ta=W&e)F$`@J4*45*YAOxnp<^w@&v*AU?x_ z47ihar!cv-dTNmLzpn*-1%w+codGX(IXpXuui@|?L;O%Q80AOzqP6<(0z7RA5{UTG zLo~xpUj0A7NPF1imjP2v+}+hwQ+Y_eRPOnj%6n7U+|tzV1EJfu)Kn8?rkc2isi~%0 zM4daMih2(Bx%9_FcsssQO$>Oc+(I*l8CEg@Rd4d0lgf)INYBD z+45+4lsoffH2!9Qdo6*DA(1gJbq!rPo8@~2@sBKn4vz{O>=m6vnU}hYyk4ci`w8(2 zmM0@G|s{dc&THlI~rnmD0Bc)<1RNoiFHp_luG4-S zF#1?lq!Y=MEuy)pw3kz{6?h}SnQwUv81LrGGh@7)@Bh40@fD`fyq~BZf40x%0O-nZ4Wa0<+TEm|) z=%vnMx3!=ypi+oe!dJ?}fS39x!NC;(rX$|Qf-+mm=9?V-QIP2o6irTY96Ui8fApB%oU#-9!08hj-o(}!ny{?N!fX>vN(18+MxFIb-GdePr*lm0gQA|2rq zzy-X!&CBLnBmKC?qEO=qtSI9MQfJwGfu!F$nyJf!j2lOYs4QnNkz_NJ@U<6ycf<$c zE9GH-pU9Y(%6DGm^sf)bM8p?Z2B&#aQ$;6H=B4u82|0xufVT$mM=g(iyYK@2D8q|z z!OKo+2i{wVM_y9Nn4bS-*C47M2m0z0`X!Z8hWLK2tJcB9pP}OAq_ROLgPw-3WS{Qn z<$R2*E&oc$8d^EK125+uG*Z7UWY<|ao2Zw=m;3rRLpIpTr9EWtqL)sE%y_9Zy&P^# z@6UsDnPoG8or+mLZqx4XL|lqq<}(JpRPMx{!?))8FCcyxU&$>4Uh3Nfi&Y2sG2&la zP$r2v+)Up;2U%fMh$|wD)8itW=jZS}y?z*+`j%(peDwPi6DpkBCyBZ0Br!FfNQTIklSE<^7sZ<>?mCDFv zl{%QltH5~v)GNyCGrjEDBux0frQTg$ndvGuDs_!`*xa< z<*yYrCDd;`HEGz0lu$=(31=(gHowz&qkYlU_n*e~D^ZPc8xi9=f-$56tWANn|FofB zjcRPzh}h5(FS|kjHlBcu%U?_?omEPI)|~XwCP?*^0hD^#BbbBp{|{|>)2i0iLD3#d zZTzJ&o9|%tuYJ0p)ZGL?*R^>Ct1gO*h&3hNkw`OUJm!m9{jCL>b#GfWW>ZAjm@RH1 zVzz{d6lQr-70ns*e2=UDGtKk;pDas$*VpfBHT7;Iv})eu>g8N|~8}ZMW7A@Ce zIe%7#yaZ(Bt(*Zb^<$)xAq!sF+_T*u1gUE#ZkKtpW-wb|a|u7kA1)TSLwhQJa++6z zfgFVH#8-L~Nh7B;)4mt7HL>!Qly8UZxoCN0B9+Y-)B2^Kz09rI5xaNIx;CTxYUvg9 zTWaShsTv)*tj+Kpw*H9!oAK?^`+gg$X)^_7P`|;}*su|?p(9>) zcea`DU_;srZMa#FX)~0WHX}i*rwm}w%jUar{Tk2xx3;_x*R+|4_E-klW~z3C{_O?o zySb8UGgLCp?U}lfyeNqz(u|%wWe=m-j|w#FUW)75OqAK;(Pm4Sh-ou4XUuP*`O43u z)NC`~;^lPg3L6bzqb0uLx3bKWbA5TpJ44pf%DG60=E5c9 zY`(R?Uk1cY6x`bgTyr7pn#*!Tyj0qfpPVtAk8eYCFTRp2r@vm#LMFQ(ve&I#lFjCu zf&CvKlLR@cxIt78F?=F;#Q7#{`W`BSeb z@7jg;lJM03E%oi9KgH~`D$VRPgs-oR8R?Cj<#VVQUV?EvgfcpHGdIVzU;NZ zrajTFX-^UqA0EIUE-sjZod1Wmyp`Crr-=4g2HBqYzGDAKf%?*(Y9bNWo~Y#7la5GU zloT?NX7rj%HeYJ&{}F9gPyQ!L7I-@2CFtd>Xbxu4{rD#XzHXUF9E}p4cHogqgHaIcyFg6Ei#Hlxal>1p3gZDrRg8?9mE*moYKUR57|WEpDKLrDoH3P9_=T{!0beP+y~&c} z1?KsbdZ~xu`8j7RBSViNUh(B9<{WkYDm>57R#hyg*UNGw0?NJWdywa;kM9P4o!r~y zw0|BJ9^!hdTdNSe7VBkkeN5z?CW!P^XUh`lcpD=9B!Udcje^syk=1dqoNuTLHV*KO zz^13N5$RDm4Rp2N}DiZf+z!LxPD23)i3RnAZIn+Fkca|8L#0YQk zn`{SK$1&URx%q8i;LifGGG0Yx#YQA6<7IfXS(&JGRu;*I(W>5fb9Nq9v`^2u|A_OP zdc2i95oa-1HR!Lr`9SVbqdg_J1K)-GKE-=$i;ayWZ36g&gLtoj;{COf#PS{#wTMhmjRhV*Tr_Q(P?b4XXiJt>ady0T9NY`(hK4S)qC$ zg3kkrYheuxwWKynkNg)#^As1svXSlzwHKlFYGMK8!1g@FMK$vB)N+JYi^d{^ma109 z^e$gX6ZEHgZ0irGzjt5{BLk+{bO)=^hnQ~iPWPIgzK1 zL#{PWBb28;!7nwK)GSQPhMJ_rmm!TCqc$HV@eP21YRvkJ2vw8NUW7VJXbVEOA+$kp z2AkhVN}9@3lL2T0BN5UD`XQtZbVW!T-~{?I0|6KaJGEq|7Bp&$ReqKAinICr(v<8x z^(o{!`C|y_{RKehkqAIAAvmv zlS|bs;}eIpZ}texG=8WLE5&i<8`2;&qqqrb{p;3g-iHnCG`~xTPE)2jWptXJ2(1&R zi8kOIMk~`{v@#t=E7M`LG94yH**c3>p|fZeItx`+D`s-JI7p15aSp9V=g@j|4(crz z=ZMiTj-fT^7+Qmlp)*Ivh}LjUp;hP>`%1PZ_l$MlG;APw|d#XE5?q8bY^8s0czU5!$G}F&f{(6ZzR7 z-Q$yHtSV&fEb?{N_zaX*s7TlNDdM_o%&%g*My(O)8mYn0CiR_3MCL~`AX+4EZBWfC zCIy7@xISQb{_JfI&wQ?2HRt2VC2GVYK5-m|<>q|K_y)vt)kgT>t6*+c+>S}LB;x0u zn!Z^TIe_?8wBqL;K)f;It#th8^aoWRlj8M~E=H+0%%I;JOI2LkI4t$c!S=eAml_{iawep*8W?F!a=7!bYu!6Y@r)wja$Zl1G z4LtJyX=Jit-DO#(w#38(2Ha`E=>?T#k6|6QtQoq(r?bM38IT(nCB9{fGgAmsV<=aT zfGG3~NYZ_5G5X46V2e6wEO4j%I>tgU_g+&}oYk%Bw4ro}Bmn8pM%u?p;lEqe1tZO} zQe<Mtsp4 zms8)(NR!bHP&YRPbGM6;;YMEF$o% zvo~AYYY2PWV(dK~Wv@0Wg!LPU&fm*X_A+7#xX9e7K8-TBR8=XWYwtX+wZ)Wc@rd;- znfuzz3!$1(y;a$Z4K9+{r)2KY|A6|I%so*M#NmSP>QUFXGl{lzr*_tHcWSTasjXO( z9r$3wY*?X!W zduO8Tedz2(o!W$CUHdwJrA>^*jYoxCc4{jd0*hNcmLR9LRg}4<>NXQA_|zupQ)^FW zl0Ka#+BZp`LPmMoI`Fi0n{5oH>Y)oQ@?_++b>nHv#A#cq?lnCAWmU?cM@|1%)eF%c zssVm`%5NVodn}T-F{%C=FEiizUFQ}3Y5pNGzsKZj>m`$DgIgdUyZS?3=TC(^PmRHEwc4D0-h$9*39Dlsk4x4?l%aLiz&9^g93$$ z>QgZug$?Wto)^=6I-o`!)=LgT%*%4s0--_0GW`saryjuX zKE&54-Y$q%OyR}g7)Ku{^j?O(TG94$#rqU7O1KcL<8&&CPD!J)T=5=B3>z1LKS8E5 z^f^LUX2Gw{5O29ev*iMCyQ8la`cg;d{h=5-FaByddO4vNHFTZ-HL5w{XQcS|z*%F| zdExgAggSG(5Xw^<@XO3u^}~p_sK?%`g{g9LrSAsUna0N^;PqPLlcpO1UdPyh1I6Y=v5f-#nFz-@CwEuX-ZX!6aoaJ-oo~6^f4luTYbPJsQ8; zz+S4ZH%wk*N*9Z1F+cZ7mY+6gB`rj@JAY)eeFXX&B-{B}F6*SMm#kk-xjg&lT=riu z$(A+A7L@(e2F(8J|B?MI>TA>Oao>Z{$aK{BfeQ|_&z}r|+t$pD5HJD0XpsA(q+68j z%zm5gd5>E}EX_A=Q4Q0|w=4oD+M;p|!g2m*iyIOUyA;Vf>p^P32NVb9mE3Y7y@gP37piM&d>1Qkz3*_l6vY$D`#2pt)Ur#XakVyciE2o*GZ|k5Gn>_54&n<9e^#zK3bPkanpKTC zH2OVw$lE~W?NB4JkTTC0o3%v^FRlk6R`=DP>e|8;+DyFyfY!T3tuz#F<&o_ur)CJn za(n1Y3Czx*vE68JkB?1G<2$RNReR`*tmh4vd(6J+xMwX_EA>!~VD^}ya$Ar~hKltV zoXB3mT&*!UvOwasgUT01g730<%EI#b9XKL@vrqO?NOnmavZHnX9%L%=7hz(7}Qt?P;WataK8& zmy9&aN`;%0s!Ki3Na3)vSU4kIYspfbRgHA7mCmH$dPe%Xk;<8cyt$Eo;pD8iO{#;D zv(&*{RvLY_bxOpoOMM>O3D83)7@R(Rt;MY?Y43NJ8=%iJbUJjFrN_9DcIH)vM`vDP zdFE6IT|4qVL!%?VW@y3O-;J*cKffcNFe-H93r@wjr`0viyj6W^*hNm+77gR5#2<{j zs*z*K4AOH(+R{pAQTnHmcDGWTo-HcDcsu=Zl0~!=S%1tjuEA||mP9B}USJSzp|j5- zuJ6{Zkr~~h?lVmK>IutqD-6ip8bkQmg5s51j5PiWTW-`4*smCQStI8v?pF1&kv29` zvB@pYDrkzlL($w&w1Gkv@9ziIj8%ZxlXpL~;%@5m?LVdVRbTz5Io8R>`l*awaL zjAi3QZc@jMRJR4zB&zaFlW`7VWxsSy0m%6%q-hkgRNZL|#jLk2QhYD4T5{Ha=X4Xp zWoOB6-DT$z4lR8earnEyacK#M!$OU@hChDrFvQzG;{{7&xK1>?XLFxgK+n#4-F!# zwlFd{9?P^?PD8Ml_KVjI`yXpVQptaN;0wbl`?YNjd(3*bxO7S>U0odvj6Mu0-=;{JdxM&BUnmd47k)O4_c{ow4u`aG(2adLEN{Jse+Ne>*UBWY?n3iAD#R)kykfzA8iUH#AwKZ zVMI0ZG$ZFsf2-bwRfn`Fl>T3%c9Le{ymbbd!3@$XR$660NbH5#{U1`0{eK{;UB{ zxQ^_#A6-Ybp50LgbStJKThET{H^faxww~QihbD3}65Y{WXqt{}BQ=)-F&){ad>z^5 zNJr)kQeL0$Oh@)0Exrc5Evk-L(&McBLv*fEqUesSlOeDp``r?vJF*^87SfP{sS_N` z&5g-X7Fy;bNJlm^%0fPEE0VX7Td=b^{O$!9_yc26S~KG+YpNXU>rcY z+YgMirj<&Mb<#-NTB-C{r;YR`E0rGWtdV9KX)sqe%s-8Mo|EeyC|E|HkO!Px_i#mw z{7EO*4Zoz3zhUIM$7*S$Upcn!vAP@ipGIzato}w^3@wxXYwl@|Fya~!F?*~mBW`2F zy2r{f(%wdD3wo!KXF0hp=siY0-^q1BR~q?xCuc!7sr5!~+82AQ4n~x($I2Un9_x{# z7DP|Mk6O3?3|Agr!}|&zeKeMbr#pC_dKkv(2nuOmBmLV-#ia)uX$neiYj}$qXQbRSv!zAM z3Y4^Qxm@0=rW#&%%aI1L+(<{nNOv0P3?ub(@8xyxlSaJUi8s!|SwCRJ#w*dJma26| z=1x1uuSM!Hp7tk>8n6VHdV(i&H%{|X^^xImO;L>hs&2wlx%-OZY!`<{ zEqvvvT>i6OKZqOp*_XYx7O6Lx)H7#|i3O4nlUi|>Nevr~2XdYv^;_|;9a`klygQ>x&fO+fBb4KV1@Rn6>2qr z6>2el^AtA~Af4;Utbt@>wxl)t{P6#gR~Fb*@bVN({Q*J`DDIzQ`60s({o;2Lg&zP? zVW}!*Ot!@0tN08&3F2x-ycAU_;z$!Qd9e(4j$Sz6^3te<&C9I_;Z8xp))M^_D|9^} zi5^(2G^Q=x74yX|sA*ly<<9h52mVs&LA_9B=X)XkULQ9O*Qfuug*?x1AqJ+Ig%Tp&A>GO%V`|o{!;FF za~(0yoAV!m_C~0C-uzHaSULks6@M|Fy?=-HYUEAD z(iGr8(DGClgjPtXJwopwv|jzV^Kw-_%g0T0wAK|)D`2#Ee{tv2*owy_xe@I?E(7RKE zlBS@md9iA2KHnah2B*C}@9^o$!Ln{<_nbN=L zb@>Q?OH+tM%Zxn6zwuZS$>uTsm8vG(x4WTxgOR&FYN{CR2_R2hgWpW#0OjCT1cME8 zJehsf4`AXsbO4WlvqDutXubOS@d&ZB%>izPb3cO%;Nf2u;H9;r#$S*vRawTYeb}FC zn0x@A4dHHsU12Q64OX}OW*b6l7|{)3kc8L}<|3pULVi`-5VRH>g4SX~pca$NfPb$t zN!rZgng0haGRai{ACiRbM(A}3%|PfU35`c6xjjcd{?j|Z5qX5Woiotb8K~|Iq&Wlp zqxoe9c<25!0G;k92BE)nTtNbeK760{~U&?3xw>vuzI6L)s5?GVx?8zb~zCi?^H4U5pOxZ2mb-_oWP-Z? z59>SAU@A}1ch*UWzO!FK^qmU`trOpgHsJh5E7NbZGW|v?({Hpg{U%1)`ixeg&uA6; z3{_SuW^%dsNsOZL5v@lb(R%a|>Ma)^iP13rp*83qT7&+fGe`f3)^NU|Rp=X9g}$Lx z=o>LA)-SXQ{X(nIFCyj9zL3^|^+{idF=72co1hh3BFWnk%7k2<=8_y=s8ak47!dsPWN%?pbwAxIGa% zFQHBdRk)gu{+~4(_R)X6bzQgyW+SyR;pl*`To-VD!s`P0iz207>S@fo7O5Y{V5oU{ zwwcZyHVLbB5B|-|&z>(}%Kvf$NIM|8hg9hUj5kAklf)15l0f1gA&v*o;70dAbBTJK z$Sd5kv_wa_P#vPYX@8jou|u>t8S>?-9P+Z?q&^57bvRF@L-r!jJjF63Tw`ZLM-9&n zXp8)QFu6izLwW#c4Kn^(!A>0^JpklaD|2Fn%!Kk3JAbXg&Yv0_hf0;#b9K%h<&wah zXc>;SDQ*LCpUKGq=J=J5k%>ITtsqvz#B#+QhN2mPKk^iJ7}6;BC5l03OJ zs-8(djZu77DefkrdT&tNvMWD|hiFzQ?%Sn$uNU8IV$@T#winpALecfK+nq-$d5UgV z@mlM4Escg9T=^Ic-7Zhj<*o(~&#)mh4xx>ztzlc2LydJZB6l?~328s7*1`u4;He9K zuF`diiStWJ;l!*z;9ZU#S*vzHuJ))WaJY17o8tbf*2GyUl<@;7{O|H&o@+M=_!`ny;^_v=Hvd}#R zx1PW9o7|JnBp;LEr-7I}5@oV{tVwrzN?5tgd?ptglN-h4_$ZT|tZKf~)6B}P$={vH<?vO0Q&uHcr}{&w~02;56A$4Fqi;+wz=l{d(nl@O`O$Q9dFn`}fXF;Zl^T2ly- z%8Vpqdy!iZslrIn?dsN%h*V{y*ml(;3z2G!q-<9Qa}lY|Nb&7z(kMi(WTeD)^#;~U z3e{jF6$Wlaq!uH1gzZDjMhewtL~U2SFenwO!w52(wE~g4jGzd`ZbziP(HXxMkp@O* z=MY318l4Lh5NTv|;<1=is4*kKZr35PF9LY25qBCdf(7j{Hv_!>7(|J#|K6@1-2gWp zK$YajROcpm+f9Y5)?p=v{)nv|+QuI71g5&K4wh%OZ`;K1|HdJ_gW)Gs@6LD#9^>v4 zYA`}=S}^n|LR+t4=vjnXN~kPyb_3FTLUl$cFrJ}V2wlYG>l5m3gdWF;@}w%gzT}kQ zLnn`$*s|rot^-GBO&UIN^1#8_IbH?X?7M%bqL}l*4zC?#zi;m;^$uF#NBC0C@l?ME zL0)&lmv(sNstiMA3~X=%UV>_2Z=Y(}+Vj2~jdL9|Dqh;*1IlapcunY3qmTiw++g(f zMF#IE1IRI-R+T}mgD+FiFC_5p-yQIR-j+ew$5kD_7N;ZklJZ{afF}NfSpk8$ZTF-2 zq2S4S3VU(Jjn10v1*fjVd1wHh7dHvP6Gbi@1V6qaEEkd8+r9WVTO#~-)_$0d?_U?; ze;6(rKk|Bn|7Eyz{80FHkxL9$Ot`ic!uVqXA~h05)<;B1q(MT(Mu-F?(mde`oS!1T zMA{|nrQJA*bWW&+vKNV$NcV)kLl8-jNS}l@IQvBs)hib;*Gs6k3XwwU2qL2r<`cOB zk2vD>H3{9WLZp~PCMV3MHx^g5vDlE4Fa|zeq?CFTXKZ%DrV5CZR(Jl2oxu{8cSR&k z9fh^I2}$h`DW^^$vM}K;8mO+C!oa-=%TYT;>MP#tT%E9%kp>dkn6R0Vh7#GHfET=Z zMH)$DPr@EX8Y|w;c{-sIbI?Tcb|9fcDk9C)X{7Ut7c7JKhoERgYkE)W|$cY#V>K;qFx}F@b*FoL&1G$vBlo24hHPL4q0OM zMo0!L+D!_j-1r+Rdjo~MKsi-ry} zNGruAO&*3K^?4pD#oKLwB&GP`x^h^eg-f#pTXwe`?%gMc+~ab%?{_)m6@P(x%j?Tw zMTQ(!4wl2JOgXI1lf(T_%VEt&a#$ODk$USY$YFgGIc)4LhfNdZuz86bwmdF}ZSTrq z=kIdZRT^%eQhaw~IqbPX4tpod;jyK1cznAYo_JXfPkt(gr!L50-%|&u{`8x2c;-hr zJe%|qh0oQL!}Go5@WMDb?7vqIFL9Hal;STRm&3t71JE{9idki+3DIlQ)1 z4zKT)!;!b;@WwZCc=K;LycIr3^|xEd;hmf1aC8a|#fyhjA+(y}#S>LsIVP!IIF^{V z8)Hm~8%y*-&#F@U#(gTsf!l)^l$PKJF1_a|LPMXUXoVKdM(?XqN4`xFsrWa{L&^9z zT!T{oK7gw;JeOV!BUtH=&tn-THBbt@R~k1}lfcr&IuK?o@`Hqq&xO^J-=DxWS@4F2 zu=yi>D|r131b?E(l^Hk)!E;?FVUKm#4?lTvH=__Qi1Ev#ffeN+#9E(EVz4qoH4 z2uQq|jvkf#GZqPxr&BNg??7;pRE-Lr_dGboh%gYH!f14YC5xzCXupK;@XF;Jseu$V z?{3ZM>o}4YYr!j@!MZD{+T~$5f?yIkFTz%=RW_gM1yh^oCVDFVuy2)!Wlv29s zZ|8YvmW(brF>f6R9TLvLZvLVmtu{2Aj_kwoPt-S4ZRgw zs>;U<4;#jC)gLb+JVAAVT2FkdO^4Le(n)FvB$-wkzLQY(79*iBO--}nYCO-VkvIq{ zb*PPAH$48Ya>&;^sSFoY?*d3A>Lq*$c{o)DH1A5{;S}{U4K0D`Fh@f z)!1Jb@^b1YMv`eQ;nW~VDyfwSdsSAYBa*`ebScAkRFyDG8J^xi!pk>ct(|K!vrFaTl02=H|?0Pidxf%nTo*v$fADP-+)w*ozRA`=gltACXO(0Xf%|^1>PE?(drh_ zS(IXW_2zYgiK?o`Oik(r(oH1hvGO!pLshy*qnSW*h~5uWT-B>LyCs5k)Xmd%A@2pe zGGgEmE4h)XhqF@|Cu=v5Cn9LeGC-TE-tZElZvr{)(7LUw0&S_{^ROBV=}$zMuvhQi z3P9ScOQ;~HPfRr!aTO>-RNMKu@&cqAG$HL+4gMO4;BD#!lhqUOzwaC_S>^EMHK>o19bTZCEI{)sjG%NFti3RQ434doFmBawcs=6$G59i- z1KXV)E=Krc@I3WB!lN86`IqvQKUW;4R;gMWzy)UkIg&m8cy;%qJ1_H|^5IWw0qwz8 zdyC`fdZ?SZ7{piAdUVXMfONzXy@t{!>{MIY>rSE3K4$(&rG5nE7e{MMahbhJp*Jdw zuTDi8RaJp@sIm}W>7a+{IvU!innBzp28t?#CcUHvfH37hNVH2C!2Occ)w%Y4j9p0ge3^F#fhIJ?^CQ<>cYYfoC>hltn33Do#R0 ze07~j!8NB=plol$X#u>Wz!zAK zr{Ph7+xnrI65a^tA;Qw3G~t_W!{Y1lXLU<%-tgv$b|Ojy!RUs?>>D+B3P`zk=~BiaIQ2pmJ*igrIh zgCg3e@Grga8-YS)br+$g0h$$oIiCw33w%D#z^ehRkH9(g0e=t}Kgq!R0KMSgrqfWH zWo8AMEJv=7L;NKn>13T7ctQ&Q66n1Yq>CT~ibj*X^gogFaLE5P?r_hI$qMC3IY>H?RQ~_tO8sR4QECU!J17J(UgU4#K)(f5p5n z+|qA@QJim|QOf~su&{3K>B7nIpG6;*M9$N|50c|b=`|TV*$WTyr*$x9J^_3>){Ial z`Ewu@EB_*ph|?NnCB674nS=Pr9&cs=@ag_9-yW zI=1UsJRydE_V=K+#B3r?P6>Q~cvw?$9&U5QA?GZcKfM+|3E+#4AF2QV!OTxJy`0f}^bTP$XKxJYu5%ys)KXmM< zVv5;O!5wH`LOcu7Uok{4T{tDyE)!i29Am}GzRiY|D z5-1vX2yILf_ytT=BBpTqWDD`ixM@QTF$_}uSYrMHwut)!y@7P&ox$wm*is$Z#lN^3 z{a(+wuiF~46F{2dh+>gHUb+y6#GS?*RV=OnX{#erq&a2gtCQmm=SARe$8hv4CjAw5 zrz_&l*wN}+kp6Z=mugs_1YtiMr>p~{qEzYlMmd0}kR5#{s8{9z^&TdgQny{9GqM1^ zsM8@yort?)wo#c4`ilQh@pLiH#+6=V*nDBjYXz_+ce=hMfk6CD=Bbvsl+XHD0wZ=xUpDjQm zaze_7TEQ!i#NP<_W|f=-TRSNoLeKunJ&10;%TWh`bnz4U)MriT(1AXCh$8U;MdTJzEuVn_+6 zB>cA8zzYB^iNK@s0H-CiZQ^Wc3iBk1Z^hWYMjZ>~PbB z%7qR4S1|oFTQJwAy>ua7lQ6lgA(jQHjw42DT!>{Z21;IUh}VF0lOsyCv#Ri#c_uwH zA+DJrW`Q)*5u=hOu}q@>c#a{i0%?~cx}>F8#_XJgm8e{%qYi=j{^e{Q!i%Qgz_-i7PAMyJbF3XOBb^P{UX;H;`bo^;fPTgJq!;D z-x|969z#rl`&Y*IvQtlDnK6D(Tslb7SAo>s5%XtM%+3hSfMe_OgE{STwwEquXZhjV z4DmjYHalWeMmOAojIIyyJ&t$N>z@PZ4M$`mrjEFL9^M;jhAy-LTA}(Hr2jc0tKLf| zr%axI8l@Ia2+Nn{@YSVu#>@mk*qi+;Cm429FmL(~c68SxdQbR$P&P>=3p&%B9;?jc z#(xI+aYNm;5tWE zl$$R=m*0HVV5~p0UV}TfVmE;{45pOpc@njiQtrlg<)1HyT%s1pP>y#X3|0#z%3;#i5bF0W zxKR!ZN8u3n5SBqy!q}fGU>~iICu602d=muIN~gnP>S8kMe!LdnG$-84!uJz)KVFL~ zDg^*fvhd5-0(L)Mi%=T1@3Zh0&XnDc*W&#f2=BGjD+!$>tjCvaz7~HW9U6pp_|KKx^z`22ls9JGt)IIqLh5~2_vHDiV{_*tL|=u z=P&xR68c#MMhd7OsVVQO$`3OIau!>KJ#R!;C}UyyA<4VyyLmQC&s&9OjvEEZ5@TWc zVbr_onRCn%Yxay)U_`Ry>N~3DTkX3#U=*alfiuRskQoch52Lu^9s4X=MW}B&s;kY` z^N_ST^ffBbi+lMl}CnvC=I*3(@mzK3sUg(y&aHjabuS0Nf7l=dgr+>xo z5QdA!f0PLMP=-qfhm(HmBGAjF90O&boS8J`j!Xp?CwY&O0 zgvV9@r5eA>NYKLZ=@4|Z!te?p^5eB1*sGyOZ3G%gz^l~#X4F*LfMQiJs66p1Y{cGC zYx5gU(_o%<7a6&!#itF+OqjkI;8as7i_qAz4TE@=!-P@wZL^pJ7=FqD-J zbbA&>NhRpTH^*K$Z#nBW6U!Gy%;Xqj#`1bL$JUK z!##-9dAd31!*L$GH9)pH^k$-0_l2?DR%UJ*23d!JuDxGFo{s)-2$^dE?*Pztu~ZtXfV4+DXeHAUJ*cbf};iG#5^#q zHnQ;rjPef4)edYo8kHBA-V=g86pA@5oHY`HiB=dMM_b9Xpy4~`1Il$UZ?+m_{zgdm z#2{L`9WN*X8}H8%h$vC-^ z*)aK<((%gML3w;jS6nJo0bb8>By%Z&<4hF?n#SRMXyU+X#DNutHZWdXNd{W+m*kRQ zRq8gEZgl+ZI%p9Tc!4U@=tn1OBCM*&+5DV2(JdlyYB0{MzAGE}VyuMOA_8Adl`!wh z2EJm)ukXqRzF|+Qs_?FC;51XwcVz?LzAItg&klU2?`Mlk{J^}asyjx*&hM&db*!G^ zTP>UC=o*oFN?i$2BP$NyA?NQr>O>Q+RH`$;TO8p#K;b!H8R~Sz8;Px^N=*W7rlT&P ztw#T(Ay?~_S_b(Vi|O;(jCUvEH(toX1O{C77~mHyB`oSq2M&Vz=jwGVgRA4fzI3?D ziN3WE2nWU{q5njF)L$T}D{WEb&O@L|Ao&{HP$C=#RFQBVb11hK0(Am|f=0Uqpteq1 z!%YJJqQQxFA3(P{ZMn4&XcHKDH||Q)_*6hMoVJEL1%_US$vokefYwE{xhx#$9+)x5 zXg>+)xrnyFeFLY^o<;jTKp#i6dFLT8FR-&6?g-NOuYmrDz`V5(xH~X;m4Q=gz(4WT z<(9h!fdhd}v!PiR;?{)d9AT+io>_hCAn<-*Jthy5L~oD=I2*G5A2=CUxXG^n1G>Y( z9eHOVzWuy7q_7OqHAGwro-F+b0{*Q>r=WYbIEx+2eCYdl{ej`~CN-IAR6EjJrHQ>&%R?-t!z;Y*_ zH)kZbgMp8_1J>H&UNf#8$KSRY4N6+pO+bcQG)$3n2A(XS2QK*+m%_yDAS{a| ziAPCd&A1vIKmWV+#^N>*AB!P-nsVR&Fswsa>hPL@%=|j@&{ulbW}g9lT#)Gnrhse^us9EU1=vinhnCpOVwS8c_S!hp4Zn4tv3j�XePut7BaKY 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°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%0A9! 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�lG!<)_R4U)`y7@eMYB%={me(N`aV4)N71-UC5jeH4WFsuAH!Un0c=DM4So=zRd`tM`Kt zUp2r~JX`SlDv{!=McNDV2=Mu8_k&PHU!4XbXQR(o`=B=Ct0_TWokd@LUN@(N8gCFk zm6p&?_d%KV)4w!qKVjNWul)d((ocJS80V*cyzx_kd45V&;->+u@>78Z{WO45ek!P- zpZZb8PX!kA(*R8SslZ%69f>v-&_wamr*I^G8W7ZeDuS+`dV=)RiXXvGTV&ekN4S!V zrh_7L{>@Jf(3&P!{`J~V+d_%>=>iZkrW#-tfN;Xr>*D>ijjnX5f;219erkOTWwVO# z7?cG4wC*R`PmPF$(K%B52b7AR3XpzEp!lf)W)bKcQ;8Hm9iTn1lmMTfu7n2h(@#O< zO!fKcQPgJqbXw3)WlZg=n^V_Pf7(~2HS|^5rhPR>Ll3cX?W?U1p#QV^jr)sHv6 zDlpGisY-k`fK|RK(4emdP|8;Y74%g<%J{0lg1#DnX#N()rUIHMzWOze#8(4? z+E+!;^;J)hzS`(8e07oTJmaecW%%lBu28+Gfyw%W*tNTFfWvU1Y6%q0VfJDe6DhH? znZfu70CSn<`I=TzQ7eg*Ca|9fZW5z+C38Cg^d&=M{rdoSloWe`rG% zh_+t<%~aS58twB6Cc$Q(i?4wIWp@El1fsBtMh3jX6jnA~Q7hpt-N$!9NcuR8F@5|h zZD1eA1H_N>>Br&`&A!zATV30r*9Nd)CO(``AC|to5XjuRK1(?&&QZpR8ylW$aLq@I z!MTtXgTokO@U1k12FC+J1|Kj6r~a40ztG^8A%k(t#y>IG@LYpykG)&>@M&LZgTokO zFact4JRoFnZz4HLwEZuGM+2GLF=Q}CPuJkm(Q4H2oVdOQLV)1 z#O~1c06^jv9}rEWpVVld6T3s3^|cPWb|4D(Xk@^NO`&J;OUB~MAtXK##u$qU5Q|?r zg~c;z0|(=Kh^ED_pTgo-h~_}?2Z+MA!WMI&FomAQvp1uUIZ!k_3X3^VgfX<30|fyx zP<$9~u{%(l50DHLQ;Ft4aX8*$cc55JGzW_3KoouvwwM<@Q|P*Jt+w}SulNQ+(#K(p z>0<(C!eL^fx_@ygKK_l49;T26u$4^l%ts3?@Jf9;_>-N6oT_tQ)E8_E&lShngUT)2K6ga|p6)oycF!GW4|J9t z!p{(AS<$?4c80U8WZt;Qbjw+0m4|Fit;}Q>;7-^9rgz>@|`5v1oq4w|f3Jnx|IJWt-!I z@677CykwyA_h$864p;L~R?p?I^amV%ggJ?w!qxNH$0AmdEvxBr%;u`q^b}SZSr(lf zLx-*etya_PalJhEN3)t&Vy`{QkMNnwhyZa&B zvjx}o^y2zVn22X2K*_R&Uo5a}p%>SEaIRbg;Qo~hy}0hdW$_~6C)`r*G9Q*@0U!^|h?JYV{S(yXaR4p{dev?B&j4{Xq0R{qd=N1jM9$wD$p^MCLm>km z&x;ECPEs0ti|cE2=Paet(uDK}Q9T#eAD}`muKxo<))@WBxV4i2(=4vn!1*zY>&c|? zCkuU#=}LFAQoVpN>K9bV1&oa#LW}EuJns~_xGpen0fVY!0V9A_3m5_oE?@*uY5_w~ z!37LIig$`!To+hy0V4pzogx?41?Dbbe2X>}&_r3lX#6Yg6uGz_5X7A#7uSb^=`CQK z@tYP@(pvLJrD?p8;$?Rv-I?6SDN^>+-5TwD)h%tGHef1q05;`;8euKGPn zwXRivYF%NB(RBy_|Dxeutt*D>yj?$KTU-Fj;`)7mp{ayO^!a51(I<=R9+sgO!1_Z^ z7S~;@#9hkYh&wK>8=)-J2*>ZURXctG0OI&BfDp&`BjX%Dz*LKdZB9Z17uVN-z@LQq z^STd~vbwDads!XBywX1ab8(%9sW8t~L3)fxwYXl%a#Wa)Cc!W-1(9=1BN^t~p%7t? z9a~&n?-mGjiMjW+0Ua=rGcor&)iLI}+D{0`p>yswCzDSQT>u4aQsmrD9G{ z!I<--Ow0)^7;^!bjyZw3F?TK6R6r9Y<{rh7#9Tm7$J{YC-(56(A)*D9^s|V$#g2(7 zU*t*59n#&JU}CPpSopWZT;Bvo#atL;;)DQyoE*`*ieR+epwEu7wa&^eOMCIPoLn;v~RSadI~VB~IEU zO7BXXe5L!qf|DaozF~EYlO4cFoX{{8C*xI|WD%+2Oyc|AAf^qT(h@4{@$vF8C z3K=JJBu-k!$H|}CfD)?J*QRqTKpo@cIuN02lOJ#5L||T=P?f|<0IT9epuso^pj4a) zDi|kzl!+681>+u-Viu;?& z#9wQy9@S8h-Ebj%JDa(`%POI|<(%95_>7NxQATEd37OW^RhX|j8k35#)owWBF~rB~ zD9+!@ubueH=6twPWtc_CbmmU`Wf&jdp)CI}zOtDS?O~af9l#+v<~j4(4Rdnk&gRDs7` z3gS}`_?yY){6yV;?s-LQlzSAla7}+;GQeEdr%|%5zk8hOZQKemHn^^TA3P$8QV}M=G_A#`%Zj~tO`$}i8FTN=mQ+d%6>o)k-?RH5p-Af zJwdMQr&n{V++Mo#)bo9=VdGXXVcF`r<+;v}$$9usQc^C|QduyODJi9_@r7$KA+7_* z-37u+N%7<9xN{9`Dq%VJDxfM!NeN(8N{VRgNT{2V5_VHwL`g~c1V`ey0YUA!BIr77JK? z$f@pg&otC#hRjcb?m4#)0%*T(ju&JSVA2`}7;VFNbQ8QKnr(x`+ecZs_R@{4m|l8u zgE%ks6{fcqLpZmK?nJYU%3(InXPHLTT?4aFx1Boo88{77 zQ?@{fEcu_A3ZG>fl>sss;j;~%hR=r5sQPGK#}uT_ZYWz&gvWuc;5RF?b&$R&RQWy#+FcN6Ga@+VTJ!Fk#nV+aZVlK-M6sFPFRJs@&! z_4({asLlB7iIC4SH6>j)$LF(5qmtHe$-hQZ@mZ!(-JqepSh-&E@7W9$bIHF)bNFl& zgqKF;$J1w-MkO$B$)BoZ$v=QqOa1~4F8K#gYRO+v!6kn`iayIUDuD%;`~xufEYqk2 z<}Ue4+z3vi*X7?&|UKP1i9otxCMN5r|vxCt7^#~mihi9FN`J`m!o2DqQ6ql^6#ygKZw&uCrN^#XZzkM`Be(x7Zs5wa0l zfuOHeXsvzKh~!bE_;yN2${&IBRRYCV4RAk!K3}Cu@zvFOd`-ozl;2lNp+S80FAzCT z_@<;cqBi5JV*)p8mZYb=rkm4L_nA&lk=D>x&u`;^BPoC7b8G<(VCC9Z+qFf-^wqaP zgnZSHH@+$`&sV8Rd^LbozADh5uLe-cR|OUHRX@u3s=$K28h~kE6`1R*zoAV9G*NtY zP&@6b0YUAnBIx?6CrDr24#C_`y7P>$s+7MneD!P%EJD3@>O0SAU+vo-9Zg@|2||3; z01xqWbg>JbjrY}FT2~CKfPm!f)4qCP2PmVjK1zbV+V6Djt45@VBE{!Zg1#z1`YM6q zs|Lu8M1Ef-Qhc>UkC+`W_4oVgN6;X?TJsF}>R#Wt+7Y!GUoBULulCo?scWe}?W@un z`YLVHzB*e&vsk(I)k{#H_-ZMLkgxjj##aUA`6^Y3uLiKnR|OjM)c{KQs-S|t>PH!0 z6Scb@Upsb$OoBthb5 z4RlkfQj4F5!!VWVRw$BX#4yGzBR&RzEF=D|mADIozGcMA&%!C=>iv@-WEt_KMwc@_ z;9ExglxQv^#yUDyp`%B^K)!(~bXV_FyS<<-?g$~VIE*nCUj=|zjDIpNwU=e_Cjg1X ztvhLpV;WtS#RC8mi|2wUtXY=DrqHwaTVwG?2#LjEjIsDd+Q6)t`lqnCb7yVw7!cCO zjZb0mBBI&HkAf&{5w@5a5~k3zcHlT$Kp=CGks)1bvSz0GdU%Mwb@HO_Ib-lNV{jN_3?@Jf&eBTC8jJ4)NXFt9iKfwG zG`g&@_-ePxTdz@&F6JLQSoL!d1rqHvv)$7{g%00BjVT`eu0I~S`Q&@Z^Kw|L- zqG|Dsr?7Y-(X@Cwh{9XSve*>5Zrtz#WAXbCl0FV&jKu_q#qog9$Y%G{*50aZ_}7uG zDUi8$`Ya8PY=#$8u5H;3Zr-ost}kR|pa^4(8xtUI91jS^-6SIE!X?_2Bwbxx^4D@2 zyg6jBe`MRDd9K0ryT73ge#96Y#u$SM5QF0ZA%j0M2ABSq!B#IA{AkEv|H$@)=G8Pk zocg^nxCvyXhr<|SFact4JRoH7B}B4^cZd2Xu7@Ym;1@y$`$x8@zIib>Dt2ngo4SXW z8H2+ZV=w_?a7-(yZcemsUc3_^8QDH3nns_d(e60tn-^E?4Kzo#E+7gUXrw!`F-O!S zHq~&uc;EqT@zoHLE)HXi#RQ1O=~{E8GAzE1HgG1tm1tT#NTU-C+Gp`wMAPC(A6T3b zvN+e=Q}AD@NJ8MZb96#riAo4$ULXijul`hr;k-g>(^vL9>?Y#`A8H`iud`%WcknzPsc^OUM}7dR%JPmU#>Z^^?ngt};R-tx^nB-&XP)5(5KXi#KXoykja z4H^boCHpmFI^VRuj-_6m)0~Gd@lcZeTJW&pg*cRCzm`;)kHh))DEuceJB{oy7vX^b z->frF_XF4d>}DI^1+>iMzp=G(^Ibrcq*eIE0%;XG`OgPuW<>z*&#chNe;!vRmZDy)=)U_loR--RwJwGOF)N5jc^q+Qx|)d`BT{8Mbm|8XvmI_B!AHFZLF81P zp^#kBeE|y1BZ+;pRk<(u?`GXO9k67Jwd;QGpn4|%HR%t9O#Yh&LUN$|$hh2&0MjJ@ zRXq(Is^6?ri8THs5$RrCX%;Kh2^R0OLMB+8b}6211mCRV$Me|+lm7(fC0J0EBv=Hn zD#1da!32u{N+nnbDwts5NAcMPlm7%3Ot1*R@N9$0e*$w8EJmVD1vF6-ELP)45|ILe zc(!rhbyzN9^VfoqH|uOp*Mds=S(INhK=q__r}>gZq#Jd&8ou4^2ROSVBDJ^-Lm-p? z!Wff?^e_PaS=k{}=$`_(_Acd5w?ZMpT)$c8kwBnJ%)O)y*iW@O<_25^b&R>CAVM+c$D5cFm=|+Y zB{3Jks+bdKFy;a%6?1|L#+)BzVoqSemmpn|zTtHCATwgG~ zm}_{o7F5!Vxg#iw`;(a4ue&utv+Wk6KG1QpcDRm{Fvi5mwP%p*kN#4i&cCmxn@62QjAiHnsud1!==6C;#|8WAViAL=+s8VTRw1!5Tpxj^`l zad8r0syI184NQ{VH_D5X_jDhWu)3`YU$HvI$!((nW}MJ4iId;-Mb5%QUmYhOjRA;p z(s3*Z#>spTIdx`wm&5m=(2JADeA8+DBU|yV1mBdK^ ztKvkU!8i$^RGbJZ7$<&|i4%bZ<0JsnaUw7`PA*5A3TUFl$&EOYYg0f_$H_BnzI$!D zJx2>FX~xO$ab?8`lmCwCZZ&+nmh%rI zPRd9Ed>c{)gh&#gUnV{Y(8DqbFo2Cq0(7yG1h_aCal#}(BeWkiB2Jckg4Qt!@Ergo z5pdW9I4%J2jHmlYd~peoj!hAQ&Y~1gx8svBA_3|C}AR?z=DZ@ z0T`l$iGTug69GF-hBwhfNd(Nmk>pba1Q8`n1QbCxpUM+thD!Y@xbg0&J5Q}n;otuj z%|Qy_Afy1szwk#cD^s~dX{1VFgq^kzUN1AdUeGw5Gdn-uTw%!crW#%ysm^uH8pBJ4ImErD@kz3{{=)&sz%b4Ux7kz$bTu|%-7nS3!baHB}rez5x;{! zgB83H8dw0myw2?fF_*6x4Ws?ny19JKXdFOY@6MSHO}ySUogr~7)3U+ljIc@ia#Lw0 zfV|xF0}+~*`SIp*BQWoBa|o*BaudL+%Z)&Tmzw}eU2X&wyxjOv=5iyj;N>O&)0Z28 zxtE*U(53>KD3_a;aU_?UfS|tIIJ3}v_j2^QKn*Nb|#2nqN9hM+i zT3z`iPA0Qvht5XN@VLf0em-X;sB1PdWA~@KCiQ8muSP5Qe_wWXW)IAn39k9kcR9g zMCT*UKt+;|`1y4>JHf13Kc3FXtXYA1`G`~{`G^7RG+0hG!|6jU%D(T}2Y zGEq-p+d+6QatpxVoXnaP*x4W?7cqK0e2gYaE@EpO$tWKX)T6uzx}&@&$Wi`z2RP`025uY6w!Wz3ZsSqx$_h^IhE4x$n1upC;8CsTsCGI!qyAai9Ri{O9U zqH2Jp1p4y2h?JrEn0CF?TLJLBcIYTH$gte$COBwyeQ(QQc?4>sgU*A4-X3&Nc|F!i z-JAi`s9ujHEn%L_JSfBEiTQ`^C)*(Lni0Zup3Kn2sI*2AR_kwpk48aw`G&3F zL5Yl~k!5;3HNeyrI2~Q=M&AI*@$>)yGM+xU90bSHp111p)QEWFY4K4=aXb|%j;FB| zW<0%HThf6QsPR-(ay+F<8BYypDM7yRlt>v*J7{-3M1XHR{T=nlczXJ6aMyI-cp5`X z%y?QDbXS$xey27pcAK>PJmACQ=@S~#ix54YE2@5+cp4DY zsFFgQ4b|Dy`wNlR2 zG5E9ZT*<`XC#|c4f*k!$JMyg6P}UCq8@U|>9eFkg*@a+4N+?qNG$ptTL4b5m0>wQI z&{_qq&pnA0_bk=pcnCxR%@j|qzD9d$Kv;XK2-8zVn7a@>VS4LS z2eWe0~lazHBL+y`)>Gmcn&aG z>*}Q-CC8v_0j__mphM;WtJZ>;jFJiK^c=v5lv1R48YMUf5FqCO1j-!10AsfU=$iu& zDRY1#?T=Xm_~rnALxao#I+nm|H~PGG3~Do8dm=cfN^bXD-5j6Savy@UhVy_Mpis{P zc4+8QR<7p(Yu2M;&I1-~h?@ua@n#+%FmE0}RWc6?5P<1F8n)gja`s^_bQ*KtcNbq!S|oHZb*eN_Zq zU-bm(tG`1qcZ}{l_eNziMB-`95?s_aXcRLhh{$u)`Xh zjxP2|cy-uUCuv<-3i8_t?W>EoKpF3?{w6_Rec*oWt43r$MT%dg1btP2^i=}IR}HYk z{{Vc%drdZx;;X6J3yTQw`D%{`P$zx007TBYK3{zjwHaT1w+vsMt(z0_RcQ@fdqS9gcU+J1sic`kyr41k?dugOb zmosQz_R{l2GkfU-h{9}*4CGsxLeJto#^RK%+Tt+ASlkN$v3SxcEItm9SUl`uZE^l7 zES?XLSo{!(!kJ}RYzjS#^MBWU{1$|ykHZ*a@gKB-`Ox!EVe!gs+Tu?^NFOgeg~f^6 zwZ$Dl6y6lJnAy6f(6hMtAF!C&x8~e=WdFXWZHNX(HgD@hqsK8eAM#nsYb74E@ozS}*zl578CID~{?=W59%QA9 z!x+=W1V|Uh141d>6NqH@9xc0jz0E1hXz&j~gXNY|nan;mT(^%~Ty|3T@eZ17p`I|t z^zp|ugri$LAk@d5p3r^#^MCbm29UXb1x*gTOxf^UgPTYG(FV_ktQZ`|7=t&_3>q8{ z2pN3D7;NijdH?DZiMwEM1&uPhJ!UHhkZZKzxdyk|W(;lxSur?_F$NPL2FC+J1`i~X zUR>qB44y`VYlRHPQUU+OVDlWPrYggvVvJ?0uv={m4r7eL1cfxIi=RJ*#S3Wzr$O6^ zrp2$E!s7Rd=3t!o6fAzDEQ?K{XYq^1;x-Txi^CXWF#%%n`=_vYAV6Yq5z(~x<5O6C z7tyr%0EoiR!WMIEGlibTg%R{ICl$XzNXE7>h8A;DL4b^H-^5$&UOpN;4I8pB-1Gw> zw<9`3u$Cm?{J1A&!U{Yat zuEEU*Cu)NWjKN`yF_-``I35r(c&#xwq$kfc>*zQA|Ef|HRku5T}y}N$ZO1t z)UGA&VZyE@>|v7Em}3)@>{=?~?xmQ1y?GsHS)KCO#Z;i{GP{_j!ZNjsX~+aT2We}~ zQBOvO@`)7w>@};V~1Ro?m1tQ0ur;tq2NQ6R+W6pHEioURNkz%NIMU^_&PmHI(L|AnL5|+MYtbR=fdc?)VVl-*-MnsAKk0>5)C4aKS`iFQyUOlhj!@% zx`$DpB+wlM5lW!*Ordq|@gX?bV~XAFpv!YcxS21n*Ayw;*zE z^7-DksLlA^g+bqwW%!46bG!(W|5hoj;c^je)5}GNHS`!O*ULrS-$KP)F4_Phl#b`e zo8=;bdCNsqCCfzttXeJ-XmGhGfKtmvf(kAd`B7%MNMOO`q5uqD%5*$|xywcS(53>K zD9c5E;z*W@0)l$ENCe&GB2SRZMQ6SZFHO|v#4H!7*H-E2B6^sA@?E zVR(Nz4vOU7CyX((#w7sAtg)R|Qr7+Ds{qOU<)1`zZhodlms4h#|DGoQ0WkF)pm~3J zDTu-@8tL8<^ZwEldKUjki+S@i6+-IfC)6rh%%=_n$jwjpc#GZp%iC!K?=PPxT5f>i zEq3oOza^UYmnrYU;=W;vd4FjN-CKzc8>;I*?g=63<1ohbF#+n{M{71p^pc$S-|4c6 zlzShI{MY--ML^~b@>$A=P>^EL@yo8id3t!WiQe1c*~Kjknl!iaTio zo#I8J=@e=47Q0UIJ<)WEdhf&Hc43R@6sEAI>UUfycG6-7UT+AAQ-m?5j|otLr!^ZT zaZWLgNC`TP{MXyHn}N(d+h?iIDRRvSuuI*p$qUEvFQ;%D#(z0gf}bIhMVWi9R$%VI zcy(0wU?(TwVt8hj=2tbXUQ@T0ZFR@znrdCJ*8*vNo6q5!6$U1itZ(GD%L}MuU|!@gHUn5#x?h=*u#eO*&V0i2*k_R z_BCWERlK5c=lN9}qKdwU;#9PN_(gsdw^GHo8aL9fVj)%Z!)q#}Bfah%5AmD*Dqf+A zN*Y(>SFwpIE=!G5@c_hM_p2!P0aUcnxV3&2L)e{H_KH(+4C2-5`1+y;RrJ%iU49h> zRB=^SoQg9ceuZDfbgG!3aR>b>R!~J&k!Ce^U8?}%cl%Y8LdE!H8n+4@?c>+kcj!VH zRIaysY{%;pURH|Ej;LRI%?$cDfjtZ5_Ck9Be*XDq>Y`~LDs`h}l^@#q zG~1f?2#PB@)oxNM*DbK`M}akMy%bkA#nV>Haj(-j7sBIgOVl0K_GF2=g`T>0Moy`- zwYs{dSgRWnRQHWmS1Rh>_S6kBa!Q?})%7yPT3udH-3hJkkf>{#;x=}skqcTk$`osL z#X)tIUy-I;u}$o|sh+w!j9jqq7MfzMt|X|gwpQ0m)a~)q-DBi}js4gZYjuwX)iu)U z@t1A(8S)RHlj9gINHdCzCeHB!9u2#2S)IH>> zd(+4%brEgd9#gE#x;Wckxu5^wfQ0}*dw&njQJ6dmpq+aHdFw)#AX6x#?>#52Hx(BKx8?_%{oii}H}YZ~uVHQS@HYH`z@tN8Zu-q}qY%Ce%_;mkwjuE>ID{ z{RHY)TxV{wPlDQZ52=oW@XTf#sa~LZbj9YXHJvflys9teZAqw?*Qb{@ zW`|2Hi<7Msa;=-~Zr$+=V;r7UxMhp&*TH%pA3_9|QfEA61VyIikG2|FkIh4mFL)3qBzn0s1oqn%G7|WYu z0)t~>#Wj88XYCOADVZrh>u-~v4W;t4=^gpG=NI|8ukKxxyZ>zYdGJd4DV;1oTUW`? z!&~KN+spE^{d4(w%2K zYS)4wdk~N7l%SH1jhQsoN@{9vtfB;~&Ke4SOZzdvs7Rr#YCAC+R_dMj06MbTt!qH{ zN!$;*`jv}udMgiGmVmMO>v=H8u33Bw&RQl-w`(3k$W|WJ3H91F50V~z4(VFo{0e%q zJp^LI@u@wCEm5UY?TILvX-boZl2xZ`HUwtc3rulso>G`m6$Ob^I%WZsSf$hAE&SrFGHwVb;)pk5TbbY&WIUH1?wv4YCM(0pgbCRADfoen5p$$G8&zg7ml zigdL8-wi;oZV1a`R>Di@nL5s$LlV)}sgSZ7OluDhIfF(wxa%^IoeMUAY>d;G+$RG< z4JV%g`A2r*8AM+krnYX3!>2QF`sp!$L(VCWo*50EmAW2*>g?@`izt~XV5GXtMz>A` z^ZEVP;=vsXyOPnHQjK24*>GO2bU9Y#P&m+I9Kj{ad40uLyg3ntd4`cBjZ8g`>$~&u zd)MH7Pj_J|0`6jiuu@-v4bG?cB`M}6Ft!_}oI7;_lP7maI~zszFTukS*zz7QqFsH7 zdo?<%BUF9Ywa~J@0sEJL8msZoS3$!ryWu2^R_N85_(-!<1x-F22;qqRGu)q6wgvl4 z1F@REKMul^BCn2D+`fjROq6C?O&0Wpil%nUxeAmAPyvA**?EfF(r$FK;@$$z?c|;f zuDGhzq^KJdw6O=zR*l>W_D)a1K6dgMb~~J%b8$9b2j^{%+YNr^bh596myr7%I6t}E z#@(BO+s!VI@gp&cAjC&1wwf$$2u^SNAM_5J(F~l9xm+x;8s{wl?jrj^n0OKR z!-E)#CJC@fb7U4dm)R{BDTM_9E{q3TP4*4~F2lZSit@p=z})NNL{+n~X9F_Q?zs?y zKUgZD$x@Eh?9WW_bM1Yo>g%%j!?M87x3|OpDpWA?Vk$3RRQA zlK7?hH`$|b-MYx-r<2bw&0k{Afb))X`7-M8OY?8FzXpAy%NP5leaXkGqyANPt99z) zwwV|)k6%{fr>nr}-m)F|(=M>yz(;wDi&6d1_?nvle9m4AkLUki|Hc5V<}xPSXK(7Q z289+o(M`@Hwq2t4G%iZ66o{prz)wbLGg;%fpd zUn3Og8G8-@tNsP#ujy6$9-wx)NcU{}L2ucw0PtZDBx8W8?gRT<@NAqGUw`qGD~)bhaCH;uLa^q0(uY>#iurORsh%1l z>^s0J@z|WtId4Qh!AMO{w;u!RX^%YvL!9$YBoCJ`VZR5~$1c0|O!Q{*yhz6tko*b7 z4vYx7fh8d4$HPD!1_PHp9lSY)Z>9ad7p&IK3aqs7(rd2-YYo||V}C+tJKdZfxQcgX zzdr)jZo^jE(*$#g^LPY_jKsVT{t;q43tElHx120zW*@EQFR&9aoJcK7jXN{6~Oq0o-{$H*&}Y(Xge8?DDY7& zbVn9TfX??$DSAuPwgRYQ0H`p@b?gl|^Mbh){NXM}Mr3J6>zuaevw8{bXW-0C1z@fV z5`LS^EVT3ZT1VNO&GsUQyN&{PSImubErB0JuJ3XF8fW6o5%CNG_lr zGEIvF~se3CxFUJG@ZKp_bwmrZ!=?LJz2St1xAQi;Q z?L*K=1=TQ$HO9wtc{PVoCbuXzbCd?24bXrfFx-MhtI{h zH?Z81o?7j4fHt^5(a0|=O@JfIeSr(PXnX>o=UgC*6efA0{c)bgd;GI zn&rQRM~ioK0P^B8(BT%eD&KdK78wQjjDHc)E$CUk)^!@a49G2Ipu;T~UH)JzE%Gej zAD1EGO*&OSO)UR?BQ5eP;8knHH(Hv(FKyV&@_oqU>l7H~4oRkXH?61m34D-pWpYEz4jS;nBNE)B_B)=JPn(52`*#Hf|M_oRp zvt3)Q*3V4^x_qSbVhn|2fXX9MT#Q{~rJaP2Inl%$U<^&QZv=md(PpI;Q8Rqq~E52 z$+gj;_^77)3_TZxPD$cF5e@8u;|pD&&rkxB+dC7^*T4}tE^vWiLq+XViCfj&c@oB~4+CH^>20}liAqYLyIN?>vi=T74z73-ks_^76b z4HdN~6KmDgYP$e=VLTf52&}(qbf4+^5dckgfj&dKtpu=Pw1zQs5kPmiK%b!mCSUG+ zuu50G4WJiXVAxPm+ar1_CfjoA4+HsQJlaYVwV6(pi!`v}X?W&^Pu!`09%GX;Ji6#+ z4LlQ|b6ud%Py&<3I|DJzlB$ORG}#4)4HdO>qI2Nbf?fpV9r0)@P1MeFQgStL8$f$q zpsz>QT@6FmMqeLH^kZMPy$DZM&On&AeFyhB@g zZNh_yqxMmpn`(K>LAI@P7Iugn#|d)3tPThB$re`A!(h2zQ1dX{+pa$NVvNM6p990H zUq!)hsOp1`=(GR%b@C`lz6i2TUv!2I0jjG9c@f}288u0r))|erum-_U`<@&8U>+sO z7Xf%cI^l5`SR-Q;bf0zC&nP)--w{}ACG5H0wo+?cRjWRxnjgG}WrZx-Z&k=W$F^!* zJ>(FI|GEg|h(Z)c>wobRAR|e~>c3wB<)cW~sW67{;lly1Qtb^u#;!t&Fj=qRlSD!@ zu1Rs`B`|kjTIIQYB%*6eZD77=9{V zu&NIjjGn4ItXBhAdEi>;2rjzxIDy6K5$tEX=8-;lWIM8z&}uPeKOD>~#=Jw?EXI6} z+P|R%eRzhBX2@C~jm}>KRyrnFL zEo^%_4sLbtbG{lZw(|##9L=(LHrZ@#o^%F=*+74NDGo&OVoqrNJ?ZvMU0=Y$8H5s z2LsgXCXwXxv7|)yMPQ|qy#}>f@}N1=CX$t)rE|cV=t?Vg$H++poJijQ)?!y$9yCXK zM6ws5OJKWwH(2+((u&Mb7WB@AG1+m_Xex4%a&)zk=>E?MUWhZ;t6EY zIaJs3%&G^;k+&mjaV-@c3jn&w)ge!VBOgbK*XyUjo4~ryWq0Fq=32cMltT?qq4Y&^ z+!`!-5FCj(!|??4b<}2m3jTLxVX8U>7@j^LrhHR40Y1_NVyV^o$aQFFZHIHiNOSN` z5Ayk>IMT{#h8q&8<|42M5#pI5kaL_0m+D$3fIU5^C9MMPydr&_ClR8eW-0h9jT$V# zk)7_WNz*DG0_zc@!b&Tx0rp_$fofX%HL&=wNsQ3!Oy}5WE&Ux>KanjyD)-otiB4zO zx0Ah4sTn3*_-JX~f=3FRg(aA7lieDu)5#WTd88Xz;GB6mSQnu9G9xLGY_|v%y*m zzgnv`z60Rl0N7HHgPfbR15z>(p0F}e= z?zy{q#M}D#TyQTax2_$2QUGX1kT^6Q#A;Es4aSBC5+XfOJ_sLo%B(<58RznK9?(`L zR@R~cvPUB;5+YN9FQyEq&;*5LaApACIu!6*Fzf@m^HlKbp`xtIX1n$iaG~x9(MqdR zaRL1rBOj)ex3=&0W^A3%Ji&WCze%g~l=37BDgY#fN$-(!j+#>b4_;cw<$O$z zrKgU!;R0LfEb#QyvG8Vh>bME|%+!$v>Z#*<@V_HaaSeo~Qt46Z(^JQza0k}B2#lp< z9uuaTI_80S2@3DQ=K+_gr;fW&u!n`BPEQ@*K*5KmFzFZSszeQX>Ua#~pDtTwXNt41 zB6>IlAJHb$Iwh^Aj%i?>W!QnKWAiKE&ro>@xK|oPVCuN_GK>Y_%yhZL2d0kGBA7ZZ z27k4SF;hp@idiC6d5~QXQqx@gjQ2WZq>GHs;T20INN6GxK3y_b!07O>NrE__^BgpbEl58S|hm@ zpW1)%9Jy1+Whh!>ijyLr^85|Qu{(9-t^e~bU?8ZZC{P;u1$xPyI(`J^S1z;)b-7c= z-%*~>Mpqx0I(8U^{sPvn2X+esNfL20b$t39@XrCSpUZbGai@;Yt;b3lsLJQ5*@!(BbdLvl(y3%IqICi3z-UHSPuC$ptI#n#|0xCZY)|ald znL3_@1+s2rTeyss$4AvIDGZo8=8x3U4Z-5uJJd;1?2O3GF)iH#tn)l+J$2-*8GFON z8mv(sTTdMm5e>qg4c4_T+e{sYWI}Qkitizd&XFWt%QNdv9aC@9I(7r}oU6l39Z$mr zP7(<|0qb*@t*4F^V4wXvN)vFM^J;LXj+ZP)HXQA*4}QzCFjbwVT~Pxuy}|EC3{Rd| z>P{Uy4M)h00B=H&ucwaZrRr*~2YU%2ZeuMyb^P-pUCTXSKOEFzrjA7mw3?T}f5WJ8 zr;g20ix_$otYb!nJ9X^2T1!{JygnHpeWqn*nduatuccdp)sAfOQ8RTs9r}*ryx4ug z>hDSGsbgfGWt}8@ELamaSa(<3*mYzC3IvAKo!GFQU z$kb6Vt@YILrk((O1i*0@B)#J`+)N#3vC2e@*tPi)7ZfC?JMPr+tus`-MLGb~i$K@i zgHy-%CqUa30A#t^=pbcXq}ru|(a!0C0sa7~AMnzIO4mZH`pd7OgDMZZ0F~C*dkdt? znzE&$OU#t5xzK9L)<$SvxGIl6gS45leFN1$(yEJ5>Q32gR8k2aDNPz6EInnbhvF87 zrKfC5^KAc=?PlncDI4vEA|5AHy3poR!1+g23pGKEPa$nX6pSpFsi$m{ zP%w>!qE1iQu1CQVQ8k;blGanU55fAv-F$2TmK8OMGC;_VtgLvh@Q05*K5pY^)WtGpfeVaY*8a-H0D{ zm`vH|GBRZozo>KxP}QfMM%Q_>`PuM%7PwP3g3XkTmY6A99?qLaQkoYcW%{)?R&RUErh zwlO%EcN$(`%JwzhKeQHD`*pAn8c33e zn<-oK1K|Gv-ajtiwZxsW{dI+Hy$yTpI-RhO03X#<$vTZRiF8KvA11pqSl!9qL<`N7 zEqSt*z7niquC$r5)$6ULr-4=IN}DNLAFT2GPUS1Wy2F(=Q?|7;ZR}bOOjH_0^HqSi(az*nyl1J0RECzW0q`%8mo*h1N5#|VU}!z3#!=L z0PV74t0i04wkq~nK$q>ws5^< zd$%~+AsOOoIwtpIvt$b?3cLldERE|WTgYtHH--S2qEQcZHl;!>*<53wVhIRq{Yh+5 zG;FB#*!03Pl*Tc9BptAB6V}iEGC$ zxL&d~IR|xH!8+j2EJs<^yL~tCR~Z!5aTTOLiD=B-f63PN3y|Cx|ATSJvXg;4Ym!Q6 zQbAY=Gw)!6o(@Wt)teEjKv9d-K?UV$w;kb-VVGm=Wmgx7dXeT6lsmmsHVTrdTI%_c zA+_vU1o3hWsb$wARC2bRvR#0A+4VB+p^=4ZxDKAtkh4$(qLAE+vS;Bs;9p5&zN^`? z@EDRnkXh;}NRWORuYeZIQrUTuF%YteI6^O>#GcrT>Llx$lv-X&qe=*J5n7lEEv37J2b2gLEcFxz}|E1filPS@Es$ECMB3V*zFe z8on_s(jp?HqaXtp-ge*?xc&f=CSnz``Xc$5L(Ygbh-5j^`O$~wqV*-Z;0GI8hz@+= zu8pj=68uz5I(a-pS_`r?;avum>9ooTX(tkpL6N>Y4czwPC)BA(-%b}D#4Wxcmt{z2 zLG~fiX*Cp*>Yz##>9iaQdBKsy7xY$QNF_%_zM#cXNM%PQx`??*S??we-Nf!6rIm== zm5Mk*)2M1B+)MPmf!ZawF`$+NS7(@3#3B7e;u-vHJ#sAu02*e)ANEBa28%7NgtZN@ zV;-PI1heuo*Qp(c<7F_63#%diR6`zOTQP~~j3Hyhj9DuBA>cn44pog+CKR983YjGq z9fSH?z#bS}>iDHT@Q+06K&2yJH5dU7&Vpw@r&9 zriHMkQYo4PYD2KBgBvA~!gcZHFDmvBK%?x~4F4j|q6Rtk0zgab*d?(b4!JExj)a|2 z+8Y3EvSTy+yC{WHa_l33PTH~G`U*L}FT$c#>Fxl!XUAsvZ}9;2OeJ;Xsg7X;hsyc! zhlp)Cc8*uE;{cT-ShhXGE=R_03S(_h$9PA6{okIAS$(0bHyCQ3UjP{ihDy! z>$DwdjJwAaNk{-~ewB(%x=aN4!D$fW|rUvx)NyxqD0u+X6-Bf&|07VlrA9&*pw1xx;`h@AmWd&8q5a-Dd#T|p+J_Mq4yd0atIO61`n zPV*;Ao_7b7M!QybmAqx(tTsGJq1Qh{D!F?7E1P-;;G>2@b|D9c;ul^-k{w-*GlfM@ zO8sUy-0!3ILLM^66$lfj9OZfuyIweC%@T#x@C;>1@+4Pl+$2y4#dkcbOvz*k*U*2rK~<1`EA#@C)k^W=9fWym&ni3T&ng-6n&;cd=3_$@sDA(CPJxNqYA37?Ad4j6l{Lr1@ndFSgb4Y-k%Hbrlc8t{ye)C$2uN=Dd?ZvzD6gvS>GQn~LWcY}q zC6sgQhJc#evFWY8kmHVeW7VAkHE_(klR5ZOfsbI??4lsK z_z?KNnq$TL&^CNeQw(c8T4u*bO%m3-6A@@tOpa>2RY?nJt4g=r_*mtVzp-ckE_zwQ z0t*}W%P{a&*;^gJ>?SxR?Z8s%SS0RL!aChSy$3Z($Ij*qV)?dVo(P-W30bwCr)7Rv zS6<~mA8-ZoZrx~<5$6D_ zpcx~qx;TQtZ41F409vb6$QdK7t~h+pvi1=C4WNT2Hcts*&BUL#F;NhF4bV*!Tf%L{ zTI_*yY-fEm4-S>~_LRr^ZfJidxCWp)c5Ipw!bXUH zXQi>VowA#&5lhoM%X&B0S}k*Uf^;-@7XZT7-1Vlf9$3lrP$j6 z?Y3c>F~T;B08FF|p96HohUpFQuzezIA7WFxJO&g9R~;A3bBZe7I}&PXBQNZ}cx#X1 zMS+vx&tuBJVik5y&XKCxfSVG9nop|Y*JZ<+Im#V^wNPgJ03S{qsz=WaPVN-|k~rP5 z?FH4?i$HqU5UB+vn@8lZy^c=kGGYq|yZuP=<=3!NjmAVK`hsspFAjDeg$c zKft^Vb&fb8I>}A3u-wjIfrN^I5NAka&~mH}3vqt%HI&oBDL|J=m#d z^W6pfuvVe!o<{nxCeGWZR89N@{P!Fj8pXppI_v$edP#1?c^*ghw3su%xpuBfD*^Zm z#L3pqG>V6fat30bhx6PFc>5fBm@~!sf>-Go0eo@}Jv54kz3NJN>30H7@oTy@70rWG$99w#m zsyaTxim(SM7frDU!Xc|!!gU;@gRq59a3r8;f@N$Pzwvxf?rAD^H9)lp=0?)b2mM-J z#qI#88^JQRayB(g$9(`P9}j4%4J&8U5Uddxehbh$2G-7|FP9_cW{AHfh|=|N)l$nE zXVa$fO2;LTelj|=vuX7l>_o4Do~M8Un&}KGXVZHvfE0qX1R*8`<7^7eLMu@Is{qe< z7AL=RjKGSSIGus_BMwyo=hQfxh7Ut!P6jsDA6L$%%vV%0?*U#<6gw-**;KB8O66O? z-xI}7MLV0$j8tlV1x~NUsr3K(_eiTmGIGe^5LZYKVc*&4xJTcCuRt15-4s3YAQedU{Gv$4SdbIq( zJlWqIO+e~IL}Q5l&ZbBCp=~$_lZ-Yp5ZeL5w;41MSl%)bxTOe!=f%4eg~lKm?wL_0eq13o%;h~?P59$$xmA9xx$cgG5rOxfF6#ZTuhS#NWFQ#uOwi0 zG5wAJGV>0i1V1^4czN1QrYux^EqfL+AZmmoH0;l8S?B;sZ!Pr{AxOKJhHJ5QG1c#c z^h1Yy2zmUBOY#+Fb}`Y5w(+)$=>=>y!Nqh7ya39Gb}r&P5=+u1V6xM2Y@a7t`0^Y8O*(5Veab z59F5Pf4i8dPK0(bk);W*)f!z{xtJ;l2X$&(O!xR=NivL~vmpC0E+(o(<6>IO z7s|!-I$tOk({j4dE~b&#jH*m&Ekfe2;|NWss?jc{BY$Bdn&6Fqwh)}buyQfwx`34_ zq~aJ(KiIHxF^y{`tfG)Q?&9I3TH`iRwN_H&eVtNhFesC@`?O4jiG~gxt5eDUOunj2}Q>*=Wa+q>B z*M^jf=>dF`lrP6BJ1ym6I@egW#x6S+`;ihI?XKZ7-xTY-9gCr4$G0<8tcNC+b}>!D zy)OBC^0kBi6Nl^sEy%#Ve?psfF^%>}UMe^*`t!7l>GQsl(iU)ELuroUdsv@#F;#z2 z@}`2b=vlmfuVQ4m=d6Ky?%Ig`5jZ;xkBZ2x=Gj9tn|3k%@TDZ52JvTqvgCPpKxwqA z<3Y)@+CvQvSzbv|E~ekNNRy5NT;5Qqh2`L&T};Cc<2DF*GsEG2uU$+duoR~3_W?Z7 zkHTu?f z*x|ouHZG=6Fnq+~VbZvm5+JIo#d7}2ViTdE*SMHkfYH&gIuXIRmp=Vk=pPfC zZyDiYdI?hu)u(vABRT;NS$YX?bG(X00o9;L29!pyOq(_g;bJ<6p3#Zm=78Fm*xJSP zK^y!J4#7hJjk06259y#|Kt2_F0iY#zY=)0GnjOXc1I69|Xp9+i|K-Dr|lpeeg;vy znC=GQfm7hO{5ZzNv=6hs)frc3X6ucI&CI;vD z+QrnwA!OC}20qMixF2g5lcPG)m<8;0gHsxwYzZ}Yz5y4%_!xw*3@K-B{|F4i*e{NQ zaMh6L3!)x685h$Jd7$Yb2>)u5aWN$~R82s)d&P0cYT?{!7t_hgsvA@SUYj^PMoErx zF}*famAWJFJ~=qb#q>2iw%puPfxk=~HZ7haw2SF`jM7v}u?qM`qepU-iz(kP${G#= zKb1p|axtBRFM{>_2K-SDJ<7%O0`&qi<6xYM;K*Kf0;trnPM;*T4uA0Y4t<|S{0L{8sGcTLK@zsDR3e!K(9$?RuZQ$xL>^% zx^R`o2>>3HCl}K{=&e&Gvx_OSw{bBMOSzbKBXvu;n0S@1TugF*lO8Gy>&^>)bi( z80rZQ>W=rnaL63;1MhG#jl#}%DS}G_N+6hH^OOJ=Q;*v!b{#+sO>7Cb6~9kZv3mgO zXJShqQa6$Q7`K|Fd>WuRCboq8i`;mTq&~s#0a|0nW*^cBu?%Zwj=dYuemge96UAEG zvT*DxfPS`PD;HA-AbEP~%#p~$Z0%>NiyZ+G2|^h^ zlJPSQhR1^|p(gOghQp=Qex?bhkWe>Z!wk*|(aHFk*29A$W`VHSkjScypJ_3wNqh)w zy~d57Y1ds0<0zci2k1M3rFAPm(=sfV3Q}2b0J?3%%Fk35cZ6IOfxYnj1CDI%r2R}K z$|xI-1zv$Tb_4Je1@JS?|4x}hBj9avaFn0v{YR>+3;{l#IJQmja340nnWv^o>owpj zbLdfirqZ~R=R9u({!I=&%Fi@+J64=j>P$yqJ+9Aijr`uz&=Um8-Iev^(t zqrK_Z7BFx6O+s$aSLxc-3!@lb=WEi>ex2_F6eWN_{W>2B^y_>S*01wXSijEK7vaG; zLeEpK)a!hcAef_to~wkY*ZDH;<1HYA{6dI+oo~SF$lE4h>UF*rZy<4cu-frnG^F}< zKFXkao$uxI*awG--vHkyrT0mndYy0JE-aXE?d^+w1RSA{8KeosF*<*!u;?E?VgQsi zpn9FJDg-r2$m-PVe9a-~poJcR#<#qrLA}m51kiW`)6TU1c-LG=-||CbZ1pnj|V9@e2~ZS7$l#bMe`bo@lAXbtoB-qr21`+U;o5juJA&57Pz#YR<6#{O`E-rR_EaD5I*Yli zD7a!d;14y$!_l>e^(^LC@fEP|3~q8_JgnCS3yc5X^#(|{HPLuj@1MmZg~+Z58~_`| z5n7UR$jcXaST|k8eHg(d0hJ+`D@wu@9Gz+-X^w$ z>o|Vvk0-ndo&sp59h;Uf@UY%Ku41nQw91ana2v-XtZq2=4nTYD*viAY3d%Z8N5K+KlG_F0Yi!Q0Y zQ3FU*je4lN@L*t-Q6AP2SmcWyAdK}Vu|;uW>I)3He5$W50&%$?S$kM7v{RH#fcN@Q zIA!Buy>=Rjo(172L!$A-cv$!E2mTnCz&Od}HXha~C(!>2LL99jY5bg3u;RR|fl+6xFd2q+LWb z=I-xdEq(>0A3(Tbw2^^4Ym!Q6jfa~PP6fil+7guDzBN!IdD?w76w}ps%q*BrXbRDP zc_%-W^}!z`mkYJ-?@;*CbKrC>g9_H4$|B#eS*Ue|y52ZKU!*3`3$@XZyriX`x(um> z+G2=TXh<#8Zbd?)y-;%j=7kz9JTZ3DwX1yqJ z!g`?=f^ayF(3bZ=RtvQl2$HqX)0PnR_0`*f*#8F7%%GhK<*%={)iPNOy?`tF7V(NAo>?v&VpPcNo0CMNZb1% zGPYX4^#e3g!+r}m=Sq|gDZC8ybd>Jp1I zN)cP$-*@Ld_$f!&TPdK?kby z5ymc8c?ac{o1DI(>!He)C$2QhH8GfyJ<}L5Wbx0|G+95_bTljEyw+v3h<5L!LM{b&7t##Q(dV60WTmR^8`fgw+|!>UHgm zZ6FN{T1ZC+%s|ChPL-1Ljd@nma3Gm{L*S9%p8SG+<`4#Ejbu5I0iLV6o{Lsy9ytyqZ=2@t>+G54LKPBiZFL^5K5awTt7H z7)L~8=KqY5L^sR9eJP(U5#fLT(?CW8WINd6Bwl@H4BNW>bLU|b&&U&iHXAF*K#n24 zZ4R7S5_9p40cAIbyL-552+K46|1s__zjD=3+-ivXzf(&(ix|OuDZ(H`FyDAJABeSc z#vv=sYUVscNZKedpC{C-6#h2ZW^2A0G)A>hE>^|Zv)QJoHP&F z&6#6X%2@vi;zkOZ@xFeB>Xzs?=m=DV$N#CC@?fhrIZ{ngbDe4J_=&2u|IZjn6%j+W zb_Yb@)}{z{Yv)WN=5y29%byv;Zf*alvbDXm+NqLq9jDWi;MX~eQK3Zg;UEmU4L%-< zwe#4eE3lZ${c!zW|tT{73D%0^(>Lm@6Qjv;;SshZ!*-ZOml22I=l5pbDXK zGcKSS{f(8py9ua1h?YTocN0*fB33o>?j|6;GKC9vh(X-OqQ)ewD{zFS)4E4Wn~GMD zbkR~z21D&BLZ%o3@puiXZ7+J|C!ozYFlGTnyo%G?L}`SGoS({ltjpi`#e9ibX`_eX*mnwuSB7odG4dyJ!L5)X%l*a*MD9!@SXyH4mBY;lsFTu zINB)+82ll23@D-~1x`HiC`VS>2kAg3yIKIL0clfz4OBl?+Jm;>OuMicobJE}`Eg*4 z_`ib}QNfm%{#@PlaWU}1Q+9$?O{4IKRM8jg~N;0CRrAt0^WOV6}) z8Y;A<(_o`5oo*qtrOSU&QI=k2Dwa4nLKDF@mRBHUNGzOmK$B~v! zHyZfNB@%E&V$2Z{qv!g!$&X&u19!=z^=LRN0--Vw)#qVaz*2=Nq5{W9Xmy_lk$$byVWu$7nk ze8l-)=+&gCFrgV#33+=p0dVQ|8@PqQbp-?D-hr_<;z|h=tFh6=bEk{{EhpmUAc*-7 zb0U6?EkaX^`j-={Yy{@-h#wXMH$pov9e#^-v|m;DnB#N0DD`OokmLCN15$i|BlPY)D6YifQx4&t zjt+x^#d6snvuZY?TyZ?EBCNfLA>x3SBaWaunwVXE0RQBuJWN=}39b*QsSOW8GZen* zD0B)_5BQ=Fpg{z4!Z8g0?pS&fo1GMU7NEr%_VADvQ=d}!%h9BXkSf*z|5S4<2|scC zgGC~%I0Wbi4J#G&L_%SQv+Xu)m{Kx#fj=e=mBEvT3gZ0&0RO9T;XvoDhAOQ>sOb_o zWQ8y><`b%r+|H72m0%U%8N{)b#cZZL=XF{)Rk1q*@0UZ*m!zkFv-)(UXBzPNIrKO@ z;1qOzu^UcXw3PS|_S_6*I!+r+y0z@^n*mImPZ7}OGM?FARMSI{~iF1KrWiS?QE?tm{ zaX3w}VP!CHtj5Rksl;yrT1hY`tPQ3WVCn^8E1+*Q>~AnHu2(890KcX=#$eolS;Z4T zZqyd1;BPSFK2l{U20V^9R0hvYDv0+c($@xa^Fx(ZJ&;-wk+Lg^+F;zM5KeFa@X^Gv zm1%>i{I1fo5cskjdX&M0zo+zU0=_ec9%V3_QM=R{;z!_@G)Ec?wZCmJ!Pkp}7LZ1N z81#&l;5#7e`EfOeX>bXsVgDsWK)U=(2sJ;}hgCPl5&AJ1on8rchNPdCdOl-F&5z?C zo}nSX`LPCa<^dvB;IxJ)TM^L{g^->f^CB2ZlwCL-Hk7hVk@I7&#Y)R{2=5bxa^`u8 zO7WW?Z|8!VAk;!39FjwcGf~fv|J_^eDu`mVY{CEpoH9x+X ziFYZG)=eCqLsase2dq2mTLns0^M&Du{P0(%0je7_HI@M@^T+ zAuEK5dOT}bKqXiecwOSy%Jg_fpE%__cLCl%haNSa{o6_DnGSqG4n1l-dlHO(N!7Oo z_y*09;~5zMk7xA#bSwDV??4MkYk}LJXN+f&SAeqLE}(iehvj%?e=j{CojxFH?rbAo zfr|@AXey*;JWGP4vX*+PGNi_{1`xN>kl%O~i4QuQMc&0g!1TfS(3*(o`4b{Np7~k} z>jqI40$ye)PnjaevsQn=w?mZA0e?dj%9-Z~M1JGhTx{lwGr)f_9E!$7J)T{}(*qPy z2-H?C9GoLPo?YAvBm&Yhgm5aXf$B%!*|y&YPBq~5{5Y}?^XK5b)LC8ALXn$@(S5LG zp~kb1k`R>R*=7pL@oYB*<#=|4f^s}tfuI`C9&`~FeaL+)4o@bPd;vmwJR6V2)ER>i zPr-6LJBr5!|MY|PcosNXSft3i08#k+_i8+=fmxKUOBz6pXIHZD=_2T28y-8Zs4#q*i9U! znhHqYMq#}ba|nrlk0W#!q{d*cKtj97EcNVTNEz%Ch}{bnXP!x*_!;buolr9y_#1{pi8E0f zY}^sJ%P6^x;A|lt5QeO13XcQzzhV>cy@o^4n5bLjOXP?miVNUeBOc{Q zx5`V=sL6+rx>1)h71qG-SgFNot{1^647`*dN4Cn+mQdz>8wmveeGaJvq$dQ6)LSg?j)YkDmyL#Rjpz_X&z9+e$qT3T|Q~9ZtO~6Z!i`|=oge1 zJ%Xh{QcFucUo)gyr6t6jH00MRMNxul$h;T@cq&o8K}63#5b0J~S{I)KB+8qBKQI(G zLVAn;yYnz>qI?D6cSNC_c}_#**D5z+QD0Yp|6w>3jfuKd`lShrB8uFot$a8*N4iyB zhh9+v(quw771qFyrm4R25muoh19)>kj%<}lsBFtiPyM^<7D8?!M$_ZVY9TbHH-d5@ zG@XJpWS_oxf_@qbRcjNHyttEkhQX4mbqw`ydtjR77b2xRs%N!4x@++(G$R%Rs;ri9$K^%mT&FVE^n2HH(11Yd92*iP~W2 zHo-SjDY-Af*-1Rgkv7A^Z$tEv7JD`jrne_#)y^89d)oLA*_ozTTGT>Q!ld0@604jEQ<%A|_cScoO&} ze`R`G;`jba&)>jZNS%u<6O2*Y66ar2dVIi36UWX}jM|oXt{8SBsQPLEucJ9~TY}o3 zw<=oJF}iSfdb#@!U->x3isF0($JBs zS_XbxxxSl;A9t?(@@EhIh`^mp2?*i_kdxb1fYTG2WP8cKG&H9d`FjEG`6JB!)+p!-az{Qp5A0Ohui1 zQ9b+<(i^}R8R4-pxCrEnCgE+m;35}av<|O25Enrr`V!U{;R%>ni+V&HE_#L2%M?ZP z@Ly&O3U6Eq7y0>OSoow4xCj=zKf8O885pAX1OT*u!i$uP7JNzBGNaBmt;UCgP zIlkBszJV^vi_=x+-4sRxdisyow7&n$RJRi>LBBk)r6jK*&WE9xb26)_gz zT8 z)L6y_Mlz&9*siy6*ia+#27@mCiC&oB`SiRc*-b;p(?6B zv(6HWDcv<0iGiC(Qcm8LW&r%H3ebBQRFU`ZKxnu&RuXl*8>z zszfA{LxqQ>0Pn|mrom;@%szm=U}$g-=u8nnL%7munDp?8t8;^FAL<)PZ>53tCN=9P zMB?_P^sS^%>H>L}%N})RNQAAn5z2ie;6Y!9B&-0G+7hObWYvmr?YR zvncHLZSIKhYzljQ=@AIep>RImYvT}}OW_dT`Uwcnqi~q--I@r$OyR;ldfB<;D-@3O z)mVt|LVED0v@b3X!i&gW6RnJ%$;f|EuIJy7DQ-P0X(Ekv%c(4RSLs4=yHd%lq%Lg% ze?Xe!31%c4e3LrNYZSY|Gh$~@f?Lf7dy3j8rE2C*& zK)VDzIS%6_p@*(S!y%JuNs_tl+4vDoq@OE&iF{Dk3r^EFNmkG zIRA&LE?QZ6Yo|keiO!V8vKo=Y+H>n00}T}PLvSMl)0LHXJSr~gCY|ZJpFt@%)^o4L z1I;h!hu}E|=E%=AhUrID7W6{`dZtshUAD4(kpa#@aRDhDFt}{nrvzOUKLDbK6YOSJ zZ9Anm@SEZ@;JMfQC!Xc5>cB%>?g2PA6pnEV1?-J3G8M4cN#P2J+BVBggH#sJ<(Y1J zkTJ_WW-`I@oZm%~1vtBI=f-+1y5c;npnNScYelC~udsai$|78e!fszFlsLKuh4cBg zVA6`NL*X#rNQ@oP85EB6HKn+9DO}p;rMUGdoal?9xb-QV>ci5{if%yR>b`Jv)#!#4 z&hVXh72!sdFGk@*1ndcryGUa_ip25dW);sG=0X;TCjvvffWg0E4~)dm|z`AQclx)!amv%RoNM_z+^%l9dE zib@yz4PmzxGzG(JOe7`arS~y1-J8*tvG|;z6EJ28D$4oY_*61!irso9harskd@?~doY(- z$%EtZ{X#3b?3eh$IX2@{@JC=G`TICw9T3T3@a`NG$=~J@)*<{urwdee6gM`x{-$kv#qoR-Mk|*RNRCLT7S+IJNFOlS3|ItH_!B z8!G96Gx_i4NH$mU>9O$8=CXncQ{HyYL6MNt-D}nfYbJ8qu}ArGICsTabnHZI3 zinFt0msHEuaVW$A9f#u_*l~EOm8;`WVD65?aSrM@G^wJMyW?=2Jyy_1&=-560yIMV zsnOBGT1)jX8Lem~Kj@7uL@Q_vq_JlfK^}CiDuNei<=@E_yF#?V7w*KzV0I{rjaDl; z4D@{>c`P0_Tk^!goW^O6&AK0NKC6hTSSdrC3ZopYvpEiySR|5(Bz{J zCB+rw2RJ)-$7W1iAqu;FvGee`%fb}SX9ZD&IA0#{yL9eh#oiU;&g0Rqq1^{trQ_n= z8(;xLt+?`}4^KnWOZsuCG$x0M?$KzXxGH2*k)jqwh-)HV1@CPfp`^vbNf&JF1h1vo z0P&X^k~?)WR$p-t;!7IhSoX=1q~YQ&2-bS7x&^L0l(xdhiG08!3_b4M#@+F8;_^TYZ zfeT#?a6Ln*kxk1!otG|v`x{DwY?PlhWg6i5hSDq>J&5AmCGm z(v>N}Slh)nIb2$4xdZrbLy^WHDSI%aa*6VPiaQG&*^NO`#{Q~WIvH>^Ly^WHDQhq# zv6fbVyBLZz21(hCZp4%^fTtOXGzLj|Qzx_x@M=Sm#vmyRF;K9U9e@uSiZljEu`r=B z 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�XePut7BaKY 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°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