diff --git a/caiman/motion_correction.py b/caiman/motion_correction.py
index 12e9553ee..3dbbd9465 100644
--- a/caiman/motion_correction.py
+++ b/caiman/motion_correction.py
@@ -179,12 +179,15 @@ def __init__(self, fname, min_mov=None, dview=None, max_shifts=(6, 6), niter_rig
"""
if 'ndarray' in str(type(fname)):
logging.info('Creating file for motion correction "tmp_mov_mot_corr.hdf5"')
- cm.movie(fname).save('./tmp_mov_mot_corr.hdf5')
+ cm.movie(fname).save('./tmp_mov_mot_corr.hdf5') # FIXME don't write to the current directory!
fname = ['./tmp_mov_mot_corr.hdf5']
if type(fname) is not list:
fname = [fname]
+ if type(gSig_filt) is tuple:
+ gSig_filt = list(gSig_filt) # There are some serializers down the line that choke otherwise
+
self.fname = fname
self.dview = dview
self.max_shifts = max_shifts
diff --git a/demos/obsolete/1_1/demo_OnACID_1_1.py b/demos/obsolete/1_1/demo_OnACID_1_1.py
deleted file mode 100755
index 747e04d7f..000000000
--- a/demos/obsolete/1_1/demo_OnACID_1_1.py
+++ /dev/null
@@ -1,149 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-"""
-Created on Wed Sep 20 17:52:23 2017
-Basic demo for the OnACID algorithm using CNMF initialization. For a more
-complete demo check the script demo_OnACID_mesoscope.py
-
-@author: jfriedrich & epnev
-"""
-
-import os
-import numpy as np
-import pylab as pl
-import caiman as cm
-from caiman.source_extraction import cnmf as cnmf
-from caiman.utils.visualization import view_patches_bar, plot_contours
-from copy import deepcopy
-from scipy.special import log_ndtr
-from caiman.paths import caiman_datadir
-
-#%%
-def main():
- pass # For compatibility between running under Spyder and the CLI
-
-#%% load data
-
- fname = os.path.join(caiman_datadir(), 'example_movies', 'demoMovie.tif')
- Y = cm.load(fname).astype(np.float32) #
- # used as a background image
- Cn = cm.local_correlations(Y.transpose(1, 2, 0))
-#%% set up some parameters
-
- # frame rate (Hz)
- fr = 10
- # approximate length of transient event in seconds
- decay_time = 0.5
- # expected half size of neurons
- gSig = [6, 6]
- # order of AR indicator dynamics
- p = 1
- # minimum SNR for accepting new components
- min_SNR = 3.5
- # correlation threshold for new component inclusion
- rval_thr = 0.90
- # number of background components
- gnb = 3
-
- # set up some additional supporting parameters needed for the algorithm (these are default values but change according to dataset characteristics)
-
- # number of shapes to be updated each time (put this to a finite small value to increase speed)
- max_comp_update_shape = np.inf
- # maximum number of expected components used for memory pre-allocation (exaggerate here)
- expected_comps = 50
- # number of timesteps to consider when testing new neuron candidates
- N_samples = np.ceil(fr * decay_time)
- # exceptionality threshold
- thresh_fitness_raw = log_ndtr(-min_SNR) * N_samples
- # total length of file
- T1 = Y.shape[0]
-
- # set up CNMF initialization parameters
-
- # merging threshold, max correlation allowed
- merge_thresh = 0.8
- # number of frames for initialization (presumably from the first file)
- initbatch = 400
- # size of patch
- patch_size = 32
- # amount of overlap between patches
- stride = 3
- # max number of components in each patch
- K = 4
-
-#%% obtain initial batch file used for initialization
- # memory map file (not needed)
- fname_new = Y[:initbatch].save(os.path.join(caiman_datadir(), 'example_movies', 'demo.mmap'), order='C')
- Yr, dims, T = cm.load_memmap(fname_new)
- images = np.reshape(Yr.T, [T] + list(dims), order='F')
- Cn_init = cm.local_correlations(np.reshape(Yr, dims + (T,), order='F'))
-
- #%% RUN (offline) CNMF algorithm on the initial batch
- pl.close('all')
- cnm_init = cnmf.CNMF(2, k=K, gSig=gSig, merge_thresh=merge_thresh, fr=fr,
- p=p, rf=patch_size // 2, stride=stride, skip_refinement=False,
- normalize_init=False, options_local_NMF=None,
- minibatch_shape=100, minibatch_suff_stat=5,
- update_num_comps=True, rval_thr=rval_thr,
- thresh_fitness_delta=-50, gnb=gnb, decay_time=decay_time,
- thresh_fitness_raw=thresh_fitness_raw,
- batch_update_suff_stat=False, max_comp_update_shape=max_comp_update_shape,
- expected_comps=expected_comps, dview=None,
- min_SNR=min_SNR)
-
- cnm_init = cnm_init.fit(images)
-
- print(('Number of components:' + str(cnm_init.estimates.A.shape[-1])))
-
- pl.figure()
- crd = plot_contours(cnm_init.estimates.A.tocsc(), Cn_init, thr=0.9)
-
-#%% run (online) OnACID algorithm
-
- cnm = deepcopy(cnm_init)
- cnm.params.data['dims'] = (60, 80)
- cnm._prepare_object(np.asarray(Yr), T1)
-
- t = initbatch
-
- Y_ = cm.load(fname)[initbatch:].astype(np.float32)
- for frame_count, frame in enumerate(Y_):
- cnm.fit_next(t, frame.copy().reshape(-1, order='F'))
- t += 1
-
-#%% extract the results
-
- C, f = cnm.estimates.C_on[gnb:cnm.M], cnm.estimates.C_on[:gnb]
- A, b = cnm.estimates.Ab[:, gnb:cnm.M], cnm.estimates.Ab[:, :gnb]
- print(('Number of components:' + str(A.shape[-1])))
-
-#%% pass through the CNN classifier with a low threshold (keeps clearer neuron shapes and excludes processes)
- use_CNN = True
- if use_CNN:
- # threshold for CNN classifier
- thresh_cnn = 0.1
- from caiman.components_evaluation import evaluate_components_CNN
- predictions, final_crops = evaluate_components_CNN(
- A, dims, gSig, model_name=os.path.join(caiman_datadir(), 'model', 'cnn_model'))
- A_exclude, C_exclude = A[:, predictions[:, 1] <
- thresh_cnn], C[predictions[:, 1] < thresh_cnn]
- A, C = A[:, predictions[:, 1] >=
- thresh_cnn], C[predictions[:, 1] >= thresh_cnn]
- noisyC = cnm.estimates.noisyC[gnb:cnm.M]
- YrA = noisyC[predictions[:, 1] >= thresh_cnn] - C
- else:
- YrA = cnm.estimates.noisyC[gnb:cnm.M] - C
-
-#%% plot results
- pl.figure()
- crd = cm.utils.visualization.plot_contours(A, Cn, thr=0.9)
-
- view_patches_bar(Yr, A, C, b, f,
- dims[0], dims[1], YrA, img=Cn)
-
-#%%
-# This is to mask the differences between running this demo in Spyder
-# versus from the CLI
-if __name__ == "__main__":
- main()
diff --git a/demos/obsolete/1_1/demo_OnACID_mesoscope_1_1.py b/demos/obsolete/1_1/demo_OnACID_mesoscope_1_1.py
deleted file mode 100755
index 47c23dc4d..000000000
--- a/demos/obsolete/1_1/demo_OnACID_mesoscope_1_1.py
+++ /dev/null
@@ -1,396 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-"""
-Complete pipeline for online processing using OnACID.
-@author: Andrea Giovannucci @agiovann and Eftychios Pnevmatikakis @epnev
-Special thanks to Andreas Tolias and his lab at Baylor College of Medicine
-for sharing their data used in this demo.
-"""
-
-from copy import deepcopy
-import glob
-import numpy as np
-import os
-import pylab as pl
-import scipy
-import sys
-from time import time
-
-try:
- if __IPYTHON__:
- print('Detected iPython')
- # this is used for debugging purposes only. allows to reload classes when changed
- get_ipython().magic('load_ext autoreload')
- get_ipython().magic('autoreload 2')
-except NameError:
- pass
-
-import caiman as cm
-from caiman.utils.visualization import view_patches_bar
-from caiman.utils.utils import download_demo, load_object, save_object
-from caiman.components_evaluation import evaluate_components_CNN
-from caiman.motion_correction import motion_correct_iteration_fast
-import cv2
-from caiman.utils.visualization import plot_contours
-from caiman.source_extraction.cnmf.online_cnmf import bare_initialization
-from caiman.source_extraction.cnmf.utilities import detrend_df_f_auto
-from caiman.paths import caiman_datadir
-
-#%%
-def main():
- pass # For compatibility between running under Spyder and the CLI
-
-#%% download and list all files to be processed
-
- # folder inside ./example_movies where files will be saved
- fld_name = 'Mesoscope'
- download_demo('Tolias_mesoscope_1.hdf5', fld_name)
- download_demo('Tolias_mesoscope_2.hdf5', fld_name)
- download_demo('Tolias_mesoscope_3.hdf5', fld_name)
-
- # folder where files are located
- folder_name = os.path.join(caiman_datadir(), 'example_movies', fld_name)
- extension = 'hdf5' # extension of files
- # read all files to be processed
- fls = glob.glob(folder_name + '/*' + extension)
-
- # your list of files should look something like this
- print(fls)
-
-#%% Set up some parameters
-
- # frame rate (Hz)
- fr = 15
- # approximate length of transient event in seconds
- decay_time = 0.5
- # expected half size of neurons
- gSig = (3, 3)
- # order of AR indicator dynamics
- p = 1
- # minimum SNR for accepting new components
- min_SNR = 2.5
- # correlation threshold for new component inclusion
- rval_thr = 0.85
- # spatial downsampling factor (increases speed but may lose some fine structure)
- ds_factor = 1
- # number of background components
- gnb = 2
- # recompute gSig if downsampling is involved
- gSig = tuple(np.ceil(np.array(gSig) / ds_factor).astype('int'))
- # flag for online motion correction
- mot_corr = True
- # maximum allowed shift during motion correction
- max_shift = np.ceil(10. / ds_factor).astype('int')
-
- # set up some additional supporting parameters needed for the algorithm (these are default values but change according to dataset characteristics)
-
- # number of shapes to be updated each time (put this to a finite small value to increase speed)
- max_comp_update_shape = np.inf
- # number of files used for initialization
- init_files = 1
- # number of files used for online
- online_files = len(fls) - 1
- # number of frames for initialization (presumably from the first file)
- initbatch = 200
- # maximum number of expected components used for memory pre-allocation (exaggerate here)
- expected_comps = 300
- # initial number of components
- K = 2
- # number of timesteps to consider when testing new neuron candidates
- N_samples = np.ceil(fr * decay_time)
- # exceptionality threshold
- thresh_fitness_raw = scipy.special.log_ndtr(-min_SNR) * N_samples
- # number of passes over the data
- epochs = 2
- # upper bound for number of frames in each file (used right below)
- len_file = 1000
- # total length of all files (if not known use a large number, then truncate at the end)
- T1 = len(fls) * len_file * epochs
-
-#%% Initialize movie
-
- # load only the first initbatch frames and possibly downsample them
- if ds_factor > 1:
- Y = cm.load(fls[0], subindices=slice(0, initbatch, None)).astype(
- np.float32).resize(1. / ds_factor, 1. / ds_factor)
- else:
- Y = cm.load(fls[0], subindices=slice(
- 0, initbatch, None)).astype(np.float32)
-
- if mot_corr: # perform motion correction on the first initbatch frames
- mc = Y.motion_correct(max_shift, max_shift)
- Y = mc[0].astype(np.float32)
- borders = np.max(mc[1])
- else:
- Y = Y.astype(np.float32)
-
- # minimum value of movie. Subtract it to make the data non-negative
- img_min = Y.min()
- Y -= img_min
- img_norm = np.std(Y, axis=0)
- # normalizing factor to equalize the FOV
- img_norm += np.median(img_norm)
- Y = Y / img_norm[None, :, :] # normalize data
-
- _, d1, d2 = Y.shape
- dims = (d1, d2) # dimensions of FOV
- Yr = Y.to_2D().T # convert data into 2D array
-
- Cn_init = Y.local_correlations(swap_dim=False) # compute correlation image
- #pl.imshow(Cn_init)
- #pl.title('Correlation Image on initial batch')
- #pl.colorbar()
-
- bnd_Y = np.percentile(Y,(0.001,100-0.001)) # plotting boundaries for Y
-
-#%% initialize OnACID with bare initialization
-
- cnm_init = bare_initialization(Y[:initbatch].transpose(1, 2, 0), init_batch=initbatch, k=K, gnb=gnb,
- gSig=gSig, p=p, minibatch_shape=100, minibatch_suff_stat=5,
- update_num_comps=True, rval_thr=rval_thr,
- thresh_fitness_raw=thresh_fitness_raw,
- batch_update_suff_stat=True, max_comp_update_shape=max_comp_update_shape,
- deconv_flag=False, use_dense=False,
- simultaneously=False, n_refit=0,
- max_num_added=3, min_num_trial=3,
- sniper_mode=False, use_peak_max=False,
- expected_comps=expected_comps)
-
-#%% Plot initialization results
-
- crd = plot_contours(cnm_init.estimates.A.tocsc(), Cn_init, thr=0.9)
- A, C, b, f, YrA, sn = cnm_init.estimates.A, cnm_init.estimates.C, cnm_init.estimates.b, cnm_init.estimates.f, \
- cnm_init.estimates.YrA, cnm_init.estimates.sn
- view_patches_bar(Yr, scipy.sparse.coo_matrix(
- A.tocsc()[:, :]), C[:, :], b, f, dims[0], dims[1], YrA=YrA[:, :], img=Cn_init)
-
- bnd_AC = np.percentile(A.dot(C),(0.001,100-0.005))
- bnd_BG = np.percentile(b.dot(f),(0.001,100-0.001))
-
-#%% create a function for plotting results in real time if needed
-
- def create_frame(cnm2, img_norm, captions):
- cnm2_est = cnm2.estimates
- A, b = cnm2_est.Ab[:, gnb:], cnm2_est.Ab[:, :gnb].toarray()
- C, f = cnm2_est.C_on[gnb:cnm2.M, :], cnm2_est.C_on[:gnb, :]
- # inferred activity due to components (no background)
- frame_plot = (frame_cor.copy() - bnd_Y[0])/np.diff(bnd_Y)
- comps_frame = A.dot(C[:, t - 1]).reshape(cnm2.dims, order='F')
- bgkrnd_frame = b.dot(f[:, t - 1]).reshape(cnm2.dims, order='F') # denoised frame (components + background)
- denoised_frame = comps_frame + bgkrnd_frame
- denoised_frame = (denoised_frame.copy() - bnd_Y[0])/np.diff(bnd_Y)
- comps_frame = (comps_frame.copy() - bnd_AC[0])/np.diff(bnd_AC)
-
- if show_residuals:
- #all_comps = np.reshape(cnm2.Yres_buf.mean(0), cnm2.dims, order='F')
- all_comps = np.reshape(cnm2_est.mean_buff, cnm2.dims, order='F')
- all_comps = np.minimum(np.maximum(all_comps, 0)*2 + 0.25, 255)
- else:
- all_comps = np.array(A.sum(-1)).reshape(cnm2.dims, order='F')
- # spatial shapes
- frame_comp_1 = cv2.resize(np.concatenate([frame_plot, all_comps * 1.], axis=-1),
- (2 * np.int(cnm2.dims[1] * resize_fact), np.int(cnm2.dims[0] * resize_fact)))
- frame_comp_2 = cv2.resize(np.concatenate([comps_frame, denoised_frame], axis=-1),
- (2 * np.int(cnm2.dims[1] * resize_fact), np.int(cnm2.dims[0] * resize_fact)))
- frame_pn = np.concatenate([frame_comp_1, frame_comp_2], axis=0).T
- vid_frame = np.repeat(frame_pn[:, :, None], 3, axis=-1)
- vid_frame = np.minimum((vid_frame * 255.), 255).astype('u1')
-
- if show_residuals and cnm2_est.ind_new:
- add_v = np.int(cnm2.dims[1]*resize_fact)
- for ind_new in cnm2_est.ind_new:
- cv2.rectangle(vid_frame,(int(ind_new[0][1]*resize_fact),int(ind_new[1][1]*resize_fact)+add_v),
- (int(ind_new[0][0]*resize_fact),int(ind_new[1][0]*resize_fact)+add_v),(255,0,255),2)
-
- cv2.putText(vid_frame, captions[0], (5, 20), fontFace=5, fontScale=0.8, color=(
- 0, 255, 0), thickness=1)
- cv2.putText(vid_frame, captions[1], (np.int(
- cnm2.dims[0] * resize_fact) + 5, 20), fontFace=5, fontScale=0.8, color=(0, 255, 0), thickness=1)
- cv2.putText(vid_frame, captions[2], (5, np.int(
- cnm2.dims[1] * resize_fact) + 20), fontFace=5, fontScale=0.8, color=(0, 255, 0), thickness=1)
- cv2.putText(vid_frame, captions[3], (np.int(cnm2.dims[0] * resize_fact) + 5, np.int(
- cnm2.dims[1] * resize_fact) + 20), fontFace=5, fontScale=0.8, color=(0, 255, 0), thickness=1)
- cv2.putText(vid_frame, 'Frame = ' + str(t), (vid_frame.shape[1] // 2 - vid_frame.shape[1] //
- 10, vid_frame.shape[0] - 20), fontFace=5, fontScale=0.8, color=(0, 255, 255), thickness=1)
- return vid_frame
-
-#%% Prepare object for OnACID
- cnm2 = deepcopy(cnm_init)
-
- save_init = False # flag for saving initialization object. Useful if you want to check OnACID with different parameters but same initialization
- if save_init:
- cnm_init.dview = None
- save_object(cnm_init, fls[0][:-4] + '_DS_' + str(ds_factor) + '.pkl')
- cnm_init = load_object(fls[0][:-4] + '_DS_' + str(ds_factor) + '.pkl')
-
- cnm2._prepare_object(np.asarray(Yr), T1, idx_components=None)
-
- cnm2.thresh_CNN_noisy = 0.5
-
-#%% Run OnACID and optionally plot results in real time
- epochs = 1
- cnm2.estimates.Ab_epoch = [] # save the shapes at the end of each epoch
- t = initbatch # current timestep
- tottime = []
- Cn = Cn_init.copy()
-
- # flag for removing components with bad shapes
- remove_flag = False
- T_rm = 650 # remove bad components every T_rm frames
- rm_thr = 0.1 # CNN classifier removal threshold
- # flag for plotting contours of detected components at the end of each file
- plot_contours_flag = False
- # flag for showing results video online (turn off flags for improving speed)
- play_reconstr = True
- # flag for saving movie (file could be quite large..)
- save_movie = False
- movie_name = os.path.join(folder_name, 'sniper_meso_0.995_new.avi') # name of movie to be saved
- resize_fact = 1.2 # image resizing factor
-
- if online_files == 0: # check whether there are any additional files
- process_files = fls[:init_files] # end processing at this file
- init_batc_iter = [initbatch] # place where to start
- end_batch = T1
- else:
- process_files = fls[:init_files + online_files] # additional files
- # where to start reading at each file
- init_batc_iter = [initbatch] + [0] * online_files
-
-
- shifts = []
- show_residuals = True
- if show_residuals:
- caption = 'Mean Residual Buffer'
- else:
- caption = 'Identified Components'
- captions = ['Raw Data', 'Inferred Activity', caption, 'Denoised Data']
- if save_movie and play_reconstr:
- fourcc = cv2.VideoWriter_fourcc('8', 'B', 'P', 'S')
- # fourcc = cv2.VideoWriter_fourcc(*'XVID')
- out = cv2.VideoWriter(movie_name, fourcc, 30.0, tuple(
- [int(2 * x * resize_fact) for x in cnm2.dims]))
-
- for iter in range(epochs):
- if iter > 0:
- # if not on first epoch process all files from scratch
- process_files = fls[:init_files + online_files]
- init_batc_iter = [0] * (online_files + init_files)
-
- # np.array(fls)[np.array([1,2,3,4,5,-5,-4,-3,-2,-1])]:
- for file_count, ffll in enumerate(process_files):
- print('Now processing file ' + ffll)
- Y_ = cm.load(ffll, subindices=slice(
- init_batc_iter[file_count], T1, None))
-
- # update max-correlation (and perform offline motion correction) just for illustration purposes
- if plot_contours_flag:
- if ds_factor > 1:
- Y_1 = Y_.resize(1. / ds_factor, 1. / ds_factor, 1)
- else:
- Y_1 = Y_.copy()
- if mot_corr:
- templ = (cnm2.estimates.Ab.data[:cnm2.estimates.Ab.indptr[1]] * cnm2.estimates.C_on[0, t - 1]).reshape(cnm2.estimates.dims, order='F') * img_norm
- newcn = (Y_1 - img_min).motion_correct(max_shift, max_shift,
- template=templ)[0].local_correlations(swap_dim=False)
- Cn = np.maximum(Cn, newcn)
- else:
- Cn = np.maximum(Cn, Y_1.local_correlations(swap_dim=False))
-
- old_comps = cnm2.N # number of existing components
- for frame_count, frame in enumerate(Y_): # now process each file
- if np.isnan(np.sum(frame)):
- raise Exception('Frame ' + str(frame_count) + ' contains nan')
- if t % 100 == 0:
- print('Epoch: ' + str(iter + 1) + '. ' + str(t) + ' frames have beeen processed in total. ' + str(cnm2.N -
- old_comps) + ' new components were added. Total number of components is ' + str(cnm2.estimates.Ab.shape[-1] - gnb))
- old_comps = cnm2.N
-
- t1 = time() # count time only for the processing part
- frame_ = frame.copy().astype(np.float32) #
- if ds_factor > 1:
- frame_ = cv2.resize(
- frame_, img_norm.shape[::-1]) # downsampling
-
- frame_ -= img_min # make data non-negative
-
- if mot_corr: # motion correct
- templ = cnm2.estimates.Ab.dot(
- cnm2.estimates.C_on[:cnm2.M, t - 1]).reshape(cnm2.dims, order='F') * img_norm
- frame_cor, shift = motion_correct_iteration_fast(
- frame_, templ, max_shift, max_shift)
- shifts.append(shift)
- else:
- templ = None
- frame_cor = frame_
-
- frame_cor = frame_cor / img_norm # normalize data-frame
- cnm2.fit_next(t, frame_cor.reshape(-1, order='F')) # run OnACID on this frame
- # store time
- tottime.append(time() - t1)
-
- t += 1
-
- if t % T_rm == 0 and remove_flag:
- prd, _ = evaluate_components_CNN(cnm2.estimates.Ab[:, gnb:], dims, gSig)
- ind_rem = np.where(prd[:, 1] < rm_thr)[0].tolist()
- cnm2.remove_components(ind_rem)
- print('Removing '+str(len(ind_rem))+' components')
-
- if t % 1000 == 0 and plot_contours_flag:
- pl.cla()
- A = cnm2.estimates.Ab[:, gnb:]
- # update the contour plot every 1000 frames
- crd = cm.utils.visualization.plot_contours(A, Cn, thr=0.9)
- pl.pause(1)
-
- if play_reconstr: # generate movie with the results
- vid_frame = create_frame(cnm2, img_norm, captions)
- if save_movie:
- out.write(vid_frame)
- if t-initbatch < 100:
- #for rp in np.int32(np.ceil(np.exp(-np.arange(1,100)/30)*20)):
- for rp in range(len(cnm2.estimates.ind_new)*2):
- out.write(vid_frame)
- cv2.imshow('frame', vid_frame)
- if t-initbatch < 100:
- for rp in range(len(cnm2.estimates.ind_new)*2):
- cv2.imshow('frame', vid_frame)
- if cv2.waitKey(1) & 0xFF == ord('q'):
- break
-
- print('Cumulative processing speed is ' + str((t - initbatch) /
- np.sum(tottime))[:5] + ' frames per second.')
- # save the shapes at the end of each epoch
- cnm2.estimates.Ab_epoch.append(cnm2.estimates.Ab.copy())
-
- if save_movie:
- out.release()
- cv2.destroyAllWindows()
-
-#%% save results (optional)
- save_results = False
-
- if save_results:
- np.savez('results_analysis_online_MOT_CORR.npz',
- Cn=Cn, Ab=cnm2.estimates.Ab, Cf=cnm2.estimates.C_on, b=cnm2.estimates.b, f=cnm2.estimates.f,
- dims=cnm2.dims, tottime=tottime, noisyC=cnm2.estimates.noisyC, shifts=shifts)
-
- #%% extract results from the objects and do some plotting
- A, b = cnm2.estimates.Ab[:, gnb:], cnm2.estimates.Ab[:, :gnb].toarray()
- C, f = cnm2.estimates.C_on[gnb:cnm2.M, t - t //
- epochs:t], cnm2.estimates.C_on[:gnb, t - t // epochs:t]
- noisyC = cnm2.estimates.noisyC[:, t - t // epochs:t]
- b_trace = [osi.b for osi in cnm2.estimates.OASISinstances] if hasattr(
- cnm2, 'OASISinstances') else [0] * C.shape[0]
-
- pl.figure()
- crd = cm.utils.visualization.plot_contours(A, Cn, thr=0.9)
- view_patches_bar(Yr, scipy.sparse.coo_matrix(A.tocsc()[:, :]), C[:, :], b, f,
- dims[0], dims[1], YrA=noisyC[gnb:cnm2.M] - C, img=Cn)
-
-#%%
-# This is to mask the differences between running this demo in Spyder
-# versus from the CLI
-if __name__ == "__main__":
- main()
diff --git a/demos/obsolete/1_1/demo_caiman_basic_1_1.py b/demos/obsolete/1_1/demo_caiman_basic_1_1.py
deleted file mode 100755
index 972b270fe..000000000
--- a/demos/obsolete/1_1/demo_caiman_basic_1_1.py
+++ /dev/null
@@ -1,174 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-"""
-Stripped demo for running the CNMF source extraction algorithm with CaImAn and
-evaluation the components. The analysis can be run either in the whole FOV
-or in patches. For a complete pipeline (including motion correction)
-check demo_pipeline.py
-Data courtesy of W. Yang, D. Peterka and R. Yuste (Columbia University)
-
-This demo is designed to be run under spyder or jupyter; its plotting functions
-are tailored for that environment.
-
-@authors: @agiovann and @epnev
-
-"""
-
-from __future__ import print_function
-from builtins import range
-import cv2
-
-try:
- cv2.setNumThreads(0)
-except():
- pass
-
-try:
- if __IPYTHON__:
- print("Detected iPython")
- get_ipython().magic('load_ext autoreload')
- get_ipython().magic('autoreload 2')
-except NameError:
- pass
-
-import numpy as np
-import os
-import glob
-import matplotlib.pyplot as plt
-from copy import deepcopy
-
-import caiman as cm
-from caiman.source_extraction.cnmf import cnmf as cnmf
-from caiman.paths import caiman_datadir
-from caiman.source_extraction.cnmf import params as params
-
-#%%
-def main():
- pass # For compatibility between running under Spyder and the CLI
-
-#%% start a cluster
-
- c, dview, n_processes =\
- cm.cluster.setup_cluster(backend='local', n_processes=None,
- single_thread=False)
-
-#%% save files to be processed
-
- # This datafile is distributed with Caiman
- fnames = [os.path.join(caiman_datadir(), 'example_movies', 'demoMovie.tif')]
- # location of dataset (can actually be a list of filed to be concatenated)
- add_to_movie = -np.min(cm.load(fnames[0], subindices=range(200))).astype(float)
- # determine minimum value on a small chunk of data
- add_to_movie = np.maximum(add_to_movie, 0)
- # if minimum is negative subtract to make the data non-negative
- base_name = 'Yr'
- fname_new = cm.save_memmap(fnames, dview=dview, base_name=base_name,
- order='C',
- add_to_movie=add_to_movie)
-
-#%% LOAD MEMORY MAPPABLE FILE
- Yr, dims, T = cm.load_memmap(fname_new)
- d1, d2 = dims
- images = np.reshape(Yr.T, [T] + list(dims), order='F')
-
-#%% play movie, press q to quit
- play_movie = False
- if play_movie:
- cm.movie(images).play(fr=50, magnification=4, gain=3.)
-
-#%% correlation image. From here infer neuron size and density
- Cn = cm.movie(images).local_correlations(swap_dim=False)
- plt.imshow(Cn, cmap='gray')
- plt.title('Correlation Image')
-
-#%% set up some parameters
-
- is_patches = True # flag for processing in patches or not
- fr = 10 # approximate frame rate of data
- decay_time = 5.0 # length of transient
-
- if is_patches: # PROCESS IN PATCHES AND THEN COMBINE
- rf = 10 # half size of each patch
- stride = 4 # overlap between patches
- K = 4 # number of components in each patch
- else: # PROCESS THE WHOLE FOV AT ONCE
- rf = None # setting these parameters to None
- stride = None # will run CNMF on the whole FOV
- K = 30 # number of neurons expected (in the whole FOV)
-
- gSig = [6, 6] # expected half size of neurons
- merge_thresh = 0.80 # merging threshold, max correlation allowed
- p = 2 # order of the autoregressive system
- gnb = 2 # global background order
-
- params_dict = {'fnames': fnames,
- 'fr': fr,
- 'decay_time': decay_time,
- 'rf': rf,
- 'stride': stride,
- 'K': K,
- 'gSig': gSig,
- 'merge_thr': merge_thresh,
- 'p': p,
- 'nb': gnb}
-
-# opts = params.CNMFParams(dims=dims,
-# method_init='greedy_roi', gSig=gSig,
-# merge_thresh=merge_thresh, p=p, gnb=gnb, k=K,
-# rf=rf, stride=stride, rolling_sum=False,
-# fr=fr, decay_time=decay_time)
- opts = params.CNMFParams(params_dict=params_dict)
-#%% Now RUN CNMF
- cnm = cnmf.CNMF(n_processes, params=opts, dview=dview)
- cnm = cnm.fit(images)
-
-#%% plot contour plots of components
- cnm.estimates.plot_contours(img=Cn)
-
-#%% copy into a new object and refit
- cnm.dview = None
- cnm2 = deepcopy(cnm)
- cnm2.dview = dview
- cnm2.params.set('patch', {'rf': None})
- cnm2 = cnm2.fit(images)
-
-#%% COMPONENT EVALUATION
- # the components are evaluated in three ways:
- # a) the shape of each component must be correlated with the data
- # b) a minimum peak SNR is required over the length of a transient
- # c) each shape passes a CNN based classifier (this will pick up only neurons
- # and filter out active processes)
-
- min_SNR = 2.5 # peak SNR for accepted components (if above this, acept)
- rval_thr = 0.90 # space correlation threshold (if above this, accept)
- use_cnn = True # use the CNN classifier
- min_cnn_thr = 0.95 # if cnn classifier predicts below this value, reject
-
- cnm2.params.set('quality', {'min_SNR': min_SNR,
- 'rval_thr': rval_thr,
- 'use_cnn': use_cnn,
- 'min_cnn_thr': min_cnn_thr})
-
- cnm2.estimates.evaluate_components(images, cnm2.params, dview=dview)
-#%% visualize selected and rejected components
- cnm2.estimates.plot_contours(img=Cn, idx=cnm2.estimates.idx_components)
-
-#%% visualize selected components
- cnm2.estimates.view_components(images, idx=cnm2.estimates.idx_components, img=Cn)
-
-#%% play movie with results
- cnm2.estimates.play_movie(images, magnification=4)
-
-#%% STOP CLUSTER and clean up log files
- cm.stop_server(dview=dview)
-
- log_files = glob.glob('Yr*_LOG_*')
- for log_file in log_files:
- os.remove(log_file)
-
-#%%
-# This is to mask the differences between running this demo in Spyder
-# versus from the CLI
-if __name__ == "__main__":
- main()
diff --git a/demos/obsolete/1_1/demo_pipeline_1_1.py b/demos/obsolete/1_1/demo_pipeline_1_1.py
deleted file mode 100755
index eacab4e0b..000000000
--- a/demos/obsolete/1_1/demo_pipeline_1_1.py
+++ /dev/null
@@ -1,247 +0,0 @@
-#!/usr/bin/env python
-
-"""
-Complete demo pipeline for motion correction, source extraction, and
-deconvolution of two-photon calcium imaging data using the CaImAn package.
-
-Demo is also available as a jupyter notebook (see demo_pipeline.ipynb)
-Dataset couresy of Sue Ann Koay and David Tank (Princeton University)
-
-This demo pertains to two photon data. For a complete analysis pipeline for
-one photon microendoscopic data see demo_pipeline_cnmfE.py
-
-copyright GNU General Public License v2.0
-authors: @agiovann and @epnev
-"""
-
-from __future__ import division
-from __future__ import print_function
-from builtins import range
-
-import os
-import cv2
-import glob
-
-try:
- cv2.setNumThreads(0)
-except():
- pass
-
-try:
- if __IPYTHON__:
- print("Running under iPython")
- # this is used for debugging purposes only. allows to reload classes
- # when changed
- get_ipython().magic('load_ext autoreload')
- get_ipython().magic('autoreload 2')
-except NameError:
- pass
-
-import matplotlib.pyplot as plt
-import numpy as np
-
-import caiman as cm
-from caiman.utils.utils import download_demo
-from caiman.source_extraction.cnmf import cnmf as cnmf
-from caiman.motion_correction import MotionCorrect
-from caiman.source_extraction.cnmf import params as params
-from copy import deepcopy
-
-#%%
-def main():
- pass # For compatibility between running under Spyder and the CLI
-
-#%% First setup some parameters for data and motion correction
-
- # dataset dependent parameters
- fname = ['Sue_2x_3000_40_-46.tif'] # filename to be processed
- fr = 30 # imaging rate in frames per second
- decay_time = 0.4 # length of a typical transient in seconds
- dxy = (2., 2.) # spatial resolution in x and y in (um per pixel)
- max_shift_um = (12., 12.) # maximum shift in um
- patch_motion_um = (100., 100.) # patch size for non-rigid motion correction in um
-
- # motion correction parameters
- pwrigid_motion_correct = True # flag to select rigid vs pw_rigid motion correction
- max_shifts = tuple([int(a/b) for a, b in zip(max_shift_um, dxy)])
- # maximum allow rigid shift in pixels
- # for parallelization split the movies in num_splits chuncks across time
- splits_rig = 56
- # start a new patch for pw-rigid motion correction every x pixels
- strides = tuple([int(a/b) for a, b in zip(patch_motion_um, dxy)])
- # overlap between pathes (size of patch strides+overlaps)
- overlaps = (24, 24)
- # for parallelization split the movies in num_splits chuncks across time
- splits_els = 56
- upsample_factor_grid = 4 # upsample factor to avoid smearing when merging patches
- # maximum deviation allowed for patch with respect to rigid shifts
- max_deviation_rigid = 3
-
-#%% download the dataset if it's not present in your folder
- if fname[0] in ['Sue_2x_3000_40_-46.tif', 'demoMovie.tif']:
- fname = [download_demo(fname[0])]
-
-#%% play the movie
- # playing the movie using opencv. It requires loading the movie in memory.
- # To close the video press q
- display_images = False
-
- if display_images:
- m_orig = cm.load_movie_chain(fname)
- downsample_ratio = 0.2
- moviehandle = m_orig.resize(1, 1, downsample_ratio)
- moviehandle.play(q_max=99.5, fr=60, magnification=2)
-
-#%% start a cluster for parallel processing
- c, dview, n_processes = cm.cluster.setup_cluster(
- backend='local', n_processes=None, single_thread=False)
-
-
-#%%% MOTION CORRECTION
- # first we create a motion correction object with the parameters specified
- min_mov = cm.load(fname[0], subindices=range(200)).min()
- # this will be subtracted from the movie to make it non-negative
-
- mc = MotionCorrect(fname, min_mov, dview=dview, max_shifts=max_shifts,
- splits_rig=splits_rig,
- strides=strides, overlaps=overlaps,
- splits_els=splits_els, border_nan='copy',
- upsample_factor_grid=upsample_factor_grid,
- max_deviation_rigid=max_deviation_rigid,
- shifts_opencv=True, nonneg_movie=True)
- # note that the file is not loaded in memory
-
-#%% Run piecewise-rigid motion correction using NoRMCorre
- if pwrigid_motion_correct:
- mc.motion_correct_pwrigid(save_movie=True)
- m_els = cm.load(mc.fname_tot_els)
- bord_px_els = np.ceil(np.maximum(np.max(np.abs(mc.x_shifts_els)),
- np.max(np.abs(mc.y_shifts_els)))).astype(np.int)
- fnames = mc.fname_tot_els # name of the pw-rigidly corrected file.
-
- else:
- mc.motion_correct_rigid(save_movie=True)
- m_els = cm.load(mc.fname_tot_rig)
- bord_px_els = np.ceil(np.max(np.abs(mc.shifts_rig))).astype(np.int)
- fnames = mc.fname_tot_rig # name of the rigidly corrected file.
-
- # maximum shift to be used for trimming against NaNs
-#%% compare with original movie
- if display_images:
- downsample_ratio = 0.2
- moviehandle = cm.concatenate([m_orig.resize(1, 1, downsample_ratio) - min_mov,
- m_els.resize(1, 1, downsample_ratio)],
- axis=2)
- moviehandle.play(fr=60, q_max=99.5, magnification=2) # press q to exit
-
-#%% MEMORY MAPPING
- # memory map the file in order 'C'
- border_to_0 = bord_px_els # exclude borders due to motion correction
-# border_to_0 = 0 if mc.border_nan is 'copy' else bord_px_els
- # you can include boundaries if you used the 'copy' option in the motion
- # correction, although be careful abou the components near the boundaries
- fname_new = cm.save_memmap(fnames, base_name='memmap_', order='C',
- border_to_0=border_to_0) # exclude borders
-
- # now load the file
- Yr, dims, T = cm.load_memmap(fname_new)
- images = np.reshape(Yr.T, [T] + list(dims), order='F')
- # load frames in python format (T x X x Y)
-
-#%% restart cluster to clean up memory
- cm.stop_server(dview=dview)
- c, dview, n_processes = cm.cluster.setup_cluster(
- backend='local', n_processes=None, single_thread=False)
-
-#%% parameters for source extraction and deconvolution
- p = 1 # order of the autoregressive system
- gnb = 2 # number of global background components
- merge_thresh = 0.8 # merging threshold, max correlation allowed
- # half-size of the patches in pixels. e.g., if rf=25, patches are 50x50
- rf = 15
- stride_cnmf = 6 # amount of overlap between the patches in pixels
- K = 4 # number of components per patch
- gSig = [4, 4] # expected half size of neurons
- # initialization method (if analyzing dendritic data using 'sparse_nmf')
- method_init = 'greedy_roi'
-
- # parameters for component evaluation
-
- opts = params.CNMFParams(dims=dims, fr=fr, decay_time=decay_time,
- method_init=method_init, gSig=gSig,
- merge_thresh=merge_thresh, p=p, gnb=gnb, k=K,
- rf=rf, stride=stride_cnmf, rolling_sum=True)
-
-#%% RUN CNMF ON PATCHES
-
- # First extract spatial and temporal components on patches and combine them
- # for this step deconvolution is turned off (p=0)
-
- opts.set('temporal', {'p': 0})
- cnm = cnmf.CNMF(n_processes, params=opts, dview=dview)
- cnm = cnm.fit(images)
-
-#%% plot contours of found components
- Cn = cm.local_correlations(images.transpose(1, 2, 0))
- Cn[np.isnan(Cn)] = 0
- cnm.estimates.plot_contours(img=Cn)
- plt.title('Contour plots of found components')
-
-#%% COMPONENT EVALUATION
- # the components are evaluated in three ways:
- # a) the shape of each component must be correlated with the data
- # b) a minimum peak SNR is required over the length of a transient
- # c) each shape passes a CNN based classifier
- min_SNR = 2.5 # signal to noise ratio for accepting a component
- rval_thr = 0.8 # space correlation threshold for accepting a component
- cnn_thr = 0.8 # threshold for CNN based classifier
- cnm.params.set('quality', {'fr': fr,
- 'decay_time': decay_time,
- 'min_SNR': min_SNR,
- 'rval_thr': rval_thr,
- 'use_cnn': True,
- 'min_cnn_thr': cnn_thr})
- cnm.estimates.evaluate_components(images, cnm.params, dview=dview)
-
-#%% PLOT COMPONENTS
- cnm.estimates.plot_contours(img=Cn, idx=cnm.estimates.idx_components)
-
-#%% VIEW TRACES (accepted and rejected)
-
- if display_images:
- cnm.estimates.view_components(images, img=Cn, idx=cnm.estimates.idx_components)
- cnm.estimates.view_components(images, img=Cn, idx=cnm.estimates.idx_components_bad)
-
-#%% RE-RUN seeded CNMF on accepted patches to refine and perform deconvolution
-
- cnm.dview = None
- cnm2 = deepcopy(cnm)
- cnm2.dview = dview
- cnm2.params.set('patch', {'rf': None})
- cnm2.params.set('temporal', {'p': p})
- cnm2 = cnm2.fit(images)
-
-#%% Extract DF/F values
- cnm2.estimates.detrend_df_f(quantileMin=8, frames_window=250)
-
-#%% Show final traces
- cnm2.estimates.view_components(Yr, img=Cn)
-
-#%% reconstruct denoised movie (press q to exit)
- if display_images:
- cnm2.estimates.play_movie(images, q_max=99.9, gain_res=2,
- magnification=2,
- bpx=border_to_0,
- include_bck=True)
-
-#%% STOP CLUSTER and clean up log files
- cm.stop_server(dview=dview)
- log_files = glob.glob('*_LOG_*')
- for log_file in log_files:
- os.remove(log_file)
-
-#%%
-# This is to mask the differences between running this demo in Spyder
-# versus from the CLI
-if __name__ == "__main__":
- main()
diff --git a/demos/obsolete/1_1/demo_pipeline_cnmfE_1_1.py b/demos/obsolete/1_1/demo_pipeline_cnmfE_1_1.py
deleted file mode 100755
index 4424696cf..000000000
--- a/demos/obsolete/1_1/demo_pipeline_cnmfE_1_1.py
+++ /dev/null
@@ -1,239 +0,0 @@
-#!/usr/bin/env python
-
-"""
-Complete demo pipeline for motion correction, source extraction, and deconvolution
-of one photon microendoscopic calcium imaging data using the CaImAn package.
-
-Demo is also available as a jupyter notebook (see demo_pipeline_cnmfE.ipynb)
-"""
-
-from __future__ import division
-from __future__ import print_function
-
-
-import matplotlib.pyplot as plt
-import numpy as np
-
-try:
- if __IPYTHON__:
- print('Detected iPython')
- # this is used for debugging purposes only. allows to reload classes when changed
- get_ipython().magic('load_ext autoreload')
- get_ipython().magic('autoreload 2')
-except NameError:
- pass
-
-import caiman as cm
-from caiman.source_extraction import cnmf
-from caiman.utils.utils import download_demo
-from caiman.utils.visualization import inspect_correlation_pnr
-from caiman.motion_correction import motion_correct_oneP_rigid, motion_correct_oneP_nonrigid
-from caiman.source_extraction.cnmf import params as params
-from copy import deepcopy
-
-#%%
-def main():
- pass # For compatibility between running under Spyder and the CLI
-
-#%% First setup some parameters
-
- # dataset dependent parameters
- display_images = False # Set to true to show movies and images
- fnames = ['data_endoscope.tif'] # filename to be processed
- fr = 10 # movie frame rate
- decay_time = 0.4 # length of a typical transient in seconds
-
- # motion correction parameters
- do_motion_correction_nonrigid = False
- do_motion_correction_rigid = True # choose motion correction type
-
- gSig_filt = (3, 3) # size of filter, in general gSig (see below),
- # change this one if algorithm does not work
- max_shifts = (5, 5) # maximum allowed rigid shift
- strides = (48, 48) # start a new patch for pw-rigid motion correction every x pixels
- overlaps = (24, 24) # overlap between pathes (size of patch strides+overlaps)
- # for parallelization split the movies in num_splits chuncks across time
- # (make sure that length_movie/num_splits_to_process_rig>100)
- splits_rig = 10
- splits_els = 10
- upsample_factor_grid = 4 # upsample factor to avoid smearing when merging patches
- # maximum deviation allowed for patch with respect to rigid shifts
- max_deviation_rigid = 3
-
-#%% start the cluster
- try:
- cm.stop_server() # stop it if it was running
- except():
- pass
-
- c, dview, n_processes = cm.cluster.setup_cluster(backend='local',
- n_processes=24, # number of process to use, if you go out of memory try to reduce this one
- single_thread=False)
-
-#%% download demo file
- fnames = [download_demo(fnames[0])]
- filename_reorder = fnames
-
-#%% MOTION CORRECTION
- if do_motion_correction_nonrigid or do_motion_correction_rigid:
- # do motion correction rigid
- mc = motion_correct_oneP_rigid(fnames,
- gSig_filt=gSig_filt,
- max_shifts=max_shifts,
- dview=dview,
- splits_rig=splits_rig,
- save_movie=not(do_motion_correction_nonrigid),
- border_nan='copy'
- )
-
- new_templ = mc.total_template_rig
-
- plt.subplot(1, 2, 1); plt.imshow(new_templ) # % plot template
- plt.subplot(1, 2, 2); plt.plot(mc.shifts_rig) # % plot rigid shifts
- plt.legend(['x shifts', 'y shifts'])
- plt.xlabel('frames'); plt.ylabel('pixels')
-
- # borders to eliminate from movie because of motion correction
- bord_px = np.ceil(np.max(np.abs(mc.shifts_rig))).astype(np.int)
- filename_reorder = mc.fname_tot_rig
-
- # do motion correction nonrigid
- if do_motion_correction_nonrigid:
- mc = motion_correct_oneP_nonrigid(
- fnames,
- gSig_filt=gSig_filt,
- max_shifts=max_shifts,
- strides=strides,
- overlaps=overlaps,
- splits_els=splits_els,
- upsample_factor_grid=upsample_factor_grid,
- max_deviation_rigid=max_deviation_rigid,
- dview=dview,
- splits_rig=None,
- save_movie=True, # whether to save movie in memory mapped format
- new_templ=new_templ, # template to initialize motion correction
- border_nan='copy'
- )
-
- filename_reorder = mc.fname_tot_els
- bord_px = np.ceil(
- np.maximum(np.max(np.abs(mc.x_shifts_els)),
- np.max(np.abs(mc.y_shifts_els)))).astype(np.int)
-
- # create memory mappable file in the right order on the hard drive (C order)
- fname_new = cm.save_memmap(
- filename_reorder,
- base_name='memmap_',
- order='C',
- border_to_0=bord_px,
- dview=dview)
-
- # load memory mappable file
- Yr, dims, T = cm.load_memmap(fname_new)
- Y = Yr.T.reshape((T,) + dims, order='F')
-
-#%% parameters for source extraction and deconvolution
-
- p = 1 # order of the autoregressive system
- K = None # upper bound on number of components per patch, in general None
- gSig = (3, 3) # gaussian width of a 2D gaussian kernel, which approximates a neuron
- gSiz = (13, 13) # average diameter of a neuron, in general 4*gSig+1
- Ain = None # possibility to seed with predetermined binary masks
- merge_thresh = .7 # merging threshold, max correlation allowed
- rf = 40 # half-size of the patches in pixels. e.g., if rf=40, patches are 80x80
- stride_cnmf = 20 # amount of overlap between the patches in pixels
- # (keep it at least large as gSiz, i.e 4 times the neuron size gSig)
- tsub = 2 # downsampling factor in time for initialization,
- # increase if you have memory problems
- ssub = 1 # downsampling factor in space for initialization,
- # increase if you have memory problems
- # you can pass them here as boolean vectors
- low_rank_background = None # None leaves background of each patch intact,
- # True performs global low-rank approximation if gnb>0
- gnb = 0 # number of background components (rank) if positive,
- # else exact ring model with following settings
- # gnb= 0: Return background as b and W
- # gnb=-1: Return full rank background B
- # gnb<-1: Don't return background
- nb_patch = 0 # number of background components (rank) per patch if gnb>0,
- # else it is set automatically
- min_corr = .8 # min peak value from correlation image
- min_pnr = 10 # min peak to noise ration from PNR image
- ssub_B = 2 # additional downsampling factor in space for background
- ring_size_factor = 1.4 # radius of ring is gSiz*ring_size_factor
-
- # parameters for component evaluation
- min_SNR = 3 # adaptive way to set threshold on the transient size
- r_values_min = 0.85 # threshold on space consistency (if you lower more components
- # will be accepted, potentially with worst quality)
-
- opts = params.CNMFParams(dims=dims, fr=fr, decay_time=decay_time,
- method_init='corr_pnr', # use this for 1 photon
- k=K,
- gSig=gSig,
- gSiz=gSiz,
- merge_thresh=merge_thresh,
- p=p,
- tsub=tsub,
- ssub=ssub,
- rf=rf,
- stride=stride_cnmf,
- only_init_patch=True, # set it to True to run CNMF-E
- gnb=gnb,
- nb_patch=nb_patch,
- method_deconvolution='oasis', # could use 'cvxpy' alternatively
- low_rank_background=low_rank_background,
- update_background_components=True, # sometimes setting to False improve the results
- min_corr=min_corr,
- min_pnr=min_pnr,
- normalize_init=False, # just leave as is
- center_psf=True, # leave as is for 1 photon
- ssub_B=ssub_B,
- ring_size_factor=ring_size_factor,
- del_duplicates=True, # whether to remove duplicates from initialization
- border_pix=bord_px) # number of pixels to not consider in the borders)
-
-#%% compute some summary images (correlation and peak to noise)
- # change swap dim if output looks weird, it is a problem with tiffile
- cn_filter, pnr = cm.summary_images.correlation_pnr(Y, gSig=gSig[0], swap_dim=False)
- # inspect the summary images and set the parameters
- inspect_correlation_pnr(cn_filter, pnr)
- # print parameters set above, modify them if necessary based on summary images
- print(min_corr) # min correlation of peak (from correlation image)
- print(min_pnr) # min peak to noise ratio
-
-#%% RUN CNMF ON PATCHES
- cnm = cnmf.CNMF(n_processes=n_processes, dview=dview, Ain=Ain, params=opts)
- cnm.fit(Y)
-
-#%% DISCARD LOW QUALITY COMPONENTS
- cnm.params.set('quality', {'min_SNR': min_SNR,
- 'rval_thr': r_values_min,
- 'use_cnn': False})
- cnm.estimates.evaluate_components(Y, cnm.params, dview=dview)
-
- print(' ***** ')
- print('Number of total components: ', len(cnm.estimates.C))
- print('Number of accepted components: ', len(cnm.estimates.idx_components))
-
-#%% PLOT COMPONENTS
- cnm.dims = dims
- if display_images:
- cnm.estimates.plot_contours(img=cn_filter, idx=cnm.estimates.idx_components)
- cnm.estimates.view_components(Y, idx=cnm.estimates.idx_components)
-
-#%% MOVIES
- if display_images:
- # fully reconstructed movie
- cnm.estimates.play_movie(Y, q_max=99.9, magnification=2,
- include_bck=True, gain_res=10, bpx=bord_px)
- # movie without background
- cnm.estimates.play_movie(Y, q_max=99.9, magnification=2,
- include_bck=False, gain_res=4, bpx=bord_px)
-
-#%% STOP SERVER
- cm.stop_server(dview=dview)
-# This is to mask the differences between running this demo in Spyder
-# versus from the CLI
-if __name__ == "__main__":
- main()
diff --git a/demos/obsolete/caiman_gui.py b/demos/obsolete/caiman_gui.py
deleted file mode 100644
index 7ca340bce..000000000
--- a/demos/obsolete/caiman_gui.py
+++ /dev/null
@@ -1,119 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-"""
-
-author: Pengcheng Zhou
-email: zhoupc1988@gmail.com
-created: 6/16/17
-last edited:
-"""
-
-import os
-from collections import OrderedDict
-from PyQt5.QtWidgets import QFileDialog, QWidget, QLabel, QPushButton, \
- QLineEdit, QGridLayout, QApplication
-
-# --------------------------------CLASSES--------------------------------
-
-
-class FileOpen(QWidget):
-
- def __init__(self, parent=None, pars=None, directory='.'):
- super(FileOpen, self).__init__(parent)
-
- if not pars:
- self.file_name = None
- self.dir_folder = os.path.realpath(directory)
- self.name = None
- self.type = None
- self.fr = 10.0
- self.pixel_size = [1.0]
- else:
- self.file_name = pars.file_name
- if directory != '.':
- self.dir_folder = directory
- else:
- self.dir_folder = pars.dir_folder
- self.name = pars.name
- self.type = pars.type
- self.fr = pars.fr
- self.pixel_size = pars.pixel_size
-
- self.open_button = QPushButton("Open")
- self.open_button.show()
- self.open_button.clicked.connect(self.load_from_file)
-
- self.close_button = QPushButton("Close")
- self.close_button.show()
- self.close_button.clicked.connect(self.done)
-
- # directory
- dir_label = QLabel("Directory")
- self.dir_line = QLineEdit()
-
- # name
- name_label = QLabel("Name")
- self.name_line = QLineEdit()
-
- # type
- type_label = QLabel("Type")
- self.type_line = QLineEdit()
-
- # frame rate
- fs_label = QLabel("Frame rate (Hz)")
- self.fr_line = QLineEdit(str(self.fr))
-
- # pixel size
- pixel_size_label = QLabel("Pixel size (um)")
- self.pixel_size_line = QLineEdit('1')
-
- layout = QGridLayout()
- layout.addWidget(self.open_button, 0, 0)
- layout.addWidget(dir_label, 1, 0)
- layout.addWidget(self.dir_line, 1, 1)
- layout.addWidget(name_label)
- layout.addWidget(self.name_line)
- layout.addWidget(type_label)
- layout.addWidget(self.type_line)
- layout.addWidget(fs_label)
- layout.addWidget(self.fr_line)
- layout.addWidget(pixel_size_label)
- layout.addWidget(self.pixel_size_line)
- layout.addWidget(self.close_button)
-
- self.setLayout(layout)
- self.setWindowTitle("choose video data for processing")
-
- def load_from_file(self):
- self.file_name, _ = QFileDialog.getOpenFileName(QFileDialog(), "open file", self.dir_folder)
- self.dir_folder, file_name = os.path.split(self.file_name)
- self.name, self.type = os.path.splitext(file_name)
- self.dir_line.setText(self.dir_folder)
- self.name_line.setText(self.name)
- self.type_line.setText((self.type[1:]))
-
- def done(self):
- self.fr = float(self.fr_line.text())
- self.pixel_size = [float(i) for i in self.pixel_size_line.text().split(',')]
- self.close()
-
-
-# -------------------------------FUNCTIONS-------------------------------
-
-
-def open_file(directory='.'):
- app = QApplication([])
- file_ui = FileOpen(directory=directory)
- file_ui.show()
- # sys.exit(app.exec_())
- app.exec_()
- file_ui.fr = float(file_ui.fr_line.text())
- temp = file_ui.pixel_size_line.text()
- file_ui.pixel_size = [float(i) for i in temp.split(',')]
-
- file_info = OrderedDict([('file_name', file_ui.file_name), ('dir', file_ui.dir_folder), ('name', file_ui.name),
- ('type', file_ui.type), ('Fs', file_ui.fr), ('pixel_size', file_ui.pixel_size)])
- return file_info
-
-
-#----------------------------------RUN----------------------------------
diff --git a/demos/obsolete/demo_caiman.py b/demos/obsolete/demo_caiman.py
deleted file mode 100755
index 06c005ef8..000000000
--- a/demos/obsolete/demo_caiman.py
+++ /dev/null
@@ -1,250 +0,0 @@
-#!/usr/bin/env python
-
-from __future__ import print_function
-# %%
-from builtins import str
-from builtins import range
-
-import caiman.source_extraction.cnmf.params
-
-try:
- if __IPYTHON__:
- # this is used for debugging purposes only. allows to reload classes when changed
- get_ipython().magic('load_ext autoreload')
- get_ipython().magic('autoreload 2')
-except NameError:
- print('Not launched under iPython')
- pass
-
-import sys
-import numpy as np
-from time import time
-from scipy.sparse import coo_matrix
-import psutil
-import glob
-import os
-import scipy
-from ipyparallel import Client
-# mpl.use('Qt5Agg')
-import pylab as pl
-pl.ion()
-#%%
-import caiman as cm
-from caiman.components_evaluation import evaluate_components
-from caiman.utils.visualization import plot_contours, view_patches_bar
-from caiman.base.rois import extract_binary_masks_blob
-from caiman.source_extraction import cnmf
-#%%
-# backend='SLURM'
-backend = 'local'
-if backend == 'SLURM':
- n_processes = np.int(os.environ.get('SLURM_NPROCS'))
-else:
- # roughly number of cores on your machine minus 1
- n_processes = np.maximum(np.int(psutil.cpu_count()), 1)
-print(('using ' + str(n_processes) + ' processes'))
-#%% start cluster for efficient computation
-single_thread = False
-
-if single_thread:
- dview = None
-else:
- try:
- c.close()
- except:
- print('C was not existing, creating one')
- print("Stopping cluster to avoid unnencessary use of memory....")
- sys.stdout.flush()
- if backend == 'SLURM':
- try:
- stop_server(is_slurm=True)
- except:
- print('Nothing to stop')
- # todocument
- slurm_script = '/mnt/xfs1/home/agiovann/SOFTWARE/Constrained_NMF/SLURM/slurmStart.sh'
- cm.start_server(slurm_script=slurm_script)
- pdir, profile = os.environ['IPPPDIR'], os.environ['IPPPROFILE']
- c = Client(ipython_dir=pdir, profile=profile)
- else:
- cm.stop_server()
- cm.start_server()
- c = Client()
-
- print(('Using ' + str(len(c)) + ' processes'))
- dview = c[:len(c)]
-#%% FOR LOADING ALL TIFF FILES IN A FILE AND SAVING THEM ON A SINGLE MEMORY MAPPABLE FILE
-fnames = []
-base_folder = './example_movies/' # folder containing the demo files
-for file in glob.glob(os.path.join(base_folder, '*.tif')):
- if file.endswith("ie.tif"):
- fnames.append(os.path.abspath(file))
-
-fnames.sort()
-if len(fnames) == 0:
- # todocument raise
- raise Exception("Could not find any tiff file")
-
-print(fnames)
-fnames = fnames
-# %%
-# idx_x=slice(12,500,None)
-# idx_y=slice(12,500,None)
-# idx_xy=(idx_x,idx_y)
-add_to_movie = 0 # of movie too negative need to add a baseline
-downsample_factor = 1 # use .2 or .1 if file is large and you want a quick answer
-idx_xy = None
-base_name = 'Yr'
-name_new = cm.save_memmap_each(fnames, dview=dview, base_name=base_name, resize_fact=(
- 1, 1, downsample_factor), remove_init=0, idx_xy=idx_xy, add_to_movie=add_to_movie)
-# todocument sort
-name_new.sort()
-print(name_new)
-
-#%%
-# todocument return
-fname_new = cm.save_memmap_join(
- name_new, base_name='Yr', n_chunks=12, dview=dview)
-#%%
-Yr, dims, T = cm.load_memmap(fname_new)
-Y = np.reshape(Yr, dims + (T,), order='F')
-#%% visualize correlation image
-Cn = cm.local_correlations(Y)
-pl.imshow(Cn, cmap='gray')
-#%% parameters of experiment
-K = 30 # number of neurons expected per patch
-gSig = [7, 7] # expected half size of neurons
-merge_thresh = 0.8 # merging threshold, max correlation allowed
-p = 2 # order of the autoregressive system
-options = caiman.source_extraction.cnmf.params.CNMFParams(dims, K=K, gSig=gSig, ssub=2, tsub=2, p=p, nb=1, normalize_init=True)
-options['preprocess_params']['noise_method'] = 'mean'
-#%% PREPROCESS DATA AND INITIALIZE COMPONENTS
-t1 = time()
-Yr, sn, g, psx = cm.source_extraction.cnmf.pre_processing.preprocess_data(
- Yr, dview=dview, **options['preprocess_params'])
-print((time() - t1))
-#%%
-t1 = time()
-Atmp, Ctmp, b_in, f_in, center = cm.source_extraction.cnmf.initialization.initialize_components(
- Y, **options['init_params'])
-print((time() - t1))
-#%% Refine manually component by clicking on neurons
-refine_components = False
-if refine_components:
- Ain, Cin = cm.source_extraction.cnmf.utilities.manually_refine_components(
- Y, options['init_params']['gSig'], coo_matrix(Atmp), Ctmp, Cn, thr=0.9)
-else:
- Ain, Cin = Atmp, Ctmp
-#%% plot estimated component
-pl.figure()
-crd = plot_contours(coo_matrix(Ain), Cn)
-pl.show()
-#%% UPDATE SPATIAL COMPONENTS
-# pl.close()
-t1 = time()
-A, b, Cin, f_in = cm.source_extraction.cnmf.spatial.update_spatial_components(
- Yr, Cin, f_in, Ain, sn=sn, dview=dview, dims=dims, **options['spatial_params'])
-t_elSPATIAL = time() - t1
-pl.figure()
-crd = plot_contours(A, Cn)
-
-#%% update_temporal_components
-# pl.close()
-t1 = time()
-# set this to zero for fast updating without deconvolution
-options['temporal_params']['p'] = 0
-C, A, b, f, S, bl, c1, neurons_sn, g, YrA = cm.source_extraction.cnmf.temporal.update_temporal_components(
- Yr, A, b, Cin, f_in, dview=dview, bl=None, c1=None, sn=None, g=None, **options['temporal_params'])
-t_elTEMPORAL = time() - t1
-print(t_elTEMPORAL)
-#%% merge components corresponding to the same neuron
-t1 = time()
-A_m, C_m, nr_m, merged_ROIs, S_m, bl_m, c1_m, sn_m, g_m = cm.source_extraction.cnmf.merging.merge_components(
- Yr, A, b, C, f, S, sn, options['temporal_params'], options['spatial_params'], dview=dview, bl=bl, c1=c1, sn=neurons_sn, g=g, thr=merge_thresh, mx=50, fast_merge=True)
-t_elMERGE = time() - t1
-print(t_elMERGE)
-
-
-#%%
-# plt.figure()
-#crd = cm.source_extraction.cnmf.plot_contours(A_m,Cn,thr=0.9)
-#%% refine spatial and temporal
-# pl.close()
-t1 = time()
-A2, b2, C2, f = cm.source_extraction.cnmf.spatial.update_spatial_components(
- Yr, C_m, f, A_m, sn=sn, dview=dview, dims=dims, **options['spatial_params'])
-# set it back to original value to perform full deconvolution
-options['temporal_params']['p'] = p
-C2, A2, b2, f2, S2, bl2, c12, neurons_sn2, g21, YrA = cm.source_extraction.cnmf.temporal.update_temporal_components(
- Yr, A2, b2, C2, f, dview=dview, bl=None, c1=None, sn=None, g=None, **options['temporal_params'])
-print((time() - t1))
-
-pl.figure()
-crd = plot_contours(A2.tocsc()[:, :], Cn, thr=0.9)
-
-#%%
-#%%
-final_frate = 10
-
-Npeaks = 10
-traces = C + YrA
-# traces_a=traces-scipy.ndimage.percentile_filter(traces,8,size=[1,np.shape(traces)[-1]/5])
-# traces_b=np.diff(traces,axis=1)
-fitness_raw, fitness_delta, erfc_raw, erfc_delta, r_values, significant_samples = \
- evaluate_components(Y, traces, A, C, b, f, final_frate, remove_baseline=True,
- N=5, robust_std=False, Athresh=0.1, Npeaks=Npeaks, thresh_C=0.3)
-
-idx_components_r = np.where(r_values >= .85)[0]
-idx_components_raw = np.where(fitness_raw < -40)[0]
-idx_components_delta = np.where(fitness_delta < -40)[0]
-
-
-#min_radius = gSig[0] - 2
-# masks_ws, idx_blobs, idx_non_blobs = extract_binary_masks_blob(
-# A.tocsc(), min_radius, dims, num_std_threshold=1,
-# minCircularity=0.7, minInertiaRatio=0.2, minConvexity=.5)
-
-idx_components = np.union1d(idx_components_r, idx_components_raw)
-idx_components = np.union1d(idx_components, idx_components_delta)
-#idx_blobs = np.intersect1d(idx_components, idx_blobs)
-idx_components_bad = np.setdiff1d(list(range(len(traces))), idx_components)
-
-print(' ***** ')
-print((len(traces)))
-print((len(idx_components)))
-# print((len(idx_blobs)))
-
-
-min_radius = gSig[0] - 2
-masks_ws, idx_blobs, idx_non_blobs = extract_binary_masks_blob(
- A2.tocsc(), min_radius, dims, num_std_threshold=1,
- minCircularity=0.6, minInertiaRatio=0.2, minConvexity=.8)
-
-
-idx_components = np.union1d(idx_components_r, idx_components_raw)
-idx_components = np.union1d(idx_components, idx_components_delta)
-idx_blobs = np.intersect1d(idx_components, idx_blobs)
-idx_components_bad = np.setdiff1d(list(range(len(traces))), idx_components)
-
-print(' ***** ')
-print((len(traces)))
-print((len(idx_components)))
-print((len(idx_blobs)))
-#%% visualize components
-# pl.figure();
-pl.subplot(1, 3, 1)
-crd = plot_contours(A2.tocsc()[:, idx_components], Cn, thr=0.9)
-pl.subplot(1, 3, 2)
-crd = plot_contours(A2.tocsc()[:, idx_blobs], Cn, thr=0.9)
-pl.subplot(1, 3, 3)
-crd = plot_contours(A2.tocsc()[:, idx_components_bad], Cn, thr=0.9)
-#%%
-view_patches_bar(Yr, scipy.sparse.coo_matrix(A2.tocsc()[
- :, idx_components]), C2[idx_components, :], b2, f2, dims[0], dims[1], YrA=YrA[idx_components, :], img=Cn)
-#%%
-view_patches_bar(Yr, scipy.sparse.coo_matrix(A2.tocsc()[
- :, idx_components_bad]), C2[idx_components_bad, :], b2, f2, dims[0], dims[1], YrA=YrA[idx_components_bad, :], img=Cn)
-#%% STOP CLUSTER
-pl.close()
-if not single_thread:
- c.close()
- cm.stop_server()
diff --git a/demos/obsolete/demo_caiman_cnmf.ipynb b/demos/obsolete/demo_caiman_cnmf.ipynb
deleted file mode 100755
index 1e0b9da39..000000000
--- a/demos/obsolete/demo_caiman_cnmf.ipynb
+++ /dev/null
@@ -1,684 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {
- "collapsed": true
- },
- "source": [
- "
Here we will be focusing more on the cnmf part and its main functions \n",
- " "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "scrolled": true
- },
- "outputs": [],
- "source": [
- "try:\n",
- " if __IPYTHON__:\n",
- " # this is used for debugging purposes only. allows to reload classes when changed\n",
- " get_ipython().magic(u'load_ext autoreload')\n",
- " get_ipython().magic(u'autoreload 2')\n",
- "except NameError: \n",
- " print('Not IPYTHON') \n",
- " pass\n",
- "\n",
- "import sys\n",
- "import numpy as np\n",
- "from time import time\n",
- "from scipy.sparse import coo_matrix\n",
- "import psutil\n",
- "import glob\n",
- "import os\n",
- "import scipy\n",
- "from ipyparallel import Client\n",
- "import pylab as pl\n",
- "import caiman as cm\n",
- "from caiman.components_evaluation import evaluate_components\n",
- "from caiman.utils.visualization import plot_contours,view_patches_bar,nb_plot_contour,nb_view_patches\n",
- "from caiman.base.rois import extract_binary_masks_blob\n",
- "import caiman.source_extraction.cnmf as cnmf\n",
- "from caiman.utils.utils import download_demo"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "scrolled": true
- },
- "outputs": [],
- "source": [
- "#import bokeh.plotting as bp\n",
- "import bokeh.plotting as bpl\n",
- "try:\n",
- " from bokeh.io import vform, hplot\n",
- "except:\n",
- " # newer version of bokeh does not use vform & hplot, instead uses column & row\n",
- " from bokeh.layouts import column as vform\n",
- " from bokeh.layouts import row as hplot\n",
- "from bokeh.models import CustomJS, ColumnDataSource, Slider\n",
- "from IPython.display import display, clear_output\n",
- "import matplotlib as mpl\n",
- "import matplotlib.cm as cmap\n",
- "import numpy as np\n",
- "\n",
- "bpl.output_notebook()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- " Using the workload manager SLURM \n",
- "to have an extensive use of the machine. \n",
- "\n",
- " we want to operate this the faster possible. Thanks to the segmentation of the video in patches we can parallelize ou algorithm. We are using python integrated methods to get this parallelization to work on one machine as well as on clusters of machines
\n",
- "\n",
- " This is to be used when working with a cluster of machines : \n",
- " This will put dispatch and manage the workload gave by the algorithm : \n",
- " \n",
- " \n",
- " learn more : https://slurm.schedmd.com/overview.html
"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "scrolled": true
- },
- "outputs": [],
- "source": [
- "# frame rate in Hz\n",
- "final_frate=10 \n",
- "#backend='SLURM'\n",
- "backend='local'\n",
- "if backend == 'SLURM':\n",
- " n_processes = np.int(os.environ.get('SLURM_NPROCS'))\n",
- "else:\n",
- " # roughly number of cores on your machine minus 1\n",
- " n_processes = np.maximum(np.int(psutil.cpu_count()),1) \n",
- "print('using ' + str(n_processes) + ' processes')\n",
- "#%% start cluster for efficient computation\n",
- "single_thread=False\n",
- "\n",
- "if single_thread:\n",
- " dview=None\n",
- "else: \n",
- " try:\n",
- " c.close()\n",
- " except:\n",
- " print('C was not existing, creating one')\n",
- " print(\"Stopping cluster to avoid unnencessary use of memory....\")\n",
- " sys.stdout.flush() \n",
- " if backend == 'SLURM':\n",
- " try:\n",
- " cm.stop_server(is_slurm=True)\n",
- " except:\n",
- " print('Nothing to stop')\n",
- " slurm_script='/mnt/xfs1/home/agiovann/SOFTWARE/Constrained_NMF/SLURM/slurmStart.sh'\n",
- " cm.start_server(slurm_script=slurm_script)\n",
- " pdir, profile = os.environ['IPPPDIR'], os.environ['IPPPROFILE']\n",
- " c = Client(ipython_dir=pdir, profile=profile) \n",
- " else:\n",
- " cm.stop_server()\n",
- " cm.start_server() \n",
- " c=Client()\n",
- "\n",
- " print('Using '+ str(len(c)) + ' processes')\n",
- " dview=c[:len(c)]"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- " We can see here that the number of processes are the number of core your computer possess. Your computer can be seen as a node that possess X cores "
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- " Memory mapping files in F order \n",
- " see : http://localhost:8888/notebooks/CaImAn/demo_caiman_pipeline.ipynb
\n",
- " We want the parallel processes to access and our video matrix without having it in memory and duplicating it, as explained already on the demo_pipeline notebook
\n",
- " "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "#%% FOR LOADING ALL TIFF FILES IN A FILE AND SAVING THEM ON A SINGLE MEMORY MAPPABLE FILE\n",
- "fnames=['demoMovieJ.tif']\n",
- "base_folder='./example_movies/' # folder containing the demo files\n",
- "# %% download movie if not there \n",
- "if fnames[0] in ['Sue_2x_3000_40_-46.tif','demoMovieJ.tif']:\n",
- " download_demo(fnames[0])\n",
- " fnames = [os.path.join('example_movies',fnames[0])]\n",
- "m_orig = cm.load_movie_chain(fnames[:1])"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "scrolled": true
- },
- "outputs": [],
- "source": [
- "downsample_factor=1 # use .2 or .1 if file is large and you want a quick answer\n",
- "final_frate=final_frate*downsample_factor\n",
- "name_new=cm.save_memmap_each(fnames\n",
- " , dview=dview,base_name='Yr', resize_fact=(1, 1, downsample_factor)\n",
- " , remove_init=0,idx_xy=None )\n",
- "name_new.sort()\n",
- "fname_new=cm.save_memmap_join(name_new,base_name='Yr', n_chunks=12, dview=dview)\n",
- "print(fnames)\n",
- "print(fname_new)\n",
- "print (\"\\n we can see we are loading the file (line1) into a memorymapped object (line2)\")"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "the correlation image \n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "scrolled": true
- },
- "outputs": [],
- "source": [
- "Yr,dims,T=cm.load_memmap(fname_new)\n",
- "Y=np.reshape(Yr,dims+(T,),order='F')\n",
- "#%% visualize correlation image\n",
- "Cn = cm.local_correlations(Y)\n",
- "pl.imshow(Cn,cmap='gray') \n",
- "pl.show()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- " CNMFSetParms define Dictionaries of CNMF parameters.\n",
- " Any parameter that is not set get a default value specified.\n",
- " \n",
- " each dictionnary is used by different part of the CNMF process : \n",
- " - init_paramters\n",
- " - pre_processing_parameters\n",
- " - patch_parameters\n",
- " - spatial_parameters\n",
- " - temporal_parameters\n",
- " "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "collapsed": true
- },
- "outputs": [],
- "source": [
- "K=30 # number of neurons expected per patch\n",
- "gSig=[6,6] # expected half size of neurons\n",
- "merge_thresh=0.8 # merging threshold, max correlation allowed\n",
- "p=2 #order of the autoregressive system\n",
- "options = cnmf.utilities.CNMFSetParms(Y\n",
- " ,n_processes,p=p,gSig=gSig,K=K,ssub=2,tsub=2, normalize_init=True)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- " Preprocessing of the datas and initialization of the components \n",
- " here, we compute the mean of the noise spectral density \n",
- " then, we initialize each component (components that have been spatially filter using a gaussian kernel) with a greedy algorithm \n",
- " we then operate a rank1 NMF on those ROIs using the HALS algorithm \n",
- " see More : NMF AND ROI :http://www.cell.com/neuron/fulltext/S0896-6273(15)01084-3
\n",
- "Simultaneous Denoising, Deconvolution, and Demixing of Calcium Imaging Data by Eftychios A. Pnevmatikakis & al. "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "scrolled": false
- },
- "outputs": [],
- "source": [
- "Yr,sn,g,psx = cnmf.pre_processing.preprocess_data(Yr\n",
- " ,dview=dview\n",
- " ,n_pixels_per_process=100, noise_range = [0.25,0.5]\n",
- " ,noise_method = 'logmexp', compute_g=False, p = 2,\n",
- " lags = 5, include_noise = False, pixels = None\n",
- " ,max_num_samples_fft=3000, check_nan = True)\n",
- "\n",
- "Ain, Cin, b_in, f_in, center=cnmf.initialization.initialize_components(Y\n",
- " ,K=30, gSig=[5, 5], gSiz=None, ssub=1, tsub=1, nIter=5, maxIter=5, nb=1\n",
- " , use_hals=False, normalize_init=True, img=None, method='greedy_roi'\n",
- " , max_iter_snmf=500, alpha_snmf=10e2, sigma_smooth_snmf=(.5, .5, .5)\n",
- " , perc_baseline_snmf=20)\n",
- "p1=nb_plot_contour(Cn,Ain,dims[0],dims[1],thr=0.9,face_color=None\n",
- " , line_color='black',alpha=0.4,line_width=2)\n",
- "bpl.show(p1)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- " HALS \n",
- "we want to minimize\n",
- " \n",
- "updating parameters\n",
- " \n",
- "HALS : (Keigo Kimura et al.) http://proceedings.mlr.press/v39/kimura14.pdf
\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "scrolled": false
- },
- "outputs": [],
- "source": [
- "Ain, Cin, b_in, f_in = cnmf.initialization.hals(Y, Ain, Cin, b_in, f_in, maxIter=5)\n",
- "p1=nb_plot_contour(Cn,Ain,dims[0],dims[1],thr=0.9,face_color=None\n",
- " , line_color='black',alpha=0.4,line_width=2)\n",
- "bpl.show(p1)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- " CNMF process \n",
- "\n",
- "*** We are considering the video as a matrix called Y of dimension height x widht x frames ***\n",
- "\n",
- " we now want to find A, C and B such that Y = A x C + B\n",
- " \n",
- " B being the Background, composed of its spatial b and temporal f component\n",
- " A being the spatial component of the neurons (also seen as their shape)\n",
- " C being the temporal component of the neurons (also seen as their calcium activity or traces)\n",
- "\n"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- " Update spatial \n",
- "\n",
- "** will consider C as fixed and try to update A. **\n",
- "\n",
- " the process will be the following : \n",
- " \n",
- " - intialization of each parameters \n",
- " - testing of the input values\n",
- " \n",
- " - finding relevant pixels in that should belong to the neuron using either an iterative structure or an ellipse to look around the center of mass of the neuron ( cm found in the initialization )\n",
- " - this will be define a first shape of the neuron \n",
- " - /!\\ pixels are usually unlinked\n",
- " \n",
- " - computing the distance indicator (a map of the distances of each relevant pixels to the center of mass of the neuron)\n",
- " \n",
- " - memory mapping the matrices C and Y (info before)\n",
- " \n",
- " - updating the components in parallel : \n",
- " - using ipyparralel\n",
- " - solving this problem for each pixel of the component\n",
- " $$ arg\\min_{A_i,B_i}\\sum A_i $$\n",
- " subject to\n",
- " $$|| Y_i - A_i\\times C + b_i\\times f || <= std_{noise}(i)\\times \\sqrt(T)$$\n",
- " - using the lasso lars method from scikit learn toolbox\n",
- " https://en.wikipedia.org/wiki/Least-angle_regression, \n",
- " https://en.wikipedia.org/wiki/Lasso_(statistics), \n",
- " http://scikit-learn.org/stable/modules/linear_model.html#lars-lasso\n",
- " \n",
- " \n",
- " - then, the newly refined components are thresholded (the C of the CNMF, one of the constrained here is that the matrix needs to be sparse) :\n",
- " \n",
- " - first by applicating a median filtering https://en.wikipedia.org/wiki/Median_filter\n",
- " - then by thresholding using a normalized user defined value \n",
- " - continuing with a morphological closing of the components, using openCv functions https://www.mathworks.com/help/images/ref/imclose.html (the matlab version)\n",
- " - we remove the unconnected pixels (we keep the large connected components )\n",
- " \n",
- " \n",
- " - finnaly we compute the residuals (also called the background) which is computed as B=Y-AC\n",
- " \n",
- " \n",
- " "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "options['spatial_params']['n_pixels_per_process'] = 2000"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "scrolled": true
- },
- "outputs": [],
- "source": [
- "A,b,Cin,f_in = cnmf.spatial.update_spatial_components(Yr, Cin, f_in, Ain, sn=sn, dview=dview,**options['spatial_params'])"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "scrolled": false
- },
- "outputs": [],
- "source": [
- "p1=nb_plot_contour(Cn,A.todense(),dims[0],dims[1],thr=0.9,face_color=None,\n",
- " line_color='black',alpha=0.4,line_width=2)\n",
- "bpl.show(p1)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- " Update temporal \n",
- "\n",
- "** Will consider A as fixed and try to update C. **\n",
- "\n",
- " the process will be the following : \n",
- " \n",
- " - Intialization of each parameters \n",
- " - Testing of the input values\n",
- " \n",
- " - Generating residuals s.t. $$Yres_A = YA - (A^T AC)^T$$\n",
- " \n",
- " - Creating groups of components that can be processed in parallel\n",
- " - Ones that are composed of not overlapping components\n",
- " - Using a simple greedy method\n",
- " \n",
- " - Updating Calcium traces ( C ) \n",
- " - Using Oasis. which will deconvolve the spikes of each neurons from the Calcium traces matrix C. learn more : (Friedrich & al) http://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1005423\n",
- " see the demo here : https://github.com/j-friedrich/OASIS/blob/master/examples/Demo.ipynb\n",
- " - To infer the true shape of the calcium traces using an autoregressive framework\n",
- " - To infer the most likely spike train ( also called particular events). It will find the probability of a spike train according to the mean and std of the trace. \n",
- " - If it is superior to a threshold it will be defined as a particular event/neural spike\n",
- " \n",
- " - This will give us a matrix which is itself constrained ( C from CNMF ) \n",
- " - This is done in parallel using ipyparallel. \n",
- " - We finally update the background"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "options['temporal_params']['block_size'] = 2000"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "scrolled": false
- },
- "outputs": [],
- "source": [
- "options['temporal_params']['p'] = 0 # fast updating without deconvolution\n",
- "C,A,b,f,S,bl,c1,neurons_sn,g,YrA,lam = cnmf.temporal.update_temporal_components(\n",
- " Yr,A,b,Cin,f_in,bl=None,c1=None,sn=None,g=None,**options['temporal_params']) \n",
- "clear_output(wait=True)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- " Merging components \n",
- "\n",
- "**merge the components that overlaps and have a high temporal correlation **\n",
- "\n",
- " the process will be the following : \n",
- " \n",
- " - intialization of each parameters \n",
- " - testing of the input values\n",
- " \n",
- " - find a graph of overlapping components\n",
- " - we look for connected ones\n",
- " - we keep the one that are \"connected enough\" (above a threshold)\n",
- " \n",
- " \n",
- " - On Each groups : \n",
- " - We normalize the components to be able to compare them\n",
- " - We sum them together\n",
- " - we process a rank one NMF\n",
- " - we compute the traces (deconvolution)\n",
- " - We replace the neurons by the merged one\n",
- " "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "scrolled": true
- },
- "outputs": [],
- "source": [
- "A_m,C_m,nr_m,merged_ROIs,S_m,bl_m,c1_m,sn_m,g_m=cnmf.merging.merge_components(\n",
- " Yr,A,b,C,f,S,sn,options['temporal_params'], options['spatial_params'],\n",
- " dview=dview, bl=bl, c1=c1, sn=neurons_sn, g=g, thr=merge_thresh,\n",
- " mx=50, fast_merge = True)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# A refining step\n",
- "refine spatial and temporal components"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "scrolled": true
- },
- "outputs": [],
- "source": [
- "A2,b2,C2,f = cnmf.spatial.update_spatial_components(Yr, C_m, f, A_m,\n",
- " sn=sn,dview=dview, **options['spatial_params'])\n",
- "options['temporal_params']['p'] = p # set it back to perform full deconvolution\n",
- "\n",
- "C2,A2,b2,f2,S2,bl2,c12,neurons_sn2,g21,YrA, lam = cnmf.temporal.update_temporal_components(\n",
- " Yr,A2,b2,C2,f,dview=dview, bl=None,c1=None,sn=None,g=None,**options['temporal_params'])\n",
- "clear_output(wait=True)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "DISCARD LOW QUALITY COMPONENT \n",
- " The patch dubdivision creates several spurious components that are not neurons
\n",
- "We select the components according to criteria examining spatial and temporal components
\n",
- " \n",
- "\n",
- " Temporal components, for each trace:
\n",
- "\n",
- " compute the robust mode, corresponding to the baseline value \n",
- " use the values under the mode to estimate noise variance \n",
- " compute the probability of having large transients given the noise distribution estimated \n",
- " Threshold on this probability s.t. some of the component are discarded because lacking large enough positive transients \n",
- "\n",
- " Spatial components, for each components:
\n",
- "\n",
- " average the frames in the moveie where the neurons is active (from temporal component), this provides a nice image of the neuron \n",
- " compare this image with the corresponding spatial component (Person's correlation coefficient) \n",
- " threshold the correlation coefficient \n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "scrolled": true
- },
- "outputs": [],
- "source": [
- "#evaluation\n",
- "fitness_raw, fitness_delta, erfc_raw,erfc_delta, r_values, significant_samples = evaluate_components(Y, C2+YrA, A2, C2, b2, f2, final_frate,\n",
- " remove_baseline=True,N=5, robust_std=False,\n",
- " Athresh=0.1, Npeaks=10, thresh_C=0.3)\n",
- "#different thresholding ( needs to pass at least one of them )\n",
- "traces = C2 + YrA\n",
- "idx_components_r=np.where(r_values>=.6)[0]\n",
- "idx_components_raw=np.where(fitness_raw<-60)[0] \n",
- "idx_components_delta=np.where(fitness_delta<-20)[0] \n",
- "\n",
- "#merging to have all that have passed at least one threshold.\n",
- "idx_components=np.union1d(idx_components_r,idx_components_raw)\n",
- "idx_components=np.union1d(idx_components,idx_components_delta) \n",
- "#finding the bad components\n",
- "idx_components_bad=np.setdiff1d(range(len(traces)),idx_components)\n",
- "\n",
- "clear_output(wait=True)\n",
- "print(' ***** ')\n",
- "print(len(traces))\n",
- "print(len(idx_components))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "scrolled": true
- },
- "outputs": [],
- "source": [
- "fg=pl.figure(figsize=(12,20))\n",
- "pl.subplot(1,2,1)\n",
- "crd = plot_contours(A2.tocsc()[:,idx_components],Cn,thr=0.9)\n",
- "\n",
- "pl.subplot(1,2,2)\n",
- "crd = plot_contours(A2.tocsc()[:,idx_components_bad],Cn,thr=0.9)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "scrolled": false
- },
- "outputs": [],
- "source": [
- "p2=nb_plot_contour(Cn,A2.tocsc()[:,idx_components].todense(),dims[0],dims[1],thr=0.9,face_color='purple', line_color='black',alpha=0.3,line_width=2)\n",
- "bpl.show(p2)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# accepted components"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "scrolled": true
- },
- "outputs": [],
- "source": [
- "discard_traces_fluo=nb_view_patches(Yr,A2.tocsc()[:,idx_components],C2[idx_components],b2,f2,dims[0],dims[1],thr = 0.8,image_neurons=Cn, denoised_color='red')"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# discarded components"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "scrolled": true
- },
- "outputs": [],
- "source": [
- "discard_traces_fluo=nb_view_patches(Yr,A2.tocsc()[:,idx_components_bad],C2[idx_components_bad],b2,f2,dims[0],dims[1],thr = 0.8,image_neurons=Cn, denoised_color='red')"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "scrolled": true
- },
- "outputs": [],
- "source": [
- "cm.stop_server()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "collapsed": true
- },
- "outputs": [],
- "source": []
- }
- ],
- "metadata": {
- "anaconda-cloud": {},
- "kernelspec": {
- "display_name": "Python 3",
- "language": "python",
- "name": "python3"
- },
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.5.4"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 1
-}
diff --git a/demos/obsolete/demo_caiman_cnmf.py b/demos/obsolete/demo_caiman_cnmf.py
deleted file mode 100755
index 7bdf01c5e..000000000
--- a/demos/obsolete/demo_caiman_cnmf.py
+++ /dev/null
@@ -1,260 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-"""
-Created on Wed Feb 24 18:39:45 2016
-
-@author: Andrea Giovannucci
-
-For explanation consult at https://github.com/agiovann/Constrained_NMF/releases/download/v0.4-alpha/Patch_demo.zip
-and https://github.com/agiovann/Constrained_NMF
-"""
-
-from __future__ import print_function
-from builtins import str
-from builtins import range
-
-try:
- if __IPYTHON__:
- print('Debugging!')
- get_ipython().magic('load_ext autoreload')
- get_ipython().magic('autoreload 2')
-except NameError:
- print('Not launched under iPython')
-
-import numpy as np
-import glob
-import os
-import scipy
-from ipyparallel import Client
-# mpl.use('Qt5Agg')
-import pylab as pl
-pl.ion()
-#%%
-
-import caiman as cm
-from caiman.source_extraction.cnmf import cnmf as cnmf
-from caiman.source_extraction.cnmf.utilities import extract_DF_F
-from caiman.components_evaluation import evaluate_components
-from caiman.utils.visualization import plot_contours, view_patches_bar
-from caiman.utils.utils import download_demo
-from caiman.cluster import setup_cluster
-# %% RUN ANALYSIS
-c, dview, n_processes = setup_cluster(
- backend='local', n_processes=None, single_thread=False)
-#%%
-is_patches = True
-is_dendrites = False
-
-if is_dendrites == True:
- # THIS METHOd CAN GIVE POSSIBLY INCONSISTENT RESULTS ON SOMAS WHEN NOT USED WITH PATCHES
- init_method = 'sparse_nmf'
- alpha_snmf = 10e1 # this controls sparsity
-else:
- init_method = 'greedy_roi'
- alpha_snmf = None # 10e2 # this controls sparsity
-
-#%% FOR LOADING ALL TIFF FILES IN A FILE AND SAVING THEM ON A SINGLE MEMORY MAPPABLE FILE
-fnames = ['demoMovieJ.tif']
-base_folder = './example_movies/' # folder containing the demo files
-
-download_demo(fnames[0])
-fnames = [os.path.abspath(os.path.join(base_folder, fnames[0]))]
-# TODO: todocument
-m_orig = cm.load_movie_chain(fnames[:1])
-print(fnames)
-fnames = fnames
-#%%
-# idx_x=slice(12,500,None)
-# idx_y=slice(12,500,None)
-# idx_xy=(idx_x,idx_y)
-
-add_to_movie = 300 # the movie must be positive!!!
-downsample_factor = 1 # use .2 or .1 if file is large and you want a quick answer
-idx_xy = None
-base_name = 'Yr'
-name_new = cm.save_memmap_each(fnames, dview=dview, base_name=base_name, resize_fact=(
- 1, 1, downsample_factor), remove_init=0, idx_xy=idx_xy, add_to_movie=add_to_movie)
-name_new.sort()
-print(name_new)
-#%%
-if len(name_new) > 1:
- fname_new = cm.save_memmap_join(
- name_new, base_name='Yr', n_chunks=12, dview=dview)
-else:
- print('One file only, not saving!')
- fname_new = name_new[0]
-#%%
-# fname_new='Yr_d1_501_d2_398_d3_1_order_F_frames_369_.mmap'
-Yr, dims, T = cm.load_memmap(fname_new)
-d1, d2 = dims
-images = np.reshape(Yr.T, [T] + list(dims), order='F')
-Y = np.reshape(Yr, dims + (T,), order='F')
-#%%
-if np.min(images) < 0:
- raise Exception('Movie too negative, add_to_movie should be larger')
-if np.sum(np.isnan(images)) > 0:
- raise Exception('Movie contains nan! You did not remove enough borders')
-#%%
-Cn = cm.local_correlations(Y[:, :, :3000])
-pl.imshow(Cn, cmap='gray')
-
-#%%
-if not is_patches:
- K = 35 # number of neurons expected per patch
- gSig = [7, 7] # expected half size of neurons
- merge_thresh = 0.8 # merging threshold, max correlation allowed
- p = 2 # order of the autoregressive system
- cnm = cnmf.CNMF(n_processes, method_init=init_method, k=K, gSig=gSig, merge_thresh=merge_thresh,
- p=p, dview=dview, Ain=None, method_deconvolution='oasis', skip_refinement=False)
- cnm = cnm.fit(images)
- crd = plot_contours(cnm.A, Cn, thr=0.9)
- C_dff = extract_DF_F(Yr, cnm.A, cnm.C, cnm.bl,
- quantileMin=8, frames_window=200, dview=dview)
- pl.figure()
- pl.plot(C_dff.T)
-else:
- rf = 14 # half-size of the patches in pixels. rf=25, patches are 50x50
- stride = 6 # amounpl.it of overlap between the patches in pixels
- K = 6 # number of neurons expected per patch
- gSig = [6, 6] # expected half size of neurons
- merge_thresh = 0.8 # merging threshold, max correlation allowed
- p = 1 # order of the autoregressive system
- save_results = False
-
- cnm = cnmf.CNMF(n_processes, k=K, gSig=gSig, merge_thresh=0.8, p=0, dview=dview, Ain=None, rf=rf, stride=stride, memory_fact=1,
- method_init=init_method, alpha_snmf=alpha_snmf, only_init_patch=True, gnb=2, method_deconvolution='oasis', low_rank_background=True)
- cnm = cnm.fit(images)
-
- A_tot = cnm.A
- C_tot = cnm.C
- YrA_tot = cnm.YrA
- b_tot = cnm.b
- f_tot = cnm.f
- sn_tot = cnm.sn
-
- print(('Number of components:' + str(A_tot.shape[-1])))
- pl.figure()
- crd = plot_contours(A_tot, Cn, thr=0.9)
- final_frate = 10 # approx final rate (after eventual downsampling )
- Npeaks = 10
- traces = C_tot + YrA_tot
- # traces_a=traces-scipy.ndimage.percentile_filter(traces,8,size=[1,np.shape(traces)[-1]/5])
- # traces_b=np.diff(traces,axis=1)
- fitness_raw, fitness_delta, erfc_raw, erfc_delta, r_values, significant_samples = evaluate_components(
- Y, traces, A_tot, C_tot, b_tot, f_tot, final_frate, remove_baseline=True, N=5, robust_std=False, Athresh=0.1, Npeaks=Npeaks, thresh_C=0.3)
-
- idx_components_r = np.where(r_values >= .5)[0]
- idx_components_raw = np.where(fitness_raw < -40)[0]
- idx_components_delta = np.where(fitness_delta < -20)[0]
-
- idx_components = np.union1d(idx_components_r, idx_components_raw)
- idx_components = np.union1d(idx_components, idx_components_delta)
- idx_components_bad = np.setdiff1d(list(range(len(traces))), idx_components)
-
- print(('Keeping ' + str(len(idx_components)) +
- ' and discarding ' + str(len(idx_components_bad))))
- pl.figure()
- crd = plot_contours(A_tot.tocsc()[:, idx_components], Cn, thr=0.9)
- A_tot = A_tot.tocsc()[:, idx_components]
- C_tot = C_tot[idx_components]
- save_results = True
- if save_results:
- np.savez('results_analysis_patch.npz', A_tot=A_tot, C_tot=C_tot,
- YrA_tot=YrA_tot, sn_tot=sn_tot, d1=d1, d2=d2, b_tot=b_tot, f=f_tot)
-
- cnm = cnmf.CNMF(n_processes, k=A_tot.shape, gSig=gSig, merge_thresh=merge_thresh, p=p, dview=dview, Ain=A_tot, Cin=C_tot, b_in=b_tot,
- f_in=f_tot, rf=None, stride=None, method_deconvolution='oasis', gnb=2, low_rank_background=True)
- cnm = cnm.fit(images)
-
-#%
-A, C, b, f, YrA, sn = cnm.A, cnm.C, cnm.b, cnm.f, cnm.YrA, cnm.sn
-
-#%%
-final_frate = 10
-
-Npeaks = 10
-traces = C + YrA
-
-idx_components, idx_components_bad, fitness_raw, fitness_delta, r_values = cm.components_evaluation.estimate_components_quality(traces, Y, A, C, b, f, final_frate=final_frate,
- Npeaks=10, r_values_min=.85,
- fitness_min=-30, fitness_delta_min=-30, return_all=True, N=5,
- remove_baseline=True, dview=dview, robust_std=False, Athresh=0.1, thresh_C=0.3, num_traces_per_group=20)
-#%%
-from caiman.components_evaluation import evaluate_components_CNN
-predictions, final_crops = evaluate_components_CNN(
- A, dims, gSig, model_name='model/cnn_model')
-#%%
-threshold = .95
-from caiman.utils.visualization import matrixMontage
-pl.figure()
-matrixMontage(np.squeeze(
- final_crops[np.where(predictions[:, 1] >= threshold)[0]]))
-pl.figure()
-matrixMontage(np.squeeze(
- final_crops[np.where(predictions[:, 0] >= threshold)[0]]))
-#%%
-thresh = .95
-idx_components_cnn = np.where(predictions[:, 1] >= thresh)[0]
-
-print(' ***** ')
-print((len(final_crops)))
-print((len(idx_components_cnn)))
-# print((len(idx_blobs)))
-#%
-idx_components_r = np.where((r_values >= .99))[0]
-idx_components_raw = np.where(fitness_raw < -60)[0]
-idx_components_delta = np.where(fitness_delta < -60)[0]
-
-bad_comps = np.where((r_values <= .2) | (fitness_raw >= -4)
- | (predictions[:, 1] <= .05))[0]
-
-#idx_and_condition_1 = np.where((r_values >= .65) & ((fitness_raw < -20) | (fitness_delta < -20)) )[0]
-
-idx_components = np.union1d(idx_components_r, idx_components_raw)
-idx_components = np.union1d(idx_components, idx_components_delta)
-idx_components = np.union1d(idx_components, idx_components_cnn)
-idx_components = np.setdiff1d(idx_components, bad_comps)
-#idx_components = np.intersect1d(idx_components,idx_size_neuro)
-#idx_components = np.union1d(idx_components, idx_and_condition_1)
-#idx_components = np.union1d(idx_components, idx_and_condition_2)
-
-#idx_blobs = np.intersect1d(idx_components, idx_blobs)
-#idx_components = idx_components_cnn
-idx_components_bad = np.setdiff1d(list(range(len(r_values))), idx_components)
-
-
-print(' ***** ')
-print((len(r_values)))
-print((len(idx_components)))
-#%%
-save_results = True
-if save_results:
- np.savez(os.path.join(os.path.split(fname_new)[0], 'results_analysis.npz'), Cn=Cn, A=A.todense(
- ), C=C, b=b, f=f, YrA=YrA, sn=sn, d1=d1, d2=d2, idx_components=idx_components, idx_components_bad=idx_components_bad)
-
-#%% visualize components
-# pl.figure();
-pl.subplot(1, 2, 1)
-crd = plot_contours(A.tocsc()[:, idx_components], Cn, thr=0.9)
-#pl.subplot(1, 3, 2)
-#crd = plot_contours(A.tocsc()[:, idx_blobs], Cn, thr=0.9)
-pl.subplot(1, 2, 2)
-crd = plot_contours(A.tocsc()[:, idx_components_bad], Cn, thr=0.9)
-#%%
-view_patches_bar(Yr, scipy.sparse.coo_matrix(A.tocsc()[:, idx_components]), C[
- idx_components, :], b, f, dims[0], dims[1], YrA=YrA[idx_components, :], img=Cn)
-#%%
-view_patches_bar(Yr, scipy.sparse.coo_matrix(A.tocsc()[:, idx_components_bad]), C[
- idx_components_bad, :], b, f, dims[0], dims[1], YrA=YrA[idx_components_bad, :], img=Cn)
-#%%
-C_dff = extract_DF_F(Yr, A.tocsc()[:, idx_components], C[idx_components, :],
- cnm.bl[idx_components], quantileMin=8, frames_window=200, dview=dview)
-pl.plot(C_dff.T)
-
-#%% STOP CLUSTER and clean up log files
-cm.stop_server()
-
-log_files = glob.glob('*_LOG_*')
-for log_file in log_files:
- os.remove(log_file)
diff --git a/demos/obsolete/demo_caiman_cnmf_JAN.py b/demos/obsolete/demo_caiman_cnmf_JAN.py
deleted file mode 100644
index 8db79dc4a..000000000
--- a/demos/obsolete/demo_caiman_cnmf_JAN.py
+++ /dev/null
@@ -1,304 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-"""
-Created on Wed Feb 24 18:39:45 2016
-
-@author: Andrea Giovannucci
-
-For explanation consult at https://github.com/agiovann/Constrained_NMF/releases/download/v0.4-alpha/Patch_demo.zip
-and https://github.com/agiovann/Constrained_NMF
-
-"""
-
-from __future__ import print_function
-#%%
-from builtins import str
-from builtins import range
-try:
- if __IPYTHON__:
- # this is used for debugging purposes only. allows to reload classes when changed
- get_ipython().magic('load_ext autoreload')
- get_ipython().magic('autoreload 2')
-except NameError:
- print('Not launched under iPython')
-
-import sys
-import numpy as np
-import psutil
-import glob
-import os
-import scipy
-from ipyparallel import Client
-# mpl.use('Qt5Agg')
-
-
-import pylab as pl
-pl.ion()
-#%%
-import caiman as cm
-from caiman.components_evaluation import evaluate_components
-from caiman.utils.visualization import plot_contours, view_patches_bar
-from caiman.base.rois import extract_binary_masks_blob
-from caiman.source_extraction import cnmf as cnmf
-#%%
-pl.close('all')
-#%%
-is_dendrites = False
-init_method = 'greedy_roi'
-alpha_snmf = None # 10e2 # this controls sparsity
-
-#%%
-# backend='SLURM'
-backend = 'local'
-if backend == 'SLURM':
- n_processes = np.int(os.environ.get('SLURM_NPROCS'))
-else:
- # roughly number of cores on your machine minus 1
- n_processes = np.maximum(np.int(psutil.cpu_count()), 1)
-print(('using ' + str(n_processes) + ' processes'))
-#%% start cluster for efficient computation
-single_thread = False
-
-if single_thread:
- dview = None
-else:
- try:
- c.close()
- except:
- print('C was not existing, creating one')
- print("Stopping cluster to avoid unnencessary use of memory....")
- sys.stdout.flush()
- if backend == 'SLURM':
- try:
- cm.stop_server(is_slurm=True)
- except:
- print('Nothing to stop')
- slurm_script = '/mnt/xfs1/home/agiovann/SOFTWARE/Constrained_NMF/SLURM/slurmStart.sh'
- cm.start_server(slurm_script=slurm_script)
- pdir, profile = os.environ['IPPPDIR'], os.environ['IPPPROFILE']
- c = Client(ipython_dir=pdir, profile=profile)
- else:
- cm.stop_server()
- cm.start_server()
- c = Client()
-
- print(('Using ' + str(len(c)) + ' processes'))
- dview = c[:len(c)]
-#%% FOR LOADING ALL TIFF FILES IN A FILE AND SAVING THEM ON A SINGLE MEMORY MAPPABLE FILE
-
-fnames = []
-base_folder = './' # folder containing the demo files
-for file in glob.glob(os.path.join(base_folder, '*.tif')):
- if file.endswith("/All_BL.tif"):
- fnames.append(os.path.abspath(file))
-fnames.sort()
-if len(fnames) == 0:
- raise Exception("Could not find any tiff file")
-
-print(fnames)
-fnames = fnames
-#%%
-# idx_x=slice(12,500,None)
-# idx_y=slice(12,500,None)
-# idx_xy=(idx_x,idx_y)
-border_to_0 = 6
-add_to_movie = 300 # the movie must be positive!!!
-downsample_factor = 1 # use .2 or .1 if file is large and you want a quick answer
-idx_xy = None
-base_name = 'Yr'
-name_new = cm.save_memmap_each(fnames, dview=dview, base_name=base_name, resize_fact=(
- 1, 1, downsample_factor), remove_init=0, idx_xy=idx_xy, add_to_movie=add_to_movie, border_to_0=border_to_0)
-name_new.sort()
-print(name_new)
-#%%
-fname_new = cm.save_memmap_join(
- name_new, base_name='Yr', n_chunks=12, dview=dview)
-#%%
-# fname_new='Yr_d1_501_d2_398_d3_1_order_F_frames_369_.mmap'
-Yr, dims, T = cm.load_memmap(fname_new)
-d1, d2 = dims
-images = np.reshape(Yr.T, [T] + list(dims), order='F')
-Y = np.reshape(Yr, dims + (T,), order='F')
-#%%
-if np.min(images) < 0:
- raise Exception('Movie too negative, add_to_movie should be larger')
-#%%
-Cn = cm.local_correlations(Y[:, :, :3000])
-pl.imshow(Cn, cmap='gray')
-
-#%%
-
-#%%
-rf = 20 # half-size of the patches in pixels. rf=25, patches are 50x50
-stride = 5 # amounpl.it of overlap between the patches in pixels
-K = 4 # number of neurons expected per patch
-gSig = [6, 6] # expected half size of neurons
-merge_thresh = 0.8 # merging threshold, max correlation allowed
-p = 2 # order of the autoregressive system
-memory_fact = 1 # unitless number accounting how much memory should be used. You will need to try different values to see which one would work the default is OK for a 16 GB system
-save_results = False
-#%% RUN ALGORITHM ON PATCHES
-
-cnm = cnmf.CNMF(n_processes, k=K, gSig=gSig, merge_thresh=0.8, p=0, dview=c[:], Ain=None, rf=rf, stride=stride, memory_fact=memory_fact,
- method_init=init_method, alpha_snmf=alpha_snmf, only_init_patch=True, gnb=1, method_deconvolution='oasis')
-cnm = cnm.fit(images)
-
-A_tot = cnm.A
-C_tot = cnm.C
-YrA_tot = cnm.YrA
-b_tot = cnm.b
-f_tot = cnm.f
-sn_tot = cnm.sn
-
-print(('Number of components:' + str(A_tot.shape[-1])))
-
-#%%
-final_frate = 10 # approx final rate (after eventual downsampling )
-tB = np.minimum(-2, np.floor(-5. / 30 * final_frate))
-tA = np.maximum(5, np.ceil(25. / 30 * final_frate))
-Npeaks = 10
-traces = C_tot + YrA_tot
-# traces_a=traces-scipy.ndimage.percentile_filter(traces,8,size=[1,np.shape(traces)[-1]/5])
-# traces_b=np.diff(traces,axis=1)
-fitness_raw, fitness_delta, erfc_raw, erfc_delta, r_values, significant_samples = evaluate_components(
- Y, traces, A_tot, C_tot, b_tot, f_tot, remove_baseline=True, N=5, robust_std=False, Athresh=0.1, Npeaks=Npeaks, tB=tB, tA=tA, thresh_C=0.3)
-
-idx_components_r = np.where(r_values >= .4)[0]
-idx_components_raw = np.where(fitness_raw < -20)[0]
-idx_components_delta = np.where(fitness_delta < -10)[0]
-
-idx_components = np.union1d(idx_components_r, idx_components_raw)
-idx_components = np.union1d(idx_components, idx_components_delta)
-idx_components_bad = np.setdiff1d(list(range(len(traces))), idx_components)
-
-print(('Keeping ' + str(len(idx_components)) +
- ' and discarding ' + str(len(idx_components_bad))))
-#%%
-pl.figure()
-crd = plot_contours(A_tot.tocsc()[:, idx_components], Cn, thr=0.9)
-#%%
-A_tot = A_tot.tocsc()[:, idx_components]
-C_tot = C_tot[idx_components]
-#%%
-save_results = True
-if save_results:
- np.savez('results_analysis_patch.npz', A_tot=A_tot, C_tot=C_tot,
- YrA_tot=YrA_tot, sn_tot=sn_tot, d1=d1, d2=d2, b_tot=b_tot, f=f_tot)
-#%% if you have many components this might take long!
-pl.figure()
-crd = plot_contours(A_tot, Cn, thr=0.9)
-#%%
-cnm = cnmf.CNMF(n_processes, k=A_tot.shape, gSig=gSig, merge_thresh=merge_thresh, p=p, dview=dview, Ain=A_tot, Cin=C_tot,
- f_in=f_tot, rf=None, stride=None)
-cnm = cnm.fit(images)
-
-#%%
-A, C, b, f, YrA, sn = cnm.A, cnm.C, cnm.b, cnm.f, cnm.YrA, cnm.sn
-#%%
-final_frate = 1
-tB = np.minimum(-2, np.floor(-5. / 30 * final_frate))
-tA = np.maximum(5, np.ceil(25. / 30 * final_frate))
-Npeaks = 10
-traces = C + YrA
-# traces_a=traces-scipy.ndimage.percentile_filter(traces,8,size=[1,np.shape(traces)[-1]/5])
-# traces_b=np.diff(traces,axis=1)
-fitness_raw, fitness_delta, erfc_raw, erfc_delta, r_values, significant_samples = \
- evaluate_components(Y, traces, A, C, b, f, remove_baseline=True,
- N=5, robust_std=False, Athresh=0.1, Npeaks=Npeaks, tB=tB, tA=tA, thresh_C=0.3)
-
-idx_components_r = np.where(r_values >= .5)[0]
-idx_components_raw = np.where(fitness_raw < -40)[0]
-idx_components_delta = np.where(fitness_delta < -20)[0]
-
-
-min_radius = gSig[0]
-# masks_ws, idx_blobs, idx_non_blobs = extract_binary_masks_blob(
-# A.tocsc(), min_radius, dims, num_std_threshold=1,
-# minCircularity=0.5, minInertiaRatio=0.2, minConvexity=.7)
-
-#% LOOK FOR BLOB LIKE STRUCTURES!
-masks_ws, is_blob, is_non_blob = cm.base.rois.extract_binary_masks_blob_parallel(A.tocsc(), min_radius, dims, num_std_threshold=1,
- minCircularity=0.5, minInertiaRatio=0.2, minConvexity=.7, dview=dview)
-
-idx_blobs = np.where(is_blob)[0]
-idx_non_blobs = np.where(is_non_blob)[0]
-
-idx_components = np.union1d(idx_components_r, idx_components_raw)
-idx_components = np.union1d(idx_components, idx_components_delta)
-idx_blobs = np.intersect1d(idx_components, idx_blobs)
-idx_components_bad = np.setdiff1d(list(range(len(traces))), idx_components)
-
-print(' ***** ')
-print((len(traces)))
-print((len(idx_components)))
-print((len(idx_blobs)))
-#%%
-save_results = True
-if save_results:
- np.savez(os.path.join(os.path.split(fname_new)[0], 'results_analysis.npz'), Cn=Cn, A=A.todense(
- ), C=C, b=b, f=f, YrA=YrA, sn=sn, d1=d1, d2=d2, idx_components=idx_components, idx_components_bad=idx_components_bad)
- np.savez(os.path.join(os.path.split(fname_new)[0], 'results_blobs.npz'), spatial_comps=A.tocsc().toarray().reshape(
- dims + (-1,), order='F').transpose([2, 0, 1]), masks=masks_ws, idx_components=idx_components, idx_blobs=idx_blobs, idx_components_bad=idx_components_bad)
-#%% visualize components
-# pl.figure();
-pl.subplot(1, 3, 1)
-crd = plot_contours(A.tocsc()[:, idx_components], Cn, thr=0.9)
-pl.subplot(1, 3, 2)
-crd = plot_contours(A.tocsc()[:, idx_blobs], Cn, thr=0.9)
-pl.subplot(1, 3, 3)
-crd = plot_contours(A.tocsc()[:, idx_components_bad], Cn, thr=0.9)
-#%%
-view_patches_bar(Yr, scipy.sparse.coo_matrix(A.tocsc()[:, idx_components]), C[
- idx_components, :], b, f, dims[0], dims[1], YrA=YrA[idx_components, :], img=Cn)
-#%%
-view_patches_bar(Yr, scipy.sparse.coo_matrix(A.tocsc()[:, idx_components_bad]), C[
- idx_components_bad, :], b, f, dims[0], dims[1], YrA=YrA[idx_components_bad, :], img=Cn)
-#%% STOP CLUSTER and clean up log files
-pl.close()
-if not single_thread:
- c.close()
- cm.stop_server(is_slurm=(backend == 'SLURM'))
- del c
- del dview
-
-log_files = glob.glob('Yr*_LOG_*')
-for log_file in log_files:
- os.remove(log_file)
-#%% LOAD RESULTS
-try:
- if __IPYTHON__:
- # this is used for debugging purposes only. allows to reload classes when changed
- get_ipython().magic('load_ext autoreload')
- get_ipython().magic('autoreload 2')
-except NameError:
- print('Not launched under iPython')
-
-import sys
-import numpy as np
-import psutil
-import glob
-import os
-import scipy
-from ipyparallel import Client
-import caiman as cm
-from caiman.components_evaluation import evaluate_components
-from caiman.utils.visualization import plot_contours, view_patches_bar
-from caiman.base.rois import extract_binary_masks_blob
-from caiman.source_extraction import cnmf as cnmf
-
-
-import pylab as pl
-pl.ion()
-
-with np.load('results_analysis.npz') as ld:
- locals().update(ld)
-
-A = scipy.sparse.coo_matrix(A)
-fname_new = 'Yr_d1_512_d2_512_d3_1_order_C_frames_3201_.mmap'
-Yr, dims, T = cm.load_memmap(fname_new)
-d1, d2 = dims
-images = np.reshape(Yr.T, [T] + list(dims), order='F')
-Y = np.reshape(Yr, dims + (T,), order='F')
-gSig = [6, 6] # expected half size of neurons
-final_frate = 1
diff --git a/demos/obsolete/demo_caiman_cnmf_Yi.py b/demos/obsolete/demo_caiman_cnmf_Yi.py
deleted file mode 100644
index ae16419a2..000000000
--- a/demos/obsolete/demo_caiman_cnmf_Yi.py
+++ /dev/null
@@ -1,308 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-"""
-Created on Wed Feb 24 18:39:45 2016
-
-@author: Andrea Giovannucci
-
-For explanation consult at https://github.com/agiovann/Constrained_NMF/releases/download/v0.4-alpha/Patch_demo.zip
-and https://github.com/agiovann/Constrained_NMF
-
-"""
-
-from __future__ import print_function
-#%%
-from builtins import str
-from builtins import range
-
-try:
- if __IPYTHON__:
- # this is used for debugging purposes only. allows to reload classes when changed
- get_ipython().magic('load_ext autoreload')
- get_ipython().magic('autoreload 2')
-except NameError:
- print('Not launched under iPython')
-
-import sys
-import numpy as np
-import psutil
-import glob
-import os
-import scipy
-from ipyparallel import Client
-# mpl.use('Qt5Agg')
-
-
-import pylab as pl
-pl.ion()
-#%%
-import caiman as cm
-from caiman.components_evaluation import evaluate_components
-from caiman.utils.visualization import plot_contours, view_patches_bar
-from caiman.base.rois import extract_binary_masks_blob
-from caiman.source_extraction import cnmf as cnmf
-#%%
-pl.close('all')
-#%%
-is_dendrites = False
-init_method = 'greedy_roi'
-alpha_snmf = None # 10e2 # this controls sparsity
-
-#%%
-# backend='SLURM'
-backend = 'local'
-if backend == 'SLURM':
- n_processes = np.int(os.environ.get('SLURM_NPROCS'))
-else:
- # roughly number of cores on your machine minus 1
- n_processes = np.maximum(np.int(psutil.cpu_count()), 1)
-print(('using ' + str(n_processes) + ' processes'))
-#%% start cluster for efficient computation
-single_thread = False
-
-if single_thread:
- dview = None
-else:
- try:
- c.close()
- except:
- print('C was not existing, creating one')
- print("Stopping cluster to avoid unnencessary use of memory....")
- sys.stdout.flush()
- if backend == 'SLURM':
- try:
- cm.stop_server(is_slurm=True)
- except:
- print('Nothing to stop')
- slurm_script = '/mnt/xfs1/home/agiovann/SOFTWARE/Constrained_NMF/SLURM/slurmStart.sh'
- cm.start_server(slurm_script=slurm_script)
- pdir, profile = os.environ['IPPPDIR'], os.environ['IPPPROFILE']
- c = Client(ipython_dir=pdir, profile=profile)
- else:
- cm.stop_server()
- cm.start_server()
- c = Client()
-
- print(('Using ' + str(len(c)) + ' processes'))
- dview = c[:len(c)]
-#%% FOR LOADING ALL TIFF FILES IN A FILE AND SAVING THEM ON A SINGLE MEMORY MAPPABLE FILE
-
-fnames = []
-base_folder = './' # folder containing the demo files
-for file in glob.glob(os.path.join(base_folder, '*.tif')):
- if file.endswith("data2_BL.tif"): # or data1_BL.tif
- fnames.append(os.path.abspath(file))
-fnames.sort()
-if len(fnames) == 0:
- raise Exception("Could not find any tiff file")
-
-print(fnames)
-fnames = fnames
-#%%
-# idx_x=slice(12,500,None)
-# idx_y=slice(12,500,None)
-# idx_xy=(idx_x,idx_y)
-border_to_0 = 30 # 28 for data2!!!!
-add_to_movie = 500 # the movie must be positive!!!
-downsample_factor = 1 # use .2 or .1 if file is large and you want a quick answer
-idx_xy = None
-base_name = 'Yr'
-name_new = cm.save_memmap_each(fnames, dview=dview, base_name=base_name, resize_fact=(
- 1, 1, downsample_factor), remove_init=0, idx_xy=idx_xy, add_to_movie=add_to_movie, border_to_0=border_to_0)
-name_new.sort()
-print(name_new)
-#%%
-fname_new = cm.save_memmap_join(
- name_new, base_name='Yr', n_chunks=12, dview=dview)
-#%%
-# fname_new='Yr_d1_501_d2_398_d3_1_order_F_frames_369_.mmap'
-Yr, dims, T = cm.load_memmap(fname_new)
-d1, d2 = dims
-images = np.reshape(Yr.T, [T] + list(dims), order='F')
-Y = np.reshape(Yr, dims + (T,), order='F')
-#%%
-if np.min(images) < 0:
- raise Exception('Movie too negative, add_to_movie should be larger')
-#%%
-Cn = cm.local_correlations(Y[:, :, :3000])
-pl.imshow(Cn, cmap='gray')
-
-#%%
-
-#%%
-rf = 20 # half-size of the patches in pixels. rf=25, patches are 50x50
-stride = 5 # amounpl.it of overlap between the patches in pixels
-K = 3 # number of neurons expected per patch
-gSig = [8, 8] # expected half size of neurons
-merge_thresh = 0.8 # merging threshold, max correlation allowed
-p = 2 # order of the autoregressive system
-memory_fact = 1 # unitless number accounting how much memory should be used. You will need to try different values to see which one would work the default is OK for a 16 GB system
-save_results = False
-#%% RUN ALGORITHM ON PATCHES
-
-cnm = cnmf.CNMF(n_processes, k=K, gSig=gSig, merge_thresh=0.8, p=0, dview=c[:], Ain=None, rf=rf, stride=stride, memory_fact=memory_fact,
- method_init=init_method, alpha_snmf=alpha_snmf, only_init_patch=True, gnb=1, method_deconvolution='oasis')
-cnm = cnm.fit(images)
-
-A_tot = cnm.A
-C_tot = cnm.C
-YrA_tot = cnm.YrA
-b_tot = cnm.b
-f_tot = cnm.f
-sn_tot = cnm.sn
-
-print(('Number of components:' + str(A_tot.shape[-1])))
-
-#%%
-final_frate = 1 # approx final rate (after eventual downsampling )
-tB = np.minimum(-2, np.floor(-5. / 30 * final_frate))
-tA = np.maximum(5, np.ceil(25. / 30 * final_frate))
-Npeaks = 10
-traces = C_tot + YrA_tot
-# traces_a=traces-scipy.ndimage.percentile_filter(traces,8,size=[1,np.shape(traces)[-1]/5])
-# traces_b=np.diff(traces,axis=1)
-fitness_raw, fitness_delta, erfc_raw, erfc_delta, r_values, significant_samples = evaluate_components(
- Y, traces, A_tot, C_tot, b_tot, f_tot, remove_baseline=True, N=5, robust_std=False, Athresh=0.1, Npeaks=Npeaks, tB=tB, tA=tA, thresh_C=0.3)
-
-idx_components_r = np.where(r_values >= .4)[0]
-idx_components_raw = np.where(fitness_raw < -20)[0]
-idx_components_delta = np.where(fitness_delta < -10)[0]
-
-idx_components = np.union1d(idx_components_r, idx_components_raw)
-idx_components = np.union1d(idx_components, idx_components_delta)
-idx_components_bad = np.setdiff1d(list(range(len(traces))), idx_components)
-
-print(('Keeping ' + str(len(idx_components)) +
- ' and discarding ' + str(len(idx_components_bad))))
-#%%
-pl.figure()
-crd = plot_contours(A_tot.tocsc()[:, idx_components], Cn, thr=0.9)
-#%%
-A_tot = A_tot.tocsc()[:, idx_components]
-C_tot = C_tot[idx_components]
-#%%
-save_results = True
-if save_results:
- np.savez('results_analysis_patch.npz', A_tot=A_tot, C_tot=C_tot,
- YrA_tot=YrA_tot, sn_tot=sn_tot, d1=d1, d2=d2, b_tot=b_tot, f=f_tot)
-#%% if you have many components this might take long!
-pl.figure()
-crd = plot_contours(A_tot, Cn, thr=0.9)
-#%%
-cnm = cnmf.CNMF(n_processes, k=A_tot.shape, gSig=gSig, merge_thresh=merge_thresh, p=p, dview=dview, Ain=A_tot, Cin=C_tot,
- f_in=f_tot, rf=None, stride=None)
-cnm = cnm.fit(images)
-
-#%%
-A, C, b, f, YrA, sn = cnm.A, cnm.C, cnm.b, cnm.f, cnm.YrA, cnm.sn
-#%%
-final_frate = 1
-tB = np.minimum(-2, np.floor(-5. / 30 * final_frate))
-tA = np.maximum(5, np.ceil(25. / 30 * final_frate))
-Npeaks = 10
-traces = C + YrA
-# traces_a=traces-scipy.ndimage.percentile_filter(traces,8,size=[1,np.shape(traces)[-1]/5])
-# traces_b=np.diff(traces,axis=1)
-fitness_raw, fitness_delta, erfc_raw, erfc_delta, r_values, significant_samples = \
- evaluate_components(Y, traces, A, C, b, f, remove_baseline=True,
- N=5, robust_std=False, Athresh=0.1, Npeaks=Npeaks, tB=tB, tA=tA, thresh_C=0.3)
-
-idx_components_r = np.where(r_values >= .5)[0]
-idx_components_raw = np.where(fitness_raw < -40)[0]
-idx_components_delta = np.where(fitness_delta < -20)[0]
-
-
-min_radius = gSig[0]
-# masks_ws, idx_blobs, idx_non_blobs = extract_binary_masks_blob(
-# A.tocsc(), min_radius, dims, num_std_threshold=1,
-# minCircularity=0.5, minInertiaRatio=0.2, minConvexity=.7)
-
-#% LOOK FOR BLOB LIKE STRUCTURES!
-masks_ws, is_blob, is_non_blob = cm.base.rois.extract_binary_masks_blob_parallel(A.tocsc(), min_radius, dims, num_std_threshold=1,
- minCircularity=0.5, minInertiaRatio=0.2, minConvexity=.7, dview=dview)
-
-idx_blobs = np.where(is_blob)[0]
-idx_non_blobs = np.where(is_non_blob)[0]
-
-idx_components = np.union1d(idx_components_r, idx_components_raw)
-idx_components = np.union1d(idx_components, idx_components_delta)
-idx_blobs = np.intersect1d(idx_components, idx_blobs)
-idx_components_bad = np.setdiff1d(list(range(len(traces))), idx_components)
-
-print(' ***** ')
-print((len(traces)))
-print((len(idx_components)))
-print((len(idx_blobs)))
-#%%
-save_results = True
-if save_results:
- np.savez(os.path.join(os.path.split(fname_new)[0], 'results_analysis.npz'), Cn=Cn, A=A.todense(
- ), C=C, b=b, f=f, YrA=YrA, sn=sn, d1=d1, d2=d2, idx_components=idx_components, idx_components_bad=idx_components_bad)
- np.savez(os.path.join(os.path.split(fname_new)[0], 'results_blobs.npz'), spatial_comps=A.tocsc().toarray().reshape(
- dims + (-1,), order='F').transpose([2, 0, 1]), masks=masks_ws, idx_components=idx_components, idx_blobs=idx_blobs, idx_components_bad=idx_components_bad)
-#%% visualize components
-# pl.figure();
-pl.subplot(1, 3, 1)
-crd = plot_contours(A.tocsc()[:, idx_components], Cn, thr=0.9)
-pl.subplot(1, 3, 2)
-crd = plot_contours(A.tocsc()[:, idx_blobs], Cn, thr=0.9)
-pl.subplot(1, 3, 3)
-crd = plot_contours(A.tocsc()[:, idx_components_bad], Cn, thr=0.9)
-#%%
-view_patches_bar(Yr, scipy.sparse.coo_matrix(A.tocsc()[:, idx_components]), C[
- idx_components, :], b, f, dims[0], dims[1], YrA=YrA[idx_components, :], img=Cn)
-#%%
-view_patches_bar(Yr, scipy.sparse.coo_matrix(A.tocsc()[:, idx_components_bad]), C[
- idx_components_bad, :], b, f, dims[0], dims[1], YrA=YrA[idx_components_bad, :], img=Cn)
-#%% STOP CLUSTER and clean up log files
-pl.close()
-if not single_thread:
- c.close()
- cm.stop_server(is_slurm=(backend == 'SLURM'))
- del c
- del dview
-
-log_files = glob.glob('Yr*_LOG_*')
-for log_file in log_files:
- os.remove(log_file)
-#%% LOAD RESULTS
-try:
- if __IPYTHON__:
- # this is used for debugging purposes only. allows to reload classes when changed
- get_ipython().magic('load_ext autoreload')
- get_ipython().magic('autoreload 2')
-except NameError:
- print('Not IPYTHON')
- pass
-
-import sys
-import numpy as np
-import psutil
-import glob
-import os
-import scipy
-from ipyparallel import Client
-import caiman as cm
-from caiman.components_evaluation import evaluate_components
-from caiman.utils.visualization import plot_contours, view_patches_bar
-from caiman.base.rois import extract_binary_masks_blob
-from caiman.source_extraction import cnmf as cnmf
-
-
-import pylab as pl
-pl.ion()
-
-with np.load('results_analysis.npz') as ld:
- locals().update(ld)
-
-A = scipy.sparse.coo_matrix(A)
-fname_new = 'Yr_d1_512_d2_512_d3_1_order_C_frames_3201_.mmap'
-Yr, dims, T = cm.load_memmap(fname_new)
-d1, d2 = dims
-images = np.reshape(Yr.T, [T] + list(dims), order='F')
-Y = np.reshape(Yr, dims + (T,), order='F')
-gSig = [8, 8] # expected half size of neurons
-final_frate = 1
-with np.load('results_blobs.npz') as ld:
- locals().update(ld)
diff --git a/demos/obsolete/demo_caiman_cnmfe.ipynb b/demos/obsolete/demo_caiman_cnmfe.ipynb
deleted file mode 100755
index 048cb19b4..000000000
--- a/demos/obsolete/demo_caiman_cnmfe.ipynb
+++ /dev/null
@@ -1,864 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {
- "collapsed": true
- },
- "source": [
- " Here we will be focusing more on the cnmf part and its main functions "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 1,
- "metadata": {
- "scrolled": true
- },
- "outputs": [],
- "source": [
- "try:\n",
- " if __IPYTHON__:\n",
- " # this is used for debugging purposes only. allows to reload classes when changed\n",
- " get_ipython().magic(u'load_ext autoreload')\n",
- " get_ipython().magic(u'autoreload 2')\n",
- "except NameError: \n",
- " print('Not IPYTHON') \n",
- " pass\n",
- "\n",
- "import sys\n",
- "import numpy as np\n",
- "from time import time\n",
- "from scipy.sparse import coo_matrix\n",
- "import psutil\n",
- "import glob\n",
- "import os\n",
- "import scipy\n",
- "from ipyparallel import Client\n",
- "#import matplotlib as mpl\n",
- "#mpl.use('TkAgg')\n",
- "\n",
- "import pylab as pl\n",
- "#pl.ion()\n",
- "\n",
- "import caiman as cm\n",
- "from caiman.components_evaluation import evaluate_components\n",
- "from caiman.utils.visualization import plot_contours,view_patches_bar,nb_plot_contour,nb_view_patches\n",
- "from caiman.base.rois import extract_binary_masks_blob\n",
- "import caiman.source_extraction.cnmf as cnmf"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "metadata": {
- "scrolled": true
- },
- "outputs": [
- {
- "data": {
- "text/html": [
- "\n",
- " \n",
- "
\n",
- "
Loading BokehJS ... \n",
- "
"
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "application/javascript": [
- "\n",
- "(function(global) {\n",
- " function now() {\n",
- " return new Date();\n",
- " }\n",
- "\n",
- " var force = true;\n",
- "\n",
- " if (typeof (window._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n",
- " window._bokeh_onload_callbacks = [];\n",
- " window._bokeh_is_loading = undefined;\n",
- " }\n",
- "\n",
- "\n",
- " \n",
- " if (typeof (window._bokeh_timeout) === \"undefined\" || force === true) {\n",
- " window._bokeh_timeout = Date.now() + 5000;\n",
- " window._bokeh_failed_load = false;\n",
- " }\n",
- "\n",
- " var NB_LOAD_WARNING = {'data': {'text/html':\n",
- " \"\\n\"+\n",
- " \"
\\n\"+\n",
- " \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n",
- " \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n",
- " \"
\\n\"+\n",
- " \"
\\n\"+\n",
- " \"re-rerun `output_notebook()` to attempt to load from CDN again, or \\n\"+\n",
- " \"use INLINE resources instead, as so: \\n\"+\n",
- " \" \\n\"+\n",
- " \"
\\n\"+\n",
- " \"from bokeh.resources import INLINE\\n\"+\n",
- " \"output_notebook(resources=INLINE)\\n\"+\n",
- " \"
\\n\"+\n",
- " \"
\"}};\n",
- "\n",
- " function display_loaded() {\n",
- " if (window.Bokeh !== undefined) {\n",
- " var el = document.getElementById(\"03c53c4b-aed9-4828-b983-6716f4dcbfa3\");\n",
- " el.textContent = \"BokehJS \" + Bokeh.version + \" successfully loaded.\";\n",
- " } else if (Date.now() < window._bokeh_timeout) {\n",
- " setTimeout(display_loaded, 100)\n",
- " }\n",
- " }\n",
- "\n",
- " function run_callbacks() {\n",
- " window._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n",
- " delete window._bokeh_onload_callbacks\n",
- " console.info(\"Bokeh: all callbacks have finished\");\n",
- " }\n",
- "\n",
- " function load_libs(js_urls, callback) {\n",
- " window._bokeh_onload_callbacks.push(callback);\n",
- " if (window._bokeh_is_loading > 0) {\n",
- " console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n",
- " return null;\n",
- " }\n",
- " if (js_urls == null || js_urls.length === 0) {\n",
- " run_callbacks();\n",
- " return null;\n",
- " }\n",
- " console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n",
- " window._bokeh_is_loading = js_urls.length;\n",
- " for (var i = 0; i < js_urls.length; i++) {\n",
- " var url = js_urls[i];\n",
- " var s = document.createElement('script');\n",
- " s.src = url;\n",
- " s.async = false;\n",
- " s.onreadystatechange = s.onload = function() {\n",
- " window._bokeh_is_loading--;\n",
- " if (window._bokeh_is_loading === 0) {\n",
- " console.log(\"Bokeh: all BokehJS libraries loaded\");\n",
- " run_callbacks()\n",
- " }\n",
- " };\n",
- " s.onerror = function() {\n",
- " console.warn(\"failed to load library \" + url);\n",
- " };\n",
- " console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n",
- " document.getElementsByTagName(\"head\")[0].appendChild(s);\n",
- " }\n",
- " };var element = document.getElementById(\"03c53c4b-aed9-4828-b983-6716f4dcbfa3\");\n",
- " if (element == null) {\n",
- " console.log(\"Bokeh: ERROR: autoload.js configured with elementid '03c53c4b-aed9-4828-b983-6716f4dcbfa3' but no matching script tag was found. \")\n",
- " return false;\n",
- " }\n",
- "\n",
- " var js_urls = [\"https://cdn.pydata.org/bokeh/release/bokeh-0.12.5.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.5.min.js\"];\n",
- "\n",
- " var inline_js = [\n",
- " function(Bokeh) {\n",
- " Bokeh.set_log_level(\"info\");\n",
- " },\n",
- " \n",
- " function(Bokeh) {\n",
- " \n",
- " },\n",
- " \n",
- " function(Bokeh) {\n",
- " \n",
- " document.getElementById(\"03c53c4b-aed9-4828-b983-6716f4dcbfa3\").textContent = \"BokehJS is loading...\";\n",
- " },\n",
- " function(Bokeh) {\n",
- " console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-0.12.5.min.css\");\n",
- " Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-0.12.5.min.css\");\n",
- " console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.5.min.css\");\n",
- " Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.5.min.css\");\n",
- " }\n",
- " ];\n",
- "\n",
- " function run_inline_js() {\n",
- " \n",
- " if ((window.Bokeh !== undefined) || (force === true)) {\n",
- " for (var i = 0; i < inline_js.length; i++) {\n",
- " inline_js[i](window.Bokeh);\n",
- " }if (force === true) {\n",
- " display_loaded();\n",
- " }} else if (Date.now() < window._bokeh_timeout) {\n",
- " setTimeout(run_inline_js, 100);\n",
- " } else if (!window._bokeh_failed_load) {\n",
- " console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n",
- " window._bokeh_failed_load = true;\n",
- " } else if (force !== true) {\n",
- " var cell = $(document.getElementById(\"03c53c4b-aed9-4828-b983-6716f4dcbfa3\")).parents('.cell').data().cell;\n",
- " cell.output_area.append_execute_result(NB_LOAD_WARNING)\n",
- " }\n",
- "\n",
- " }\n",
- "\n",
- " if (window._bokeh_is_loading === 0) {\n",
- " console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n",
- " run_inline_js();\n",
- " } else {\n",
- " load_libs(js_urls, function() {\n",
- " console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n",
- " run_inline_js();\n",
- " });\n",
- " }\n",
- "}(this));"
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "#import bokeh.plotting as bp\n",
- "import bokeh.plotting as bpl\n",
- "try:\n",
- " from bokeh.io import vform, hplot\n",
- "except:\n",
- " # newer version of bokeh does not use vform & hplot, instead uses column & row\n",
- " from bokeh.layouts import column as vform\n",
- " from bokeh.layouts import row as hplot\n",
- "from bokeh.models import CustomJS, ColumnDataSource, Slider\n",
- "from IPython.display import display, clear_output\n",
- "import matplotlib as mpl\n",
- "import matplotlib.cm as cmap\n",
- "import numpy as np\n",
- "\n",
- "bpl.output_notebook()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- " Using the workload manager SLURM \n",
- "to have an extensive use of the machine. \n",
- " This is to be used when working with a cluster of machines \n",
- " \n",
- "
This will put dispatch and manage the workload gave by the algorithm :
\n",
- " learn more : https://slurm.schedmd.com/overview.html
"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 3,
- "metadata": {
- "scrolled": true
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "using 4 processes\n",
- "C was not existing, creating one\n",
- "Stopping cluster to avoid unnencessary use of memory....\n",
- "Stopping cluster...\n",
- "NOT SLURM\n",
- "Waiting for cluster to stop....... done\n",
- "Starting cluster...Waiting for connection file: ~/.ipython/profile_default/security/ipcontroller-client.json\n",
- "......Using 4 processes\n"
- ]
- }
- ],
- "source": [
- "# frame rate in Hz\n",
- "final_frate=10 \n",
- "#backend='SLURM'\n",
- "backend='local'\n",
- "if backend == 'SLURM':\n",
- " n_processes = np.int(os.environ.get('SLURM_NPROCS'))\n",
- "else:\n",
- " n_processes = np.maximum(np.int(psutil.cpu_count()),1) # roughly number of cores on your machine minus 1\n",
- "print('using ' + str(n_processes) + ' processes')\n",
- "#%% start cluster for efficient computation\n",
- "single_thread=False\n",
- "\n",
- "if single_thread:\n",
- " dview=None\n",
- "else: \n",
- " try:\n",
- " c.close()\n",
- " except:\n",
- " print('C was not existing, creating one')\n",
- " print(\"Stopping cluster to avoid unnencessary use of memory....\")\n",
- " sys.stdout.flush() \n",
- " if backend == 'SLURM':\n",
- " try:\n",
- " cm.stop_server(is_slurm=True)\n",
- " except:\n",
- " print('Nothing to stop')\n",
- " slurm_script='/mnt/xfs1/home/agiovann/SOFTWARE/Constrained_NMF/SLURM/slurmStart.sh'\n",
- " cm.start_server(slurm_script=slurm_script)\n",
- " pdir, profile = os.environ['IPPPDIR'], os.environ['IPPPROFILE']\n",
- " c = Client(ipython_dir=pdir, profile=profile) \n",
- " else:\n",
- " cm.stop_server()\n",
- " cm.start_server() \n",
- " c=Client()\n",
- "\n",
- " print('Using '+ str(len(c)) + ' processes')\n",
- " dview=c[:len(c)]"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- " We can see here that the number of processes are the number of core your computer possess. Your computer can be seen as a node that possess X cores "
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- " Memory mapping files in F order \n",
- " see : https://github.com/flatironinstitute/CaImAn/blob/master/demo_caiman_pipeline.ipynb
\n",
- " "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 4,
- "metadata": {
- "scrolled": true
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "('/Users/zhoupc/Dropbox/Liam/caiman/example_movies/Yr0000_d1_128_d2_128_d3_1_order_C_frames_1000_.mmap', 1000)\n",
- "/Users/zhoupc/Dropbox/Liam/caiman/example_movies/Yr_d1_128_d2_128_d3_1_order_C_frames_1000_.mmap\n",
- "Deleting big mov\n",
- "['/Users/zhoupc/Dropbox/Liam/caiman/example_movies/data_endoscope.tif']\n",
- "/Users/zhoupc/Dropbox/Liam/caiman/example_movies/Yr_d1_128_d2_128_d3_1_order_C_frames_1000_.mmap\n",
- "\n",
- " we can see we are loading the file (line1) into a memorymapped object (line2)\n"
- ]
- }
- ],
- "source": [
- "#%% FOR LOADING ALL TIFF FILES IN A FILE AND SAVING THEM ON A SINGLE MEMORY MAPPABLE FILE\n",
- "fnames= []\n",
- "base_folder='./example_movies/' # folder containing the demo files\n",
- "for file in glob.glob(os.path.join(base_folder,'*.tif')):\n",
- " if file.endswith(\"endoscope.tif\"):\n",
- " fnames.append(os.path.abspath(file))\n",
- "fnames.sort()\n",
- "fnames=fnames\n",
- "downsample_factor=1 # use .2 or .1 if file is large and you want a quick answer\n",
- "final_frate=final_frate*downsample_factor\n",
- "idx_xy=None\n",
- "base_name='Yr'\n",
- "name_new=cm.save_memmap_each(fnames\n",
- " , dview=dview,base_name=base_name, resize_fact=(1, 1, downsample_factor)\n",
- " , remove_init=0,idx_xy=idx_xy )\n",
- "name_new.sort()\n",
- "fname_new=cm.save_memmap_join(name_new,base_name='Yr', n_chunks=12, dview=dview)\n",
- "print(fnames)\n",
- "print(fname_new)\n",
- "print(\"\\n we can see we are loading the file (line1) into a memorymapped object (line2)\")"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- " Correlation image \n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 5,
- "metadata": {
- "scrolled": true
- },
- "outputs": [
- {
- "data": {
- "image/png": "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\n",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "#%%\n",
- "Yr,dims,T=cm.load_memmap(fname_new)\n",
- "Y=np.reshape(Yr,dims+(T,),order='F')\n",
- "#%% visualize correlation image\n",
- "Cn = cm.local_correlations(Y)\n",
- "pl.imshow(Cn,cmap='gray') \n",
- "pl.show()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 8,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- ""
- ]
- },
- "execution_count": 8,
- "metadata": {},
- "output_type": "execute_result"
- },
- {
- "data": {
- "image/png": "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\n",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "from caiman.summary_images import correlation_pnr_filtered\n",
- "cn, pnr, _ = correlation_pnr_filtered(np.transpose(Y, [2,0,1]))\n",
- "pl.figure(figsize=(10, 5))\n",
- "pl.subplot(1,2,1)\n",
- "pl.imshow(cn, vmin=0, vmax=1)\n",
- "pl.colorbar()\n",
- "pl.title('corr. image')\n",
- "pl.subplot(1,2,2)\n",
- "pl.imshow(pnr, vmin=0, vmax=50)\n",
- "pl.colorbar()\n",
- "pl.title('PNR image')"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 9,
- "metadata": {
- "scrolled": true
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "using 4 processes\n",
- "using 1000 pixels per process\n",
- "using 1000 block_size\n"
- ]
- }
- ],
- "source": [
- "#%% parameters of experiment\n",
- "K=[] # number of neurons expected per patch\n",
- "gSig=[3, 3] # expected half size of neurons\n",
- "gSiz = [10, 10] # size of the gaussian kernel \n",
- "p=2 #order of the autoregressive system\n",
- "\n",
- "options = cnmf.utilities.CNMFSetParms(Y\n",
- " ,n_processes,p=p,gSig=gSig,K=K,ssub=2,tsub=2, normalize_init=True)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 14,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "[]"
- ]
- },
- "execution_count": 14,
- "metadata": {},
- "output_type": "execute_result"
- },
- {
- "data": {
- "image/png": "iVBORw0KGgoAAAANSUhEUgAAAQUAAAD8CAYAAAB+fLH0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsvXlwXOd1J/q7vXcDjZ0EQYILuC8CSRAkAVIUJVuxnHHs\nLI5jR5M4znuu8VSNk5lXeVNJ3syf86omiceJJ07ilD2xY884lhM/O7LGsuWIEjcJIEFqo2RJJgVR\nJAhww9ro7fZy3x99fwfnfrclgpsISn2qWA123/vdb7vnnO8sv2M5joMa1ahGNSIF7nQHalSjGi0s\nqjGFGtWoRh6qMYUa1ahGHqoxhRrVqEYeqjGFGtWoRh6qMYUa1ahGHqoxhRrVqEYeum1MwbKsX7Qs\n63XLss5YlvXHt+s5NapRjW4tWbcjeMmyrCCAnwP4EIARAEMAHnYc52e3/GE1qlGNbimFblO7uwGc\ncRxnGAAsy3oEwK8AqMoUAoGAEwwGkUwmUS6XAQClUslzTTgcRihU6a5lWQAAx3FQLBYBAPl8HgBQ\nLpcRiUQAAMFgUL7j9WSCbCMYDCIQ8CpM5XJZ7mG7pEgk4nm+239pg78BkL7xunA47PnUvzmOg0Kh\nAABIpVKe65LJpIxFM3H2cWpqSp7X2NjoGTupUCj4+mNZlvRX95/XsX1eY1mWtMvveI05H+yDvtfs\nt23bACprzbXlpx4vr+P8RCIRRKNRz/hKpZLsGfZDt1ltfXg92we8a6Ofmc1m5Te2lc/npR96HgAg\nkUjI8zWxb9lsVv7PNsxxmvuS/TP3QrFYRC6X8/RDvwOzs7P87arjOIt8jRp0u5jCMgDn1f9HAPTp\nCyzL+hyAzwGVwbe1tWH//v1Ip9MAIAPhwi1ZsgSLFlXGwwGXSiVcuXIFAHDmzBkAQDqdRldXFwCg\nrq4OwNwk5/N52fCc2KamJiQSCU/nZ2dnkclkAABvvfWW57fly5fLYrFv8XgcsVjM0zdg7mXlBujo\n6JCxrBwdRde5czizbBnOLVsG27Zx4cIFAMChQ4cqk7hsGQDgAx/4gIyFG6FcLsscPfbYYwCA8fFx\nPPjggwCAlpYWuQ4Arly5gkuXLnnmIxqNysblHASDQYyPjwOAbDTOVTgcRlNTE4C5Fy6Xy8k88Fls\nq76+Xja8fik5H5zbVCol/eUaJ5NJGe/585WtxM8VK1Zg/fr1elkwNTXlYY4A0NzcLG2yT6FQCCsu\nXMDqc+fwUksL3lyyBKOjo/KsxYsXe/rL31555RW0t7fLuADgzTfflL3Gfcv7duzYIXOlX27O1alT\np2T+1q1bBwAYGRkBANkH3FN6DRYtWiTtsq0rV67g1VdflfYAoLOzE0Blfx85cgQAkMlkvJv5beh2\nMQWryneec4rjOF8F8FUAaGtrcz784Q/jU5/6FCYnJwHMSWhORldXF9ra2gDMvXjlchkXL14EADz/\n/PMAgJmZGWzZsgXA3AbjoszOzooU5gZubW31bEA+m/146aWXPP1Zu3atSAy+GM3NzdJGPB6XMZJh\nsS32f2s6jZZPfhKwbTwUDmP8u9/F5MaNOHnyJIA5ZvbRj34UAPDQQw/5GFe5XMbVq1cBQDby1NQU\nPv7xj3u+4wty6dIl2WzcOIFAQOaXzwyFQpiZmfFcR9JMhC/2+Pi4/M2XZfny5TK3XCsyB8dxZD64\nZq+//jo2bNgAALjnnns8/Q8EAnjhhRc887lz505ZYz3Xly9fBjD3cnEt1q1bJ3uh/tQpNH/iE0Ch\ngIdCIZz+27/Fm0uWAKi8hOw754Uv25EjR2R83E9tbW3yQpMhURPZuXOnPFNrDHyRn3rqKQAVRrd1\n61bPs7hOixYt8qwVAKxfv15eeO7JM2fOYGBgAABkT7DNzs5OuffHP/4x5kO3iymMAFiu/t8JYPTt\nLi6VSpiZmcH4+LioUOSSfBm0WksqFAoyydzUkUhE/qYqzY2ZSCTkbzKHdDrt0x705jdVu8uXL4sE\nZ/v19fWyAfXm5++U6NysSw8cQEs+D6tchuM4mP3f/xs/K5fx3HPPAZiT8nxREomER+3lfHCxKcEW\nL14sf3MO2O+GhgbZRBxvIBAQ5sjxRiIRNDQ0AJhjnFqF5ibV6irXiuPVDMY8xti2LVoYX6QLFy7I\ns6hNtba2yj0c59KlSwEAa9asEWnJ+wKBgOwFaiDDw8PSb0r0tY8/jmbblrkPP/MM6n7ndwBUNDhq\nF5xv9qO1tVU0Lb5w3d3dWLNmDQAIQ5qenpZ+63nmJ9ulECkUCnjllVc813MNk8mkaCAURPpYwvUM\nhUJY4jI2LTCByp7WGsd86HZ5H4YArLMsq8uyrAiA3wTww9v0rLuOxru7UQ6H4QSDcMJhTG3ffqe7\n9L6hVG9vbe6vQbdFU3Acp2hZ1u8BeAJAEMDXHcd55e2uLxaLmJiYwMTEhM9ISElXLpd9RjFtnNPn\nXvN8rw1OlOSUdKlUStrgfdFoVLg2v6Nmkc/nRY2kVInH474jheM4Is3YPs+RA2NjuPDv/h2WnT6N\n8e5uXI5GkT53Dq+99hoAYO/evQDmzoXaIKjm2KMFABUJrc/OepyFQsFnP9ASREtcLdn0GsTjcZFO\n+rzMvnG+qxlUed/s7KxIVW1z4frpdWH72q7EZ5tGvHA4LMc/Hk9OnDgBAFi5cuXcsW71amS/+EW0\nvPQSZnfuhN3djTZXw0kmkzIGjp1zlUgksGrVKgDApk2bAFRUeY6R86H3qGlr0etIrUobgHkUoaY1\nMzMj+5VHkdbWVp8xNJlMYvPmzQCAiYkJmVM+u5rB853odh0f4DjO4wAev13t3+10sasLF7u6fLaC\nGt1+mtmyBZlt2677ZbkZsgYHgSNHgPvvB/bsedeeeyP07s3KNchxHAQCAZFK/CQXTSQSIqE1VXPP\n8F5KJ0rqXC4n7elP7R4CKtyV35mSNxKJyJmf50J9btZnOUodSnJy+FKpJJKFEqBYLKK7u9vTrnZX\nmm7Qcrks5032jdJHzx8lbz6f90m/WCwm32lNgePRGhn7aNp19HWm1lYul+X51ApGRkZEU6AU3LJl\ni5z5+R3tDrZt+zQc7YrmOk1MTMjzafPZ7h4NGhsbxchLA2YoFPJpONp1SeLYo9Go3EuNQbunqXWx\nD47jzGkKzzyDyEc+Atg2EImg9MQTKLh7Ih6PS99oM+HYLl68KPNBWwu1CGBuPzU3N8vftIHQaxIM\nBquu2TtRLcz5bqSBAQS/8AXEXav8+5lCQ0OIfelLiLmejIVIgSNHANuGVSpVPg8fvtNdekdaEJpC\nIBBAXV0d6uvrRbpT0tFyHwqFfOe3SCQiXJ7SNZVKyT2mlNcuSR1QxHZ1jIG2uOv+LFq0SLh1NdsG\nKR6P+6z3PNd2d3eLBZvSvVQqybM4Bzwbx2Kxub4NDCD44Q8jYNtYHgrh1S9/GQFX0tTV1Yl0Yht0\nL9q2LW3ogCKzj5Zl+c7VOmDKDODRkpUaAvuQy+XEvfbzn/8cQMV1yDYo/VpaWmStzGdzb3AegMqa\nZDIZRE6exKKHH4Zl24hHIrC+9S3kd+wQW8yOHTsAVLQUapnU2kKhkCdoif02A6A4j4lEQvadGTjF\n9nT/c7mczKm9Zw9CkQgcV1Mo7N0rnoxIJILVq1cDmNvDdLOn02kZO+1XkUhE+qjdvZw/rUmwDdMG\ncS1aEEzBsiyEQiEkk0nZsHxB+IJPT0/7ogvb2tpkMqg2RSIRWVAG4XARZ2dnRZXiJmlpafG9LLZt\ni9prBlNpNx4Xp1Ao+KLQotGo9JeMiNe3trZ6jIO8j4Ymbhj6nKPR6BwjfOopBF2pY7kutfhv/qaM\nXccP6LYCgYDn+MJ+mccMfR3ng3Olj0SaGZjzQdV/ZGREYi9ef/11ABV3G9eKL6+2q+j5Yx/MSEyJ\nzzhwAJbrXkShgEWvvAL7F39R+s9+x2Ixn+s1FArJmrG/+Xzec1TSv8ViMWmPbVUzfut54VoU77kH\nuX/8R8SPHcN0Tw/yXV0Yd+MKLMuS4yhJu305Vzr+hfPMZ2nhyP5T2Ojj4HxpQTCFGs2fyvv3A67U\ncYJBTLgax/uRZnfuhBOJAIUCEA6juG/fne7S21Jh505Ye/ci72put5pCQ0MIPfMMyrt2obBz5821\ndYv6dFNElTUajfqkDrnmzMyMcG0dWMS/dbw91W5GwNHIFQqFJDCEkjqRSIhayjbS6bTnyKF/08ZQ\ncuB8Pu8LuioWizIGahu8JhKJyHWUAMFgECtXrvQ8i8++cuWK3GutWoXo//yfyD3xBM4sW4bxjg4s\nUeosx04Ngfclk0nfmHK5nEhkSmutCVHToWGwoaHBY+jk9eZaUZK/8cYbcnygxFu5cqVoRBx7JpOR\ne3UQGlDZG2yf/bAsC4sXL0ZuwwZcfeQRRAcGEP7QhxDZv98zf1o70AZXrg8lOftYLBaln9qAyTbY\nrtaqzHwcfYTiulMjKZVKcjTgPK5Zs0bWQIfj8/9aQwAq60ktRoyczz+Phk99CrBtxN0I2bAb8Xm9\nWgKwQJhCja6P8jt24HxbG8ZH3zZI9H1Ddm8v7N5eOV4BAAYGYB06hMDevSj39b39zbeQrMFBBA4f\nRuldfCYpMjAwZ8gEEB0YAIww8OuhBcMUyNV5HtTuNRKlK6VJXV2dcEvtojLP0/wsl8s+o5XOQKRE\n0hmZ1CgoueLxuMftxGebGYWlUsmTBaj7qJOISMFgUM6sdE1RqqRSKQmfpdYzPj4uEoaf6XRatACO\niZKmvr5exjSjVFi6RLXxlv2mxNcJSWZSmj6v89k65JeuRn4uW7ZM5oia3MWLF+VeGtR4zm5oaBCb\nDMfe0NCAFStWyN+cg2AwWGEIDz0E2DaikQiyjz0GbNjgs0sEAgHRqmgEnZ6eludTWnOcHR0dHtc2\nMJc1GhoaQvLXfq0iqSMRpH7wA4S3b0f9qVOIHzuGyW3bkNm2DZlMRrQHGhWXLFniy+DUWZ6my71U\nKvnC8u09e4BwGA4AJxzG7M6dolXr5L750oJgCoVCAZcvX8bIyIhsXFONrK+v9xnAgsGgLBQ3ejgc\nlpeK1m0u/uXLl0Ut5HfaYq8Xg+o0NwkpHo/LomiLs+lLL5fLvsXTLyX7oZkfN4eZewDMMTZmg+rj\nhr7OnCOdjsu/+eylS5eK753Mw7Isn9eGzx4ZGZF7+Rydem4a7pYsWSIJRmQ6uVxOckDOnj0LoKKi\nc/3IDLiGLS0twvS4ZpFIxNdHMfAdOiRS07FtWIcOobxuned4yevNo9P09LS8tNwT+jlmynckEqkw\nhaNHPc+MPPtsxWvymc8Ato3mcBhXH3kEoytXSntkCqFQSJ5l7kOd36JjVngd1zjX04PL3/kOogMD\nuHrPPcisW4cpd66mpqbuTqZQo4r6aR05Auf++4Hdu+9oXwLHjiF45AjCO3fetNHqXaf77xdDLCIR\nFO6997Y/srhvn+eZxX37PIwCcFV6l4nfDuIxKuMyg5uhBcEULMtCOByGbdsiPSgxGO+ujZBUJ5PJ\npCcrDahErDFCjNKPEntkZERURarm0WjUI/X4HY8XVOm1K5PcnpJGxzqQe6fTaVEzyeVpxAoGg2LA\namxsRGhoCPW/8RuVTRSJwHniCWDPHnlOU1OTL8qwoaHBY6Tkb6ZrTB9ddMwC7+M4ZQ6OH0foYx8D\nbBstrvrNfr/11lu+FGHbtuX5pruyoaFBfuORbnx8XDQFrmM8HhdNQmdYco45D1zXWCzmAyQRSd7b\nC/sHP0D4mWeQ6u2FvWULysVi1TVjf3m0cRxH5sPU7izLEi1CZ90Gg0E4/f3I/+hHCBw+DOf++xHs\n60M5EAD+7M9EpZ/u6cHk5KRoWtQUdAQu2+c6ae2Ov/Ee3Q/LsuS4w3nme6GzWOdLC4IpvN8p8uyz\nXpX38GE4dyg+3jp82NOX4JEjgIvrcLdQafdulHbvhq1epNtN5b4+lPv65hCp+vow+b3vIfLss5jY\nuhW5nh7A9XIsdFoQTCEej2PLli3Yu3evgJq8/PLLAOYkHaUEMCdh3nrrLZHCjHdfunSp77zJa1au\nXCmc+s033wRQOXOR45IDx+NxHzgIPzVSk3b3sJ86eIiaAu+lDSCfzwvnv3z5MuKbNmG1ayhCJIJc\nXx9KmYy0dfXqVRkzN11dXZ0vK1H3R0dnsl9sT2NJ+DA6DfW7dN99niAZPotzZdu2tGtGboZCIflN\nf7I9rll7e7toZGaSUiAQ8AWXTU5OivGTUrChoUHOznwW5yORSFQFwdHoW0Blndg3bXgFKmtGY6iO\nhmWf2K4O4JpdvRpYvboivS9fRiqV8mW7ahcjDa90kc7MzIixVwdJsd86QInaBT+1dmoGR12LFgRT\nCAaDaGpqwpYtW2SgVJuIzhOPx0WN5ct27tw5MQQynVWnMZvW3FgsJoY1Gs8ymYxcR5Ve+6s1LiBQ\n2bSmb9q2bVkMLuzs7KxsFC4KVWO9wcbHx4Hly2H/9V+j+cUXkd61C2OxGPDSS7I5RkdHRR3Um5Xt\n6yOAaQzTLwH7zSNac3OzALmIlXvnThRdVTjb14fi9u246kYljo+PS5wH20+lUr4QX463o6PD1x9t\nFKUnY8mSJbLuJoZhNpv1YVwWCgW88cYbAOY8HTrxhwZmDcsnkaPHjgGHDqG0bx9KbuAXVe9q+Jek\ncDjsY6rBYFCuM0FtNAAQGZ42UmswFO4xM3pW90czXjOWp76+3mdM5P5dvHixz1h+LVoQTKFGQHrr\nVhR37ar8x7CTvNtEVbjobsT3DA0MwPrwhwHbRigSQfCf/xmlO2zUXYi0IJgCXS+RSES4PLH6xsbG\nAFRURn2EAOakstnWO5GONwAq3NY0kGWzWTGGkQNT+rW1tfmSTjKZjGgeOi3YhG3TSMiUKHzOxYsX\nRQKZXD+TyQjn1wAy2mjGTzM1XEfHUdpQqxkbG/OppzrhhkZF9mt8fNwnQW3blj5x7Zha3NTU5Ets\n00Yvzks8Hq+K+gx4wWQ4pmQyKccHalMaho/9oIQmnJ1pLyk++SRmNmyQNctkMtIGpbZOjdZHCX5y\n/rgXddKeeWTRBkENfmOmcFMbSyQSsod4ZJ2ZmZEx8wi8aNEi2VsaKIj/v9Y7YdKCYArvFlmDg0j+\n5CfI79kDGOGjNXrvk3P//RXvjmsvyfX33+kuAQDiL7yAuhMnkF+7FjM3EYl4q2jBMAVCVZFbMuiF\nn+fPn/cYvICKcYlShK4YrU3ojDVrcBCRj3wEkXweTiSC5j/9U0xv3uyBb6O9IRqNin1B500AXvgs\nfqZSKZHCbKu9vd3Tnr5eS1v+ffnyZQnO4VmbYy8UCiJpKYni8bjPkJrP50WqU8PSADKUajoD1Mzt\niEajvpoOPJO2trZKtiPP69Ui8vSn6SLV/SZpt6bZhs4T0deb0rVUKvmkqjb+RiIRYMcOlB99FKGj\nR3Flyxa8Wl8PvP66aAr5fN6Tyg7Ak2fAfuvvOH/axQxU9qGOtuQa+CDuXngBXf/m38CybSwKh/H6\nX/81LrltxGIx0RCp9Wh4AQayTU9Py3OpBVJzvXLlCs6dO4froYUFsjIwgMCf/VkFuuoWk6iO5TKs\nQgHNL754y5/xXqHoc8+h6StfWdDAJTdKpd27kf+DP6i4CBcA1Z04IenfgWIRDS6i952kBaMpdJ4/\nD+tDH0LQVe3i3/kO7N5eOeO1tbX5YN/XrFkj0o+c+urVq76CJeVyGcG+PiRcKeuEQri4aRNyuRxs\n2xapwPZDoZD8TYmkPRomMEmhUBBOzXNkXV2d3GNa1NPptNzL67u6ukRDYFw/7z9//rxIG0ofnbOh\ncyoo9fhJ0nYQX8CPmqv6U6ew6NOfrjDOcBjT3/8+Ei5M3OTkpK92RGNjozyfUpPnfcdxRJJrLw7n\nm9frsbIfPIc3Njb6Ao9KpZJohBzX1atXfdBvhHrXoeTcLxcuXBDtkmvc0NDgg2WnfScSiUj77L/k\nW2Bu/3Gttc2HY9IgLlLRbPt2LHbTv8uhEKZ7enxBb3rs4XBY9gBJ26BM74bjOD470LVoQTAFx3Gw\nYnjYYwQq/Mu/4PLy5fIi6ShDXYSFf9MwNDw8LJPmUTuXLEHgy19G/PhxTG/fjtnVqxGCF+tQG5VM\n/H9ObDQa9eUQRCIRj9EMqLwEXCwuFI8HqVTK5+8H5txIpotUvwTaiKYNo2zXrBOgjVa8jmp2NpuV\nF4jMKTowAKtQqKwDgPixYwI0umLFCmEKfLl03kfW8FbEYjHZzBzLpUuXfGjOuVxOKj7Rtcx6Ci0t\nLfLia6ZQraoX+8b1Yfvlclnmg+r1uXPnxHjM+QiFQh4Gq+cxm816ImkBb8SmedzQSFw6aY/rw/aL\n27fj3Ne/jsTQEK5u2YLM1q0oulpsLpeTedPGSjM5LhKJ+HAeGQnc0NAgFaLmSwuCKQDA8IoVc0Ez\nbqbXrabZ7m5cdXP58V5zt90iyvX3o1EFUi1k4JL3CuV6epDr6UHaZTp3mhYEU5iamsJfnTyJ6G/9\nFladPYu3urpwYWQEGBkRrr9kyRJRN3WWoln7T8f481Pj75vpyVrCkIu3tbV5DGO8l+2bOJLxeNxX\nISqdTgtHZz+ormpNRAfpUPqxH0TkbWpq8tQ8ACqS3wwMsm3bdyzhczQiNNvQFYhomEp3dCD9ta+h\n7sQJlPbtQ371agTdccRiMTna6IAcndarxzQxMSG/MedE94nSzXEc0apYG4NtNTU1+Y5ylmXJd5T2\n2h1rZjqWy2VfCvLSpUtljriHHMeRnBj2R+Mx6mMGx2HiNeq0cTOfI5PJ+CJT9TGDa0et89KlS7Jn\nNPANy8vxWevXrxcNkhoWx6YN6fOlBcEUSCPLl2P0NmaS1Wh+lN2+Hdnt2xdmTYqBAQQOHULg3nvf\ndTCTm6HAsWOof/JJpDZsQGbbtnflmdbgIKxnnsHykRGcd/Ew50MLgink83mcOXMGBw4c8AXCUJqk\n02mfgaq+vl7yCXguBLwGPcBriDHz78vlsg8oNZvNijTjmVKXHOd5UAcSmWfLQqEgUoHtUpvo6OgQ\nCaeBU9lvE4Clvr5epIfO4uNYdD/MPAi2Pz09LfPGue3s7BQppmPreR3PrJRgOuNOA86aVbf0MwW8\n1JXi27Ztwwc/+EEAczYUx3EkiIsaBSXkyy+/PAcUc+qU1E+IRiLI/+hHiLh+/cWLF3tAWwAv3gXn\nT9e8oPbF37LZrA+7Qed4cC9qABjTmMixT05OiiTvOHsWLZ/8JCzbRl04jFe//GWJpAyFQqK91J86\nhcTQEApuvIL+jWMaHR2VSmKcF131XOxuQ0MIunP1u5aFv//0pzFfumGmYFnWcgDfArAEQBnAVx3H\n+e+WZbUA+C6AVQDOAvik4zjvmORdV1eH3t5efOQjHxFV20RIisfjPqNVLBbzWPuBykvM78xY9YmJ\nCV+cezqdlmdSXR8fH5f2qCbTM6DVZc1gqqEs8W8zDXzJkiWeYwZQwTMk8zIj8pqbm31JWL5EJlRe\nbH7PF5TxCleuXJGxsx+rVq3yYDMCFQbNfnA+GDkXCAR8kZW2bcszOWc6epGMhXOwadMmmUsNPU61\nl7+x0vTp06dl8+86cMBjjHaeflpgx1pbW0Uw8GVkJeY1a9bIXPKokEgkZOwatYt7hnPAvRMKhWTs\nGo1LvDZu+7xmfHxcGFzsRz9Ci3KHh595RlyigmD1/PPo/OxnJV7h51/5CmKbNsm+0olOFFj81AlR\nAkmvwGYCloWut+ZVhb7S3ryv9FMRwP/tOM4mAP0APm9Z1mYAfwzggOM46wAccP9foxrdNAmYSTB4\nVxlBJ7dtgxMOoxwIwAmFqiJwx48fl3gFq1hE0k1Cu1FymO0aDKIcDOLN6ziW37Cm4DjOGIAx9++U\nZVmvAlgG4FcAPOBe9k0ABwH80Tu1FQgEkEgksGjRIk+8OgCPa5AcXeMKmgU6tMpl4jdWw/9PJBLC\n+flsbXxkP+jzbmlp8RSWBbx1HzQ2njaS6s9kMilSkhJUx//zOrOmgB5LqVTyQa7pAqamgSqdTvv6\noQFjdEwHv6OU5Kdt29JfrbFQOvEYRlq8eLFIQkoyDd+myTTisWDq2bNn8eMf/7jy26c+hcTf/A06\nXn8dpfvuQ7GnB447vsbGRokAZdSlxuHUY+Z40wbeQqlUkjWltklj8fT0tMy9LohjojjzKGJZlmSj\nvlEq4eef/SzWXbiAzO7dmFi5Em3KdRyNRpHeuROtbryCEw4j19/vSY8ntbe3+6I5s9msaEfU1ro2\nb0bo+99H3YkT+MYbb+C8Ol5fi26JTcGyrFUAegAcA9DuMgw4jjNmWdbit7nncwA+B+C6raPX7I+L\nrBvcs6eWBfceo8y2bZh96KG5JLATJxB+9llg1y7A9YwsRBpduRKz3d0i0EzK9fRU4hWOH0eqt/eW\nGCOLu3ah/MEP4vx/+S/Xdd9NMwXLsuoB/H8A/i/HcWbmm5HlOM5XAXwVAJqampxgMIhwOCwS13T1\nVMt1DwaDwqHl8/hxBP7VvwJsG4lIBPbjjyPmZlxWswfoWhD8zbZtkVg6Q5C/8VnVcv415JkZgakN\ngibQq0am1mXegco5UWfmAXMQdsCcHUNLYbM2wKJFi8RWoUunsR8a0s3sN4kRoHr+9DmcxjBK7MWL\nF8sZ+/jx4wAqdgpmwFYj9pf3bdiwQTQQGtgaGxsriNtDQ2hyYezqw2Fkv/515Hp6RNozW3P9+vWy\nxmxflxDknC1atEjmRrt+gYoB1CzrVywWfTkbmkwg3o6ODt+aFQoFkfjEWQwEAojDC/6r9zyJ3yWT\nSdmf7CPzHTo6OmRd5ks3xRQsywqjwhC+7TjO992vL1mW1eFqCR0ALr99C3NENVTHAwDwhIWaKbS2\nbYtRS7D9Dh70GKMCR47AcsN0dZVgbup8Pi+LppOHuCm5AagKTk9Pe15u3X/AaxhV8+Tpt15skq6o\nrQFdeJ9Zxg6Y27BanTU3Kf+fTCZ91a81hHjw+HFYhw6huG8fyq4RzGQALS0tvtBqYM5LYfaroaHB\nUxwHqDAOjqVaFXESX6hNmzbh2LFjAObSzPfs2VPx7x87NrfWAIJHjmB69WrZQ4xFWblypa8YjC5B\nyKOCDqk0QMEQAAAgAElEQVTmXLEfExMTMvc8Uuj+c1708ZHtsvhNc3OzCA3utXK5LM/QRzigstY8\nxnKOS6WSMDiNOsV7aRw+ffo0gEqE789+9rO3nedqdDPeBwvA3wF41XGcP1c//RDAZwD8ifv56I0+\n40bIMeDEyvfd5/k99vzziB87BnvvXuTdAqTvd7IGBxF0tatIJILCo4/eFceu4r59iKoo2Jnaet4S\nuhlN4V4AnwZwyrIs1kT/T6gwg3+0LOuzAM4B+I1rNcQSW5lMxoezp2PJyWXJ9S9cuCASnceNxu3b\nEXzsMQSPHEF+zx4Ut25F1m0zfOIEOj7zGViFAvA3f4PJ730PU5s2+crGFYtFnwGTBjYdpadBNCh5\nyLHD4bB8R8lCrUdLJF0Kz5TyOg6BxyqdfETJVQ3f0ER/1mnpvqKoBviI8/TTyHZ3i6+ekisej/vw\nGIvFos8mRGObhkGjtDxz5oy46ra55+Z3Km2m29ZzbFkWyn19mPre9xB+9lmc6+rCS4kEMDws68Pj\nAzB3/KNBrq2tTTQJxh80NjZKX8wK5y0tLSKteZypq6vz7R2q7SMjIz6gm3Q6LX9zXyWTSZkjXs8+\nPvfccxgeHgYwpz2uWLFCjoF0r2rDNW0W/G1iYsIHCnQtuhnvw1EAb2dAePBG270VJHBiRqnx+LFj\nnmSf8LPPAm4CzvuZyvv3I6i0K3vv3jvXmYEB4OBB4IEHJBHrnai4axeKu3Zh9s03ARe3sUY3Rwsi\nohGocEmNjmvmOZTLZR8y8OXLl0UCMGpw+fLlwhl1iTAAaNqxA01MZw6HkevrQ7lc9gUC6ehCSnRy\n4IaGBpH4PHfG43FfOnWxWPQBclLSXL161RfvPjk5KVqP6TaNxWIetyrboAFJA6XSlqHhu4CKlmK6\nAjl2p68P9uOPI3D4MHL9/biyYgUwNSUp0GwjFovJWHTGIOeP4+Pa6dJ5HNvAwIAYDGmQbGtrq6z7\nwADw4IOAbVeqST/5JArKp69T0DlvPHOfPHlSgtp0oBn7RQnOMUUiEcnj0LkVpsFQozVT49PuXmoW\nnA+e38+fPy8SnQFkGu5Np9pzXNQaOY5CoYBONzyZgVkaiFVXUWM/zAzh1atXS5bkv/zLv2A+tGCY\nwrtBuZ4eqVJs791bqX50nSW13qtE7aqUzwPXaa2+ZeQaiVEqVT4PHgSqBPrUyE/hEycQHRhArr8f\ndm/vTbW1IJhCuVwWe4L2CgBzmkJzc7MPtjybzYqVlVJz7dq1wkkpMTSc2Gx3N2a7uyvSPp1GOp2W\nZ+gwXXJ3MwApFAr5vAPaFaiz2fg3z/wamtsMQx4dHfW1ofMYNLAHUJGalMw892p4exOWy1ZHKe3Z\nMb08mUxG+mTmECSTSZ8WY9u2SDYGeFG6dnR0+ODEtm7dKu1Tqvb29lY0m/37YUUiFYbg1pwYHR2V\nvtOGo8FLB12UrjfeeEPmRgOvcP6o+bGtfD7vc9/m83lfQBild6FQ8FR1AiprxnXk2BkSXldXJ2PW\nNUS4F/lbqVSSZ1AL03B85vW6lqS4nQcH0frww7AKBdS7peiDLjJ4OBz2lbO/Fi0IppDP53H27Fm8\n9tprYvzRBjugMhlcdE5ic3OzL8W5oaFBjCw6WhCovGw0nnGTzM7O+lCNZmdn5WXiYnDBEomED4hD\nY/xXa5f9Yfsa1Zdq3uXLl8WdRFVURzayfV0vwKyM3dDQ4EvrZr91eTJt7NKVs9lvE3SGLrCOjg4f\nInQ2m/UBh7D90dFRz7oAFabNl5XHiGg0io0bNwJbtiD++OMIHDmC2d5eFDduxEuHDsmLRlzIw4cP\nS4o1x9Td3S2qtomlqDEMdQ4Jmap2CZLpcSx6nNyLXDPtJpecA4UKxv5yT2sDswbI4XFLu345Zyaw\nULlclr0gkayDgxIiDQDhZ56RDNJwOFw1gvSdaEEwhRrViOT096PU34/iAgEcuRsov2dPxQajQqQt\nuEeK48ex4sIFnHu3w5xvlhzHQbFY9MRwk7NrSC1T8k9NTYk0Jjfu7u6WvyVSrEr6MJ/jOI6vIG2h\nUBAJakaSacnItqLRqKjwJBpOdbsck47W5HeTk5NSKo+GrLVr1wLwFrDVgUpsV2eUmsArTCdetmyZ\njIlGulwu5wNI0XUwOC9UYZPJpA8vsVgsyjOp9jKdvbm52aPFAJU12eJmNjLK8fDhw9JPrh2PGIcP\nHxZNgceU06dPi/by27/92wCA3bt3y1yaxVbPnz8vhkYdkMU9wGfbti1jMY8Reu5prLRt23fk45yt\nXbtW5kFHR5op7ToaluuoM371eut+cQwAMNvbizddYJx8fz9ymzej5dgxNH3qU7AKBXzWsvB3Dz+M\n+dKCYAo1qlGNrkEDA8ChQ8B99wFVAssIjCP4HwprM2hZWH0dMO8LgimEw2E5d9NeQCMXz9cPPvig\n1D2klBodHZWaghp01SwKS4pGoyLlNRArJ5Lfzc7OylmSkkuDqGhDE1Dh2JSg1GbK5bIvZJvP0eHR\ntFm0tLT4QGg16rLpXq2vr/eMAahoPTwLm1WmNECtBnEx3bGhUMhXX0Ny/mMxn9YTDoclBJwSlxrD\n0qVLfYC24XBYbCXMgTh8+LDYGWiYZFtnz54VSavBX3/hF34BQEVDACqAMSZ6NvvR2toqmgq1sdHR\nUZHqtJOcPXtW3I5cR2okjY2NYo/SACzavgDMYWGsXLlS2q+WwatD9c1amTpEna5a66GHANuuxJP8\n5Cdw+vtl/aempmQvcu2CmzejnijSloXTd9vxAahMQDKZFLWKhr5uN29h7969EhXHl2dsbExeHG6q\nVColC2ougGVZvlJrumAJX6Tp6Wn5zqzYq2PVdVEYE5q8XC6LCkw11USIBuCziut+8wWvlivR1NTk\nG0s2m5WXySxIGwgE5DtddZp90slP/J0Wfo3paCI11dfXyxgYqcixVEOC0scePrurq0uYO49kXIv1\n69fL87nxJyYmhNlwfSKRiM+gxmd2dHT4IkhHR0flaKrjTbhmbItRkYlEQpgSaeXKldJf03Dc2Njo\ns/qXSiXZrxQ6GtmbbZBpO45TwdZUgCmO66ot7dol63n27FmZe455tLkZP//DP8S6kRF869w5nDbQ\nvN6JFlYxmBrVqEY+cvbv94DLlPfvn9d9V9euxdmHH8ZpowbrtWhBaArUEtra2oSDUm3b5fpbN2zY\nINJBq7dm8ZOLFy/6DHoaYsss4hqNRn1utkwm44MMo0SwLMtXYj6dTvvyFSKRiC/qjlJk6dKlMgZy\n+3Pnzom2w35MKxRltkVpomMSdEQh/eVsg+p4Mpn0udlisZhPwpXLZQEpofRhTYa6ujofLFxdXR22\nb9/u6QfHMTs765PQulQdtZp0Ou1LJed4Nbwe57u1tfVtS9Vp0jke3BM8gp47d06OPYwWbG5uluv4\nHZ+pi+Vy/Ts7O30aDikSifgMu7ZtyxFOr7WJtcl9K8fM3l4EXVdtad8+XFmzBrh6VVCdL1y44Cuc\nzGdqROj50oJgCjWqUY3emeiqLZfLwHW+5NdLC4IpsHhnLBaTMx05NOPjGxoaPECfQEWqMEDkRbeq\nzvnz5yWIhdySZ8GLFy/68Bd0EJAG6eSzKM3YVnNzs3Bj9m1mZkbOgbq0GJ9BTs2x6SgzSg7btuXM\nzDOuPs9SSlH6aCBbXYFKx9kDcyXotEbEOdBGLp2nQQ2BZ24d7GSCsliWJbYBPovtDw8PSz+0bcHU\nTqLRqFzHteOzp6amRNuh9rh69WqZN2qIulqTSTqngRrgqlWrRBPTxYHNosA6w5Fj4ProQDb2Vxtu\ntTGRz9EBb8DcngPmNAPttjQDsUZHR33aYCwWE/g6s3ZIuVyW+ZsvLQimEAwG0dzcjObmZkkV5UbT\nEY7VVEVd7ASovPjaaAd4ay1yI2iIcvMF1aGnvJ4bUquYZFxXrlyRxeULkUgk5HcNyw5UFkob6oCK\nsY1qO1VLfvLZ7BvbMGMMLl++LP02fd6hUMiD9gNUNr6JwJxIJER15gbW4DOelOyBAViHDiF8//3A\nnj2y+ficS5cuiZGQc9bc3OypFM0+8oXT0apARY3f6VYL430rV66UuWKY+5IlS+SY4TE4DgzAefrp\nyrl8zx5P2jufQQqHwx70LQByPGhvb/d4XABvXVHzhS4Wi7LvNNqXCVIzOzsre8Hcc2NjY7IuXLO3\n3npLhAdTz9evXy+MykT71riT86UFwRRqdBfSwADwC78geQp48knAhWlfMKSyLgORCMo//SnwLhVi\nuZtpQTAFx3Fg2zay2ayo2pRW9PVq5FySBg6hVHvjjTckAo6SgNzccRwf7qB2J5K7zs7OipSmOklp\nvXTpUt8zdVyDBiSh5DJhx5LJpA+lt7OzUyQi3bFaQrMtSgxdBk7HJlDCVYumY7uUpMQ6BLxI04yk\nNN2PExMTc1qP6ybTGY3hjRsBeJPZuH48aiUSCZ+BVBe/ZT4E1fx169ZJ0VlKwa6uLh9K9PDwsLis\npRjr009XcgJcV1756acx7h5PZmZmfFiYwWBQ9h21RkYvTk9Py37SlbQ5H3qfcu1M/FBdwNbULHUb\n1KAmJyflfdB5HNxP7H8sFvMVOdIRqmZxoWvR3emSHBgA/ut/rXzW6M7QAw9UNATXTYYHHrjTPfKT\nqn1QDZqvRtVpwWgKlNjVypkDyo6g1FYrEoH1wx9WUJZcTnrhwgUxOpKjUzuIx+Mi/ShddUSjlhzk\n4FvdfP7Vq1cDqGgfZpCJ7icNVIlEwucm4jM5Xj2uuro6ifBjVJxplAK8Z1azjJ52pZopy/l83hft\nqDUv9r+pqcljhwDmNJfz58/L+Fp7e2H95CcIHj1aedl274ZtuFRDoZAn4w+AB0iHWlVdXZ30m4Zd\nSuWOjg5fqnokEhE36HPPPQfAi7bMalN127Yh8NhjCBw+jLe6upBpbMSwW2SlWCz6ckc0uC3nnM8e\nHh72uGHZf47FzJ8plUq+vJlSqeSDGUwmkz5bj87k1bUdgMo66sK8/M20JXCPVgt8uxYtCKZwXWSg\nNYeOHoV9FxUafS+R098P7NsHuJt/IVK5rw/FXbuQqUG1zZsWBFNgrQEdG86zsS8X3FVbiSc43dMD\ne3papGBjY6MvWINSKBgMipQk9+zr6xN7Ac/Vk5OTePLJJwHMAXtQ8urKQjrX3rT26xLjJihGJpPx\nWa0bGxulH5TutGvk83lpg/Ohy7dzvOl0Wrw1urYD4IWY06AiHB/nPRqN+uomsK+pVEqs/ZRqTU1N\n0jfmq1DSRaNRH4AsvRY4eBCW6xEIBoO+fBVdKcx376FDaL3vPjj9/dLHo0ePiqvupZde8vR7ZmZG\nXJfUCvfu3StzxDVrbW31zQfHOT09Ld9xzVKplIxPB0Dp8QLeGg9STFbVCSXRdc7Pcrks/dUw9Nyn\n1BgymYxoc3SNUvNbvHjx3YmnUCqVkEqlMDs7K4ugDSWAUtX6+uA88QSsw4eR7+/H65EI8OabsiFj\nsZgsFA1m/JycnJSjxQ4XDnzdunViBCPl83nZRJxsuoni8bhsej4zk8lIGzo5ySxfx35pZGptNDIB\nOHgs0CjAfGEDgYCPKRSLRbnXPHalUilfVetyuSwGL309GQnHwliQM2fOiDuM86KBXRghSLdyV1eX\nMDZBrhoagvWhD4lHoPTEE3B27RIhYNaa0G4/59lnEfzwh+Xewo9/jAb3qLB06VJZFxaW5diy2awY\nIWm0jEQiwhw1EAzXwEwHb2lpkT3BdXEcR+aN66ijbs30e32k0OtuYnnyt0Ag4Fv3VatW+QySOq9F\ng+oAFQPv9VZguzsNjXv2wPmjPxJ0mfcKhU+cQN1f/iWi7jn5PUkquQe2Devw4Xnfaikoeth2BZq+\nRrecFoSmwBJokUhEOK1OYwYqUsvMThwbG5OS5QwyiUajokIzuIOq3dDQkEgsGqrWrVvnS7Fes2aN\n3PvUU08BmIuY7OjoEK5MKUiAGEC5w5SE0/UY+Bs5OiXBqrExtHz2s0ChgLpwGFcfeQQhdxx6PrQ6\nrlGtSXy+WbHo8uXL0m/OQSwWk/k1cSR1G/xt6dKl8iy66kqlkk/tpao7Ozsr7mGpVXDvvQir41/x\n3nuRy+XkXvZHo2NTkgbuvbeSU+AWf0nv2iXawezsrPR3o+sapTa2Zs0aGTM1gcnJyaogNaZ7Whsh\nCdSitTz+zqMI969OQdfAN+Y6hsNhkficN32k4DzrLFzuV139i0ZyHkG1pnO9msKCYAo1AhJDQ4AL\nigFUQDLw679+h3t168np70fJPf4V7723Yqx07UHXorKCos/s3o3irl2Ae5yp0a2jW1FgNgjgBIAL\njuN81LKsLgCPAGgB8ByATzuOY1+jDSlHT6lOLq4zBc0svJdeeskjwYEKhzcrIVFajoyMiBThZywW\n8wVFxeNxyaZjJtrBgwcBVOL7zYKxpVJJztg6MMc0JuqsPUpEGkivbtmCRaomRdY4GnHsOr6f2gbH\nt2rVKpk3ns010rJZet2yLE+4N8dihk9rOw/Ps9ogZ1bA0v2jZkHk5vXr1yO5eTOweXNFS5qYwIUL\nFzz2GQAeuw2lbyQSAdauhb1iReWZ587JvAeDQY9BWc97W1ubaDs6EMtEyPZI92eeQeDwYUT37EG5\nr88DRcc+xmIxMUDrqlhsi6QzXKkZsm/5fN7nImZbhULB484E5krXA3NaTyQSkd+pMVCL1JgW86Vb\noSn8BwCvAmhw//+nAP7CcZxHLMv6WwCfBfCVazUSDAbhOI6oTvzkRp6cnJQXiQk7L7zwgkwuX/Ji\nsSiTRkMTN05jY6PEG5jRbJoCgYBEMtLnzSKnQ0NDgjHY4xZinZycFKsvX0pd0VmPkb9poyMAnFuz\nBvXf+AYSx48j29eH3JYtKLoGRI2opOHf2XeqjJ2dnfJi8Hq+sLlcTjadhkLXLwTgRZYic+A85nI5\nn8W+paVFNjpfbJ2Mw+MDmcKFCxeEmZqAI8Dc0UYbL001PJfLybrzZV+0aJEvHoTjTSQSPk+Qhkrn\nJ4981uAgwqpyefrRR1HX2SkxF7oCuZnmrNvk+HSBIM4tx5ROp4UBmpGe2ltB5qPXTIPsmAhaJG3w\nni/dlKHRsqxOAL8E4H+4/7cAfBDA99xLvgngV2/mGe8nyvX0YOLf/lvkXGZToztDpkEzdPTone7S\nvCl4/Dhif/EXiLhBWjdCN6spfAnAHwJIuv9vBTDlOA5DqEYAXBMcjobGRCIh6bdUTykdstmscFRK\nkaamJlFnKXkvXbok6cP8jpx96dKl4l67lu+WkpNGS3Lqc+fOyW9aVdSpvuybWfhVSytKdHLxdDot\nUt10TQaDQV9ZulAoJO3z6NTe3i79pLSkRtTc3CzzQYmqMRf1scSsa8F+lctlUW11AV7ey35TdQ2F\nQpKDcebMGQAVjUG7RIGK24yRo9QQNVwZn09NJBqNisbH42YsFpP+arctUNEQuQZU1RsaGiR6kkes\npqamSqzMvn1ztTXDYeTdmpYcOzXWQCDgQ2fWEH0knTauNTKgspepWXEv6GOpGbehS8TpY69lWbAG\nB5H8tV8DbBuxcBgT//RPmNq06d2LaLQs66MALjuOc9KyrAf4dZVLq+oulmV9DsDnAFy3dbRGNbqd\nVO7rQ+aHP5yrXL5rF6A8PAuVAkeOzEX7AojcYAHlmy1F/8uWZX0EQAwVm8KXADRZlhVytYVOAFXN\nw47jfBXAVwGgubnZicViaG5uFg5KqaM/eaajBAiHw55inEDF9WbmDGhoLzNL8lpEhkXpo8+F2iXE\ndnXFIEoljWQMVLi6WSdCSwzTkFlfX++L8NQGQd1Hc3zaxuGJDIS3FJquK8H5M6tpJZNJT6Qhx6Iz\nN4E5aRwIBETSUaPL5XKiBVDSLV++XGwJZil4Da6jowEJEUfprSHdeL12NbJdyd1obRXbFCMgE4mE\nzAfuuQe4557KvKfTMiecS/bfBNnl2LVWpbUw03CYzWZlPsz1LBQKPsRu7eo20cLLe/ci5Go4NFbP\nzMx4bDbzoRu2KTiO8/84jtPpOM4qAL8J4CnHcX4LwNMAPuFe9hkAj97oM941eg9lXUafew5NX/kK\n4m78Ro3eP1Tu60P60UeR/8//GVcfeeSGC83ejjiFPwLwiGVZ/y+A5wH83bVuoE0hFApVjX0HvHUP\nNe4BpZiWarRLMKR1ZGRE2tBwaQAq6EFu2K2AhezZI7/rUFm2QanNtlpbW0WL0ZBn/JuSlOd9x3FE\nWnN8uVzOl32pszwpVbWb0MwobXjlFXT8+38Py7bRFA5j+Gtfg6U0LT5L55fozEO2y2foAq1AxXbB\nddFuLv7Oszbv08FAOgyX80b7QTQaleezXS31TayC+vp6uZ6SOZ/Py73so0a8MoFem5qaxNZEjaGu\nrk5sFDpcne1rAGCgooWZEHC6rIDUelRnf7bLOZiYmBANkdoj98vU1JSvylm1WpK6DzlXw7l48SJw\n5QouX74s78Z86ZYwBcdxDgI46P49DMBfwuad74dt254yXFT9SJZl+eL5aawD4AFnYbQiVUyq0KlU\nSq4T15oBxOE8/TRKu3bJsYSx/lyI5cuXi9rGjd7W1iZ9oaFRq8mmgU9jBuoIQtNIpV8QXs/ftFoo\n6vLQkBQadQqFSqHRBx8EUEn95ibSiNamq1P3m2Ohy1MXPNXQciS2xcg/7T7TaNt8yWkg1ejMJM0Q\nOff62RyLNvqR6Zm1JjRp9xz7RqHx1ltv+dR1MqdQKCR7gtevXbtWrmN/tJpvHil06r7eQ2QCnGc+\nc2Zmxle8yLZtX0k7fYTj2tEoOzo66otPuRbdnbkPt5AcA4jDuf/+O92lG6ap7dvhhMNwgkE44TCm\n3aSvGgGBY8cQ+sIXEHDjTWr09rRgwpxpQNFGKmBOxdTFNjWUmRlLvmrVKolGpETifWNjYyL96LZs\n3bQJ8R/+EKGjR1G67z6Ut2/H5MWLeOWVVwDMZf7RtaalvHYNmZqNjl7TwTH8vzaWckxmDoa+z6yH\noPMFqC5f3LAB+PM/R9MLL+Bqdzdm1qxB2NUKNHSdRnOmZGF/bNsWScjvGMCVSCR8AVnU8vRYdL0L\nrgGf2dTUJFW/2G59fb0nnRvwSmi2p6sxmejZ9fX1PkgyKbV37Biiv/zLgG0jHA5j+vvfx0x7u+w1\naiwrVqzwAZho+DSmjXNPbN682Xcs0dGrGq4PqKynaXzMZrOyfjS2ck+n02lxm2qAHpIOMtO1JfQ8\n6t/mSwuGKdxJKvf1we7rq1pQ5G6j1D33IHXPPde9Ed7LFDp61OOqCz/zDPDxj9/pbt00RZ97DvFj\nx5Dt60PBRe26FbQgmALPg4lEQiQXP3keam5u9tUcKBQKwqnJ4RsbG+VvnkG1C4nt0rZAuwDgDYtm\nVScyCoY9a7emdg9SyuvAGRMiSxvzquVbmJJOayLmOTkYDErfOaYVK1b4zrha4pkgK8ViUbQNrUXw\nPGpqWtoF5zgOrMFBWE89hWBPD+zeXl/1qPHxcc/5GKiA2tAATONsPp8XY5jpPtNx/TpfxFzbZDL5\ntjH+hXvvRSQchoNKXsnktm147bXXZI33uMFJGzZskDGbAKunT5+WkG2txZpaiXbt8jdqp3q/ajer\nWR2L421oaJC1oMZA4ODoc89h6e/8DizbhhOJ4NK3v438jh0e+H4+U9eWmA8tCKZA1VZXjOZLq1GS\nTdCKcrnsi3NvaWmRF9O0aC9evNhXLCOXy8lmozEslUqJSkl1j5uW8RSAN4pNF3llu/zbZA7RaNTn\nTdCx+GYJOh2/rq3hOhmI1+tEG91+sVj0FJ7hb9ykfFa5XJYXTjMxjk2Suo4dQ/xjHwNsG23hMK58\n5zuAa7nXBk16XMhUFy1a5LPA27Yta8AXiPOtYy/02LkHyFgSiYTPsCjgJr29SH3724gNDuK5hgaM\nOw6eeOIJiUngcWbFihW+4iu6RCHnhcee1tZWD1K4vl4zcs6ZBssxYyo06dwUPpPvwejoKDo6OtB+\n+LAYlVEooPzUUxhfuVL2HNfasixfkeRr0fvC0Mh48NDQkO+3updewop/+Ac0uDaEGs2Pgip6zioU\nKqneC5C49gAw8/nPY9z1SN3tlOrtnTMqh0JI3WBMQjVaEJoCjSGBQMCnKlJtWrlypScSD/DmQ1DC\n6FLx4XC4YmRiPHgkAvzTP6G4a1el/sCJE2j+vd8TFQxf+AJmtmzx5C3oCDXA6xIS8I9AQCQLOXQ6\nnfZIGU3VjhY6Io/tU4qUy2WRMJQYY2NjEg9AyaVLxfM3PS9mfH4wGPThR8ZiMXGNsf985qVLl0Rz\niu/YgVaV6j25bZvAsHHNYrGYuCepKWjEbo5zZmZG1GRd68KcR+32q5YToFPTgQpDSPzKr1TWPhTC\n8Ne+hiE3evHAgQP4j//xPwKYg5vTeRzVwFYY/0JcyEgk4oFm0/dprYXrODU1Jdoo+11fX+/Ln9CR\np9S0OC9Mu59dswYzX/gCml94ASNr1+KsZQGnTsm8cB8WCgXZO/OlBcEUbicFVMabY9uIPPtsJZYd\nldhwq1AQFazpxRcx46ZF1+idqbBzJ8a/+12Ejh7F1PbtyG7fDpw6dae75SGtzQBA3YkTlQC19wjN\nbN6Mmc2bK7al6wxlfidaEEzBcRzk83kUi0WJ6jLRacfGxuQMqDmrGRev6ylGIhE4Gv4rHEauvx+l\nUgnBYBCFe+8FlAFqbP16zM7OIpfLCbcWEBQV3cdn6sKr7Dc1CsuypL8msnIgEPDFradSKZF0LLKq\nJYYZrPP666+LpkIXbF1dnbShawKwPyYISrFYlPM6+5HNZn1BQJTis7OznuKqWLQI9i/9UiXA68UX\n8fzzz3vmqq2tTVy/tPNEo1E54+q+mkFOWjsw6y8WCoWqEtm0u5Tuu0+Qv8uhEC5v2oS0qymsX79e\npLA2kL6dizESiYi2w3XNZDK+fBVqANFoFKGhIcQGBxHfsAHprVsxOzvr0dxIZgSphsaj/Yr7S2sW\n2rKgDdEAACAASURBVFjNds3codnZWV9t1WvRgmAKRBCORCIyWZwM/RJQTdYFRswMy1KpJGpsZ2cn\n0NWF+n/4B0QHBpDq7UVu40Zgdray4bdsQeZb30L+pz/F1LZtGG5oACYnPWqkjvQDKgZQ8+Vqb2/3\nGTx1WLaZ4EQmCHjDornRdUgr4D1ucNOOj4+Lms/QXD1/JsqwJm7kqakpT7IY+8Hn09jK8Y6NjYmP\nXrfFuAY+u7+/X+aAzyKi9urVq8XCT2psbPQhRg259p/GxkaZPx6NNES+Tnoj05B57O1F6Qc/AA4e\nxPONjZhcsgQtbl/7+vrkKESqZtDVa20C44yNjYkAIpo3mUjDK6+g4bd/G7BtNLqG2HxXl0TI8r5o\nNCp7gV4CPQ4TTEZjNOryfDxGkwnTUN/e3u5LvrsWLQimcLvJ7u2F3dvryXQj5Xp6cJ6b1AXJrNF7\nh0q7dyPb3Y3J48ev78aBAViHDyPQ339DqOGhZ57xHF2iAwPAxz523e3cCVpQTMGyLJEY5G6UQloF\noqTR6jK1hwsXLoih65R7xqW6VyqVRCJSktq2LWobJUxLS4sHJ09fr92J1GKmp6d9EY0AfO4+bUik\nNNAJTqbqrw1nIoFc9b2lpcUXi6CNoHw257FaHoCuQ6D94czjYPscWz6fFy2Mkk4nd9FgR42uoaFB\nxketpqmpyZfD4jiORIxSc6KBcnp62gNFBlSkpoYi4/zpUmn68+LFi7InODYNMGOuhTU4KPUl4uEw\nZn7wA6C5WeaZ0t6yLF96PKMSC3v3zhUtCoeBBx5Ae3u7B4kcgAfBXB9LOBf8jnOWz+d9LutEIiHv\nhC4kw/GyT/OlBcUUavQ+o4EBWIcOwdm/H7iFLrWbJUvVpnDgSv2PfvS62iju2oXZf/5nhI4enQNq\nuc5sxTtFC4IpsOBqoVDwpc5qww+lnuae5Jo6g47SnRoAJbpGtqVU0eXA2H5HR4fPbkBu29XVJVKB\n7WezWR/EmK52ZZ7rtbFSux+1UYvX6U9eB1RsLgQH4flxyZIlcq9pa9H1BbThTts0OC809vE6qe4U\nCskcUSKtXr1abBqUwtQKwuGwpwQ9UFlPln8LPPSQVHuyfvpTYM8egVljG7lczmcQ1DYFbWyjZmPm\nAYyPj8v1hNcLhUIylzrC03EcBPbtk/oSTjiMjFvBiq5Zjp0GYWDOMK7TvMvbtwNuxi7cEnCmdhIM\nBmWO2B/aYS5duiR7TEfFavcx54V9MSEIW1tb7wiac41qdP3kSmOwUtShQ3DccOM7TRqOLdXbi8LO\nncD7qEDtgmEKlCAmJBW1Al3jUGsR1XIIyDW1tR/wgnPQWptKpeR8SrtELBYTbk3pSgmwbNkyaZfX\n63h9cvHp6WmJrad00LYQM2hIQ5eZLicNrKHLt1OL4vm7q6vL14YJp85nsY+URKRIJCLj4jMJQhKP\nx6UdSu22tjZfwVNtx+D6mTDtcFPWCW5jfeADsJTtRBdI5ZlbB3OZORK2bUvfOG8az8CsqRAKhTzn\ndPaX1+VdsJJMJgPkchgfHxdtQNs2qB1xv2hbCL032rPC6+hpaG5ulvZM93okEhH7Asfb2trqK36r\n3bxmLVGdxTpfWhBMgQlR8XhcNiIniouoASd0vgCpGngG79UbgpNmFuDQ95VKJZ+ngm3V19fL4lFt\nbm1tlY2loxyphlPd5DPD4bBcr91K5ouvyaxR0NHRIaq2BtYwjw06lZZHBKqWuVxOknzoRuzp6ZEN\nxntp7B0dHRWXJFX6WCzmM4bxxdYGUraVzWYrTKO/HzhwADh4sFJJ3H1+NfxBMw9B/12teCvXR8d2\n6OuACuPidVwX3QbXhb+dP39ejIN0r0ajUXnxzbk6deqUpFrTiNrS0uJDyNZFjkgaDcusZp5IJKpG\nyHIsZECkVCp13SArC4Ip3BS5xipr//5KCbJ3gSInTyI6MIBcf/8N4+DVCMCePZV/AHCdBUtqdPto\nwTAFRrXpyDpgjkNOTU15JBxQqdIc+chHANtGMBKB/fjjKPX0eEp0A9UNduS2Gh+Qz7Isy4f+KwU+\nX3gBi/71vwYKBTS47qrw9u2+fIWlS5dKjLyplVSLnCsWiyLxKdE1pqOZ9dje3i5wczrikFqJqUJn\ns1lP/QbOATMEWXdh9+7dYhjls+hifO2116SPGhSF4zOhxizLkvnjfZOTk3LM0C5J3sPIPF1wlv3g\nc9LptK94rz56cv50zgZVf46ttbXVVzUqk8n4tCkeM8+cOSNzabpUAfjU96mpKdEaGIjX3t4uf7Mf\nU1NTsi4mRqN2NeqoS/PoSUM9MPfecB61BjpfuquzJDXO/XxKkwePH0fki19E8HoDWRTFBgfnCsEW\nChV31Q1Q3UsvoePv/x7Nr712w32pUY1uBy0YTcE0GFIyamlCiUgOHN61Cw2qrHmuvx/pdNpzRgQq\nEixy8iQSDz8shq3oN7+JXE+PJ4xWn8coZdgPgdbauRMNdPGEw8j19aFYLCJy8iTix49jevt2ZLZt\ng+M4wvl1RSYASL78MpZ//vOwCgV0hMN44b/9N8y0tophkuPUhVVNZOhkMikGVRqteH+la17oumpV\nqWKxmMdGwbmq5s7kfW+99RYA4Kc//SmAiiSqVnmK/+d3lFynT5/2VK0icc3oZqVkb29vlzHrzFJ+\np6HLTJckjahnzpzxZV8mEgmPZghU1pj30nbymsu0U6mUBGfRrannj/dxvJ2dnb6Apra2Ng+AClBZ\na+4tE+hVGzJ11SjuSc5pKpWS51Pr0IZmPmu+tCCYAtX1WCzmWzytcnNDSnr1pk1Y8Y1vIH78OPL9\n/civWYP01as+db1QKKDt6ae92ZIDA5jt7kY0Gq2KUGwaqzjZV9auRdAF7LD37oW9bRvCQ0NY/Lu/\nC8u20RIO4+UvfQlvLV3qS3ARpOqhIcnODBSLaH/1Vcx+8pO+dGrN3Ggs4oaoq6vzlaXTmH584fhb\nU1OTMJlqUZTVqnSZKEENDQ2+smevvPKKMFUmDGlwFq4nGdapU6fEAMtU5Lq6OjkunHRrIHLeV65c\nKe3ro4JZtTubzfqMbZzP5uZmQXvS+TMmJmY4HJbncm6pvq9YsUKOgzzWlctlT0q9ObcmdmVdXZ0P\n6EZD3psGwVgs5qtirY3Q3CfT09Myf2b+x6JFi6rmv7wTLQimcDOU6+lBrqenahivpvTOnXBU/n/G\nTZ++Ecrv2IH8jh1z3HhwUFBwrEIBjc8/D7jSpBpl+/oqfSkWUb7FABm3g6zBQViHDiF0E3O20Ck0\nNITw4cPIbN5cSQN/H9OCYAqBQEDUVnJQUyIlEgnhjCxrPjExIcY2XWhWymjpDMfly5H/q79C0wsv\nINXbi/SGDUAm48k60y4vE0iFmkJLS4uoY7yvvH8/nL/8S6BQAEIh5Pr7MTY2hsHBQQAV1F9gLgIu\nvXUrTv/t3yJ58iSmtm9HursbDao8vVn3QauM2j1nHns0SI0unAJUpCVdh5Te9fX1Pt++NvoBAAYG\nJA+gPhxG4+c/j0urV0tba9asERXXrEeQTqdFK9B9pGqu4epo2KO07HUZ5eLFi335G4FAQK7jGiST\nSU/RW2DuGLZ161aR8jrCUnJRBgeR+PjHZYyXvv1t2VfUCoLBoIyT/dBS3sxHKBaLOO8m2HGuVq5c\n6Tsq6ChbjoltxGKxqsZyU4uemJjwQf9xLnT786UFwRTeLZrt7kaetRBuoQussHMnrnznO4gODODi\nxo1Ib90KnDjxjvdktm1DZtu2664I/G6Tpyw7gGWnT+OSGx/xXiGN9gy4xuRPfOIad7136aaYgmVZ\nTQD+B4B7UKku/X8CeB3AdwGsAnAWwCcdx3nHTBC6VHxSCt7gFHJ7Zqnp3AeN6quNT8Cce2lqasoX\n2KSNMNrFY9aT0KAeunCpXPPgg8CDD6I5k0EzgOHhYQ86tG5fnzfZR5bNq0Y6olGTGbUYDAZlfBwX\nJZ0uRa8Dp0z3lhk9ad1771weQCiEN11pR0m6ceNGX6AZaWpqSgy2tHGsWLFC2tcSnZKTAVk05jU0\nNMh1uo+cK/6mIx+p/XAOdH6BCXgDeMFYWJiVmg1djY7jVEXUJvE3XcCW/aVm29nZ6cuE7ezs9AH6\naA3RBIbVGbbUDmzb9gVb8ZqmpqaqkAHvRDerKfx3AD9xHOcTlmVFACQA/CcABxzH+RPLsv4YwB+j\nUl/yHalcLnuq7JJ0iCgXm9bcaDQqqhk/dQozr9epqCZgR6lUkut0Ci1fWqqgVMO14UZH7pG42Vat\nWiURj7yefdTxGBq9WMdO6HY1yIqO+DMj+CKRiIzPRH0KBoOeZC3Oi1kfUdentCwL6OnBtKsFvdTS\ngjP5PJBOiyW+tbXV1zedUm5WgI7H4744iPPnz8vGNT0TiUTCh805OTnpSw3XgDt8Qfj/hoYGmQ8d\nDSjw97t3I/PDH6J04ACubNmC7IYNyLnzYMZD6H7rMoccJ5/T2dkpiFg0nr744ovSX/ZNh9Sb1aev\nXLniY6DAnLdJx3KQeGThb+FwWI5w86UbZgqWZTUA2A/gdwHAcRwbgG1Z1q8AeMC97Juo1Ji8JlO4\nq8kF5HD27wd27rzTvbnlRJCayeeeA1588U5356bJGhxE4MgRlO+7TwBUyn19mN28GVn3ZXo/081o\nCqsBXAHwDcuytgE4CeA/AGh3HGcMABzHGbMsa/G1GiJGvmVZPs5LjppKpXzFTHK5nAemCqhwb3JX\nuufIPW3b9sWq5/N5kUAaFsv0BWsDjjaaYWAAcA1xiERQ/vGP4fT3Ix6Pi2GK0lrj95kIxdls1lPO\nTdqH11ikAVVMuLe2tjb5zoRvy+fzvtiLhoYGT9VrwJs8xLZ4/Dl37pxPO+GxD5iTWLoCuAmC09HR\nIX2iy3Z4eFjm2Ux+0mSCqADwHOX0WPXYdb5A8PhxhNwoWEQiyD72GAo9PQAq0pX5DWYdB11BW8Pm\nca2o2eh9wiMWDauvvvqqD1KwWCz6krV0iUBqqroQMPcr97c+fvFZOmfiejWFm4loDAHYAeArjuP0\nAEijclSYF1mW9TnLsk5YlnXCLKl+V9HBg9cVVWlS/alTWPrNb9YiG28BBY4dQ+SLX0TMBZCtRh7D\nqW1XEJ9r5KGb0RRGAIw4jsMyvt9DhSlcsiyrw9USOgBUZVOO43wVwFcBYPHixQ7PyOTyZo2CQqHg\nqXpDIrfUZy+6D5nG+vLLLwOonH955mNbOjOTkuvChQuilVBK6hRgPt+yLOADH4CjoiqL+/ahXCoh\nlUr5kHXNMnCRkyex+vd/H5ZtY2k4jJN/+qeY3rzZl3EZDAZ9dQgKhYIPHCYQCMhZUoPI8HpKcmpf\nOrtTR8yZRlDOgW3bvqhIXUq9Wl0JalWcA102nX2dmZmR382AolwuJ/Ooc0PMXIPQ0JDUeFgWDuPc\n17+Osmtc9MSwsMq4Wi9qKa+++qrsGY6TGkA2m/VpCuFwWO5l33TGKI281BRffvllaZf9b2xslO9M\nl2rOTdkG5mw+GoiIfRsfH8frr78OYE5L09B/b2fAfju6YabgOM5Fy7LOW5a1wXGc1wE8COBn7r/P\nAPgT9/PRG33GXUF79gBPPgnn4EHg/vtRdlXR+ZAOegoUCmh+8UVMuzENNbo+Mt2KiaEhwGUKmpz+\nfpSeeALOwYOw9+xBafduwMCUeL/TzXoffh/At13PwzCA/wOVI8k/Wpb1WQDnAPzGtRphFmA2m/XV\nwpPw4itXfIVadfYgOamuDUnJRa7c3t4u5zZtged5jGev1157zecGo1S7dOmSSAOBA+/vR8ENtpl1\n+/vmm2/izJkzAObCeXX2oGVZyO/ZU6lMVSjACYdRuu8+tLS0+EJ49RmaklGf1zVMHaUC50OfkSmN\nddgw51IHi3HONRAN4K05wD5NTk76zt+6UCo1BUr74eFhHwy5rm/AfmtbDu/l+mQyGVlHPjvX348o\na3iEQpjculU0klKp5A3q2r0bpd5ezKZSQDaLN1xUpZdfflk0z2oFg7kXNIhu7Pnn0fziixjv7sb0\n5s0yV8Fg0Oe61NmxdLkuX75coOf4LG2j4RrrWhz8m/s7GAzKc9k+tRNdmHm+dFNMwXGcFwBUM7c/\neANteVxkZrpsLperWqiVLyiNeNrtSNclVWNdDo4Tevr0aQ/WIlCZeJ3UA8y9XC+++KKvKIjG3ecG\nGxwcFAATXUiV/bYsC4WdO3Hxf/0vxAYHMbNjB4rd3YiqfuiN7DmyoHI8MKsV66IxZKo6SYrgINqF\naW6YXC7nY8j8v46D4DwmEgl5uc2yd7FYTF5uGnu1v58Rnu3t7T6QEh3ZavrxteuVL/7Upk2Y+vrX\nkRgawvDy5ZhasgRllUTGMbCt2dlZeRbBUM6fP++phA3MMaf6+npfbET9qVNY8od/iEChgK5wGM99\n4QuYUccgM0ErEolg48aNAOZKz7W3t4tR0KwrUW0fJhIJH5rWzMyM5AXxO40VWYtovMuIeRT5fB5Y\n4NGNC52YBzNlFKy5XRQ/dgwBN7HNKhTQ/MILuHgdx8eFSguCKZRKJczOzmJ6erpq5SSgYpAxI7m0\nm4jcU4NKkKOTY+dyOZHuGshCY/QB3toEVM3ZjwFVXZlcPxAIiNShUW52dtaHB8k2dNl0HaBEYn/5\nqfMzdOy8aZSLRCIiwU3pY9u2qPyUOslk0nMcASpaAftJ6cpxxOPxqmnP1NyolfCZmUxGtAhqBWvX\nrpWoxWr1JFirg/ctWrTIZ2BOJpPyN9Vmx3HE2Gcan+PxuLSn9xDXjMbFxsZG33FKA6uYpeqK+/bB\n+au/qhz/QiFMbd8umm0qlZJ5ZB+3bt2KdevWAZjLKI3H4z5MTgmqUu5eXZ7eTP5zHEfWzzyCAN69\nNR9aEEyhRjW6G8nu7cU598hyrqurUpz4ZrQ9F1owsHfvDVWlulW0IJhCsVjEpUuX5DwOzJ3ltGSi\nJNIx4pSMOg+gGpovfzPdhJ2dnfK7rvbD5/JsRs5+5swZKaT66quvyrPJyRna/KEPfQgHDhwA4DfY\nNTc3+0BldPabLiMOwIP5wDZs25bxcUx6PugO4zUzMzMiBbXBUdc84PUmdgOvb2xsFKMYDVmlUsl3\nniUVCgWZP2aKbtu2zYPQrZ8NzCFH06iotRkN2EvJqDVK0xZDSf3EE0/I31zH9vZ2uY5zOzk5KSCr\nNARyDuLxuK8eh2VZSLvHv8lz5wDXFc1rqDXyTL9x40bRmEzUbQwMIOAGwUUjEaR+8APkNmzwhVlr\nGwt/y2azPng/Pbcm0Ou1aEEwhUKhgLGxMbzxxhti9LvnnnsAzBlkGhsbZaNwETs6OnyVqPUEmKrg\n5OSkqJZc/ObmZnkGjYn6GWQO3CTr1q0Tr8Irr7wCoGKQY3+5+YPBoDyLUWb6ZTcXT8cH8OXSSV5U\ntXV6rYl8rL0xJBrONDIw58WyLLmeL402ymnDHlBRXU3Dro67J0Pkxi+Xy7JZ+ZuO5tS4lmYyFdX9\njo4OX65JLBarisRsRgay/yMjIyJwCLbS0dHhQ2jS+Qo0UvMltyzLdyTTeTNmbMnMzIysPxnp6tWr\nfQAwgFt6T1elsm3g4EHMLlsmY+Z4NRaljsA106lpJA4EAu96QlSN3qcUGhpC6OhR2ExFr9FNkaOC\nqpxwGPkqhXGCx4/DGhoCbjNy+YJgCgRZSaVSwqHJsRk/XiqVhBtSgi5evNgHxlIoFDzlyYE5qa8R\noSlN6urqRBvgkWV0dNQnnbSUoIGR3+VyOZEGlMyhUEjiEygxdOx+Ne7NMZhqfl1dnU911SjU1QrQ\nUIJSzdep2XxOLpeTvunCpKbxltItGo2irq4OoaEhJH/91wHbRiwcRqcbickjC7WwXC5XFRqvGhqy\nGV/BcaxZs0bmlO23tLTI2LVhWhuUgTltZunSpR5EZfaDe4H9WLVqlWiNOqOV15uuPZ0CT+IenZmZ\nkb95ZGlqavIZEyUGZdcu5B59FKGjR3F582bkNm5Ednp6rpDuiRNI/OqvSs6G/fjjmHa1r5mZGZ92\nySPd8PCwuIPnS3c1mnON7gyFVZl1y43EvC4aGAD+5E8qnzUSKu3ejfwf/AFyVdyanojNG8ixuR5a\nEJpCoVDA6Ogo1q9fL2dySmNyeO1O1FLNzLW3bdtn2CM3L5fLPiNaY2OjTyrEYjFPxKNuIxaL+SCv\nSqWSB/6KbekycYAXxMVMAtMuL/ZDRx5ynBpoxARbvXTpksTAUxIRXEQHKekoTUoUjknDn5lVqSQ/\nZc8eJFxVt+y64gKBgNhdON5AICCSUDArjhyB9clPisTDgQNw+vrkDEw3ITUFy7JkD1CLbGpq8mQq\nAhVNgWvFttjvZDIpc6VrPXAeqNmsWLHCB5SqCwGbBs9CoeBDDteGW13piX3l77okINeK+5X7t1Ao\nzMG7qaK3CIeR2b1bMihnZmZ8NifuabNi1HxoQTCFGt1dVNy1C/kf/QiBw4fxxvLlmHFV7vlQ5Nln\nPRIPBw8Cd9D9drdQyQWCiTz7LDK7d1dK27uITreaFgRTqKurQ39/P+69917JNzfdVsFgUKzadPVc\nvnxZzmsarswMt5UcBWWdN8t5A/AUpqW0oZ2BZ+9kMulzvenQU21ZNysmURJkMhlfYFBDQ4MPS4Kk\nA1F08A3PzBzT5OSk9Ju2BEpSXWiUzx4eHhaJTO/J0qVLpU/UZrTk5Xzk164F1q7FaydOoEkFFQHw\naDy6khQA/P/tvXlwXNd5J/o73X270Qt2giBIiItMkRRJcAVAgLtGjm15HY2tjBM78diecmXK9TIv\nk6nETmom71W9VGLHNbbjeIk0sR15HMu27HiJLMm2LIkbQIAgZUqiRGshLYIbiB1o9N73/XHv7+C7\n5zZFQCKhltRfFavB7tv3nnvu6e/7zrf8flPbtyMhuhSxbx8ymYzuZCXvA59FY2Oj9hAYB4pGozrQ\nmdqxA/mODk8mwEzZSQYlFjglk0k9XsYRZKpYonDxHCY0Wjqd9qVG+f1AIKDXBOddpoWlBefcmHgX\ncr0mk0lgwwaojRudtXjhgvaYJUSgJFPmGBe09+F6SVVVFdavX4/t27f70lWy2YYQYKx6Y50AMPtQ\nJI2ZCbNm27b+Qcj3zLSmrOc3cRbPnz/vqawDnPSWuZhkzTnvSW5rTDw+y7J8HALSxTRp6WSgjPeZ\nTqd1xZysIzCFc3Dp0qWSwTCTP4GLanR0VM8DzzE+Pq7TjSY8XSgU8tHujaxZg/B3v4twTw+q3v52\n2Nu349cnTuCXv/ylvj4AdLvR9+XLl/taikP9/Yi9971ANouwZWH8Bz9AccMGD3COvPdIJOJrtKqt\nrdWAOxLhWVaAAt6UpInRmMvlfETBEiauFDkNP5dGz0Qf57OemZnRSluSK1MZ8PzLli3TfTYmOU2h\nUKhUNFakTKSnB4Ff/QqBri5fdV6uvR259nZE3KzCfCUo6AJtANaRI8CGDddh0BUBykQpkCGqlJsj\ni3zoRhKU4uGHH/axEskUkWlxR0dH9d+02plMxgMqCjiWxWx7lZR1tNBMm8puQ2r7RCLhgU6Tkk6n\nfdZYdkLSOtH7Wb58uT5eApWyKIqWo6mpSadwTbo2mQJlEDWVSvmCoaFQyMPEBHhTmDxff3+/vvfd\nu3d7jkdPD/DWtyKQzSLmps/C7lyNjIzo67MI7Kc//akOMNJDYEdnQ0ODrzs2t2vXbJu0ZWFq2zZc\nuXJFj80MVmYyGe3hyGpEegqlQGI5X1wntm37AoeypV1WlXI+ebxshTdbnOXaMaHxzp0759ki8Lx8\nVrJqld/hfcqemvkSzJaFUqjIG0wERJ2dzTpEwK5SuB5S6OzE5L/+K0KHD2Ny61Zkt28H3JhPRV69\nlI1S0IUsPT3Ootq/30E1Ep8zcMPA0OLFi7Um5V46Eol4QEGAWc0bj8e1xecebNmyZVrzyhQg9+S0\nBgwCySIqWpGxsTF9HMfY3Nys94GyHp4igTV5TZ6XZbcyYGZ6CkuXLtXdfSxOqa+v1+M2i3uUUtpi\ncDy5XK4k70Pg6FEEDx5EwUU7liC63NcznrNkyRJ/3f1tt3kgz9T+/fp7Z86c0cFEzt9LL72Effv2\nAZhND9KDiUajen8sPa+kG+i8dOkScO4cRkZGdECU5epcGxMTEz6mpYaGBh9QqgyMSjh5wPGqTAJd\n6QGavSzhcNgTGwCc51mqD8FMq0vuBpNRampqSq91jmN0dFQ/UzOGI+kB5iploxQAOArh9ts9OWyp\nGHhzdNtvuukmHD9+HIDXrTYnXmLym4xMFy5c8AWyIpGIr2ZAumzmD1S2/sr8sInfJ3EQucB4Xllx\nyOMlOItEFQYcZUb3l+6yxG2UtQWAN3oum4h4fU3se+QIov/xP+pnMPOTn6DQ1qbPKd1YwOnrIDkP\nW6LR3Q088gjUY4+huHcvAt3dCLku9NDQEA64hTcM8LW3t/tATVgNmkwmfduZVCqlt3BUjGNjYz5k\nKc7F0NCQVjY8VyKR8AVGZS2CyWGRSqV8cyprRfgq59+cK+n6c4z5fF4rASoxvgYCAR3Elcqd1+Bc\nTUxMeM4HzK55CcYzVykvpfDYY0AmAxSLzutjj3mUQkVuvIR7ejyuf/DgQcBVCvOS7m7nn0HuU+4S\n6u+HdeQIYmvWYGbz5td6OK+JlI1SsG0baGycXUTFovP/EkK3b8WKFThy5AiAWRi0FStWaAvA7YOE\nC6PFkNiP/Fy63jIdCMy6dJcuXdIWgC7b9PS0/pzBUMl2VcoFNFOMMn3H89N1nZyc1OeSKS0GXOmd\nZLNZ7WXwvLxmLpfTf/PeR0dH9RzxeyMbNyLBOgm3MUcyIvEcvHZvb68OeO7cudMzfiky987+g3aX\nOMe2bV0HQksnq1FNIJjR0VFtwSXcHN1vad0BZyvHcfP5S54ITRHY14ea978fyOXwFsvCmXvu8aSu\nJYwd4K005XvcMso6EnoH1dXVPlJgmULnHPD5LF++3NffMjU1pbct3Gbatq1/E2atg7y/uUrZipMX\nIAAAIABJREFUKAUAwMgIEAg4CiEQcP7/JpLwwACqenvRkk7j4lWqBIN9fQgePAhr+3Znjq6zpLZs\nwfB99yHS0wPs3+9Uzhnt2G9UCR0+DORyGhE6fuwY4LZamxI/eRLx/n6MtLVhyi38eqNI2SiFYrGI\nwp49CEQijvsaDjvBRiGysg9wPAZaZu7ps9ms1tCmpZadbrREg4ODvvRgOBwu2fMPOJqYmp0BT1lQ\nwn21rGijpZABMJPANjwwgIYPfQgql8NdwSB+/md/hkH3Pi9evOikJY8dQ4273w9bFpZ89rOY3LDB\ns4emdZTEvHw1Ie5kxRxTWblcDqnWVuCuu5xU3cSEp6hK9hMAjrVkTEECklD4XXl+PjPJVMXCND5j\nem+SCUvCz8nYAO+JwU8TAm7JkiU6fSeL4cw5ynR1ISZSncn2doSEh8NrNpw+jeX/5b9ovo4X77kH\n425ak5Y6n8+XhL+Ta4zj4POQ3hSPMVGrLcvSc8l1XaqwSnaKNl7F476alIVSmJiYwIMPPoiNGzdi\n85e/jOqBATS+//0obt6MiPvAZPRctuNyMTEim81mdYaBr5yo+vp6DdQiqwH5Nyc7Go16yF8AL6sw\nXVZJ/MFoucTxo1JgoxDz8kNDQz5Y9PCRI1CulQrYNlYPDmLAVTCpVApTU1Ool2xUAGpPnMDo2rV6\n27NkyRJfy7eMgJtYkdXV1foHygX829/+Vs8bf1Q8l4RKp1Jtbm72Ec/IQC9des7Z5OSkVqYymMvv\n8JXPZGhoSP+Q2CQXi8U8yNuAozipmHmfDNJJejxpWEzioeSmTcj+y7+gqrcXl9atQ/LWWxFwMyUS\nHKbm+HHN14F8HtXHjyP67ncDmFUAkgBYNleZ2JxsR5f3IgFSZEMWz8tnzOMymYyPbZzzWFdX58HT\nnIuUhVKQkty0CclNm1B/FbftjSr53bs9vAWjmzYBAtUIAFKdnbDJKWlZzjEVua5CMt3ky9Q9pHbs\nQJ3g65jp6FjAEd54KQulUHCx7b773e/qdONtt90GYBY+q66uzpc7rqqq0hVwtMbJZFLj+LONmDUJ\nw8PDWivT6siKOVrQwcFBHQyj+0bNK2sjpCUwCWAzmYyH+BWY9VhkZaXumejowMj3vodwTw/OLF+O\n/MaNWOFuiRKJhEOUs24d7G98A7G+Pkxs3Yqhujogk9FBv9bWVn0tiiRz5bhp5evq6vTxtD7Dw8N6\nm0OPjCAncgvCwNfy5cu1pWV6kJZJusaspUgmk3pOmZJMpVIejE0exzmTyMeAt/JQonibdPNyrGZ1\naSgU0q4+1wStLOC1wjwnzze2bh3S99yD6oEBjG7ahOTatSgYgC3ZbNZH03e1gB/XDq/PcclgdanW\ndwmaIz0UwItFyXmZq5SFUqiII+wJmBIAtqaQ2yCTyQAuFkIpiRw/jqreXhQ3b37TptZupKS2bEF2\n+3atON9I8qqUglLqTwD8ZwA2gCfh0Ma1ALgPQAOA4wD+wLbt7FVPAmdvu3fvXnzgAx/Ao48+CgD4\nwQ9+AAC60m3NmjXa8lIb1tfXaytJS5fP57WlYoCF1uGJJ57QVm+H26TT2NiorRIt5Pnz532U69TE\nq1ev1hqaKaFQKKQXB99bsmSJ1tCS8oti7vmLxaIPXZjeSjwe15ZOturyeBZRxeNxTVy76MMfhsrl\nUGdZGPzmN1GsqtIelmwDN9OH8Xhc7+d5L7I60oT2WrRokY7FsIiKXpgMijGWMz4+ri0zPb9oNOoD\nkOVcybZ0CTxr9okEAgH9vBl05jiUUr6W8omJCf3M+Pxvuukm/WwZPJXVsPyb8yf7RCSoLL/He5GM\nWdz7m4Fs+V2u10uXLunjZWqcn8uiPBMQh2uioaHBxw9yLXnFOS2l1DIAfwyg3bbtjQCCAD4I4DMA\nPm/b9i0AxgB8/JVeoyKvTCI9PTpoqXI5RPv6XushVeR1JK92+xACEFVK5QDEAFwE8O8A/L77+T8D\n+H8AfPVaJ2JJJy34Aw88AAC6zz6ZTGKD2x5LC1pfX+/jfZCWj1FuRthjsRi2uvh37CZMJBKeWnPA\nyRJI1iBgNtOwePFiX5HR5cuXfakgWV5qWoeampqSUWWzQEl2b8puSgqtAb0HcjYUtmxBtQhITm7d\n6sCIG8U6EiSEMjMz48EE4Hh5bc2OJMBimVWhpyVTa7Sqkq/ThMlbv3699mLMdJtkbZLeAz+XWSR6\nU/QGeTxjMsCsxyJTqbw2MGvx+RmfT319vQ9rIZfL+WD4eIxlWfqavKd8Pq/nll5NMBj0pSIlh6fk\ne+C8SOYrwHlOJsygBN1dMN4H27bPK6U+B4dZOgXg5wAGAIzbts0Gg0EAy+Z6TolJx22BdONkmgUo\nTaGllPKhEfMHvWLFCq0oGGCrqqrytaxaloVnn30WwKxSoCuaSCR8CEOhUMiH6CR/QNLN42el8A/N\nNCUlEAjoMfKeEomEVjb8YaTTaefv5cuR/upXUT0wgOn2dsxs3Ijo5ctaOdKtHRsb0+lH2Wpt1htQ\nCYfDYX0OBi2ffvppvYhNlKWJiQnd/NTneiu5XM4XFMvn8752YCoO2QwmCXdNBTc6OupjvZZgLzIA\nCDgKzNyCFItFfX0G+3jv1dXVehz8sQcCAS8yEkqjYrNHQQZUZQMdx0TjJMF4TDRxy7J8lZVyrZko\n0dIYzFVesVJQStUDeB+AVQDGAXwfwB0lDrVLvAel1CcAfAKYjQe8KnEpt+y9e4HXaYqIFY2ZDRte\ndXBwxg0wmt17FanIteTVbB/eCuCMbdtXAEAp9UMAOwHUKaVCrrfQCuBCqS/btn03gLsBoKmpySbS\nMotcmK6ihW5sbNRW0uxuQ08PAm97G5DNIhgOo/Czn8Hu6vJVDTY0NPjcPVlQQu9k6dKlOHjwIIDZ\nNBtBP0KhkLZ0TPvk83ntQsutiBmspGVPJpPaGugOzePH0fyhD0Fls6ixLPzmK1/BqOvVSBdQEojy\n/mXLNa0SrSpd/9raWj2ndGfPnDmjrSSPl70dDARyjK2trfoeZBBVEsUCsy76zMyMHu+ePXv0vHBO\njx49CsCxrmYnH4PFdXV1vpRxPp/3pTCj0ajveUuiVomdCHip5XneyclJD6K3vE+llD6H9HTkNQBv\nZ6u5XmVKV3bC8rvcanENSQ+H9xaJRHzp7+npad/2QQakTdawa8mrKZ5/CUCXUiqmnJHfDuAUgEcB\nfMA95iMAfvwqrjEnUYJyCwT1eJ1JpKdHV8kF8nlUDwy81kOqyJtUXk1M4ahS6n44acc8gBNwLP8D\nAO5TSv1/7nv/dK1zESX4hRde0Ht9lthyT59KpbRmpCa1LMvpL9+7F0EB6pHt7kYhm9VWkNo7n8/7\ngFt5DmB2L7py5UpdIstrySCghNwCHA+E1oNWUgYOablodZLJpN6H6zjGjh1IuFVyxVAIY5s3a2si\nA0Vyf2h2g46Pj/uAOiT3I++PXsHZs2e1RaYXsVlsWzgv5IZIpVLaO5JMVbyGZEcCHIvKlPJ73vMe\nfb9Ebn7wwQcBAMePH8cmtzqT9yI5GWnp+JkMhtIiJpNJT8+AHKM8B70DGaSWXZWcNxOsZGZmRh8v\nQWc0RJw7Xq7XiYkJH7JydXW1D7ujWCzqe6CXJ1PSJg+Fbdv6+dHblL03vCafSXV1tS+YfC15VdkH\n27b/CsBfGW+/CKBzPudJpVI4deoU7rzzTg3xzhZXiYQs250B56EnEgmgowOFn/0MgQMHkOnuxtDN\nNwPDw7qSkZN9+fJlHfiSwUc+IP4IWlpa0OHGJTjxsgfCdNsty/JQvPEzE6VXun18UNrV7erCle98\nB5GeHgyuXo1kWxvG3WBnLpfTFZsSSt7XPyHy9zILwmO4bWAQddeuXdjvNp1xm1ZbW6t/GMwm8HsS\nTEZGynkPZt5/2bJlOjApqeIk0hHPz/ujUeCzPnv2rGfbADg/aAbnJGIzg4Jmbj+VSvm2VbFYTP+Q\n+b18Pq+fNxVLqXZ3/rDlFo7HywYmGiWutcbGRv1dicrNsfH+qHgXL17saVvnefm3RIUy1xjPGY1G\n37wEs8UdO1DcsQOFbPZ123LNuvtpgRFgSrCvD6FDh1DYsweokLtW5AZIWSgFy7LQ0tKC5cuX665H\nWhOK5Gxg5dz4+Lgn2Ac46TmzE1Kmf065rDoylcmtiqR+b3PRhmglZa2BJJehcLwS6Zcana+SkIQW\nnOOQgTZuRXSt/dgYWlpaUP3UU1j5J38ClcsBloXU976HXHu7J1Un89nArNW+cuUKjh07BmC2fuMD\nH/iAvk/ZQ2C664R9m5qa0l4avbBTp05pi8hrc9wS1k5mQWg5t7lKLZlMelxyYNYaj42N+chTC4WC\nPoecR3oZPF5WAXJLI4FrWBPDYGw0GtXPg/MmSWtloBjwtthLuDQ+C7NqsRRStmVZvmCl3CLyuzIl\nafKDJJNJfQ88jmticnJSP5+5SoVgtozEOnYM8b//e8SuQthae+KErlRELudAp72ORPX2IvCZzyDg\nZh1KSai/H1Wf/zzClUDrayZl4SlEIhHcfPPNWLlypQdRGYAD5vr446jeswdx16JLhijiKEiOAmpc\nVrbxtb6+Xls6QojF43FtmWVBE/e4JiAm4IdoS6fT+hyyo5CfmySkwWDQQ3oLOAqh5q67NBTYhXvv\n1dZweHgYly9fRm7FCtwUCiGA2UrFzMyMJ7bAcdBacm/+wgsvaGv5vve9DwDQ1tamLYsUM0DGOWhu\nbvbAmQFOWpEpRrk3B7z9GaH+foTuuAPIZhFxuSDirqUOh8MO0GlfH6rvvBPIZhG1LIx+//uIx+P6\nXmipJcMWA2xDQ0MeYFzOM+eC3+Xzj8Vi+nkzqBwMBrVlppfJc4XDYV9hULFY9KE/S8JbydzFY8w4\nUyaT0ft/MwYB+CtqLcvydZJOTU3pa/GZyQCpyTtyLSkLpRAIBBCPx1FTU+Mh60BPD/A7v6PrD+Lf\n+Q6y27frB3b+/HkfQYysOzAjyLIakT/U5557TkfeJUCJWXUnI7iSuxHwkrtI1CeNe+iOlw+ztbXV\nsygAIHjokAcKrHpgAM233w7AcQELhQKurF6Np77wBdSeOIHcrl0obtoEiNLZUCjkyXDIa7/44ot6\n8ZM3MhqN+uj5ZD7e8yzc81OJ8BwNDQ26hJlBYvnj5byFH33UCwh76BCUi+lI6jRLgsbCAZ4Jve1t\nek55n6WamcbHx32ZC7ldYyOX3LoQJYv3JJU1g5tSwZg1DJFIxEcXx2tnMhn9/GXZONcV53RiYkI/\nIyo4rtdoNKq3bvLHbiqFsbEx3/aIlZmSbGauUhZK4apikIpEenoc4o83oOR27gQEFFjmKijWUxs3\nYmrjRode/XpcuKcH6sABYO9e2F1d1+OMJaWwZ4+HC8Leu9fzeeDoUahz54BQyCmBtSxkXaVRkYWV\nslAKpI2TQTwADkajWEgX165F8vJlfcy+fft0pZxsx6XLLCvrAEfzSt4EwAFiYYqOnzU1NZW0koBj\nUWXdA+BYFZMpOplM+lxLBkWrq6t9Vi3X3o6pH/0I1uHDSHZ0oNDejno3C9HS0uJr4ZbUdhJH0mRG\npjWpqqrSrj9rE4J9fQi+/e2a46Hw8MOwOzpK1s/zOpwHBraqqqq09eX2gfeZyWT0M0BbG9Lf/z7i\n/f1Qt90Ge8cOBOiR9PUh8p73OOMIBpH7yEcw+u53I7tpE4K//a0v8Grbtq+iUULtmV6brF7kvbS2\ntupgptlHIUUGgqUFBxwrbDZr8VxTU1M++r/GxkZPdSPgrE0T91LeG+9BAsCY2+NoNKo9IXoMvHZD\nQ8O8MR/KQilcVbq7Yf/iF8Djj6OwezeSJfa/CyXRJ55ArK8PyY4OzLgdltdbCp2dKHR2IjfPvPIr\nFVkJamezzv+v0TeienuhDhxAoLvbRxx7Lcl3dCC3b59PgaoDBzzbBvumm96wHuHrQcpCKZC9qFAo\n+LR1saMD6OhAOp3GCw89BGC2qGb37t06nUgNnc1mfQCYEi1XBon4+vTTTwOYtdpr1qzx0JZFn3gC\nyz/2MahsFovCYWS+8hUkN23SFjocDvssVy6X81ReArOaffHixT4mJ9u2Z8E4TpyAdeQI6tetQ2rL\nFlRVVfm65WSAUHITmLwJvCdZpanjCPv2eTyx4t69noo57q+1tezvR8i16FHLwtj996NQKPjg0jjW\n8fFx3173LW95i/ZUdJpy717POPK7d+tnBnirBAEnhiOBSwAv45MJ95ZIJPT1JRmvCd8mn4HZIi6D\nhBIOjdc3+RwmJyf1PTDmEovF9Jgk+jLnQ6Js8zqlULl5fY5x8eLF2iOkFyt7WRjInKuUhVIod4n1\n9c2i9+ZyqB4YQPIGgaYG+/qQcAlJVrmEJFcjxXm1Ynd1ofDww1AHDqC4Z48TU3gZhmKTAj7sEvFc\nj3HkH3oI6sABZEhdbyA8VWThpCyUAiP1IyMj2kKb0dyhoSGdiqRmbWpq0lqTVjmVSmmrILMUgGP5\n+F1+Nj09rT2PUuSjiUQC6a4u2F/7mkbvTXZ0IBgMassv+SulB2D2WUjQUFmIw/uMRCIIlchCqLe/\n3Qc1L/shJC6BaZ34vVWrVuk9tIQYC+7YAezY4YyjUPAAjnK8urV9/37gs5+Fnc2iGArh2SVLMHHi\nhM4AcR75/0Qiod+TkO0sIWfGKBAIoOB6hJPj48D0tE4djojqVN7T8PCwjl9wvmOxmPYaGTvh+ZVS\n2ivg849EIr5y60wm4wN4pchuQz7PRYsW+bwj2X9hwvwtW7ZMj4nXjMViei1IcBXA8TYkjwTPz7/p\npaxevVp7IGYcY3R0dN5wbGWhFFKpFJ566ikMDAxoV5Q/OD6IF198EQNuQQvTLefOnfMh20ryEC5+\nbg/C4TDWr1/vuXZdXZ3+sUhcO/5dW1sL7N+P8fvvh3XkCKa2bUNxwwZUiWtKCjIupsnJSd97XByR\nSMTnyheLRQc9qKsLVQLqfcIFaTWRmkpVvRWLRR9QBxd+XV2dXhx0JyVhDZXTyMiIruI0tyqZbdtw\nxuXlOBgM4mI+jwsXLniQtOV4li9frhXEb37zGwDOD5qVlaxobGxs1OMm/R8DZ6lUSv8wGBCWoCyS\nUIYGhQq9FFqV/IHw3mUlptmCLJvI+JmsXeC1eA0ZtJS9GoATMGbAkGOVfCYmeE+hUND3zjUdjUZ9\nWxXehxw3x3rhwoXXP+9DuQqRlnHoEBruvhszHR2YfiXEq9eQfEcHxu6/H+EjR3Bx7VoHbMUttKJE\njh9H9IknkNu506F1W0AhL8dFlzm63MU6dgyR3l4Utm1DptIrMicpC6VA2qsXX3xRu410x2hljx8/\nrq3Hli1bADjuId0xamBZgEJtTI/hxz/+sdbkxGi89dZb9XdlQNDEVczn87COHUPThz8Mlc3CDocx\nfN99yG7f7mm/pnWQVWk8h6RXo5bntVnAAwAzGzcCGzdi+MIFYGYGU1NT+hzBvj60fPSjuv9h4oc/\nRNotJCrVl8GtwPT0tLZAZlAKmN1+vfTSS5o3g1s3egK2betnQFCZ1tZW7Xnw/PSCJKcGrdULL7yg\ne1cI0bZ+/XodAGR1JM/Z3Nysz0F6+uHhYe1qyx4Wzrl26QcG0PC7vwvkcki4FZLKnat8Pl8SJ5Nz\nwudPT6CUB3o1enoeU6pLUmIz8ngTxdt8lfdUV1c3G1x98klYhw8D+/frTBDHxvUi0/BzlUrvwzwk\nLIBQVC7nkLAusOigp9v/YB0+vOBjeL1I+MiR2fhMLnfdAqPlIOGBAdT+h/+A2N/+LWLvfe/L9pPM\nV8rCUwiFQmhqasKaNWu0p8A9MV9Pnz6te/8J2LFhwwYfsjIAjdfY4ObSJd8gLR0DVUuWLNEeBS1B\nMBj0FR7l83nMdHRoIBTbsmDv24eqqipUnTiB4MGDyO/erfPriURCa2gzNXnmzBkfmKvc98mgKcdA\ni39p3To0WBYC+Txsy0Jqxw5PGs0s8WZ84Pnnn9dsWzKYK8FmAMea0Upzf8/OUnkcYzOS28FEKpZd\nhBIAl+8x1vOjH/1Ix5K4XybYi4ThYzDt2Wef1WSyfGbLli3zAZQmOzoQF6jWE1u3egrPTMLi4eFh\nT7GXfA2Hw77gowz2msHkkZERHSSV4CxminFmZkavMTOGEwwG9d8SqCUSiSAyMKAVnp3Nwjp8GPmd\nO30lzRKvYa5SFkqBAa/q6mo9QRTZbMPqRS7uaDTqa09Vvb2AW6UXdav0bnbTh9u3b/e5dJKUVUae\nzXxvsVhEct06TH7ta6g/eRKpzk7EOjoQ6u9H/P3v11WByR//GIXOTk9AiwuBLcupVMoH9iIzHmbw\nVAKfnG5owJX/8T+wenAQ6rbbkF63DpZ7vFJKL2L+yHi/Q0NDujeBCkhGvmUVI/EoJZM3xyFr9gHH\nzedxZht4IBDw0ePF43G9deOP5sknn9TzwHZmBijlPPJHODExobcg3HaMjo76lFNu2TKM/sM/INrX\nh8mtWzHV0gIIghvZegw4wU0G9sytSDqd9vSY8DMTeYk/wOeee04jVvFeksmkDgTKdc7nYWYystns\nLCu5+x4zV/a+fcDnPuepMQH8MPEvvfSSB8J+LlIWSuG6itEvoQ4cAK5jTcHM5s2A25cQAxz3XVwv\ndOgQCp3zAp6at4yuXYsLt98+b4rxN6NMt7VhZM2aNxyqdXHHDuQefBCBAwdg79uHYnv7dTt3WSgF\n5l6TyaTWtCYxSl1dnbakcqtgWiKzXwL79unjlyxZolutJRWZCccWDAa1haXl4GfJZFKPraamBumu\nLsTE9Qp79iAQCCCXy/lwARmwi0QiOOzGAo4fPw7ACZqSXJcWg/cbiUR8+X7Z/UYXUymlv8MOQB5z\n8eJFH59DNBr1IQNLLEzpUXA8Ji2ZxGg0AVVkx6V8XhwvPb4zZ85oS8haAxno5XxzHK2trXobSA/q\n8uXLPjRpPveamhqtQJnqjkQiHjJgwLHeJtYiryk/k3B8ZpUjn8/g4KAeh8Sb5Hzz/A0NDXo7Z9Ii\njo2NeVr2eW3d87JzJ+ydO510tkGOw2Dx4ODgwpHBlK2Ifgl7717Hqs8TuHI+kmtvR+qnP0Xw4EEU\n9uxB8QZ7CTdKVG8vAgcPItjZCbjoV9dVenocL27/fmCe3ZiBo0cRPHgQxe7uBU/BvhmlLJQCocuS\nyaTe51Ebcx9++vRpvWfUPfoCqNQTZOruBrq7USwUAFFEUlVV5UPHDQaDsz3uvb2wDh9GuqsLKXdf\nTa0tATNMKLXsLbcg7FLaZd3929DQkPYyzODfzTffrO+BQbxnn31WWy56M7Rq8Xhc36dkXzLRhSW9\nnMSX4PfMYFgsFnPq/Xt7EX7nO4FsFgnLAr72NQ8ZDc8RCoX0vcjCGRM92QzgoacHuP12HXfBL38J\ndHd7kLtN6Dwdlzh6FJbbbxEOhzHzk58gsW6dDjryni5duqTTpIw38JjW1lZd5Si9GrMycHh4WM+N\niTNh27ZOH9M7kXPK9ScBc+n18DkqpbQnLAOHEg4OmI1xFItFXxWlbdu+vhnZjcoCLwZxx8fHS3Z/\nvpyUhVJgS259fb0nzwvMPsSLFy/qvDYnecuWLdotlK6rCYzCQEs2m/VQtwGzbbjBvj7E3IBhzLKQ\n/OY3Hdp3dxx8mKWQcdPptL4mFde5c+f0w+V4+TAjkYiHhg5wIv0M2NG1pIsejUb1j5zXP3v2rK+m\nw7Is/TcVEK/d3Nys54NbkVAo5CD5PPIIwkxzwumevLJ0qU/p+FrbMbswpfgWoRvngcvLoR5/HBCR\ncgbiAPh+NAHZQenGbIIbNuitjcRQZEaCwWmed+nSpXqdyA5N2ZQEOMFZzikDdZKyzkRu5pzIV5nF\nYWCXmS5JnCNL5E3gFc5pMpnUCoiKI51O+57ByMiIxswkDSCPD4fD826drtQpuCKbfVCGTM2R48dR\n+5WvoNrlTLiekt+1y0mxBoOac+JqQhzJqhMn5n4BN86DYNB5dVPLc5EiOyjd7xbcDFRFbpyUhadA\nAlUJ4kGLKIN0TON961vfAgD86le/0gE1VtHV1tZ6MAKlRKNRH7DGzMwMamtrkd25ExERMMzt3Olh\nDmYzTn19vdbyMvBpNmFls1m99TFbuQOBgD4H03+FQkHXBdBa0nWsPXUKzR/+MFQuhzq3c3K0pkan\n4zg2AD6LSKvW3Nys3etzogMxGo0Cra1QX/oSao4fx5kVKzC+ahWQSnnqDQBHIdTddRdULoe4ZeHc\nN76BVG2thxsBmA3OakTuri6oRx7RMQW7qwsQbcpNTU3awtHT4vyEtmxB+l//Fdbhw0jt2IHcxo0Y\nGxnRc8Q5HRsb86VE6W1UVVXpz0r1jEgUb74neRP4PdNTKHVeCULDZ8C12djYqC24DHialHOcR7k9\nkR4rPQmZbua6owfFdTU6Oqo9Jm4triVloRTKQQqdnTpgmOnuRuYGAam8Eqnq7Z1FcQYQP3ZsXtZ2\nLjLd1obptjaMXbqEqyXvwkeOeMYR6+tzMDTnIm6cBwBgxhyuIRp8Zp4ApNcUF4ousGvXvAFjrqeE\n+vthHTmCYnt7WYDLXFMpKKW+DuDdAIZs297ovtcA4LsAVgI4C+B3bdseczklvwjgnQBmAPwn27aP\nz3UwpVIntIZLlixBpxvZZyDp5MmTOs7AYp14PO7pnANmU18bNmzQmp+SyWT03h/btgHbtjnMP64W\nLgVowb2iBHflXpEWI5lMaktFzc6YwejoqLaifG1pafFBnVFmOjtRKyrz8rt2obm52YfYLPeajJ3U\nnjqFWH8/Cps2oUrQrgEOsjGvJeMdZkqUFi+7cydiYhyT27Z5Aln0QE6fPq3vQzJamcLvKaW01aOF\n5rhCoZAvRjQ1NaXvgZZddknKqkLON9eHRr4+ehQBt8gtHA4j88ADCLS0+Ojppddj0v/V1tZ6eD44\nf3zlOpRAMCawS6i/H7Uf/CBUNotYOIyXvv51TLvZn3g87uv4lK3+nO+RkRE9X6anGI9BlDz2AAAg\nAElEQVTHSyJ2v5zMJabwTQDvMN77FIBHbNu+BcAj7v8Bh4r+FvffJwB8dV6jqUhJyWzbhsvf/jbG\n/9t/w4V770V669Y5fS/2619j+cc+hqYvfhG3/NEfocH9sb5SybW3Y/i++zD53/87ztxzjydD8boT\nk5T4Ner6jBj9NLEyiGVd01OwbfuAUmql8fb7AOx3//5nAI8B+HP3/XttRx33KqXqlFIttm1ffLlr\nKKU0cSu1msnpFw6HdfEPI/HLli3TnYe0DplMxsfWQ60/MTGhv0uRjEgyTWnyNNKiNzQ0aG1Pq2Af\nOYLoI48gt2sXlJtOHB8f93WncRyjo6M+uLRFixb5eBd5zWAwiHxHB6Y7OlAoFBCCl6xU0o8zep5K\npbDyscf0grNzObQ+/zxy7e0eKHuT4j6RSPgi6jItl92yBaktWzA+PAy40Hf0xHhtencXLlzQ1pvX\nkcVI9NCef/55jbFgdh02Njb6gGSrqqo8QC6AAznP2ArLixmRf/rpp/U4+PyDu3cjJGJIme5uTymz\n6QEAs9ZXAqTQe+AzKAWyI70fPlN6PVc2bEDC7WUphkK4uHatHkMikdC/BwmzJ0vMOacmexrnMR6P\nLxjEezN/6LZtX1RKLXbfXwZA4mgNuu+9rFJgZZht2556f2A2iFYoFDyknBQuCll9xwfJ3C0DbA0N\nDTo9xOvkcjk9oTKtZFK+mdh9FNXbi9Add8DKZlEVDmPm299Gdvt2hMNhH+8Ef8Tnz5/35dJl1R0X\npKwGNCs8o9GoniPZyitTphfWrMHNlgXlNnClduzwkN/kcjl9PxIZ2kQfkq4/Fz9l0aJFuqXZrBAc\nGxvT56Cik3wYDC5KRG1TWlpa9HfpIq9Zs0YrBUnYysAug2wMTF+6dElvaTTD+MaNCP7whwgdPuyQ\n6qxZg+nBQU9TnJR4PO57LsQWBbzNa4CjzGg8OAeXLl3S59ekstXVOPMXf4HFp05hcts2jC1dihaB\nP2kqZpkaZbByZmZG/05obDj+ZcuW+YByryXXO9BYKkZVMqqklPoEnC2Gjzfy9SQmInJVb68vWBQe\nGEBVby+qb74ZU24//1wkPDCASE+PY8XmuGWQMrp2Lfr/5m/QcPIkptvbHZyGOUjs179GvL//FV/3\n9SL5jg7kOzqQmSfX4vWWkTVrMLJmTdn8Dl6pUrjMbYFSqgWAC+6PQQA3ieNaAVwodQLbtu8GcDcA\nNDY22iRHpXU1a8RlhxmPSSQSPmo2CUJBDU2XUVKH03pPTU1pV0uiM5tI0LQEExMT2gIkEgkEZe+D\nG3xLp9NIp9NIpVKInzyJlZ/8JAK5HKpDIfzqL/4C48ICSEYhSaQaHhjAog99SAO6XPzWt5DZts0D\nCGL2Pkj0XwqRkiKRSMmgn0mkWnvqlB6v/Y//iBdclCnOj0neGo/HtbWW7FuR48cRPHQIU9u2YWbz\nZu0dyA5UusTNzc1417veBWDWM6QlvVqqUfaF8J74OZ/3JrcRbmpqSnsivE8JT8d1NT4+7utKlGjb\nEvKPz072jMgxbtmyxUcLf+nSJY0XKovo5LrjnAJej5XrcHx83Ec9F4vFdCCV65bPqVAolCwwezl5\npcVLPwHwEffvjwD4sXj/D5UjXQAmrhVPeL1LobMTmQcewMynPuWgIBmWteb4cQRyOahiEYF8Hs1u\n1d21pKq31xOAil5HEI2Xk+qBAT1elc8j4e715yOR48fR8gd/gOYvfQlv+cQnrkqYW5HylLmkJL8D\nJ6i4SCk1COCvAPwtgO8ppT4O4CUAd7mH/wxOOvJ5OCnJj85lEGSIkvgIJv14KpXS2pLWLZfLaQtE\n65BIJHRQSZaSAo6Gl4jKfKUmpbafnp7WgU7JSgQ4wTNqaFqrqpUrMXmXMwUX3AIkWriJJUuwJBTS\ngaTLt96KtrY2bSmk5aeVjMfjSK9f76Qh83nYoRCubNiA5Pi4JwgoAUQBx2JIWnopgUDAV8yVzWZ9\nvR2Xbr0VSxmHCIVw/pZbkHLHJeMNPD4cDvssVw3ZsYtFIJ/H4lOnYLn9/oVCQd8zC89s2/YViTGA\nPDExoQOXMuZTqiOTYlreYDCo14kJ9wbA0yV7tf13MBj0kLbyHCb+h2QB47m4lvL5vA85PJFIaE+L\na1h2vXJOufbHxsZ8wLqxWMwH5mr228xH5pJ9+L2rfHR7iWNtAJ+c7yAKhQLGx8cxPDzsIyKha1cs\nFvWNyyg3XVFWjd1yyy2+3Dsn/eLFiz4Ak6qqKl90u1Ao6Idt1gxkMhkfhqH8WzZrNTY2YmTNGgx8\n5jNoOHkS9r59WLx5s4c+jPc3OjqqfxBDQ0NATQ3O/eVfYvGpUzj3lrfgfDYLHDvmaWM2twOetloj\nMFosFj3w4/zMpIab2bQJA5/5DOp//WtcXLsWY8uXo+iOS0axOe+2bfvIXutvvdWDeJTp7vZUBpb6\nIZvIxPxBDQ0N+Vi7JycnfU1pUmHxGUhi31Vu7p/BXKWUpyeG82KCzshXs+FrZGRE/20aourqan08\n72V0dFSPjffb3Nysx2Q265WCc49Go3pN6uyX2NrwVW6NzPbra0mlonEBZGL9ekysX6+tyFyFAahU\nKuU0FC2QcLzzbaShpLZswZl77kHdE0+gsGePA257nccoRfX2Qh06dMNJct8sUhZKIZPJ4OzZszh5\n8qSnXh2AB8SCGldaAgKT0BVtamrS3zXTS8ViUVsPflZTU+PDzZMWw6QaTyaTOtVJyzg6OqqvQa+k\nsbFRWw+mQSWYhpkPV0rp+2KenWONRqO+IJdMPcr7o5itv3JOZc2AmX4sFAq+VCrHJZGHZSefaZkD\ngQBgWQjv2oW6mhrguee0BY3FYtpKmqSs8l4kXwVbkCUytW61PnwYDXfdBbjo1mP3348Rt0SdW4ZF\nixbpNCWtbCqV0m44K02TyaQPEo3rT1IOctxTImvBdCit/dWQmLl2OMc1NTX+uhfhuXIcXFfFYtGD\nMA3AA+hjruWpqal5ewqVLsmKlIWE+vsR++IXEXYJf+Yqb2TEZsBJS1f/wz/Mryv1VUpZeAqMKTzz\nzDN6by4BRvhqgmk2NTVpK0JrLCnaKVJT03rIVFMp2nkzrcnjZWpPdqaZfQuWZWmvh1bP5BkA4Nl3\nmtWFvLfW1lZtHSiS4owiPQWzMpD3Csx6GZIYVwLgcs5pnWgRx8bG9Hn5vdraWk8hGDCbFrty5YoO\nrEn4Oz5bFpwteu45TeAbC4dx7hvfgO2iRScSCQ94Kq9NryHU1qbjF8VQCOfe8hYMuUFKuW/ntSRI\njOkFptNpD3+InD/CBfJvHm/iV0iAVfNZhMNhD3Eu4Dx3E3xYe5EDA0h88INQuRyqLQsX7r0XydWr\nfT01SimP18C5B5x1Mt+UZFkohYq8uSXW3+8h8I319WHCoPe7mqS2bMFLX/86Yv39GNm40SH+ZYPb\n61xChw55ulKjR48C7jbohl73hl9hDhIMBlFXV4eGhgZf/Ty1eXV1tW+/ZlmWtsIyoq5LQ48cgTpw\nANauXbC7ujyxAslqpFF+RGGTSRhKKdXJmclkfPvwYrHoSwtKSC2K6u1F+MgR5LduxbhrQelR0PtZ\nunSpp0yY1zShwKTQYkjoML4nadZN6yTjBrwnWWYszwd403i0zJK4ld4UvY2ZmRkd9efxE42N2C/S\noBfXrdNjiEajPrYuydNYKBSQ3roVo2vXOs90clJ/l1H92tpaxH79a6gDB2C7wchAIODjVMhmsz6L\nL5mfTGss15qZ7QkEAkBPDwIHDqDg8o8opbSnyjhMOp3W82VmEAp79sD+3OcAOLyiI21tmJqa0h4L\n5z0Wi+l74PORBVCm53wtKQulUFVVhXXr1uGd73yndq/YFiqBSTjx3EbIOnA+KI1h19ODoGiNzT/0\nEKwNG/QESXg11tFLWCyz5ly2+ZogHqW2LCZxCMdLKRaLsI4dQ/3v/q7jNlsWnvuf/xOja9f6thH5\nfF4/bFkDb4KEyDGYC0yiEctmL94nf+TpdNqXqpPB3lLVdCZis2TvNt1xSYjCZ3AxGMSDf/qnWHL6\nNFKdnRhbsgSL3B9NLBbzBUjlmGQjkjnn/GGEBwYQeu97NUZk4eGHodrbfZWS0mjwniQNmwzQAt5a\nBHNe7CNHNO5lzMWWLCxa5Nt+TUxM+LYcvHaqrQ2X774b8WPHcHbFCowvXoyUwJGUgUmuFZ5fKub5\nojm/YQONSmD7gfwPZSYmDV2TC7b5ZpQrq1fjyXe9C2MuduXVJNTfj6ovfAHWPCotQ4cOedfC44+/\n2uFeUwIS3i+bdeD+XoHMbN6MKx//OMbdTtSFkLLwFCzLQktLC2699VbtKTCwxu42bisArzakZqZH\nQXdT7d6NgGiNze/ahVwupzU/01Gyh4BWTW4HSkG7mZqdqMhybPJv6erymjMzM8ht3oy46zYX3apF\nYNbtlZ6LWdQlu0bl1sW0NjJFJVus+UpXVFaLakvlHifHT6vNIGRtba0PYEa+yiIx3pNZGXj+/Hkd\nkDRp2+rq6vTchvr7UXPnnU7cwSXXLbpkw1VVVZ7gsZyDTHc3wnIt7N6NfD7vSbUC3u2AGaiVfTN8\nLvF43NNjAAjPYscOJERPzExnJ2ZmZnwcGZKI1tyeXLp0SacwJYCrWVUai8V8XpLkqJgvEU5ZKIUb\nIXZXF/IPPQR14ADyhNty93PlIumtW/HUF76A2hMn8NtVqzDqYjFUpLSEDh+e5U+Ew86VcpXCy4mE\n2tMMzfPM3c9XCp2dmJLYku3tgFsCX+5SFkqB+/RIJOIBVAVm94XT09M6+CgLhaRW5bmYfgq4lO7Z\nbBaYnMTly5d1TT09D8uyNBgHYwQSdNMsDa6urvbt12UREK1xJpPRFoBWWEJ4M+A0YVlAZyeqq6tx\nkwsi02AEHGUpscRO0AEpAahhBuVk4MvcQ9NjkfMtuR1MkJhUKqXPLzsjeZwZ25AxC96L7C3g95qb\nm/XccF5kYJXPONnejqgon55ub9fzYfYgAPB0GOba2oC2Nuc609PIZDK6rJwxFNkFagaYZRm1xmQQ\nvSYmcEw6nYa9di2wdq2zDoaGMDU15UnNAs6z45o014vkc2A1bDab1ddkr4Tk3jC9UtnfMlcpG6XA\nBSSDOMAs1drExISeIPlwOBlsdGFrKuCvELty5YpeKAwuhsNhfV5GypctW+Zpj5bjkSzIXBzZbNbX\nYp1MJvUCL1Vtxh8HFdjSpUv132bmI5VKaYXIsV65ckVfn1stqRTMH3Y0GvX1FcTjcT3fMo9vtg1z\nzsbGxjz3xzkwFadEkjYr7CSVnCR+MSnqeM2ZmZnZ3ofFi3H5i19EzfHjGN+yBVOLFgHu85Zbp1JZ\nH55DZmVKcSXwOcuWds6jWc0p75nCeSkUCp4mJo5DViYCzpozA7scf1VVlV7/HP+5c+f0mmSFbKFQ\n8G3T+JxGR0dnMUjnKGWhFCpSkbnKdFsbpjZunLf1q8jcpSyUgm3bKBQKyOfzvgpCmQYyA3fT09P6\nc2rSS5cu+RCBZe6ZvRL0FCTjDrVrfX29dtdk1xvPVYoezaRkk/ciU3SAt0pPvvJ8JvDJ2NiY9oSY\nqs3n89oq8H4lxiU/k94BLTjnpampSQc15XbD3JbQalZVVeltF68pOwUp0nOQqTGeQ7b8cmwmLJyk\nX5OUfRSzDyGRSHi8IjmOQqHgAysZGRnRwWaJByrBYOR1ZIu4OS9y/nhMMpnUnifPGQ6H9b3LFDA9\nJ1p+ae3NPptUKqWvxfWqlNLrn5/xmhcvXpw3Ff0bNiVZkYpU5JVJWXgKhUIBY2NjGBkZ0ZpWWiIe\nY+5dY7GYtkDSw6ClMKvT1q9frzkbqLEnJye1VuW16+vrtTWVlOuAN6hIK0JyXMCLMyD5AYDZYFFt\nba0v9ZXNZj0QZMCs9zM1NaXngfvJ2tpaXydkXV2droLkcRQZqJV7XI6JQatSnpDEoKh/9lnE+vpw\nZcMGTLe1YWRkRKeDzdd0Ol0yCMmx8ZoSX4LzJ8F0TQLbfD7vC/BJKDoTci8YDGqrLpGYGcegWJal\nPQmOQ6Z7JRgL4IWWK8VAReHalB4R10Qul/OlkfmcZEpSslKZMG+S4l5281JKjenlpCyUQjabxYUL\nF/Dkk096Kr2AWQSeyclJH3JuMpnUC0v+eNl6zEVNBVBbW+uheuMxfBhcrBKNiT8IGTXnZ/zRDg0N\naVdUVu5ROdEt5Gs0GvWxSKfTaR3wIn2cxGAka7J0jTk2LtZVq1bpwJSZOcjlcnoRya0ItwNElV6y\nZIkP7EMHf596CrUf+xiQy2GRZWH0e9/Dkk2bfD9kLmqJJyjrPXg8F7wk0zHnPRKJ+IKn8t7lts0M\nqPGcUtHxOVZXV+t2ZyrSVCrlywRQZJUrzzXtZjHkezLIWpIR3RDZus/1JImROR4q75aWFh8wzuTk\npG8+ZC3FjSCDqUhFADh1AawTULkcwj09r/WQKnIDpCw8BWr+6elpD/4dMAs4cvnyZR0Uoya1LEu7\n/gzitbS0aIvPPLQEmTADmTMzMz7XL5PJ+I7jViAYDOrPOMbz589r6ydr/WVNvXy1LMtHNpNOp/UW\ngXNAL6i5uVl7QtKFNl3iaDSqLZXpksrWbB4zMzODJ554AsAs+ejixYt9xCna09myRdcJwLJQ2L0b\niURCz7escgQcS2reZyqV0tsXzpmscuR88/+ytVh6ayZsmlJKW22Z5+ecmb0JwWBQW1A+21QqpeeU\nr7K2RG4b+J6Zti0Ff8fXiYkJH5qVbJzjPdErkCn6UuuK92dZlva6+NugF1RTUzPv3oeyUAoVeX1I\nZts2jHz3u4j09KCwZw/yHR0VV/MNKGWhFFjRGIvF9L5QgmEATnEPLZa0wNSMssiEFoBxiVKcDTJ1\nKFtnAceC0oqZVZQy0ChTU7ym7FYzU1cyOMa/adWmpqa0JWQwVFKjmZZOto1zbLlczhPU4ngpgaNH\noQ4cQHVXF4o7dmDp0qW6gIde1dmzZ7XVocXnnC1evNgJzr3jHY5XcOGChwpNWmHOhekt2batPQrO\nsQTKNYObxWLRF0AEZtdAqZiP2UGZzWZ9/QLRaNQHvSZBZ8wiI9ltKPf0ZqGXDG7Ti2XcJplMauAc\nCcZjeic81+LFi2fby0Xw1gSHSSQSvvuT69dE8b6WlIVSqMgCiGglj4bDSP30p0BLy2s9qoqUoZSF\nUigWi0gmkxgdHdWWjppPpuBojXlMKUBTWXKs+fpEZNYsOZb7NtnrTo1vlvVKr0BaUnMPLz0Fflem\nPs24RCaT0RkAxkdotUpF1mVJbuDoUcT6+jDT2YmpXbsAePfkABB89FEPvZ396KOY+ff/Xn9OC1ZX\nV+eJc8j5Gxoa0hkSHiMzOiZYSDgc9pDZcjwa50DA3Jv9IaWAZ0sVC/E4Wf8v4eY4VxSJi0GRXibn\nXkLB89UsLhsbG/PgSsh7n56e1iX3PH79+vWajJdxA9u29RoggCwzDlVVVWhxFTfvQWaRZDcqPRte\ni9kwwBtTm4uUhVLI5XI4f/48Tp06pSeLwSje5KJFizx4jYC32YPHy6YnThoXvGQJlm6f+WD5YwP8\njS6pVEr/kGS1oEQF4ntmek32bpi1+PF4XOfN6TJysUpCFC4O5s2tY8fQ+NGPahLZ01/+MpKbNml3\nUyPwrFuHpQLL8LerVmF0dFRfk4uvrq7OF/SjYhwfH9epOr4ODg7qBWjWhyQSCX1+/tgkaarsgTBr\nUKQSMQN8kq6Nx9XW1voalmSrsxlsy2az+h4kV4cJ6CKBa8zW7PHxcR85MT87d+6cXofbtm0DAHR3\nd+vgrTyeipPrhM8amFUecr2a242JiQmfYeNay+fzlUDjm00iPT0eHL/qgQEHp9CQ9NatOHPPPYgf\nO4bRtjZMt7UBgiWpIhWhzIU27usA3g1gyLbtje57fwfgPQCyAF4A8FHbtsfdzz4N4OMACgD+2Lbt\nh691jVwuhytXriAQCGgXmwGwzZs3A3Doxak16WpevHhRW1yZhqLGNV1RCd8mLYAZyIpEIr7UHi3I\nxMSEr8tPslfJtmSOg14Mi5LOnTunj6MXI6vpTMTfqakp/Z50hWdmZlDctg0J4QEcSyQwdPy4vhfO\nWSKRgLViBbBihTP+bBY1NTXaQ+AWQKZLzSKtmpoa/XxoIUOhkK9wRgbM6LHQKpfqZtQQepjdLkqo\nO9NbKxQKHutOKbXl4Pt6GyWQuzmn0vKaWIulAEpk4RmDiGZl46lTp3TBGT2F5ubmkniJ9KzMojHL\nsrSnJblMZH8FUNpj5jpZsWLFvIuX5uIpfBPAPwC4V7z3CwCftm07r5T6DIBPA/hzpdR6AB8EsAHA\nUgC/VEqtsW17fhjTFZmzpLdu1WjG51evxlCo4vxV5NXJXLgkDyilVhrv/Vz8txfAB9y/3wfgPtu2\nMwDOKKWeB9AJ4GVL3yzLQlNTE1KplA7O0MJ1dnYCADZs2KCtgkQGljBsgLN3lZTo8jMAvhLRUii9\nk5OTWjObAcdMJuPr6LMsSx8nMRxkRx4AD4oxuS/5KpGPmR6U5KImOvPg4KC+h6qqKsAFHJl096Oc\nA1qMpUuX+lKYMsgq78n0hORc8HjZjak7Mk+cQPToUYxu2oSZzZsxMTGhYdY4bgl8K/kTeC1aRqZj\nm5qaPM8P8AZxZSpOIl3zWrwnM/AqY0nSwzHxH0qhXFMkMa5ZeGbbNta5eJMsPZdcEEopoKcH9qOP\nIrB7N+yuLl/qsLq62sexKTs++To6Oqq7ZxlwZEBz5cqVODhPfMjrYVY+BuC77t/L4CgJyqD73stK\nJpPBCy+8gEWLFukHeccddwAANrn7Y94sMPtgly5dqoM5dKUaGxs95JrA7A9E4v2VykjQNU6n054q\nQcDbPmzmt6uqqkqiJ5vVa8uXLwcArF27Vi963q8MJpqucU1NDc6ePQsAeOqppwA4D5tUaJybQqGg\ntwFciJIuzazBl0ErWWNgVgvKH4ZZuUdynPDAAJr+8A+BXA71loVL/+f/YEJQ+HE+q6urfQjS4+Pj\nnh4QYDZ6ns/ndSZAzre55SuFwC2RniWgC+A8HzMqL5GXzK2nrE+RWx3OPX+Uvb3O8u/s7NSktrKG\nQm9xjhwB3vpWIJtFKBxG9mc/w0X32jR6q1at8m21ZLUt5+jMmTP6vLe4kH5tbW0AnLVhEgldS15V\nQZpS6i8B5AF8m2+VOMwu8R6UUp9QSh1TSs0dlrciN1wCR48i+Hd/B9Xbe+2DhUR6ejx9EVXz/P6b\nTh57zIP2HHiFaM83Ql6xp6CU+gicAOTt9mxkZxDATeKwVgAXSn3ftu27AdwNAIFAwK6qqsLly5dx\n++0Ow/3GjRsBzLqTMgBGrdjY2KhTXbTKjY2NHl4I91r6HLJ3gOcyUYhll6RpGSVRjGynNivyMpmM\ntnocI4OKLS0t2oLye9lsVgf96InQQsZiMX1PPMfq1aux3mVR4vEzMzN66yHmGaH+fgSPH4e67Tag\nu9tDvCsRjAJHjyIq+BHyDz3kYXGWbelyG1YsFpHasQPVAj9xavt2AF5AF8DrKfAcEmWbXpLcIpoV\nlrLfQo6D92VuN6TXVqrVWrZ3m56TDDibhMV1dXXa+6Mnxw7UnTt3elLb8nkAAPbvB1y0Z9uyMLxh\nA55//nkAsx6rZVna2+F6nJiY0LUi3I7mcjld7UuiZf5u4vG4r2P2WvKKlIJS6h0A/hzAPtu2pY/8\nEwD/opT6X3ACjbcA6Hsl16jI9ZFQfz/qP/ABh5X5b/4GxZ//HLgKXbvkR7Bdroy5Urtnt2/XfRFj\nmzcjvXUrIApoKmJIdzfwy1+i+OijGLr1VmS2bQMefPC1HhWAuaUkvwNgP4BFSqlBAH8FJ9sQAfAL\n12r32rb9R7ZtP62U+h6AU3C2FZ+cS+YhHA5j6dKlaGlp0QFGvsrUkOrtBR5/HKE9e2B3dXnYg+Qr\nLazZnw7At7eUKTJp5WVqEfBWO5qFLdlsVnse0hMxQVHl3ph9CNi9G8UdOzzj5qu0NGtcenWOUaaa\npIdjVkpqN7VY1JWMhY4O3zOwbRv53bs9/AjFPXs8eBOhUMiX2qMlA4Ds+vXA+vWOBXPxL3gvEqHa\n7AqUsQ7Oo+wbYNqP3kM8HtfPQNb6m8FBCZAivRLAWRsmf4dEtzY5HmSAVAaV+R77Vbq7u/VnDDQz\n7uADre3sxOjq1Tj0+ONAfz+ee+45ALNxgWQyOQta697b5cuXfdByEsHchL+7IbwPtm3/Xom3/+ll\njv9rAH89n0EEg0HU1tZi0aJFvkyADu4cOYLA297msO241F+BjRt9D9bTAGTg5k1PT/sQkGWVI39k\nwWDQt83g4pfUYtKlY6BTlvBK/EC+BzhuesilFAu6fQiFjRtLLjpeuxSalFkZKBUcf1QX1qxBrWUh\nkM8D4TBmOjtRdJWkD6xkwwbM3Hcfon19yO3cidC2bY5CKZH/l9WOVEB8ZhLzkG6tVJomFLzMeJhQ\n8IFAQAdgGeGPxWJa2UilbZYwlwI5kXUnpuJPJpM+Wjfes6xd4WcyG8HxtLe36zn4zW9+o+cBcLZS\n/A63Gf39/Thy5AgAL4Yn4AQQOZdcf/l83ofeJNmsTVRx27ZLwt+/nLxuktrq8cd9ri3cuMPrTQKC\n0s4mpdgNupfptjY886UvYfmLLwL796PQ2VkyGkzJtbc7ri1u3OII9vXBOnwY9r59DjGLENXbi8DB\ngyju3On7rCILI2WlFMLhsCfNAsxq4MTevQgK19beu9dDFMJA1dTUlLaqsmYfcKynia8YCoV8FiUU\nCvkCPDLnLWvOAadSkZaZaaimpiYffBzPGdq5EyFxL5nubg92v+n9pNNpPTZ+VsollK4iA46BQABD\nzc1Ad7djgUSdfDab1ZaIVjifz2sLxKAmvR9Ze0GXfnh42GeJJCiK2T9hHTuG6g9/2Almfu5zyDzw\nANTOnXp7SA+Kabroxo3aU3ja5dpMJpN6O0XPSY7BnBtJzSbbjWlxObaZmRlP6jwSE0kAAAmASURB\nVFm+ym2jrIege0+3ncHf5557TnsAbHSqqanRa5HVrU899ZTeLhAYhcfIoKJZHwLMbi+rq6v174Zb\nEI61vr7elxq/lpSVUng5sbu6HLZgQSdebjRwc5Xijh3IPPAAAgcOIN3VhUJnJ1Ci551WM9TeDrg/\nAo/09Dge1P792rqXu1T19nq8pMCBA7B37gTgJQW2maZ7nXqDr2cpC6XAtFZ3d/csPblbCcdUz6pV\nq2Bt3w5s3+5Yn3Tawx4kW5zNDktZxGKiPw8PD/tgynK5nGdPBszuIycnJ7U1oXU9ffq0Hje/d9NN\nN+l9NC0vrVVraytiLo1ZNpsFXBgwejjBYBCBo0cRfs97gGwWtZaF6XvvRWbbttm0bG8vAu96l04f\nFn/+cxQ6OrT34ql2hBcsNtTfj6reXkxu24ZhNwj2zDPPAHCsFMfLVCCBTeVzoWWyLEsXYvF7TENK\n0BJ6chNbt6LOspzilXAYuV27EHAhyYp79ni8wdzOnbh06ZKG5GNhkASE5dhkQNTk1JA9CvxeS0uL\nHie9GWn5Zb8HRQO/HD6Mqt5e5NvaUHSrFnnvTCvH43E86GYTjh49CsCx6JwHehu7du3ScRc+M3pG\n+XxexxnoKcjOTHoNK1eu1OuO3hQrg5ubm3VsY65SFkqhIn4JCipzG0D06FEnbeWKGZdQjz8OlMgq\nmBIeGEDzhz8Mlc2iLhzGxb/+6wWlOU9t2YKx+++HdeQIArfdhuKOHbqCzu7qQvZnP0Pg4EHkGFNw\njUK5SKi/H3W///tQuRxqLAtZt1X9jSRloRSi0ShuvfVW7N+/X1sW7o0YpbVtWxfAcK+dSqW0li8F\naS0BSvk9MyMhodd4DkmhrslNBa8D4wf0DiQ8uywGYiqK1lX279PC0ZLLPoRQKORsCT77WU1lnuzo\n0CxaAJDfvRuWsKqFPXuQTqd1LIbHsf5epwRPnnRarYtFIJdD87PPIrt9uyeewfsaHBwE4AUqpcWl\nLF26VPdv8H5pXSWYqgSTmXBTlzU1NZ7sBgAU2tuB9nYnJjI8jNOnT+t7YtrPsiwdM5Epa1lODMxG\n8eWa4Pemp6d1HEDGQCQUPTDrDba0tEAphZoDB6DcFC8A1J88iUJnp75nmcFifIHeaUNDg6+XAZhd\nW5InFHDiaVzzcl2ZsadAIKBT+Pzd8D5nZmb0PcxVlNlm+lpIJBKxly5dijvvvFM/ZE4QgzRLlizx\n1cCn02kfTv+yZct8HAKcdOliygClCewBwNcsw0WSdrct/BtwJp4BOIncYxLF8vja2lrtZsoHay6Y\nmwYHcfNLL+GZ5mY85QaVJPv1zZcvY9Vvf4sXbroJ51pbkU6nNTozx7vLRWLi9uGmwUF85FvfQrBQ\nQCEYxN++9a14vqlJbx+CwaAP35GucSaT0XPJH4Ek3DX7RWSFIJ9PLpfzHSfTq3xm3AKeOHFCKxS6\n2dls1kdELPsbOF5ZG8Hz8cdiWZav4rBYLPp6L5j/X716NSKRCFZevIj/60c/QrBYRCEQwOff/W68\n2NysFYxEk6Lbzh95Q0NDSYAZKk4T5ToYDHq2R4CjXM31KoFreE2u25UrV+LQoUO8xQHbtttxDSkL\nT6EipeVcayvOtbY6P3CDnER+Ph+y1XOtrfjnP/gDrDx7Fs+3tuL56zngN4GcbWnBF97zHqy5cAGn\nW1rwooi3vFGkLDwFpdQVAEkAw9c6dgFkESrjkFIZh1dez+NYYdt207UOKgulAABKqWNzcW0q46iM\nozKOGzuOCpdHRSpSEY9UlEJFKlIRj5STUrj7tR6AK5VxeKUyDq+84cdRNjGFilSkIuUh5eQpVKQi\nFSkDKQuloJR6h1LqtFLqeaXUpxbomjcppR5VSj2jlHpaKfVf3fcblFK/UEo9577WL9B4gkqpE0qp\nf3P/v0opddQdx3eVUvOj+XllY6hTSt2vlHrWnZfu12I+lFJ/4j6Tp5RS31FKVS3UfCilvq6UGlJK\nPSXeKzkHypG/d9ftSaXUtquf+bqM4+/cZ3NSKfWvSqk68dmn3XGcVkq9/dVc+zVXCkqpIIAvA7gD\nwHoAv6cc/ogbLXkAf2rb9q0AugB80r3upwA8Ytv2LQAecf+/EPJfATwj/v8ZAJ93xzEGh2DnRssX\nATxk2/Y6AJvd8SzofCillgH4YwDtLvlQEA6XyELNxzcBvMN472pzcAccyMFbAHwCwFdv8Dh+AWCj\nbdubAPwGDgIalJdv5R0AvuL+rl6ZEPDytfoHoBvAw+L/n4ZDNLPQ4/gxgN8BcBpAi/teC4DTC3Dt\nVjiL7d8B+Dc4qNjDAEKl5ugGjaEGwBm4cSbx/oLOBxxKgHMAGuBU3P4bgLcv5HwAWAngqWvNAYB/\nBPB7pY67EeMwPrsTwLfdvz2/GQAPA+h+pdd9zT0FzC4Cypy4Iq6nKIfsZiuAowCabdu+CADu6+IF\nGMIXAPwZANYrNwIYt22bxAQLMSc3A7gC4BvuNuZ/K6XiWOD5sG37PIDPAXgJwEUAEwAGsPDzIeVq\nc/Bart2PASDS63UdRzkohTlzRdyQiyuVAPADAP+3bdsLjtqilCJP54B8u8ShN3pOQgC2Afiqbdtb\n4ZSdL9TWSYu7X38fgFVwEMHjcNx0U8ohbfaarF31KvhW5iLloBTmzBVxvUUpZcFRCN+2bfuH7tuX\nlVIt7uctAIZu8DB2AXivUuosgPvgbCG+AKBOKcWGtYWYk0EAg7ZtH3X/fz8cJbHQ8/FWAGds275i\n23YOwA8B7MTCz4eUq83Bgq9dNcu38iHb3Stc73GUg1LoB3CLG10OwwmY/ORGX1Q5vav/BOAZ27b/\nl/joJwA+4v79ETixhhsmtm1/2rbtVtu2V8K591/Ztv0hAI9ilqNzIcZxCcA5pdRa963b4UD1L+h8\nwNk2dCmlYu4z4jgWdD4Mudoc/ATAH7pZiC4AE9xm3AhRs3wr77X9fCsfVEpFlFKr8Gr5Vm5k0Gge\nAZV3wommvgDgLxfomrvhuFgnATzh/nsnnP38IwCec18bFnAe9gP4N/fvm90H+zyA7wOILMD1twA4\n5s7JjwDUvxbzAeD/BfAsgKcAfAsOx8iCzAeA78CJZeTgWOCPX20O4LjtX3bX7ZNwMiY3chzPw4kd\ncL1+TRz/l+44TgO449Vcu1LRWJGKVMQj5bB9qEhFKlJGUlEKFalIRTxSUQoVqUhFPFJRChWpSEU8\nUlEKFalIRTxSUQoVqUhFPFJRChWpSEU8UlEKFalIRTzy/wPI5nkrxCPT0QAAAABJRU5ErkJggg==\n",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "# from caiman.source_extraction.cnmf.initialization import greedyROI_corr\n",
- "# Ain, Cin, C_raw, S, center, b, f = greedyROI_corr(Y, g_size=10, g_sig=3, min_corr=0.85, min_pnr=20)\n",
- "\n",
- "pl.imshow(cn, cmap='gray')\n",
- "pl.plot(center[0], center[1], '.r')"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 18,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "[]"
- ]
- },
- "execution_count": 18,
- "metadata": {},
- "output_type": "execute_result"
- },
- {
- "data": {
- "image/png": "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\n",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "m = 1\n",
- "pl.subplot(2,2,1)\n",
- "pl.imshow(Ain[:, m].reshape(128, 128))\n",
- "pl.subplot(2,1,2)\n",
- "pl.plot(C_raw[m])"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- " CNMFSetParms define Dictionaries of CNMF parameters.\n",
- " Any parameter that is not set get a default value specified.\n",
- " \n",
- " each dictionnary is used by different part of the CNMF process : \n",
- " - init_paramters\n",
- " - pre_processing_parameters\n",
- " - patch_parameters\n",
- " - spatial_parameters\n",
- " - temporal_parameters\n",
- " "
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- " Preprocessing of the datas and initialization of the components \n",
- " here, we compute the mean of the noise spectral density \n",
- " then, we initialize each component with a greedy ROI algorithm on component that have been spatially filter using a gaussian kernel \n",
- " we then further update the component using Hals method on the newly obtained nmf paramters \n",
- " see More : NMF AND ROI :http://www.cell.com/neuron/fulltext/S0896-6273(15)01084-3
\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "scrolled": true
- },
- "outputs": [],
- "source": [
- "Yr,sn,g,psx = cnmf.pre_processing.preprocess_data(Yr\n",
- " ,dview=dview\n",
- " ,n_pixels_per_process=100, noise_range = [0.25,0.5]\n",
- " ,noise_method = 'logmexp', compute_g=False, p = 2,\n",
- " lags = 5, include_noise = False, pixels = None\n",
- " ,max_num_samples_fft=3000, check_nan = True)\n",
- "\n",
- "Ain, Cin, b_in, f_in, center=cnmf.initialization.initialize_components(Y\n",
- " ,K=30, gSig=[5, 5], gSiz=None, ssub=1, tsub=1, nIter=5, maxIter=5, nb=1\n",
- " , use_hals=False, normalize_init=True, img=None, method='greedy_roi'\n",
- " , max_iter_snmf=500, alpha_snmf=10e2, sigma_smooth_snmf=(.5, .5, .5)\n",
- " , perc_baseline_snmf=20)\n",
- "p1=nb_plot_contour(Cn,Ain,dims[0],dims[1],thr=0.9,face_color=None\n",
- " , line_color='black',alpha=0.4,line_width=2)\n",
- "bpl.show(p1)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- " HALS \n",
- "we want to minimize\n",
- " \n",
- "updating parameters\n",
- " \n",
- "HALS : http://proceedings.mlr.press/v39/kimura14.pdf
\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "collapsed": true,
- "scrolled": true
- },
- "outputs": [],
- "source": [
- "Ain, Cin, b_in, f_in = cnmf.initialization.hals(Y, Ain, Cin, b_in, f_in, maxIter=5)\n",
- "p1=nb_plot_contour(Cn,Ain,dims[0],dims[1],thr=0.9,face_color=None\n",
- " , line_color='black',alpha=0.4,line_width=2)\n",
- "bpl.show(p1)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": []
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "collapsed": true,
- "scrolled": true
- },
- "outputs": [],
- "source": [
- "#%% UPDATE SPATIAL COMPONENTS\n",
- "pl.close()\n",
- "t1 = time()\n",
- "A,b,Cin,f_in = cnmf.spatial.update_spatial_components(Yr, Cin, f_in, Ain, sn=sn, dview=dview,**options['spatial_params'])\n",
- "t_elSPATIAL = time() - t1\n",
- "print t_elSPATIAL \n",
- "#clear_output(wait=True)\n",
- "print('DONE!')"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "collapsed": true,
- "scrolled": true
- },
- "outputs": [],
- "source": [
- "pl.figure(num=None, figsize=(9, 7), dpi=100, facecolor='w', edgecolor='k')\n",
- "crd = plot_contours(A,Cn,thr=0.9)\n",
- "pl.show()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "collapsed": true,
- "scrolled": true
- },
- "outputs": [],
- "source": [
- "p1=nb_plot_contour(Cn,A.todense(),dims[0],dims[1],thr=0.9,face_color=None, line_color='black',alpha=0.4,line_width=2)\n",
- "bpl.show(p1)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "collapsed": true,
- "scrolled": true
- },
- "outputs": [],
- "source": [
- "pl.close()\n",
- "t1 = time()\n",
- "options['temporal_params']['p'] = 0 # set this to zero for fast updating without deconvolution\n",
- "C,A,b,f,S,bl,c1,neurons_sn,g,YrA = cnmf.temporal.update_temporal_components(Yr,A,b,Cin,f_in,bl=None,c1=None,sn=None,g=None,**options['temporal_params'])\n",
- "t_elTEMPORAL = time() - t1\n",
- "print t_elTEMPORAL \n",
- "clear_output(wait=True)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "collapsed": true,
- "scrolled": true
- },
- "outputs": [],
- "source": [
- "#%% merge components corresponding to the same neuron\n",
- "t1 = time()\n",
- "A_m,C_m,nr_m,merged_ROIs,S_m,bl_m,c1_m,sn_m,g_m=cnmf.merging.merge_components(Yr,A,b,C,f,S,sn,options['temporal_params'], options['spatial_params'],dview=dview, bl=bl, c1=c1, sn=neurons_sn, g=g, thr=merge_thresh, mx=50, fast_merge = True)\n",
- "t_elMERGE = time() - t1\n",
- "print t_elMERGE"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "collapsed": true,
- "scrolled": true
- },
- "outputs": [],
- "source": [
- "#refine spatial and temporal components\n",
- "pl.close()\n",
- "t1 = time()\n",
- "A2,b2,C2,f = cnmf.spatial.update_spatial_components(Yr, C_m, f, A_m, sn=sn,dview=dview, **options['spatial_params'])\n",
- "options['temporal_params']['p'] = p # set it back to original value to perform full deconvolution\n",
- "C2,A2,b2,f2,S2,bl2,c12,neurons_sn2,g21,YrA = cnmf.temporal.update_temporal_components(Yr,A2,b2,C2,f,dview=dview, bl=None,c1=None,sn=None,g=None,**options['temporal_params'])\n",
- "clear_output(wait=True)\n",
- "print time() - t1 # 100 seconds\n",
- "print('DONE!')"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "collapsed": true,
- "scrolled": true
- },
- "outputs": [],
- "source": [
- "tB = np.minimum(-2,np.floor(-5./30*final_frate))\n",
- "tA = np.maximum(5,np.ceil(25./30*final_frate))\n",
- "Npeaks=10\n",
- "traces=C2+YrA\n",
- "# traces_a=traces-scipy.ndimage.percentile_filter(traces,8,size=[1,np.shape(traces)[-1]/5])\n",
- "# traces_b=np.diff(traces,axis=1)\n",
- "fitness_raw, fitness_delta, erfc_raw, erfc_delta, r_values, significant_samples = \\\n",
- " evaluate_components(Y, traces, A2, C2, b2, f2, final_frate, remove_baseline=True,\n",
- " N=5, robust_std=False, Athresh=0.1, Npeaks=Npeaks, thresh_C=0.3)\n",
- " \n",
- "idx_components_r=np.where(r_values>=.6)[0]\n",
- "idx_components_raw=np.where(fitness_raw<-60)[0] \n",
- "idx_components_delta=np.where(fitness_delta<-20)[0] \n",
- "\n",
- "\n",
- "min_radius=gSig[0]-2\n",
- "masks_ws,idx_blobs,idx_non_blobs=extract_binary_masks_blob(\n",
- "A2.tocsc(), min_radius, dims, num_std_threshold=1, \n",
- "minCircularity= 0.6, minInertiaRatio = 0.2,minConvexity =.8)\n",
- "\n",
- "\n",
- "\n",
- "\n",
- "idx_components=np.union1d(idx_components_r,idx_components_raw)\n",
- "idx_components=np.union1d(idx_components,idx_components_delta) \n",
- "idx_blobs=np.intersect1d(idx_components,idx_blobs) \n",
- "idx_components_bad=np.setdiff1d(range(len(traces)),idx_components)\n",
- "clear_output(wait=True)\n",
- "print(' ***** ')\n",
- "print len(traces)\n",
- "print(len(idx_components))\n",
- "print(len(idx_blobs))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "collapsed": true,
- "scrolled": true
- },
- "outputs": [],
- "source": [
- "fg=pl.figure(figsize=(12,20))\n",
- "pl.subplot(1,2,1)\n",
- "crd = plot_contours(A2.tocsc()[:,idx_components],Cn,thr=0.9)\n",
- "pl.subplot(1,2,2)\n",
- "crd = plot_contours(A2.tocsc()[:,idx_components_bad],Cn,thr=0.9)\n",
- "print(dims)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "collapsed": true,
- "scrolled": true
- },
- "outputs": [],
- "source": [
- "p2=nb_plot_contour(Cn,A2.tocsc()[:,idx_components].todense(),dims[0],dims[1],thr=0.9,face_color='purple', line_color='black',alpha=0.3,line_width=2)\n",
- "bpl.show(p2)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "collapsed": true,
- "scrolled": true
- },
- "outputs": [],
- "source": [
- "discard_traces_fluo=nb_view_patches(Yr,A2.tocsc()[:,idx_components],C2[idx_components],b2,f2,dims[0],dims[1],thr = 0.8,image_neurons=Cn, denoised_color='red')"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": []
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "collapsed": true,
- "scrolled": true
- },
- "outputs": [],
- "source": [
- "discard_traces_fluo=nb_view_patches(Yr,A2.tocsc()[:,idx_components_bad],C2[idx_components_bad],b2,f2,dims[0],dims[1],thr = 0.8,image_neurons=Cn, denoised_color='red')"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "collapsed": true,
- "scrolled": true
- },
- "outputs": [],
- "source": [
- "#%% STOP CLUSTER\n",
- "cm.stop_server()"
- ]
- }
- ],
- "metadata": {
- "anaconda-cloud": {},
- "kernelspec": {
- "display_name": "Python 3",
- "language": "python",
- "name": "python3"
- },
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.5.4"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 1
-}
diff --git a/demos/obsolete/demo_caiman_patches.py b/demos/obsolete/demo_caiman_patches.py
deleted file mode 100755
index 814f599ad..000000000
--- a/demos/obsolete/demo_caiman_patches.py
+++ /dev/null
@@ -1,264 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-"""
-Created on Wed Feb 24 18:39:45 2016
-
-@author: Andrea Giovannucci
-
-For explanation consult at https://github.com/agiovann/Constrained_NMF/releases/download/v0.4-alpha/Patch_demo.zip
-and https://github.com/agiovann/Constrained_NMF
-
-"""
-
-from __future__ import division
-from __future__ import print_function
-#%%
-from builtins import str
-from builtins import range
-from past.utils import old_div
-
-import caiman.source_extraction.cnmf.params
-
-try:
- if __IPYTHON__:
- # this is used for debugging purposes only. allows to reload classes when changed
- get_ipython().magic('load_ext autoreload')
- get_ipython().magic('autoreload 2')
-except NameError:
- print('Not launched under iPython')
-
-import sys
-import numpy as np
-from time import time
-from scipy.sparse import coo_matrix
-import psutil
-import glob
-import os
-import scipy
-from ipyparallel import Client
-import matplotlib as mpl
-# mpl.use('Qt5Agg')
-
-
-import pylab as pl
-pl.ion()
-#%%
-import caiman as cm
-from caiman.components_evaluation import evaluate_components
-from caiman.utils.visualization import plot_contours, view_patches_bar
-from caiman.base.rois import extract_binary_masks_blob
-import caiman.source_extraction.cnmf as cnmf
-#%%
-# frame rate in Hz
-final_frate = 10
-
-#%%
-# backend='SLURM'
-backend = 'local'
-if backend == 'SLURM':
- n_processes = np.int(os.environ.get('SLURM_NPROCS'))
-else:
- # roughly number of cores on your machine minus 1
- n_processes = np.maximum(np.int(psutil.cpu_count()), 1)
-print(('using ' + str(n_processes) + ' processes'))
-#%% start cluster for efficient computation
-single_thread = False
-
-if single_thread:
- dview = None
-else:
- try:
- c.close()
- except:
- print('C was not existing, creating one')
- print("Stopping cluster to avoid unnencessary use of memory....")
- sys.stdout.flush()
- if backend == 'SLURM':
- try:
- cm.stop_server(is_slurm=True)
- except:
- print('Nothing to stop')
- slurm_script = '/mnt/xfs1/home/agiovann/SOFTWARE/Constrained_NMF/SLURM/slurmStart.sh'
- cm.start_server(slurm_script=slurm_script)
- pdir, profile = os.environ['IPPPDIR'], os.environ['IPPPROFILE']
- c = Client(ipython_dir=pdir, profile=profile)
- else:
- cm.stop_server()
- cm.start_server()
- c = Client()
-
- print(('Using ' + str(len(c)) + ' processes'))
- dview = c[:len(c)]
-#%% FOR LOADING ALL TIFF FILES IN A FILE AND SAVING THEM ON A SINGLE MEMORY MAPPABLE FILE
-fnames = []
-base_folder = './example_movies/' # folder containing the demo files
-for file in glob.glob(os.path.join(base_folder, '*.tif')):
- if file.endswith("ie.tif"):
- fnames.append(os.path.abspath(file))
-fnames.sort()
-if len(fnames) == 0:
- raise Exception("Could not find any tiff file")
-print(fnames)
-fnames = fnames
-#%%
-# idx_x=slice(12,500,None)
-# idx_y=slice(12,500,None)
-# idx_xy=(idx_x,idx_y)
-downsample_factor = 1 # use .2 or .1 if file is large and you want a quick answer
-idx_xy = None
-base_name = 'Yr'
-name_new = cm.save_memmap_each(fnames, dview=dview, base_name=base_name, resize_fact=(
- 1, 1, downsample_factor), remove_init=0, idx_xy=idx_xy)
-name_new.sort()
-print(name_new)
-#%%
-name_new = cm.save_memmap_each(fnames, dview=dview, base_name='Yr', resize_fact=(
- 1, 1, 1), remove_init=0, idx_xy=None)
-name_new.sort()
-#%%
-fname_new = cm.save_memmap_join(
- name_new, base_name='Yr', n_chunks=12, dview=dview)
-#%%
-Yr, dims, T = cm.load_memmap(fname_new)
-d1, d2 = dims
-Y = np.reshape(Yr, dims + (T,), order='F')
-#%% visualize correlation image
-Cn = cm.local_correlations(Y)
-pl.imshow(Cn, cmap='gray')
-#%%
-rf = 10 # half-size of the patches in pixels. rf=25, patches are 50x50
-stride = 2 # amounpl.it of overlap between the patches in pixels
-K = 3 # number of neurons expected per patch
-gSig = [7, 7] # expected half size of neurons
-merge_thresh = 0.8 # merging threshold, max correlation allowed
-p = 2 # order of the autoregressive system
-memory_fact = 1 # unitless number accounting how much memory should be used. You will need to try different values to see which one would work the default is OK for a 16 GB system
-save_results = True
-#%% RUN ALGORITHM ON PATCHES
-options_patch = caiman.source_extraction.cnmf.params.CNMFParams(dims, K=K, gSig=gSig, ssub=1, tsub=4, p=0, thr=merge_thresh)
-A_tot, C_tot, YrA_tot, b, f, sn_tot, optional_outputs = cnmf.map_reduce.run_CNMF_patches(fname_new, (d1, d2, T), options_patch, rf=rf, stride=stride,
- dview=dview, memory_fact=memory_fact, gnb=1)
-print(('Number of components:' + str(A_tot.shape[-1])))
-#%%
-if save_results:
- np.savez('results_analysis_patch.npz', A_tot=A_tot.todense(),
- C_tot=C_tot, sn_tot=sn_tot, d1=d1, d2=d2, b=b, f=f)
-#%% if you have many components this might take long!
-pl.figure()
-crd = plot_contours(A_tot, Cn, thr=0.9)
-# %% set parameters for full field of view analysis
-options = caiman.source_extraction.cnmf.params.CNMFParams(dims, K=A_tot.shape[-1], gSig=gSig, p=0, thr=merge_thresh)
-pix_proc = np.minimum(np.int((d1 * d2) / n_processes / (old_div(T, 2000.))),
- np.int(old_div((d1 * d2), n_processes))) # regulates the amount of memory used
-options['spatial_params']['n_pixels_per_process'] = pix_proc
-options['temporal_params']['n_pixels_per_process'] = pix_proc
-#%% merge spatially overlaping and temporally correlated components
-A_m, C_m, nr_m, merged_ROIs, S_m, bl_m, c1_m, sn_m, g_m = cnmf.merging.merge_components(Yr, A_tot, [], np.array(C_tot), [], np.array(
- C_tot), [], options['temporal_params'], options['spatial_params'], dview=dview, thr=options['merging']['thr'], mx=np.Inf)
-#%% update temporal to get Y_r
-options['temporal_params']['p'] = 0
-# change ifdenoised traces time constant is wrong
-options['temporal_params']['fudge_factor'] = 0.96
-options['temporal_params']['backend'] = 'ipyparallel'
-C_m, A_m, b, f_m, S_m, bl_m, c1_m, neurons_sn_m, g2_m, YrA_m = cnmf.temporal.update_temporal_components(
- Yr, A_m, b, C_m, f, dview=dview, bl=None, c1=None, sn=None, g=None, **options['temporal_params'])
-
-#%% get rid of evenrually noisy components.
-# But check by visual inspection to have a feeling fot the threshold. Try to be loose, you will be able to get rid of more of them later!
-tB = np.minimum(-2, np.floor(-5. / 30 * final_frate))
-tA = np.maximum(5, np.ceil(25. / 30 * final_frate))
-Npeaks = 10
-traces = C_m + YrA_m
-# traces_a=traces-scipy.ndimage.percentile_filter(traces,8,size=[1,np.shape(traces)[-1]/5])
-# traces_b=np.diff(traces,axis=1)
-fitness_raw, fitness_delta, erfc_raw, erfc_delta, r_values, significant_samples =\
- evaluate_components(Y, traces, A_m, C_m, b, f_m,
- remove_baseline=True, N=5, robust_std=False, Athresh=0.1, Npeaks=Npeaks, tB=tB, tA=tA, thresh_C=0.3)
-
-idx_components_r = np.where(r_values >= .5)[0]
-idx_components_raw = np.where(fitness_raw < -20)[0]
-idx_components_delta = np.where(fitness_delta < -10)[0]
-
-
-idx_components = np.union1d(idx_components_r, idx_components_raw)
-idx_components = np.union1d(idx_components, idx_components_delta)
-idx_components_bad = np.setdiff1d(list(range(len(traces))), idx_components)
-
-print(' ***** ')
-print((len(traces)))
-print((len(idx_components)))
-
-#%%
-A_m = A_m[:, idx_components]
-C_m = C_m[idx_components, :]
-
-#%% display components DO NOT RUN IF YOU HAVE TOO MANY COMPONENTS
-pl.figure()
-crd = plot_contours(A_m, Cn, thr=0.9)
-#%%
-print(('Number of components:' + str(A_m.shape[-1])))
-#%% UPDATE SPATIAL OCMPONENTS
-t1 = time()
-A2, b2, C2, f = cnmf.spatial.update_spatial_components(
- Yr, C_m, f, A_m, sn=sn_tot, dview=dview, dims=dims, **options['spatial_params'])
-print((time() - t1))
-#%% UPDATE TEMPORAL COMPONENTS
-options['temporal_params']['p'] = p
-# change ifdenoised traces time constant is wrong
-options['temporal_params']['fudge_factor'] = 0.96
-C2, A2, b2, f2, S2, bl2, c12, neurons_sn2, g21, YrA = cnmf.temporal.update_temporal_components(
- Yr, A2, b2, C2, f, dview=dview, bl=None, c1=None, sn=None, g=None, **options['temporal_params'])
-#%% stop server and remove log files
-log_files = glob.glob('Yr*_LOG_*')
-for log_file in log_files:
- os.remove(log_file)
-#%% order components according to a quality threshold and only select the ones wiht qualitylarger than quality_threshold.
-B = np.minimum(-2, np.floor(-5. / 30 * final_frate))
-tA = np.maximum(5, np.ceil(25. / 30 * final_frate))
-Npeaks = 10
-traces = C2 + YrA
-# traces_a=traces-scipy.ndimage.percentile_filter(traces,8,size=[1,np.shape(traces)[-1]/5])
-# traces_b=np.diff(traces,axis=1)
-fitness_raw, fitness_delta, erfc_raw, erfc_delta, r_values, significant_samples = evaluate_components(
- Y, traces, A2, C2, b2, f2, remove_baseline=True, N=5, robust_std=False, Athresh=0.1, Npeaks=Npeaks, tB=tB, tA=tA, thresh_C=0.3)
-
-idx_components_r = np.where(r_values >= .6)[0]
-idx_components_raw = np.where(fitness_raw < -60)[0]
-idx_components_delta = np.where(fitness_delta < -20)[0]
-
-
-min_radius = gSig[0] - 2
-masks_ws, idx_blobs, idx_non_blobs = extract_binary_masks_blob(
- A2.tocsc(), min_radius, dims, num_std_threshold=1,
- minCircularity=0.6, minInertiaRatio=0.2, minConvexity=.8)
-
-
-idx_components = np.union1d(idx_components_r, idx_components_raw)
-idx_components = np.union1d(idx_components, idx_components_delta)
-idx_blobs = np.intersect1d(idx_components, idx_blobs)
-idx_components_bad = np.setdiff1d(list(range(len(traces))), idx_components)
-
-print(' ***** ')
-print((len(traces)))
-print((len(idx_components)))
-print((len(idx_blobs)))
-#%% visualize components
-# pl.figure();
-pl.subplot(1, 3, 1)
-crd = plot_contours(A2.tocsc()[:, idx_components], Cn, thr=0.9)
-pl.subplot(1, 3, 2)
-crd = plot_contours(A2.tocsc()[:, idx_blobs], Cn, thr=0.9)
-pl.subplot(1, 3, 3)
-crd = plot_contours(A2.tocsc()[:, idx_components_bad], Cn, thr=0.9)
-#%%
-view_patches_bar(Yr, scipy.sparse.coo_matrix(A2.tocsc()[
- :, idx_components]), C2[idx_components, :], b2, f2, dims[0], dims[1], YrA=YrA[idx_components, :], img=Cn)
-#%%
-view_patches_bar(Yr, scipy.sparse.coo_matrix(A2.tocsc()[
- :, idx_components_bad]), C2[idx_components_bad, :], b2, f2, dims[0], dims[1], YrA=YrA[idx_components_bad, :], img=Cn)
-#%% STOP CLUSTER
-pl.close()
-if not single_thread:
- c.close()
- cm.stop_server()
diff --git a/demos/obsolete/demo_cnmfE_2D.py b/demos/obsolete/demo_cnmfE_2D.py
deleted file mode 100644
index fbab5426f..000000000
--- a/demos/obsolete/demo_cnmfE_2D.py
+++ /dev/null
@@ -1,223 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-"""
-Created on Thu Sep 7 13:29:49 2017
-
-@author: agiovann
-"""
-
-#%%
-try:
- get_ipython().magic(u'load_ext autoreload')
- get_ipython().magic(u'autoreload 2')
-except:
- print('Not launched under iPython')
-
-import numpy as np
-import matplotlib.pyplot as plt
-from matplotlib.widgets import Slider
-from scipy.sparse import coo_matrix
-import caiman as cm
-from caiman.source_extraction import cnmf
-import scipy
-
-
-#%%
-def show_img(ax, img):
- from mpl_toolkits.axes_grid1 import make_axes_locatable
- im = ax.imshow(img)
- divider = make_axes_locatable(ax)
- cax = divider.append_axes("right", size="5%", pad=0.05)
- plt.colorbar(im, cax=cax)
-
-
-#%%
-fname = './example_movies/data_endoscope.tif'
-gSig = 3 # gaussian width of a 2D gaussian kernel, which approximates a neuron
-gSiz = 10 # average diameter of a neuron
-min_corr = .8
-min_pnr = 10
-fname = '/opt/local/Data/1photon/3168_PAG_TIFF.tif'
-#fname = '/opt/local/Data/1photon/Yr_d1_190_d2_198_d3_1_order_F_frames_35992_.mmap'
-gSig = 3 # gaussian width of a 2D gaussian kernel, which approximates a neuron
-gSiz = 16 # average diameter of a neuron
-min_corr = .6
-min_pnr = 10
-
-# If True, the background can be roughly removed. This is useful when the background is strong.
-center_psf = True
-
-
-Y = cm.load(fname)
-T, d1, d2 = Y.shape
-print('The dimension of data is ', Y.shape)
-
-ax = plt.axes()
-ax.axis('off')
-show_img(ax, Y[100, ])
-
-
-#%%
-# show correlation image of the raw data; show correlation image and PNR image of the filtered data
-cn_raw = cm.summary_images.max_correlation_image(
- Y, swap_dim=False, bin_size=3000)
-#%% TAKES MEMORY!!!
-cn_filter, pnr = cm.summary_images.correlation_pnr(
- Y, gSig=gSig, center_psf=center_psf, swap_dim=False)
-plt.figure(figsize=(10, 5))
-#%%
-for i, (data, title) in enumerate(((Y.mean(0), 'Mean image (raw)'),
- (Y.max(0), 'Max projection (raw)'),
- (cn_raw[1:-1, 1:-1], 'Correlation (raw)'),
- (cn_filter, 'Correlation (filtered)'),
- (pnr, 'PNR (filtered)'),
- (cn_filter * pnr, 'Correlation*PNR (filtered)'))):
- plt.subplot(2, 3, 1 + i)
- plt.imshow(data, cmap='jet', aspect='equal')
- plt.axis('off')
- plt.colorbar()
- plt.title(title)
-
-
-#%%
-# pick thresholds
-fig = plt.figure(figsize=(10, 4))
-plt.axes([0.05, 0.2, 0.4, 0.7])
-im_cn = plt.imshow(cn_filter, cmap='jet')
-plt.title('correlation image')
-plt.colorbar()
-plt.axes([0.5, 0.2, 0.4, 0.7])
-im_pnr = plt.imshow(pnr, cmap='jet')
-plt.title('PNR')
-plt.colorbar()
-
-s_cn_max = Slider(plt.axes([0.05, 0.01, 0.35, 0.03]), 'vmax',
- cn_filter.min(), cn_filter.max(), valinit=cn_filter.max())
-s_cn_min = Slider(plt.axes([0.05, 0.07, 0.35, 0.03]), 'vmin',
- cn_filter.min(), cn_filter.max(), valinit=cn_filter.min())
-s_pnr_max = Slider(plt.axes([0.5, 0.01, 0.35, 0.03]), 'vmax',
- pnr.min(), pnr.max(), valinit=pnr.max())
-s_pnr_min = Slider(plt.axes([0.5, 0.07, 0.35, 0.03]), 'vmin',
- pnr.min(), pnr.max(), valinit=pnr.min())
-
-
-def update(val):
- im_cn.set_clim([s_cn_min.val, s_cn_max.val])
- im_pnr.set_clim([s_pnr_min.val, s_pnr_max.val])
- fig.canvas.draw_idle()
-
-
-s_cn_max.on_changed(update)
-s_cn_min.on_changed(update)
-s_pnr_max.on_changed(update)
-s_pnr_min.on_changed(update)
-
-
-#%%
-c, dview, n_processes = cm.cluster.setup_cluster(
- backend='local', n_processes=None, single_thread=False)
-
-
-#%%
-cnm = cnmf.CNMF(n_processes=n_processes, method_init='corr_pnr', k=35, gSig=(3, 3), gSiz=(10, 10), merge_thresh=.8,
- p=1, dview=dview, tsub=1, ssub=1, Ain=None, rf=(25, 25), stride=(25, 25),
- only_init_patch=True, gnb=5, nb_patch=3, method_deconvolution='oasis',
- low_rank_background=False, update_background_components=False, min_corr=min_corr,
- min_pnr=min_pnr, normalize_init=False, deconvolve_options_init=None,
- ring_size_factor=1.5, center_psf=True)
-
-#%%
-# cnm = cnmf.CNMF(n_processes=2, method_init='corr_pnr', k=155, gSig=(3, 3), gSiz=(10, 10), merge_thresh=.8,
-# p=1, dview=None, tsub=1, ssub=1, Ain=None, rf=(64, 64), stride=(0, 0),
-# only_init_patch=True, gnb=10, nb_patch=3, method_deconvolution='oasis',
-# low_rank_background=False, update_background_components=False, min_corr=.8,
-# min_pnr=10, normalize_init=False, deconvolve_options_init=None,
-# ring_size_factor=1.5, center_psf=True)
-
-#%%
-#cnm.options['init_params']['gSiz'] = (10, 10)
-#cnm.options['init_params']['gSig'] = (3, 3)
-#cnm.options['init_params']['min_corr'] = .85
-#cnm.options['init_params']['min_pnr'] = 20
-# cnm.options['init_params']['normalize_init']=False
-
-
-#%%
-memmap = True # must be True for patches
-if memmap:
- if '.mmap' in fname:
- fname_new = fname
- else:
- fname_new = cm.save_memmap([fname], base_name='Yr')
- Yr, dims, T = cm.load_memmap(fname_new)
- cnm.fit(Yr.T.reshape((T,) + dims, order='F'))
-else:
- cnm.fit(Y)
-# %%
-#A_tot, C_tot, b_tot, f_tot, YrA_tot, sn = cnm.A, cnm.C, cnm.b, cnm.f, cnm.YrA, cnm.sn
-# %%
-#crd = cm.utils.visualization.plot_contours(A_tot, cn_filter, thr=.95, vmax=0.95)
-# %%
-#plt.imshow(A_tot.sum(-1).reshape(dims, order='F'))
-#
-#
-# %% DISCARD LOW QUALITY COMPONENT
-#final_frate = 10
-# r_values_min = 0.1 # threshold on space consistency
-# fitness_min = - 20 # threshold on time variability
-# threshold on time variability (if nonsparse activity)
-#fitness_delta_min = - 20
-#Npeaks = 10
-#traces = C_tot + YrA_tot
-## TODO: todocument
-# idx_components, idx_components_bad = cm.components_evaluation.estimate_components_quality(
-# traces, Yr, A_tot, C_tot, b_tot, f_tot, final_frate=final_frate, Npeaks=Npeaks,
-# r_values_min=r_values_min, fitness_min=fitness_min, fitness_delta_min=fitness_delta_min)
-#
-#print(('Keeping ' + str(len(idx_components)) + ' and discarding ' + str(len(idx_components_bad))))
-# %%
-#plt.subplot(1, 2, 1)
-#crd = cm.utils.visualization.plot_contours(A_tot.tocsc()[:, idx_components], cn_filter, thr=.95)
-#plt.subplot(1, 2, 2)
-# crd = cm.utils.visualization.plot_contours(
-# A_tot.tocsc()[:, idx_components_bad], cn_filter, thr=.95)
-# %%
-# cm.utils.visualization.view_patches_bar(
-# Yr, coo_matrix(A_tot.tocsc()[:, idx_components]), C_tot[idx_components, :],
-# b_tot, f_tot, dims[0], dims[1], YrA=YrA_tot[idx_components, :], img=cn_filter)
-# %%
-# cm.utils.visualization.view_patches_bar(
-# Yr, coo_matrix(A_tot.tocsc()[:, idx_components_bad]), C_tot[idx_components_bad, :],
-# b_tot, f_tot, dims[0], dims[1], YrA=YrA_tot[idx_components_bad, :], img=cn_filter)
-#
-#
-# %% rerun updating the components to refine
-# cnm = cnmf.CNMF(n_processes=1, k=A_tot.shape, gSig=[gSig, gSig], merge_thresh=0.8, p=1,
-# dview=dview, Ain=A_tot, Cin=C_tot, b_in=b_tot,
-# f_in=f_tot, rf=None, stride=None, method_deconvolution='oasis', gnb=None,
-# low_rank_background=False, update_background_components=False)
-#
-# memmap = True # must be True for patches
-# if memmap:
-# fname_new = cm.save_memmap([fname], base_name='Yr')
-# Yr, dims, T = cm.load_memmap(fname_new)
-# cnm.fit(Yr.T.reshape((T,) + dims, order='F'))
-# else:
-# cnm.fit(Y)
-
-
-#%%
-A, C, b, f, YrA, sn = cnm.A, cnm.C, cnm.b, cnm.f, cnm.YrA, cnm.sn
-#%%
-pl.figure()
-crd = cm.utils.visualization.plot_contours(
- A.tocsc()[:, idx_components], cn_filter, thr=.9)
-
-#%%
-plt.imshow(A.sum(-1).reshape(dims, order='F'), vmax=200)
-#%%
-idx_components = np.arange(A.shape[-1])
-cm.utils.visualization.view_patches_bar(
- Yr, coo_matrix(A.tocsc()[:, idx_components]), C[idx_components],
- b, f, dims[0], dims[1], YrA=YrA[idx_components], img=cn_filter)
diff --git a/demos/obsolete/demo_cnmfE_2D_new.py b/demos/obsolete/demo_cnmfE_2D_new.py
deleted file mode 100644
index 472b88b0d..000000000
--- a/demos/obsolete/demo_cnmfE_2D_new.py
+++ /dev/null
@@ -1,131 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-"""
-Created on Thu Sep 7 13:29:49 2017
-
-@author: agiovann
-"""
-
-#%%
-try:
- get_ipython().magic(u'load_ext autoreload')
- get_ipython().magic(u'autoreload 2')
-except:
- print('Not launched under iPython')
-
-import numpy as np
-import matplotlib.pyplot as pl
-from matplotlib.widgets import Slider
-from scipy.sparse import coo_matrix
-import caiman as cm
-from caiman.source_extraction import cnmf
-from caiman.utils.visualization import inspect_correlation_pnr
-import scipy
-
-#%%
-#fname = './example_movies/data_endoscope.tif'
-# gSig = [3,3] # gaussian width of a 2D gaussian kernel, which approximates a neuron
-# gSiz = [10,10] # average diameter of a neuron
-#min_corr = .8
-#min_pnr = 10
-
-#fname = '/opt/local/Data/1photon/3168_PAG_TIFF.tif'
-fname = '/opt/local/Data/1photon/Yr_d1_190_d2_198_d3_1_order_F_frames_35992_.mmap'
-gSig = [3, 3] # gaussian width of a 2D gaussian kernel, which approximates a neuron
-gSiz = [16, 16] # average diameter of a neuron
-min_corr = .6
-min_pnr = 10
-
-# If True, the background can be roughly removed. This is useful when the background is strong.
-center_psf = True
-
-
-if 'mmap' in fname:
- Yr, dims, T = cm.load_memmap(fname)
- Y = Yr.T.reshape((T,) + dims, order='F')
-else:
- Y = cm.load(fname)
-T, d1, d2 = Y.shape
-print('The dimension of data is ', Y.shape)
-
-ax = pl.axes()
-ax.axis('off')
-pl.imshow(Y[100])
-#%%
-# show correlation image of the raw data; show correlation image and PNR image of the filtered data
-cn_raw = cm.summary_images.max_correlation_image(
- Y, swap_dim=False, bin_size=3000)
-#%% TAKES MEMORY!!!
-cn_filter, pnr = cm.summary_images.correlation_pnr(
- Y, gSig=gSig, center_psf=center_psf, swap_dim=False)
-
-#%%
-pl.figure(figsize=(10, 5))
-for i, (data, title) in enumerate(((Y.mean(0), 'Mean image (raw)'),
- (Y.max(0), 'Max projection (raw)'),
- (cn_raw[1:-1, 1:-1], 'Correlation (raw)'),
- (cn_filter, 'Correlation (filtered)'),
- (pnr, 'PNR (filtered)'),
- (cn_filter * pnr, 'Correlation*PNR (filtered)'))):
- pl.subplot(2, 3, 1 + i)
- pl.imshow(data, cmap='jet', aspect='equal')
- pl.axis('off')
- pl.colorbar()
- pl.title(title)
-
-
-#%%
-# pick thresholds
-inspect_correlation_pnr(cn_filter, pnr)
-
-#%% start cluster
-try:
- dview.terminate()
- dview = None
-except:
- pass
-c, dview, n_processes = cm.cluster.setup_cluster(
- backend='local', n_processes=None, single_thread=False)
-#%%
-cnm = cnmf.CNMF(n_processes=n_processes, method_init='corr_pnr', k=10,
- gSig=gSig, gSiz=gSiz, merge_thresh=.8, p=1, dview=dview,
- tsub=1, ssub=1, Ain=None, rf=(50, 50), stride=(32, 32), only_init_patch=True,
- gnb=16, nb_patch=16, method_deconvolution='oasis', low_rank_background=True,
- update_background_components=True, min_corr=min_corr, min_pnr=min_pnr,
- normalize_init=False, deconvolve_options_init=None,
- ring_size_factor=1.5, center_psf=center_psf, del_duplicates=True)
-
-cnm.fit(Y)
-# %% DISCARD LOW QUALITY COMPONENT
-final_frate = 10
-r_values_min = 0.9 # threshold on space consistency
-fitness_min = -100 # threshold on time variability
-# threshold on time variability (if nonsparse activity)
-fitness_delta_min = - 100
-Npeaks = 5
-traces = cnm.C + cnm.YrA
-# TODO: todocument
-idx_components, idx_components_bad = cm.components_evaluation.estimate_components_quality(
- traces, Yr, cnm.A, cnm.C, cnm.b, cnm.f, final_frate=final_frate, Npeaks=Npeaks,
- r_values_min=r_values_min, fitness_min=fitness_min, fitness_delta_min=fitness_delta_min, dview=dview)
-
-print(('Keeping ' + str(len(idx_components)) +
- ' and discarding ' + str(len(idx_components_bad))))
-
-
-#%%
-A_, C_, YrA_, b_, f_ = cnm.A[:,
- idx_components], cnm.C[idx_components], cnm.YrA[idx_components], cnm.b, cnm.f
-#%%
-pl.figure()
-crd = cm.utils.visualization.plot_contours(
- A_.tocsc()[:, idx_components], cn_filter, thr=.9)
-
-#%%
-pl.imshow(A_.sum(-1).reshape(dims, order='F'), vmax=200)
-#%%
-idx_components = np.arange(A_.shape[-1])
-cm.utils.visualization.view_patches_bar(
- Yr, coo_matrix(A_.tocsc()[:, idx_components]), C_[idx_components],
- b_, f_, dims[0], dims[1], YrA=YrA_[idx_components], img=cn_filter)
diff --git a/demos/obsolete/demo_cnmfe_2d.ipynb b/demos/obsolete/demo_cnmfe_2d.ipynb
deleted file mode 100644
index 64bc60c4b..000000000
--- a/demos/obsolete/demo_cnmfe_2d.ipynb
+++ /dev/null
@@ -1,4064 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "code",
- "execution_count": 1,
- "metadata": {},
- "outputs": [
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Using TensorFlow backend.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Debugging!\n",
- "The autoreload extension is already loaded. To reload it, use:\n",
- " %reload_ext autoreload\n"
- ]
- }
- ],
- "source": [
- "try:\n",
- " get_ipython().magic(u'load_ext autoreload')\n",
- " get_ipython().magic(u'autoreload 2')\n",
- "except:\n",
- " print('NOT IPYTHON')\n",
- "\n",
- "import numpy as np\n",
- "import matplotlib as mpl\n",
- "import matplotlib.pyplot as plt\n",
- "from matplotlib.widgets import Slider\n",
- "import caiman as cm\n",
- "from caiman.source_extraction import cnmf\n",
- "import bokeh\n",
- "import bokeh.plotting as bpl\n",
- "from bokeh.models import CustomJS, ColumnDataSource, Range1d\n",
- "from bokeh.io import output_notebook, reset_output\n",
- "import os"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "metadata": {
- "collapsed": true
- },
- "outputs": [],
- "source": [
- "def show_img(ax, img):\n",
- " from mpl_toolkits.axes_grid1 import make_axes_locatable\n",
- " im = ax.imshow(img)\n",
- " divider = make_axes_locatable(ax)\n",
- " cax = divider.append_axes(\"right\", size=\"5%\", pad=0.05)\n",
- " plt.colorbar(im, cax=cax)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# step 1: load data "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 3,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "('The dimension of data is ', (1000, 128, 128))\n"
- ]
- },
- {
- "data": {
- "image/png": "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\n",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "fname = './example_movies/data_endoscope.tif'\n",
- "Y = cm.load(fname)\n",
- "T, d1, d2 = Y.shape\n",
- "print('The dimension of data is ', Y.shape)\n",
- "\n",
- "ax = plt.axes()\n",
- "ax.axis('off')\n",
- "show_img(ax, Y[100])"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 4,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "(1000, 128, 128)\n"
- ]
- },
- {
- "data": {
- "image/png": "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\n",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "Cn = Y.local_correlations(swap_dim=False)\n",
- "ax = plt.axes()\n",
- "ax.axis('off')\n",
- "show_img(ax, Cn)\n",
- "print(Y.shape)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "From the example above, we can see that 1-photon data typically have large and blurring background that contaminates the detection of neural signal. This makes it very hard to detect neurons and extract their temporal activities. CNMF-E uses spatially filtering to remove the low spatial frequency term and visualize neurons via two summary images: local correlation image and peak-to-noise ratios (PNR) image. Local correlation image highlights the locally correlated spatial structures, and PNR image highlights neurons' calcium transients. \n",
- "\n",
- "The spatial filtering that roughly removes the background is the key to the sucess of CNMF-E. The kernel is simply generated from a truncated Gaussian kernel. However, the important part is centering the kernel to make its mean equal to 0. "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 5,
- "metadata": {
- "scrolled": true
- },
- "outputs": [
- {
- "data": {
- "image/png": "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\nHPx3VD0AAAAASUVORK5CYII=\n",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "# parameters \n",
- "gSig = 3 # gaussian width of a 2D gaussian kernel, which approximates a neuron \n",
- "gSiz = 10 # average diameter of a neuron \n",
- "center_psf = True # If True, the background can be roughly removed. This is useful when the background is strong. \n",
- "\n",
- "# show correlation image of the raw data; show correlation image and PNR image of the filtered data\n",
- "cn_raw = cm.summary_images.local_correlations_fft(Y, swap_dim=False)\n",
- "cn_filter, pnr = cm.summary_images.correlation_pnr(Y, gSig=gSig, center_psf=center_psf, swap_dim=False)\n",
- "plt.figure(figsize=(10, 5))\n",
- "\n",
- "for i, (data, title) in enumerate(((Y.mean(0), 'Mean image (raw)'),\n",
- " (Y.max(0), 'Max projection (raw)'),\n",
- " (cn_raw[1:-1,1:-1], 'Correlation (raw)'),\n",
- " (cn_filter, 'Correlation (filtered)'),\n",
- " (pnr, 'PNR (filtered)'),\n",
- " (cn_filter*pnr, 'Correlation*PNR (filtered)'))):\n",
- " plt.subplot(2,3,1+i)\n",
- " plt.imshow(data, cmap='jet', aspect='equal')\n",
- " plt.axis('off')\n",
- " plt.colorbar() \n",
- " plt.title(title);"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "As we can see, the summary images resulted from the raw data poorly display isolated neurons. While spatial filtering significanly improves the visualization of single neurons. Our initialization procedure roots from this observation. We pick pixels with large local correlation coefficients and large PNR values, then we use them as seed pixels for initialization spatial & temporal components of all single neurons. \n",
- "\n",
- "To do initialization, we have to specify two thresholds for detecting seed pixels: the mininum local correlation and the minimum PNR. All pxiels satisfying these two requirements are chosen as our seed pixels. The initialization procedure stops when there are no seed pixels. \n",
- "\n",
- "When specifying the thresholds, we have to make sure most neurons have seed pixels above the thresholds. Otherwise, we may miss lots of neurons in this step. In the meanwhile, we want to make the thresholds to screen out most pixels that are out of neurons' ROIs. But don't be too picky about the parameter selection. CNMF-E can still pick neurons from the residual after we estimate the background and subtract it from the raw video in the later phase. "
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# step 2: initialization "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 6,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "application/javascript": [
- "/* Put everything inside the global mpl namespace */\n",
- "window.mpl = {};\n",
- "\n",
- "\n",
- "mpl.get_websocket_type = function() {\n",
- " if (typeof(WebSocket) !== 'undefined') {\n",
- " return WebSocket;\n",
- " } else if (typeof(MozWebSocket) !== 'undefined') {\n",
- " return MozWebSocket;\n",
- " } else {\n",
- " alert('Your browser does not have WebSocket support.' +\n",
- " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
- " 'Firefox 4 and 5 are also supported but you ' +\n",
- " 'have to enable WebSockets in about:config.');\n",
- " };\n",
- "}\n",
- "\n",
- "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n",
- " this.id = figure_id;\n",
- "\n",
- " this.ws = websocket;\n",
- "\n",
- " this.supports_binary = (this.ws.binaryType != undefined);\n",
- "\n",
- " if (!this.supports_binary) {\n",
- " var warnings = document.getElementById(\"mpl-warnings\");\n",
- " if (warnings) {\n",
- " warnings.style.display = 'block';\n",
- " warnings.textContent = (\n",
- " \"This browser does not support binary websocket messages. \" +\n",
- " \"Performance may be slow.\");\n",
- " }\n",
- " }\n",
- "\n",
- " this.imageObj = new Image();\n",
- "\n",
- " this.context = undefined;\n",
- " this.message = undefined;\n",
- " this.canvas = undefined;\n",
- " this.rubberband_canvas = undefined;\n",
- " this.rubberband_context = undefined;\n",
- " this.format_dropdown = undefined;\n",
- "\n",
- " this.image_mode = 'full';\n",
- "\n",
- " this.root = $('
');\n",
- " this._root_extra_style(this.root)\n",
- " this.root.attr('style', 'display: inline-block');\n",
- "\n",
- " $(parent_element).append(this.root);\n",
- "\n",
- " this._init_header(this);\n",
- " this._init_canvas(this);\n",
- " this._init_toolbar(this);\n",
- "\n",
- " var fig = this;\n",
- "\n",
- " this.waiting = false;\n",
- "\n",
- " this.ws.onopen = function () {\n",
- " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n",
- " fig.send_message(\"send_image_mode\", {});\n",
- " if (mpl.ratio != 1) {\n",
- " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n",
- " }\n",
- " fig.send_message(\"refresh\", {});\n",
- " }\n",
- "\n",
- " this.imageObj.onload = function() {\n",
- " if (fig.image_mode == 'full') {\n",
- " // Full images could contain transparency (where diff images\n",
- " // almost always do), so we need to clear the canvas so that\n",
- " // there is no ghosting.\n",
- " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
- " }\n",
- " fig.context.drawImage(fig.imageObj, 0, 0);\n",
- " };\n",
- "\n",
- " this.imageObj.onunload = function() {\n",
- " this.ws.close();\n",
- " }\n",
- "\n",
- " this.ws.onmessage = this._make_on_message_function(this);\n",
- "\n",
- " this.ondownload = ondownload;\n",
- "}\n",
- "\n",
- "mpl.figure.prototype._init_header = function() {\n",
- " var titlebar = $(\n",
- " '
');\n",
- " var titletext = $(\n",
- " '
');\n",
- " titlebar.append(titletext)\n",
- " this.root.append(titlebar);\n",
- " this.header = titletext[0];\n",
- "}\n",
- "\n",
- "\n",
- "\n",
- "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
- "\n",
- "}\n",
- "\n",
- "\n",
- "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
- "\n",
- "}\n",
- "\n",
- "mpl.figure.prototype._init_canvas = function() {\n",
- " var fig = this;\n",
- "\n",
- " var canvas_div = $('
');\n",
- "\n",
- " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
- "\n",
- " function canvas_keyboard_event(event) {\n",
- " return fig.key_event(event, event['data']);\n",
- " }\n",
- "\n",
- " canvas_div.keydown('key_press', canvas_keyboard_event);\n",
- " canvas_div.keyup('key_release', canvas_keyboard_event);\n",
- " this.canvas_div = canvas_div\n",
- " this._canvas_extra_style(canvas_div)\n",
- " this.root.append(canvas_div);\n",
- "\n",
- " var canvas = $(' ');\n",
- " canvas.addClass('mpl-canvas');\n",
- " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
- "\n",
- " this.canvas = canvas[0];\n",
- " this.context = canvas[0].getContext(\"2d\");\n",
- "\n",
- " var backingStore = this.context.backingStorePixelRatio ||\n",
- "\tthis.context.webkitBackingStorePixelRatio ||\n",
- "\tthis.context.mozBackingStorePixelRatio ||\n",
- "\tthis.context.msBackingStorePixelRatio ||\n",
- "\tthis.context.oBackingStorePixelRatio ||\n",
- "\tthis.context.backingStorePixelRatio || 1;\n",
- "\n",
- " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
- "\n",
- " var rubberband = $(' ');\n",
- " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
- "\n",
- " var pass_mouse_events = true;\n",
- "\n",
- " canvas_div.resizable({\n",
- " start: function(event, ui) {\n",
- " pass_mouse_events = false;\n",
- " },\n",
- " resize: function(event, ui) {\n",
- " fig.request_resize(ui.size.width, ui.size.height);\n",
- " },\n",
- " stop: function(event, ui) {\n",
- " pass_mouse_events = true;\n",
- " fig.request_resize(ui.size.width, ui.size.height);\n",
- " },\n",
- " });\n",
- "\n",
- " function mouse_event_fn(event) {\n",
- " if (pass_mouse_events)\n",
- " return fig.mouse_event(event, event['data']);\n",
- " }\n",
- "\n",
- " rubberband.mousedown('button_press', mouse_event_fn);\n",
- " rubberband.mouseup('button_release', mouse_event_fn);\n",
- " // Throttle sequential mouse events to 1 every 20ms.\n",
- " rubberband.mousemove('motion_notify', mouse_event_fn);\n",
- "\n",
- " rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
- " rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
- "\n",
- " canvas_div.on(\"wheel\", function (event) {\n",
- " event = event.originalEvent;\n",
- " event['data'] = 'scroll'\n",
- " if (event.deltaY < 0) {\n",
- " event.step = 1;\n",
- " } else {\n",
- " event.step = -1;\n",
- " }\n",
- " mouse_event_fn(event);\n",
- " });\n",
- "\n",
- " canvas_div.append(canvas);\n",
- " canvas_div.append(rubberband);\n",
- "\n",
- " this.rubberband = rubberband;\n",
- " this.rubberband_canvas = rubberband[0];\n",
- " this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
- " this.rubberband_context.strokeStyle = \"#000000\";\n",
- "\n",
- " this._resize_canvas = function(width, height) {\n",
- " // Keep the size of the canvas, canvas container, and rubber band\n",
- " // canvas in synch.\n",
- " canvas_div.css('width', width)\n",
- " canvas_div.css('height', height)\n",
- "\n",
- " canvas.attr('width', width * mpl.ratio);\n",
- " canvas.attr('height', height * mpl.ratio);\n",
- " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n",
- "\n",
- " rubberband.attr('width', width);\n",
- " rubberband.attr('height', height);\n",
- " }\n",
- "\n",
- " // Set the figure to an initial 600x600px, this will subsequently be updated\n",
- " // upon first draw.\n",
- " this._resize_canvas(600, 600);\n",
- "\n",
- " // Disable right mouse context menu.\n",
- " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n",
- " return false;\n",
- " });\n",
- "\n",
- " function set_focus () {\n",
- " canvas.focus();\n",
- " canvas_div.focus();\n",
- " }\n",
- "\n",
- " window.setTimeout(set_focus, 100);\n",
- "}\n",
- "\n",
- "mpl.figure.prototype._init_toolbar = function() {\n",
- " var fig = this;\n",
- "\n",
- " var nav_element = $('
')\n",
- " nav_element.attr('style', 'width: 100%');\n",
- " this.root.append(nav_element);\n",
- "\n",
- " // Define a callback function for later on.\n",
- " function toolbar_event(event) {\n",
- " return fig.toolbar_button_onclick(event['data']);\n",
- " }\n",
- " function toolbar_mouse_event(event) {\n",
- " return fig.toolbar_button_onmouseover(event['data']);\n",
- " }\n",
- "\n",
- " for(var toolbar_ind in mpl.toolbar_items) {\n",
- " var name = mpl.toolbar_items[toolbar_ind][0];\n",
- " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
- " var image = mpl.toolbar_items[toolbar_ind][2];\n",
- " var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
- "\n",
- " if (!name) {\n",
- " // put a spacer in here.\n",
- " continue;\n",
- " }\n",
- " var button = $(' ');\n",
- " button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
- " 'ui-button-icon-only');\n",
- " button.attr('role', 'button');\n",
- " button.attr('aria-disabled', 'false');\n",
- " button.click(method_name, toolbar_event);\n",
- " button.mouseover(tooltip, toolbar_mouse_event);\n",
- "\n",
- " var icon_img = $(' ');\n",
- " icon_img.addClass('ui-button-icon-primary ui-icon');\n",
- " icon_img.addClass(image);\n",
- " icon_img.addClass('ui-corner-all');\n",
- "\n",
- " var tooltip_span = $(' ');\n",
- " tooltip_span.addClass('ui-button-text');\n",
- " tooltip_span.html(tooltip);\n",
- "\n",
- " button.append(icon_img);\n",
- " button.append(tooltip_span);\n",
- "\n",
- " nav_element.append(button);\n",
- " }\n",
- "\n",
- " var fmt_picker_span = $(' ');\n",
- "\n",
- " var fmt_picker = $(' ');\n",
- " fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
- " fmt_picker_span.append(fmt_picker);\n",
- " nav_element.append(fmt_picker_span);\n",
- " this.format_dropdown = fmt_picker[0];\n",
- "\n",
- " for (var ind in mpl.extensions) {\n",
- " var fmt = mpl.extensions[ind];\n",
- " var option = $(\n",
- " ' ', {selected: fmt === mpl.default_extension}).html(fmt);\n",
- " fmt_picker.append(option)\n",
- " }\n",
- "\n",
- " // Add hover states to the ui-buttons\n",
- " $( \".ui-button\" ).hover(\n",
- " function() { $(this).addClass(\"ui-state-hover\");},\n",
- " function() { $(this).removeClass(\"ui-state-hover\");}\n",
- " );\n",
- "\n",
- " var status_bar = $('');\n",
- " nav_element.append(status_bar);\n",
- " this.message = status_bar[0];\n",
- "}\n",
- "\n",
- "mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n",
- " // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
- " // which will in turn request a refresh of the image.\n",
- " this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n",
- "}\n",
- "\n",
- "mpl.figure.prototype.send_message = function(type, properties) {\n",
- " properties['type'] = type;\n",
- " properties['figure_id'] = this.id;\n",
- " this.ws.send(JSON.stringify(properties));\n",
- "}\n",
- "\n",
- "mpl.figure.prototype.send_draw_message = function() {\n",
- " if (!this.waiting) {\n",
- " this.waiting = true;\n",
- " this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n",
- " }\n",
- "}\n",
- "\n",
- "\n",
- "mpl.figure.prototype.handle_save = function(fig, msg) {\n",
- " var format_dropdown = fig.format_dropdown;\n",
- " var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
- " fig.ondownload(fig, format);\n",
- "}\n",
- "\n",
- "\n",
- "mpl.figure.prototype.handle_resize = function(fig, msg) {\n",
- " var size = msg['size'];\n",
- " if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n",
- " fig._resize_canvas(size[0], size[1]);\n",
- " fig.send_message(\"refresh\", {});\n",
- " };\n",
- "}\n",
- "\n",
- "mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
- " var x0 = msg['x0'] / mpl.ratio;\n",
- " var y0 = (fig.canvas.height - msg['y0']) / mpl.ratio;\n",
- " var x1 = msg['x1'] / mpl.ratio;\n",
- " var y1 = (fig.canvas.height - msg['y1']) / mpl.ratio;\n",
- " x0 = Math.floor(x0) + 0.5;\n",
- " y0 = Math.floor(y0) + 0.5;\n",
- " x1 = Math.floor(x1) + 0.5;\n",
- " y1 = Math.floor(y1) + 0.5;\n",
- " var min_x = Math.min(x0, x1);\n",
- " var min_y = Math.min(y0, y1);\n",
- " var width = Math.abs(x1 - x0);\n",
- " var height = Math.abs(y1 - y0);\n",
- "\n",
- " fig.rubberband_context.clearRect(\n",
- " 0, 0, fig.canvas.width, fig.canvas.height);\n",
- "\n",
- " fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
- "}\n",
- "\n",
- "mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n",
- " // Updates the figure title.\n",
- " fig.header.textContent = msg['label'];\n",
- "}\n",
- "\n",
- "mpl.figure.prototype.handle_cursor = function(fig, msg) {\n",
- " var cursor = msg['cursor'];\n",
- " switch(cursor)\n",
- " {\n",
- " case 0:\n",
- " cursor = 'pointer';\n",
- " break;\n",
- " case 1:\n",
- " cursor = 'default';\n",
- " break;\n",
- " case 2:\n",
- " cursor = 'crosshair';\n",
- " break;\n",
- " case 3:\n",
- " cursor = 'move';\n",
- " break;\n",
- " }\n",
- " fig.rubberband_canvas.style.cursor = cursor;\n",
- "}\n",
- "\n",
- "mpl.figure.prototype.handle_message = function(fig, msg) {\n",
- " fig.message.textContent = msg['message'];\n",
- "}\n",
- "\n",
- "mpl.figure.prototype.handle_draw = function(fig, msg) {\n",
- " // Request the server to send over a new figure.\n",
- " fig.send_draw_message();\n",
- "}\n",
- "\n",
- "mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n",
- " fig.image_mode = msg['mode'];\n",
- "}\n",
- "\n",
- "mpl.figure.prototype.updated_canvas_event = function() {\n",
- " // Called whenever the canvas gets updated.\n",
- " this.send_message(\"ack\", {});\n",
- "}\n",
- "\n",
- "// A function to construct a web socket function for onmessage handling.\n",
- "// Called in the figure constructor.\n",
- "mpl.figure.prototype._make_on_message_function = function(fig) {\n",
- " return function socket_on_message(evt) {\n",
- " if (evt.data instanceof Blob) {\n",
- " /* FIXME: We get \"Resource interpreted as Image but\n",
- " * transferred with MIME type text/plain:\" errors on\n",
- " * Chrome. But how to set the MIME type? It doesn't seem\n",
- " * to be part of the websocket stream */\n",
- " evt.data.type = \"image/png\";\n",
- "\n",
- " /* Free the memory for the previous frames */\n",
- " if (fig.imageObj.src) {\n",
- " (window.URL || window.webkitURL).revokeObjectURL(\n",
- " fig.imageObj.src);\n",
- " }\n",
- "\n",
- " fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
- " evt.data);\n",
- " fig.updated_canvas_event();\n",
- " fig.waiting = false;\n",
- " return;\n",
- " }\n",
- " else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n",
- " fig.imageObj.src = evt.data;\n",
- " fig.updated_canvas_event();\n",
- " fig.waiting = false;\n",
- " return;\n",
- " }\n",
- "\n",
- " var msg = JSON.parse(evt.data);\n",
- " var msg_type = msg['type'];\n",
- "\n",
- " // Call the \"handle_{type}\" callback, which takes\n",
- " // the figure and JSON message as its only arguments.\n",
- " try {\n",
- " var callback = fig[\"handle_\" + msg_type];\n",
- " } catch (e) {\n",
- " console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n",
- " return;\n",
- " }\n",
- "\n",
- " if (callback) {\n",
- " try {\n",
- " // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
- " callback(fig, msg);\n",
- " } catch (e) {\n",
- " console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n",
- " }\n",
- " }\n",
- " };\n",
- "}\n",
- "\n",
- "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
- "mpl.findpos = function(e) {\n",
- " //this section is from http://www.quirksmode.org/js/events_properties.html\n",
- " var targ;\n",
- " if (!e)\n",
- " e = window.event;\n",
- " if (e.target)\n",
- " targ = e.target;\n",
- " else if (e.srcElement)\n",
- " targ = e.srcElement;\n",
- " if (targ.nodeType == 3) // defeat Safari bug\n",
- " targ = targ.parentNode;\n",
- "\n",
- " // jQuery normalizes the pageX and pageY\n",
- " // pageX,Y are the mouse positions relative to the document\n",
- " // offset() returns the position of the element relative to the document\n",
- " var x = e.pageX - $(targ).offset().left;\n",
- " var y = e.pageY - $(targ).offset().top;\n",
- "\n",
- " return {\"x\": x, \"y\": y};\n",
- "};\n",
- "\n",
- "/*\n",
- " * return a copy of an object with only non-object keys\n",
- " * we need this to avoid circular references\n",
- " * http://stackoverflow.com/a/24161582/3208463\n",
- " */\n",
- "function simpleKeys (original) {\n",
- " return Object.keys(original).reduce(function (obj, key) {\n",
- " if (typeof original[key] !== 'object')\n",
- " obj[key] = original[key]\n",
- " return obj;\n",
- " }, {});\n",
- "}\n",
- "\n",
- "mpl.figure.prototype.mouse_event = function(event, name) {\n",
- " var canvas_pos = mpl.findpos(event)\n",
- "\n",
- " if (name === 'button_press')\n",
- " {\n",
- " this.canvas.focus();\n",
- " this.canvas_div.focus();\n",
- " }\n",
- "\n",
- " var x = canvas_pos.x * mpl.ratio;\n",
- " var y = canvas_pos.y * mpl.ratio;\n",
- "\n",
- " this.send_message(name, {x: x, y: y, button: event.button,\n",
- " step: event.step,\n",
- " guiEvent: simpleKeys(event)});\n",
- "\n",
- " /* This prevents the web browser from automatically changing to\n",
- " * the text insertion cursor when the button is pressed. We want\n",
- " * to control all of the cursor setting manually through the\n",
- " * 'cursor' event from matplotlib */\n",
- " event.preventDefault();\n",
- " return false;\n",
- "}\n",
- "\n",
- "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
- " // Handle any extra behaviour associated with a key event\n",
- "}\n",
- "\n",
- "mpl.figure.prototype.key_event = function(event, name) {\n",
- "\n",
- " // Prevent repeat events\n",
- " if (name == 'key_press')\n",
- " {\n",
- " if (event.which === this._key)\n",
- " return;\n",
- " else\n",
- " this._key = event.which;\n",
- " }\n",
- " if (name == 'key_release')\n",
- " this._key = null;\n",
- "\n",
- " var value = '';\n",
- " if (event.ctrlKey && event.which != 17)\n",
- " value += \"ctrl+\";\n",
- " if (event.altKey && event.which != 18)\n",
- " value += \"alt+\";\n",
- " if (event.shiftKey && event.which != 16)\n",
- " value += \"shift+\";\n",
- "\n",
- " value += 'k';\n",
- " value += event.which.toString();\n",
- "\n",
- " this._key_event_extra(event, name);\n",
- "\n",
- " this.send_message(name, {key: value,\n",
- " guiEvent: simpleKeys(event)});\n",
- " return false;\n",
- "}\n",
- "\n",
- "mpl.figure.prototype.toolbar_button_onclick = function(name) {\n",
- " if (name == 'download') {\n",
- " this.handle_save(this, null);\n",
- " } else {\n",
- " this.send_message(\"toolbar_button\", {name: name});\n",
- " }\n",
- "};\n",
- "\n",
- "mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n",
- " this.message.textContent = tooltip;\n",
- "};\n",
- "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
- "\n",
- "mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
- "\n",
- "mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n",
- " // Create a \"websocket\"-like object which calls the given IPython comm\n",
- " // object with the appropriate methods. Currently this is a non binary\n",
- " // socket, so there is still some room for performance tuning.\n",
- " var ws = {};\n",
- "\n",
- " ws.close = function() {\n",
- " comm.close()\n",
- " };\n",
- " ws.send = function(m) {\n",
- " //console.log('sending', m);\n",
- " comm.send(m);\n",
- " };\n",
- " // Register the callback with on_msg.\n",
- " comm.on_msg(function(msg) {\n",
- " //console.log('receiving', msg['content']['data'], msg);\n",
- " // Pass the mpl event to the overriden (by mpl) onmessage function.\n",
- " ws.onmessage(msg['content']['data'])\n",
- " });\n",
- " return ws;\n",
- "}\n",
- "\n",
- "mpl.mpl_figure_comm = function(comm, msg) {\n",
- " // This is the function which gets called when the mpl process\n",
- " // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
- "\n",
- " var id = msg.content.data.id;\n",
- " // Get hold of the div created by the display call when the Comm\n",
- " // socket was opened in Python.\n",
- " var element = $(\"#\" + id);\n",
- " var ws_proxy = comm_websocket_adapter(comm)\n",
- "\n",
- " function ondownload(figure, format) {\n",
- " window.open(figure.imageObj.src);\n",
- " }\n",
- "\n",
- " var fig = new mpl.figure(id, ws_proxy,\n",
- " ondownload,\n",
- " element.get(0));\n",
- "\n",
- " // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
- " // web socket which is closed, not our websocket->open comm proxy.\n",
- " ws_proxy.onopen();\n",
- "\n",
- " fig.parent_element = element.get(0);\n",
- " fig.cell_info = mpl.find_output_cell(\"
\");\n",
- " if (!fig.cell_info) {\n",
- " console.error(\"Failed to find cell for figure\", id, fig);\n",
- " return;\n",
- " }\n",
- "\n",
- " var output_index = fig.cell_info[2]\n",
- " var cell = fig.cell_info[0];\n",
- "\n",
- "};\n",
- "\n",
- "mpl.figure.prototype.handle_close = function(fig, msg) {\n",
- " var width = fig.canvas.width/mpl.ratio\n",
- " fig.root.unbind('remove')\n",
- "\n",
- " // Update the output cell to use the data from the current canvas.\n",
- " fig.push_to_output();\n",
- " var dataURL = fig.canvas.toDataURL();\n",
- " // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
- " // the notebook keyboard shortcuts fail.\n",
- " IPython.keyboard_manager.enable()\n",
- " $(fig.parent_element).html(' ');\n",
- " fig.close_ws(fig, msg);\n",
- "}\n",
- "\n",
- "mpl.figure.prototype.close_ws = function(fig, msg){\n",
- " fig.send_message('closing', msg);\n",
- " // fig.ws.close()\n",
- "}\n",
- "\n",
- "mpl.figure.prototype.push_to_output = function(remove_interactive) {\n",
- " // Turn the data on the canvas into data in the output cell.\n",
- " var width = this.canvas.width/mpl.ratio\n",
- " var dataURL = this.canvas.toDataURL();\n",
- " this.cell_info[1]['text/html'] = ' ';\n",
- "}\n",
- "\n",
- "mpl.figure.prototype.updated_canvas_event = function() {\n",
- " // Tell IPython that the notebook contents must change.\n",
- " IPython.notebook.set_dirty(true);\n",
- " this.send_message(\"ack\", {});\n",
- " var fig = this;\n",
- " // Wait a second, then push the new image to the DOM so\n",
- " // that it is saved nicely (might be nice to debounce this).\n",
- " setTimeout(function () { fig.push_to_output() }, 1000);\n",
- "}\n",
- "\n",
- "mpl.figure.prototype._init_toolbar = function() {\n",
- " var fig = this;\n",
- "\n",
- " var nav_element = $('
')\n",
- " nav_element.attr('style', 'width: 100%');\n",
- " this.root.append(nav_element);\n",
- "\n",
- " // Define a callback function for later on.\n",
- " function toolbar_event(event) {\n",
- " return fig.toolbar_button_onclick(event['data']);\n",
- " }\n",
- " function toolbar_mouse_event(event) {\n",
- " return fig.toolbar_button_onmouseover(event['data']);\n",
- " }\n",
- "\n",
- " for(var toolbar_ind in mpl.toolbar_items){\n",
- " var name = mpl.toolbar_items[toolbar_ind][0];\n",
- " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
- " var image = mpl.toolbar_items[toolbar_ind][2];\n",
- " var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
- "\n",
- " if (!name) { continue; };\n",
- "\n",
- " var button = $(' ');\n",
- " button.click(method_name, toolbar_event);\n",
- " button.mouseover(tooltip, toolbar_mouse_event);\n",
- " nav_element.append(button);\n",
- " }\n",
- "\n",
- " // Add the status bar.\n",
- " var status_bar = $(' ');\n",
- " nav_element.append(status_bar);\n",
- " this.message = status_bar[0];\n",
- "\n",
- " // Add the close button to the window.\n",
- " var buttongrp = $('
');\n",
- " var button = $(' ');\n",
- " button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
- " button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
- " buttongrp.append(button);\n",
- " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
- " titlebar.prepend(buttongrp);\n",
- "}\n",
- "\n",
- "mpl.figure.prototype._root_extra_style = function(el){\n",
- " var fig = this\n",
- " el.on(\"remove\", function(){\n",
- "\tfig.close_ws(fig, {});\n",
- " });\n",
- "}\n",
- "\n",
- "mpl.figure.prototype._canvas_extra_style = function(el){\n",
- " // this is important to make the div 'focusable\n",
- " el.attr('tabindex', 0)\n",
- " // reach out to IPython and tell the keyboard manager to turn it's self\n",
- " // off when our div gets focus\n",
- "\n",
- " // location in version 3\n",
- " if (IPython.notebook.keyboard_manager) {\n",
- " IPython.notebook.keyboard_manager.register_events(el);\n",
- " }\n",
- " else {\n",
- " // location in version 2\n",
- " IPython.keyboard_manager.register_events(el);\n",
- " }\n",
- "\n",
- "}\n",
- "\n",
- "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
- " var manager = IPython.notebook.keyboard_manager;\n",
- " if (!manager)\n",
- " manager = IPython.keyboard_manager;\n",
- "\n",
- " // Check for shift+enter\n",
- " if (event.shiftKey && event.which == 13) {\n",
- " this.canvas_div.blur();\n",
- " // select the cell after this one\n",
- " var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n",
- " IPython.notebook.select(index + 1);\n",
- " }\n",
- "}\n",
- "\n",
- "mpl.figure.prototype.handle_save = function(fig, msg) {\n",
- " fig.ondownload(fig, null);\n",
- "}\n",
- "\n",
- "\n",
- "mpl.find_output_cell = function(html_output) {\n",
- " // Return the cell and output element which can be found *uniquely* in the notebook.\n",
- " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
- " // IPython event is triggered only after the cells have been serialised, which for\n",
- " // our purposes (turning an active figure into a static one), is too late.\n",
- " var cells = IPython.notebook.get_cells();\n",
- " var ncells = cells.length;\n",
- " for (var i=0; i= 3 moved mimebundle to data attribute of output\n",
- " data = data.data;\n",
- " }\n",
- " if (data['text/html'] == html_output) {\n",
- " return [cell, data, j];\n",
- " }\n",
- " }\n",
- " }\n",
- " }\n",
- "}\n",
- "\n",
- "// Register the function which deals with the matplotlib target/channel.\n",
- "// The kernel may be null if the page has been refreshed.\n",
- "if (IPython.notebook.kernel != null) {\n",
- " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n",
- "}\n"
- ],
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "text/html": [
- " "
- ],
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "text/plain": [
- "0"
- ]
- },
- "execution_count": 6,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "# pick thresholds \n",
- "%matplotlib notebook\n",
- "fig = plt.figure(figsize=(10, 4))\n",
- "plt.axes([0.05, 0.2, 0.4, 0.7])\n",
- "im_cn = plt.imshow(cn_filter, cmap='jet')\n",
- "plt.title('correlation image')\n",
- "plt.colorbar()\n",
- "plt.axes([0.5, 0.2, 0.4, 0.7])\n",
- "im_pnr = plt.imshow(pnr, cmap='jet')\n",
- "plt.title('PNR')\n",
- "plt.colorbar();\n",
- "\n",
- "s_cn_max = Slider(plt.axes([0.05, 0.01, 0.35, 0.03]), 'vmax', cn_filter.min(), cn_filter.max(), valinit=cn_filter.max())\n",
- "s_cn_min = Slider(plt.axes([0.05, 0.07, 0.35, 0.03]), 'vmin', cn_filter.min(), cn_filter.max(), valinit=cn_filter.min())\n",
- "s_pnr_max = Slider(plt.axes([0.5, 0.01, 0.35, 0.03]), 'vmax', pnr.min(), pnr.max(), valinit=pnr.max())\n",
- "s_pnr_min = Slider(plt.axes([0.5, 0.07, 0.35, 0.03]), 'vmin', pnr.min(), pnr.max(), valinit=pnr.min())\n",
- "\n",
- "def update(val):\n",
- " im_cn.set_clim([s_cn_min.val, s_cn_max.val])\n",
- " im_pnr.set_clim([s_pnr_min.val, s_pnr_max.val])\n",
- " fig.canvas.draw_idle()\n",
- "s_cn_max.on_changed(update)\n",
- "s_cn_min.on_changed(update)\n",
- "s_pnr_max.on_changed(update)\n",
- "s_pnr_min.on_changed(update)\n",
- "# 'min_corr=0.85', 'min_pnr=20'"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 7,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "0 neurons have been initialized\n",
- "10 neurons have been initialized\n",
- "20 neurons have been initialized\n",
- "30 neurons have been initialized\n",
- "40 neurons have been initialized\n",
- "50 neurons have been initialized\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "caiman/summary_images.py:109: RuntimeWarning: invalid value encountered in true_divide\n",
- " Y /= np.std(Y,axis = 0)\n",
- "caiman/source_extraction/cnmf/initialization.py:1213: RuntimeWarning: invalid value encountered in less\n",
- " cn_box[np.isnan(cn_box) | (cn_box < 0)] = 0\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "60 neurons have been initialized\n",
- "70 neurons have been initialized\n",
- "80 neurons have been initialized\n",
- "90 neurons have been initialized\n",
- "100 neurons have been initialized\n",
- "110 neurons have been initialized\n",
- "120 neurons have been initialized\n",
- "130 neurons have been initialized\n",
- "140 neurons have been initialized\n",
- "150 neurons have been initialized\n",
- "160 neurons have been initialized\n",
- "170 neurons have been initialized\n",
- "180 neurons have been initialized\n",
- "190 neurons have been initialized\n",
- "200 neurons have been initialized\n",
- "210 neurons have been initialized\n",
- "220 neurons have been initialized\n",
- "230 neurons have been initialized\n",
- "240 neurons have been initialized\n",
- "250 neurons have been initialized\n",
- "In total, 255 neurons were initialized.\n"
- ]
- },
- {
- "data": {
- "text/plain": [
- "[]"
- ]
- },
- "execution_count": 7,
- "metadata": {},
- "output_type": "execute_result"
- },
- {
- "data": {
- "image/png": "iVBORw0KGgoAAAANSUhEUgAAATsAAAEyCAYAAACF03cPAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsvXmUXFd57v07VdUttXqe1N1qyZq71Zot28KyjI0HsME4\nhgDGJjghYcV8GbgEYxIHAlyHC5jASkhyc+8Nvk5MEr5LIEB8/RljG2N5kqyprVnqbrXUklpSz4Os\nyeoavj/qPKd2vVWtwZpKUr9raZWq+px99nT2fvY7PK+XSCQYkzEZkzG53CV0sSswJmMyJmNyIWRs\nsRuTMRmTK0LGFrsxGZMxuSJkbLEbkzEZkytCxha7MRmTMbkiZGyxG5MxGZMrQsYWuzEZkzG5IuS8\nLXae593peV6L53k7Pc975Hw9Z0zGZEzG5HTEOx9OxZ7nhYFW4L1AJ7AWuD+RSGw75w8bkzEZkzE5\nDYmcp3KXAjsTicQuAM/zfgTcA2Rd7CKRSCI/P5+RkREA4vH4qAWPHz8egOLiYt0LwLFjxwA4cuQI\nACdOnAAgFMoEr3aBt989z0srW5/ZRHWNRqNpZem5Kutkm8po1+r7hAkTABg3blzas4Cgz9RefcZi\nsbQy1G8FBQVpz3Sfd+jQobTyda+tn8T9rjJG+7RtzVaG+tI+Z7Txyfbd1lWfdpxONsfC4XDap56v\nPtW99jp3nti5bPtDY1leXg5Afn5+Rr00HprbulfP0TNsm07WH3Z+6p7CwkIAZs+ePWq/SHbu3JnW\nBs25o0ePZn0GpPputPdDn/Y9smPt/s357EskEtWnqvf5WuzqgX3O907gXe4Fnuc9CDwIkJeXx+zZ\nszl48CCQWrCyNbSxsRGAW2+9FYCqqioAtm7dCsCqVauSD+zsBFIvudvx6lDbsRJNpurqZP9VVFRk\n1EOT5Pjx4wD09fWllanJozbYxccVe63KUD2uvvpqABoaGpi8bx8Tt22jrb6ejrq6oM/27Ut2d0dH\nBwBvvfVWWplz5swBYMGCBUBqs4DUy/Tiiy8CMDAwACTHBVILpH0h9ZK7dVY733777bTv6mONh9rm\nlqG+tJuNXiY9V/XQmLplqHxdo8/Dhw+ntU1zTPVyyygpKQGgtLQ0rW1afHRvUVERAJWVlQCUlZUF\nZfT29qY9V2WoLVpUPvrRjwIwefJkKltbKd+0ia7GRnpmzuT5558HUnNbi5vmY1dXFwA9PT1Aqs/V\nZkhtlHbR15iqfsuWLQPg2Wef5VTyoQ99CIBp06YBqXdt/fr1aW1051h/f39aP2jOq99VZ12nMrSg\num1QO50Nfs8pK835W+xOKYlE4vvA9wHGjx+fOH78eMbCoI7QSwepBWj69OkATJo0CUi9GIODg0Bq\nAkjcyawO1MDbztMLYNFStgVTz9XfVFeVPdrvrqjdmgCqj15+tals+3Z++2c/IxyNEg2Heez222nx\ny9OuahciTXb1m9ru9qmunTx5MgDd3d1AagKqDN2jemmc3DqrLC06epnsRNWLmw3xqozRkKWemw15\na1z0fIu6bP+7bZCoL9VXdoPSM7RgzJ07F4D6+vrgGm0669atS6uH+lSL7pYtWwCoamvjln/+Z8Kx\nGLFwmH/91KeCBdMiS/WdxkWf+t2tr+0HjWFDQwOQ2iQFHk5H1D9DQ0Np39Uv2d5b9b/d9NUf+rv6\nXG12F279pna67/TpyPkyUOwHpjjfJ/u/nXMp37GD2T/9KXX+5LqcZVZnJ+FYjDAQicdp8helMbn0\nZeru3YRjMUKJBKFYjKm7d1/sKsGqVfCtbyU/LwM5X8huLTDb87zpJBe5+4BPjHZxIpHgxIkTGed0\n7cLuDuHqnGp27WL53/4toWiUxnCYZx9+mH0zZwKwd+9eIHW81O4Hqd1Cu4zV8+nzZEcd7UTuzgOZ\nehTVXTvWydCh2qbnaMcUSvjF+PHc7nkkEgmiwC+OHmW3/1Lo2KrnS6ZMSe45OvqoHu7xQP2sa3Q8\n0zGutrY2re5WLwip/hWSEBoVOlE/2GOmUKJbrtovFGh1prpH9XHbrKOk6qMyrV7LIj0X8elaPV/j\nIlH9rr32WgDe9773AanjLKROHELJbW1tac9VG5qbmwEozs/nBs8jkkgQ9Tx+1NXFUX8cVDepbNRG\n/a42qr7uXK+pqUnrq+uvvx5IzQu9JzfddFNaG1m1Cm67DU6cgPx8ePFF8I+6KnP79u0ADA8Pp7VJ\nagDNI0ihQF1jUbn6dOLEiWltk+oAMpGd2iQ1zKnkvCx2iUQi6nneHwPPAWHgnxKJxNZz/ZxJra2E\nolFCfsfUtbTAlCmnuOvSlW2lpTy0cCFze3pYV1TE5qIicCZDLsicwUEWDgzwel4eWxydzZicXLaV\nlvLw4sXM6+2luaQk2XfnkX5t0p49TNm1i3BhIbv9zSxNVqxILnSxWPJzxYpgsbtU5bzp7BKJxC+A\nX5zOtfF4nOPHj2fsutmU+dpF9u/fT6i8nCX+jhALh2mrrw92Oe0q2lFcBGYtgkI51rpmLbwuktE1\neo6+W32jfaa760qEdoR+9GmV6ocPH6YdeDoUgqNHk/98sVYu9aF2Su226ge3b9V+IRMZgTQe+t3q\n7KRjVD/M6O7moVdfJRyLcX8oxF+973284vePxkW6Q9XHRe26Rju3dnWhVj1Xn+ofd2xH06/pHvWT\ntVy6cyLbvHPvkb7rjjvuAODGG28E0se2rq4OSM5TIEDgqo+LrNXG1aEQW/2TyXgykZIQtuac/i6k\np3kq5OVe29TUBMDUqVOp6+jg3scfJxyNsiwc5gcPPMDatWsBeNe7fDvie96TRHRCdu95T1Dm4sWL\nAXjmmWeA1DzQPLFIGDLnpe7ReAhp6jShMnbt2hWUof+PZuk/lVw0A8W5kH2TJ/P05z7HpNZWdk+d\nysFp08A3i4/JhZeGgweTOsVEAuJx5nR380oWS/aYXFyZsmsX4WiUUCJBOBZjWkcHLUuWpF+0bFny\n6LpiRXKhu8RRHeTQYheNRjMsmBbxQGqH1M64v64OKiuJDg3Bhg2BFVZoKJveR+VrZ9Bua61Zeq7K\nyLaT6DfrpqG2qJ7a9V09htXZWT86izDUH6oPpHZI6wojlCTUY61yrkw7eJBpHR2sLSxkV01NgL5U\nL9U9FAoxs6eHaXv2sK26mq1O/UZGRlhfVMRdoRDE40RDIbZUVpLnlyH9o5C5+isSiTCju5uGgwdp\nmzSJXTU1QVtUZ+sqJN2VfNTccREa13OEdqwPobVau31tf7O+jDNmzEj2m+96cdVVV6Xqu2oVrFjB\nyNSpHFu8ONCDCvWofq6vJKSQjTvXhWj1XCG8eYcO0XDwIBvLythZXR2MseaC+g1g4cKFQEqHGA6H\nOTB7NrFf/QpiMeKhEJ2zZqUhqECWLcu6yGn+6Xma0/rUPHZPQppL6gfNMY2dThOzZs1Ku056QdUd\nYMOGDUBmH55KcmaxG5OLI1M6O3ng//wfwrEYN4ZC/M0HP0hvFkdsgJk9PTz8y18SicWIhsN89YYb\naHGQW2tlJd+89VaaurvZXlNDW1UV+GqE0WRGdzcPPfMM4XicmP/8bf5R5pITR6k/NS+PPU88cc4f\nMau3l8+/8ALheJwPhEJ867bbOFO77cFp0/j5H/0Rk3fupKWujv1XXQU+OLicZYwIIIdkzuAg97a3\n03SKBeJcyoy9ewOXh3A8TsOBA6Ne29jVRSQeT7q+xGLM9y3drrRVVfF/581LLnSnIQ0HDxKOxwmf\nxvNzXhylvjcywgRfD3YuZU5XV9BfZ+N+1DV9Ouve+97kQneFSE4gu0QiQTQazThiZXNe1fFDzpiC\n3/pdRw4pr1Wm655gXU+s2N+zKaxtmIuODjYKwD2uufWB1PGkoKCApqEhHlu/nkg8zv2hEH9+3XX0\n+ffqeGDdNiClnNaxQMe2A/6iMVrYnOq1d8YMYq+/TiIWIxYK0TppUnDU0vNU5hvjxnG3XF9CIV4Y\nGQncYuQtr7paFYGOnhonecqvKSjgLr/MWCjE2sLCQBWhMVR9dLTR8VFt6nZeePW/joBSZ6j/rbOq\nNSy5fxvNEdnOMUUyTJg7l6q8PDwgHg7TWlfHoP+3T33qU2n12rRpE5ByzXGjLyQaOzdsbGN5Ofc4\nqoJNFRUc94/sqq/r3CxjhcbHutpY16jTkZdffhlIGb9stIM1sLnPUzt1JFf/a2ylItB8ccdF80KO\n0DL+nK7kxGI3JrBocDBATYl4nIUDA6xwrJ3nSzqnTOEHv/3bTOvoYH1xcdINYU/26Jsd5eV8+frr\nmdXZSXNpKZtGOe6eShoHB5nb3c3G8nJa6uv52o03Mq+vj+0TJ9JaWQn+4noymdHdTePBg7ROmkT3\nKNbTCy0nrrmGvh/9iHGrVrGpooLBOXPAX+zORGb29NDY1cW6wsI0NQEkVQXfueMO5nR18WZpabK/\n/MXucpOizZuZ99xzdDc10XcaMbunkpxZ7BKJREbwtHVidf9vlfkyy1uEJefWI84LZOM17c6tnUnK\nZe2Y7k41YHQc1uFxNDTgOtG64T/ri4v5rVCIhK+72lpdzXizC9sQG0iFeJUaPZeUx3K90fN1r4t0\nm8eNo7mxMYlQenoyEJUU0gMDA7QB0UgEjhxJQ4t6vnZu1VVO3eqfeYcO8eiqVUTicUZCIf4MaC4r\no7m+PnnN8HDQRxZ16BkLjxzh9595Jgit+uoNNyRfelIoyIZaWWStstUGF0FYNwnrxKw27TGbgud5\nEArB8uW0t7fDrl3cd999QCoWVuhERp833ngjrYxZvb08/MtfEo7Hudvz+Itly9hpFrORqirWTZmS\nHKfBwaDN2QgJLAGEJRHQ3/Ve/fSnPwXgIx/5CFZseJhCNvUu2Dnuvi+WwEOf1t0q+PuWLTT80R/h\njYwQj0R49WtfC9Cgja8+XRnT2eWIbCst5Ss33MD/29TEl6+/nh2+pfFSldl9ffzG1q0Z+sd5fX0p\nvV88ziJ/M8omc4eHuX/PHprMyz5j377AxSU8iu7wUpVGRycXjsdZ4B/3rzQpXr+e0MgIoXicUDRK\n9dazj0nICWQXDocpLS3NCNfSap8t4FyfWuX1aUNphGTEzOCWL9EOIX2T3ABkBtcuPOS8uAr/kb5G\nu53V1Qkdasdydzu5R+iedcXFrKutTdb98OEAldjQJzcsabSgeek8VC+hEV3vhuFYphTriKsyrUuQ\ndlpI6YlmzJjBlM5OfvellwjHYnw4FOLRd7+bDr8+ffPmEWttJRGNEg2F2FBWlhHoXlpaypzBQb6x\nYQOReJxoRwdfXraMVoVYFRdzq6O3ei0SCZCckJP633WbgUzKpWzEDBad275ViNVLL70EpHSImi8A\n99xzD5BCPxLVS7op9b10mM0lJXwwFIJYjGgoxMr8fPr9tumUojmk8dE8sgwvkEJdOvlYB3rLxtLe\n3p5WptvuP/mTPwFS74f0gUKN0p2q3446Tu8aW0vqoP7QuEkPN66hgbq8PLyREWLhMC11dRntH03n\nPprkxGI3JpeXTN+zJ0BeiViMeb29dPgRBR11dfzDhz9MSXMzG8vL2Z5FMQ+woL8/TYe5oL+fVn/j\naJ84ke/eeScz9+1je00NW08zNvKiiO93d7qOuW2VlfzlzTczr6eHV0IhtpaUgL/YnUupaGmhautW\nuufMod+PCMklGZ47l/Xf/jbxX/+a/bNn0z1jBrz55lmVmROLXSgUYsKECcEqfzLCS+1eQjdCMNqx\nrJOtRXiQ2nEsKlJZU6dOBVLOokJnLhqywfDa1aRXUpmqZzanXqFTIUZLkWOdMy0qca8ZLQxKaFUI\nVL+7KNXyoaltlgvN1stFRS4RwP7Zs4m99lrSaTUc5kBDA7//+78PpBDg5s2buRno+MEPgjKElidM\nmMBLiQQf9620I57HCydOBPWMx+P0AK/7Zbn6U/WhHI7VfrVNekihIqE4V4d5KiusyhB9k8ZYhADg\nI7oswfQnfOdZieaUPuPxOOsiEdZNmpS0qA8NBfpm9b90hZaSTKcHV5co1KXwtaamJkq3bWPJo48S\nGhlhTiTCa//1v1K7fDmQOgH8y7/8S1CGPB7UL1aXbQk8LDUYZPIdWnSmv+/YsQPw38VwmL3qr46O\n4HSmscxGzHsyyYnF7lxKQ38/83p72VxZGSitz4XU7NrF3C1b2Dt9Ogf8xfCd1K3hwAE2VVSMimgu\nB9l/1VU8cf/9zNi7l00VFeyureXaMyxjc1ERn5k1i2sPH2Z1QQEbJ0zg/Numz7FkC6Y3i93FkPKN\nGwmNjOD5+rCqrVsZ8Be7M5Gr9u9n5r59rC4oYGf1KYmCL7rkxGIXCoUoLCwMVmyt+nbngEwSRNe6\n09Dfz1dffZVILMZHw2G+tnw5L/k7uOtHJASnHVqf1lKn77W7d3P33/0d4WiUWCTC//n0p9lqrpWu\nUMjS6hMWHD7Ml15/PRl9EArxlRtu4GW/DWqfbbfqbAkv3TAZG+Bvn2sp14Xw+h3FtxCTRZ/Wb8pS\n67ii8oUYe8rK2F5Wxp133sk84JZbbkm7XsH0bujbV77yFSA1Hr+Oxfh1OMzxQ4fg0KEAUVhrunSN\nkOp/jYfV+1p/TCE8F8VZvZZlStan1bm6YVpA1mB6nQCEoNQvQqDSmQG89tprQEpXZymNRqOady3+\nolB336WBkhKmRSKEotGkPqy2lg7fAVr95M4PjanmWlVVFfV79/KJn/yEcDTKbeEwf3/PPbzo91c2\n2ix78lDf2dObnmXnq9tnlij2dCUnFrtzJXN7e4n45JYJ30r3khOL+k5lUmtrEDidiEa5avduOMOd\nrKm7O1W3eJz5/f28fA4pkKYeOMCMfftomzSJPX4cZM6Kq8e6nCVbML0T63mxpGv6dF5/9FGqtmxh\nR21tUh92hnrPq3bvTiMTmL1/Py/muAdBTix2iqCw9DfZAn0t+tMuV1xczLbqaqK+r1o0FGLVuHHB\nTiLrF6R2f+1eQjb6rrwOQkubKipYEg4Hfl0by8qCHUj1kN7GeqrruvXFxXzYqVtzcXEGV7+1Qlta\nIokNWp964AAP/vSnhGMxbg+H+f6999LpW8wskpF+y9XZace29ZC+x/ouSlw9l3ZdPU/6mnL7Ahg9\n1ru+/32OLloEpGiIhG6sxVAIxyIZ1/qotthkMJYeyhKFuj5b9rnWV8+iRFlnFaAOqTGs8YPpW1tb\nobWV1atXA/Cbv/mbQCoKQeISUco37/HHHwdSUReWKELjlC0aQtdKH6prB666CmbNSiKstrbguZrz\nfY47j7Xk9/X1sam8nOX+OxENhVhfXJzh2+paY/Vcm5vEkj7Y8cqGMIVw1XfDp+lUnROL3bmS1spK\nvrxsGQv6+1lTUJAMKHdehHcq+yZP5slPfpL6tjZ2Tp6cRE7+5JE0DQ+zeHCQtvr6DK93gJaKCv5i\n2TKaurtTOjuTJ+OdSkDXnkhALMbMffuCxS7nxOixCteuDRa7K1LO0FqbK7Jn0qRAL7syPz8ZC/0O\nokUupOTEYjdu3DhmzZoVICrrB+fqQvQ3IRSrqzqQSLCqoiK5642MBJbVSc7RTju0ftPOLIRn6W4O\nHDjAVmAoPz+5QPX0BLvJ0aNHWXzsGN/Zv5+8eJzo7t38xbJlSZcB0i2cm4uKeEOo7OjRYNe12bJG\nIy/VzupGgwwNDbGhrIz3hsPgI892edeTQqlqo/rJRWnSYQoVWUoli7Ctrsh9jsZFvlh2TPONHqt3\n3rygrtYXztKjW92l9f9z+0ztE7oQcrGIzva9+//RUhRqPur7m75LxH/8x38EZdjsdkKraYgui7W2\nwFnwrrvuOgBeeeUVIGnBdttiiWPVlmzJlCzVlU2EpDI1TwYdZ2/r/6p50lNSwuuTJyfLPnYsuEd6\nSXf+FhkSVxv3rvdJY6xxc1G72qL3VhZmWXBPJTmx2F3qsvTYMfKMT9hWx+H2fEv7xIn8w4c/zKzO\nTvZMn55Enrnqe2b0WGePuy9huQypz3NZcmKxq62t5eGHH6alpQWAp556CkjlgHXFso0IjWnnkr5C\nnutiA3Gpoq01UR7wQgwqS7ucdhtXN6Bdv6ysjDfGjWPE0cetzM8PrtV10j24+jebh1XXSv9nU+fZ\nFI+QIjMdKC3l5YkTk0H0bW3BDi5rnLWoZktzZ61oarf1drc+U+49Kl+7rWI/pburrKyEwkIO33wz\nJBKsWLEiKEPoZzTrs9VVWXYSyNS3Waur225I6Snd+WH73foZWtF4aN5CSn+nskROOdV1WzoJ9Tmk\ndGWaO0I7lnzWzmfXCmr9Ca2uWWXoGbre1bXqXukQ9b6oz1RP9ZMsqC5tv8bKRmxY3bvta3dcbPqA\nbPmcTyY5sdhd6rKhoICHFi5k8fAwzcXFSVR3kozzYzImwGVJfZ7LckUvdlft38/0vXvZUVNz1u4a\n20pL2VZaesbxemNyhcso1OdjMrrMHR5m0dAQnZHIaZPEQo4sdoWFhVx//fVBHk7L16+wHEjBXIVl\nWRoo18EUMqmXIKk0ntLZyad9OvJbw2Ee//jH2e0fh3S0sQ6n7hHUKs/tMVXPs7Q02eiqdDzRNXLb\nUPut86xrGBCRoQLK7TFBxwCbp9VVHo8W+G+fa2mCXOWxDTHTMeSFF14AUgpvOfvqmN/mWLV19Faf\n2nAtm/PW5tdw62Yzldn8vjpi6Sjkkhqo3zWm6it7rNfGZp3QIRXQrns0X0Ue8OEPfxjIPIK6hBU/\n/vGPAYLMX3Ye2jAtO5/ce3SNVDRqm8ZWv+uY7faH5oXeSxkI1IcycKmMXkNcAJlGLn23hglLVebO\ngXg8zqKjR/luR0fSGLhnD1+/+WZOV3JisUuTVauY+ZOf0L9gwXl9jOjI5a4xY98+yBGnSOVeXVtY\neOnmYxiTK0YqW1up2b6dvlDovDu0X3vkSGAMJB5n3hmQJOTUYhdZuxbuuIM5vsL2N++7j84pUwLU\nAqkdwRL46Xe5PmjnsjTQkDSDb62u5ha5a4RCbCwrC5CFVQTr01WW2t3U5jbVbq/Ad33PRibg5pSd\n/9ZbfGvtWiKxGPeFQnxh0SI2+M/Vda6SXTufdlHrHiGUakkP3DKE0Czxpj5dpKB6umW67ZeofCm6\n7XOFBlxko3rI9cc6MdtwPo1HsROJYokR1A+WiFSSLcTKZpOzWeBEbaR7pZB3VRiqh+5Rlqwf/vCH\nQIo2f/78+UAK4fzsZz8Lyvj1r38NpPpf7dZzrRO6+sdto+qh+a926p3SfJzp56uVO0c2dYzNozx+\n/HgqWlq4+ZvfxItGmRsO8+MHH6TDyVtr62GD+DUvrBFK11v3q3WFhYwoNYDn8fIZsFTn1GInU7wX\ni5E4cYLpe/acN+fYjro6/vuHPsTs/fvZWl3NrpoaMC/sxZAlhw6lhZUtHhoKFrvLTaZ0dnJdSwut\ndXXZs9KPyUWRqQcOMH3PnpQD/Umkets2vGiUUDxOIpFgSns7ZEknIKf7tYWFZ+WWtXHCBP6wsZFr\n3nqLzZWVZ1RWbi12vik+ceIEibw8NldWMjQ0lKYrs4hOKEO7nXYm7RDSnbjoRPd0nDjBiqoqSCSg\nqyvQ72j3sZnNs9FdW6JH7Yg2SU42NwFLOFpUVER7OEx0//7AjWWDgzizZZO3Oji1Tbu9dea0v7vt\nstQ8Vs+jey1qhNSubxGBDUOSjuyq/fv58I9+FASjP3H//Rzwx056K4soT+b6IrGuJ2qb1ZlqjIWI\n3bG2rkBCodIpz5kzJ60+zc3NADz77LNBGba/VQ+54ujkoeQ1qt9Wh5FX/a57NXdsHlvVN5szukV2\n1ilforGc1dvL7/74x0Fo5P++775AlSI0qOdPnTqVkcpK5ihpUSjE5spKBnzUqvrMHR7muxs3EonH\n+a1QiC8tXcqv/QVRbitWd6mxdR3o1YZEQwPrSL5TM0kRJpxKcmux803x3T/6EUeuuy5gYjgTaRoa\nYtHgIM0lJZekvqulvDxIQPPGuHHJNlxGtOOSyTt3BoHkxGJM37sXLqAj9phkF5d4lViMGXv3su0k\n+vOD06bx9Oc+x6TWVtYXF7O3vh5MOszFQ0MZyaR+fRFOKzmx2PX19fHEE08Eu93aAwfgqacCK5Sr\nT9EObPVG48aNY95bb/FX27YRicX4rXCYb7/vfTT7L5DrEKzdQvok7SpCHSpTu74Nl4FMglHtRDYl\nnQ3iz+YAa6mB5MbS3d0NR49mWGuzlW9TAspSZnUhFk1Cqk9Hy7CuNuk69ZtLzqh6yGnVBnK3trYC\nqb4ura7mWodcoX3yZCJGN2X1sRIhCzdkz7bF6sysddaGgrl9K0d0IQmRuL73ve8FYJnvKiI0tHjx\nYiAdhbz44otp7bUO5Dpx6LvGz9V9WidmezqwwfT67iJeO7YKntdcl/O3+qWtvp73OKGHu6dOzXA2\nV9ia2tsxYQJMnZp0cB8eDsLFNE/WFRXxgON0v2bCBA777VS/qG1C3Or7Bx98MGjLZz7zGbLJDxwC\n2JNJTix250qWDA8H+i7icZq6umg+jSTADf39zO/rY1NFRdYg/jHJlMaBgXRSgzOUfZMn84MHHmBy\nezu7pkxJIgJDrnApSGj1aqb8+McM+QvepS576+t5/OMfZ2ZnJ7uvuio5LmeZqnFrSQlfWrqUhQMD\nrJkwIalnOxv9+DskT8iJxa6zs5MvfvGLGb5rNs0aZPqEubqgVePG8bvhMIlYjHgoRFt9fdbkwy5i\nmzM4yKO+9fNj4TB/edNNrPJ3Tj3DBidDate1tO+WSl36Nu3GxVk47KyOyAZBW38zF0HY51viT5Wp\nekhX5yJM64NmSU1tQqKrjx/nS2+8kSQi9UlS3zD+c5asUUhG9ampqaEN8Orrk9Em+/YFeiT1lSVC\ntXodleXSItmwQUv1JAQnfzJ9dymvhFiVplKWSqGhQGe5ZQv8xm8w7e23SeTn84EHHmC/v7kqXKzX\nuEaoX1TPIZN9Ldscy5bIG06evkCiOaw62+TT0pkpVK+srIze/HxaFi7Er2gwP+QDp7rLaq5xEumD\n2uDOsZUFBawsL0/eOzCQgeBsYqSPfvSjQBY0l4U84XTlskqluKmwkK8tX86P5s7lu+9/f9LCegpZ\nODAQoMHoNO1RAAAgAElEQVRILMbc85Dc5HRlzuAg97a3M89xT7lQz/3Yzp0ZaQ9HE5eI9HJLZXhG\nIu+BeBxvZISpfpzymJxHyUaecJqSE8hOCbK1qmsny0b/bfUSlsLn6RMneBr42DXXMBm44YYbgHSd\n3cqVKwFYs2YNK8eN4z5Hn/B6JBLoTSz9jYsgrP5E34VCbVo77WAuStM1nufRNDTEY2vXEonHud/z\n+MPGRvb6u7LQqXZnFy2oH0bT72gX1g6veqieTUNDfGP9eiLxOB/3LWVrDUmlRG1pLilJJyItKcmw\nkEpfI8ulUJHqI4ICVx9rLcvWZ84G5tu2utfYKAP19dy5cwFYsmQJkEIULv23dMXqK80xzQshmrcb\nG6nJy8MDEnl5dM2ZE+jIlLpQ+iubalPXWcp1dxzd+eG2TX1so2KsL6X7f5uU2upf5fcnS7j6yb1W\npwNLJuFGJ7ltcXXc+s2+r0KLNhomm34aOCV5wskkJxa7iylbi4v5k/nzuXp4mI3l5Ul9gnF5uBCy\ncGAgZbFKJLjmrbd4yTB0nA9ZNDiYYSlba9hzrbRUVPCVG25gbk8Pmyoqkgm9LzAazQV5e8kSun/4\nQ8KvvsrRpUs5aKyQl7s0DQ2xcGCAzZWVFy6B1FmQJ7zjxc7zvCnAvwA1QAL4fiKR+FvP8yqAfwem\nAR3AvYlEYvS078myyM/Pz7AuZaPWsXoK63slJPd7v/d7QMqS5orov7VTv756Na8XF0M0CgMDGbRA\n1pLnPl87kv6m3U8708na4vq8NZeWcr/QkuexvriYIh9hSXdk6YkgRfFkCRxtijpZ4bRLa2ddM2EC\nn3BQ2oaysox2W/qmaDTKAWCl8nAcOhTcIzR29dVXA3DTTTcBKQundHcqSz5qkBndMBqpgkX8LgrQ\n823/C6WJasn2qavb1b1PP/10Wl1VPxGT1tfXQyRCwkcXbvLyG2+8EUjNIVGqS+z8lX7LHWMb+2oj\nSCwVlyUmhRRyErKzZKX6uxCuxkf947bBjXldeOQIj7W3kxePM7JrF19csoRugzhdzwRbd5sISohf\nY/6f//mfACxw3F5uv/325H/eIXnC2SC7KPCFRCLR7HleMbDe87wXgE8BLyYSicc8z3sEeAT4s7N4\nzhUh20tL+cKiRSweGmLVuHFsLioCEy51PsS1lG3wM4JhHE7HZEysXHv4cBph7eLBQV47hwmkzoe8\n48UukUgcBA76/3/L87ztQD1wD/Ae/7IfACs4xWInnZ21OmbTR1l0o++yCGlHTUN0xlSteMQ777wT\nSHmTawfTLqNkw9ZDHTL9pyRCUpYcMaAld6631rY14TBrKiuTqOvYsXTCS0dca6z1U7LpJ9UPQi6q\nt6ujWh0KsbqqKlnWiRMZUSGWScXtB1sn9e1yPw+pfNI0PrpXOi23LBGxjkZPr++qn7WIQ2o+SEeo\nOgvBWF2QynB9BtVnN/uMGj/5yU+AlP5NUTq6TqcJ6SchNS7SgelT6Ei6K5vc3dU/2n6w7dbnaCwo\nbnuttXN2Xx8z9u5lbWEh7RMnBmUJaW13sqDpb7IcFxQU8GZpKSPd3Wm+c3q+1TFDZtSLjUCyyE8n\nlocffjgo45FHHgHgvvvu453IOdHZeZ43DbgaWA3U+AshQBfJY+7Fk2ym6jH+sDG5gmXqgQN82s9G\n955QiO/ccQdnGqu0uaiILy5ZwuLBwZTv3DlIbnU+5awXO8/zioCfAn+SSCQOubtKIpFIeJ6X1QnI\n87wHgQf9/59tNUaXy4Tnf2ZPD3O6u9lRU8PBU18+JhdJijZvpqS5mUO1tfT5NOa5JmnZ6OJx5rzD\nrGDbS0vZXlqawU7jytzhYRYPDbFeDN4XUc5qsfM8L4/kQvfDRCIhbppuz/PqEonEQc/z6oCs+QIT\nicT3ge8DhMPhhOd5GbDcHskgMw+BvcZmJjuZqVpHGwV4614dp6wzsVsPwW1LA2U/LQFotixWNtOT\nIL76Y3ZfHw8//zwR/8hw6Prrg0iPQsMwIUopN0cGpBT02XJsWiOL+tQNxYOUUcO23RU54MoIZCmD\nbPiWGwpmn5stxwRkGo5ckSLe5qvVsV1tUN2zUQmpfWrLQt/B1pIdWPKFytZWZn72s3gjI9RHIqz6\nxjcyjpY2qN9mBMu28VtqLxmZLDGr5ms2NYObyW7P9OnEVq8GP+fr9poaPJ8EVn3qqjk0H202M/su\nWkPKvEOH+O7GjeTF4zwQCvHw4sWsMMdWO8b2/XGdrnWMFfVV7Rky5ZyNNdYDngC2JxKJv3b+9H+B\n3wEe8z+fynL7hZPLgOe/sasr6R7i78QL+vvfUVjbzJ4epu3Zw9aqKi5Uhs+8devIW7mS4+96FyP+\npnK5StG6dXgjI0kn42iUSj+GNNdkb30937/3Xmbs28f6oiLaJ04Ef7E7l7JoaCjNiLFoaIgVF5Gu\n7GyQ3XLgAWCz53lKhf4lkovcjz3P+zSwB7j3nT5AO4eLIKwrh3YG7bpyZUgzCIxiqlaIjFCIypZy\nVo6v2tlcFGIpfFRHXWuDtbPlOLU7taskd+9dV1jI3aEQ+Mhum6NQliJeZYhY0tJBLTxyhD9+4QXC\n0SjRUIg/bmpii4+CRqMdtw7SFp25KES/ycWkurqaCRs3Uv6ZzySTYefl0fnkk3T7KNaiZ7c823cS\ni3AsInXrYamshGhlIBgtU5krcjEROpWBwhKPSpkeKinhjkiEkN/HL8XjQdC8nIdtCKQ1Nrhi3Zus\nUUftVsiX0Jg7T9VunR703LaqKtqqqpL9ceJEBtmC2x9yW5KhzBJj6F5rhFpbWBgQAIx4Hit8Q2S2\nsvQ8SzLhUrvLmVtU/xcsu1gikXgNGE3Zdts7LfdiSkVLC9Vbt3KosDCIccwFaa2s5GvLl7N4aIjt\nNTW0ZCFHlMzq7aWpu5st/mSWzN6/P6mnIbnLLjl0KFjszpcUrlsXkLECFKxZA45n/oWQhv5+5vb2\n8mI0mnTnOY/SO2sWz33xi9Tu2MHqgoJkEL3xrzsXItr+Zl9ndqFlzuAgC/r7aS4pOakz8dbiYv7L\nvHksGR7m1XCYjRMmgIm2uJCSMxEU0Wg04xxvM79Dpr5Eol1QoWD/63/9LwA+8YlPAOn6neeeew5I\n5YUtKiqiqq2Nmx57DC8apTEU4l8/9akMB2ZjfAHSQ8ggM9RNu5yQl1uGdkKhLxvwLTeACRMmsHHC\nhGBixZ1d2CXrnDM4yCN+yNk9oRDfvfNOtvrP215Twx2hEAmfhr7ZURZbPZ6lPbLhWjYRkNteN/FO\n7MYb4fHHSZw4QTwS4WBjY4DoLH2W2zfWlUJiCTnVX66Oyg2pahoa4qt+KNxHQiH+ZP58NvpjLjQv\nJJzNJcjqkSwdutxtFF7mopA9LS2wYUOARqx+zTrQq20uwtM9mic1NTXM6u3lz9etIxKLcX8oxJ9f\ndx2rTkIQq7EV8aaQtOqh8bCEBK47jxui2TgwwNdXryYSiwXhhev9soSi1Zauri5eAV4pKEi6dx0+\nHKDlGTNmpPWhdMoiaNBc6HPirlV3vS9yfHYd008mObPYXWyp2b49jV56WkcHZFHAn08R8eibPp/d\nmUoQcubr9hq7ugIL2O7aWr53993U7NjB5spKtlyAlI/Hr76at37+cyKvvcbOKVM4PH8++My8F0Js\nKNzVw8NJdHEKKd+xg8rNm+luamLAj7jIFXFJGBTet+oC0pLN7+/PeP76S4RSPycWu0QiQTwez9jl\nJK5Oxu6y2hm0qyk13z/90z8BKaodt0xdI6fQmpoaWidNYoFDL72pooKjJtbRDSkS6rLOw9lSN7r1\ndndu97e5w8P81YYN5MXjfDIU4qvLl/OcX5Z2NyENF8kIZRQXF7O+pIT7Hd3e5oqKYAc/evQoW0tK\nWKmX19c/uX0oJCEdlX4fjfjSbaMlOpDFdKCxERob6du1C44fDxy49ZltbG1Au50X1rLp6va0+w8P\nD/N6Xl4qFM7zWF1QEDiKSx8rJCH0VLZjB8v+4i/wolFmRyL86pFHgn4QopXeT78r7NC1YMqJWHVU\n+bZNNolNNnp4l9hyU0UFHwqHk2PseWwoK8uwMLsoVX2jlJtCcEJHIld1k+hAOkGDEGsikeC1SIR7\nnfDCdUVFGZZvlenSVclKLm+B6dOnp5Ut/ZsQn+aTaKPcOkl3eaYuazmx2OWCdE2fzrMPP0xtSwuv\nRyLJRCMXMLDbWq7m9/XxXBal+clke2kp337f+2jq6gp0dmdWwuUlW4qLeWjhQhYPD/OGQvBOQURZ\nuXlzgPCJRqlxIglyQVorK/n6zTczr7eXN8aPT6o2nI3rfItLnLG5spJtpaWcL++5ytZWJq9ZQ+fM\nmRycNu2sy8uZxS4Wi2XQJUmy6Yasb4+10ra0tAApvZyLhmwinYB8cOJEmD07GQzd15cR1O+mYxSC\nsCkEs9UZTp4sZ/z48WwoLWXE0CaNM8HiltbK/b927FUzZrCqpiaJjg4dCtpqdYmuf55QlnZo7Zwq\nU7urJVV1dUNCaAok37JlC5DyZZSFW+Oiemfzs5NYHZ5F/NYv062j0OjqUIjV5eXJsRwaCvr/zTff\nBFIJn4NA+FmzmB2JgG9RXTNhAhv9JDkS6cGsf5s7FywNkm2bnR/ZfAY1duorIceh8eNZXVOTnD/H\njgXPt3pA9zkqQ3VX3+m5NjWoewKx79aO8nJ2lJeTn5+ftoCobxU2d8sttwR/mzVrFpCaY+oXzTHN\nF9W3srWVW7/5TUIjI8QjEZ556CGivr+j/B/PVHJmsbvSZZtDBLBt4sQkbdJFCsif2dNDY1cX6woL\naTVxuZe79Dc08PJXv8rErVtZmZ/PPof9Y0wunEzcto2Qk5CprrWVluuvP6syc2Kxk85Oko0OSWIj\nESx5gES7jHaQiQ5Hm3ZxIQXR70gnJ52DPmWxcwPytSPZ9HbWB8zuuq6Oyibn2VBQwIaCguSO3dMT\noAFZndRW10Kl32RV0+4v5GYDrLPt/kIQlZWVNPT388XnniMci3F3KMS3bruNPf5ub5P7uOhEeiP5\nognJqWxZA2WxU1+qj92+tGjIWhktQac7T6QbsrpDmxgpQH6rV6eVHdS5sZFf/epX0N4e1FFj6lpd\n3bLd/rCRHGqLdLzWh9Sms3TboLpaXz21TYgyG1GDRcMWJdu+1ZysctyWpMO16NRape+44w4APvnJ\nT6b1wemI6LRkvd43cybzw+Hk2hAO01JbG+j5RNNl359TSU4sdmOSOzK3tzctbrKpu5uns2w6Y3Ll\nifz7AsLW8yg9M2fy7MMPU9LczN4ZMzgwdSoz/L8VbNhA4bp1jNxwA8d93sTTkZxZ7Fx0Z/2b7HWQ\n0qNZemtrydPu4u5UNmGwUJoiKqzeQmVki+SwKQqtj5bqkU3fZhM4S4QGhUAnmazsrhVKiEq/CYWo\nHnqeTannRi64NFm7pkwhtmNHEDe5qbKSw75l0epHXZSq9klHasdHlm87XgccI5BNA2mjRGRRtPTs\nLhrSOOseazWXqB9s0hhIjbciI2z8po0cUD1lSQR497vfDaQQrNomK7CQrk0y5I6tRafW8m9ReraT\n0Gh6TnuP2q8TkEveWVlZmfTv8304o57Hl5ctY7VfV9F4feQjHwHODNFJRM2mE8Fbb73FwQkT6Pf9\nIenqYvr06VS2tjL9G9/AO3GCxD/+I90//OFpPyNnFrsxyQ1pnziR//mRjzCrs5OV48bRVlkJ/mI3\nJleuNHV3Bz6ciUSCBf39rHYAxIWS6q1b8fwkR4yMMN4Yj04mObPYeZ6XgRyypYgTChHakQ7I+i3p\nOulMXEvqkrffpqm7m20TJ7Kzujq4R2hEaMhSWLv+XHYntikMrQXLJqsGMkgyR4sMKC8vp37vXurb\n2th11VX0O0jQoiBLQKp2W6p5F2Ha6IcNBQVsmD076ZPW1xfohKxfm4vsVK78y9Qm6VesTihbRInG\nTNcsXboUSOlS5R/5su+YrGe4McVCFfq0iciF4i0duBtFYlk9RktVaK3FIi6FlP5K81P9LT8zWam3\nbt0KZCYbcp8vERq3/ohWd5nN/2w0AlQ7LppPrsdCJBKhddIkolu2BBE426qrwZyyJp4sd8kpcr1q\n7IM56PvHyroPyfexNxxmXiSCF40SD4fZfAYGtJxZ7C6UNA4M8MiqVURiMe4Jh/nWbbeR67ilfu9e\nHnjySUJ+lvbe976XduV/GJMxuQDSPnEiX1u+nPl9fWyurEyy7jjGpZPKOSTQ3Vtfz8qvf53KLVvo\nmzePQYcd+lRyxS12briLFPArLlRmpHco0zo6CMdigRm+qatrbLE7QxGJ5GuRCJtOQqQwJqNLa2Ul\nrZWVo3pAjCrnmEB3cM4cBufMOWly8GySE4udsotJLLWP2ygpfJXXstq89Bs3bky7R0dUweM3S0r4\nuMJt/LCwt00wvyXRzFYve0zVMcAaJnQ8sk6b2e7V0UZHLNX9zcmTuTEcJuwju20TJwbPt7RLNnuT\nzUCVbaLqN+tErSOeVcTbnBSQeSSXMl0KeBkudFzTd9cRV8dRkWV+6EMfAlLKch1jVa81a9aktd39\nv+qRl5eXDF7ftIlILMYDoRCPXHstL/nHS5VlDRi6FzKpr+wzdORzDUlyV7JGLvWtvsuQItcLuRBB\nJiGGNSrYDGWSkxkqrFuPPSpbJ3RI9ZHG0rp8qB5yPperSiCnkev1Zz9Lcv8+88wzaWW5hjTNFbmK\n2eCAU0lOLHYXUnaUlwfhNluqqpJOszmugO+oq+Pv77mHpp4edk2Zws4LTFBwqUu24PWXToMQ4FxI\n0ebNFK9fz6ElSzjspAW8oiRHCHRzYrHzPI9QKJQBS7WTuaZshYqISl2ru1b91tZWIFMh7zqCvjpu\nHK+WlxN9+204cCBDWW3rIaWtm9XL0g1px7YO0Taszd2FtUNqd5cxQdfKQbe/v5/+/Hw2+U6VRxw0\nZB1J9V2Iz7orZHPG1m82M5raq2tVX+v64Yqeo3vdNrj1k/OzG3Cu8uW2oXAjjb9y0eq6L3/5yxll\nWPQZjUbZUFrKx8NhEr47zbqiogDNWydjyKThVzst6snm1CyJRqMUb9nCnM9/Hm9khHheHq3/438w\n0tAApELy7Dg9++yzQRnW2GYRnO61riju/LXuKfbUZI0w1qAGKSd2GXc0TzUOqvu6desAWLRoEWAy\n/PkEum+//Ta8/XZArS5E++KLL6Y9Vyc2F3HL+CUXpDEigEtYGgcGmN/Xx6px494RxdNlL75FrzwU\nOiPF9I7y8kC5vjI/P9m3RnVxPqR0w4aApj0UjVK8fj39/mI3JhdecmaxC4fDaXoWSO1GrsOnMoSL\nfFG7qs72r7/+OpDaBfS7S7Kp3UNoULuHEILNaF5k9Dtu3azJXmJ1ZCrDdUx2c3k2DQ/zl83NROJx\nPhYK8dDChfT618rxVgjH3Z3tTm3zcKrO1q3F3RVtQh3VXTt5NpJMW4Z1VlU9bCiTUHS2MoUE5KSa\n5py6ahXe7bfDiRPclJ9P/Pnn2XhvkvH/iSeeyOgP9bee+1osxmvl5ckxdtBCNlox/X80aimLcPXp\nEmAeO3aMnqYmrsrLwxsZIRGJMLhoUUa7hZLkkDzbyUgm0gSLxjVPLY2YdYVx783mtJxN9AzXFce+\nJ5ZUQvWUnu0//uM/0urplqv5KIdt6W411goJK8tiNLRksnp+tiRS2SRnFrsrXRYbosnFQ0O8fIH0\nSpeEGIuedwFJQN+pDM+dy9a/+ztKm5uvbJ1djkjOLHbRaHRUOm53lZeTqtVv6Ro5EetcL5Ti6uws\n6nEtPq5YS2e2MBir79I9NozMhqhBympVXFxMW3090d27A4qnHbW1VBk+OyEH1wKt/1tnZhtyJrQq\nZFXk5GNQH1q6KO3o1kE3GxGpJRqQCC1mo9i331X3/mz+W45Fz8vPx7v1Vpb74/ef//mfwWX7TEpA\ntU3ISRZvoQFRqrvI36Jgtc1a5y2yUwgYEJCE5s2eTf/s2cmyRkYykJUlpXDFhglKz6l7rCO9TX0J\nmTTwev5o6QSyJVOyaFl/E9Kzzviy2rqWdj1PbdC9KtsSJ6gNbp9bRD1GBHCJSktFBX+xbBkL+vvZ\nUFaWDLR2js1XvGSz6P3qVxe7VmNyHqVxYIA79+3jzdLSc5JgOycWO0vLbsXVh9mEvXZnGC1pdjYK\nKff5kBkWZv3f3J3KXmutnnqG6q4d1g1tmuazr6otbYkEbVVVFBQUUEpmKJye7+52FSZZtkVnNl2j\n+sMtQ3WT1U2o8FQWZReVWcIDfdpUgTaZjzsW0k2+9tprQMr6GqTMMykx1Rb3JGB9wWQZvOaaa4AU\nwlZbNW4K27LlQSqlok4V8vVUH8v/T7orSFFHqSzpI9VnOlUoHErPd/VPln5c6E+6MM0loaVsFleL\nSkfzw7RpLN33RfPD6rJVD5u0XH3qnpis3tP6DKps1Wvu8DBfff11IrEYI74Ou9NQgNnUo6eSMYet\nHJbZ/f18aPt2Gk4SljOju5v3b9zIbIfjbkzG5FKXub29gW9kJB5n8WkaIU4mOYHsPM8jEolkoLBs\nFiTtzFZ/IrF+Q9p1sp3v7W5md1BrMSvJAqWlP9AuZtPfFZlcpa7Xt/4mWiKXrmlGdzcPvfIK4ViM\nj4ZC/PVdd7HGlDmju5uHnn2WcDzOB/3Uid0m8NzqldTWbPpHi6zVh5ZY0nr0Q6aPlx1D/S7dqj7d\ncVT7Zc2Txf0DH/hAWruFZBRBsS9LNnuNpRLqCJ2rDSpLf5dVEFL6XdVR9Zg3b17a75onKltU75BK\n5Lxjxw7A+Jw5bVDdNV4NjmuKojCEQlV3q8uzujIX2Qk5CQWpv61/odUDuqjd6lkt0rN+qpY4Itu9\n9mQm0Xv0ZmkpH3XSFGwsKyPub/qWKPd05ZJFdgUbNlD5+OMU+OwIl5s0HDwYkGiG43EanCxLadf4\ntDsRP3XimIzJ5SAt5eV8edky/nn6dL6waNE58TvNCWQHKXQHmb5artUvPz+fsh07mPqVryQJ/PLz\n6XzySXr89Haubw+MnqxFz4QUyrGWKv1udTSQGbEg5Gh3Ll0XpBZ08kpIP6PYTyG83t5edtTUcJef\nFjEWCtE2aVKAKLTTrykoyLhmtq/nGU2Ponq5schWF6RPq0+xO6lLE6UdOls6P7csWdv06SI7PVdR\nF0p0rrorkYuSs8jr3vU3y0YZ79bHWixFS+SidvWvLN1CWBof3aPnahzdmFChQ+niVGcbnSGRXtLt\nD50CrDeALMsqQ7pOzU/3JKTybCpHiU0jcDJ/PDsvNG/UfiE664MKqXloTxb2tCR0ODIywmrP42VR\nOB0+HJQrXzz1g+LhTyU5s9idiVRu3pxG4FewZg34HXC5yK6aGv7qfe9jTnc3u6ZMYVdNDRgn0tbK\nSv7be97D3J4eOqZNY1dNDWcWQDMmY3LlSE4tdtoxRosKgOTOeGD2bBry8ghFo8QjEfbPmsUu3yIm\n1ggbhZHNGqvdTLufJTaUFU47iKuDkC5GKMQiB8sMko1dQ/oZ7eDVO3cydfduXvY82qqqWAWsqqlh\nxuTJNHR1Mauzk9ZJk3jJQa+bi4rYXFTE1KlTmeC0W7oo69ekHdVFXtqRbeSAxMbfnqxPbZzoaBb2\n0dAipNCnrJuKkNB4yIK5fv36jLboeUJWiqRRX9d1dFC1dSudM2fSN3t2gOJdvzNrKVR9pNeqamuj\nassWen0+tWxEpNbf0cbR2rnuJsKWWMp9zUP1g8ZFJwONtfv+6DQglGqjQkbzr/M8j6ahIRYODPBa\nJMKW4uIAlam9em+EePUuaD6drC3yRBAaVn2kwxRadE9qaovG8kxTKubUYne60t/QwI7//t8paW6m\nf8EC3po/H/zF7lKV2t27+dA//zPhWIzloRDfvPVW1voTcHpXF5996qmA4ungtdee94Qnl6NUtbVx\n42OPEYpGmROJ8KtHHqH1TMvYuZMbvv1tQtEoDZEIrz/6KFyGLDRNQ0N8a+1a8uJx7g+F+KPGRjac\nIaVSrsklO0qHFyzgwO/8TnKhuwykvq0tIOiM+KSiktn796eMFbEYC0+ST3bqgQPcunr1abmizO7r\n455t22hydJEXQxoHBvhIWxtzTIrCcy0127cnc5H6gfk1fnKXM5FaU0aV4593OcnCgQHy/PDFSDzO\nNY6PadPQEPft3k3jeR6vcy05g+wSiUSG24igtQuHpTwWpFZ2KHHW28D30ULQIKW0FQzX8wWX77rr\nLgBuvvlmIJ0PX0cGBTTbjFOWXMASQEI63N89dSrXRSIQixHzPHZddRXH/DLWFxdzh2+IiIZCvBoO\nByFV7lFiRnc3n/nlLwnHYtzmu6L0meOJFOFXHz/OZ19+mXAsxoc9j/8ybx7bTR3tOEisyw5kuixY\ng5DcM9Qfun7eoUN8zafJvzcU4ktLl/Kq/zcdT5WRS4p4S4jqis2pqvkxd+5cvIkTWRCJQDQakKCq\nbJc0U4p1Kfw158rLy9lRW8tCOUiHw7RPnhyEibkuMJqHMsRorFVnKeata44rOoprbslQor7U0VDH\n2m3btqX9DpmOxjbfSbZ8tZCcc/fL9cPzWFtYSH5+PvPfeovv7NhBJBYj1tHB9+6+m/2+W42OpDrO\nuu+L/h+oAoyxZ7SMfr2+4RFSY6o+tXU+leTMYnely8Fp0/jZH/4hk3fu5GXPSxok/MWuraqKb956\nK03d3WyvqWHLKA6WjV1daTlfG7u6eGkUynkXLSYSCZYMD/OL89a60WWe4zwqYs1Xz0FoUDY5OG0a\nz//pn1KzYwc7amo4MHUqnAQlj1bGMw89RF1rK12NjfTMnAnNzeelvqPJxPZ2alta2DNtGl3nyTC3\nrbSUhxcvZtHQECvz8thcVEQesOTQobS0Bg0HDgSL3YWSqQcOMKuzk8FFi5JjeJqSM4tdIpHICEuy\noTWQyiupFV9mZ5n4beiXxEUaUjhLaWtzjN5+++1AKg+mJAhbAm644QYghRzkRGpJBUbLKwspNwS1\nZY1ONAcAACAASURBVPysWfTOmkXPzp0UkUIp/f399Hseq/ydPRvRZE9PD2+MG8fd4XASHfquKHF/\nwbRO1VuqqrhTaBF4Y/x4RnwkczLjAWRHVNYR2yII6/KiftpcWRk4j8ZCIbZUV4PJoqXdX99tELvb\nNvWznq9QLhFL9k2bBjNnJlFbe3vwd3e+qK5CdDJGaX60l5VBbS1vdXZCZ2cwJ13jk9wjpMzXGGsu\na+7pudmoyLqM3+T48eOZtGcP7//f/5tQNMrVkQj/3+c/T4s/523fQqbDsXWFEkpSPVxj4LbSUraV\nliaRdCLB8ePHeWP8eH7PH6+4T1hhjXPZss+pbyzllD5VLxkfhPxcY8vWrVuZ1dvLH/70p4RjMeJr\n1vDsww9zupIzi92YnL20VFTw9/fcw+z9+9laXZ2GDq3sqqnhu+9/P41dXTx96BCbi4rgIujuWioq\n+NqNNzKvr4+N5eW0lJfDmHP0qHLVrl1JnaGffGlSays4Ca3PhcwdHmbR0BAby8oynHk3FRby5euv\nZ0F/PwcbG9lVU8OFpJlt6u5OSz5V68Qjn0rOerHzPC8MrAP2JxKJD3qeVwH8OzAN6ADuTSQSp9Rk\nZiMclG7CJQKQjmzz5s1ASp9jE6acTFennUjlCsHoeUr0cjK56aabgJSeRm4QcnUQ+pGOwprrIYXQ\ntOtbMgMhFkut5Lpz6F7p8LY3NbG9rCwDHWu3d3WKmwoL2TRzZtLFIx4P+kqoRCFOQhtCOJbswP4f\nMp1UbYiR2n706FHeHD+eNydPTpYxMhLUUUh61qxZaWWrD0Wj5Pap9K1CLtK7KdeszdMq9FblJHy2\nrkhqt56n34X01EbXFUL5Ya0rkqUks6F3Q1k2HJcQYN/MmcSl2w2H2TdzJgm/LSpzsrP4Wb2j6q72\nas5pPK4dGeHRjRuDAPxHrr2Wl427yssnTvBycTE1sRgcOJDx7llyDPdeiU2bILcam7fWPV3Mnj2b\nw+PHE92yJYnswmF2n8ER+lwgu88B2wEpWh4BXkwkEo95nveI//3PzsFzxgRo6O9n9v79bCgvZ/tJ\nQmhmdHfTePAgL8Go183u62NuTw+/PH58LL3geZLZfX00dXfzSih0TkKeDkydyi++8AXqWlrYO2MG\n3TNmgG+YOBcyv68vQ4f6sonvvlBSs2sXk9vbU7pRoHPKFP727rtpOHCAt5ctOyOd5Vktdp7nTQbu\nAr4BPOT/fA/wHv//PwBWcBqLned5AWKwAc/ujmmT0VgHUEs1pL+7CM86kmqXsXRAJxOhwCVLlgCp\n1I7Ss1j0ox3VRalCBrIE6m9CYdr1hHDmHTrEn/m0N9FwmEff/W7W+Lof9Uc0GmVmTw9feOEFwrEY\nd3keX162DMvrO/fQIf5sxQoivjX2DxoaiPo6QaHWxYsXAylLonZbUd9nS9ojseNir7NoFTLJCxR4\nL4SpMVV9hLRcq5xFjvouy6Z0VxZ5unpQ9btF2LpGKFr9IZRU7vg+FhcXM6O7m4dfeimweH91+XLa\nfZSq9AJqg/R+bj3UTs0L0Z4namvZ/q53JedJX19wj9CRS3Yr5K+y7Jx3acsA1hYWpgXgb6mqIt/o\nXyXqBztu2Ry19X9ZlIUohVqlJ1Vb6zo6uPN73yMUjRKLRHjqs5+l3R+HNSdO8HJVFdNGRqD19D0l\nz9bP7nvAnwKum3xNIpFQ1HoXUJPtRs/zHvQ8b53neevONNntlSpzurqCXTccizHPMcunXefrNUQi\nsCALRVSTU1YkkUjzo5JUtrYy5+c/Z2J7+zluyZUhrnU8HI8z/wLScE07eJDb1649Y+qv7WVl/Nk1\n1/BvDQ18aenSi+a8XtvSEugmw7EY9ecgaOAdIzvP8z4I9CQSifWe570n2zWJRCLheV7WlSyRSHwf\n+D5AOBxOKJ0ipFCTdA8uPY7O/kJF0gtod7F+Xtn0S/pNaEh6gWXvIJ+lyrWB/zYsx92xJbpW+hTV\nQ/doV1Z91xQWco+z664vLg5QoNCH53m01NYSE0GA57G5ooJxhnp9fXExv6H0gr4flfRMc+bMoWrn\nTm75xjfwTpxgfn4+e554gj0+KlEYl0tqkC2Rj1t3S9AgvVg2y6HGX+Ou3V/IwerOXHQ4GqIfLcVl\ntjSFGktLAKFP1UMWVfm5uag9FouxfeJE7naIGlrq6vjYxz4GpIhJ5aP3yiuvAPDUU08FZWh+an5I\nP6w2aE4J8QXjNzjIp3/+c8KxGHeEQnz3/e+nxZ8fQrjqd326xBZveB4b/D7nyJHAJ9DOZY2/JZDQ\nO+nOeTtWdnystbZj6lQWRSIkolHi4TCtkyYFNFwa/9NNtBPU4YyuTpflwG94nvcBYDxQ4nnevwHd\nnufVJRKJg57n1QE9Jy0l18VP33cxk/tKRHszv7eXTRUVyV03CyJrnziRv77rLhoOHmRlXl7yOqP4\nbq2sDNILvjAywqbCwjQIXrt9exrZwoS1ayELB96FkNrdu5m8cycd06Zx0I+pvBTEHYfm4mLaqqq4\nECl3Zuzdm+FvealJ1/TpPPXZz1K5ZQt7p09P+vKdpW7yHS92iUTiz4E/B/CR3cOJROKTnud9B/gd\n4DH/86lRC/ElFAoxfvz4jAB9+Vdpx4LUbmED8E8lLoWzEKN2aKHEjOP0qlVw223JrFb5+ckcCGbB\nk9e6dl1LS6UdTajF9Rm0RIpCcjaVoUvx/gbwuvz9BgcDvZHKFwo4UlBA87Rpye9Hj2Yk1SksLGR7\nWRnby8qSicWPH09LtnygoYHF+fkwMkIiL49jS5eS7x9nLXpy22uTFFkqLImllYKUXme+HwJYVFRE\n/d69fPif/olwNMp1kQg/fvDBoCxd79bDogy11yJuifrPJTPVuEhXeqokNULVrk5Lz99UWMimWbO4\n5ZZbmArceeedQAq9Npg8stucF1qITfNTlmR9t6kV1YYtVVXc4vtbRkMhmouLOeJHn1g9pKUCs4nA\nIYV0NWbSS1uyTs0f9bnrI6e6itpeenjpO4XsVHYkEqGnsJC9dXVw/Di0tgYnCr371gp8KjkffnaP\nAT/2PO/TwB7g3nNZ+KQ9e5iyaxdHYjHaHHeB8yImfR8rVlx0dHehpHfWLDqffJKCNWs4cu21HFu8\nGC6C7u6q3bsJ+7qbRDTKlPZ2uMQD0oHzemLYXVsb+FuuLiigtbIS/MXunUjjwEC6H+QlKudksUsk\nEitIWl1JJBL9wG1ncr/neeTl5WUQbWrn0K4zac8ePv7444SjUa4PhfjOHXew20dsskBptbc7uJt+\n0PqPaXeTl/1v//ZvAxBx0veRn5+cmL4oTnPFihVAyv/PJjjRTpmN6kg7pnZkq6sTSrQUS9lEz5Ee\nxdLBW/oqF2GqH3SvLIOhefNg4UKGe3vhhReC/pEVztVz2XhaO5ba7fVpreaQiheVFb6oqIjeuXOJ\nvfQSxGLEQyHap0wBo+N0SUSt35rKt0mC9KxsycvVl9bXS2Oqa4W8hUZcnZ2uEToUtXtpaWnWE4Mo\nuVyfQdunmnM2xaVQmkvntRd4ubo6eeIYHEyL74XUSUcITu+Ajd1tHBjg0ZUrg9jlLy9bxk7/HbNU\n/5a239Xf6m+yxgrZSXepNgrZKsWlG19rdYE2Sfip5JKKoJiya1ewy0ficeZ0dfHMGQYDn5FkS983\nJhdUpLupb2tjR21tUndzqScXynZi+M3fvNi1yirW725Bfz/PnIfnFG7aRElzM70VFfQaJ/JzJTmx\n2MXjcY4dO5bhkyU9mFBZc3ExN8iCGAqxbeJEbJi7dj3tCNJ/ub5H+r/QjpCE0MD3vvc9AH73d38X\nGhqo9Bc5WYEA/vVf/xVIpcyziU0su4OQlKsXtL5F1jfMoqJsDBVCZfpNbXDRDmT6wbn6J6Ef6YhW\nrlwJpKJTtIPaCAoXPY5GN+7qAd1P/e7uzorcULm6Zmd1NTurqwmFQuST9KSHVNxrq+NrZWOTrR/d\nBHMSECpyLXtCdLpXqEdjaFG6ombc/lC5NtEOkJbwWyeGdl9FcMA5bmqMLEqU9VfzQ5/WlxBSKNxa\n7SXqD5vsSuO0saKCe8PhZAy157EyL49Dfpl6ruavTZ/p9pPKt4mpioqKGP/mm1z1x3+Md+IEdXl5\nNP/VX7HPtwZrDkImY86ZJtzJicXudKWjro4nH3iA6Xv2sDI/n53V1TCKr9mYjEnOSrYTwy8uBufM\nqaWlvJyv33wz83p7WQHJZNUnSe35TmTC2rWB5d8bGaF848bzkmbhklrsIBku0jllSqAjuxykob+f\nub29bCwro8VhVhmTdJFxaktlJXsdC/0lKSbhdy5LW1UVbVVVafqzcylHr7uOhCz/kQiDixaBb3E+\nl5Izi10ikchQbOpY5R4fLQyW46c1COjIoeOVG8pjjQY6FixcuBBIHXH+8R//EUhB/3bHGqnFVkds\nHTl0HBK0l4uB6nfQSYkYi8VoGhriq83NRGIxPuqHgB0wdFDZjgWnEmsosPkDsuUWVRs0qa3zro4t\nNr+HK7rGGgYsfVe2o4g9vuozLy+Puo4O7n38cULRKDeEw/zL7/wOzxuCVrdc1Vn10BhqPDTGer4b\ngC/XBuvGYo+xoxlhXNE80PFUinfNG82jf/u3fwNShBJuGzRm119/PQBLly4FUm5Gr776KpBS4Lsq\nCmuwUXvV17rHGvhceikbxmjdiOyYZstRonvlPiPVkeZl1ze/ScWmTXRMm0Z/dTUDvrN1t8PYrf4/\nmaP+ySRnFrszlRnd3TQcOMDG8vLkcfYcSlVbGxO3bWOkvPy8ExMuGhxMKYD9ELAXzrNrRdPQEPN9\nV4Lto5B75ppMaW8PwocSsRjT/JfhXMjc4WE+MDjI6oIC3hwl+fqYnF8ZampiqKkp0DueD8mJxc7z\nPMaNG5cRaiTnSRc+h0IhGvr7+fzKlYRjMT7g04+v9ncIqwiXAlboDVJoULuedvva2loqWlq46bHH\nkmFSfkKVZ/zdxVWWCilYp15L5WMzT7lI5tixY6yZMIHfcsgrN5SVEfd3ZusCYbOhQSadtc37acOl\n5g4P800/kcpIKMQXlyxhm3GE1qd242yuBJCdCED3WreEbGF77vWQQsU2S9bkyZM52NhI7Fe/CohJ\nm0tKGPKRdrZQQEsTr+eo7/S56OhRvrFhA2FfAf//zJ7N8yZo3iI41ctS7btGIM0pzTshGd2r8LCn\nn34agOeeey7tWW65ctMQQYMcc4Xs9H6IyDZb+Fy2ueN+t2SaLtJVP4yWNsEScFpDhdsWGUxWrVqV\n9l2uLnK7knHSEhW4z7usXU8k8/v6MsJhVvuT6XRkSmcnM/buZV1REe1+lIakauvWQFkaikap2rIF\nzqDsM5WtJSUBGeKWqqqkzu486UYgPZFKIh5n8eAgPztvTzt30jV9Ok9/7nNMam3l1XCY3YrdPEtZ\n0N9PxO8PEgmuPXyY589JydmlaPNmSpqbGaiupu88uViMSXbJicXO8zzy8/MzgrW1crvJUMrLy1lb\nWMjHnAQ0G8vKgh1A10rPoh1WiGp6Vxef9tMS3hIK8dd33cWw7+gYjUbpnjOHJj8nbSIS4ch11/G2\nT73uJv+wDr5WX2IzsGczk6u818vLeb28POl31dsb1F07pHYy69bi9pXaL92kJY3UbvxmaSn3OWQC\nawsLifr3So+jT5dgEzJ3UheF2LyjFg1ZqisbzA5kKMAVJigU3el50NhIc3MzHDoUHHncvrVo1CJe\nfapNqwsK+LjTH2+WllLgl6Hx0T2WTNW62WRzTHaleMsW5n7+83gnTlCfl0fzd77Dk4YmyR1boVOd\nRITobIIooUbpWF29sBCdDd+zJxMhPNXjkGMg0Hy0BJzZ3Icgk9YLUu+D8sXKiVplCpWKGEHvratb\ntsja6pJPJTmx2J2pbC8r47t33kljVxcby8qSYWOOIvNk4iaaIR6n4eBB1vpcdJDMSdvyD/9ASXMz\nBxoaGJ47F/zF7nIQUfjM7enhzdLSpCvBJRgofq5kW2kpDy1cyPy+PtYXF7OluDjIgXGupfTNN9Nd\nLPyMeLkgM3t7aerqYkNZWTK87DKUnFns4vF4hn5Hn25ok3bztfX1rJ08ObmqHz4c7FBK52YJGIW8\nNpaXc6dJSiM0IP1B++TJcOedSWfRnTsDK2y/419kdXLWaVLPF+LKhgZ0jXY9BcDLKVSWOhvo7e7+\n+pv6ziI8oTSXrHFDQQEvFhUlkeTgYHCvrlWbtPtbdCj06qJb7bZ2l7WITmjFWmfdustZWGXpHun0\n9HfXWmvrYdGGnqPAe5FMbN++ndbKSl5VvY8eDVCO2m+JSC1q1fPdZ2o+SPfU0NBAYuZMpuTl4Y2M\nEI9EaKuvZ9hf8FQ/V6c2Wmib6qFx0vwJGb01pByRrcVY71RNTQ0ze3r4U5/s9Z5QiL/54AfpyhKa\naOeBxOpJsyE7WXulw9RcV/3WrFkDpN6xQ1lcT/R8i9JPV3JmsbtQ0j5xIo9//OPM2LePTeXl7Kqp\n4XImJA+CuMvKLhoR45gkZXDOHDZ897uUbdxIa10dfX4kyJlKwYYNFK5bx0hDwzlJEj/HpOBsOHgw\nGdlxAaR2927q29oYGBk5514VVnJisfM8j/Hjx2dYUiXud1mJtMtJjyFdgHZU7dxCR24IzcbaWjY2\nNiZ3j+HhDJJM+UQJ0Skw3vVf0k4ltGWD0oVAhQ6sTgRSSGD58uVAijxUu5oSf8uPSju8i2Rsuknt\nqiUlJTQNDfHo+vVBEPdXbrgheUwjO0rNliLRFWthdXdw7br6TXW0uk2L/LLtzrpGYVjytbJkAtbC\nCukkppCaDwoxe/e73w2kEIXmyfPPp8wSGn+1wVoERwt9c0V1VKpNBcB3V1fD0qVJf7P16zOoylzC\nCqurzc/PZ8LGjUz/gz/AGxmhOhKh5R/+IYOqzBWrs9N7oLnkeR4tdXXENm0KKKE2V1ZS6Sx21kqv\nvtOnnqGys/kbWrKAUChE/d693PPkk4SjUa4Jh/n7e+4JXH9kac6ms7O6/dOVnFjsxiQpZdu3U7Fp\nE/tmzqTf8Jy9E1k4MJAWxD2/vz9Y7Mbk0pTi9evxRkbwYjFCQElzM5wl1Vn7xIn8z498hFmdnawv\nKaG9uhrOkAX4nchUh74rHIsx+zx6IUAOLXbxeDzDkifJptfR7qGkLIp+kM5M1hwhGNdCJbSnXV+7\nh/QrQge6V2jSJXiURUzXanfV7iMUKOuwdiGXcFC7eFlZGXUdHVz37W8TGhlhZl4eW773PY76C16z\nn3He1dVJrM+TEG88HmdDWRmfcCyNzcXFQZvdPtZvluZHv1tdibW8uv1gk2VbsZZ2V7TrW92gpfax\nO7tLrWTp3oU2lDxIyZTUT9Ihuf3x7//+72n36jlWD6p6CVG5RACqqxD3pk2bgFQ/yepoqeiFAF1x\nyRSGr76aWh9xJiIRji5dylu+JdNaj+3/3bZoXgbEAJMmsbGhgZKSEspJH9vRrKCiyxdK1DjIqu7O\ndXvi6enpYUNZGTeGw4R9RLmpooK435fSR7po1UYBCXmfLj17zix2V7pM3rmT0MhIYKkrffPNrLGT\nM3t6aOzqoqW2NsNH0Mr2sjK+tHQpCwcG2OCzEmNUBGNyacmRhQvp/uEPGf/GG/TOm8fRRYvAX+zO\nlUw7eJD6nTvZUVNzyjl2NtJRV8eTn/wk0/fsYXVBQfJZ5zAyxkpOLHbxeJzjDi249X7PlgZRO6DS\nHwrZ6Vr9Xb5H8lCHlL5NO7X0A9KfWAoo7SCu75Slg7c+caL20W5vUSKkdq2Ojg4oLGRZJIIXjZLI\ny6Nrzpxg91WbGgcG+Pwvf0nYj7b467vuot3/m3Zo6aD0HFGvHzt2DN5+O4MQ1a27+lbtTZiytdsL\nNbk6ExsPaVGijezQM1ydjL3WWm5tn2ejVLcU4kLDSjOoMbeU6zohQArt6TQgFC+9sObHyVI62jms\nPlN0iD5VXxuz6t4r5BIkU583j0Pz5iWfH41m9JOLqoWubOSE6i69qNDZoqNH+YOf/Yyw763wNx/8\nYJAk23o4qK6aczblpKvjVj2EaAOi2qoqXqqpSb57e/YE4yKxiZog1c+XNcXT5SwddXWs+da3qNi0\nicFFixhqagL/6CNpOHiQcDyeZjV79nKgKL9IElm7lqoXXuDItddeHlTv/z97bx4nV1XmjX9v3epO\nuju9d3rfknTS2dMJARKRRYFhHwUliqgsIgozqAM4uI6v46sw8+M3DuO86jCMDr76IsogzuuoDAIJ\nJGTrJKSTTu/7nl6zh+6quu8fdb+3nn7qVi/pLJWkns8nn0pX3Trn3HNPned7nuX7nAYp6+wM88xu\nmiTurqS7Gws6OrDXjm6IVomKzS4QCODw4cPOjq2L1bh57IjcWJw6TSW0035A2meyLQChXMMyO12H\n9gRSQrOwB4XjyBQPnQhBl7OjZiLi5N/UoBKlaq/rrFmzgOxsHG1oABoawmis6vPynBKJPo8HNdnZ\nMFXkPV91wWJqSL4vbWZEBLyGbei4LU3EKdvQnjGN9PQz1fZSIHIcF4WanAiCaISvQOi5a7YP3hPb\niN+1C6kf/SgwOgorPh4DTz4ZDCBHaC2xLSI7rjkiGSItohZJHBoJ6epiRVzzbnGKHDPtXOyPtjJt\nF9beSiC0xnQhHc4h2yY6fScpCdd5PLBsZLczMdFBgTwtcL79fj8WDgzgcxs3wvT7cZ3tUe1VZJ5y\nbJwHIjz+boimOfe0YUrhWCMVcZpMomKzi8nUpDknB9+/9VYs6OwM2ezOoI3jQpa4LVsA20aKsTFk\nVFU5m93FLPWZmfjbq67C0oMHUT13bjCbYoLspKUHD4aQoO1R3XimC2Gdolw4m10U1XfVMq+3F+sa\nG7EvMxP7ZthWc05OjOBzAll66BBWjYxg15w5wVS4CDJ2xRVAXBwsAFZcHIZsm29MghveVNfYgexs\n+JmRZJpoKCg4Y+l2M5Wo2exM0wwLSNWhDkB4GERSUhI827cDN988rlpTvL3h8ai6ePFipw1CZqYO\n6XAJHgt4jKQBPEtoLKalMTyBxxEabRlWsnh4GA/+7neOe/3w0qWottvTYRKk/dFOBB6J3cgydQgH\nv6NDYniM0X/L/iM5FyKRNcrnIoNFgdBRlEcgtsF75nORJgo6iPgaKcVMO4z497LDh/F0dTXiAgF8\nyuPB4xUVeNU+5jMcgm2dqKiA71e/grFpE05cfjlOzJ0Luhc04agmLdBknpxT6SjhEY7X8MjJo6iu\nHSLT+bTQzMLgdo6LxzoeBfm+XBPawK+P85xjOkz4W5AODR6FNSHAkSNHsHvWLKds477MTDSlpOCo\n/buR9S447zyCawILjp2/H21SAUJOPk05NVWJms1uJuJ5660Z1XdNr61FVnU1Ds+Zg26bjeF0yfyO\njnEG3zWHDjmbXUxOr6w+fHgcfdWqkRG8OkH+5NjatTjOo6sdYxmT6UtLbi5acnNdMyeiSaJiszMM\nA16v19HyGvFIgyuvofZvaWlBQlkZ5kWo76rJC+X/4+PjkXrgANb+j/8BY2wM5aaJ3/3VX2GHffyh\nJieik25xtsH3UiIcmerz8nCdIB44vGYNVtrajRqYY+Q9aaSlta3U/trQz8+osXUgsqZYktfoiveU\nqQQVR6Lk5isNz9fYz+bSSy8N64cJ/ps3bwYQSrXSiEXfM8dXmZSEe0UQ9bZZszBqIys6gUhpvmLF\ninH3LGnEiL6Iyvhc+DeDzzVRgXSS8T2mHOqULralk/hlEC1T3OhQY3U3jpmIjq/s081RwrWjwza0\nI0c7TuR3OUb2T6TFzzXSlWE07E8H43OsOuiYbUhkytOCTlubKrtxVGx2M5UTFRWnXN81o6oKxtgY\nPPZDzq+vBybJEQWCgZdlnZ2oycmZkEiyLT8fP7zjDhS3tKA+Lw9t4tr5fX0o7+1FTXb2lIM3S3t6\nUNzScsYDPs9H2Z+cjC8uW4bVhw9jZ2JiMDVOMObEZHqy9NAhVIyMYOusWdiniq6fjxI1m53H43G0\nCnd1TfUEhDTP/v37AQBvvPEGACD+xhuBO+8Moo7WVkfbUaPLMA4igoyMDASKijDP6wV8PvhNE3V5\neRhtbwcQIkWkBnEICHt68Bc2AegNpolnbrsNtbYmZIAyEVZGRgba8vOdWhZZthYs6uzEfX/8I0y/\nH7eZJv71Yx/DLnsjJHKh5qR2K+vvx0N2v36PB0/fdBOqVfEXfZTg2HXIg7SnEKFoAlJdSCUS1boU\noj6thWkfve666wCEiDklwuR8E93w/jmXOhXPzb61Y/Zs7EhPD87Z4cPOmGkPZb+8V94La+UCIdsY\nP2O/tM9q2nGGorjRoXOs2g6r6/sSSZUIMwpRKN9j+NR//VewTDXDN3StXPlc2C5PHkTxuuaspvla\nffIkvrd3r2P//Os1a/B7G53xXmSAPBBeIEgK16Em0+XfRM8aacqUM84pg7u5XnSoWCSZHiHUBSgD\nCxdi0ze/if0bNuCXDzwwJZudJAA1/X4sEoWNpyrz2tpg+v1OEvT8KdiMZMCnadPRTyblQ0O4o74e\nS9TCjElMJhJJ3+8NBLDqDBbCOVsSFcjOMAx4PJ6wc7pOMQJC2pRa/4UXXgAQsvfwOzzHt9soTZ7r\nGeBL7dKemgqsWBHUlE1NjjZhChG9bEzb2Zuejhvs4F6/aaKxsBDptiZiP9R6OqWJ91aXl4erPB54\n7UIvGy3Lse8Q2Wha9Oq5c3G9CCquSk+HaV+rKcOB4DHk23v3wuv3406PB09ccgk2u5S543ep9TUK\n0eUYdYCwFO3BJLLQQaJu9EycIyKlSLZEjv2YyxFVB68S9XDsL730EoBQEC3XQH19vdMG0blEv3I8\n2nuvvcZACKGwfXohiQ65Tji3JCooE3UpSHDJSAK2Qc8pTzcnVIEmKZpiTNN56QBdjntvevo4+v49\nqakYVVRoXOM6NU+jVyCEqHUwPteHDn6nSPTOkxVRavo0+RmjYrM736QpO9uhhW8rLUVrXt60oP3+\naQAAIABJREFUi+S05efjux/4gEOPXpeRAUyiPVtyc/GPt92G4uZm1OTkBOnoJygmvGpkZBzF06rh\nYWyeIPbsXElKdTXS9u5FV1kZhkWIUEyC4t25E3FbtiCxrCyY+H8WpDY9HV+99FKsHBrCruRkHEhN\nBUQNlvNRomKzCwQCOH78eBhdkfYCuQk9VLTJ8VrGwdFWIBEENfeePXsAhDxE1Jj8Lr1h9LKxLwBo\n8njQlJ2NtLQ0xCGUSkSNRe+ejh+SHrtja9diL4B3Nm8GBgcdZKfta7KQ857Zs3HAToGLRwgN8TvU\nfqOjo6jOyoKvtTWkndPS4FM0SUD4fGtEF4kOWz4XXThbE7BSNGrPbmrC4scfh2dsDCV26UoiaDfC\nATkut2LMHGskWnZ+l8WqdaqcHBuRCp+Znh+d7O+2Tm+44YZxfzMlkQVmSDl1/fXXAxifkpiQkICk\nqiqk/sVfAKOjWBQfjyO/+Y3jnSXS41rTyBMIrX/eA++X1+gYOs59QkIC3k1IwLsFBUEENzwcRhCr\nSRf4XZ5EZFyq9gJzfWgKfLbBccl1yu/okgdTlajY7M60LBkZQXlPD3anpJwyeWVOczMKd+5EY2Fh\nEMlFqZQPD2PF4CD2pKSgJi0NX1+/HisGB1E5Zw5qolA7p+ze7VBbOaUrp1lb4EKW5F27gNFRGH4/\nrNFReDdvnlFpzyUjI1g1PIzdKSlBtHaWpaS7G2WdnTiQnX3aymFOVaJis7Msa5wmpoaiDUJqKo0c\ntDal5mAbSw8dwpOVlU5R6MdWrcI7tkaiB0jb2QoLCwGEUFJhRwdueuYZGLbH9tkNG5wCLXqs1My0\nCd18880AQihR2lW0V4uIU9PEU9sRxUmySto6ent7sezwYXy3qgreQAAf93jw9fXrUen1ojInJ9jW\n2JjThlusnrbN6YI22kYn/46Evvlcea+8R/7dvWgR8u0iNH7TxJ7UVNTYxVf43IkgNHmkG/WTtklF\n8jZqG5X0YHKOmAWTp5Qb55zPjc9HPhciOlJL0Q5Mmx2f8Qc/+EEAwLp168aNCwh6Ww/n5yOPlFtx\ncTi0ejXGbJsz70XHP7rRs8fFxWHx8DCe3L0bXr8fd5sm/vaqq/CWvR41UYFcHxw7f3u6ABDHrLNk\npM0zLi4OCw4exEOvvgrT78f1dhQDXWy68LVb8R7OM23u0lM7FbngVaj2KlWcglcyt64OHp/P8b4u\nmGG0fXptLRa+9BKybKfK6ZKKkRGn4LMZCGCFqDMRrXJo6VJUPvUUmu65By9+9rOnPYPlfJeh8nIM\nvvgijnz5y+j7xS8wah97T0UkTb/X78fSs4zyy0Vhn1ONYpiJzAjZGYaRBuA5AMsBWADuB1AH4EUA\npQBaAWywLGtCy7vH40FCQoKjmWhncCtRx91cFz/mtXyf9p7tCQm4S0bVz54dZnOhzYN/E/Hx/fq8\nPFR4vbB8viC9eUqKU5SFYyPCI3JhhD69a0QHmfX1WPKtb8EzNobyuDi8+/TTGLGvpc1Ox7lRg2pv\nFDCeQHJHYiI+bd+r3zRRk53tfFfHYsm/2UakQjKcF/5NzS21rrbRaXsftTFzVOmddRDVkiXYunUr\n0NPjZE5oW53MfJHjkEJ7UaSsD/an834lsiMiIQErvcPaZkVkx/dXCjKByy+/HEDIC8l74jhYKIqZ\nJIyl4/oBQs9ld1wccM01wbW2b5/TFn8LulyifLYyn7dyzhzcZZpB+ibTRHVWFpLseyWy09kRuj15\nDzqjRSN/6UUfGRlBZVISbhPRBDuTkhwUyvlnXzo/WfbD36eO85tMZnqMfQbAHy3L+qhhGPEAEgF8\nDcDrlmU9ZRjGVwB8BcATM+znlKU6JQVfWr7c8SrtT04Gpgl/u0tK8KsHH8SsbdtC1EqnWJBE2qiM\nsTGk7d0L2A6Hmcr+5GR8ec0aVAwPo6GgIEjPM03Or5iEy/y+PpT39GBvenrQAz4NmbV7N2Zv24aU\n4mIcnoRCKq6yEnNffx3H1q49I17XA6mp+NYVV2D5wAAOZGcH18c0fwszkfrMTPx/N9yAxXYx7oas\nLOAsnj5OebMzDCMVwFUA7gUAy7JGAYwahvEhANfYlz0PYCMm2exM00R6erqjGbJVGpTUENzdNbLT\ntjxqCJ/Ph8q4OGymMfbYsXFaS7bJ7xLR0Tt7/Phx9MTHozY7GwgEgN5eB9lRIxJl0P5HVKBppg+t\nXo2CuDh4xsZgxcVhZNUq5741+WKkXFQZs8b7ZP+V772HyrlzkZqQABw/HuZtpMaUdlCtuXVOrkbN\nGrXJ7+j51/Fm/C7HQ5QChHI8adfkc9cxexTNwgGEUJbOiSZa01kRboShnMukpCQsHBjAY2++CdPv\nxy0eD5689lrssMdDFEn0zGcOBJH8rN27kfvpT8MYG8Marxc7n3zSGbOmMo/ftQsZH/sYDJtMtPtn\nP8Nh+zSwceNGACEkxygCCtGRmydaZ78cSE/HgdTU4Jo/ejQsDlKXqwRCz1KXZdQebz2nbkWVugD8\nX68Xh7q6gK6uMHYcirbhuX0WqahTJJmJzW4egH4APzUMY49hGM8ZhpEEIMeyLJby6gXgytNsGMaD\nhmFUGoZRGSlM4UKUoytW4MA//RPaH3wQ7z79NA6L2gcxiT5Z0tfn2Jm8gQCWTEBkqSVh+3an7KFh\nE4RGkvitW4PX2og/Yfv20zH8mAiZyWbnBbAGwI8sy1oN4BiCR1ZHrOC27cqxbVnWs5ZlrbUsa+10\ni92e73J0xQp0f/rTM9ro8lpbcenrr6P4DNfavNilJicHftOE3zCCVPjTqLFw4vLLYcXFwTLNSQlC\nR9evH3ftCdvmF5PTJzOx2XUC6LQsiyroJQQ3uz7DMPIsy+oxDCMPwMGILdhCiicGPuq0Jeli5tFG\n1ynVxnVdx1WmFrENwmBCeH6HR1E6DOgQkGQCmvefEJ9HCo6Z/boF2/JIw35oeI1UaZ5tFLS3444f\n/ximz4d1ponnP/1pVNlzxu/wKMjvyGDjSMI5Zf88ymjS0IkIGtzq1wKhMA7Ok6b0kWPTz5TPS4cl\naKO22zioSHVIip5bqXAl4UBVUhKeue02LOruRuWcOWhIT8dh29lCZwIT06Ux/cSJEzixZAmO/ehH\nSN61C28EAugeG3PWEEOUOA9dxcUY/pd/geettzC8ahUOZ2ai1kaCJCkgtRRDMNgG79UtFINrm/PP\nOWUbXNuafFWajnTaJsNn+D6DmxmyxXUkj8IMteHvhv1yrrWTw+056XCUs0beaVlWr2EYHYZhlFuW\nVQfgWgAH7H/3AHjKfv3tqfYRE3cpbGx0Kqlbfj9KW1sBlccZk9MnJKfkj3w6cnzVKhxftQrdr702\npWsH7Q0jJqdfZuqNfQTAL2xPbDOA+xA8Gv/KMIzPAGgDsGGyRjweD5KSksIqQxEVSeNlJPe2riav\nk8SlpqLmIfqhlqGmosamFuZ1kuCRWoXXclzUnNTCdGRQ60kUQmSna4lSc1GTUTsTNdbl5eEyEUKw\nNz0d2TaS4hh1QLamuZb3QoM8XxlUyzmli1+HokiUyHZJu5OokKZ+PrxX+Vx0GIJGGToAWNP4A+Gp\nb9r5Q2GbOnBaXssxamr1PmW3c0NWjY2NAELohkQVXA+cf6aPcQ3K0JPttt2O1/Az3hvn2HFyKHQG\nhFAXT02cQ27cHB/vgetEonmd6sVruaYZQM3QG03bBACbNm0CEPpNLVmyZFz/JDUgIYM+qckxua2/\nqciMNjvLst4FsNblo2tn0m5MJpau4mL873vvRWlrK/akpgbTbs5iCEFMYnI+SlSkiwUCARw7dizM\njkJNL3d3JtxT2+qzfSR3tAxb0OEQOkiVGpr9U/u4VSfXQi1bZdtbmCbmRmlEbb9t27Zx39UBr9ru\nODw8jOHkZOxfsQKBQABehNAYbWB6rLxHti3T1tg+KXM0LRCFqJSv8rkwxIbB05qmnuicc8tXabPT\nxKOaDFIjP86ptLdp25y2+2k6K86xREMcB5EdUZhOpdIhMfIEwpAa3h9JZPkMST3GdcJ7lGiIKEdT\npXP+OR+REB4QsuvRhqpTEXVoh55b2S4T+xkoTyLWj370owBC64ffJVoDQmudtkPaOTV9l7btyT2B\n60GHQk219kVUbHYxiUlMzqyU9vRgYVcXdiYlTTsw+kKRqNjs/H4/RkZGHA+RLuk3b94851qm32jy\nRWooaiHtjZMaRNuAqPVkMCkQsmvoAFm39iNRlb/55psAQlpYal3Sf1OLsd9IJfzcktbZrw6eJUKg\n1p+jagjoAF35XaIyzgefA21GRGWyDfZDhEm7DRELETmpxNmmG1pmv0TFRCdMOSNqokaXKIT3yWfM\nZ0ciTNIjcU6JOLpECA/XH5+ZLgSlPd28B44PCAVIs13aPdkvkZ0msZQpUPy/Pq3olEjtwZQodXR0\nFAsHBvCXGzfC9PvxZx4P/vbqq/GuHVjP+SIqdUNJHBvRGG1zt9xyC4DxVE6RhHPJwGtd2pMnA53+\nKde6mx1vOnLBEwHE5NxKUWcnrn7nnVg84DmUpQcPhgKj/X4sOzhpNNj0ZOtW4Mkng69RLFGB7CzL\ngt/vD4uv0hoFCNkFqN35HZ0ORNE2HPYHhLQqERyv0TYrnWol+9EFnKl12QbtPlu2bAEwvrQhEZ32\nGOok6EjpXEBojnQMEsfHsWubnRyHRllEZbx/FhWn0O4ki0KzP6K+zMxMlHR344GXXoLp88Hv9eKl\nz38eAzaSoFdSetSo5fm8SUdOZMf++B0WWpHIgv8nslpq56NeddVVAEIIk/PAv1m4CQitB84pUYgu\nS6lj+hoEiw2REudUFytiyqIbSSWF/erIAm2r5HVuRKTHjh3DruRk3G4n4I8ZBjYZRpgNU9tj5XiI\n/vjKOc3NzYWxbRtwww3jCtQH7IBo2qLlfOi1rdMXOXY3L7ombXArGj+RRMVmF5PolkWDg1g+MIA3\nAoFpldRb0NHhxAPC50NhU9MpEU8WdnRgns3q0jyNDIaYBKUuI8MpI/Da6CiqU1ImpPOfjhibNoUX\nqJ9C9kdmfT2yDxxA+/z56Bd1N86kRM1mFwgEwuh3aDuSyEIXGeZ3eG2kuCq3pHXdJrUM7QfU5LQl\nStSokZ32iPGVaISaXNpEiLY0DbtGlPxcZ2UAIcSg7Um6bc4p467kOHj/RJpEDKWlpZjf14fHt2yB\nGQjgo4aBr156KY6qyH3AnZq7eu5cXG/HAwZMEw35+Y7dj/YoGZvGeyDays3NRUF7Oz7585/D9Plw\nlWni3+66C6028iTik+UHiez4LNeuDUZGkVJJI3/agyUdOp+VRskUba/VBAnAeCIK2YaOHtCoXZ4e\ntK1YFz7nvdLDqUlFgdD87kpLw67i4qCt+8SJSTNKpLdeE9RyDXk8nmCdZrtAvRUfj9H167HRDqBm\n+UogNL/x8fGY29iIa55+Gh6fD0tNE//16KOOLZfjlfNA0ZkzE5VrcJOo2exicvZkXm8v5rW1oTY3\nF432DyWSlPf2wgwEYFoWLMvCyqEh/HGKucwtubn4+X33oaSlBa2lpcHauSJodipS0tLioEPT78f8\n9nZgmmwXMTmDsn69U6B+dP364BFWbHJuQjJcFqbPq68/K880KlaNYRiYNWtWGD0QiQ0lKSJtX9q+\npe0nFE1XxP6A8BxU7d0iwqOml4hQIztqd2pZXYyE10lNTtuYRgi6zB1FF2uW/ekCJmxL2+zm9/Xh\nS7/7HcxAAP79+/HMbbfhgMqFJTobGxtD9dy5IcJFw8Cu5GR47Dalh5f9E3XydVdyMnaVlwfbbmlx\nUAfHKREVx8r3TNNEZ1kZ/Js2AX4/Ah4PuhctQrIdi0XPvCw/yDGxfz5DnTVD+w9Ri/To8hlxXdBL\nrtEPESjX4CHBccj++B3tQdSFZ9xE98d1wfmhTZPjIzKXNjtdbFp7mHUUAdecplQHwr3A/F34S0uB\ne+8NxtVt3oxXX30VwPji1TfeeKPTT8+iRQiIwvT1eXnoseMN9W9SRkDo+ZiuVzYqNruYnD1Z1N3t\nIDVMgRq7ae5c/MMtt2BRTw/e8PuDRVqmEFx9uqSruBgvP/wwChsbUZ+fH0SHM6ATT6upQUZVFfqW\nLImVbTxH0l9Whj995SvIqalB9dy5QSr+CeivTpdExWbn9XqRkZHheGzWrFkDAPjwhz8MIBQjBYRK\n0HFXp2bWtjpNwy1Rkrax6IwFvhIlEIHJfFL9XW0H1DZDIhlZSlEXg9Y5sURwRENudOScM22746t+\nvy4vDzcLauzdKSkYs2PydEQ6Yxn7Zs/GxoyM4N/C1idtJnrMHapOBzMJOJe0lUmkS7uNfg4NWVlo\nyMoKPnO/30EpRLVEePIemMkhPXgZdXW47G//FsbYGBZ4vXjz61/HQXtd0Gsuv6NPD3x2RJI6O0be\ns2a5YVu8VttpKXJOtYefCI42M94jv0M0K8lduYa1bU7nmer1KsdFxMr1v3v3bgChtUdbIctTbrVD\nUKRdmG04pK05OWjOyQmWJ+3sdGIUuU65LtzKZOqcaDeCTzeJis0uJmdPWnJz8f1bb0VJS0uo0PY0\nCCnPZ5lbXQ1jbCxoK/L5kH3gADABx1xMLiyJbXZRJIsGB7Gsvx/7MjOD9QHOkLTk5mKvihm7GKR/\n2TJYcXEIjI0h4PXi4CQ1IaYixV1dKOvqQktxMWZWc276whSwpqKiqK5lHC0SFZudZXv6GPj52GOP\nAQhVS5fCOpwa2vOIpyGt23Eh0jFWX8s2eRSQSesa9hOeM5GZ39EBzPIYK4Nl5/f14a82b4bp9+NO\njwf//803Y4cdQM1+dTUpIHRU4FFG15bld3TdCBm+ogOj+TcN0LrWA9t2Sy3ShKQ8jjAYnNQ+DCeS\nc8q545GSc5agapvyWM/UL50KJ+eBbR47dgzHCgux8ZvfRHZ1Nery8tCbkYF9tsOLR3a3ueI4GOpB\n88Nlfj8+9OtfO0HTh266yYkDjFQvg+tTp/7RzCLNLfyM98K1k5WVFUwBe+UVmH4//Dt34tkNG9Dr\nEipDE4kOvtfkFjqgXwrXAwO1eVzl32xLpz/KgHEmATBEjEfgffv2uc6DGzGndqq4BWJPJLF0sSiR\nRd3doZqagQDKe3om/1JMpi1Dixah9vbb0SvyrU9VChoaxoXFLDqLz0ymgJ2OWsYXg0QFssvJycGX\nvvQlfP7zn5/02rvvvhsA8NvfBgmQaRTWaVPaECu1gE4o1pXmiYZ0Qrw0/GoNSO0WKehZh8gA48NC\n9mdl4RbhONhPgzxCGpJtSvSqq4sR9WlSU+38kKEWbmExUjgvOklbOkr4f14jKeyBkFGdaJboUArf\nI4kBnR1sm3PLVyIeNw1PBFNdXQ0g5MxgH3yfoUzyeWrHABEVXzmn7fPnY61dTzhgmqjLzQ1DhXzG\nulZxpIpybilQvE8m0R89ehS7kpPxEdME/H7H0cSAbYnaGR6jEVyk9EL9ORBOKUUSA+1A46vb6YGp\ndGyXnxHF83np2rwSperQrOlKVGx2MQGasrOdEI/9mZnBYN9pFgEGgqlVpa2t2JmUFPWpVYUdHcir\nr0dzURHahUf1fJGe0lK8/PDDyKurQ8eCBWiOoCzOhNSmpzu1MfZnZQVrGdubUEzcJSo2u7lz504J\n1QEh2u/vfe97AIBHHnkEQHiqE20V1MKS4klrBh2sSI2l25grsg20JqZrXQbkAiHEoAMygXDXfa9l\nYWNGBo4dPQocPRqG6Pi3DIHhOObOnYuy/n58+j/+A6bfjys9HvzjbbdhQIWr8F6l7ZCfUTNTm/L+\nieR0CpScN53YrWnYNQVVYUcHPvXv/w6PTS3/7IYN2BeBRIFCZEGUqMlFpei0OU2ESbsTbXrSVsZ7\n0LRVfJ/Po6enBz2zZuFwaSng9ztU7EAI/eg50ycNHTzrRjZBNEw7J9vYOjSErfn5wefW2uqQK9A+\nKq/V/XNeiHR5T/pZy+/w9MJ1y/nRQdhudnKiTt6nJjHQNjq3wHqiU31KmapEr83uPKGNiSZZ3NsL\n0+8P2pACgUkDhs+llLa2xmxOZ0EWDgzgwzU1WCwcQRerRAWyC5OtW4Frrx1HG4P168ddQs/tE088\nAQD44he/CCCkXah96KmTNiqNOiKlodB2RxQkbXZEH5q6R9tGNLGitGNQi2rtqguraIJLqXU5jpMn\nT2JvRgY+bJowbTvOu2lpU0qa5jh0MK1OPNcV32V6FMfOsWoPt7wWABoKCvB+MdbKOXMipvxxPtg2\nvaITBZPqAjL0+nHuaOvVhKlAeGA20Ycu0sNx0SspkahG/px/zodOwXIrHqNtxZokkycQ2ke55nn9\n8iNH8M2dO+H1+3G7x4O/XrMG+1Sqn7a/Er3JNabRuaYe0ySmOihf3j+RtCbb0H1R3BB3pN/tZBKd\nm93GjeG0MWqzi0m4NGRm4tkNG7CgowPbExKCdj/FhRYt0lFYiJ/efTcy9u1DbU5O0Oakjq0xmZlc\ncuQIvH4/TABWIIBVw8P4zbke1DmU6NzsBG0M4uODf0eQT3ziEwCA559/HkAolYXaxY0cUaebUNvq\n5H6iFTdvLNvTFD7aqxWp/J8cI79DTakJDCPR8AAhew7RZ2tKClrz8oJJ2IcOOffAlCrem7TZ6dKJ\n2ubCuDJNU+UWC+XmzZNtSsqpzqIivEFbqrCpaoSpvcQcB2P0ZLqYLpKuyx9qKndNgSX743xreyfb\nZluach0IPTv9/DWNPkXTeclriYJ0QSQdj6hLkG6Ji8P9Hg8s28O/MykJTO/nPWm05GaPZX9yzQDh\nJAN6PbvZhTXphk4N1G3IcWgUfGGQdwraGFxzTQzVnSEp7urC/I4OnDh+HDVqIcckeiW3pQWFjY04\nYllBRBxB9iYm4quXXoqVQ0PYnpAQJO2MUqR/NiQ6NzsguMFNY5Mj+tC7vrY/ASGtoaPWtQdVe6ik\nfUF72divTvzWpfzcSER1zB6RFm0eHBf7kPdCzyTvX8c4aU8ukWBpTw/ue/FFmH4/Pujx4O//7M/Q\nbW94RBmS5gcIoR+3wj+USPF9/A5RgJ5jOR/6VSNw9kEblZwP7WnXRZ91PKZG8/K+OGYiN/bLMetn\nLPuOVCRJ35Nei24i10x+Wxtuf/ZZmD4f1pomfvSRj+BP6qQiSzq+k5SEd9LTg+0HAmFIThNJUKRX\nmOuea4zrgt/lvWrKf65NIITyeJ8sRKTp2iMRKMh+ppJt4SbR642NybSksKMD73/7bRSJClcTyby2\ntlARlkAAiy8SMoDzXYqamsZlbZRN8XnHJEqQXX9/P374wx/iU5/6FIDxhVymK7RvaOTgRp2jI+W1\nrUZ7mWQuqPYIaS/sZLY82T+9fdRuOnNDIxvpnY2Li0NpTw/ueeUVmD4frvZ68fLDD2OTralp3yKi\nIlpsKirCNXYEvt/jQVNhITx2/qIWjSi191bOHRGCRna0L9XW1gIIPePDohaC9mxrIk793DgP8tly\nbPT6EZVpm5mO0HejEtLjioRCNJ2YnBttA9P2V52V4pbZItdj27x5WO/1Bp+bYWBfZiZMGyXpGFO3\n+9MnEe1h1c8YCNmqdZlMjZbZBj3cMt6P8bE6aoHrIlJWhNv7co6mI1Gx2cVkZlLW2RkqbOP3o1AE\nt0aSjsJC/Ntdd2F+ezv2pKYGsy0ibHbnk2Q3NSGvrg5WWho6VVW0C0G6S0ocMtO3TTPqs2SiSaJi\ns2tvb8cXvvAFPProowCA97///QCAb3zjGwCAaybwxpJdo8pmOtVFkt3ihqhdIpVf1J5TIgtZyITa\njBpSe6S0Jp9IQ2n0FynezM02MTY2htrcXNxoF7bxezyoysiAaY+H/XJ8vIfExERUp6SgevnyILo6\neTIMbUSiEnejFI/kMdYojDmSRLPyHjV7iY5r0/m3OqYvu6kJN3//+/D4fFhlmvjhHXc4aEyjde0N\ndbM/6lhBXQRG5wzL5xPJw69RSaRcbtke0S9jFWvT01F76aXB+LrR0bC2ZdQA51na8eTY2a+ea/mb\n0LnjfE68hl5xvhLZyaI9PK0QJfOe+B2Z4STbdjsJ8ZXP0K3QuptExWYXk5lJS24u/v1Tn8K8tjY0\nFBSgo7DwosyTzK+vDxZyidmzYuIisc3uApHOoiJ0FhVNmaJ6OsK6sZsMA/tnYE8909LNQi42wm0s\nLAQET11MTq8s6O/Hkt5emCdOTKue8LmSqNjsTNNEcnKyA1nffvttAMBDDz0EALj//vuda/ker/3n\nf/5nAOGJ5jpsQjoXtMFbu7vZliaNlDVOCel5tGJ/OhxBH1PkcUkTe/JvHhPYP/vgMUaGa2gIz6OW\nDl/h2Dlu6VzQAa0ywHTF0aP4dkMDvH4/Purx4AvLluFt5diR39VHDE2qqkNh5NFVp6XxaKODR3kP\nPJrx3o7m5OA/bHvWm5aFpsREx3yhx6dNFfK56OO7vlaHi/BvOae6XkKkMBp9T/LYxjmjEZ8EEFwP\nDJTWx3mp8Nivrj3L10jr0y19TVIszevtxRdfew2m34/bDAOPV1Q4TM2aMAAIPXddBU+bd3QYmDQ3\naCcOP9OpiJEkFnoSkwlFphx5AwGsmeLCOlfSO28eKq+/fsJg25jMXCTZrDcQwKpToCM72xIVyM4w\nDMTHxzs7NXd3Vpt64403nGsZFEutxtAK0t/QOEqNTq0v6b+ZwK2No9QYutYoNZVEdtrxQYRCQyzH\noSmf3IzY2hBOIbJj29TsbkdVBm1SgzJpXNPxuBGA6vAcGTC9IzERD4iUo3fT0uBxofCOlBanEbAO\nvpaGaY2OI1GWa5JVWUeXc8nQE41WdRqSm2MgUliIJgbQzgc3GjG+TtavW4A5v8O1TmpzjoOIj/PF\n349cY3y2OtibokNR+CqdMZxf/taSk5OxPysLN4l6wntSUmDZz0MTWgCh3wWFjjJ9qtBIW45Xn7j4\nNwOUJ5Oo2OxiEr1SlZSEb73//Vg2MIAtXm8w5UhsLjG5OKUpOxtP33QTynt78brPF1ytbjKrAAAg\nAElEQVQXUUwpBsxwszMM468APADAArAPwH0AEgG8CKAUQCuADZZlTUqmZVlWWAoN0QIRHgC89tpr\nAMI1oiZ05HeJ0mSRGiIIIhhqIiIookeiISJAGb6iA1qpkajBqH2osajJpI1C2ys0eYCu+epmG+Jn\nHKsm0eTnHJcbStUpdjqspiopCVVJScF58PnCUqFkvzrhW9uA+B1tw3L7DtEx0ameH4ZYDLlsvkTU\nkZCVTkeSz0Lbs/g31w3vUV8nbVRuwcpSNImnW3oU2+f6Y1EgbcPV45R2XB3crG3bGmlr5AeE5oxU\nVrzmWGoq9s6fHyQqHR117pnzIOvo6sJPHDsRpw7w1yExke5vOnLKNjvDMAoAfAHAWsuylgMwAXwc\nwFcAvG5Z1kIAr9t/nzUp6e7GtTt2oPQiK1iT09yMij/+EXlCMcQkJjEJyUyPsV4ACYZhjCGI6LoB\nfBXANfbnzwPYCOCJiRoJBAKuxV64y0uNyeBhIrUVK1YACGr54q4ufMamJb/eNPHTu+926mlKBEGt\nwvap5YiOiOw0kpJajxqHn2nvryYNpTaSWonoTxe80d5IilvgrsfjwbzeXtz63HPw+HxY4/Xid1/6\nEnbZ39WohH9LG4q2a+qgXb4fKRVOtq+przRy0RpcPhftbePz0GhAo3o3WxnH7lZZXrZJkcHN2naq\nvZzas63TCoHQuogUOB6pNIAclw4i16Su2pOqbc7yGmk/k/3rgHpNKybHwXvSa58Bwpw3nh7kPMqT\nBBB+etH9ci3IOWW7kajcJ5NTRnaWZXUBeBpAO4AeAIcsy/pvADmWZRFW9QJwzWcxDONBwzAqDcOo\nnC7jaCSZ194+jup73mmIsVoyMoJ7uruxXEWgR5Ms7OoaF0ybb9dbiElMYhKSU0Z2hmGkA/gQgHkA\nRgD82jCMT8prLMuyDMNw3cksy3oWwLMAYJqmZVmWs4vr8oOy7J5OSpfetuaiIviZ3G6aqM/PD4uz\nkv/XmpFtEsGtPnkS36isdKjDP5WXh3dtraK9rLqAtfYsE0m5edvEnAIIj+vT96pTeWpzc3Ezg2lN\nEy0lJThqZ1DoVB+ZnE2hptRlKSMljdPz62ZP0bYZikZ6WoPLNija+6ZT83i9W3EYjo1rR5MosF+N\nzoAQQtL0VHpdajTmVmCaogsR6bg6N9ue7k8jJ10QSnu+5dg14tbEFZH6lm1wbeu50158fi7TxTT6\njRTnqOP73Dz+2t44VZnJMfY6AC2WZfUDgGEYLwN4H4A+wzDyLMvqMQwjD8DBiRo5ndJeUOAktzcU\nFKAtPz9I7X6KsvTgQSfGDIEALj9xwtnsoklacnPxX48+6pQl7CktvSjTxWISk4lkJptdO4B1hmEk\nAjgB4FoAlQCOAbgHwFP2628na8iyLLz33nthlNW0xy1YsMC5lvY7emgZ+0M5PGcO9i1dGtQY4rwv\nUQjb0FpGkzXuTErC7SLGbG96uqNN3Yr4AuGR87wXIjsZ7a2RgC4CrOPp3BAEtXzr4sVozcsL2maG\nhhztytg8TX4g7Y9sV8fmcc60Z1fbn+SYdDEWvmob1VSKIGuvm0YSGvHK+ViyZAkA4M///M8BhNbJ\n5s2bAYQIJNyKU+tnyH400tM2VDdiBB0/Fwlh6Tbd5kjbKnmvGiVK+5j2enMdapuYnls5Dt4fTwV8\n5bPVFE+aMEG2OxkRgibQcLvWjSx1KnLKm51lWdsNw3gJwG4APgB7EDyWzgHwK8MwPgOgDcCGU+3j\nXEttejq+dtllWDk0hKqMDFSJlLMLQQo7OjCvrQ37s7KCKDgmMbmAZUbeWMuyvgXgW+rt9xBEedNt\ny9FMK1euBBCidlq4cKFzXV1dHQCg02a0IMLTxXe1jUAiKkbXazsar5HenncAVNnZGR6BNKjd+F2S\nEy5duhRAuBdSF1qWY9aaSiM7bUOSwhgz2tv4HZ1JQo8qqbUXHDyIu37+c5g+H64yTfzLnXei17bF\n0XOnbYTazuNmZ9IoZNmyZQCAHJt3TXvdpZeQ7dMmyOekael1oRdNZgoAd9xxBwBg1apV467leH79\n61+P+1y2wUwFxrVp+iONhibKe9aoT2fr6NhGiQ412tJzq9cL50dmC7F/ndmj+9XecYn8OQ4+Fx1p\nwGt1EXG3mEGd0aK9sBMV3NFzOV0Sz1hu7EUqxS0t4+i9Y0WqYzJVWXDwIG6pqsJCFc4S7RI16WKG\nYTjxbSyAfeWVVwIY713i7v6nP/0JQEgL0yajY+N0tD0w3ksEhLQdbSCMG+J3iUakJuF32A8RwqWX\nXgogZPdicWY3UkSdA6ptUbqUoBv9N8dItKFjsCjddioPM03q8/LwPrtItd80UZOT42hXPgf2Sxsm\n50drcDkOvt5yyy0AQs+S889x0HZIpA6E7Is6NoxoSNPmu5X9Y470vHnzAITKLGqPMudhw4ZwK8vO\nnTsBhBh1du3aNa5/zTLiVjRnqnYlbTubiLZfe6UjZV9Im50ux6hF2xbdiGOJ5AzDQPnQEL68bRu8\nfj9u83jw9fXrUa0QthvZKZ8Rn7ses7bXusVy6rHqONTJJGo2u5icXekoLMS/f/KTmNfWhqqMDLTk\n5sZyXmMyqawYHBxXeHvF4CBenaAyWjTJ+THKmJwR6SgsREdh4Tgbz4Um5o4d8G7ejMDll8Nno+6Y\nnLrsy8yEzzSBQMAp+IMop/2iRNVmt2jRIgCho2BhYSGA8ZCax1Ue13jk5BGDsJfHTB6f3Cou6cr2\nNMDyx69d+7LqGSE6x3zFFVcACIXL6KpePBpJaK9DF7QRV9e81XU5ZXuaEIBj5Xc5HtICySMAj0U8\nhrANHRbAuebn0tnA/3MOWSmOx0keefk5k8rlMe+yyy4DEDrS8Nj2+9//ftx4NFGEdD5Jk8CcffuQ\n9MgjwOgoZsXH4+grr2B2cTEA4H3vex8iCdffDTfcACB0vNbmjePKOy/NHNoBoY9pE5FkatFUU7pS\nmBupAiWSU0WPk2vOLTBaBnPvio/HY6tWYdXICLZ4vdh34oRjstFODzkevse1wzY5h9rsEimdDYhM\nVzWZRL2DYvaePUj/8Y8xe8+ecz2U80KKOjtx5ebNmGdvahezJO/aBYyOwvD7gdFReO0Yu5jMTA6k\npuKFkpLzgopdSlQgO8MwEBcX54QnMIxjzr59yL//fhijo7Di49Hx059iyN7ViZh0ugmRHI2qDBGR\nGpTaRNM0ER1RY9Awr+uFyvaJPjl2uvg10mQYhSQ10Npe0+9og6xb8rxMByvu6sK9L74I0+fDNV4v\nfvnAA+i0DfETpTZpNKwT8jlmHQrhFnqyfv16ACF0xHshWmZbREslJSXOdxkWoymUWlpaAADvvvvu\nuHvQhJNAsFIdEKxPO5CVhQKmdsXFYXjVKueZLl68OGzsWvgsS0tLAYTTxDMwmSJRaqQ50u/rIFq3\n9Dld01VTrU+0PiJRO+nvUrTDSwrXML9DpKsT/90IUXXqH08eHI+uzheJGgtwD0uZikTFZhdJErZv\nhzE6CiMQAMbGkLhjB2AfE6NVkqqqkLxrF8YWLMCIHcV/tmR+e7sTTmL5fChubgaEJ/tciLljB8y3\n30b8qlUYveSSKX0ns74ec6urYeTlodc+Bp+KDJSVoftnP0PC9u14b/16vLdmDWCz/rrK1q3Axo3A\nNdcA9qYdkwtHomKz83g8mDNnjoOWqFVGKiqQHh8PjI0h4PWif9kyx/ZDTcBdnraAPJvSSVctl0Ib\njw4piaQpiAbcbBAyDCKroQGL/u7v4BkbQ57Xix1PPukE/WqaJPldjfA0EaebG54iEUJTURH8NiFA\nwDTRu3gxZtm2Mc4H0ZskV6DogFcdzMo2dGEgIBTKwQBwwzDg3bkTiR/5CDA6ipy4OPT94hc4aWt2\nooRi24bGfrIaGnD1U0/B4/NhqdeLN772NSd8hCEgGvFI2w1R4X//938H27zxRqCiAtnJyUBDQ+Rk\n/a1bgWuvBUZHgfh44PXXnedOZEfUw5AY2j91MRk5RxoN8xpNQa+pjoBwe6wOoo0UtuFmO+Sa0vT8\nOl1N9y1FI24dIqVTzeR6jUSEwPHRlquJNaREorqfqkS1ze5ERQVa/vVf0fW5z6Huf/0vHLMzK6JV\ncmpq4BkbgxEIwPD5kGFz750taS8owFu3346ORYuw6fbbg4QA51DitmxxbGbG2Bhmb9s26XdyamqC\ndFWBADw+H7IPHDgLI0UQ0Y2OBokjRkeDf1+Asnh4GBuamrDMPoJeTBIVyM4wDHi9XkfbUGOapgkU\nFOCEHaCK/n5Hu7MICTUoNRa1sKbsdvN66eTrSGX3dBlAIJwWqaurC1ZWFlZ6vTB8PgRsiql+O6hY\nl5ADwr3CmoZIe5t0mhAQQmN+vx8l3d246je/genzIb+pCYN5eY5thLYynbwNhNt6dFEeXqvnp1Rs\npkyTYwL+0aNHMbZmDRLj4mAhaDM7uW5dmAdcisfjQf+yZQj89reAz4eA14ue8nL47Q1PUyu5ERJo\nYseXX34ZALBmzRoAwM033xzWL4Dg0TU+HrDtw74rrkC3vTkzyJoeZO111LZfIBwFcX3SO00kwznl\nOpLEFvwO7c6akFSjL536Jceanp6O8qEh/M+dO+H1+3GXaeLbV16J39sIX9+Lm82Oa42IXtsKtS1N\nzocurcnPOB98n/NWb3MyypOZRvIT2fXcJCo2uwtFuktKsPW730Xmvn1oLChAf1kZYG92Z0MWdHQ4\nNjv4/ShsbATs4+W5kPfWrMHh3/wG3i1bcHj16qDNrrJywu8MLFyITX/zN8iurkZnWRkGFi4Ezga6\nW78eeP11YONG+K64Ata6dcAUkOj5JOMCgv1+LOvvx+/Pk4Dg0yFRcadjY2Po6enBAXtRU5PS/iO1\nHa/R2pQIhp5cekd1KhgQQibaTqJp0SnUKBLZMf2G6UlEjvuysoB164LXDg1h7ty5466TyI790jZE\ntEr7nrZzuNkoqP2PHDmCfZmZuN7rhWUjy/b582Ha95SkNLhOmZPzomOfqKl5/xw3KaGAEMrjq5Pg\nv3gxsHgxTNOEByF0wD6krYjz356fj/b8/CDaaWlxSB+IIHQhcjf6Lib8swwn0wvXT+R4WL8eWL8e\nr/3+98Cf/uScMLSNjgiPpwba3+Tz0ainoqICAPD+978fQCiNjc9+x44dAEIeZyC0hnVMKe1Z7IP9\ny7QuCq89cuQItick4GN2QLDPMLArORl++3MdZ+d2EtI2Zl3MnXPPdSKRl05D4zrh70JHBPCZdouK\nZXqMMWQnpKC9HSuqqtBYWIi6yS8/LZLT3Iz8+no0kUTzLEpzTg5+9eCDKGpuRldZWbD/usnvvLSn\nB2WdnajPzw+mjcXkgpQDqal46rrrsKSvD9tmz0Ztejrg4gi4UCWqNrva2loAod2fGlXGplGransN\ntQuRzvy+PnzkJz+Bx+eD3zTRffnlqLPRGBEEtRc1lrb3uGUsUOh9ZAZFeXk5Muvrcc0PfgBjbAyX\ner145zvfgc/+XGdDACFUQ88kryGS0TFSbppM0xxVZ2aiuqIiiAoPHQrLjiBqJjIt7OjAp3/zG5h+\nP24wTfzoIx9Bt90PvdZ81XFt8rlwbPyMSJtxb+yfyLzSPs5KxE3PLBEMr+VrpPKMnD8AuPvuuwEA\nH//4xwGEyCTuueceAMCmTZsAANdeO56FTN7LK6+8AiBEH8Yxch6IwLVtVSI7jpHzTVsmbYdE/KSR\n4us8EWpDZEfRBKwcj/ZOS68wx8jf0qa5c7EpPT34vI4fDytF4FZSUVN9aftaJGIC2YaOmiBxRnl5\n+bj5oi2Tz0MWsuK64Ot0kV1Ue2NnIoWNjTB9Pqf4zgrFaHwmZG51NYyxMXhsb2zm/v1nvM+ZSmlr\nK0y/36F6KrM32picWUncuxdzn3sOabaCj8mZl6hCdhR6YqhRpf2Au7qO0tZ0RHvT03GZoDDaZ2tY\nIOSp1bFvtBPwbyI9ZklIWwjbkAWluxctwjKvFwHbk9hbXu7Y3WT8GYW2DWo9amrahjRNlS5CDIQ0\nH+eFiIH3wD54r0QL1L7NxcW4UsxTQ0EB0my7CedSewF5D5J4kwiOdjwiX6J12l2J6JgVIe2xHBvv\nlwjXrTi4vIdccfR+5JFHxl1z3XXXAQCee+45AMDXvvY1ACG6diKtX/ziF853/vCHPwAI90JzrvUJ\nQJ8QgPCMCJmVklJdjXmPPQZjdBRzvV5s/973nHmQ98KMEq5xbTOl6Bg+t5KOHDtfdSkCjo9/y9OM\nplTSnlVN7URbnkRlbIM2df4eysrKxt0D57S6unrc+OV9azLXqUpUbnanQ9oLCvCvH/sYChsbUZ+f\nj7pp1pg8FRlYuBDvfOc7yNy/H73l5RgqLwdOQznHMykdhYV4/lOfQmlrK6rnzg3W2b0IY7DOpqS+\n+66TGWT4fMjctw9wCeIt7OhAaWsrWkpK0GEr3JnK4uFhp8xAjX1kPJeS8O67SNyxAycuvxwnV68+\no31FxWZnGAbi4+PD2B3o7ZLsGtzNqUVYjIeagt+dNWsW+ubPxyE7/mut2OxoG9q7dy8AYI9NMkAb\nBLUeUdL8+fMBjLfJEIUxP5K2s/bERGDx4uC1jY1ODig1mps3lqhLF7SJVOpR2rmICIg26OXS9jVq\nZcZzyRit/lmzsLu8HGlpaZA+WmrmSPTX0lNGLyIzWD75yWBVTSIrCm1mL7zwAgDgzTffdD6jPZb3\nSc8cUaumASd6+sAHPuA6Pik33XQTgFBmxU9+8hMAIaT5u9/9zrlWE75yHRDtaE8hx+dGNEnUw3VQ\nW1uL4fR0FHu9QXuyx4MtcXHOdeyzpLsb97z0Ekzb5vy/770XLfY64O+B4yGS4quMJuCamjNnDpYe\nOoSn9uyB1y4g9fV167BNkYvqjA4gcv6ujq9jX2kumyjXIWMGTdNEWm0tir/5zWDue1wc6n/0Iwwq\nwlpp9+McRWJKmUyiYrOLSUwuJumbPx9v/c3fYO6BA9iZmIjOoiKgoWHcNTJm0vL7UdraOuOYyYpD\nh+ANBMYRb24T4UNnWzL37Qvlvvt8QZYa23FxJuSi2OwK2ttR2NiItnnzggvrHEtuSwsKGhrQUFCA\nbsH6EZOLR4ZsM0dnhIBp5jkzZrK1tHRcadBIsvzIESwZHMTOxMSwGsfvpqbCZ5cG9Xs84+zY50IG\nV6yAZee+W14vjlxyCXAGzU1Rsdl5vV7HRQ+E18WUsJwQevny5eNeeUzUdTFLurvxoZ/8JHgc8Hrx\n20ceQYK9wbB9XZmL32X4BMcmj348uvC7NKbrFCsamRk8WdjRgVt/8AN4fD6s9XrxqwcfRI9KCtfH\nVv7tVoGK4+AxiWERGuLT+M8j8x7BD8hwBx28qqs46flxSwf68pe/jInk6quvBhA6rsl70fU6NDmm\ndthwvi6ZIpsKAHz/+98HEDpe6/AfIFTdjvRTmlSC19JBox1IQGjOeC0N7jqcqLGxEUA49VFNWhp+\nevfdmNfWhvr8fLRnZGDYbkOni/H4eqnPh7+vqYE3EMCYYeBzCxbgDRFGtBXAX61ciYqREexOSUG1\nx4OjKhCY4mb8n6guLBAyKekaJkDIRCHJRHtLS7H/mWeQuns3moqKMJScjA47n5xHdDrJ+B0gZEY4\na3VjzxcpaGgYl0JV0NBwTgNn8+vrg4nuNg1TUXMzdohSkRecxGiTTllImz9Vr+Oq4WHE2cdUWBbW\nHj2KN5S9tTolBdUpKdO2d50pObp8OY4uX44hYf89UxI1m51bqo1bhSadHD1HsaVqupm2efOwVhwH\nWkpKwtAXDeE6+VkjPGl4JZLSgZY61IN/Ey21lJRgNWmYPB40FhQ4GpAhJZqGSBNuylQvXRGNGpQh\nDBy7pmlvE15iOjnYlq5qRaeDDuKV46QRf5y40CZxw2P6lKS6X7du3biv0+nDUBy+8n0+A4YvTEeI\n3kgsIQN42R7RuA4q59rjeIim5TrVKU1EcFwXmkyBJwCJZolqiGT4zNgmESfX4J7UVNxtH1PHDAM7\nEhMRpzY1/j64Xjh29kt070bUwN+Jdlhxvni6YsB6n+AOJArm+mToEU9EXIP8DbB/PmMgtO7cCGin\nIlGz2Z0p6SktxX889BAKGhrQsWBBMIVKFWo+HVLW348lfX3Yk5rqZGq4Se+8eXj54YdR2NiIurw8\ndBUXA11dp308M5HyoSEsHxjAvszMCe9lUnGjTTrb6O40IMuc5mbk1dejZ9Ei9Nme+WiUA6mpeLyi\nAmVdXahMSsLexMRzlg5W3NWFSw4cQF1uLprsjfxcS1RsdoZhwDTNsHQgHSwJhLQcNYRGLLrYh2VZ\n6C4pQQO9TsePO9qVWkVrNS0ynIVCbX/o0CGUDw3hq1u3wuv348Omie998IN42x47tT+vz8zMRJvH\ng+2LFgWRUl+fE5BLFKhd/Tp4VY6T90u0o+uyEnFxnhh2MyTKJrKftLQ0LOjvx1feeQemHZ7w93/2\nZ2izY7yI9NxCYJjSRQ2dmZk5jjYJ8fHBv21h4rt8trQd8j22pVEGNbxOZwuTCZDl/fffDwB47bXX\nAIynq+JczZ49GznNzbj1mWfgsQPFf//YYxhUaJm2KlmljfPLeyFiIaIiLTxth0Sa8l6Iat566y3X\nNnXhn9HRUWz3ePAHErOK58Pfkq5Pq+2ybpTn/Ey/EuFy7ojo5vf14RO//CU8Y2PwmSb+5zXXYIeN\nUrnWdIEovab42+TvXMoFSd4ZjZLf1oZ1b76JMmHQXi6oc7yBAJZMRP0d5bKktxdmIADTsuANBLB4\nJvdC2qTvfGfcRnPW5DQQckobq8fvR94UiBUudiluaQmmaiL4e1gqjqLnUqIC2VmWBZ/PF4ZkNP0z\nEEI3TNKmtqMGoH2JNiuiMql1aS+gJ1V7P2U6FhBCNPP7+vDh556D6fNhvceD7996K145eBBvezzY\nYNtKfIaBt03TGRdfdQoaENJiRDBELNrrqm0UEg1RMxLJyfQ1+UptTG+1TDhnv/39/dg6axb+3OMJ\n0gB5PKjLzQ1LA6JtRqJDzu+jjz4KAHj++eeDH9i0SZTNdoWvb3/72wBCpSfl2DUNuUPTb6MDTZ/k\npv0BTIgs6cUnGpFpa7SfDQ4OoiYnB5cIm++B7GznXkkjRVsu16QcI9GZLqHIdcr7JzqUHkzOMxEc\nA9g1QYFOH5POB647TSaqU/80TbqUSEQDtBnqIj77MzNxhWnC4/PBZ9sOT9o2Oz5DzgvtgLowlSZK\nBULrj6c79vfeFM1SUbHZnS8iPbtmIIBFPT2Ax4P9ycl4dOVKVBw6hL1paTiQmgpEceHpos5OVOzf\nj5qcHDQqx0JtejqevPZaLOnrQ0NBwTmxt8xtbEReXd3MabIEIeep2uy6iovxywceQHFzM1pLS4M2\nVvFsizo7sWrfPtTl5qL11Ed6QUlbfj7+5c47MaeyMpSWJvKoz5VExWZnWRZGR0fDqHt0UWQgPKWK\nuzvTlZgCRgRDtCDRGm1jOr1FFzAhouB4OhYswKW2J9Vve1JP2ijxP/v78Z8AzMFBYHDQ0brUzrSd\nSWRHwgN6regRJLEj7TeDirHFrfCPLgBE7Sdp2wFgwcGDuPeFF5zE/x995CN410YZ1JDvDAzgnexs\nWKOjQGfnOBsWEEKTclwcE+1Lt956KwDgqquuGnct07J00j8QRBDZTU24+R//EYbPhwqvF6898QSO\n2LYhN8JRIEiJH1EUstTCGL133nnHeY9rhaiDISBxcXGIQ+jUUNbfj1t+8QsYdkrX4Nq1QY44hNCO\njpXUpxVNciA9/vw/7XxMW2ywsy2ItLRXVtrbZLoYEJrvSESYGjXL97jGSPZAVMz1wN9PV1cXugA0\np6cDlgUMDztj531qNM7vEjXTBi0LQ3FMupj8VCVms5uG9JSW4uWHH8bWm27CM7fddl4SXc5ra4Pp\n9zvUV9FG6ZRfXw9DFNzJjWIKpDzbnse5XCmO9TORuMpKJP3gB4ibhMI+JtOTqEF27733Xligo6aB\nlu9R+Bk1KdEJ7UnUdtKuoWm0NQ2OtoFIhNeWn4+2/HyMjIwgDSGPFO1/1DYkJbzhhhsAhOLKpOy3\n+e6IdtgWSQ2IypqbmwGEbI3SG6vvnwiLthFNw1Ofn4+rTTOITm1KJ/arI+N5TxrpuhX+0TGLRKVb\nt24d1yYRHe+tVmxmx44dQ//YGFbbnnm/x4MdiYkOWue1RF58bpyfUxGiIhkTRtsY75MIRqPnd+Li\nUGHbpvyGgT/5fM6caep07e3k2IlkiOYT9+5FyoYNwRSquDgMvvgivDZy0uiQbernIX8vOklfUz3p\n8ocaPQEh1MX1oe3EvFbHHS4UwfKkSePvkqcaxg7ymfJE5JalQ9Fe4alKVGx2MTl7QuqrkpYWNBYW\noi0/H9NLujmz0pSdjRc+8xkUNzejLi8vSG0UpeiuNS8PP7zjDmRUVWFfZib2RgqBmYZ4t2wBxsZg\nsL4sw2dOk5QPDWHF4CD+5POhyqV28IUsk252hmH8BMCtAA5alrXcfi8DwIsASgG0AthgWdaw/dlX\nAXwGgB/AFyzLenWyPizLgmVZYd5Y7tzybK5p2KnVdNxQJPsO+wPCEZ2O+dGknrJwLzURNZCOQXvf\n+94HALj88ssBhKLxpfC79EzxfnVRZs4L+5SZHlpT85W2QiJd2n3i4uLQkpvr2Jbg8zkojKiM/eoI\nftp9OE8y+4FjI4IgWtSZFbxnN3ss5/tAdjYOrF4dHPuxY2HFedg/7bIyz3e6wnxcmZLFuEeiND5b\nTebJecvMzAROnhyHZOhlJUqsqakZd9+0M7J/2uc8CxZgob2GAl4vuhYudGIntfdVz6EmtJXi8XhQ\nPjSEb2/dCm8ggA2GgYfLy9GuTk86P1u+x3XQp8KRiNboJWZuLMtryvuLVOpAk5yyT7nW+V2dYTVV\nmYrN7t8B3Kje+wqA1y3LWgjgdftvGIaxFMDHASyzv/NDwzCmhzUvYCEVd6J9LENMSs0AACAASURB\nVLtYZeHgIG6vrcWis0CVf77J8VWr0PDjH6PnoYdQ/8MfntbC8MsGBhyKJ69l4RIVYnUmJae5GWte\nfRXF5zBbaFJkZ1nWW4ZhlKq3PwTgGvv/zwPYCOAJ+/1fWpb1HoAWwzAaAVwGYCsmEbeIbTfhjq81\nkNZm+nOJQnTJQE0Kye/oEocSLdKjSy3PNmjfIbIh+sisr0fuZz8bJCqMj0f3z36GbvszIiYiK3r7\ntEZlVLmM5+KYiOgY+5WhigvpMpEyK4GohhqadiTOgy58xPG6sV9wrLwX9kttf8noKO6zC/z4TRP/\n/OEPB9mREc5iwXvifBANED26IZgvfvGLAIBnnnkm7DMghM4ff/xxACHvsfQKazuvJuLkK585sx+I\n4uVYaZOibZAolGiN5KFcJw7iWbIkSOm0Y4eTV8t1qIuaTyR8tocOHcL22bNxp8id3TZ7NuLs++Y6\n4m9Cxq5xPviezqelcF64BmmfzW5qwk02088ajwf/dtdd2GyvJc67zp5yIxHVpLZnq+BOjmVZ9B33\nAmAWdQGADnFdp/1emBiG8aBhGJWGYVRqp8OFKLO3bQtRcY+NIWH79nM9pHMi2hu8MMrygi9kOZCa\niicuuQQ/KyvDg/PnnzWbXW5dXTALJRCA6fdjvm0mONsyYweFZVmWYRjT3q0sy3oWwLMAYJrmBb/b\nnVy3LkRUGBeHEwIFRJKshgbk1NRgNDV12qSjBe3tjhNiqvULFg8PY8XgILbEx6NaIOHTKS0lJfAr\nb3BMzp7UpKWhJi0tzO52JqW3vBwBrxewaeibi4sBO7LgbMqpbnZ9hmHkWZbVYxhGHgAmv3UBkL/K\nQvu9SUUeYXRqjUR+hLU8RuqqSJoWisdXSeGjjyOS5162xc+7Xbi22D+DZXk8Yr9cTDwaxhUWYvgH\nP0DK7t04vGYNjhYXo98ODuW1TOGyLAuZ9fX44FNPwePzYblp4sXPftapFyChPY/a0gFS0t2NT778\nMkyfD1eaJn5+333OZkmjujymGIaBhQMD+Pr27fD6/fi4aeJbV1yBzbZRWaerudVc0HV8aYDnPPHI\ncywjAyO33IKyri7U5eZir8cD2PfPZ6kDbjm32jnFo3KB2DB5zTe/+U0AoeMhnxNJNDVBgww651i1\n00mvEx7n+dzkONgvA3B1yAkDg+vsXFv2IckmON+aLFTXeNAGe/l74f95f+yHz4XjY9Av36dDBQgd\nKbUphM+FbTIFjsdsmkOGMzJw+LOfRVFzM94yDDSZpvOZrhSmiQmk44jrwy3EZipyqpvdfwK4B8BT\n9utvxfv/xzCMfwCQD2AhgB2n2McFJ0dXrMBRkQs6keTU1DjQ37IsFDU3A1NkZi3r7BxXv6CkpWVS\nZLj04EGHzMDy+7F8YACb6bE9zdKckxNioTnNRvK81lYUNTWhJifntFXkisnMpae0FD2lpWiylc25\nkKmEnryAoDMiyzCMTgDfQnCT+5VhGJ8B0AZgAwBYllVtGMavABwA4APwF5ZlTeofZrqYrmnphux0\nIKVGdPyb2oaIbtGiRU4b1FBaq+g6tRyPri8LhLQatS0/owZlFS32xURvGaxJw/POnTvH3afP58PR\nxEQsFcG122bNwiFbw8sUmgzFNzc0NITdKSm4XtXMJdIiEpQ1XxMTE7ErORm3myYs+zt1eXnIUNW0\nNOKWrn/OR6SUOyIpnd7m5ighctEhFnyW2pFBhJXT3Iw/f/ZZeHw+rDdN/Nejj6LHRvZ8DjSeMzSE\n42oXdiSmMnE9aFTGdcP1QUQjw2x0wC3XX4NC85w3hqhIpwPnXVN/6cBf7UCRc6rRsSaZ4Jyusgvd\nsC95eiAa1s+dqJhrkPc/ouicZHsMjCda1eFmkYKwZf/6FDFVmYo39q4IH7lGOlqW9V0A353WKGIS\nJp1FRfg/99+P4pYW7EhICKamCVqpiaQpOxv/cuedWNDRgYaCArTl54/jNnOTuowMfPvKK7Gsvx+1\nublB5DXJd6JNHDom+weTV18/MyKBGUji3r2YU1mJgRUrcNRmWInJuZWoyqDQQbSaxBIIaRWtoTRV\nDT9ngC7JEuV3qAl3794NIKRNdGqNpk0HQlpfp2lxHESDTAUjbZDURrTnOdQ4dvoYtWvHnDlAQUHw\nut7esIBhIISCiAJok/v9yZPAnDkYaWsD2tocbauL5sg5658zB28mJ2OWzwf09jraVgezajIGOQ5d\nuIWiU80o0iajCy3p4G4daKoT0I/HxeESjweWZSFgmqjNyXHmg2uJY2coiJtNl+EitFtxzvRJgOPl\n3xxP4t69mPf5z8MYHUVufDzaf/IT9Cqkx3ugbc+NOJaIlWuKz5DfZVs6yV/aY/mcuT44V1xLTGvk\nq7bHyfnQJQ9o0+Szp92PBLFyHERy/K6mhdJhX7xOolTOg752qhJVm11MYjITacnNxc/vuy9ooywr\nQ3dJyTlJhUvauTNUD3VsDIk7dgBXXnkORhITKVGz2RmGEYbSNFkgEJ4ao1PK+DmLgFx//fUAQmSN\nuk8glBZEzUktq+mfJQrRhX4oHA+1GrUw7UDyXjSFvL6WmpOvtImkC8dBJNICokbahnhPRDLS66fJ\nMSnUukQFRDK0GcpAbZ22x/Y1WtYBuxLpaZuQJvEksqbdi0iqRYQxbGeS/J49wJ49DuogsubcsW2+\nStsn74vt075JdKKDsIkAaQ/0lZcjOy4OsKnce5cscdYYbadcj5wHjcyB0HPR5KnsX88X516ehLSH\nm/3QhkxbHVO7OMdyHKRP49j5DNk2k/yJjrle5ZxyPbBd9nNQsRhr5OsWOOxWDGgqEjWbXUymJgsH\nBnBJayvq8/JmTDG1/MgRrDl8GNtmz77oksLdhIV1anNygiSdpyiHly1D07PPYk5lJfrtUoGwnVAX\nm2Q3NSGvrg51eXnnvCB81Gx2JAPQ7wHjd3dtz6PWpxbmtVpzrV692mmDGpIakbYyekW199Etnkcn\n3msNxO/olDR5j5HIEIksqEH5+arjx/GZt94al2pFpmGNDIjSqGW1rarixAk8VVuLuEAA93s8eGzV\nKuyyP2NbHKuOZdQlJ+U17CdSGp/2xsrPOVe6XKa2TWn7j/Qc6pg8nWrHuaRtkfGJ83p7ccv3vw/T\n58Marxev/OVfwrDXEMfDNjku9ss53yk2tNzcXOCyy4IofcsWJ02MKIi2ZLbN2EUZ00kvqEbvvEe+\n8nlo+5f8rrZ7sl96kol8ic6kfZrzHqkwFdeUJswt6e7GB/7hH+Dx+VBhmviPhx5Co/170aSiPAnp\nPiRK1eli0y2SfXGSd27dCjz5JFLsiljni8xrbz9tqVYrh4acgsreQAAV6gh7sUlefX2Ict8upn6x\nSvyuXSj79a+RPkNqrewDB0JpYj4fCu1Qq3MlUYPsAHfaH2D8Dq5ji3QSPz+nR4ga1LGxifJ6a+Pi\ncOjllx1PLRGejjbXhbCBEHLRUfZEizquSRc+kZ/pQjMaDbH/luLicalWnWVlYXGGmkpet8HPdyUn\n4xMsEuTx4N20tDBbKeeM98g2dSK825g1lROFmlvHsElhP3o8moqL45LrQ68h9kOER/ubRhIZCQlY\nzdhEjwd7UlMdmxzHwzVFBK69n1w/QDhNFJ8x1xrj/LhuSEwqbbq0tzIWUCJYKeyf9y5tqeyX6JPI\nlnOpi83P2r0bCXfdhbnvvQcrLg4NP/5xWFSCRmXatsrn0rVoEZbZaWI+jwcHsrOde+Jz4JjZtj6x\nyagBfao77XF2F5zI8noA4rZsObfjmYa0FxTg3+66C/Pa29FSXIz2goJTLmRyIDUVj61ahYqREbzL\nIkEux9NolyUjI1g1PBwq7HKKwiIxCzo60FJSEpzbCKwahR0dKGlpQVNR0YyzNFKqq5G2dy+G09Ki\nogC3+fbbAD3JPh/mzIAafqCsDP/9xBPIralB5Zw5wbk6TdT1pyJRsdmZpom0tLQwD6cuvgGEa3tN\nK629bEd1RXRVXi9w1VXItm0jtDlQo2uUIAkH2T4Rm7ZBUTPpbABps6MGJFLS+b7a0xwIBNCalxdK\ntXrvvbDMEW230Z4zGWdXlZSEqqSk4JjGxpzx6Ah9jpnj0zYkKTo+iv1pyi09HvldneGiCR2JNNaO\njeHJXbsQFwhgzOPBX69Zg/02quF3OP9cWzrzhnaxlpYWUO2Zra1Aa6uzHkgxtWDBAuS3tWHD88/D\n9PlwldeL//vFLwaDtjEeTdMGx7niCYOxaOnp6UiqqkL544/DGBtDideLjd/4BvoESuU80P6q7W46\nWoHPT/6O+Cx5LfN4GavJnGEirozVq5EVFwdYFgJeL4ZWroTHpr3nPGgk5+Q92+uDKNoptVlWFiQp\n7e935lufeLT9jR5/Oaf8nejf+lTl4rPZicLNR195Bf7LLjstzS4ZGcHHW1qw9DRQc0ebLDt8GHe3\nt2OFVhznWLTdcdVZKF9Z1NQ0zraXb9dSOBVJ3rULxtgYDLu4UHYU2JBHL7kEA7/8JdoffBAH/umf\nppzLfT5IVCC7lJQUfOADH3BsDdRojF+SRVl0LJ7WDEQOB+yFs2NHkIdAnu/TFywAFiwI2lUaGx3t\npqndNfqQWkZmaiw7fBh/t38/4gIBfMLjwZfXrEGdbQvRsVCSsYIIRefZUjOyD9p93Gxl1Po615B2\nJd6TjvqXtjRqWbbL55CQkIBFg4P49r598Pr9+LTHg6+sXYsqG/G4RbBrCnuNRrQtRqJlHT/FNjRJ\nJTX69oQE3CXsjtsTE8NKSBLt0Nuoi4nzeXCO5Th01sGJEyfQWFiI9SyabduhuH6kl1qjDm0zBYAj\nl1yCQFwcPGNjCHi96CwrGzenOr+Wdjd9D9oeLNvgb4n3Se8rvdDMHuL6LC0tBQoKUHXppcEGamoc\nxEZkx/Fw7fG3xlde3y/SG7WXNVI5BaJSjlcShOqMFc1CM5lExWZ3vsvqQ4cchGEFAqgYHnY2u/Nd\nlg8MhNhQAgGsHBqKmpi86pQUfGn5clSMjGB3amqQg2+a7LXTlc6iIvz6c59DUVMTGgoKgmwyyhk0\nVTm2ciVqbNqv/VlZ6C8rA2ZQKS0mE0vUbXbz+/owv6MDtTk5qJn88qiQPampGJOezSludAsHBrD0\n4EFUJidH7ea4PysLPpsNxefxoEqxrJxrqU5Jwb4I2SyTyfy+Plzd1IT9WVnj6LUnE9IVRcoDno6Q\n9qvf5rU7W1LQ3o7i5mbU5+dfNFRYUbHZxcfHY/78+ag4cQIf+ulPYdoV1o+9732oy8hwEpGBUFiI\nNs4SWhP2VlVVAQhB7UrhVeIxjccPQvl2RRfNNnmMpdEZGH8c2e7x4PGKCqwaGcH+zEzUpaU5xwdd\nt5NHsoUDA/j6pk3wBgK43ePBd66+Gpvs/tgPj3iaJkka9TkfhPi6TgOF0F+nscnvulWrejchAV9f\ntw4rBgdROWcOagR6kiEOnCvenyZP0JWg3Oi79HzzHmis1kcgNxogTcjA7/DIwzGvPHYM9/7hD06A\ntv/yy1Gnjv50UDhVz+xjmg545edy89NklHLtyM914r28jsdWPit9fKXoEAw38k5JDlra04O7/vM/\nYfp8uMLrxa8efNCpxcEavLIWL+dM3yefEwlIdXqbW/1amgZ0KiLHx9AYzrF0hunQpyPT5EKMKgdF\nQUODY/z1+P1YdophFedCDqSm4oWSkimHPyzr7w9WerIseAMBLJsifdN0hY6TZerHNh2pS0/HS2Vl\nqLEj5afS38rTgHomkmWHD+MT7e2n7BDStTBWXESVzhZ2dYV+Zz4fimwuvQtdogLZAUFtXZubi7WC\nQHJPSgree+8911AHbfjX9FBEFkR0RHoAwkhCdSAu0ZFb6AeFGlhTS0njPhAytGpKm9rcXPgOHAge\nDw0DW2fNCquKrql8Is0bEEI/MmxlycgInty9G3GBAO62nQvbXQIxI1EocRyR6MilJCYmoqy/H1/d\nvRtevx93ezz4+rp12GmjI7al05UkKtFBurqWKcex/MgRPGk7hMZshxA3Yh2apNEX267Ly8PVDND2\neFCVmRkxWNWhwLIVEhPitdNHiqYnY7oaQzxI1sm+mHIljfpMkueY+Ww1/bo28kth/zIsZH9WFm6i\nk8U00VhY6JBPbLHjTqUzjilumsxWO6M0tbxEmPokpksj8HejQ4PkKUaHMenA+ckkajY7AOgqLsbP\n77sPubW1aCoqQu1ZCCU4m7Kgvx+LurpQY9OSf+uKK7B8YAA7EhODiPA0ozsZmkHnwnbG6J0BWdLX\nN86ZsWJwEDsFT9zpEn1fFcPDU0KdUtry8/Hshg3Ib2hAfV4e6s6wYyOapDknB7984AEUNzejqago\n6GS5CNIFo2KzGxsbQ1dXF9LS0tCfkIARO/DR7UyuA0ypPSRRoHzfTUNQI2nXPrUPbTVEZ7SdSNob\nfocamfRLmiSSrv6S7m48/NprMP1++Kqr8fSNN2JbSgqqU1KCdsWTJx3tq0MwOC7eO8cHhNCODsr0\n+/3Yk5o6LjSjcs4cB2ENC0Wiw3Z0crpGOrSDSoSXl5eH7QkJ+DCRuceD6rlznXnhmKnZZ6mEcCkc\nB1EOURCDVN82TdxlGLAsCz6PBzsSEx2EoAOSNbUQQ3IOHz6MdgAn7ecj50PbkXSoA/vidzhfki5f\nI1hdJIdIinNL5Cftfvy/pi9ze9ayT/m5PrUQLe4sLcXORYuCc93f79ivabeW49UoVa85nVbJVzdq\nNl0cSNtY9QlA2pb1fEyXCCAqNruLQco6Ox0bEQIBlPf24v+1d+7BUV13nv+c7kZIoCdCgAwYEAhk\nkAEDxsZ2xhhnbfxM2cl6k9p44k3WqS3PJN7Zsb12nJlMUpNMVZKdeLMzyVZqZ5J11mPPlh/rx/g5\nMZ7YDu+nQCAEAoMAIR6SyPCUuu/+0ffbffRTC4SRUAv6W0U13eq+93fPPfec7/md3+/7WxE+aAOF\nraWlPDFvHnPa2lhbVMSW4uIBncG3lZWl2OqmUaNoGDWKc5dx7onJBw5QvW8fq0eOTGeLeKgrLOSR\nGTNYePIk68MJY6hg1rFjXNPRwfqSkiFl96WArBjsjh8/zrp163qkVolB+KytN/+EHeVtmkwm/4H9\njdiHZn/NYDp/JvFOfbfE+IzEWPTbHRMmJJP4w6To9cXFqdnd7rYJmg2V2jMug36d9e/p/PKjLDt1\nimUFBRTm58OZMz0EEiDNmCyTkwCqzi/mkikhXWlA7xw7xjt5eeR3dUFra6qdRprYPH3uF6kpKytj\nbFMT97z+OpGuLu6IRnn1G9/gjbAtxfDa29tZHYuxvKAAOjtJZFj+q5+IyahP2cI/QiZ5eFsAyO4Q\n2t1H33dn0+YKCgqY2dHBjz1f42Nz56Ykuqy4KqT7rBikjm/9v0Im3671nx0ybaVjqJ30Pb89tMIS\n49V7y57tc+KvUHR9lpXZAlq2yJDPdPWbTyvxlBWD3aWIqa2tzGhpYdeVV7Jr3Dh2V1bys/vvp6K+\nnvqKCraXl8MF7JBeqrBFc8Y3NkKWxfZ9Wsxpb+/ma5zT3p4a7HzUtLUx++hRlgVB1gRwXwrIisHu\nzJkzNDU19dhRzFToRqO6FSW0Ek9WKiaT4KSOL1ZWXl4OpGVvrN/Fn6k0A1t58dLSUqoOHuRP3nkn\n6Z/bsIG/uvVWNhQUsBvYm5cHHR3Q0ZFiVLZgihXaFKPTqz/r2qI48k2JpclnOH/+fACqq6uBdIwh\nwO7du4F0YRXNvgsWLADSAqiKgVoY5hP7TFTS3a++miwh/MILLwDpnUuxWLWbEtL9WKy8vDx2TpzI\nfM32sRi/nz+fqUaKX4w/k0/XMioxXDEXXbct/OKzItuH1Hds/GOFEU71U5t6FAM6cYKV+fk86PlQ\n1xcX99hxn3f6NH++Zg2xeJwvhezv43Cw17VYn6qeF/Uj/1rUx22xcrWd2l/H1nufNaqfWp+lFczN\nlFYpnDCV6nqLprC/zVRGNZPwa1+QFYNdtkGyQeuKi5PSR+eJ6fv3d/PPXXXwIBv6uaTflJYWqvft\nY+WIETSGg3RfMWbnTqZv2MCeqqoLkh8fCByYPJm3H3+ccQ0NHL36ag5XV8NZ4sBmdnQwp72djZKp\n8j6f29HB8ry8T51h0d/YXFTEf50/nzltbawpLMzYt2YeOtRtR3tOezsf53x7/YKsGewikUiPXchM\nhTU0a1lGZRPMrexNJqlqzSJ+lsOsY8f44ZYtxMKk/icXLOBDU0LQP75mRD+6fdOoUdwZiUAiQadz\nrMjPT+22+YzKJtLLditSqfeys6atja+/+irReJzbnePPb7wxFT+nGVzXJn+bGN2UlhZueeYZIp2d\nxGMxXn7kEXaa2CdJ2Mu/p/MvWrSoW/v5mDt3brdXXdtzzz0HpH1lYlhiepXeJo2Ya/PkyTBxIvmn\nTkFdXQ9fjXxo1wcBfxrK1HdFo/zo9tvZOWYMU1tbebyujlgiwVciEb73B3/A8nDA0HltjFymGDUr\nAGp3Pe3qwt+11m8sY/kgFuODESPIi8Xg+PFUn5IIxKqCAj7vsb/6igrKwn7QW7yljbfzGY9lQ73t\naFqBWt9XZoUY5NvWsW2fs+VMoadYqmB3dO01+c+I9VFmumdnQ9YMdtmCa44dS2Y2kI5N+/A8Z9Yd\nFRX88LbbqDl4kN8NG5aMoevHbJCqvXtTzDEIAmoPH2ZlqOpxLqSksoMA4vGkVPaFFO5ZvjwpiLp4\ncVI+6yJixoEDRMN7RSJBTUsLO8eMoaalJZWdQjzOzEOHWJ7BN5aN2FpammJ/deXlbCsrY2ZrK3Pa\n27OKpQ5FZMVg55wjGo32mKEEf9TXLKNXOyNZX52NUfO/a3fdTp06xcr8fB7yZtZVI0ZkLLwj/55m\nLFtub0ckwpt5eUn/UkdHakfN9x3K52N3Bm08kxX33FBSwmdD5hiPRNg1eTKV4ZJIBVP0XbWPmFVd\neTkzw7aOO8e/OJcq8vKFL3wBSEuGy7/WayaHJ3FPXl5SJzAc8GbPng3ARx99lPEaU7vUXl0ClURU\nDmqREeKUTJPY0MayMu4K26ErEqGuvJyTJ0+ysayMe/S5c2woKUmxZLFVG8Hv+4qs4KuN/rdMLlPR\ncBszaUsDyv9p+2skEqEhDNspLCzkmiNH+M7GjcTicR6MRHjq2mv50Mhl2YwWv9Smrlv2qJ/qGm2+\nsd3xhfS9szvruoe2eLotvANpH6HN1rFF720pUp+9WYZvC4CfC1kx2GUT6goLU7Fpq0eOTMZC9bEx\nLxaaxo7lx3fcwYyWFrZUVLCzoqLPMkP7J03iHx9+mIJVq2gYN46msWPBq2gFSanwkg0b6LzhBo6H\ng1ZG+BL3Z84k319Edtc4ejQ/WLKEqw4eTGWlkEjQOHo037/lFma2trK2qCiZ4D9EMyRmGR/ep1lp\n5JBEVgx2QRDQ2dnZa/xbpoIqmk3sjpDNI8xUjNlG2ev42slcN3Ys68aNS866iURqJvNnTLEO+SCU\n86gZTOewmR6+30//t+omtkSfjuUrluwHPqqooKqqiiLScXNiP2JrEkCVskuKxRYVwfHj0NTE0qVL\nAbjtttvIX7+eCQ89hOvsJPHss2x+5hnqwvZRIeVUdL2RuGfx4lQBa5UVFKMV6xE70E6zz6jkT1Nb\nWVFVta3uRyKRoBH4TVERnDgBe/ak2nJzURGbi4ooLS1lNOl+YNVF9H2fHVj2YePIbEZBpmJKtliR\n7Wti9YrTVP886tVoOHHiBGuLirr58DaWlRGE57Oxnnrv+0Flu65Pbaf7ZEU0Zae/itF1iY3avm/F\nS+21+7C+TJvnezZYtZncbmwOF4SCVauSUuHxOC4IKFm/HubNy/xlSdz7PrvLuAThQGBbWRnfWriQ\n2UePsqG0tN/9v5cTcoPdp8T0I0eoPXyYtUVFF1TVqr8xescOxm3dCqNHf6oK7CcXLiQIWXEQi9Hh\nFRfPiEWLLvrGxKdB1cGDTD9wgI2lpRlT0LIZ28rK2FZWdl67j1UHDzJ9/352TZrE7gFOSxwqyIrB\nLpFIcPr06R5Cg5mCee0Sw1JZ0XZbR8DftrbhKnKO2lQVhULYY9a0tfHdlSuJxeP822iU7918M78N\nqbuWZfqNltM2UR3Syw8tLaxzVktAmzyfKVxj9uzZlNTXs+CHPyTS2cnsWIz3v/Ut9oTHlsSVloJL\nlixJHUPL07y8PBLXXcfhF15g+PLlrCsu5mhFBctffx2AtWvXAnDLLbcAMGvWrNQxFJD82muvAbBs\n2TJ8qB20saOQGN+JreWRluBaDqkdtMTT8j5TPV8tteQkj8ViVB08yH95802i8Th3R6P87P77WRX+\n/XAGlqRlut3AsiIUNkXP74t+bQ0fVjRArhG78QZpAU0dV0t/K1ShdlPb3hiJ8MCbbyZFcDds4Pmv\nfY368G9axheb67cbNX7a2vXXXw/AtWFdCl9MAWDjxo0AvP/++0DPgG1I99MZM2Z0O48CxHVv1bay\ny39ubWpZptC0syGrxDuHCq4+ciTlNI7F48wKY8cGG6M2bSLSD9Wqzsyfz+//+I85GnbMoY7pBw50\nE+qcFsY8Zhsm7d/P3XV1TL1Aqa+JTU3dxDmvDHe5L3dkBbMTrJNSs00m6W5b21TQrKKZw8qR+7CJ\n3ZplNevaZYOcq6tHjuTfhU7jeCTCuuLiHlLeNh0mk1S1lQ7SrC5mKZs1G9vUGkinXe3Zs4dTY8cy\nJRYjEooNrCwoSIV2KG1L1+yHwGhWFZNQmIoq3Ev2R1Xe3n33XaB7Er8gdmyrWOka9Spm5zv1xZDE\nPvWqY6ltxbx0rnZPycV+lkgkWFVQ0C1EZfXIkakQIbWtH74hxmRDTmyCu46RKRXRl7b3X/VdsVMx\nqHmnT/P1l15KBkhHIvx46VIajHT5CBNcLCancCPZtW3sWK6PRonG40lxzvHjU/dY7aK+3Fs/vfHG\nG1PXcscddwDpwPRMgceQ3vTQucq9zB6F/EgI1JYaUN9SP7WbQpBZgOJ8IW84fQAAFABJREFUkFWD\n3VBBfUlJymm8efRotpWVQRbIerdOnco/P/kkY7duZdWIEclCKias5HLE9vLyVChKKkTlU7CnmR0d\nzG1vT8tl9SP8QHFJgL1+FoXqs2HvhAn86stfZsonn/DJlClJcc4s6Qfjdu1ifGMjTVdeyYF+TqE8\nF87Zms65vwfuBlqDIKgNP/sRcA9wBtgJ/IcgCNrDvz0FfA2IA98MguCdPpyDaDTaQwZdr/7sP378\neCDtN7C+BhvykWl7WufRq2V4mu00o8pn5Ke6LMvLY9mIEeQnEnDkSK926Ji2LiakZ3/L6GwaktiH\nZtSxnvqvZsb33nuvW3sc3rcPGhtTITFW3EChIb6tthCRaqnqvXxGmqX9mVtsWGxPvpl54U6uvqtr\n1AzuB/Dqt2qr9evXd7NdLFHfU7v5zE5peZKD0nnqFbDe1ARNTT38oJmK9uiz4uJiZhw9yvc2bUrW\nz41G+cvFi/k4ZKdKgfN9SLouHUNsVPfHincuz8vj1kgkKXzqHCvz8zkdtpX6p629a58TP4C8JRZj\n9dSpyfPt3JnygYmli32JxeqaxaJvvvnm1LVUVVV1+64NprbpY2pTX5KsqqqKMTt3cs/f/A2uq4tr\nYzH+5c/+jOVhu+iYajfdUz/sTOfXM6Tf9LXwTl98dr8ClprP3gNqgyCYDWwHngoNmwl8EZgV/uZn\nzrkoOeQwwJi0fz9LVq6keoDCMvz6ubFEgpn97KdtHD2av1y8mH+oqeHbixalKp1lI4avW0fpz39O\nQah001dcsX07LpTvinR1URFqIF4snJPZBUHwW+fcZPPZu97bFcAXwv9/DnghCILTwC7n3A5gIbD8\nHOfo5h+zbMzffbzqqquA9GyvUV3ikZqhSs2M4QeNWkkcsQ4xFyvOaAvBQHrmEduyQaOa5axope9j\n1Hd1HjE2XZNm/+nTpwPwyCOPAHDvvff2sOOVV14B4KWXXgLSs/3UqVO72aMZXawN4K233gLSjGlS\nGLJiSwnW1tYCaX+Oz1J1PvmVJCYgP49Fps/FqHW9Yu+Sj7JiD2IWC+Nx7nvxRaJdXXw2GuVv77uP\nI+H9t7v32q3VMcQkfIEGm5weBAEr8vN5wJOcrx8zhpEh0xDj8Msg2uB3W5TGpvG1tLSwDYiNHAmn\nTnVbdtpULpvqZn3bPktVvxfjlZ9RKxAbGK0ddvUb3+a8vDzy1q5lzIMP4jo7KR02jIPPPZfyP0oq\nTM+TvyIbPnw4h2trSbz5JoSlUuvHjEn56lSOUUxc8P3C+r99pvyUw7OhP3x2XwX+Mfz/eJKDn9Ac\nftYDzrmvA1/vh/P3OySe2JsMTw4wtqmJKZ98QktNTVKGaRAxYceO1O5jare1n0Uv60tKUpLzDZWV\nSb/fAJeLzEbkr1iRCjrXe/q4a39o2jQ++Pa3GVNfT/2YMUmf3UX0dV/QYOecexroAp47398GQfAL\n4BcAkUgkiMViqZlbM5RSn/x4Ls36mjXEgjRDapaxvhh/NrC+Or0OHz6cGW1tfH/16pR44tOLFrEu\nZCt+DJRNZLY7yfJ/2R0036+j3yjVSz4Ozb66/ocffhiAm266CQvNdk888US3Y37wwQdAd78apGd6\nP5VHO7qKn5M98kX97ne/A9I7abOOHeOGn/6USFcXV8difPzd73IkvC9iv7oG+Xv8XejeIJbxmc98\npput1ncoViImvnrkSBaEu48qLPSvYb8QQ6mpqQHSbFXHEOMRK4Geha21S31i3DiWFRZS7BwcOZI6\nRqaiQe2m1octS2mLGImd+TGDvs/Qt1kMT/dHx7a+LP+46gd6r9/q+VHftqUI/Pbo6uri+LXXUhx+\nNxGL0TxtGh9++CGQvue6L3omIX3/G+JxmDIluXO7f3+KtWsVI1iBVOgpBHHRSik65x4iuXFxa5B+\n0vcBE72vTQg/63dMbG5m8u7dbKmo4JPQUdwf8GPoVA5w3UWKQJ/Y3EzVnj2sKy5OJuifDYMorTR6\n8+a0dHpXF6O3bEkNdheET3lNn1xxBT///OeZ1tzMqhEjkqzrPKvF59A3nJ43j72//CUjVq2ipaaG\nf736aggnw2zHpxrsnHNLgSeAm4Mg8NX4XgP+wTn318AVQDWwqg/HIy8vr0fBGfnqrvAGs8LCQibs\n3cuDv/410Xicm6NRfvHAA+wKfTE2nk3vfV+ZFQ/wY/LWFxenYui6IhHWFRVl3O2Rf00zoJ3JBcv4\nMkm7l5SUMGn/fv7jK68Q7epiSTTK//7DP6SmN0Z3Fmklya8r5knZEZrtrfQVwP333w+kI+TVLmJ/\nYj1iOjsnTmS6J51+eNasHj4g7frJlykfXnFvIRsZrkm7vrr/amv5HSUF1dbWxsrwMGfa2qCtLbUa\n0Hm1O2x9aGIyfulAfaYdTF2/JKjEjuQ3tv3WP4aNwbM7mbbk59nYivqtfmuljdS3fF+qmJGNA9W9\nVN+2THeLt3lgJZWOOQfXXcfKlSth2zbefvvtbtei6IVGL09a7Fztrv5hizxZMVG/n47IsMI6H/Ql\n9OR5YDEw2jnXDHyH5O7rcOC90JgVQRD8pyAItjjn/i9QT3J5+0dBEJyfnGgfMGnXLqLxeMpHU7V3\nb78VZdlaWpqKoVtfUpLMe70IxbqnNTen/E5BPM5kb1nVA4MsrXRo2jTeeuwxqvbs4XBtbTLTIkPQ\n9nkh0zXdd19/mAtA6datjNq0iY5rrqEjnAAuB0xtbaWmpYWPJSJ7CaD68GFmtrayobQ0Wbiqj+jL\nbuyXMnz8d2f5/veB7/fZAtIST1bWWfD9PV1dXTRdeSWfCX008WiUpokTyTfZBXq1Myn03O3V7KZZ\n5uCwYbxfUED85MluWna+P8X67KwslWY5ywr9qHPfj9dQWcntsRjE4yQiEfZUVbGwt86ZQVpJkP/m\nhhtuANK+Sp1Lfq8xnrKxch/FAmSz2I58MGvWrOl2rMlSQ9m1KzXbiq3qvGrTl19+GUizkeuuuw5I\nx+H51xTk5RG/6aaUH0e/0bF0jfIJ+exJPl0xuZqaGkrq61n41FNJ2arnn2fzM8/QHPYHsRA/Jky2\nK6ZTbaX7L9kssRRdux/hb/N21YdtLqzN7PH7i90p1XXbY6vNdWztYk9paeEb//RPRONx7olE+MGS\nJfzWZKGon+paxOj858XKdCmzZtWqVd1s1m/Ux/yi8npO/M+g57Pem1AqJNt3xtGjPL18ObF4nPsi\nEb6TwY/dG4ZkBoUfId5QWcme8eMhpMVDFbsrK3ntm99kfGMj9WPGnL0QTiZpJYOKHTuobGigfe7c\nPvvT8tauJX/FCrpmz+ZkWEviosG7pvhNNxFcfz2EKscXilGbNiV3EBMJXGdnUrbqLEx4zM6dVG7f\nzv7qag6GGyxDEdX79vUo/PTbLI7f6wtqjU991nnEVWbFYOec67YOF8PTzL0rQyLzifJytpeXJ0f+\nM2dSs45mDs1Y8jv5fhUxBTE8W4bQykzbQji+jTqWZXa2gHImn4z8FvKxnKmqgnHjklkPhw6lmMyj\njz4KpHdDgR7SSvKP7Nmzh3G7dnFfGKmeeOMNPvqLv0gt3XRtfhZGYWEh+evXM+6rX4XOTkqGDWP/\ns8+yM2QOtkiz7oe/oyv2JzYmlqjvaIZesSIZmfTss88C3WMGFyxYAAsWcLi5GV58MfVdMQi1te6H\nYuZ8diDmLHbR1tZGZMoUpg4blmR2sRg7JkxIZViIFcnOsU1N3PWTnxDp6iIRi/H2449zKPyb7qn6\niy1t6K9ArBKK9c3Z2LhMKwSbC6rzWt+czdbRs7BjwgTia9ZAuEtdN3o0USMeanOW1X5qc0gr5lhR\nWRtLaAts+33d5hXLRh3TFunRNflxd6dOneKtkyd5wPOpf9AH0U8hKwa7HPoX4xsbU5Hq2i09l59q\nxOrV4MVPFaxcCWEIyFDHkenTqfvJTyjZsIGdEyYkmW64FLOoVJHusFjPuIYGuNgst5+wu7KS//G5\nz3UvuekpIQ9FbCgo4NFZs7jm2DFWjxjBZk+K6lzIDXaXIPZVVxPEYiRCdnLYi1PsDSeuvRaGDSMA\ngmHDOBn61C4V/L62lt/X1nLkHAnxB6ZPJyHfaTRKyxCXudpdWcnuyspUjvSlgC3FxWwpLj5vFRTX\nF+33gUY0Gg0KCwtTtFgOVlFaPyBYAbByxooOKzxAyzkbHuAvD3TNouxaLqrxMlWJD+1M/V/LHhsI\nbbX1Rd/PJvEk2OBRfVdO/Lvuugvonsqj86qKl8J1Zh07lox/q62lraYmtQRScr1/bQ8++CAA5du3\nM3z5cg7X1nJy7txUSIFe1V4Kb1mwYEHqGDqvlryyx8og6T4pUNcPK5ozZ06361cqkR5U9Quls+nV\ndy9oaWnvpU3F04aEgm39Jfnoxkau2L6dTaNG0TxxYqp+hzZoFGZkRSr9kI/e0ghtZTu9Znpw7Xes\nWKXOawVR/UBc9Q8btCt75BroTQIKelb66q1+rQ0c999bgQ7r9rHLaZuq6Z9X1612OXbs2NogCNKd\nsRfkmN0liraaGtpqanp0qrPhzPz5nJk/n5O9xAyeDSX19Unx0ClT+ifAuJ8w7dAhalpaaI3H+xx8\n3jp1Kq1Tp6YUk3O4NJAVg502KDQjaavfJq9DmrnJOa1NBM3+tg6ndQDb88K5t7/tsXzoOzZ4tDdG\nl8kOfVfXqZlLvxGzqKurA9JSR5BmWWoHBYVqBlVbir3qHP7MrQ0HsTMF00oGSs5+25Zy7o9qaODa\n732PSGcnU4cNo/6nP6UpHFheDyXd1T42ENZnHDaxXTaK0Y3ppRC4H0qkaygoKGBiczMPvfxyMo2s\nro7/dued7DC1VsUk/JAIbYxJhl6bGWpDyzBsgDD0FLa04U62jq7+7vcP/V8bMvqOfqt7LDZmnf+Q\n7kNitDZ9UbCSaP6GoY5h+7gVJrWrG5/Z2U0MW6HN2pHp772tlvqKnCx7DheMii1b0nLwnZ0Uh0vl\nwcbk3bvTweeJBDPMUi6HywtZwezE6jSDa1bJJL2uWVczp2Y5K2Ao6HuZxBmtiKdlhZplMtWetcKJ\n1p9i/56JFdqCP/a3NqxF5/eLxCgNR35N/cbOfvKlaWnW5mWF6DPZoaBRpWNZmSQxiZR80LRpXBWL\n4bq6CGIx9k2bxpmQSYid6bu6D7oWf+aWv022i4WIxetVrEz+QD8gWPd2+vTpxJ0j8dFHEMoy7Z8+\nnUR4Dv1WLMS/twqs1SpC/ibZboN6xez8Pmblu2yIhU3aV9v6QcY6hj6TjfqNjiVWasVefRttOJVl\nRdZ/7PdXe17bHyw7O9sqyh5T9tmwFb3374t9bs93vyErBrschjYOV1ez8gc/oLyujiNXX037VVfB\nqnOmRF8Uu9567DEqGxpYkZ+fDD4PddNyuPyQFbuxzrlDwHFgqFT/Hc3QsHWo2AlDx9ahYicMHVsv\n1M5JQRD0rP5kkBWDHYBzbk1fto+zAUPF1qFiJwwdW4eKnTB0bL1YduY2KHLIIYfLArnBLocccrgs\nkE2D3S8G24DzwFCxdajYCUPH1qFiJwwdWy+KnVnjs8shhxxyGEhkE7PLIYccchgw5Aa7HHLI4bJA\nVgx2zrmlzrkG59wO59yTg22P4Jyb6Jxb5pyrd85tcc49Gn4+yjn3nnOuMXwtG2xbAZxzUefceufc\nG+H7bLWz1Dn3onNum3Nuq3NuURbb+ifhvd/snHveOZefDbY65/7eOdfqnNvsfdarXc65p8Lnq8E5\nd3sW2Pqj8P5vcs694pwr9f42ILYO+mDnnIsCfwvcAcwEvuScy5aKKF3AnwZBMBO4Hvij0LYngd8E\nQVAN/CZ8nw14FNjqvc9WO/878HYQBDXAHJI2Z52tzrnxwDeBBUEQ1AJR4Itkh62/ApaazzLaFfbZ\nLwKzwt/8LHzuLhZ+RU9b3wNqgyCYDWwnWcRrYG0NgmBQ/wGLgHe8908BTw22Xb3Y+irwb4AGoDL8\nrBJoyALbJpDs4EuAN8LPstHOEmAX4eaY93k22joe2AuMIpla+QZwW7bYCkwGNp+rDe0zBbwDLBpM\nW83f7gOeG2hbB53Zke5QQnP4WVbBOTcZuAZYCYwNgkASGi3AOSpaXxQ8Q7KWr68llI12TgEOAb8M\nl9z/yzk3kiy0NQiCfcCPgT3AAaAjCIJ3yUJbQ/RmV7Y/Y18F3gr/P2C2ZsNgl/VwzhUCLwH/OQiC\nY/7fguT0M6jxO865u4HWIAjW9vadbLAzRAyYB/w8CIJrSOZEd1sGZoutoc/rcyQH6CuAkc65L/vf\nyRZbLbLVLgvn3NMk3UXPDfS5smGw2wdM9N5PCD/LCjjnhpEc6J4LguDl8OODzrnK8O+VQOtg2Rfi\nRuBe59xu4AVgiXPu/5B9dkJypm4OgmBl+P5FkoNfNtr6WWBXEASHgiDoBF4GbiA7bYXe7crKZ8w5\n9xBwN/Dvw8EZBtDWbBjsVgPVzrkpzrk8ks7J1wbZJgBcUoTr74CtQRD8tfen14CvhP//Cklf3qAh\nCIKngiCYEATBZJLt934QBF8my+wECIKgBdjrnFMlm1uBerLQVpLL1+udcyPCvnAryc2UbLQVerfr\nNeCLzrnhzrkpQDUwqBpczrmlJN0u9wZBcML708DZOhiO1QwOyjtJ7sjsBJ4ebHs8u24iuRTYBGwI\n/90JlJPcDGgE/hkYNdi2ejYvJr1BkZV2AnOBNWG7/j+gLItt/S6wDdgM/BoYng22As+T9CN2kmTL\nXzubXcDT4fPVANyRBbbuIOmb03P1Pwfa1ly6WA455HBZIBuWsTnkkEMOA47cYJdDDjlcFsgNdjnk\nkMNlgdxgl0MOOVwWyA12OeSQw2WB3GCXQw45XBbIDXY55JDDZYH/D6KNwXEra4UeAAAAAElFTkSu\nQmCC\n",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "%matplotlib inline\n",
- "min_corr = 0.8\n",
- "min_pnr = 10\n",
- "min_pixel = 3 # minimum number of nonzero pixels\n",
- "save_video = False \n",
- "if not os.path.exists('tmp'): \n",
- " os.mkdir('tmp')\n",
- "video_name = os.path.join('tmp', 'initialization.mp4')\n",
- "from caiman.source_extraction.cnmf.initialization import init_neurons_corr_pnr\n",
- "A, C, C_raw, S, center = init_neurons_corr_pnr(Y, max_number=255,gSiz=gSiz, gSig=gSig,\n",
- " center_psf=True, min_corr=min_corr, min_pnr=min_pnr, swap_dim = False, save_video = save_video,\n",
- " video_name = video_name, min_pixel=3)\n",
- "plt.figure(figsize=(5,5))\n",
- "plt.imshow(cn_filter*pnr, vmax=40, cmap='gray')\n",
- "plt.plot(center[0], center[1], '.r')"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "collapsed": true
- },
- "source": [
- "If you set save_video as True, then you are supposed to find a video named 'initialization.mp4' in your current working folder. It desplays the whole procedure of the initialization. \n",
- "\n",
- "Here we set the thresholds that are very high to only pick neurons with high qualities. We can still see some weak neurons that are not picked up. In the following steps, we are going to estimate the background first and then pick more neurons from the residual (Y-A*C-B) video. "
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# Step 3: run CNMF"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 8,
- "metadata": {
- "scrolled": true
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "./example_movies/data_endoscope.tif\n"
- ]
- }
- ],
- "source": [
- "# memmap\n",
- "fname_new = cm.save_memmap([fname], base_name='Yr')\n",
- "Yr, dims, T = cm.load_memmap(fname_new)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 9,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "(1000, 128, 128)\n",
- "using 2 processes\n",
- "using 4000 pixels per process\n",
- "using 20000 block_size\n",
- "(30, 30)\n",
- "(1000, 31, 31)\n",
- "using 1 processes\n",
- "using 225 pixels per process\n",
- "using 20000 block_size\n",
- "preprocessing ...\n",
- "checking if missing data\n",
- "Single Thread\n",
- "225\n",
- "225\n",
- "225\n",
- "225\n",
- "61\n",
- "initializing ...\n",
- "Roi Extraction...\n",
- "Init one photon\n",
- "0 neurons have been initialized\n",
- "In total, 10 neurons were initialized.\n",
- "Compute Background\n",
- "Compute Residuals\n",
- "Update spatial\n",
- "Generating residuals\n",
- "entering the deconvolution \n",
- "3 out of total 10 temporal components updated\n",
- "6 out of total 10 temporal components updated\n",
- "7 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "3 out of total 10 temporal components updated\n",
- "6 out of total 10 temporal components updated\n",
- "7 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "stopping: overall temporal component not changing significantly\n",
- "Update Temporal\n",
- "Initializing update of Spatial Components\n",
- "computing the distance indicators\n",
- "found spatial support for each component\n",
- "memmaping\n",
- "Updating Spatial Components using lasso lars\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "thresholding components\n",
- "Computing residuals\n",
- "--- 0.589464902878 seconds ---\n",
- "Removing tempfiles created\n",
- "Compute Background Again\n",
- "Estimate low rank Background\n",
- "(1000, 31, 31)\n",
- "using 1 processes\n",
- "using 225 pixels per process\n",
- "using 20000 block_size\n",
- "preprocessing ...\n",
- "checking if missing data\n",
- "Single Thread\n",
- "225\n",
- "225\n",
- "225\n",
- "225\n",
- "61\n",
- "initializing ...\n",
- "Roi Extraction...\n",
- "Init one photon\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "/install/anaconda2/lib/python2.7/site-packages/skimage/transform/_warps.py:84: UserWarning: The default mode, 'constant', will be changed to 'reflect' in skimage 0.15.\n",
- " warn(\"The default mode, 'constant', will be changed to 'reflect' in \"\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "0 neurons have been initialized\n",
- "In total, 10 neurons were initialized.\n",
- "Compute Background\n",
- "Compute Residuals\n",
- "Update spatial\n",
- "Generating residuals\n",
- "entering the deconvolution \n",
- "3 out of total 10 temporal components updated\n",
- "5 out of total 10 temporal components updated\n",
- "6 out of total 10 temporal components updated\n",
- "7 out of total 10 temporal components updated\n",
- "8 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "3 out of total 10 temporal components updated\n",
- "5 out of total 10 temporal components updated\n",
- "6 out of total 10 temporal components updated\n",
- "7 out of total 10 temporal components updated\n",
- "8 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "stopping: overall temporal component not changing significantly\n",
- "Update Temporal\n",
- "Initializing update of Spatial Components\n",
- "computing the distance indicators\n",
- "found spatial support for each component\n",
- "memmaping\n",
- "Updating Spatial Components using lasso lars\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "thresholding components\n",
- "Computing residuals\n",
- "--- 0.616480827332 seconds ---\n",
- "Removing tempfiles created\n",
- "Compute Background Again\n",
- "Estimate low rank Background\n",
- "(1000, 31, 31)\n",
- "using 1 processes\n",
- "using 225 pixels per process\n",
- "using 20000 block_size\n",
- "preprocessing ...\n",
- "checking if missing data\n",
- "Single Thread\n",
- "225\n",
- "225\n",
- "225\n",
- "225\n",
- "61\n",
- "initializing ...\n",
- "Roi Extraction...\n",
- "Init one photon\n",
- "0 neurons have been initialized\n",
- "In total, 10 neurons were initialized.\n",
- "Compute Background\n",
- "Compute Residuals\n",
- "Update spatial\n",
- "Generating residuals\n",
- "entering the deconvolution \n",
- "3 out of total 10 temporal components updated\n",
- "6 out of total 10 temporal components updated\n",
- "8 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "3 out of total 10 temporal components updated\n",
- "6 out of total 10 temporal components updated\n",
- "8 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "stopping: overall temporal component not changing significantly\n",
- "Update Temporal\n",
- "Initializing update of Spatial Components\n",
- "computing the distance indicators\n",
- "found spatial support for each component\n",
- "memmaping\n",
- "Updating Spatial Components using lasso lars\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "thresholding components\n",
- "Computing residuals\n",
- "--- 0.652195930481 seconds ---\n",
- "Removing tempfiles created\n",
- "Compute Background Again\n",
- "Estimate low rank Background\n",
- "(1000, 31, 31)\n",
- "using 1 processes\n",
- "using 225 pixels per process\n",
- "using 20000 block_size\n",
- "preprocessing ...\n",
- "checking if missing data\n",
- "Single Thread\n",
- "225\n",
- "225\n",
- "225\n",
- "225\n",
- "61\n",
- "initializing ...\n",
- "Roi Extraction...\n",
- "Init one photon\n",
- "0 neurons have been initialized\n",
- "In total, 10 neurons were initialized.\n",
- "Compute Background\n",
- "Compute Residuals\n",
- "Update spatial\n",
- "Generating residuals\n",
- "entering the deconvolution \n",
- "4 out of total 10 temporal components updated\n",
- "7 out of total 10 temporal components updated\n",
- "8 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "4 out of total 10 temporal components updated\n",
- "7 out of total 10 temporal components updated\n",
- "8 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "stopping: overall temporal component not changing significantly\n",
- "Update Temporal\n",
- "Initializing update of Spatial Components\n",
- "computing the distance indicators\n",
- "found spatial support for each component\n",
- "memmaping\n",
- "Updating Spatial Components using lasso lars\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "thresholding components\n",
- "Computing residuals\n",
- "--- 0.599547147751 seconds ---\n",
- "Removing tempfiles created\n",
- "Compute Background Again\n",
- "Estimate low rank Background\n",
- "(1000, 31, 31)\n",
- "using 1 processes\n",
- "using 225 pixels per process\n",
- "using 20000 block_size\n",
- "preprocessing ...\n",
- "checking if missing data\n",
- "Single Thread\n",
- "225\n",
- "225\n",
- "225\n",
- "225\n",
- "61\n",
- "initializing ...\n",
- "Roi Extraction...\n",
- "Init one photon\n",
- "0 neurons have been initialized\n",
- "In total, 10 neurons were initialized.\n",
- "Compute Background\n",
- "Compute Residuals\n",
- "Update spatial\n",
- "Generating residuals\n",
- "entering the deconvolution \n",
- "4 out of total 10 temporal components updated\n",
- "6 out of total 10 temporal components updated\n",
- "8 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "4 out of total 10 temporal components updated\n",
- "6 out of total 10 temporal components updated\n",
- "8 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "stopping: overall temporal component not changing significantly\n",
- "Update Temporal\n",
- "Initializing update of Spatial Components\n",
- "computing the distance indicators\n",
- "found spatial support for each component\n",
- "memmaping\n",
- "Updating Spatial Components using lasso lars\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "thresholding components\n",
- "Computing residuals\n",
- "--- 0.507317066193 seconds ---\n",
- "Removing tempfiles created\n",
- "Compute Background Again\n",
- "Estimate low rank Background\n",
- "(1000, 31, 30)\n",
- "using 1 processes\n",
- "using 225 pixels per process\n",
- "using 20000 block_size\n",
- "preprocessing ...\n",
- "checking if missing data\n",
- "Single Thread\n",
- "225\n",
- "225\n",
- "225\n",
- "225\n",
- "30\n",
- "initializing ...\n",
- "Roi Extraction...\n",
- "Init one photon\n",
- "0 neurons have been initialized\n",
- "In total, 10 neurons were initialized.\n",
- "Compute Background\n",
- "Compute Residuals\n",
- "Update spatial\n",
- "Generating residuals\n",
- "entering the deconvolution \n",
- "3 out of total 10 temporal components updated\n",
- "5 out of total 10 temporal components updated\n",
- "7 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "3 out of total 10 temporal components updated\n",
- "5 out of total 10 temporal components updated\n",
- "7 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "stopping: overall temporal component not changing significantly\n",
- "Update Temporal\n",
- "Initializing update of Spatial Components\n",
- "computing the distance indicators\n",
- "found spatial support for each component\n",
- "memmaping\n",
- "Updating Spatial Components using lasso lars\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "thresholding components\n",
- "Computing residuals\n",
- "--- 0.59604883194 seconds ---\n",
- "Removing tempfiles created\n",
- "Compute Background Again\n",
- "Estimate low rank Background\n",
- "(1000, 31, 31)\n",
- "using 1 processes\n",
- "using 225 pixels per process\n",
- "using 20000 block_size\n",
- "preprocessing ...\n",
- "checking if missing data\n",
- "Single Thread\n",
- "225\n",
- "225\n",
- "225\n",
- "225\n",
- "61\n",
- "initializing ...\n",
- "Roi Extraction...\n",
- "Init one photon\n",
- "0 neurons have been initialized\n",
- "In total, 10 neurons were initialized.\n",
- "Compute Background\n",
- "Compute Residuals\n",
- "Update spatial\n",
- "Generating residuals\n",
- "entering the deconvolution \n",
- "3 out of total 10 temporal components updated\n",
- "6 out of total 10 temporal components updated\n",
- "7 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "3 out of total 10 temporal components updated\n",
- "6 out of total 10 temporal components updated\n",
- "7 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "stopping: overall temporal component not changing significantly\n",
- "Update Temporal\n",
- "Initializing update of Spatial Components\n",
- "computing the distance indicators\n",
- "found spatial support for each component\n",
- "memmaping\n",
- "Updating Spatial Components using lasso lars\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "thresholding components\n",
- "Computing residuals\n",
- "--- 0.640157938004 seconds ---\n",
- "Removing tempfiles created\n",
- "Compute Background Again\n",
- "Estimate low rank Background\n",
- "(1000, 31, 31)\n",
- "using 1 processes\n",
- "using 225 pixels per process\n",
- "using 20000 block_size\n",
- "preprocessing ...\n",
- "checking if missing data\n",
- "Single Thread\n",
- "225\n",
- "225\n",
- "225\n",
- "225\n",
- "61\n",
- "initializing ...\n",
- "Roi Extraction...\n",
- "Init one photon\n",
- "0 neurons have been initialized\n",
- "In total, 10 neurons were initialized.\n",
- "Compute Background\n",
- "Compute Residuals\n",
- "Update spatial\n",
- "Generating residuals\n",
- "entering the deconvolution \n",
- "3 out of total 10 temporal components updated\n",
- "5 out of total 10 temporal components updated\n",
- "7 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "3 out of total 10 temporal components updated\n",
- "5 out of total 10 temporal components updated\n",
- "7 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "stopping: overall temporal component not changing significantly\n",
- "Update Temporal\n",
- "Initializing update of Spatial Components\n",
- "computing the distance indicators\n",
- "found spatial support for each component\n",
- "memmaping\n",
- "Updating Spatial Components using lasso lars\n",
- "clearing variables\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "thresholding components\n",
- "Computing residuals\n",
- "--- 0.604423999786 seconds ---\n",
- "Removing tempfiles created\n",
- "Compute Background Again\n",
- "Estimate low rank Background\n",
- "(1000, 31, 31)\n",
- "using 1 processes\n",
- "using 225 pixels per process\n",
- "using 20000 block_size\n",
- "preprocessing ...\n",
- "checking if missing data\n",
- "Single Thread\n",
- "225\n",
- "225\n",
- "225\n",
- "225\n",
- "61\n",
- "initializing ...\n",
- "Roi Extraction...\n",
- "Init one photon\n",
- "0 neurons have been initialized\n",
- "In total, 10 neurons were initialized.\n",
- "Compute Background\n",
- "Compute Residuals\n",
- "Update spatial\n",
- "Generating residuals\n",
- "entering the deconvolution \n",
- "3 out of total 10 temporal components updated\n",
- "6 out of total 10 temporal components updated\n",
- "8 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "3 out of total 10 temporal components updated\n",
- "6 out of total 10 temporal components updated\n",
- "8 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "stopping: overall temporal component not changing significantly\n",
- "Update Temporal\n",
- "Initializing update of Spatial Components\n",
- "computing the distance indicators\n",
- "found spatial support for each component\n",
- "memmaping\n",
- "Updating Spatial Components using lasso lars\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "thresholding components\n",
- "Computing residuals\n",
- "--- 0.561629056931 seconds ---\n",
- "Removing tempfiles created\n",
- "Compute Background Again\n",
- "Estimate low rank Background\n",
- "(1000, 31, 31)\n",
- "using 1 processes\n",
- "using 225 pixels per process\n",
- "using 20000 block_size\n",
- "preprocessing ...\n",
- "checking if missing data\n",
- "Single Thread\n",
- "225\n",
- "225\n",
- "225\n",
- "225\n",
- "61\n",
- "initializing ...\n",
- "Roi Extraction...\n",
- "Init one photon\n",
- "0 neurons have been initialized\n",
- "In total, 10 neurons were initialized.\n",
- "Compute Background\n",
- "Compute Residuals\n",
- "Update spatial\n",
- "Generating residuals\n",
- "entering the deconvolution \n",
- "4 out of total 10 temporal components updated\n",
- "6 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "4 out of total 10 temporal components updated\n",
- "6 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "stopping: overall temporal component not changing significantly\n",
- "Update Temporal\n",
- "Initializing update of Spatial Components\n",
- "computing the distance indicators\n",
- "found spatial support for each component\n",
- "memmaping\n",
- "Updating Spatial Components using lasso lars\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "thresholding components\n",
- "Computing residuals\n",
- "--- 0.608149051666 seconds ---\n",
- "Removing tempfiles created\n",
- "Compute Background Again\n",
- "Estimate low rank Background\n",
- "(1000, 31, 31)\n",
- "using 1 processes\n",
- "using 225 pixels per process\n",
- "using 20000 block_size\n",
- "preprocessing ...\n",
- "checking if missing data\n",
- "Single Thread\n",
- "225\n",
- "225\n",
- "225\n",
- "225\n",
- "61\n",
- "initializing ...\n",
- "Roi Extraction...\n",
- "Init one photon\n",
- "0 neurons have been initialized\n",
- "In total, 10 neurons were initialized.\n",
- "Compute Background\n",
- "Compute Residuals\n",
- "Update spatial\n",
- "Generating residuals\n",
- "entering the deconvolution \n",
- "3 out of total 10 temporal components updated\n",
- "5 out of total 10 temporal components updated\n",
- "7 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "3 out of total 10 temporal components updated\n",
- "5 out of total 10 temporal components updated\n",
- "7 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "stopping: overall temporal component not changing significantly\n",
- "Update Temporal\n",
- "Initializing update of Spatial Components\n",
- "computing the distance indicators\n",
- "found spatial support for each component\n",
- "memmaping\n",
- "Updating Spatial Components using lasso lars\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "thresholding components\n",
- "Computing residuals\n",
- "--- 0.506546974182 seconds ---\n",
- "Removing tempfiles created\n",
- "Compute Background Again\n",
- "Estimate low rank Background\n",
- "(1000, 31, 30)\n",
- "using 1 processes\n",
- "using 225 pixels per process\n",
- "using 20000 block_size\n",
- "preprocessing ...\n",
- "checking if missing data\n",
- "Single Thread\n",
- "225\n",
- "225\n",
- "225\n",
- "225\n",
- "30\n",
- "initializing ...\n",
- "Roi Extraction...\n",
- "Init one photon\n",
- "0 neurons have been initialized\n",
- "In total, 10 neurons were initialized.\n",
- "Compute Background\n",
- "Compute Residuals\n",
- "Update spatial\n",
- "Generating residuals\n",
- "entering the deconvolution \n",
- "4 out of total 10 temporal components updated\n",
- "6 out of total 10 temporal components updated\n",
- "8 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "4 out of total 10 temporal components updated\n",
- "6 out of total 10 temporal components updated\n",
- "8 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "stopping: overall temporal component not changing significantly\n",
- "Update Temporal\n",
- "Initializing update of Spatial Components\n",
- "computing the distance indicators\n",
- "found spatial support for each component\n",
- "memmaping\n",
- "Updating Spatial Components using lasso lars\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "thresholding components\n",
- "Computing residuals\n",
- "--- 0.566662073135 seconds ---\n",
- "Removing tempfiles created\n",
- "Compute Background Again\n",
- "Estimate low rank Background\n",
- "(1000, 31, 31)\n",
- "using 1 processes\n",
- "using 225 pixels per process\n",
- "using 20000 block_size\n",
- "preprocessing ...\n",
- "checking if missing data\n",
- "Single Thread\n",
- "225\n",
- "225\n",
- "225\n",
- "225\n",
- "61\n",
- "initializing ...\n",
- "Roi Extraction...\n",
- "Init one photon\n",
- "0 neurons have been initialized\n",
- "In total, 10 neurons were initialized.\n",
- "Compute Background\n",
- "Compute Residuals\n",
- "Update spatial\n",
- "Generating residuals\n",
- "entering the deconvolution \n",
- "4 out of total 10 temporal components updated\n",
- "5 out of total 10 temporal components updated\n",
- "8 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "4 out of total 10 temporal components updated\n",
- "5 out of total 10 temporal components updated\n",
- "8 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "stopping: overall temporal component not changing significantly\n",
- "Update Temporal\n",
- "Initializing update of Spatial Components\n",
- "computing the distance indicators\n",
- "found spatial support for each component\n",
- "memmaping\n",
- "Updating Spatial Components using lasso lars\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "thresholding components\n",
- "Computing residuals\n",
- "--- 0.563480854034 seconds ---\n",
- "Removing tempfiles created\n",
- "Compute Background Again\n",
- "Estimate low rank Background\n",
- "(1000, 31, 31)\n",
- "using 1 processes\n",
- "using 225 pixels per process\n",
- "using 20000 block_size\n",
- "preprocessing ...\n",
- "checking if missing data\n",
- "Single Thread\n",
- "225\n",
- "225\n",
- "225\n",
- "225\n",
- "61\n",
- "initializing ...\n",
- "Roi Extraction...\n",
- "Init one photon\n",
- "0 neurons have been initialized\n",
- "In total, 10 neurons were initialized.\n",
- "Compute Background\n",
- "Compute Residuals\n",
- "Update spatial\n",
- "Generating residuals\n",
- "entering the deconvolution \n",
- "3 out of total 10 temporal components updated\n",
- "6 out of total 10 temporal components updated\n",
- "7 out of total 10 temporal components updated\n",
- "8 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "3 out of total 10 temporal components updated\n",
- "6 out of total 10 temporal components updated\n",
- "7 out of total 10 temporal components updated\n",
- "8 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "stopping: overall temporal component not changing significantly\n",
- "Update Temporal\n",
- "Initializing update of Spatial Components\n",
- "computing the distance indicators\n",
- "found spatial support for each component\n",
- "memmaping\n",
- "Updating Spatial Components using lasso lars\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "thresholding components\n",
- "Computing residuals\n",
- "--- 0.48602104187 seconds ---\n",
- "Removing tempfiles created\n",
- "Compute Background Again\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Estimate low rank Background\n",
- "(1000, 31, 31)\n",
- "using 1 processes\n",
- "using 225 pixels per process\n",
- "using 20000 block_size\n",
- "preprocessing ...\n",
- "checking if missing data\n",
- "Single Thread\n",
- "225\n",
- "225\n",
- "225\n",
- "225\n",
- "61\n",
- "initializing ...\n",
- "Roi Extraction...\n",
- "Init one photon\n",
- "0 neurons have been initialized\n",
- "In total, 10 neurons were initialized.\n",
- "Compute Background\n",
- "Compute Residuals\n",
- "Update spatial\n",
- "Generating residuals\n",
- "entering the deconvolution \n",
- "4 out of total 10 temporal components updated\n",
- "6 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "4 out of total 10 temporal components updated\n",
- "6 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "stopping: overall temporal component not changing significantly\n",
- "Update Temporal\n",
- "Initializing update of Spatial Components\n",
- "computing the distance indicators\n",
- "found spatial support for each component\n",
- "memmaping\n",
- "Updating Spatial Components using lasso lars\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "thresholding components\n",
- "Computing residuals\n",
- "--- 0.49835395813 seconds ---\n",
- "Removing tempfiles created\n",
- "Compute Background Again\n",
- "Estimate low rank Background\n",
- "(1000, 31, 31)\n",
- "using 1 processes\n",
- "using 225 pixels per process\n",
- "using 20000 block_size\n",
- "preprocessing ...\n",
- "checking if missing data\n",
- "Single Thread\n",
- "225\n",
- "225\n",
- "225\n",
- "225\n",
- "61\n",
- "initializing ...\n",
- "Roi Extraction...\n",
- "Init one photon\n",
- "0 neurons have been initialized\n",
- "In total, 10 neurons were initialized.\n",
- "Compute Background\n",
- "Compute Residuals\n",
- "Update spatial\n",
- "Generating residuals\n",
- "entering the deconvolution \n",
- "4 out of total 10 temporal components updated\n",
- "7 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "4 out of total 10 temporal components updated\n",
- "7 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "stopping: overall temporal component not changing significantly\n",
- "Update Temporal\n",
- "Initializing update of Spatial Components\n",
- "computing the distance indicators\n",
- "found spatial support for each component\n",
- "memmaping\n",
- "Updating Spatial Components using lasso lars\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "thresholding components\n",
- "Computing residuals\n",
- "--- 0.568211078644 seconds ---\n",
- "Removing tempfiles created\n",
- "Compute Background Again\n",
- "Estimate low rank Background\n",
- "(1000, 31, 31)\n",
- "using 1 processes\n",
- "using 225 pixels per process\n",
- "using 20000 block_size\n",
- "preprocessing ...\n",
- "checking if missing data\n",
- "Single Thread\n",
- "225\n",
- "225\n",
- "225\n",
- "225\n",
- "61\n",
- "initializing ...\n",
- "Roi Extraction...\n",
- "Init one photon\n",
- "0 neurons have been initialized\n",
- "In total, 10 neurons were initialized.\n",
- "Compute Background\n",
- "Compute Residuals\n",
- "Update spatial\n",
- "Generating residuals\n",
- "entering the deconvolution \n",
- "3 out of total 10 temporal components updated\n",
- "5 out of total 10 temporal components updated\n",
- "7 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "3 out of total 10 temporal components updated\n",
- "5 out of total 10 temporal components updated\n",
- "7 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "stopping: overall temporal component not changing significantly\n",
- "Update Temporal\n",
- "Initializing update of Spatial Components\n",
- "computing the distance indicators\n",
- "found spatial support for each component\n",
- "memmaping\n",
- "Updating Spatial Components using lasso lars\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "thresholding components\n",
- "Computing residuals\n",
- "--- 0.536127090454 seconds ---\n",
- "Removing tempfiles created\n",
- "Compute Background Again\n",
- "Estimate low rank Background\n",
- "(1000, 31, 30)\n",
- "using 1 processes\n",
- "using 225 pixels per process\n",
- "using 20000 block_size\n",
- "preprocessing ...\n",
- "checking if missing data\n",
- "Single Thread\n",
- "225\n",
- "225\n",
- "225\n",
- "225\n",
- "30\n",
- "initializing ...\n",
- "Roi Extraction...\n",
- "Init one photon\n",
- "0 neurons have been initialized\n",
- "In total, 10 neurons were initialized.\n",
- "Compute Background\n",
- "Compute Residuals\n",
- "Update spatial\n",
- "Generating residuals\n",
- "entering the deconvolution \n",
- "4 out of total 10 temporal components updated\n",
- "7 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "4 out of total 10 temporal components updated\n",
- "7 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "stopping: overall temporal component not changing significantly\n",
- "Update Temporal\n",
- "Initializing update of Spatial Components\n",
- "computing the distance indicators\n",
- "found spatial support for each component\n",
- "memmaping\n",
- "Updating Spatial Components using lasso lars\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "thresholding components\n",
- "Computing residuals\n",
- "--- 0.544420003891 seconds ---\n",
- "Removing tempfiles created\n",
- "Compute Background Again\n",
- "Estimate low rank Background\n",
- "(1000, 31, 31)\n",
- "using 1 processes\n",
- "using 225 pixels per process\n",
- "using 20000 block_size\n",
- "preprocessing ...\n",
- "checking if missing data\n",
- "Single Thread\n",
- "225\n",
- "225\n",
- "225\n",
- "225\n",
- "61\n",
- "initializing ...\n",
- "Roi Extraction...\n",
- "Init one photon\n",
- "0 neurons have been initialized\n",
- "In total, 10 neurons were initialized.\n",
- "Compute Background\n",
- "Compute Residuals\n",
- "Update spatial\n",
- "Generating residuals\n",
- "entering the deconvolution \n",
- "4 out of total 10 temporal components updated\n",
- "6 out of total 10 temporal components updated\n",
- "8 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "4 out of total 10 temporal components updated\n",
- "6 out of total 10 temporal components updated\n",
- "8 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "stopping: overall temporal component not changing significantly\n",
- "Update Temporal\n",
- "Initializing update of Spatial Components\n",
- "computing the distance indicators\n",
- "found spatial support for each component\n",
- "memmaping\n",
- "Updating Spatial Components using lasso lars\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "thresholding components\n",
- "Computing residuals\n",
- "--- 0.528434038162 seconds ---\n",
- "Removing tempfiles created\n",
- "Compute Background Again\n",
- "Estimate low rank Background\n",
- "(1000, 31, 31)\n",
- "using 1 processes\n",
- "using 225 pixels per process\n",
- "using 20000 block_size\n",
- "preprocessing ...\n",
- "checking if missing data\n",
- "Single Thread\n",
- "225\n",
- "225\n",
- "225\n",
- "225\n",
- "61\n",
- "initializing ...\n",
- "Roi Extraction...\n",
- "Init one photon\n",
- "0 neurons have been initialized\n",
- "In total, 10 neurons were initialized.\n",
- "Compute Background\n",
- "Compute Residuals\n",
- "Update spatial\n",
- "Generating residuals\n",
- "entering the deconvolution \n",
- "3 out of total 10 temporal components updated\n",
- "6 out of total 10 temporal components updated\n",
- "8 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "3 out of total 10 temporal components updated\n",
- "6 out of total 10 temporal components updated\n",
- "8 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "stopping: overall temporal component not changing significantly\n",
- "Update Temporal\n",
- "Initializing update of Spatial Components\n",
- "computing the distance indicators\n",
- "found spatial support for each component\n",
- "memmaping\n",
- "Updating Spatial Components using lasso lars\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "thresholding components\n",
- "Computing residuals\n",
- "--- 0.510095119476 seconds ---\n",
- "Removing tempfiles created\n",
- "Compute Background Again\n",
- "Estimate low rank Background\n",
- "(1000, 31, 31)\n",
- "using 1 processes\n",
- "using 225 pixels per process\n",
- "using 20000 block_size\n",
- "preprocessing ...\n",
- "checking if missing data\n",
- "Single Thread\n",
- "225\n",
- "225\n",
- "225\n",
- "225\n",
- "61\n",
- "initializing ...\n",
- "Roi Extraction...\n",
- "Init one photon\n",
- "0 neurons have been initialized\n",
- "In total, 10 neurons were initialized.\n",
- "Compute Background\n",
- "Compute Residuals\n",
- "Update spatial\n",
- "Generating residuals\n",
- "entering the deconvolution \n",
- "3 out of total 10 temporal components updated\n",
- "6 out of total 10 temporal components updated\n",
- "8 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "3 out of total 10 temporal components updated\n",
- "6 out of total 10 temporal components updated\n",
- "8 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "stopping: overall temporal component not changing significantly\n",
- "Update Temporal\n",
- "Initializing update of Spatial Components\n",
- "computing the distance indicators\n",
- "found spatial support for each component\n",
- "memmaping\n",
- "Updating Spatial Components using lasso lars\n",
- "clearing variables\n",
- "clearing variables\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "thresholding components\n",
- "Computing residuals\n",
- "--- 0.593204975128 seconds ---\n",
- "Removing tempfiles created\n",
- "Compute Background Again\n",
- "Estimate low rank Background\n",
- "(1000, 31, 31)\n",
- "using 1 processes\n",
- "using 225 pixels per process\n",
- "using 20000 block_size\n",
- "preprocessing ...\n",
- "checking if missing data\n",
- "Single Thread\n",
- "225\n",
- "225\n",
- "225\n",
- "225\n",
- "61\n",
- "initializing ...\n",
- "Roi Extraction...\n",
- "Init one photon\n",
- "0 neurons have been initialized\n",
- "In total, 10 neurons were initialized.\n",
- "Compute Background\n",
- "Compute Residuals\n",
- "Update spatial\n",
- "Generating residuals\n",
- "entering the deconvolution \n",
- "4 out of total 10 temporal components updated\n",
- "6 out of total 10 temporal components updated\n",
- "7 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "4 out of total 10 temporal components updated\n",
- "6 out of total 10 temporal components updated\n",
- "7 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "stopping: overall temporal component not changing significantly\n",
- "Update Temporal\n",
- "Initializing update of Spatial Components\n",
- "computing the distance indicators\n",
- "found spatial support for each component\n",
- "memmaping\n",
- "Updating Spatial Components using lasso lars\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "thresholding components\n",
- "Computing residuals\n",
- "--- 0.591088056564 seconds ---\n",
- "Removing tempfiles created\n",
- "Compute Background Again\n",
- "Estimate low rank Background\n",
- "(1000, 31, 31)\n",
- "using 1 processes\n",
- "using 225 pixels per process\n",
- "using 20000 block_size\n",
- "preprocessing ...\n",
- "checking if missing data\n",
- "Single Thread\n",
- "225\n",
- "225\n",
- "225\n",
- "225\n",
- "61\n",
- "initializing ...\n",
- "Roi Extraction...\n",
- "Init one photon\n",
- "0 neurons have been initialized\n",
- "In total, 10 neurons were initialized.\n",
- "Compute Background\n",
- "Compute Residuals\n",
- "Update spatial\n",
- "Generating residuals\n",
- "entering the deconvolution \n",
- "3 out of total 10 temporal components updated\n",
- "5 out of total 10 temporal components updated\n",
- "6 out of total 10 temporal components updated\n",
- "8 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "3 out of total 10 temporal components updated\n",
- "5 out of total 10 temporal components updated\n",
- "6 out of total 10 temporal components updated\n",
- "8 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "stopping: overall temporal component not changing significantly\n",
- "Update Temporal\n",
- "Initializing update of Spatial Components\n",
- "computing the distance indicators\n",
- "found spatial support for each component\n",
- "memmaping\n",
- "Updating Spatial Components using lasso lars\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "thresholding components\n",
- "Computing residuals\n",
- "--- 0.511209011078 seconds ---\n",
- "Removing tempfiles created\n",
- "Compute Background Again\n",
- "Estimate low rank Background\n",
- "(1000, 31, 30)\n",
- "using 1 processes\n",
- "using 225 pixels per process\n",
- "using 20000 block_size\n",
- "preprocessing ...\n",
- "checking if missing data\n",
- "Single Thread\n",
- "225\n",
- "225\n",
- "225\n",
- "225\n",
- "30\n",
- "initializing ...\n",
- "Roi Extraction...\n",
- "Init one photon\n",
- "0 neurons have been initialized\n",
- "In total, 10 neurons were initialized.\n",
- "Compute Background\n",
- "Compute Residuals\n",
- "Update spatial\n",
- "Generating residuals\n",
- "entering the deconvolution \n",
- "3 out of total 10 temporal components updated\n",
- "6 out of total 10 temporal components updated\n",
- "8 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "3 out of total 10 temporal components updated\n",
- "6 out of total 10 temporal components updated\n",
- "8 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "stopping: overall temporal component not changing significantly\n",
- "Update Temporal\n",
- "Initializing update of Spatial Components\n",
- "computing the distance indicators\n",
- "found spatial support for each component\n",
- "memmaping\n",
- "Updating Spatial Components using lasso lars\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "thresholding components\n",
- "Computing residuals\n",
- "--- 0.468898057938 seconds ---\n",
- "Removing tempfiles created\n",
- "Compute Background Again\n",
- "Estimate low rank Background\n",
- "(1000, 31, 31)\n",
- "using 1 processes\n",
- "using 225 pixels per process\n",
- "using 20000 block_size\n",
- "preprocessing ...\n",
- "checking if missing data\n",
- "Single Thread\n",
- "225\n",
- "225\n",
- "225\n",
- "225\n",
- "61\n",
- "initializing ...\n",
- "Roi Extraction...\n",
- "Init one photon\n",
- "0 neurons have been initialized\n",
- "In total, 10 neurons were initialized.\n",
- "Compute Background\n",
- "Compute Residuals\n",
- "Update spatial\n",
- "Generating residuals\n",
- "entering the deconvolution \n",
- "3 out of total 10 temporal components updated\n",
- "5 out of total 10 temporal components updated\n",
- "7 out of total 10 temporal components updated\n",
- "8 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "3 out of total 10 temporal components updated\n",
- "5 out of total 10 temporal components updated\n",
- "7 out of total 10 temporal components updated\n",
- "8 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "stopping: overall temporal component not changing significantly\n",
- "Update Temporal\n",
- "Initializing update of Spatial Components\n",
- "computing the distance indicators\n",
- "found spatial support for each component\n",
- "memmaping\n",
- "Updating Spatial Components using lasso lars\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "thresholding components\n",
- "Computing residuals\n",
- "--- 0.595993995667 seconds ---\n",
- "Removing tempfiles created\n",
- "Compute Background Again\n",
- "Estimate low rank Background\n",
- "(1000, 31, 31)\n",
- "using 1 processes\n",
- "using 225 pixels per process\n",
- "using 20000 block_size\n",
- "preprocessing ...\n",
- "checking if missing data\n",
- "Single Thread\n",
- "225\n",
- "225\n",
- "225\n",
- "225\n",
- "61\n",
- "initializing ...\n",
- "Roi Extraction...\n",
- "Init one photon\n",
- "0 neurons have been initialized\n",
- "In total, 10 neurons were initialized.\n",
- "Compute Background\n",
- "Compute Residuals\n",
- "Update spatial\n",
- "Generating residuals\n",
- "entering the deconvolution \n",
- "2 out of total 10 temporal components updated\n",
- "5 out of total 10 temporal components updated\n",
- "7 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "2 out of total 10 temporal components updated\n",
- "5 out of total 10 temporal components updated\n",
- "7 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "stopping: overall temporal component not changing significantly\n",
- "Update Temporal\n",
- "Initializing update of Spatial Components\n",
- "computing the distance indicators\n",
- "found spatial support for each component\n",
- "memmaping\n",
- "Updating Spatial Components using lasso lars\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "thresholding components\n",
- "Computing residuals\n",
- "--- 0.495157957077 seconds ---\n",
- "Removing tempfiles created\n",
- "Compute Background Again\n",
- "Estimate low rank Background\n",
- "(1000, 31, 31)\n",
- "using 1 processes\n",
- "using 225 pixels per process\n",
- "using 20000 block_size\n",
- "preprocessing ...\n",
- "checking if missing data\n",
- "Single Thread\n",
- "225\n",
- "225\n",
- "225\n",
- "225\n",
- "61\n",
- "initializing ...\n",
- "Roi Extraction...\n",
- "Init one photon\n",
- "0 neurons have been initialized\n",
- "In total, 10 neurons were initialized.\n",
- "Compute Background\n",
- "Compute Residuals\n",
- "Update spatial\n",
- "Generating residuals\n",
- "entering the deconvolution \n",
- "3 out of total 10 temporal components updated\n",
- "4 out of total 10 temporal components updated\n",
- "7 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "3 out of total 10 temporal components updated\n",
- "4 out of total 10 temporal components updated\n",
- "7 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "stopping: overall temporal component not changing significantly\n",
- "Update Temporal\n",
- "Initializing update of Spatial Components\n",
- "computing the distance indicators\n",
- "found spatial support for each component\n",
- "memmaping\n",
- "Updating Spatial Components using lasso lars\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "clearing variables\n",
- "clearing variables\n",
- "thresholding components\n",
- "Computing residuals\n",
- "--- 0.625679016113 seconds ---\n",
- "Removing tempfiles created\n",
- "Compute Background Again\n",
- "Estimate low rank Background\n",
- "(1000, 31, 31)\n",
- "using 1 processes\n",
- "using 225 pixels per process\n",
- "using 20000 block_size\n",
- "preprocessing ...\n",
- "checking if missing data\n",
- "Single Thread\n",
- "225\n",
- "225\n",
- "225\n",
- "225\n",
- "61\n",
- "initializing ...\n",
- "Roi Extraction...\n",
- "Init one photon\n",
- "0 neurons have been initialized\n",
- "In total, 10 neurons were initialized.\n",
- "Compute Background\n",
- "Compute Residuals\n",
- "Update spatial\n",
- "Generating residuals\n",
- "entering the deconvolution \n",
- "3 out of total 10 temporal components updated\n",
- "5 out of total 10 temporal components updated\n",
- "7 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "3 out of total 10 temporal components updated\n",
- "5 out of total 10 temporal components updated\n",
- "7 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "stopping: overall temporal component not changing significantly\n",
- "Update Temporal\n",
- "Initializing update of Spatial Components\n",
- "computing the distance indicators\n",
- "found spatial support for each component\n",
- "memmaping\n",
- "Updating Spatial Components using lasso lars\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "thresholding components\n",
- "Computing residuals\n",
- "--- 0.569766998291 seconds ---\n",
- "Removing tempfiles created\n",
- "Compute Background Again\n",
- "Estimate low rank Background\n",
- "(1000, 31, 31)\n",
- "using 1 processes\n",
- "using 225 pixels per process\n",
- "using 20000 block_size\n",
- "preprocessing ...\n",
- "checking if missing data\n",
- "Single Thread\n",
- "225\n",
- "225\n",
- "225\n",
- "225\n",
- "61\n",
- "initializing ...\n",
- "Roi Extraction...\n",
- "Init one photon\n",
- "0 neurons have been initialized\n",
- "In total, 10 neurons were initialized.\n",
- "Compute Background\n",
- "Compute Residuals\n",
- "Update spatial\n",
- "Generating residuals\n",
- "entering the deconvolution \n",
- "2 out of total 10 temporal components updated\n",
- "4 out of total 10 temporal components updated\n",
- "6 out of total 10 temporal components updated\n",
- "8 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "2 out of total 10 temporal components updated\n",
- "4 out of total 10 temporal components updated\n",
- "6 out of total 10 temporal components updated\n",
- "8 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "stopping: overall temporal component not changing significantly\n",
- "Update Temporal\n",
- "Initializing update of Spatial Components\n",
- "computing the distance indicators\n",
- "found spatial support for each component\n",
- "memmaping\n",
- "Updating Spatial Components using lasso lars\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "thresholding components\n",
- "Computing residuals\n",
- "--- 0.606735944748 seconds ---\n",
- "Removing tempfiles created\n",
- "Compute Background Again\n",
- "Estimate low rank Background\n",
- "(1000, 31, 30)\n",
- "using 1 processes\n",
- "using 225 pixels per process\n",
- "using 20000 block_size\n",
- "preprocessing ...\n",
- "checking if missing data\n",
- "Single Thread\n",
- "225\n",
- "225\n",
- "225\n",
- "225\n",
- "30\n",
- "initializing ...\n",
- "Roi Extraction...\n",
- "Init one photon\n",
- "0 neurons have been initialized\n",
- "In total, 10 neurons were initialized.\n",
- "Compute Background\n",
- "Compute Residuals\n",
- "Update spatial\n",
- "Generating residuals\n",
- "entering the deconvolution \n",
- "2 out of total 10 temporal components updated\n",
- "5 out of total 10 temporal components updated\n",
- "7 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "2 out of total 10 temporal components updated\n",
- "5 out of total 10 temporal components updated\n",
- "7 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "stopping: overall temporal component not changing significantly\n",
- "Update Temporal\n",
- "Initializing update of Spatial Components\n",
- "computing the distance indicators\n",
- "found spatial support for each component\n",
- "memmaping\n",
- "Updating Spatial Components using lasso lars\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "thresholding components\n",
- "Computing residuals\n",
- "--- 0.662768125534 seconds ---\n",
- "Removing tempfiles created\n",
- "Compute Background Again\n",
- "Estimate low rank Background\n",
- "(1000, 30, 31)\n",
- "using 1 processes\n",
- "using 225 pixels per process\n",
- "using 20000 block_size\n",
- "preprocessing ...\n",
- "checking if missing data\n",
- "Single Thread\n",
- "225\n",
- "225\n",
- "225\n",
- "225\n",
- "30\n",
- "initializing ...\n",
- "Roi Extraction...\n",
- "Init one photon\n",
- "0 neurons have been initialized\n",
- "In total, 10 neurons were initialized.\n",
- "Compute Background\n",
- "Compute Residuals\n",
- "Update spatial\n",
- "Generating residuals\n",
- "entering the deconvolution \n",
- "4 out of total 10 temporal components updated\n",
- "7 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "4 out of total 10 temporal components updated\n",
- "7 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "stopping: overall temporal component not changing significantly\n",
- "Update Temporal\n",
- "Initializing update of Spatial Components\n",
- "computing the distance indicators\n",
- "found spatial support for each component\n",
- "memmaping\n",
- "Updating Spatial Components using lasso lars\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "thresholding components\n",
- "Computing residuals\n",
- "--- 0.633975982666 seconds ---\n",
- "Removing tempfiles created\n",
- "Compute Background Again\n",
- "Estimate low rank Background\n",
- "(1000, 30, 31)\n",
- "using 1 processes\n",
- "using 225 pixels per process\n",
- "using 20000 block_size\n",
- "preprocessing ...\n",
- "checking if missing data\n",
- "Single Thread\n",
- "225\n",
- "225\n",
- "225\n",
- "225\n",
- "30\n",
- "initializing ...\n",
- "Roi Extraction...\n",
- "Init one photon\n",
- "0 neurons have been initialized\n",
- "In total, 10 neurons were initialized.\n",
- "Compute Background\n",
- "Compute Residuals\n",
- "Update spatial\n",
- "Generating residuals\n",
- "entering the deconvolution \n",
- "3 out of total 10 temporal components updated\n",
- "6 out of total 10 temporal components updated\n",
- "7 out of total 10 temporal components updated\n",
- "8 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "3 out of total 10 temporal components updated\n",
- "6 out of total 10 temporal components updated\n",
- "7 out of total 10 temporal components updated\n",
- "8 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "stopping: overall temporal component not changing significantly\n",
- "Update Temporal\n",
- "Initializing update of Spatial Components\n",
- "computing the distance indicators\n",
- "found spatial support for each component\n",
- "memmaping\n",
- "Updating Spatial Components using lasso lars\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "thresholding components\n",
- "Computing residuals\n",
- "--- 0.489789962769 seconds ---\n",
- "Removing tempfiles created\n",
- "Compute Background Again\n",
- "Estimate low rank Background\n",
- "(1000, 30, 31)\n",
- "using 1 processes\n",
- "using 225 pixels per process\n",
- "using 20000 block_size\n",
- "preprocessing ...\n",
- "checking if missing data\n",
- "Single Thread\n",
- "225\n",
- "225\n",
- "225\n",
- "225\n",
- "30\n",
- "initializing ...\n",
- "Roi Extraction...\n",
- "Init one photon\n",
- "0 neurons have been initialized\n",
- "In total, 10 neurons were initialized.\n",
- "Compute Background\n",
- "Compute Residuals\n",
- "Update spatial\n",
- "Generating residuals\n",
- "entering the deconvolution \n",
- "3 out of total 10 temporal components updated\n",
- "5 out of total 10 temporal components updated\n",
- "7 out of total 10 temporal components updated\n",
- "8 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "3 out of total 10 temporal components updated\n",
- "5 out of total 10 temporal components updated\n",
- "7 out of total 10 temporal components updated\n",
- "8 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "stopping: overall temporal component not changing significantly\n",
- "Update Temporal\n",
- "Initializing update of Spatial Components\n",
- "computing the distance indicators\n",
- "found spatial support for each component\n",
- "memmaping\n",
- "Updating Spatial Components using lasso lars\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "clearing variables\n",
- "thresholding components\n",
- "Computing residuals\n",
- "--- 0.532068014145 seconds ---\n",
- "Removing tempfiles created\n",
- "Compute Background Again\n",
- "Estimate low rank Background\n",
- "(1000, 30, 31)\n",
- "using 1 processes\n",
- "using 225 pixels per process\n",
- "using 20000 block_size\n",
- "preprocessing ...\n",
- "checking if missing data\n",
- "Single Thread\n",
- "225\n",
- "225\n",
- "225\n",
- "225\n",
- "30\n",
- "initializing ...\n",
- "Roi Extraction...\n",
- "Init one photon\n",
- "0 neurons have been initialized\n",
- "In total, 10 neurons were initialized.\n",
- "Compute Background\n",
- "Compute Residuals\n",
- "Update spatial\n",
- "Generating residuals\n",
- "entering the deconvolution \n",
- "3 out of total 10 temporal components updated\n",
- "6 out of total 10 temporal components updated\n",
- "8 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "3 out of total 10 temporal components updated\n",
- "6 out of total 10 temporal components updated\n",
- "8 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "stopping: overall temporal component not changing significantly\n",
- "Update Temporal\n",
- "Initializing update of Spatial Components\n",
- "computing the distance indicators\n",
- "found spatial support for each component\n",
- "memmaping\n",
- "Updating Spatial Components using lasso lars\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "thresholding components\n",
- "Computing residuals\n",
- "--- 0.543202877045 seconds ---\n",
- "Removing tempfiles created\n",
- "Compute Background Again\n",
- "Estimate low rank Background\n",
- "(1000, 30, 31)\n",
- "using 1 processes\n",
- "using 225 pixels per process\n",
- "using 20000 block_size\n",
- "preprocessing ...\n",
- "checking if missing data\n",
- "Single Thread\n",
- "225\n",
- "225\n",
- "225\n",
- "225\n",
- "30\n",
- "initializing ...\n",
- "Roi Extraction...\n",
- "Init one photon\n",
- "0 neurons have been initialized\n",
- "In total, 10 neurons were initialized.\n",
- "Compute Background\n",
- "Compute Residuals\n",
- "Update spatial\n",
- "Generating residuals\n",
- "entering the deconvolution \n",
- "3 out of total 10 temporal components updated\n",
- "5 out of total 10 temporal components updated\n",
- "7 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "3 out of total 10 temporal components updated\n",
- "5 out of total 10 temporal components updated\n",
- "7 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "stopping: overall temporal component not changing significantly\n",
- "Update Temporal\n",
- "Initializing update of Spatial Components\n",
- "computing the distance indicators\n",
- "found spatial support for each component\n",
- "memmaping\n",
- "Updating Spatial Components using lasso lars\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "thresholding components\n",
- "Computing residuals\n",
- "--- 0.59486413002 seconds ---\n",
- "Removing tempfiles created\n",
- "Compute Background Again\n",
- "Estimate low rank Background\n",
- "(1000, 30, 30)\n",
- "using 1 processes\n",
- "using 225 pixels per process\n",
- "using 20000 block_size\n",
- "preprocessing ...\n",
- "checking if missing data\n",
- "Single Thread\n",
- "225\n",
- "225\n",
- "225\n",
- "225\n",
- "initializing ...\n",
- "Roi Extraction...\n",
- "Init one photon\n",
- "0 neurons have been initialized\n",
- "In total, 10 neurons were initialized.\n",
- "Compute Background\n",
- "Compute Residuals\n",
- "Update spatial\n",
- "Generating residuals\n",
- "entering the deconvolution \n",
- "4 out of total 10 temporal components updated\n",
- "7 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "4 out of total 10 temporal components updated\n",
- "7 out of total 10 temporal components updated\n",
- "9 out of total 10 temporal components updated\n",
- "10 out of total 10 temporal components updated\n",
- "stopping: overall temporal component not changing significantly\n",
- "Update Temporal\n",
- "Initializing update of Spatial Components\n",
- "computing the distance indicators\n",
- "found spatial support for each component\n",
- "memmaping\n",
- "Updating Spatial Components using lasso lars\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "thresholding components\n",
- "Computing residuals\n",
- "--- 0.568876981735 seconds ---\n",
- "Removing tempfiles created\n",
- "Compute Background Again\n",
- "Estimate low rank Background\n",
- "58.1313650608\n",
- "Transforming patches into full matrix\n",
- "Skipped %d Empty Patch 0\n",
- "Generating background\n",
- "\n",
- "******** USING ONE BACKGROUND PER PATCH ******\n",
- "Generating background DONE\n",
- "merging\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "/install/anaconda2/lib/python2.7/site-packages/scipy/sparse/compressed.py:774: SparseEfficiencyWarning: Changing the sparsity structure of a csc_matrix is expensive. lil_matrix is more efficient.\n",
- " SparseEfficiencyWarning)\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[200 211 260 270 320 330]\n",
- "[ 60 70 121 130]\n",
- "[ 35 45 92 102]\n",
- "[124 131 183 191]\n",
- "[273 282 332 341]\n",
- "[143 158 205 216]\n",
- "[280 290 340 350]\n",
- "[275 284 334 343]\n",
- "[203 215 265 276]\n",
- "[156 162 218 220]\n",
- "[ 91 100 150 160]\n",
- "[21 32 80 90]\n",
- "[241 250 301 314]\n",
- "[202 212 263 272]\n",
- "[ 94 103 153 165]\n",
- "[169 176 227 232]\n",
- "[ 83 99 142 157]\n",
- "[226 228 235 237]\n",
- "[170 224 230]\n",
- "[266 277 335]\n",
- "[196 208 268]\n",
- "[140 155 204]\n",
- "[ 84 144 159]\n",
- "[236 289 295]\n",
- "[222 278 283]\n",
- "[40 50]\n",
- "[ 51 110]\n",
- "[201 262]\n",
- "[342 351]\n",
- "[ 97 106]\n",
- "[210 271]\n",
- "[120 180]\n",
- "[316 327]\n",
- "[312 323]\n",
- "[101 163]\n",
- "[10 25]\n",
- "[281 344]\n",
- "[154 214]\n",
- "[31 42]\n",
- "[ 52 111]\n",
- "[ 0 61]\n",
- "[22 81]\n",
- "[ 93 151]\n",
- "[ 67 128]\n",
- "[240 300]\n",
- "[115 174]\n",
- "[185 249]\n",
- "[219 225]\n",
- "[ 53 112]\n",
- "[287 347]\n",
- "[184 193]\n",
- "[321 331]\n",
- "[248 255]\n",
- "[ 57 114]\n",
- "[ 64 122]\n",
- "[311 322]\n",
- "[213 221]\n",
- "[182 190]\n",
- "[346 355]\n",
- "[33 43]\n",
- "[292 353]\n",
- "[ 63 123]\n",
- "[34 44]\n",
- "[349 357]\n",
- "[264 274]\n",
- "[259 267]\n",
- "[ 5 62]\n",
- "[246 305]\n",
- "[172 231]\n",
- "[108 118]\n",
- "[47 55]\n",
- "[147 209]\n",
- "[20 38]\n",
- "[167 178]\n",
- "[30 41]\n",
- "[145 206]\n",
- "[37 95]\n",
- "[152 164]\n",
- "[328 338]\n",
- "[279 286]\n",
- "[146 207]\n",
- "[134 198]\n",
- "[186 247]\n",
- "[14 28]\n",
- "[245 308]\n",
- "[345 354]\n",
- "[ 2 65]\n",
- "[244 252]\n",
- "[16 74]\n",
- "[129 135]\n",
- "[181 242]\n",
- "[105 166]\n",
- "[ 46 104]\n",
- "[179 216]\n",
- "[185 206]\n",
- "No neurons merged!\n",
- "update temporal\n",
- "Generating residuals\n",
- "parallel dot product block size: 20000\n",
- "Start product\n",
- "Transposing\n",
- "16383\n",
- "entering the deconvolution \n",
- "40 out of total 220 temporal components updated\n",
- "76 out of total 220 temporal components updated\n",
- "104 out of total 220 temporal components updated\n",
- "135 out of total 220 temporal components updated\n",
- "160 out of total 220 temporal components updated\n",
- "183 out of total 220 temporal components updated\n",
- "198 out of total 220 temporal components updated\n",
- "206 out of total 220 temporal components updated\n",
- "212 out of total 220 temporal components updated\n",
- "218 out of total 220 temporal components updated\n",
- "220 out of total 220 temporal components updated\n",
- "40 out of total 220 temporal components updated\n",
- "76 out of total 220 temporal components updated\n",
- "104 out of total 220 temporal components updated\n",
- "135 out of total 220 temporal components updated\n",
- "160 out of total 220 temporal components updated\n",
- "183 out of total 220 temporal components updated\n",
- "198 out of total 220 temporal components updated\n",
- "206 out of total 220 temporal components updated\n",
- "212 out of total 220 temporal components updated\n",
- "218 out of total 220 temporal components updated\n",
- "220 out of total 220 temporal components updated\n",
- "stopping: overall temporal component not changing significantly\n"
- ]
- },
- {
- "data": {
- "text/plain": [
- ""
- ]
- },
- "execution_count": 9,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "# %% run\n",
- "cnm = cnmf.CNMF(n_processes=2, method_init='corr_pnr', k=10, gSig=(3, 3), gSiz=(10, 10), merge_thresh=.8,\n",
- " p=1, dview=None, tsub=1, ssub=1, Ain=None, rf=(15, 15), stride=(10, 10),\n",
- " only_init_patch=True, gnb=10, nb_patch=3, method_deconvolution='oasis',\n",
- " low_rank_background=False, update_background_components=False, min_corr=.8,\n",
- " min_pnr=10, normalize_init=False, deconvolve_options_init=None,\n",
- " ring_size_factor=1.5, center_psf=True)\n",
- "\n",
- "cnm.fit(Yr.T.reshape((T,) + dims, order='F'))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 10,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "tB:-2.0,tA:9.0\n",
- "Computing event exceptionality delta\n",
- "Removing Baseline\n",
- "binning data ...\n",
- "interpolating data ...\n",
- "(5, 220)\n",
- "Computing event exceptionality\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "caiman/components_evaluation.py:141: RuntimeWarning: divide by zero encountered in log\n",
- " erf = np.log(erf)\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Evaluating spatial footprint\n",
- "components evaluated:0\n",
- "Neuron:97 includes overlaping spiking neurons\n",
- "Neuron:116 includes overlaping spiking neurons\n",
- "Neuron:154 includes overlaping spiking neurons\n",
- "Neuron:199 includes overlaping spiking neurons\n",
- "components evaluated:200\n",
- "Neuron:217 includes overlaping spiking neurons\n",
- "Keeping 200 and discarding 20\n"
- ]
- }
- ],
- "source": [
- "# %% DISCARD LOW QUALITY COMPONENT\n",
- "final_frate = 10\n",
- "r_values_min = 0.1 # threshold on space consistency\n",
- "fitness_min = - 10 # threshold on time variability\n",
- "# threshold on time variability (if nonsparse activity)\n",
- "fitness_delta_min = - 10\n",
- "Npeaks = 10\n",
- "traces = cnm.C + cnm.YrA\n",
- "# TODO: todocument\n",
- "idx_components, idx_components_bad = cm.components_evaluation.estimate_components_quality(\n",
- " traces, Yr, cnm.A, cnm.C, cnm.b, cnm.f, final_frate=final_frate, Npeaks=Npeaks,\n",
- " r_values_min=r_values_min, fitness_min=fitness_min, fitness_delta_min=fitness_delta_min)\n",
- "\n",
- "print(('Keeping ' + str(len(idx_components)) + ' and discarding ' + str(len(idx_components_bad))))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 11,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "(1000, 128, 128)\n",
- "using 1 processes\n",
- "using 4000 pixels per process\n",
- "using 20000 block_size\n",
- "preprocessing ...\n",
- "checking if missing data\n",
- "Single Thread\n",
- "4000\n",
- "4000\n",
- "4000\n",
- "4000\n",
- "384\n",
- "update spatial ...\n",
- "Initializing update of Spatial Components\n",
- "computing the distance indicators\n",
- "found spatial support for each component\n",
- "memmaping\n",
- "Updating Spatial Components using lasso lars\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "thresholding components\n",
- "eliminating 18 empty spatial components\n",
- "Computing residuals\n",
- "parallel dot product block size: 1000\n",
- "Start product\n",
- "999\n",
- "1999\n",
- "2999\n",
- "3999\n",
- "4999\n",
- "5999\n",
- "6999\n",
- "7999\n",
- "8999\n",
- "9999\n",
- "10999\n",
- "11999\n",
- "12999\n",
- "13999\n",
- "14999\n",
- "15999\n",
- "16383\n",
- "--- 21.2636239529 seconds ---\n",
- "Removing tempfiles created\n",
- "update temporal ...\n",
- "deconvolution ...\n",
- "Generating residuals\n",
- "parallel dot product block size: 20000\n",
- "Start product\n",
- "Transposing\n",
- "16383\n",
- "entering the deconvolution \n",
- "37 out of total 220 temporal components updated\n",
- "75 out of total 220 temporal components updated\n",
- "107 out of total 220 temporal components updated\n",
- "134 out of total 220 temporal components updated\n",
- "163 out of total 220 temporal components updated\n",
- "182 out of total 220 temporal components updated\n",
- "199 out of total 220 temporal components updated\n",
- "210 out of total 220 temporal components updated\n",
- "216 out of total 220 temporal components updated\n",
- "219 out of total 220 temporal components updated\n",
- "220 out of total 220 temporal components updated\n",
- "37 out of total 220 temporal components updated\n",
- "75 out of total 220 temporal components updated\n",
- "107 out of total 220 temporal components updated\n",
- "134 out of total 220 temporal components updated\n",
- "163 out of total 220 temporal components updated\n",
- "182 out of total 220 temporal components updated\n",
- "199 out of total 220 temporal components updated\n",
- "210 out of total 220 temporal components updated\n",
- "216 out of total 220 temporal components updated\n",
- "219 out of total 220 temporal components updated\n",
- "220 out of total 220 temporal components updated\n",
- "stopping: overall temporal component not changing significantly\n",
- "refinement...\n",
- "merge components ...\n",
- "[110 111 119]\n",
- "[ 27 172 193]\n",
- "[ 47 143]\n",
- "(16384, 215)\n",
- "update spatial ...\n",
- "Initializing update of Spatial Components\n",
- "computing the distance indicators\n",
- "found spatial support for each component\n",
- "memmaping\n",
- "Updating Spatial Components using lasso lars\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "clearing variables\n",
- "thresholding components\n",
- "eliminating 3 empty spatial components\n",
- "Computing residuals\n",
- "parallel dot product block size: 1000\n",
- "Start product\n",
- "999\n",
- "1999\n",
- "2999\n",
- "3999\n",
- "4999\n",
- "5999\n",
- "6999\n",
- "7999\n",
- "8999\n",
- "9999\n",
- "10999\n",
- "11999\n",
- "12999\n",
- "13999\n",
- "14999\n",
- "15999\n",
- "16383\n",
- "--- 21.8653271198 seconds ---\n",
- "Removing tempfiles created\n",
- "update temporal ...\n",
- "Generating residuals\n",
- "parallel dot product block size: 20000\n",
- "Start product\n",
- "Transposing\n",
- "16383\n",
- "entering the deconvolution \n",
- "30 out of total 215 temporal components updated\n",
- "63 out of total 215 temporal components updated\n",
- "94 out of total 215 temporal components updated\n",
- "122 out of total 215 temporal components updated\n",
- "149 out of total 215 temporal components updated\n",
- "171 out of total 215 temporal components updated\n",
- "188 out of total 215 temporal components updated\n",
- "202 out of total 215 temporal components updated\n",
- "210 out of total 215 temporal components updated\n",
- "214 out of total 215 temporal components updated\n",
- "215 out of total 215 temporal components updated\n",
- "30 out of total 215 temporal components updated\n",
- "63 out of total 215 temporal components updated\n",
- "94 out of total 215 temporal components updated\n",
- "122 out of total 215 temporal components updated\n",
- "149 out of total 215 temporal components updated\n",
- "171 out of total 215 temporal components updated\n",
- "188 out of total 215 temporal components updated\n",
- "202 out of total 215 temporal components updated\n",
- "210 out of total 215 temporal components updated\n",
- "214 out of total 215 temporal components updated\n",
- "215 out of total 215 temporal components updated\n",
- "stopping: overall temporal component not changing significantly\n"
- ]
- },
- {
- "data": {
- "text/plain": [
- ""
- ]
- },
- "execution_count": 11,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "# %% rerun updating the components to refine\n",
- "cnm = cnmf.CNMF(n_processes=1, k=cnm.A.shape, gSig=[gSig, gSig], merge_thresh=0.8, p=1,\n",
- " dview=None, Ain=cnm.A, Cin=cnm.C, b_in=cnm.b,\n",
- " f_in=cnm.f, rf=None, stride=None, method_deconvolution='oasis', gnb=None,\n",
- " low_rank_background=False, update_background_components=False)\n",
- "\n",
- "cnm.fit(Yr.T.reshape((T,) + dims, order='F'))"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# Step 4: Visualize results\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 12,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "\n",
- " \n",
- "
\n",
- "
Loading BokehJS ... \n",
- "
"
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "application/javascript": [
- "\n",
- "(function(root) {\n",
- " function now() {\n",
- " return new Date();\n",
- " }\n",
- "\n",
- " var force = true;\n",
- "\n",
- " if (typeof (root._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n",
- " root._bokeh_onload_callbacks = [];\n",
- " root._bokeh_is_loading = undefined;\n",
- " }\n",
- "\n",
- "\n",
- " \n",
- " if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n",
- " root._bokeh_timeout = Date.now() + 5000;\n",
- " root._bokeh_failed_load = false;\n",
- " }\n",
- "\n",
- " var NB_LOAD_WARNING = {'data': {'text/html':\n",
- " \"\\n\"+\n",
- " \"
\\n\"+\n",
- " \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n",
- " \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n",
- " \"
\\n\"+\n",
- " \"
\\n\"+\n",
- " \"re-rerun `output_notebook()` to attempt to load from CDN again, or \\n\"+\n",
- " \"use INLINE resources instead, as so: \\n\"+\n",
- " \" \\n\"+\n",
- " \"
\\n\"+\n",
- " \"from bokeh.resources import INLINE\\n\"+\n",
- " \"output_notebook(resources=INLINE)\\n\"+\n",
- " \"
\\n\"+\n",
- " \"
\"}};\n",
- "\n",
- " function display_loaded() {\n",
- " if (root.Bokeh !== undefined) {\n",
- " var el = document.getElementById(\"69784c8e-c8b7-412d-9c10-aa459ec3f84a\");\n",
- " if (el != null) {\n",
- " el.textContent = \"BokehJS \" + Bokeh.version + \" successfully loaded.\";\n",
- " }\n",
- " } else if (Date.now() < root._bokeh_timeout) {\n",
- " setTimeout(display_loaded, 100)\n",
- " }\n",
- " }\n",
- "\n",
- "\n",
- " function run_callbacks() {\n",
- " try {\n",
- " root._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n",
- " }\n",
- " finally {\n",
- " delete root._bokeh_onload_callbacks\n",
- " }\n",
- " console.info(\"Bokeh: all callbacks have finished\");\n",
- " }\n",
- "\n",
- " function load_libs(js_urls, callback) {\n",
- " root._bokeh_onload_callbacks.push(callback);\n",
- " if (root._bokeh_is_loading > 0) {\n",
- " console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n",
- " return null;\n",
- " }\n",
- " if (js_urls == null || js_urls.length === 0) {\n",
- " run_callbacks();\n",
- " return null;\n",
- " }\n",
- " console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n",
- " root._bokeh_is_loading = js_urls.length;\n",
- " for (var i = 0; i < js_urls.length; i++) {\n",
- " var url = js_urls[i];\n",
- " var s = document.createElement('script');\n",
- " s.src = url;\n",
- " s.async = false;\n",
- " s.onreadystatechange = s.onload = function() {\n",
- " root._bokeh_is_loading--;\n",
- " if (root._bokeh_is_loading === 0) {\n",
- " console.log(\"Bokeh: all BokehJS libraries loaded\");\n",
- " run_callbacks()\n",
- " }\n",
- " };\n",
- " s.onerror = function() {\n",
- " console.warn(\"failed to load library \" + url);\n",
- " };\n",
- " console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n",
- " document.getElementsByTagName(\"head\")[0].appendChild(s);\n",
- " }\n",
- " };var element = document.getElementById(\"69784c8e-c8b7-412d-9c10-aa459ec3f84a\");\n",
- " if (element == null) {\n",
- " console.log(\"Bokeh: ERROR: autoload.js configured with elementid '69784c8e-c8b7-412d-9c10-aa459ec3f84a' but no matching script tag was found. \")\n",
- " return false;\n",
- " }\n",
- "\n",
- " var js_urls = [\"https://cdn.pydata.org/bokeh/release/bokeh-0.12.7.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.7.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-tables-0.12.7.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-gl-0.12.7.min.js\"];\n",
- "\n",
- " var inline_js = [\n",
- " function(Bokeh) {\n",
- " Bokeh.set_log_level(\"info\");\n",
- " },\n",
- " \n",
- " function(Bokeh) {\n",
- " \n",
- " },\n",
- " \n",
- " function(Bokeh) {\n",
- " \n",
- " document.getElementById(\"69784c8e-c8b7-412d-9c10-aa459ec3f84a\").textContent = \"BokehJS is loading...\";\n",
- " },\n",
- " function(Bokeh) {\n",
- " console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-0.12.7.min.css\");\n",
- " Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-0.12.7.min.css\");\n",
- " console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.7.min.css\");\n",
- " Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.7.min.css\");\n",
- " console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-tables-0.12.7.min.css\");\n",
- " Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-tables-0.12.7.min.css\");\n",
- " }\n",
- " ];\n",
- "\n",
- " function run_inline_js() {\n",
- " \n",
- " if ((root.Bokeh !== undefined) || (force === true)) {\n",
- " for (var i = 0; i < inline_js.length; i++) {\n",
- " inline_js[i].call(root, root.Bokeh);\n",
- " }if (force === true) {\n",
- " display_loaded();\n",
- " }} else if (Date.now() < root._bokeh_timeout) {\n",
- " setTimeout(run_inline_js, 100);\n",
- " } else if (!root._bokeh_failed_load) {\n",
- " console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n",
- " root._bokeh_failed_load = true;\n",
- " } else if (force !== true) {\n",
- " var cell = $(document.getElementById(\"69784c8e-c8b7-412d-9c10-aa459ec3f84a\")).parents('.cell').data().cell;\n",
- " cell.output_area.append_execute_result(NB_LOAD_WARNING)\n",
- " }\n",
- "\n",
- " }\n",
- "\n",
- " if (root._bokeh_is_loading === 0) {\n",
- " console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n",
- " run_inline_js();\n",
- " } else {\n",
- " load_libs(js_urls, function() {\n",
- " console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n",
- " run_inline_js();\n",
- " });\n",
- " }\n",
- "}(window));"
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- " \n",
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "%matplotlib notebook\n",
- "output_notebook() # create output within this notebook\n",
- "# reset_output() # default creates output in seperate html file\n",
- "traces_fluo = cm.utils.visualization.nb_view_patches(Yr, cnm.A, cnm.C, cnm.b, cnm.f, \n",
- " dims[0],dims[1], denoised_color='red',\n",
- " image_neurons=cn_filter)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 13,
- "metadata": {
- "collapsed": true
- },
- "outputs": [],
- "source": [
- "def nb_view_background(b, f, dims):\n",
- " bokeh.io.curdoc().clear()\n",
- " d1, d2 = dims\n",
- " nb = np.linalg.norm(b, 2, 0)\n",
- " b = b / nb\n",
- " f = f * nb[:, None]\n",
- " nr, T = f.shape\n",
- " # split sources up, such that Bokeh does not warn\n",
- " # \"ColumnDataSource's columns must be of the same length\"\n",
- " source = ColumnDataSource(data=dict(x=np.arange(T), y=f[0] / 100))\n",
- " source_ = ColumnDataSource(data=dict(z=f / 100))\n",
- " nb = np.linalg.norm(b, 2, 0)\n",
- " source3 = ColumnDataSource(\n",
- " data=dict(image=[b[:, 0].reshape(dims, order='F')[::-1]],\n",
- " im=[b.T.reshape((-1,) + dims, order='F')[:, ::-1]],\n",
- " x=[0], y=[d2], dw=[d1], dh=[d2]))\n",
- "\n",
- " callback = CustomJS(args=dict(source=source, source_=source_, source3=source3), code=\"\"\"\n",
- " var data = source.get('data')\n",
- " var data_ = source_.get('data')\n",
- " var f = cb_obj.get('value')-1\n",
- " x = data['x']\n",
- " y = data['y']\n",
- " for (i = 0; i < x.length; i++) {\n",
- " y[i] = data_['z'][i+f*x.length]\n",
- " }\n",
- "\n",
- " var dh = source3.data['dh'][0];\n",
- " var dw = source3.data['dw'][0];\n",
- " var image = source3.data['image'][0];\n",
- " var images = source3.data['im'][0];\n",
- " for (var i = 0; i < x.length; i++) {\n",
- " for (var j = 0; j < dw; j++){\n",
- " image[i*dh+j] = images[f*dh*dw + i*dh + j];\n",
- " }\n",
- " }\n",
- "\n",
- " source3.trigger('change')\n",
- " source.trigger('change')\n",
- " \"\"\")\n",
- "\n",
- " plot = bpl.figure(plot_width=600, plot_height=300)\n",
- " plot.line('x', 'y', source=source, line_width=1, line_alpha=0.6)\n",
- "\n",
- " slider = bokeh.models.Slider(start=1, end=f.shape[0], value=1, step=1,\n",
- " title=\"Background Number\", callback=callback)\n",
- "\n",
- " xr = Range1d(start=0, end=d1)\n",
- " yr = Range1d(start=d2, end=0)\n",
- " plot1 = bpl.figure(x_range=xr, y_range=yr, plot_width=300, plot_height=300)\n",
- " colormap = mpl.cm.get_cmap('jet')\n",
- " cmap = bokeh.models.mappers.LinearColorMapper([mpl.colors.rgb2hex(m)\n",
- " for m in colormap(np.arange(colormap.N))])\n",
- " cmap.high = b.max()\n",
- " plot1.image(image='image', x='x', y='y', dw='dw', dh='dh',\n",
- " color_mapper=cmap, source=source3)\n",
- "\n",
- " bpl.show(bokeh.layouts.layout([[slider], [bokeh.layouts.row(plot1, plot)]]))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 14,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- " \n",
- "