正在查看: Kahramaa v15.23.3 应用的 uuuhhu.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: Kahramaa v15.23.3 应用的 uuuhhu.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.threatmetrix.TrustDefender.RL;
import a6.t;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Bundle;
import android.os.IBinder;
import android.os.RemoteException;
import android.support.v4.media.c;
import com.threatmetrix.TrustDefender.RL.IInternalService;
import com.threatmetrix.TrustDefender.RL.TMXProfilingConnectionsInterface;
import com.threatmetrix.TrustDefender.RL.TMXProfilingHandle;
import com.threatmetrix.TrustDefender.RL.TMXProfilingModule.BuildConfig;
import com.threatmetrix.TrustDefender.RL.TMXStrongAuth;
import com.threatmetrix.TrustDefender.RL.jjjjoj;
import com.threatmetrix.TrustDefender.RL.otbgvycijjopvme.yiiiii;
import com.threatmetrix.TrustDefender.RL.uhuhhu;
import java.io.InputStream;
import java.io.InterruptedIOException;
import java.lang.Thread;
import java.lang.reflect.Method;
import java.security.PrivateKey;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicLong;
import java.util.concurrent.locks.ReentrantLock;
public abstract class uuuhhu {
private static final String b00690069i0069i0069;
public static volatile jjojoj b0069i00690069i0069 = null;
private static final boolean bii00690069i0069;
public static final String version = "6.3-77 : RL";
private final uuhhuu b0069006900690069i0069;
private final hhuhuu bi006900690069i0069;
private final uuhuuu biiii00690069;
private volatile String b0069iii00690069 = null;
private volatile Thread bi0069ii00690069 = null;
private volatile Thread b00690069ii00690069 = null;
private volatile hhuhuh bii0069i00690069 = null;
private volatile long b0069i0069i00690069 = 0;
private volatile int bi00690069i00690069 = 0;
private volatile boolean b006900690069i00690069 = false;
private int biii006900690069 = 30000;
private volatile boolean b0069ii006900690069 = false;
private volatile int bi0069i006900690069 = 10000;
public uuhhhh b00690069i006900690069 = null;
public uhuhhu bii0069006900690069 = null;
public final jojjjo b0069i0069006900690069 = new jojjjo();
public yiyiiy bi00690069006900690069 = null;
public volatile TMXProfilingConnectionsInterface b0077wwwww = null;
public volatile int bw0077wwww = 0;
public volatile boolean b00770077wwww = true;
public final AtomicLong bww0077www = new AtomicLong(0);
private final hhuuuu b0077w0077www = new hhuuuu();
public class hhhhuu extends uuuhuu {
public CountDownLatch b00770077w0077w0077;
public hhhhuu(String str, CountDownLatch countDownLatch) {
super(str);
this.b00770077w0077w0077 = countDownLatch;
}
@Override
public boolean onComplete(TMXProfilingConnectionsInterface.TMXHttpResponseCode tMXHttpResponseCode, InputStream inputStream) {
if (!super.onComplete(tMXHttpResponseCode, inputStream)) {
jjjjoj.btt0074tt0074(uuuhhu.b00690069i0069i0069, "profiling will be incomplete");
this.b00770077w0077w0077.countDown();
return false;
}
jjjjoj.bt0074007400740074t(uuuhhu.b00690069i0069i0069, "profile request complete");
uuuhhu.this.b0069i0069i00690069 = System.currentTimeMillis();
this.b00770077w0077w0077.countDown();
return true;
}
}
public enum hhhuuu {
PROFILE,
SCAN_PACKAGES,
INIT;
public static hhhuuu valueOf(String str) {
return (hhhuuu) yiiiii.b0064006400640064dd(hhhuuu.class, str);
}
}
public interface hhuhuu {
boolean bindToGooglePlayService(yiyiiy yiyiiyVar);
String getAdvertisingId(int i10);
}
public final class hhuuuu implements ServiceConnection {
private List<String> b0064d0064ddd;
private Thread bd00640064ddd;
private IInternalService bd0064dddd = null;
private boolean b00640064dddd = false;
private final ReentrantLock bdd0064ddd = new ReentrantLock();
public hhuuuu() {
}
public boolean b0067g0067g0067g0067(Context context) {
if ((uuuhhu.b0069i00690069i0069.b006Ajjjjj() & 4) == 0) {
return false;
}
Intent intent = new Intent(context, (Class<?>) InternalService.class);
this.bdd0064ddd.lock();
try {
return context.bindService(intent, this, 1);
} catch (SecurityException e10) {
jjjjoj.ojjjoj.bt0074tttt(uuuhhu.b00690069i0069i0069, "Filed to bind the service " + e10.toString());
return false;
} finally {
this.bdd0064ddd.unlock();
}
}
public void bggg00670067g0067(Context context) {
this.bdd0064ddd.lock();
try {
} finally {
try {
} finally {
}
}
if (this.b00640064dddd) {
context.unbindService(this);
this.b00640064dddd = false;
this.bd0064dddd = null;
}
}
public void b006700670067g0067g0067(final List<String> list) {
if (list == null || list.isEmpty()) {
return;
}
this.bdd0064ddd.lock();
try {
if (this.b00640064dddd) {
this.bdd0064ddd.unlock();
this.b0064d0064ddd = new ArrayList(list.size());
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
hhuuuu.this.bdd0064ddd.lock();
try {
try {
if (hhuuuu.this.b00640064dddd && hhuuuu.this.bd0064dddd != null) {
hhuuuu.this.b0064d0064ddd.addAll(hhuuuu.this.bd0064dddd.getResults(list));
}
} catch (RemoteException e10) {
jjjjoj.ojjjoj.bt00740074ttt(uuuhhu.b00690069i0069i0069, "Failed to use the service " + e10.toString());
}
} finally {
hhuuuu.this.bdd0064ddd.unlock();
}
}
});
this.bd00640064ddd = thread;
thread.start();
}
} finally {
this.bdd0064ddd.unlock();
}
}
public List<String> bg00670067g0067g0067() {
Thread thread = this.bd00640064ddd;
if (thread == null) {
return null;
}
if (thread.isAlive()) {
try {
this.bd00640064ddd.join(Math.abs(uuuhhu.this.bw0077wwww - oojjjo.bhhhh00680068().bhh0068h00680068()));
} catch (InterruptedException e10) {
String str = uuuhhu.b00690069i0069i0069;
StringBuilder h10 = c.h("Interrupted while joining serviceThread ");
h10.append(e10.toString());
jjjjoj.ojjjoj.bt00740074ttt(str, h10.toString());
}
}
return new ArrayList(this.b0064d0064ddd);
}
@Override
public void onServiceConnected(ComponentName componentName, IBinder iBinder) {
this.bdd0064ddd.lock();
try {
this.bd0064dddd = IInternalService.Stub.asInterface(iBinder);
this.b00640064dddd = true;
} finally {
this.bdd0064ddd.unlock();
}
}
@Override
public void onServiceDisconnected(ComponentName componentName) {
this.bdd0064ddd.lock();
try {
this.b00640064dddd = false;
this.bd0064dddd = null;
} finally {
this.bdd0064ddd.unlock();
}
}
}
public final class huhhuu implements Runnable {
public final TMXEndNotifier b00770077ww00770077;
public final TMXProfilingHandle.Result bw0077ww00770077;
public huhhuu(TMXProfilingHandle.Result result, TMXEndNotifier tMXEndNotifier) {
this.bw0077ww00770077 = result;
this.b00770077ww00770077 = tMXEndNotifier;
}
@Override
public void run() {
TMXEndNotifier tMXEndNotifier = this.b00770077ww00770077;
if (tMXEndNotifier != null) {
try {
tMXEndNotifier.complete(this.bw0077ww00770077);
} catch (Throwable th) {
String str = uuuhhu.b00690069i0069i0069;
StringBuilder h10 = c.h("Unexpected exception occurred when calling EndNotifier ");
h10.append(th.toString());
jjjjoj.bt0074t00740074t(str, h10.toString());
}
}
}
}
public static class huhuuu extends Exception {
public final TMXStatusCode b0064ddddd;
public huhuuu(TMXStatusCode tMXStatusCode) {
this.b0064ddddd = tMXStatusCode;
}
}
public final class huuhuu extends Thread {
public final Runnable m_runnable;
public huuhuu(Runnable runnable) {
this.m_runnable = runnable;
}
@Override
public void run() {
this.m_runnable.run();
}
}
public class uhhhuu extends uuuhuu {
public String b0077007700770077w0077;
public CountDownLatch b0077w00770077w0077;
public uuhhuh bw007700770077w0077;
public String bwwww00770077;
public uhhhuu(String str, CountDownLatch countDownLatch, uuhhuh uuhhuhVar, String str2, String str3) {
super(str);
this.b0077w00770077w0077 = countDownLatch;
this.bw007700770077w0077 = uuhhuhVar;
this.b0077007700770077w0077 = str2;
this.bwwww00770077 = str3;
}
@Override
public boolean onComplete(TMXProfilingConnectionsInterface.TMXHttpResponseCode tMXHttpResponseCode, InputStream inputStream) {
String str;
String str2;
if (super.onComplete(tMXHttpResponseCode, inputStream)) {
if (inputStream == null) {
str = uuuhhu.b00690069i0069i0069;
str2 = "Configure request succeeded but stream is null";
} else {
try {
this.bw007700770077w0077.bkkkkk006B(inputStream, this.b0077007700770077w0077, this.bwwww00770077);
this.b0077w00770077w0077.countDown();
return true;
} catch (InterruptedIOException unused) {
str = uuuhhu.b00690069i0069i0069;
str2 = "Failed to read the input stream";
}
}
jjjjoj.btt0074tt0074(str, str2);
}
this.b0077w00770077w0077.countDown();
return false;
}
}
public class uhhuuu implements TMXProfilingHandle {
private final String b0077w0077007700770077;
public uhhuuu(String str) {
this.b0077w0077007700770077 = str;
}
@Override
public void cancel() {
uuuhhu.this.b0067gg0067g00670067();
}
@Override
public String getSessionID() {
return this.b0077w0077007700770077;
}
}
public final class uhuhuu implements Runnable {
private boolean b0077w0077w00770077 = false;
private final boolean bw00770077w00770077;
public uhuhuu(boolean z) {
this.bw00770077w00770077 = z;
}
public boolean b0067g00670067gg0067() {
return this.b0077w0077w00770077;
}
@Override
public void run() {
try {
ojoooj.b006800680068hhh(uuuhhu.this.bi00690069006900690069.bnn006E006E006E006E);
String str = null;
hhuhuu hhuhuuVar = uuuhhu.this.bi006900690069i0069;
if (hhuhuuVar != null && uuuhhu.this.b006900690069i00690069 && (uuuhhu.this.bww0077www.get() & oooooj.b006D006Dm006Dm006D) != 0) {
str = hhuhuuVar.getAdvertisingId(uuuhhu.this.bw0077wwww / 10);
}
if (uuuhhu.this.b0069i0069006900690069.bh0068hhh0068() || Thread.currentThread().isInterrupted()) {
throw new InterruptedException();
}
uuuhhu uuuhhuVar = uuuhhu.this;
uuuhhuVar.bii0069006900690069.b0067gg0067gg0067(str, uuuhhuVar.b0069i0069006900690069, uuuhhuVar.b0069iii00690069, this.bw00770077w00770077);
} catch (InterruptedException unused) {
this.b0077w0077w00770077 = true;
}
}
}
public interface uuhhuu {
void config(TMXConfig tMXConfig);
uhuhhu.GenericLocation getLocation();
void pause();
void resume();
void setLocation(uhuhhu.GenericLocation genericLocation);
void unregister();
}
public interface uuhuuu {
void attest(yiyiiy yiyiiyVar, String str);
String getNonce();
String getResult();
}
public class uuuhuu implements TMXProfilingConnectionsInterface.TMXCallback {
public final String b0077ww007700770077;
public TMXProfilingConnectionsInterface.TMXHttpResponseCode bw0077w007700770077 = new TMXProfilingConnectionsInterface.TMXHttpResponseCode(-2);
public uuuhuu(String str) {
this.b0077ww007700770077 = str;
}
public TMXStatusCode bg006700670067gg0067() {
int httpResponseCode = this.bw0077w007700770077.getHttpResponseCode();
if (httpResponseCode == 200) {
return TMXStatusCode.TMX_OK;
}
switch (httpResponseCode) {
case TMXProfilingConnectionsInterface.TMXHttpResponseCode.HttpResponseCRLError:
return TMXStatusCode.TMX_CRLError;
case TMXProfilingConnectionsInterface.TMXHttpResponseCode.HttpResponseCertStoreError:
return TMXStatusCode.TMX_CertStoreError;
case TMXProfilingConnectionsInterface.TMXHttpResponseCode.HttpResponseCertPathValidatorError:
return TMXStatusCode.TMX_CertPathValidatorError;
case TMXProfilingConnectionsInterface.TMXHttpResponseCode.HttpResponseCertPathBuilderError:
return TMXStatusCode.TMX_CertPathBuilderError;
case TMXProfilingConnectionsInterface.TMXHttpResponseCode.HttpResponseCertificateParsingError:
return TMXStatusCode.TMX_CertificateParsingError;
case TMXProfilingConnectionsInterface.TMXHttpResponseCode.HttpResponseCertificateNotYetValid:
return TMXStatusCode.TMX_CertificateNotYetValid;
case TMXProfilingConnectionsInterface.TMXHttpResponseCode.HttpResponseCertificateExpired:
return TMXStatusCode.TMX_CertificateExpired;
case TMXProfilingConnectionsInterface.TMXHttpResponseCode.HttpResponseCertificateEncodingError:
return TMXStatusCode.TMX_CertificateEncodingError;
case TMXProfilingConnectionsInterface.TMXHttpResponseCode.HttpResponseCertificateError:
return TMXStatusCode.TMX_CertificateError;
case TMXProfilingConnectionsInterface.TMXHttpResponseCode.HttpResponseCertificateMismatch:
return TMXStatusCode.TMX_Certificate_Mismatch;
case TMXProfilingConnectionsInterface.TMXHttpResponseCode.HttpResponseHostVerificationError:
return TMXStatusCode.TMX_HostVerification_Error;
case TMXProfilingConnectionsInterface.TMXHttpResponseCode.HttpResponseNetworkTimeoutError:
return TMXStatusCode.TMX_NetworkTimeout_Error;
case TMXProfilingConnectionsInterface.TMXHttpResponseCode.HttpResponseHostNotFoundError:
return TMXStatusCode.TMX_HostNotFound_Error;
case TMXProfilingConnectionsInterface.TMXHttpResponseCode.HttpResponseNotYet:
return TMXStatusCode.TMX_NotYet;
default:
return TMXStatusCode.TMX_Connection_Error;
}
}
@Override
public boolean onComplete(TMXProfilingConnectionsInterface.TMXHttpResponseCode tMXHttpResponseCode, InputStream inputStream) {
this.bw0077w007700770077 = tMXHttpResponseCode;
if (tMXHttpResponseCode.succeeded()) {
return true;
}
jjjjoj.bt00740074tt0074(uuuhhu.b00690069i0069i0069, "Failed to request {} with http response {}", this.b0077ww007700770077, tMXHttpResponseCode.toString());
return false;
}
}
static {
String b0074t007400740074t = jjjjoj.b0074t007400740074t(uuuhhu.class);
b00690069i0069i0069 = b0074t007400740074t;
b0069i00690069i0069 = null;
String property = System.getProperty("java.vm.version");
boolean z = property != null && property.equals("2.0.0");
bii00690069i0069 = z;
if (z) {
jjjjoj.bt0074007400740074t(b0074t007400740074t, "Broken join() detected, activating fallback routine");
}
}
public uuuhhu(uuhuuu uuhuuuVar, uuhhuu uuhhuuVar, hhuhuu hhuhuuVar) {
this.biiii00690069 = uuhuuuVar;
this.b0069006900690069i0069 = uuhhuuVar;
this.bi006900690069i0069 = hhuhuuVar;
}
private boolean b0067006700670067g00670067() {
if (this.b0069i0069i00690069 == 0 || this.bi00690069i00690069 == 0) {
return false;
}
return TimeUnit.MILLISECONDS.convert((long) this.bi00690069i00690069, TimeUnit.MINUTES) + this.b0069i0069i00690069 > System.currentTimeMillis();
}
private boolean b006700670067g006700670067(uuhhuh uuhhuhVar) throws InterruptedException {
hhuhuh hhuhuhVar = this.bii0069i00690069;
yiyiiy yiyiiyVar = this.bi00690069006900690069;
String str = this.b0069iii00690069;
if (hhuhuhVar != null && !hhuhuhVar.bkkkk006B006B(uuhhuhVar.bl006Cl006C006C006C, uuhhuhVar.b006C006Cl006C006C006C, "6.3-77 : RL", uuhhuhVar.bll006C006C006C006C)) {
return false;
}
huhhhu huhhhuVar = new huhhhu();
String str2 = b00690069i0069i0069;
StringBuilder sb2 = new StringBuilder();
sb2.append("dynamic enableOptions / disableOptions (");
sb2.append(uuhhuhVar.bl006Cl006C006C006C);
sb2.append(" / ");
if (hhuhuhVar != null) {
sb2.append(uuhhuhVar.b006C006Cl006C006C006C);
sb2.append(") != saved: m_default values enableOptions / disableOptions / sdk_version / quietPeriod (");
sb2.append(hhuhuhVar.b006Bkk006Bk006B());
sb2.append(" / ");
sb2.append(hhuhuhVar.bkkk006Bk006B());
sb2.append(" / ");
sb2.append(hhuhuhVar.b006B006Bk006Bk006B());
sb2.append(" / ");
sb2.append(hhuhuhVar.bk006Bk006Bk006B());
sb2.append(")");
jjjjoj.ojjjoj.bt0074tttt(str2, sb2.toString());
} else {
sb2.append(uuhhuhVar.b006C006Cl006C006C006C);
sb2.append(") != saved: m_default is null");
jjjjoj.ojjjoj.bt0074tttt(str2, sb2.toString());
hhuhuhVar = new hhuhuh();
this.bii0069i00690069 = hhuhuhVar;
}
hhuhuhVar.b006Bk006B006Bk006B(uuhhuhVar.bl006Cl006C006C006C);
hhuhuhVar.bkk006B006Bk006B(uuhhuhVar.b006C006Cl006C006C006C);
hhuhuhVar.b006B006B006B006Bk006B("6.3-77 : RL");
hhuhuhVar.bk006B006B006Bk006B(uuhhuhVar.bll006C006C006C006C);
if (ooojoj.bj006A006Aj006Aj().b006A006Ajjj006A()) {
ooojoj.bj006A006Aj006Aj().b006Ajj006Aj006A(this.bi00690069006900690069, str, hhuhuh.b006F006F006Fo006Fo, uuhhuhVar.bl006Cl006C006C006C);
ooojoj.bj006A006Aj006Aj().b006Ajj006Aj006A(this.bi00690069006900690069, str, hhuhuh.booo006F006Fo, uuhhuhVar.b006C006Cl006C006C006C);
ooojoj.bj006A006Aj006Aj().bj006Aj006Aj006A(this.bi00690069006900690069, str, hhuhuh.bo006Fo006F006Fo, "6.3-77 : RL");
ooojoj.bj006A006Aj006Aj().bjjj006Aj006A(this.bi00690069006900690069, str, hhuhuh.b006Foo006F006Fo, uuhhuhVar.bll006C006C006C006C);
} else if (yiyiiyVar != null && str != null) {
huhuhh.b0066ff0066f0066(yiyiiyVar, str, hhuhuhVar);
}
huhhhuVar.b0067g0067ggg0067("Processed stored options", "pso");
return true;
}
private TMXProfilingHandle b006700670067gg00670067(TMXProfilingHandle.Result result, TMXEndNotifier tMXEndNotifier, TMXProfilingHandle tMXProfilingHandle) {
if (tMXEndNotifier != null) {
Executors.newSingleThreadExecutor().execute(new huhhuu(result, tMXEndNotifier));
}
return tMXProfilingHandle;
}
public void b00670067g0067g00670067(String str, String str2, String str3, String str4, String str5, TMXStrongAuth.AuthMethod authMethod, boolean z, TMXStrongAuth.StrongAuthCallback strongAuthCallback, TMXEndNotifier tMXEndNotifier, boolean z10) {
TMXStatusCode tMXStatusCode;
String str6;
uuhhuh uuhhuhVar;
TMXStrongAuth.AuthParamResult bd0064ddd0064;
TMXStatusCode tMXStatusCode2 = null;
try {
try {
if (!this.b0069i0069006900690069.b0068h0068hh0068()) {
jjjjoj.bt0074007400740074t(b00690069i0069i0069, "StrongAuth Failed: init() is not called");
bggg0067g00670067(str, TMXStatusCode.TMX_Internal_Error, tMXEndNotifier);
return;
}
if (!this.b0069i0069006900690069.bh006800680068h0068(this.bw0077wwww)) {
jjjjoj.bt0074007400740074t(b00690069i0069i0069, "StrongAuth Failed: Timeout while waiting for init to finish");
bggg0067g00670067(str, TMXStatusCode.TMX_Internal_Error, tMXEndNotifier);
return;
}
iiiyii btt0074007400740074 = b0069i00690069i0069.btt0074007400740074();
if ((this.bww0077www.get() & oooooj.b006D006D006D006Dm006D) != 0 && btt0074007400740074 != null) {
yiyiiy yiyiiyVar = this.bi00690069006900690069;
if (yiyiiyVar == null) {
bggg0067g00670067(str, TMXStatusCode.TMX_Internal_Error, tMXEndNotifier);
return;
}
new huuhuu(new uhuhuu(true)).start();
uuhhuh bg006700670067g00670067 = bg006700670067g00670067(str);
String str7 = bg006700670067g00670067.b006Fooo006Fo;
if (!bg006700670067g00670067.b006Cll006C006C006C) {
jjjjoj.bt0074t00740074t(b00690069i0069i0069, "StrongAuth Failed: Authentication module is not enabled, please contact ThreatMetrix support.");
bggg0067g00670067(str, TMXStatusCode.TMX_StrongAuth_Failed, tMXEndNotifier);
return;
}
waitForInfoCollectionAndUpdateDefaultOptions(bg006700670067g00670067);
String str8 = str3 == null ? "" : str3;
byte[] bf00660066f00660066 = uuhuhh.bf00660066f00660066(bg006700670067g00670067.b006F006F006F006Foo);
if (z10) {
bd0064ddd0064 = btt0074007400740074.b0064dddd0064(yiyiiyVar.bnn006E006E006E006E, str8, str4, str5, bf00660066f00660066, strongAuthCallback);
str6 = str7;
uuhhuhVar = bg006700670067g00670067;
} else {
boolean isAvailable = uhuuhh.isAvailable(yiyiiyVar.bnn006E006E006E006E);
PrivateKey privateKey = isAvailable ? uhuuhh.bl006C006Cll006C : null;
long j10 = isAvailable ? uhuuhh.b006C006Clll006C : 0L;
Context context = yiyiiyVar.bnn006E006E006E006E;
str6 = str7;
uuhhuhVar = bg006700670067g00670067;
bd0064ddd0064 = btt0074007400740074.bd0064ddd0064(context, authMethod, str8, str4, str5, bf00660066f00660066, strongAuthCallback, isAvailable, privateKey, j10);
}
iyyyyy iyyyyyVar = new iyyyyy();
if (uuhuhh.b0066ff006600660066(str2)) {
iyyyyyVar.buuuu00750075("sarq", str2);
}
if (bd0064ddd0064 == null) {
jjjjoj.bt0074007400740074t(b00690069i0069i0069, "StrongAuth Failed: ");
bggg0067g00670067(str, TMXStatusCode.TMX_StrongAuth_Failed, tMXEndNotifier);
return;
}
if (z) {
TMXStatusCode tMXStatusCode3 = bd0064ddd0064.b0076vv007600760076.bvv0076007600760076;
if (tMXStatusCode3 != TMXStatusCode.TMX_OK) {
try {
jjjjoj.bt0074007400740074t(b00690069i0069i0069, "StrongAuth Failed: " + tMXStatusCode3);
bggg0067g00670067(str, tMXStatusCode3, tMXEndNotifier);
return;
} catch (huhuuu e10) {
e = e10;
tMXStatusCode2 = tMXStatusCode3;
tMXStatusCode = e.b0064ddddd;
bggg0067g00670067(str, tMXStatusCode, tMXEndNotifier);
return;
} catch (IllegalArgumentException unused) {
tMXStatusCode2 = tMXStatusCode3;
tMXStatusCode = TMXStatusCode.TMX_StrongAuth_Unsupported;
bggg0067g00670067(str, tMXStatusCode, tMXEndNotifier);
return;
} catch (InterruptedException e11) {
e = e11;
tMXStatusCode2 = tMXStatusCode3;
jjjjoj.b00740074007400740074t(b00690069i0069i0069, "StrongAuth request interrupted: ", e);
tMXStatusCode = TMXStatusCode.TMX_StrongAuth_Cancelled;
bggg0067g00670067(str, tMXStatusCode, tMXEndNotifier);
return;
} catch (Throwable th) {
th = th;
tMXStatusCode2 = tMXStatusCode3;
jjjjoj.b00740074007400740074t(b00690069i0069i0069, "StrongAuth request failed", th);
tMXStatusCode = TMXStatusCode.TMX_StrongAuth_Failed;
bggg0067g00670067(str, tMXStatusCode, tMXEndNotifier);
return;
}
}
} else {
iyyyyyVar.put("sa_st", bd0064ddd0064.b0076vv007600760076.b00760076v007600760076);
}
String str9 = bd0064ddd0064.bv0076v007600760076;
if (str9 != null) {
iyyyyyVar.b0075uuu00750075(z10 ? "sa_pk" : "sa_sig", str9, Integer.valueOf(str9.length() + 1));
jjjjoj.ojjjoj.bt0074tttt(b00690069i0069i0069, "Generated registration credential is:" + bd0064ddd0064.bv0076v007600760076);
}
TMXStatusCode b00670067gg006700670067 = b00670067gg006700670067(str6, this.bii0069006900690069.bgg00670067gg0067(uuhhuhVar, this.b00690069i006900690069.bqq0071qq0071, str, null, iyyyyyVar, b0069i00690069i0069, false));
if (b00670067gg006700670067 == TMXStatusCode.TMX_OK) {
b00670067gg006700670067 = bd0064ddd0064.b0076vv007600760076.bvv0076007600760076;
}
jjjjoj.bt0074007400740074t(b00690069i0069i0069, "StrongAuth request complete");
return;
}
jjjjoj.bt0074t00740074t(b00690069i0069i0069, "StrongAuth Failed: TMXAuthentication is disabled or module is not valid. Please make sure the correct version of TMXAuthentication module is included in the app.");
bggg0067g00670067(str, TMXStatusCode.TMX_StrongAuth_Failed, tMXEndNotifier);
} finally {
bggg0067g00670067(str, tMXStatusCode2, tMXEndNotifier);
}
} catch (huhuuu e12) {
e = e12;
} catch (IllegalArgumentException unused2) {
} catch (InterruptedException e13) {
e = e13;
} catch (Throwable th2) {
th = th2;
}
}
private TMXStatusCode b00670067gg006700670067(String str, iyyyyy iyyyyyVar) throws InterruptedException, huhuuu {
CountDownLatch countDownLatch = new CountDownLatch(1);
uuhhhh uuhhhhVar = this.b00690069i006900690069;
String b00660066006600660066f = uuhhhhVar.b00660066006600660066f(uuhhhhVar.b00710071qqq0071, str, "clear.png");
hhhhuu hhhhuuVar = new hhhhuu(b00660066006600660066f, countDownLatch);
byte[] b0075uu007500750075 = iyyyyyVar.b0075uu007500750075();
this.b0077wwwww.httpRequest(TMXProfilingConnectionsInterface.HttpMethod.POST, b00660066006600660066f, uuhhhh.bff006600660066f(this.bii0069006900690069, null, b0075uu007500750075 == null ? 0 : b0075uu007500750075.length), b0075uu007500750075, hhhhuuVar);
if (!countDownLatch.await(this.bw0077wwww, TimeUnit.MILLISECONDS)) {
throw new huhuuu(TMXStatusCode.TMX_NetworkTimeout_Error);
}
TMXStatusCode bg006700670067gg0067 = hhhhuuVar.bg006700670067gg0067();
TMXStatusCode tMXStatusCode = TMXStatusCode.TMX_OK;
if (bg006700670067gg0067 == tMXStatusCode) {
return tMXStatusCode;
}
throw new huhuuu(TMXStatusCode.TMX_PartialProfile);
}
private iyyyyy b0067g00670067g00670067(String str, boolean z, TMXProfilingOptions tMXProfilingOptions, uuhhuh uuhhuhVar) throws InterruptedException, huhuuu {
huhhhu huhhhuVar = new huhhhu();
uuhuuu uuhuuuVar = this.biiii00690069;
if ((this.bww0077www.get() & oooooj.bm006Dmm006D006D) != 0 && uuhuuuVar != null) {
uuhuuuVar.attest(this.bi00690069006900690069, uuhhuhVar.boooo006Fo);
}
waitForInfoCollectionAndUpdateDefaultOptions(uuhhuhVar);
this.b0069i0069006900690069.b0068006800680068h0068(true, z ? Long.valueOf(this.bw0077wwww - oojjjo.bhhhh00680068().bhh0068h00680068()) : null);
huhhhuVar.b0067g0067ggg0067("Scan packages finished", "spf");
iyyyyy iyyyyyVar = new iyyyyy();
if (tMXProfilingOptions.bg0067g006700670067g() != null) {
int i10 = 0;
for (String str2 : tMXProfilingOptions.bg0067g006700670067g()) {
StringBuilder h10 = c.h("aca");
int i11 = i10 + 1;
h10.append(i10);
iyyyyyVar.bu0075uu00750075(h10.toString(), str2, true);
if (i11 >= 5) {
break;
}
i10 = i11;
}
}
String result = uuhuuuVar == null ? null : this.biiii00690069.getResult();
String nonce = uuhuuuVar == null ? null : this.biiii00690069.getNonce();
if (uuhuhh.b0066ff006600660066(result) && uuhuhh.b0066ff006600660066(nonce)) {
iyyyyyVar.b0075uuu00750075("snet", result, 5000);
iyyyyyVar.buuuu00750075("snetn", nonce);
}
uuhhuu uuhhuuVar = this.b0069006900690069i0069;
iyyyyy bgg00670067gg0067 = this.bii0069006900690069.bgg00670067gg0067(uuhhuhVar, this.b00690069i006900690069.bqq0071qq0071, str, uuhhuuVar == null ? null : uuhhuuVar.getLocation(), iyyyyyVar, b0069i00690069i0069, true);
huhhhuVar.b0067g0067ggg0067("Risk Body formed", "rbf");
return bgg00670067gg0067;
}
public void b0067g0067g006700670067(long j10, long j11) {
this.bww0077www.set(((~j10) & this.bii0069006900690069.b0069ii00690069i) | j11);
}
public static long b0067gg0067006700670067(long j10, long j11, String str) {
if (j10 >= 0 && (j11 == 0 || j10 <= j11)) {
return j10;
}
jjjjoj.btt007400740074t(b00690069i0069i0069, "Invalid value for {}, {}", str, String.valueOf(j10));
throw new IllegalArgumentException(t.g("Invalid value for {", str, "}"));
}
public hhuhuh b0067ggg006700670067() {
hhuhuh hhuhuhVar;
String b006Aj006A006A006Aj;
yiyiiy yiyiiyVar = this.bi00690069006900690069;
String str = this.b0069iii00690069;
if (ooojoj.bj006A006Aj006Aj().b006A006Ajjj006A()) {
hhuhuhVar = new hhuhuh();
try {
long bjjj006A006Aj = ooojoj.bj006A006Aj006Aj().bjjj006A006Aj(yiyiiyVar, str, hhuhuh.b006F006F006Fo006Fo);
if (bjjj006A006Aj != -1) {
hhuhuhVar.b006Bk006B006Bk006B(bjjj006A006Aj);
}
long bjjj006A006Aj2 = ooojoj.bj006A006Aj006Aj().bjjj006A006Aj(yiyiiyVar, str, hhuhuh.booo006F006Fo);
if (bjjj006A006Aj2 != -1) {
hhuhuhVar.bkk006B006Bk006B(bjjj006A006Aj2);
}
int b006A006A006Aj006Aj = ooojoj.bj006A006Aj006Aj().b006A006A006Aj006Aj(yiyiiyVar, str, hhuhuh.b006Foo006F006Fo);
if (b006A006A006Aj006Aj != -1) {
hhuhuhVar.bk006B006B006Bk006B(b006A006A006Aj006Aj);
}
b006Aj006A006A006Aj = ooojoj.bj006A006Aj006Aj().b006Aj006A006A006Aj(yiyiiyVar, str, hhuhuh.bo006Fo006F006Fo);
} catch (NumberFormatException e10) {
jjjjoj.b00740074007400740074t(b00690069i0069i0069, "Options/QuietPeriod are not a number", e10);
}
if (b006Aj006A006A006Aj != null) {
hhuhuhVar.b006B006B006B006Bk006B(b006Aj006A006A006Aj);
if ((hhuhuhVar != null || !hhuhuhVar.b006B006Bk006Bk006B().equals("6.3-77 : RL")) && yiyiiyVar != null && str != null) {
hhuhuhVar = huhuhh.bfff0066f0066(yiyiiyVar, str);
}
if (hhuhuhVar == null && hhuhuhVar.b006B006Bk006Bk006B().equals("6.3-77 : RL")) {
return hhuhuhVar;
}
return null;
}
}
hhuhuhVar = null;
if (hhuhuhVar != null) {
}
hhuhuhVar = huhuhh.bfff0066f0066(yiyiiyVar, str);
if (hhuhuhVar == null) {
}
return null;
}
private uuhhuh bg006700670067g00670067(String str) throws InterruptedException, huhuuu {
CountDownLatch countDownLatch = new CountDownLatch(1);
uuhhuh uuhhuhVar = new uuhhuh();
byte[] b0075uu007500750075 = this.b00690069i006900690069.b0066f006600660066f(str).b0075uu007500750075();
Map<String, String> bff006600660066f = uuhhhh.bff006600660066f(this.bii0069006900690069, null, b0075uu007500750075 == null ? 0 : b0075uu007500750075.length);
uhhhuu uhhhuuVar = new uhhhuu(this.b00690069i006900690069.bf0066006600660066f(), countDownLatch, uuhhuhVar, this.b00690069i006900690069.bqq0071qq0071, str);
this.b0077wwwww.httpRequest(TMXProfilingConnectionsInterface.HttpMethod.POST, this.b00690069i006900690069.bf0066006600660066f(), bff006600660066f, b0075uu007500750075, uhhhuuVar);
if (!countDownLatch.await(this.bw0077wwww, TimeUnit.MILLISECONDS)) {
throw new huhuuu(TMXStatusCode.TMX_NetworkTimeout_Error);
}
if (uhhhuuVar.bg006700670067gg0067() != TMXStatusCode.TMX_OK) {
throw new huhuuu(uhhhuuVar.bg006700670067gg0067());
}
if (uuhhuhVar.bk006B006B006B006Bk()) {
return uuhhuhVar;
}
throw new huhuuu(TMXStatusCode.TMX_ConfigurationError);
}
private void bg00670067g006700670067(uuhhuh uuhhuhVar, String str) throws InterruptedException {
HashMap hashMap = new HashMap(4);
TMXProfilingConnectionsInterface tMXProfilingConnectionsInterface = this.b0077wwwww;
HashMap hashMap2 = new HashMap(3);
hashMap2.put("org_id", this.b00690069i006900690069.bqq0071qq0071);
hashMap2.put("session_id", str);
hashMap2.put("nonce", uuhhuhVar.b006F006F006F006Foo);
hashMap.put("connectionInstance", tMXProfilingConnectionsInterface);
hashMap.put("requestFixedPayload", hashMap2);
hashMap.put("requestHeader", uuhhhh.bff006600660066f(this.bii0069006900690069, null, 0));
uuhhhh uuhhhhVar = this.b00690069i006900690069;
hashMap.put("requestUrl", uuhhhhVar.b00660066006600660066f(uuhhhhVar.b00710071qqq0071, uuhhuhVar.b006Fooo006Fo, "clear3.png"));
b0069i00690069i0069.b006A006Aj006Ajj(uuhhuhVar, this.bww0077www.get(), hashMap);
}
public static boolean bg0067g0067006700670067(Thread thread, boolean z, int i10) {
String str = b00690069i0069i0069;
jjjjoj.bt0074007400740074t(str, "wift");
jjjjoj.ojjjoj.bt0074tttt(str, "waiting for thread to complete - " + thread.getId());
int i11 = 100;
if (bii00690069i0069) {
int i12 = i10 / 100;
if (i12 >= 100) {
i11 = i12;
}
} else {
i11 = i10;
}
int i13 = 0;
boolean z10 = false;
do {
try {
thread.join(i11);
} catch (InterruptedException e10) {
if (z) {
jjjjoj.b00740074007400740074t(b00690069i0069i0069, "thread join", e10);
}
z10 = true;
}
i13 += i11;
if (!thread.isAlive() || i13 >= i10) {
break;
}
} while (!z10);
if (!thread.isAlive()) {
return true;
}
if (!z10) {
Exception exc = new Exception();
exc.setStackTrace(thread.getStackTrace());
String str2 = b00690069i0069i0069;
StringBuilder h10 = c.h("join() timeout expired, but thread is still alive (!). Stack trace of TID ");
h10.append(thread.getId());
jjjjoj.b0074t0074tt0074(str2, h10.toString(), exc);
}
return false;
}
public void bg0067g0067g00670067(String str, TMXProfilingOptions tMXProfilingOptions, TMXEndNotifier tMXEndNotifier, uhhuuu uhhuuuVar) {
TMXStatusCode tMXStatusCode;
TMXProfilingHandle.Result result;
String str2;
boolean z;
TMXStatusCode tMXStatusCode2 = TMXStatusCode.TMX_NotYet;
try {
try {
try {
str2 = b00690069i0069i0069;
StringBuilder sb2 = new StringBuilder();
sb2.append("continuing profile request ");
sb2.append(this.b0069i0069006900690069.b0068h0068hh0068() ? "inited already" : " needs init");
jjjjoj.bt0074007400740074t(str2, sb2.toString());
} catch (Throwable th) {
TMXStatusCode tMXStatusCode3 = TMXStatusCode.TMX_Internal_Error;
jjjjoj.b0074t0074tt0074(b00690069i0069i0069, "profile request failed", th);
this.b0077w0077www.bggg00670067g0067(this.bi00690069006900690069.bnn006E006E006E006E);
huhhhu.bg00670067ggg0067();
if (this.b0069i0069006900690069.bh0068hhh0068()) {
tMXStatusCode3 = TMXStatusCode.TMX_Interrupted_Error;
Thread.interrupted();
}
this.b00690069ii00690069 = null;
bgg00670067g00670067(new TMXProfilingHandle.Result(str, tMXStatusCode3), tMXEndNotifier, uhhuuuVar);
oojjjo.bhhhh00680068().b006800680068h00680068(str, tMXStatusCode3);
return;
}
} catch (huhuuu e10) {
tMXStatusCode = e10.b0064ddddd;
this.b0077w0077www.bggg00670067g0067(this.bi00690069006900690069.bnn006E006E006E006E);
huhhhu.bg00670067ggg0067();
if (this.b0069i0069006900690069.bh0068hhh0068()) {
tMXStatusCode = TMXStatusCode.TMX_Interrupted_Error;
Thread.interrupted();
}
this.b00690069ii00690069 = null;
result = new TMXProfilingHandle.Result(str, tMXStatusCode);
} catch (InterruptedException e11) {
if (this.b0069i0069006900690069.bh0068hhh0068()) {
jjjjoj.bt0074007400740074t(b00690069i0069i0069, "profile request interrupted due to cancel");
} else {
jjjjoj.b00740074007400740074t(b00690069i0069i0069, "profile request interrupted", e11);
TMXStatusCode tMXStatusCode4 = TMXStatusCode.TMX_Internal_Error;
}
tMXStatusCode = TMXStatusCode.TMX_Interrupted_Error;
this.b0077w0077www.bggg00670067g0067(this.bi00690069006900690069.bnn006E006E006E006E);
huhhhu.bg00670067ggg0067();
if (this.b0069i0069006900690069.bh0068hhh0068()) {
Thread.interrupted();
}
this.b00690069ii00690069 = null;
result = new TMXProfilingHandle.Result(str, tMXStatusCode);
}
if (this.b0069i0069006900690069.bh0068hhh0068() || Thread.currentThread().isInterrupted()) {
throw new InterruptedException();
}
if (!this.b0069i0069006900690069.b0068h0068hh0068()) {
jjjjoj.bt0074007400740074t(str2, "Not inited");
throw new IllegalArgumentException("Not inited");
}
if (!this.b0069i0069006900690069.bh006800680068h0068(this.bw0077wwww)) {
throw new InterruptedException();
}
jjjjoj.ojjjoj.bt0074tttt(str2, "Result of binding service " + this.b0077w0077www.b0067g0067g0067g0067(this.bi00690069006900690069.bnn006E006E006E006E));
iiiyiy.b0075u0075u0075u();
if (!this.b0069i0069006900690069.b00680068hhh0068() || this.b0069ii006900690069) {
jjjjoj.bt0074t00740074t(str2, "scanPackages(profile): aborted! not inited or disabled");
z = false;
} else {
z = b0069i00690069i0069.bj006Aj006Ajj(this.bi00690069006900690069, this.b0069i0069006900690069, hhhuuu.PROFILE, 0L, this.bi0069i006900690069, null);
}
huuhuu huuhuuVar = new huuhuu(new uhuhuu(false));
this.b00690069ii00690069 = huuhuuVar;
huuhuuVar.start();
if (this.b0069i0069006900690069.bh0068hhh0068() || Thread.currentThread().isInterrupted()) {
throw new InterruptedException();
}
uuhhuh bg006700670067g00670067 = bg006700670067g00670067(str);
if (this.b0069i0069006900690069.bh0068hhh0068() || Thread.currentThread().isInterrupted()) {
throw new InterruptedException();
}
bg00670067g006700670067(bg006700670067g00670067, str);
String str3 = bg006700670067g00670067.b006Fooo006Fo;
bg0067gg006700670067(bg006700670067g00670067, str);
iyyyyy b0067g00670067g00670067 = b0067g00670067g00670067(str, z, tMXProfilingOptions, bg006700670067g00670067);
if (this.b0069i0069006900690069.bh0068hhh0068() || Thread.currentThread().isInterrupted()) {
throw new InterruptedException();
}
tMXStatusCode = b00670067gg006700670067(str3, b0067g00670067g00670067);
this.b0077w0077www.bggg00670067g0067(this.bi00690069006900690069.bnn006E006E006E006E);
huhhhu.bg00670067ggg0067();
if (this.b0069i0069006900690069.bh0068hhh0068()) {
tMXStatusCode = TMXStatusCode.TMX_Interrupted_Error;
Thread.interrupted();
}
this.b00690069ii00690069 = null;
result = new TMXProfilingHandle.Result(str, tMXStatusCode);
bgg00670067g00670067(result, tMXEndNotifier, uhhuuuVar);
oojjjo.bhhhh00680068().b006800680068h00680068(str, tMXStatusCode);
} catch (Throwable th2) {
this.b0077w0077www.bggg00670067g0067(this.bi00690069006900690069.bnn006E006E006E006E);
huhhhu.bg00670067ggg0067();
if (this.b0069i0069006900690069.bh0068hhh0068()) {
tMXStatusCode2 = TMXStatusCode.TMX_Interrupted_Error;
Thread.interrupted();
}
this.b00690069ii00690069 = null;
bgg00670067g00670067(new TMXProfilingHandle.Result(str, tMXStatusCode2), tMXEndNotifier, uhhuuuVar);
oojjjo.bhhhh00680068().b006800680068h00680068(str, tMXStatusCode2);
throw th2;
}
}
private void bg0067gg006700670067(final uuhhuh uuhhuhVar, final String str) {
new Thread(new Runnable() {
@Override
public void run() {
if ((uuuhhu.this.bww0077www.get() & oooooj.bmm006Dmm006D) != 0) {
huhhhu huhhhuVar = new huhhhu();
if (!uuhhuhVar.b006Fo006Fo006Fo.isEmpty()) {
Iterator<String> it = uuhhuhVar.b006Fo006Fo006Fo.iterator();
while (it.hasNext()) {
uuuhhu.this.b0077wwwww.resolveHostByName(uuuhhu.this.b00690069i006900690069.b00660066f00660066f(str, uuhhuhVar.b006F006F006F006Foo, it.next()));
}
}
huhhhuVar.b0067g0067ggg0067("Started DNS request", "sdr");
}
if ((uuuhhu.this.bww0077www.get() & 64) != 0) {
StringBuilder h10 = c.h("<handle sig=FF44EE55 session_id=");
h10.append(str);
h10.append(" org_id=");
h10.append(uuuhhu.this.b00690069i006900690069.bqq0071qq0071);
h10.append(" w=");
uuuhhu.this.b0077wwwww.socketRequest(uuuhhu.this.b00690069i006900690069.b00710071qqq0071, 8080, c.g(h10, uuhhuhVar.bo006F006F006Foo, " />"));
}
if ((uuuhhu.this.bww0077www.get() & oooooj.b0070pp0070pp) == 0 || !uuhuhh.b0066ff006600660066(uuhhuhVar.bo006Foo006Fo)) {
return;
}
iyyyyy iyyyyyVar = new iyyyyy();
iyyyyyVar.buuuu00750075("org_id", uuuhhu.this.b00690069i006900690069.bqq0071qq0071);
iyyyyyVar.buuuu00750075("session_id", str);
iyyyyyVar.buuuu00750075("nonce", uuhhuhVar.b006F006F006F006Foo);
iyyyyyVar.buuuu00750075("i", "1");
byte[] b0075uu007500750075 = iyyyyyVar.b0075uu007500750075();
Map<String, String> bff006600660066f = uuhhhh.bff006600660066f(uuuhhu.this.bii0069006900690069, null, b0075uu007500750075 == null ? 0 : b0075uu007500750075.length);
uuhhhh uuhhhhVar = uuuhhu.this.b00690069i006900690069;
uuhhuh uuhhuhVar2 = uuhhuhVar;
uuuhhu.this.b0077wwwww.httpRequest(TMXProfilingConnectionsInterface.HttpMethod.POST, uuhhhhVar.b00660066006600660066f(uuhhuhVar2.bo006Foo006Fo, uuhhuhVar2.b006Fooo006Fo, "clear.png"), bff006600660066f, b0075uu007500750075, new TMXProfilingConnectionsInterface.TMXCallback() {
@Override
public boolean onComplete(TMXProfilingConnectionsInterface.TMXHttpResponseCode tMXHttpResponseCode, InputStream inputStream) {
if (tMXHttpResponseCode.succeeded()) {
return true;
}
String str2 = uuuhhu.b00690069i0069i0069;
StringBuilder h11 = c.h("secondary post request failed: ");
h11.append(tMXHttpResponseCode.toString());
jjjjoj.bt0074007400740074t(str2, h11.toString());
return true;
}
});
}
}).start();
}
private TMXProfilingHandle bgg00670067g00670067(TMXProfilingHandle.Result result, TMXEndNotifier tMXEndNotifier, TMXProfilingHandle tMXProfilingHandle) {
this.b0069i0069006900690069.b00680068006800680068h();
return b006700670067gg00670067(result, tMXEndNotifier, tMXProfilingHandle);
}
private String bgg0067g006700670067(final String str, final String str2, final String str3, final String str4, final String str5, String str6, String str7, final TMXStrongAuth.StrongAuthCallback strongAuthCallback, final TMXEndNotifier tMXEndNotifier) {
String str8;
String str9;
if (uuhuhh.bf0066f006600660066(str7) || uuhuhh.bf0066f006600660066(str5) || uuhuhh.bf0066f006600660066(str4) || uuhuhh.bf0066f006600660066(str2) || uuhuhh.bf0066f006600660066(str)) {
str8 = b00690069i0069i0069;
str9 = "Stepup Failed: Invalid parameter";
} else {
String str10 = uuhuhh.bf0066f006600660066(str6) ? TMXStrongAuth.AuthMethod.TMX_USER_PRESENCE.name : str6;
if (TMXStrongAuth.b0076v0076v00760076.equals(str7)) {
final TMXStrongAuth.AuthMethod b0067g0067006700670067g = TMXStrongAuth.AuthMethod.b0067g0067006700670067g(str10);
new Thread(new Runnable() {
@Override
public void run() {
uuuhhu.this.b00670067g0067g00670067(str, str2, str3, str4, str5, b0067g0067006700670067g, false, strongAuthCallback, tMXEndNotifier, false);
}
}).start();
return str;
}
str8 = b00690069i0069i0069;
str9 = "Stepup Failed: auth_action is invalid, can't proceed";
}
jjjjoj.bt0074007400740074t(str8, str9);
bggg0067g00670067(null, TMXStatusCode.TMX_StrongAuth_Failed, tMXEndNotifier);
return null;
}
public static int bggg0067006700670067(int i10, int i11, String str) {
return (int) b0067gg0067006700670067(i10, i11, str);
}
public TMXStatusCode bggg0067g00670067(final String str, final TMXStatusCode tMXStatusCode, final TMXEndNotifier tMXEndNotifier) {
if (tMXEndNotifier != null) {
Executors.newSingleThreadExecutor().execute(new Runnable() {
@Override
public void run() {
try {
tMXEndNotifier.complete(new TMXProfilingHandle.Result(str, tMXStatusCode));
} catch (Throwable th) {
String str2 = uuuhhu.b00690069i0069i0069;
StringBuilder h10 = c.h("Unexpected exception occurred when calling StepUpNotifier ");
h10.append(th.toString());
jjjjoj.bt0074t00740074t(str2, h10.toString());
}
}
});
}
return tMXStatusCode;
}
private boolean bgggg006700670067() {
yiyiiy yiyiiyVar = this.bi00690069006900690069;
boolean z = yiyiiyVar == null || jjojjj.b007900790079y00790079(yiyiiyVar);
return this.b0069i0069i00690069 == 0 ? z : z || this.b00770077wwww;
}
public abstract void b0067g0067g00670067g(TMXConfig tMXConfig) throws IllegalArgumentException, IllegalStateException;
public synchronized void b0067gg0067g00670067() {
String str = b00690069i0069i0069;
jjjjoj.bt0074007400740074t(str, "cancel()");
if (this.b0069i0069006900690069.b0068h0068hh0068()) {
b0069i00690069i0069.b0074tt007400740074();
if (this.b0069i0069006900690069.bh00680068hh0068()) {
if (!this.b0069i0069006900690069.b0068hh0068h0068()) {
jjjjoj.btt0074tt0074(str, "Cancel already happened");
return;
}
if (this.b0069i0069006900690069.bh00680068hh0068()) {
jjjjoj.bt0074007400740074t(str, "cancelling any outstanding JNI calls");
ooojoj.bj006A006Aj006Aj().b006Aj006A006Ajj();
TMXProfilingConnectionsInterface tMXProfilingConnectionsInterface = this.b0077wwwww;
if (tMXProfilingConnectionsInterface != null) {
jjjjoj.bt0074007400740074t(str, "cancelling active profiling request");
tMXProfilingConnectionsInterface.cancelProfiling();
}
Thread thread = this.bi0069ii00690069;
if (thread != null) {
jjjjoj.bt0074007400740074t(str, "sending interrupt to profile thread TID: " + thread.getId());
thread.interrupt();
}
Thread thread2 = this.b00690069ii00690069;
if (thread2 != null) {
thread2.interrupt();
}
if (thread != null && thread.isAlive()) {
jjjjoj.bt0074007400740074t(str, "waiting for profile thread to complete");
bg0067g0067006700670067(thread, false, this.bw0077wwww);
}
jjjjoj.bt0074007400740074t(str, "Waiting for any outstanding JNI calls");
ooojoj.bj006A006Aj006Aj().bjjjj006A006A();
}
this.b0069i0069006900690069.bhh006800680068h();
}
if (this.b0069i0069006900690069.bh0068h0068h0068()) {
jjjjoj.ojjjoj.b00740074t0074tt(str, "Waiting for package scan");
this.b0069i0069006900690069.b0068006800680068h0068(false, null);
}
this.b0069i0069006900690069.b0068h006800680068h();
jjjjoj.bt0074007400740074t(str, "Cancelled");
}
}
public abstract void bgg0067g00670067g(yiyiiy yiyiiyVar);
public void deregisterUser(final String str, final TMXEndNotifier tMXEndNotifier) {
if (uuhuhh.bf0066f006600660066(str)) {
jjjjoj.bt0074007400740074t(b00690069i0069i0069, "De-registration Failed: Invalid parameter is passed to deregister method");
bggg0067g00670067(null, TMXStatusCode.TMX_StrongAuth_Failed, tMXEndNotifier);
}
if (this.b0069i0069006900690069.b0068h0068hh0068()) {
new Thread(new Runnable() {
@Override
public void run() {
TMXStatusCode tMXStatusCode;
uuuhhu uuuhhuVar;
TMXStatusCode tMXStatusCode2;
try {
try {
try {
uuuhhuVar = uuuhhu.this;
} catch (IllegalArgumentException unused) {
tMXStatusCode = TMXStatusCode.TMX_StrongAuth_Unsupported;
}
} catch (Throwable th) {
jjjjoj.b00740074007400740074t(uuuhhu.b00690069i0069i0069, "StrongAuth request failed", th);
tMXStatusCode = TMXStatusCode.TMX_StrongAuth_Failed;
}
if (uuuhhuVar.b0069i0069006900690069.bh006800680068h0068(uuuhhuVar.bw0077wwww)) {
iiiyii btt0074007400740074 = uuuhhu.b0069i00690069i0069.btt0074007400740074();
if ((uuuhhu.this.bww0077www.get() & oooooj.b006D006D006D006Dm006D) != 0 && btt0074007400740074 != null) {
TMXStrongAuth.AuthParamResult b0064d006400640064d = btt0074007400740074.b0064d006400640064d(str);
if (b0064d006400640064d != null) {
tMXStatusCode = b0064d006400640064d.b0076vv007600760076.bvv0076007600760076;
uuuhhu.this.bggg0067g00670067(null, tMXStatusCode, tMXEndNotifier);
return;
} else {
jjjjoj.bt0074007400740074t(uuuhhu.b00690069i0069i0069, "StrongAuth Failed");
tMXStatusCode2 = TMXStatusCode.TMX_StrongAuth_Failed;
}
}
jjjjoj.bt0074t00740074t(uuuhhu.b00690069i0069i0069, "StrongAuth Failed: TMXAuthentication module is not valid. Please make sure the correct version of TMXAuthentication module is included in the app.");
tMXStatusCode2 = TMXStatusCode.TMX_StrongAuth_Failed;
} else {
jjjjoj.bt0074007400740074t(uuuhhu.b00690069i0069i0069, "StrongAuth Failed: Timeout while waiting for init to finish");
tMXStatusCode2 = TMXStatusCode.TMX_Internal_Error;
}
uuuhhu.this.bggg0067g00670067(null, tMXStatusCode2, tMXEndNotifier);
} catch (Throwable th2) {
uuuhhu.this.bggg0067g00670067(null, null, tMXEndNotifier);
throw th2;
}
}
}).start();
} else {
jjjjoj.bt0074007400740074t(b00690069i0069i0069, "StrongAuth Failed: init() is not called");
bggg0067g00670067(null, TMXStatusCode.TMX_StrongAuth_Failed, tMXEndNotifier);
}
}
public void init(final TMXConfig tMXConfig) throws IllegalArgumentException, IllegalStateException {
final yiyiiy b00670067ggg0067g = tMXConfig.b00670067ggg0067g();
if (b00670067ggg0067g == null) {
throw new IllegalArgumentException("Failed to init: Invalid Context");
}
if (jjjjoj.b007400740074t0074t() && (tMXConfig.bgg00670067g0067g() & oooooj.bm006D006Dm006D006D) == 0) {
jjjjoj.b00740074ttt0074(true);
}
if (!this.b0069i0069006900690069.b00680068h0068h0068()) {
jjjjoj.bt0074007400740074t(b00690069i0069i0069, "Already init'd");
return;
}
iiiyiy.b0075u0075u0075u();
try {
this.b0069ii006900690069 = tMXConfig.bg00670067gg0067g();
this.bi0069i006900690069 = bggg0067006700670067(tMXConfig.bg006700670067g0067g(), 0, "package scan timeout");
this.biii006900690069 = bggg0067006700670067(tMXConfig.b0067gg0067g0067g(), 0, "init package scan timeout");
b0067g0067g00670067g(tMXConfig);
if (!uuhhhh.bf0066f00660066f(tMXConfig.b0067g00670067g0067g())) {
this.b0069i0069006900690069.bh0068006800680068h(false);
throw new IllegalArgumentException("Failed to init: Invalid format for org id");
}
if (uuhhhh.bfffff0066(tMXConfig.b006700670067gg0067g())) {
this.b0069i0069006900690069.bh0068006800680068h(false);
throw new IllegalArgumentException("Failed to init: Invalid format for fingerprint server");
}
this.b00690069i006900690069 = new uuhhhh(tMXConfig.b006700670067gg0067g(), tMXConfig.b0067g00670067g0067g(), tMXConfig.bg0067ggg0067g());
this.bw0077wwww = bggg0067006700670067(tMXConfig.b0067006700670067g0067g(), Integer.MAX_VALUE, "profileTimeout");
if (this.bw0077wwww == 0) {
this.bw0077wwww = TMXConfig.bvv00760076vv;
}
this.b0077wwwww = tMXConfig.bgggg00670067g();
if (this.b0077wwwww == null) {
String str = b00690069i0069i0069;
jjjjoj.ojjjoj.b00740074t0074tt(str, "No profilingConnections instance being passed in by setProfilingConnections, try initialising one if connection module is available.");
this.b0077wwwww = jjojoj.b006Ajj006Ajj();
if (this.b0077wwwww == null) {
this.b0069i0069006900690069.bh0068006800680068h(false);
jjjjoj.bt0074t00740074t(str, "Failed to instantiate http client");
throw new IllegalStateException("Failed to init: failed to instantiate http client");
}
}
jjjjoj.bt0074007400740074t(b00690069i0069i0069, "Starting init()");
this.b00770077wwww = true;
final uuhhuu uuhhuuVar = this.b0069006900690069i0069;
if (uuhhuuVar != null) {
uuhhuuVar.pause();
}
this.bi00690069006900690069 = b00670067ggg0067g;
StringBuilder i10 = c.i(b00670067ggg0067g.b0075u00750075uu(), "TDM");
i10.append(tMXConfig.b0067g00670067g0067g());
this.b0069iii00690069 = i10.toString();
this.bww0077www.set(tMXConfig.bgg00670067g0067g());
final long b006Ajjjjj = b0069i00690069i0069.b006Ajjjjj();
new Thread(new Runnable() {
@Override
public void run() {
try {
jjjjoj.bt0074007400740074t(uuuhhu.b00690069i0069i0069, "Doing slow init stuff");
uuhhuu uuhhuuVar2 = uuhhuuVar;
if (uuhhuuVar2 != null) {
uuhhuuVar2.config(tMXConfig);
}
ooojoj.bj006A006Aj006Aj().b006Ajjjj006A(b00670067ggg0067g, BuildConfig.JNI_FILENAME, jjjjoj.bttt00740074t(), jjjjoj.b007400740074t0074t());
String str2 = uuuhhu.b00690069i0069i0069;
StringBuilder sb2 = new StringBuilder();
sb2.append("Native libs: ");
sb2.append(ooojoj.bj006A006Aj006Aj().b006A006Ajjj006A() ? "available" : "unavailable");
jjjjoj.btt0074tt0074(str2, sb2.toString());
uhuhhu uhuhhuVar = new uhuhhu(tMXConfig.b00670067ggg0067g(), tMXConfig.bgg00670067g0067g(), uuuhhu.this.bww0077www, b006Ajjjjj);
uuuhhu uuuhhuVar = uuuhhu.this;
uuuhhuVar.bii0069006900690069 = uhuhhuVar;
hhuhuh b0067ggg006700670067 = uuuhhuVar.b0067ggg006700670067();
if (b0067ggg006700670067 != null) {
jjjjoj.ojjjoj.bt0074tttt(uuuhhu.b00690069i0069i0069, "applying saved options (" + b0067ggg006700670067.b006Bkk006Bk006B() + " / " + b0067ggg006700670067.bkkk006Bk006B() + ") to " + uuuhhu.this.bww0077www.get());
uuuhhu.this.b0067g0067g006700670067(b0067ggg006700670067.bkkk006Bk006B(), b0067ggg006700670067.b006Bkk006Bk006B());
jjjjoj.ojjjoj.b00740074tttt(uuuhhu.b00690069i0069i0069, "Got quiet period from saved preferences {}", Integer.valueOf(b0067ggg006700670067.bk006Bk006Bk006B()));
uuuhhu.this.bii0069i00690069 = b0067ggg006700670067;
uuuhhu.this.bi00690069i00690069 = b0067ggg006700670067.bk006Bk006Bk006B();
}
if ((uuuhhu.this.bww0077www.get() & oooooj.bm006D006D006Dm006D) == 0) {
uuuhhu.this.bgg0067g00670067g(b00670067ggg0067g);
}
hhuhuu hhuhuuVar = uuuhhu.this.bi006900690069i0069;
if ((uuuhhu.this.bww0077www.get() & oooooj.b006D006Dm006Dm006D) != 0 && hhuhuuVar != null) {
uuuhhu.this.b006900690069i00690069 = hhuhuuVar.bindToGooglePlayService(b00670067ggg0067g);
}
uuhuhh.b0066f0066006600660066(null);
if (!tMXConfig.bgg0067gg0067g()) {
jjojoj jjojojVar = uuuhhu.b0069i00690069i0069;
yiyiiy b00670067ggg0067g2 = tMXConfig.b00670067ggg0067g();
uuuhhu uuuhhuVar2 = uuuhhu.this;
jjojojVar.bj006Aj006Ajj(b00670067ggg0067g2, uuuhhuVar2.b0069i0069006900690069, hhhuuu.INIT, 0L, uuuhhuVar2.biii006900690069, null);
}
uuuhhu.this.b0069i0069006900690069.bh0068006800680068h(true);
jjjjoj.bt0074007400740074t(uuuhhu.b00690069i0069i0069, "init completed successfully");
} catch (Throwable th) {
uuuhhu.this.b0069i0069006900690069.bh0068006800680068h(false);
String str3 = uuuhhu.b00690069i0069i0069;
StringBuilder h10 = c.h("Exception in init");
h10.append(th.toString());
jjjjoj.bt0074007400740074t(str3, h10.toString());
}
}
}).start();
} catch (RuntimeException e10) {
this.b0069i0069006900690069.bh0068006800680068h(false);
throw e10;
}
}
public void pauseLocationServices(boolean z) {
uuhhuu uuhhuuVar = this.b0069006900690069i0069;
if (uuhhuuVar == null) {
return;
}
if (z) {
uuhhuuVar.pause();
} else {
uuhhuuVar.resume();
}
}
public String processStrongAuthMessage(TMXStrongAuth.StrongAuthConfiguration strongAuthConfiguration, TMXStrongAuth.StrongAuthCallback strongAuthCallback, TMXEndNotifier tMXEndNotifier) {
String bf00660066006600660066 = uuhuhh.bf00660066006600660066();
String str = strongAuthConfiguration.bi00690069iii;
String str2 = strongAuthConfiguration.b0069i0069iii;
return bgg0067g006700670067(bf00660066006600660066, str, strongAuthConfiguration.b0069ii0069ii, strongAuthConfiguration.biii0069ii, strongAuthConfiguration.b006900690069iii, strongAuthConfiguration.bi0069i0069ii, str2, strongAuthCallback, tMXEndNotifier);
}
public String processStrongAuthMessage(Object obj, TMXStrongAuth.StrongAuthCallback strongAuthCallback, TMXEndNotifier tMXEndNotifier) {
String str;
String str2;
if (obj instanceof Bundle) {
Bundle bundle = (Bundle) obj;
TMXStrongAuth.StrongAuthConfiguration strongAuthConfiguration = new TMXStrongAuth.StrongAuthConfiguration();
strongAuthConfiguration.setAuthMethod(bundle.getString(TMXStrongAuth.AUTH_METHOD));
strongAuthConfiguration.setAuthAction(bundle.getString(TMXStrongAuth.AUTH_ACTION));
strongAuthConfiguration.setAuthContext(bundle.getString(TMXStrongAuth.AUTH_CONTEXT));
strongAuthConfiguration.setAuthRequestId(bundle.getString(TMXStrongAuth.AUTH_REQUEST_ID));
strongAuthConfiguration.setAuthPrompt(bundle.getString(TMXStrongAuth.AUTH_PROMPT));
strongAuthConfiguration.setAuthTitle(bundle.getString(TMXStrongAuth.AUTH_TITLE));
return processStrongAuthMessage(strongAuthConfiguration, strongAuthCallback, tMXEndNotifier);
}
Method b006Fo006Foooo = huuuuu.b006Fo006Foooo(obj.getClass(), "getData", new Class[0]);
if (b006Fo006Foooo == null) {
str = b00690069i0069i0069;
str2 = "Stepup Failed: Message parameter does not have \"getData\" method";
} else {
Object booo006Fooo = huuuuu.booo006Fooo(obj, b006Fo006Foooo, new Object[0]);
if (booo006Fooo instanceof Map) {
Map map = (Map) booo006Fooo;
String bf00660066006600660066 = uuhuhh.bf00660066006600660066();
String str3 = (String) map.get(TMXStrongAuth.AUTH_REQUEST_ID);
String str4 = (String) map.get(TMXStrongAuth.AUTH_ACTION);
String str5 = (String) map.get(TMXStrongAuth.AUTH_CONTEXT);
return bgg0067g006700670067(bf00660066006600660066, str3, (String) map.get(TMXStrongAuth.AUTH_TITLE), (String) map.get(TMXStrongAuth.AUTH_PROMPT), str5, (String) map.get(TMXStrongAuth.AUTH_METHOD), str4, strongAuthCallback, tMXEndNotifier);
}
str = b00690069i0069i0069;
str2 = "Stepup Failed: \"getData\" returns wrong type";
}
jjjjoj.bt0074007400740074t(str, str2);
bggg0067g00670067(null, TMXStatusCode.TMX_StrongAuth_Failed, tMXEndNotifier);
return null;
}
public TMXProfilingHandle profile(TMXEndNotifier tMXEndNotifier) {
return profile(new TMXProfilingOptions(), tMXEndNotifier);
}
public TMXProfilingHandle profile(final TMXProfilingOptions tMXProfilingOptions, final TMXEndNotifier tMXEndNotifier) {
oojjjo.bhhhh00680068().bhhh006800680068();
if (!this.b0069i0069006900690069.b0068h0068hh0068()) {
return b006700670067gg00670067(new TMXProfilingHandle.Result(null, TMXStatusCode.TMX_Internal_Error), tMXEndNotifier, new uhhuuu(null));
}
if (!this.b0069i0069006900690069.bhh00680068h0068()) {
return b006700670067gg00670067(new TMXProfilingHandle.Result(null, TMXStatusCode.TMX_NotYet), tMXEndNotifier, new uhhuuu(null));
}
if ((this.bww0077www.get() & oooooj.bm006D006D006Dm006D) == 0 && !bgggg006700670067()) {
this.b0069i0069006900690069.b00680068006800680068h();
return b006700670067gg00670067(new TMXProfilingHandle.Result(null, TMXStatusCode.TMX_Blocked), tMXEndNotifier, new uhhuuu(null));
}
if (b0067006700670067g00670067()) {
this.b0069i0069006900690069.b00680068006800680068h();
return b006700670067gg00670067(new TMXProfilingHandle.Result(null, TMXStatusCode.TMX_In_Quiet_Period), tMXEndNotifier, new uhhuuu(null));
}
if (tMXEndNotifier == null) {
this.b0069i0069006900690069.b00680068006800680068h();
return b006700670067gg00670067(new TMXProfilingHandle.Result(null, TMXStatusCode.TMX_EndNotifier_NotFound), null, new uhhuuu(null));
}
final String b006Bkkkkk = uuhuhh.b0066ff006600660066(tMXProfilingOptions.bgg0067006700670067g()) ? uuhuhh.b006Bkkkkk(tMXProfilingOptions.bgg0067006700670067g()) : uuhuhh.bf00660066006600660066();
if (uuhuhh.bf0066f006600660066(b006Bkkkkk)) {
this.b0069i0069006900690069.b00680068006800680068h();
jjjjoj.bt0074t00740074t(b00690069i0069i0069, "Failed to start profiling: Invalid session id");
return b006700670067gg00670067(new TMXProfilingHandle.Result(null, TMXStatusCode.TMX_Internal_Error), tMXEndNotifier, new uhhuuu(null));
}
jjjjoj.bttt00740074t();
String str = b00690069i0069i0069;
StringBuilder h10 = c.h("starting profile request using - 6.3-77 : RL options ");
h10.append(this.bww0077www.get());
h10.append(" profileTimeout ");
h10.append(this.bw0077wwww);
h10.append("ms java.vm.version ");
h10.append(System.getProperty("java.vm.version"));
jjjjoj.bt0074007400740074t(str, h10.toString());
final uhhuuu uhhuuuVar = new uhhuuu(b006Bkkkkk);
this.b0077wwwww.cancelProfiling();
uuhhuu uuhhuuVar = this.b0069006900690069i0069;
if (uuhhuuVar != null) {
uuhhuuVar.setLocation(tMXProfilingOptions.b00670067g006700670067g());
}
this.bi0069ii00690069 = new Thread(new Runnable() {
@Override
public void run() {
uuuhhu.this.bg0067g0067g00670067(b006Bkkkkk, tMXProfilingOptions, tMXEndNotifier, uhhuuuVar);
}
});
this.bi0069ii00690069.start();
return uhhuuuVar;
}
public TMXProfilingHandle profile(String str, TMXEndNotifier tMXEndNotifier) {
return profile(new TMXProfilingOptions().setSessionID(str), tMXEndNotifier);
}
public String registerUser(final String str, final String str2, final String str3, final TMXStrongAuth.StrongAuthCallback strongAuthCallback, final TMXEndNotifier tMXEndNotifier) {
final String bf00660066006600660066 = uuhuhh.bf00660066006600660066();
if (!uuhuhh.bf0066f006600660066(str) && !uuhuhh.bf0066f006600660066(str3) && !uuhuhh.bf0066f006600660066(bf00660066006600660066)) {
new Thread(new Runnable() {
@Override
public void run() {
uuuhhu.this.b00670067g0067g00670067(bf00660066006600660066, null, str2, str3, str, TMXStrongAuth.AuthMethod.TMX_USER_PRESENCE, true, strongAuthCallback, tMXEndNotifier, true);
}
}).start();
return bf00660066006600660066;
}
jjjjoj.bt0074007400740074t(b00690069i0069i0069, "Registration Failed: Invalid parameter is passed to register method");
bggg0067g00670067(null, TMXStatusCode.TMX_StrongAuth_Failed, tMXEndNotifier);
return null;
}
public boolean scanPackages() {
return scanPackages(0, TimeUnit.SECONDS, null);
}
public boolean scanPackages(int i10, TimeUnit timeUnit, TMXScanEndNotifier tMXScanEndNotifier) {
int millis = (int) timeUnit.toMillis(i10);
int i11 = (millis != 0 || i10 == 0) ? millis : 1;
if (this.b0069i0069006900690069.b00680068hhh0068()) {
return b0069i00690069i0069.bj006Aj006Ajj(this.bi00690069006900690069, this.b0069i0069006900690069, hhhuuu.SCAN_PACKAGES, this.bww0077www.get(), i11, tMXScanEndNotifier);
}
jjjjoj.bt0074t00740074t(b00690069i0069i0069, "scanPackages(scanPackages): aborted! init method is not called");
return false;
}
public boolean scanPackages(TMXScanEndNotifier tMXScanEndNotifier) {
return scanPackages(0, TimeUnit.SECONDS, tMXScanEndNotifier);
}
public void waitForInfoCollectionAndUpdateDefaultOptions(uuhhuh uuhhuhVar) throws InterruptedException, huhuuu {
huuhuu huuhuuVar = (huuhuu) this.b00690069ii00690069;
if (huuhuuVar != null) {
huuhuuVar.join(this.bw0077wwww);
if (huuhuuVar.getState() != Thread.State.TERMINATED) {
jjjjoj.bt0074t00740074t(b00690069i0069i0069, "ScanData hasn't completed before the timeout expired, aborting");
huuhuuVar.interrupt();
throw new huhuuu(TMXStatusCode.TMX_ProfileTimeout_Error);
}
if (((uhuhuu) huuhuuVar.m_runnable).b0067g00670067gg0067()) {
throw new InterruptedException();
}
}
if (b006700670067g006700670067(uuhhuhVar)) {
b0067g0067g006700670067(uuhhuhVar.b006C006Cl006C006C006C & oooooj.b00700070pp0070p, oooooj.b00700070pp0070p & uuhhuhVar.bl006Cl006C006C006C);
}
this.bi00690069i00690069 = uuhhuhVar.bll006C006C006C006C;
huhhhu.b006700670067ggg0067(uuhhuhVar.b006Cl006C006C006C006C);
}
}