# UI_Window_Survey_SurveySingleChoiceFillBlankImgQuestion_691.luac
; fn @SurveySingleChoiceFillBlankImgQuestion.lua  line 0-0 np=0 va=1 ms=3 code=21 consts=8 upvals=1 protos=4
;   K[0]='SurveySingleChoiceFillBlankImgQuestion'
;   K[1]='setmetatable'
;   K[2]='BaseSurveyQuestion'
;   K[3]='__index'
;   K[4]='Init'
;   K[5]='UpdateView'
;   K[6]='CanNextStep'
;   K[7]='GetUserAnswer'
;   upvals: _ENV
0000  GETTABUP  R0 = _ENV[K1('setmetatable')]
0001  NEWTABLE  R1 = {} (0 items)
0002  GETTABUP  R2 = _ENV[K2('BaseSurveyQuestion')]
0003  CALL      R0 = call(R0, 1 args, 2 rets)
0004  SETTABUP  _ENV[K0('SurveySingleChoiceFillBlankImgQuestion')] = R0
0005  GETTABUP  R0 = _ENV[K0('SurveySingleChoiceFillBlankImgQuestion')]
0006  GETTABUP  R1 = _ENV[K0('SurveySingleChoiceFillBlankImgQuestion')]
0007  SETTABLE  R0[K3('__index')] = R1
0008  GETTABUP  R0 = _ENV[K0('SurveySingleChoiceFillBlankImgQuestion')]
0009  CLOSURE   R1 = closure proto0
0010  SETTABLE  R0[K4('Init')] = R1
0011  GETTABUP  R0 = _ENV[K0('SurveySingleChoiceFillBlankImgQuestion')]
0012  CLOSURE   R1 = closure proto1
0013  SETTABLE  R0[K5('UpdateView')] = R1
0014  GETTABUP  R0 = _ENV[K0('SurveySingleChoiceFillBlankImgQuestion')]
0015  CLOSURE   R1 = closure proto2
0016  SETTABLE  R0[K6('CanNextStep')] = R1
0017  GETTABUP  R0 = _ENV[K0('SurveySingleChoiceFillBlankImgQuestion')]
0018  CLOSURE   R1 = closure proto3
0019  SETTABLE  R0[K7('GetUserAnswer')] = R1
0020  RETURN    return R0..R-1
; ---------- proto0 [Init] ----------
  ; fn ?  line 9-45 np=2 va=0 ms=15 code=92 consts=25 upvals=1 protos=0
  ;   K[0]='m_questionData'
  ;   K[1]='m_arrChoice'
  ;   K[2]='m_title'
  ;   K[3]='text'
  ;   K[4]='title'
  ;   K[5]='_InitPicture'
  ;   K[6]='fixedSeq'
  ;   K[7]='options'
  ;   K[8]='Table'
  ;   K[9]='IsEmpty'
  ;   K[10]='is_open'
  ;   K[11]='table'
  ;   K[12]='remove'
  ;   K[13]='ListAlwaysRandomSelectN'
  ;   K[14]=1
  ;   K[15]='m_choiceGo'
  ;   K[16]='GameObject'
  ;   K[17]='Instantiate'
  ;   K[18]='m_choiceContainer'
  ;   K[19]='GetLuaTable'
  ;   K[20]='m_inputFieldGo'
  ;   K[21]='Init'
  ;   K[22]='SetParent'
  ;   K[23]='LayoutRebuilder'
  ;   K[24]='ForceRebuildLayoutImmediate'
  ;   upvals: _ENV
  ;   locals: self(0-92), questionData(0-92), bFixedSeq(11-92), options(13-92), lastOptios(22-45), choiceGo(46-92), choiceCmp(46-92), inputFieldGo(46-92), (for index)(49-87), (for limit)(49-87), (for step)(49-87), i(50-86)
  0000  SETTABLE  R0[K0('m_questionData')] = R1
  0001  NEWTABLE  R2 = {} (0 items)
  0002  SETTABLE  R0[K1('m_arrChoice')] = R2
  0003  GETTABLE  R2 = R0[K2('m_title')]
  0004  GETTABLE  R3 = R0[K0('m_questionData')]
  0005  GETTABLE  R3 = R3[K4('title')]
  0006  SETTABLE  R2[K3('text')] = R3
  0007  SELF      R3 = R0[K5('_InitPicture')] (self)
  0008  CALL      R2 = call(R2, 0 args, 1 rets)
  0009  GETTABLE  R2 = R0[K0('m_questionData')]
  0010  GETTABLE  R2 = R2[K6('fixedSeq')]
  0011  GETTABLE  R3 = R0[K0('m_questionData')]
  0012  GETTABLE  R3 = R3[K7('options')]
  0013  TEST      if not R2 then   -> -131056
  0014  JMP       (jump)   -> 45
  0015  GETTABUP  R4 = _ENV[K8('Table')]
  0016  GETTABLE  R4 = R4[K9('IsEmpty')]
  0017  MOVE      R5 = R0
  0018  CALL      R4 = call(R4, 1 args, 1 rets)
  0019  TEST      if not R4 then   -> -131050
  0020  JMP       (jump)   -> 45
  0021  LOADNIL   R4..R4 = nil
  0022  LEN       R5 = len R0
  0023  GETTABLE  R5 = R3[R5]
  0024  GETTABLE  R5 = R5[K10('is_open')]
  0025  TEST      if not R5 then   -> -131045
  0026  JMP       (jump)   -> 34
  0027  LEN       R5 = len R0
  0028  GETTABLE  R4 = R3[R5]
  0029  GETTABUP  R5 = _ENV[K11('table')]
  0030  GETTABLE  R5 = R5[K12('remove')]
  0031  MOVE      R6 = R0
  0032  LEN       R7 = len R0
  0033  CALL      R5 = call(R5, 0 args, 2 rets)
  0034  GETTABUP  R5 = _ENV[K8('Table')]
  0035  GETTABLE  R5 = R5[K13('ListAlwaysRandomSelectN')]
  0036  MOVE      R6 = R0
  0037  LEN       R7 = len R0
  0038  CALL      R5 = call(R5, 1 args, 2 rets)
  0039  MOVE      R3 = R0
  0040  TEST      if not R4 then   -> -131030
  0041  JMP       (jump)   -> 45
  0042  LEN       R5 = len R0
  0043  ADD       R5 = K14(1) add R5
  0044  SETTABLE  R3[R5] = R4
  0045  LOADNIL   R4..R4 = nil
  0046  LOADK     R7 = K14 1
  0047  LEN       R8 = len R0
  0048  LOADK     R9 = K14 1
  0049  FORPREP   forprep R7(sBx=36)   -> 86
  0050  EQ        if R0 eq K14(1)   -> -125630
  0051  JMP       (jump)   -> 55
  0052  GETTABLE  R11 = R0[K15('m_choiceGo')]
  0053  TESTSET   if R1 then R4   -> -125384
  0054  JMP       (jump)   -> 61
  0055  GETTABUP  R11 = _ENV[K16('GameObject')]
  0056  GETTABLE  R11 = R11[K17('Instantiate')]
  0057  GETTABLE  R12 = R0[K15('m_choiceGo')]
  0058  GETTABLE  R13 = R0[K18('m_choiceContainer')]
  0059  CALL      R11 = call(R11, 1 args, 2 rets)
  0060  MOVE      R4 = R0
  0061  SELF      R12 = R4[K19('GetLuaTable')] (self)
  0062  CALL      R11 = call(R11, 1 args, 1 rets)
  0063  MOVE      R5 = R0
  0064  LEN       R11 = len R0
  0065  EQ        if R0 eq R11   -> -125874
  0066  JMP       (jump)   -> 73
  0067  GETTABLE  R11 = R3[R10]
  0068  GETTABLE  R11 = R11[K10('is_open')]
  0069  TEST      if not R11 then   -> -131001
  0070  JMP       (jump)   -> 73
  0071  GETTABLE  R6 = R0[K20('m_inputFieldGo')]
  0072  JMP       (jump)   -> 74
  0073  LOADNIL   R6..R6 = nil
  0074  SELF      R12 = R5[K21('Init')] (self)
  0075  GETTABLE  R13 = R3[R10]
  0076  MOVE      R14 = R0
  0077  CALL      R11 = call(R11, 0 args, 3 rets)
  0078  SELF      R12 = R5[K22('SetParent')] (self)
  0079  MOVE      R13 = R0
  0080  CALL      R11 = call(R11, 0 args, 2 rets)
  0081  GETTABLE  R11 = R0[K1('m_arrChoice')]
  0082  GETTABLE  R12 = R0[K1('m_arrChoice')]
  0083  LEN       R12 = len R0
  0084  ADD       R12 = K14(1) add R12
  0085  SETTABLE  R11[R12] = R5
  0086  FORLOOP   forloop R7(sBx=-37)   -> 50
  0087  GETTABUP  R7 = _ENV[K23('LayoutRebuilder')]
  0088  GETTABLE  R7 = R7[K24('ForceRebuildLayoutImmediate')]
  0089  GETTABLE  R8 = R0[K18('m_choiceContainer')]
  0090  CALL      R7 = call(R7, 0 args, 1 rets)
  0091  RETURN    return R0..R-1
; ---------- proto1 [UpdateView] ----------
  ; fn ?  line 47-49 np=1 va=0 ms=3 code=5 consts=3 upvals=1 protos=0
  ;   K[0]='LayoutRebuilder'
  ;   K[1]='ForceRebuildLayoutImmediate'
  ;   K[2]='m_choiceContainer'
  ;   upvals: _ENV
  ;   locals: self(0-5)
  0000  GETTABUP  R1 = _ENV[K0('LayoutRebuilder')]
  0001  GETTABLE  R1 = R1[K1('ForceRebuildLayoutImmediate')]
  0002  GETTABLE  R2 = R0[K2('m_choiceContainer')]
  0003  CALL      R1 = call(R1, 0 args, 1 rets)
  0004  RETURN    return R0..R-1
; ---------- proto2 [CanNextStep] ----------
  ; fn ?  line 51-68 np=1 va=0 ms=8 code=32 consts=11 upvals=1 protos=0
  ;   K[0]='m_questionData'
  ;   K[1]='rule'
  ;   K[2]='free'
  ;   K[3]=0
  ;   K[4]=1
  ;   K[5]='m_arrChoice'
  ;   K[6]='IsSelected'
  ;   K[7]='GM'
  ;   K[8]='UIManager'
  ;   K[9]='ShowPromptWithKey'
  ;   K[10]='question_error_tips'
  ;   upvals: _ENV
  ;   locals: self(0-32), seletedCount(7-32), (for index)(11-20), (for limit)(11-20), (for step)(11-20), i(12-19)
  0000  GETTABLE  R1 = R0[K0('m_questionData')]
  0001  GETTABLE  R1 = R1[K1('rule')]
  0002  EQ        if R0 eq K2('free')   -> -130298
  0003  JMP       (jump)   -> 6
  0004  LOADBOOL  R1 = true
  0005  RETURN    return R1..R0
  0006  LOADK     R1 = K3 0
  0007  LOADK     R2 = K4 1
  0008  GETTABLE  R3 = R0[K5('m_arrChoice')]
  0009  LEN       R3 = len R0
  0010  LOADK     R4 = K4 1
  0011  FORPREP   forprep R2(sBx=7)   -> 19
  0012  GETTABLE  R6 = R0[K5('m_arrChoice')]
  0013  GETTABLE  R6 = R6[R5]
  0014  SELF      R7 = R6[K6('IsSelected')] (self)
  0015  CALL      R6 = call(R6, 1 args, 1 rets)
  0016  TEST      if not R6 then   -> -131054
  0017  JMP       (jump)   -> 19
  0018  ADD       R1 = K4(1) add R1
  0019  FORLOOP   forloop R2(sBx=-8)   -> 12
  0020  EQ        if R0 eq K3(0)   -> -130279
  0021  JMP       (jump)   -> 29
  0022  GETTABUP  R2 = _ENV[K7('GM')]
  0023  GETTABLE  R2 = R2[K8('UIManager')]
  0024  SELF      R3 = R2[K9('ShowPromptWithKey')] (self)
  0025  LOADK     R4 = K10 'question_error_tips'
  0026  CALL      R2 = call(R2, 0 args, 2 rets)
  0027  LOADBOOL  R2 = false
  0028  RETURN    return R2..R1
  0029  LOADBOOL  R2 = true
  0030  RETURN    return R2..R1
  0031  RETURN    return R0..R-1
; ---------- proto3 [GetUserAnswer] ----------
  ; fn ?  line 70-100 np=1 va=0 ms=14 code=70 consts=14 upvals=1 protos=0
  ;   K[0]=1
  ;   K[1]='m_arrChoice'
  ;   K[2]='IsSelected'
  ;   K[3]='choiceData'
  ;   K[4]='EAnswerKey'
  ;   K[5]='AnserId'
  ;   K[6]=nil
  ;   K[7]='cid'
  ;   K[8]='visible_ids'
  ;   K[9]='GetInput'
  ;   K[10]='StringUtil'
  ;   K[11]='IsNilOrEmpty'
  ;   K[12]='Vmemo'
  ;   K[13]=';'
  ;   upvals: _ENV
  ;   locals: self(0-70), answers(1-70), nextQIds(2-70), choiceCmp(3-70), choiceData(3-70), vmemo(3-70), (for index)(7-66), (for limit)(7-66), (for step)(7-66), i(8-65)
  0000  NEWTABLE  R1 = {} (0 items)
  0001  NEWTABLE  R2 = {} (0 items)
  0002  LOADNIL   R3..R3 = nil
  0003  LOADK     R6 = K0 1
  0004  GETTABLE  R7 = R0[K1('m_arrChoice')]
  0005  LEN       R7 = len R0
  0006  LOADK     R8 = K0 1
  0007  FORPREP   forprep R6(sBx=57)   -> 65
  0008  GETTABLE  R10 = R0[K1('m_arrChoice')]
  0009  GETTABLE  R3 = R10[R9]
  0010  SELF      R11 = R3[K2('IsSelected')] (self)
  0011  CALL      R10 = call(R10, 1 args, 1 rets)
  0012  TEST      if not R10 then   -> -131058
  0013  JMP       (jump)   -> 65
  0014  GETTABLE  R4 = R3[K3('choiceData')]
  0015  GETTABUP  R10 = _ENV[K4('EAnswerKey')]
  0016  GETTABLE  R10 = R10[K5('AnserId')]
  0017  GETTABLE  R10 = R1[R10]
  0018  EQ        if R0 eq K6(nil)   -> -125670
  0019  JMP       (jump)   -> 24
  0020  GETTABUP  R10 = _ENV[K4('EAnswerKey')]
  0021  GETTABLE  R10 = R10[K5('AnserId')]
  0022  NEWTABLE  R11 = {} (0 items)
  0023  SETTABLE  R1[R10] = R11
  0024  GETTABUP  R10 = _ENV[K4('EAnswerKey')]
  0025  GETTABLE  R10 = R10[K5('AnserId')]
  0026  GETTABLE  R10 = R1[R10]
  0027  GETTABUP  R11 = _ENV[K4('EAnswerKey')]
  0028  GETTABLE  R11 = R11[K5('AnserId')]
  0029  GETTABLE  R11 = R1[R11]
  0030  LEN       R11 = len R0
  0031  ADD       R11 = K0(1) add R11
  0032  GETTABLE  R12 = R4[K7('cid')]
  0033  SETTABLE  R10[R11] = R12
  0034  GETTABLE  R10 = R4[K8('visible_ids')]
  0035  EQ        if R1 eq K6(nil)   -> -125653
  0036  JMP       (jump)   -> 38
  0037  GETTABLE  R2 = R4[K8('visible_ids')]
  0038  SELF      R11 = R3[K9('GetInput')] (self)
  0039  CALL      R10 = call(R10, 1 args, 1 rets)
  0040  MOVE      R5 = R0
  0041  GETTABUP  R10 = _ENV[K10('StringUtil')]
  0042  GETTABLE  R10 = R10[K11('IsNilOrEmpty')]
  0043  MOVE      R11 = R0
  0044  CALL      R10 = call(R10, 1 args, 1 rets)
  0045  TEST      if not R10 then   -> -131024
  0046  JMP       (jump)   -> 65
  0047  GETTABUP  R10 = _ENV[K4('EAnswerKey')]
  0048  GETTABLE  R10 = R10[K12('Vmemo')]
  0049  GETTABLE  R10 = R1[R10]
  0050  EQ        if R0 eq K6(nil)   -> -125638
  0051  JMP       (jump)   -> 56
  0052  GETTABUP  R10 = _ENV[K4('EAnswerKey')]
  0053  GETTABLE  R10 = R10[K12('Vmemo')]
  0054  SETTABLE  R1[R10] = R5
  0055  JMP       (jump)   -> 65
  0056  GETTABUP  R10 = _ENV[K4('EAnswerKey')]
  0057  GETTABLE  R10 = R10[K12('Vmemo')]
  0058  GETTABUP  R11 = _ENV[K4('EAnswerKey')]
  0059  GETTABLE  R11 = R11[K12('Vmemo')]
  0060  GETTABLE  R11 = R1[R11]
  0061  LOADK     R12 = K13 ';'
  0062  MOVE      R13 = R0
  0063  CONCAT    R11 = concat(R11..R11)
  0064  SETTABLE  R1[R10] = R11
  0065  FORLOOP   forloop R6(sBx=-58)   -> 8
  0066  MOVE      R6 = R0
  0067  MOVE      R7 = R0
  0068  RETURN    return R6..R5
  0069  RETURN    return R0..R-1
