From 2cd29820e694fb9a31f310e25b03f9645b3e7b03 Mon Sep 17 00:00:00 2001
From: Elian Dib <elian.dib@inria.fr>
Date: Wed, 31 Jul 2019 09:42:40 +0200
Subject: [PATCH] Got rid of modules by using private functions instead

---
 .gitmodules                       |   3 -
 LRTC                              |   1 -
 private/Fold.m                    |   3 +
 private/HardThresholdNum.mexa64   | Bin 0 -> 9264 bytes
 private/HardThresholdNum.mexw64   | Bin 0 -> 11264 bytes
 private/LRTCADMrho.m              | 258 ++++++++++++++++++++++++++++++
 private/LabelToCell.mexa64        | Bin 0 -> 10624 bytes
 private/LabelToCell.mexw64        | Bin 0 -> 15872 bytes
 private/Pro2TraceNorm.m           |  78 +++++++++
 private/RemoveSegsFromMask.mexa64 | Bin 0 -> 9728 bytes
 private/RemoveSegsFromMask.mexw64 | Bin 0 -> 12288 bytes
 private/SQErrors.mexa64           | Bin 0 -> 11136 bytes
 private/SQErrors.mexw64           | Bin 0 -> 16896 bytes
 private/SegError.mexa64           | Bin 0 -> 10176 bytes
 private/SegError.mexw64           | Bin 0 -> 12800 bytes
 private/SegError0.mexa64          | Bin 0 -> 10280 bytes
 private/SegError0.mexw64          | Bin 0 -> 12800 bytes
 private/SoftThresholdNum.mexa64   | Bin 0 -> 9264 bytes
 private/SoftThresholdNum.mexw64   | Bin 0 -> 11264 bytes
 private/Unfold.m                  |   2 +
 private/UpdateXOmega.mexa64       | Bin 0 -> 10432 bytes
 private/UpdateXOmega.mexw64       | Bin 0 -> 16896 bytes
 22 files changed, 341 insertions(+), 4 deletions(-)
 delete mode 100644 .gitmodules
 delete mode 160000 LRTC
 create mode 100644 private/Fold.m
 create mode 100644 private/HardThresholdNum.mexa64
 create mode 100644 private/HardThresholdNum.mexw64
 create mode 100644 private/LRTCADMrho.m
 create mode 100644 private/LabelToCell.mexa64
 create mode 100644 private/LabelToCell.mexw64
 create mode 100644 private/Pro2TraceNorm.m
 create mode 100644 private/RemoveSegsFromMask.mexa64
 create mode 100644 private/RemoveSegsFromMask.mexw64
 create mode 100644 private/SQErrors.mexa64
 create mode 100644 private/SQErrors.mexw64
 create mode 100644 private/SegError.mexa64
 create mode 100644 private/SegError.mexw64
 create mode 100644 private/SegError0.mexa64
 create mode 100644 private/SegError0.mexw64
 create mode 100644 private/SoftThresholdNum.mexa64
 create mode 100644 private/SoftThresholdNum.mexw64
 create mode 100644 private/Unfold.m
 create mode 100644 private/UpdateXOmega.mexa64
 create mode 100644 private/UpdateXOmega.mexw64

diff --git a/.gitmodules b/.gitmodules
deleted file mode 100644
index abbd236..0000000
--- a/.gitmodules
+++ /dev/null
@@ -1,3 +0,0 @@
-[submodule "+LRTC"]
-	path = +LRTC
-	url = git@gitlab.inria.fr:edib/lrtc.git
\ No newline at end of file
diff --git a/LRTC b/LRTC
deleted file mode 160000
index 3f7710a..0000000
--- a/LRTC
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 3f7710a61341949178d3d56acec2c67ec013248e
diff --git a/private/Fold.m b/private/Fold.m
new file mode 100644
index 0000000..ea9c7ff
--- /dev/null
+++ b/private/Fold.m
@@ -0,0 +1,3 @@
+function [X] = Fold(X, dim, i)
+dim = circshift(dim, [1-i, 1-i]);
+X = shiftdim(reshape(X, dim), length(dim)+1-i);
\ No newline at end of file
diff --git a/private/HardThresholdNum.mexa64 b/private/HardThresholdNum.mexa64
new file mode 100644
index 0000000000000000000000000000000000000000..9ab474f4859653ab58d923dc4fbf0ce7ebcc4353
GIT binary patch
literal 9264
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
Wf$}FT?m_xsI0IVnbf6iIZa)CKXwumL

literal 0
HcmV?d00001

diff --git a/private/HardThresholdNum.mexw64 b/private/HardThresholdNum.mexw64
new file mode 100644
index 0000000000000000000000000000000000000000..038c4454f97182b4a6d22cae8778e560a5c6ec8b
GIT binary patch
literal 11264
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

literal 0
HcmV?d00001

diff --git a/private/LRTCADMrho.m b/private/LRTCADMrho.m
new file mode 100644
index 0000000..417f921
--- /dev/null
+++ b/private/LRTCADMrho.m
@@ -0,0 +1,258 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ADM algorithm: tensor completion
+% paper: Tensor completion for estimating missing values in visual data
+% date: 05-22-2011
+% min_X: \sum_i \alpha_i \|X_(i)\|_*
+% s.t.:  X_\Omega = T_\Omega
+%Note MLP : corresponds to algorithm 4 (HaLRTC) in the article
+%(i.e. using augmented lagrangian method and alternating direction).
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%function [X_final, X, M, rank, errList, OmegaPrime] = LRTCADMrho(T, Omega, alpha, betaMult, maxIter, epsilon, TraceNormToRankParam, CorruptCols,AreaMask, maxRank, X)
+function [X_final, X, M, rank, errList,OmegaPrime] = LRTCADMrho(T, Omega, alpha, betaMult, maxIter, epsilon, TraceNormToRankParam, CorruptCols, maxRank, X)
+
+DoCenter = false; %center the data before completion.
+legacyThreshold = false; %true  : threshold value determined for nuclear norm minimization.
+                         %false : threshold value determined for rank minimization.
+                         %This parameter is automatically set to true when TraceNormToRankParam=0 (nuclear norm minimization).
+l0Reg = false;
+
+
+Omega = logical(Omega);
+meanT = sum(T(:).*Omega(:)) / sum(Omega(:));
+
+if(DoCenter)
+    OmegaNan = double(Omega); OmegaNan(~Omega) = nan;
+    meanTCol = nanmean(T.*OmegaNan,2);
+    clear OmegaNan
+    T = bsxfun(@minus,T,meanTCol);
+    
+    normT2 = sum((T(:).*Omega(:)).^2);
+else
+    normT2 = sum(((T(:)-meanT).*Omega(:)).^2);
+end
+
+if(l0Reg)
+    numKnown=sum(Omega(:));
+end
+%numKnownCorrupt=sum(vec(Omega(:,CorruptCols,:)));
+%maxVal2 = 255^2;
+
+if(isscalar(epsilon))
+    epsilonStop = epsilon;
+    epsilonNoise = epsilon;
+else
+    epsilonStop = epsilon(1);
+    epsilonNoise = epsilon(2);
+end
+if(epsilonNoise==0||~exist('CorruptCols','var')||isempty(CorruptCols)||~any(ismember(CorruptCols,1:size(T,2))))
+    NoisyData=false;
+    if(l0Reg)
+        CorruptCols = intersect(CorruptCols,1:size(T,2));
+        NoCorruptCols = setdiff(1:size(T,2),CorruptCols);
+    else
+        CorruptCols = [];
+        NoCorruptCols = 1:size(T,2);
+    end
+else
+    NoisyData=true;
+    CorruptCols = intersect(CorruptCols,1:size(T,2));
+    NoCorruptCols = setdiff(1:size(T,2),CorruptCols);
+    if(isempty(NoCorruptCols))
+        AllCorrupt = true;
+        normTCorrupt2 = normT2;
+    else
+        AllCorrupt = false;
+        if(DoCenter)
+            normTCorrupt2 = sum(vec((T(:,CorruptCols,:).*Omega(:,CorruptCols,:))).^2);
+        else
+            meanTCorrupt = sum(vec((T(:,CorruptCols,:).*Omega(:,CorruptCols,:)))) / sum(vec(Omega(:,CorruptCols,:)));
+            normTCorrupt2 = sum(vec(((T(:,CorruptCols,:)-meanTCorrupt).*Omega(:,CorruptCols,:))).^2);
+        end
+    end
+end
+
+if (~exist('X','var')||isempty(X))
+    X = T;
+    if(DoCenter)
+        X(~Omega) = 0;
+    else
+        X(~Omega) = meanT;%X(logical(1-Omega)) = 256;
+    end
+    %OmegaNan=double(Omega);OmegaNan(~Omega)=nan;
+    %X = T.*Omega + (1-Omega).*repmat(nanmean(T.*OmegaNan),size(T,1),1);
+    %clear OmegaNan
+end
+if (~exist('TraceNormToRankParam','var')|| isempty(TraceNormToRankParam))
+    TraceNormToRankParam=0;
+end
+if(~exist('maxRank','var')||isempty(maxRank))
+    maxRank=inf;
+end
+
+if(TraceNormToRankParam==0)
+    legacyThreshold = true;
+end
+
+
+%Check the valid dimensions for tensor unfolding
+TensorDim = ndims(T);
+if(TensorDim==2)
+    TensorDim=1;
+    alpha=1;
+    ValidDims=1;
+    numValidDims=1;
+else
+    ValidDims = 1:TensorDim; ValidDims(alpha(ValidDims)==0)=[];
+    numValidDims = length(ValidDims);
+end
+
+dim = size(T);
+M = cell(TensorDim, 1);
+Y = M;
+rank = zeros(TensorDim,1);
+beta = zeros(1,TensorDim);
+if(l0Reg)
+    OmegaPrime = Omega;
+else
+    OmegaPrime=[];
+end
+
+trMult=@(x)x'*x;
+for i = ValidDims
+    M{i} = X;
+    Y{i} = zeros(dim, class(T));
+    %beta(i) = 1.25 / lansvd(Unfold(X,dim,i), 1, 'L');
+    SV12 = sqrt(svds(trMult(Unfold(X,dim,i)), 2));
+    if(legacyThreshold)
+        beta(i) = 2 / (SV12(1)+SV12(2));    %initial threshold = 1/beta = mean(SV1+SV2);
+        beta(i) = beta(i)*(alpha(i).^2);
+    else
+        beta(i) = 8 / (SV12(1)+SV12(2)).^2; %initial threshold = sqrt(2/beta) = mean(SV1+SV2);
+        beta(i) = beta(i)*alpha(i);
+    end
+end
+%beta(ValidDims) = max(beta)*ones(1,numValidDims);
+
+
+Ysum = zeros(dim, class(T));
+Msum = zeros(dim, class(T));
+errList=[];
+fprintf('Iteration:                  ');
+for k = 1: maxIter
+    
+    % update M
+    Ysum = 0*Ysum;
+    Msum = 0*Msum;
+    for i = ValidDims
+        if(legacyThreshold)
+            [M{i}, rank(i), ~] = Pro2TraceNorm(Unfold(X-Y{i}/beta(i), dim, i), alpha(i)/beta(i), TraceNormToRankParam);
+        else
+            [M{i}, rank(i), ~] = Pro2TraceNorm(Unfold(X-Y{i}/beta(i), dim, i), alpha(i)*sqrt(2/beta(i)), TraceNormToRankParam);
+        end
+        M{i} = Fold(M{i}, dim, i);
+        Ysum = Ysum + Y{i};
+        Msum = Msum + beta(i)*M{i};
+        fprintf('\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b%5i (rank =%4i)',k,rank(i));
+    end
+    
+    if(any(rank > maxRank))
+        break;
+    end
+    
+    % update X (outside of Omega)
+    X = (Msum + Ysum) / sum(beta);
+    
+    
+    % compute the error and check stop criterion
+    if(l0Reg)
+        [errList(end+1),errCorrupt2] = SQErrors(X,T,OmegaPrime,CorruptCols);
+    else
+        [errList(end+1),errCorrupt2] = SQErrors(X,T,Omega,CorruptCols);
+    end
+    errList(end) = errList(end) / normT2;
+    %errList(end+1) = norm((X-T).*Omega,'fro')^2 / normT2;
+    %errList(end+1) = sum(((X(:)-T(:)).*Omega(:)).^2) / normT2;%/ numKnown / maxVal2;
+    if (errList(end) < epsilonStop || k == maxIter )
+    %if k == maxIter
+        X_final = X;
+        X_final(Omega) = T(Omega);
+        if(DoCenter)
+            X_final = bsxfun(@plus,X_final,meanTCol);
+        end
+        fprintf('\n');
+        break;
+    end
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Update X (in Omega)
+if(NoisyData) %l2 tolerance:
+    % Allow a small error epsilon (in l2 norm) on the known elements of the matrix.
+    if(AllCorrupt)
+        lambda = max(sqrt( errList(end) / (epsilonNoise) ) - 1, 0);
+        X = X.*(1-Omega) + ((X + lambda*T)/(1+lambda)).*Omega;
+        %X(Omega) = ( X(Omega) + lambda * T(Omega) ) / (1 + lambda); %Much slower by indexing with Omega.
+    else
+        errCorrupt2 = errCorrupt2 / normTCorrupt2;
+        %errCorrupt2 = norm((X(:,CorruptCols,:)-T(:,CorruptCols,:)).*Omega(:,CorruptCols,:),'fro')^2 / normTCorrupt2;
+        %errCorrupt2 = sum(vec((X(:,CorruptCols,:)-T(:,CorruptCols,:)).*Omega(:,CorruptCols,:)).^2)/ normTCorrupt2;%numKnownCorrupt / maxVal2;
+        lambda = max(sqrt( errCorrupt2 / (epsilonNoise) ) - 1, 0);
+
+        UpdateXOmega(X,T,Omega,lambda,CorruptCols); %faster with mex.
+        %X(:,CorruptCols,:) = X(:,CorruptCols,:).*(1-Omega(:,CorruptCols,:)) + ((X(:,CorruptCols,:) + lambda*T(:,CorruptCols,:))/(1+lambda)).*Omega(:,CorruptCols,:);
+        %X(:,NoCorruptCols,:) = X(:,NoCorruptCols,:).*(1-Omega(:,NoCorruptCols,:)) + T(:,NoCorruptCols,:).*Omega(:,NoCorruptCols,:);
+    end
+else
+    
+    if(l0Reg)
+        
+    OmegaPrime = Omega;
+    
+    %l1 tolerance:
+    %{
+    X0 = Omega(:,CorruptCols,:).*(X(:,CorruptCols,:)-T(:,CorruptCols,:));
+    lambda_l1 = SoftThresholdNum(sort(abs(X0(:)),'descend'),5e5);%3e8
+    
+    X(:,CorruptCols,:) = (1-Omega(:,CorruptCols,:)).*X(:,CorruptCols,:) + Omega(:,CorruptCols,:).*( T(:,CorruptCols,:) + max(abs(X0)-lambda_l1,0).*(2*(X0>0)-1) );
+    X(:,NoCorruptCols,:) = (1-Omega(:,NoCorruptCols,:)).*X(:,NoCorruptCols,:) + Omega(:,NoCorruptCols,:).*T(:,NoCorruptCols,:);
+    %}
+    
+    
+    %l0 tolerance:
+    %%{
+    %if(any(rank>1))
+    OmegaPrimeId=Omega(:,CorruptCols,:).*(abs(X(:,CorruptCols,:)-T(:,CorruptCols,:)));
+    [OmegaPrime0,OmegaPrimeId] = sort(OmegaPrimeId(:),'descend');
+    
+    numTh = HardThresholdNum(OmegaPrime0,3e6);%2e5%1e8
+    
+    OmegaPrime0 = OmegaPrime(:,CorruptCols,:);
+    OmegaPrime0(OmegaPrimeId(1:numTh))=false;
+    %OmegaPrime0(OmegaPrimeId(1:round(numKnown*max(rank)/min(size(T)))))=false;
+    %OmegaPrime0(OmegaPrimeId(1:round(numKnown/180)))=false;
+    
+    OmegaPrime(:,CorruptCols,:) = OmegaPrime0;
+    %end
+    
+    X = X.*(1-OmegaPrime) + T.*OmegaPrime;
+    
+    %}
+    else
+        X = X.*(1-Omega) + T.*Omega;
+        %X(Omega) = T(Omega);%Much slower by indexing with Omega.
+    end
+    
+end
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+    % update Y
+    for i = ValidDims
+        Y{i} = Y{i} + beta(i)*(M{i} - X);
+    end
+    
+    % update beta
+    beta  = beta  * betaMult;
+    
+end
+
diff --git a/private/LabelToCell.mexa64 b/private/LabelToCell.mexa64
new file mode 100644
index 0000000000000000000000000000000000000000..08d3e2f9786bef5bf676e478992daf59528105b4
GIT binary patch
literal 10624
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
Rvp+%(q>6!I1)3zf{Q&X(vzh<^

literal 0
HcmV?d00001

diff --git a/private/LabelToCell.mexw64 b/private/LabelToCell.mexw64
new file mode 100644
index 0000000000000000000000000000000000000000..d5b487247ef8202c2dbd5fe3fc75dcf9a88e76aa
GIT binary patch
literal 15872
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
NR!9OFC5Lnf006H-3TyxX

literal 0
HcmV?d00001

diff --git a/private/Pro2TraceNorm.m b/private/Pro2TraceNorm.m
new file mode 100644
index 0000000..fed1492
--- /dev/null
+++ b/private/Pro2TraceNorm.m
@@ -0,0 +1,78 @@
+function [X, n, Sigma2] = Pro2TraceNorm(Z, tau, TraceNormToRankParam)
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% min: 1/2*||Z-X||^2 + ||X||_tr
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% [S, V, D, Sigma2] = MySVDtau(Z, tau);
+% V = max(diag(V) - tau, 0);
+% n = sum(V > 0);
+% X = S(:, 1:n) * diag(V(1:n)) * D(:, 1:n)';
+
+%TraceNormToRankParam : - Set to zero (default) for trace norm minimization (soft thresholding of singular values).
+%                       - Set to inf for actual rank minimization (hard thresholding of singular values).
+%                       - Other positive values should give intermediate results (keeping some high frequencies in the final matrix).
+
+%% new
+[m, n] = size(Z);
+
+if(nargin<3)
+    TraceNormToRankParam=0;
+end
+
+if 2*m < n
+    AAT = Z*Z';
+    [S, Sigma2, D] = svd(AAT);
+    Sigma2 = diag(Sigma2);
+    V = sqrt(Sigma2);
+    tol = max(size(Z)) * eps(max(V));
+    n = sum(V > max(tol, tau));
+    
+    if(isinf(TraceNormToRankParam))
+        sub = zeros(1,n);
+    else
+        sub = ([0 [1:n-1]/(n-1)].^TraceNormToRankParam)*tau;
+    end
+    
+    mid = max(V(1:n)-sub', 0) ./ V(1:n) ;
+    X = S(:, 1:n) * diag(mid) * ( S(:, 1:n)' * Z );
+    return;
+end
+if m > 2*n
+    ATA = Z'*Z;
+    [S, Sigma2, D] = svd(ATA);
+    Sigma2 = diag(Sigma2);
+    V = sqrt(Sigma2);
+    tol = max(size(Z)) * eps(max(V));
+    n = sum(V > max(tol, tau));
+    
+    if(isinf(TraceNormToRankParam))
+        sub = zeros(1,n);
+    else
+        sub = ([0 [1:n-1]/(n-1)].^TraceNormToRankParam)*tau;
+    end
+    
+    mid = max(V(1:n)-sub', 0) ./ V(1:n) ;
+    X = (Z *  D(:, 1:n)) * bsxfun(@times, D(:, 1:n)', mid);
+    %X = Z * ( D(:, 1:n) * diag(mid) * D(:, 1:n)' );
+    return;
+    
+    %[X, n, Sigma2] = Pro2TraceNorm(Z', tau, TraceNormToRankParam);
+    %X = X';
+    %return;
+end
+
+%%{
+[S,V,D] = svd(Z);
+Sigma2 = diag(V).^2;
+n = sum(diag(V) > tau);
+
+if(isinf(TraceNormToRankParam))
+    sub = zeros(1,n);
+else
+    sub=([0 [1:n-1]/(n-1)].^TraceNormToRankParam)*tau;
+end
+V(1:n,1:n) = diag(diag(V(1:n,1:n))-sub');
+%V(2:n,2:n) = max(V(2:n,2:n)-subtractval, 0);
+X = S(:, 1:n) * V(1:n,1:n) * D(:, 1:n)';
+%}
+
diff --git a/private/RemoveSegsFromMask.mexa64 b/private/RemoveSegsFromMask.mexa64
new file mode 100644
index 0000000000000000000000000000000000000000..90d3b02f3348eb8f162649776419ddf448d7809b
GIT binary patch
literal 9728
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
PRIxEIFdRoS9Nm5ZBw10k

literal 0
HcmV?d00001

diff --git a/private/RemoveSegsFromMask.mexw64 b/private/RemoveSegsFromMask.mexw64
new file mode 100644
index 0000000000000000000000000000000000000000..8210965670c67f41036c323a40e19a7a6047ac6b
GIT binary patch
literal 12288
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

literal 0
HcmV?d00001

diff --git a/private/SQErrors.mexa64 b/private/SQErrors.mexa64
new file mode 100644
index 0000000000000000000000000000000000000000..5e12a1a1113e6c2e719aa4c7afea01991a8cfc33
GIT binary patch
literal 11136
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
X05zTgl)tgre*>~Sh(QHS65W0P23{MU

literal 0
HcmV?d00001

diff --git a/private/SQErrors.mexw64 b/private/SQErrors.mexw64
new file mode 100644
index 0000000000000000000000000000000000000000..b9011f0895293e7543e758f96144d268008cebb5
GIT binary patch
literal 16896
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
TNLbLZV8;S*;us}{d<Xylm#{Jf

literal 0
HcmV?d00001

diff --git a/private/SegError.mexa64 b/private/SegError.mexa64
new file mode 100644
index 0000000000000000000000000000000000000000..c63067fc13732357eb57fee471b3e3a21ffefd51
GIT binary patch
literal 10176
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
J9?fuc`vEAK7AXJ#

literal 0
HcmV?d00001

diff --git a/private/SegError.mexw64 b/private/SegError.mexw64
new file mode 100644
index 0000000000000000000000000000000000000000..d97ba7e8d959db6d7c6c129d64e18809ff98836e
GIT binary patch
literal 12800
zcmeZ`n!v!!z`(%5z`*eTKLf)K1_*F~P<Y873=9l>^1JvLws4+R+`;H`Rxu<avsj^^
zC_lX@F;^iuF)uH_L?J0vp{O)ZAu~_G#XndfH$Np+kC&HA1!}Sg<ISxB3EQ8+aHNFF
zv!I0S&$8{dJ%`X+o(F>Yo1RC5>CMk061G3<onHf1XVzEqEEKGN+q0^K?avO`Z33%5
zWVankZw1pqnaLR-JD}Dw1h_IVq_nX!+`GmQ0TcVcprpXf#K*uO!oa{F1rgPeU|?Vn
z0J9qyK@^D1#K6D?VlyCUh6#{BEOTLCU}8vMglU56g&Tt4LsV?AWMBvYnPtVmPywO~
z7#OyIEDB&?xB{X<Vj$cAah8B71A`2Rj{_T+GB8X*mNQ^rh(I<6S&o5$L9ZmWqJ)8g
zL0JguM3CP>i2+HS0s}*WUQtS7Ng@M-8$SaBg8@`6C~T0_IWRCd=s}b*8~}-f5)l&v
z1A_*LgTM|93<vZIAPT{L1O)&{ofbk3hy^w;JuNe(7!p<t2@IgXWnj<&$s#aVT~TpS
zG6OX13ZUxr5Nbdyh`Q9A{A5U2GBiNdf&2qf0L2ar3{Ftyu%|paV^laiI&)M6JUUBM
zBs@B6R1_RT9K#&LJ(}Mrcy@nu?7q?bld*)yqnEcqk%8gGVipF5=HIM!Ac6THfk`Y3
z3?AKlFFYW$NB4^t&S0h=he!917lv^5jThPwwt!FfhZmA?_JbF~EDQ`j-9J36Uzf6a
zTE78XRt+-SjD>;0__jyu+Y$pG?e9L?|0j5KvwK>z*p;$*TC>=L6?TCX^0F{6{6Fl`
ze4N80`LKue(W2`hC!J+xU}*lq23FP$Qud4)<W@h97n_k}R)S>CKx717%mm9YgY}#T
z$!vniNWAD~W?*PJPzv(+H;@EKrAN1)!iy-7ism1TWzt}7DU1tJ`3IyjA0z@&=?7s*
zcy!-*;RIq^-vC?0ro_PT!V@F_QY8j<0uNZm2PC5pmWfeu@aWD_@$l#_Q3>$qu2G5b
zXg;Fg81ES87<2dx6oBJ1G%VaP#4!{aivgb9H$A$4y%7BO|G!5!_lx;Vpg`dE>HhIz
z7L57e#d0vyn*$VovmtD7JoSUwA3VC9B|N%Mcyzj`7`$i)i+L;fbiV)zXuQZ`VqkDJ
zKH$;WqOyX4fx)x;s$;JQ<BLMDx)UCq>@T92K*ByM96sGIJiA#`Ji32+@UQ=2d>dqd
zg-554ih^hJe<uF6`HTz<p1tA!dcB!Ent!nr#WX)+_U%5-AAZS4`;cdEh>AcOfBva7
ze)$$~-u%p;&(wU7#iKV!!6W%#8vm6;Y5e&YKJ({0eMsZKaxjfQ|AeRYfub8}{8vt;
z@#h~*<1fC!k;Z@JM4AVG-D!{HgPzvMi={n#MUJHL%eyczcrZ(O^agSKKM0X3dhgNg
zqoUx^T%)4FaJ)rj2G~*t2L3ijMg|6c%@P#{SL6Sm_ytTCD>5+f%QJX%LxR8~nW6ay
zV-2f^^}#YwIyj=h!0;lS5ft)1Dh8h2*I#IXIVV8TpvnkJr;rH$4N_<a3WV<SFXSM!
zPxpft?2Mp1vIiW#uEqykjW79hpWqKa>D&6Gq{6jZ-tqrw7yk7zDi)62oW_?NnNNGP
z-Y(IZ;E{Z=!N!20MC=p4fXh(^$NvXDIr7J_9ODl;_K82@#Q#Ig=RJ}Sc~~DVy6X7<
zkZ1Ej7SH5Ep4LZ-cDS}4sFP1~<j*_sng7{=PyBHwJ~{FW`ZBy0+6}5tUcUJE|G(#P
zS8#xI_kcsjv-vp7|ARiA5Lfyn|MYA=%Fzjt1BauJb&ZM!f7A7U|NrxAlz`In92HQ-
z>Ct>70GyCx9b@9-Vh{gUT_eN5@LzQvn4AD6o4{lVm`nqc5n$2_Oxl1+Jus;NCb?u7
z7|xvWXnv#7da1;+`4wY{28a-A{>50rwFBe@kLDv9hhK=XFfhDkees-`fq{S90kD{7
z_XQCB5>(guwjSW0dJxRj0mT@kyet8gm!P6D3{*^dbbs>c{%CyiMHdUWh+sE9@bU!%
z1H%h0W(J0?8yzkx4i4KHn{BUwD!3A^o$MgFSL_T7$5{_(F))DK^1>fnx|F29km6)u
z@aW}@=VV}b(Z|NX@S>0%EKtSH!0@6LB+vsE5Iraj7T+Wd66a=MXgyG>`Qi!_$OR<|
z9=)OyA@WTi`EYKKWx-mI`qRPaf7j_36ImG;99sVKxBC76|NliW$k6T^9?cdEB`O}>
zCth3w`=vy}qg&de`}7NGPEh(gwhL5Gdv>4ufB8QvgBAk=Bp|zER184Hk_D((@&Ff0
zafi=<%OY^K0<KIPx;}QZp3wxA=&c9pS&R?74)}kflXaIS1H+4lj0_A8T|YWpR4kfp
z*K0B`Fu{W9Fv!R6m>3v3WoLj?3NwRLo_}!}R5e_3=sNe}E!d&_QxA6^_JBFW0py1G
z!)MNTbRY5Pj8O3Dbdcx_5b)^q;0OzM1Vx&IXZMHhUq0O*TQ8OJTZ)=!GBDJG;%yTH
z14FOV|K=Zz<ytScF)%Q6-vE_)tq1s9dKth$(0$#r``nAgfB*l7NtKlObRUBVFJOh~
zX#USws@-~^RNbfhnDHf$mKIj9eh4S|@BjaB89xRFhSvWjtj+(KOSRx;IUrjh3>Q{}
zJL)x?@$JqS6$6OJD?FNyI5@_|$AKyXXxPK*b#MfDbj$L}f{NiE-Jd+VUwX9OE@ka?
zW_&FKieGDXkmHVbU-Rfb`~NaDAahhKK+y^fO{keADgt2RJiC8%-}31G*!+vJl=a1L
zW{CdF9^L1lx=U0nz|rus{NMloXCQg;#cB>vN-a@L_2_0%1vR`px;;2vvwB#cC=oF}
z@WF$BBkvA%28PmiMv%O?f${ZsnBIJdUiKH$*ccdIOTGx_U|{Gz@uCMJ%wlxlHT#QJ
z4hDt|jG+8_7?k&oPrd+^)GY`2r$Wqwnbpn#$|$8EO+qiKARP7=g&YhFuiqf)e-Y2Y
z!0;jpVJJvHqzpg_ThH#FpagZxqx<EH6YL-_mWnt3W-Jx*=sy4AJ}lxvVSC-9J47X-
z+XqyKgR>1vAio3^4j?<4-)Ow32OCr(;L*#wMvZ|1<f)h2LB+s1utX{Ai>;ts3o6E-
ze%%P=zg)r2z~B%JDxCPYvCdaxU}!xFF1Gny4tKEjt1&RV2x4Vmc+toX4+W7IB@hm$
z@yQpN><kRAUv(V@#a}c$J%xI7zwu~(<IsJx`6nZP`!Y~5cAE|4*%Iy6+okFry}T?S
zquIgED*=UVl}9fx2T1HQSRMbA1FzFPx<%)zGB9{HpZMQ>XeX$X(EPw&`@{xD&&wx#
zj1T#Ax<2sfbbY}u0H!~D;urA!z%R(UQk8)LQ%;a~p(+CdOby7~PyB+sOI1NNZH!6)
zC{M&5-pLAbY6TOhMgXTn37_tRJA9)U7}6|Re?IyDzqHaLnN{cM|NkDnqA#C-C?0`E
zOHe1VG=2v+6G)w-L}`eR_96c5jv^ktff63f7x=e3vU&9KH2C!Lobu=tQSr3CSR&Ew
z#p7dru!yVMiG%r|kM)5f4v*$T8n5pgU-D?Z1Ws-u%~dK4wV=S^+Q9gl&FH{uCU9Dp
z0EIIo&bn^CXl7+#Fuv4!poF{Sb}73@yXYbna0*a}J`7RQV0&DJfq|jxW(iBnrBc4G
z(=WELGB9+VezBGnngbM~51)ak_2?GW25IlU*?r2xSTtURfuZ@Ky~pKK9?if0mvVvf
ze<~{j!)tzz?#mv%y!I*#3@<!D4mjC*z=PlAv`06n1_YT0N@p*Y|NsBr<NFQi1K)4_
zKLJXWkg{F@nm!afno}hhJa!u`y01G^8x#?&Yn2%oJgg6w=6m$|O8gf+CkzsGmGJ0v
z75FcDLYRS}`+$cbh<yga?)6oG@V9{Yt_mK#z5*TxA1HVjyMnNQhw(v=o&Ujrfx$!h
zpvO*Qm}S<7J@{P?dUUc{g6!;$QStEje!-)Y)d<9GKB5o{E*C(BmVigI?Qd}g28L3$
z|Dwjiu*wXSoz8gl@)m+L{8tqc2BjL0Ufx7y28NeRpl(YqYpOB>!(k5?4a%#}L1EI&
z!Sdo6guw(2mtNLDuv$==5$e&qM#bUx|NkD1Zw`Peikmw@*1!1549-I=-KWoLHmgb~
zGk_{~-w(!@9Cut`VPJSM8Pxvo_5JW)v{ncdaC1S83y<EZH$aZ*KJ99J;J;`zNT&5b
ziH%2dii!n;M{n-~uq;@S52)qtqhjFGeb}S7_XS9z(?><aqu2KXxan<t^1rAM$bjzF
z6ClZ6Q0dg!3bMxdl1DFC&~XQ-@$1oifWxD+wF8u&{(zhJU`bFbKH<2FN`NQ>gTrwb
zl@L&y=D+ARK~Te%(WBQzB><$v!K2sp1OJr6Ahrj{(pEu`SAA3*{);vVf&!tG>)UPV
z1B$F7N+6HUQMtg%z~Iq%1Qc4ap!|VW2YK|$8cBkTFx8f1V0bO&(QWO~`oDw=RO)7e
zhP1AGG#}>hu)bIH6s=MMwGBXV0&1T?>NAgC*>4hHv))Ufn<Y!otpBQ<LJSPxHje<P
z7cBwH49%%87>rLEA2`lBLjltK;$P&_eegJIs{*9y*Z48n(bvVL`;<%fCCA2(sd*)t
zj*Xu(^HMz>8$aZgq~^GCUvTNZ?b6N4tjNIN*!bD8v?Rlo`)2oL7w(&lpWIXPN{vr;
z|8U{H1a6G+FY0vt;L?54rPKFE_leHfFP))(Tw5=d26;5|$|^80{C8|V!J_)X{y)D<
zC+kK91_s*$Y>W&g8ny{+ObjK8wgn(cigm-!KmVJ5D3nWk>}F&DK?Vj7{>6ujxgDEN
zFuHWImMbtYxVGLdm27;-!2f~2@h1a+0z(l<mc^x$HBy0rVF#$0+Zp=6rPKF`^^Y1A
z<C9>gfn4PKqcikRXY339U5`1zCNjBnvZ^XDFgWt>dMHwycbqjt9uii^S(D@;qii54
z>Ed7zB~$EUe3GB>g2%x}3Le}SJUT-KJi1*4RM>3TN{zZ%P2?FEnon>XXH}MG01s|{
zbA6%E$to+)z)&LGd_v(kE0;V21E@;qWaW?trL!0n3*!Tzwkx=$14?M%pger$jPU_W
zup0iU2M!-%U^w$%)rlX}Gcf^^c3`ptOeTRz8!!nGcL1{?>T|$s(CFEJRSz)R3ryDV
zfeP!xXN(VkQa7{{e<lsyzy1HfArw@Ldvw3*@`bqW<&B^J|DS;izhM0F|9_V+xTzKU
zat~b2z@z(>M>k`)04RrRbcU!X`1JC={RC=tx)yYYW_Wb_CcH5G{{R03kLDu=v4=q>
zf^`_5Y_woyU^u`(<zV;0*u!VQJ-kt3c!q$CJ;Y!C>>%_bD18n}?}E|`pmYzEE`!oh
zP}%`XYeDH>wh;3~pnM3Af#Hk|gtY}qzk$*aQ3eJjs6G=Y?FXd`ptJ~-UIC>KK<RT(
zngdGrKxvq{GtlfQg7Pz<bR3j+gVI(|S`SLgL1{iH%>t$0Swn2N0Hq;31_m8P2Jn2r
z0w@g=r<4va%Fjzz$SciFN-a{zPgBS*Eh#81QAjLGFU?KOD=AjcFjOc?EiBC}N=?z!
zV_@*iOU^GUN=+_7(vz8oro|LR3)qRCU^TvpB}JLZsl^JprNt!*8Hr`73MCn-3dM=J
zsYvFfWag&k6=&w>73(n&)>oWam8!=8Hn{>cD`Z$)qJZimh;2!!ApezA7Njbq<d-Jp
zq=HBD5&DesQlR?4x?v%JPcs7pgKuJSwgS`;4dWu15is4F$l8;05{ru!a`MwNlM{2m
zwlgr8lw?3{g=vB7NK{Bp&B;+nEGkN@gsLW>zAQDlB)<r*78LN#a3errgT=PQyc7k9
zK9B-a9L_<Fs+`ok^pXs)Jz-!g@o9yGJH+pqc_qe1V0|FBfv|IaPH8S^HZKL7E;92J
za5*6<6=Vx2xfCVlrGq0g8LYV&9IqK5X;3=Mg{CoxHLi)t8IW+yPXnhlM3^dQU<L;?
zzLN9vN)j{k6hL!IVADaV2JCo{n~^cN%kckyJ&Z<{gRx<Ag1ih23_45<3`a~E7><Bi
zfDCAJYcLH|pd}n2<psJ?5rz=)1SpLz4<0-O2?{VUOb~?5=c(l8frKU~GBALq^}us{
zD!F+o1_lg^6d4#AVe@_}72vr%(EOlYCMfJwOhNi03?cJvdIko`Y3U3M8HNlD93VZ;
zK_My;&W<281*l?CAh8M*F;B3%22?Syx(*bv0I<3VsA6DsGf>1r!0Hyj+y-__2w2?)
zLk0#B76t~`93?2eK=B6Qt5j80r6i>@Ffe>Dhx((aBw5AN5p3QM6tO6<c?=dv>Ovsu
zI8ekO>I5tp7#1)xFz8i)!j6FfHkYfH3gI(YF)*Zn!VMC(MxZcCv4YG!Lc`k_BvxSs
znWKe@nSjJV^+_2s0|Qjd3?#+?n!p5^2Q}WofdM>)sh3n-43>w^8N=pQLGz`c>1sXj
z9I8qsSPcP!QG|;@#6*ZeWRk!Kz6U%PxDId>uqUtuD6%p!ux79@To7bnuoY%t0Qns>
z5Q)lXVqid1!zjnYAXmc8AeX|$AQ!^PAZNnCAZH}?LE?ef0YOm?2GJ5u2GJCD22m3>
z22mry2L_6ePEocf1H%td25@=>Ihm1-iGj_CDL{~)je$RfgMr_Kje*~Yy8xzsk{AQS
z1~CSPoghasFfcH(Ffy<>F)%QSa4?9Za4?93urr95urY`j2^4Tju`x)Q@H0pii9HZ0
z5Ke%ZAu7(muwR^k;i@8p2HP3L6u=0!lO1j+C&+9i1_qeE-%<<=ZPE-3+)5Cdk%^Ik
zDS&|itlx;qfRUGlf!BnKfwzb)0K(>E;5A|kU=(F#5H;DwAj-IdfeoZyh>bz0go8oI
zgq=aih#NF34$t18Fo0oL`Si#V5>}wTHVEIaWMH^s$-wZyk^vk~pDaN-f>YC7i;D7#
z^m0=x%FRp|a#JhZO7oISGV?)&L;+H}rO$?e;fDbOLjsc63L6H77X}OrFRVajLGU*l
z28IFy1_ll!bvJAo7$z7nFo4oBL=^*r1*mNa8sdcsAkm}kPDo%-yWN?`np@$XTH*(8
zAo{1dz?)|A=EepLK@eFq(KLvtF9U-&gavAZfYtj#`Jjf7rwapvKZNfBS_)Ffnp@#n
z3{uL#kPi`u+3K2;3T})tltRP<iWt%%EI$SYCDz;u=c3fal2jLPvkuZ216#+ClbMuT
zp_h`A!(a$Xr>;dszQySwpam)*nN)}r0|!HVymNeUL27blT4r*5Mq*w{PHGVYgDOLO
zd~r!iJgChWpP84IAD@z1TvC)@8K09`T*AO$$B>(vTbx?Lz!2sf6zUh^>Fa7}VgR;|
z!Hgk3GcU8GB(*4)!5qPkPi3%Yh%Zjfh)>JRDM>Ag2f0mxAwD@jFD)~@v?w(`FR`d7
zzdSy%D7}n<!5E@5GchN#3NDqJSC(0np9cyN1_l!p75RCo6`3XRC5cHnsSFG@4Dm&&
z>6yhKd!RCDu$-#I5T9C+np|3v8V{9%Xp&=yPcABnPb>i$#305HpA2R&Bo<`q<`(Og
zXXfc97nSH1mFAUX=BDcA80s48LcDCi5?GpAR2h(3l$KwVo0ylJ>YQJiSCU%9Ai(6F
zTH;(<RFs-m5>S+%oLXG$nZh7~BpQ-Yl$x00nZm$u7bF^7SzMBu8<Lru>R9ZSnUe})
zF^Ds|WEO)w22t#jnN*ZmROy_UlT*wP!t9xsSpo^BV4uw55|7lx6oz#yK_xlPi3KI4
zMXApDdEk{vTR~zz`T5zU1+Y@fHLs+ol7V3lNG2?^sH8M8Cp51-GcSdKA&c3w*d;Zo
zG(A1FD4-~{I5n??VG?U-9wdpRxK<>m7Jv#qH*jP!Fa)s%r<UN9E@1X7hWbCh$SpMy
z<Sv-0-mXD@u0F;_kkkXo%R`YYodH_+_y0er{s2ww>MKBe0UNtN8>?_B?FwjRAVeIb
z4#FBGheZeoFfg1DWMD|JfV3H4Z95QcBErC+VZp!vqU}T&7;G#U7(jHL2m^zU1p@<!
zo(2_vAi}_4Aj-gS!vaD_i!m_NSTHceh%qqS1GUX87#JRiF)&;eXJGhZ!N71soPj|{
zf`Q?I1%%F&U|>+OWMIgVU|?7(0WoKV1OvkzC>un7gtEU#FfhnSLezk0Lnzxsl7V5W
zB*e@ak_-$dpyD9<4wMa|RizjhVk{XLG^7|9K1wk#q*yXAe34>c=#^$*FtKD{m>|u-
zutgf821MV7vL8q@FzCxb#0_K^7~EwbZt##{VE7`#z)%1(M}~nxToxkkBFn%K4`pY_
zGBB)_V_>MUWMJ4J$H4GQ4&vWGatsV^@(^}_JOhK6A_GH@B?H3(MM&FsfhB|nwQE;c
zK-#yU_9=)BqCss=8B0jpQ(1|DAq3p!BR*w<Iu`B>3=Ccj3=G`FYa3NL%t8RN<d=~F
zw4_%8(yavh5GD?)8w{|BbAqM|85kHM3K$ro7#SFzKr}GeBo-H^<|gG-Dpcg=<Q3a0
zl@{e$6(?t;<|Y>F=4K`r<rn9tmFOnt=UOEe=jxRiDk<b9=4Ga(7MFyj7J&v6ZIul5
z43zA6xfB#^N{UL0OFZ+^@`*If7@|)>!KOGhxwI&=q!Mh7f`WpAO;KuLX=-svYDz#+
zW?5!VYI<rhToPH@72Mp)%+K>lElbT&$N`bIN{Pjud1d+8sYOZ(rJ0V&ptg~%Qd(k8
zajKG?jXvCLRLyYnkyK#VZljOlRvUe|r|o#TZ1iE_X&2xa;OOGw>E|910cAibviP92
a+@K}j5epL*b}U`6bj4C|w2u-aBm@AfnsaLa

literal 0
HcmV?d00001

diff --git a/private/SegError0.mexa64 b/private/SegError0.mexa64
new file mode 100644
index 0000000000000000000000000000000000000000..e2d1a6b39d25091acde9d8ee6a86734686951478
GIT binary patch
literal 10280
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
E0PhVdSpWb4

literal 0
HcmV?d00001

diff --git a/private/SegError0.mexw64 b/private/SegError0.mexw64
new file mode 100644
index 0000000000000000000000000000000000000000..a066e0b5139b817b0a8538e7101af09d905bf4e9
GIT binary patch
literal 12800
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

literal 0
HcmV?d00001

diff --git a/private/SoftThresholdNum.mexa64 b/private/SoftThresholdNum.mexa64
new file mode 100644
index 0000000000000000000000000000000000000000..8c689a749672bdaa54f83abe43b8bfd62afdac0d
GIT binary patch
literal 9264
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
OoB=I(I?xP9w;uq4-x*W@

literal 0
HcmV?d00001

diff --git a/private/SoftThresholdNum.mexw64 b/private/SoftThresholdNum.mexw64
new file mode 100644
index 0000000000000000000000000000000000000000..4cd2a9c57cef901bf3ac4d6cb99b0e4ca33184e4
GIT binary patch
literal 11264
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
F1OSXhz4ZV9

literal 0
HcmV?d00001

diff --git a/private/Unfold.m b/private/Unfold.m
new file mode 100644
index 0000000..c201b4d
--- /dev/null
+++ b/private/Unfold.m
@@ -0,0 +1,2 @@
+function [X] = Unfold( X, dim, i )
+X = reshape(shiftdim(X,i-1), dim(i), []);
\ No newline at end of file
diff --git a/private/UpdateXOmega.mexa64 b/private/UpdateXOmega.mexa64
new file mode 100644
index 0000000000000000000000000000000000000000..cd22b4f889849fa1e5216e2cf9080400eab269fc
GIT binary patch
literal 10432
zcmb<-^>JfjWMqH=W(GS35Kn;%BH{p{7#tL#3<d@U2L=lUHU<X<IR<I4T2_P<2J40p
zL<mMRFercpKz6V(FfhQxZwNueVYCJ_SQ&!>l!obJVqjnZ>H7dR_XAWPj1B-PU|?W?
z(HszC7+4q>z<2`4Vg?2VbXo<f4n~92gM<Q}mZX5#8w5c-1_pFm2O`V>qd{sxLV-_9
zQb6tmv5CO~P(>j9A`A=+AaA?-g)%&KzdEUX^Nl|z6KCblJf!VB`SvFzkW!F5NFB&K
zAbSKH7#SEE6dFKsAaM}Aj=6*TLchAXY2(aoAU-b4%)rGUz=<k*f`Nen8pJ3PAp0OO
zg(A!l$^eTYRPpaP%<01+4hjcs=7Yi)o46YT0|PifP_1QHjl=vh9OCnEh#$luejA5)
zCJu34M(pAF6o>kcIK=<q5MRg0z#z!*@jqHHFeriT<zX=5hseO<^gP%c9)>+U5b-i-
zzF~-uPtVQIi!UxoEGmhQXNdO<@r_SOElN$#EG|hc3h{N$$<Ip-NleN~g~(x-iBGOb
zj8DtVOU%ivN@a-mDvJ+-n&6z1SX`W1%#fQ};aXJWTbv$JQNoa0;htLJSDKrYTI8SR
zl9`*DSDcxjR}2wH=Yvh~bb(01G`Z%a=BDPAK(+WnB|)~hmF6XvWaj5Vgj^C!5+SVM
z<iwoBB8K>=yz*Rz_^6befHH>o(7f`@yp;H$)Z)_IR8Uw{RKypg78U1%d{R;wUuFO@
zGA%PFwJ5c)G_xo*C9xp0EVT&aT!x&?q}&R<;(Rb870ya5fr=HEq$F!=>lNqgnSqtS
zS?S5i@x>sXAxONSB%>%bF$Kgo0P&MSEHj4Cf|SIP)Cm9F)bvEX+|-IhGZO}1*9Zo8
zXXkihJp%@JA5SOecq2U{JyV7<b3J1Q=ZFYLC(n38J!6PmL`1x?o(Uwn!6Y-dL}Xw9
zmEWLp2P_CKU6~o!8JNJ3kpTi-E|;=_$`u&~28LOnLV$q*T=p|DFfyzNWMBZvf%JpY
zA&3U)Dq>_{faT`^wMuRV26l!`aJ`J+G8iUbDwW9za>*_vc^f4C!n4@HCHOJ8JQG7C
zR32pC<@MRDpqk+{RIEgE5(lUhy#`eet5;z4!3Svl_5fOcz{EE|#XpEbN*kCsjPC#y
z2bH;?G8kkx2zwxjBf^q_Apl7n<O7ge5RO0+huHxVPe2k!E|Pyh#X;Tyg&9aK2sc2*
zL1x3UFi5-uNgUao6OhC~@eWc8!ZVP>L4E^?f$#z(ab)+bKoW-r8Av(91|)HAun2_M
zfg}zsa=;P?ki>bxA`s#Pk~kkk2uxl;5{DLPVDTGB;?SxZEdBsV99H&$Bwiqi3xfop
z*rWLkhetQ7Dvtt#N9%zS))(3g3=AI4M>q~c6#O@};!$AuuWG}iz`!r>!0=xc#Loap
zzI^ci|NsB0Mm!1(8K7u-c>&DV0`Wmn^YQ?guLR<QqU7ZUFkcG92PK)83&4CK5FZpZ
zFDHQcTp&IuN?taA`Ai@_D7s%3fcd|;6&Nx=N$6z)nEwgH2SwG(05Ja*h!2XQmkwb5
zBM=`HH7^ao{97PCC`w)`fccj|d{9)p6!`!Dzelg_O>PASk6u;~73!h+!=v-5NAnN9
zGEt9iRz8qa>wyx^*#8gG_~l&~7-A2nfq)*rd<!T{7(9AyXMz;<noi<YU<mcl{0Gv1
z@E@~B=Le62FYG-Sk9l1DS0drj&3cjx66QP*!yx+6&1<mr<W^u{C{_1pww=$Vz`zjd
z(fPE5$D`X;iCcl;#oB-W|G)6~|NnpNF;)d`1qQ~?nC|(=uE5~YY|l{2{W9+V|Njto
zdvvo}LhXMEGV=e0Sa5iO*pA_jVUD4WA;BKaZzMV|dv=~}{a?r9(QC`k!ocui*1!M%
zn}4%{1>`^io&Wy-_w24^c;NtIbRGe-S-|XLp53(^FEsxB|L@W1dH~FM{rCTW&(7nX
z-L(QQ_`wo~!R*U_!HQ0JTHYyT^RZ4nPy({?D>DNFSif)UlM>S%pdj82B0RfAj(J*(
z953ba=q^3sVJ&hDto$EH`Om-q|2H3I^hiGJX?djlD%d$&L1I7Hz={|_j=lnN2FP)<
zk!0jSGP@u$0xufDGR$B-wjh}W5E+RV>0lYQQhv|wT8S5yAeT4)U<51l0VynpC{%di
z2bC(5_Ux`zc(MP_|NkD%KN!nEUJC-L^o6MuffxxkBLO614Ay!?BHA&=G1f88F+TP%
zdfa$;be?|U4GP0<>lcSXW_P+C@aVRF(f$V<#vtY$F!Pv4cQwb03t;w9kM3%L7e~PC
zBOcw=5-)E2`TzeDzo6?0kM3%P7g-R4Hh?*EA)FPS-SVE@^&B3ZwF^9syUqY*caP@U
z159OVyFgie2Z-1SiWraX(gU8%JlC5KFnT0k@UXmA{?Vh;cZNr|>jIDF1NI&VU$A)`
ze83D!4j!GyU*v+FaonTZ^?+xu2)n1{^%7y9&L1AfL1r;{G#}vbu)I+E!K1l$14BtJ
zIR1~j9so&tbl0x<#4o^d{1d;<flk*wtq1BPJ!W`Vx-KXZOyhrl@)N(7@18V%y@ORu
z;6QZ-C5?N(|Nrmy-P8P%(IfdF$SvUN*W>adPfn5J&8`O+yIl`}4cSmW-*FenntdR`
zaVN;bpZEntQ<*`fW9<wE{?;iB3=A(<f=bKe3yuvoA`B%~9<BT(8os?U*FNzJ_?}4P
z*Esmekw4PqD#Is7{s`tz{1K-<@yCJ01ess+esbg&fJh0lTx&kS*m+3vlSlF;56jEt
zYdeoQHXmU0Og`ahd8$m-qxE*ldymc&AP0N)+8p=kJmGQqfk)@T&JVAfkX=2aOy)I*
zOK0c-pYG5F;OKA!2bpi{rP5umullzBFH!R8{Qn~S*Z=>oB|JJ0gG4w$BCfwcx$pjq
zw;;OthzDA#JI-Fk$i#3QR4OyX9tPJL&?>?&Um?G=q@c7!A+adE6x1YDfVC9$Ktbo3
zmz-Zzl$u<kkOyw=D&(grWac5OFILdVEiEolC`rstRWQ{A>tbN=1gr5)EGf!NPAygd
ztH?+!OI0YzNL46K%uPiyF9qI!)+0h+ab{Jj9s}6q3Wdx(g|y6~VkFmtZAwZ7xwE9Q
zAXOnHzceW)73wMmBz?uH$@zIH2yf%p=$lxat$?t!BqOs3yWV6_e?cK9KRq)!F-MOf
zCowlEB~hUuu_!S&wIsDjp*SPIG$%zNDODj+p%~nxM{%NCerZuj23in9f)A{vEH$|#
zzetZE3`~Rl577aSJ|urY+=3DU&iOf|xp@kic`0b|l9^YMnx0yuP?nfenpzApI8mV}
zF)uw;0h|De3-a?)GV{_EO7azq@=_GwaRv_Pj8uhOXjH>P8kBlI*fUBqTZ8(-paw(3
z_y7Mr7#J7|e*XVoz`(%3^ZWmQP+8FQ_y7M7Amt2*b~$5J5Cda{0HZVyI|pd&12oP7
zYRemZhpOchaO0Ek;^!{sXkf6Hveq(I0e7oGcDXPxF#P!O|Nk6Nu6N`UXk&8bW%KQ4
z?qlg??O|(XXYOL;VF$H97#J8pW`e9{tP1b}+sHn9DzgHEG|XO*c_6!8e*OOs>T|L<
zGcYh<Gc$z=Y$nLOBMb}-U4Q=n2e;qgYQfSVs~G<OXA}@Q%*eoSkcss?3&SH8Rt5%G
z`ySSw2P=g3SwL)1-vUH~yab|Mp$sU+;16X$DF#qq1Edbd2e<H$%mejxkmVbo3ZWFZ
zuLF_?HMBr9Y`g{3&;s#Ypp98c5C=Ri2I+rDL;29)WsrjMVf_|R_<)39@?Zb`&j;~$
zKrIF}Btd)uP=bMuoq_l-pz@%GA&CD7$_F(JL3{}i0Ud_|F*Bg;Wl+Ti;s-$0!}@)o
z1}R8f97HfMFdTpiKq-b7;Ifi|0p`vdP<5b&Du@ZQ@6UgT`xT(-|3djNd;dZC5m5R6
zP(IXq3?HEUPf(Blgz`ZRZje0#g+D<1ndtVrK?5KRN~b~TGAP{!rKdsZWl(w>ls*Qf
zuR-Z&Q2HB`W`jns7?g(fV`1)acXqZ?&~Qmj%1q2tFwwKrGtxCQ(1frU81#xOb4wDF
z81#xuiXe0bjFp#PlB$=USE`p(nwgWLo0-A@=4B)nXE5lcROS^|=0fO_B8UuZlmx5{
z%87^Sf^mx&^omk*5<&W*tb&{p2EEL@%n}B@lGKV42EDY*yi5kYqWl!lK#pE&MtmBm
zCWy~SDPn;081z6RDybF8sRbqRC5fQ1DzF*xiA6<;l@K#v?5yM>usaiTGm{zg((_Be
zgdW&lh#g7A#SD7M`MIFV92RU?X=Vn<m<GBeGXoO?EI%U4F*7hT!15ugI12+TzoLq>
zGQiR`syG{i0yICMinBAo@(HRq2RuKbigUvAEvh)?_%KMGnSq<Z0GiG~d>CeC;9-Ex
zAHc*wG&2J)1FW0_@nM*mfsY{oTK>VrKr}N0KYY9$#D`&K1_6c#$enzs1T%vm!x3;L
z0TqB!%nU*dH?ZVCW(HvfSUCz+3Z|GDL>OLRRWHhbEgv&8h%vy%g}??t31$Xy23WZX
z6#`St3=$0J`4A+*%pl3YAO<P-L3|iyhL`#<5y;pZ3zqR-Q2oM)#r>dqg$YZ%fSMN|
z@dRl30JFi7fq?-ej$VI;gX=tmJE7G8LmF5dGdz2t=D_M>nE5lo>M`R5)IP`Nuan@>
zKg{uMkp0-yKLDFAz;FO9J-h>pV~<~K=KKPymtcU6zrpG+F-A!EC_pPraNCH1fdSO6
zU_wggu(3KPMo^q#riTcyxCBPLr$EKg(@7!7!&uTuEmWKXE&Vis#WBtA1e=eUo+p9*
zg_++$U0k%F1V`n3M(p!GpmAW#l+3_z2s|GF)`~)a#%Zyc{|3jr#s?hs@-Sg{j~Wy9
zc_Jq!(7X)h{74K~9L0%XP7x0A2{^>(;t*c~7RQ`_*#H&?TZKY^h83`d&v6{;U*Hh`
zf<v60859mERzf(*MJ2^0rD<t;$qe!FUd}=BKAyoL@$n3ZIidKH-1ubBtWYrnY%&N*
zC_X+VKR!JtKPfRMKBXkTs5m~cw1OcyKer$!wInq~&&<rskO8YA(EL#*q?(RT%_}LY
zWPnulDW$o&l??IFiXY622elATl%mX*Bo`DgBo`FKgJw+%GUK7G4Ly)>e7swbqpxec
ztDg&KwhQb-2-_uGuP8N5FFrmUa}Fpz%Fr-5BQ-f2+$}H83<xkZ%&l+)wJzdI64NsS
z0=$Fc8NeQ3h<Eq#cXITJ_jhv(b`6OSadh%=jc16D5Ak(|+nQ3GAD@w!mjaqpi%%*p
zhD^UP#HZ$^FvO>Vn<4Qok$#T8p3V$lze1+4{6I5QD6@4~CfXoVTMiE3`61{W5O}@~
zF|X#}0G==c%_dP}z7J{_bS^44wF1X{8Q2xrC-7jR7;XgXL74&c1<lA|o8&{DV8j-S
z4h~2&WMFfVrv#y%fCd=q#Gr!%Y|;&qM<^gc{X0+}3D&;>_02)X!Dvul8N`QSSU(5G
z2i4!-{{PR1>4&v5VYC5MA*}xctG}Sa3>FLw44^6urXSWGh0z*N36Q-YCQLu9zXn<#
z0x}yU2Qm}ZZiUgXekDi_gu&Gjhylf*@e5EN4yGU0zJ<{s|ACZ(>;Ta)bub#V?f}$B
zgz;hRU>FVZA4ng%`$1wLoWj7s0P0i1^uyZAFnR(=5xDIESw8~vKUA2Z7%B(T59{Z`
zXjnfN=6;xdSoqaK^*ccgg!P+YG_0Qu(hrI!bp7q%_6ca_6Jh{tTmeSI#tR^_5I?}!
zAi4=nKde0uqhaGnAhjS2YtO)FQ2P!Pr?Bn^tlbZzRiOQFkX{gm=>xGrcru#(u>Jvz
zM(<vL;t`||h9T`pP+JTl0_#V>=mc2AK&0X04^S?{La6;PWw_S&z|^DLzaC9LtX~47
zpTIOiX;}P0xeTCDX;ApV?1%MVU^Hxe1*RUP7RCnArx_R+K=Y%Z^a0|-`Z=(5Rp|Di
z^RF{7Fo3#VF#WLp&;w{=16@5j|1s46F#WK8(+eW?zkrTO!SuuWSFrV6uytIpaEI9s
zOGlt}GN3Sl>4){h97I8(!N8yaq2MG;KaBo{=6+azEd#2*1FjRofa!zLpanO`_QTri
zAE5eS?u6(@jDNxStc(ybnET=VKQV|3m^~04s1E^SL1->;JD!07R?b6285kI#`eoq)
z5C+JtAQp@Ub)(^SgCw9>7OGzurVuKQ#)Yl{fl4A#2GD`P572@E<PK8?h+jd<VC5eu
Te`B*>K@Oyffk7Tk65W0PKX3~1

literal 0
HcmV?d00001

diff --git a/private/UpdateXOmega.mexw64 b/private/UpdateXOmega.mexw64
new file mode 100644
index 0000000000000000000000000000000000000000..60d92b4d648011b3ac0ee318ef24ab90c31d6be7
GIT binary patch
literal 16896
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
AV*mgE

literal 0
HcmV?d00001

-- 
GitLab