474 lines
20 KiB
Java
474 lines
20 KiB
Java
|
package com.scb.phone.view.adapter.investment;
|
||
|
|
||
|
import android.content.Context;
|
||
|
import android.media.AudioTrack;
|
||
|
import android.os.Process;
|
||
|
import android.telephony.cdma.CdmaCellLocation;
|
||
|
import android.text.TextUtils;
|
||
|
import android.view.LayoutInflater;
|
||
|
import android.view.View;
|
||
|
import android.view.ViewConfiguration;
|
||
|
import android.view.ViewGroup;
|
||
|
import android.widget.ExpandableListView;
|
||
|
import android.widget.ImageView;
|
||
|
import android.widget.RelativeLayout;
|
||
|
import android.widget.TextView;
|
||
|
import androidx.recyclerview.widget.RecyclerView;
|
||
|
import butterknife.BindView;
|
||
|
import butterknife.ButterKnife;
|
||
|
import butterknife.Unbinder;
|
||
|
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
|
||
|
import com.scb.phone.R;
|
||
|
import com.scb.phone.view.adapter.investment.InvestmentDetailsTransactionAdapter;
|
||
|
import java.lang.reflect.Method;
|
||
|
import java.util.List;
|
||
|
import net.sf.scuba.smartcards.ISO7816;
|
||
|
import o.C6583cXR;
|
||
|
import o.OM;
|
||
|
import o.TVH;
|
||
|
import o.fIB;
|
||
|
import o.pyT;
|
||
|
import o.xzZ;
|
||
|
|
||
|
/* loaded from: classes5.dex */
|
||
|
public final class InvestmentDetailsTransactionAdapter extends RecyclerView.Sts<TransactionHolder> {
|
||
|
private fIB a;
|
||
|
private List<OM> d;
|
||
|
private Context e;
|
||
|
|
||
|
/* loaded from: classes5.dex */
|
||
|
public class TransactionHolder_ViewBinding implements Unbinder {
|
||
|
private TransactionHolder d;
|
||
|
|
||
|
public TransactionHolder_ViewBinding(TransactionHolder transactionHolder, View view) {
|
||
|
this.d = transactionHolder;
|
||
|
transactionHolder.container = (RelativeLayout) pyT.e(view, R.id.transaction_container, "field 'container'", RelativeLayout.class);
|
||
|
transactionHolder.mLine = pyT.a(view, R.id.transaction_line, "field 'mLine'");
|
||
|
transactionHolder.mBottomLine = pyT.a(view, R.id.transaction_vertical_line_view, "field 'mBottomLine'");
|
||
|
transactionHolder.mEmptyDot = pyT.a(view, R.id.transaction_empty_dot, "field 'mEmptyDot'");
|
||
|
transactionHolder.mDateTime = (TextView) pyT.e(view, R.id.transaction_date_time, "field 'mDateTime'", TextView.class);
|
||
|
transactionHolder.mClientNo = (TextView) pyT.e(view, R.id.transaction_client_no, "field 'mClientNo'", TextView.class);
|
||
|
transactionHolder.mTransactionType = (TextView) pyT.e(view, R.id.transaction_transaction_type, "field 'mTransactionType'", TextView.class);
|
||
|
transactionHolder.mFundCode = (TextView) pyT.e(view, R.id.transaction_fund_code, "field 'mFundCode'", TextView.class);
|
||
|
transactionHolder.mQuantity = (TextView) pyT.e(view, R.id.transaction_quantity, "field 'mQuantity'", TextView.class);
|
||
|
transactionHolder.mQuantityLabel = (TextView) pyT.e(view, R.id.transaction_quantity_label, "field 'mQuantityLabel'", TextView.class);
|
||
|
transactionHolder.mTransactionLabel = (TextView) pyT.e(view, R.id.transaction_transaction_label, "field 'mTransactionLabel'", TextView.class);
|
||
|
transactionHolder.mReference = (TextView) pyT.e(view, R.id.transaction_reference, "field 'mReference'", TextView.class);
|
||
|
transactionHolder.mEffectiveDateLabel = (TextView) pyT.e(view, R.id.transaction_effective_date_label, "field 'mEffectiveDateLabel'", TextView.class);
|
||
|
transactionHolder.mEffectiveDate = (TextView) pyT.e(view, R.id.transaction_effective_date_value, "field 'mEffectiveDate'", TextView.class);
|
||
|
transactionHolder.mAllowDelete = (ImageView) pyT.e(view, R.id.transaction_allow_delete_image_view, "field 'mAllowDelete'", ImageView.class);
|
||
|
}
|
||
|
|
||
|
@Override // butterknife.Unbinder
|
||
|
public final void a() {
|
||
|
TransactionHolder transactionHolder = this.d;
|
||
|
if (transactionHolder == null) {
|
||
|
throw new IllegalStateException("Bindings already cleared.");
|
||
|
}
|
||
|
this.d = null;
|
||
|
transactionHolder.container = null;
|
||
|
transactionHolder.mLine = null;
|
||
|
transactionHolder.mBottomLine = null;
|
||
|
transactionHolder.mEmptyDot = null;
|
||
|
transactionHolder.mDateTime = null;
|
||
|
transactionHolder.mClientNo = null;
|
||
|
transactionHolder.mTransactionType = null;
|
||
|
transactionHolder.mFundCode = null;
|
||
|
transactionHolder.mQuantity = null;
|
||
|
transactionHolder.mQuantityLabel = null;
|
||
|
transactionHolder.mTransactionLabel = null;
|
||
|
transactionHolder.mReference = null;
|
||
|
transactionHolder.mEffectiveDateLabel = null;
|
||
|
transactionHolder.mEffectiveDate = null;
|
||
|
transactionHolder.mAllowDelete = null;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@Override // androidx.recyclerview.widget.RecyclerView.Sts
|
||
|
public final /* synthetic */ void onBindViewHolder(TransactionHolder transactionHolder, final int i) {
|
||
|
TransactionHolder transactionHolder2 = transactionHolder;
|
||
|
transactionHolder2.b(i);
|
||
|
transactionHolder2.mAllowDelete.setOnClickListener(new View.OnClickListener(this, i) { // from class: o.evf
|
||
|
private InvestmentDetailsTransactionAdapter b;
|
||
|
private int d;
|
||
|
|
||
|
@Override // android.view.View.OnClickListener
|
||
|
public final void onClick(View view) {
|
||
|
InvestmentDetailsTransactionAdapter.d(this.b, this.d);
|
||
|
}
|
||
|
|
||
|
{
|
||
|
this.b = this;
|
||
|
this.d = i;
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
public InvestmentDetailsTransactionAdapter(Context context, List<OM> list, fIB fib) {
|
||
|
this.e = context;
|
||
|
this.d = list;
|
||
|
this.a = fib;
|
||
|
}
|
||
|
|
||
|
@Override // androidx.recyclerview.widget.RecyclerView.Sts
|
||
|
public final int getItemCount() {
|
||
|
return this.d.size();
|
||
|
}
|
||
|
|
||
|
/* loaded from: classes5.dex */
|
||
|
class TransactionHolder extends RecyclerView.zJl {
|
||
|
private InvestmentDetailsTransactionAdapter c;
|
||
|
|
||
|
@BindView
|
||
|
RelativeLayout container;
|
||
|
|
||
|
@BindView
|
||
|
ImageView mAllowDelete;
|
||
|
|
||
|
@BindView
|
||
|
View mBottomLine;
|
||
|
|
||
|
@BindView
|
||
|
TextView mClientNo;
|
||
|
|
||
|
@BindView
|
||
|
TextView mDateTime;
|
||
|
|
||
|
@BindView
|
||
|
TextView mEffectiveDate;
|
||
|
|
||
|
@BindView
|
||
|
TextView mEffectiveDateLabel;
|
||
|
|
||
|
@BindView
|
||
|
View mEmptyDot;
|
||
|
|
||
|
@BindView
|
||
|
TextView mFundCode;
|
||
|
|
||
|
@BindView
|
||
|
View mLine;
|
||
|
|
||
|
@BindView
|
||
|
TextView mQuantity;
|
||
|
|
||
|
@BindView
|
||
|
TextView mQuantityLabel;
|
||
|
|
||
|
@BindView
|
||
|
TextView mReference;
|
||
|
|
||
|
@BindView
|
||
|
TextView mTransactionLabel;
|
||
|
|
||
|
@BindView
|
||
|
TextView mTransactionType;
|
||
|
private static final byte[] $$a = {124, -126, ISO7816.INS_MSE, 69};
|
||
|
private static final int $$b = 241;
|
||
|
private static int $10 = 0;
|
||
|
private static int $11 = 1;
|
||
|
private static int b = 0;
|
||
|
private static int e = 1;
|
||
|
private static char[] d = {39958};
|
||
|
|
||
|
/* JADX WARN: Removed duplicated region for block: B:10:0x0024 */
|
||
|
/* JADX WARN: Removed duplicated region for block: B:7:0x001c */
|
||
|
/* JADX WARN: Unsupported multi-entry loop pattern (BACK_EDGE: B:10:0x0024 -> B:4:0x002c). Please report as a decompilation issue!!! */
|
||
|
/*
|
||
|
Code decompiled incorrectly, please refer to instructions dump.
|
||
|
To view partially-correct add '--show-bad-code' argument
|
||
|
*/
|
||
|
private static void f(short r6, short r7, short r8, java.lang.Object[] r9) {
|
||
|
/*
|
||
|
int r7 = r7 + 4
|
||
|
byte[] r0 = com.scb.phone.view.adapter.investment.InvestmentDetailsTransactionAdapter.TransactionHolder.$$a
|
||
|
int r6 = r6 * 2
|
||
|
int r6 = r6 + 71
|
||
|
int r8 = r8 * 4
|
||
|
int r1 = r8 + 1
|
||
|
byte[] r1 = new byte[r1]
|
||
|
r2 = 0
|
||
|
if (r0 != 0) goto L14
|
||
|
r3 = r7
|
||
|
r4 = r2
|
||
|
goto L2c
|
||
|
L14:
|
||
|
r3 = r2
|
||
|
L15:
|
||
|
byte r4 = (byte) r6
|
||
|
int r7 = r7 + 1
|
||
|
r1[r3] = r4
|
||
|
if (r3 != r8) goto L24
|
||
|
java.lang.String r6 = new java.lang.String
|
||
|
r6.<init>(r1, r2)
|
||
|
r9[r2] = r6
|
||
|
return
|
||
|
L24:
|
||
|
int r3 = r3 + 1
|
||
|
r4 = r0[r7]
|
||
|
r5 = r3
|
||
|
r3 = r7
|
||
|
r7 = r4
|
||
|
r4 = r5
|
||
|
L2c:
|
||
|
int r6 = r6 + r7
|
||
|
r7 = r3
|
||
|
r3 = r4
|
||
|
goto L15
|
||
|
*/
|
||
|
throw new UnsupportedOperationException("Method not decompiled: com.scb.phone.view.adapter.investment.InvestmentDetailsTransactionAdapter.TransactionHolder.f(short, short, short, java.lang.Object[]):void");
|
||
|
}
|
||
|
|
||
|
/* JADX WARN: 'super' call moved to the top of the method (can break code semantics) */
|
||
|
TransactionHolder(InvestmentDetailsTransactionAdapter investmentDetailsTransactionAdapter, View view) {
|
||
|
super(view);
|
||
|
this.c = investmentDetailsTransactionAdapter;
|
||
|
ButterKnife.c(this, view);
|
||
|
}
|
||
|
|
||
|
final void b(int i) {
|
||
|
boolean z;
|
||
|
boolean z2;
|
||
|
int i2 = 2 % 2;
|
||
|
OM om = (OM) this.c.d.get(i);
|
||
|
if (i == 0) {
|
||
|
int i3 = e + 37;
|
||
|
b = i3 % 128;
|
||
|
int i4 = i3 % 2;
|
||
|
z = true;
|
||
|
} else {
|
||
|
z = false;
|
||
|
}
|
||
|
this.mLine.setVisibility(z ? 4 : 0);
|
||
|
if (i == this.c.d.size() - 1) {
|
||
|
int i5 = e + 103;
|
||
|
b = i5 % 128;
|
||
|
int i6 = i5 % 2;
|
||
|
z2 = true;
|
||
|
} else {
|
||
|
z2 = false;
|
||
|
}
|
||
|
this.mBottomLine.setVisibility(z2 ? 8 : 0);
|
||
|
this.mDateTime.setText(om.m);
|
||
|
this.mClientNo.setText((String) C6583cXR.c(new Object[]{om.d}, -1613428710, 1613428726, (int) System.currentTimeMillis()));
|
||
|
this.mTransactionType.setText(om.n);
|
||
|
this.mFundCode.setText(om.c);
|
||
|
this.mQuantity.setText(om.j);
|
||
|
this.mQuantityLabel.setText(om.f);
|
||
|
this.mTransactionLabel.setText(om.f8300o);
|
||
|
this.mReference.setText(om.g);
|
||
|
Object[] objArr = new Object[1];
|
||
|
a(new byte[]{0}, new int[]{0, 1, 9, 0}, true, objArr);
|
||
|
this.mAllowDelete.setVisibility(((String) objArr[0]).intern().equals(om.a) ? 0 : 8);
|
||
|
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) this.mEmptyDot.getLayoutParams();
|
||
|
if (om.h) {
|
||
|
int i7 = e + 71;
|
||
|
b = i7 % 128;
|
||
|
if (i7 % 2 != 0) {
|
||
|
layoutParams.addRule(88, R.id.transaction_reference);
|
||
|
this.mEffectiveDateLabel.setVisibility(86);
|
||
|
this.mEffectiveDate.setVisibility(56);
|
||
|
} else {
|
||
|
layoutParams.addRule(8, R.id.transaction_reference);
|
||
|
this.mEffectiveDateLabel.setVisibility(8);
|
||
|
this.mEffectiveDate.setVisibility(8);
|
||
|
}
|
||
|
} else {
|
||
|
layoutParams.addRule(8, R.id.transaction_effective_date_value);
|
||
|
this.mEffectiveDateLabel.setVisibility(0);
|
||
|
this.mEffectiveDate.setVisibility(0);
|
||
|
this.mEffectiveDate.setText(om.b);
|
||
|
this.mEffectiveDateLabel.setText(R.string.investment_transaction_effective_date_label);
|
||
|
}
|
||
|
this.mEmptyDot.setLayoutParams(layoutParams);
|
||
|
int i8 = b + 119;
|
||
|
e = i8 % 128;
|
||
|
if (i8 % 2 != 0) {
|
||
|
return;
|
||
|
}
|
||
|
Object obj = null;
|
||
|
obj.hashCode();
|
||
|
throw null;
|
||
|
}
|
||
|
|
||
|
private static void a(byte[] bArr, int[] iArr, boolean z, Object[] objArr) {
|
||
|
int i;
|
||
|
int length;
|
||
|
char[] cArr;
|
||
|
int i2;
|
||
|
char[] cArr2;
|
||
|
int i3 = 2;
|
||
|
int i4 = 2 % 2;
|
||
|
TVH tvh = new TVH();
|
||
|
int i5 = 0;
|
||
|
int i6 = iArr[0];
|
||
|
int i7 = iArr[1];
|
||
|
int i8 = iArr[2];
|
||
|
int i9 = iArr[3];
|
||
|
char[] cArr3 = d;
|
||
|
char c = '0';
|
||
|
if (cArr3 != null) {
|
||
|
int i10 = $11 + 89;
|
||
|
$10 = i10 % 128;
|
||
|
if (i10 % 2 != 0) {
|
||
|
length = cArr3.length;
|
||
|
cArr = new char[length];
|
||
|
i2 = 1;
|
||
|
} else {
|
||
|
length = cArr3.length;
|
||
|
cArr = new char[length];
|
||
|
i2 = 0;
|
||
|
}
|
||
|
while (i2 < length) {
|
||
|
int i11 = $11 + 15;
|
||
|
$10 = i11 % 128;
|
||
|
int i12 = i11 % i3;
|
||
|
try {
|
||
|
Object[] objArr2 = new Object[1];
|
||
|
objArr2[i5] = Integer.valueOf(cArr3[i2]);
|
||
|
Object obj = xzZ.y.get(1645349359);
|
||
|
if (obj != null) {
|
||
|
cArr2 = cArr3;
|
||
|
} else {
|
||
|
Class cls = (Class) xzZ.c(222 - TextUtils.indexOf("", c), (ViewConfiguration.getKeyRepeatTimeout() >> 16) + 5, (char) (View.MeasureSpec.makeMeasureSpec(i5, i5) + 41977));
|
||
|
byte b2 = (byte) i5;
|
||
|
byte b3 = (byte) (b2 - 1);
|
||
|
cArr2 = cArr3;
|
||
|
Object[] objArr3 = new Object[1];
|
||
|
f(b2, b3, (byte) (b3 + 1), objArr3);
|
||
|
obj = cls.getMethod((String) objArr3[0], Integer.TYPE);
|
||
|
xzZ.y.put(1645349359, obj);
|
||
|
}
|
||
|
cArr[i2] = ((Character) ((Method) obj).invoke(null, objArr2)).charValue();
|
||
|
i2++;
|
||
|
cArr3 = cArr2;
|
||
|
i3 = 2;
|
||
|
i5 = 0;
|
||
|
c = '0';
|
||
|
} catch (Throwable th) {
|
||
|
Throwable cause = th.getCause();
|
||
|
if (cause == null) {
|
||
|
throw th;
|
||
|
}
|
||
|
throw cause;
|
||
|
}
|
||
|
}
|
||
|
cArr3 = cArr;
|
||
|
}
|
||
|
char[] cArr4 = new char[i7];
|
||
|
System.arraycopy(cArr3, i6, cArr4, 0, i7);
|
||
|
if (bArr != null) {
|
||
|
char[] cArr5 = new char[i7];
|
||
|
tvh.c = 0;
|
||
|
char c2 = 0;
|
||
|
while (tvh.c < i7) {
|
||
|
if (bArr[tvh.c] == 1) {
|
||
|
int i13 = $10 + 95;
|
||
|
$11 = i13 % 128;
|
||
|
if (i13 % 2 == 0) {
|
||
|
int i14 = tvh.c;
|
||
|
Object[] objArr4 = {Integer.valueOf(cArr4[tvh.c]), Integer.valueOf(c2)};
|
||
|
Object obj2 = xzZ.y.get(850398076);
|
||
|
if (obj2 == null) {
|
||
|
obj2 = ((Class) xzZ.c(ExpandableListView.getPackedPositionType(0L) + 502, 4 - TextUtils.lastIndexOf("", '0'), (char) ((AudioTrack.getMaxVolume() > BitmapDescriptorFactory.HUE_RED ? 1 : (AudioTrack.getMaxVolume() == BitmapDescriptorFactory.HUE_RED ? 0 : -1)) + 53))).getMethod("F", Integer.TYPE, Integer.TYPE);
|
||
|
xzZ.y.put(850398076, obj2);
|
||
|
}
|
||
|
cArr5[i14] = ((Character) ((Method) obj2).invoke(null, objArr4)).charValue();
|
||
|
int i15 = 27 / 0;
|
||
|
} else {
|
||
|
int i16 = tvh.c;
|
||
|
Object[] objArr5 = {Integer.valueOf(cArr4[tvh.c]), Integer.valueOf(c2)};
|
||
|
Object obj3 = xzZ.y.get(850398076);
|
||
|
if (obj3 == null) {
|
||
|
obj3 = ((Class) xzZ.c(502 - (ViewConfiguration.getKeyRepeatDelay() >> 16), ExpandableListView.getPackedPositionType(0L) + 5, (char) (54 - TextUtils.indexOf("", "", 0)))).getMethod("F", Integer.TYPE, Integer.TYPE);
|
||
|
xzZ.y.put(850398076, obj3);
|
||
|
}
|
||
|
cArr5[i16] = ((Character) ((Method) obj3).invoke(null, objArr5)).charValue();
|
||
|
}
|
||
|
} else {
|
||
|
int i17 = tvh.c;
|
||
|
try {
|
||
|
Object[] objArr6 = {Integer.valueOf(cArr4[tvh.c]), Integer.valueOf(c2)};
|
||
|
Object obj4 = xzZ.y.get(1084521042);
|
||
|
if (obj4 == null) {
|
||
|
obj4 = ((Class) xzZ.c(View.getDefaultSize(0, 0) + 15, (ViewConfiguration.getWindowTouchSlop() >> 8) + 5, (char) (TextUtils.lastIndexOf("", '0', 0, 0) + 58135))).getMethod("H", Integer.TYPE, Integer.TYPE);
|
||
|
xzZ.y.put(1084521042, obj4);
|
||
|
}
|
||
|
cArr5[i17] = ((Character) ((Method) obj4).invoke(null, objArr6)).charValue();
|
||
|
} catch (Throwable th2) {
|
||
|
Throwable cause2 = th2.getCause();
|
||
|
if (cause2 == null) {
|
||
|
throw th2;
|
||
|
}
|
||
|
throw cause2;
|
||
|
}
|
||
|
}
|
||
|
c2 = cArr5[tvh.c];
|
||
|
Object[] objArr7 = {tvh, tvh};
|
||
|
Object obj5 = xzZ.y.get(1698744941);
|
||
|
if (obj5 == null) {
|
||
|
Class cls2 = (Class) xzZ.c(403 - (Process.getElapsedCpuTime() > 0L ? 1 : (Process.getElapsedCpuTime() == 0L ? 0 : -1)), TextUtils.indexOf("", "", 0) + 5, (char) (21608 - (CdmaCellLocation.convertQuartSecToDecDegrees(0) > 0.0d ? 1 : (CdmaCellLocation.convertQuartSecToDecDegrees(0) == 0.0d ? 0 : -1))));
|
||
|
byte b4 = (byte) ($$b & 7);
|
||
|
byte b5 = (byte) (-b4);
|
||
|
Object[] objArr8 = new Object[1];
|
||
|
f(b4, b5, (byte) (b5 + 1), objArr8);
|
||
|
obj5 = cls2.getMethod((String) objArr8[0], Object.class, Object.class);
|
||
|
xzZ.y.put(1698744941, obj5);
|
||
|
}
|
||
|
((Method) obj5).invoke(null, objArr7);
|
||
|
}
|
||
|
cArr4 = cArr5;
|
||
|
}
|
||
|
if (i9 > 0) {
|
||
|
char[] cArr6 = new char[i7];
|
||
|
i = 0;
|
||
|
System.arraycopy(cArr4, 0, cArr6, 0, i7);
|
||
|
int i18 = i7 - i9;
|
||
|
System.arraycopy(cArr6, 0, cArr4, i18, i9);
|
||
|
System.arraycopy(cArr6, i9, cArr4, 0, i18);
|
||
|
} else {
|
||
|
i = 0;
|
||
|
}
|
||
|
if (z) {
|
||
|
char[] cArr7 = new char[i7];
|
||
|
tvh.c = i;
|
||
|
while (tvh.c < i7) {
|
||
|
cArr7[tvh.c] = cArr4[(i7 - tvh.c) - 1];
|
||
|
tvh.c++;
|
||
|
int i19 = $11 + 99;
|
||
|
$10 = i19 % 128;
|
||
|
int i20 = i19 % 2;
|
||
|
}
|
||
|
cArr4 = cArr7;
|
||
|
}
|
||
|
if (i8 > 0) {
|
||
|
int i21 = $11 + 29;
|
||
|
$10 = i21 % 128;
|
||
|
int i22 = i21 % 2;
|
||
|
int i23 = 0;
|
||
|
while (true) {
|
||
|
tvh.c = i23;
|
||
|
if (tvh.c >= i7) {
|
||
|
break;
|
||
|
}
|
||
|
cArr4[tvh.c] = (char) (cArr4[tvh.c] - iArr[2]);
|
||
|
i23 = tvh.c + 1;
|
||
|
}
|
||
|
}
|
||
|
objArr[0] = new String(cArr4);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public static /* synthetic */ void d(InvestmentDetailsTransactionAdapter investmentDetailsTransactionAdapter, int i) {
|
||
|
fIB fib = investmentDetailsTransactionAdapter.a;
|
||
|
if (fib != null) {
|
||
|
fib.d(i);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@Override // androidx.recyclerview.widget.RecyclerView.Sts
|
||
|
public final /* synthetic */ TransactionHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
|
||
|
return new TransactionHolder(this, LayoutInflater.from(this.e).inflate(R.layout.2131559152, viewGroup, false));
|
||
|
}
|
||
|
}
|