# AlbumActivity_View_AlbumJokerExchangeWindow_1142.luac
; fn @AlbumJokerExchangeWindow.lua  line 0-0 np=0 va=1 ms=3 code=44 consts=19 upvals=1 protos=11
;   K[0]='AlbumJokerExchangeWindow'
;   K[1]='setmetatable'
;   K[2]='bAutoBI'
;   K[3]=false
;   K[4]='bCloseWhenLimitAlbumStateChanged'
;   K[5]=true
;   K[6]='AlbumActivityBaseWindow'
;   K[7]='__index'
;   K[8]='Init'
;   K[9]='GetListItemByIndex'
;   K[10]='UpdatePerSecond'
;   K[11]='IsSelectCard'
;   K[12]='OnToggled'
;   K[13]='_UpdateCurArrSet'
;   K[14]='IsShowOnlyNone'
;   K[15]='OnHelpBtnClick'
;   K[16]='IsShowNoneCards'
;   K[17]='OnCloseFinish'
;   K[18]='OnExchangeClicked'
;   upvals: _ENV
0000  GETTABUP  R0 = _ENV[K1('setmetatable')]
0001  NEWTABLE  R1 = {} (0 items)
0002  SETTABLE  R1[K2('bAutoBI')] = K3(false)
0003  SETTABLE  R1[K4('bCloseWhenLimitAlbumStateChanged')] = K5(true)
0004  GETTABUP  R2 = _ENV[K6('AlbumActivityBaseWindow')]
0005  CALL      R0 = call(R0, 1 args, 2 rets)
0006  SETTABUP  _ENV[K0('AlbumJokerExchangeWindow')] = R0
0007  GETTABUP  R0 = _ENV[K0('AlbumJokerExchangeWindow')]
0008  GETTABUP  R1 = _ENV[K0('AlbumJokerExchangeWindow')]
0009  SETTABLE  R0[K7('__index')] = R1
0010  GETTABUP  R0 = _ENV[K0('AlbumJokerExchangeWindow')]
0011  CLOSURE   R1 = closure proto0
0012  SETTABLE  R0[K8('Init')] = R1
0013  GETTABUP  R0 = _ENV[K0('AlbumJokerExchangeWindow')]
0014  CLOSURE   R1 = closure proto1
0015  SETTABLE  R0[K9('GetListItemByIndex')] = R1
0016  GETTABUP  R0 = _ENV[K0('AlbumJokerExchangeWindow')]
0017  CLOSURE   R1 = closure proto2
0018  SETTABLE  R0[K10('UpdatePerSecond')] = R1
0019  GETTABUP  R0 = _ENV[K0('AlbumJokerExchangeWindow')]
0020  CLOSURE   R1 = closure proto3
0021  SETTABLE  R0[K11('IsSelectCard')] = R1
0022  GETTABUP  R0 = _ENV[K0('AlbumJokerExchangeWindow')]
0023  CLOSURE   R1 = closure proto4
0024  SETTABLE  R0[K12('OnToggled')] = R1
0025  GETTABUP  R0 = _ENV[K0('AlbumJokerExchangeWindow')]
0026  CLOSURE   R1 = closure proto5
0027  SETTABLE  R0[K13('_UpdateCurArrSet')] = R1
0028  GETTABUP  R0 = _ENV[K0('AlbumJokerExchangeWindow')]
0029  CLOSURE   R1 = closure proto6
0030  SETTABLE  R0[K14('IsShowOnlyNone')] = R1
0031  GETTABUP  R0 = _ENV[K0('AlbumJokerExchangeWindow')]
0032  CLOSURE   R1 = closure proto7
0033  SETTABLE  R0[K15('OnHelpBtnClick')] = R1
0034  GETTABUP  R0 = _ENV[K0('AlbumJokerExchangeWindow')]
0035  CLOSURE   R1 = closure proto8
0036  SETTABLE  R0[K16('IsShowNoneCards')] = R1
0037  GETTABUP  R0 = _ENV[K0('AlbumJokerExchangeWindow')]
0038  CLOSURE   R1 = closure proto9
0039  SETTABLE  R0[K17('OnCloseFinish')] = R1
0040  GETTABUP  R0 = _ENV[K0('AlbumJokerExchangeWindow')]
0041  CLOSURE   R1 = closure proto10
0042  SETTABLE  R0[K18('OnExchangeClicked')] = R1
0043  RETURN    return R0..R-1
; ---------- proto0 [Init] ----------
  ; fn ?  line 8-94 np=5 va=0 ms=18 code=171 consts=60 upvals=1 protos=2
  ;   K[0]='AlbumActivityBaseWindow'
  ;   K[1]='Init'
  ;   K[2]='m_model'
  ;   K[3]='GetAlbumCollectProgress'
  ;   K[4]='m_limitAlbumModel'
  ;   K[5]=nil
  ;   K[6]='m_bCompleteAlbum'
  ;   K[7]='m_bShowOnlyNone'
  ;   K[8]='m_bInitState'
  ;   K[9]='IsGoldenJokerCardInUse'
  ;   K[10]='IsAllGoldCardUncollect'
  ;   K[11]=false
  ;   K[12]=true
  ;   K[13]='m_toggle'
  ;   K[14]='isOn'
  ;   K[15]='Table'
  ;   K[16]='ListAppend'
  ;   K[17]='GetCardSets'
  ;   K[18]='m_arrCardSet'
  ;   K[19]='table'
  ;   K[20]='sort'
  ;   K[21]='m_nextStateTime'
  ;   K[22]='GetNextStateTime'
  ;   K[23]='m_jokerEndTime'
  ;   K[24]='AlbumActivityModel'
  ;   K[25]='UseNewJokerCard'
  ;   K[26]='GetMaxJokerCardTime'
  ;   K[27]='GetMinJokerCardTime'
  ;   K[28]='Sec2Day'
  ;   K[29]='math'
  ;   K[30]='min'
  ;   K[31]='UpdatePerSecond'
  ;   K[32]='m_exchangeBtnLuaTable'
  ;   K[33]='SetUIEnabled'
  ;   K[34]='_UpdateCurArrSet'
  ;   K[35]='ListViewParam'
  ;   K[36]='CopyDefaultInitParam'
  ;   K[37]='mItemDefaultWithPaddingSize'
  ;   K[38]=0
  ;   K[39]='m_loopListView'
  ;   K[40]='InitListView'
  ;   K[41]='m_curArrSets'
  ;   K[42]='m_toggleText'
  ;   K[43]='text'
  ;   K[44]='GM'
  ;   K[45]='GameTextModel'
  ;   K[46]='GetText'
  ;   K[47]='joker_card_show_missing'
  ;   K[48]='LayoutRebuilder'
  ;   K[49]='ForceRebuildLayoutImmediate'
  ;   K[50]='transform'
  ;   K[51]='parent'
  ;   K[52]='LogWindowAction'
  ;   K[53]='EBIType'
  ;   K[54]='UIActionType'
  ;   K[55]='Open'
  ;   K[56]='EBIReferType'
  ;   K[57]='UserClick'
  ;   K[58]='golden'
  ;   K[59]='normal'
  ;   upvals: _ENV
  ;   locals: self(0-171), activityType(0-171), bUserClick(0-171), bShowOnlyNone(0-171), jokerEndTime(0-171), curProgress(9-171), maxProgress(9-171), bCompleteAlbum(13-171), bCompleteLimitAlbum(14-171), limitCurProgress(20-24), limitMaxProgress(20-24), bGoldJoker(36-171), bRemainGoldCards(52-171), arrAllCardSets(68-171), jokerGetTime(100-125), nextStateTime(116-125), initParam(136-171)
  0000  GETTABUP  R5 = _ENV[K0('AlbumActivityBaseWindow')]
  0001  GETTABLE  R5 = R5[K1('Init')]
  0002  MOVE      R6 = R0
  0003  MOVE      R7 = R0
  0004  MOVE      R8 = R0
  0005  CALL      R5 = call(R5, 0 args, 3 rets)
  0006  GETTABLE  R5 = R0[K2('m_model')]
  0007  SELF      R6 = R5[K3('GetAlbumCollectProgress')] (self)
  0008  CALL      R5 = call(R5, 2 args, 1 rets)
  0009  LE        if R1 le R5   -> -127984
  0010  JMP       (jump)   -> 12
  0011  LOADBOOL  R7 = false
  0012  LOADBOOL  R7 = true
  0013  LOADBOOL  R8 = true
  0014  GETTABLE  R9 = R0[K4('m_limitAlbumModel')]
  0015  EQ        if R1 eq K5(nil)   -> -126186
  0016  JMP       (jump)   -> 24
  0017  GETTABLE  R9 = R0[K4('m_limitAlbumModel')]
  0018  SELF      R10 = R9[K3('GetAlbumCollectProgress')] (self)
  0019  CALL      R9 = call(R9, 2 args, 1 rets)
  0020  LE        if R1 le R9   -> -125921
  0021  JMP       (jump)   -> 23
  0022  LOADBOOL  R8 = false
  0023  LOADBOOL  R8 = true
  0024  TESTSET   if R0 then R9   -> -127462
  0025  JMP       (jump)   -> 27
  0026  MOVE      R9 = R0
  0027  SETTABLE  R0[K6('m_bCompleteAlbum')] = R9
  0028  GETTABLE  R9 = R0[K6('m_bCompleteAlbum')]
  0029  NOT       R9 = not R0
  0030  SETTABLE  R0[K7('m_bShowOnlyNone')] = R9
  0031  GETTABLE  R9 = R0[K6('m_bCompleteAlbum')]
  0032  SETTABLE  R0[K8('m_bInitState')] = R9
  0033  GETTABLE  R9 = R0[K2('m_model')]
  0034  SELF      R10 = R9[K9('IsGoldenJokerCardInUse')] (self)
  0035  CALL      R9 = call(R9, 1 args, 1 rets)
  0036  GETTABLE  R10 = R0[K2('m_model')]
  0037  SELF      R11 = R10[K10('IsAllGoldCardUncollect')] (self)
  0038  CALL      R10 = call(R10, 1 args, 1 rets)
  0039  TEST      if not R10 then   -> -131031
  0040  JMP       (jump)   -> 52
  0041  GETTABLE  R10 = R0[K4('m_limitAlbumModel')]
  0042  EQ        if R1 eq K5(nil)   -> -125647
  0043  JMP       (jump)   -> 51
  0044  TESTSET   if R1 then R10   -> -126929
  0045  JMP       (jump)   -> 52
  0046  GETTABLE  R10 = R0[K4('m_limitAlbumModel')]
  0047  SELF      R11 = R10[K10('IsAllGoldCardUncollect')] (self)
  0048  CALL      R10 = call(R10, 1 args, 1 rets)
  0049  JMP       (jump)   -> 52
  0050  LOADBOOL  R10 = false
  0051  LOADBOOL  R10 = true
  0052  GETTABLE  R11 = R0[K6('m_bCompleteAlbum')]
  0053  TEST      if not R11 then   -> -131016
  0054  JMP       (jump)   -> 61
  0055  TEST      if not R9 then   -> -131014
  0056  JMP       (jump)   -> 61
  0057  TEST      if not R10 then   -> -131013
  0058  JMP       (jump)   -> 61
  0059  SETTABLE  R0[K7('m_bShowOnlyNone')] = K11(false)
  0060  SETTABLE  R0[K8('m_bInitState')] = K12(true)
  0061  EQ        if R1 eq K5(nil)   -> -129212
  0062  JMP       (jump)   -> 64
  0063  SETTABLE  R0[K7('m_bShowOnlyNone')] = R3
  0064  GETTABLE  R11 = R0[K13('m_toggle')]
  0065  GETTABLE  R12 = R0[K7('m_bShowOnlyNone')]
  0066  SETTABLE  R11[K14('isOn')] = R12
  0067  NEWTABLE  R11 = {} (0 items)
  0068  GETTABLE  R12 = R0[K4('m_limitAlbumModel')]
  0069  EQ        if R1 eq K5(nil)   -> -124596
  0070  JMP       (jump)   -> 78
  0071  GETTABUP  R12 = _ENV[K15('Table')]
  0072  GETTABLE  R12 = R12[K16('ListAppend')]
  0073  MOVE      R13 = R0
  0074  GETTABLE  R14 = R0[K4('m_limitAlbumModel')]
  0075  SELF      R15 = R14[K17('GetCardSets')] (self)
  0076  CALL      R14 = call(R14, -1 args, 1 rets)
  0077  CALL      R12 = call(R12, 0 args, -1 rets)
  0078  GETTABUP  R12 = _ENV[K15('Table')]
  0079  GETTABLE  R12 = R12[K16('ListAppend')]
  0080  MOVE      R13 = R0
  0081  GETTABLE  R14 = R0[K2('m_model')]
  0082  SELF      R15 = R14[K17('GetCardSets')] (self)
  0083  CALL      R14 = call(R14, -1 args, 1 rets)
  0084  CALL      R12 = call(R12, 0 args, -1 rets)
  0085  SETTABLE  R0[K18('m_arrCardSet')] = R11
  0086  GETTABUP  R12 = _ENV[K19('table')]
  0087  GETTABLE  R12 = R12[K20('sort')]
  0088  GETTABLE  R13 = R0[K18('m_arrCardSet')]
  0089  CLOSURE   R14 = closure proto0
  0090  CALL      R12 = call(R12, 0 args, 2 rets)
  0091  GETTABLE  R12 = R0[K2('m_model')]
  0092  SELF      R13 = R12[K22('GetNextStateTime')] (self)
  0093  CALL      R12 = call(R12, 1 args, 1 rets)
  0094  SETTABLE  R0[K21('m_nextStateTime')] = R12
  0095  SETTABLE  R0[K23('m_jokerEndTime')] = R4
  0096  GETTABLE  R12 = R0[K23('m_jokerEndTime')]
  0097  EQ        if R0 eq K5(nil)   -> -124568
  0098  JMP       (jump)   -> 125
  0099  LOADNIL   R12..R12 = nil
  0100  GETTABUP  R13 = _ENV[K24('AlbumActivityModel')]
  0101  GETTABLE  R13 = R13[K25('UseNewJokerCard')]
  0102  TEST      if not R13 then   -> -130968
  0103  JMP       (jump)   -> 109
  0104  GETTABLE  R13 = R0[K2('m_model')]
  0105  SELF      R14 = R13[K26('GetMaxJokerCardTime')] (self)
  0106  CALL      R13 = call(R13, 1 args, 1 rets)
  0107  MOVE      R12 = R0
  0108  JMP       (jump)   -> 113
  0109  GETTABLE  R13 = R0[K2('m_model')]
  0110  SELF      R14 = R13[K27('GetMinJokerCardTime')] (self)
  0111  CALL      R13 = call(R13, 1 args, 1 rets)
  0112  MOVE      R12 = R0
  0113  GETTABLE  R13 = R0[K2('m_model')]
  0114  SELF      R14 = R13[K22('GetNextStateTime')] (self)
  0115  CALL      R13 = call(R13, 1 args, 1 rets)
  0116  GETTABUP  R14 = _ENV[K28('Sec2Day')]
  0117  ADD       R14 = R14 add R12
  0118  SETTABLE  R0[K23('m_jokerEndTime')] = R14
  0119  GETTABUP  R14 = _ENV[K29('math')]
  0120  GETTABLE  R14 = R14[K30('min')]
  0121  GETTABLE  R15 = R0[K23('m_jokerEndTime')]
  0122  MOVE      R16 = R0
  0123  CALL      R14 = call(R14, 1 args, 2 rets)
  0124  SETTABLE  R0[K23('m_jokerEndTime')] = R14
  0125  SELF      R13 = R0[K31('UpdatePerSecond')] (self)
  0126  CALL      R12 = call(R12, 0 args, 1 rets)
  0127  GETTABLE  R12 = R0[K32('m_exchangeBtnLuaTable')]
  0128  SELF      R13 = R12[K33('SetUIEnabled')] (self)
  0129  LOADBOOL  R14 = false
  0130  CALL      R12 = call(R12, 0 args, 2 rets)
  0131  SELF      R13 = R0[K34('_UpdateCurArrSet')] (self)
  0132  CALL      R12 = call(R12, 0 args, 1 rets)
  0133  GETTABUP  R12 = _ENV[K35('ListViewParam')]
  0134  GETTABLE  R12 = R12[K36('CopyDefaultInitParam')]
  0135  CALL      R12 = call(R12, 1 args, 0 rets)
  0136  SETTABLE  R12[K37('mItemDefaultWithPaddingSize')] = K38(0)
  0137  GETTABLE  R13 = R0[K39('m_loopListView')]
  0138  SELF      R14 = R13[K40('InitListView')] (self)
  0139  GETTABLE  R15 = R0[K41('m_curArrSets')]
  0140  LEN       R15 = len R0
  0141  CLOSURE   R16 = closure proto1
  0142  MOVE      R17 = R0
  0143  CALL      R13 = call(R13, 0 args, 4 rets)
  0144  GETTABLE  R13 = R0[K42('m_toggleText')]
  0145  GETTABUP  R14 = _ENV[K44('GM')]
  0146  GETTABLE  R14 = R14[K45('GameTextModel')]
  0147  SELF      R15 = R14[K46('GetText')] (self)
  0148  LOADK     R16 = K47 'joker_card_show_missing'
  0149  CALL      R14 = call(R14, 1 args, 2 rets)
  0150  SETTABLE  R13[K43('text')] = R14
  0151  GETTABUP  R13 = _ENV[K48('LayoutRebuilder')]
  0152  GETTABLE  R13 = R13[K49('ForceRebuildLayoutImmediate')]
  0153  GETTABLE  R14 = R0[K42('m_toggleText')]
  0154  GETTABLE  R14 = R14[K50('transform')]
  0155  GETTABLE  R14 = R14[K51('parent')]
  0156  CALL      R13 = call(R13, 0 args, 1 rets)
  0157  SELF      R14 = R0[K52('LogWindowAction')] (self)
  0158  GETTABUP  R15 = _ENV[K53('EBIType')]
  0159  GETTABLE  R15 = R15[K54('UIActionType')]
  0160  GETTABLE  R15 = R15[K55('Open')]
  0161  GETTABUP  R16 = _ENV[K56('EBIReferType')]
  0162  GETTABLE  R16 = R16[K57('UserClick')]
  0163  TEST      if not R9 then   -> -130907
  0164  JMP       (jump)   -> 168
  0165  LOADK     R17 = K58 'golden'
  0166  TEST      if not R17 then   -> -130903
  0167  JMP       (jump)   -> 169
  0168  LOADK     R17 = K59 'normal'
  0169  CALL      R13 = call(R13, 0 args, 4 rets)
  0170  RETURN    return R0..R-1
  ; ---------- proto0 [m_nextStateTime] ----------
    ; fn ?  line 48-62 np=2 va=0 ms=10 code=32 consts=4 upvals=1 protos=0
    ;   K[0]='_GetModelBySetId'
    ;   K[1]='setId'
    ;   K[2]='GetSetCollectProgress'
    ;   K[3]='order'
    ;   upvals: self
    ;   locals: a(0-32), b(0-32), modelA(4-32), bLimitA(4-32), modelB(8-32), bLimitB(8-32), collectNumA(11-32), collectNumB(14-32)
    0000  GETUPVAL  R2 = self
    0001  SELF      R3 = R2[K0('_GetModelBySetId')] (self)
    0002  GETTABLE  R4 = R0[K1('setId')]
    0003  CALL      R2 = call(R2, 2 args, 2 rets)
    0004  GETUPVAL  R4 = self
    0005  SELF      R5 = R4[K0('_GetModelBySetId')] (self)
    0006  GETTABLE  R6 = R1[K1('setId')]
    0007  CALL      R4 = call(R4, 2 args, 2 rets)
    0008  SELF      R7 = R2[K2('GetSetCollectProgress')] (self)
    0009  GETTABLE  R8 = R0[K1('setId')]
    0010  CALL      R6 = call(R6, 1 args, 2 rets)
    0011  SELF      R8 = R4[K2('GetSetCollectProgress')] (self)
    0012  GETTABLE  R9 = R1[K1('setId')]
    0013  CALL      R7 = call(R7, 1 args, 2 rets)
    0014  EQ        if R1 eq R7   -> -127977
    0015  JMP       (jump)   -> 21
    0016  LT        if R1 lt R6   -> -127464
    0017  JMP       (jump)   -> 19
    0018  LOADBOOL  R8 = false
    0019  LOADBOOL  R8 = true
    0020  RETURN    return R8..R7
    0021  EQ        if R1 eq R5   -> -129508
    0022  JMP       (jump)   -> 24
    0023  RETURN    return R3..R2
    0024  GETTABLE  R8 = R0[K3('order')]
    0025  GETTABLE  R9 = R1[K3('order')]
    0026  LT        if R1 lt R9   -> -126939
    0027  JMP       (jump)   -> 29
    0028  LOADBOOL  R8 = false
    0029  LOADBOOL  R8 = true
    0030  RETURN    return R8..R7
    0031  RETURN    return R0..R-1
  ; ---------- proto1 [] ----------
    ; fn ?  line 86-88 np=2 va=0 ms=6 code=7 consts=1 upvals=1 protos=0
    ;   K[0]='GetListItemByIndex'
    ;   upvals: self
    ;   locals: listView(0-7), cellIndex(0-7)
    0000  GETUPVAL  R2 = self
    0001  SELF      R3 = R2[K0('GetListItemByIndex')] (self)
    0002  MOVE      R4 = R0
    0003  MOVE      R5 = R0
    0004  TAILCALL  tailcall(R2, 0)
    0005  RETURN    return R2..R1
    0006  RETURN    return R0..R-1
; ---------- proto1 [GetListItemByIndex] ----------
  ; fn ?  line 96-112 np=3 va=0 ms=14 code=24 consts=11 upvals=1 protos=1
  ;   K[0]=0
  ;   K[1]='NewListViewItem'
  ;   K[2]='JokerExchangeCardSetsCell'
  ;   K[3]='gameObject'
  ;   K[4]='GetLuaTable'
  ;   K[5]='m_curArrSets'
  ;   K[6]=1
  ;   K[7]='_GetModelBySetId'
  ;   K[8]='setId'
  ;   K[9]='Init'
  ;   K[10]='m_bShowOnlyNone'
  ;   upvals: _ENV
  ;   locals: self(0-24), listView(0-24), cellIndex(0-24), item(6-24), luaTable(9-24), setConfig(12-24), model(15-24)
  0000  LT        if R0 lt K0(0)   -> -129790
  0001  JMP       (jump)   -> 3
  0002  RETURN    return R0..R-1
  0003  SELF      R4 = R1[K1('NewListViewItem')] (self)
  0004  LOADK     R5 = K2 'JokerExchangeCardSetsCell'
  0005  CALL      R3 = call(R3, 1 args, 2 rets)
  0006  GETTABLE  R4 = R3[K3('gameObject')]
  0007  SELF      R5 = R4[K4('GetLuaTable')] (self)
  0008  CALL      R4 = call(R4, 1 args, 1 rets)
  0009  GETTABLE  R5 = R0[K5('m_curArrSets')]
  0010  ADD       R6 = K6(1) add R2
  0011  GETTABLE  R5 = R5[R6]
  0012  SELF      R7 = R0[K7('_GetModelBySetId')] (self)
  0013  GETTABLE  R8 = R5[K8('setId')]
  0014  CALL      R6 = call(R6, 1 args, 2 rets)
  0015  SELF      R8 = R4[K9('Init')] (self)
  0016  MOVE      R9 = R0
  0017  MOVE      R10 = R0
  0018  MOVE      R11 = R0
  0019  GETTABLE  R12 = R0[K10('m_bShowOnlyNone')]
  0020  CLOSURE   R13 = closure proto0
  0021  CALL      R7 = call(R7, 0 args, 6 rets)
  0022  RETURN    return R3..R2
  0023  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 106-110 np=1 va=0 ms=4 code=17 consts=9 upvals=2 protos=0
    ;   K[0]='m_selectCardId'
    ;   K[1]='m_exchangeBtnLuaTable'
    ;   K[2]='SetUIEnabled'
    ;   K[3]=nil
    ;   K[4]='EventDispatcher'
    ;   K[5]='DispatchEvent'
    ;   K[6]='EEventType'
    ;   K[7]='JokerUpdateExchangeSelect'
    ;   K[8]='cardId'
    ;   upvals: self, _ENV
    ;   locals: selectCardId(0-17)
    0000  SETTABUP  self[K0('m_selectCardId')] = R0
    0001  GETTABUP  R1 = self[K1('m_exchangeBtnLuaTable')]
    0002  SELF      R2 = R1[K2('SetUIEnabled')] (self)
    0003  GETTABUP  R3 = self[K0('m_selectCardId')]
    0004  EQ        if R0 eq K3(nil)   -> -129271
    0005  JMP       (jump)   -> 7
    0006  LOADBOOL  R3 = false
    0007  LOADBOOL  R3 = true
    0008  CALL      R1 = call(R1, 0 args, 2 rets)
    0009  GETTABUP  R1 = _ENV[K4('EventDispatcher')]
    0010  GETTABLE  R1 = R1[K5('DispatchEvent')]
    0011  GETTABUP  R2 = _ENV[K6('EEventType')]
    0012  GETTABLE  R2 = R2[K7('JokerUpdateExchangeSelect')]
    0013  NEWTABLE  R3 = {} (0 items)
    0014  SETTABLE  R3[K8('cardId')] = R0
    0015  CALL      R1 = call(R1, 0 args, 2 rets)
    0016  RETURN    return R0..R-1
; ---------- proto2 [UpdatePerSecond] ----------
  ; fn ?  line 114-128 np=1 va=0 ms=7 code=42 consts=21 upvals=1 protos=0
  ;   K[0]='m_jokerEndTime'
  ;   K[1]=nil
  ;   K[2]='math'
  ;   K[3]='max'
  ;   K[4]=0
  ;   K[5]='GM'
  ;   K[6]='GameModel'
  ;   K[7]='GetServerTime'
  ;   K[8]='m_closeGo'
  ;   K[9]='activeSelf'
  ;   K[10]='m_countdownText'
  ;   K[11]='text'
  ;   K[12]='GameTextModel'
  ;   K[13]='GetText'
  ;   K[14]='joker_card_time_expired'
  ;   K[15]='SetActive'
  ;   K[16]='canCloseByAndroidBack'
  ;   K[17]=false
  ;   K[18]='TimeUtil'
  ;   K[19]='ParseTimeDescription'
  ;   K[20]=2
  ;   upvals: _ENV
  ;   locals: self(0-42), delta(13-41), str(39-41)
  0000  GETTABLE  R1 = R0[K0('m_jokerEndTime')]
  0001  EQ        if R1 eq K1(nil)   -> -130300
  0002  JMP       (jump)   -> 41
  0003  GETTABUP  R1 = _ENV[K2('math')]
  0004  GETTABLE  R1 = R1[K3('max')]
  0005  LOADK     R2 = K4 0
  0006  GETTABLE  R3 = R0[K0('m_jokerEndTime')]
  0007  GETTABUP  R4 = _ENV[K5('GM')]
  0008  GETTABLE  R4 = R4[K6('GameModel')]
  0009  SELF      R5 = R4[K7('GetServerTime')] (self)
  0010  CALL      R4 = call(R4, 1 args, 1 rets)
  0011  SUB       R3 = R4 sub R3
  0012  CALL      R1 = call(R1, 1 args, 2 rets)
  0013  EQ        if R0 eq K4(0)   -> -130285
  0014  JMP       (jump)   -> 32
  0015  GETTABLE  R2 = R0[K8('m_closeGo')]
  0016  GETTABLE  R2 = R2[K9('activeSelf')]
  0017  TEST      if not R2 then   -> -131053
  0018  JMP       (jump)   -> 41
  0019  GETTABLE  R2 = R0[K10('m_countdownText')]
  0020  GETTABUP  R3 = _ENV[K5('GM')]
  0021  GETTABLE  R3 = R3[K12('GameTextModel')]
  0022  SELF      R4 = R3[K13('GetText')] (self)
  0023  LOADK     R5 = K14 'joker_card_time_expired'
  0024  CALL      R3 = call(R3, 1 args, 2 rets)
  0025  SETTABLE  R2[K11('text')] = R3
  0026  GETTABLE  R2 = R0[K8('m_closeGo')]
  0027  SELF      R3 = R2[K15('SetActive')] (self)
  0028  LOADBOOL  R4 = false
  0029  CALL      R2 = call(R2, 0 args, 2 rets)
  0030  SETTABLE  R0[K16('canCloseByAndroidBack')] = K17(false)
  0031  JMP       (jump)   -> 41
  0032  GETTABUP  R2 = _ENV[K18('TimeUtil')]
  0033  GETTABLE  R2 = R2[K19('ParseTimeDescription')]
  0034  MOVE      R3 = R0
  0035  LOADK     R4 = K20 2
  0036  LOADBOOL  R5 = false
  0037  LOADBOOL  R6 = false
  0038  CALL      R2 = call(R2, 1 args, 4 rets)
  0039  GETTABLE  R3 = R0[K10('m_countdownText')]
  0040  SETTABLE  R3[K11('text')] = R2
  0041  RETURN    return R0..R-1
; ---------- proto3 [IsSelectCard] ----------
  ; fn ?  line 130-132 np=2 va=0 ms=3 code=7 consts=1 upvals=0 protos=0
  ;   K[0]='m_selectCardId'
  ;   locals: self(0-7), cardId(0-7)
  0000  GETTABLE  R2 = R0[K0('m_selectCardId')]
  0001  EQ        if R1 eq R1   -> -130044
  0002  JMP       (jump)   -> 4
  0003  LOADBOOL  R2 = false
  0004  LOADBOOL  R2 = true
  0005  RETURN    return R2..R1
  0006  RETURN    return R0..R-1
; ---------- proto4 [OnToggled] ----------
  ; fn ?  line 135-158 np=1 va=0 ms=6 code=34 consts=16 upvals=1 protos=2
  ;   K[0]='IsShowNoneCards'
  ;   K[1]='m_bShowOnlyNone'
  ;   K[2]='GM'
  ;   K[3]='UIManager'
  ;   K[4]='SetEventLock'
  ;   K[5]='m_contentCanv'
  ;   K[6]='DOFade'
  ;   K[7]=0
  ;   K[8]=0.2
  ;   K[9]='DelayExecuteFuncInView'
  ;   K[10]=0.4
  ;   K[11]='GM'
  ;   K[12]='AudioModel'
  ;   K[13]='PlayEffect'
  ;   K[14]='AudioFileConfigName'
  ;   K[15]='SfxButtonClick'
  ;   upvals: _ENV
  ;   locals: self(0-34), bShow(2-34)
  0000  SELF      R2 = R0[K0('IsShowNoneCards')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  GETTABLE  R2 = R0[K1('m_bShowOnlyNone')]
  0003  EQ        if R0 eq R1   -> -130042
  0004  JMP       (jump)   -> 6
  0005  RETURN    return R0..R-1
  0006  GETTABUP  R2 = _ENV[K2('GM')]
  0007  GETTABLE  R2 = R2[K3('UIManager')]
  0008  SELF      R3 = R2[K4('SetEventLock')] (self)
  0009  LOADBOOL  R4 = true
  0010  CALL      R2 = call(R2, 0 args, 2 rets)
  0011  SETTABLE  R0[K1('m_bShowOnlyNone')] = R1
  0012  GETTABLE  R2 = R0[K5('m_contentCanv')]
  0013  SELF      R3 = R2[K6('DOFade')] (self)
  0014  LOADK     R4 = K7 0
  0015  LOADK     R5 = K8 0.2
  0016  CALL      R2 = call(R2, 0 args, 3 rets)
  0017  GETTABUP  R2 = _ENV[K9('DelayExecuteFuncInView')]
  0018  CLOSURE   R3 = closure proto0
  0019  LOADK     R4 = K8 0.2
  0020  MOVE      R5 = R0
  0021  CALL      R2 = call(R2, 0 args, 3 rets)
  0022  GETTABUP  R2 = _ENV[K9('DelayExecuteFuncInView')]
  0023  CLOSURE   R3 = closure proto1
  0024  LOADK     R4 = K10 0.4
  0025  MOVE      R5 = R0
  0026  CALL      R2 = call(R2, 0 args, 3 rets)
  0027  GETTABUP  R2 = _ENV[K11('GM')]
  0028  GETTABLE  R2 = R2[K12('AudioModel')]
  0029  SELF      R3 = R2[K13('PlayEffect')] (self)
  0030  GETTABUP  R4 = _ENV[K14('AudioFileConfigName')]
  0031  GETTABLE  R4 = R4[K15('SfxButtonClick')]
  0032  CALL      R2 = call(R2, 0 args, 2 rets)
  0033  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 147-151 np=0 va=0 ms=4 code=13 consts=5 upvals=1 protos=0
    ;   K[0]='_UpdateCurArrSet'
    ;   K[1]='m_loopListView'
    ;   K[2]='SetListItemCount'
    ;   K[3]='m_curArrSets'
    ;   K[4]='RefreshAllShownItem'
    ;   upvals: self
    0000  GETUPVAL  R0 = self
    0001  SELF      R1 = R0[K0('_UpdateCurArrSet')] (self)
    0002  CALL      R0 = call(R0, 0 args, 1 rets)
    0003  GETTABUP  R0 = self[K1('m_loopListView')]
    0004  SELF      R1 = R0[K2('SetListItemCount')] (self)
    0005  GETTABUP  R2 = self[K3('m_curArrSets')]
    0006  LEN       R2 = len R0
    0007  LOADBOOL  R3 = false
    0008  CALL      R0 = call(R0, 0 args, 3 rets)
    0009  GETTABUP  R0 = self[K1('m_loopListView')]
    0010  SELF      R1 = R0[K4('RefreshAllShownItem')] (self)
    0011  CALL      R0 = call(R0, 0 args, 1 rets)
    0012  RETURN    return R0..R-1
  ; ---------- proto1 [] ----------
    ; fn ?  line 152-155 np=0 va=0 ms=4 code=11 consts=7 upvals=2 protos=0
    ;   K[0]='m_contentCanv'
    ;   K[1]='DOFade'
    ;   K[2]=1
    ;   K[3]=0.2
    ;   K[4]='GM'
    ;   K[5]='UIManager'
    ;   K[6]='SetEventLock'
    ;   upvals: self, _ENV
    0000  GETTABUP  R0 = self[K0('m_contentCanv')]
    0001  SELF      R1 = R0[K1('DOFade')] (self)
    0002  LOADK     R2 = K2 1
    0003  LOADK     R3 = K3 0.2
    0004  CALL      R0 = call(R0, 0 args, 3 rets)
    0005  GETTABUP  R0 = _ENV[K4('GM')]
    0006  GETTABLE  R0 = R0[K5('UIManager')]
    0007  SELF      R1 = R0[K6('SetEventLock')] (self)
    0008  LOADBOOL  R2 = false
    0009  CALL      R0 = call(R0, 0 args, 2 rets)
    0010  RETURN    return R0..R-1
; ---------- proto5 [_UpdateCurArrSet] ----------
  ; fn ?  line 160-172 np=1 va=0 ms=10 code=28 consts=8 upvals=1 protos=0
  ;   K[0]='m_curArrSets'
  ;   K[1]='m_bShowOnlyNone'
  ;   K[2]='ipairs'
  ;   K[3]='m_arrCardSet'
  ;   K[4]='_GetModelBySetId'
  ;   K[5]='setId'
  ;   K[6]='GetSetCollectProgress'
  ;   K[7]=1
  ;   upvals: _ENV
  ;   locals: self(0-28), (for generator)(8-24), (for state)(8-24), (for control)(8-24), i(9-22), v(9-22), cur(15-22), max(15-22)
  0000  NEWTABLE  R1 = {} (0 items)
  0001  SETTABLE  R0[K0('m_curArrSets')] = R1
  0002  GETTABLE  R1 = R0[K1('m_bShowOnlyNone')]
  0003  TEST      if not R1 then   -> -131067
  0004  JMP       (jump)   -> 25
  0005  GETTABUP  R1 = _ENV[K2('ipairs')]
  0006  GETTABLE  R2 = R0[K3('m_arrCardSet')]
  0007  CALL      R1 = call(R1, 3 args, 1 rets)
  0008  JMP       (jump)   -> 22
  0009  SELF      R7 = R0[K4('_GetModelBySetId')] (self)
  0010  GETTABLE  R8 = R5[K5('setId')]
  0011  CALL      R6 = call(R6, 1 args, 2 rets)
  0012  SELF      R7 = R6[K6('GetSetCollectProgress')] (self)
  0013  GETTABLE  R8 = R5[K5('setId')]
  0014  CALL      R6 = call(R6, 2 args, 2 rets)
  0015  LT        if R0 lt R7   -> -127976
  0016  JMP       (jump)   -> 22
  0017  GETTABLE  R8 = R0[K0('m_curArrSets')]
  0018  GETTABLE  R9 = R0[K0('m_curArrSets')]
  0019  LEN       R9 = len R0
  0020  ADD       R9 = K7(1) add R9
  0021  SETTABLE  R8[R9] = R5
  0022  TFORCALL  tforcall R1
  0023  TFORLOOP  tforloop R3(sBx=-15)   -> 9
  0024  JMP       (jump)   -> 27
  0025  GETTABLE  R1 = R0[K3('m_arrCardSet')]
  0026  SETTABLE  R0[K0('m_curArrSets')] = R1
  0027  RETURN    return R0..R-1
; ---------- proto6 [IsShowOnlyNone] ----------
  ; fn ?  line 174-176 np=1 va=0 ms=2 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='m_bShowOnlyNone'
  ;   locals: self(0-3)
  0000  GETTABLE  R1 = R0[K0('m_bShowOnlyNone')]
  0001  RETURN    return R1..R0
  0002  RETURN    return R0..R-1
; ---------- proto7 [OnHelpBtnClick] ----------
  ; fn ?  line 178-180 np=1 va=0 ms=6 code=11 consts=8 upvals=1 protos=0
  ;   K[0]='GM'
  ;   K[1]='UIManager'
  ;   K[2]='OpenView'
  ;   K[3]='UIPrefabConfigName'
  ;   K[4]='AlbumJokerHelpWindow'
  ;   K[5]='m_model'
  ;   K[6]='GetType'
  ;   K[7]=2
  ;   upvals: _ENV
  ;   locals: self(0-11)
  0000  GETTABUP  R1 = _ENV[K0('GM')]
  0001  GETTABLE  R1 = R1[K1('UIManager')]
  0002  SELF      R2 = R1[K2('OpenView')] (self)
  0003  GETTABUP  R3 = _ENV[K3('UIPrefabConfigName')]
  0004  GETTABLE  R3 = R3[K4('AlbumJokerHelpWindow')]
  0005  GETTABLE  R4 = R0[K5('m_model')]
  0006  SELF      R5 = R4[K6('GetType')] (self)
  0007  CALL      R4 = call(R4, 1 args, 1 rets)
  0008  LOADK     R5 = K7 2
  0009  CALL      R1 = call(R1, 0 args, 4 rets)
  0010  RETURN    return R0..R-1
; ---------- proto8 [IsShowNoneCards] ----------
  ; fn ?  line 183-185 np=1 va=0 ms=2 code=4 consts=2 upvals=0 protos=0
  ;   K[0]='m_toggle'
  ;   K[1]='isOn'
  ;   locals: self(0-4)
  0000  GETTABLE  R1 = R0[K0('m_toggle')]
  0001  GETTABLE  R1 = R1[K1('isOn')]
  0002  RETURN    return R1..R0
  0003  RETURN    return R0..R-1
; ---------- proto9 [OnCloseFinish] ----------
  ; fn ?  line 187-199 np=1 va=0 ms=8 code=49 consts=17 upvals=1 protos=0
  ;   K[0]='m_openConfirmWindow'
  ;   K[1]='m_bInitState'
  ;   K[2]='GM'
  ;   K[3]='UIManager'
  ;   K[4]='OpenView'
  ;   K[5]='UIPrefabConfigName'
  ;   K[6]='AlbumJokerExchangeConfirmWindow'
  ;   K[7]='m_activityType'
  ;   K[8]='m_selectCardId'
  ;   K[9]='m_bShowOnlyNone'
  ;   K[10]='m_model'
  ;   K[11]='IsGoldenJokerCardInUse'
  ;   K[12]='JokerExchange'
  ;   K[13]='AlbumGoldJokerExchangeCompleteWindow'
  ;   K[14]='AlbumJokerExchangeCompleteWindow'
  ;   K[15]='BaseWindow'
  ;   K[16]='OnCloseFinish'
  ;   upvals: _ENV
  ;   locals: self(0-49), isGoldenJoker(25-44), prefab(37-44)
  0000  GETTABLE  R1 = R0[K0('m_openConfirmWindow')]
  0001  TEST      if not R1 then   -> -131069
  0002  JMP       (jump)   -> 16
  0003  GETTABLE  R1 = R0[K1('m_bInitState')]
  0004  TEST      if not R1 then   -> -131065
  0005  JMP       (jump)   -> 16
  0006  GETTABUP  R1 = _ENV[K2('GM')]
  0007  GETTABLE  R1 = R1[K3('UIManager')]
  0008  SELF      R2 = R1[K4('OpenView')] (self)
  0009  GETTABUP  R3 = _ENV[K5('UIPrefabConfigName')]
  0010  GETTABLE  R3 = R3[K6('AlbumJokerExchangeConfirmWindow')]
  0011  GETTABLE  R4 = R0[K7('m_activityType')]
  0012  GETTABLE  R5 = R0[K8('m_selectCardId')]
  0013  GETTABLE  R6 = R0[K9('m_bShowOnlyNone')]
  0014  CALL      R1 = call(R1, 0 args, 5 rets)
  0015  JMP       (jump)   -> 44
  0016  GETTABLE  R1 = R0[K0('m_openConfirmWindow')]
  0017  TEST      if not R1 then   -> -131053
  0018  JMP       (jump)   -> 44
  0019  GETTABLE  R1 = R0[K1('m_bInitState')]
  0020  TEST      if not R1 then   -> -131050
  0021  JMP       (jump)   -> 44
  0022  GETTABLE  R1 = R0[K10('m_model')]
  0023  SELF      R2 = R1[K11('IsGoldenJokerCardInUse')] (self)
  0024  CALL      R1 = call(R1, 1 args, 1 rets)
  0025  GETTABLE  R2 = R0[K10('m_model')]
  0026  SELF      R3 = R2[K12('JokerExchange')] (self)
  0027  GETTABLE  R4 = R0[K8('m_selectCardId')]
  0028  CALL      R2 = call(R2, 0 args, 2 rets)
  0029  TEST      if not R1 then   -> -131041
  0030  JMP       (jump)   -> 35
  0031  GETTABUP  R2 = _ENV[K5('UIPrefabConfigName')]
  0032  GETTABLE  R2 = R2[K13('AlbumGoldJokerExchangeCompleteWindow')]
  0033  TEST      if not R2 then   -> -131036
  0034  JMP       (jump)   -> 37
  0035  GETTABUP  R2 = _ENV[K5('UIPrefabConfigName')]
  0036  GETTABLE  R2 = R2[K14('AlbumJokerExchangeCompleteWindow')]
  0037  GETTABUP  R3 = _ENV[K2('GM')]
  0038  GETTABLE  R3 = R3[K3('UIManager')]
  0039  SELF      R4 = R3[K4('OpenView')] (self)
  0040  MOVE      R5 = R0
  0041  GETTABLE  R6 = R0[K7('m_activityType')]
  0042  GETTABLE  R7 = R0[K8('m_selectCardId')]
  0043  CALL      R3 = call(R3, 0 args, 4 rets)
  0044  GETTABUP  R1 = _ENV[K15('BaseWindow')]
  0045  GETTABLE  R1 = R1[K16('OnCloseFinish')]
  0046  MOVE      R2 = R0
  0047  CALL      R1 = call(R1, 0 args, 1 rets)
  0048  RETURN    return R0..R-1
; ---------- proto10 [OnExchangeClicked] ----------
  ; fn ?  line 202-210 np=1 va=0 ms=4 code=15 consts=9 upvals=1 protos=0
  ;   K[0]='IsNil'
  ;   K[1]='m_selectCardId'
  ;   K[2]='GM'
  ;   K[3]='UIManager'
  ;   K[4]='ShowPromptWithKey'
  ;   K[5]='joker_card_choose_btn_tip'
  ;   K[6]='m_openConfirmWindow'
  ;   K[7]=true
  ;   K[8]='Close'
  ;   upvals: _ENV
  ;   locals: self(0-15)
  0000  GETTABUP  R1 = _ENV[K0('IsNil')]
  0001  GETTABLE  R2 = R0[K1('m_selectCardId')]
  0002  CALL      R1 = call(R1, 1 args, 1 rets)
  0003  TEST      if not R1 then   -> -131067
  0004  JMP       (jump)   -> 11
  0005  GETTABUP  R1 = _ENV[K2('GM')]
  0006  GETTABLE  R1 = R1[K3('UIManager')]
  0007  SELF      R2 = R1[K4('ShowPromptWithKey')] (self)
  0008  LOADK     R3 = K5 'joker_card_choose_btn_tip'
  0009  CALL      R1 = call(R1, 0 args, 2 rets)
  0010  RETURN    return R0..R-1
  0011  SETTABLE  R0[K6('m_openConfirmWindow')] = K7(true)
  0012  SELF      R2 = R0[K8('Close')] (self)
  0013  CALL      R1 = call(R1, 0 args, 1 rets)
  0014  RETURN    return R0..R-1
