394 lines
15 KiB
C#
394 lines
15 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Runtime.CompilerServices;
|
|
using Cpp2IlInjected;
|
|
using RecRoom.Avatars;
|
|
using RecRoom.Avatars.Face;
|
|
using RecRoom.Avatars.Outfit;
|
|
using RecRoom.Core;
|
|
using RecRoom.Core.Screens.PlayerController;
|
|
using UnityEngine;
|
|
|
|
namespace RecRoom.Players.Puppet
|
|
{
|
|
// Token: 0x02002967 RID: 10599
|
|
[Token(Token = "0x2002967")]
|
|
public class AnimatedPlayerPuppet : PlayerPuppet
|
|
{
|
|
// Token: 0x17003187 RID: 12679
|
|
// (get) Token: 0x06011B18 RID: 72472 RVA: 0x00401400 File Offset: 0x003FF600
|
|
[Token(Token = "0x17003187")]
|
|
protected override PBFNANEPIFO PDOJHGJMNPH
|
|
{
|
|
[Token(Token = "0x6011B18")]
|
|
[Address(RVA = "0x133C020", Offset = "0x133B020", VA = "0x18133C020", Slot = "5")]
|
|
get
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (06011B18)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling PBFNANEPIFO RecRoom.Players.Puppet.AnimatedPlayerPuppet::APDMDPBGDPL()
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
Block_0:
|
|
stloc:JFDGOAOGGHD(var_0_0E, newobj:JFDGOAOGGHD(JFDGOAOGGHD::.ctor))
|
|
stfld:JFDGOAOGGHD(AnimatedPlayerPuppet::DIEPOPNJNCO, ldloc:AnimatedPlayerPuppet(this), ldloc:JFDGOAOGGHD(var_0_0E))
|
|
}
|
|
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
|
--- End of inner exception stack trace ---
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
|
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
|
*/;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17003188 RID: 12680
|
|
// (get) Token: 0x06011B19 RID: 72473 RVA: 0x0000220F File Offset: 0x0000040F
|
|
[Token(Token = "0x17003188")]
|
|
protected override PlayerAvatarDisplay.NEHFHAEIMKF CFJPDKKNGEE
|
|
{
|
|
[Token(Token = "0x6011B19")]
|
|
[Address(RVA = "0x4246A0", Offset = "0x4236A0", VA = "0x1804246A0", Slot = "8")]
|
|
get
|
|
{
|
|
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
|
}
|
|
}
|
|
|
|
// Token: 0x06011B1A RID: 72474 RVA: 0x00401424 File Offset: 0x003FF624
|
|
[Token(Token = "0x6011B1A")]
|
|
[Address(RVA = "0x133C8A0", Offset = "0x133B8A0", VA = "0x18133C8A0")]
|
|
[ContextMenu("Test Animation")]
|
|
public void TestAnimation()
|
|
{
|
|
}
|
|
|
|
// Token: 0x06011B1B RID: 72475 RVA: 0x00401434 File Offset: 0x003FF634
|
|
[Token(Token = "0x6011B1B")]
|
|
[Address(RVA = "0x133C080", Offset = "0x133B080", VA = "0x18133C080")]
|
|
private void Awake()
|
|
{
|
|
float num = this.fidgetFadeTime;
|
|
PlayerAnimation playerAnimation = new PlayerAnimation();
|
|
PlayerFidgetAnimationSet playerFidgetAnimationSet = this.fidgetAnimationSet;
|
|
this.LONPMDOPLEN = playerAnimation;
|
|
EOEOFMCNLOL<IReadOnlyList<PlayerAnimationAsset>> eoeofmcnlol = new EOEOFMCNLOL();
|
|
this.LMOKIFLNNLD = eoeofmcnlol;
|
|
}
|
|
|
|
// Token: 0x06011B1C RID: 72476 RVA: 0x00401474 File Offset: 0x003FF674
|
|
[Token(Token = "0x6011B1C")]
|
|
[Address(RVA = "0x133C660", Offset = "0x133B660", VA = "0x18133C660")]
|
|
protected void OnDestroy()
|
|
{
|
|
JFDGOAOGGHD diepopnjnco = this.DIEPOPNJNCO;
|
|
if (diepopnjnco != 0)
|
|
{
|
|
diepopnjnco.Dispose();
|
|
}
|
|
KFBABPAPIMB bhfniijepgg = this.BHFNIIJEPGG;
|
|
this.DIEPOPNJNCO = (ulong)0L;
|
|
if (bhfniijepgg != 0)
|
|
{
|
|
}
|
|
this.BHFNIIJEPGG = (ulong)0L;
|
|
}
|
|
|
|
// Token: 0x06011B1D RID: 72477 RVA: 0x004014B0 File Offset: 0x003FF6B0
|
|
[Token(Token = "0x6011B1D")]
|
|
[Address(RVA = "0x133C8E0", Offset = "0x133B8E0", VA = "0x18133C8E0")]
|
|
private void Update()
|
|
{
|
|
PlayerAnimation lonpmdoplen = this.LONPMDOPLEN;
|
|
bool flag;
|
|
if (!flag)
|
|
{
|
|
IBHOLFCLKFB ggbgjpijihn = this.GGBGJPIJIHN;
|
|
PlayerAnimation lonpmdoplen2 = this.LONPMDOPLEN;
|
|
int num = 0;
|
|
if (ggbgjpijihn.IALPIEDKJGH(lonpmdoplen2, num != 0))
|
|
{
|
|
goto IL_42;
|
|
}
|
|
}
|
|
PlayerAnimationAsset playerAnimationAsset = ECNNGIFNNNM.NBMJEPIPHGC<PlayerAnimationAsset>(this.LMOKIFLNNLD.OBNBDDNFNDN());
|
|
PlayerAnimation lonpmdoplen3 = this.LONPMDOPLEN;
|
|
IL_42:
|
|
PlayerAnimation lonpmdoplen4 = this.LONPMDOPLEN;
|
|
int num2 = 0;
|
|
this.JEBCDECIGHG(this, lonpmdoplen4, GHLCJGAMKMG.BOTH_RIGHT_PRIMARY, (LBAPHGMNKIC)num2, num2 != 0, num2 != 0, num2 != 0);
|
|
PlayerAvatarDisplay playerAvatarDisplay = this.playerAvatarDisplay;
|
|
Func<bool> isTalking = this.IsTalking;
|
|
PlayerFacialAnimator facialAnimator = playerAvatarDisplay.facialAnimator;
|
|
if (isTalking != 0)
|
|
{
|
|
bool flag2 = isTalking() != null;
|
|
}
|
|
int num3 = 0;
|
|
facialAnimator.CBDLBHPIGNB = num3 != 0;
|
|
}
|
|
|
|
// Token: 0x06011B1E RID: 72478 RVA: 0x00401558 File Offset: 0x003FF758
|
|
[Token(Token = "0x6011B1E")]
|
|
[Address(RVA = "0x133C7B0", Offset = "0x133B7B0", VA = "0x18133C7B0")]
|
|
public void SetAvatarVisuals(MNHEFLIMKGO KJAFOCJMDIH, bool CCMCLPFEIKO = false)
|
|
{
|
|
if (this.BHFNIIJEPGG != 0)
|
|
{
|
|
}
|
|
if (!CCMCLPFEIKO)
|
|
{
|
|
Action action = delegate
|
|
{
|
|
AnimatedPlayerPuppet <>4__this = this;
|
|
MNHEFLIMKGO avatar2 = KJAFOCJMDIH;
|
|
<>4__this.IHOFENLOFIM(avatar2);
|
|
};
|
|
KFBABPAPIMB kfbabpapimb = this.JGIPMJPPCBM(action);
|
|
this.BHFNIIJEPGG = kfbabpapimb;
|
|
return;
|
|
}
|
|
MNHEFLIMKGO avatar = KJAFOCJMDIH;
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x06011B1F RID: 72479 RVA: 0x004015B0 File Offset: 0x003FF7B0
|
|
[Token(Token = "0x6011B1F")]
|
|
[Address(RVA = "0x133C310", Offset = "0x133B310", VA = "0x18133C310")]
|
|
private void IHOFENLOFIM(MNHEFLIMKGO KJAFOCJMDIH)
|
|
{
|
|
JFDGOAOGGHD jfdgoaogghd = JFDGOAOGGHD.KGPKEFGANCP(KJAFOCJMDIH);
|
|
this.DIEPOPNJNCO = jfdgoaogghd;
|
|
if (jfdgoaogghd != 0)
|
|
{
|
|
PBFNANEPIFO pbfnanepifo = base.PDOJHGJMNPH;
|
|
return;
|
|
}
|
|
Debug.LogError("Animated Player Puppet Source could not be generated");
|
|
}
|
|
|
|
// Token: 0x06011B20 RID: 72480 RVA: 0x004015E4 File Offset: 0x003FF7E4
|
|
[Token(Token = "0x6011B20")]
|
|
[Address(RVA = "0x133C780", Offset = "0x133B780", VA = "0x18133C780")]
|
|
public void PlayEmote(PlayerEmotes.MGIGFNJOGEM HCPNGDMELND, float DIJKHBILKOM = 0f)
|
|
{
|
|
this.playerAvatarDisplay.facialAnimator.LocalPlayEmote(HCPNGDMELND, DIJKHBILKOM);
|
|
}
|
|
|
|
// Token: 0x06011B21 RID: 72481 RVA: 0x0040160C File Offset: 0x003FF80C
|
|
[Token(Token = "0x6011B21")]
|
|
[Address(RVA = "0x133C740", Offset = "0x133B740", VA = "0x18133C740")]
|
|
public void PlayAnimationOnce(object LHOMKMINCHH, NIPBJGMMMEF EKJHAMMOBBH, GHLCJGAMKMG MFKOJMHJPOC = GHLCJGAMKMG.BOTH_RIGHT_PRIMARY, bool JGGMJFMGMPB = false)
|
|
{
|
|
}
|
|
|
|
// Token: 0x06011B22 RID: 72482 RVA: 0x0040161C File Offset: 0x003FF81C
|
|
[Token(Token = "0x6011B22")]
|
|
[Address(RVA = "0x133C700", Offset = "0x133B700", VA = "0x18133C700")]
|
|
public void PlayAnimationLoop(object LHOMKMINCHH, NIPBJGMMMEF EKJHAMMOBBH, GHLCJGAMKMG MFKOJMHJPOC = GHLCJGAMKMG.BOTH_RIGHT_PRIMARY, bool JGGMJFMGMPB = false)
|
|
{
|
|
}
|
|
|
|
// Token: 0x06011B23 RID: 72483 RVA: 0x0040162C File Offset: 0x003FF82C
|
|
[Token(Token = "0x6011B23")]
|
|
[Address(RVA = "0x133C6D0", Offset = "0x133B6D0", VA = "0x18133C6D0")]
|
|
public void PlayAnimationFidget(object LHOMKMINCHH, NIPBJGMMMEF EKJHAMMOBBH, GHLCJGAMKMG MFKOJMHJPOC = GHLCJGAMKMG.BOTH_RIGHT_PRIMARY)
|
|
{
|
|
int num = 0;
|
|
this.JEBCDECIGHG(LHOMKMINCHH, EKJHAMMOBBH, MFKOJMHJPOC, (LBAPHGMNKIC)num, num != 0, num != 0, num != 0);
|
|
}
|
|
|
|
// Token: 0x06011B24 RID: 72484 RVA: 0x00401648 File Offset: 0x003FF848
|
|
[Token(Token = "0x6011B24")]
|
|
[Address(RVA = "0x133C3B0", Offset = "0x133B3B0", VA = "0x18133C3B0")]
|
|
private void JEBCDECIGHG(object LHOMKMINCHH, NIPBJGMMMEF EKJHAMMOBBH, GHLCJGAMKMG MFKOJMHJPOC, LBAPHGMNKIC JMHKMOACHDG, bool IOOAMNLKLGP, bool KMNHDGCACPG, bool JGGMJFMGMPB)
|
|
{
|
|
if (EKJHAMMOBBH != 0)
|
|
{
|
|
IBHOLFCLKFB.CINMKCEDCPG cinmkcedcpg = IBHOLFCLKFB.CINMKCEDCPG.OCJJLBLNMKA(0);
|
|
object lhomkminchh = cinmkcedcpg.LHOMKMINCHH;
|
|
float bpnofhafggc = cinmkcedcpg.BPNOFHAFGGC;
|
|
bool jggmjfmgmpb = cinmkcedcpg.JGGMJFMGMPB;
|
|
if (MFKOJMHJPOC == GHLCJGAMKMG.LEFT_ONLY || MFKOJMHJPOC == GHLCJGAMKMG.BOTH_LEFT_PRIMARY)
|
|
{
|
|
}
|
|
IBHOLFCLKFB ggbgjpijihn = this.GGBGJPIJIHN;
|
|
}
|
|
}
|
|
|
|
// Token: 0x06011B25 RID: 72485 RVA: 0x00401690 File Offset: 0x003FF890
|
|
[Token(Token = "0x6011B25")]
|
|
[Address(RVA = "0x133C2C0", Offset = "0x133B2C0", VA = "0x18133C2C0")]
|
|
public void EndAnimation(object LHOMKMINCHH)
|
|
{
|
|
if (this.GGBGJPIJIHN.PINOKONDKMH(LHOMKMINCHH))
|
|
{
|
|
this.GGBGJPIJIHN.EIOHJEDGICK(true);
|
|
return;
|
|
}
|
|
}
|
|
|
|
// Token: 0x06011B26 RID: 72486 RVA: 0x004016C0 File Offset: 0x003FF8C0
|
|
[Token(Token = "0x6011B26")]
|
|
[Address(RVA = "0x133BF10", Offset = "0x133AF10", VA = "0x18133BF10", Slot = "13")]
|
|
protected override void AGLEGENCIID()
|
|
{
|
|
IBHOLFCLKFB ggbgjpijihn = this.GGBGJPIJIHN;
|
|
float deltaTime = Time.deltaTime;
|
|
bool flag;
|
|
if (flag)
|
|
{
|
|
JFDGOAOGGHD diepopnjnco = this.DIEPOPNJNCO;
|
|
}
|
|
base.AGLEGENCIID();
|
|
}
|
|
|
|
// Token: 0x06011B27 RID: 72487 RVA: 0x004016F4 File Offset: 0x003FF8F4
|
|
[Token(Token = "0x6011B27")]
|
|
[Address(RVA = "0x133C1E0", Offset = "0x133B1E0", VA = "0x18133C1E0")]
|
|
private NIPBJGMMMEF BJHAFNIOJHJ()
|
|
{
|
|
PlayerAnimation lonpmdoplen = this.LONPMDOPLEN;
|
|
bool flag;
|
|
if (!flag)
|
|
{
|
|
IBHOLFCLKFB ggbgjpijihn = this.GGBGJPIJIHN;
|
|
PlayerAnimation lonpmdoplen2 = this.LONPMDOPLEN;
|
|
int num = 0;
|
|
if (ggbgjpijihn.IALPIEDKJGH(lonpmdoplen2, num != 0))
|
|
{
|
|
goto IL_42;
|
|
}
|
|
}
|
|
PlayerAnimationAsset playerAnimationAsset = ECNNGIFNNNM.NBMJEPIPHGC<PlayerAnimationAsset>(this.LMOKIFLNNLD.OBNBDDNFNDN());
|
|
PlayerAnimation lonpmdoplen3 = this.LONPMDOPLEN;
|
|
IL_42:
|
|
PlayerAnimation lonpmdoplen4 = this.LONPMDOPLEN;
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x06011B28 RID: 72488 RVA: 0x00401750 File Offset: 0x003FF950
|
|
[Token(Token = "0x6011B28")]
|
|
[Address(RVA = "0x133C5D0", Offset = "0x133B5D0", VA = "0x18133C5D0")]
|
|
private static PlayerAnimation OOAKAPBBBKG(float KNFPLBMCJDN)
|
|
{
|
|
return new PlayerAnimation();
|
|
}
|
|
|
|
// Token: 0x06011B29 RID: 72489 RVA: 0x00401768 File Offset: 0x003FF968
|
|
[Token(Token = "0x6011B29")]
|
|
[Address(RVA = "0x133C500", Offset = "0x133B500", VA = "0x18133C500")]
|
|
private static EOEOFMCNLOL<IReadOnlyList<PlayerAnimationAsset>> OMLPJHMBAGM(PlayerFidgetAnimationSet MAAOAKJOOKA, ScreenPlayerLocomotionAnimationContent.FidgetWeights AHBEOFEIMKE)
|
|
{
|
|
return new EOEOFMCNLOL();
|
|
}
|
|
|
|
// Token: 0x06011B2A RID: 72490 RVA: 0x00401780 File Offset: 0x003FF980
|
|
[Token(Token = "0x6011B2A")]
|
|
[Address(RVA = "0x133CA50", Offset = "0x133BA50", VA = "0x18133CA50")]
|
|
public AnimatedPlayerPuppet()
|
|
{
|
|
int num;
|
|
IBHOLFCLKFB ibholfclkfb = new IBHOLFCLKFB(num != 0);
|
|
num = 0;
|
|
this.GGBGJPIJIHN = ibholfclkfb;
|
|
List<OutfitPrefab> list = new List();
|
|
this.HBPOEKGCIKD = list;
|
|
base..ctor();
|
|
}
|
|
|
|
// Token: 0x0400B55C RID: 46428
|
|
[FieldOffset(Offset = "0x58")]
|
|
[Token(Token = "0x400B55C")]
|
|
[SerializeField]
|
|
[Header("Animations")]
|
|
private PlayerAnimation testAnimation;
|
|
|
|
// Token: 0x0400B55D RID: 46429
|
|
[FieldOffset(Offset = "0x60")]
|
|
[Token(Token = "0x400B55D")]
|
|
[SerializeField]
|
|
private PlayerFidgetAnimationSet fidgetAnimationSet;
|
|
|
|
// Token: 0x0400B55E RID: 46430
|
|
[FieldOffset(Offset = "0x68")]
|
|
[Token(Token = "0x400B55E")]
|
|
[SerializeField]
|
|
public ScreenPlayerLocomotionAnimationContent.FidgetWeights fidgetWeights;
|
|
|
|
// Token: 0x0400B55F RID: 46431
|
|
[FieldOffset(Offset = "0x74")]
|
|
[Token(Token = "0x400B55F")]
|
|
[SerializeField]
|
|
private float fidgetFadeTime = 0.2f;
|
|
|
|
// Token: 0x0400B560 RID: 46432
|
|
[FieldOffset(Offset = "0x78")]
|
|
[Token(Token = "0x400B560")]
|
|
private JFDGOAOGGHD DIEPOPNJNCO;
|
|
|
|
// Token: 0x0400B561 RID: 46433
|
|
[FieldOffset(Offset = "0x80")]
|
|
[Token(Token = "0x400B561")]
|
|
private readonly IBHOLFCLKFB GGBGJPIJIHN;
|
|
|
|
// Token: 0x0400B562 RID: 46434
|
|
[FieldOffset(Offset = "0x88")]
|
|
[Token(Token = "0x400B562")]
|
|
private KFBABPAPIMB BHFNIIJEPGG;
|
|
|
|
// Token: 0x0400B563 RID: 46435
|
|
[FieldOffset(Offset = "0x90")]
|
|
[Token(Token = "0x400B563")]
|
|
public Func<bool> IsTalking;
|
|
|
|
// Token: 0x0400B564 RID: 46436
|
|
[FieldOffset(Offset = "0x98")]
|
|
[Token(Token = "0x400B564")]
|
|
private PlayerAnimation LONPMDOPLEN;
|
|
|
|
// Token: 0x0400B565 RID: 46437
|
|
[FieldOffset(Offset = "0xA0")]
|
|
[Token(Token = "0x400B565")]
|
|
private EOEOFMCNLOL<IReadOnlyList<PlayerAnimationAsset>> LMOKIFLNNLD;
|
|
|
|
// Token: 0x02002968 RID: 10600
|
|
[Token(Token = "0x2002968")]
|
|
[CompilerGenerated]
|
|
private sealed class IGGGMMPKKCL
|
|
{
|
|
// Token: 0x06011B2B RID: 72491 RVA: 0x004017BC File Offset: 0x003FF9BC
|
|
[Token(Token = "0x6011B2B")]
|
|
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
|
|
public IGGGMMPKKCL()
|
|
{
|
|
}
|
|
|
|
// Token: 0x06011B2C RID: 72492 RVA: 0x004017D0 File Offset: 0x003FF9D0
|
|
[Token(Token = "0x6011B2C")]
|
|
[Address(RVA = "0x133D4E0", Offset = "0x133C4E0", VA = "0x18133D4E0")]
|
|
internal void <SetAvatarVisuals>b__0()
|
|
{
|
|
AnimatedPlayerPuppet animatedPlayerPuppet = this.<>4__this;
|
|
MNHEFLIMKGO mnheflimkgo = this.avatar;
|
|
animatedPlayerPuppet.IHOFENLOFIM(mnheflimkgo);
|
|
}
|
|
|
|
// Token: 0x0400B566 RID: 46438
|
|
[FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x400B566")]
|
|
public AnimatedPlayerPuppet <>4__this;
|
|
|
|
// Token: 0x0400B567 RID: 46439
|
|
[FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x400B567")]
|
|
public MNHEFLIMKGO avatar;
|
|
}
|
|
}
|
|
}
|