# Model_Rate_RateModel_173.luac
; fn @RateModel.lua  line 0-0 np=0 va=1 ms=7 code=65 consts=25 upvals=1 protos=18
;   K[0]='RateModel'
;   K[1]='__index'
;   K[2]='1'
;   K[3]='canPopup'
;   K[4]='rated'
;   K[5]='triggeredConfig'
;   K[6]='activeConfigId'
;   K[7]='Init'
;   K[8]='LoadServerConfig'
;   K[9]='LateInit'
;   K[10]='_CheckConfig'
;   K[11]='Destroy'
;   K[12]='_OnMainTaskFinished'
;   K[13]='_OnClaimedOrderGroupReward'
;   K[14]='CheckPopup'
;   K[15]='GetRateLink'
;   K[16]='FinishRate'
;   K[17]='OnWindowPopup'
;   K[18]='TriggerPopup'
;   K[19]='_ResetDBData'
;   K[20]='_CanPopupWindow'
;   K[21]='_GetActiveConfig'
;   K[22]='SetConfigTriggered'
;   K[23]='_GetTriggeredConfig'
;   K[24]='WhetherJumpToCustomerCenterWhenGiveBadReview'
;   upvals: _ENV
;   locals: DBId(6-65), DBColumnCanPopup(7-65), DBColumnRate(8-65), DBColumnTriggeredConfig(9-65), DBColumnActiveConfigId(10-65)
0000  NEWTABLE  R0 = {} (0 items)
0001  SETTABUP  _ENV[K0('RateModel')] = R0
0002  GETTABUP  R0 = _ENV[K0('RateModel')]
0003  GETTABUP  R1 = _ENV[K0('RateModel')]
0004  SETTABLE  R0[K1('__index')] = R1
0005  LOADK     R0 = K2 '1'
0006  LOADK     R1 = K3 'canPopup'
0007  LOADK     R2 = K4 'rated'
0008  LOADK     R3 = K5 'triggeredConfig'
0009  LOADK     R4 = K6 'activeConfigId'
0010  GETTABUP  R5 = _ENV[K0('RateModel')]
0011  CLOSURE   R6 = closure proto0
0012  SETTABLE  R5[K7('Init')] = R6
0013  GETTABUP  R5 = _ENV[K0('RateModel')]
0014  CLOSURE   R6 = closure proto1
0015  SETTABLE  R5[K8('LoadServerConfig')] = R6
0016  GETTABUP  R5 = _ENV[K0('RateModel')]
0017  CLOSURE   R6 = closure proto2
0018  SETTABLE  R5[K9('LateInit')] = R6
0019  GETTABUP  R5 = _ENV[K0('RateModel')]
0020  CLOSURE   R6 = closure proto3
0021  SETTABLE  R5[K10('_CheckConfig')] = R6
0022  GETTABUP  R5 = _ENV[K0('RateModel')]
0023  CLOSURE   R6 = closure proto4
0024  SETTABLE  R5[K11('Destroy')] = R6
0025  GETTABUP  R5 = _ENV[K0('RateModel')]
0026  CLOSURE   R6 = closure proto5
0027  SETTABLE  R5[K12('_OnMainTaskFinished')] = R6
0028  GETTABUP  R5 = _ENV[K0('RateModel')]
0029  CLOSURE   R6 = closure proto6
0030  SETTABLE  R5[K13('_OnClaimedOrderGroupReward')] = R6
0031  GETTABUP  R5 = _ENV[K0('RateModel')]
0032  CLOSURE   R6 = closure proto7
0033  SETTABLE  R5[K14('CheckPopup')] = R6
0034  GETTABUP  R5 = _ENV[K0('RateModel')]
0035  CLOSURE   R6 = closure proto8
0036  SETTABLE  R5[K15('GetRateLink')] = R6
0037  GETTABUP  R5 = _ENV[K0('RateModel')]
0038  CLOSURE   R6 = closure proto9
0039  SETTABLE  R5[K16('FinishRate')] = R6
0040  GETTABUP  R5 = _ENV[K0('RateModel')]
0041  CLOSURE   R6 = closure proto10
0042  SETTABLE  R5[K17('OnWindowPopup')] = R6
0043  GETTABUP  R5 = _ENV[K0('RateModel')]
0044  CLOSURE   R6 = closure proto11
0045  SETTABLE  R5[K18('TriggerPopup')] = R6
0046  GETTABUP  R5 = _ENV[K0('RateModel')]
0047  CLOSURE   R6 = closure proto12
0048  SETTABLE  R5[K19('_ResetDBData')] = R6
0049  GETTABUP  R5 = _ENV[K0('RateModel')]
0050  CLOSURE   R6 = closure proto13
0051  SETTABLE  R5[K20('_CanPopupWindow')] = R6
0052  GETTABUP  R5 = _ENV[K0('RateModel')]
0053  CLOSURE   R6 = closure proto14
0054  SETTABLE  R5[K21('_GetActiveConfig')] = R6
0055  GETTABUP  R5 = _ENV[K0('RateModel')]
0056  CLOSURE   R6 = closure proto15
0057  SETTABLE  R5[K22('SetConfigTriggered')] = R6
0058  GETTABUP  R5 = _ENV[K0('RateModel')]
0059  CLOSURE   R6 = closure proto16
0060  SETTABLE  R5[K23('_GetTriggeredConfig')] = R6
0061  GETTABUP  R5 = _ENV[K0('RateModel')]
0062  CLOSURE   R6 = closure proto17
0063  SETTABLE  R5[K24('WhetherJumpToCustomerCenterWhenGiveBadReview')] = R6
0064  RETURN    return R0..R-1
; ---------- proto0 [Init] ----------
  ; fn ?  line 15-19 np=1 va=0 ms=5 code=22 consts=13 upvals=1 protos=0
  ;   K[0]='m_dbTable'
  ;   K[1]='GM'
  ;   K[2]='DBTableManager'
  ;   K[3]='GetTable'
  ;   K[4]='EDBTableConfigs'
  ;   K[5]='Rate'
  ;   K[6]='EventDispatcher'
  ;   K[7]='AddListener'
  ;   K[8]='EEventType'
  ;   K[9]='MainTaskFinished'
  ;   K[10]='_OnMainTaskFinished'
  ;   K[11]='OnClaimedOrderGroupReward'
  ;   K[12]='_OnClaimedOrderGroupReward'
  ;   upvals: _ENV
  ;   locals: self(0-22)
  0000  GETTABUP  R1 = _ENV[K1('GM')]
  0001  GETTABLE  R1 = R1[K2('DBTableManager')]
  0002  SELF      R2 = R1[K3('GetTable')] (self)
  0003  GETTABUP  R3 = _ENV[K4('EDBTableConfigs')]
  0004  GETTABLE  R3 = R3[K5('Rate')]
  0005  CALL      R1 = call(R1, 1 args, 2 rets)
  0006  SETTABLE  R0[K0('m_dbTable')] = R1
  0007  GETTABUP  R1 = _ENV[K6('EventDispatcher')]
  0008  GETTABLE  R1 = R1[K7('AddListener')]
  0009  GETTABUP  R2 = _ENV[K8('EEventType')]
  0010  GETTABLE  R2 = R2[K9('MainTaskFinished')]
  0011  MOVE      R3 = R0
  0012  GETTABLE  R4 = R0[K10('_OnMainTaskFinished')]
  0013  CALL      R1 = call(R1, 0 args, 3 rets)
  0014  GETTABUP  R1 = _ENV[K6('EventDispatcher')]
  0015  GETTABLE  R1 = R1[K7('AddListener')]
  0016  GETTABUP  R2 = _ENV[K8('EEventType')]
  0017  GETTABLE  R2 = R2[K11('OnClaimedOrderGroupReward')]
  0018  MOVE      R3 = R0
  0019  GETTABLE  R4 = R0[K12('_OnClaimedOrderGroupReward')]
  0020  CALL      R1 = call(R1, 0 args, 3 rets)
  0021  RETURN    return R0..R-1
; ---------- proto1 [LoadServerConfig] ----------
  ; fn ?  line 28-41 np=1 va=0 ms=4 code=25 consts=11 upvals=1 protos=0
  ;   K[0]='GM'
  ;   K[1]='ConfigModel'
  ;   K[2]='GetServerConfig'
  ;   K[3]='ServerConfigKey'
  ;   K[4]='RateUs'
  ;   K[5]='Table'
  ;   K[6]='IsEmpty'
  ;   K[7]='m_configs'
  ;   K[8]='_CheckConfig'
  ;   K[9]='m_dbTable'
  ;   K[10]='_ResetDBData'
  ;   upvals: _ENV
  ;   locals: self(0-25), configs(6-25)
  0000  GETTABUP  R1 = _ENV[K0('GM')]
  0001  GETTABLE  R1 = R1[K1('ConfigModel')]
  0002  SELF      R2 = R1[K2('GetServerConfig')] (self)
  0003  GETTABUP  R3 = _ENV[K3('ServerConfigKey')]
  0004  GETTABLE  R3 = R3[K4('RateUs')]
  0005  CALL      R1 = call(R1, 1 args, 2 rets)
  0006  GETTABUP  R2 = _ENV[K5('Table')]
  0007  GETTABLE  R2 = R2[K6('IsEmpty')]
  0008  MOVE      R3 = R0
  0009  CALL      R2 = call(R2, 1 args, 1 rets)
  0010  TEST      if not R2 then   -> -131059
  0011  JMP       (jump)   -> 14
  0012  SETTABLE  R0[K7('m_configs')] = R1
  0013  JMP       (jump)   -> 15
  0014  RETURN    return R0..R-1
  0015  SELF      R3 = R0[K8('_CheckConfig')] (self)
  0016  CALL      R2 = call(R2, 0 args, 1 rets)
  0017  GETTABLE  R2 = R0[K9('m_dbTable')]
  0018  SELF      R3 = R2[K6('IsEmpty')] (self)
  0019  CALL      R2 = call(R2, 1 args, 1 rets)
  0020  TEST      if not R2 then   -> -131050
  0021  JMP       (jump)   -> 24
  0022  SELF      R3 = R0[K10('_ResetDBData')] (self)
  0023  CALL      R2 = call(R2, 0 args, 1 rets)
  0024  RETURN    return R0..R-1
; ---------- proto2 [LateInit] ----------
  ; fn ?  line 43-46 np=1 va=0 ms=3 code=4 consts=3 upvals=0 protos=0
  ;   K[0]='m_lateInited'
  ;   K[1]=true
  ;   K[2]='_CheckConfig'
  ;   locals: self(0-4)
  0000  SETTABLE  R0[K0('m_lateInited')] = K1(true)
  0001  SELF      R2 = R0[K2('_CheckConfig')] (self)
  0002  CALL      R1 = call(R1, 0 args, 1 rets)
  0003  RETURN    return R0..R-1
; ---------- proto3 [_CheckConfig] ----------
  ; fn ?  line 51-81 np=1 va=0 ms=22 code=77 consts=23 upvals=1 protos=0
  ;   K[0]='m_lateInited'
  ;   K[1]='Table'
  ;   K[2]='IsEmpty'
  ;   K[3]='m_configs'
  ;   K[4]='pairs'
  ;   K[5]='task'
  ;   K[6]='ipairs'
  ;   K[7]='ChapterId'
  ;   K[8]='GM'
  ;   K[9]='ChapterDataModel'
  ;   K[10]='GetChapterNameById'
  ;   K[11]='TaskCount'
  ;   K[12]='Log'
  ;   K[13]='Error'
  ;   K[14]='引导评价配置重复 config id:'
  ;   K[15]='id'
  ;   K[16]=', 重复元素:'
  ;   K[17]='_'
  ;   K[18]=true
  ;   K[19]='TaskDataModel'
  ;   K[20]='GetChapterTaskCount'
  ;   K[21]='引导评价配置超过章节任务数 config id:'
  ;   K[22]=', 问题配置:'
  ;   upvals: _ENV
  ;   locals: self(0-77), map(12-77), (for generator)(15-76), (for state)(15-76), (for control)(15-76), _(16-74), cfg(16-74), (for generator)(25-74), (for state)(25-74), (for control)(25-74), _(26-72), taskCfg(26-72), chapterId(27-72), chapterName(32-72), taskCount(33-72)
  0000  GETTABLE  R1 = R0[K0('m_lateInited')]
  0001  TEST      if not R1 then   -> -131068
  0002  JMP       (jump)   -> 4
  0003  RETURN    return R0..R-1
  0004  GETTABUP  R1 = _ENV[K1('Table')]
  0005  GETTABLE  R1 = R1[K2('IsEmpty')]
  0006  GETTABLE  R2 = R0[K3('m_configs')]
  0007  CALL      R1 = call(R1, 1 args, 1 rets)
  0008  TEST      if not R1 then   -> -131062
  0009  JMP       (jump)   -> 11
  0010  RETURN    return R0..R-1
  0011  NEWTABLE  R1 = {} (0 items)
  0012  GETTABUP  R2 = _ENV[K4('pairs')]
  0013  GETTABLE  R3 = R0[K3('m_configs')]
  0014  CALL      R2 = call(R2, 3 args, 1 rets)
  0015  JMP       (jump)   -> 74
  0016  GETTABUP  R7 = _ENV[K1('Table')]
  0017  GETTABLE  R7 = R7[K2('IsEmpty')]
  0018  GETTABLE  R8 = R6[K5('task')]
  0019  CALL      R7 = call(R7, 1 args, 1 rets)
  0020  TEST      if not R7 then   -> -131049
  0021  JMP       (jump)   -> 74
  0022  GETTABUP  R7 = _ENV[K6('ipairs')]
  0023  GETTABLE  R8 = R6[K5('task')]
  0024  CALL      R7 = call(R7, 3 args, 1 rets)
  0025  JMP       (jump)   -> 72
  0026  GETTABLE  R12 = R11[K7('ChapterId')]
  0027  GETTABUP  R13 = _ENV[K8('GM')]
  0028  GETTABLE  R13 = R13[K9('ChapterDataModel')]
  0029  SELF      R14 = R13[K10('GetChapterNameById')] (self)
  0030  MOVE      R15 = R0
  0031  CALL      R13 = call(R13, 1 args, 2 rets)
  0032  GETTABLE  R14 = R11[K11('TaskCount')]
  0033  GETTABLE  R15 = R1[R12]
  0034  TEST      if not R15 then   -> -131035
  0035  JMP       (jump)   -> 38
  0036  NEWTABLE  R15 = {} (0 items)
  0037  SETTABLE  R1[R12] = R15
  0038  GETTABLE  R15 = R1[R12]
  0039  GETTABLE  R15 = R15[R14]
  0040  TEST      if not R15 then   -> -131030
  0041  JMP       (jump)   -> 53
  0042  GETTABUP  R15 = _ENV[K12('Log')]
  0043  GETTABLE  R15 = R15[K13('Error')]
  0044  LOADK     R16 = K14 '引导评价配置重复 config id:'
  0045  GETTABLE  R17 = R6[K15('id')]
  0046  LOADK     R18 = K16 ', 重复元素:'
  0047  MOVE      R19 = R0
  0048  LOADK     R20 = K17 '_'
  0049  MOVE      R21 = R0
  0050  CONCAT    R16 = concat(R16..R16)
  0051  CALL      R15 = call(R15, 0 args, 1 rets)
  0052  JMP       (jump)   -> 72
  0053  GETTABLE  R15 = R1[R12]
  0054  SETTABLE  R15[R14] = K18(true)
  0055  GETTABUP  R15 = _ENV[K8('GM')]
  0056  GETTABLE  R15 = R15[K19('TaskDataModel')]
  0057  SELF      R16 = R15[K20('GetChapterTaskCount')] (self)
  0058  MOVE      R17 = R0
  0059  CALL      R15 = call(R15, 1 args, 2 rets)
  0060  LT        if R0 lt R14   -> -123316
  0061  JMP       (jump)   -> 72
  0062  GETTABUP  R15 = _ENV[K12('Log')]
  0063  GETTABLE  R15 = R15[K13('Error')]
  0064  LOADK     R16 = K21 '引导评价配置超过章节任务数 config id:'
  0065  GETTABLE  R17 = R6[K15('id')]
  0066  LOADK     R18 = K22 ', 问题配置:'
  0067  MOVE      R19 = R0
  0068  LOADK     R20 = K17 '_'
  0069  MOVE      R21 = R0
  0070  CONCAT    R16 = concat(R16..R16)
  0071  CALL      R15 = call(R15, 0 args, 1 rets)
  0072  TFORCALL  tforcall R7
  0073  TFORLOOP  tforloop R9(sBx=-48)   -> 26
  0074  TFORCALL  tforcall R2
  0075  TFORLOOP  tforloop R4(sBx=-60)   -> 16
  0076  RETURN    return R0..R-1
; ---------- proto4 [Destroy] ----------
  ; fn ?  line 83-85 np=1 va=0 ms=3 code=5 consts=2 upvals=1 protos=0
  ;   K[0]='EventDispatcher'
  ;   K[1]='RemoveTarget'
  ;   upvals: _ENV
  ;   locals: self(0-5)
  0000  GETTABUP  R1 = _ENV[K0('EventDispatcher')]
  0001  GETTABLE  R1 = R1[K1('RemoveTarget')]
  0002  MOVE      R2 = R0
  0003  CALL      R1 = call(R1, 0 args, 1 rets)
  0004  RETURN    return R0..R-1
; ---------- proto5 [_OnMainTaskFinished] ----------
  ; fn ?  line 87-107 np=2 va=0 ms=18 code=59 consts=16 upvals=1 protos=0
  ;   K[0]='Table'
  ;   K[1]='IsEmpty'
  ;   K[2]='m_configs'
  ;   K[3]='GM'
  ;   K[4]='TaskManager'
  ;   K[5]='GetOngoingChapterId'
  ;   K[6]='GetChapterFinishedCount'
  ;   K[7]='_GetTriggeredConfig'
  ;   K[8]='pairs'
  ;   K[9]='task'
  ;   K[10]='ListContain'
  ;   K[11]='id'
  ;   K[12]='ipairs'
  ;   K[13]='ChapterId'
  ;   K[14]='TaskCount'
  ;   K[15]='TriggerPopup'
  ;   upvals: _ENV
  ;   locals: self(0-59), msg(0-59), ongoingChapterId(17-59), ongoingFinishedCount(22-59), triggeredConfig(24-59), (for generator)(27-58), (for state)(27-58), (for control)(27-58), _(28-56), config(28-56), (for generator)(44-56), (for state)(44-56), (for control)(44-56), _(45-54), taskConfig(45-54)
  0000  GETTABUP  R2 = _ENV[K0('Table')]
  0001  GETTABLE  R2 = R2[K1('IsEmpty')]
  0002  MOVE      R3 = R0
  0003  CALL      R2 = call(R2, 1 args, 1 rets)
  0004  TEST      if not R2 then   -> -131065
  0005  JMP       (jump)   -> 12
  0006  GETTABUP  R2 = _ENV[K0('Table')]
  0007  GETTABLE  R2 = R2[K1('IsEmpty')]
  0008  GETTABLE  R3 = R0[K2('m_configs')]
  0009  CALL      R2 = call(R2, 1 args, 1 rets)
  0010  TEST      if not R2 then   -> -131060
  0011  JMP       (jump)   -> 13
  0012  RETURN    return R0..R-1
  0013  GETTABUP  R2 = _ENV[K3('GM')]
  0014  GETTABLE  R2 = R2[K4('TaskManager')]
  0015  SELF      R3 = R2[K5('GetOngoingChapterId')] (self)
  0016  CALL      R2 = call(R2, 1 args, 1 rets)
  0017  GETTABUP  R3 = _ENV[K3('GM')]
  0018  GETTABLE  R3 = R3[K4('TaskManager')]
  0019  SELF      R4 = R3[K6('GetChapterFinishedCount')] (self)
  0020  MOVE      R5 = R0
  0021  CALL      R3 = call(R3, 1 args, 2 rets)
  0022  SELF      R5 = R0[K7('_GetTriggeredConfig')] (self)
  0023  CALL      R4 = call(R4, 1 args, 1 rets)
  0024  GETTABUP  R5 = _ENV[K8('pairs')]
  0025  GETTABLE  R6 = R0[K2('m_configs')]
  0026  CALL      R5 = call(R5, 3 args, 1 rets)
  0027  JMP       (jump)   -> 56
  0028  GETTABUP  R10 = _ENV[K0('Table')]
  0029  GETTABLE  R10 = R10[K1('IsEmpty')]
  0030  GETTABLE  R11 = R9[K9('task')]
  0031  CALL      R10 = call(R10, 1 args, 1 rets)
  0032  TEST      if not R10 then   -> -131037
  0033  JMP       (jump)   -> 56
  0034  GETTABUP  R10 = _ENV[K0('Table')]
  0035  GETTABLE  R10 = R10[K10('ListContain')]
  0036  MOVE      R11 = R0
  0037  GETTABLE  R12 = R9[K11('id')]
  0038  CALL      R10 = call(R10, 1 args, 2 rets)
  0039  TEST      if not R10 then   -> -131030
  0040  JMP       (jump)   -> 56
  0041  GETTABUP  R10 = _ENV[K12('ipairs')]
  0042  GETTABLE  R11 = R9[K9('task')]
  0043  CALL      R10 = call(R10, 3 args, 1 rets)
  0044  JMP       (jump)   -> 54
  0045  GETTABLE  R15 = R14[K13('ChapterId')]
  0046  EQ        if R0 eq R15   -> -129985
  0047  JMP       (jump)   -> 54
  0048  GETTABLE  R15 = R14[K14('TaskCount')]
  0049  EQ        if R0 eq R15   -> -129470
  0050  JMP       (jump)   -> 54
  0051  SELF      R16 = R0[K15('TriggerPopup')] (self)
  0052  GETTABLE  R17 = R9[K11('id')]
  0053  CALL      R15 = call(R15, 0 args, 2 rets)
  0054  TFORCALL  tforcall R10
  0055  TFORLOOP  tforloop R12(sBx=-11)   -> 45
  0056  TFORCALL  tforcall R5
  0057  TFORLOOP  tforloop R7(sBx=-30)   -> 28
  0058  RETURN    return R0..R-1
; ---------- proto6 [_OnClaimedOrderGroupReward] ----------
  ; fn ?  line 109-127 np=1 va=0 ms=16 code=44 consts=13 upvals=1 protos=0
  ;   K[0]='Table'
  ;   K[1]='IsEmpty'
  ;   K[2]='m_configs'
  ;   K[3]='GM'
  ;   K[4]='MainBoardModel'
  ;   K[5]='GetCurOrderDay'
  ;   K[6]='_GetTriggeredConfig'
  ;   K[7]='pairs'
  ;   K[8]='day'
  ;   K[9]='ListContain'
  ;   K[10]='id'
  ;   K[11]='ipairs'
  ;   K[12]='TriggerPopup'
  ;   upvals: _ENV
  ;   locals: self(0-44), curDay(11-44), triggeredConfig(13-44), (for generator)(16-43), (for state)(16-43), (for control)(16-43), _(17-41), config(17-41), (for generator)(33-41), (for state)(33-41), (for control)(33-41), _(34-39), day(34-39)
  0000  GETTABUP  R1 = _ENV[K0('Table')]
  0001  GETTABLE  R1 = R1[K1('IsEmpty')]
  0002  GETTABLE  R2 = R0[K2('m_configs')]
  0003  CALL      R1 = call(R1, 1 args, 1 rets)
  0004  TEST      if not R1 then   -> -131066
  0005  JMP       (jump)   -> 7
  0006  RETURN    return R0..R-1
  0007  GETTABUP  R1 = _ENV[K3('GM')]
  0008  GETTABLE  R1 = R1[K4('MainBoardModel')]
  0009  SELF      R2 = R1[K5('GetCurOrderDay')] (self)
  0010  CALL      R1 = call(R1, 1 args, 1 rets)
  0011  SELF      R3 = R0[K6('_GetTriggeredConfig')] (self)
  0012  CALL      R2 = call(R2, 1 args, 1 rets)
  0013  GETTABUP  R3 = _ENV[K7('pairs')]
  0014  GETTABLE  R4 = R0[K2('m_configs')]
  0015  CALL      R3 = call(R3, 3 args, 1 rets)
  0016  JMP       (jump)   -> 41
  0017  GETTABUP  R8 = _ENV[K0('Table')]
  0018  GETTABLE  R8 = R8[K1('IsEmpty')]
  0019  GETTABLE  R9 = R7[K8('day')]
  0020  CALL      R8 = call(R8, 1 args, 1 rets)
  0021  TEST      if not R8 then   -> -131048
  0022  JMP       (jump)   -> 41
  0023  GETTABUP  R8 = _ENV[K0('Table')]
  0024  GETTABLE  R8 = R8[K9('ListContain')]
  0025  MOVE      R9 = R0
  0026  GETTABLE  R10 = R7[K10('id')]
  0027  CALL      R8 = call(R8, 1 args, 2 rets)
  0028  TEST      if not R8 then   -> -131041
  0029  JMP       (jump)   -> 41
  0030  GETTABUP  R8 = _ENV[K11('ipairs')]
  0031  GETTABLE  R9 = R7[K8('day')]
  0032  CALL      R8 = call(R8, 3 args, 1 rets)
  0033  JMP       (jump)   -> 39
  0034  EQ        if R0 eq R12   -> -130512
  0035  JMP       (jump)   -> 39
  0036  SELF      R14 = R0[K12('TriggerPopup')] (self)
  0037  GETTABLE  R15 = R7[K10('id')]
  0038  CALL      R13 = call(R13, 0 args, 2 rets)
  0039  TFORCALL  tforcall R8
  0040  TFORLOOP  tforloop R10(sBx=-7)   -> 34
  0041  TFORCALL  tforcall R3
  0042  TFORLOOP  tforloop R5(sBx=-26)   -> 17
  0043  RETURN    return R0..R-1
; ---------- proto7 [CheckPopup] ----------
  ; fn ?  line 129-134 np=1 va=0 ms=3 code=9 consts=3 upvals=1 protos=0
  ;   K[0]='_CanPopupWindow'
  ;   K[1]='UIPrefabConfigName'
  ;   K[2]='RateWindow'
  ;   upvals: _ENV
  ;   locals: self(0-9)
  0000  SELF      R2 = R0[K0('_CanPopupWindow')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  TEST      if not R1 then   -> -131067
  0003  JMP       (jump)   -> 5
  0004  RETURN    return R0..R-1
  0005  GETTABUP  R1 = _ENV[K1('UIPrefabConfigName')]
  0006  GETTABLE  R1 = R1[K2('RateWindow')]
  0007  RETURN    return R1..R0
  0008  RETURN    return R0..R-1
; ---------- proto8 [GetRateLink] ----------
  ; fn ?  line 136-139 np=1 va=0 ms=3 code=10 consts=2 upvals=0 protos=0
  ;   K[0]='_GetActiveConfig'
  ;   K[1]='link'
  ;   locals: self(0-10), config(2-10)
  0000  SELF      R2 = R0[K0('_GetActiveConfig')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  TEST      if not R1 then   -> -131068
  0003  JMP       (jump)   -> 7
  0004  GETTABLE  R2 = R1[K1('link')]
  0005  TEST      if not R2 then   -> -131064
  0006  JMP       (jump)   -> 8
  0007  LOADNIL   R2..R2 = nil
  0008  RETURN    return R2..R1
  0009  RETURN    return R0..R-1
; ---------- proto9 [FinishRate] ----------
  ; fn ?  line 141-143 np=1 va=0 ms=6 code=7 consts=3 upvals=2 protos=0
  ;   K[0]='m_dbTable'
  ;   K[1]='Set'
  ;   K[2]=1
  ;   upvals: DBId, DBColumnRate
  ;   locals: self(0-7)
  0000  GETTABLE  R1 = R0[K0('m_dbTable')]
  0001  SELF      R2 = R1[K1('Set')] (self)
  0002  GETUPVAL  R3 = DBId
  0003  GETUPVAL  R4 = DBId
  0004  LOADK     R5 = K2 1
  0005  CALL      R1 = call(R1, 0 args, 4 rets)
  0006  RETURN    return R0..R-1
; ---------- proto10 [OnWindowPopup] ----------
  ; fn ?  line 145-147 np=1 va=0 ms=6 code=7 consts=3 upvals=2 protos=0
  ;   K[0]='m_dbTable'
  ;   K[1]='Set'
  ;   K[2]=0
  ;   upvals: DBId, DBColumnCanPopup
  ;   locals: self(0-7)
  0000  GETTABLE  R1 = R0[K0('m_dbTable')]
  0001  SELF      R2 = R1[K1('Set')] (self)
  0002  GETUPVAL  R3 = DBId
  0003  GETUPVAL  R4 = DBId
  0004  LOADK     R5 = K2 0
  0005  CALL      R1 = call(R1, 0 args, 4 rets)
  0006  RETURN    return R0..R-1
; ---------- proto11 [TriggerPopup] ----------
  ; fn ?  line 149-152 np=2 va=0 ms=7 code=13 consts=3 upvals=3 protos=0
  ;   K[0]='m_dbTable'
  ;   K[1]='Set'
  ;   K[2]=1
  ;   upvals: DBId, DBColumnCanPopup, DBColumnActiveConfigId
  ;   locals: self(0-13), cfgId(0-13)
  0000  GETTABLE  R2 = R0[K0('m_dbTable')]
  0001  SELF      R3 = R2[K1('Set')] (self)
  0002  GETUPVAL  R4 = DBId
  0003  GETUPVAL  R5 = DBId
  0004  LOADK     R6 = K2 1
  0005  CALL      R2 = call(R2, 0 args, 4 rets)
  0006  GETTABLE  R2 = R0[K0('m_dbTable')]
  0007  SELF      R3 = R2[K1('Set')] (self)
  0008  GETUPVAL  R4 = DBId
  0009  GETUPVAL  R5 = DBId
  0010  MOVE      R6 = R0
  0011  CALL      R2 = call(R2, 0 args, 4 rets)
  0012  RETURN    return R0..R-1
; ---------- proto12 [_ResetDBData] ----------
  ; fn ?  line 154-163 np=1 va=0 ms=6 code=32 consts=7 upvals=6 protos=0
  ;   K[0]='Table'
  ;   K[1]='IsEmpty'
  ;   K[2]='m_configs'
  ;   K[3]='m_dbTable'
  ;   K[4]='Set'
  ;   K[5]=0
  ;   K[6]=''
  ;   upvals: _ENV, DBId, DBColumnCanPopup, DBColumnRate, DBColumnTriggeredConfig, DBColumnActiveConfigId
  ;   locals: self(0-32)
  0000  GETTABUP  R1 = _ENV[K0('Table')]
  0001  GETTABLE  R1 = R1[K1('IsEmpty')]
  0002  GETTABLE  R2 = R0[K2('m_configs')]
  0003  CALL      R1 = call(R1, 1 args, 1 rets)
  0004  TEST      if not R1 then   -> -131066
  0005  JMP       (jump)   -> 7
  0006  RETURN    return R0..R-1
  0007  GETTABLE  R1 = R0[K3('m_dbTable')]
  0008  SELF      R2 = R1[K4('Set')] (self)
  0009  GETUPVAL  R3 = _ENV
  0010  GETUPVAL  R4 = _ENV
  0011  LOADK     R5 = K5 0
  0012  CALL      R1 = call(R1, 0 args, 4 rets)
  0013  GETTABLE  R1 = R0[K3('m_dbTable')]
  0014  SELF      R2 = R1[K4('Set')] (self)
  0015  GETUPVAL  R3 = _ENV
  0016  GETUPVAL  R4 = _ENV
  0017  LOADK     R5 = K5 0
  0018  CALL      R1 = call(R1, 0 args, 4 rets)
  0019  GETTABLE  R1 = R0[K3('m_dbTable')]
  0020  SELF      R2 = R1[K4('Set')] (self)
  0021  GETUPVAL  R3 = _ENV
  0022  GETUPVAL  R4 = _ENV
  0023  LOADK     R5 = K6 ''
  0024  CALL      R1 = call(R1, 0 args, 4 rets)
  0025  GETTABLE  R1 = R0[K3('m_dbTable')]
  0026  SELF      R2 = R1[K4('Set')] (self)
  0027  GETUPVAL  R3 = _ENV
  0028  GETUPVAL  R4 = _ENV
  0029  LOADK     R5 = K5 0
  0030  CALL      R1 = call(R1, 0 args, 4 rets)
  0031  RETURN    return R0..R-1
; ---------- proto13 [_CanPopupWindow] ----------
  ; fn ?  line 165-183 np=1 va=0 ms=5 code=37 consts=9 upvals=4 protos=0
  ;   K[0]='Table'
  ;   K[1]='IsEmpty'
  ;   K[2]='m_configs'
  ;   K[3]='m_dbTable'
  ;   K[4]='GetValue'
  ;   K[5]=1
  ;   K[6]='GM'
  ;   K[7]='TutorialModel'
  ;   K[8]='HasAnyStrongTutorialOngoing'
  ;   upvals: _ENV, DBId, DBColumnRate, DBColumnCanPopup
  ;   locals: self(0-37)
  0000  GETTABUP  R1 = _ENV[K0('Table')]
  0001  GETTABLE  R1 = R1[K1('IsEmpty')]
  0002  GETTABLE  R2 = R0[K2('m_configs')]
  0003  CALL      R1 = call(R1, 1 args, 1 rets)
  0004  TEST      if not R1 then   -> -131066
  0005  JMP       (jump)   -> 8
  0006  LOADBOOL  R1 = false
  0007  RETURN    return R1..R0
  0008  GETTABLE  R1 = R0[K3('m_dbTable')]
  0009  SELF      R2 = R1[K4('GetValue')] (self)
  0010  GETUPVAL  R3 = _ENV
  0011  GETUPVAL  R4 = _ENV
  0012  CALL      R1 = call(R1, 1 args, 3 rets)
  0013  EQ        if R0 eq K5(1)   -> -130284
  0014  JMP       (jump)   -> 17
  0015  LOADBOOL  R1 = false
  0016  RETURN    return R1..R0
  0017  GETTABLE  R1 = R0[K3('m_dbTable')]
  0018  SELF      R2 = R1[K4('GetValue')] (self)
  0019  GETUPVAL  R3 = _ENV
  0020  GETUPVAL  R4 = _ENV
  0021  CALL      R1 = call(R1, 1 args, 3 rets)
  0022  EQ        if R1 eq K5(1)   -> -130275
  0023  JMP       (jump)   -> 26
  0024  LOADBOOL  R1 = false
  0025  RETURN    return R1..R0
  0026  GETTABUP  R1 = _ENV[K6('GM')]
  0027  GETTABLE  R1 = R1[K7('TutorialModel')]
  0028  SELF      R2 = R1[K8('HasAnyStrongTutorialOngoing')] (self)
  0029  CALL      R1 = call(R1, 1 args, 1 rets)
  0030  TEST      if not R1 then   -> -131040
  0031  JMP       (jump)   -> 34
  0032  LOADBOOL  R1 = false
  0033  RETURN    return R1..R0
  0034  LOADBOOL  R1 = true
  0035  RETURN    return R1..R0
  0036  RETURN    return R0..R-1
; ---------- proto14 [_GetActiveConfig] ----------
  ; fn ?  line 189-202 np=1 va=0 ms=8 code=36 consts=11 upvals=3 protos=0
  ;   K[0]='Table'
  ;   K[1]='IsEmpty'
  ;   K[2]='m_configs'
  ;   K[3]='Log'
  ;   K[4]='Error'
  ;   K[5]='RateModel:_GetActiveConfig 引导评价配置为空'
  ;   K[6]='m_dbTable'
  ;   K[7]='GetValue'
  ;   K[8]='pairs'
  ;   K[9]='id'
  ;   K[10]=1
  ;   upvals: _ENV, DBId, DBColumnActiveConfigId
  ;   locals: self(0-36), cfgId(16-36), (for generator)(19-26), (for state)(19-26), (for control)(19-26), _(20-24), cfg(20-24)
  0000  GETTABUP  R1 = _ENV[K0('Table')]
  0001  GETTABLE  R1 = R1[K1('IsEmpty')]
  0002  GETTABLE  R2 = R0[K2('m_configs')]
  0003  CALL      R1 = call(R1, 1 args, 1 rets)
  0004  TEST      if not R1 then   -> -131066
  0005  JMP       (jump)   -> 11
  0006  GETTABUP  R1 = _ENV[K3('Log')]
  0007  GETTABLE  R1 = R1[K4('Error')]
  0008  LOADK     R2 = K5 'RateModel:_GetActiveConfig 引导评价配置为空'
  0009  CALL      R1 = call(R1, 0 args, 1 rets)
  0010  RETURN    return R0..R-1
  0011  GETTABLE  R1 = R0[K6('m_dbTable')]
  0012  SELF      R2 = R1[K7('GetValue')] (self)
  0013  GETUPVAL  R3 = _ENV
  0014  GETUPVAL  R4 = _ENV
  0015  CALL      R1 = call(R1, 1 args, 3 rets)
  0016  GETTABUP  R2 = _ENV[K8('pairs')]
  0017  GETTABLE  R3 = R0[K2('m_configs')]
  0018  CALL      R2 = call(R2, 3 args, 1 rets)
  0019  JMP       (jump)   -> 24
  0020  GETTABLE  R7 = R6[K9('id')]
  0021  EQ        if R0 eq R1   -> -127464
  0022  JMP       (jump)   -> 24
  0023  RETURN    return R6..R5
  0024  TFORCALL  tforcall R2
  0025  TFORLOOP  tforloop R4(sBx=-6)   -> 20
  0026  GETTABLE  R2 = R0[K2('m_configs')]
  0027  TEST      if not R2 then   -> -131043
  0028  JMP       (jump)   -> 33
  0029  GETTABLE  R2 = R0[K2('m_configs')]
  0030  GETTABLE  R2 = R2[K10(1)]
  0031  TEST      if not R2 then   -> -131038
  0032  JMP       (jump)   -> 34
  0033  LOADNIL   R2..R2 = nil
  0034  RETURN    return R2..R1
  0035  RETURN    return R0..R-1
; ---------- proto15 [SetConfigTriggered] ----------
  ; fn ?  line 205-214 np=1 va=0 ms=9 code=36 consts=14 upvals=4 protos=0
  ;   K[0]='m_dbTable'
  ;   K[1]='GetValue'
  ;   K[2]='_GetTriggeredConfig'
  ;   K[3]='Table'
  ;   K[4]='ListContain'
  ;   K[5]='table'
  ;   K[6]='insert'
  ;   K[7]='StringUtil'
  ;   K[8]='Replace'
  ;   K[9]='json'
  ;   K[10]='encode'
  ;   K[11]=','
  ;   K[12]='@'
  ;   K[13]='Set'
  ;   upvals: DBId, DBColumnActiveConfigId, _ENV, DBColumnTriggeredConfig
  ;   locals: self(0-36), cfgId(5-36), triggeredConfig(7-36), strConfig(29-36)
  0000  GETTABLE  R1 = R0[K0('m_dbTable')]
  0001  SELF      R2 = R1[K1('GetValue')] (self)
  0002  GETUPVAL  R3 = DBId
  0003  GETUPVAL  R4 = DBId
  0004  CALL      R1 = call(R1, 1 args, 3 rets)
  0005  SELF      R3 = R0[K2('_GetTriggeredConfig')] (self)
  0006  CALL      R2 = call(R2, 1 args, 1 rets)
  0007  GETTABUP  R3 = _ENV[K3('Table')]
  0008  GETTABLE  R3 = R3[K4('ListContain')]
  0009  MOVE      R4 = R0
  0010  MOVE      R5 = R0
  0011  CALL      R3 = call(R3, 1 args, 2 rets)
  0012  TEST      if not R3 then   -> -131058
  0013  JMP       (jump)   -> 15
  0014  RETURN    return R0..R-1
  0015  GETTABUP  R3 = _ENV[K5('table')]
  0016  GETTABLE  R3 = R3[K6('insert')]
  0017  MOVE      R4 = R0
  0018  MOVE      R5 = R0
  0019  CALL      R3 = call(R3, 0 args, 2 rets)
  0020  GETTABUP  R3 = _ENV[K7('StringUtil')]
  0021  GETTABLE  R3 = R3[K8('Replace')]
  0022  GETTABUP  R4 = _ENV[K9('json')]
  0023  GETTABLE  R4 = R4[K10('encode')]
  0024  MOVE      R5 = R0
  0025  CALL      R4 = call(R4, 1 args, 1 rets)
  0026  LOADK     R5 = K11 ','
  0027  LOADK     R6 = K12 '@'
  0028  CALL      R3 = call(R3, 1 args, 3 rets)
  0029  GETTABLE  R4 = R0[K0('m_dbTable')]
  0030  SELF      R5 = R4[K13('Set')] (self)
  0031  GETUPVAL  R6 = DBId
  0032  GETUPVAL  R7 = DBId
  0033  MOVE      R8 = R0
  0034  CALL      R4 = call(R4, 0 args, 4 rets)
  0035  RETURN    return R0..R-1
; ---------- proto16 [_GetTriggeredConfig] ----------
  ; fn ?  line 217-220 np=1 va=0 ms=7 code=19 consts=8 upvals=3 protos=0
  ;   K[0]='m_dbTable'
  ;   K[1]='GetValue'
  ;   K[2]='json'
  ;   K[3]='decode'
  ;   K[4]='StringUtil'
  ;   K[5]='Replace'
  ;   K[6]='@'
  ;   K[7]=','
  ;   upvals: DBId, DBColumnTriggeredConfig, _ENV
  ;   locals: self(0-19), strConfig(5-19)
  0000  GETTABLE  R1 = R0[K0('m_dbTable')]
  0001  SELF      R2 = R1[K1('GetValue')] (self)
  0002  GETUPVAL  R3 = DBId
  0003  GETUPVAL  R4 = DBId
  0004  CALL      R1 = call(R1, 1 args, 3 rets)
  0005  GETTABUP  R2 = _ENV[K2('json')]
  0006  GETTABLE  R2 = R2[K3('decode')]
  0007  GETTABUP  R3 = _ENV[K4('StringUtil')]
  0008  GETTABLE  R3 = R3[K5('Replace')]
  0009  MOVE      R4 = R0
  0010  LOADK     R5 = K6 '@'
  0011  LOADK     R6 = K7 ','
  0012  CALL      R3 = call(R3, -1 args, 3 rets)
  0013  CALL      R2 = call(R2, 1 args, -1 rets)
  0014  TEST      if not R2 then   -> -131055
  0015  JMP       (jump)   -> 17
  0016  NEWTABLE  R2 = {} (0 items)
  0017  RETURN    return R2..R1
  0018  RETURN    return R0..R-1
; ---------- proto17 [WhetherJumpToCustomerCenterWhenGiveBadReview] ----------
  ; fn ?  line 223-226 np=1 va=0 ms=3 code=11 consts=3 upvals=0 protos=0
  ;   K[0]='_GetActiveConfig'
  ;   K[1]='contact'
  ;   K[2]=1
  ;   locals: self(0-11), config(2-11)
  0000  SELF      R2 = R0[K0('_GetActiveConfig')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  TESTSET   if R0 then R2   -> -130556
  0003  JMP       (jump)   -> 9
  0004  GETTABLE  R2 = R1[K1('contact')]
  0005  EQ        if R1 eq K2(1)   -> -129783
  0006  JMP       (jump)   -> 8
  0007  LOADBOOL  R2 = false
  0008  LOADBOOL  R2 = true
  0009  RETURN    return R2..R1
  0010  RETURN    return R0..R-1
