From 80e0d7a8ea82cc15c15888b5faeec0ed67df6749 Mon Sep 17 00:00:00 2001 From: zkronos73 Date: Fri, 21 Apr 2023 15:51:25 +0200 Subject: [PATCH 01/25] add ARITH_FP_CMUL operation --- build/zkasm_parser.js | 237 +++++++++++++++++++++-------------------- src/zkasm_parser.jison | 11 +- 2 files changed, 130 insertions(+), 118 deletions(-) diff --git a/build/zkasm_parser.js b/build/zkasm_parser.js index 83b831c..654bbc1 100644 --- a/build/zkasm_parser.js +++ b/build/zkasm_parser.js @@ -72,12 +72,12 @@ } */ var zkasm_parser = (function(){ -var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,10],$V1=[1,12],$V2=[1,13],$V3=[1,14],$V4=[1,26],$V5=[1,15],$V6=[1,28],$V7=[1,16],$V8=[1,18],$V9=[1,36],$Va=[1,17],$Vb=[1,27],$Vc=[1,20],$Vd=[1,23],$Ve=[1,29],$Vf=[1,40],$Vg=[1,34],$Vh=[1,45],$Vi=[1,46],$Vj=[1,47],$Vk=[1,48],$Vl=[1,49],$Vm=[1,50],$Vn=[1,51],$Vo=[1,30],$Vp=[1,31],$Vq=[1,32],$Vr=[1,33],$Vs=[1,35],$Vt=[1,37],$Vu=[1,38],$Vv=[1,39],$Vw=[1,41],$Vx=[1,42],$Vy=[1,43],$Vz=[1,44],$VA=[5,13,15,17,18,21,23,24,27,28,30,31,33,36,63,66,84,85,106,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129],$VB=[1,58],$VC=[1,59],$VD=[1,60],$VE=[1,61],$VF=[1,62],$VG=[1,63],$VH=[1,64],$VI=[1,65],$VJ=[1,66],$VK=[1,67],$VL=[1,68],$VM=[1,71],$VN=[1,72],$VO=[1,73],$VP=[1,74],$VQ=[1,75],$VR=[1,76],$VS=[1,77],$VT=[1,78],$VU=[1,79],$VV=[1,80],$VW=[1,81],$VX=[1,82],$VY=[1,83],$VZ=[1,84],$V_=[1,85],$V$=[1,86],$V01=[1,87],$V11=[1,88],$V21=[1,89],$V31=[1,90],$V41=[1,91],$V51=[1,92],$V61=[1,93],$V71=[1,94],$V81=[1,95],$V91=[13,15],$Va1=[13,15,35,36,59],$Vb1=[1,107],$Vc1=[13,15,35,36,37,59],$Vd1=[13,15,35,36,37,59,67],$Ve1=[1,112],$Vf1=[13,67],$Vg1=[1,145],$Vh1=[1,141],$Vi1=[1,142],$Vj1=[1,143],$Vk1=[1,144],$Vl1=[1,148],$Vm1=[1,149],$Vn1=[1,171],$Vo1=[1,173],$Vp1=[1,172],$Vq1=[1,174],$Vr1=[1,175],$Vs1=[1,176],$Vt1=[13,15,67],$Vu1=[5,13,15,17,18,21,23,24,27,28,30,31,33,63,66,84,85,106,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129],$Vv1=[1,214],$Vw1=[1,215],$Vx1=[1,216],$Vy1=[1,217],$Vz1=[1,218],$VA1=[1,219],$VB1=[1,220],$VC1=[1,221],$VD1=[1,222],$VE1=[1,223],$VF1=[1,224],$VG1=[1,225],$VH1=[1,226],$VI1=[1,227],$VJ1=[1,228],$VK1=[1,229],$VL1=[1,230],$VM1=[1,231],$VN1=[1,232],$VO1=[1,233],$VP1=[5,13,15,17,18,21,23,24,27,28,30,31,33,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,106,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129],$VQ1=[5,13,15,17,18,21,23,24,27,28,30,31,33,35,36,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,106,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129],$VR1=[5,13,15,17,18,21,23,24,27,28,30,31,33,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,106,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129],$VS1=[5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,106,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129],$VT1=[5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,50,51,52,53,55,57,63,66,84,85,106,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129]; +var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,10],$V1=[1,12],$V2=[1,13],$V3=[1,14],$V4=[1,26],$V5=[1,15],$V6=[1,28],$V7=[1,16],$V8=[1,18],$V9=[1,36],$Va=[1,17],$Vb=[1,27],$Vc=[1,20],$Vd=[1,23],$Ve=[1,29],$Vf=[1,40],$Vg=[1,34],$Vh=[1,45],$Vi=[1,46],$Vj=[1,47],$Vk=[1,48],$Vl=[1,49],$Vm=[1,50],$Vn=[1,51],$Vo=[1,30],$Vp=[1,31],$Vq=[1,32],$Vr=[1,33],$Vs=[1,35],$Vt=[1,37],$Vu=[1,38],$Vv=[1,39],$Vw=[1,41],$Vx=[1,42],$Vy=[1,43],$Vz=[1,44],$VA=[5,13,15,17,18,21,23,24,27,28,30,31,33,36,63,66,84,85,107,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130],$VB=[1,58],$VC=[1,59],$VD=[1,60],$VE=[1,61],$VF=[1,62],$VG=[1,63],$VH=[1,64],$VI=[1,65],$VJ=[1,66],$VK=[1,67],$VL=[1,68],$VM=[1,71],$VN=[1,72],$VO=[1,73],$VP=[1,74],$VQ=[1,75],$VR=[1,76],$VS=[1,77],$VT=[1,78],$VU=[1,79],$VV=[1,80],$VW=[1,81],$VX=[1,82],$VY=[1,83],$VZ=[1,84],$V_=[1,85],$V$=[1,86],$V01=[1,87],$V11=[1,88],$V21=[1,89],$V31=[1,90],$V41=[1,91],$V51=[1,92],$V61=[1,93],$V71=[1,94],$V81=[1,95],$V91=[1,96],$Va1=[13,15],$Vb1=[13,15,35,36,59],$Vc1=[1,108],$Vd1=[13,15,35,36,37,59],$Ve1=[13,15,35,36,37,59,67],$Vf1=[1,113],$Vg1=[13,67],$Vh1=[1,146],$Vi1=[1,142],$Vj1=[1,143],$Vk1=[1,144],$Vl1=[1,145],$Vm1=[1,149],$Vn1=[1,150],$Vo1=[1,172],$Vp1=[1,174],$Vq1=[1,173],$Vr1=[1,175],$Vs1=[1,176],$Vt1=[1,177],$Vu1=[13,15,67],$Vv1=[5,13,15,17,18,21,23,24,27,28,30,31,33,63,66,84,85,107,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130],$Vw1=[1,215],$Vx1=[1,216],$Vy1=[1,217],$Vz1=[1,218],$VA1=[1,219],$VB1=[1,220],$VC1=[1,221],$VD1=[1,222],$VE1=[1,223],$VF1=[1,224],$VG1=[1,225],$VH1=[1,226],$VI1=[1,227],$VJ1=[1,228],$VK1=[1,229],$VL1=[1,230],$VM1=[1,231],$VN1=[1,232],$VO1=[1,233],$VP1=[1,234],$VQ1=[5,13,15,17,18,21,23,24,27,28,30,31,33,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,107,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130],$VR1=[5,13,15,17,18,21,23,24,27,28,30,31,33,35,36,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,107,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130],$VS1=[5,13,15,17,18,21,23,24,27,28,30,31,33,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,107,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130],$VT1=[5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,107,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130],$VU1=[5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,50,51,52,53,55,57,63,66,84,85,107,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130]; var parser = {trace: function trace () { }, yy: {}, -symbols_: {"error":2,"allStatments":3,"statmentList":4,"EOF":5,"statment":6,"step":7,"label":8,"varDef":9,"constDef":10,"include":11,"command":12,"LF":13,"assignment":14,":":15,"opList":16,"IDENTIFIER":17,"VAR":18,"scope":19,"[":20,"NUMBER":21,"]":22,"CONST":23,"CONSTID":24,"=":25,"nexpr":26,"CONSTL":27,"COMMAND":28,"GLOBAL":29,"CTX":30,"INCLUDE":31,"STRING":32,"NUMBERL":33,"??":34,"+":35,"-":36,"*":37,"**":38,"%":39,"/":40,"<<":41,">>":42,"|":43,"&":44,"^":45,"<":46,">":47,"<=":48,">=":49,"==":50,"!=":51,"&&":52,"||":53,"!":54,"?":55,"(":56,")":57,"inRegsSum":58,"=>":59,"regsList":60,"inRegP":61,"inReg":62,"TAG":63,"reg":64,"counter":65,"REFERENCE":66,",":67,"op":68,"MLOAD":69,"addr":70,"MSTORE":71,"HASHK":72,"hashId":73,"HASHK1":74,"HASHKLEN":75,"HASHKDIGEST":76,"HASHP":77,"HASHP1":78,"HASHPLEN":79,"HASHPDIGEST":80,"JMP":81,"jmpCond":82,"jmpNotCond":83,"RR":84,"E":85,"CALL":86,"RETURN":87,"ASSERT":88,"SLOAD":89,"SSTORE":90,"ARITH":91,"ARITH_ECADD_DIFFERENT":92,"ARITH_ECADD_SAME":93,"ADD":94,"SUB":95,"LT":96,"SLT":97,"EQ":98,"AND":99,"OR":100,"XOR":101,"MEM_ALIGN_RD":102,"MEM_ALIGN_WR":103,"MEM_ALIGN_WR8":104,"REPEAT":105,"RCX":106,"JMPN":107,"JMPC":108,"JMPZ":109,"JMPNC":110,"JMPNZ":111,"CNT_ARITH":112,"CNT_BINARY":113,"CNT_KECCAK_F":114,"CNT_MEM_ALIGN":115,"CNT_PADDING_PG":116,"CNT_POSEIDON_G":117,"A":118,"B":119,"C":120,"D":121,"SR":122,"SP":123,"PC":124,"GAS":125,"zkPC":126,"STEP":127,"HASHPOS":128,"ROTL_C":129,"++":130,"--":131,"SYS":132,"MEM":133,"STACK":134,"$accept":0,"$end":1}, -terminals_: {2:"error",5:"EOF",13:"LF",15:":",17:"IDENTIFIER",18:"VAR",20:"[",21:"NUMBER",22:"]",23:"CONST",24:"CONSTID",25:"=",27:"CONSTL",28:"COMMAND",29:"GLOBAL",30:"CTX",31:"INCLUDE",32:"STRING",33:"NUMBERL",34:"??",35:"+",36:"-",37:"*",38:"**",39:"%",40:"/",41:"<<",42:">>",43:"|",44:"&",45:"^",46:"<",47:">",48:"<=",49:">=",50:"==",51:"!=",52:"&&",53:"||",54:"!",55:"?",56:"(",57:")",59:"=>",63:"TAG",66:"REFERENCE",67:",",69:"MLOAD",71:"MSTORE",72:"HASHK",74:"HASHK1",75:"HASHKLEN",76:"HASHKDIGEST",77:"HASHP",78:"HASHP1",79:"HASHPLEN",80:"HASHPDIGEST",81:"JMP",84:"RR",85:"E",86:"CALL",87:"RETURN",88:"ASSERT",89:"SLOAD",90:"SSTORE",91:"ARITH",92:"ARITH_ECADD_DIFFERENT",93:"ARITH_ECADD_SAME",94:"ADD",95:"SUB",96:"LT",97:"SLT",98:"EQ",99:"AND",100:"OR",101:"XOR",102:"MEM_ALIGN_RD",103:"MEM_ALIGN_WR",104:"MEM_ALIGN_WR8",105:"REPEAT",106:"RCX",107:"JMPN",108:"JMPC",109:"JMPZ",110:"JMPNC",111:"JMPNZ",112:"CNT_ARITH",113:"CNT_BINARY",114:"CNT_KECCAK_F",115:"CNT_MEM_ALIGN",116:"CNT_PADDING_PG",117:"CNT_POSEIDON_G",118:"A",119:"B",120:"C",121:"D",122:"SR",123:"SP",124:"PC",125:"GAS",126:"zkPC",127:"STEP",128:"HASHPOS",129:"ROTL_C",130:"++",131:"--",132:"SYS",133:"MEM",134:"STACK"}, -productions_: [0,[3,2],[4,2],[4,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[7,4],[7,2],[7,3],[8,2],[9,3],[9,6],[10,4],[10,4],[12,1],[19,1],[19,1],[11,2],[26,1],[26,1],[26,1],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,2],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,2],[26,5],[26,3],[14,3],[14,1],[58,3],[58,3],[58,2],[58,1],[61,3],[61,1],[62,1],[62,1],[62,1],[62,3],[62,3],[62,1],[62,1],[62,1],[62,1],[60,3],[60,1],[16,3],[16,1],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,6],[68,4],[68,6],[68,4],[68,4],[68,6],[68,6],[68,4],[68,4],[68,6],[68,6],[68,6],[68,6],[68,8],[68,8],[68,4],[68,6],[68,6],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,4],[82,1],[82,1],[82,1],[83,1],[83,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[70,1],[70,3],[70,3],[70,2],[70,2],[70,5],[70,5],[70,3],[70,5],[70,5],[70,3],[70,5],[70,5],[70,3],[70,1],[70,3],[70,3],[73,1],[73,1]], +symbols_: {"error":2,"allStatments":3,"statmentList":4,"EOF":5,"statment":6,"step":7,"label":8,"varDef":9,"constDef":10,"include":11,"command":12,"LF":13,"assignment":14,":":15,"opList":16,"IDENTIFIER":17,"VAR":18,"scope":19,"[":20,"NUMBER":21,"]":22,"CONST":23,"CONSTID":24,"=":25,"nexpr":26,"CONSTL":27,"COMMAND":28,"GLOBAL":29,"CTX":30,"INCLUDE":31,"STRING":32,"NUMBERL":33,"??":34,"+":35,"-":36,"*":37,"**":38,"%":39,"/":40,"<<":41,">>":42,"|":43,"&":44,"^":45,"<":46,">":47,"<=":48,">=":49,"==":50,"!=":51,"&&":52,"||":53,"!":54,"?":55,"(":56,")":57,"inRegsSum":58,"=>":59,"regsList":60,"inRegP":61,"inReg":62,"TAG":63,"reg":64,"counter":65,"REFERENCE":66,",":67,"op":68,"MLOAD":69,"addr":70,"MSTORE":71,"HASHK":72,"hashId":73,"HASHK1":74,"HASHKLEN":75,"HASHKDIGEST":76,"HASHP":77,"HASHP1":78,"HASHPLEN":79,"HASHPDIGEST":80,"JMP":81,"jmpCond":82,"jmpNotCond":83,"RR":84,"E":85,"CALL":86,"RETURN":87,"ASSERT":88,"SLOAD":89,"SSTORE":90,"ARITH":91,"ARITH_ECADD_DIFFERENT":92,"ARITH_ECADD_SAME":93,"ARITH_FP_CMUL":94,"ADD":95,"SUB":96,"LT":97,"SLT":98,"EQ":99,"AND":100,"OR":101,"XOR":102,"MEM_ALIGN_RD":103,"MEM_ALIGN_WR":104,"MEM_ALIGN_WR8":105,"REPEAT":106,"RCX":107,"JMPN":108,"JMPC":109,"JMPZ":110,"JMPNC":111,"JMPNZ":112,"CNT_ARITH":113,"CNT_BINARY":114,"CNT_KECCAK_F":115,"CNT_MEM_ALIGN":116,"CNT_PADDING_PG":117,"CNT_POSEIDON_G":118,"A":119,"B":120,"C":121,"D":122,"SR":123,"SP":124,"PC":125,"GAS":126,"zkPC":127,"STEP":128,"HASHPOS":129,"ROTL_C":130,"++":131,"--":132,"SYS":133,"MEM":134,"STACK":135,"$accept":0,"$end":1}, +terminals_: {2:"error",5:"EOF",13:"LF",15:":",17:"IDENTIFIER",18:"VAR",20:"[",21:"NUMBER",22:"]",23:"CONST",24:"CONSTID",25:"=",27:"CONSTL",28:"COMMAND",29:"GLOBAL",30:"CTX",31:"INCLUDE",32:"STRING",33:"NUMBERL",34:"??",35:"+",36:"-",37:"*",38:"**",39:"%",40:"/",41:"<<",42:">>",43:"|",44:"&",45:"^",46:"<",47:">",48:"<=",49:">=",50:"==",51:"!=",52:"&&",53:"||",54:"!",55:"?",56:"(",57:")",59:"=>",63:"TAG",66:"REFERENCE",67:",",69:"MLOAD",71:"MSTORE",72:"HASHK",74:"HASHK1",75:"HASHKLEN",76:"HASHKDIGEST",77:"HASHP",78:"HASHP1",79:"HASHPLEN",80:"HASHPDIGEST",81:"JMP",84:"RR",85:"E",86:"CALL",87:"RETURN",88:"ASSERT",89:"SLOAD",90:"SSTORE",91:"ARITH",92:"ARITH_ECADD_DIFFERENT",93:"ARITH_ECADD_SAME",94:"ARITH_FP_CMUL",95:"ADD",96:"SUB",97:"LT",98:"SLT",99:"EQ",100:"AND",101:"OR",102:"XOR",103:"MEM_ALIGN_RD",104:"MEM_ALIGN_WR",105:"MEM_ALIGN_WR8",106:"REPEAT",107:"RCX",108:"JMPN",109:"JMPC",110:"JMPZ",111:"JMPNC",112:"JMPNZ",113:"CNT_ARITH",114:"CNT_BINARY",115:"CNT_KECCAK_F",116:"CNT_MEM_ALIGN",117:"CNT_PADDING_PG",118:"CNT_POSEIDON_G",119:"A",120:"B",121:"C",122:"D",123:"SR",124:"SP",125:"PC",126:"GAS",127:"zkPC",128:"STEP",129:"HASHPOS",130:"ROTL_C",131:"++",132:"--",133:"SYS",134:"MEM",135:"STACK"}, +productions_: [0,[3,2],[4,2],[4,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[7,4],[7,2],[7,3],[8,2],[9,3],[9,6],[10,4],[10,4],[12,1],[19,1],[19,1],[11,2],[26,1],[26,1],[26,1],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,2],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,2],[26,5],[26,3],[14,3],[14,1],[58,3],[58,3],[58,2],[58,1],[61,3],[61,1],[62,1],[62,1],[62,1],[62,3],[62,3],[62,1],[62,1],[62,1],[62,1],[60,3],[60,1],[16,3],[16,1],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,6],[68,4],[68,6],[68,4],[68,4],[68,6],[68,6],[68,4],[68,4],[68,6],[68,6],[68,6],[68,6],[68,8],[68,8],[68,4],[68,6],[68,6],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,4],[82,1],[82,1],[82,1],[83,1],[83,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[70,1],[70,3],[70,3],[70,2],[70,2],[70,5],[70,5],[70,3],[70,5],[70,5],[70,3],[70,5],[70,5],[70,3],[70,1],[70,3],[70,3],[73,1],[73,1]], performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { /* this == yyval */ @@ -481,198 +481,203 @@ case 104: break; case 105: - this.$ = { arithEq0: 1, arithEq1: 0, arithEq2: 0} + this.$ = { arithEq0: 1, arithEq1: 0, arithEq2: 0, arithEq3: 0} break; case 106: - this.$ = { arithEq0: 0, arithEq1: 1, arithEq2: 0} + this.$ = { arithEq0: 0, arithEq1: 1, arithEq2: 0, arithEq3: 0} break; case 107: - this.$ = { arithEq0: 0, arithEq1: 0, arithEq2: 1} + this.$ = { arithEq0: 0, arithEq1: 0, arithEq2: 0, arithEq3: 0} break; case 108: - this.$ = { bin: 1, binOpcode: 0} + this.$ = { arithEq0: 0, arithEq1: 0, arithEq2: 0, arithEq3: 1} break; case 109: - this.$ = { bin: 1, binOpcode: 1} + this.$ = { bin: 1, binOpcode: 0} break; case 110: - this.$ = { bin: 1, binOpcode: 2} + this.$ = { bin: 1, binOpcode: 1} break; case 111: - this.$ = { bin: 1, binOpcode: 3} + this.$ = { bin: 1, binOpcode: 2} break; case 112: - this.$ = { bin: 1, binOpcode: 4} + this.$ = { bin: 1, binOpcode: 3} break; case 113: - this.$ = { bin: 1, binOpcode: 5} + this.$ = { bin: 1, binOpcode: 4} break; case 114: - this.$ = { bin: 1, binOpcode: 6} + this.$ = { bin: 1, binOpcode: 5} break; case 115: - this.$ = { bin: 1, binOpcode: 7} + this.$ = { bin: 1, binOpcode: 6} break; case 116: - this.$ = { memAlignRD: 1, memAlignWR: 0, memAlignWR8: 0} + this.$ = { bin: 1, binOpcode: 7} break; case 117: - this.$ = { memAlignRD: 0, memAlignWR: 1, memAlignWR8: 0} + this.$ = { memAlignRD: 1, memAlignWR: 0, memAlignWR8: 0} break; case 118: - this.$ = { memAlignRD: 0, memAlignWR: 0, memAlignWR8: 1} + this.$ = { memAlignRD: 0, memAlignWR: 1, memAlignWR8: 0} break; case 119: + this.$ = { memAlignRD: 0, memAlignWR: 0, memAlignWR8: 1} + +break; +case 120: + this.$ = { repeat: 1 } break; -case 123: +case 124: this.$ = 'JMPC' break; -case 124: +case 125: this.$ = 'JMPZ' break; -case 125: +case 126: this.$ = 'cntArith' break; -case 126: +case 127: this.$ = 'cntBinary' break; -case 127: +case 128: this.$ = 'cntKeccakF' break; -case 128: +case 129: this.$ = 'cntMemAlign' break; -case 129: +case 130: this.$ = 'cntPaddingPG' break; -case 130: +case 131: this.$ = 'cntPoseidonG' break; -case 147: +case 148: this.$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack:0, offset: 0, useCTX: 1} break; -case 148: +case 149: this.$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack: 0, offset: $$[$0], useCTX: 1} break; -case 149: +case 150: this.$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack: 0, offset: -$$[$0], useCTX: 1} break; -case 150: +case 151: this.$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack: 1, offset: 0, useCTX: 1} break; -case 151: +case 152: this.$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack: -1, offset: 0, useCTX: 1} break; -case 152: +case 153: this.$ = { isStack: 0, isMem:0, ind:1, indRR: 0, incStack: 0, offset: $$[$0]} break; -case 153: +case 154: this.$ = { isStack: 0, isMem:0, ind:1, indRR: 0, incStack: 0, offset: -$$[$0]} break; -case 154: +case 155: this.$ = { isStack: 0, isMem:0, ind:1, indRR: 0, incStack: 0, offset: 0} break; -case 155: +case 156: this.$ = { isStack: 0, isMem: 1, ind:1, indRR: 0, incStack: 0, offset: $$[$0], useCTX: 1} break; -case 156: +case 157: this.$ = { isStack: 0, isMem: 1, ind:1, indRR: 0, incStack: 0, offset: -$$[$0], useCTX: 1} break; -case 157: +case 158: this.$ = { isStack: 0, isMem: 1, ind:1, indRR: 0, incStack: 0, offset: 0, useCTX: 1} break; -case 158: +case 159: this.$ = { isStack: 1, ind:1, indRR: 0, incStack: 0, offset: $$[$0], useCTX: 1} break; -case 159: +case 160: this.$ = { isStack: 1, ind:1, indRR: 0, incStack: 0, offset: -$$[$0], useCTX: 1} break; -case 160: +case 161: this.$ = { isStack: 1, ind:1, indRR: 0, incStack: 0, offset: 0, useCTX: 1} break; -case 161: +case 162: this.$ = { offset: $$[$0] } break; -case 162: +case 163: this.$ = { offset: $$[$0-2], ind: 0, indRR: 1 } break; -case 163: +case 164: this.$ = { offset: $$[$0-2], ind: 1, indRR: 0 } break; -case 164: +case 165: this.$ = {ind: 0, indRR: 0, offset:$$[$0]} break; -case 165: +case 166: this.$ = {ind: 1, indRR: 0, offset:0} break; } }, -table: [{3:1,4:2,6:3,7:4,8:5,9:6,10:7,11:8,12:9,13:$V0,14:11,15:$V1,17:$V2,18:$V3,21:$V4,23:$V5,24:$V6,27:$V7,28:$V8,30:$V9,31:$Va,33:$Vb,36:$Vc,58:19,61:21,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,106:$Vh,112:$Vi,113:$Vj,114:$Vk,115:$Vl,116:$Vm,117:$Vn,118:$Vo,119:$Vp,120:$Vq,121:$Vr,122:$Vs,123:$Vt,124:$Vu,125:$Vv,126:$Vw,127:$Vx,128:$Vy,129:$Vz},{1:[3]},{5:[1,52],6:53,7:4,8:5,9:6,10:7,11:8,12:9,13:$V0,14:11,15:$V1,17:$V2,18:$V3,21:$V4,23:$V5,24:$V6,27:$V7,28:$V8,30:$V9,31:$Va,33:$Vb,36:$Vc,58:19,61:21,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,106:$Vh,112:$Vi,113:$Vj,114:$Vk,115:$Vl,116:$Vm,117:$Vn,118:$Vo,119:$Vp,120:$Vq,121:$Vr,122:$Vs,123:$Vt,124:$Vu,125:$Vv,126:$Vw,127:$Vx,128:$Vy,129:$Vz},o($VA,[2,3]),o($VA,[2,4]),o($VA,[2,5]),o($VA,[2,6]),o($VA,[2,7]),o($VA,[2,8]),o($VA,[2,9]),o($VA,[2,10]),{13:[1,55],15:[1,54]},{16:56,68:57,69:$VB,71:$VC,72:$VD,74:$VE,75:$VF,76:$VG,77:$VH,78:$VI,79:$VJ,80:$VK,81:$VL,82:69,83:70,86:$VM,87:$VN,88:$VO,89:$VP,90:$VQ,91:$VR,92:$VS,93:$VT,94:$VU,95:$VV,96:$VW,97:$VX,98:$VY,99:$VZ,100:$V_,101:$V$,102:$V01,103:$V11,104:$V21,105:$V31,107:$V41,108:$V51,109:$V61,110:$V71,111:$V81},{15:[1,96]},{19:97,29:[1,98],30:[1,99]},{24:[1,100]},{24:[1,101]},{32:[1,102]},o($VA,[2,19]),o($V91,[2,51],{35:[1,104],36:[1,105],59:[1,103]}),{21:$V4,24:$V6,30:$V9,33:$Vb,61:106,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,106:$Vh,112:$Vi,113:$Vj,114:$Vk,115:$Vl,116:$Vm,117:$Vn,118:$Vo,119:$Vp,120:$Vq,121:$Vr,122:$Vs,123:$Vt,124:$Vu,125:$Vv,126:$Vw,127:$Vx,128:$Vy,129:$Vz},o($Va1,[2,55],{37:$Vb1}),o($Vc1,[2,57]),o($Vc1,[2,58]),o($Vc1,[2,59]),o($Vc1,[2,60]),o($Vc1,[2,63],{38:[1,108]}),o($Vc1,[2,64],{38:[1,109]}),o($Vc1,[2,65]),o($Vc1,[2,66]),o($Vd1,[2,131]),o($Vd1,[2,132]),o($Vd1,[2,133]),o($Vd1,[2,134]),o($Vd1,[2,135]),o($Vd1,[2,136]),o($Vd1,[2,137]),o($Vd1,[2,138]),o($Vd1,[2,139]),o($Vd1,[2,140]),o($Vd1,[2,141]),o($Vd1,[2,142]),o($Vd1,[2,143]),o($Vd1,[2,144]),o($Vd1,[2,145]),o($Vd1,[2,146]),o($Vc1,[2,125]),o($Vc1,[2,126]),o($Vc1,[2,127]),o($Vc1,[2,128]),o($Vc1,[2,129]),o($Vc1,[2,130]),{1:[2,1]},o($VA,[2,2]),{16:110,68:57,69:$VB,71:$VC,72:$VD,74:$VE,75:$VF,76:$VG,77:$VH,78:$VI,79:$VJ,80:$VK,81:$VL,82:69,83:70,86:$VM,87:$VN,88:$VO,89:$VP,90:$VQ,91:$VR,92:$VS,93:$VT,94:$VU,95:$VV,96:$VW,97:$VX,98:$VY,99:$VZ,100:$V_,101:$V$,102:$V01,103:$V11,104:$V21,105:$V31,107:$V41,108:$V51,109:$V61,110:$V71,111:$V81},o($VA,[2,12]),{13:[1,111],67:$Ve1},o($Vf1,[2,70]),{56:[1,113]},{56:[1,114]},{56:[1,115]},{56:[1,116]},{56:[1,117]},{56:[1,118]},{56:[1,119]},{56:[1,120]},{56:[1,121]},{56:[1,122]},{56:[1,123]},{56:[1,124]},{56:[1,125]},{56:[1,126]},o($Vf1,[2,101]),o($Vf1,[2,102]),o($Vf1,[2,103]),o($Vf1,[2,104]),o($Vf1,[2,105]),o($Vf1,[2,106]),o($Vf1,[2,107]),o($Vf1,[2,108]),o($Vf1,[2,109]),o($Vf1,[2,110]),o($Vf1,[2,111]),o($Vf1,[2,112]),o($Vf1,[2,113]),o($Vf1,[2,114]),o($Vf1,[2,115]),o($Vf1,[2,116]),o($Vf1,[2,117]),o($Vf1,[2,118]),{56:[1,127]},{56:[2,120]},{56:[2,121]},{56:[2,122]},{56:[2,123]},{56:[2,124]},o($VA,[2,14]),{17:[1,128]},{17:[2,20]},{17:[2,21]},{25:[1,129]},{25:[1,130]},o($VA,[2,22]),{30:$V9,60:131,64:132,84:$Vf,85:$Vg,106:$Vh,118:$Vo,119:$Vp,120:$Vq,121:$Vr,122:$Vs,123:$Vt,124:$Vu,125:$Vv,126:$Vw,127:$Vx,128:$Vy,129:$Vz},{21:$V4,24:$V6,30:$V9,33:$Vb,61:133,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,106:$Vh,112:$Vi,113:$Vj,114:$Vk,115:$Vl,116:$Vm,117:$Vn,118:$Vo,119:$Vp,120:$Vq,121:$Vr,122:$Vs,123:$Vt,124:$Vu,125:$Vv,126:$Vw,127:$Vx,128:$Vy,129:$Vz},{21:$V4,24:$V6,30:$V9,33:$Vb,61:134,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,106:$Vh,112:$Vi,113:$Vj,114:$Vk,115:$Vl,116:$Vm,117:$Vn,118:$Vo,119:$Vp,120:$Vq,121:$Vr,122:$Vs,123:$Vt,124:$Vu,125:$Vv,126:$Vw,127:$Vx,128:$Vy,129:$Vz},o($Va1,[2,54],{37:$Vb1}),{21:$V4,24:$V6,30:$V9,33:$Vb,62:135,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,106:$Vh,112:$Vi,113:$Vj,114:$Vk,115:$Vl,116:$Vm,117:$Vn,118:$Vo,119:$Vp,120:$Vq,121:$Vr,122:$Vs,123:$Vt,124:$Vu,125:$Vv,126:$Vw,127:$Vx,128:$Vy,129:$Vz},{21:[1,136]},{33:[1,137]},{13:[1,138],67:$Ve1},o($VA,[2,13]),{68:139,69:$VB,71:$VC,72:$VD,74:$VE,75:$VF,76:$VG,77:$VH,78:$VI,79:$VJ,80:$VK,81:$VL,82:69,83:70,86:$VM,87:$VN,88:$VO,89:$VP,90:$VQ,91:$VR,92:$VS,93:$VT,94:$VU,95:$VV,96:$VW,97:$VX,98:$VY,99:$VZ,100:$V_,101:$V$,102:$V01,103:$V11,104:$V21,105:$V31,107:$V41,108:$V51,109:$V61,110:$V71,111:$V81},{17:$Vg1,70:140,123:$Vh1,132:$Vi1,133:$Vj1,134:$Vk1},{17:$Vg1,70:146,123:$Vh1,132:$Vi1,133:$Vj1,134:$Vk1},{21:$Vl1,73:147,85:$Vm1},{21:$Vl1,73:150,85:$Vm1},{21:$Vl1,73:151,85:$Vm1},{21:$Vl1,73:152,85:$Vm1},{21:$Vl1,73:153,85:$Vm1},{21:$Vl1,73:154,85:$Vm1},{21:$Vl1,73:155,85:$Vm1},{21:$Vl1,73:156,85:$Vm1},{17:[1,157],66:[1,160],84:[1,158],85:[1,159]},{17:[1,161],66:[1,164],84:[1,162],85:[1,163]},{17:[1,165]},{17:[1,166],66:[1,167]},{106:[1,168]},o($VA,[2,15],{20:[1,169]}),{21:$Vn1,24:$Vo1,26:170,33:$Vp1,36:$Vq1,54:$Vr1,56:$Vs1},{21:$Vn1,24:$Vo1,26:177,33:$Vp1,36:$Vq1,54:$Vr1,56:$Vs1},o($V91,[2,50],{67:[1,178]}),o($Vt1,[2,68]),o($Va1,[2,52],{37:$Vb1}),o($Va1,[2,53],{37:$Vb1}),o($Vc1,[2,56]),o($Vc1,[2,61]),o($Vc1,[2,62]),o($VA,[2,11]),o($Vf1,[2,69]),{57:[1,179]},{35:[1,180],36:[1,181],57:[2,147],130:[1,182],131:[1,183]},{15:[1,184]},{15:[1,185]},{15:[1,186]},{35:[1,187],57:[2,161]},{57:[1,188]},{57:[1,189]},{57:[2,164]},{57:[2,165]},{57:[1,190]},{57:[1,191]},{57:[1,192]},{57:[1,193]},{57:[1,194]},{57:[1,195]},{57:[1,196]},{57:[1,197]},{57:[1,198]},{57:[1,199]},{35:[1,200]},{57:[1,201],67:[1,202]},{57:[1,203],67:[1,204]},{57:[1,205],67:[1,206]},{35:[1,207]},{57:[1,208],67:[1,209]},{57:[1,210]},{35:[1,211]},{57:[1,212]},{21:[1,213]},o($Vu1,[2,17],{35:$Vv1,36:$Vw1,37:$Vx1,38:$Vy1,39:$Vz1,40:$VA1,41:$VB1,42:$VC1,43:$VD1,44:$VE1,45:$VF1,46:$VG1,47:$VH1,48:$VI1,49:$VJ1,50:$VK1,51:$VL1,52:$VM1,53:$VN1,55:$VO1}),o($VP1,[2,23]),o($VP1,[2,24]),o($VP1,[2,25],{34:[1,234]}),{21:$Vn1,24:$Vo1,26:235,33:$Vp1,36:$Vq1,54:$Vr1,56:$Vs1},{21:$Vn1,24:$Vo1,26:236,33:$Vp1,36:$Vq1,54:$Vr1,56:$Vs1},{21:$Vn1,24:$Vo1,26:237,33:$Vp1,36:$Vq1,54:$Vr1,56:$Vs1},o($Vu1,[2,18],{35:$Vv1,36:$Vw1,37:$Vx1,38:$Vy1,39:$Vz1,40:$VA1,41:$VB1,42:$VC1,43:$VD1,44:$VE1,45:$VF1,46:$VG1,47:$VH1,48:$VI1,49:$VJ1,50:$VK1,51:$VL1,52:$VM1,53:$VN1,55:$VO1}),{30:$V9,64:238,84:$Vf,85:$Vg,106:$Vh,118:$Vo,119:$Vp,120:$Vq,121:$Vr,122:$Vs,123:$Vt,124:$Vu,125:$Vv,126:$Vw,127:$Vx,128:$Vy,129:$Vz},o($Vf1,[2,71]),{21:[1,239]},{21:[1,240]},{57:[2,150]},{57:[2,151]},{85:[1,241]},{85:[1,242]},{85:[1,243]},{84:[1,244],85:[1,245]},o($Vf1,[2,72]),o($Vf1,[2,73]),o($Vf1,[2,74]),o($Vf1,[2,75]),o($Vf1,[2,76]),o($Vf1,[2,77]),o($Vf1,[2,78]),o($Vf1,[2,79]),o($Vf1,[2,80]),o($Vf1,[2,81]),o($Vf1,[2,86]),o($Vf1,[2,87]),{84:[1,246],85:[1,247]},o($Vf1,[2,82]),{17:[1,248]},o($Vf1,[2,90]),{17:[1,249]},o($Vf1,[2,91]),{17:[1,250]},{84:[1,251],85:[1,252]},o($Vf1,[2,84]),{17:[1,253]},o($Vf1,[2,98]),{84:[1,254],85:[1,255]},o($Vf1,[2,119]),{22:[1,256]},{21:$Vn1,24:$Vo1,26:257,33:$Vp1,36:$Vq1,54:$Vr1,56:$Vs1},{21:$Vn1,24:$Vo1,26:258,33:$Vp1,36:$Vq1,54:$Vr1,56:$Vs1},{21:$Vn1,24:$Vo1,26:259,33:$Vp1,36:$Vq1,54:$Vr1,56:$Vs1},{21:$Vn1,24:$Vo1,26:260,33:$Vp1,36:$Vq1,54:$Vr1,56:$Vs1},{21:$Vn1,24:$Vo1,26:261,33:$Vp1,36:$Vq1,54:$Vr1,56:$Vs1},{21:$Vn1,24:$Vo1,26:262,33:$Vp1,36:$Vq1,54:$Vr1,56:$Vs1},{21:$Vn1,24:$Vo1,26:263,33:$Vp1,36:$Vq1,54:$Vr1,56:$Vs1},{21:$Vn1,24:$Vo1,26:264,33:$Vp1,36:$Vq1,54:$Vr1,56:$Vs1},{21:$Vn1,24:$Vo1,26:265,33:$Vp1,36:$Vq1,54:$Vr1,56:$Vs1},{21:$Vn1,24:$Vo1,26:266,33:$Vp1,36:$Vq1,54:$Vr1,56:$Vs1},{21:$Vn1,24:$Vo1,26:267,33:$Vp1,36:$Vq1,54:$Vr1,56:$Vs1},{21:$Vn1,24:$Vo1,26:268,33:$Vp1,36:$Vq1,54:$Vr1,56:$Vs1},{21:$Vn1,24:$Vo1,26:269,33:$Vp1,36:$Vq1,54:$Vr1,56:$Vs1},{21:$Vn1,24:$Vo1,26:270,33:$Vp1,36:$Vq1,54:$Vr1,56:$Vs1},{21:$Vn1,24:$Vo1,26:271,33:$Vp1,36:$Vq1,54:$Vr1,56:$Vs1},{21:$Vn1,24:$Vo1,26:272,33:$Vp1,36:$Vq1,54:$Vr1,56:$Vs1},{21:$Vn1,24:$Vo1,26:273,33:$Vp1,36:$Vq1,54:$Vr1,56:$Vs1},{21:$Vn1,24:$Vo1,26:274,33:$Vp1,36:$Vq1,54:$Vr1,56:$Vs1},{21:$Vn1,24:$Vo1,26:275,33:$Vp1,36:$Vq1,54:$Vr1,56:$Vs1},{21:$Vn1,24:$Vo1,26:276,33:$Vp1,36:$Vq1,54:$Vr1,56:$Vs1},{21:$Vn1,24:$Vo1,26:277,33:$Vp1,36:$Vq1,54:$Vr1,56:$Vs1},o($VQ1,[2,33],{37:$Vx1,38:$Vy1,39:$Vz1,40:$VA1}),o($VP1,[2,47]),{35:$Vv1,36:$Vw1,37:$Vx1,38:$Vy1,39:$Vz1,40:$VA1,41:$VB1,42:$VC1,43:$VD1,44:$VE1,45:$VF1,46:$VG1,47:$VH1,48:$VI1,49:$VJ1,50:$VK1,51:$VL1,52:$VM1,53:$VN1,55:$VO1,57:[1,278]},o($Vt1,[2,67]),{57:[2,148]},{57:[2,149]},{35:[1,279],36:[1,280],57:[2,154]},{35:[1,281],36:[1,282],57:[2,157]},{35:[1,283],36:[1,284],57:[2,160]},{57:[2,162]},{57:[2,163]},{57:[1,285]},{57:[1,286]},{57:[1,287]},{57:[1,288]},{57:[1,289]},{57:[1,290],67:[1,291]},{57:[1,292],67:[1,293]},{57:[1,294]},{57:[1,295]},{57:[1,296]},o($VA,[2,16]),o($VQ1,[2,27],{37:$Vx1,38:$Vy1,39:$Vz1,40:$VA1}),o($VQ1,[2,28],{37:$Vx1,38:$Vy1,39:$Vz1,40:$VA1}),o($VP1,[2,29]),o($VP1,[2,30]),o($VP1,[2,31]),o($VP1,[2,32]),o($VR1,[2,34],{35:$Vv1,36:$Vw1,37:$Vx1,38:$Vy1,39:$Vz1,40:$VA1}),o($VR1,[2,35],{35:$Vv1,36:$Vw1,37:$Vx1,38:$Vy1,39:$Vz1,40:$VA1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,52,53,55,57,63,66,84,85,106,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129],[2,36],{35:$Vv1,36:$Vw1,37:$Vx1,38:$Vy1,39:$Vz1,40:$VA1,41:$VB1,42:$VC1,44:$VE1,45:$VF1,46:$VG1,47:$VH1,48:$VI1,49:$VJ1,50:$VK1,51:$VL1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,52,53,55,57,63,66,84,85,106,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129],[2,37],{35:$Vv1,36:$Vw1,37:$Vx1,38:$Vy1,39:$Vz1,40:$VA1,41:$VB1,42:$VC1,46:$VG1,47:$VH1,48:$VI1,49:$VJ1,50:$VK1,51:$VL1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,45,52,53,55,57,63,66,84,85,106,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129],[2,38],{35:$Vv1,36:$Vw1,37:$Vx1,38:$Vy1,39:$Vz1,40:$VA1,41:$VB1,42:$VC1,44:$VE1,46:$VG1,47:$VH1,48:$VI1,49:$VJ1,50:$VK1,51:$VL1}),o($VS1,[2,39],{35:$Vv1,36:$Vw1,37:$Vx1,38:$Vy1,39:$Vz1,40:$VA1,41:$VB1,42:$VC1}),o($VS1,[2,40],{35:$Vv1,36:$Vw1,37:$Vx1,38:$Vy1,39:$Vz1,40:$VA1,41:$VB1,42:$VC1}),o($VS1,[2,41],{35:$Vv1,36:$Vw1,37:$Vx1,38:$Vy1,39:$Vz1,40:$VA1,41:$VB1,42:$VC1}),o($VS1,[2,42],{35:$Vv1,36:$Vw1,37:$Vx1,38:$Vy1,39:$Vz1,40:$VA1,41:$VB1,42:$VC1}),o($VT1,[2,43],{35:$Vv1,36:$Vw1,37:$Vx1,38:$Vy1,39:$Vz1,40:$VA1,41:$VB1,42:$VC1,46:$VG1,47:$VH1,48:$VI1,49:$VJ1}),o($VT1,[2,44],{35:$Vv1,36:$Vw1,37:$Vx1,38:$Vy1,39:$Vz1,40:$VA1,41:$VB1,42:$VC1,46:$VG1,47:$VH1,48:$VI1,49:$VJ1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,52,53,55,57,63,66,84,85,106,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129],[2,45],{35:$Vv1,36:$Vw1,37:$Vx1,38:$Vy1,39:$Vz1,40:$VA1,41:$VB1,42:$VC1,43:$VD1,44:$VE1,45:$VF1,46:$VG1,47:$VH1,48:$VI1,49:$VJ1,50:$VK1,51:$VL1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,53,55,57,63,66,84,85,106,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129],[2,46],{35:$Vv1,36:$Vw1,37:$Vx1,38:$Vy1,39:$Vz1,40:$VA1,41:$VB1,42:$VC1,43:$VD1,44:$VE1,45:$VF1,46:$VG1,47:$VH1,48:$VI1,49:$VJ1,50:$VK1,51:$VL1,52:$VM1}),{15:[1,297],35:$Vv1,36:$Vw1,37:$Vx1,38:$Vy1,39:$Vz1,40:$VA1,41:$VB1,42:$VC1,43:$VD1,44:$VE1,45:$VF1,46:$VG1,47:$VH1,48:$VI1,49:$VJ1,50:$VK1,51:$VL1,52:$VM1,53:$VN1,55:$VO1},o([5,13,15,17,18,21,23,24,27,28,30,31,33,55,57,63,66,84,85,106,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129],[2,26],{35:$Vv1,36:$Vw1,37:$Vx1,38:$Vy1,39:$Vz1,40:$VA1,41:$VB1,42:$VC1,43:$VD1,44:$VE1,45:$VF1,46:$VG1,47:$VH1,48:$VI1,49:$VJ1,50:$VK1,51:$VL1,52:$VM1,53:$VN1}),o($VP1,[2,49]),{21:[1,298]},{21:[1,299]},{21:[1,300]},{21:[1,301]},{21:[1,302]},{21:[1,303]},o($Vf1,[2,88]),o($Vf1,[2,89]),o($Vf1,[2,83]),o($Vf1,[2,94]),o($Vf1,[2,95]),o($Vf1,[2,92]),{17:[1,304]},o($Vf1,[2,93]),{17:[1,305]},o($Vf1,[2,85]),o($Vf1,[2,99]),o($Vf1,[2,100]),{21:$Vn1,24:$Vo1,26:306,33:$Vp1,36:$Vq1,54:$Vr1,56:$Vs1},{57:[2,152]},{57:[2,153]},{57:[2,155]},{57:[2,156]},{57:[2,158]},{57:[2,159]},{57:[1,307]},{57:[1,308]},o([5,13,15,17,18,21,23,24,27,28,30,31,33,57,63,66,84,85,106,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129],[2,48],{35:$Vv1,36:$Vw1,37:$Vx1,38:$Vy1,39:$Vz1,40:$VA1,41:$VB1,42:$VC1,43:$VD1,44:$VE1,45:$VF1,46:$VG1,47:$VH1,48:$VI1,49:$VJ1,50:$VK1,51:$VL1,52:$VM1,53:$VN1,55:$VO1}),o($Vf1,[2,96]),o($Vf1,[2,97])], -defaultActions: {52:[2,1],91:[2,120],92:[2,121],93:[2,122],94:[2,123],95:[2,124],98:[2,20],99:[2,21],148:[2,164],149:[2,165],182:[2,150],183:[2,151],239:[2,148],240:[2,149],244:[2,162],245:[2,163],298:[2,152],299:[2,153],300:[2,155],301:[2,156],302:[2,158],303:[2,159]}, +table: [{3:1,4:2,6:3,7:4,8:5,9:6,10:7,11:8,12:9,13:$V0,14:11,15:$V1,17:$V2,18:$V3,21:$V4,23:$V5,24:$V6,27:$V7,28:$V8,30:$V9,31:$Va,33:$Vb,36:$Vc,58:19,61:21,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,107:$Vh,113:$Vi,114:$Vj,115:$Vk,116:$Vl,117:$Vm,118:$Vn,119:$Vo,120:$Vp,121:$Vq,122:$Vr,123:$Vs,124:$Vt,125:$Vu,126:$Vv,127:$Vw,128:$Vx,129:$Vy,130:$Vz},{1:[3]},{5:[1,52],6:53,7:4,8:5,9:6,10:7,11:8,12:9,13:$V0,14:11,15:$V1,17:$V2,18:$V3,21:$V4,23:$V5,24:$V6,27:$V7,28:$V8,30:$V9,31:$Va,33:$Vb,36:$Vc,58:19,61:21,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,107:$Vh,113:$Vi,114:$Vj,115:$Vk,116:$Vl,117:$Vm,118:$Vn,119:$Vo,120:$Vp,121:$Vq,122:$Vr,123:$Vs,124:$Vt,125:$Vu,126:$Vv,127:$Vw,128:$Vx,129:$Vy,130:$Vz},o($VA,[2,3]),o($VA,[2,4]),o($VA,[2,5]),o($VA,[2,6]),o($VA,[2,7]),o($VA,[2,8]),o($VA,[2,9]),o($VA,[2,10]),{13:[1,55],15:[1,54]},{16:56,68:57,69:$VB,71:$VC,72:$VD,74:$VE,75:$VF,76:$VG,77:$VH,78:$VI,79:$VJ,80:$VK,81:$VL,82:69,83:70,86:$VM,87:$VN,88:$VO,89:$VP,90:$VQ,91:$VR,92:$VS,93:$VT,94:$VU,95:$VV,96:$VW,97:$VX,98:$VY,99:$VZ,100:$V_,101:$V$,102:$V01,103:$V11,104:$V21,105:$V31,106:$V41,108:$V51,109:$V61,110:$V71,111:$V81,112:$V91},{15:[1,97]},{19:98,29:[1,99],30:[1,100]},{24:[1,101]},{24:[1,102]},{32:[1,103]},o($VA,[2,19]),o($Va1,[2,51],{35:[1,105],36:[1,106],59:[1,104]}),{21:$V4,24:$V6,30:$V9,33:$Vb,61:107,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,107:$Vh,113:$Vi,114:$Vj,115:$Vk,116:$Vl,117:$Vm,118:$Vn,119:$Vo,120:$Vp,121:$Vq,122:$Vr,123:$Vs,124:$Vt,125:$Vu,126:$Vv,127:$Vw,128:$Vx,129:$Vy,130:$Vz},o($Vb1,[2,55],{37:$Vc1}),o($Vd1,[2,57]),o($Vd1,[2,58]),o($Vd1,[2,59]),o($Vd1,[2,60]),o($Vd1,[2,63],{38:[1,109]}),o($Vd1,[2,64],{38:[1,110]}),o($Vd1,[2,65]),o($Vd1,[2,66]),o($Ve1,[2,132]),o($Ve1,[2,133]),o($Ve1,[2,134]),o($Ve1,[2,135]),o($Ve1,[2,136]),o($Ve1,[2,137]),o($Ve1,[2,138]),o($Ve1,[2,139]),o($Ve1,[2,140]),o($Ve1,[2,141]),o($Ve1,[2,142]),o($Ve1,[2,143]),o($Ve1,[2,144]),o($Ve1,[2,145]),o($Ve1,[2,146]),o($Ve1,[2,147]),o($Vd1,[2,126]),o($Vd1,[2,127]),o($Vd1,[2,128]),o($Vd1,[2,129]),o($Vd1,[2,130]),o($Vd1,[2,131]),{1:[2,1]},o($VA,[2,2]),{16:111,68:57,69:$VB,71:$VC,72:$VD,74:$VE,75:$VF,76:$VG,77:$VH,78:$VI,79:$VJ,80:$VK,81:$VL,82:69,83:70,86:$VM,87:$VN,88:$VO,89:$VP,90:$VQ,91:$VR,92:$VS,93:$VT,94:$VU,95:$VV,96:$VW,97:$VX,98:$VY,99:$VZ,100:$V_,101:$V$,102:$V01,103:$V11,104:$V21,105:$V31,106:$V41,108:$V51,109:$V61,110:$V71,111:$V81,112:$V91},o($VA,[2,12]),{13:[1,112],67:$Vf1},o($Vg1,[2,70]),{56:[1,114]},{56:[1,115]},{56:[1,116]},{56:[1,117]},{56:[1,118]},{56:[1,119]},{56:[1,120]},{56:[1,121]},{56:[1,122]},{56:[1,123]},{56:[1,124]},{56:[1,125]},{56:[1,126]},{56:[1,127]},o($Vg1,[2,101]),o($Vg1,[2,102]),o($Vg1,[2,103]),o($Vg1,[2,104]),o($Vg1,[2,105]),o($Vg1,[2,106]),o($Vg1,[2,107]),o($Vg1,[2,108]),o($Vg1,[2,109]),o($Vg1,[2,110]),o($Vg1,[2,111]),o($Vg1,[2,112]),o($Vg1,[2,113]),o($Vg1,[2,114]),o($Vg1,[2,115]),o($Vg1,[2,116]),o($Vg1,[2,117]),o($Vg1,[2,118]),o($Vg1,[2,119]),{56:[1,128]},{56:[2,121]},{56:[2,122]},{56:[2,123]},{56:[2,124]},{56:[2,125]},o($VA,[2,14]),{17:[1,129]},{17:[2,20]},{17:[2,21]},{25:[1,130]},{25:[1,131]},o($VA,[2,22]),{30:$V9,60:132,64:133,84:$Vf,85:$Vg,107:$Vh,119:$Vo,120:$Vp,121:$Vq,122:$Vr,123:$Vs,124:$Vt,125:$Vu,126:$Vv,127:$Vw,128:$Vx,129:$Vy,130:$Vz},{21:$V4,24:$V6,30:$V9,33:$Vb,61:134,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,107:$Vh,113:$Vi,114:$Vj,115:$Vk,116:$Vl,117:$Vm,118:$Vn,119:$Vo,120:$Vp,121:$Vq,122:$Vr,123:$Vs,124:$Vt,125:$Vu,126:$Vv,127:$Vw,128:$Vx,129:$Vy,130:$Vz},{21:$V4,24:$V6,30:$V9,33:$Vb,61:135,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,107:$Vh,113:$Vi,114:$Vj,115:$Vk,116:$Vl,117:$Vm,118:$Vn,119:$Vo,120:$Vp,121:$Vq,122:$Vr,123:$Vs,124:$Vt,125:$Vu,126:$Vv,127:$Vw,128:$Vx,129:$Vy,130:$Vz},o($Vb1,[2,54],{37:$Vc1}),{21:$V4,24:$V6,30:$V9,33:$Vb,62:136,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,107:$Vh,113:$Vi,114:$Vj,115:$Vk,116:$Vl,117:$Vm,118:$Vn,119:$Vo,120:$Vp,121:$Vq,122:$Vr,123:$Vs,124:$Vt,125:$Vu,126:$Vv,127:$Vw,128:$Vx,129:$Vy,130:$Vz},{21:[1,137]},{33:[1,138]},{13:[1,139],67:$Vf1},o($VA,[2,13]),{68:140,69:$VB,71:$VC,72:$VD,74:$VE,75:$VF,76:$VG,77:$VH,78:$VI,79:$VJ,80:$VK,81:$VL,82:69,83:70,86:$VM,87:$VN,88:$VO,89:$VP,90:$VQ,91:$VR,92:$VS,93:$VT,94:$VU,95:$VV,96:$VW,97:$VX,98:$VY,99:$VZ,100:$V_,101:$V$,102:$V01,103:$V11,104:$V21,105:$V31,106:$V41,108:$V51,109:$V61,110:$V71,111:$V81,112:$V91},{17:$Vh1,70:141,124:$Vi1,133:$Vj1,134:$Vk1,135:$Vl1},{17:$Vh1,70:147,124:$Vi1,133:$Vj1,134:$Vk1,135:$Vl1},{21:$Vm1,73:148,85:$Vn1},{21:$Vm1,73:151,85:$Vn1},{21:$Vm1,73:152,85:$Vn1},{21:$Vm1,73:153,85:$Vn1},{21:$Vm1,73:154,85:$Vn1},{21:$Vm1,73:155,85:$Vn1},{21:$Vm1,73:156,85:$Vn1},{21:$Vm1,73:157,85:$Vn1},{17:[1,158],66:[1,161],84:[1,159],85:[1,160]},{17:[1,162],66:[1,165],84:[1,163],85:[1,164]},{17:[1,166]},{17:[1,167],66:[1,168]},{107:[1,169]},o($VA,[2,15],{20:[1,170]}),{21:$Vo1,24:$Vp1,26:171,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{21:$Vo1,24:$Vp1,26:178,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},o($Va1,[2,50],{67:[1,179]}),o($Vu1,[2,68]),o($Vb1,[2,52],{37:$Vc1}),o($Vb1,[2,53],{37:$Vc1}),o($Vd1,[2,56]),o($Vd1,[2,61]),o($Vd1,[2,62]),o($VA,[2,11]),o($Vg1,[2,69]),{57:[1,180]},{35:[1,181],36:[1,182],57:[2,148],131:[1,183],132:[1,184]},{15:[1,185]},{15:[1,186]},{15:[1,187]},{35:[1,188],57:[2,162]},{57:[1,189]},{57:[1,190]},{57:[2,165]},{57:[2,166]},{57:[1,191]},{57:[1,192]},{57:[1,193]},{57:[1,194]},{57:[1,195]},{57:[1,196]},{57:[1,197]},{57:[1,198]},{57:[1,199]},{57:[1,200]},{35:[1,201]},{57:[1,202],67:[1,203]},{57:[1,204],67:[1,205]},{57:[1,206],67:[1,207]},{35:[1,208]},{57:[1,209],67:[1,210]},{57:[1,211]},{35:[1,212]},{57:[1,213]},{21:[1,214]},o($Vv1,[2,17],{35:$Vw1,36:$Vx1,37:$Vy1,38:$Vz1,39:$VA1,40:$VB1,41:$VC1,42:$VD1,43:$VE1,44:$VF1,45:$VG1,46:$VH1,47:$VI1,48:$VJ1,49:$VK1,50:$VL1,51:$VM1,52:$VN1,53:$VO1,55:$VP1}),o($VQ1,[2,23]),o($VQ1,[2,24]),o($VQ1,[2,25],{34:[1,235]}),{21:$Vo1,24:$Vp1,26:236,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{21:$Vo1,24:$Vp1,26:237,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{21:$Vo1,24:$Vp1,26:238,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},o($Vv1,[2,18],{35:$Vw1,36:$Vx1,37:$Vy1,38:$Vz1,39:$VA1,40:$VB1,41:$VC1,42:$VD1,43:$VE1,44:$VF1,45:$VG1,46:$VH1,47:$VI1,48:$VJ1,49:$VK1,50:$VL1,51:$VM1,52:$VN1,53:$VO1,55:$VP1}),{30:$V9,64:239,84:$Vf,85:$Vg,107:$Vh,119:$Vo,120:$Vp,121:$Vq,122:$Vr,123:$Vs,124:$Vt,125:$Vu,126:$Vv,127:$Vw,128:$Vx,129:$Vy,130:$Vz},o($Vg1,[2,71]),{21:[1,240]},{21:[1,241]},{57:[2,151]},{57:[2,152]},{85:[1,242]},{85:[1,243]},{85:[1,244]},{84:[1,245],85:[1,246]},o($Vg1,[2,72]),o($Vg1,[2,73]),o($Vg1,[2,74]),o($Vg1,[2,75]),o($Vg1,[2,76]),o($Vg1,[2,77]),o($Vg1,[2,78]),o($Vg1,[2,79]),o($Vg1,[2,80]),o($Vg1,[2,81]),o($Vg1,[2,86]),o($Vg1,[2,87]),{84:[1,247],85:[1,248]},o($Vg1,[2,82]),{17:[1,249]},o($Vg1,[2,90]),{17:[1,250]},o($Vg1,[2,91]),{17:[1,251]},{84:[1,252],85:[1,253]},o($Vg1,[2,84]),{17:[1,254]},o($Vg1,[2,98]),{84:[1,255],85:[1,256]},o($Vg1,[2,120]),{22:[1,257]},{21:$Vo1,24:$Vp1,26:258,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{21:$Vo1,24:$Vp1,26:259,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{21:$Vo1,24:$Vp1,26:260,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{21:$Vo1,24:$Vp1,26:261,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{21:$Vo1,24:$Vp1,26:262,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{21:$Vo1,24:$Vp1,26:263,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{21:$Vo1,24:$Vp1,26:264,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{21:$Vo1,24:$Vp1,26:265,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{21:$Vo1,24:$Vp1,26:266,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{21:$Vo1,24:$Vp1,26:267,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{21:$Vo1,24:$Vp1,26:268,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{21:$Vo1,24:$Vp1,26:269,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{21:$Vo1,24:$Vp1,26:270,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{21:$Vo1,24:$Vp1,26:271,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{21:$Vo1,24:$Vp1,26:272,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{21:$Vo1,24:$Vp1,26:273,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{21:$Vo1,24:$Vp1,26:274,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{21:$Vo1,24:$Vp1,26:275,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{21:$Vo1,24:$Vp1,26:276,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{21:$Vo1,24:$Vp1,26:277,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{21:$Vo1,24:$Vp1,26:278,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},o($VR1,[2,33],{37:$Vy1,38:$Vz1,39:$VA1,40:$VB1}),o($VQ1,[2,47]),{35:$Vw1,36:$Vx1,37:$Vy1,38:$Vz1,39:$VA1,40:$VB1,41:$VC1,42:$VD1,43:$VE1,44:$VF1,45:$VG1,46:$VH1,47:$VI1,48:$VJ1,49:$VK1,50:$VL1,51:$VM1,52:$VN1,53:$VO1,55:$VP1,57:[1,279]},o($Vu1,[2,67]),{57:[2,149]},{57:[2,150]},{35:[1,280],36:[1,281],57:[2,155]},{35:[1,282],36:[1,283],57:[2,158]},{35:[1,284],36:[1,285],57:[2,161]},{57:[2,163]},{57:[2,164]},{57:[1,286]},{57:[1,287]},{57:[1,288]},{57:[1,289]},{57:[1,290]},{57:[1,291],67:[1,292]},{57:[1,293],67:[1,294]},{57:[1,295]},{57:[1,296]},{57:[1,297]},o($VA,[2,16]),o($VR1,[2,27],{37:$Vy1,38:$Vz1,39:$VA1,40:$VB1}),o($VR1,[2,28],{37:$Vy1,38:$Vz1,39:$VA1,40:$VB1}),o($VQ1,[2,29]),o($VQ1,[2,30]),o($VQ1,[2,31]),o($VQ1,[2,32]),o($VS1,[2,34],{35:$Vw1,36:$Vx1,37:$Vy1,38:$Vz1,39:$VA1,40:$VB1}),o($VS1,[2,35],{35:$Vw1,36:$Vx1,37:$Vy1,38:$Vz1,39:$VA1,40:$VB1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,52,53,55,57,63,66,84,85,107,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130],[2,36],{35:$Vw1,36:$Vx1,37:$Vy1,38:$Vz1,39:$VA1,40:$VB1,41:$VC1,42:$VD1,44:$VF1,45:$VG1,46:$VH1,47:$VI1,48:$VJ1,49:$VK1,50:$VL1,51:$VM1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,52,53,55,57,63,66,84,85,107,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130],[2,37],{35:$Vw1,36:$Vx1,37:$Vy1,38:$Vz1,39:$VA1,40:$VB1,41:$VC1,42:$VD1,46:$VH1,47:$VI1,48:$VJ1,49:$VK1,50:$VL1,51:$VM1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,45,52,53,55,57,63,66,84,85,107,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130],[2,38],{35:$Vw1,36:$Vx1,37:$Vy1,38:$Vz1,39:$VA1,40:$VB1,41:$VC1,42:$VD1,44:$VF1,46:$VH1,47:$VI1,48:$VJ1,49:$VK1,50:$VL1,51:$VM1}),o($VT1,[2,39],{35:$Vw1,36:$Vx1,37:$Vy1,38:$Vz1,39:$VA1,40:$VB1,41:$VC1,42:$VD1}),o($VT1,[2,40],{35:$Vw1,36:$Vx1,37:$Vy1,38:$Vz1,39:$VA1,40:$VB1,41:$VC1,42:$VD1}),o($VT1,[2,41],{35:$Vw1,36:$Vx1,37:$Vy1,38:$Vz1,39:$VA1,40:$VB1,41:$VC1,42:$VD1}),o($VT1,[2,42],{35:$Vw1,36:$Vx1,37:$Vy1,38:$Vz1,39:$VA1,40:$VB1,41:$VC1,42:$VD1}),o($VU1,[2,43],{35:$Vw1,36:$Vx1,37:$Vy1,38:$Vz1,39:$VA1,40:$VB1,41:$VC1,42:$VD1,46:$VH1,47:$VI1,48:$VJ1,49:$VK1}),o($VU1,[2,44],{35:$Vw1,36:$Vx1,37:$Vy1,38:$Vz1,39:$VA1,40:$VB1,41:$VC1,42:$VD1,46:$VH1,47:$VI1,48:$VJ1,49:$VK1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,52,53,55,57,63,66,84,85,107,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130],[2,45],{35:$Vw1,36:$Vx1,37:$Vy1,38:$Vz1,39:$VA1,40:$VB1,41:$VC1,42:$VD1,43:$VE1,44:$VF1,45:$VG1,46:$VH1,47:$VI1,48:$VJ1,49:$VK1,50:$VL1,51:$VM1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,53,55,57,63,66,84,85,107,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130],[2,46],{35:$Vw1,36:$Vx1,37:$Vy1,38:$Vz1,39:$VA1,40:$VB1,41:$VC1,42:$VD1,43:$VE1,44:$VF1,45:$VG1,46:$VH1,47:$VI1,48:$VJ1,49:$VK1,50:$VL1,51:$VM1,52:$VN1}),{15:[1,298],35:$Vw1,36:$Vx1,37:$Vy1,38:$Vz1,39:$VA1,40:$VB1,41:$VC1,42:$VD1,43:$VE1,44:$VF1,45:$VG1,46:$VH1,47:$VI1,48:$VJ1,49:$VK1,50:$VL1,51:$VM1,52:$VN1,53:$VO1,55:$VP1},o([5,13,15,17,18,21,23,24,27,28,30,31,33,55,57,63,66,84,85,107,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130],[2,26],{35:$Vw1,36:$Vx1,37:$Vy1,38:$Vz1,39:$VA1,40:$VB1,41:$VC1,42:$VD1,43:$VE1,44:$VF1,45:$VG1,46:$VH1,47:$VI1,48:$VJ1,49:$VK1,50:$VL1,51:$VM1,52:$VN1,53:$VO1}),o($VQ1,[2,49]),{21:[1,299]},{21:[1,300]},{21:[1,301]},{21:[1,302]},{21:[1,303]},{21:[1,304]},o($Vg1,[2,88]),o($Vg1,[2,89]),o($Vg1,[2,83]),o($Vg1,[2,94]),o($Vg1,[2,95]),o($Vg1,[2,92]),{17:[1,305]},o($Vg1,[2,93]),{17:[1,306]},o($Vg1,[2,85]),o($Vg1,[2,99]),o($Vg1,[2,100]),{21:$Vo1,24:$Vp1,26:307,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{57:[2,153]},{57:[2,154]},{57:[2,156]},{57:[2,157]},{57:[2,159]},{57:[2,160]},{57:[1,308]},{57:[1,309]},o([5,13,15,17,18,21,23,24,27,28,30,31,33,57,63,66,84,85,107,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130],[2,48],{35:$Vw1,36:$Vx1,37:$Vy1,38:$Vz1,39:$VA1,40:$VB1,41:$VC1,42:$VD1,43:$VE1,44:$VF1,45:$VG1,46:$VH1,47:$VI1,48:$VJ1,49:$VK1,50:$VL1,51:$VM1,52:$VN1,53:$VO1,55:$VP1}),o($Vg1,[2,96]),o($Vg1,[2,97])], +defaultActions: {52:[2,1],92:[2,121],93:[2,122],94:[2,123],95:[2,124],96:[2,125],99:[2,20],100:[2,21],149:[2,165],150:[2,166],183:[2,151],184:[2,152],240:[2,149],241:[2,150],245:[2,163],246:[2,164],299:[2,153],300:[2,154],301:[2,156],302:[2,157],303:[2,159],304:[2,160]}, parseError: function parseError (str, hash) { if (hash.recoverable) { this.trace(str); @@ -1167,37 +1172,37 @@ case 6: return "LF"; break; case 7: /* console.log("Empty spaces"); */ break; -case 8: return 118; +case 8: return 119; break; -case 9: return 119; +case 9: return 120; break; -case 10: return 120; +case 10: return 121; break; -case 11: return 121; +case 11: return 122; break; case 12: return 85; break; -case 13: return 106; +case 13: return 107; break; -case 14: return 122; +case 14: return 123; break; case 15: return 30; break; -case 16: return 123; +case 16: return 124; break; -case 17: return 124; +case 17: return 125; break; -case 18: return 125; +case 18: return 126; break; -case 19: return 126; +case 19: return 127; break; case 20: return 84; break; -case 21: return 127; +case 21: return 128; break; -case 22: return 129; +case 22: return 130; break; -case 23: return 128; +case 23: return 129; break; case 24: return 69 break; @@ -1221,15 +1226,15 @@ case 33: return 77 break; case 34: return 81 break; -case 35: return 108 +case 35: return 109 break; -case 36: return 109 +case 36: return 110 break; -case 37: return 111 +case 37: return 112 break; -case 38: return 110 +case 38: return 111 break; -case 39: return 107 +case 39: return 108 break; case 40: return 86 break; @@ -1263,7 +1268,7 @@ case 54: return 100 break; case 55: return 101 break; -case 56: return 112 +case 56: return 102 break; case 57: return 113 break; @@ -1275,112 +1280,114 @@ case 60: return 116 break; case 61: return 117 break; -case 62: return 104 +case 62: return 118 break; -case 63: return 102 +case 63: return 105 break; case 64: return 103 break; -case 65: return 132 +case 65: return 104 break; case 66: return 133 break; case 67: return 134 break; -case 68: return 31 +case 68: return 135 break; -case 69: return 18 +case 69: return 31 break; -case 70: return 29 +case 70: return 18 break; -case 71: return 30 +case 71: return 29 break; -case 72: return 23 +case 72: return 30 break; -case 73: return 27 +case 73: return 23 break; -case 74: return 105 +case 74: return 27 break; -case 75: yy_.yytext = yy_.yytext.slice(1,-1); return 32; +case 75: return 106 break; -case 76: return 17; +case 76: yy_.yytext = yy_.yytext.slice(1,-1); return 32; break; -case 77: yy_.yytext = yy_.yytext.slice(1); return 24; +case 77: return 17; break; -case 78: yy_.yytext = yy_.yytext.slice(1); return 66; +case 78: yy_.yytext = yy_.yytext.slice(1); return 24; break; -case 79: return 15; +case 79: yy_.yytext = yy_.yytext.slice(1); return 66; break; -case 80: return 67 +case 80: return 15; break; -case 81: return 56 +case 81: return 67 break; -case 82: return 57 +case 82: return 56 break; -case 83: return 130 +case 83: return 57 break; case 84: return 131 break; -case 85: return 35 +case 85: return 132 +break; +case 86: return 35 break; -case 86: return 36 +case 87: return 36 break; -case 87: return 40 +case 88: return 40 break; -case 88: return 38 +case 89: return 38 break; -case 89: return 37 +case 90: return 37 break; -case 90: return 39 +case 91: return 39 break; -case 91: return 59 +case 92: return 59 break; -case 92: return 41 +case 93: return 41 break; -case 93: return 42 +case 94: return 42 break; -case 94: return 45 +case 95: return 45 break; -case 95: return 53 +case 96: return 53 break; -case 96: return 52 +case 97: return 52 break; -case 97: return 44 +case 98: return 44 break; -case 98: return 43 +case 99: return 43 break; -case 99: return 50 +case 100: return 50 break; -case 100: return 51 +case 101: return 51 break; -case 101: return 48 +case 102: return 48 break; -case 102: return 49 +case 103: return 49 break; -case 103: return 47 +case 104: return 47 break; -case 104: return 46 +case 105: return 46 break; -case 105: return 25 +case 106: return 25 break; -case 106: return 54 +case 107: return 54 break; -case 107: return 34 +case 108: return 34 break; -case 108: return 55 +case 109: return 55 break; -case 109: return 20 +case 110: return 20 break; -case 110: return 22 +case 111: return 22 break; -case 111: return 5; +case 112: return 5; break; -case 112: /* console.log("INVALID: " + yy_.yytext); */ return 'INVALID'; +case 113: /* console.log("INVALID: " + yy_.yytext); */ return 'INVALID'; break; } }, -rules: [/^(?:;[^\n\r]*)/,/^(?:\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+\/)/,/^(?:((0x[0-9A-Fa-f][0-9A-Fa-f_]*)|([0-9][0-9_]*))n\b)/,/^(?:(0x[0-9A-Fa-f][0-9A-Fa-f_]*)|([0-9][0-9_]*))/,/^(?:\$\$\{[^\}]*\})/,/^(?:(\$(\{[^\}]*\})?))/,/^(?:[\r\n]+)/,/^(?:[ \t]+)/,/^(?:A\b)/,/^(?:B\b)/,/^(?:C\b)/,/^(?:D\b)/,/^(?:E\b)/,/^(?:RCX\b)/,/^(?:SR\b)/,/^(?:CTX\b)/,/^(?:SP\b)/,/^(?:PC\b)/,/^(?:GAS\b)/,/^(?:zkPC\b)/,/^(?:RR\b)/,/^(?:STEP\b)/,/^(?:ROTL_C\b)/,/^(?:HASHPOS\b)/,/^(?:MLOAD\b)/,/^(?:MSTORE\b)/,/^(?:HASHKLEN\b)/,/^(?:HASHKDIGEST\b)/,/^(?:HASHK1\b)/,/^(?:HASHK\b)/,/^(?:HASHPLEN\b)/,/^(?:HASHPDIGEST\b)/,/^(?:HASHP1\b)/,/^(?:HASHP\b)/,/^(?:JMP\b)/,/^(?:JMPC\b)/,/^(?:JMPZ\b)/,/^(?:JMPNZ\b)/,/^(?:JMPNC\b)/,/^(?:JMPN\b)/,/^(?:CALL\b)/,/^(?:RETURN\b)/,/^(?:ASSERT\b)/,/^(?:SLOAD\b)/,/^(?:SSTORE\b)/,/^(?:ARITH\b)/,/^(?:ARITH_ECADD_DIFFERENT\b)/,/^(?:ARITH_ECADD_SAME\b)/,/^(?:ADD\b)/,/^(?:SUB\b)/,/^(?:LT\b)/,/^(?:SLT\b)/,/^(?:EQ\b)/,/^(?:AND\b)/,/^(?:OR\b)/,/^(?:XOR\b)/,/^(?:CNT_ARITH\b)/,/^(?:CNT_BINARY\b)/,/^(?:CNT_KECCAK_F\b)/,/^(?:CNT_MEM_ALIGN\b)/,/^(?:CNT_PADDING_PG\b)/,/^(?:CNT_POSEIDON_G\b)/,/^(?:MEM_ALIGN_WR8\b)/,/^(?:MEM_ALIGN_RD\b)/,/^(?:MEM_ALIGN_WR\b)/,/^(?:SYS\b)/,/^(?:MEM\b)/,/^(?:STACK\b)/,/^(?:INCLUDE\b)/,/^(?:VAR\b)/,/^(?:GLOBAL\b)/,/^(?:CTX\b)/,/^(?:CONST\b)/,/^(?:CONSTL\b)/,/^(?:REPEAT\b)/,/^(?:"[^"]+")/,/^(?:[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?:%[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?:@[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?::)/,/^(?:,)/,/^(?:\()/,/^(?:\))/,/^(?:\+\+)/,/^(?:--)/,/^(?:\+)/,/^(?:-)/,/^(?:\/)/,/^(?:\*\*)/,/^(?:\*)/,/^(?:%)/,/^(?:=>)/,/^(?:<<)/,/^(?:>>)/,/^(?:\^)/,/^(?:\|\|)/,/^(?:&&)/,/^(?:&)/,/^(?:\|)/,/^(?:==)/,/^(?:!=)/,/^(?:<=)/,/^(?:>=)/,/^(?:>)/,/^(?:<)/,/^(?:=)/,/^(?:!)/,/^(?:\?\?)/,/^(?:\?)/,/^(?:\[)/,/^(?:\])/,/^(?:$)/,/^(?:.)/], -conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112],"inclusive":true}} +rules: [/^(?:;[^\n\r]*)/,/^(?:\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+\/)/,/^(?:((0x[0-9A-Fa-f][0-9A-Fa-f_]*)|([0-9][0-9_]*))n\b)/,/^(?:(0x[0-9A-Fa-f][0-9A-Fa-f_]*)|([0-9][0-9_]*))/,/^(?:\$\$\{[^\}]*\})/,/^(?:(\$(\{[^\}]*\})?))/,/^(?:[\r\n]+)/,/^(?:[ \t]+)/,/^(?:A\b)/,/^(?:B\b)/,/^(?:C\b)/,/^(?:D\b)/,/^(?:E\b)/,/^(?:RCX\b)/,/^(?:SR\b)/,/^(?:CTX\b)/,/^(?:SP\b)/,/^(?:PC\b)/,/^(?:GAS\b)/,/^(?:zkPC\b)/,/^(?:RR\b)/,/^(?:STEP\b)/,/^(?:ROTL_C\b)/,/^(?:HASHPOS\b)/,/^(?:MLOAD\b)/,/^(?:MSTORE\b)/,/^(?:HASHKLEN\b)/,/^(?:HASHKDIGEST\b)/,/^(?:HASHK1\b)/,/^(?:HASHK\b)/,/^(?:HASHPLEN\b)/,/^(?:HASHPDIGEST\b)/,/^(?:HASHP1\b)/,/^(?:HASHP\b)/,/^(?:JMP\b)/,/^(?:JMPC\b)/,/^(?:JMPZ\b)/,/^(?:JMPNZ\b)/,/^(?:JMPNC\b)/,/^(?:JMPN\b)/,/^(?:CALL\b)/,/^(?:RETURN\b)/,/^(?:ASSERT\b)/,/^(?:SLOAD\b)/,/^(?:SSTORE\b)/,/^(?:ARITH\b)/,/^(?:ARITH_ECADD_DIFFERENT\b)/,/^(?:ARITH_ECADD_SAME\b)/,/^(?:ARITH_FP_CMUL\b)/,/^(?:ADD\b)/,/^(?:SUB\b)/,/^(?:LT\b)/,/^(?:SLT\b)/,/^(?:EQ\b)/,/^(?:AND\b)/,/^(?:OR\b)/,/^(?:XOR\b)/,/^(?:CNT_ARITH\b)/,/^(?:CNT_BINARY\b)/,/^(?:CNT_KECCAK_F\b)/,/^(?:CNT_MEM_ALIGN\b)/,/^(?:CNT_PADDING_PG\b)/,/^(?:CNT_POSEIDON_G\b)/,/^(?:MEM_ALIGN_WR8\b)/,/^(?:MEM_ALIGN_RD\b)/,/^(?:MEM_ALIGN_WR\b)/,/^(?:SYS\b)/,/^(?:MEM\b)/,/^(?:STACK\b)/,/^(?:INCLUDE\b)/,/^(?:VAR\b)/,/^(?:GLOBAL\b)/,/^(?:CTX\b)/,/^(?:CONST\b)/,/^(?:CONSTL\b)/,/^(?:REPEAT\b)/,/^(?:"[^"]+")/,/^(?:[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?:%[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?:@[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?::)/,/^(?:,)/,/^(?:\()/,/^(?:\))/,/^(?:\+\+)/,/^(?:--)/,/^(?:\+)/,/^(?:-)/,/^(?:\/)/,/^(?:\*\*)/,/^(?:\*)/,/^(?:%)/,/^(?:=>)/,/^(?:<<)/,/^(?:>>)/,/^(?:\^)/,/^(?:\|\|)/,/^(?:&&)/,/^(?:&)/,/^(?:\|)/,/^(?:==)/,/^(?:!=)/,/^(?:<=)/,/^(?:>=)/,/^(?:>)/,/^(?:<)/,/^(?:=)/,/^(?:!)/,/^(?:\?\?)/,/^(?:\?)/,/^(?:\[)/,/^(?:\])/,/^(?:$)/,/^(?:.)/], +conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113],"inclusive":true}} }); return lexer; })(); diff --git a/src/zkasm_parser.jison b/src/zkasm_parser.jison index 3674e99..8252636 100644 --- a/src/zkasm_parser.jison +++ b/src/zkasm_parser.jison @@ -49,6 +49,7 @@ SSTORE { return 'SSTORE' } ARITH { return 'ARITH' } ARITH_ECADD_DIFFERENT { return 'ARITH_ECADD_DIFFERENT' } ARITH_ECADD_SAME { return 'ARITH_ECADD_SAME' } +ARITH_FP_CMUL { return 'ARITH_FP_CMUL' } ADD { return 'ADD' } SUB { return 'SUB' } LT { return 'LT' } @@ -633,15 +634,19 @@ op } | ARITH { - $$ = { arithEq0: 1, arithEq1: 0, arithEq2: 0} + $$ = { arithEq0: 1, arithEq1: 0, arithEq2: 0, arithEq3: 0} } | ARITH_ECADD_DIFFERENT { - $$ = { arithEq0: 0, arithEq1: 1, arithEq2: 0} + $$ = { arithEq0: 0, arithEq1: 1, arithEq2: 0, arithEq3: 0} } | ARITH_ECADD_SAME { - $$ = { arithEq0: 0, arithEq1: 0, arithEq2: 1} + $$ = { arithEq0: 0, arithEq1: 0, arithEq2: 0, arithEq3: 0} + } + | ARITH_FP_CMUL + { + $$ = { arithEq0: 0, arithEq1: 0, arithEq2: 0, arithEq3: 1} } | ADD { From 1353c660ca14078e50e0c4b538b863f0e5897b43 Mon Sep 17 00:00:00 2001 From: zkronos73 Date: Wed, 26 Apr 2023 15:19:13 +0200 Subject: [PATCH 02/25] change new arith instruction tag to ARITH_BN254_MULFP2 --- build/zkasm_parser.js | 6 +++--- src/zkasm_parser.jison | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/build/zkasm_parser.js b/build/zkasm_parser.js index 654bbc1..e0ac391 100644 --- a/build/zkasm_parser.js +++ b/build/zkasm_parser.js @@ -75,8 +75,8 @@ var zkasm_parser = (function(){ var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,10],$V1=[1,12],$V2=[1,13],$V3=[1,14],$V4=[1,26],$V5=[1,15],$V6=[1,28],$V7=[1,16],$V8=[1,18],$V9=[1,36],$Va=[1,17],$Vb=[1,27],$Vc=[1,20],$Vd=[1,23],$Ve=[1,29],$Vf=[1,40],$Vg=[1,34],$Vh=[1,45],$Vi=[1,46],$Vj=[1,47],$Vk=[1,48],$Vl=[1,49],$Vm=[1,50],$Vn=[1,51],$Vo=[1,30],$Vp=[1,31],$Vq=[1,32],$Vr=[1,33],$Vs=[1,35],$Vt=[1,37],$Vu=[1,38],$Vv=[1,39],$Vw=[1,41],$Vx=[1,42],$Vy=[1,43],$Vz=[1,44],$VA=[5,13,15,17,18,21,23,24,27,28,30,31,33,36,63,66,84,85,107,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130],$VB=[1,58],$VC=[1,59],$VD=[1,60],$VE=[1,61],$VF=[1,62],$VG=[1,63],$VH=[1,64],$VI=[1,65],$VJ=[1,66],$VK=[1,67],$VL=[1,68],$VM=[1,71],$VN=[1,72],$VO=[1,73],$VP=[1,74],$VQ=[1,75],$VR=[1,76],$VS=[1,77],$VT=[1,78],$VU=[1,79],$VV=[1,80],$VW=[1,81],$VX=[1,82],$VY=[1,83],$VZ=[1,84],$V_=[1,85],$V$=[1,86],$V01=[1,87],$V11=[1,88],$V21=[1,89],$V31=[1,90],$V41=[1,91],$V51=[1,92],$V61=[1,93],$V71=[1,94],$V81=[1,95],$V91=[1,96],$Va1=[13,15],$Vb1=[13,15,35,36,59],$Vc1=[1,108],$Vd1=[13,15,35,36,37,59],$Ve1=[13,15,35,36,37,59,67],$Vf1=[1,113],$Vg1=[13,67],$Vh1=[1,146],$Vi1=[1,142],$Vj1=[1,143],$Vk1=[1,144],$Vl1=[1,145],$Vm1=[1,149],$Vn1=[1,150],$Vo1=[1,172],$Vp1=[1,174],$Vq1=[1,173],$Vr1=[1,175],$Vs1=[1,176],$Vt1=[1,177],$Vu1=[13,15,67],$Vv1=[5,13,15,17,18,21,23,24,27,28,30,31,33,63,66,84,85,107,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130],$Vw1=[1,215],$Vx1=[1,216],$Vy1=[1,217],$Vz1=[1,218],$VA1=[1,219],$VB1=[1,220],$VC1=[1,221],$VD1=[1,222],$VE1=[1,223],$VF1=[1,224],$VG1=[1,225],$VH1=[1,226],$VI1=[1,227],$VJ1=[1,228],$VK1=[1,229],$VL1=[1,230],$VM1=[1,231],$VN1=[1,232],$VO1=[1,233],$VP1=[1,234],$VQ1=[5,13,15,17,18,21,23,24,27,28,30,31,33,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,107,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130],$VR1=[5,13,15,17,18,21,23,24,27,28,30,31,33,35,36,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,107,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130],$VS1=[5,13,15,17,18,21,23,24,27,28,30,31,33,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,107,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130],$VT1=[5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,107,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130],$VU1=[5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,50,51,52,53,55,57,63,66,84,85,107,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130]; var parser = {trace: function trace () { }, yy: {}, -symbols_: {"error":2,"allStatments":3,"statmentList":4,"EOF":5,"statment":6,"step":7,"label":8,"varDef":9,"constDef":10,"include":11,"command":12,"LF":13,"assignment":14,":":15,"opList":16,"IDENTIFIER":17,"VAR":18,"scope":19,"[":20,"NUMBER":21,"]":22,"CONST":23,"CONSTID":24,"=":25,"nexpr":26,"CONSTL":27,"COMMAND":28,"GLOBAL":29,"CTX":30,"INCLUDE":31,"STRING":32,"NUMBERL":33,"??":34,"+":35,"-":36,"*":37,"**":38,"%":39,"/":40,"<<":41,">>":42,"|":43,"&":44,"^":45,"<":46,">":47,"<=":48,">=":49,"==":50,"!=":51,"&&":52,"||":53,"!":54,"?":55,"(":56,")":57,"inRegsSum":58,"=>":59,"regsList":60,"inRegP":61,"inReg":62,"TAG":63,"reg":64,"counter":65,"REFERENCE":66,",":67,"op":68,"MLOAD":69,"addr":70,"MSTORE":71,"HASHK":72,"hashId":73,"HASHK1":74,"HASHKLEN":75,"HASHKDIGEST":76,"HASHP":77,"HASHP1":78,"HASHPLEN":79,"HASHPDIGEST":80,"JMP":81,"jmpCond":82,"jmpNotCond":83,"RR":84,"E":85,"CALL":86,"RETURN":87,"ASSERT":88,"SLOAD":89,"SSTORE":90,"ARITH":91,"ARITH_ECADD_DIFFERENT":92,"ARITH_ECADD_SAME":93,"ARITH_FP_CMUL":94,"ADD":95,"SUB":96,"LT":97,"SLT":98,"EQ":99,"AND":100,"OR":101,"XOR":102,"MEM_ALIGN_RD":103,"MEM_ALIGN_WR":104,"MEM_ALIGN_WR8":105,"REPEAT":106,"RCX":107,"JMPN":108,"JMPC":109,"JMPZ":110,"JMPNC":111,"JMPNZ":112,"CNT_ARITH":113,"CNT_BINARY":114,"CNT_KECCAK_F":115,"CNT_MEM_ALIGN":116,"CNT_PADDING_PG":117,"CNT_POSEIDON_G":118,"A":119,"B":120,"C":121,"D":122,"SR":123,"SP":124,"PC":125,"GAS":126,"zkPC":127,"STEP":128,"HASHPOS":129,"ROTL_C":130,"++":131,"--":132,"SYS":133,"MEM":134,"STACK":135,"$accept":0,"$end":1}, -terminals_: {2:"error",5:"EOF",13:"LF",15:":",17:"IDENTIFIER",18:"VAR",20:"[",21:"NUMBER",22:"]",23:"CONST",24:"CONSTID",25:"=",27:"CONSTL",28:"COMMAND",29:"GLOBAL",30:"CTX",31:"INCLUDE",32:"STRING",33:"NUMBERL",34:"??",35:"+",36:"-",37:"*",38:"**",39:"%",40:"/",41:"<<",42:">>",43:"|",44:"&",45:"^",46:"<",47:">",48:"<=",49:">=",50:"==",51:"!=",52:"&&",53:"||",54:"!",55:"?",56:"(",57:")",59:"=>",63:"TAG",66:"REFERENCE",67:",",69:"MLOAD",71:"MSTORE",72:"HASHK",74:"HASHK1",75:"HASHKLEN",76:"HASHKDIGEST",77:"HASHP",78:"HASHP1",79:"HASHPLEN",80:"HASHPDIGEST",81:"JMP",84:"RR",85:"E",86:"CALL",87:"RETURN",88:"ASSERT",89:"SLOAD",90:"SSTORE",91:"ARITH",92:"ARITH_ECADD_DIFFERENT",93:"ARITH_ECADD_SAME",94:"ARITH_FP_CMUL",95:"ADD",96:"SUB",97:"LT",98:"SLT",99:"EQ",100:"AND",101:"OR",102:"XOR",103:"MEM_ALIGN_RD",104:"MEM_ALIGN_WR",105:"MEM_ALIGN_WR8",106:"REPEAT",107:"RCX",108:"JMPN",109:"JMPC",110:"JMPZ",111:"JMPNC",112:"JMPNZ",113:"CNT_ARITH",114:"CNT_BINARY",115:"CNT_KECCAK_F",116:"CNT_MEM_ALIGN",117:"CNT_PADDING_PG",118:"CNT_POSEIDON_G",119:"A",120:"B",121:"C",122:"D",123:"SR",124:"SP",125:"PC",126:"GAS",127:"zkPC",128:"STEP",129:"HASHPOS",130:"ROTL_C",131:"++",132:"--",133:"SYS",134:"MEM",135:"STACK"}, +symbols_: {"error":2,"allStatments":3,"statmentList":4,"EOF":5,"statment":6,"step":7,"label":8,"varDef":9,"constDef":10,"include":11,"command":12,"LF":13,"assignment":14,":":15,"opList":16,"IDENTIFIER":17,"VAR":18,"scope":19,"[":20,"NUMBER":21,"]":22,"CONST":23,"CONSTID":24,"=":25,"nexpr":26,"CONSTL":27,"COMMAND":28,"GLOBAL":29,"CTX":30,"INCLUDE":31,"STRING":32,"NUMBERL":33,"??":34,"+":35,"-":36,"*":37,"**":38,"%":39,"/":40,"<<":41,">>":42,"|":43,"&":44,"^":45,"<":46,">":47,"<=":48,">=":49,"==":50,"!=":51,"&&":52,"||":53,"!":54,"?":55,"(":56,")":57,"inRegsSum":58,"=>":59,"regsList":60,"inRegP":61,"inReg":62,"TAG":63,"reg":64,"counter":65,"REFERENCE":66,",":67,"op":68,"MLOAD":69,"addr":70,"MSTORE":71,"HASHK":72,"hashId":73,"HASHK1":74,"HASHKLEN":75,"HASHKDIGEST":76,"HASHP":77,"HASHP1":78,"HASHPLEN":79,"HASHPDIGEST":80,"JMP":81,"jmpCond":82,"jmpNotCond":83,"RR":84,"E":85,"CALL":86,"RETURN":87,"ASSERT":88,"SLOAD":89,"SSTORE":90,"ARITH":91,"ARITH_ECADD_DIFFERENT":92,"ARITH_ECADD_SAME":93,"ARITH_BN254_MULFP2":94,"ADD":95,"SUB":96,"LT":97,"SLT":98,"EQ":99,"AND":100,"OR":101,"XOR":102,"MEM_ALIGN_RD":103,"MEM_ALIGN_WR":104,"MEM_ALIGN_WR8":105,"REPEAT":106,"RCX":107,"JMPN":108,"JMPC":109,"JMPZ":110,"JMPNC":111,"JMPNZ":112,"CNT_ARITH":113,"CNT_BINARY":114,"CNT_KECCAK_F":115,"CNT_MEM_ALIGN":116,"CNT_PADDING_PG":117,"CNT_POSEIDON_G":118,"A":119,"B":120,"C":121,"D":122,"SR":123,"SP":124,"PC":125,"GAS":126,"zkPC":127,"STEP":128,"HASHPOS":129,"ROTL_C":130,"++":131,"--":132,"SYS":133,"MEM":134,"STACK":135,"$accept":0,"$end":1}, +terminals_: {2:"error",5:"EOF",13:"LF",15:":",17:"IDENTIFIER",18:"VAR",20:"[",21:"NUMBER",22:"]",23:"CONST",24:"CONSTID",25:"=",27:"CONSTL",28:"COMMAND",29:"GLOBAL",30:"CTX",31:"INCLUDE",32:"STRING",33:"NUMBERL",34:"??",35:"+",36:"-",37:"*",38:"**",39:"%",40:"/",41:"<<",42:">>",43:"|",44:"&",45:"^",46:"<",47:">",48:"<=",49:">=",50:"==",51:"!=",52:"&&",53:"||",54:"!",55:"?",56:"(",57:")",59:"=>",63:"TAG",66:"REFERENCE",67:",",69:"MLOAD",71:"MSTORE",72:"HASHK",74:"HASHK1",75:"HASHKLEN",76:"HASHKDIGEST",77:"HASHP",78:"HASHP1",79:"HASHPLEN",80:"HASHPDIGEST",81:"JMP",84:"RR",85:"E",86:"CALL",87:"RETURN",88:"ASSERT",89:"SLOAD",90:"SSTORE",91:"ARITH",92:"ARITH_ECADD_DIFFERENT",93:"ARITH_ECADD_SAME",94:"ARITH_BN254_MULFP2",95:"ADD",96:"SUB",97:"LT",98:"SLT",99:"EQ",100:"AND",101:"OR",102:"XOR",103:"MEM_ALIGN_RD",104:"MEM_ALIGN_WR",105:"MEM_ALIGN_WR8",106:"REPEAT",107:"RCX",108:"JMPN",109:"JMPC",110:"JMPZ",111:"JMPNC",112:"JMPNZ",113:"CNT_ARITH",114:"CNT_BINARY",115:"CNT_KECCAK_F",116:"CNT_MEM_ALIGN",117:"CNT_PADDING_PG",118:"CNT_POSEIDON_G",119:"A",120:"B",121:"C",122:"D",123:"SR",124:"SP",125:"PC",126:"GAS",127:"zkPC",128:"STEP",129:"HASHPOS",130:"ROTL_C",131:"++",132:"--",133:"SYS",134:"MEM",135:"STACK"}, productions_: [0,[3,2],[4,2],[4,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[7,4],[7,2],[7,3],[8,2],[9,3],[9,6],[10,4],[10,4],[12,1],[19,1],[19,1],[11,2],[26,1],[26,1],[26,1],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,2],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,2],[26,5],[26,3],[14,3],[14,1],[58,3],[58,3],[58,2],[58,1],[61,3],[61,1],[62,1],[62,1],[62,1],[62,3],[62,3],[62,1],[62,1],[62,1],[62,1],[60,3],[60,1],[16,3],[16,1],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,6],[68,4],[68,6],[68,4],[68,4],[68,6],[68,6],[68,4],[68,4],[68,6],[68,6],[68,6],[68,6],[68,8],[68,8],[68,4],[68,6],[68,6],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,4],[82,1],[82,1],[82,1],[83,1],[83,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[70,1],[70,3],[70,3],[70,2],[70,2],[70,5],[70,5],[70,3],[70,5],[70,5],[70,3],[70,5],[70,5],[70,3],[70,1],[70,3],[70,3],[73,1],[73,1]], performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { /* this == yyval */ @@ -1386,7 +1386,7 @@ case 113: /* console.log("INVALID: " + yy_.yytext); */ return 'INVALID'; break; } }, -rules: [/^(?:;[^\n\r]*)/,/^(?:\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+\/)/,/^(?:((0x[0-9A-Fa-f][0-9A-Fa-f_]*)|([0-9][0-9_]*))n\b)/,/^(?:(0x[0-9A-Fa-f][0-9A-Fa-f_]*)|([0-9][0-9_]*))/,/^(?:\$\$\{[^\}]*\})/,/^(?:(\$(\{[^\}]*\})?))/,/^(?:[\r\n]+)/,/^(?:[ \t]+)/,/^(?:A\b)/,/^(?:B\b)/,/^(?:C\b)/,/^(?:D\b)/,/^(?:E\b)/,/^(?:RCX\b)/,/^(?:SR\b)/,/^(?:CTX\b)/,/^(?:SP\b)/,/^(?:PC\b)/,/^(?:GAS\b)/,/^(?:zkPC\b)/,/^(?:RR\b)/,/^(?:STEP\b)/,/^(?:ROTL_C\b)/,/^(?:HASHPOS\b)/,/^(?:MLOAD\b)/,/^(?:MSTORE\b)/,/^(?:HASHKLEN\b)/,/^(?:HASHKDIGEST\b)/,/^(?:HASHK1\b)/,/^(?:HASHK\b)/,/^(?:HASHPLEN\b)/,/^(?:HASHPDIGEST\b)/,/^(?:HASHP1\b)/,/^(?:HASHP\b)/,/^(?:JMP\b)/,/^(?:JMPC\b)/,/^(?:JMPZ\b)/,/^(?:JMPNZ\b)/,/^(?:JMPNC\b)/,/^(?:JMPN\b)/,/^(?:CALL\b)/,/^(?:RETURN\b)/,/^(?:ASSERT\b)/,/^(?:SLOAD\b)/,/^(?:SSTORE\b)/,/^(?:ARITH\b)/,/^(?:ARITH_ECADD_DIFFERENT\b)/,/^(?:ARITH_ECADD_SAME\b)/,/^(?:ARITH_FP_CMUL\b)/,/^(?:ADD\b)/,/^(?:SUB\b)/,/^(?:LT\b)/,/^(?:SLT\b)/,/^(?:EQ\b)/,/^(?:AND\b)/,/^(?:OR\b)/,/^(?:XOR\b)/,/^(?:CNT_ARITH\b)/,/^(?:CNT_BINARY\b)/,/^(?:CNT_KECCAK_F\b)/,/^(?:CNT_MEM_ALIGN\b)/,/^(?:CNT_PADDING_PG\b)/,/^(?:CNT_POSEIDON_G\b)/,/^(?:MEM_ALIGN_WR8\b)/,/^(?:MEM_ALIGN_RD\b)/,/^(?:MEM_ALIGN_WR\b)/,/^(?:SYS\b)/,/^(?:MEM\b)/,/^(?:STACK\b)/,/^(?:INCLUDE\b)/,/^(?:VAR\b)/,/^(?:GLOBAL\b)/,/^(?:CTX\b)/,/^(?:CONST\b)/,/^(?:CONSTL\b)/,/^(?:REPEAT\b)/,/^(?:"[^"]+")/,/^(?:[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?:%[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?:@[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?::)/,/^(?:,)/,/^(?:\()/,/^(?:\))/,/^(?:\+\+)/,/^(?:--)/,/^(?:\+)/,/^(?:-)/,/^(?:\/)/,/^(?:\*\*)/,/^(?:\*)/,/^(?:%)/,/^(?:=>)/,/^(?:<<)/,/^(?:>>)/,/^(?:\^)/,/^(?:\|\|)/,/^(?:&&)/,/^(?:&)/,/^(?:\|)/,/^(?:==)/,/^(?:!=)/,/^(?:<=)/,/^(?:>=)/,/^(?:>)/,/^(?:<)/,/^(?:=)/,/^(?:!)/,/^(?:\?\?)/,/^(?:\?)/,/^(?:\[)/,/^(?:\])/,/^(?:$)/,/^(?:.)/], +rules: [/^(?:;[^\n\r]*)/,/^(?:\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+\/)/,/^(?:((0x[0-9A-Fa-f][0-9A-Fa-f_]*)|([0-9][0-9_]*))n\b)/,/^(?:(0x[0-9A-Fa-f][0-9A-Fa-f_]*)|([0-9][0-9_]*))/,/^(?:\$\$\{[^\}]*\})/,/^(?:(\$(\{[^\}]*\})?))/,/^(?:[\r\n]+)/,/^(?:[ \t]+)/,/^(?:A\b)/,/^(?:B\b)/,/^(?:C\b)/,/^(?:D\b)/,/^(?:E\b)/,/^(?:RCX\b)/,/^(?:SR\b)/,/^(?:CTX\b)/,/^(?:SP\b)/,/^(?:PC\b)/,/^(?:GAS\b)/,/^(?:zkPC\b)/,/^(?:RR\b)/,/^(?:STEP\b)/,/^(?:ROTL_C\b)/,/^(?:HASHPOS\b)/,/^(?:MLOAD\b)/,/^(?:MSTORE\b)/,/^(?:HASHKLEN\b)/,/^(?:HASHKDIGEST\b)/,/^(?:HASHK1\b)/,/^(?:HASHK\b)/,/^(?:HASHPLEN\b)/,/^(?:HASHPDIGEST\b)/,/^(?:HASHP1\b)/,/^(?:HASHP\b)/,/^(?:JMP\b)/,/^(?:JMPC\b)/,/^(?:JMPZ\b)/,/^(?:JMPNZ\b)/,/^(?:JMPNC\b)/,/^(?:JMPN\b)/,/^(?:CALL\b)/,/^(?:RETURN\b)/,/^(?:ASSERT\b)/,/^(?:SLOAD\b)/,/^(?:SSTORE\b)/,/^(?:ARITH\b)/,/^(?:ARITH_ECADD_DIFFERENT\b)/,/^(?:ARITH_ECADD_SAME\b)/,/^(?:ARITH_BN254_MULFP2\b)/,/^(?:ADD\b)/,/^(?:SUB\b)/,/^(?:LT\b)/,/^(?:SLT\b)/,/^(?:EQ\b)/,/^(?:AND\b)/,/^(?:OR\b)/,/^(?:XOR\b)/,/^(?:CNT_ARITH\b)/,/^(?:CNT_BINARY\b)/,/^(?:CNT_KECCAK_F\b)/,/^(?:CNT_MEM_ALIGN\b)/,/^(?:CNT_PADDING_PG\b)/,/^(?:CNT_POSEIDON_G\b)/,/^(?:MEM_ALIGN_WR8\b)/,/^(?:MEM_ALIGN_RD\b)/,/^(?:MEM_ALIGN_WR\b)/,/^(?:SYS\b)/,/^(?:MEM\b)/,/^(?:STACK\b)/,/^(?:INCLUDE\b)/,/^(?:VAR\b)/,/^(?:GLOBAL\b)/,/^(?:CTX\b)/,/^(?:CONST\b)/,/^(?:CONSTL\b)/,/^(?:REPEAT\b)/,/^(?:"[^"]+")/,/^(?:[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?:%[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?:@[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?::)/,/^(?:,)/,/^(?:\()/,/^(?:\))/,/^(?:\+\+)/,/^(?:--)/,/^(?:\+)/,/^(?:-)/,/^(?:\/)/,/^(?:\*\*)/,/^(?:\*)/,/^(?:%)/,/^(?:=>)/,/^(?:<<)/,/^(?:>>)/,/^(?:\^)/,/^(?:\|\|)/,/^(?:&&)/,/^(?:&)/,/^(?:\|)/,/^(?:==)/,/^(?:!=)/,/^(?:<=)/,/^(?:>=)/,/^(?:>)/,/^(?:<)/,/^(?:=)/,/^(?:!)/,/^(?:\?\?)/,/^(?:\?)/,/^(?:\[)/,/^(?:\])/,/^(?:$)/,/^(?:.)/], conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113],"inclusive":true}} }); return lexer; diff --git a/src/zkasm_parser.jison b/src/zkasm_parser.jison index 8252636..d52c612 100644 --- a/src/zkasm_parser.jison +++ b/src/zkasm_parser.jison @@ -49,7 +49,7 @@ SSTORE { return 'SSTORE' } ARITH { return 'ARITH' } ARITH_ECADD_DIFFERENT { return 'ARITH_ECADD_DIFFERENT' } ARITH_ECADD_SAME { return 'ARITH_ECADD_SAME' } -ARITH_FP_CMUL { return 'ARITH_FP_CMUL' } +ARITH_BN254_MULFP2 { return 'ARITH_BN254_MULFP2' } ADD { return 'ADD' } SUB { return 'SUB' } LT { return 'LT' } @@ -644,7 +644,7 @@ op { $$ = { arithEq0: 0, arithEq1: 0, arithEq2: 0, arithEq3: 0} } - | ARITH_FP_CMUL + | ARITH_BN254_MULFP2 { $$ = { arithEq0: 0, arithEq1: 0, arithEq2: 0, arithEq3: 1} } From 3b88efb79097110dbf34a61030a9589d6091dfb4 Mon Sep 17 00:00:00 2001 From: zkronos73 Date: Sat, 27 May 2023 16:34:08 +0200 Subject: [PATCH 03/25] add instruction ARITH_BN254_ADDFP2 --- build/zkasm_parser.js | 243 +++++++++++++++++++++-------------------- src/zkasm_parser.jison | 13 ++- 2 files changed, 134 insertions(+), 122 deletions(-) diff --git a/build/zkasm_parser.js b/build/zkasm_parser.js index e0ac391..a01ec76 100644 --- a/build/zkasm_parser.js +++ b/build/zkasm_parser.js @@ -72,12 +72,12 @@ } */ var zkasm_parser = (function(){ -var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,10],$V1=[1,12],$V2=[1,13],$V3=[1,14],$V4=[1,26],$V5=[1,15],$V6=[1,28],$V7=[1,16],$V8=[1,18],$V9=[1,36],$Va=[1,17],$Vb=[1,27],$Vc=[1,20],$Vd=[1,23],$Ve=[1,29],$Vf=[1,40],$Vg=[1,34],$Vh=[1,45],$Vi=[1,46],$Vj=[1,47],$Vk=[1,48],$Vl=[1,49],$Vm=[1,50],$Vn=[1,51],$Vo=[1,30],$Vp=[1,31],$Vq=[1,32],$Vr=[1,33],$Vs=[1,35],$Vt=[1,37],$Vu=[1,38],$Vv=[1,39],$Vw=[1,41],$Vx=[1,42],$Vy=[1,43],$Vz=[1,44],$VA=[5,13,15,17,18,21,23,24,27,28,30,31,33,36,63,66,84,85,107,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130],$VB=[1,58],$VC=[1,59],$VD=[1,60],$VE=[1,61],$VF=[1,62],$VG=[1,63],$VH=[1,64],$VI=[1,65],$VJ=[1,66],$VK=[1,67],$VL=[1,68],$VM=[1,71],$VN=[1,72],$VO=[1,73],$VP=[1,74],$VQ=[1,75],$VR=[1,76],$VS=[1,77],$VT=[1,78],$VU=[1,79],$VV=[1,80],$VW=[1,81],$VX=[1,82],$VY=[1,83],$VZ=[1,84],$V_=[1,85],$V$=[1,86],$V01=[1,87],$V11=[1,88],$V21=[1,89],$V31=[1,90],$V41=[1,91],$V51=[1,92],$V61=[1,93],$V71=[1,94],$V81=[1,95],$V91=[1,96],$Va1=[13,15],$Vb1=[13,15,35,36,59],$Vc1=[1,108],$Vd1=[13,15,35,36,37,59],$Ve1=[13,15,35,36,37,59,67],$Vf1=[1,113],$Vg1=[13,67],$Vh1=[1,146],$Vi1=[1,142],$Vj1=[1,143],$Vk1=[1,144],$Vl1=[1,145],$Vm1=[1,149],$Vn1=[1,150],$Vo1=[1,172],$Vp1=[1,174],$Vq1=[1,173],$Vr1=[1,175],$Vs1=[1,176],$Vt1=[1,177],$Vu1=[13,15,67],$Vv1=[5,13,15,17,18,21,23,24,27,28,30,31,33,63,66,84,85,107,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130],$Vw1=[1,215],$Vx1=[1,216],$Vy1=[1,217],$Vz1=[1,218],$VA1=[1,219],$VB1=[1,220],$VC1=[1,221],$VD1=[1,222],$VE1=[1,223],$VF1=[1,224],$VG1=[1,225],$VH1=[1,226],$VI1=[1,227],$VJ1=[1,228],$VK1=[1,229],$VL1=[1,230],$VM1=[1,231],$VN1=[1,232],$VO1=[1,233],$VP1=[1,234],$VQ1=[5,13,15,17,18,21,23,24,27,28,30,31,33,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,107,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130],$VR1=[5,13,15,17,18,21,23,24,27,28,30,31,33,35,36,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,107,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130],$VS1=[5,13,15,17,18,21,23,24,27,28,30,31,33,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,107,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130],$VT1=[5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,107,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130],$VU1=[5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,50,51,52,53,55,57,63,66,84,85,107,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130]; +var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,10],$V1=[1,12],$V2=[1,13],$V3=[1,14],$V4=[1,26],$V5=[1,15],$V6=[1,28],$V7=[1,16],$V8=[1,18],$V9=[1,36],$Va=[1,17],$Vb=[1,27],$Vc=[1,20],$Vd=[1,23],$Ve=[1,29],$Vf=[1,40],$Vg=[1,34],$Vh=[1,45],$Vi=[1,46],$Vj=[1,47],$Vk=[1,48],$Vl=[1,49],$Vm=[1,50],$Vn=[1,51],$Vo=[1,30],$Vp=[1,31],$Vq=[1,32],$Vr=[1,33],$Vs=[1,35],$Vt=[1,37],$Vu=[1,38],$Vv=[1,39],$Vw=[1,41],$Vx=[1,42],$Vy=[1,43],$Vz=[1,44],$VA=[5,13,15,17,18,21,23,24,27,28,30,31,33,36,63,66,84,85,108,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131],$VB=[1,58],$VC=[1,59],$VD=[1,60],$VE=[1,61],$VF=[1,62],$VG=[1,63],$VH=[1,64],$VI=[1,65],$VJ=[1,66],$VK=[1,67],$VL=[1,68],$VM=[1,71],$VN=[1,72],$VO=[1,73],$VP=[1,74],$VQ=[1,75],$VR=[1,76],$VS=[1,77],$VT=[1,78],$VU=[1,79],$VV=[1,80],$VW=[1,81],$VX=[1,82],$VY=[1,83],$VZ=[1,84],$V_=[1,85],$V$=[1,86],$V01=[1,87],$V11=[1,88],$V21=[1,89],$V31=[1,90],$V41=[1,91],$V51=[1,92],$V61=[1,93],$V71=[1,94],$V81=[1,95],$V91=[1,96],$Va1=[1,97],$Vb1=[13,15],$Vc1=[13,15,35,36,59],$Vd1=[1,109],$Ve1=[13,15,35,36,37,59],$Vf1=[13,15,35,36,37,59,67],$Vg1=[1,114],$Vh1=[13,67],$Vi1=[1,147],$Vj1=[1,143],$Vk1=[1,144],$Vl1=[1,145],$Vm1=[1,146],$Vn1=[1,150],$Vo1=[1,151],$Vp1=[1,173],$Vq1=[1,175],$Vr1=[1,174],$Vs1=[1,176],$Vt1=[1,177],$Vu1=[1,178],$Vv1=[13,15,67],$Vw1=[5,13,15,17,18,21,23,24,27,28,30,31,33,63,66,84,85,108,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131],$Vx1=[1,216],$Vy1=[1,217],$Vz1=[1,218],$VA1=[1,219],$VB1=[1,220],$VC1=[1,221],$VD1=[1,222],$VE1=[1,223],$VF1=[1,224],$VG1=[1,225],$VH1=[1,226],$VI1=[1,227],$VJ1=[1,228],$VK1=[1,229],$VL1=[1,230],$VM1=[1,231],$VN1=[1,232],$VO1=[1,233],$VP1=[1,234],$VQ1=[1,235],$VR1=[5,13,15,17,18,21,23,24,27,28,30,31,33,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,108,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131],$VS1=[5,13,15,17,18,21,23,24,27,28,30,31,33,35,36,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,108,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131],$VT1=[5,13,15,17,18,21,23,24,27,28,30,31,33,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,108,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131],$VU1=[5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,108,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131],$VV1=[5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,50,51,52,53,55,57,63,66,84,85,108,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131]; var parser = {trace: function trace () { }, yy: {}, -symbols_: {"error":2,"allStatments":3,"statmentList":4,"EOF":5,"statment":6,"step":7,"label":8,"varDef":9,"constDef":10,"include":11,"command":12,"LF":13,"assignment":14,":":15,"opList":16,"IDENTIFIER":17,"VAR":18,"scope":19,"[":20,"NUMBER":21,"]":22,"CONST":23,"CONSTID":24,"=":25,"nexpr":26,"CONSTL":27,"COMMAND":28,"GLOBAL":29,"CTX":30,"INCLUDE":31,"STRING":32,"NUMBERL":33,"??":34,"+":35,"-":36,"*":37,"**":38,"%":39,"/":40,"<<":41,">>":42,"|":43,"&":44,"^":45,"<":46,">":47,"<=":48,">=":49,"==":50,"!=":51,"&&":52,"||":53,"!":54,"?":55,"(":56,")":57,"inRegsSum":58,"=>":59,"regsList":60,"inRegP":61,"inReg":62,"TAG":63,"reg":64,"counter":65,"REFERENCE":66,",":67,"op":68,"MLOAD":69,"addr":70,"MSTORE":71,"HASHK":72,"hashId":73,"HASHK1":74,"HASHKLEN":75,"HASHKDIGEST":76,"HASHP":77,"HASHP1":78,"HASHPLEN":79,"HASHPDIGEST":80,"JMP":81,"jmpCond":82,"jmpNotCond":83,"RR":84,"E":85,"CALL":86,"RETURN":87,"ASSERT":88,"SLOAD":89,"SSTORE":90,"ARITH":91,"ARITH_ECADD_DIFFERENT":92,"ARITH_ECADD_SAME":93,"ARITH_BN254_MULFP2":94,"ADD":95,"SUB":96,"LT":97,"SLT":98,"EQ":99,"AND":100,"OR":101,"XOR":102,"MEM_ALIGN_RD":103,"MEM_ALIGN_WR":104,"MEM_ALIGN_WR8":105,"REPEAT":106,"RCX":107,"JMPN":108,"JMPC":109,"JMPZ":110,"JMPNC":111,"JMPNZ":112,"CNT_ARITH":113,"CNT_BINARY":114,"CNT_KECCAK_F":115,"CNT_MEM_ALIGN":116,"CNT_PADDING_PG":117,"CNT_POSEIDON_G":118,"A":119,"B":120,"C":121,"D":122,"SR":123,"SP":124,"PC":125,"GAS":126,"zkPC":127,"STEP":128,"HASHPOS":129,"ROTL_C":130,"++":131,"--":132,"SYS":133,"MEM":134,"STACK":135,"$accept":0,"$end":1}, -terminals_: {2:"error",5:"EOF",13:"LF",15:":",17:"IDENTIFIER",18:"VAR",20:"[",21:"NUMBER",22:"]",23:"CONST",24:"CONSTID",25:"=",27:"CONSTL",28:"COMMAND",29:"GLOBAL",30:"CTX",31:"INCLUDE",32:"STRING",33:"NUMBERL",34:"??",35:"+",36:"-",37:"*",38:"**",39:"%",40:"/",41:"<<",42:">>",43:"|",44:"&",45:"^",46:"<",47:">",48:"<=",49:">=",50:"==",51:"!=",52:"&&",53:"||",54:"!",55:"?",56:"(",57:")",59:"=>",63:"TAG",66:"REFERENCE",67:",",69:"MLOAD",71:"MSTORE",72:"HASHK",74:"HASHK1",75:"HASHKLEN",76:"HASHKDIGEST",77:"HASHP",78:"HASHP1",79:"HASHPLEN",80:"HASHPDIGEST",81:"JMP",84:"RR",85:"E",86:"CALL",87:"RETURN",88:"ASSERT",89:"SLOAD",90:"SSTORE",91:"ARITH",92:"ARITH_ECADD_DIFFERENT",93:"ARITH_ECADD_SAME",94:"ARITH_BN254_MULFP2",95:"ADD",96:"SUB",97:"LT",98:"SLT",99:"EQ",100:"AND",101:"OR",102:"XOR",103:"MEM_ALIGN_RD",104:"MEM_ALIGN_WR",105:"MEM_ALIGN_WR8",106:"REPEAT",107:"RCX",108:"JMPN",109:"JMPC",110:"JMPZ",111:"JMPNC",112:"JMPNZ",113:"CNT_ARITH",114:"CNT_BINARY",115:"CNT_KECCAK_F",116:"CNT_MEM_ALIGN",117:"CNT_PADDING_PG",118:"CNT_POSEIDON_G",119:"A",120:"B",121:"C",122:"D",123:"SR",124:"SP",125:"PC",126:"GAS",127:"zkPC",128:"STEP",129:"HASHPOS",130:"ROTL_C",131:"++",132:"--",133:"SYS",134:"MEM",135:"STACK"}, -productions_: [0,[3,2],[4,2],[4,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[7,4],[7,2],[7,3],[8,2],[9,3],[9,6],[10,4],[10,4],[12,1],[19,1],[19,1],[11,2],[26,1],[26,1],[26,1],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,2],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,2],[26,5],[26,3],[14,3],[14,1],[58,3],[58,3],[58,2],[58,1],[61,3],[61,1],[62,1],[62,1],[62,1],[62,3],[62,3],[62,1],[62,1],[62,1],[62,1],[60,3],[60,1],[16,3],[16,1],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,6],[68,4],[68,6],[68,4],[68,4],[68,6],[68,6],[68,4],[68,4],[68,6],[68,6],[68,6],[68,6],[68,8],[68,8],[68,4],[68,6],[68,6],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,4],[82,1],[82,1],[82,1],[83,1],[83,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[70,1],[70,3],[70,3],[70,2],[70,2],[70,5],[70,5],[70,3],[70,5],[70,5],[70,3],[70,5],[70,5],[70,3],[70,1],[70,3],[70,3],[73,1],[73,1]], +symbols_: {"error":2,"allStatments":3,"statmentList":4,"EOF":5,"statment":6,"step":7,"label":8,"varDef":9,"constDef":10,"include":11,"command":12,"LF":13,"assignment":14,":":15,"opList":16,"IDENTIFIER":17,"VAR":18,"scope":19,"[":20,"NUMBER":21,"]":22,"CONST":23,"CONSTID":24,"=":25,"nexpr":26,"CONSTL":27,"COMMAND":28,"GLOBAL":29,"CTX":30,"INCLUDE":31,"STRING":32,"NUMBERL":33,"??":34,"+":35,"-":36,"*":37,"**":38,"%":39,"/":40,"<<":41,">>":42,"|":43,"&":44,"^":45,"<":46,">":47,"<=":48,">=":49,"==":50,"!=":51,"&&":52,"||":53,"!":54,"?":55,"(":56,")":57,"inRegsSum":58,"=>":59,"regsList":60,"inRegP":61,"inReg":62,"TAG":63,"reg":64,"counter":65,"REFERENCE":66,",":67,"op":68,"MLOAD":69,"addr":70,"MSTORE":71,"HASHK":72,"hashId":73,"HASHK1":74,"HASHKLEN":75,"HASHKDIGEST":76,"HASHP":77,"HASHP1":78,"HASHPLEN":79,"HASHPDIGEST":80,"JMP":81,"jmpCond":82,"jmpNotCond":83,"RR":84,"E":85,"CALL":86,"RETURN":87,"ASSERT":88,"SLOAD":89,"SSTORE":90,"ARITH":91,"ARITH_ECADD_DIFFERENT":92,"ARITH_ECADD_SAME":93,"ARITH_BN254_MULFP2":94,"ARITH_BN254_ADDFP2":95,"ADD":96,"SUB":97,"LT":98,"SLT":99,"EQ":100,"AND":101,"OR":102,"XOR":103,"MEM_ALIGN_RD":104,"MEM_ALIGN_WR":105,"MEM_ALIGN_WR8":106,"REPEAT":107,"RCX":108,"JMPN":109,"JMPC":110,"JMPZ":111,"JMPNC":112,"JMPNZ":113,"CNT_ARITH":114,"CNT_BINARY":115,"CNT_KECCAK_F":116,"CNT_MEM_ALIGN":117,"CNT_PADDING_PG":118,"CNT_POSEIDON_G":119,"A":120,"B":121,"C":122,"D":123,"SR":124,"SP":125,"PC":126,"GAS":127,"zkPC":128,"STEP":129,"HASHPOS":130,"ROTL_C":131,"++":132,"--":133,"SYS":134,"MEM":135,"STACK":136,"$accept":0,"$end":1}, +terminals_: {2:"error",5:"EOF",13:"LF",15:":",17:"IDENTIFIER",18:"VAR",20:"[",21:"NUMBER",22:"]",23:"CONST",24:"CONSTID",25:"=",27:"CONSTL",28:"COMMAND",29:"GLOBAL",30:"CTX",31:"INCLUDE",32:"STRING",33:"NUMBERL",34:"??",35:"+",36:"-",37:"*",38:"**",39:"%",40:"/",41:"<<",42:">>",43:"|",44:"&",45:"^",46:"<",47:">",48:"<=",49:">=",50:"==",51:"!=",52:"&&",53:"||",54:"!",55:"?",56:"(",57:")",59:"=>",63:"TAG",66:"REFERENCE",67:",",69:"MLOAD",71:"MSTORE",72:"HASHK",74:"HASHK1",75:"HASHKLEN",76:"HASHKDIGEST",77:"HASHP",78:"HASHP1",79:"HASHPLEN",80:"HASHPDIGEST",81:"JMP",84:"RR",85:"E",86:"CALL",87:"RETURN",88:"ASSERT",89:"SLOAD",90:"SSTORE",91:"ARITH",92:"ARITH_ECADD_DIFFERENT",93:"ARITH_ECADD_SAME",94:"ARITH_BN254_MULFP2",95:"ARITH_BN254_ADDFP2",96:"ADD",97:"SUB",98:"LT",99:"SLT",100:"EQ",101:"AND",102:"OR",103:"XOR",104:"MEM_ALIGN_RD",105:"MEM_ALIGN_WR",106:"MEM_ALIGN_WR8",107:"REPEAT",108:"RCX",109:"JMPN",110:"JMPC",111:"JMPZ",112:"JMPNC",113:"JMPNZ",114:"CNT_ARITH",115:"CNT_BINARY",116:"CNT_KECCAK_F",117:"CNT_MEM_ALIGN",118:"CNT_PADDING_PG",119:"CNT_POSEIDON_G",120:"A",121:"B",122:"C",123:"D",124:"SR",125:"SP",126:"PC",127:"GAS",128:"zkPC",129:"STEP",130:"HASHPOS",131:"ROTL_C",132:"++",133:"--",134:"SYS",135:"MEM",136:"STACK"}, +productions_: [0,[3,2],[4,2],[4,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[7,4],[7,2],[7,3],[8,2],[9,3],[9,6],[10,4],[10,4],[12,1],[19,1],[19,1],[11,2],[26,1],[26,1],[26,1],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,2],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,2],[26,5],[26,3],[14,3],[14,1],[58,3],[58,3],[58,2],[58,1],[61,3],[61,1],[62,1],[62,1],[62,1],[62,3],[62,3],[62,1],[62,1],[62,1],[62,1],[60,3],[60,1],[16,3],[16,1],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,6],[68,4],[68,6],[68,4],[68,4],[68,6],[68,6],[68,4],[68,4],[68,6],[68,6],[68,6],[68,6],[68,8],[68,8],[68,4],[68,6],[68,6],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,4],[82,1],[82,1],[82,1],[83,1],[83,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[70,1],[70,3],[70,3],[70,2],[70,2],[70,5],[70,5],[70,3],[70,5],[70,5],[70,3],[70,5],[70,5],[70,3],[70,1],[70,3],[70,3],[73,1],[73,1]], performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { /* this == yyval */ @@ -481,203 +481,208 @@ case 104: break; case 105: - this.$ = { arithEq0: 1, arithEq1: 0, arithEq2: 0, arithEq3: 0} + this.$ = { arithEq0: 1, arithEq1: 0, arithEq2: 0, arithEq3: 0, arithEq4: 0 } break; case 106: - this.$ = { arithEq0: 0, arithEq1: 1, arithEq2: 0, arithEq3: 0} + this.$ = { arithEq0: 0, arithEq1: 1, arithEq2: 0, arithEq3: 0, arithEq4: 0 } break; case 107: - this.$ = { arithEq0: 0, arithEq1: 0, arithEq2: 0, arithEq3: 0} + this.$ = { arithEq0: 0, arithEq1: 0, arithEq2: 0, arithEq3: 0, arithEq4: 0 } break; case 108: - this.$ = { arithEq0: 0, arithEq1: 0, arithEq2: 0, arithEq3: 1} + this.$ = { arithEq0: 0, arithEq1: 0, arithEq2: 0, arithEq3: 1, arithEq4: 0 } break; case 109: - this.$ = { bin: 1, binOpcode: 0} + this.$ = { arithEq0: 0, arithEq1: 0, arithEq2: 0, arithEq3: 0, arithEq4: 1 } break; case 110: - this.$ = { bin: 1, binOpcode: 1} + this.$ = { bin: 1, binOpcode: 0} break; case 111: - this.$ = { bin: 1, binOpcode: 2} + this.$ = { bin: 1, binOpcode: 1} break; case 112: - this.$ = { bin: 1, binOpcode: 3} + this.$ = { bin: 1, binOpcode: 2} break; case 113: - this.$ = { bin: 1, binOpcode: 4} + this.$ = { bin: 1, binOpcode: 3} break; case 114: - this.$ = { bin: 1, binOpcode: 5} + this.$ = { bin: 1, binOpcode: 4} break; case 115: - this.$ = { bin: 1, binOpcode: 6} + this.$ = { bin: 1, binOpcode: 5} break; case 116: - this.$ = { bin: 1, binOpcode: 7} + this.$ = { bin: 1, binOpcode: 6} break; case 117: - this.$ = { memAlignRD: 1, memAlignWR: 0, memAlignWR8: 0} + this.$ = { bin: 1, binOpcode: 7} break; case 118: - this.$ = { memAlignRD: 0, memAlignWR: 1, memAlignWR8: 0} + this.$ = { memAlignRD: 1, memAlignWR: 0, memAlignWR8: 0} break; case 119: - this.$ = { memAlignRD: 0, memAlignWR: 0, memAlignWR8: 1} + this.$ = { memAlignRD: 0, memAlignWR: 1, memAlignWR8: 0} break; case 120: + this.$ = { memAlignRD: 0, memAlignWR: 0, memAlignWR8: 1} + +break; +case 121: + this.$ = { repeat: 1 } break; -case 124: +case 125: this.$ = 'JMPC' break; -case 125: +case 126: this.$ = 'JMPZ' break; -case 126: +case 127: this.$ = 'cntArith' break; -case 127: +case 128: this.$ = 'cntBinary' break; -case 128: +case 129: this.$ = 'cntKeccakF' break; -case 129: +case 130: this.$ = 'cntMemAlign' break; -case 130: +case 131: this.$ = 'cntPaddingPG' break; -case 131: +case 132: this.$ = 'cntPoseidonG' break; -case 148: +case 149: this.$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack:0, offset: 0, useCTX: 1} break; -case 149: +case 150: this.$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack: 0, offset: $$[$0], useCTX: 1} break; -case 150: +case 151: this.$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack: 0, offset: -$$[$0], useCTX: 1} break; -case 151: +case 152: this.$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack: 1, offset: 0, useCTX: 1} break; -case 152: +case 153: this.$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack: -1, offset: 0, useCTX: 1} break; -case 153: +case 154: this.$ = { isStack: 0, isMem:0, ind:1, indRR: 0, incStack: 0, offset: $$[$0]} break; -case 154: +case 155: this.$ = { isStack: 0, isMem:0, ind:1, indRR: 0, incStack: 0, offset: -$$[$0]} break; -case 155: +case 156: this.$ = { isStack: 0, isMem:0, ind:1, indRR: 0, incStack: 0, offset: 0} break; -case 156: +case 157: this.$ = { isStack: 0, isMem: 1, ind:1, indRR: 0, incStack: 0, offset: $$[$0], useCTX: 1} break; -case 157: +case 158: this.$ = { isStack: 0, isMem: 1, ind:1, indRR: 0, incStack: 0, offset: -$$[$0], useCTX: 1} break; -case 158: +case 159: this.$ = { isStack: 0, isMem: 1, ind:1, indRR: 0, incStack: 0, offset: 0, useCTX: 1} break; -case 159: +case 160: this.$ = { isStack: 1, ind:1, indRR: 0, incStack: 0, offset: $$[$0], useCTX: 1} break; -case 160: +case 161: this.$ = { isStack: 1, ind:1, indRR: 0, incStack: 0, offset: -$$[$0], useCTX: 1} break; -case 161: +case 162: this.$ = { isStack: 1, ind:1, indRR: 0, incStack: 0, offset: 0, useCTX: 1} break; -case 162: +case 163: this.$ = { offset: $$[$0] } break; -case 163: +case 164: this.$ = { offset: $$[$0-2], ind: 0, indRR: 1 } break; -case 164: +case 165: this.$ = { offset: $$[$0-2], ind: 1, indRR: 0 } break; -case 165: +case 166: this.$ = {ind: 0, indRR: 0, offset:$$[$0]} break; -case 166: +case 167: this.$ = {ind: 1, indRR: 0, offset:0} break; } }, -table: [{3:1,4:2,6:3,7:4,8:5,9:6,10:7,11:8,12:9,13:$V0,14:11,15:$V1,17:$V2,18:$V3,21:$V4,23:$V5,24:$V6,27:$V7,28:$V8,30:$V9,31:$Va,33:$Vb,36:$Vc,58:19,61:21,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,107:$Vh,113:$Vi,114:$Vj,115:$Vk,116:$Vl,117:$Vm,118:$Vn,119:$Vo,120:$Vp,121:$Vq,122:$Vr,123:$Vs,124:$Vt,125:$Vu,126:$Vv,127:$Vw,128:$Vx,129:$Vy,130:$Vz},{1:[3]},{5:[1,52],6:53,7:4,8:5,9:6,10:7,11:8,12:9,13:$V0,14:11,15:$V1,17:$V2,18:$V3,21:$V4,23:$V5,24:$V6,27:$V7,28:$V8,30:$V9,31:$Va,33:$Vb,36:$Vc,58:19,61:21,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,107:$Vh,113:$Vi,114:$Vj,115:$Vk,116:$Vl,117:$Vm,118:$Vn,119:$Vo,120:$Vp,121:$Vq,122:$Vr,123:$Vs,124:$Vt,125:$Vu,126:$Vv,127:$Vw,128:$Vx,129:$Vy,130:$Vz},o($VA,[2,3]),o($VA,[2,4]),o($VA,[2,5]),o($VA,[2,6]),o($VA,[2,7]),o($VA,[2,8]),o($VA,[2,9]),o($VA,[2,10]),{13:[1,55],15:[1,54]},{16:56,68:57,69:$VB,71:$VC,72:$VD,74:$VE,75:$VF,76:$VG,77:$VH,78:$VI,79:$VJ,80:$VK,81:$VL,82:69,83:70,86:$VM,87:$VN,88:$VO,89:$VP,90:$VQ,91:$VR,92:$VS,93:$VT,94:$VU,95:$VV,96:$VW,97:$VX,98:$VY,99:$VZ,100:$V_,101:$V$,102:$V01,103:$V11,104:$V21,105:$V31,106:$V41,108:$V51,109:$V61,110:$V71,111:$V81,112:$V91},{15:[1,97]},{19:98,29:[1,99],30:[1,100]},{24:[1,101]},{24:[1,102]},{32:[1,103]},o($VA,[2,19]),o($Va1,[2,51],{35:[1,105],36:[1,106],59:[1,104]}),{21:$V4,24:$V6,30:$V9,33:$Vb,61:107,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,107:$Vh,113:$Vi,114:$Vj,115:$Vk,116:$Vl,117:$Vm,118:$Vn,119:$Vo,120:$Vp,121:$Vq,122:$Vr,123:$Vs,124:$Vt,125:$Vu,126:$Vv,127:$Vw,128:$Vx,129:$Vy,130:$Vz},o($Vb1,[2,55],{37:$Vc1}),o($Vd1,[2,57]),o($Vd1,[2,58]),o($Vd1,[2,59]),o($Vd1,[2,60]),o($Vd1,[2,63],{38:[1,109]}),o($Vd1,[2,64],{38:[1,110]}),o($Vd1,[2,65]),o($Vd1,[2,66]),o($Ve1,[2,132]),o($Ve1,[2,133]),o($Ve1,[2,134]),o($Ve1,[2,135]),o($Ve1,[2,136]),o($Ve1,[2,137]),o($Ve1,[2,138]),o($Ve1,[2,139]),o($Ve1,[2,140]),o($Ve1,[2,141]),o($Ve1,[2,142]),o($Ve1,[2,143]),o($Ve1,[2,144]),o($Ve1,[2,145]),o($Ve1,[2,146]),o($Ve1,[2,147]),o($Vd1,[2,126]),o($Vd1,[2,127]),o($Vd1,[2,128]),o($Vd1,[2,129]),o($Vd1,[2,130]),o($Vd1,[2,131]),{1:[2,1]},o($VA,[2,2]),{16:111,68:57,69:$VB,71:$VC,72:$VD,74:$VE,75:$VF,76:$VG,77:$VH,78:$VI,79:$VJ,80:$VK,81:$VL,82:69,83:70,86:$VM,87:$VN,88:$VO,89:$VP,90:$VQ,91:$VR,92:$VS,93:$VT,94:$VU,95:$VV,96:$VW,97:$VX,98:$VY,99:$VZ,100:$V_,101:$V$,102:$V01,103:$V11,104:$V21,105:$V31,106:$V41,108:$V51,109:$V61,110:$V71,111:$V81,112:$V91},o($VA,[2,12]),{13:[1,112],67:$Vf1},o($Vg1,[2,70]),{56:[1,114]},{56:[1,115]},{56:[1,116]},{56:[1,117]},{56:[1,118]},{56:[1,119]},{56:[1,120]},{56:[1,121]},{56:[1,122]},{56:[1,123]},{56:[1,124]},{56:[1,125]},{56:[1,126]},{56:[1,127]},o($Vg1,[2,101]),o($Vg1,[2,102]),o($Vg1,[2,103]),o($Vg1,[2,104]),o($Vg1,[2,105]),o($Vg1,[2,106]),o($Vg1,[2,107]),o($Vg1,[2,108]),o($Vg1,[2,109]),o($Vg1,[2,110]),o($Vg1,[2,111]),o($Vg1,[2,112]),o($Vg1,[2,113]),o($Vg1,[2,114]),o($Vg1,[2,115]),o($Vg1,[2,116]),o($Vg1,[2,117]),o($Vg1,[2,118]),o($Vg1,[2,119]),{56:[1,128]},{56:[2,121]},{56:[2,122]},{56:[2,123]},{56:[2,124]},{56:[2,125]},o($VA,[2,14]),{17:[1,129]},{17:[2,20]},{17:[2,21]},{25:[1,130]},{25:[1,131]},o($VA,[2,22]),{30:$V9,60:132,64:133,84:$Vf,85:$Vg,107:$Vh,119:$Vo,120:$Vp,121:$Vq,122:$Vr,123:$Vs,124:$Vt,125:$Vu,126:$Vv,127:$Vw,128:$Vx,129:$Vy,130:$Vz},{21:$V4,24:$V6,30:$V9,33:$Vb,61:134,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,107:$Vh,113:$Vi,114:$Vj,115:$Vk,116:$Vl,117:$Vm,118:$Vn,119:$Vo,120:$Vp,121:$Vq,122:$Vr,123:$Vs,124:$Vt,125:$Vu,126:$Vv,127:$Vw,128:$Vx,129:$Vy,130:$Vz},{21:$V4,24:$V6,30:$V9,33:$Vb,61:135,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,107:$Vh,113:$Vi,114:$Vj,115:$Vk,116:$Vl,117:$Vm,118:$Vn,119:$Vo,120:$Vp,121:$Vq,122:$Vr,123:$Vs,124:$Vt,125:$Vu,126:$Vv,127:$Vw,128:$Vx,129:$Vy,130:$Vz},o($Vb1,[2,54],{37:$Vc1}),{21:$V4,24:$V6,30:$V9,33:$Vb,62:136,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,107:$Vh,113:$Vi,114:$Vj,115:$Vk,116:$Vl,117:$Vm,118:$Vn,119:$Vo,120:$Vp,121:$Vq,122:$Vr,123:$Vs,124:$Vt,125:$Vu,126:$Vv,127:$Vw,128:$Vx,129:$Vy,130:$Vz},{21:[1,137]},{33:[1,138]},{13:[1,139],67:$Vf1},o($VA,[2,13]),{68:140,69:$VB,71:$VC,72:$VD,74:$VE,75:$VF,76:$VG,77:$VH,78:$VI,79:$VJ,80:$VK,81:$VL,82:69,83:70,86:$VM,87:$VN,88:$VO,89:$VP,90:$VQ,91:$VR,92:$VS,93:$VT,94:$VU,95:$VV,96:$VW,97:$VX,98:$VY,99:$VZ,100:$V_,101:$V$,102:$V01,103:$V11,104:$V21,105:$V31,106:$V41,108:$V51,109:$V61,110:$V71,111:$V81,112:$V91},{17:$Vh1,70:141,124:$Vi1,133:$Vj1,134:$Vk1,135:$Vl1},{17:$Vh1,70:147,124:$Vi1,133:$Vj1,134:$Vk1,135:$Vl1},{21:$Vm1,73:148,85:$Vn1},{21:$Vm1,73:151,85:$Vn1},{21:$Vm1,73:152,85:$Vn1},{21:$Vm1,73:153,85:$Vn1},{21:$Vm1,73:154,85:$Vn1},{21:$Vm1,73:155,85:$Vn1},{21:$Vm1,73:156,85:$Vn1},{21:$Vm1,73:157,85:$Vn1},{17:[1,158],66:[1,161],84:[1,159],85:[1,160]},{17:[1,162],66:[1,165],84:[1,163],85:[1,164]},{17:[1,166]},{17:[1,167],66:[1,168]},{107:[1,169]},o($VA,[2,15],{20:[1,170]}),{21:$Vo1,24:$Vp1,26:171,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{21:$Vo1,24:$Vp1,26:178,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},o($Va1,[2,50],{67:[1,179]}),o($Vu1,[2,68]),o($Vb1,[2,52],{37:$Vc1}),o($Vb1,[2,53],{37:$Vc1}),o($Vd1,[2,56]),o($Vd1,[2,61]),o($Vd1,[2,62]),o($VA,[2,11]),o($Vg1,[2,69]),{57:[1,180]},{35:[1,181],36:[1,182],57:[2,148],131:[1,183],132:[1,184]},{15:[1,185]},{15:[1,186]},{15:[1,187]},{35:[1,188],57:[2,162]},{57:[1,189]},{57:[1,190]},{57:[2,165]},{57:[2,166]},{57:[1,191]},{57:[1,192]},{57:[1,193]},{57:[1,194]},{57:[1,195]},{57:[1,196]},{57:[1,197]},{57:[1,198]},{57:[1,199]},{57:[1,200]},{35:[1,201]},{57:[1,202],67:[1,203]},{57:[1,204],67:[1,205]},{57:[1,206],67:[1,207]},{35:[1,208]},{57:[1,209],67:[1,210]},{57:[1,211]},{35:[1,212]},{57:[1,213]},{21:[1,214]},o($Vv1,[2,17],{35:$Vw1,36:$Vx1,37:$Vy1,38:$Vz1,39:$VA1,40:$VB1,41:$VC1,42:$VD1,43:$VE1,44:$VF1,45:$VG1,46:$VH1,47:$VI1,48:$VJ1,49:$VK1,50:$VL1,51:$VM1,52:$VN1,53:$VO1,55:$VP1}),o($VQ1,[2,23]),o($VQ1,[2,24]),o($VQ1,[2,25],{34:[1,235]}),{21:$Vo1,24:$Vp1,26:236,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{21:$Vo1,24:$Vp1,26:237,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{21:$Vo1,24:$Vp1,26:238,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},o($Vv1,[2,18],{35:$Vw1,36:$Vx1,37:$Vy1,38:$Vz1,39:$VA1,40:$VB1,41:$VC1,42:$VD1,43:$VE1,44:$VF1,45:$VG1,46:$VH1,47:$VI1,48:$VJ1,49:$VK1,50:$VL1,51:$VM1,52:$VN1,53:$VO1,55:$VP1}),{30:$V9,64:239,84:$Vf,85:$Vg,107:$Vh,119:$Vo,120:$Vp,121:$Vq,122:$Vr,123:$Vs,124:$Vt,125:$Vu,126:$Vv,127:$Vw,128:$Vx,129:$Vy,130:$Vz},o($Vg1,[2,71]),{21:[1,240]},{21:[1,241]},{57:[2,151]},{57:[2,152]},{85:[1,242]},{85:[1,243]},{85:[1,244]},{84:[1,245],85:[1,246]},o($Vg1,[2,72]),o($Vg1,[2,73]),o($Vg1,[2,74]),o($Vg1,[2,75]),o($Vg1,[2,76]),o($Vg1,[2,77]),o($Vg1,[2,78]),o($Vg1,[2,79]),o($Vg1,[2,80]),o($Vg1,[2,81]),o($Vg1,[2,86]),o($Vg1,[2,87]),{84:[1,247],85:[1,248]},o($Vg1,[2,82]),{17:[1,249]},o($Vg1,[2,90]),{17:[1,250]},o($Vg1,[2,91]),{17:[1,251]},{84:[1,252],85:[1,253]},o($Vg1,[2,84]),{17:[1,254]},o($Vg1,[2,98]),{84:[1,255],85:[1,256]},o($Vg1,[2,120]),{22:[1,257]},{21:$Vo1,24:$Vp1,26:258,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{21:$Vo1,24:$Vp1,26:259,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{21:$Vo1,24:$Vp1,26:260,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{21:$Vo1,24:$Vp1,26:261,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{21:$Vo1,24:$Vp1,26:262,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{21:$Vo1,24:$Vp1,26:263,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{21:$Vo1,24:$Vp1,26:264,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{21:$Vo1,24:$Vp1,26:265,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{21:$Vo1,24:$Vp1,26:266,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{21:$Vo1,24:$Vp1,26:267,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{21:$Vo1,24:$Vp1,26:268,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{21:$Vo1,24:$Vp1,26:269,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{21:$Vo1,24:$Vp1,26:270,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{21:$Vo1,24:$Vp1,26:271,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{21:$Vo1,24:$Vp1,26:272,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{21:$Vo1,24:$Vp1,26:273,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{21:$Vo1,24:$Vp1,26:274,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{21:$Vo1,24:$Vp1,26:275,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{21:$Vo1,24:$Vp1,26:276,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{21:$Vo1,24:$Vp1,26:277,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{21:$Vo1,24:$Vp1,26:278,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},o($VR1,[2,33],{37:$Vy1,38:$Vz1,39:$VA1,40:$VB1}),o($VQ1,[2,47]),{35:$Vw1,36:$Vx1,37:$Vy1,38:$Vz1,39:$VA1,40:$VB1,41:$VC1,42:$VD1,43:$VE1,44:$VF1,45:$VG1,46:$VH1,47:$VI1,48:$VJ1,49:$VK1,50:$VL1,51:$VM1,52:$VN1,53:$VO1,55:$VP1,57:[1,279]},o($Vu1,[2,67]),{57:[2,149]},{57:[2,150]},{35:[1,280],36:[1,281],57:[2,155]},{35:[1,282],36:[1,283],57:[2,158]},{35:[1,284],36:[1,285],57:[2,161]},{57:[2,163]},{57:[2,164]},{57:[1,286]},{57:[1,287]},{57:[1,288]},{57:[1,289]},{57:[1,290]},{57:[1,291],67:[1,292]},{57:[1,293],67:[1,294]},{57:[1,295]},{57:[1,296]},{57:[1,297]},o($VA,[2,16]),o($VR1,[2,27],{37:$Vy1,38:$Vz1,39:$VA1,40:$VB1}),o($VR1,[2,28],{37:$Vy1,38:$Vz1,39:$VA1,40:$VB1}),o($VQ1,[2,29]),o($VQ1,[2,30]),o($VQ1,[2,31]),o($VQ1,[2,32]),o($VS1,[2,34],{35:$Vw1,36:$Vx1,37:$Vy1,38:$Vz1,39:$VA1,40:$VB1}),o($VS1,[2,35],{35:$Vw1,36:$Vx1,37:$Vy1,38:$Vz1,39:$VA1,40:$VB1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,52,53,55,57,63,66,84,85,107,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130],[2,36],{35:$Vw1,36:$Vx1,37:$Vy1,38:$Vz1,39:$VA1,40:$VB1,41:$VC1,42:$VD1,44:$VF1,45:$VG1,46:$VH1,47:$VI1,48:$VJ1,49:$VK1,50:$VL1,51:$VM1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,52,53,55,57,63,66,84,85,107,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130],[2,37],{35:$Vw1,36:$Vx1,37:$Vy1,38:$Vz1,39:$VA1,40:$VB1,41:$VC1,42:$VD1,46:$VH1,47:$VI1,48:$VJ1,49:$VK1,50:$VL1,51:$VM1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,45,52,53,55,57,63,66,84,85,107,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130],[2,38],{35:$Vw1,36:$Vx1,37:$Vy1,38:$Vz1,39:$VA1,40:$VB1,41:$VC1,42:$VD1,44:$VF1,46:$VH1,47:$VI1,48:$VJ1,49:$VK1,50:$VL1,51:$VM1}),o($VT1,[2,39],{35:$Vw1,36:$Vx1,37:$Vy1,38:$Vz1,39:$VA1,40:$VB1,41:$VC1,42:$VD1}),o($VT1,[2,40],{35:$Vw1,36:$Vx1,37:$Vy1,38:$Vz1,39:$VA1,40:$VB1,41:$VC1,42:$VD1}),o($VT1,[2,41],{35:$Vw1,36:$Vx1,37:$Vy1,38:$Vz1,39:$VA1,40:$VB1,41:$VC1,42:$VD1}),o($VT1,[2,42],{35:$Vw1,36:$Vx1,37:$Vy1,38:$Vz1,39:$VA1,40:$VB1,41:$VC1,42:$VD1}),o($VU1,[2,43],{35:$Vw1,36:$Vx1,37:$Vy1,38:$Vz1,39:$VA1,40:$VB1,41:$VC1,42:$VD1,46:$VH1,47:$VI1,48:$VJ1,49:$VK1}),o($VU1,[2,44],{35:$Vw1,36:$Vx1,37:$Vy1,38:$Vz1,39:$VA1,40:$VB1,41:$VC1,42:$VD1,46:$VH1,47:$VI1,48:$VJ1,49:$VK1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,52,53,55,57,63,66,84,85,107,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130],[2,45],{35:$Vw1,36:$Vx1,37:$Vy1,38:$Vz1,39:$VA1,40:$VB1,41:$VC1,42:$VD1,43:$VE1,44:$VF1,45:$VG1,46:$VH1,47:$VI1,48:$VJ1,49:$VK1,50:$VL1,51:$VM1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,53,55,57,63,66,84,85,107,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130],[2,46],{35:$Vw1,36:$Vx1,37:$Vy1,38:$Vz1,39:$VA1,40:$VB1,41:$VC1,42:$VD1,43:$VE1,44:$VF1,45:$VG1,46:$VH1,47:$VI1,48:$VJ1,49:$VK1,50:$VL1,51:$VM1,52:$VN1}),{15:[1,298],35:$Vw1,36:$Vx1,37:$Vy1,38:$Vz1,39:$VA1,40:$VB1,41:$VC1,42:$VD1,43:$VE1,44:$VF1,45:$VG1,46:$VH1,47:$VI1,48:$VJ1,49:$VK1,50:$VL1,51:$VM1,52:$VN1,53:$VO1,55:$VP1},o([5,13,15,17,18,21,23,24,27,28,30,31,33,55,57,63,66,84,85,107,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130],[2,26],{35:$Vw1,36:$Vx1,37:$Vy1,38:$Vz1,39:$VA1,40:$VB1,41:$VC1,42:$VD1,43:$VE1,44:$VF1,45:$VG1,46:$VH1,47:$VI1,48:$VJ1,49:$VK1,50:$VL1,51:$VM1,52:$VN1,53:$VO1}),o($VQ1,[2,49]),{21:[1,299]},{21:[1,300]},{21:[1,301]},{21:[1,302]},{21:[1,303]},{21:[1,304]},o($Vg1,[2,88]),o($Vg1,[2,89]),o($Vg1,[2,83]),o($Vg1,[2,94]),o($Vg1,[2,95]),o($Vg1,[2,92]),{17:[1,305]},o($Vg1,[2,93]),{17:[1,306]},o($Vg1,[2,85]),o($Vg1,[2,99]),o($Vg1,[2,100]),{21:$Vo1,24:$Vp1,26:307,33:$Vq1,36:$Vr1,54:$Vs1,56:$Vt1},{57:[2,153]},{57:[2,154]},{57:[2,156]},{57:[2,157]},{57:[2,159]},{57:[2,160]},{57:[1,308]},{57:[1,309]},o([5,13,15,17,18,21,23,24,27,28,30,31,33,57,63,66,84,85,107,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130],[2,48],{35:$Vw1,36:$Vx1,37:$Vy1,38:$Vz1,39:$VA1,40:$VB1,41:$VC1,42:$VD1,43:$VE1,44:$VF1,45:$VG1,46:$VH1,47:$VI1,48:$VJ1,49:$VK1,50:$VL1,51:$VM1,52:$VN1,53:$VO1,55:$VP1}),o($Vg1,[2,96]),o($Vg1,[2,97])], -defaultActions: {52:[2,1],92:[2,121],93:[2,122],94:[2,123],95:[2,124],96:[2,125],99:[2,20],100:[2,21],149:[2,165],150:[2,166],183:[2,151],184:[2,152],240:[2,149],241:[2,150],245:[2,163],246:[2,164],299:[2,153],300:[2,154],301:[2,156],302:[2,157],303:[2,159],304:[2,160]}, +table: [{3:1,4:2,6:3,7:4,8:5,9:6,10:7,11:8,12:9,13:$V0,14:11,15:$V1,17:$V2,18:$V3,21:$V4,23:$V5,24:$V6,27:$V7,28:$V8,30:$V9,31:$Va,33:$Vb,36:$Vc,58:19,61:21,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,108:$Vh,114:$Vi,115:$Vj,116:$Vk,117:$Vl,118:$Vm,119:$Vn,120:$Vo,121:$Vp,122:$Vq,123:$Vr,124:$Vs,125:$Vt,126:$Vu,127:$Vv,128:$Vw,129:$Vx,130:$Vy,131:$Vz},{1:[3]},{5:[1,52],6:53,7:4,8:5,9:6,10:7,11:8,12:9,13:$V0,14:11,15:$V1,17:$V2,18:$V3,21:$V4,23:$V5,24:$V6,27:$V7,28:$V8,30:$V9,31:$Va,33:$Vb,36:$Vc,58:19,61:21,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,108:$Vh,114:$Vi,115:$Vj,116:$Vk,117:$Vl,118:$Vm,119:$Vn,120:$Vo,121:$Vp,122:$Vq,123:$Vr,124:$Vs,125:$Vt,126:$Vu,127:$Vv,128:$Vw,129:$Vx,130:$Vy,131:$Vz},o($VA,[2,3]),o($VA,[2,4]),o($VA,[2,5]),o($VA,[2,6]),o($VA,[2,7]),o($VA,[2,8]),o($VA,[2,9]),o($VA,[2,10]),{13:[1,55],15:[1,54]},{16:56,68:57,69:$VB,71:$VC,72:$VD,74:$VE,75:$VF,76:$VG,77:$VH,78:$VI,79:$VJ,80:$VK,81:$VL,82:69,83:70,86:$VM,87:$VN,88:$VO,89:$VP,90:$VQ,91:$VR,92:$VS,93:$VT,94:$VU,95:$VV,96:$VW,97:$VX,98:$VY,99:$VZ,100:$V_,101:$V$,102:$V01,103:$V11,104:$V21,105:$V31,106:$V41,107:$V51,109:$V61,110:$V71,111:$V81,112:$V91,113:$Va1},{15:[1,98]},{19:99,29:[1,100],30:[1,101]},{24:[1,102]},{24:[1,103]},{32:[1,104]},o($VA,[2,19]),o($Vb1,[2,51],{35:[1,106],36:[1,107],59:[1,105]}),{21:$V4,24:$V6,30:$V9,33:$Vb,61:108,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,108:$Vh,114:$Vi,115:$Vj,116:$Vk,117:$Vl,118:$Vm,119:$Vn,120:$Vo,121:$Vp,122:$Vq,123:$Vr,124:$Vs,125:$Vt,126:$Vu,127:$Vv,128:$Vw,129:$Vx,130:$Vy,131:$Vz},o($Vc1,[2,55],{37:$Vd1}),o($Ve1,[2,57]),o($Ve1,[2,58]),o($Ve1,[2,59]),o($Ve1,[2,60]),o($Ve1,[2,63],{38:[1,110]}),o($Ve1,[2,64],{38:[1,111]}),o($Ve1,[2,65]),o($Ve1,[2,66]),o($Vf1,[2,133]),o($Vf1,[2,134]),o($Vf1,[2,135]),o($Vf1,[2,136]),o($Vf1,[2,137]),o($Vf1,[2,138]),o($Vf1,[2,139]),o($Vf1,[2,140]),o($Vf1,[2,141]),o($Vf1,[2,142]),o($Vf1,[2,143]),o($Vf1,[2,144]),o($Vf1,[2,145]),o($Vf1,[2,146]),o($Vf1,[2,147]),o($Vf1,[2,148]),o($Ve1,[2,127]),o($Ve1,[2,128]),o($Ve1,[2,129]),o($Ve1,[2,130]),o($Ve1,[2,131]),o($Ve1,[2,132]),{1:[2,1]},o($VA,[2,2]),{16:112,68:57,69:$VB,71:$VC,72:$VD,74:$VE,75:$VF,76:$VG,77:$VH,78:$VI,79:$VJ,80:$VK,81:$VL,82:69,83:70,86:$VM,87:$VN,88:$VO,89:$VP,90:$VQ,91:$VR,92:$VS,93:$VT,94:$VU,95:$VV,96:$VW,97:$VX,98:$VY,99:$VZ,100:$V_,101:$V$,102:$V01,103:$V11,104:$V21,105:$V31,106:$V41,107:$V51,109:$V61,110:$V71,111:$V81,112:$V91,113:$Va1},o($VA,[2,12]),{13:[1,113],67:$Vg1},o($Vh1,[2,70]),{56:[1,115]},{56:[1,116]},{56:[1,117]},{56:[1,118]},{56:[1,119]},{56:[1,120]},{56:[1,121]},{56:[1,122]},{56:[1,123]},{56:[1,124]},{56:[1,125]},{56:[1,126]},{56:[1,127]},{56:[1,128]},o($Vh1,[2,101]),o($Vh1,[2,102]),o($Vh1,[2,103]),o($Vh1,[2,104]),o($Vh1,[2,105]),o($Vh1,[2,106]),o($Vh1,[2,107]),o($Vh1,[2,108]),o($Vh1,[2,109]),o($Vh1,[2,110]),o($Vh1,[2,111]),o($Vh1,[2,112]),o($Vh1,[2,113]),o($Vh1,[2,114]),o($Vh1,[2,115]),o($Vh1,[2,116]),o($Vh1,[2,117]),o($Vh1,[2,118]),o($Vh1,[2,119]),o($Vh1,[2,120]),{56:[1,129]},{56:[2,122]},{56:[2,123]},{56:[2,124]},{56:[2,125]},{56:[2,126]},o($VA,[2,14]),{17:[1,130]},{17:[2,20]},{17:[2,21]},{25:[1,131]},{25:[1,132]},o($VA,[2,22]),{30:$V9,60:133,64:134,84:$Vf,85:$Vg,108:$Vh,120:$Vo,121:$Vp,122:$Vq,123:$Vr,124:$Vs,125:$Vt,126:$Vu,127:$Vv,128:$Vw,129:$Vx,130:$Vy,131:$Vz},{21:$V4,24:$V6,30:$V9,33:$Vb,61:135,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,108:$Vh,114:$Vi,115:$Vj,116:$Vk,117:$Vl,118:$Vm,119:$Vn,120:$Vo,121:$Vp,122:$Vq,123:$Vr,124:$Vs,125:$Vt,126:$Vu,127:$Vv,128:$Vw,129:$Vx,130:$Vy,131:$Vz},{21:$V4,24:$V6,30:$V9,33:$Vb,61:136,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,108:$Vh,114:$Vi,115:$Vj,116:$Vk,117:$Vl,118:$Vm,119:$Vn,120:$Vo,121:$Vp,122:$Vq,123:$Vr,124:$Vs,125:$Vt,126:$Vu,127:$Vv,128:$Vw,129:$Vx,130:$Vy,131:$Vz},o($Vc1,[2,54],{37:$Vd1}),{21:$V4,24:$V6,30:$V9,33:$Vb,62:137,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,108:$Vh,114:$Vi,115:$Vj,116:$Vk,117:$Vl,118:$Vm,119:$Vn,120:$Vo,121:$Vp,122:$Vq,123:$Vr,124:$Vs,125:$Vt,126:$Vu,127:$Vv,128:$Vw,129:$Vx,130:$Vy,131:$Vz},{21:[1,138]},{33:[1,139]},{13:[1,140],67:$Vg1},o($VA,[2,13]),{68:141,69:$VB,71:$VC,72:$VD,74:$VE,75:$VF,76:$VG,77:$VH,78:$VI,79:$VJ,80:$VK,81:$VL,82:69,83:70,86:$VM,87:$VN,88:$VO,89:$VP,90:$VQ,91:$VR,92:$VS,93:$VT,94:$VU,95:$VV,96:$VW,97:$VX,98:$VY,99:$VZ,100:$V_,101:$V$,102:$V01,103:$V11,104:$V21,105:$V31,106:$V41,107:$V51,109:$V61,110:$V71,111:$V81,112:$V91,113:$Va1},{17:$Vi1,70:142,125:$Vj1,134:$Vk1,135:$Vl1,136:$Vm1},{17:$Vi1,70:148,125:$Vj1,134:$Vk1,135:$Vl1,136:$Vm1},{21:$Vn1,73:149,85:$Vo1},{21:$Vn1,73:152,85:$Vo1},{21:$Vn1,73:153,85:$Vo1},{21:$Vn1,73:154,85:$Vo1},{21:$Vn1,73:155,85:$Vo1},{21:$Vn1,73:156,85:$Vo1},{21:$Vn1,73:157,85:$Vo1},{21:$Vn1,73:158,85:$Vo1},{17:[1,159],66:[1,162],84:[1,160],85:[1,161]},{17:[1,163],66:[1,166],84:[1,164],85:[1,165]},{17:[1,167]},{17:[1,168],66:[1,169]},{108:[1,170]},o($VA,[2,15],{20:[1,171]}),{21:$Vp1,24:$Vq1,26:172,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{21:$Vp1,24:$Vq1,26:179,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},o($Vb1,[2,50],{67:[1,180]}),o($Vv1,[2,68]),o($Vc1,[2,52],{37:$Vd1}),o($Vc1,[2,53],{37:$Vd1}),o($Ve1,[2,56]),o($Ve1,[2,61]),o($Ve1,[2,62]),o($VA,[2,11]),o($Vh1,[2,69]),{57:[1,181]},{35:[1,182],36:[1,183],57:[2,149],132:[1,184],133:[1,185]},{15:[1,186]},{15:[1,187]},{15:[1,188]},{35:[1,189],57:[2,163]},{57:[1,190]},{57:[1,191]},{57:[2,166]},{57:[2,167]},{57:[1,192]},{57:[1,193]},{57:[1,194]},{57:[1,195]},{57:[1,196]},{57:[1,197]},{57:[1,198]},{57:[1,199]},{57:[1,200]},{57:[1,201]},{35:[1,202]},{57:[1,203],67:[1,204]},{57:[1,205],67:[1,206]},{57:[1,207],67:[1,208]},{35:[1,209]},{57:[1,210],67:[1,211]},{57:[1,212]},{35:[1,213]},{57:[1,214]},{21:[1,215]},o($Vw1,[2,17],{35:$Vx1,36:$Vy1,37:$Vz1,38:$VA1,39:$VB1,40:$VC1,41:$VD1,42:$VE1,43:$VF1,44:$VG1,45:$VH1,46:$VI1,47:$VJ1,48:$VK1,49:$VL1,50:$VM1,51:$VN1,52:$VO1,53:$VP1,55:$VQ1}),o($VR1,[2,23]),o($VR1,[2,24]),o($VR1,[2,25],{34:[1,236]}),{21:$Vp1,24:$Vq1,26:237,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{21:$Vp1,24:$Vq1,26:238,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{21:$Vp1,24:$Vq1,26:239,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},o($Vw1,[2,18],{35:$Vx1,36:$Vy1,37:$Vz1,38:$VA1,39:$VB1,40:$VC1,41:$VD1,42:$VE1,43:$VF1,44:$VG1,45:$VH1,46:$VI1,47:$VJ1,48:$VK1,49:$VL1,50:$VM1,51:$VN1,52:$VO1,53:$VP1,55:$VQ1}),{30:$V9,64:240,84:$Vf,85:$Vg,108:$Vh,120:$Vo,121:$Vp,122:$Vq,123:$Vr,124:$Vs,125:$Vt,126:$Vu,127:$Vv,128:$Vw,129:$Vx,130:$Vy,131:$Vz},o($Vh1,[2,71]),{21:[1,241]},{21:[1,242]},{57:[2,152]},{57:[2,153]},{85:[1,243]},{85:[1,244]},{85:[1,245]},{84:[1,246],85:[1,247]},o($Vh1,[2,72]),o($Vh1,[2,73]),o($Vh1,[2,74]),o($Vh1,[2,75]),o($Vh1,[2,76]),o($Vh1,[2,77]),o($Vh1,[2,78]),o($Vh1,[2,79]),o($Vh1,[2,80]),o($Vh1,[2,81]),o($Vh1,[2,86]),o($Vh1,[2,87]),{84:[1,248],85:[1,249]},o($Vh1,[2,82]),{17:[1,250]},o($Vh1,[2,90]),{17:[1,251]},o($Vh1,[2,91]),{17:[1,252]},{84:[1,253],85:[1,254]},o($Vh1,[2,84]),{17:[1,255]},o($Vh1,[2,98]),{84:[1,256],85:[1,257]},o($Vh1,[2,121]),{22:[1,258]},{21:$Vp1,24:$Vq1,26:259,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{21:$Vp1,24:$Vq1,26:260,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{21:$Vp1,24:$Vq1,26:261,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{21:$Vp1,24:$Vq1,26:262,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{21:$Vp1,24:$Vq1,26:263,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{21:$Vp1,24:$Vq1,26:264,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{21:$Vp1,24:$Vq1,26:265,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{21:$Vp1,24:$Vq1,26:266,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{21:$Vp1,24:$Vq1,26:267,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{21:$Vp1,24:$Vq1,26:268,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{21:$Vp1,24:$Vq1,26:269,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{21:$Vp1,24:$Vq1,26:270,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{21:$Vp1,24:$Vq1,26:271,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{21:$Vp1,24:$Vq1,26:272,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{21:$Vp1,24:$Vq1,26:273,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{21:$Vp1,24:$Vq1,26:274,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{21:$Vp1,24:$Vq1,26:275,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{21:$Vp1,24:$Vq1,26:276,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{21:$Vp1,24:$Vq1,26:277,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{21:$Vp1,24:$Vq1,26:278,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{21:$Vp1,24:$Vq1,26:279,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},o($VS1,[2,33],{37:$Vz1,38:$VA1,39:$VB1,40:$VC1}),o($VR1,[2,47]),{35:$Vx1,36:$Vy1,37:$Vz1,38:$VA1,39:$VB1,40:$VC1,41:$VD1,42:$VE1,43:$VF1,44:$VG1,45:$VH1,46:$VI1,47:$VJ1,48:$VK1,49:$VL1,50:$VM1,51:$VN1,52:$VO1,53:$VP1,55:$VQ1,57:[1,280]},o($Vv1,[2,67]),{57:[2,150]},{57:[2,151]},{35:[1,281],36:[1,282],57:[2,156]},{35:[1,283],36:[1,284],57:[2,159]},{35:[1,285],36:[1,286],57:[2,162]},{57:[2,164]},{57:[2,165]},{57:[1,287]},{57:[1,288]},{57:[1,289]},{57:[1,290]},{57:[1,291]},{57:[1,292],67:[1,293]},{57:[1,294],67:[1,295]},{57:[1,296]},{57:[1,297]},{57:[1,298]},o($VA,[2,16]),o($VS1,[2,27],{37:$Vz1,38:$VA1,39:$VB1,40:$VC1}),o($VS1,[2,28],{37:$Vz1,38:$VA1,39:$VB1,40:$VC1}),o($VR1,[2,29]),o($VR1,[2,30]),o($VR1,[2,31]),o($VR1,[2,32]),o($VT1,[2,34],{35:$Vx1,36:$Vy1,37:$Vz1,38:$VA1,39:$VB1,40:$VC1}),o($VT1,[2,35],{35:$Vx1,36:$Vy1,37:$Vz1,38:$VA1,39:$VB1,40:$VC1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,52,53,55,57,63,66,84,85,108,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131],[2,36],{35:$Vx1,36:$Vy1,37:$Vz1,38:$VA1,39:$VB1,40:$VC1,41:$VD1,42:$VE1,44:$VG1,45:$VH1,46:$VI1,47:$VJ1,48:$VK1,49:$VL1,50:$VM1,51:$VN1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,52,53,55,57,63,66,84,85,108,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131],[2,37],{35:$Vx1,36:$Vy1,37:$Vz1,38:$VA1,39:$VB1,40:$VC1,41:$VD1,42:$VE1,46:$VI1,47:$VJ1,48:$VK1,49:$VL1,50:$VM1,51:$VN1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,45,52,53,55,57,63,66,84,85,108,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131],[2,38],{35:$Vx1,36:$Vy1,37:$Vz1,38:$VA1,39:$VB1,40:$VC1,41:$VD1,42:$VE1,44:$VG1,46:$VI1,47:$VJ1,48:$VK1,49:$VL1,50:$VM1,51:$VN1}),o($VU1,[2,39],{35:$Vx1,36:$Vy1,37:$Vz1,38:$VA1,39:$VB1,40:$VC1,41:$VD1,42:$VE1}),o($VU1,[2,40],{35:$Vx1,36:$Vy1,37:$Vz1,38:$VA1,39:$VB1,40:$VC1,41:$VD1,42:$VE1}),o($VU1,[2,41],{35:$Vx1,36:$Vy1,37:$Vz1,38:$VA1,39:$VB1,40:$VC1,41:$VD1,42:$VE1}),o($VU1,[2,42],{35:$Vx1,36:$Vy1,37:$Vz1,38:$VA1,39:$VB1,40:$VC1,41:$VD1,42:$VE1}),o($VV1,[2,43],{35:$Vx1,36:$Vy1,37:$Vz1,38:$VA1,39:$VB1,40:$VC1,41:$VD1,42:$VE1,46:$VI1,47:$VJ1,48:$VK1,49:$VL1}),o($VV1,[2,44],{35:$Vx1,36:$Vy1,37:$Vz1,38:$VA1,39:$VB1,40:$VC1,41:$VD1,42:$VE1,46:$VI1,47:$VJ1,48:$VK1,49:$VL1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,52,53,55,57,63,66,84,85,108,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131],[2,45],{35:$Vx1,36:$Vy1,37:$Vz1,38:$VA1,39:$VB1,40:$VC1,41:$VD1,42:$VE1,43:$VF1,44:$VG1,45:$VH1,46:$VI1,47:$VJ1,48:$VK1,49:$VL1,50:$VM1,51:$VN1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,53,55,57,63,66,84,85,108,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131],[2,46],{35:$Vx1,36:$Vy1,37:$Vz1,38:$VA1,39:$VB1,40:$VC1,41:$VD1,42:$VE1,43:$VF1,44:$VG1,45:$VH1,46:$VI1,47:$VJ1,48:$VK1,49:$VL1,50:$VM1,51:$VN1,52:$VO1}),{15:[1,299],35:$Vx1,36:$Vy1,37:$Vz1,38:$VA1,39:$VB1,40:$VC1,41:$VD1,42:$VE1,43:$VF1,44:$VG1,45:$VH1,46:$VI1,47:$VJ1,48:$VK1,49:$VL1,50:$VM1,51:$VN1,52:$VO1,53:$VP1,55:$VQ1},o([5,13,15,17,18,21,23,24,27,28,30,31,33,55,57,63,66,84,85,108,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131],[2,26],{35:$Vx1,36:$Vy1,37:$Vz1,38:$VA1,39:$VB1,40:$VC1,41:$VD1,42:$VE1,43:$VF1,44:$VG1,45:$VH1,46:$VI1,47:$VJ1,48:$VK1,49:$VL1,50:$VM1,51:$VN1,52:$VO1,53:$VP1}),o($VR1,[2,49]),{21:[1,300]},{21:[1,301]},{21:[1,302]},{21:[1,303]},{21:[1,304]},{21:[1,305]},o($Vh1,[2,88]),o($Vh1,[2,89]),o($Vh1,[2,83]),o($Vh1,[2,94]),o($Vh1,[2,95]),o($Vh1,[2,92]),{17:[1,306]},o($Vh1,[2,93]),{17:[1,307]},o($Vh1,[2,85]),o($Vh1,[2,99]),o($Vh1,[2,100]),{21:$Vp1,24:$Vq1,26:308,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{57:[2,154]},{57:[2,155]},{57:[2,157]},{57:[2,158]},{57:[2,160]},{57:[2,161]},{57:[1,309]},{57:[1,310]},o([5,13,15,17,18,21,23,24,27,28,30,31,33,57,63,66,84,85,108,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131],[2,48],{35:$Vx1,36:$Vy1,37:$Vz1,38:$VA1,39:$VB1,40:$VC1,41:$VD1,42:$VE1,43:$VF1,44:$VG1,45:$VH1,46:$VI1,47:$VJ1,48:$VK1,49:$VL1,50:$VM1,51:$VN1,52:$VO1,53:$VP1,55:$VQ1}),o($Vh1,[2,96]),o($Vh1,[2,97])], +defaultActions: {52:[2,1],93:[2,122],94:[2,123],95:[2,124],96:[2,125],97:[2,126],100:[2,20],101:[2,21],150:[2,166],151:[2,167],184:[2,152],185:[2,153],241:[2,150],242:[2,151],246:[2,164],247:[2,165],300:[2,154],301:[2,155],302:[2,157],303:[2,158],304:[2,160],305:[2,161]}, parseError: function parseError (str, hash) { if (hash.recoverable) { this.trace(str); @@ -1172,37 +1177,37 @@ case 6: return "LF"; break; case 7: /* console.log("Empty spaces"); */ break; -case 8: return 119; +case 8: return 120; break; -case 9: return 120; +case 9: return 121; break; -case 10: return 121; +case 10: return 122; break; -case 11: return 122; +case 11: return 123; break; case 12: return 85; break; -case 13: return 107; +case 13: return 108; break; -case 14: return 123; +case 14: return 124; break; case 15: return 30; break; -case 16: return 124; +case 16: return 125; break; -case 17: return 125; +case 17: return 126; break; -case 18: return 126; +case 18: return 127; break; -case 19: return 127; +case 19: return 128; break; case 20: return 84; break; -case 21: return 128; +case 21: return 129; break; -case 22: return 130; +case 22: return 131; break; -case 23: return 129; +case 23: return 130; break; case 24: return 69 break; @@ -1226,15 +1231,15 @@ case 33: return 77 break; case 34: return 81 break; -case 35: return 109 +case 35: return 110 break; -case 36: return 110 +case 36: return 111 break; -case 37: return 112 +case 37: return 113 break; -case 38: return 111 +case 38: return 112 break; -case 39: return 108 +case 39: return 109 break; case 40: return 86 break; @@ -1252,9 +1257,9 @@ case 46: return 92 break; case 47: return 93 break; -case 48: return 94 +case 48: return 95 break; -case 49: return 95 +case 49: return 94 break; case 50: return 96 break; @@ -1270,7 +1275,7 @@ case 55: return 101 break; case 56: return 102 break; -case 57: return 113 +case 57: return 103 break; case 58: return 114 break; @@ -1282,112 +1287,114 @@ case 61: return 117 break; case 62: return 118 break; -case 63: return 105 +case 63: return 119 break; -case 64: return 103 +case 64: return 106 break; case 65: return 104 break; -case 66: return 133 +case 66: return 105 break; case 67: return 134 break; case 68: return 135 break; -case 69: return 31 +case 69: return 136 break; -case 70: return 18 +case 70: return 31 break; -case 71: return 29 +case 71: return 18 break; -case 72: return 30 +case 72: return 29 break; -case 73: return 23 +case 73: return 30 break; -case 74: return 27 +case 74: return 23 break; -case 75: return 106 +case 75: return 27 break; -case 76: yy_.yytext = yy_.yytext.slice(1,-1); return 32; +case 76: return 107 break; -case 77: return 17; +case 77: yy_.yytext = yy_.yytext.slice(1,-1); return 32; break; -case 78: yy_.yytext = yy_.yytext.slice(1); return 24; +case 78: return 17; break; -case 79: yy_.yytext = yy_.yytext.slice(1); return 66; +case 79: yy_.yytext = yy_.yytext.slice(1); return 24; break; -case 80: return 15; +case 80: yy_.yytext = yy_.yytext.slice(1); return 66; break; -case 81: return 67 +case 81: return 15; break; -case 82: return 56 +case 82: return 67 break; -case 83: return 57 +case 83: return 56 break; -case 84: return 131 +case 84: return 57 break; case 85: return 132 break; -case 86: return 35 +case 86: return 133 +break; +case 87: return 35 break; -case 87: return 36 +case 88: return 36 break; -case 88: return 40 +case 89: return 40 break; -case 89: return 38 +case 90: return 38 break; -case 90: return 37 +case 91: return 37 break; -case 91: return 39 +case 92: return 39 break; -case 92: return 59 +case 93: return 59 break; -case 93: return 41 +case 94: return 41 break; -case 94: return 42 +case 95: return 42 break; -case 95: return 45 +case 96: return 45 break; -case 96: return 53 +case 97: return 53 break; -case 97: return 52 +case 98: return 52 break; -case 98: return 44 +case 99: return 44 break; -case 99: return 43 +case 100: return 43 break; -case 100: return 50 +case 101: return 50 break; -case 101: return 51 +case 102: return 51 break; -case 102: return 48 +case 103: return 48 break; -case 103: return 49 +case 104: return 49 break; -case 104: return 47 +case 105: return 47 break; -case 105: return 46 +case 106: return 46 break; -case 106: return 25 +case 107: return 25 break; -case 107: return 54 +case 108: return 54 break; -case 108: return 34 +case 109: return 34 break; -case 109: return 55 +case 110: return 55 break; -case 110: return 20 +case 111: return 20 break; -case 111: return 22 +case 112: return 22 break; -case 112: return 5; +case 113: return 5; break; -case 113: /* console.log("INVALID: " + yy_.yytext); */ return 'INVALID'; +case 114: /* console.log("INVALID: " + yy_.yytext); */ return 'INVALID'; break; } }, -rules: [/^(?:;[^\n\r]*)/,/^(?:\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+\/)/,/^(?:((0x[0-9A-Fa-f][0-9A-Fa-f_]*)|([0-9][0-9_]*))n\b)/,/^(?:(0x[0-9A-Fa-f][0-9A-Fa-f_]*)|([0-9][0-9_]*))/,/^(?:\$\$\{[^\}]*\})/,/^(?:(\$(\{[^\}]*\})?))/,/^(?:[\r\n]+)/,/^(?:[ \t]+)/,/^(?:A\b)/,/^(?:B\b)/,/^(?:C\b)/,/^(?:D\b)/,/^(?:E\b)/,/^(?:RCX\b)/,/^(?:SR\b)/,/^(?:CTX\b)/,/^(?:SP\b)/,/^(?:PC\b)/,/^(?:GAS\b)/,/^(?:zkPC\b)/,/^(?:RR\b)/,/^(?:STEP\b)/,/^(?:ROTL_C\b)/,/^(?:HASHPOS\b)/,/^(?:MLOAD\b)/,/^(?:MSTORE\b)/,/^(?:HASHKLEN\b)/,/^(?:HASHKDIGEST\b)/,/^(?:HASHK1\b)/,/^(?:HASHK\b)/,/^(?:HASHPLEN\b)/,/^(?:HASHPDIGEST\b)/,/^(?:HASHP1\b)/,/^(?:HASHP\b)/,/^(?:JMP\b)/,/^(?:JMPC\b)/,/^(?:JMPZ\b)/,/^(?:JMPNZ\b)/,/^(?:JMPNC\b)/,/^(?:JMPN\b)/,/^(?:CALL\b)/,/^(?:RETURN\b)/,/^(?:ASSERT\b)/,/^(?:SLOAD\b)/,/^(?:SSTORE\b)/,/^(?:ARITH\b)/,/^(?:ARITH_ECADD_DIFFERENT\b)/,/^(?:ARITH_ECADD_SAME\b)/,/^(?:ARITH_BN254_MULFP2\b)/,/^(?:ADD\b)/,/^(?:SUB\b)/,/^(?:LT\b)/,/^(?:SLT\b)/,/^(?:EQ\b)/,/^(?:AND\b)/,/^(?:OR\b)/,/^(?:XOR\b)/,/^(?:CNT_ARITH\b)/,/^(?:CNT_BINARY\b)/,/^(?:CNT_KECCAK_F\b)/,/^(?:CNT_MEM_ALIGN\b)/,/^(?:CNT_PADDING_PG\b)/,/^(?:CNT_POSEIDON_G\b)/,/^(?:MEM_ALIGN_WR8\b)/,/^(?:MEM_ALIGN_RD\b)/,/^(?:MEM_ALIGN_WR\b)/,/^(?:SYS\b)/,/^(?:MEM\b)/,/^(?:STACK\b)/,/^(?:INCLUDE\b)/,/^(?:VAR\b)/,/^(?:GLOBAL\b)/,/^(?:CTX\b)/,/^(?:CONST\b)/,/^(?:CONSTL\b)/,/^(?:REPEAT\b)/,/^(?:"[^"]+")/,/^(?:[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?:%[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?:@[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?::)/,/^(?:,)/,/^(?:\()/,/^(?:\))/,/^(?:\+\+)/,/^(?:--)/,/^(?:\+)/,/^(?:-)/,/^(?:\/)/,/^(?:\*\*)/,/^(?:\*)/,/^(?:%)/,/^(?:=>)/,/^(?:<<)/,/^(?:>>)/,/^(?:\^)/,/^(?:\|\|)/,/^(?:&&)/,/^(?:&)/,/^(?:\|)/,/^(?:==)/,/^(?:!=)/,/^(?:<=)/,/^(?:>=)/,/^(?:>)/,/^(?:<)/,/^(?:=)/,/^(?:!)/,/^(?:\?\?)/,/^(?:\?)/,/^(?:\[)/,/^(?:\])/,/^(?:$)/,/^(?:.)/], -conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113],"inclusive":true}} +rules: [/^(?:;[^\n\r]*)/,/^(?:\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+\/)/,/^(?:((0x[0-9A-Fa-f][0-9A-Fa-f_]*)|([0-9][0-9_]*))n\b)/,/^(?:(0x[0-9A-Fa-f][0-9A-Fa-f_]*)|([0-9][0-9_]*))/,/^(?:\$\$\{[^\}]*\})/,/^(?:(\$(\{[^\}]*\})?))/,/^(?:[\r\n]+)/,/^(?:[ \t]+)/,/^(?:A\b)/,/^(?:B\b)/,/^(?:C\b)/,/^(?:D\b)/,/^(?:E\b)/,/^(?:RCX\b)/,/^(?:SR\b)/,/^(?:CTX\b)/,/^(?:SP\b)/,/^(?:PC\b)/,/^(?:GAS\b)/,/^(?:zkPC\b)/,/^(?:RR\b)/,/^(?:STEP\b)/,/^(?:ROTL_C\b)/,/^(?:HASHPOS\b)/,/^(?:MLOAD\b)/,/^(?:MSTORE\b)/,/^(?:HASHKLEN\b)/,/^(?:HASHKDIGEST\b)/,/^(?:HASHK1\b)/,/^(?:HASHK\b)/,/^(?:HASHPLEN\b)/,/^(?:HASHPDIGEST\b)/,/^(?:HASHP1\b)/,/^(?:HASHP\b)/,/^(?:JMP\b)/,/^(?:JMPC\b)/,/^(?:JMPZ\b)/,/^(?:JMPNZ\b)/,/^(?:JMPNC\b)/,/^(?:JMPN\b)/,/^(?:CALL\b)/,/^(?:RETURN\b)/,/^(?:ASSERT\b)/,/^(?:SLOAD\b)/,/^(?:SSTORE\b)/,/^(?:ARITH\b)/,/^(?:ARITH_ECADD_DIFFERENT\b)/,/^(?:ARITH_ECADD_SAME\b)/,/^(?:ARITH_BN254_ADDFP2\b)/,/^(?:ARITH_BN254_MULFP2\b)/,/^(?:ADD\b)/,/^(?:SUB\b)/,/^(?:LT\b)/,/^(?:SLT\b)/,/^(?:EQ\b)/,/^(?:AND\b)/,/^(?:OR\b)/,/^(?:XOR\b)/,/^(?:CNT_ARITH\b)/,/^(?:CNT_BINARY\b)/,/^(?:CNT_KECCAK_F\b)/,/^(?:CNT_MEM_ALIGN\b)/,/^(?:CNT_PADDING_PG\b)/,/^(?:CNT_POSEIDON_G\b)/,/^(?:MEM_ALIGN_WR8\b)/,/^(?:MEM_ALIGN_RD\b)/,/^(?:MEM_ALIGN_WR\b)/,/^(?:SYS\b)/,/^(?:MEM\b)/,/^(?:STACK\b)/,/^(?:INCLUDE\b)/,/^(?:VAR\b)/,/^(?:GLOBAL\b)/,/^(?:CTX\b)/,/^(?:CONST\b)/,/^(?:CONSTL\b)/,/^(?:REPEAT\b)/,/^(?:"[^"]+")/,/^(?:[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?:%[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?:@[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?::)/,/^(?:,)/,/^(?:\()/,/^(?:\))/,/^(?:\+\+)/,/^(?:--)/,/^(?:\+)/,/^(?:-)/,/^(?:\/)/,/^(?:\*\*)/,/^(?:\*)/,/^(?:%)/,/^(?:=>)/,/^(?:<<)/,/^(?:>>)/,/^(?:\^)/,/^(?:\|\|)/,/^(?:&&)/,/^(?:&)/,/^(?:\|)/,/^(?:==)/,/^(?:!=)/,/^(?:<=)/,/^(?:>=)/,/^(?:>)/,/^(?:<)/,/^(?:=)/,/^(?:!)/,/^(?:\?\?)/,/^(?:\?)/,/^(?:\[)/,/^(?:\])/,/^(?:$)/,/^(?:.)/], +conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114],"inclusive":true}} }); return lexer; })(); diff --git a/src/zkasm_parser.jison b/src/zkasm_parser.jison index d52c612..a60715a 100644 --- a/src/zkasm_parser.jison +++ b/src/zkasm_parser.jison @@ -49,6 +49,7 @@ SSTORE { return 'SSTORE' } ARITH { return 'ARITH' } ARITH_ECADD_DIFFERENT { return 'ARITH_ECADD_DIFFERENT' } ARITH_ECADD_SAME { return 'ARITH_ECADD_SAME' } +ARITH_BN254_ADDFP2 { return 'ARITH_BN254_ADDFP2' } ARITH_BN254_MULFP2 { return 'ARITH_BN254_MULFP2' } ADD { return 'ADD' } SUB { return 'SUB' } @@ -634,19 +635,23 @@ op } | ARITH { - $$ = { arithEq0: 1, arithEq1: 0, arithEq2: 0, arithEq3: 0} + $$ = { arithEq0: 1, arithEq1: 0, arithEq2: 0, arithEq3: 0, arithEq4: 0 } } | ARITH_ECADD_DIFFERENT { - $$ = { arithEq0: 0, arithEq1: 1, arithEq2: 0, arithEq3: 0} + $$ = { arithEq0: 0, arithEq1: 1, arithEq2: 0, arithEq3: 0, arithEq4: 0 } } | ARITH_ECADD_SAME { - $$ = { arithEq0: 0, arithEq1: 0, arithEq2: 0, arithEq3: 0} + $$ = { arithEq0: 0, arithEq1: 0, arithEq2: 0, arithEq3: 0, arithEq4: 0 } } | ARITH_BN254_MULFP2 { - $$ = { arithEq0: 0, arithEq1: 0, arithEq2: 0, arithEq3: 1} + $$ = { arithEq0: 0, arithEq1: 0, arithEq2: 0, arithEq3: 1, arithEq4: 0 } + } + | ARITH_BN254_ADDFP2 + { + $$ = { arithEq0: 0, arithEq1: 0, arithEq2: 0, arithEq3: 0, arithEq4: 1 } } | ADD { From dc4bdef790125ba39214ca8f71824c17646fe195 Mon Sep 17 00:00:00 2001 From: hecmas Date: Mon, 29 May 2023 15:40:37 +0200 Subject: [PATCH 04/25] Add instruction ARITH_BN254_SUBFP2 --- build/zkasm_parser.js | 185 +++++++++++++++++++++-------------------- src/zkasm_parser.jison | 14 ++-- 2 files changed, 104 insertions(+), 95 deletions(-) diff --git a/build/zkasm_parser.js b/build/zkasm_parser.js index a01ec76..0ab1ae4 100644 --- a/build/zkasm_parser.js +++ b/build/zkasm_parser.js @@ -72,12 +72,12 @@ } */ var zkasm_parser = (function(){ -var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,10],$V1=[1,12],$V2=[1,13],$V3=[1,14],$V4=[1,26],$V5=[1,15],$V6=[1,28],$V7=[1,16],$V8=[1,18],$V9=[1,36],$Va=[1,17],$Vb=[1,27],$Vc=[1,20],$Vd=[1,23],$Ve=[1,29],$Vf=[1,40],$Vg=[1,34],$Vh=[1,45],$Vi=[1,46],$Vj=[1,47],$Vk=[1,48],$Vl=[1,49],$Vm=[1,50],$Vn=[1,51],$Vo=[1,30],$Vp=[1,31],$Vq=[1,32],$Vr=[1,33],$Vs=[1,35],$Vt=[1,37],$Vu=[1,38],$Vv=[1,39],$Vw=[1,41],$Vx=[1,42],$Vy=[1,43],$Vz=[1,44],$VA=[5,13,15,17,18,21,23,24,27,28,30,31,33,36,63,66,84,85,108,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131],$VB=[1,58],$VC=[1,59],$VD=[1,60],$VE=[1,61],$VF=[1,62],$VG=[1,63],$VH=[1,64],$VI=[1,65],$VJ=[1,66],$VK=[1,67],$VL=[1,68],$VM=[1,71],$VN=[1,72],$VO=[1,73],$VP=[1,74],$VQ=[1,75],$VR=[1,76],$VS=[1,77],$VT=[1,78],$VU=[1,79],$VV=[1,80],$VW=[1,81],$VX=[1,82],$VY=[1,83],$VZ=[1,84],$V_=[1,85],$V$=[1,86],$V01=[1,87],$V11=[1,88],$V21=[1,89],$V31=[1,90],$V41=[1,91],$V51=[1,92],$V61=[1,93],$V71=[1,94],$V81=[1,95],$V91=[1,96],$Va1=[1,97],$Vb1=[13,15],$Vc1=[13,15,35,36,59],$Vd1=[1,109],$Ve1=[13,15,35,36,37,59],$Vf1=[13,15,35,36,37,59,67],$Vg1=[1,114],$Vh1=[13,67],$Vi1=[1,147],$Vj1=[1,143],$Vk1=[1,144],$Vl1=[1,145],$Vm1=[1,146],$Vn1=[1,150],$Vo1=[1,151],$Vp1=[1,173],$Vq1=[1,175],$Vr1=[1,174],$Vs1=[1,176],$Vt1=[1,177],$Vu1=[1,178],$Vv1=[13,15,67],$Vw1=[5,13,15,17,18,21,23,24,27,28,30,31,33,63,66,84,85,108,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131],$Vx1=[1,216],$Vy1=[1,217],$Vz1=[1,218],$VA1=[1,219],$VB1=[1,220],$VC1=[1,221],$VD1=[1,222],$VE1=[1,223],$VF1=[1,224],$VG1=[1,225],$VH1=[1,226],$VI1=[1,227],$VJ1=[1,228],$VK1=[1,229],$VL1=[1,230],$VM1=[1,231],$VN1=[1,232],$VO1=[1,233],$VP1=[1,234],$VQ1=[1,235],$VR1=[5,13,15,17,18,21,23,24,27,28,30,31,33,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,108,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131],$VS1=[5,13,15,17,18,21,23,24,27,28,30,31,33,35,36,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,108,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131],$VT1=[5,13,15,17,18,21,23,24,27,28,30,31,33,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,108,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131],$VU1=[5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,108,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131],$VV1=[5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,50,51,52,53,55,57,63,66,84,85,108,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131]; +var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,10],$V1=[1,12],$V2=[1,13],$V3=[1,14],$V4=[1,26],$V5=[1,15],$V6=[1,28],$V7=[1,16],$V8=[1,18],$V9=[1,36],$Va=[1,17],$Vb=[1,27],$Vc=[1,20],$Vd=[1,23],$Ve=[1,29],$Vf=[1,40],$Vg=[1,34],$Vh=[1,45],$Vi=[1,46],$Vj=[1,47],$Vk=[1,48],$Vl=[1,49],$Vm=[1,50],$Vn=[1,51],$Vo=[1,30],$Vp=[1,31],$Vq=[1,32],$Vr=[1,33],$Vs=[1,35],$Vt=[1,37],$Vu=[1,38],$Vv=[1,39],$Vw=[1,41],$Vx=[1,42],$Vy=[1,43],$Vz=[1,44],$VA=[5,13,15,17,18,21,23,24,27,28,30,31,33,36,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],$VB=[1,58],$VC=[1,59],$VD=[1,60],$VE=[1,61],$VF=[1,62],$VG=[1,63],$VH=[1,64],$VI=[1,65],$VJ=[1,66],$VK=[1,67],$VL=[1,68],$VM=[1,71],$VN=[1,72],$VO=[1,73],$VP=[1,74],$VQ=[1,75],$VR=[1,76],$VS=[1,77],$VT=[1,78],$VU=[1,79],$VV=[1,80],$VW=[1,81],$VX=[1,82],$VY=[1,83],$VZ=[1,84],$V_=[1,85],$V$=[1,86],$V01=[1,87],$V11=[1,88],$V21=[1,89],$V31=[1,90],$V41=[1,91],$V51=[1,92],$V61=[1,93],$V71=[1,94],$V81=[1,95],$V91=[1,96],$Va1=[1,97],$Vb1=[1,98],$Vc1=[13,15],$Vd1=[13,15,35,36,59],$Ve1=[1,110],$Vf1=[13,15,35,36,37,59],$Vg1=[13,15,35,36,37,59,67],$Vh1=[1,115],$Vi1=[13,67],$Vj1=[1,148],$Vk1=[1,144],$Vl1=[1,145],$Vm1=[1,146],$Vn1=[1,147],$Vo1=[1,151],$Vp1=[1,152],$Vq1=[1,174],$Vr1=[1,176],$Vs1=[1,175],$Vt1=[1,177],$Vu1=[1,178],$Vv1=[1,179],$Vw1=[13,15,67],$Vx1=[5,13,15,17,18,21,23,24,27,28,30,31,33,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],$Vy1=[1,217],$Vz1=[1,218],$VA1=[1,219],$VB1=[1,220],$VC1=[1,221],$VD1=[1,222],$VE1=[1,223],$VF1=[1,224],$VG1=[1,225],$VH1=[1,226],$VI1=[1,227],$VJ1=[1,228],$VK1=[1,229],$VL1=[1,230],$VM1=[1,231],$VN1=[1,232],$VO1=[1,233],$VP1=[1,234],$VQ1=[1,235],$VR1=[1,236],$VS1=[5,13,15,17,18,21,23,24,27,28,30,31,33,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],$VT1=[5,13,15,17,18,21,23,24,27,28,30,31,33,35,36,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],$VU1=[5,13,15,17,18,21,23,24,27,28,30,31,33,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],$VV1=[5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],$VW1=[5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,50,51,52,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132]; var parser = {trace: function trace () { }, yy: {}, -symbols_: {"error":2,"allStatments":3,"statmentList":4,"EOF":5,"statment":6,"step":7,"label":8,"varDef":9,"constDef":10,"include":11,"command":12,"LF":13,"assignment":14,":":15,"opList":16,"IDENTIFIER":17,"VAR":18,"scope":19,"[":20,"NUMBER":21,"]":22,"CONST":23,"CONSTID":24,"=":25,"nexpr":26,"CONSTL":27,"COMMAND":28,"GLOBAL":29,"CTX":30,"INCLUDE":31,"STRING":32,"NUMBERL":33,"??":34,"+":35,"-":36,"*":37,"**":38,"%":39,"/":40,"<<":41,">>":42,"|":43,"&":44,"^":45,"<":46,">":47,"<=":48,">=":49,"==":50,"!=":51,"&&":52,"||":53,"!":54,"?":55,"(":56,")":57,"inRegsSum":58,"=>":59,"regsList":60,"inRegP":61,"inReg":62,"TAG":63,"reg":64,"counter":65,"REFERENCE":66,",":67,"op":68,"MLOAD":69,"addr":70,"MSTORE":71,"HASHK":72,"hashId":73,"HASHK1":74,"HASHKLEN":75,"HASHKDIGEST":76,"HASHP":77,"HASHP1":78,"HASHPLEN":79,"HASHPDIGEST":80,"JMP":81,"jmpCond":82,"jmpNotCond":83,"RR":84,"E":85,"CALL":86,"RETURN":87,"ASSERT":88,"SLOAD":89,"SSTORE":90,"ARITH":91,"ARITH_ECADD_DIFFERENT":92,"ARITH_ECADD_SAME":93,"ARITH_BN254_MULFP2":94,"ARITH_BN254_ADDFP2":95,"ADD":96,"SUB":97,"LT":98,"SLT":99,"EQ":100,"AND":101,"OR":102,"XOR":103,"MEM_ALIGN_RD":104,"MEM_ALIGN_WR":105,"MEM_ALIGN_WR8":106,"REPEAT":107,"RCX":108,"JMPN":109,"JMPC":110,"JMPZ":111,"JMPNC":112,"JMPNZ":113,"CNT_ARITH":114,"CNT_BINARY":115,"CNT_KECCAK_F":116,"CNT_MEM_ALIGN":117,"CNT_PADDING_PG":118,"CNT_POSEIDON_G":119,"A":120,"B":121,"C":122,"D":123,"SR":124,"SP":125,"PC":126,"GAS":127,"zkPC":128,"STEP":129,"HASHPOS":130,"ROTL_C":131,"++":132,"--":133,"SYS":134,"MEM":135,"STACK":136,"$accept":0,"$end":1}, -terminals_: {2:"error",5:"EOF",13:"LF",15:":",17:"IDENTIFIER",18:"VAR",20:"[",21:"NUMBER",22:"]",23:"CONST",24:"CONSTID",25:"=",27:"CONSTL",28:"COMMAND",29:"GLOBAL",30:"CTX",31:"INCLUDE",32:"STRING",33:"NUMBERL",34:"??",35:"+",36:"-",37:"*",38:"**",39:"%",40:"/",41:"<<",42:">>",43:"|",44:"&",45:"^",46:"<",47:">",48:"<=",49:">=",50:"==",51:"!=",52:"&&",53:"||",54:"!",55:"?",56:"(",57:")",59:"=>",63:"TAG",66:"REFERENCE",67:",",69:"MLOAD",71:"MSTORE",72:"HASHK",74:"HASHK1",75:"HASHKLEN",76:"HASHKDIGEST",77:"HASHP",78:"HASHP1",79:"HASHPLEN",80:"HASHPDIGEST",81:"JMP",84:"RR",85:"E",86:"CALL",87:"RETURN",88:"ASSERT",89:"SLOAD",90:"SSTORE",91:"ARITH",92:"ARITH_ECADD_DIFFERENT",93:"ARITH_ECADD_SAME",94:"ARITH_BN254_MULFP2",95:"ARITH_BN254_ADDFP2",96:"ADD",97:"SUB",98:"LT",99:"SLT",100:"EQ",101:"AND",102:"OR",103:"XOR",104:"MEM_ALIGN_RD",105:"MEM_ALIGN_WR",106:"MEM_ALIGN_WR8",107:"REPEAT",108:"RCX",109:"JMPN",110:"JMPC",111:"JMPZ",112:"JMPNC",113:"JMPNZ",114:"CNT_ARITH",115:"CNT_BINARY",116:"CNT_KECCAK_F",117:"CNT_MEM_ALIGN",118:"CNT_PADDING_PG",119:"CNT_POSEIDON_G",120:"A",121:"B",122:"C",123:"D",124:"SR",125:"SP",126:"PC",127:"GAS",128:"zkPC",129:"STEP",130:"HASHPOS",131:"ROTL_C",132:"++",133:"--",134:"SYS",135:"MEM",136:"STACK"}, -productions_: [0,[3,2],[4,2],[4,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[7,4],[7,2],[7,3],[8,2],[9,3],[9,6],[10,4],[10,4],[12,1],[19,1],[19,1],[11,2],[26,1],[26,1],[26,1],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,2],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,2],[26,5],[26,3],[14,3],[14,1],[58,3],[58,3],[58,2],[58,1],[61,3],[61,1],[62,1],[62,1],[62,1],[62,3],[62,3],[62,1],[62,1],[62,1],[62,1],[60,3],[60,1],[16,3],[16,1],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,6],[68,4],[68,6],[68,4],[68,4],[68,6],[68,6],[68,4],[68,4],[68,6],[68,6],[68,6],[68,6],[68,8],[68,8],[68,4],[68,6],[68,6],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,4],[82,1],[82,1],[82,1],[83,1],[83,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[70,1],[70,3],[70,3],[70,2],[70,2],[70,5],[70,5],[70,3],[70,5],[70,5],[70,3],[70,5],[70,5],[70,3],[70,1],[70,3],[70,3],[73,1],[73,1]], +symbols_: {"error":2,"allStatments":3,"statmentList":4,"EOF":5,"statment":6,"step":7,"label":8,"varDef":9,"constDef":10,"include":11,"command":12,"LF":13,"assignment":14,":":15,"opList":16,"IDENTIFIER":17,"VAR":18,"scope":19,"[":20,"NUMBER":21,"]":22,"CONST":23,"CONSTID":24,"=":25,"nexpr":26,"CONSTL":27,"COMMAND":28,"GLOBAL":29,"CTX":30,"INCLUDE":31,"STRING":32,"NUMBERL":33,"??":34,"+":35,"-":36,"*":37,"**":38,"%":39,"/":40,"<<":41,">>":42,"|":43,"&":44,"^":45,"<":46,">":47,"<=":48,">=":49,"==":50,"!=":51,"&&":52,"||":53,"!":54,"?":55,"(":56,")":57,"inRegsSum":58,"=>":59,"regsList":60,"inRegP":61,"inReg":62,"TAG":63,"reg":64,"counter":65,"REFERENCE":66,",":67,"op":68,"MLOAD":69,"addr":70,"MSTORE":71,"HASHK":72,"hashId":73,"HASHK1":74,"HASHKLEN":75,"HASHKDIGEST":76,"HASHP":77,"HASHP1":78,"HASHPLEN":79,"HASHPDIGEST":80,"JMP":81,"jmpCond":82,"jmpNotCond":83,"RR":84,"E":85,"CALL":86,"RETURN":87,"ASSERT":88,"SLOAD":89,"SSTORE":90,"ARITH":91,"ARITH_ECADD_DIFFERENT":92,"ARITH_ECADD_SAME":93,"ARITH_BN254_MULFP2":94,"ARITH_BN254_ADDFP2":95,"ARITH_BN254_SUBFP2":96,"ADD":97,"SUB":98,"LT":99,"SLT":100,"EQ":101,"AND":102,"OR":103,"XOR":104,"MEM_ALIGN_RD":105,"MEM_ALIGN_WR":106,"MEM_ALIGN_WR8":107,"REPEAT":108,"RCX":109,"JMPN":110,"JMPC":111,"JMPZ":112,"JMPNC":113,"JMPNZ":114,"CNT_ARITH":115,"CNT_BINARY":116,"CNT_KECCAK_F":117,"CNT_MEM_ALIGN":118,"CNT_PADDING_PG":119,"CNT_POSEIDON_G":120,"A":121,"B":122,"C":123,"D":124,"SR":125,"SP":126,"PC":127,"GAS":128,"zkPC":129,"STEP":130,"HASHPOS":131,"ROTL_C":132,"++":133,"--":134,"SYS":135,"MEM":136,"STACK":137,"$accept":0,"$end":1}, +terminals_: {2:"error",5:"EOF",13:"LF",15:":",17:"IDENTIFIER",18:"VAR",20:"[",21:"NUMBER",22:"]",23:"CONST",24:"CONSTID",25:"=",27:"CONSTL",28:"COMMAND",29:"GLOBAL",30:"CTX",31:"INCLUDE",32:"STRING",33:"NUMBERL",34:"??",35:"+",36:"-",37:"*",38:"**",39:"%",40:"/",41:"<<",42:">>",43:"|",44:"&",45:"^",46:"<",47:">",48:"<=",49:">=",50:"==",51:"!=",52:"&&",53:"||",54:"!",55:"?",56:"(",57:")",59:"=>",63:"TAG",66:"REFERENCE",67:",",69:"MLOAD",71:"MSTORE",72:"HASHK",74:"HASHK1",75:"HASHKLEN",76:"HASHKDIGEST",77:"HASHP",78:"HASHP1",79:"HASHPLEN",80:"HASHPDIGEST",81:"JMP",84:"RR",85:"E",86:"CALL",87:"RETURN",88:"ASSERT",89:"SLOAD",90:"SSTORE",91:"ARITH",92:"ARITH_ECADD_DIFFERENT",93:"ARITH_ECADD_SAME",94:"ARITH_BN254_MULFP2",95:"ARITH_BN254_ADDFP2",96:"ARITH_BN254_SUBFP2",97:"ADD",98:"SUB",99:"LT",100:"SLT",101:"EQ",102:"AND",103:"OR",104:"XOR",105:"MEM_ALIGN_RD",106:"MEM_ALIGN_WR",107:"MEM_ALIGN_WR8",108:"REPEAT",109:"RCX",110:"JMPN",111:"JMPC",112:"JMPZ",113:"JMPNC",114:"JMPNZ",115:"CNT_ARITH",116:"CNT_BINARY",117:"CNT_KECCAK_F",118:"CNT_MEM_ALIGN",119:"CNT_PADDING_PG",120:"CNT_POSEIDON_G",121:"A",122:"B",123:"C",124:"D",125:"SR",126:"SP",127:"PC",128:"GAS",129:"zkPC",130:"STEP",131:"HASHPOS",132:"ROTL_C",133:"++",134:"--",135:"SYS",136:"MEM",137:"STACK"}, +productions_: [0,[3,2],[4,2],[4,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[7,4],[7,2],[7,3],[8,2],[9,3],[9,6],[10,4],[10,4],[12,1],[19,1],[19,1],[11,2],[26,1],[26,1],[26,1],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,2],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,2],[26,5],[26,3],[14,3],[14,1],[58,3],[58,3],[58,2],[58,1],[61,3],[61,1],[62,1],[62,1],[62,1],[62,3],[62,3],[62,1],[62,1],[62,1],[62,1],[60,3],[60,1],[16,3],[16,1],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,6],[68,4],[68,6],[68,4],[68,4],[68,6],[68,6],[68,4],[68,4],[68,6],[68,6],[68,6],[68,6],[68,8],[68,8],[68,4],[68,6],[68,6],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,4],[82,1],[82,1],[82,1],[83,1],[83,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[70,1],[70,3],[70,3],[70,2],[70,2],[70,5],[70,5],[70,3],[70,5],[70,5],[70,3],[70,5],[70,5],[70,3],[70,1],[70,3],[70,3],[73,1],[73,1]], performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { /* this == yyval */ @@ -481,208 +481,213 @@ case 104: break; case 105: - this.$ = { arithEq0: 1, arithEq1: 0, arithEq2: 0, arithEq3: 0, arithEq4: 0 } + this.$ = { arithEq0: 1, arithEq1: 0, arithEq2: 0, arithEq3: 0, arithEq4: 0, arithEq5: 0 } break; case 106: - this.$ = { arithEq0: 0, arithEq1: 1, arithEq2: 0, arithEq3: 0, arithEq4: 0 } + this.$ = { arithEq0: 0, arithEq1: 1, arithEq2: 0, arithEq3: 0, arithEq4: 0, arithEq5: 0 } break; case 107: - this.$ = { arithEq0: 0, arithEq1: 0, arithEq2: 0, arithEq3: 0, arithEq4: 0 } + this.$ = { arithEq0: 0, arithEq1: 0, arithEq2: 0, arithEq3: 0, arithEq4: 0, arithEq5: 0 } break; case 108: - this.$ = { arithEq0: 0, arithEq1: 0, arithEq2: 0, arithEq3: 1, arithEq4: 0 } + this.$ = { arithEq0: 0, arithEq1: 0, arithEq2: 0, arithEq3: 1, arithEq4: 0, arithEq5: 0 } break; case 109: - this.$ = { arithEq0: 0, arithEq1: 0, arithEq2: 0, arithEq3: 0, arithEq4: 1 } + this.$ = { arithEq0: 0, arithEq1: 0, arithEq2: 0, arithEq3: 0, arithEq4: 1, arithEq5: 0 } break; case 110: - this.$ = { bin: 1, binOpcode: 0} + this.$ = { arithEq0: 0, arithEq1: 0, arithEq2: 0, arithEq3: 0, arithEq4: 0, arithEq5: 1 } break; case 111: - this.$ = { bin: 1, binOpcode: 1} + this.$ = { bin: 1, binOpcode: 0} break; case 112: - this.$ = { bin: 1, binOpcode: 2} + this.$ = { bin: 1, binOpcode: 1} break; case 113: - this.$ = { bin: 1, binOpcode: 3} + this.$ = { bin: 1, binOpcode: 2} break; case 114: - this.$ = { bin: 1, binOpcode: 4} + this.$ = { bin: 1, binOpcode: 3} break; case 115: - this.$ = { bin: 1, binOpcode: 5} + this.$ = { bin: 1, binOpcode: 4} break; case 116: - this.$ = { bin: 1, binOpcode: 6} + this.$ = { bin: 1, binOpcode: 5} break; case 117: - this.$ = { bin: 1, binOpcode: 7} + this.$ = { bin: 1, binOpcode: 6} break; case 118: - this.$ = { memAlignRD: 1, memAlignWR: 0, memAlignWR8: 0} + this.$ = { bin: 1, binOpcode: 7} break; case 119: - this.$ = { memAlignRD: 0, memAlignWR: 1, memAlignWR8: 0} + this.$ = { memAlignRD: 1, memAlignWR: 0, memAlignWR8: 0} break; case 120: - this.$ = { memAlignRD: 0, memAlignWR: 0, memAlignWR8: 1} + this.$ = { memAlignRD: 0, memAlignWR: 1, memAlignWR8: 0} break; case 121: + this.$ = { memAlignRD: 0, memAlignWR: 0, memAlignWR8: 1} + +break; +case 122: + this.$ = { repeat: 1 } break; -case 125: +case 126: this.$ = 'JMPC' break; -case 126: +case 127: this.$ = 'JMPZ' break; -case 127: +case 128: this.$ = 'cntArith' break; -case 128: +case 129: this.$ = 'cntBinary' break; -case 129: +case 130: this.$ = 'cntKeccakF' break; -case 130: +case 131: this.$ = 'cntMemAlign' break; -case 131: +case 132: this.$ = 'cntPaddingPG' break; -case 132: +case 133: this.$ = 'cntPoseidonG' break; -case 149: +case 150: this.$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack:0, offset: 0, useCTX: 1} break; -case 150: +case 151: this.$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack: 0, offset: $$[$0], useCTX: 1} break; -case 151: +case 152: this.$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack: 0, offset: -$$[$0], useCTX: 1} break; -case 152: +case 153: this.$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack: 1, offset: 0, useCTX: 1} break; -case 153: +case 154: this.$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack: -1, offset: 0, useCTX: 1} break; -case 154: +case 155: this.$ = { isStack: 0, isMem:0, ind:1, indRR: 0, incStack: 0, offset: $$[$0]} break; -case 155: +case 156: this.$ = { isStack: 0, isMem:0, ind:1, indRR: 0, incStack: 0, offset: -$$[$0]} break; -case 156: +case 157: this.$ = { isStack: 0, isMem:0, ind:1, indRR: 0, incStack: 0, offset: 0} break; -case 157: +case 158: this.$ = { isStack: 0, isMem: 1, ind:1, indRR: 0, incStack: 0, offset: $$[$0], useCTX: 1} break; -case 158: +case 159: this.$ = { isStack: 0, isMem: 1, ind:1, indRR: 0, incStack: 0, offset: -$$[$0], useCTX: 1} break; -case 159: +case 160: this.$ = { isStack: 0, isMem: 1, ind:1, indRR: 0, incStack: 0, offset: 0, useCTX: 1} break; -case 160: +case 161: this.$ = { isStack: 1, ind:1, indRR: 0, incStack: 0, offset: $$[$0], useCTX: 1} break; -case 161: +case 162: this.$ = { isStack: 1, ind:1, indRR: 0, incStack: 0, offset: -$$[$0], useCTX: 1} break; -case 162: +case 163: this.$ = { isStack: 1, ind:1, indRR: 0, incStack: 0, offset: 0, useCTX: 1} break; -case 163: +case 164: this.$ = { offset: $$[$0] } break; -case 164: +case 165: this.$ = { offset: $$[$0-2], ind: 0, indRR: 1 } break; -case 165: +case 166: this.$ = { offset: $$[$0-2], ind: 1, indRR: 0 } break; -case 166: +case 167: this.$ = {ind: 0, indRR: 0, offset:$$[$0]} break; -case 167: +case 168: this.$ = {ind: 1, indRR: 0, offset:0} break; } }, -table: [{3:1,4:2,6:3,7:4,8:5,9:6,10:7,11:8,12:9,13:$V0,14:11,15:$V1,17:$V2,18:$V3,21:$V4,23:$V5,24:$V6,27:$V7,28:$V8,30:$V9,31:$Va,33:$Vb,36:$Vc,58:19,61:21,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,108:$Vh,114:$Vi,115:$Vj,116:$Vk,117:$Vl,118:$Vm,119:$Vn,120:$Vo,121:$Vp,122:$Vq,123:$Vr,124:$Vs,125:$Vt,126:$Vu,127:$Vv,128:$Vw,129:$Vx,130:$Vy,131:$Vz},{1:[3]},{5:[1,52],6:53,7:4,8:5,9:6,10:7,11:8,12:9,13:$V0,14:11,15:$V1,17:$V2,18:$V3,21:$V4,23:$V5,24:$V6,27:$V7,28:$V8,30:$V9,31:$Va,33:$Vb,36:$Vc,58:19,61:21,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,108:$Vh,114:$Vi,115:$Vj,116:$Vk,117:$Vl,118:$Vm,119:$Vn,120:$Vo,121:$Vp,122:$Vq,123:$Vr,124:$Vs,125:$Vt,126:$Vu,127:$Vv,128:$Vw,129:$Vx,130:$Vy,131:$Vz},o($VA,[2,3]),o($VA,[2,4]),o($VA,[2,5]),o($VA,[2,6]),o($VA,[2,7]),o($VA,[2,8]),o($VA,[2,9]),o($VA,[2,10]),{13:[1,55],15:[1,54]},{16:56,68:57,69:$VB,71:$VC,72:$VD,74:$VE,75:$VF,76:$VG,77:$VH,78:$VI,79:$VJ,80:$VK,81:$VL,82:69,83:70,86:$VM,87:$VN,88:$VO,89:$VP,90:$VQ,91:$VR,92:$VS,93:$VT,94:$VU,95:$VV,96:$VW,97:$VX,98:$VY,99:$VZ,100:$V_,101:$V$,102:$V01,103:$V11,104:$V21,105:$V31,106:$V41,107:$V51,109:$V61,110:$V71,111:$V81,112:$V91,113:$Va1},{15:[1,98]},{19:99,29:[1,100],30:[1,101]},{24:[1,102]},{24:[1,103]},{32:[1,104]},o($VA,[2,19]),o($Vb1,[2,51],{35:[1,106],36:[1,107],59:[1,105]}),{21:$V4,24:$V6,30:$V9,33:$Vb,61:108,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,108:$Vh,114:$Vi,115:$Vj,116:$Vk,117:$Vl,118:$Vm,119:$Vn,120:$Vo,121:$Vp,122:$Vq,123:$Vr,124:$Vs,125:$Vt,126:$Vu,127:$Vv,128:$Vw,129:$Vx,130:$Vy,131:$Vz},o($Vc1,[2,55],{37:$Vd1}),o($Ve1,[2,57]),o($Ve1,[2,58]),o($Ve1,[2,59]),o($Ve1,[2,60]),o($Ve1,[2,63],{38:[1,110]}),o($Ve1,[2,64],{38:[1,111]}),o($Ve1,[2,65]),o($Ve1,[2,66]),o($Vf1,[2,133]),o($Vf1,[2,134]),o($Vf1,[2,135]),o($Vf1,[2,136]),o($Vf1,[2,137]),o($Vf1,[2,138]),o($Vf1,[2,139]),o($Vf1,[2,140]),o($Vf1,[2,141]),o($Vf1,[2,142]),o($Vf1,[2,143]),o($Vf1,[2,144]),o($Vf1,[2,145]),o($Vf1,[2,146]),o($Vf1,[2,147]),o($Vf1,[2,148]),o($Ve1,[2,127]),o($Ve1,[2,128]),o($Ve1,[2,129]),o($Ve1,[2,130]),o($Ve1,[2,131]),o($Ve1,[2,132]),{1:[2,1]},o($VA,[2,2]),{16:112,68:57,69:$VB,71:$VC,72:$VD,74:$VE,75:$VF,76:$VG,77:$VH,78:$VI,79:$VJ,80:$VK,81:$VL,82:69,83:70,86:$VM,87:$VN,88:$VO,89:$VP,90:$VQ,91:$VR,92:$VS,93:$VT,94:$VU,95:$VV,96:$VW,97:$VX,98:$VY,99:$VZ,100:$V_,101:$V$,102:$V01,103:$V11,104:$V21,105:$V31,106:$V41,107:$V51,109:$V61,110:$V71,111:$V81,112:$V91,113:$Va1},o($VA,[2,12]),{13:[1,113],67:$Vg1},o($Vh1,[2,70]),{56:[1,115]},{56:[1,116]},{56:[1,117]},{56:[1,118]},{56:[1,119]},{56:[1,120]},{56:[1,121]},{56:[1,122]},{56:[1,123]},{56:[1,124]},{56:[1,125]},{56:[1,126]},{56:[1,127]},{56:[1,128]},o($Vh1,[2,101]),o($Vh1,[2,102]),o($Vh1,[2,103]),o($Vh1,[2,104]),o($Vh1,[2,105]),o($Vh1,[2,106]),o($Vh1,[2,107]),o($Vh1,[2,108]),o($Vh1,[2,109]),o($Vh1,[2,110]),o($Vh1,[2,111]),o($Vh1,[2,112]),o($Vh1,[2,113]),o($Vh1,[2,114]),o($Vh1,[2,115]),o($Vh1,[2,116]),o($Vh1,[2,117]),o($Vh1,[2,118]),o($Vh1,[2,119]),o($Vh1,[2,120]),{56:[1,129]},{56:[2,122]},{56:[2,123]},{56:[2,124]},{56:[2,125]},{56:[2,126]},o($VA,[2,14]),{17:[1,130]},{17:[2,20]},{17:[2,21]},{25:[1,131]},{25:[1,132]},o($VA,[2,22]),{30:$V9,60:133,64:134,84:$Vf,85:$Vg,108:$Vh,120:$Vo,121:$Vp,122:$Vq,123:$Vr,124:$Vs,125:$Vt,126:$Vu,127:$Vv,128:$Vw,129:$Vx,130:$Vy,131:$Vz},{21:$V4,24:$V6,30:$V9,33:$Vb,61:135,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,108:$Vh,114:$Vi,115:$Vj,116:$Vk,117:$Vl,118:$Vm,119:$Vn,120:$Vo,121:$Vp,122:$Vq,123:$Vr,124:$Vs,125:$Vt,126:$Vu,127:$Vv,128:$Vw,129:$Vx,130:$Vy,131:$Vz},{21:$V4,24:$V6,30:$V9,33:$Vb,61:136,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,108:$Vh,114:$Vi,115:$Vj,116:$Vk,117:$Vl,118:$Vm,119:$Vn,120:$Vo,121:$Vp,122:$Vq,123:$Vr,124:$Vs,125:$Vt,126:$Vu,127:$Vv,128:$Vw,129:$Vx,130:$Vy,131:$Vz},o($Vc1,[2,54],{37:$Vd1}),{21:$V4,24:$V6,30:$V9,33:$Vb,62:137,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,108:$Vh,114:$Vi,115:$Vj,116:$Vk,117:$Vl,118:$Vm,119:$Vn,120:$Vo,121:$Vp,122:$Vq,123:$Vr,124:$Vs,125:$Vt,126:$Vu,127:$Vv,128:$Vw,129:$Vx,130:$Vy,131:$Vz},{21:[1,138]},{33:[1,139]},{13:[1,140],67:$Vg1},o($VA,[2,13]),{68:141,69:$VB,71:$VC,72:$VD,74:$VE,75:$VF,76:$VG,77:$VH,78:$VI,79:$VJ,80:$VK,81:$VL,82:69,83:70,86:$VM,87:$VN,88:$VO,89:$VP,90:$VQ,91:$VR,92:$VS,93:$VT,94:$VU,95:$VV,96:$VW,97:$VX,98:$VY,99:$VZ,100:$V_,101:$V$,102:$V01,103:$V11,104:$V21,105:$V31,106:$V41,107:$V51,109:$V61,110:$V71,111:$V81,112:$V91,113:$Va1},{17:$Vi1,70:142,125:$Vj1,134:$Vk1,135:$Vl1,136:$Vm1},{17:$Vi1,70:148,125:$Vj1,134:$Vk1,135:$Vl1,136:$Vm1},{21:$Vn1,73:149,85:$Vo1},{21:$Vn1,73:152,85:$Vo1},{21:$Vn1,73:153,85:$Vo1},{21:$Vn1,73:154,85:$Vo1},{21:$Vn1,73:155,85:$Vo1},{21:$Vn1,73:156,85:$Vo1},{21:$Vn1,73:157,85:$Vo1},{21:$Vn1,73:158,85:$Vo1},{17:[1,159],66:[1,162],84:[1,160],85:[1,161]},{17:[1,163],66:[1,166],84:[1,164],85:[1,165]},{17:[1,167]},{17:[1,168],66:[1,169]},{108:[1,170]},o($VA,[2,15],{20:[1,171]}),{21:$Vp1,24:$Vq1,26:172,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{21:$Vp1,24:$Vq1,26:179,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},o($Vb1,[2,50],{67:[1,180]}),o($Vv1,[2,68]),o($Vc1,[2,52],{37:$Vd1}),o($Vc1,[2,53],{37:$Vd1}),o($Ve1,[2,56]),o($Ve1,[2,61]),o($Ve1,[2,62]),o($VA,[2,11]),o($Vh1,[2,69]),{57:[1,181]},{35:[1,182],36:[1,183],57:[2,149],132:[1,184],133:[1,185]},{15:[1,186]},{15:[1,187]},{15:[1,188]},{35:[1,189],57:[2,163]},{57:[1,190]},{57:[1,191]},{57:[2,166]},{57:[2,167]},{57:[1,192]},{57:[1,193]},{57:[1,194]},{57:[1,195]},{57:[1,196]},{57:[1,197]},{57:[1,198]},{57:[1,199]},{57:[1,200]},{57:[1,201]},{35:[1,202]},{57:[1,203],67:[1,204]},{57:[1,205],67:[1,206]},{57:[1,207],67:[1,208]},{35:[1,209]},{57:[1,210],67:[1,211]},{57:[1,212]},{35:[1,213]},{57:[1,214]},{21:[1,215]},o($Vw1,[2,17],{35:$Vx1,36:$Vy1,37:$Vz1,38:$VA1,39:$VB1,40:$VC1,41:$VD1,42:$VE1,43:$VF1,44:$VG1,45:$VH1,46:$VI1,47:$VJ1,48:$VK1,49:$VL1,50:$VM1,51:$VN1,52:$VO1,53:$VP1,55:$VQ1}),o($VR1,[2,23]),o($VR1,[2,24]),o($VR1,[2,25],{34:[1,236]}),{21:$Vp1,24:$Vq1,26:237,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{21:$Vp1,24:$Vq1,26:238,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{21:$Vp1,24:$Vq1,26:239,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},o($Vw1,[2,18],{35:$Vx1,36:$Vy1,37:$Vz1,38:$VA1,39:$VB1,40:$VC1,41:$VD1,42:$VE1,43:$VF1,44:$VG1,45:$VH1,46:$VI1,47:$VJ1,48:$VK1,49:$VL1,50:$VM1,51:$VN1,52:$VO1,53:$VP1,55:$VQ1}),{30:$V9,64:240,84:$Vf,85:$Vg,108:$Vh,120:$Vo,121:$Vp,122:$Vq,123:$Vr,124:$Vs,125:$Vt,126:$Vu,127:$Vv,128:$Vw,129:$Vx,130:$Vy,131:$Vz},o($Vh1,[2,71]),{21:[1,241]},{21:[1,242]},{57:[2,152]},{57:[2,153]},{85:[1,243]},{85:[1,244]},{85:[1,245]},{84:[1,246],85:[1,247]},o($Vh1,[2,72]),o($Vh1,[2,73]),o($Vh1,[2,74]),o($Vh1,[2,75]),o($Vh1,[2,76]),o($Vh1,[2,77]),o($Vh1,[2,78]),o($Vh1,[2,79]),o($Vh1,[2,80]),o($Vh1,[2,81]),o($Vh1,[2,86]),o($Vh1,[2,87]),{84:[1,248],85:[1,249]},o($Vh1,[2,82]),{17:[1,250]},o($Vh1,[2,90]),{17:[1,251]},o($Vh1,[2,91]),{17:[1,252]},{84:[1,253],85:[1,254]},o($Vh1,[2,84]),{17:[1,255]},o($Vh1,[2,98]),{84:[1,256],85:[1,257]},o($Vh1,[2,121]),{22:[1,258]},{21:$Vp1,24:$Vq1,26:259,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{21:$Vp1,24:$Vq1,26:260,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{21:$Vp1,24:$Vq1,26:261,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{21:$Vp1,24:$Vq1,26:262,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{21:$Vp1,24:$Vq1,26:263,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{21:$Vp1,24:$Vq1,26:264,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{21:$Vp1,24:$Vq1,26:265,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{21:$Vp1,24:$Vq1,26:266,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{21:$Vp1,24:$Vq1,26:267,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{21:$Vp1,24:$Vq1,26:268,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{21:$Vp1,24:$Vq1,26:269,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{21:$Vp1,24:$Vq1,26:270,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{21:$Vp1,24:$Vq1,26:271,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{21:$Vp1,24:$Vq1,26:272,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{21:$Vp1,24:$Vq1,26:273,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{21:$Vp1,24:$Vq1,26:274,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{21:$Vp1,24:$Vq1,26:275,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{21:$Vp1,24:$Vq1,26:276,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{21:$Vp1,24:$Vq1,26:277,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{21:$Vp1,24:$Vq1,26:278,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{21:$Vp1,24:$Vq1,26:279,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},o($VS1,[2,33],{37:$Vz1,38:$VA1,39:$VB1,40:$VC1}),o($VR1,[2,47]),{35:$Vx1,36:$Vy1,37:$Vz1,38:$VA1,39:$VB1,40:$VC1,41:$VD1,42:$VE1,43:$VF1,44:$VG1,45:$VH1,46:$VI1,47:$VJ1,48:$VK1,49:$VL1,50:$VM1,51:$VN1,52:$VO1,53:$VP1,55:$VQ1,57:[1,280]},o($Vv1,[2,67]),{57:[2,150]},{57:[2,151]},{35:[1,281],36:[1,282],57:[2,156]},{35:[1,283],36:[1,284],57:[2,159]},{35:[1,285],36:[1,286],57:[2,162]},{57:[2,164]},{57:[2,165]},{57:[1,287]},{57:[1,288]},{57:[1,289]},{57:[1,290]},{57:[1,291]},{57:[1,292],67:[1,293]},{57:[1,294],67:[1,295]},{57:[1,296]},{57:[1,297]},{57:[1,298]},o($VA,[2,16]),o($VS1,[2,27],{37:$Vz1,38:$VA1,39:$VB1,40:$VC1}),o($VS1,[2,28],{37:$Vz1,38:$VA1,39:$VB1,40:$VC1}),o($VR1,[2,29]),o($VR1,[2,30]),o($VR1,[2,31]),o($VR1,[2,32]),o($VT1,[2,34],{35:$Vx1,36:$Vy1,37:$Vz1,38:$VA1,39:$VB1,40:$VC1}),o($VT1,[2,35],{35:$Vx1,36:$Vy1,37:$Vz1,38:$VA1,39:$VB1,40:$VC1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,52,53,55,57,63,66,84,85,108,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131],[2,36],{35:$Vx1,36:$Vy1,37:$Vz1,38:$VA1,39:$VB1,40:$VC1,41:$VD1,42:$VE1,44:$VG1,45:$VH1,46:$VI1,47:$VJ1,48:$VK1,49:$VL1,50:$VM1,51:$VN1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,52,53,55,57,63,66,84,85,108,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131],[2,37],{35:$Vx1,36:$Vy1,37:$Vz1,38:$VA1,39:$VB1,40:$VC1,41:$VD1,42:$VE1,46:$VI1,47:$VJ1,48:$VK1,49:$VL1,50:$VM1,51:$VN1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,45,52,53,55,57,63,66,84,85,108,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131],[2,38],{35:$Vx1,36:$Vy1,37:$Vz1,38:$VA1,39:$VB1,40:$VC1,41:$VD1,42:$VE1,44:$VG1,46:$VI1,47:$VJ1,48:$VK1,49:$VL1,50:$VM1,51:$VN1}),o($VU1,[2,39],{35:$Vx1,36:$Vy1,37:$Vz1,38:$VA1,39:$VB1,40:$VC1,41:$VD1,42:$VE1}),o($VU1,[2,40],{35:$Vx1,36:$Vy1,37:$Vz1,38:$VA1,39:$VB1,40:$VC1,41:$VD1,42:$VE1}),o($VU1,[2,41],{35:$Vx1,36:$Vy1,37:$Vz1,38:$VA1,39:$VB1,40:$VC1,41:$VD1,42:$VE1}),o($VU1,[2,42],{35:$Vx1,36:$Vy1,37:$Vz1,38:$VA1,39:$VB1,40:$VC1,41:$VD1,42:$VE1}),o($VV1,[2,43],{35:$Vx1,36:$Vy1,37:$Vz1,38:$VA1,39:$VB1,40:$VC1,41:$VD1,42:$VE1,46:$VI1,47:$VJ1,48:$VK1,49:$VL1}),o($VV1,[2,44],{35:$Vx1,36:$Vy1,37:$Vz1,38:$VA1,39:$VB1,40:$VC1,41:$VD1,42:$VE1,46:$VI1,47:$VJ1,48:$VK1,49:$VL1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,52,53,55,57,63,66,84,85,108,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131],[2,45],{35:$Vx1,36:$Vy1,37:$Vz1,38:$VA1,39:$VB1,40:$VC1,41:$VD1,42:$VE1,43:$VF1,44:$VG1,45:$VH1,46:$VI1,47:$VJ1,48:$VK1,49:$VL1,50:$VM1,51:$VN1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,53,55,57,63,66,84,85,108,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131],[2,46],{35:$Vx1,36:$Vy1,37:$Vz1,38:$VA1,39:$VB1,40:$VC1,41:$VD1,42:$VE1,43:$VF1,44:$VG1,45:$VH1,46:$VI1,47:$VJ1,48:$VK1,49:$VL1,50:$VM1,51:$VN1,52:$VO1}),{15:[1,299],35:$Vx1,36:$Vy1,37:$Vz1,38:$VA1,39:$VB1,40:$VC1,41:$VD1,42:$VE1,43:$VF1,44:$VG1,45:$VH1,46:$VI1,47:$VJ1,48:$VK1,49:$VL1,50:$VM1,51:$VN1,52:$VO1,53:$VP1,55:$VQ1},o([5,13,15,17,18,21,23,24,27,28,30,31,33,55,57,63,66,84,85,108,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131],[2,26],{35:$Vx1,36:$Vy1,37:$Vz1,38:$VA1,39:$VB1,40:$VC1,41:$VD1,42:$VE1,43:$VF1,44:$VG1,45:$VH1,46:$VI1,47:$VJ1,48:$VK1,49:$VL1,50:$VM1,51:$VN1,52:$VO1,53:$VP1}),o($VR1,[2,49]),{21:[1,300]},{21:[1,301]},{21:[1,302]},{21:[1,303]},{21:[1,304]},{21:[1,305]},o($Vh1,[2,88]),o($Vh1,[2,89]),o($Vh1,[2,83]),o($Vh1,[2,94]),o($Vh1,[2,95]),o($Vh1,[2,92]),{17:[1,306]},o($Vh1,[2,93]),{17:[1,307]},o($Vh1,[2,85]),o($Vh1,[2,99]),o($Vh1,[2,100]),{21:$Vp1,24:$Vq1,26:308,33:$Vr1,36:$Vs1,54:$Vt1,56:$Vu1},{57:[2,154]},{57:[2,155]},{57:[2,157]},{57:[2,158]},{57:[2,160]},{57:[2,161]},{57:[1,309]},{57:[1,310]},o([5,13,15,17,18,21,23,24,27,28,30,31,33,57,63,66,84,85,108,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131],[2,48],{35:$Vx1,36:$Vy1,37:$Vz1,38:$VA1,39:$VB1,40:$VC1,41:$VD1,42:$VE1,43:$VF1,44:$VG1,45:$VH1,46:$VI1,47:$VJ1,48:$VK1,49:$VL1,50:$VM1,51:$VN1,52:$VO1,53:$VP1,55:$VQ1}),o($Vh1,[2,96]),o($Vh1,[2,97])], -defaultActions: {52:[2,1],93:[2,122],94:[2,123],95:[2,124],96:[2,125],97:[2,126],100:[2,20],101:[2,21],150:[2,166],151:[2,167],184:[2,152],185:[2,153],241:[2,150],242:[2,151],246:[2,164],247:[2,165],300:[2,154],301:[2,155],302:[2,157],303:[2,158],304:[2,160],305:[2,161]}, +table: [{3:1,4:2,6:3,7:4,8:5,9:6,10:7,11:8,12:9,13:$V0,14:11,15:$V1,17:$V2,18:$V3,21:$V4,23:$V5,24:$V6,27:$V7,28:$V8,30:$V9,31:$Va,33:$Vb,36:$Vc,58:19,61:21,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,109:$Vh,115:$Vi,116:$Vj,117:$Vk,118:$Vl,119:$Vm,120:$Vn,121:$Vo,122:$Vp,123:$Vq,124:$Vr,125:$Vs,126:$Vt,127:$Vu,128:$Vv,129:$Vw,130:$Vx,131:$Vy,132:$Vz},{1:[3]},{5:[1,52],6:53,7:4,8:5,9:6,10:7,11:8,12:9,13:$V0,14:11,15:$V1,17:$V2,18:$V3,21:$V4,23:$V5,24:$V6,27:$V7,28:$V8,30:$V9,31:$Va,33:$Vb,36:$Vc,58:19,61:21,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,109:$Vh,115:$Vi,116:$Vj,117:$Vk,118:$Vl,119:$Vm,120:$Vn,121:$Vo,122:$Vp,123:$Vq,124:$Vr,125:$Vs,126:$Vt,127:$Vu,128:$Vv,129:$Vw,130:$Vx,131:$Vy,132:$Vz},o($VA,[2,3]),o($VA,[2,4]),o($VA,[2,5]),o($VA,[2,6]),o($VA,[2,7]),o($VA,[2,8]),o($VA,[2,9]),o($VA,[2,10]),{13:[1,55],15:[1,54]},{16:56,68:57,69:$VB,71:$VC,72:$VD,74:$VE,75:$VF,76:$VG,77:$VH,78:$VI,79:$VJ,80:$VK,81:$VL,82:69,83:70,86:$VM,87:$VN,88:$VO,89:$VP,90:$VQ,91:$VR,92:$VS,93:$VT,94:$VU,95:$VV,96:$VW,97:$VX,98:$VY,99:$VZ,100:$V_,101:$V$,102:$V01,103:$V11,104:$V21,105:$V31,106:$V41,107:$V51,108:$V61,110:$V71,111:$V81,112:$V91,113:$Va1,114:$Vb1},{15:[1,99]},{19:100,29:[1,101],30:[1,102]},{24:[1,103]},{24:[1,104]},{32:[1,105]},o($VA,[2,19]),o($Vc1,[2,51],{35:[1,107],36:[1,108],59:[1,106]}),{21:$V4,24:$V6,30:$V9,33:$Vb,61:109,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,109:$Vh,115:$Vi,116:$Vj,117:$Vk,118:$Vl,119:$Vm,120:$Vn,121:$Vo,122:$Vp,123:$Vq,124:$Vr,125:$Vs,126:$Vt,127:$Vu,128:$Vv,129:$Vw,130:$Vx,131:$Vy,132:$Vz},o($Vd1,[2,55],{37:$Ve1}),o($Vf1,[2,57]),o($Vf1,[2,58]),o($Vf1,[2,59]),o($Vf1,[2,60]),o($Vf1,[2,63],{38:[1,111]}),o($Vf1,[2,64],{38:[1,112]}),o($Vf1,[2,65]),o($Vf1,[2,66]),o($Vg1,[2,134]),o($Vg1,[2,135]),o($Vg1,[2,136]),o($Vg1,[2,137]),o($Vg1,[2,138]),o($Vg1,[2,139]),o($Vg1,[2,140]),o($Vg1,[2,141]),o($Vg1,[2,142]),o($Vg1,[2,143]),o($Vg1,[2,144]),o($Vg1,[2,145]),o($Vg1,[2,146]),o($Vg1,[2,147]),o($Vg1,[2,148]),o($Vg1,[2,149]),o($Vf1,[2,128]),o($Vf1,[2,129]),o($Vf1,[2,130]),o($Vf1,[2,131]),o($Vf1,[2,132]),o($Vf1,[2,133]),{1:[2,1]},o($VA,[2,2]),{16:113,68:57,69:$VB,71:$VC,72:$VD,74:$VE,75:$VF,76:$VG,77:$VH,78:$VI,79:$VJ,80:$VK,81:$VL,82:69,83:70,86:$VM,87:$VN,88:$VO,89:$VP,90:$VQ,91:$VR,92:$VS,93:$VT,94:$VU,95:$VV,96:$VW,97:$VX,98:$VY,99:$VZ,100:$V_,101:$V$,102:$V01,103:$V11,104:$V21,105:$V31,106:$V41,107:$V51,108:$V61,110:$V71,111:$V81,112:$V91,113:$Va1,114:$Vb1},o($VA,[2,12]),{13:[1,114],67:$Vh1},o($Vi1,[2,70]),{56:[1,116]},{56:[1,117]},{56:[1,118]},{56:[1,119]},{56:[1,120]},{56:[1,121]},{56:[1,122]},{56:[1,123]},{56:[1,124]},{56:[1,125]},{56:[1,126]},{56:[1,127]},{56:[1,128]},{56:[1,129]},o($Vi1,[2,101]),o($Vi1,[2,102]),o($Vi1,[2,103]),o($Vi1,[2,104]),o($Vi1,[2,105]),o($Vi1,[2,106]),o($Vi1,[2,107]),o($Vi1,[2,108]),o($Vi1,[2,109]),o($Vi1,[2,110]),o($Vi1,[2,111]),o($Vi1,[2,112]),o($Vi1,[2,113]),o($Vi1,[2,114]),o($Vi1,[2,115]),o($Vi1,[2,116]),o($Vi1,[2,117]),o($Vi1,[2,118]),o($Vi1,[2,119]),o($Vi1,[2,120]),o($Vi1,[2,121]),{56:[1,130]},{56:[2,123]},{56:[2,124]},{56:[2,125]},{56:[2,126]},{56:[2,127]},o($VA,[2,14]),{17:[1,131]},{17:[2,20]},{17:[2,21]},{25:[1,132]},{25:[1,133]},o($VA,[2,22]),{30:$V9,60:134,64:135,84:$Vf,85:$Vg,109:$Vh,121:$Vo,122:$Vp,123:$Vq,124:$Vr,125:$Vs,126:$Vt,127:$Vu,128:$Vv,129:$Vw,130:$Vx,131:$Vy,132:$Vz},{21:$V4,24:$V6,30:$V9,33:$Vb,61:136,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,109:$Vh,115:$Vi,116:$Vj,117:$Vk,118:$Vl,119:$Vm,120:$Vn,121:$Vo,122:$Vp,123:$Vq,124:$Vr,125:$Vs,126:$Vt,127:$Vu,128:$Vv,129:$Vw,130:$Vx,131:$Vy,132:$Vz},{21:$V4,24:$V6,30:$V9,33:$Vb,61:137,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,109:$Vh,115:$Vi,116:$Vj,117:$Vk,118:$Vl,119:$Vm,120:$Vn,121:$Vo,122:$Vp,123:$Vq,124:$Vr,125:$Vs,126:$Vt,127:$Vu,128:$Vv,129:$Vw,130:$Vx,131:$Vy,132:$Vz},o($Vd1,[2,54],{37:$Ve1}),{21:$V4,24:$V6,30:$V9,33:$Vb,62:138,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,109:$Vh,115:$Vi,116:$Vj,117:$Vk,118:$Vl,119:$Vm,120:$Vn,121:$Vo,122:$Vp,123:$Vq,124:$Vr,125:$Vs,126:$Vt,127:$Vu,128:$Vv,129:$Vw,130:$Vx,131:$Vy,132:$Vz},{21:[1,139]},{33:[1,140]},{13:[1,141],67:$Vh1},o($VA,[2,13]),{68:142,69:$VB,71:$VC,72:$VD,74:$VE,75:$VF,76:$VG,77:$VH,78:$VI,79:$VJ,80:$VK,81:$VL,82:69,83:70,86:$VM,87:$VN,88:$VO,89:$VP,90:$VQ,91:$VR,92:$VS,93:$VT,94:$VU,95:$VV,96:$VW,97:$VX,98:$VY,99:$VZ,100:$V_,101:$V$,102:$V01,103:$V11,104:$V21,105:$V31,106:$V41,107:$V51,108:$V61,110:$V71,111:$V81,112:$V91,113:$Va1,114:$Vb1},{17:$Vj1,70:143,126:$Vk1,135:$Vl1,136:$Vm1,137:$Vn1},{17:$Vj1,70:149,126:$Vk1,135:$Vl1,136:$Vm1,137:$Vn1},{21:$Vo1,73:150,85:$Vp1},{21:$Vo1,73:153,85:$Vp1},{21:$Vo1,73:154,85:$Vp1},{21:$Vo1,73:155,85:$Vp1},{21:$Vo1,73:156,85:$Vp1},{21:$Vo1,73:157,85:$Vp1},{21:$Vo1,73:158,85:$Vp1},{21:$Vo1,73:159,85:$Vp1},{17:[1,160],66:[1,163],84:[1,161],85:[1,162]},{17:[1,164],66:[1,167],84:[1,165],85:[1,166]},{17:[1,168]},{17:[1,169],66:[1,170]},{109:[1,171]},o($VA,[2,15],{20:[1,172]}),{21:$Vq1,24:$Vr1,26:173,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:180,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},o($Vc1,[2,50],{67:[1,181]}),o($Vw1,[2,68]),o($Vd1,[2,52],{37:$Ve1}),o($Vd1,[2,53],{37:$Ve1}),o($Vf1,[2,56]),o($Vf1,[2,61]),o($Vf1,[2,62]),o($VA,[2,11]),o($Vi1,[2,69]),{57:[1,182]},{35:[1,183],36:[1,184],57:[2,150],133:[1,185],134:[1,186]},{15:[1,187]},{15:[1,188]},{15:[1,189]},{35:[1,190],57:[2,164]},{57:[1,191]},{57:[1,192]},{57:[2,167]},{57:[2,168]},{57:[1,193]},{57:[1,194]},{57:[1,195]},{57:[1,196]},{57:[1,197]},{57:[1,198]},{57:[1,199]},{57:[1,200]},{57:[1,201]},{57:[1,202]},{35:[1,203]},{57:[1,204],67:[1,205]},{57:[1,206],67:[1,207]},{57:[1,208],67:[1,209]},{35:[1,210]},{57:[1,211],67:[1,212]},{57:[1,213]},{35:[1,214]},{57:[1,215]},{21:[1,216]},o($Vx1,[2,17],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,43:$VG1,44:$VH1,45:$VI1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1,52:$VP1,53:$VQ1,55:$VR1}),o($VS1,[2,23]),o($VS1,[2,24]),o($VS1,[2,25],{34:[1,237]}),{21:$Vq1,24:$Vr1,26:238,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:239,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:240,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},o($Vx1,[2,18],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,43:$VG1,44:$VH1,45:$VI1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1,52:$VP1,53:$VQ1,55:$VR1}),{30:$V9,64:241,84:$Vf,85:$Vg,109:$Vh,121:$Vo,122:$Vp,123:$Vq,124:$Vr,125:$Vs,126:$Vt,127:$Vu,128:$Vv,129:$Vw,130:$Vx,131:$Vy,132:$Vz},o($Vi1,[2,71]),{21:[1,242]},{21:[1,243]},{57:[2,153]},{57:[2,154]},{85:[1,244]},{85:[1,245]},{85:[1,246]},{84:[1,247],85:[1,248]},o($Vi1,[2,72]),o($Vi1,[2,73]),o($Vi1,[2,74]),o($Vi1,[2,75]),o($Vi1,[2,76]),o($Vi1,[2,77]),o($Vi1,[2,78]),o($Vi1,[2,79]),o($Vi1,[2,80]),o($Vi1,[2,81]),o($Vi1,[2,86]),o($Vi1,[2,87]),{84:[1,249],85:[1,250]},o($Vi1,[2,82]),{17:[1,251]},o($Vi1,[2,90]),{17:[1,252]},o($Vi1,[2,91]),{17:[1,253]},{84:[1,254],85:[1,255]},o($Vi1,[2,84]),{17:[1,256]},o($Vi1,[2,98]),{84:[1,257],85:[1,258]},o($Vi1,[2,122]),{22:[1,259]},{21:$Vq1,24:$Vr1,26:260,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:261,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:262,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:263,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:264,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:265,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:266,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:267,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:268,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:269,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:270,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:271,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:272,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:273,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:274,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:275,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:276,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:277,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:278,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:279,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:280,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},o($VT1,[2,33],{37:$VA1,38:$VB1,39:$VC1,40:$VD1}),o($VS1,[2,47]),{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,43:$VG1,44:$VH1,45:$VI1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1,52:$VP1,53:$VQ1,55:$VR1,57:[1,281]},o($Vw1,[2,67]),{57:[2,151]},{57:[2,152]},{35:[1,282],36:[1,283],57:[2,157]},{35:[1,284],36:[1,285],57:[2,160]},{35:[1,286],36:[1,287],57:[2,163]},{57:[2,165]},{57:[2,166]},{57:[1,288]},{57:[1,289]},{57:[1,290]},{57:[1,291]},{57:[1,292]},{57:[1,293],67:[1,294]},{57:[1,295],67:[1,296]},{57:[1,297]},{57:[1,298]},{57:[1,299]},o($VA,[2,16]),o($VT1,[2,27],{37:$VA1,38:$VB1,39:$VC1,40:$VD1}),o($VT1,[2,28],{37:$VA1,38:$VB1,39:$VC1,40:$VD1}),o($VS1,[2,29]),o($VS1,[2,30]),o($VS1,[2,31]),o($VS1,[2,32]),o($VU1,[2,34],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1}),o($VU1,[2,35],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,52,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],[2,36],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,44:$VH1,45:$VI1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,52,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],[2,37],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,45,52,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],[2,38],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,44:$VH1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1}),o($VV1,[2,39],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1}),o($VV1,[2,40],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1}),o($VV1,[2,41],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1}),o($VV1,[2,42],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1}),o($VW1,[2,43],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1}),o($VW1,[2,44],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,52,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],[2,45],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,43:$VG1,44:$VH1,45:$VI1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],[2,46],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,43:$VG1,44:$VH1,45:$VI1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1,52:$VP1}),{15:[1,300],35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,43:$VG1,44:$VH1,45:$VI1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1,52:$VP1,53:$VQ1,55:$VR1},o([5,13,15,17,18,21,23,24,27,28,30,31,33,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],[2,26],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,43:$VG1,44:$VH1,45:$VI1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1,52:$VP1,53:$VQ1}),o($VS1,[2,49]),{21:[1,301]},{21:[1,302]},{21:[1,303]},{21:[1,304]},{21:[1,305]},{21:[1,306]},o($Vi1,[2,88]),o($Vi1,[2,89]),o($Vi1,[2,83]),o($Vi1,[2,94]),o($Vi1,[2,95]),o($Vi1,[2,92]),{17:[1,307]},o($Vi1,[2,93]),{17:[1,308]},o($Vi1,[2,85]),o($Vi1,[2,99]),o($Vi1,[2,100]),{21:$Vq1,24:$Vr1,26:309,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{57:[2,155]},{57:[2,156]},{57:[2,158]},{57:[2,159]},{57:[2,161]},{57:[2,162]},{57:[1,310]},{57:[1,311]},o([5,13,15,17,18,21,23,24,27,28,30,31,33,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],[2,48],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,43:$VG1,44:$VH1,45:$VI1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1,52:$VP1,53:$VQ1,55:$VR1}),o($Vi1,[2,96]),o($Vi1,[2,97])], +defaultActions: {52:[2,1],94:[2,123],95:[2,124],96:[2,125],97:[2,126],98:[2,127],101:[2,20],102:[2,21],151:[2,167],152:[2,168],185:[2,153],186:[2,154],242:[2,151],243:[2,152],247:[2,165],248:[2,166],301:[2,155],302:[2,156],303:[2,158],304:[2,159],305:[2,161],306:[2,162]}, parseError: function parseError (str, hash) { if (hash.recoverable) { this.trace(str); @@ -1177,37 +1182,37 @@ case 6: return "LF"; break; case 7: /* console.log("Empty spaces"); */ break; -case 8: return 120; +case 8: return 121; break; -case 9: return 121; +case 9: return 122; break; -case 10: return 122; +case 10: return 123; break; -case 11: return 123; +case 11: return 124; break; case 12: return 85; break; -case 13: return 108; +case 13: return 109; break; -case 14: return 124; +case 14: return 125; break; case 15: return 30; break; -case 16: return 125; +case 16: return 126; break; -case 17: return 126; +case 17: return 127; break; -case 18: return 127; +case 18: return 128; break; -case 19: return 128; +case 19: return 129; break; case 20: return 84; break; -case 21: return 129; +case 21: return 130; break; -case 22: return 131; +case 22: return 132; break; -case 23: return 130; +case 23: return 131; break; case 24: return 69 break; @@ -1231,15 +1236,15 @@ case 33: return 77 break; case 34: return 81 break; -case 35: return 110 +case 35: return 111 break; -case 36: return 111 +case 36: return 112 break; -case 37: return 113 +case 37: return 114 break; -case 38: return 112 +case 38: return 113 break; -case 39: return 109 +case 39: return 110 break; case 40: return 86 break; @@ -1261,45 +1266,45 @@ case 48: return 95 break; case 49: return 94 break; -case 50: return 96 +case 50: return 97 break; -case 51: return 97 +case 51: return 98 break; -case 52: return 98 +case 52: return 99 break; -case 53: return 99 +case 53: return 100 break; -case 54: return 100 +case 54: return 101 break; -case 55: return 101 +case 55: return 102 break; -case 56: return 102 +case 56: return 103 break; -case 57: return 103 +case 57: return 104 break; -case 58: return 114 +case 58: return 115 break; -case 59: return 115 +case 59: return 116 break; -case 60: return 116 +case 60: return 117 break; -case 61: return 117 +case 61: return 118 break; -case 62: return 118 +case 62: return 119 break; -case 63: return 119 +case 63: return 120 break; -case 64: return 106 +case 64: return 107 break; -case 65: return 104 +case 65: return 105 break; -case 66: return 105 +case 66: return 106 break; -case 67: return 134 +case 67: return 135 break; -case 68: return 135 +case 68: return 136 break; -case 69: return 136 +case 69: return 137 break; case 70: return 31 break; @@ -1313,7 +1318,7 @@ case 74: return 23 break; case 75: return 27 break; -case 76: return 107 +case 76: return 108 break; case 77: yy_.yytext = yy_.yytext.slice(1,-1); return 32; break; @@ -1331,9 +1336,9 @@ case 83: return 56 break; case 84: return 57 break; -case 85: return 132 +case 85: return 133 break; -case 86: return 133 +case 86: return 134 break; case 87: return 35 break; diff --git a/src/zkasm_parser.jison b/src/zkasm_parser.jison index a60715a..88a84f0 100644 --- a/src/zkasm_parser.jison +++ b/src/zkasm_parser.jison @@ -635,23 +635,27 @@ op } | ARITH { - $$ = { arithEq0: 1, arithEq1: 0, arithEq2: 0, arithEq3: 0, arithEq4: 0 } + $$ = { arithEq0: 1, arithEq1: 0, arithEq2: 0, arithEq3: 0, arithEq4: 0, arithEq5: 0 } } | ARITH_ECADD_DIFFERENT { - $$ = { arithEq0: 0, arithEq1: 1, arithEq2: 0, arithEq3: 0, arithEq4: 0 } + $$ = { arithEq0: 0, arithEq1: 1, arithEq2: 0, arithEq3: 0, arithEq4: 0, arithEq5: 0 } } | ARITH_ECADD_SAME { - $$ = { arithEq0: 0, arithEq1: 0, arithEq2: 0, arithEq3: 0, arithEq4: 0 } + $$ = { arithEq0: 0, arithEq1: 0, arithEq2: 0, arithEq3: 0, arithEq4: 0, arithEq5: 0 } } | ARITH_BN254_MULFP2 { - $$ = { arithEq0: 0, arithEq1: 0, arithEq2: 0, arithEq3: 1, arithEq4: 0 } + $$ = { arithEq0: 0, arithEq1: 0, arithEq2: 0, arithEq3: 1, arithEq4: 0, arithEq5: 0 } } | ARITH_BN254_ADDFP2 { - $$ = { arithEq0: 0, arithEq1: 0, arithEq2: 0, arithEq3: 0, arithEq4: 1 } + $$ = { arithEq0: 0, arithEq1: 0, arithEq2: 0, arithEq3: 0, arithEq4: 1, arithEq5: 0 } + } + | ARITH_BN254_SUBFP2 + { + $$ = { arithEq0: 0, arithEq1: 0, arithEq2: 0, arithEq3: 0, arithEq4: 0, arithEq5: 1 } } | ADD { From 1356cec151b6c75c0513c3541fa364b6b6b2bf7c Mon Sep 17 00:00:00 2001 From: hecmas Date: Mon, 29 May 2023 15:45:21 +0200 Subject: [PATCH 05/25] Minor fix --- build/zkasm_parser.js | 138 +++++++++++++++++++++-------------------- src/zkasm_parser.jison | 1 + 2 files changed, 71 insertions(+), 68 deletions(-) diff --git a/build/zkasm_parser.js b/build/zkasm_parser.js index 0ab1ae4..bee0ad7 100644 --- a/build/zkasm_parser.js +++ b/build/zkasm_parser.js @@ -1264,142 +1264,144 @@ case 47: return 93 break; case 48: return 95 break; -case 49: return 94 +case 49: return 96 break; -case 50: return 97 +case 50: return 94 break; -case 51: return 98 +case 51: return 97 break; -case 52: return 99 +case 52: return 98 break; -case 53: return 100 +case 53: return 99 break; -case 54: return 101 +case 54: return 100 break; -case 55: return 102 +case 55: return 101 break; -case 56: return 103 +case 56: return 102 break; -case 57: return 104 +case 57: return 103 break; -case 58: return 115 +case 58: return 104 break; -case 59: return 116 +case 59: return 115 break; -case 60: return 117 +case 60: return 116 break; -case 61: return 118 +case 61: return 117 break; -case 62: return 119 +case 62: return 118 break; -case 63: return 120 +case 63: return 119 break; -case 64: return 107 +case 64: return 120 break; -case 65: return 105 +case 65: return 107 break; -case 66: return 106 +case 66: return 105 break; -case 67: return 135 +case 67: return 106 break; -case 68: return 136 +case 68: return 135 break; -case 69: return 137 +case 69: return 136 break; -case 70: return 31 +case 70: return 137 break; -case 71: return 18 +case 71: return 31 break; -case 72: return 29 +case 72: return 18 break; -case 73: return 30 +case 73: return 29 break; -case 74: return 23 +case 74: return 30 break; -case 75: return 27 +case 75: return 23 break; -case 76: return 108 +case 76: return 27 break; -case 77: yy_.yytext = yy_.yytext.slice(1,-1); return 32; +case 77: return 108 break; -case 78: return 17; +case 78: yy_.yytext = yy_.yytext.slice(1,-1); return 32; break; -case 79: yy_.yytext = yy_.yytext.slice(1); return 24; +case 79: return 17; break; -case 80: yy_.yytext = yy_.yytext.slice(1); return 66; +case 80: yy_.yytext = yy_.yytext.slice(1); return 24; break; -case 81: return 15; +case 81: yy_.yytext = yy_.yytext.slice(1); return 66; break; -case 82: return 67 +case 82: return 15; break; -case 83: return 56 +case 83: return 67 break; -case 84: return 57 +case 84: return 56 break; -case 85: return 133 +case 85: return 57 break; -case 86: return 134 +case 86: return 133 break; -case 87: return 35 +case 87: return 134 break; -case 88: return 36 +case 88: return 35 break; -case 89: return 40 +case 89: return 36 break; -case 90: return 38 +case 90: return 40 break; -case 91: return 37 +case 91: return 38 break; -case 92: return 39 +case 92: return 37 break; -case 93: return 59 +case 93: return 39 break; -case 94: return 41 +case 94: return 59 break; -case 95: return 42 +case 95: return 41 break; -case 96: return 45 +case 96: return 42 break; -case 97: return 53 +case 97: return 45 break; -case 98: return 52 +case 98: return 53 break; -case 99: return 44 +case 99: return 52 break; -case 100: return 43 +case 100: return 44 break; -case 101: return 50 +case 101: return 43 break; -case 102: return 51 +case 102: return 50 break; -case 103: return 48 +case 103: return 51 break; -case 104: return 49 +case 104: return 48 break; -case 105: return 47 +case 105: return 49 break; -case 106: return 46 +case 106: return 47 break; -case 107: return 25 +case 107: return 46 break; -case 108: return 54 +case 108: return 25 break; -case 109: return 34 +case 109: return 54 break; -case 110: return 55 +case 110: return 34 break; -case 111: return 20 +case 111: return 55 break; -case 112: return 22 +case 112: return 20 break; -case 113: return 5; +case 113: return 22 break; -case 114: /* console.log("INVALID: " + yy_.yytext); */ return 'INVALID'; +case 114: return 5; +break; +case 115: /* console.log("INVALID: " + yy_.yytext); */ return 'INVALID'; break; } }, -rules: [/^(?:;[^\n\r]*)/,/^(?:\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+\/)/,/^(?:((0x[0-9A-Fa-f][0-9A-Fa-f_]*)|([0-9][0-9_]*))n\b)/,/^(?:(0x[0-9A-Fa-f][0-9A-Fa-f_]*)|([0-9][0-9_]*))/,/^(?:\$\$\{[^\}]*\})/,/^(?:(\$(\{[^\}]*\})?))/,/^(?:[\r\n]+)/,/^(?:[ \t]+)/,/^(?:A\b)/,/^(?:B\b)/,/^(?:C\b)/,/^(?:D\b)/,/^(?:E\b)/,/^(?:RCX\b)/,/^(?:SR\b)/,/^(?:CTX\b)/,/^(?:SP\b)/,/^(?:PC\b)/,/^(?:GAS\b)/,/^(?:zkPC\b)/,/^(?:RR\b)/,/^(?:STEP\b)/,/^(?:ROTL_C\b)/,/^(?:HASHPOS\b)/,/^(?:MLOAD\b)/,/^(?:MSTORE\b)/,/^(?:HASHKLEN\b)/,/^(?:HASHKDIGEST\b)/,/^(?:HASHK1\b)/,/^(?:HASHK\b)/,/^(?:HASHPLEN\b)/,/^(?:HASHPDIGEST\b)/,/^(?:HASHP1\b)/,/^(?:HASHP\b)/,/^(?:JMP\b)/,/^(?:JMPC\b)/,/^(?:JMPZ\b)/,/^(?:JMPNZ\b)/,/^(?:JMPNC\b)/,/^(?:JMPN\b)/,/^(?:CALL\b)/,/^(?:RETURN\b)/,/^(?:ASSERT\b)/,/^(?:SLOAD\b)/,/^(?:SSTORE\b)/,/^(?:ARITH\b)/,/^(?:ARITH_ECADD_DIFFERENT\b)/,/^(?:ARITH_ECADD_SAME\b)/,/^(?:ARITH_BN254_ADDFP2\b)/,/^(?:ARITH_BN254_MULFP2\b)/,/^(?:ADD\b)/,/^(?:SUB\b)/,/^(?:LT\b)/,/^(?:SLT\b)/,/^(?:EQ\b)/,/^(?:AND\b)/,/^(?:OR\b)/,/^(?:XOR\b)/,/^(?:CNT_ARITH\b)/,/^(?:CNT_BINARY\b)/,/^(?:CNT_KECCAK_F\b)/,/^(?:CNT_MEM_ALIGN\b)/,/^(?:CNT_PADDING_PG\b)/,/^(?:CNT_POSEIDON_G\b)/,/^(?:MEM_ALIGN_WR8\b)/,/^(?:MEM_ALIGN_RD\b)/,/^(?:MEM_ALIGN_WR\b)/,/^(?:SYS\b)/,/^(?:MEM\b)/,/^(?:STACK\b)/,/^(?:INCLUDE\b)/,/^(?:VAR\b)/,/^(?:GLOBAL\b)/,/^(?:CTX\b)/,/^(?:CONST\b)/,/^(?:CONSTL\b)/,/^(?:REPEAT\b)/,/^(?:"[^"]+")/,/^(?:[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?:%[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?:@[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?::)/,/^(?:,)/,/^(?:\()/,/^(?:\))/,/^(?:\+\+)/,/^(?:--)/,/^(?:\+)/,/^(?:-)/,/^(?:\/)/,/^(?:\*\*)/,/^(?:\*)/,/^(?:%)/,/^(?:=>)/,/^(?:<<)/,/^(?:>>)/,/^(?:\^)/,/^(?:\|\|)/,/^(?:&&)/,/^(?:&)/,/^(?:\|)/,/^(?:==)/,/^(?:!=)/,/^(?:<=)/,/^(?:>=)/,/^(?:>)/,/^(?:<)/,/^(?:=)/,/^(?:!)/,/^(?:\?\?)/,/^(?:\?)/,/^(?:\[)/,/^(?:\])/,/^(?:$)/,/^(?:.)/], -conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114],"inclusive":true}} +rules: [/^(?:;[^\n\r]*)/,/^(?:\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+\/)/,/^(?:((0x[0-9A-Fa-f][0-9A-Fa-f_]*)|([0-9][0-9_]*))n\b)/,/^(?:(0x[0-9A-Fa-f][0-9A-Fa-f_]*)|([0-9][0-9_]*))/,/^(?:\$\$\{[^\}]*\})/,/^(?:(\$(\{[^\}]*\})?))/,/^(?:[\r\n]+)/,/^(?:[ \t]+)/,/^(?:A\b)/,/^(?:B\b)/,/^(?:C\b)/,/^(?:D\b)/,/^(?:E\b)/,/^(?:RCX\b)/,/^(?:SR\b)/,/^(?:CTX\b)/,/^(?:SP\b)/,/^(?:PC\b)/,/^(?:GAS\b)/,/^(?:zkPC\b)/,/^(?:RR\b)/,/^(?:STEP\b)/,/^(?:ROTL_C\b)/,/^(?:HASHPOS\b)/,/^(?:MLOAD\b)/,/^(?:MSTORE\b)/,/^(?:HASHKLEN\b)/,/^(?:HASHKDIGEST\b)/,/^(?:HASHK1\b)/,/^(?:HASHK\b)/,/^(?:HASHPLEN\b)/,/^(?:HASHPDIGEST\b)/,/^(?:HASHP1\b)/,/^(?:HASHP\b)/,/^(?:JMP\b)/,/^(?:JMPC\b)/,/^(?:JMPZ\b)/,/^(?:JMPNZ\b)/,/^(?:JMPNC\b)/,/^(?:JMPN\b)/,/^(?:CALL\b)/,/^(?:RETURN\b)/,/^(?:ASSERT\b)/,/^(?:SLOAD\b)/,/^(?:SSTORE\b)/,/^(?:ARITH\b)/,/^(?:ARITH_ECADD_DIFFERENT\b)/,/^(?:ARITH_ECADD_SAME\b)/,/^(?:ARITH_BN254_ADDFP2\b)/,/^(?:ARITH_BN254_SUBFP2\b)/,/^(?:ARITH_BN254_MULFP2\b)/,/^(?:ADD\b)/,/^(?:SUB\b)/,/^(?:LT\b)/,/^(?:SLT\b)/,/^(?:EQ\b)/,/^(?:AND\b)/,/^(?:OR\b)/,/^(?:XOR\b)/,/^(?:CNT_ARITH\b)/,/^(?:CNT_BINARY\b)/,/^(?:CNT_KECCAK_F\b)/,/^(?:CNT_MEM_ALIGN\b)/,/^(?:CNT_PADDING_PG\b)/,/^(?:CNT_POSEIDON_G\b)/,/^(?:MEM_ALIGN_WR8\b)/,/^(?:MEM_ALIGN_RD\b)/,/^(?:MEM_ALIGN_WR\b)/,/^(?:SYS\b)/,/^(?:MEM\b)/,/^(?:STACK\b)/,/^(?:INCLUDE\b)/,/^(?:VAR\b)/,/^(?:GLOBAL\b)/,/^(?:CTX\b)/,/^(?:CONST\b)/,/^(?:CONSTL\b)/,/^(?:REPEAT\b)/,/^(?:"[^"]+")/,/^(?:[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?:%[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?:@[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?::)/,/^(?:,)/,/^(?:\()/,/^(?:\))/,/^(?:\+\+)/,/^(?:--)/,/^(?:\+)/,/^(?:-)/,/^(?:\/)/,/^(?:\*\*)/,/^(?:\*)/,/^(?:%)/,/^(?:=>)/,/^(?:<<)/,/^(?:>>)/,/^(?:\^)/,/^(?:\|\|)/,/^(?:&&)/,/^(?:&)/,/^(?:\|)/,/^(?:==)/,/^(?:!=)/,/^(?:<=)/,/^(?:>=)/,/^(?:>)/,/^(?:<)/,/^(?:=)/,/^(?:!)/,/^(?:\?\?)/,/^(?:\?)/,/^(?:\[)/,/^(?:\])/,/^(?:$)/,/^(?:.)/], +conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115],"inclusive":true}} }); return lexer; })(); diff --git a/src/zkasm_parser.jison b/src/zkasm_parser.jison index 88a84f0..73d46e8 100644 --- a/src/zkasm_parser.jison +++ b/src/zkasm_parser.jison @@ -50,6 +50,7 @@ ARITH { return 'ARITH' } ARITH_ECADD_DIFFERENT { return 'ARITH_ECADD_DIFFERENT' } ARITH_ECADD_SAME { return 'ARITH_ECADD_SAME' } ARITH_BN254_ADDFP2 { return 'ARITH_BN254_ADDFP2' } +ARITH_BN254_SUBFP2 { return 'ARITH_BN254_SUBFP2' } ARITH_BN254_MULFP2 { return 'ARITH_BN254_MULFP2' } ADD { return 'ADD' } SUB { return 'SUB' } From 3e28c7f6203be791321f68eff7a954ae07637c07 Mon Sep 17 00:00:00 2001 From: zkronos73 Date: Tue, 4 Jul 2023 00:51:36 +0200 Subject: [PATCH 06/25] add array access on command mem --- build/command_parser.js | 85 ++++++++++++++++++++++------------------ src/command_parser.jison | 8 +++- src/compiler.js | 2 +- test/arrays.zkasm | 37 +++++++++++++++-- 4 files changed, 88 insertions(+), 44 deletions(-) diff --git a/build/command_parser.js b/build/command_parser.js index ad90c72..fc6c948 100644 --- a/build/command_parser.js +++ b/build/command_parser.js @@ -72,12 +72,12 @@ } */ var command_parser = (function(){ -var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,10],$V1=[1,11],$V2=[1,12],$V3=[1,13],$V4=[1,17],$V5=[1,20],$V6=[1,7],$V7=[1,6],$V8=[1,21],$V9=[1,22],$Va=[1,23],$Vb=[1,24],$Vc=[1,25],$Vd=[1,26],$Ve=[1,27],$Vf=[1,28],$Vg=[1,29],$Vh=[1,30],$Vi=[1,31],$Vj=[1,32],$Vk=[1,33],$Vl=[1,34],$Vm=[1,35],$Vn=[1,36],$Vo=[1,37],$Vp=[1,38],$Vq=[1,39],$Vr=[1,40],$Vs=[1,41],$Vt=[5,42,68],$Vu=[5,10,12,13,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,42,68],$Vv=[2,34],$Vw=[5,8,10,12,13,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,42,68],$Vx=[5,10,12,42,68],$Vy=[1,49],$Vz=[1,50],$VA=[1,51],$VB=[1,52],$VC=[1,53],$VD=[1,54],$VE=[1,55],$VF=[1,56],$VG=[1,57],$VH=[1,58],$VI=[1,59],$VJ=[1,60],$VK=[1,61],$VL=[1,62],$VM=[1,63],$VN=[1,64],$VO=[1,65],$VP=[1,66],$VQ=[5,10,12,13,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,42,68],$VR=[42,68]; +var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,10],$V1=[1,11],$V2=[1,12],$V3=[1,13],$V4=[1,17],$V5=[1,20],$V6=[1,7],$V7=[1,6],$V8=[1,21],$V9=[1,22],$Va=[1,23],$Vb=[1,24],$Vc=[1,25],$Vd=[1,26],$Ve=[1,27],$Vf=[1,28],$Vg=[1,29],$Vh=[1,30],$Vi=[1,31],$Vj=[1,32],$Vk=[1,33],$Vl=[1,34],$Vm=[1,35],$Vn=[1,36],$Vo=[1,37],$Vp=[1,38],$Vq=[1,39],$Vr=[1,40],$Vs=[1,41],$Vt=[5,42,70],$Vu=[5,10,12,13,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,42,70],$Vv=[2,34],$Vw=[5,8,10,12,13,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,42,70],$Vx=[5,10,12,42,70],$Vy=[1,49],$Vz=[1,50],$VA=[1,51],$VB=[1,52],$VC=[1,53],$VD=[1,54],$VE=[1,55],$VF=[1,56],$VG=[1,57],$VH=[1,58],$VI=[1,59],$VJ=[1,60],$VK=[1,61],$VL=[1,62],$VM=[1,63],$VN=[1,64],$VO=[1,65],$VP=[1,66],$VQ=[5,10,12,13,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,42,70],$VR=[42,70]; var parser = {trace: function trace () { }, yy: {}, -symbols_: {"error":2,"tag":3,"expression":4,"EOF":5,"e5":6,"leftExpression":7,"=":8,"e4":9,"+":10,"e3":11,"-":12,"*":13,"e2":14,"/":15,"%":16,"&":17,"|":18,"^":19,"SHL":20,"SHR":21,"L_OR":22,"L_AND":23,"EXP":24,"EQ":25,"NE":26,"LT":27,"LE":28,"GT":29,"GE":30,"?":31,":":32,"~":33,"!":34,"e1":35,"functionCall":36,"e0":37,"NUMBER":38,"reg":39,"counter":40,"(":41,")":42,"IDENTIFIER":43,".":44,"VAR":45,"A":46,"B":47,"C":48,"D":49,"E":50,"SR":51,"CTX":52,"SP":53,"PC":54,"GAS":55,"zkPC":56,"RR":57,"STEP":58,"HASHPOS":59,"RCX":60,"CNT_ARITH":61,"CNT_BINARY":62,"CNT_KECCAK_F":63,"CNT_MEM_ALIGN":64,"CNT_PADDING_PG":65,"CNT_POSEIDON_G":66,"expressionList":67,",":68,"$accept":0,"$end":1}, -terminals_: {2:"error",5:"EOF",8:"=",10:"+",12:"-",13:"*",15:"/",16:"%",17:"&",18:"|",19:"^",20:"SHL",21:"SHR",22:"L_OR",23:"L_AND",24:"EXP",25:"EQ",26:"NE",27:"LT",28:"LE",29:"GT",30:"GE",31:"?",32:":",33:"~",34:"!",38:"NUMBER",41:"(",42:")",43:"IDENTIFIER",44:".",45:"VAR",46:"A",47:"B",48:"C",49:"D",50:"E",51:"SR",52:"CTX",53:"SP",54:"PC",55:"GAS",56:"zkPC",57:"RR",58:"STEP",59:"HASHPOS",60:"RCX",61:"CNT_ARITH",62:"CNT_BINARY",63:"CNT_KECCAK_F",64:"CNT_MEM_ALIGN",65:"CNT_PADDING_PG",66:"CNT_POSEIDON_G",68:","}, -productions_: [0,[3,2],[4,1],[6,3],[6,1],[9,3],[9,3],[9,1],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,5],[11,1],[14,2],[14,2],[14,2],[14,2],[14,1],[35,1],[35,1],[37,1],[37,1],[37,1],[37,1],[37,3],[37,3],[7,2],[7,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[36,4],[36,3],[67,3],[67,1]], +symbols_: {"error":2,"tag":3,"expression":4,"EOF":5,"e5":6,"leftExpression":7,"=":8,"e4":9,"+":10,"e3":11,"-":12,"*":13,"e2":14,"/":15,"%":16,"&":17,"|":18,"^":19,"SHL":20,"SHR":21,"L_OR":22,"L_AND":23,"EXP":24,"EQ":25,"NE":26,"LT":27,"LE":28,"GT":29,"GE":30,"?":31,":":32,"~":33,"!":34,"e1":35,"functionCall":36,"e0":37,"NUMBER":38,"reg":39,"counter":40,"(":41,")":42,"IDENTIFIER":43,".":44,"[":45,"]":46,"VAR":47,"A":48,"B":49,"C":50,"D":51,"E":52,"SR":53,"CTX":54,"SP":55,"PC":56,"GAS":57,"zkPC":58,"RR":59,"STEP":60,"HASHPOS":61,"RCX":62,"CNT_ARITH":63,"CNT_BINARY":64,"CNT_KECCAK_F":65,"CNT_MEM_ALIGN":66,"CNT_PADDING_PG":67,"CNT_POSEIDON_G":68,"expressionList":69,",":70,"$accept":0,"$end":1}, +terminals_: {2:"error",5:"EOF",8:"=",10:"+",12:"-",13:"*",15:"/",16:"%",17:"&",18:"|",19:"^",20:"SHL",21:"SHR",22:"L_OR",23:"L_AND",24:"EXP",25:"EQ",26:"NE",27:"LT",28:"LE",29:"GT",30:"GE",31:"?",32:":",33:"~",34:"!",38:"NUMBER",41:"(",42:")",43:"IDENTIFIER",44:".",45:"[",46:"]",47:"VAR",48:"A",49:"B",50:"C",51:"D",52:"E",53:"SR",54:"CTX",55:"SP",56:"PC",57:"GAS",58:"zkPC",59:"RR",60:"STEP",61:"HASHPOS",62:"RCX",63:"CNT_ARITH",64:"CNT_BINARY",65:"CNT_KECCAK_F",66:"CNT_MEM_ALIGN",67:"CNT_PADDING_PG",68:"CNT_POSEIDON_G",70:","}, +productions_: [0,[3,2],[4,1],[6,3],[6,1],[9,3],[9,3],[9,1],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,5],[11,1],[14,2],[14,2],[14,2],[14,2],[14,1],[35,1],[35,1],[37,1],[37,1],[37,1],[37,1],[37,3],[37,3],[37,6],[7,2],[7,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[36,4],[36,3],[69,3],[69,1]], performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { /* this == yyval */ @@ -237,42 +237,47 @@ case 38: break; case 39: - this.$ = {op: "getData", module: $$[$0-2], offset: $$[$0]} + this.$ = {op: "getData", module: $$[$0-2], offset: $$[$0], arrayOffset: 0} break; case 40: - this.$ = {op: "declareVar", varName: $$[$0]} + this.$ = {op: "getData", module: $$[$0-5], offset: $$[$0-3], arrayOffset: $$[$0-1]} break; case 41: + this.$ = {op: "declareVar", varName: $$[$0]} + +break; +case 42: + this.$ = {op: "getVar", varName: $$[$0]} break; -case 63: +case 64: this.$ = {op: "functionCall", funcName: $$[$0-3], params: $$[$0-1]} break; -case 64: +case 65: this.$ = {op: "functionCall", funcName: $$[$0-2], params: []} break; -case 65: +case 66: $$[$0-2].push($$[$0]); break; -case 66: +case 67: this.$ = [$$[$0]]; break; } }, -table: [{3:1,4:2,6:3,7:4,9:5,10:$V0,11:8,12:$V1,14:9,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,45:$V7,46:$V8,47:$V9,48:$Va,49:$Vb,50:$Vc,51:$Vd,52:$Ve,53:$Vf,54:$Vg,55:$Vh,56:$Vi,57:$Vj,58:$Vk,59:$Vl,60:$Vm,61:$Vn,62:$Vo,63:$Vp,64:$Vq,65:$Vr,66:$Vs},{1:[3]},{5:[1,42]},o($Vt,[2,2]),o($Vu,$Vv,{8:[1,43]}),o($Vt,[2,4],{10:[1,44],12:[1,45]}),{43:[1,46]},o($Vw,[2,41],{41:[1,47],44:[1,48]}),o($Vx,[2,7],{13:$Vy,15:$Vz,16:$VA,17:$VB,18:$VC,19:$VD,20:$VE,21:$VF,22:$VG,23:$VH,24:$VI,25:$VJ,26:$VK,27:$VL,28:$VM,29:$VN,30:$VO,31:$VP}),o($Vu,[2,26]),{7:68,10:$V0,12:$V1,14:67,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,45:$V7,46:$V8,47:$V9,48:$Va,49:$Vb,50:$Vc,51:$Vd,52:$Ve,53:$Vf,54:$Vg,55:$Vh,56:$Vi,57:$Vj,58:$Vk,59:$Vl,60:$Vm,61:$Vn,62:$Vo,63:$Vp,64:$Vq,65:$Vr,66:$Vs},{7:68,10:$V0,12:$V1,14:69,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,45:$V7,46:$V8,47:$V9,48:$Va,49:$Vb,50:$Vc,51:$Vd,52:$Ve,53:$Vf,54:$Vg,55:$Vh,56:$Vi,57:$Vj,58:$Vk,59:$Vl,60:$Vm,61:$Vn,62:$Vo,63:$Vp,64:$Vq,65:$Vr,66:$Vs},{7:68,10:$V0,12:$V1,14:70,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,45:$V7,46:$V8,47:$V9,48:$Va,49:$Vb,50:$Vc,51:$Vd,52:$Ve,53:$Vf,54:$Vg,55:$Vh,56:$Vi,57:$Vj,58:$Vk,59:$Vl,60:$Vm,61:$Vn,62:$Vo,63:$Vp,64:$Vq,65:$Vr,66:$Vs},{7:68,10:$V0,12:$V1,14:71,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,45:$V7,46:$V8,47:$V9,48:$Va,49:$Vb,50:$Vc,51:$Vd,52:$Ve,53:$Vf,54:$Vg,55:$Vh,56:$Vi,57:$Vj,58:$Vk,59:$Vl,60:$Vm,61:$Vn,62:$Vo,63:$Vp,64:$Vq,65:$Vr,66:$Vs},o($VQ,[2,31]),o($VQ,[2,32]),o($VQ,[2,33]),o($VQ,[2,35]),o($VQ,[2,36]),o($VQ,[2,37]),{4:72,6:3,7:4,9:5,10:$V0,11:8,12:$V1,14:9,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,45:$V7,46:$V8,47:$V9,48:$Va,49:$Vb,50:$Vc,51:$Vd,52:$Ve,53:$Vf,54:$Vg,55:$Vh,56:$Vi,57:$Vj,58:$Vk,59:$Vl,60:$Vm,61:$Vn,62:$Vo,63:$Vp,64:$Vq,65:$Vr,66:$Vs},o($VQ,[2,42]),o($VQ,[2,43]),o($VQ,[2,44]),o($VQ,[2,45]),o($VQ,[2,46]),o($VQ,[2,47]),o($VQ,[2,48]),o($VQ,[2,49]),o($VQ,[2,50]),o($VQ,[2,51]),o($VQ,[2,52]),o($VQ,[2,53]),o($VQ,[2,54]),o($VQ,[2,55]),o($VQ,[2,56]),o($VQ,[2,57]),o($VQ,[2,58]),o($VQ,[2,59]),o($VQ,[2,60]),o($VQ,[2,61]),o($VQ,[2,62]),{1:[2,1]},{6:73,7:4,9:5,10:$V0,11:8,12:$V1,14:9,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,45:$V7,46:$V8,47:$V9,48:$Va,49:$Vb,50:$Vc,51:$Vd,52:$Ve,53:$Vf,54:$Vg,55:$Vh,56:$Vi,57:$Vj,58:$Vk,59:$Vl,60:$Vm,61:$Vn,62:$Vo,63:$Vp,64:$Vq,65:$Vr,66:$Vs},{7:68,10:$V0,11:74,12:$V1,14:9,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,45:$V7,46:$V8,47:$V9,48:$Va,49:$Vb,50:$Vc,51:$Vd,52:$Ve,53:$Vf,54:$Vg,55:$Vh,56:$Vi,57:$Vj,58:$Vk,59:$Vl,60:$Vm,61:$Vn,62:$Vo,63:$Vp,64:$Vq,65:$Vr,66:$Vs},{7:68,10:$V0,11:75,12:$V1,14:9,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,45:$V7,46:$V8,47:$V9,48:$Va,49:$Vb,50:$Vc,51:$Vd,52:$Ve,53:$Vf,54:$Vg,55:$Vh,56:$Vi,57:$Vj,58:$Vk,59:$Vl,60:$Vm,61:$Vn,62:$Vo,63:$Vp,64:$Vq,65:$Vr,66:$Vs},o($Vw,[2,40]),{4:78,6:3,7:4,9:5,10:$V0,11:8,12:$V1,14:9,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,42:[1,77],43:$V6,45:$V7,46:$V8,47:$V9,48:$Va,49:$Vb,50:$Vc,51:$Vd,52:$Ve,53:$Vf,54:$Vg,55:$Vh,56:$Vi,57:$Vj,58:$Vk,59:$Vl,60:$Vm,61:$Vn,62:$Vo,63:$Vp,64:$Vq,65:$Vr,66:$Vs,67:76},{43:[1,79]},{7:68,10:$V0,12:$V1,14:80,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,45:$V7,46:$V8,47:$V9,48:$Va,49:$Vb,50:$Vc,51:$Vd,52:$Ve,53:$Vf,54:$Vg,55:$Vh,56:$Vi,57:$Vj,58:$Vk,59:$Vl,60:$Vm,61:$Vn,62:$Vo,63:$Vp,64:$Vq,65:$Vr,66:$Vs},{7:68,10:$V0,12:$V1,14:81,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,45:$V7,46:$V8,47:$V9,48:$Va,49:$Vb,50:$Vc,51:$Vd,52:$Ve,53:$Vf,54:$Vg,55:$Vh,56:$Vi,57:$Vj,58:$Vk,59:$Vl,60:$Vm,61:$Vn,62:$Vo,63:$Vp,64:$Vq,65:$Vr,66:$Vs},{7:68,10:$V0,12:$V1,14:82,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,45:$V7,46:$V8,47:$V9,48:$Va,49:$Vb,50:$Vc,51:$Vd,52:$Ve,53:$Vf,54:$Vg,55:$Vh,56:$Vi,57:$Vj,58:$Vk,59:$Vl,60:$Vm,61:$Vn,62:$Vo,63:$Vp,64:$Vq,65:$Vr,66:$Vs},{7:68,10:$V0,12:$V1,14:83,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,45:$V7,46:$V8,47:$V9,48:$Va,49:$Vb,50:$Vc,51:$Vd,52:$Ve,53:$Vf,54:$Vg,55:$Vh,56:$Vi,57:$Vj,58:$Vk,59:$Vl,60:$Vm,61:$Vn,62:$Vo,63:$Vp,64:$Vq,65:$Vr,66:$Vs},{7:68,10:$V0,12:$V1,14:84,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,45:$V7,46:$V8,47:$V9,48:$Va,49:$Vb,50:$Vc,51:$Vd,52:$Ve,53:$Vf,54:$Vg,55:$Vh,56:$Vi,57:$Vj,58:$Vk,59:$Vl,60:$Vm,61:$Vn,62:$Vo,63:$Vp,64:$Vq,65:$Vr,66:$Vs},{7:68,10:$V0,12:$V1,14:85,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,45:$V7,46:$V8,47:$V9,48:$Va,49:$Vb,50:$Vc,51:$Vd,52:$Ve,53:$Vf,54:$Vg,55:$Vh,56:$Vi,57:$Vj,58:$Vk,59:$Vl,60:$Vm,61:$Vn,62:$Vo,63:$Vp,64:$Vq,65:$Vr,66:$Vs},{7:68,10:$V0,12:$V1,14:86,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,45:$V7,46:$V8,47:$V9,48:$Va,49:$Vb,50:$Vc,51:$Vd,52:$Ve,53:$Vf,54:$Vg,55:$Vh,56:$Vi,57:$Vj,58:$Vk,59:$Vl,60:$Vm,61:$Vn,62:$Vo,63:$Vp,64:$Vq,65:$Vr,66:$Vs},{7:68,10:$V0,12:$V1,14:87,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,45:$V7,46:$V8,47:$V9,48:$Va,49:$Vb,50:$Vc,51:$Vd,52:$Ve,53:$Vf,54:$Vg,55:$Vh,56:$Vi,57:$Vj,58:$Vk,59:$Vl,60:$Vm,61:$Vn,62:$Vo,63:$Vp,64:$Vq,65:$Vr,66:$Vs},{7:68,10:$V0,12:$V1,14:88,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,45:$V7,46:$V8,47:$V9,48:$Va,49:$Vb,50:$Vc,51:$Vd,52:$Ve,53:$Vf,54:$Vg,55:$Vh,56:$Vi,57:$Vj,58:$Vk,59:$Vl,60:$Vm,61:$Vn,62:$Vo,63:$Vp,64:$Vq,65:$Vr,66:$Vs},{7:68,10:$V0,12:$V1,14:89,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,45:$V7,46:$V8,47:$V9,48:$Va,49:$Vb,50:$Vc,51:$Vd,52:$Ve,53:$Vf,54:$Vg,55:$Vh,56:$Vi,57:$Vj,58:$Vk,59:$Vl,60:$Vm,61:$Vn,62:$Vo,63:$Vp,64:$Vq,65:$Vr,66:$Vs},{7:68,10:$V0,12:$V1,14:90,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,45:$V7,46:$V8,47:$V9,48:$Va,49:$Vb,50:$Vc,51:$Vd,52:$Ve,53:$Vf,54:$Vg,55:$Vh,56:$Vi,57:$Vj,58:$Vk,59:$Vl,60:$Vm,61:$Vn,62:$Vo,63:$Vp,64:$Vq,65:$Vr,66:$Vs},{7:68,10:$V0,12:$V1,14:91,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,45:$V7,46:$V8,47:$V9,48:$Va,49:$Vb,50:$Vc,51:$Vd,52:$Ve,53:$Vf,54:$Vg,55:$Vh,56:$Vi,57:$Vj,58:$Vk,59:$Vl,60:$Vm,61:$Vn,62:$Vo,63:$Vp,64:$Vq,65:$Vr,66:$Vs},{7:68,10:$V0,12:$V1,14:92,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,45:$V7,46:$V8,47:$V9,48:$Va,49:$Vb,50:$Vc,51:$Vd,52:$Ve,53:$Vf,54:$Vg,55:$Vh,56:$Vi,57:$Vj,58:$Vk,59:$Vl,60:$Vm,61:$Vn,62:$Vo,63:$Vp,64:$Vq,65:$Vr,66:$Vs},{7:68,10:$V0,12:$V1,14:93,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,45:$V7,46:$V8,47:$V9,48:$Va,49:$Vb,50:$Vc,51:$Vd,52:$Ve,53:$Vf,54:$Vg,55:$Vh,56:$Vi,57:$Vj,58:$Vk,59:$Vl,60:$Vm,61:$Vn,62:$Vo,63:$Vp,64:$Vq,65:$Vr,66:$Vs},{7:68,10:$V0,12:$V1,14:94,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,45:$V7,46:$V8,47:$V9,48:$Va,49:$Vb,50:$Vc,51:$Vd,52:$Ve,53:$Vf,54:$Vg,55:$Vh,56:$Vi,57:$Vj,58:$Vk,59:$Vl,60:$Vm,61:$Vn,62:$Vo,63:$Vp,64:$Vq,65:$Vr,66:$Vs},{7:68,10:$V0,12:$V1,14:95,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,45:$V7,46:$V8,47:$V9,48:$Va,49:$Vb,50:$Vc,51:$Vd,52:$Ve,53:$Vf,54:$Vg,55:$Vh,56:$Vi,57:$Vj,58:$Vk,59:$Vl,60:$Vm,61:$Vn,62:$Vo,63:$Vp,64:$Vq,65:$Vr,66:$Vs},{7:68,10:$V0,12:$V1,14:96,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,45:$V7,46:$V8,47:$V9,48:$Va,49:$Vb,50:$Vc,51:$Vd,52:$Ve,53:$Vf,54:$Vg,55:$Vh,56:$Vi,57:$Vj,58:$Vk,59:$Vl,60:$Vm,61:$Vn,62:$Vo,63:$Vp,64:$Vq,65:$Vr,66:$Vs},{7:68,10:$V0,12:$V1,14:97,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,45:$V7,46:$V8,47:$V9,48:$Va,49:$Vb,50:$Vc,51:$Vd,52:$Ve,53:$Vf,54:$Vg,55:$Vh,56:$Vi,57:$Vj,58:$Vk,59:$Vl,60:$Vm,61:$Vn,62:$Vo,63:$Vp,64:$Vq,65:$Vr,66:$Vs},o($VQ,[2,27]),o($VQ,$Vv),o($VQ,[2,28]),o($VQ,[2,29]),o($VQ,[2,30]),{42:[1,98]},o($Vt,[2,3]),o($Vx,[2,5],{13:$Vy,15:$Vz,16:$VA,17:$VB,18:$VC,19:$VD,20:$VE,21:$VF,22:$VG,23:$VH,24:$VI,25:$VJ,26:$VK,27:$VL,28:$VM,29:$VN,30:$VO,31:$VP}),o($Vx,[2,6],{13:$Vy,15:$Vz,16:$VA,17:$VB,18:$VC,19:$VD,20:$VE,21:$VF,22:$VG,23:$VH,24:$VI,25:$VJ,26:$VK,27:$VL,28:$VM,29:$VN,30:$VO,31:$VP}),{42:[1,99],68:[1,100]},o($VQ,[2,64]),o($VR,[2,66]),o($VQ,[2,39]),o($Vu,[2,8]),o($Vu,[2,9]),o($Vu,[2,10]),o($Vu,[2,11]),o($Vu,[2,12]),o($Vu,[2,13]),o($Vu,[2,14]),o($Vu,[2,15]),o($Vu,[2,16]),o($Vu,[2,17]),o($Vu,[2,18]),o($Vu,[2,19]),o($Vu,[2,20]),o($Vu,[2,21]),o($Vu,[2,22]),o($Vu,[2,23]),o($Vu,[2,24]),{32:[1,101]},o($VQ,[2,38]),o($VQ,[2,63]),{4:102,6:3,7:4,9:5,10:$V0,11:8,12:$V1,14:9,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,45:$V7,46:$V8,47:$V9,48:$Va,49:$Vb,50:$Vc,51:$Vd,52:$Ve,53:$Vf,54:$Vg,55:$Vh,56:$Vi,57:$Vj,58:$Vk,59:$Vl,60:$Vm,61:$Vn,62:$Vo,63:$Vp,64:$Vq,65:$Vr,66:$Vs},{7:68,10:$V0,12:$V1,14:103,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,45:$V7,46:$V8,47:$V9,48:$Va,49:$Vb,50:$Vc,51:$Vd,52:$Ve,53:$Vf,54:$Vg,55:$Vh,56:$Vi,57:$Vj,58:$Vk,59:$Vl,60:$Vm,61:$Vn,62:$Vo,63:$Vp,64:$Vq,65:$Vr,66:$Vs},o($VR,[2,65]),o($Vu,[2,25])], +table: [{3:1,4:2,6:3,7:4,9:5,10:$V0,11:8,12:$V1,14:9,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{1:[3]},{5:[1,42]},o($Vt,[2,2]),o($Vu,$Vv,{8:[1,43]}),o($Vt,[2,4],{10:[1,44],12:[1,45]}),{43:[1,46]},o($Vw,[2,42],{41:[1,47],44:[1,48]}),o($Vx,[2,7],{13:$Vy,15:$Vz,16:$VA,17:$VB,18:$VC,19:$VD,20:$VE,21:$VF,22:$VG,23:$VH,24:$VI,25:$VJ,26:$VK,27:$VL,28:$VM,29:$VN,30:$VO,31:$VP}),o($Vu,[2,26]),{7:68,10:$V0,12:$V1,14:67,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:69,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:70,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:71,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},o($VQ,[2,31]),o($VQ,[2,32]),o($VQ,[2,33]),o($VQ,[2,35]),o($VQ,[2,36]),o($VQ,[2,37]),{4:72,6:3,7:4,9:5,10:$V0,11:8,12:$V1,14:9,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},o($VQ,[2,43]),o($VQ,[2,44]),o($VQ,[2,45]),o($VQ,[2,46]),o($VQ,[2,47]),o($VQ,[2,48]),o($VQ,[2,49]),o($VQ,[2,50]),o($VQ,[2,51]),o($VQ,[2,52]),o($VQ,[2,53]),o($VQ,[2,54]),o($VQ,[2,55]),o($VQ,[2,56]),o($VQ,[2,57]),o($VQ,[2,58]),o($VQ,[2,59]),o($VQ,[2,60]),o($VQ,[2,61]),o($VQ,[2,62]),o($VQ,[2,63]),{1:[2,1]},{6:73,7:4,9:5,10:$V0,11:8,12:$V1,14:9,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,11:74,12:$V1,14:9,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,11:75,12:$V1,14:9,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},o($Vw,[2,41]),{4:78,6:3,7:4,9:5,10:$V0,11:8,12:$V1,14:9,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,42:[1,77],43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs,69:76},{43:[1,79]},{7:68,10:$V0,12:$V1,14:80,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:81,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:82,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:83,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:84,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:85,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:86,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:87,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:88,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:89,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:90,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:91,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:92,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:93,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:94,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:95,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:96,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:97,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},o($VQ,[2,27]),o($VQ,$Vv),o($VQ,[2,28]),o($VQ,[2,29]),o($VQ,[2,30]),{42:[1,98]},o($Vt,[2,3]),o($Vx,[2,5],{13:$Vy,15:$Vz,16:$VA,17:$VB,18:$VC,19:$VD,20:$VE,21:$VF,22:$VG,23:$VH,24:$VI,25:$VJ,26:$VK,27:$VL,28:$VM,29:$VN,30:$VO,31:$VP}),o($Vx,[2,6],{13:$Vy,15:$Vz,16:$VA,17:$VB,18:$VC,19:$VD,20:$VE,21:$VF,22:$VG,23:$VH,24:$VI,25:$VJ,26:$VK,27:$VL,28:$VM,29:$VN,30:$VO,31:$VP}),{42:[1,99],70:[1,100]},o($VQ,[2,65]),o($VR,[2,67]),o($VQ,[2,39],{45:[1,101]}),o($Vu,[2,8]),o($Vu,[2,9]),o($Vu,[2,10]),o($Vu,[2,11]),o($Vu,[2,12]),o($Vu,[2,13]),o($Vu,[2,14]),o($Vu,[2,15]),o($Vu,[2,16]),o($Vu,[2,17]),o($Vu,[2,18]),o($Vu,[2,19]),o($Vu,[2,20]),o($Vu,[2,21]),o($Vu,[2,22]),o($Vu,[2,23]),o($Vu,[2,24]),{32:[1,102]},o($VQ,[2,38]),o($VQ,[2,64]),{4:103,6:3,7:4,9:5,10:$V0,11:8,12:$V1,14:9,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{38:[1,104]},{7:68,10:$V0,12:$V1,14:105,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},o($VR,[2,66]),{46:[1,106]},o($Vu,[2,25]),o($VQ,[2,40])], defaultActions: {42:[2,1]}, parseError: function parseError (str, hash) { if (hash.recoverable) { @@ -753,49 +758,49 @@ case 0: yy_.yytext = BigInt(yy_.yytext.replace(/\_/g, "")); return 38; break; case 1: /* console.log("Empty spaces"); */ break; -case 2: return 46; +case 2: return 48; break; -case 3: return 47; +case 3: return 49; break; -case 4: return 48; +case 4: return 50; break; -case 5: return 49; +case 5: return 51; break; -case 6: return 50; +case 6: return 52; break; -case 7: return 51; +case 7: return 53; break; -case 8: return 52; +case 8: return 54; break; -case 9: return 53; +case 9: return 55; break; -case 10: return 54; +case 10: return 56; break; -case 11: return 55; +case 11: return 57; break; -case 12: return 56; +case 12: return 58; break; -case 13: return 57; +case 13: return 59; break; -case 14: return 58; +case 14: return 60; break; -case 15: return 61 +case 15: return 63 break; -case 16: return 62 +case 16: return 64 break; -case 17: return 63 +case 17: return 65 break; -case 18: return 64 +case 18: return 66 break; -case 19: return 65 +case 19: return 67 break; -case 20: return 66 +case 20: return 68 break; -case 21: return 59; +case 21: return 61; break; -case 22: return 60; +case 22: return 62; break; -case 23: return 45; +case 23: return 47; break; case 24: return 43; break; @@ -805,7 +810,7 @@ case 26: return 42 break; case 27: return 10 break; -case 28: return 68 +case 28: return 70 break; case 29: return 12 break; @@ -857,14 +862,18 @@ case 52: return RANGE_DOTS break; case 53: return 44 break; -case 54: return 5; +case 54: return 45 +break; +case 55: return 46 +break; +case 56: return 5; break; -case 55: /* console.log("INVALID: " + yy_.yytext); */ return 'INVALID'; +case 57: /* console.log("INVALID: " + yy_.yytext); */ return 'INVALID'; break; } }, -rules: [/^(?:(0x[0-9A-Fa-f][0-9A-Fa-f_]*)|([0-9][0-9_]*))/,/^(?:[ \t\r\n]+)/,/^(?:A\b)/,/^(?:B\b)/,/^(?:C\b)/,/^(?:D\b)/,/^(?:E\b)/,/^(?:SR\b)/,/^(?:CTX\b)/,/^(?:SP\b)/,/^(?:PC\b)/,/^(?:GAS\b)/,/^(?:zkPC\b)/,/^(?:RR\b)/,/^(?:STEP\b)/,/^(?:CNT_ARITH\b)/,/^(?:CNT_BINARY\b)/,/^(?:CNT_KECCAK_F\b)/,/^(?:CNT_MEM_ALIGN\b)/,/^(?:CNT_PADDING_PG\b)/,/^(?:CNT_POSEIDON_G\b)/,/^(?:HASHPOS\b)/,/^(?:RCX\b)/,/^(?:var\b)/,/^(?:[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?:\()/,/^(?:\))/,/^(?:\+)/,/^(?:,)/,/^(?:-)/,/^(?:\*\*)/,/^(?:\*)/,/^(?:\/)/,/^(?:%)/,/^(?:<<)/,/^(?:>>)/,/^(?:<=)/,/^(?:>=)/,/^(?:&&)/,/^(?:\|\|)/,/^(?:==)/,/^(?:!=)/,/^(?:=)/,/^(?:&)/,/^(?:~)/,/^(?:\|)/,/^(?:\^)/,/^(?:<)/,/^(?:>)/,/^(?:!)/,/^(?:\?)/,/^(?::)/,/^(?:\.\.)/,/^(?:\.)/,/^(?:$)/,/^(?:.)/], -conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55],"inclusive":true}} +rules: [/^(?:(0x[0-9A-Fa-f][0-9A-Fa-f_]*)|([0-9][0-9_]*))/,/^(?:[ \t\r\n]+)/,/^(?:A\b)/,/^(?:B\b)/,/^(?:C\b)/,/^(?:D\b)/,/^(?:E\b)/,/^(?:SR\b)/,/^(?:CTX\b)/,/^(?:SP\b)/,/^(?:PC\b)/,/^(?:GAS\b)/,/^(?:zkPC\b)/,/^(?:RR\b)/,/^(?:STEP\b)/,/^(?:CNT_ARITH\b)/,/^(?:CNT_BINARY\b)/,/^(?:CNT_KECCAK_F\b)/,/^(?:CNT_MEM_ALIGN\b)/,/^(?:CNT_PADDING_PG\b)/,/^(?:CNT_POSEIDON_G\b)/,/^(?:HASHPOS\b)/,/^(?:RCX\b)/,/^(?:var\b)/,/^(?:[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?:\()/,/^(?:\))/,/^(?:\+)/,/^(?:,)/,/^(?:-)/,/^(?:\*\*)/,/^(?:\*)/,/^(?:\/)/,/^(?:%)/,/^(?:<<)/,/^(?:>>)/,/^(?:<=)/,/^(?:>=)/,/^(?:&&)/,/^(?:\|\|)/,/^(?:==)/,/^(?:!=)/,/^(?:=)/,/^(?:&)/,/^(?:~)/,/^(?:\|)/,/^(?:\^)/,/^(?:<)/,/^(?:>)/,/^(?:!)/,/^(?:\?)/,/^(?::)/,/^(?:\.\.)/,/^(?:\.)/,/^(?:\[)/,/^(?:\])/,/^(?:$)/,/^(?:.)/], +conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57],"inclusive":true}} }); return lexer; })(); diff --git a/src/command_parser.jison b/src/command_parser.jison index 2c2b755..e8af95a 100644 --- a/src/command_parser.jison +++ b/src/command_parser.jison @@ -55,6 +55,8 @@ var { return 'VAR'; } \: { return ':'} \.\. { return RANGE_DOTS } \. { return '.'} +\[ { return '[' } +\] { return ']' } <> { return 'EOF'; } . { /* console.log("INVALID: " + yytext); */ return 'INVALID'; } @@ -255,7 +257,11 @@ e0 } | IDENTIFIER '.' IDENTIFIER { - $$ = {op: "getData", module: $1, offset: $3} + $$ = {op: "getData", module: $1, offset: $3, arrayOffset: 0} + } + | IDENTIFIER '.' IDENTIFIER '[' NUMBER ']' + { + $$ = {op: "getData", module: $1, offset: $3, arrayOffset: $5} } ; diff --git a/src/compiler.js b/src/compiler.js index 8b730d1..ccbf2b6 100644 --- a/src/compiler.js +++ b/src/compiler.js @@ -248,7 +248,7 @@ module.exports = async function compile(fileName, ctx, config = {}) { error(ctx.out[i].line, `Not found reference ${cmd.module}.${name}`); } cmd.op = 'getMemValue' - cmd.offset = ctx.vars[name].offset; + cmd.offset = ctx.vars[name].offset + Number(cmd.arrayOffset ?? 0) cmd.offsetLabel = name; return; } diff --git a/test/arrays.zkasm b/test/arrays.zkasm index 9e9d5e8..d994808 100644 --- a/test/arrays.zkasm +++ b/test/arrays.zkasm @@ -11,10 +11,39 @@ start: 2 :MSTORE(b) 3 :MSTORE(c) 4 :MSTORE(d) - @a => A - @b => A - @c => A - @d => A + + 0 => RCX,E +loopA: + E + 1 => E :MSTORE(a + E) + ${dump(E)} + E - RCX - 100 :JMPN(loopA) +setB: + E + 1 => E :MSTORE(b) + + 0 => RCX,E +loopC: + E + 1 => E + E + 1000 :MSTORE(c + E) + ${dump(E)} + E - RCX - 300 :JMPN(loopC) +setD: + E + 1 => E :MSTORE(d) + + 1 => A + ${mem.a} :ASSERT + + 1 => A + ${mem.a[0]} :ASSERT + + 2 => A + ${mem.a[1]} :ASSERT + + 3 => A + ${mem.a[2]} :ASSERT + + 1001 => A + ${mem.c[1]} :ASSERT + end: 0 => A,B,C,D,E,CTX, SP, PC, GAS, SR From a0e7606e86d3e9a5fc939fe58497236eb65c861e Mon Sep 17 00:00:00 2001 From: zkronos73 Date: Sat, 15 Jul 2023 23:15:07 +0200 Subject: [PATCH 07/25] add module addr to get address on command --- src/compiler.js | 11 +++++++++++ test/arrays.zkasm | 5 +++++ 2 files changed, 16 insertions(+) diff --git a/src/compiler.js b/src/compiler.js index ccbf2b6..cdfa6ed 100644 --- a/src/compiler.js +++ b/src/compiler.js @@ -252,6 +252,17 @@ module.exports = async function compile(fileName, ctx, config = {}) { cmd.offsetLabel = name; return; } + else if (cmd.module === 'addr' && typeof cmd.offsetLabel === 'undefined') { + const name = cmd.offset; + if (typeof ctx.vars[name] === 'undefined') { + error(ctx.out[i].line, `Not found reference ${cmd.module}.${name}`); + } + cmd.op = 'number' + cmd.num = ctx.vars[name].offset + Number(cmd.arrayOffset ?? 0) + cmd.offsetLabel = name; + delete cmd.offset; + return; + } else if (cmd.module === 'const' && typeof cmd.offsetLabel === 'undefined') { const name = cmd.offset; cmd.op = 'number' diff --git a/test/arrays.zkasm b/test/arrays.zkasm index d994808..d0ff47f 100644 --- a/test/arrays.zkasm +++ b/test/arrays.zkasm @@ -44,6 +44,11 @@ setD: 1001 => A ${mem.c[1]} :ASSERT + 102 => A + ${addr.c[1]} :ASSERT + + 401 => A + ${addr.d} :ASSERT end: 0 => A,B,C,D,E,CTX, SP, PC, GAS, SR From fe39b44da19411411cb506e37a6e147494388a47 Mon Sep 17 00:00:00 2001 From: zkronos73 Date: Thu, 14 Sep 2023 13:19:40 +0200 Subject: [PATCH 08/25] add constant indirection on arrays and indirect on command --- build/command_parser.js | 4 ++-- build/zkasm_parser.js | 35 ++++++++++++++++++++++++++++++----- src/command_parser.jison | 2 +- src/compiler.js | 24 +++++++++++++++++++++--- src/zkasm_parser.jison | 20 ++++++++++++++++++++ test/arrays.zkasm | 15 ++++++++++++--- 6 files changed, 86 insertions(+), 14 deletions(-) diff --git a/build/command_parser.js b/build/command_parser.js index fc6c948..a020605 100644 --- a/build/command_parser.js +++ b/build/command_parser.js @@ -72,7 +72,7 @@ } */ var command_parser = (function(){ -var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,10],$V1=[1,11],$V2=[1,12],$V3=[1,13],$V4=[1,17],$V5=[1,20],$V6=[1,7],$V7=[1,6],$V8=[1,21],$V9=[1,22],$Va=[1,23],$Vb=[1,24],$Vc=[1,25],$Vd=[1,26],$Ve=[1,27],$Vf=[1,28],$Vg=[1,29],$Vh=[1,30],$Vi=[1,31],$Vj=[1,32],$Vk=[1,33],$Vl=[1,34],$Vm=[1,35],$Vn=[1,36],$Vo=[1,37],$Vp=[1,38],$Vq=[1,39],$Vr=[1,40],$Vs=[1,41],$Vt=[5,42,70],$Vu=[5,10,12,13,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,42,70],$Vv=[2,34],$Vw=[5,8,10,12,13,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,42,70],$Vx=[5,10,12,42,70],$Vy=[1,49],$Vz=[1,50],$VA=[1,51],$VB=[1,52],$VC=[1,53],$VD=[1,54],$VE=[1,55],$VF=[1,56],$VG=[1,57],$VH=[1,58],$VI=[1,59],$VJ=[1,60],$VK=[1,61],$VL=[1,62],$VM=[1,63],$VN=[1,64],$VO=[1,65],$VP=[1,66],$VQ=[5,10,12,13,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,42,70],$VR=[42,70]; +var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,10],$V1=[1,11],$V2=[1,12],$V3=[1,13],$V4=[1,17],$V5=[1,20],$V6=[1,7],$V7=[1,6],$V8=[1,21],$V9=[1,22],$Va=[1,23],$Vb=[1,24],$Vc=[1,25],$Vd=[1,26],$Ve=[1,27],$Vf=[1,28],$Vg=[1,29],$Vh=[1,30],$Vi=[1,31],$Vj=[1,32],$Vk=[1,33],$Vl=[1,34],$Vm=[1,35],$Vn=[1,36],$Vo=[1,37],$Vp=[1,38],$Vq=[1,39],$Vr=[1,40],$Vs=[1,41],$Vt=[5,42,46,70],$Vu=[5,10,12,13,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,42,46,70],$Vv=[2,34],$Vw=[5,8,10,12,13,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,42,46,70],$Vx=[5,10,12,42,46,70],$Vy=[1,49],$Vz=[1,50],$VA=[1,51],$VB=[1,52],$VC=[1,53],$VD=[1,54],$VE=[1,55],$VF=[1,56],$VG=[1,57],$VH=[1,58],$VI=[1,59],$VJ=[1,60],$VK=[1,61],$VL=[1,62],$VM=[1,63],$VN=[1,64],$VO=[1,65],$VP=[1,66],$VQ=[5,10,12,13,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,42,46,70],$VR=[42,70]; var parser = {trace: function trace () { }, yy: {}, symbols_: {"error":2,"tag":3,"expression":4,"EOF":5,"e5":6,"leftExpression":7,"=":8,"e4":9,"+":10,"e3":11,"-":12,"*":13,"e2":14,"/":15,"%":16,"&":17,"|":18,"^":19,"SHL":20,"SHR":21,"L_OR":22,"L_AND":23,"EXP":24,"EQ":25,"NE":26,"LT":27,"LE":28,"GT":29,"GE":30,"?":31,":":32,"~":33,"!":34,"e1":35,"functionCall":36,"e0":37,"NUMBER":38,"reg":39,"counter":40,"(":41,")":42,"IDENTIFIER":43,".":44,"[":45,"]":46,"VAR":47,"A":48,"B":49,"C":50,"D":51,"E":52,"SR":53,"CTX":54,"SP":55,"PC":56,"GAS":57,"zkPC":58,"RR":59,"STEP":60,"HASHPOS":61,"RCX":62,"CNT_ARITH":63,"CNT_BINARY":64,"CNT_KECCAK_F":65,"CNT_MEM_ALIGN":66,"CNT_PADDING_PG":67,"CNT_POSEIDON_G":68,"expressionList":69,",":70,"$accept":0,"$end":1}, @@ -277,7 +277,7 @@ case 67: break; } }, -table: [{3:1,4:2,6:3,7:4,9:5,10:$V0,11:8,12:$V1,14:9,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{1:[3]},{5:[1,42]},o($Vt,[2,2]),o($Vu,$Vv,{8:[1,43]}),o($Vt,[2,4],{10:[1,44],12:[1,45]}),{43:[1,46]},o($Vw,[2,42],{41:[1,47],44:[1,48]}),o($Vx,[2,7],{13:$Vy,15:$Vz,16:$VA,17:$VB,18:$VC,19:$VD,20:$VE,21:$VF,22:$VG,23:$VH,24:$VI,25:$VJ,26:$VK,27:$VL,28:$VM,29:$VN,30:$VO,31:$VP}),o($Vu,[2,26]),{7:68,10:$V0,12:$V1,14:67,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:69,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:70,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:71,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},o($VQ,[2,31]),o($VQ,[2,32]),o($VQ,[2,33]),o($VQ,[2,35]),o($VQ,[2,36]),o($VQ,[2,37]),{4:72,6:3,7:4,9:5,10:$V0,11:8,12:$V1,14:9,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},o($VQ,[2,43]),o($VQ,[2,44]),o($VQ,[2,45]),o($VQ,[2,46]),o($VQ,[2,47]),o($VQ,[2,48]),o($VQ,[2,49]),o($VQ,[2,50]),o($VQ,[2,51]),o($VQ,[2,52]),o($VQ,[2,53]),o($VQ,[2,54]),o($VQ,[2,55]),o($VQ,[2,56]),o($VQ,[2,57]),o($VQ,[2,58]),o($VQ,[2,59]),o($VQ,[2,60]),o($VQ,[2,61]),o($VQ,[2,62]),o($VQ,[2,63]),{1:[2,1]},{6:73,7:4,9:5,10:$V0,11:8,12:$V1,14:9,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,11:74,12:$V1,14:9,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,11:75,12:$V1,14:9,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},o($Vw,[2,41]),{4:78,6:3,7:4,9:5,10:$V0,11:8,12:$V1,14:9,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,42:[1,77],43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs,69:76},{43:[1,79]},{7:68,10:$V0,12:$V1,14:80,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:81,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:82,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:83,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:84,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:85,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:86,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:87,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:88,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:89,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:90,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:91,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:92,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:93,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:94,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:95,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:96,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:97,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},o($VQ,[2,27]),o($VQ,$Vv),o($VQ,[2,28]),o($VQ,[2,29]),o($VQ,[2,30]),{42:[1,98]},o($Vt,[2,3]),o($Vx,[2,5],{13:$Vy,15:$Vz,16:$VA,17:$VB,18:$VC,19:$VD,20:$VE,21:$VF,22:$VG,23:$VH,24:$VI,25:$VJ,26:$VK,27:$VL,28:$VM,29:$VN,30:$VO,31:$VP}),o($Vx,[2,6],{13:$Vy,15:$Vz,16:$VA,17:$VB,18:$VC,19:$VD,20:$VE,21:$VF,22:$VG,23:$VH,24:$VI,25:$VJ,26:$VK,27:$VL,28:$VM,29:$VN,30:$VO,31:$VP}),{42:[1,99],70:[1,100]},o($VQ,[2,65]),o($VR,[2,67]),o($VQ,[2,39],{45:[1,101]}),o($Vu,[2,8]),o($Vu,[2,9]),o($Vu,[2,10]),o($Vu,[2,11]),o($Vu,[2,12]),o($Vu,[2,13]),o($Vu,[2,14]),o($Vu,[2,15]),o($Vu,[2,16]),o($Vu,[2,17]),o($Vu,[2,18]),o($Vu,[2,19]),o($Vu,[2,20]),o($Vu,[2,21]),o($Vu,[2,22]),o($Vu,[2,23]),o($Vu,[2,24]),{32:[1,102]},o($VQ,[2,38]),o($VQ,[2,64]),{4:103,6:3,7:4,9:5,10:$V0,11:8,12:$V1,14:9,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{38:[1,104]},{7:68,10:$V0,12:$V1,14:105,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},o($VR,[2,66]),{46:[1,106]},o($Vu,[2,25]),o($VQ,[2,40])], +table: [{3:1,4:2,6:3,7:4,9:5,10:$V0,11:8,12:$V1,14:9,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{1:[3]},{5:[1,42]},o($Vt,[2,2]),o($Vu,$Vv,{8:[1,43]}),o($Vt,[2,4],{10:[1,44],12:[1,45]}),{43:[1,46]},o($Vw,[2,42],{41:[1,47],44:[1,48]}),o($Vx,[2,7],{13:$Vy,15:$Vz,16:$VA,17:$VB,18:$VC,19:$VD,20:$VE,21:$VF,22:$VG,23:$VH,24:$VI,25:$VJ,26:$VK,27:$VL,28:$VM,29:$VN,30:$VO,31:$VP}),o($Vu,[2,26]),{7:68,10:$V0,12:$V1,14:67,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:69,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:70,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:71,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},o($VQ,[2,31]),o($VQ,[2,32]),o($VQ,[2,33]),o($VQ,[2,35]),o($VQ,[2,36]),o($VQ,[2,37]),{4:72,6:3,7:4,9:5,10:$V0,11:8,12:$V1,14:9,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},o($VQ,[2,43]),o($VQ,[2,44]),o($VQ,[2,45]),o($VQ,[2,46]),o($VQ,[2,47]),o($VQ,[2,48]),o($VQ,[2,49]),o($VQ,[2,50]),o($VQ,[2,51]),o($VQ,[2,52]),o($VQ,[2,53]),o($VQ,[2,54]),o($VQ,[2,55]),o($VQ,[2,56]),o($VQ,[2,57]),o($VQ,[2,58]),o($VQ,[2,59]),o($VQ,[2,60]),o($VQ,[2,61]),o($VQ,[2,62]),o($VQ,[2,63]),{1:[2,1]},{6:73,7:4,9:5,10:$V0,11:8,12:$V1,14:9,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,11:74,12:$V1,14:9,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,11:75,12:$V1,14:9,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},o($Vw,[2,41]),{4:78,6:3,7:4,9:5,10:$V0,11:8,12:$V1,14:9,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,42:[1,77],43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs,69:76},{43:[1,79]},{7:68,10:$V0,12:$V1,14:80,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:81,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:82,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:83,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:84,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:85,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:86,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:87,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:88,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:89,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:90,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:91,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:92,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:93,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:94,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:95,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:96,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:97,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},o($VQ,[2,27]),o($VQ,$Vv),o($VQ,[2,28]),o($VQ,[2,29]),o($VQ,[2,30]),{42:[1,98]},o($Vt,[2,3]),o($Vx,[2,5],{13:$Vy,15:$Vz,16:$VA,17:$VB,18:$VC,19:$VD,20:$VE,21:$VF,22:$VG,23:$VH,24:$VI,25:$VJ,26:$VK,27:$VL,28:$VM,29:$VN,30:$VO,31:$VP}),o($Vx,[2,6],{13:$Vy,15:$Vz,16:$VA,17:$VB,18:$VC,19:$VD,20:$VE,21:$VF,22:$VG,23:$VH,24:$VI,25:$VJ,26:$VK,27:$VL,28:$VM,29:$VN,30:$VO,31:$VP}),{42:[1,99],70:[1,100]},o($VQ,[2,65]),o($VR,[2,67]),o($VQ,[2,39],{45:[1,101]}),o($Vu,[2,8]),o($Vu,[2,9]),o($Vu,[2,10]),o($Vu,[2,11]),o($Vu,[2,12]),o($Vu,[2,13]),o($Vu,[2,14]),o($Vu,[2,15]),o($Vu,[2,16]),o($Vu,[2,17]),o($Vu,[2,18]),o($Vu,[2,19]),o($Vu,[2,20]),o($Vu,[2,21]),o($Vu,[2,22]),o($Vu,[2,23]),o($Vu,[2,24]),{32:[1,102]},o($VQ,[2,38]),o($VQ,[2,64]),{4:103,6:3,7:4,9:5,10:$V0,11:8,12:$V1,14:9,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{4:104,6:3,7:4,9:5,10:$V0,11:8,12:$V1,14:9,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:105,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},o($VR,[2,66]),{46:[1,106]},o($Vu,[2,25]),o($VQ,[2,40])], defaultActions: {42:[2,1]}, parseError: function parseError (str, hash) { if (hash.recoverable) { diff --git a/build/zkasm_parser.js b/build/zkasm_parser.js index bee0ad7..77529e3 100644 --- a/build/zkasm_parser.js +++ b/build/zkasm_parser.js @@ -72,12 +72,12 @@ } */ var zkasm_parser = (function(){ -var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,10],$V1=[1,12],$V2=[1,13],$V3=[1,14],$V4=[1,26],$V5=[1,15],$V6=[1,28],$V7=[1,16],$V8=[1,18],$V9=[1,36],$Va=[1,17],$Vb=[1,27],$Vc=[1,20],$Vd=[1,23],$Ve=[1,29],$Vf=[1,40],$Vg=[1,34],$Vh=[1,45],$Vi=[1,46],$Vj=[1,47],$Vk=[1,48],$Vl=[1,49],$Vm=[1,50],$Vn=[1,51],$Vo=[1,30],$Vp=[1,31],$Vq=[1,32],$Vr=[1,33],$Vs=[1,35],$Vt=[1,37],$Vu=[1,38],$Vv=[1,39],$Vw=[1,41],$Vx=[1,42],$Vy=[1,43],$Vz=[1,44],$VA=[5,13,15,17,18,21,23,24,27,28,30,31,33,36,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],$VB=[1,58],$VC=[1,59],$VD=[1,60],$VE=[1,61],$VF=[1,62],$VG=[1,63],$VH=[1,64],$VI=[1,65],$VJ=[1,66],$VK=[1,67],$VL=[1,68],$VM=[1,71],$VN=[1,72],$VO=[1,73],$VP=[1,74],$VQ=[1,75],$VR=[1,76],$VS=[1,77],$VT=[1,78],$VU=[1,79],$VV=[1,80],$VW=[1,81],$VX=[1,82],$VY=[1,83],$VZ=[1,84],$V_=[1,85],$V$=[1,86],$V01=[1,87],$V11=[1,88],$V21=[1,89],$V31=[1,90],$V41=[1,91],$V51=[1,92],$V61=[1,93],$V71=[1,94],$V81=[1,95],$V91=[1,96],$Va1=[1,97],$Vb1=[1,98],$Vc1=[13,15],$Vd1=[13,15,35,36,59],$Ve1=[1,110],$Vf1=[13,15,35,36,37,59],$Vg1=[13,15,35,36,37,59,67],$Vh1=[1,115],$Vi1=[13,67],$Vj1=[1,148],$Vk1=[1,144],$Vl1=[1,145],$Vm1=[1,146],$Vn1=[1,147],$Vo1=[1,151],$Vp1=[1,152],$Vq1=[1,174],$Vr1=[1,176],$Vs1=[1,175],$Vt1=[1,177],$Vu1=[1,178],$Vv1=[1,179],$Vw1=[13,15,67],$Vx1=[5,13,15,17,18,21,23,24,27,28,30,31,33,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],$Vy1=[1,217],$Vz1=[1,218],$VA1=[1,219],$VB1=[1,220],$VC1=[1,221],$VD1=[1,222],$VE1=[1,223],$VF1=[1,224],$VG1=[1,225],$VH1=[1,226],$VI1=[1,227],$VJ1=[1,228],$VK1=[1,229],$VL1=[1,230],$VM1=[1,231],$VN1=[1,232],$VO1=[1,233],$VP1=[1,234],$VQ1=[1,235],$VR1=[1,236],$VS1=[5,13,15,17,18,21,23,24,27,28,30,31,33,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],$VT1=[5,13,15,17,18,21,23,24,27,28,30,31,33,35,36,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],$VU1=[5,13,15,17,18,21,23,24,27,28,30,31,33,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],$VV1=[5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],$VW1=[5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,50,51,52,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132]; +var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,10],$V1=[1,12],$V2=[1,13],$V3=[1,14],$V4=[1,26],$V5=[1,15],$V6=[1,28],$V7=[1,16],$V8=[1,18],$V9=[1,36],$Va=[1,17],$Vb=[1,27],$Vc=[1,20],$Vd=[1,23],$Ve=[1,29],$Vf=[1,40],$Vg=[1,34],$Vh=[1,45],$Vi=[1,46],$Vj=[1,47],$Vk=[1,48],$Vl=[1,49],$Vm=[1,50],$Vn=[1,51],$Vo=[1,30],$Vp=[1,31],$Vq=[1,32],$Vr=[1,33],$Vs=[1,35],$Vt=[1,37],$Vu=[1,38],$Vv=[1,39],$Vw=[1,41],$Vx=[1,42],$Vy=[1,43],$Vz=[1,44],$VA=[5,13,15,17,18,21,23,24,27,28,30,31,33,36,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],$VB=[1,58],$VC=[1,59],$VD=[1,60],$VE=[1,61],$VF=[1,62],$VG=[1,63],$VH=[1,64],$VI=[1,65],$VJ=[1,66],$VK=[1,67],$VL=[1,68],$VM=[1,71],$VN=[1,72],$VO=[1,73],$VP=[1,74],$VQ=[1,75],$VR=[1,76],$VS=[1,77],$VT=[1,78],$VU=[1,79],$VV=[1,80],$VW=[1,81],$VX=[1,82],$VY=[1,83],$VZ=[1,84],$V_=[1,85],$V$=[1,86],$V01=[1,87],$V11=[1,88],$V21=[1,89],$V31=[1,90],$V41=[1,91],$V51=[1,92],$V61=[1,93],$V71=[1,94],$V81=[1,95],$V91=[1,96],$Va1=[1,97],$Vb1=[1,98],$Vc1=[13,15],$Vd1=[13,15,35,36,59],$Ve1=[1,110],$Vf1=[13,15,35,36,37,59],$Vg1=[13,15,35,36,37,59,67],$Vh1=[1,115],$Vi1=[13,67],$Vj1=[1,148],$Vk1=[1,144],$Vl1=[1,145],$Vm1=[1,146],$Vn1=[1,147],$Vo1=[1,151],$Vp1=[1,152],$Vq1=[1,174],$Vr1=[1,176],$Vs1=[1,175],$Vt1=[1,177],$Vu1=[1,178],$Vv1=[1,179],$Vw1=[13,15,67],$Vx1=[5,13,15,17,18,21,23,24,27,28,30,31,33,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],$Vy1=[1,218],$Vz1=[1,219],$VA1=[1,220],$VB1=[1,221],$VC1=[1,222],$VD1=[1,223],$VE1=[1,224],$VF1=[1,225],$VG1=[1,226],$VH1=[1,227],$VI1=[1,228],$VJ1=[1,229],$VK1=[1,230],$VL1=[1,231],$VM1=[1,232],$VN1=[1,233],$VO1=[1,234],$VP1=[1,235],$VQ1=[1,236],$VR1=[1,237],$VS1=[5,13,15,17,18,21,23,24,27,28,30,31,33,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],$VT1=[5,13,15,17,18,21,23,24,27,28,30,31,33,35,36,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],$VU1=[5,13,15,17,18,21,23,24,27,28,30,31,33,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],$VV1=[5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],$VW1=[5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,50,51,52,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132]; var parser = {trace: function trace () { }, yy: {}, symbols_: {"error":2,"allStatments":3,"statmentList":4,"EOF":5,"statment":6,"step":7,"label":8,"varDef":9,"constDef":10,"include":11,"command":12,"LF":13,"assignment":14,":":15,"opList":16,"IDENTIFIER":17,"VAR":18,"scope":19,"[":20,"NUMBER":21,"]":22,"CONST":23,"CONSTID":24,"=":25,"nexpr":26,"CONSTL":27,"COMMAND":28,"GLOBAL":29,"CTX":30,"INCLUDE":31,"STRING":32,"NUMBERL":33,"??":34,"+":35,"-":36,"*":37,"**":38,"%":39,"/":40,"<<":41,">>":42,"|":43,"&":44,"^":45,"<":46,">":47,"<=":48,">=":49,"==":50,"!=":51,"&&":52,"||":53,"!":54,"?":55,"(":56,")":57,"inRegsSum":58,"=>":59,"regsList":60,"inRegP":61,"inReg":62,"TAG":63,"reg":64,"counter":65,"REFERENCE":66,",":67,"op":68,"MLOAD":69,"addr":70,"MSTORE":71,"HASHK":72,"hashId":73,"HASHK1":74,"HASHKLEN":75,"HASHKDIGEST":76,"HASHP":77,"HASHP1":78,"HASHPLEN":79,"HASHPDIGEST":80,"JMP":81,"jmpCond":82,"jmpNotCond":83,"RR":84,"E":85,"CALL":86,"RETURN":87,"ASSERT":88,"SLOAD":89,"SSTORE":90,"ARITH":91,"ARITH_ECADD_DIFFERENT":92,"ARITH_ECADD_SAME":93,"ARITH_BN254_MULFP2":94,"ARITH_BN254_ADDFP2":95,"ARITH_BN254_SUBFP2":96,"ADD":97,"SUB":98,"LT":99,"SLT":100,"EQ":101,"AND":102,"OR":103,"XOR":104,"MEM_ALIGN_RD":105,"MEM_ALIGN_WR":106,"MEM_ALIGN_WR8":107,"REPEAT":108,"RCX":109,"JMPN":110,"JMPC":111,"JMPZ":112,"JMPNC":113,"JMPNZ":114,"CNT_ARITH":115,"CNT_BINARY":116,"CNT_KECCAK_F":117,"CNT_MEM_ALIGN":118,"CNT_PADDING_PG":119,"CNT_POSEIDON_G":120,"A":121,"B":122,"C":123,"D":124,"SR":125,"SP":126,"PC":127,"GAS":128,"zkPC":129,"STEP":130,"HASHPOS":131,"ROTL_C":132,"++":133,"--":134,"SYS":135,"MEM":136,"STACK":137,"$accept":0,"$end":1}, terminals_: {2:"error",5:"EOF",13:"LF",15:":",17:"IDENTIFIER",18:"VAR",20:"[",21:"NUMBER",22:"]",23:"CONST",24:"CONSTID",25:"=",27:"CONSTL",28:"COMMAND",29:"GLOBAL",30:"CTX",31:"INCLUDE",32:"STRING",33:"NUMBERL",34:"??",35:"+",36:"-",37:"*",38:"**",39:"%",40:"/",41:"<<",42:">>",43:"|",44:"&",45:"^",46:"<",47:">",48:"<=",49:">=",50:"==",51:"!=",52:"&&",53:"||",54:"!",55:"?",56:"(",57:")",59:"=>",63:"TAG",66:"REFERENCE",67:",",69:"MLOAD",71:"MSTORE",72:"HASHK",74:"HASHK1",75:"HASHKLEN",76:"HASHKDIGEST",77:"HASHP",78:"HASHP1",79:"HASHPLEN",80:"HASHPDIGEST",81:"JMP",84:"RR",85:"E",86:"CALL",87:"RETURN",88:"ASSERT",89:"SLOAD",90:"SSTORE",91:"ARITH",92:"ARITH_ECADD_DIFFERENT",93:"ARITH_ECADD_SAME",94:"ARITH_BN254_MULFP2",95:"ARITH_BN254_ADDFP2",96:"ARITH_BN254_SUBFP2",97:"ADD",98:"SUB",99:"LT",100:"SLT",101:"EQ",102:"AND",103:"OR",104:"XOR",105:"MEM_ALIGN_RD",106:"MEM_ALIGN_WR",107:"MEM_ALIGN_WR8",108:"REPEAT",109:"RCX",110:"JMPN",111:"JMPC",112:"JMPZ",113:"JMPNC",114:"JMPNZ",115:"CNT_ARITH",116:"CNT_BINARY",117:"CNT_KECCAK_F",118:"CNT_MEM_ALIGN",119:"CNT_PADDING_PG",120:"CNT_POSEIDON_G",121:"A",122:"B",123:"C",124:"D",125:"SR",126:"SP",127:"PC",128:"GAS",129:"zkPC",130:"STEP",131:"HASHPOS",132:"ROTL_C",133:"++",134:"--",135:"SYS",136:"MEM",137:"STACK"}, -productions_: [0,[3,2],[4,2],[4,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[7,4],[7,2],[7,3],[8,2],[9,3],[9,6],[10,4],[10,4],[12,1],[19,1],[19,1],[11,2],[26,1],[26,1],[26,1],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,2],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,2],[26,5],[26,3],[14,3],[14,1],[58,3],[58,3],[58,2],[58,1],[61,3],[61,1],[62,1],[62,1],[62,1],[62,3],[62,3],[62,1],[62,1],[62,1],[62,1],[60,3],[60,1],[16,3],[16,1],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,6],[68,4],[68,6],[68,4],[68,4],[68,6],[68,6],[68,4],[68,4],[68,6],[68,6],[68,6],[68,6],[68,8],[68,8],[68,4],[68,6],[68,6],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,4],[82,1],[82,1],[82,1],[83,1],[83,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[70,1],[70,3],[70,3],[70,2],[70,2],[70,5],[70,5],[70,3],[70,5],[70,5],[70,3],[70,5],[70,5],[70,3],[70,1],[70,3],[70,3],[73,1],[73,1]], +productions_: [0,[3,2],[4,2],[4,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[7,4],[7,2],[7,3],[8,2],[9,3],[9,6],[10,4],[10,4],[12,1],[19,1],[19,1],[11,2],[26,1],[26,1],[26,1],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,2],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,2],[26,5],[26,3],[14,3],[14,1],[58,3],[58,3],[58,2],[58,1],[61,3],[61,1],[62,1],[62,1],[62,1],[62,3],[62,3],[62,1],[62,1],[62,1],[62,1],[60,3],[60,1],[16,3],[16,1],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,6],[68,4],[68,6],[68,4],[68,4],[68,6],[68,6],[68,4],[68,4],[68,6],[68,6],[68,6],[68,6],[68,8],[68,8],[68,4],[68,6],[68,6],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,4],[82,1],[82,1],[82,1],[83,1],[83,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[70,1],[70,3],[70,3],[70,2],[70,2],[70,5],[70,5],[70,3],[70,5],[70,5],[70,3],[70,5],[70,5],[70,3],[70,1],[70,3],[70,3],[70,4],[70,6],[70,6],[70,3],[70,4],[73,1],[73,1]], performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { /* this == yyval */ @@ -676,18 +676,43 @@ case 166: break; case 167: - this.$ = {ind: 0, indRR: 0, offset:$$[$0]} + this.$ = { offset: $$[$0-3], ind: 1, indRR: 0 } break; case 168: + this.$ = { offset: $$[$0-5], extraOffset: -$$[$0-1], ind: 1, indRR: 0 } + +break; +case 169: + + this.$ = { offset: $$[$0-5], extraOffset: $$[$0-1], ind: 1, indRR: 0 } + +break; +case 170: + + this.$ = { offset: $$[$0-2], extraOffset: $$[$0] } + +break; +case 171: + + this.$ = { offset: $$[$0-3], extraOffset: $$[$0-1] } + +break; +case 172: + + this.$ = {ind: 0, indRR: 0, offset:$$[$0]} + +break; +case 173: + this.$ = {ind: 1, indRR: 0, offset:0} break; } }, -table: [{3:1,4:2,6:3,7:4,8:5,9:6,10:7,11:8,12:9,13:$V0,14:11,15:$V1,17:$V2,18:$V3,21:$V4,23:$V5,24:$V6,27:$V7,28:$V8,30:$V9,31:$Va,33:$Vb,36:$Vc,58:19,61:21,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,109:$Vh,115:$Vi,116:$Vj,117:$Vk,118:$Vl,119:$Vm,120:$Vn,121:$Vo,122:$Vp,123:$Vq,124:$Vr,125:$Vs,126:$Vt,127:$Vu,128:$Vv,129:$Vw,130:$Vx,131:$Vy,132:$Vz},{1:[3]},{5:[1,52],6:53,7:4,8:5,9:6,10:7,11:8,12:9,13:$V0,14:11,15:$V1,17:$V2,18:$V3,21:$V4,23:$V5,24:$V6,27:$V7,28:$V8,30:$V9,31:$Va,33:$Vb,36:$Vc,58:19,61:21,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,109:$Vh,115:$Vi,116:$Vj,117:$Vk,118:$Vl,119:$Vm,120:$Vn,121:$Vo,122:$Vp,123:$Vq,124:$Vr,125:$Vs,126:$Vt,127:$Vu,128:$Vv,129:$Vw,130:$Vx,131:$Vy,132:$Vz},o($VA,[2,3]),o($VA,[2,4]),o($VA,[2,5]),o($VA,[2,6]),o($VA,[2,7]),o($VA,[2,8]),o($VA,[2,9]),o($VA,[2,10]),{13:[1,55],15:[1,54]},{16:56,68:57,69:$VB,71:$VC,72:$VD,74:$VE,75:$VF,76:$VG,77:$VH,78:$VI,79:$VJ,80:$VK,81:$VL,82:69,83:70,86:$VM,87:$VN,88:$VO,89:$VP,90:$VQ,91:$VR,92:$VS,93:$VT,94:$VU,95:$VV,96:$VW,97:$VX,98:$VY,99:$VZ,100:$V_,101:$V$,102:$V01,103:$V11,104:$V21,105:$V31,106:$V41,107:$V51,108:$V61,110:$V71,111:$V81,112:$V91,113:$Va1,114:$Vb1},{15:[1,99]},{19:100,29:[1,101],30:[1,102]},{24:[1,103]},{24:[1,104]},{32:[1,105]},o($VA,[2,19]),o($Vc1,[2,51],{35:[1,107],36:[1,108],59:[1,106]}),{21:$V4,24:$V6,30:$V9,33:$Vb,61:109,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,109:$Vh,115:$Vi,116:$Vj,117:$Vk,118:$Vl,119:$Vm,120:$Vn,121:$Vo,122:$Vp,123:$Vq,124:$Vr,125:$Vs,126:$Vt,127:$Vu,128:$Vv,129:$Vw,130:$Vx,131:$Vy,132:$Vz},o($Vd1,[2,55],{37:$Ve1}),o($Vf1,[2,57]),o($Vf1,[2,58]),o($Vf1,[2,59]),o($Vf1,[2,60]),o($Vf1,[2,63],{38:[1,111]}),o($Vf1,[2,64],{38:[1,112]}),o($Vf1,[2,65]),o($Vf1,[2,66]),o($Vg1,[2,134]),o($Vg1,[2,135]),o($Vg1,[2,136]),o($Vg1,[2,137]),o($Vg1,[2,138]),o($Vg1,[2,139]),o($Vg1,[2,140]),o($Vg1,[2,141]),o($Vg1,[2,142]),o($Vg1,[2,143]),o($Vg1,[2,144]),o($Vg1,[2,145]),o($Vg1,[2,146]),o($Vg1,[2,147]),o($Vg1,[2,148]),o($Vg1,[2,149]),o($Vf1,[2,128]),o($Vf1,[2,129]),o($Vf1,[2,130]),o($Vf1,[2,131]),o($Vf1,[2,132]),o($Vf1,[2,133]),{1:[2,1]},o($VA,[2,2]),{16:113,68:57,69:$VB,71:$VC,72:$VD,74:$VE,75:$VF,76:$VG,77:$VH,78:$VI,79:$VJ,80:$VK,81:$VL,82:69,83:70,86:$VM,87:$VN,88:$VO,89:$VP,90:$VQ,91:$VR,92:$VS,93:$VT,94:$VU,95:$VV,96:$VW,97:$VX,98:$VY,99:$VZ,100:$V_,101:$V$,102:$V01,103:$V11,104:$V21,105:$V31,106:$V41,107:$V51,108:$V61,110:$V71,111:$V81,112:$V91,113:$Va1,114:$Vb1},o($VA,[2,12]),{13:[1,114],67:$Vh1},o($Vi1,[2,70]),{56:[1,116]},{56:[1,117]},{56:[1,118]},{56:[1,119]},{56:[1,120]},{56:[1,121]},{56:[1,122]},{56:[1,123]},{56:[1,124]},{56:[1,125]},{56:[1,126]},{56:[1,127]},{56:[1,128]},{56:[1,129]},o($Vi1,[2,101]),o($Vi1,[2,102]),o($Vi1,[2,103]),o($Vi1,[2,104]),o($Vi1,[2,105]),o($Vi1,[2,106]),o($Vi1,[2,107]),o($Vi1,[2,108]),o($Vi1,[2,109]),o($Vi1,[2,110]),o($Vi1,[2,111]),o($Vi1,[2,112]),o($Vi1,[2,113]),o($Vi1,[2,114]),o($Vi1,[2,115]),o($Vi1,[2,116]),o($Vi1,[2,117]),o($Vi1,[2,118]),o($Vi1,[2,119]),o($Vi1,[2,120]),o($Vi1,[2,121]),{56:[1,130]},{56:[2,123]},{56:[2,124]},{56:[2,125]},{56:[2,126]},{56:[2,127]},o($VA,[2,14]),{17:[1,131]},{17:[2,20]},{17:[2,21]},{25:[1,132]},{25:[1,133]},o($VA,[2,22]),{30:$V9,60:134,64:135,84:$Vf,85:$Vg,109:$Vh,121:$Vo,122:$Vp,123:$Vq,124:$Vr,125:$Vs,126:$Vt,127:$Vu,128:$Vv,129:$Vw,130:$Vx,131:$Vy,132:$Vz},{21:$V4,24:$V6,30:$V9,33:$Vb,61:136,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,109:$Vh,115:$Vi,116:$Vj,117:$Vk,118:$Vl,119:$Vm,120:$Vn,121:$Vo,122:$Vp,123:$Vq,124:$Vr,125:$Vs,126:$Vt,127:$Vu,128:$Vv,129:$Vw,130:$Vx,131:$Vy,132:$Vz},{21:$V4,24:$V6,30:$V9,33:$Vb,61:137,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,109:$Vh,115:$Vi,116:$Vj,117:$Vk,118:$Vl,119:$Vm,120:$Vn,121:$Vo,122:$Vp,123:$Vq,124:$Vr,125:$Vs,126:$Vt,127:$Vu,128:$Vv,129:$Vw,130:$Vx,131:$Vy,132:$Vz},o($Vd1,[2,54],{37:$Ve1}),{21:$V4,24:$V6,30:$V9,33:$Vb,62:138,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,109:$Vh,115:$Vi,116:$Vj,117:$Vk,118:$Vl,119:$Vm,120:$Vn,121:$Vo,122:$Vp,123:$Vq,124:$Vr,125:$Vs,126:$Vt,127:$Vu,128:$Vv,129:$Vw,130:$Vx,131:$Vy,132:$Vz},{21:[1,139]},{33:[1,140]},{13:[1,141],67:$Vh1},o($VA,[2,13]),{68:142,69:$VB,71:$VC,72:$VD,74:$VE,75:$VF,76:$VG,77:$VH,78:$VI,79:$VJ,80:$VK,81:$VL,82:69,83:70,86:$VM,87:$VN,88:$VO,89:$VP,90:$VQ,91:$VR,92:$VS,93:$VT,94:$VU,95:$VV,96:$VW,97:$VX,98:$VY,99:$VZ,100:$V_,101:$V$,102:$V01,103:$V11,104:$V21,105:$V31,106:$V41,107:$V51,108:$V61,110:$V71,111:$V81,112:$V91,113:$Va1,114:$Vb1},{17:$Vj1,70:143,126:$Vk1,135:$Vl1,136:$Vm1,137:$Vn1},{17:$Vj1,70:149,126:$Vk1,135:$Vl1,136:$Vm1,137:$Vn1},{21:$Vo1,73:150,85:$Vp1},{21:$Vo1,73:153,85:$Vp1},{21:$Vo1,73:154,85:$Vp1},{21:$Vo1,73:155,85:$Vp1},{21:$Vo1,73:156,85:$Vp1},{21:$Vo1,73:157,85:$Vp1},{21:$Vo1,73:158,85:$Vp1},{21:$Vo1,73:159,85:$Vp1},{17:[1,160],66:[1,163],84:[1,161],85:[1,162]},{17:[1,164],66:[1,167],84:[1,165],85:[1,166]},{17:[1,168]},{17:[1,169],66:[1,170]},{109:[1,171]},o($VA,[2,15],{20:[1,172]}),{21:$Vq1,24:$Vr1,26:173,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:180,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},o($Vc1,[2,50],{67:[1,181]}),o($Vw1,[2,68]),o($Vd1,[2,52],{37:$Ve1}),o($Vd1,[2,53],{37:$Ve1}),o($Vf1,[2,56]),o($Vf1,[2,61]),o($Vf1,[2,62]),o($VA,[2,11]),o($Vi1,[2,69]),{57:[1,182]},{35:[1,183],36:[1,184],57:[2,150],133:[1,185],134:[1,186]},{15:[1,187]},{15:[1,188]},{15:[1,189]},{35:[1,190],57:[2,164]},{57:[1,191]},{57:[1,192]},{57:[2,167]},{57:[2,168]},{57:[1,193]},{57:[1,194]},{57:[1,195]},{57:[1,196]},{57:[1,197]},{57:[1,198]},{57:[1,199]},{57:[1,200]},{57:[1,201]},{57:[1,202]},{35:[1,203]},{57:[1,204],67:[1,205]},{57:[1,206],67:[1,207]},{57:[1,208],67:[1,209]},{35:[1,210]},{57:[1,211],67:[1,212]},{57:[1,213]},{35:[1,214]},{57:[1,215]},{21:[1,216]},o($Vx1,[2,17],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,43:$VG1,44:$VH1,45:$VI1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1,52:$VP1,53:$VQ1,55:$VR1}),o($VS1,[2,23]),o($VS1,[2,24]),o($VS1,[2,25],{34:[1,237]}),{21:$Vq1,24:$Vr1,26:238,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:239,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:240,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},o($Vx1,[2,18],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,43:$VG1,44:$VH1,45:$VI1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1,52:$VP1,53:$VQ1,55:$VR1}),{30:$V9,64:241,84:$Vf,85:$Vg,109:$Vh,121:$Vo,122:$Vp,123:$Vq,124:$Vr,125:$Vs,126:$Vt,127:$Vu,128:$Vv,129:$Vw,130:$Vx,131:$Vy,132:$Vz},o($Vi1,[2,71]),{21:[1,242]},{21:[1,243]},{57:[2,153]},{57:[2,154]},{85:[1,244]},{85:[1,245]},{85:[1,246]},{84:[1,247],85:[1,248]},o($Vi1,[2,72]),o($Vi1,[2,73]),o($Vi1,[2,74]),o($Vi1,[2,75]),o($Vi1,[2,76]),o($Vi1,[2,77]),o($Vi1,[2,78]),o($Vi1,[2,79]),o($Vi1,[2,80]),o($Vi1,[2,81]),o($Vi1,[2,86]),o($Vi1,[2,87]),{84:[1,249],85:[1,250]},o($Vi1,[2,82]),{17:[1,251]},o($Vi1,[2,90]),{17:[1,252]},o($Vi1,[2,91]),{17:[1,253]},{84:[1,254],85:[1,255]},o($Vi1,[2,84]),{17:[1,256]},o($Vi1,[2,98]),{84:[1,257],85:[1,258]},o($Vi1,[2,122]),{22:[1,259]},{21:$Vq1,24:$Vr1,26:260,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:261,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:262,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:263,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:264,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:265,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:266,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:267,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:268,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:269,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:270,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:271,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:272,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:273,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:274,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:275,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:276,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:277,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:278,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:279,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:280,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},o($VT1,[2,33],{37:$VA1,38:$VB1,39:$VC1,40:$VD1}),o($VS1,[2,47]),{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,43:$VG1,44:$VH1,45:$VI1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1,52:$VP1,53:$VQ1,55:$VR1,57:[1,281]},o($Vw1,[2,67]),{57:[2,151]},{57:[2,152]},{35:[1,282],36:[1,283],57:[2,157]},{35:[1,284],36:[1,285],57:[2,160]},{35:[1,286],36:[1,287],57:[2,163]},{57:[2,165]},{57:[2,166]},{57:[1,288]},{57:[1,289]},{57:[1,290]},{57:[1,291]},{57:[1,292]},{57:[1,293],67:[1,294]},{57:[1,295],67:[1,296]},{57:[1,297]},{57:[1,298]},{57:[1,299]},o($VA,[2,16]),o($VT1,[2,27],{37:$VA1,38:$VB1,39:$VC1,40:$VD1}),o($VT1,[2,28],{37:$VA1,38:$VB1,39:$VC1,40:$VD1}),o($VS1,[2,29]),o($VS1,[2,30]),o($VS1,[2,31]),o($VS1,[2,32]),o($VU1,[2,34],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1}),o($VU1,[2,35],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,52,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],[2,36],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,44:$VH1,45:$VI1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,52,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],[2,37],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,45,52,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],[2,38],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,44:$VH1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1}),o($VV1,[2,39],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1}),o($VV1,[2,40],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1}),o($VV1,[2,41],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1}),o($VV1,[2,42],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1}),o($VW1,[2,43],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1}),o($VW1,[2,44],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,52,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],[2,45],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,43:$VG1,44:$VH1,45:$VI1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],[2,46],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,43:$VG1,44:$VH1,45:$VI1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1,52:$VP1}),{15:[1,300],35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,43:$VG1,44:$VH1,45:$VI1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1,52:$VP1,53:$VQ1,55:$VR1},o([5,13,15,17,18,21,23,24,27,28,30,31,33,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],[2,26],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,43:$VG1,44:$VH1,45:$VI1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1,52:$VP1,53:$VQ1}),o($VS1,[2,49]),{21:[1,301]},{21:[1,302]},{21:[1,303]},{21:[1,304]},{21:[1,305]},{21:[1,306]},o($Vi1,[2,88]),o($Vi1,[2,89]),o($Vi1,[2,83]),o($Vi1,[2,94]),o($Vi1,[2,95]),o($Vi1,[2,92]),{17:[1,307]},o($Vi1,[2,93]),{17:[1,308]},o($Vi1,[2,85]),o($Vi1,[2,99]),o($Vi1,[2,100]),{21:$Vq1,24:$Vr1,26:309,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{57:[2,155]},{57:[2,156]},{57:[2,158]},{57:[2,159]},{57:[2,161]},{57:[2,162]},{57:[1,310]},{57:[1,311]},o([5,13,15,17,18,21,23,24,27,28,30,31,33,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],[2,48],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,43:$VG1,44:$VH1,45:$VI1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1,52:$VP1,53:$VQ1,55:$VR1}),o($Vi1,[2,96]),o($Vi1,[2,97])], -defaultActions: {52:[2,1],94:[2,123],95:[2,124],96:[2,125],97:[2,126],98:[2,127],101:[2,20],102:[2,21],151:[2,167],152:[2,168],185:[2,153],186:[2,154],242:[2,151],243:[2,152],247:[2,165],248:[2,166],301:[2,155],302:[2,156],303:[2,158],304:[2,159],305:[2,161],306:[2,162]}, +table: [{3:1,4:2,6:3,7:4,8:5,9:6,10:7,11:8,12:9,13:$V0,14:11,15:$V1,17:$V2,18:$V3,21:$V4,23:$V5,24:$V6,27:$V7,28:$V8,30:$V9,31:$Va,33:$Vb,36:$Vc,58:19,61:21,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,109:$Vh,115:$Vi,116:$Vj,117:$Vk,118:$Vl,119:$Vm,120:$Vn,121:$Vo,122:$Vp,123:$Vq,124:$Vr,125:$Vs,126:$Vt,127:$Vu,128:$Vv,129:$Vw,130:$Vx,131:$Vy,132:$Vz},{1:[3]},{5:[1,52],6:53,7:4,8:5,9:6,10:7,11:8,12:9,13:$V0,14:11,15:$V1,17:$V2,18:$V3,21:$V4,23:$V5,24:$V6,27:$V7,28:$V8,30:$V9,31:$Va,33:$Vb,36:$Vc,58:19,61:21,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,109:$Vh,115:$Vi,116:$Vj,117:$Vk,118:$Vl,119:$Vm,120:$Vn,121:$Vo,122:$Vp,123:$Vq,124:$Vr,125:$Vs,126:$Vt,127:$Vu,128:$Vv,129:$Vw,130:$Vx,131:$Vy,132:$Vz},o($VA,[2,3]),o($VA,[2,4]),o($VA,[2,5]),o($VA,[2,6]),o($VA,[2,7]),o($VA,[2,8]),o($VA,[2,9]),o($VA,[2,10]),{13:[1,55],15:[1,54]},{16:56,68:57,69:$VB,71:$VC,72:$VD,74:$VE,75:$VF,76:$VG,77:$VH,78:$VI,79:$VJ,80:$VK,81:$VL,82:69,83:70,86:$VM,87:$VN,88:$VO,89:$VP,90:$VQ,91:$VR,92:$VS,93:$VT,94:$VU,95:$VV,96:$VW,97:$VX,98:$VY,99:$VZ,100:$V_,101:$V$,102:$V01,103:$V11,104:$V21,105:$V31,106:$V41,107:$V51,108:$V61,110:$V71,111:$V81,112:$V91,113:$Va1,114:$Vb1},{15:[1,99]},{19:100,29:[1,101],30:[1,102]},{24:[1,103]},{24:[1,104]},{32:[1,105]},o($VA,[2,19]),o($Vc1,[2,51],{35:[1,107],36:[1,108],59:[1,106]}),{21:$V4,24:$V6,30:$V9,33:$Vb,61:109,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,109:$Vh,115:$Vi,116:$Vj,117:$Vk,118:$Vl,119:$Vm,120:$Vn,121:$Vo,122:$Vp,123:$Vq,124:$Vr,125:$Vs,126:$Vt,127:$Vu,128:$Vv,129:$Vw,130:$Vx,131:$Vy,132:$Vz},o($Vd1,[2,55],{37:$Ve1}),o($Vf1,[2,57]),o($Vf1,[2,58]),o($Vf1,[2,59]),o($Vf1,[2,60]),o($Vf1,[2,63],{38:[1,111]}),o($Vf1,[2,64],{38:[1,112]}),o($Vf1,[2,65]),o($Vf1,[2,66]),o($Vg1,[2,134]),o($Vg1,[2,135]),o($Vg1,[2,136]),o($Vg1,[2,137]),o($Vg1,[2,138]),o($Vg1,[2,139]),o($Vg1,[2,140]),o($Vg1,[2,141]),o($Vg1,[2,142]),o($Vg1,[2,143]),o($Vg1,[2,144]),o($Vg1,[2,145]),o($Vg1,[2,146]),o($Vg1,[2,147]),o($Vg1,[2,148]),o($Vg1,[2,149]),o($Vf1,[2,128]),o($Vf1,[2,129]),o($Vf1,[2,130]),o($Vf1,[2,131]),o($Vf1,[2,132]),o($Vf1,[2,133]),{1:[2,1]},o($VA,[2,2]),{16:113,68:57,69:$VB,71:$VC,72:$VD,74:$VE,75:$VF,76:$VG,77:$VH,78:$VI,79:$VJ,80:$VK,81:$VL,82:69,83:70,86:$VM,87:$VN,88:$VO,89:$VP,90:$VQ,91:$VR,92:$VS,93:$VT,94:$VU,95:$VV,96:$VW,97:$VX,98:$VY,99:$VZ,100:$V_,101:$V$,102:$V01,103:$V11,104:$V21,105:$V31,106:$V41,107:$V51,108:$V61,110:$V71,111:$V81,112:$V91,113:$Va1,114:$Vb1},o($VA,[2,12]),{13:[1,114],67:$Vh1},o($Vi1,[2,70]),{56:[1,116]},{56:[1,117]},{56:[1,118]},{56:[1,119]},{56:[1,120]},{56:[1,121]},{56:[1,122]},{56:[1,123]},{56:[1,124]},{56:[1,125]},{56:[1,126]},{56:[1,127]},{56:[1,128]},{56:[1,129]},o($Vi1,[2,101]),o($Vi1,[2,102]),o($Vi1,[2,103]),o($Vi1,[2,104]),o($Vi1,[2,105]),o($Vi1,[2,106]),o($Vi1,[2,107]),o($Vi1,[2,108]),o($Vi1,[2,109]),o($Vi1,[2,110]),o($Vi1,[2,111]),o($Vi1,[2,112]),o($Vi1,[2,113]),o($Vi1,[2,114]),o($Vi1,[2,115]),o($Vi1,[2,116]),o($Vi1,[2,117]),o($Vi1,[2,118]),o($Vi1,[2,119]),o($Vi1,[2,120]),o($Vi1,[2,121]),{56:[1,130]},{56:[2,123]},{56:[2,124]},{56:[2,125]},{56:[2,126]},{56:[2,127]},o($VA,[2,14]),{17:[1,131]},{17:[2,20]},{17:[2,21]},{25:[1,132]},{25:[1,133]},o($VA,[2,22]),{30:$V9,60:134,64:135,84:$Vf,85:$Vg,109:$Vh,121:$Vo,122:$Vp,123:$Vq,124:$Vr,125:$Vs,126:$Vt,127:$Vu,128:$Vv,129:$Vw,130:$Vx,131:$Vy,132:$Vz},{21:$V4,24:$V6,30:$V9,33:$Vb,61:136,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,109:$Vh,115:$Vi,116:$Vj,117:$Vk,118:$Vl,119:$Vm,120:$Vn,121:$Vo,122:$Vp,123:$Vq,124:$Vr,125:$Vs,126:$Vt,127:$Vu,128:$Vv,129:$Vw,130:$Vx,131:$Vy,132:$Vz},{21:$V4,24:$V6,30:$V9,33:$Vb,61:137,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,109:$Vh,115:$Vi,116:$Vj,117:$Vk,118:$Vl,119:$Vm,120:$Vn,121:$Vo,122:$Vp,123:$Vq,124:$Vr,125:$Vs,126:$Vt,127:$Vu,128:$Vv,129:$Vw,130:$Vx,131:$Vy,132:$Vz},o($Vd1,[2,54],{37:$Ve1}),{21:$V4,24:$V6,30:$V9,33:$Vb,62:138,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,109:$Vh,115:$Vi,116:$Vj,117:$Vk,118:$Vl,119:$Vm,120:$Vn,121:$Vo,122:$Vp,123:$Vq,124:$Vr,125:$Vs,126:$Vt,127:$Vu,128:$Vv,129:$Vw,130:$Vx,131:$Vy,132:$Vz},{21:[1,139]},{33:[1,140]},{13:[1,141],67:$Vh1},o($VA,[2,13]),{68:142,69:$VB,71:$VC,72:$VD,74:$VE,75:$VF,76:$VG,77:$VH,78:$VI,79:$VJ,80:$VK,81:$VL,82:69,83:70,86:$VM,87:$VN,88:$VO,89:$VP,90:$VQ,91:$VR,92:$VS,93:$VT,94:$VU,95:$VV,96:$VW,97:$VX,98:$VY,99:$VZ,100:$V_,101:$V$,102:$V01,103:$V11,104:$V21,105:$V31,106:$V41,107:$V51,108:$V61,110:$V71,111:$V81,112:$V91,113:$Va1,114:$Vb1},{17:$Vj1,70:143,126:$Vk1,135:$Vl1,136:$Vm1,137:$Vn1},{17:$Vj1,70:149,126:$Vk1,135:$Vl1,136:$Vm1,137:$Vn1},{21:$Vo1,73:150,85:$Vp1},{21:$Vo1,73:153,85:$Vp1},{21:$Vo1,73:154,85:$Vp1},{21:$Vo1,73:155,85:$Vp1},{21:$Vo1,73:156,85:$Vp1},{21:$Vo1,73:157,85:$Vp1},{21:$Vo1,73:158,85:$Vp1},{21:$Vo1,73:159,85:$Vp1},{17:[1,160],66:[1,163],84:[1,161],85:[1,162]},{17:[1,164],66:[1,167],84:[1,165],85:[1,166]},{17:[1,168]},{17:[1,169],66:[1,170]},{109:[1,171]},o($VA,[2,15],{20:[1,172]}),{21:$Vq1,24:$Vr1,26:173,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:180,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},o($Vc1,[2,50],{67:[1,181]}),o($Vw1,[2,68]),o($Vd1,[2,52],{37:$Ve1}),o($Vd1,[2,53],{37:$Ve1}),o($Vf1,[2,56]),o($Vf1,[2,61]),o($Vf1,[2,62]),o($VA,[2,11]),o($Vi1,[2,69]),{57:[1,182]},{35:[1,183],36:[1,184],57:[2,150],133:[1,185],134:[1,186]},{15:[1,187]},{15:[1,188]},{15:[1,189]},{20:[1,191],35:[1,190],57:[2,164]},{57:[1,192]},{57:[1,193]},{57:[2,172]},{57:[2,173]},{57:[1,194]},{57:[1,195]},{57:[1,196]},{57:[1,197]},{57:[1,198]},{57:[1,199]},{57:[1,200]},{57:[1,201]},{57:[1,202]},{57:[1,203]},{35:[1,204]},{57:[1,205],67:[1,206]},{57:[1,207],67:[1,208]},{57:[1,209],67:[1,210]},{35:[1,211]},{57:[1,212],67:[1,213]},{57:[1,214]},{35:[1,215]},{57:[1,216]},{21:[1,217]},o($Vx1,[2,17],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,43:$VG1,44:$VH1,45:$VI1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1,52:$VP1,53:$VQ1,55:$VR1}),o($VS1,[2,23]),o($VS1,[2,24]),o($VS1,[2,25],{34:[1,238]}),{21:$Vq1,24:$Vr1,26:239,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:240,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:241,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},o($Vx1,[2,18],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,43:$VG1,44:$VH1,45:$VI1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1,52:$VP1,53:$VQ1,55:$VR1}),{30:$V9,64:242,84:$Vf,85:$Vg,109:$Vh,121:$Vo,122:$Vp,123:$Vq,124:$Vr,125:$Vs,126:$Vt,127:$Vu,128:$Vv,129:$Vw,130:$Vx,131:$Vy,132:$Vz},o($Vi1,[2,71]),{21:[1,243]},{21:[1,244]},{57:[2,153]},{57:[2,154]},{85:[1,245]},{85:[1,246]},{85:[1,247]},{21:[1,250],84:[1,248],85:[1,249]},{21:[1,252],85:[1,251]},o($Vi1,[2,72]),o($Vi1,[2,73]),o($Vi1,[2,74]),o($Vi1,[2,75]),o($Vi1,[2,76]),o($Vi1,[2,77]),o($Vi1,[2,78]),o($Vi1,[2,79]),o($Vi1,[2,80]),o($Vi1,[2,81]),o($Vi1,[2,86]),o($Vi1,[2,87]),{84:[1,253],85:[1,254]},o($Vi1,[2,82]),{17:[1,255]},o($Vi1,[2,90]),{17:[1,256]},o($Vi1,[2,91]),{17:[1,257]},{84:[1,258],85:[1,259]},o($Vi1,[2,84]),{17:[1,260]},o($Vi1,[2,98]),{84:[1,261],85:[1,262]},o($Vi1,[2,122]),{22:[1,263]},{21:$Vq1,24:$Vr1,26:264,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:265,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:266,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:267,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:268,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:269,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:270,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:271,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:272,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:273,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:274,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:275,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:276,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:277,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:278,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:279,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:280,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:281,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:282,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:283,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:284,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},o($VT1,[2,33],{37:$VA1,38:$VB1,39:$VC1,40:$VD1}),o($VS1,[2,47]),{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,43:$VG1,44:$VH1,45:$VI1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1,52:$VP1,53:$VQ1,55:$VR1,57:[1,285]},o($Vw1,[2,67]),{57:[2,151]},{57:[2,152]},{35:[1,286],36:[1,287],57:[2,157]},{35:[1,288],36:[1,289],57:[2,160]},{35:[1,290],36:[1,291],57:[2,163]},{57:[2,165]},{57:[2,166]},{57:[2,170]},{22:[1,292],35:[1,294],36:[1,293]},{22:[1,295]},{57:[1,296]},{57:[1,297]},{57:[1,298]},{57:[1,299]},{57:[1,300]},{57:[1,301],67:[1,302]},{57:[1,303],67:[1,304]},{57:[1,305]},{57:[1,306]},{57:[1,307]},o($VA,[2,16]),o($VT1,[2,27],{37:$VA1,38:$VB1,39:$VC1,40:$VD1}),o($VT1,[2,28],{37:$VA1,38:$VB1,39:$VC1,40:$VD1}),o($VS1,[2,29]),o($VS1,[2,30]),o($VS1,[2,31]),o($VS1,[2,32]),o($VU1,[2,34],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1}),o($VU1,[2,35],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,52,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],[2,36],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,44:$VH1,45:$VI1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,52,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],[2,37],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,45,52,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],[2,38],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,44:$VH1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1}),o($VV1,[2,39],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1}),o($VV1,[2,40],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1}),o($VV1,[2,41],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1}),o($VV1,[2,42],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1}),o($VW1,[2,43],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1}),o($VW1,[2,44],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,52,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],[2,45],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,43:$VG1,44:$VH1,45:$VI1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],[2,46],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,43:$VG1,44:$VH1,45:$VI1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1,52:$VP1}),{15:[1,308],35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,43:$VG1,44:$VH1,45:$VI1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1,52:$VP1,53:$VQ1,55:$VR1},o([5,13,15,17,18,21,23,24,27,28,30,31,33,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],[2,26],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,43:$VG1,44:$VH1,45:$VI1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1,52:$VP1,53:$VQ1}),o($VS1,[2,49]),{21:[1,309]},{21:[1,310]},{21:[1,311]},{21:[1,312]},{21:[1,313]},{21:[1,314]},{57:[2,167]},{21:[1,315]},{21:[1,316]},{57:[2,171]},o($Vi1,[2,88]),o($Vi1,[2,89]),o($Vi1,[2,83]),o($Vi1,[2,94]),o($Vi1,[2,95]),o($Vi1,[2,92]),{17:[1,317]},o($Vi1,[2,93]),{17:[1,318]},o($Vi1,[2,85]),o($Vi1,[2,99]),o($Vi1,[2,100]),{21:$Vq1,24:$Vr1,26:319,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{57:[2,155]},{57:[2,156]},{57:[2,158]},{57:[2,159]},{57:[2,161]},{57:[2,162]},{22:[1,320]},{22:[1,321]},{57:[1,322]},{57:[1,323]},o([5,13,15,17,18,21,23,24,27,28,30,31,33,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],[2,48],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,43:$VG1,44:$VH1,45:$VI1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1,52:$VP1,53:$VQ1,55:$VR1}),{57:[2,168]},{57:[2,169]},o($Vi1,[2,96]),o($Vi1,[2,97])], +defaultActions: {52:[2,1],94:[2,123],95:[2,124],96:[2,125],97:[2,126],98:[2,127],101:[2,20],102:[2,21],151:[2,172],152:[2,173],185:[2,153],186:[2,154],243:[2,151],244:[2,152],248:[2,165],249:[2,166],250:[2,170],292:[2,167],295:[2,171],309:[2,155],310:[2,156],311:[2,158],312:[2,159],313:[2,161],314:[2,162],320:[2,168],321:[2,169]}, parseError: function parseError (str, hash) { if (hash.recoverable) { this.trace(str); diff --git a/src/command_parser.jison b/src/command_parser.jison index e8af95a..7052299 100644 --- a/src/command_parser.jison +++ b/src/command_parser.jison @@ -259,7 +259,7 @@ e0 { $$ = {op: "getData", module: $1, offset: $3, arrayOffset: 0} } - | IDENTIFIER '.' IDENTIFIER '[' NUMBER ']' + | IDENTIFIER '.' IDENTIFIER '[' expression ']' { $$ = {op: "getData", module: $1, offset: $3, arrayOffset: $5} } diff --git a/src/compiler.js b/src/compiler.js index cdfa6ed..1a746d8 100644 --- a/src/compiler.js +++ b/src/compiler.js @@ -1,5 +1,6 @@ const path = require("path"); const fs = require("fs"); +const util = require('util'); const { config } = require("process"); const zkasm_parser = require("../build/zkasm_parser.js").parser; const command_parser = require("../build/command_parser.js").parser; @@ -177,7 +178,7 @@ module.exports = async function compile(fileName, ctx, config = {}) { } else { error(ctx.out[i].line, `Invalid variable scope: ${ctx.out[i].offset} not defined.`); } - ctx.out[i].offset = ctx.vars[ctx.out[i].offset].offset; + ctx.out[i].offset = ctx.vars[ctx.out[i].offset].offset + (ctx.out[i].extraOffset ?? 0); } } } @@ -248,7 +249,21 @@ module.exports = async function compile(fileName, ctx, config = {}) { error(ctx.out[i].line, `Not found reference ${cmd.module}.${name}`); } cmd.op = 'getMemValue' - cmd.offset = ctx.vars[name].offset + Number(cmd.arrayOffset ?? 0) + cmd.offset = ctx.vars[name].offset; + if (cmd.arrayOffset) { + if (cmd.arrayOffset.op === 'number') { + cmd.offset += Number(cmd.arrayOffset.num); + } else { + cmd.op = 'getMemValueByAddress'; + cmd.params = [cmd.arrayOffset]; + if (cmd.offset) { + cmd.params = [{ op: 'add', values: [cmd.params[0], {op: 'number', num: BigInt(cmd.offset)}]}]; + } + delete cmd.offset; + delete cmd.arrayOffset; + return; + } + } cmd.offsetLabel = name; return; } @@ -258,7 +273,10 @@ module.exports = async function compile(fileName, ctx, config = {}) { error(ctx.out[i].line, `Not found reference ${cmd.module}.${name}`); } cmd.op = 'number' - cmd.num = ctx.vars[name].offset + Number(cmd.arrayOffset ?? 0) + cmd.num = ctx.vars[name].offset; + if (cmd.arrayOffset) { + cmd.num += Number(cmd.arrayOffset.num ?? 0); + } cmd.offsetLabel = name; delete cmd.offset; return; diff --git a/src/zkasm_parser.jison b/src/zkasm_parser.jison index 73d46e8..318a66f 100644 --- a/src/zkasm_parser.jison +++ b/src/zkasm_parser.jison @@ -818,6 +818,26 @@ addr { $$ = { offset: $1, ind: 1, indRR: 0 } } + | IDENTIFIER '[' E ']' + { + $$ = { offset: $1, ind: 1, indRR: 0 } + } + | IDENTIFIER '[' E '-' NUMBER ']' + { + $$ = { offset: $1, extraOffset: -$5, ind: 1, indRR: 0 } + } + | IDENTIFIER '[' E '+' NUMBER ']' + { + $$ = { offset: $1, extraOffset: $5, ind: 1, indRR: 0 } + } + | IDENTIFIER '+' NUMBER + { + $$ = { offset: $1, extraOffset: $3 } + } + | IDENTIFIER '[' NUMBER ']' + { + $$ = { offset: $1, extraOffset: $3 } + } ; hashId diff --git a/test/arrays.zkasm b/test/arrays.zkasm index d0ff47f..fd76a0c 100644 --- a/test/arrays.zkasm +++ b/test/arrays.zkasm @@ -12,10 +12,20 @@ start: 3 :MSTORE(c) 4 :MSTORE(d) + 13 => E + 0 :MLOAD(a[23]) + 0 :MLOAD(a[E + 10]) + 0x1FE223 :MSTORE(a[23]) + 0x1FE223 :MLOAD(a[23]) + 0x1FE223 :MLOAD(a[E + 10]) + 0x1FE223 => A + ${mem.a[23]} :ASSERT + ${mem.a[E+10]} :ASSERT + ${getMemValueByAddress(addr.a+E+10)} :ASSERT + 0 => RCX,E loopA: - E + 1 => E :MSTORE(a + E) - ${dump(E)} + E + 1 => E :MSTORE(a[E]) E - RCX - 100 :JMPN(loopA) setB: E + 1 => E :MSTORE(b) @@ -24,7 +34,6 @@ setB: loopC: E + 1 => E E + 1000 :MSTORE(c + E) - ${dump(E)} E - RCX - 300 :JMPN(loopC) setD: E + 1 => E :MSTORE(d) From 4a097e2a78f353beeca8f9e8a0571a34df8055a6 Mon Sep 17 00:00:00 2001 From: krlosMata Date: Tue, 17 Oct 2023 17:35:12 +0200 Subject: [PATCH 09/25] useCTX in mem vars --- src/compiler.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/compiler.js b/src/compiler.js index 1a746d8..af274da 100644 --- a/src/compiler.js +++ b/src/compiler.js @@ -250,6 +250,12 @@ module.exports = async function compile(fileName, ctx, config = {}) { } cmd.op = 'getMemValue' cmd.offset = ctx.vars[name].offset; + // set useCTX + if (ctx.vars[name].scope === 'CTX') { + cmd.useCTX = 1; + } else if (ctx.vars[name].scope === 'GLOBAL') { + cmd.useCTX = 0; + } if (cmd.arrayOffset) { if (cmd.arrayOffset.op === 'number') { cmd.offset += Number(cmd.arrayOffset.num); From 7f40fc852e59f867cd89046977afd54306978bd1 Mon Sep 17 00:00:00 2001 From: krlosMata Date: Thu, 9 Nov 2023 10:04:35 +0100 Subject: [PATCH 10/25] all 'num' to strings --- src/compiler.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/compiler.js b/src/compiler.js index af274da..a5b33ff 100644 --- a/src/compiler.js +++ b/src/compiler.js @@ -279,9 +279,9 @@ module.exports = async function compile(fileName, ctx, config = {}) { error(ctx.out[i].line, `Not found reference ${cmd.module}.${name}`); } cmd.op = 'number' - cmd.num = ctx.vars[name].offset; + cmd.num = ctx.vars[name].offset.toString(); if (cmd.arrayOffset) { - cmd.num += Number(cmd.arrayOffset.num ?? 0); + cmd.num += Number(cmd.arrayOffset.num ?? 0).toString(); } cmd.offsetLabel = name; delete cmd.offset; From f1bc1e49fa4f75f5543871f33a88ddb44c3b719a Mon Sep 17 00:00:00 2001 From: Jordi Baylina Date: Wed, 8 Nov 2023 07:11:35 +0100 Subject: [PATCH 11/25] Add sha256 instructions --- build/zkasm_parser.js | 374 ++++++++++++++++++++++------------------- instructions.md | 19 +++ src/zkasm_parser.jison | 24 +++ 3 files changed, 246 insertions(+), 171 deletions(-) diff --git a/build/zkasm_parser.js b/build/zkasm_parser.js index 77529e3..72c32e8 100644 --- a/build/zkasm_parser.js +++ b/build/zkasm_parser.js @@ -72,12 +72,12 @@ } */ var zkasm_parser = (function(){ -var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,10],$V1=[1,12],$V2=[1,13],$V3=[1,14],$V4=[1,26],$V5=[1,15],$V6=[1,28],$V7=[1,16],$V8=[1,18],$V9=[1,36],$Va=[1,17],$Vb=[1,27],$Vc=[1,20],$Vd=[1,23],$Ve=[1,29],$Vf=[1,40],$Vg=[1,34],$Vh=[1,45],$Vi=[1,46],$Vj=[1,47],$Vk=[1,48],$Vl=[1,49],$Vm=[1,50],$Vn=[1,51],$Vo=[1,30],$Vp=[1,31],$Vq=[1,32],$Vr=[1,33],$Vs=[1,35],$Vt=[1,37],$Vu=[1,38],$Vv=[1,39],$Vw=[1,41],$Vx=[1,42],$Vy=[1,43],$Vz=[1,44],$VA=[5,13,15,17,18,21,23,24,27,28,30,31,33,36,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],$VB=[1,58],$VC=[1,59],$VD=[1,60],$VE=[1,61],$VF=[1,62],$VG=[1,63],$VH=[1,64],$VI=[1,65],$VJ=[1,66],$VK=[1,67],$VL=[1,68],$VM=[1,71],$VN=[1,72],$VO=[1,73],$VP=[1,74],$VQ=[1,75],$VR=[1,76],$VS=[1,77],$VT=[1,78],$VU=[1,79],$VV=[1,80],$VW=[1,81],$VX=[1,82],$VY=[1,83],$VZ=[1,84],$V_=[1,85],$V$=[1,86],$V01=[1,87],$V11=[1,88],$V21=[1,89],$V31=[1,90],$V41=[1,91],$V51=[1,92],$V61=[1,93],$V71=[1,94],$V81=[1,95],$V91=[1,96],$Va1=[1,97],$Vb1=[1,98],$Vc1=[13,15],$Vd1=[13,15,35,36,59],$Ve1=[1,110],$Vf1=[13,15,35,36,37,59],$Vg1=[13,15,35,36,37,59,67],$Vh1=[1,115],$Vi1=[13,67],$Vj1=[1,148],$Vk1=[1,144],$Vl1=[1,145],$Vm1=[1,146],$Vn1=[1,147],$Vo1=[1,151],$Vp1=[1,152],$Vq1=[1,174],$Vr1=[1,176],$Vs1=[1,175],$Vt1=[1,177],$Vu1=[1,178],$Vv1=[1,179],$Vw1=[13,15,67],$Vx1=[5,13,15,17,18,21,23,24,27,28,30,31,33,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],$Vy1=[1,218],$Vz1=[1,219],$VA1=[1,220],$VB1=[1,221],$VC1=[1,222],$VD1=[1,223],$VE1=[1,224],$VF1=[1,225],$VG1=[1,226],$VH1=[1,227],$VI1=[1,228],$VJ1=[1,229],$VK1=[1,230],$VL1=[1,231],$VM1=[1,232],$VN1=[1,233],$VO1=[1,234],$VP1=[1,235],$VQ1=[1,236],$VR1=[1,237],$VS1=[5,13,15,17,18,21,23,24,27,28,30,31,33,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],$VT1=[5,13,15,17,18,21,23,24,27,28,30,31,33,35,36,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],$VU1=[5,13,15,17,18,21,23,24,27,28,30,31,33,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],$VV1=[5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],$VW1=[5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,50,51,52,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132]; +var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,10],$V1=[1,12],$V2=[1,13],$V3=[1,14],$V4=[1,26],$V5=[1,15],$V6=[1,28],$V7=[1,16],$V8=[1,18],$V9=[1,36],$Va=[1,17],$Vb=[1,27],$Vc=[1,20],$Vd=[1,23],$Ve=[1,29],$Vf=[1,40],$Vg=[1,34],$Vh=[1,45],$Vi=[1,46],$Vj=[1,47],$Vk=[1,48],$Vl=[1,49],$Vm=[1,50],$Vn=[1,51],$Vo=[1,30],$Vp=[1,31],$Vq=[1,32],$Vr=[1,33],$Vs=[1,35],$Vt=[1,37],$Vu=[1,38],$Vv=[1,39],$Vw=[1,41],$Vx=[1,42],$Vy=[1,43],$Vz=[1,44],$VA=[5,13,15,17,18,21,23,24,27,28,30,31,33,36,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136],$VB=[1,58],$VC=[1,59],$VD=[1,60],$VE=[1,61],$VF=[1,62],$VG=[1,63],$VH=[1,64],$VI=[1,65],$VJ=[1,66],$VK=[1,67],$VL=[1,68],$VM=[1,69],$VN=[1,70],$VO=[1,71],$VP=[1,72],$VQ=[1,75],$VR=[1,76],$VS=[1,77],$VT=[1,78],$VU=[1,79],$VV=[1,80],$VW=[1,81],$VX=[1,82],$VY=[1,83],$VZ=[1,84],$V_=[1,85],$V$=[1,86],$V01=[1,87],$V11=[1,88],$V21=[1,89],$V31=[1,90],$V41=[1,91],$V51=[1,92],$V61=[1,93],$V71=[1,94],$V81=[1,95],$V91=[1,96],$Va1=[1,97],$Vb1=[1,98],$Vc1=[1,99],$Vd1=[1,100],$Ve1=[1,101],$Vf1=[1,102],$Vg1=[13,15],$Vh1=[13,15,35,36,59],$Vi1=[1,114],$Vj1=[13,15,35,36,37,59],$Vk1=[13,15,35,36,37,59,67],$Vl1=[1,119],$Vm1=[13,67],$Vn1=[1,156],$Vo1=[1,152],$Vp1=[1,153],$Vq1=[1,154],$Vr1=[1,155],$Vs1=[1,159],$Vt1=[1,160],$Vu1=[1,186],$Vv1=[1,188],$Vw1=[1,187],$Vx1=[1,189],$Vy1=[1,190],$Vz1=[1,191],$VA1=[13,15,67],$VB1=[5,13,15,17,18,21,23,24,27,28,30,31,33,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136],$VC1=[1,234],$VD1=[1,235],$VE1=[1,236],$VF1=[1,237],$VG1=[1,238],$VH1=[1,239],$VI1=[1,240],$VJ1=[1,241],$VK1=[1,242],$VL1=[1,243],$VM1=[1,244],$VN1=[1,245],$VO1=[1,246],$VP1=[1,247],$VQ1=[1,248],$VR1=[1,249],$VS1=[1,250],$VT1=[1,251],$VU1=[1,252],$VV1=[1,253],$VW1=[5,13,15,17,18,21,23,24,27,28,30,31,33,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136],$VX1=[5,13,15,17,18,21,23,24,27,28,30,31,33,35,36,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136],$VY1=[5,13,15,17,18,21,23,24,27,28,30,31,33,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136],$VZ1=[5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136],$V_1=[5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,50,51,52,53,55,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136]; var parser = {trace: function trace () { }, yy: {}, -symbols_: {"error":2,"allStatments":3,"statmentList":4,"EOF":5,"statment":6,"step":7,"label":8,"varDef":9,"constDef":10,"include":11,"command":12,"LF":13,"assignment":14,":":15,"opList":16,"IDENTIFIER":17,"VAR":18,"scope":19,"[":20,"NUMBER":21,"]":22,"CONST":23,"CONSTID":24,"=":25,"nexpr":26,"CONSTL":27,"COMMAND":28,"GLOBAL":29,"CTX":30,"INCLUDE":31,"STRING":32,"NUMBERL":33,"??":34,"+":35,"-":36,"*":37,"**":38,"%":39,"/":40,"<<":41,">>":42,"|":43,"&":44,"^":45,"<":46,">":47,"<=":48,">=":49,"==":50,"!=":51,"&&":52,"||":53,"!":54,"?":55,"(":56,")":57,"inRegsSum":58,"=>":59,"regsList":60,"inRegP":61,"inReg":62,"TAG":63,"reg":64,"counter":65,"REFERENCE":66,",":67,"op":68,"MLOAD":69,"addr":70,"MSTORE":71,"HASHK":72,"hashId":73,"HASHK1":74,"HASHKLEN":75,"HASHKDIGEST":76,"HASHP":77,"HASHP1":78,"HASHPLEN":79,"HASHPDIGEST":80,"JMP":81,"jmpCond":82,"jmpNotCond":83,"RR":84,"E":85,"CALL":86,"RETURN":87,"ASSERT":88,"SLOAD":89,"SSTORE":90,"ARITH":91,"ARITH_ECADD_DIFFERENT":92,"ARITH_ECADD_SAME":93,"ARITH_BN254_MULFP2":94,"ARITH_BN254_ADDFP2":95,"ARITH_BN254_SUBFP2":96,"ADD":97,"SUB":98,"LT":99,"SLT":100,"EQ":101,"AND":102,"OR":103,"XOR":104,"MEM_ALIGN_RD":105,"MEM_ALIGN_WR":106,"MEM_ALIGN_WR8":107,"REPEAT":108,"RCX":109,"JMPN":110,"JMPC":111,"JMPZ":112,"JMPNC":113,"JMPNZ":114,"CNT_ARITH":115,"CNT_BINARY":116,"CNT_KECCAK_F":117,"CNT_MEM_ALIGN":118,"CNT_PADDING_PG":119,"CNT_POSEIDON_G":120,"A":121,"B":122,"C":123,"D":124,"SR":125,"SP":126,"PC":127,"GAS":128,"zkPC":129,"STEP":130,"HASHPOS":131,"ROTL_C":132,"++":133,"--":134,"SYS":135,"MEM":136,"STACK":137,"$accept":0,"$end":1}, -terminals_: {2:"error",5:"EOF",13:"LF",15:":",17:"IDENTIFIER",18:"VAR",20:"[",21:"NUMBER",22:"]",23:"CONST",24:"CONSTID",25:"=",27:"CONSTL",28:"COMMAND",29:"GLOBAL",30:"CTX",31:"INCLUDE",32:"STRING",33:"NUMBERL",34:"??",35:"+",36:"-",37:"*",38:"**",39:"%",40:"/",41:"<<",42:">>",43:"|",44:"&",45:"^",46:"<",47:">",48:"<=",49:">=",50:"==",51:"!=",52:"&&",53:"||",54:"!",55:"?",56:"(",57:")",59:"=>",63:"TAG",66:"REFERENCE",67:",",69:"MLOAD",71:"MSTORE",72:"HASHK",74:"HASHK1",75:"HASHKLEN",76:"HASHKDIGEST",77:"HASHP",78:"HASHP1",79:"HASHPLEN",80:"HASHPDIGEST",81:"JMP",84:"RR",85:"E",86:"CALL",87:"RETURN",88:"ASSERT",89:"SLOAD",90:"SSTORE",91:"ARITH",92:"ARITH_ECADD_DIFFERENT",93:"ARITH_ECADD_SAME",94:"ARITH_BN254_MULFP2",95:"ARITH_BN254_ADDFP2",96:"ARITH_BN254_SUBFP2",97:"ADD",98:"SUB",99:"LT",100:"SLT",101:"EQ",102:"AND",103:"OR",104:"XOR",105:"MEM_ALIGN_RD",106:"MEM_ALIGN_WR",107:"MEM_ALIGN_WR8",108:"REPEAT",109:"RCX",110:"JMPN",111:"JMPC",112:"JMPZ",113:"JMPNC",114:"JMPNZ",115:"CNT_ARITH",116:"CNT_BINARY",117:"CNT_KECCAK_F",118:"CNT_MEM_ALIGN",119:"CNT_PADDING_PG",120:"CNT_POSEIDON_G",121:"A",122:"B",123:"C",124:"D",125:"SR",126:"SP",127:"PC",128:"GAS",129:"zkPC",130:"STEP",131:"HASHPOS",132:"ROTL_C",133:"++",134:"--",135:"SYS",136:"MEM",137:"STACK"}, -productions_: [0,[3,2],[4,2],[4,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[7,4],[7,2],[7,3],[8,2],[9,3],[9,6],[10,4],[10,4],[12,1],[19,1],[19,1],[11,2],[26,1],[26,1],[26,1],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,2],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,2],[26,5],[26,3],[14,3],[14,1],[58,3],[58,3],[58,2],[58,1],[61,3],[61,1],[62,1],[62,1],[62,1],[62,3],[62,3],[62,1],[62,1],[62,1],[62,1],[60,3],[60,1],[16,3],[16,1],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,6],[68,4],[68,6],[68,4],[68,4],[68,6],[68,6],[68,4],[68,4],[68,6],[68,6],[68,6],[68,6],[68,8],[68,8],[68,4],[68,6],[68,6],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,4],[82,1],[82,1],[82,1],[83,1],[83,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[70,1],[70,3],[70,3],[70,2],[70,2],[70,5],[70,5],[70,3],[70,5],[70,5],[70,3],[70,5],[70,5],[70,3],[70,1],[70,3],[70,3],[70,4],[70,6],[70,6],[70,3],[70,4],[73,1],[73,1]], +symbols_: {"error":2,"allStatments":3,"statmentList":4,"EOF":5,"statment":6,"step":7,"label":8,"varDef":9,"constDef":10,"include":11,"command":12,"LF":13,"assignment":14,":":15,"opList":16,"IDENTIFIER":17,"VAR":18,"scope":19,"[":20,"NUMBER":21,"]":22,"CONST":23,"CONSTID":24,"=":25,"nexpr":26,"CONSTL":27,"COMMAND":28,"GLOBAL":29,"CTX":30,"INCLUDE":31,"STRING":32,"NUMBERL":33,"??":34,"+":35,"-":36,"*":37,"**":38,"%":39,"/":40,"<<":41,">>":42,"|":43,"&":44,"^":45,"<":46,">":47,"<=":48,">=":49,"==":50,"!=":51,"&&":52,"||":53,"!":54,"?":55,"(":56,")":57,"inRegsSum":58,"=>":59,"regsList":60,"inRegP":61,"inReg":62,"TAG":63,"reg":64,"counter":65,"REFERENCE":66,",":67,"op":68,"MLOAD":69,"addr":70,"MSTORE":71,"HASHK":72,"hashId":73,"HASHK1":74,"HASHKLEN":75,"HASHKDIGEST":76,"HASHS":77,"HASHS1":78,"HASHSLEN":79,"HASHSDIGEST":80,"HASHP":81,"HASHP1":82,"HASHPLEN":83,"HASHPDIGEST":84,"JMP":85,"jmpCond":86,"jmpNotCond":87,"RR":88,"E":89,"CALL":90,"RETURN":91,"ASSERT":92,"SLOAD":93,"SSTORE":94,"ARITH":95,"ARITH_ECADD_DIFFERENT":96,"ARITH_ECADD_SAME":97,"ARITH_BN254_MULFP2":98,"ARITH_BN254_ADDFP2":99,"ARITH_BN254_SUBFP2":100,"ADD":101,"SUB":102,"LT":103,"SLT":104,"EQ":105,"AND":106,"OR":107,"XOR":108,"MEM_ALIGN_RD":109,"MEM_ALIGN_WR":110,"MEM_ALIGN_WR8":111,"REPEAT":112,"RCX":113,"JMPN":114,"JMPC":115,"JMPZ":116,"JMPNC":117,"JMPNZ":118,"CNT_ARITH":119,"CNT_BINARY":120,"CNT_KECCAK_F":121,"CNT_MEM_ALIGN":122,"CNT_PADDING_PG":123,"CNT_POSEIDON_G":124,"A":125,"B":126,"C":127,"D":128,"SR":129,"SP":130,"PC":131,"GAS":132,"zkPC":133,"STEP":134,"HASHPOS":135,"ROTL_C":136,"++":137,"--":138,"SYS":139,"MEM":140,"STACK":141,"$accept":0,"$end":1}, +terminals_: {2:"error",5:"EOF",13:"LF",15:":",17:"IDENTIFIER",18:"VAR",20:"[",21:"NUMBER",22:"]",23:"CONST",24:"CONSTID",25:"=",27:"CONSTL",28:"COMMAND",29:"GLOBAL",30:"CTX",31:"INCLUDE",32:"STRING",33:"NUMBERL",34:"??",35:"+",36:"-",37:"*",38:"**",39:"%",40:"/",41:"<<",42:">>",43:"|",44:"&",45:"^",46:"<",47:">",48:"<=",49:">=",50:"==",51:"!=",52:"&&",53:"||",54:"!",55:"?",56:"(",57:")",59:"=>",63:"TAG",66:"REFERENCE",67:",",69:"MLOAD",71:"MSTORE",72:"HASHK",74:"HASHK1",75:"HASHKLEN",76:"HASHKDIGEST",77:"HASHS",78:"HASHS1",79:"HASHSLEN",80:"HASHSDIGEST",81:"HASHP",82:"HASHP1",83:"HASHPLEN",84:"HASHPDIGEST",85:"JMP",88:"RR",89:"E",90:"CALL",91:"RETURN",92:"ASSERT",93:"SLOAD",94:"SSTORE",95:"ARITH",96:"ARITH_ECADD_DIFFERENT",97:"ARITH_ECADD_SAME",98:"ARITH_BN254_MULFP2",99:"ARITH_BN254_ADDFP2",100:"ARITH_BN254_SUBFP2",101:"ADD",102:"SUB",103:"LT",104:"SLT",105:"EQ",106:"AND",107:"OR",108:"XOR",109:"MEM_ALIGN_RD",110:"MEM_ALIGN_WR",111:"MEM_ALIGN_WR8",112:"REPEAT",113:"RCX",114:"JMPN",115:"JMPC",116:"JMPZ",117:"JMPNC",118:"JMPNZ",119:"CNT_ARITH",120:"CNT_BINARY",121:"CNT_KECCAK_F",122:"CNT_MEM_ALIGN",123:"CNT_PADDING_PG",124:"CNT_POSEIDON_G",125:"A",126:"B",127:"C",128:"D",129:"SR",130:"SP",131:"PC",132:"GAS",133:"zkPC",134:"STEP",135:"HASHPOS",136:"ROTL_C",137:"++",138:"--",139:"SYS",140:"MEM",141:"STACK"}, +productions_: [0,[3,2],[4,2],[4,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[7,4],[7,2],[7,3],[8,2],[9,3],[9,6],[10,4],[10,4],[12,1],[19,1],[19,1],[11,2],[26,1],[26,1],[26,1],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,2],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,2],[26,5],[26,3],[14,3],[14,1],[58,3],[58,3],[58,2],[58,1],[61,3],[61,1],[62,1],[62,1],[62,1],[62,3],[62,3],[62,1],[62,1],[62,1],[62,1],[60,3],[60,1],[16,3],[16,1],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,6],[68,4],[68,6],[68,4],[68,4],[68,6],[68,6],[68,4],[68,4],[68,6],[68,6],[68,6],[68,6],[68,8],[68,8],[68,4],[68,6],[68,6],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,4],[86,1],[86,1],[86,1],[87,1],[87,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[70,1],[70,3],[70,3],[70,2],[70,2],[70,5],[70,5],[70,3],[70,5],[70,5],[70,3],[70,5],[70,5],[70,3],[70,1],[70,3],[70,3],[70,4],[70,6],[70,6],[70,3],[70,4],[73,1],[73,1]], performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { /* this == yyval */ @@ -338,381 +338,405 @@ break; case 77: this.$ = $$[$0-1]; - this.$.hashP = 1; + this.$.hashS = 1; break; case 78: this.$ = $$[$0-1]; - this.$.hashP1 = 1; + this.$.hashS1 = 1; break; case 79: this.$ = $$[$0-1]; - this.$.hashPLen = 1; + this.$.hashSLen = 1; break; case 80: this.$ = $$[$0-1]; - this.$.hashPDigest = 1; + this.$.hashSDigest = 1; break; case 81: - this.$ = { [$$[$0-3]]: 1, useJmpAddr: 1, jmpAddr: $$[$0-1] } + this.$ = $$[$0-1]; + this.$.hashP = 1; break; case 82: - this.$ = { [$$[$0-3]]: 1, useJmpAddr: 1, jmpAddr: $$[$0-1], useElseAddr: 1, elseAddr: 'next' } + this.$ = $$[$0-1]; + this.$.hashP1 = 1; break; case 83: - this.$ = { [$$[$0-5]]: 1, useJmpAddr: 1, jmpAddr: $$[$0-3], useElseAddr: 1, elseAddr: $$[$0-1] } + this.$ = $$[$0-1]; + this.$.hashPLen = 1; break; case 84: - this.$ = { [$$[$0-3]]: 1, useJmpAddr: 1, jmpAddr: 'next', useElseAddr: 1, elseAddr: $$[$0-1] } + this.$ = $$[$0-1]; + this.$.hashPDigest = 1; break; case 85: - this.$ = { [$$[$0-5]]: 1, useJmpAddr: 1, jmpAddr: $$[$0-1], useElseAddr: 1, elseAddr: $$[$0-3] } + this.$ = { [$$[$0-3]]: 1, useJmpAddr: 1, jmpAddr: $$[$0-1] } break; case 86: - this.$ = { [$$[$0-3]]: 1, useJmpAddr: 0, ind: 0, indRR: 1, offset: 0 } + this.$ = { [$$[$0-3]]: 1, useJmpAddr: 1, jmpAddr: $$[$0-1], useElseAddr: 1, elseAddr: 'next' } break; case 87: - this.$ = { [$$[$0-3]]: 1, useJmpAddr: 0, ind: 1, indRR: 0, offset: 0 } + this.$ = { [$$[$0-5]]: 1, useJmpAddr: 1, jmpAddr: $$[$0-3], useElseAddr: 1, elseAddr: $$[$0-1] } break; case 88: - this.$ = { [$$[$0-5]]: 1, useJmpAddr: 0, ind: 0, indRR: 1, offset: $$[$0-3] } + this.$ = { [$$[$0-3]]: 1, useJmpAddr: 1, jmpAddr: 'next', useElseAddr: 1, elseAddr: $$[$0-1] } break; case 89: - this.$ = { [$$[$0-5]]: 1, useJmpAddr: 0, ind: 1, indRR: 0, offset: $$[$0-3] } + this.$ = { [$$[$0-5]]: 1, useJmpAddr: 1, jmpAddr: $$[$0-1], useElseAddr: 1, elseAddr: $$[$0-3] } break; case 90: - this.$ = { [$$[$0-3]]: 1, useJmpAddr: 0, ind: 0, indRR: 1, offset: 0, useElseAddr: 1, elseAddr: 'next' } + this.$ = { [$$[$0-3]]: 1, useJmpAddr: 0, ind: 0, indRR: 1, offset: 0 } break; case 91: - this.$ = { [$$[$0-3]]: 1, useJmpAddr: 0, ind: 1, indRR: 0, offset: 0, useElseAddr: 1, elseAddr: 'next' } + this.$ = { [$$[$0-3]]: 1, useJmpAddr: 0, ind: 1, indRR: 0, offset: 0 } break; case 92: - this.$ = { [$$[$0-5]]: 1, useJmpAddr: 0, ind: 0, indRR: 1, offset: $$[$0-3], useElseAddr: 1, elseAddr: 'next' } + this.$ = { [$$[$0-5]]: 1, useJmpAddr: 0, ind: 0, indRR: 1, offset: $$[$0-3] } break; case 93: - this.$ = { [$$[$0-5]]: 1, useJmpAddr: 0, ind: 1, indRR: 0, offset: $$[$0-3], useElseAddr: 1, elseAddr: 'next' } + this.$ = { [$$[$0-5]]: 1, useJmpAddr: 0, ind: 1, indRR: 0, offset: $$[$0-3] } break; case 94: - this.$ = { [$$[$0-5]]: 1, useJmpAddr: 0, ind: 0, indRR: 1, offset: 0, useElseAddr: 1, elseAddr: $$[$0-1] } + this.$ = { [$$[$0-3]]: 1, useJmpAddr: 0, ind: 0, indRR: 1, offset: 0, useElseAddr: 1, elseAddr: 'next' } break; case 95: - this.$ = { [$$[$0-5]]: 1, useJmpAddr: 0, ind: 1, indRR: 0, offset: 0, useElseAddr: 1, elseAddr: $$[$0-1] } + this.$ = { [$$[$0-3]]: 1, useJmpAddr: 0, ind: 1, indRR: 0, offset: 0, useElseAddr: 1, elseAddr: 'next' } break; case 96: - this.$ = { [$$[$0-7]]: 1, useJmpAddr: 0, ind: 0, indRR: 1, offset: $$[$0-5], useElseAddr: 1, elseAddr: $$[$0-1] } + this.$ = { [$$[$0-5]]: 1, useJmpAddr: 0, ind: 0, indRR: 1, offset: $$[$0-3], useElseAddr: 1, elseAddr: 'next' } break; case 97: - this.$ = { [$$[$0-7]]: 1, useJmpAddr: 0, ind: 1, indRR: 0, offset: $$[$0-5], useElseAddr: 1, elseAddr: $$[$0-1] } + this.$ = { [$$[$0-5]]: 1, useJmpAddr: 0, ind: 1, indRR: 0, offset: $$[$0-3], useElseAddr: 1, elseAddr: 'next' } break; case 98: - this.$ = {JMP: 0, JMPC: 0, JMPN: 0, useJmpAddr:1, jmpAddr: $$[$0-1], call: 1} + this.$ = { [$$[$0-5]]: 1, useJmpAddr: 0, ind: 0, indRR: 1, offset: 0, useElseAddr: 1, elseAddr: $$[$0-1] } break; case 99: - this.$ = {JMP: 0, JMPC: 0, JMPN: 0, offset: $$[$0-3], ind: 0, indRR: 1, return: 0, call: 1} + this.$ = { [$$[$0-5]]: 1, useJmpAddr: 0, ind: 1, indRR: 0, offset: 0, useElseAddr: 1, elseAddr: $$[$0-1] } break; case 100: - this.$ = {JMP: 0, JMPC: 0, JMPN: 0, offset: $$[$0-3], ind: 1, indRR: 0, return: 0, call: 1} + this.$ = { [$$[$0-7]]: 1, useJmpAddr: 0, ind: 0, indRR: 1, offset: $$[$0-5], useElseAddr: 1, elseAddr: $$[$0-1] } break; case 101: - this.$ = {JMP: 0, JMPC: 0, JMPN: 0, call: 0, return: 1} + this.$ = { [$$[$0-7]]: 1, useJmpAddr: 0, ind: 1, indRR: 0, offset: $$[$0-5], useElseAddr: 1, elseAddr: $$[$0-1] } break; case 102: - this.$ = {assert: 1} + this.$ = {JMP: 0, JMPC: 0, JMPN: 0, useJmpAddr:1, jmpAddr: $$[$0-1], call: 1} break; case 103: - this.$ = {sRD: 1} + this.$ = {JMP: 0, JMPC: 0, JMPN: 0, offset: $$[$0-3], ind: 0, indRR: 1, return: 0, call: 1} break; case 104: - this.$ = {sWR: 1} + this.$ = {JMP: 0, JMPC: 0, JMPN: 0, offset: $$[$0-3], ind: 1, indRR: 0, return: 0, call: 1} break; case 105: - this.$ = { arithEq0: 1, arithEq1: 0, arithEq2: 0, arithEq3: 0, arithEq4: 0, arithEq5: 0 } + this.$ = {JMP: 0, JMPC: 0, JMPN: 0, call: 0, return: 1} break; case 106: - this.$ = { arithEq0: 0, arithEq1: 1, arithEq2: 0, arithEq3: 0, arithEq4: 0, arithEq5: 0 } + this.$ = {assert: 1} break; case 107: - this.$ = { arithEq0: 0, arithEq1: 0, arithEq2: 0, arithEq3: 0, arithEq4: 0, arithEq5: 0 } + this.$ = {sRD: 1} break; case 108: - this.$ = { arithEq0: 0, arithEq1: 0, arithEq2: 0, arithEq3: 1, arithEq4: 0, arithEq5: 0 } + this.$ = {sWR: 1} break; case 109: - this.$ = { arithEq0: 0, arithEq1: 0, arithEq2: 0, arithEq3: 0, arithEq4: 1, arithEq5: 0 } + this.$ = { arithEq0: 1, arithEq1: 0, arithEq2: 0, arithEq3: 0, arithEq4: 0, arithEq5: 0 } break; case 110: - this.$ = { arithEq0: 0, arithEq1: 0, arithEq2: 0, arithEq3: 0, arithEq4: 0, arithEq5: 1 } + this.$ = { arithEq0: 0, arithEq1: 1, arithEq2: 0, arithEq3: 0, arithEq4: 0, arithEq5: 0 } break; case 111: - this.$ = { bin: 1, binOpcode: 0} + this.$ = { arithEq0: 0, arithEq1: 0, arithEq2: 0, arithEq3: 0, arithEq4: 0, arithEq5: 0 } break; case 112: - this.$ = { bin: 1, binOpcode: 1} + this.$ = { arithEq0: 0, arithEq1: 0, arithEq2: 0, arithEq3: 1, arithEq4: 0, arithEq5: 0 } break; case 113: - this.$ = { bin: 1, binOpcode: 2} + this.$ = { arithEq0: 0, arithEq1: 0, arithEq2: 0, arithEq3: 0, arithEq4: 1, arithEq5: 0 } break; case 114: - this.$ = { bin: 1, binOpcode: 3} + this.$ = { arithEq0: 0, arithEq1: 0, arithEq2: 0, arithEq3: 0, arithEq4: 0, arithEq5: 1 } break; case 115: - this.$ = { bin: 1, binOpcode: 4} + this.$ = { bin: 1, binOpcode: 0} break; case 116: - this.$ = { bin: 1, binOpcode: 5} + this.$ = { bin: 1, binOpcode: 1} break; case 117: - this.$ = { bin: 1, binOpcode: 6} + this.$ = { bin: 1, binOpcode: 2} break; case 118: - this.$ = { bin: 1, binOpcode: 7} + this.$ = { bin: 1, binOpcode: 3} break; case 119: - this.$ = { memAlignRD: 1, memAlignWR: 0, memAlignWR8: 0} + this.$ = { bin: 1, binOpcode: 4} break; case 120: - this.$ = { memAlignRD: 0, memAlignWR: 1, memAlignWR8: 0} + this.$ = { bin: 1, binOpcode: 5} break; case 121: - this.$ = { memAlignRD: 0, memAlignWR: 0, memAlignWR8: 1} + this.$ = { bin: 1, binOpcode: 6} break; case 122: - this.$ = { repeat: 1 } + this.$ = { bin: 1, binOpcode: 7} + +break; +case 123: + + this.$ = { memAlignRD: 1, memAlignWR: 0, memAlignWR8: 0} + +break; +case 124: + + this.$ = { memAlignRD: 0, memAlignWR: 1, memAlignWR8: 0} + +break; +case 125: + + this.$ = { memAlignRD: 0, memAlignWR: 0, memAlignWR8: 1} break; case 126: + + this.$ = { repeat: 1 } + +break; +case 130: this.$ = 'JMPC' break; -case 127: +case 131: this.$ = 'JMPZ' break; -case 128: +case 132: this.$ = 'cntArith' break; -case 129: +case 133: this.$ = 'cntBinary' break; -case 130: +case 134: this.$ = 'cntKeccakF' break; -case 131: +case 135: this.$ = 'cntMemAlign' break; -case 132: +case 136: this.$ = 'cntPaddingPG' break; -case 133: +case 137: this.$ = 'cntPoseidonG' break; -case 150: +case 154: this.$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack:0, offset: 0, useCTX: 1} break; -case 151: +case 155: this.$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack: 0, offset: $$[$0], useCTX: 1} break; -case 152: +case 156: this.$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack: 0, offset: -$$[$0], useCTX: 1} break; -case 153: +case 157: this.$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack: 1, offset: 0, useCTX: 1} break; -case 154: +case 158: this.$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack: -1, offset: 0, useCTX: 1} break; -case 155: +case 159: this.$ = { isStack: 0, isMem:0, ind:1, indRR: 0, incStack: 0, offset: $$[$0]} break; -case 156: +case 160: this.$ = { isStack: 0, isMem:0, ind:1, indRR: 0, incStack: 0, offset: -$$[$0]} break; -case 157: +case 161: this.$ = { isStack: 0, isMem:0, ind:1, indRR: 0, incStack: 0, offset: 0} break; -case 158: +case 162: this.$ = { isStack: 0, isMem: 1, ind:1, indRR: 0, incStack: 0, offset: $$[$0], useCTX: 1} break; -case 159: +case 163: this.$ = { isStack: 0, isMem: 1, ind:1, indRR: 0, incStack: 0, offset: -$$[$0], useCTX: 1} break; -case 160: +case 164: this.$ = { isStack: 0, isMem: 1, ind:1, indRR: 0, incStack: 0, offset: 0, useCTX: 1} break; -case 161: +case 165: this.$ = { isStack: 1, ind:1, indRR: 0, incStack: 0, offset: $$[$0], useCTX: 1} break; -case 162: +case 166: this.$ = { isStack: 1, ind:1, indRR: 0, incStack: 0, offset: -$$[$0], useCTX: 1} break; -case 163: +case 167: this.$ = { isStack: 1, ind:1, indRR: 0, incStack: 0, offset: 0, useCTX: 1} break; -case 164: +case 168: this.$ = { offset: $$[$0] } break; -case 165: +case 169: this.$ = { offset: $$[$0-2], ind: 0, indRR: 1 } break; -case 166: +case 170: this.$ = { offset: $$[$0-2], ind: 1, indRR: 0 } break; -case 167: +case 171: this.$ = { offset: $$[$0-3], ind: 1, indRR: 0 } break; -case 168: +case 172: this.$ = { offset: $$[$0-5], extraOffset: -$$[$0-1], ind: 1, indRR: 0 } break; -case 169: +case 173: this.$ = { offset: $$[$0-5], extraOffset: $$[$0-1], ind: 1, indRR: 0 } break; -case 170: +case 174: this.$ = { offset: $$[$0-2], extraOffset: $$[$0] } break; -case 171: +case 175: this.$ = { offset: $$[$0-3], extraOffset: $$[$0-1] } break; -case 172: +case 176: this.$ = {ind: 0, indRR: 0, offset:$$[$0]} break; -case 173: +case 177: this.$ = {ind: 1, indRR: 0, offset:0} break; } }, -table: [{3:1,4:2,6:3,7:4,8:5,9:6,10:7,11:8,12:9,13:$V0,14:11,15:$V1,17:$V2,18:$V3,21:$V4,23:$V5,24:$V6,27:$V7,28:$V8,30:$V9,31:$Va,33:$Vb,36:$Vc,58:19,61:21,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,109:$Vh,115:$Vi,116:$Vj,117:$Vk,118:$Vl,119:$Vm,120:$Vn,121:$Vo,122:$Vp,123:$Vq,124:$Vr,125:$Vs,126:$Vt,127:$Vu,128:$Vv,129:$Vw,130:$Vx,131:$Vy,132:$Vz},{1:[3]},{5:[1,52],6:53,7:4,8:5,9:6,10:7,11:8,12:9,13:$V0,14:11,15:$V1,17:$V2,18:$V3,21:$V4,23:$V5,24:$V6,27:$V7,28:$V8,30:$V9,31:$Va,33:$Vb,36:$Vc,58:19,61:21,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,109:$Vh,115:$Vi,116:$Vj,117:$Vk,118:$Vl,119:$Vm,120:$Vn,121:$Vo,122:$Vp,123:$Vq,124:$Vr,125:$Vs,126:$Vt,127:$Vu,128:$Vv,129:$Vw,130:$Vx,131:$Vy,132:$Vz},o($VA,[2,3]),o($VA,[2,4]),o($VA,[2,5]),o($VA,[2,6]),o($VA,[2,7]),o($VA,[2,8]),o($VA,[2,9]),o($VA,[2,10]),{13:[1,55],15:[1,54]},{16:56,68:57,69:$VB,71:$VC,72:$VD,74:$VE,75:$VF,76:$VG,77:$VH,78:$VI,79:$VJ,80:$VK,81:$VL,82:69,83:70,86:$VM,87:$VN,88:$VO,89:$VP,90:$VQ,91:$VR,92:$VS,93:$VT,94:$VU,95:$VV,96:$VW,97:$VX,98:$VY,99:$VZ,100:$V_,101:$V$,102:$V01,103:$V11,104:$V21,105:$V31,106:$V41,107:$V51,108:$V61,110:$V71,111:$V81,112:$V91,113:$Va1,114:$Vb1},{15:[1,99]},{19:100,29:[1,101],30:[1,102]},{24:[1,103]},{24:[1,104]},{32:[1,105]},o($VA,[2,19]),o($Vc1,[2,51],{35:[1,107],36:[1,108],59:[1,106]}),{21:$V4,24:$V6,30:$V9,33:$Vb,61:109,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,109:$Vh,115:$Vi,116:$Vj,117:$Vk,118:$Vl,119:$Vm,120:$Vn,121:$Vo,122:$Vp,123:$Vq,124:$Vr,125:$Vs,126:$Vt,127:$Vu,128:$Vv,129:$Vw,130:$Vx,131:$Vy,132:$Vz},o($Vd1,[2,55],{37:$Ve1}),o($Vf1,[2,57]),o($Vf1,[2,58]),o($Vf1,[2,59]),o($Vf1,[2,60]),o($Vf1,[2,63],{38:[1,111]}),o($Vf1,[2,64],{38:[1,112]}),o($Vf1,[2,65]),o($Vf1,[2,66]),o($Vg1,[2,134]),o($Vg1,[2,135]),o($Vg1,[2,136]),o($Vg1,[2,137]),o($Vg1,[2,138]),o($Vg1,[2,139]),o($Vg1,[2,140]),o($Vg1,[2,141]),o($Vg1,[2,142]),o($Vg1,[2,143]),o($Vg1,[2,144]),o($Vg1,[2,145]),o($Vg1,[2,146]),o($Vg1,[2,147]),o($Vg1,[2,148]),o($Vg1,[2,149]),o($Vf1,[2,128]),o($Vf1,[2,129]),o($Vf1,[2,130]),o($Vf1,[2,131]),o($Vf1,[2,132]),o($Vf1,[2,133]),{1:[2,1]},o($VA,[2,2]),{16:113,68:57,69:$VB,71:$VC,72:$VD,74:$VE,75:$VF,76:$VG,77:$VH,78:$VI,79:$VJ,80:$VK,81:$VL,82:69,83:70,86:$VM,87:$VN,88:$VO,89:$VP,90:$VQ,91:$VR,92:$VS,93:$VT,94:$VU,95:$VV,96:$VW,97:$VX,98:$VY,99:$VZ,100:$V_,101:$V$,102:$V01,103:$V11,104:$V21,105:$V31,106:$V41,107:$V51,108:$V61,110:$V71,111:$V81,112:$V91,113:$Va1,114:$Vb1},o($VA,[2,12]),{13:[1,114],67:$Vh1},o($Vi1,[2,70]),{56:[1,116]},{56:[1,117]},{56:[1,118]},{56:[1,119]},{56:[1,120]},{56:[1,121]},{56:[1,122]},{56:[1,123]},{56:[1,124]},{56:[1,125]},{56:[1,126]},{56:[1,127]},{56:[1,128]},{56:[1,129]},o($Vi1,[2,101]),o($Vi1,[2,102]),o($Vi1,[2,103]),o($Vi1,[2,104]),o($Vi1,[2,105]),o($Vi1,[2,106]),o($Vi1,[2,107]),o($Vi1,[2,108]),o($Vi1,[2,109]),o($Vi1,[2,110]),o($Vi1,[2,111]),o($Vi1,[2,112]),o($Vi1,[2,113]),o($Vi1,[2,114]),o($Vi1,[2,115]),o($Vi1,[2,116]),o($Vi1,[2,117]),o($Vi1,[2,118]),o($Vi1,[2,119]),o($Vi1,[2,120]),o($Vi1,[2,121]),{56:[1,130]},{56:[2,123]},{56:[2,124]},{56:[2,125]},{56:[2,126]},{56:[2,127]},o($VA,[2,14]),{17:[1,131]},{17:[2,20]},{17:[2,21]},{25:[1,132]},{25:[1,133]},o($VA,[2,22]),{30:$V9,60:134,64:135,84:$Vf,85:$Vg,109:$Vh,121:$Vo,122:$Vp,123:$Vq,124:$Vr,125:$Vs,126:$Vt,127:$Vu,128:$Vv,129:$Vw,130:$Vx,131:$Vy,132:$Vz},{21:$V4,24:$V6,30:$V9,33:$Vb,61:136,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,109:$Vh,115:$Vi,116:$Vj,117:$Vk,118:$Vl,119:$Vm,120:$Vn,121:$Vo,122:$Vp,123:$Vq,124:$Vr,125:$Vs,126:$Vt,127:$Vu,128:$Vv,129:$Vw,130:$Vx,131:$Vy,132:$Vz},{21:$V4,24:$V6,30:$V9,33:$Vb,61:137,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,109:$Vh,115:$Vi,116:$Vj,117:$Vk,118:$Vl,119:$Vm,120:$Vn,121:$Vo,122:$Vp,123:$Vq,124:$Vr,125:$Vs,126:$Vt,127:$Vu,128:$Vv,129:$Vw,130:$Vx,131:$Vy,132:$Vz},o($Vd1,[2,54],{37:$Ve1}),{21:$V4,24:$V6,30:$V9,33:$Vb,62:138,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,109:$Vh,115:$Vi,116:$Vj,117:$Vk,118:$Vl,119:$Vm,120:$Vn,121:$Vo,122:$Vp,123:$Vq,124:$Vr,125:$Vs,126:$Vt,127:$Vu,128:$Vv,129:$Vw,130:$Vx,131:$Vy,132:$Vz},{21:[1,139]},{33:[1,140]},{13:[1,141],67:$Vh1},o($VA,[2,13]),{68:142,69:$VB,71:$VC,72:$VD,74:$VE,75:$VF,76:$VG,77:$VH,78:$VI,79:$VJ,80:$VK,81:$VL,82:69,83:70,86:$VM,87:$VN,88:$VO,89:$VP,90:$VQ,91:$VR,92:$VS,93:$VT,94:$VU,95:$VV,96:$VW,97:$VX,98:$VY,99:$VZ,100:$V_,101:$V$,102:$V01,103:$V11,104:$V21,105:$V31,106:$V41,107:$V51,108:$V61,110:$V71,111:$V81,112:$V91,113:$Va1,114:$Vb1},{17:$Vj1,70:143,126:$Vk1,135:$Vl1,136:$Vm1,137:$Vn1},{17:$Vj1,70:149,126:$Vk1,135:$Vl1,136:$Vm1,137:$Vn1},{21:$Vo1,73:150,85:$Vp1},{21:$Vo1,73:153,85:$Vp1},{21:$Vo1,73:154,85:$Vp1},{21:$Vo1,73:155,85:$Vp1},{21:$Vo1,73:156,85:$Vp1},{21:$Vo1,73:157,85:$Vp1},{21:$Vo1,73:158,85:$Vp1},{21:$Vo1,73:159,85:$Vp1},{17:[1,160],66:[1,163],84:[1,161],85:[1,162]},{17:[1,164],66:[1,167],84:[1,165],85:[1,166]},{17:[1,168]},{17:[1,169],66:[1,170]},{109:[1,171]},o($VA,[2,15],{20:[1,172]}),{21:$Vq1,24:$Vr1,26:173,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:180,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},o($Vc1,[2,50],{67:[1,181]}),o($Vw1,[2,68]),o($Vd1,[2,52],{37:$Ve1}),o($Vd1,[2,53],{37:$Ve1}),o($Vf1,[2,56]),o($Vf1,[2,61]),o($Vf1,[2,62]),o($VA,[2,11]),o($Vi1,[2,69]),{57:[1,182]},{35:[1,183],36:[1,184],57:[2,150],133:[1,185],134:[1,186]},{15:[1,187]},{15:[1,188]},{15:[1,189]},{20:[1,191],35:[1,190],57:[2,164]},{57:[1,192]},{57:[1,193]},{57:[2,172]},{57:[2,173]},{57:[1,194]},{57:[1,195]},{57:[1,196]},{57:[1,197]},{57:[1,198]},{57:[1,199]},{57:[1,200]},{57:[1,201]},{57:[1,202]},{57:[1,203]},{35:[1,204]},{57:[1,205],67:[1,206]},{57:[1,207],67:[1,208]},{57:[1,209],67:[1,210]},{35:[1,211]},{57:[1,212],67:[1,213]},{57:[1,214]},{35:[1,215]},{57:[1,216]},{21:[1,217]},o($Vx1,[2,17],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,43:$VG1,44:$VH1,45:$VI1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1,52:$VP1,53:$VQ1,55:$VR1}),o($VS1,[2,23]),o($VS1,[2,24]),o($VS1,[2,25],{34:[1,238]}),{21:$Vq1,24:$Vr1,26:239,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:240,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:241,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},o($Vx1,[2,18],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,43:$VG1,44:$VH1,45:$VI1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1,52:$VP1,53:$VQ1,55:$VR1}),{30:$V9,64:242,84:$Vf,85:$Vg,109:$Vh,121:$Vo,122:$Vp,123:$Vq,124:$Vr,125:$Vs,126:$Vt,127:$Vu,128:$Vv,129:$Vw,130:$Vx,131:$Vy,132:$Vz},o($Vi1,[2,71]),{21:[1,243]},{21:[1,244]},{57:[2,153]},{57:[2,154]},{85:[1,245]},{85:[1,246]},{85:[1,247]},{21:[1,250],84:[1,248],85:[1,249]},{21:[1,252],85:[1,251]},o($Vi1,[2,72]),o($Vi1,[2,73]),o($Vi1,[2,74]),o($Vi1,[2,75]),o($Vi1,[2,76]),o($Vi1,[2,77]),o($Vi1,[2,78]),o($Vi1,[2,79]),o($Vi1,[2,80]),o($Vi1,[2,81]),o($Vi1,[2,86]),o($Vi1,[2,87]),{84:[1,253],85:[1,254]},o($Vi1,[2,82]),{17:[1,255]},o($Vi1,[2,90]),{17:[1,256]},o($Vi1,[2,91]),{17:[1,257]},{84:[1,258],85:[1,259]},o($Vi1,[2,84]),{17:[1,260]},o($Vi1,[2,98]),{84:[1,261],85:[1,262]},o($Vi1,[2,122]),{22:[1,263]},{21:$Vq1,24:$Vr1,26:264,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:265,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:266,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:267,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:268,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:269,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:270,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:271,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:272,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:273,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:274,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:275,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:276,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:277,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:278,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:279,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:280,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:281,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:282,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:283,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:284,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},o($VT1,[2,33],{37:$VA1,38:$VB1,39:$VC1,40:$VD1}),o($VS1,[2,47]),{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,43:$VG1,44:$VH1,45:$VI1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1,52:$VP1,53:$VQ1,55:$VR1,57:[1,285]},o($Vw1,[2,67]),{57:[2,151]},{57:[2,152]},{35:[1,286],36:[1,287],57:[2,157]},{35:[1,288],36:[1,289],57:[2,160]},{35:[1,290],36:[1,291],57:[2,163]},{57:[2,165]},{57:[2,166]},{57:[2,170]},{22:[1,292],35:[1,294],36:[1,293]},{22:[1,295]},{57:[1,296]},{57:[1,297]},{57:[1,298]},{57:[1,299]},{57:[1,300]},{57:[1,301],67:[1,302]},{57:[1,303],67:[1,304]},{57:[1,305]},{57:[1,306]},{57:[1,307]},o($VA,[2,16]),o($VT1,[2,27],{37:$VA1,38:$VB1,39:$VC1,40:$VD1}),o($VT1,[2,28],{37:$VA1,38:$VB1,39:$VC1,40:$VD1}),o($VS1,[2,29]),o($VS1,[2,30]),o($VS1,[2,31]),o($VS1,[2,32]),o($VU1,[2,34],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1}),o($VU1,[2,35],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,52,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],[2,36],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,44:$VH1,45:$VI1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,52,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],[2,37],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,45,52,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],[2,38],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,44:$VH1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1}),o($VV1,[2,39],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1}),o($VV1,[2,40],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1}),o($VV1,[2,41],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1}),o($VV1,[2,42],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1}),o($VW1,[2,43],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1}),o($VW1,[2,44],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,52,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],[2,45],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,43:$VG1,44:$VH1,45:$VI1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],[2,46],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,43:$VG1,44:$VH1,45:$VI1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1,52:$VP1}),{15:[1,308],35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,43:$VG1,44:$VH1,45:$VI1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1,52:$VP1,53:$VQ1,55:$VR1},o([5,13,15,17,18,21,23,24,27,28,30,31,33,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],[2,26],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,43:$VG1,44:$VH1,45:$VI1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1,52:$VP1,53:$VQ1}),o($VS1,[2,49]),{21:[1,309]},{21:[1,310]},{21:[1,311]},{21:[1,312]},{21:[1,313]},{21:[1,314]},{57:[2,167]},{21:[1,315]},{21:[1,316]},{57:[2,171]},o($Vi1,[2,88]),o($Vi1,[2,89]),o($Vi1,[2,83]),o($Vi1,[2,94]),o($Vi1,[2,95]),o($Vi1,[2,92]),{17:[1,317]},o($Vi1,[2,93]),{17:[1,318]},o($Vi1,[2,85]),o($Vi1,[2,99]),o($Vi1,[2,100]),{21:$Vq1,24:$Vr1,26:319,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{57:[2,155]},{57:[2,156]},{57:[2,158]},{57:[2,159]},{57:[2,161]},{57:[2,162]},{22:[1,320]},{22:[1,321]},{57:[1,322]},{57:[1,323]},o([5,13,15,17,18,21,23,24,27,28,30,31,33,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],[2,48],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,43:$VG1,44:$VH1,45:$VI1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1,52:$VP1,53:$VQ1,55:$VR1}),{57:[2,168]},{57:[2,169]},o($Vi1,[2,96]),o($Vi1,[2,97])], -defaultActions: {52:[2,1],94:[2,123],95:[2,124],96:[2,125],97:[2,126],98:[2,127],101:[2,20],102:[2,21],151:[2,172],152:[2,173],185:[2,153],186:[2,154],243:[2,151],244:[2,152],248:[2,165],249:[2,166],250:[2,170],292:[2,167],295:[2,171],309:[2,155],310:[2,156],311:[2,158],312:[2,159],313:[2,161],314:[2,162],320:[2,168],321:[2,169]}, +table: [{3:1,4:2,6:3,7:4,8:5,9:6,10:7,11:8,12:9,13:$V0,14:11,15:$V1,17:$V2,18:$V3,21:$V4,23:$V5,24:$V6,27:$V7,28:$V8,30:$V9,31:$Va,33:$Vb,36:$Vc,58:19,61:21,62:22,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,113:$Vh,119:$Vi,120:$Vj,121:$Vk,122:$Vl,123:$Vm,124:$Vn,125:$Vo,126:$Vp,127:$Vq,128:$Vr,129:$Vs,130:$Vt,131:$Vu,132:$Vv,133:$Vw,134:$Vx,135:$Vy,136:$Vz},{1:[3]},{5:[1,52],6:53,7:4,8:5,9:6,10:7,11:8,12:9,13:$V0,14:11,15:$V1,17:$V2,18:$V3,21:$V4,23:$V5,24:$V6,27:$V7,28:$V8,30:$V9,31:$Va,33:$Vb,36:$Vc,58:19,61:21,62:22,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,113:$Vh,119:$Vi,120:$Vj,121:$Vk,122:$Vl,123:$Vm,124:$Vn,125:$Vo,126:$Vp,127:$Vq,128:$Vr,129:$Vs,130:$Vt,131:$Vu,132:$Vv,133:$Vw,134:$Vx,135:$Vy,136:$Vz},o($VA,[2,3]),o($VA,[2,4]),o($VA,[2,5]),o($VA,[2,6]),o($VA,[2,7]),o($VA,[2,8]),o($VA,[2,9]),o($VA,[2,10]),{13:[1,55],15:[1,54]},{16:56,68:57,69:$VB,71:$VC,72:$VD,74:$VE,75:$VF,76:$VG,77:$VH,78:$VI,79:$VJ,80:$VK,81:$VL,82:$VM,83:$VN,84:$VO,85:$VP,86:73,87:74,90:$VQ,91:$VR,92:$VS,93:$VT,94:$VU,95:$VV,96:$VW,97:$VX,98:$VY,99:$VZ,100:$V_,101:$V$,102:$V01,103:$V11,104:$V21,105:$V31,106:$V41,107:$V51,108:$V61,109:$V71,110:$V81,111:$V91,112:$Va1,114:$Vb1,115:$Vc1,116:$Vd1,117:$Ve1,118:$Vf1},{15:[1,103]},{19:104,29:[1,105],30:[1,106]},{24:[1,107]},{24:[1,108]},{32:[1,109]},o($VA,[2,19]),o($Vg1,[2,51],{35:[1,111],36:[1,112],59:[1,110]}),{21:$V4,24:$V6,30:$V9,33:$Vb,61:113,62:22,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,113:$Vh,119:$Vi,120:$Vj,121:$Vk,122:$Vl,123:$Vm,124:$Vn,125:$Vo,126:$Vp,127:$Vq,128:$Vr,129:$Vs,130:$Vt,131:$Vu,132:$Vv,133:$Vw,134:$Vx,135:$Vy,136:$Vz},o($Vh1,[2,55],{37:$Vi1}),o($Vj1,[2,57]),o($Vj1,[2,58]),o($Vj1,[2,59]),o($Vj1,[2,60]),o($Vj1,[2,63],{38:[1,115]}),o($Vj1,[2,64],{38:[1,116]}),o($Vj1,[2,65]),o($Vj1,[2,66]),o($Vk1,[2,138]),o($Vk1,[2,139]),o($Vk1,[2,140]),o($Vk1,[2,141]),o($Vk1,[2,142]),o($Vk1,[2,143]),o($Vk1,[2,144]),o($Vk1,[2,145]),o($Vk1,[2,146]),o($Vk1,[2,147]),o($Vk1,[2,148]),o($Vk1,[2,149]),o($Vk1,[2,150]),o($Vk1,[2,151]),o($Vk1,[2,152]),o($Vk1,[2,153]),o($Vj1,[2,132]),o($Vj1,[2,133]),o($Vj1,[2,134]),o($Vj1,[2,135]),o($Vj1,[2,136]),o($Vj1,[2,137]),{1:[2,1]},o($VA,[2,2]),{16:117,68:57,69:$VB,71:$VC,72:$VD,74:$VE,75:$VF,76:$VG,77:$VH,78:$VI,79:$VJ,80:$VK,81:$VL,82:$VM,83:$VN,84:$VO,85:$VP,86:73,87:74,90:$VQ,91:$VR,92:$VS,93:$VT,94:$VU,95:$VV,96:$VW,97:$VX,98:$VY,99:$VZ,100:$V_,101:$V$,102:$V01,103:$V11,104:$V21,105:$V31,106:$V41,107:$V51,108:$V61,109:$V71,110:$V81,111:$V91,112:$Va1,114:$Vb1,115:$Vc1,116:$Vd1,117:$Ve1,118:$Vf1},o($VA,[2,12]),{13:[1,118],67:$Vl1},o($Vm1,[2,70]),{56:[1,120]},{56:[1,121]},{56:[1,122]},{56:[1,123]},{56:[1,124]},{56:[1,125]},{56:[1,126]},{56:[1,127]},{56:[1,128]},{56:[1,129]},{56:[1,130]},{56:[1,131]},{56:[1,132]},{56:[1,133]},{56:[1,134]},{56:[1,135]},{56:[1,136]},{56:[1,137]},o($Vm1,[2,105]),o($Vm1,[2,106]),o($Vm1,[2,107]),o($Vm1,[2,108]),o($Vm1,[2,109]),o($Vm1,[2,110]),o($Vm1,[2,111]),o($Vm1,[2,112]),o($Vm1,[2,113]),o($Vm1,[2,114]),o($Vm1,[2,115]),o($Vm1,[2,116]),o($Vm1,[2,117]),o($Vm1,[2,118]),o($Vm1,[2,119]),o($Vm1,[2,120]),o($Vm1,[2,121]),o($Vm1,[2,122]),o($Vm1,[2,123]),o($Vm1,[2,124]),o($Vm1,[2,125]),{56:[1,138]},{56:[2,127]},{56:[2,128]},{56:[2,129]},{56:[2,130]},{56:[2,131]},o($VA,[2,14]),{17:[1,139]},{17:[2,20]},{17:[2,21]},{25:[1,140]},{25:[1,141]},o($VA,[2,22]),{30:$V9,60:142,64:143,88:$Vf,89:$Vg,113:$Vh,125:$Vo,126:$Vp,127:$Vq,128:$Vr,129:$Vs,130:$Vt,131:$Vu,132:$Vv,133:$Vw,134:$Vx,135:$Vy,136:$Vz},{21:$V4,24:$V6,30:$V9,33:$Vb,61:144,62:22,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,113:$Vh,119:$Vi,120:$Vj,121:$Vk,122:$Vl,123:$Vm,124:$Vn,125:$Vo,126:$Vp,127:$Vq,128:$Vr,129:$Vs,130:$Vt,131:$Vu,132:$Vv,133:$Vw,134:$Vx,135:$Vy,136:$Vz},{21:$V4,24:$V6,30:$V9,33:$Vb,61:145,62:22,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,113:$Vh,119:$Vi,120:$Vj,121:$Vk,122:$Vl,123:$Vm,124:$Vn,125:$Vo,126:$Vp,127:$Vq,128:$Vr,129:$Vs,130:$Vt,131:$Vu,132:$Vv,133:$Vw,134:$Vx,135:$Vy,136:$Vz},o($Vh1,[2,54],{37:$Vi1}),{21:$V4,24:$V6,30:$V9,33:$Vb,62:146,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,113:$Vh,119:$Vi,120:$Vj,121:$Vk,122:$Vl,123:$Vm,124:$Vn,125:$Vo,126:$Vp,127:$Vq,128:$Vr,129:$Vs,130:$Vt,131:$Vu,132:$Vv,133:$Vw,134:$Vx,135:$Vy,136:$Vz},{21:[1,147]},{33:[1,148]},{13:[1,149],67:$Vl1},o($VA,[2,13]),{68:150,69:$VB,71:$VC,72:$VD,74:$VE,75:$VF,76:$VG,77:$VH,78:$VI,79:$VJ,80:$VK,81:$VL,82:$VM,83:$VN,84:$VO,85:$VP,86:73,87:74,90:$VQ,91:$VR,92:$VS,93:$VT,94:$VU,95:$VV,96:$VW,97:$VX,98:$VY,99:$VZ,100:$V_,101:$V$,102:$V01,103:$V11,104:$V21,105:$V31,106:$V41,107:$V51,108:$V61,109:$V71,110:$V81,111:$V91,112:$Va1,114:$Vb1,115:$Vc1,116:$Vd1,117:$Ve1,118:$Vf1},{17:$Vn1,70:151,130:$Vo1,139:$Vp1,140:$Vq1,141:$Vr1},{17:$Vn1,70:157,130:$Vo1,139:$Vp1,140:$Vq1,141:$Vr1},{21:$Vs1,73:158,89:$Vt1},{21:$Vs1,73:161,89:$Vt1},{21:$Vs1,73:162,89:$Vt1},{21:$Vs1,73:163,89:$Vt1},{21:$Vs1,73:164,89:$Vt1},{21:$Vs1,73:165,89:$Vt1},{21:$Vs1,73:166,89:$Vt1},{21:$Vs1,73:167,89:$Vt1},{21:$Vs1,73:168,89:$Vt1},{21:$Vs1,73:169,89:$Vt1},{21:$Vs1,73:170,89:$Vt1},{21:$Vs1,73:171,89:$Vt1},{17:[1,172],66:[1,175],88:[1,173],89:[1,174]},{17:[1,176],66:[1,179],88:[1,177],89:[1,178]},{17:[1,180]},{17:[1,181],66:[1,182]},{113:[1,183]},o($VA,[2,15],{20:[1,184]}),{21:$Vu1,24:$Vv1,26:185,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{21:$Vu1,24:$Vv1,26:192,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},o($Vg1,[2,50],{67:[1,193]}),o($VA1,[2,68]),o($Vh1,[2,52],{37:$Vi1}),o($Vh1,[2,53],{37:$Vi1}),o($Vj1,[2,56]),o($Vj1,[2,61]),o($Vj1,[2,62]),o($VA,[2,11]),o($Vm1,[2,69]),{57:[1,194]},{35:[1,195],36:[1,196],57:[2,154],137:[1,197],138:[1,198]},{15:[1,199]},{15:[1,200]},{15:[1,201]},{20:[1,203],35:[1,202],57:[2,168]},{57:[1,204]},{57:[1,205]},{57:[2,176]},{57:[2,177]},{57:[1,206]},{57:[1,207]},{57:[1,208]},{57:[1,209]},{57:[1,210]},{57:[1,211]},{57:[1,212]},{57:[1,213]},{57:[1,214]},{57:[1,215]},{57:[1,216]},{57:[1,217]},{57:[1,218]},{57:[1,219]},{35:[1,220]},{57:[1,221],67:[1,222]},{57:[1,223],67:[1,224]},{57:[1,225],67:[1,226]},{35:[1,227]},{57:[1,228],67:[1,229]},{57:[1,230]},{35:[1,231]},{57:[1,232]},{21:[1,233]},o($VB1,[2,17],{35:$VC1,36:$VD1,37:$VE1,38:$VF1,39:$VG1,40:$VH1,41:$VI1,42:$VJ1,43:$VK1,44:$VL1,45:$VM1,46:$VN1,47:$VO1,48:$VP1,49:$VQ1,50:$VR1,51:$VS1,52:$VT1,53:$VU1,55:$VV1}),o($VW1,[2,23]),o($VW1,[2,24]),o($VW1,[2,25],{34:[1,254]}),{21:$Vu1,24:$Vv1,26:255,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{21:$Vu1,24:$Vv1,26:256,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{21:$Vu1,24:$Vv1,26:257,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},o($VB1,[2,18],{35:$VC1,36:$VD1,37:$VE1,38:$VF1,39:$VG1,40:$VH1,41:$VI1,42:$VJ1,43:$VK1,44:$VL1,45:$VM1,46:$VN1,47:$VO1,48:$VP1,49:$VQ1,50:$VR1,51:$VS1,52:$VT1,53:$VU1,55:$VV1}),{30:$V9,64:258,88:$Vf,89:$Vg,113:$Vh,125:$Vo,126:$Vp,127:$Vq,128:$Vr,129:$Vs,130:$Vt,131:$Vu,132:$Vv,133:$Vw,134:$Vx,135:$Vy,136:$Vz},o($Vm1,[2,71]),{21:[1,259]},{21:[1,260]},{57:[2,157]},{57:[2,158]},{89:[1,261]},{89:[1,262]},{89:[1,263]},{21:[1,266],88:[1,264],89:[1,265]},{21:[1,268],89:[1,267]},o($Vm1,[2,72]),o($Vm1,[2,73]),o($Vm1,[2,74]),o($Vm1,[2,75]),o($Vm1,[2,76]),o($Vm1,[2,77]),o($Vm1,[2,78]),o($Vm1,[2,79]),o($Vm1,[2,80]),o($Vm1,[2,81]),o($Vm1,[2,82]),o($Vm1,[2,83]),o($Vm1,[2,84]),o($Vm1,[2,85]),o($Vm1,[2,90]),o($Vm1,[2,91]),{88:[1,269],89:[1,270]},o($Vm1,[2,86]),{17:[1,271]},o($Vm1,[2,94]),{17:[1,272]},o($Vm1,[2,95]),{17:[1,273]},{88:[1,274],89:[1,275]},o($Vm1,[2,88]),{17:[1,276]},o($Vm1,[2,102]),{88:[1,277],89:[1,278]},o($Vm1,[2,126]),{22:[1,279]},{21:$Vu1,24:$Vv1,26:280,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{21:$Vu1,24:$Vv1,26:281,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{21:$Vu1,24:$Vv1,26:282,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{21:$Vu1,24:$Vv1,26:283,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{21:$Vu1,24:$Vv1,26:284,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{21:$Vu1,24:$Vv1,26:285,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{21:$Vu1,24:$Vv1,26:286,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{21:$Vu1,24:$Vv1,26:287,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{21:$Vu1,24:$Vv1,26:288,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{21:$Vu1,24:$Vv1,26:289,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{21:$Vu1,24:$Vv1,26:290,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{21:$Vu1,24:$Vv1,26:291,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{21:$Vu1,24:$Vv1,26:292,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{21:$Vu1,24:$Vv1,26:293,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{21:$Vu1,24:$Vv1,26:294,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{21:$Vu1,24:$Vv1,26:295,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{21:$Vu1,24:$Vv1,26:296,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{21:$Vu1,24:$Vv1,26:297,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{21:$Vu1,24:$Vv1,26:298,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{21:$Vu1,24:$Vv1,26:299,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{21:$Vu1,24:$Vv1,26:300,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},o($VX1,[2,33],{37:$VE1,38:$VF1,39:$VG1,40:$VH1}),o($VW1,[2,47]),{35:$VC1,36:$VD1,37:$VE1,38:$VF1,39:$VG1,40:$VH1,41:$VI1,42:$VJ1,43:$VK1,44:$VL1,45:$VM1,46:$VN1,47:$VO1,48:$VP1,49:$VQ1,50:$VR1,51:$VS1,52:$VT1,53:$VU1,55:$VV1,57:[1,301]},o($VA1,[2,67]),{57:[2,155]},{57:[2,156]},{35:[1,302],36:[1,303],57:[2,161]},{35:[1,304],36:[1,305],57:[2,164]},{35:[1,306],36:[1,307],57:[2,167]},{57:[2,169]},{57:[2,170]},{57:[2,174]},{22:[1,308],35:[1,310],36:[1,309]},{22:[1,311]},{57:[1,312]},{57:[1,313]},{57:[1,314]},{57:[1,315]},{57:[1,316]},{57:[1,317],67:[1,318]},{57:[1,319],67:[1,320]},{57:[1,321]},{57:[1,322]},{57:[1,323]},o($VA,[2,16]),o($VX1,[2,27],{37:$VE1,38:$VF1,39:$VG1,40:$VH1}),o($VX1,[2,28],{37:$VE1,38:$VF1,39:$VG1,40:$VH1}),o($VW1,[2,29]),o($VW1,[2,30]),o($VW1,[2,31]),o($VW1,[2,32]),o($VY1,[2,34],{35:$VC1,36:$VD1,37:$VE1,38:$VF1,39:$VG1,40:$VH1}),o($VY1,[2,35],{35:$VC1,36:$VD1,37:$VE1,38:$VF1,39:$VG1,40:$VH1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,52,53,55,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136],[2,36],{35:$VC1,36:$VD1,37:$VE1,38:$VF1,39:$VG1,40:$VH1,41:$VI1,42:$VJ1,44:$VL1,45:$VM1,46:$VN1,47:$VO1,48:$VP1,49:$VQ1,50:$VR1,51:$VS1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,52,53,55,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136],[2,37],{35:$VC1,36:$VD1,37:$VE1,38:$VF1,39:$VG1,40:$VH1,41:$VI1,42:$VJ1,46:$VN1,47:$VO1,48:$VP1,49:$VQ1,50:$VR1,51:$VS1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,45,52,53,55,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136],[2,38],{35:$VC1,36:$VD1,37:$VE1,38:$VF1,39:$VG1,40:$VH1,41:$VI1,42:$VJ1,44:$VL1,46:$VN1,47:$VO1,48:$VP1,49:$VQ1,50:$VR1,51:$VS1}),o($VZ1,[2,39],{35:$VC1,36:$VD1,37:$VE1,38:$VF1,39:$VG1,40:$VH1,41:$VI1,42:$VJ1}),o($VZ1,[2,40],{35:$VC1,36:$VD1,37:$VE1,38:$VF1,39:$VG1,40:$VH1,41:$VI1,42:$VJ1}),o($VZ1,[2,41],{35:$VC1,36:$VD1,37:$VE1,38:$VF1,39:$VG1,40:$VH1,41:$VI1,42:$VJ1}),o($VZ1,[2,42],{35:$VC1,36:$VD1,37:$VE1,38:$VF1,39:$VG1,40:$VH1,41:$VI1,42:$VJ1}),o($V_1,[2,43],{35:$VC1,36:$VD1,37:$VE1,38:$VF1,39:$VG1,40:$VH1,41:$VI1,42:$VJ1,46:$VN1,47:$VO1,48:$VP1,49:$VQ1}),o($V_1,[2,44],{35:$VC1,36:$VD1,37:$VE1,38:$VF1,39:$VG1,40:$VH1,41:$VI1,42:$VJ1,46:$VN1,47:$VO1,48:$VP1,49:$VQ1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,52,53,55,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136],[2,45],{35:$VC1,36:$VD1,37:$VE1,38:$VF1,39:$VG1,40:$VH1,41:$VI1,42:$VJ1,43:$VK1,44:$VL1,45:$VM1,46:$VN1,47:$VO1,48:$VP1,49:$VQ1,50:$VR1,51:$VS1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,53,55,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136],[2,46],{35:$VC1,36:$VD1,37:$VE1,38:$VF1,39:$VG1,40:$VH1,41:$VI1,42:$VJ1,43:$VK1,44:$VL1,45:$VM1,46:$VN1,47:$VO1,48:$VP1,49:$VQ1,50:$VR1,51:$VS1,52:$VT1}),{15:[1,324],35:$VC1,36:$VD1,37:$VE1,38:$VF1,39:$VG1,40:$VH1,41:$VI1,42:$VJ1,43:$VK1,44:$VL1,45:$VM1,46:$VN1,47:$VO1,48:$VP1,49:$VQ1,50:$VR1,51:$VS1,52:$VT1,53:$VU1,55:$VV1},o([5,13,15,17,18,21,23,24,27,28,30,31,33,55,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136],[2,26],{35:$VC1,36:$VD1,37:$VE1,38:$VF1,39:$VG1,40:$VH1,41:$VI1,42:$VJ1,43:$VK1,44:$VL1,45:$VM1,46:$VN1,47:$VO1,48:$VP1,49:$VQ1,50:$VR1,51:$VS1,52:$VT1,53:$VU1}),o($VW1,[2,49]),{21:[1,325]},{21:[1,326]},{21:[1,327]},{21:[1,328]},{21:[1,329]},{21:[1,330]},{57:[2,171]},{21:[1,331]},{21:[1,332]},{57:[2,175]},o($Vm1,[2,92]),o($Vm1,[2,93]),o($Vm1,[2,87]),o($Vm1,[2,98]),o($Vm1,[2,99]),o($Vm1,[2,96]),{17:[1,333]},o($Vm1,[2,97]),{17:[1,334]},o($Vm1,[2,89]),o($Vm1,[2,103]),o($Vm1,[2,104]),{21:$Vu1,24:$Vv1,26:335,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{57:[2,159]},{57:[2,160]},{57:[2,162]},{57:[2,163]},{57:[2,165]},{57:[2,166]},{22:[1,336]},{22:[1,337]},{57:[1,338]},{57:[1,339]},o([5,13,15,17,18,21,23,24,27,28,30,31,33,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136],[2,48],{35:$VC1,36:$VD1,37:$VE1,38:$VF1,39:$VG1,40:$VH1,41:$VI1,42:$VJ1,43:$VK1,44:$VL1,45:$VM1,46:$VN1,47:$VO1,48:$VP1,49:$VQ1,50:$VR1,51:$VS1,52:$VT1,53:$VU1,55:$VV1}),{57:[2,172]},{57:[2,173]},o($Vm1,[2,100]),o($Vm1,[2,101])], +defaultActions: {52:[2,1],98:[2,127],99:[2,128],100:[2,129],101:[2,130],102:[2,131],105:[2,20],106:[2,21],159:[2,176],160:[2,177],197:[2,157],198:[2,158],259:[2,155],260:[2,156],264:[2,169],265:[2,170],266:[2,174],308:[2,171],311:[2,175],325:[2,159],326:[2,160],327:[2,162],328:[2,163],329:[2,165],330:[2,166],336:[2,172],337:[2,173]}, parseError: function parseError (str, hash) { if (hash.recoverable) { this.trace(str); @@ -1207,37 +1231,37 @@ case 6: return "LF"; break; case 7: /* console.log("Empty spaces"); */ break; -case 8: return 121; +case 8: return 125; break; -case 9: return 122; +case 9: return 126; break; -case 10: return 123; +case 10: return 127; break; -case 11: return 124; +case 11: return 128; break; -case 12: return 85; +case 12: return 89; break; -case 13: return 109; +case 13: return 113; break; -case 14: return 125; +case 14: return 129; break; case 15: return 30; break; -case 16: return 126; +case 16: return 130; break; -case 17: return 127; +case 17: return 131; break; -case 18: return 128; +case 18: return 132; break; -case 19: return 129; +case 19: return 133; break; -case 20: return 84; +case 20: return 88; break; -case 21: return 130; +case 21: return 134; break; -case 22: return 132; +case 22: return 136; break; -case 23: return 131; +case 23: return 135; break; case 24: return 69 break; @@ -1259,25 +1283,25 @@ case 32: return 78 break; case 33: return 77 break; -case 34: return 81 +case 34: return 83 break; -case 35: return 111 +case 35: return 84 break; -case 36: return 112 +case 36: return 82 break; -case 37: return 114 +case 37: return 81 break; -case 38: return 113 +case 38: return 85 break; -case 39: return 110 +case 39: return 115 break; -case 40: return 86 +case 40: return 116 break; -case 41: return 87 +case 41: return 118 break; -case 42: return 88 +case 42: return 117 break; -case 43: return 89 +case 43: return 114 break; case 44: return 90 break; @@ -1287,19 +1311,19 @@ case 46: return 92 break; case 47: return 93 break; -case 48: return 95 +case 48: return 94 break; -case 49: return 96 +case 49: return 95 break; -case 50: return 94 +case 50: return 96 break; case 51: return 97 break; -case 52: return 98 +case 52: return 99 break; -case 53: return 99 +case 53: return 100 break; -case 54: return 100 +case 54: return 98 break; case 55: return 101 break; @@ -1309,124 +1333,132 @@ case 57: return 103 break; case 58: return 104 break; -case 59: return 115 +case 59: return 105 break; -case 60: return 116 +case 60: return 106 break; -case 61: return 117 +case 61: return 107 break; -case 62: return 118 +case 62: return 108 break; case 63: return 119 break; case 64: return 120 break; -case 65: return 107 +case 65: return 121 +break; +case 66: return 122 +break; +case 67: return 123 +break; +case 68: return 124 +break; +case 69: return 111 break; -case 66: return 105 +case 70: return 109 break; -case 67: return 106 +case 71: return 110 break; -case 68: return 135 +case 72: return 139 break; -case 69: return 136 +case 73: return 140 break; -case 70: return 137 +case 74: return 141 break; -case 71: return 31 +case 75: return 31 break; -case 72: return 18 +case 76: return 18 break; -case 73: return 29 +case 77: return 29 break; -case 74: return 30 +case 78: return 30 break; -case 75: return 23 +case 79: return 23 break; -case 76: return 27 +case 80: return 27 break; -case 77: return 108 +case 81: return 112 break; -case 78: yy_.yytext = yy_.yytext.slice(1,-1); return 32; +case 82: yy_.yytext = yy_.yytext.slice(1,-1); return 32; break; -case 79: return 17; +case 83: return 17; break; -case 80: yy_.yytext = yy_.yytext.slice(1); return 24; +case 84: yy_.yytext = yy_.yytext.slice(1); return 24; break; -case 81: yy_.yytext = yy_.yytext.slice(1); return 66; +case 85: yy_.yytext = yy_.yytext.slice(1); return 66; break; -case 82: return 15; +case 86: return 15; break; -case 83: return 67 +case 87: return 67 break; -case 84: return 56 +case 88: return 56 break; -case 85: return 57 +case 89: return 57 break; -case 86: return 133 +case 90: return 137 break; -case 87: return 134 +case 91: return 138 break; -case 88: return 35 +case 92: return 35 break; -case 89: return 36 +case 93: return 36 break; -case 90: return 40 +case 94: return 40 break; -case 91: return 38 +case 95: return 38 break; -case 92: return 37 +case 96: return 37 break; -case 93: return 39 +case 97: return 39 break; -case 94: return 59 +case 98: return 59 break; -case 95: return 41 +case 99: return 41 break; -case 96: return 42 +case 100: return 42 break; -case 97: return 45 +case 101: return 45 break; -case 98: return 53 +case 102: return 53 break; -case 99: return 52 +case 103: return 52 break; -case 100: return 44 +case 104: return 44 break; -case 101: return 43 +case 105: return 43 break; -case 102: return 50 +case 106: return 50 break; -case 103: return 51 +case 107: return 51 break; -case 104: return 48 +case 108: return 48 break; -case 105: return 49 +case 109: return 49 break; -case 106: return 47 +case 110: return 47 break; -case 107: return 46 +case 111: return 46 break; -case 108: return 25 +case 112: return 25 break; -case 109: return 54 +case 113: return 54 break; -case 110: return 34 +case 114: return 34 break; -case 111: return 55 +case 115: return 55 break; -case 112: return 20 +case 116: return 20 break; -case 113: return 22 +case 117: return 22 break; -case 114: return 5; +case 118: return 5; break; -case 115: /* console.log("INVALID: " + yy_.yytext); */ return 'INVALID'; +case 119: /* console.log("INVALID: " + yy_.yytext); */ return 'INVALID'; break; } }, -rules: [/^(?:;[^\n\r]*)/,/^(?:\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+\/)/,/^(?:((0x[0-9A-Fa-f][0-9A-Fa-f_]*)|([0-9][0-9_]*))n\b)/,/^(?:(0x[0-9A-Fa-f][0-9A-Fa-f_]*)|([0-9][0-9_]*))/,/^(?:\$\$\{[^\}]*\})/,/^(?:(\$(\{[^\}]*\})?))/,/^(?:[\r\n]+)/,/^(?:[ \t]+)/,/^(?:A\b)/,/^(?:B\b)/,/^(?:C\b)/,/^(?:D\b)/,/^(?:E\b)/,/^(?:RCX\b)/,/^(?:SR\b)/,/^(?:CTX\b)/,/^(?:SP\b)/,/^(?:PC\b)/,/^(?:GAS\b)/,/^(?:zkPC\b)/,/^(?:RR\b)/,/^(?:STEP\b)/,/^(?:ROTL_C\b)/,/^(?:HASHPOS\b)/,/^(?:MLOAD\b)/,/^(?:MSTORE\b)/,/^(?:HASHKLEN\b)/,/^(?:HASHKDIGEST\b)/,/^(?:HASHK1\b)/,/^(?:HASHK\b)/,/^(?:HASHPLEN\b)/,/^(?:HASHPDIGEST\b)/,/^(?:HASHP1\b)/,/^(?:HASHP\b)/,/^(?:JMP\b)/,/^(?:JMPC\b)/,/^(?:JMPZ\b)/,/^(?:JMPNZ\b)/,/^(?:JMPNC\b)/,/^(?:JMPN\b)/,/^(?:CALL\b)/,/^(?:RETURN\b)/,/^(?:ASSERT\b)/,/^(?:SLOAD\b)/,/^(?:SSTORE\b)/,/^(?:ARITH\b)/,/^(?:ARITH_ECADD_DIFFERENT\b)/,/^(?:ARITH_ECADD_SAME\b)/,/^(?:ARITH_BN254_ADDFP2\b)/,/^(?:ARITH_BN254_SUBFP2\b)/,/^(?:ARITH_BN254_MULFP2\b)/,/^(?:ADD\b)/,/^(?:SUB\b)/,/^(?:LT\b)/,/^(?:SLT\b)/,/^(?:EQ\b)/,/^(?:AND\b)/,/^(?:OR\b)/,/^(?:XOR\b)/,/^(?:CNT_ARITH\b)/,/^(?:CNT_BINARY\b)/,/^(?:CNT_KECCAK_F\b)/,/^(?:CNT_MEM_ALIGN\b)/,/^(?:CNT_PADDING_PG\b)/,/^(?:CNT_POSEIDON_G\b)/,/^(?:MEM_ALIGN_WR8\b)/,/^(?:MEM_ALIGN_RD\b)/,/^(?:MEM_ALIGN_WR\b)/,/^(?:SYS\b)/,/^(?:MEM\b)/,/^(?:STACK\b)/,/^(?:INCLUDE\b)/,/^(?:VAR\b)/,/^(?:GLOBAL\b)/,/^(?:CTX\b)/,/^(?:CONST\b)/,/^(?:CONSTL\b)/,/^(?:REPEAT\b)/,/^(?:"[^"]+")/,/^(?:[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?:%[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?:@[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?::)/,/^(?:,)/,/^(?:\()/,/^(?:\))/,/^(?:\+\+)/,/^(?:--)/,/^(?:\+)/,/^(?:-)/,/^(?:\/)/,/^(?:\*\*)/,/^(?:\*)/,/^(?:%)/,/^(?:=>)/,/^(?:<<)/,/^(?:>>)/,/^(?:\^)/,/^(?:\|\|)/,/^(?:&&)/,/^(?:&)/,/^(?:\|)/,/^(?:==)/,/^(?:!=)/,/^(?:<=)/,/^(?:>=)/,/^(?:>)/,/^(?:<)/,/^(?:=)/,/^(?:!)/,/^(?:\?\?)/,/^(?:\?)/,/^(?:\[)/,/^(?:\])/,/^(?:$)/,/^(?:.)/], -conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115],"inclusive":true}} +rules: [/^(?:;[^\n\r]*)/,/^(?:\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+\/)/,/^(?:((0x[0-9A-Fa-f][0-9A-Fa-f_]*)|([0-9][0-9_]*))n\b)/,/^(?:(0x[0-9A-Fa-f][0-9A-Fa-f_]*)|([0-9][0-9_]*))/,/^(?:\$\$\{[^\}]*\})/,/^(?:(\$(\{[^\}]*\})?))/,/^(?:[\r\n]+)/,/^(?:[ \t]+)/,/^(?:A\b)/,/^(?:B\b)/,/^(?:C\b)/,/^(?:D\b)/,/^(?:E\b)/,/^(?:RCX\b)/,/^(?:SR\b)/,/^(?:CTX\b)/,/^(?:SP\b)/,/^(?:PC\b)/,/^(?:GAS\b)/,/^(?:zkPC\b)/,/^(?:RR\b)/,/^(?:STEP\b)/,/^(?:ROTL_C\b)/,/^(?:HASHPOS\b)/,/^(?:MLOAD\b)/,/^(?:MSTORE\b)/,/^(?:HASHKLEN\b)/,/^(?:HASHKDIGEST\b)/,/^(?:HASHK1\b)/,/^(?:HASHK\b)/,/^(?:HASHSLEN\b)/,/^(?:HASHSDIGEST\b)/,/^(?:HASHS1\b)/,/^(?:HASHS\b)/,/^(?:HASHPLEN\b)/,/^(?:HASHPDIGEST\b)/,/^(?:HASHP1\b)/,/^(?:HASHP\b)/,/^(?:JMP\b)/,/^(?:JMPC\b)/,/^(?:JMPZ\b)/,/^(?:JMPNZ\b)/,/^(?:JMPNC\b)/,/^(?:JMPN\b)/,/^(?:CALL\b)/,/^(?:RETURN\b)/,/^(?:ASSERT\b)/,/^(?:SLOAD\b)/,/^(?:SSTORE\b)/,/^(?:ARITH\b)/,/^(?:ARITH_ECADD_DIFFERENT\b)/,/^(?:ARITH_ECADD_SAME\b)/,/^(?:ARITH_BN254_ADDFP2\b)/,/^(?:ARITH_BN254_SUBFP2\b)/,/^(?:ARITH_BN254_MULFP2\b)/,/^(?:ADD\b)/,/^(?:SUB\b)/,/^(?:LT\b)/,/^(?:SLT\b)/,/^(?:EQ\b)/,/^(?:AND\b)/,/^(?:OR\b)/,/^(?:XOR\b)/,/^(?:CNT_ARITH\b)/,/^(?:CNT_BINARY\b)/,/^(?:CNT_KECCAK_F\b)/,/^(?:CNT_MEM_ALIGN\b)/,/^(?:CNT_PADDING_PG\b)/,/^(?:CNT_POSEIDON_G\b)/,/^(?:MEM_ALIGN_WR8\b)/,/^(?:MEM_ALIGN_RD\b)/,/^(?:MEM_ALIGN_WR\b)/,/^(?:SYS\b)/,/^(?:MEM\b)/,/^(?:STACK\b)/,/^(?:INCLUDE\b)/,/^(?:VAR\b)/,/^(?:GLOBAL\b)/,/^(?:CTX\b)/,/^(?:CONST\b)/,/^(?:CONSTL\b)/,/^(?:REPEAT\b)/,/^(?:"[^"]+")/,/^(?:[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?:%[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?:@[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?::)/,/^(?:,)/,/^(?:\()/,/^(?:\))/,/^(?:\+\+)/,/^(?:--)/,/^(?:\+)/,/^(?:-)/,/^(?:\/)/,/^(?:\*\*)/,/^(?:\*)/,/^(?:%)/,/^(?:=>)/,/^(?:<<)/,/^(?:>>)/,/^(?:\^)/,/^(?:\|\|)/,/^(?:&&)/,/^(?:&)/,/^(?:\|)/,/^(?:==)/,/^(?:!=)/,/^(?:<=)/,/^(?:>=)/,/^(?:>)/,/^(?:<)/,/^(?:=)/,/^(?:!)/,/^(?:\?\?)/,/^(?:\?)/,/^(?:\[)/,/^(?:\])/,/^(?:$)/,/^(?:.)/], +conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119],"inclusive":true}} }); return lexer; })(); diff --git a/instructions.md b/instructions.md index 867eb4e..b0053e2 100644 --- a/instructions.md +++ b/instructions.md @@ -48,6 +48,25 @@ hashK[hashId].len = op hashK[hashId].digest = op +### HASHS(hashId) + +hashS[hashId][HASHPOS..HASHPOS+D-1] = op[0..D-1] +HASHPOS := HASHPOS + D +hashId = number | E + +### HASHS1(hashId) + +hashS1[hashId][HASHPOS] = op[0] +HASHPOS := HASHPOS + 1 + +### HASHSLEN(hashId) + +hashS[hashId].len = op + +### HASHSDIGEST(hashId) + +hashS[hashId].digest = op + ### HASHP(hashId) hashP[hashId][HASHPOS..HASHPOS+D-1] = op[0..D-1] diff --git a/src/zkasm_parser.jison b/src/zkasm_parser.jison index 318a66f..97124b9 100644 --- a/src/zkasm_parser.jison +++ b/src/zkasm_parser.jison @@ -31,6 +31,10 @@ HASHKLEN { return 'HASHKLEN' } HASHKDIGEST { return 'HASHKDIGEST' } HASHK1 { return 'HASHK1' } HASHK { return 'HASHK' } +HASHSLEN { return 'HASHSLEN' } +HASHSDIGEST { return 'HASHSDIGEST' } +HASHS1 { return 'HASHS1' } +HASHS { return 'HASHS' } HASHPLEN { return 'HASHPLEN' } HASHPDIGEST { return 'HASHPDIGEST' } HASHP1 { return 'HASHP1' } @@ -518,6 +522,26 @@ op $$ = $3; $$.hashKDigest = 1; } + | HASHS '(' hashId ')' + { + $$ = $3; + $$.hashS = 1; + } + | HASHS1 '(' hashId ')' + { + $$ = $3; + $$.hashS1 = 1; + } + | HASHSLEN '(' hashId ')' + { + $$ = $3; + $$.hashSLen = 1; + } + | HASHSDIGEST '(' hashId ')' + { + $$ = $3; + $$.hashSDigest = 1; + } | HASHP '(' hashId ')' { $$ = $3; From 42a214a9a50e0de3e37570b43cda6feb9d56ee89 Mon Sep 17 00:00:00 2001 From: laisolizq Date: Fri, 10 Nov 2023 17:49:40 +0100 Subject: [PATCH 12/25] fix CNT_SHA256_F --- build/command_parser.js | 100 ++++++++++---------- build/zkasm_parser.js | 193 ++++++++++++++++++++------------------- instructions.md | 3 +- src/command_parser.jison | 2 + src/zkasm_parser.jison | 2 + 5 files changed, 156 insertions(+), 144 deletions(-) diff --git a/build/command_parser.js b/build/command_parser.js index a020605..644fa73 100644 --- a/build/command_parser.js +++ b/build/command_parser.js @@ -72,12 +72,12 @@ } */ var command_parser = (function(){ -var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,10],$V1=[1,11],$V2=[1,12],$V3=[1,13],$V4=[1,17],$V5=[1,20],$V6=[1,7],$V7=[1,6],$V8=[1,21],$V9=[1,22],$Va=[1,23],$Vb=[1,24],$Vc=[1,25],$Vd=[1,26],$Ve=[1,27],$Vf=[1,28],$Vg=[1,29],$Vh=[1,30],$Vi=[1,31],$Vj=[1,32],$Vk=[1,33],$Vl=[1,34],$Vm=[1,35],$Vn=[1,36],$Vo=[1,37],$Vp=[1,38],$Vq=[1,39],$Vr=[1,40],$Vs=[1,41],$Vt=[5,42,46,70],$Vu=[5,10,12,13,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,42,46,70],$Vv=[2,34],$Vw=[5,8,10,12,13,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,42,46,70],$Vx=[5,10,12,42,46,70],$Vy=[1,49],$Vz=[1,50],$VA=[1,51],$VB=[1,52],$VC=[1,53],$VD=[1,54],$VE=[1,55],$VF=[1,56],$VG=[1,57],$VH=[1,58],$VI=[1,59],$VJ=[1,60],$VK=[1,61],$VL=[1,62],$VM=[1,63],$VN=[1,64],$VO=[1,65],$VP=[1,66],$VQ=[5,10,12,13,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,42,46,70],$VR=[42,70]; +var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,10],$V1=[1,11],$V2=[1,12],$V3=[1,13],$V4=[1,17],$V5=[1,20],$V6=[1,7],$V7=[1,6],$V8=[1,21],$V9=[1,22],$Va=[1,23],$Vb=[1,24],$Vc=[1,25],$Vd=[1,26],$Ve=[1,27],$Vf=[1,28],$Vg=[1,29],$Vh=[1,30],$Vi=[1,31],$Vj=[1,32],$Vk=[1,33],$Vl=[1,34],$Vm=[1,35],$Vn=[1,36],$Vo=[1,37],$Vp=[1,38],$Vq=[1,39],$Vr=[1,40],$Vs=[1,41],$Vt=[1,42],$Vu=[5,42,46,71],$Vv=[5,10,12,13,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,42,46,71],$Vw=[2,34],$Vx=[5,8,10,12,13,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,42,46,71],$Vy=[5,10,12,42,46,71],$Vz=[1,50],$VA=[1,51],$VB=[1,52],$VC=[1,53],$VD=[1,54],$VE=[1,55],$VF=[1,56],$VG=[1,57],$VH=[1,58],$VI=[1,59],$VJ=[1,60],$VK=[1,61],$VL=[1,62],$VM=[1,63],$VN=[1,64],$VO=[1,65],$VP=[1,66],$VQ=[1,67],$VR=[5,10,12,13,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,42,46,71],$VS=[42,71]; var parser = {trace: function trace () { }, yy: {}, -symbols_: {"error":2,"tag":3,"expression":4,"EOF":5,"e5":6,"leftExpression":7,"=":8,"e4":9,"+":10,"e3":11,"-":12,"*":13,"e2":14,"/":15,"%":16,"&":17,"|":18,"^":19,"SHL":20,"SHR":21,"L_OR":22,"L_AND":23,"EXP":24,"EQ":25,"NE":26,"LT":27,"LE":28,"GT":29,"GE":30,"?":31,":":32,"~":33,"!":34,"e1":35,"functionCall":36,"e0":37,"NUMBER":38,"reg":39,"counter":40,"(":41,")":42,"IDENTIFIER":43,".":44,"[":45,"]":46,"VAR":47,"A":48,"B":49,"C":50,"D":51,"E":52,"SR":53,"CTX":54,"SP":55,"PC":56,"GAS":57,"zkPC":58,"RR":59,"STEP":60,"HASHPOS":61,"RCX":62,"CNT_ARITH":63,"CNT_BINARY":64,"CNT_KECCAK_F":65,"CNT_MEM_ALIGN":66,"CNT_PADDING_PG":67,"CNT_POSEIDON_G":68,"expressionList":69,",":70,"$accept":0,"$end":1}, -terminals_: {2:"error",5:"EOF",8:"=",10:"+",12:"-",13:"*",15:"/",16:"%",17:"&",18:"|",19:"^",20:"SHL",21:"SHR",22:"L_OR",23:"L_AND",24:"EXP",25:"EQ",26:"NE",27:"LT",28:"LE",29:"GT",30:"GE",31:"?",32:":",33:"~",34:"!",38:"NUMBER",41:"(",42:")",43:"IDENTIFIER",44:".",45:"[",46:"]",47:"VAR",48:"A",49:"B",50:"C",51:"D",52:"E",53:"SR",54:"CTX",55:"SP",56:"PC",57:"GAS",58:"zkPC",59:"RR",60:"STEP",61:"HASHPOS",62:"RCX",63:"CNT_ARITH",64:"CNT_BINARY",65:"CNT_KECCAK_F",66:"CNT_MEM_ALIGN",67:"CNT_PADDING_PG",68:"CNT_POSEIDON_G",70:","}, -productions_: [0,[3,2],[4,1],[6,3],[6,1],[9,3],[9,3],[9,1],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,5],[11,1],[14,2],[14,2],[14,2],[14,2],[14,1],[35,1],[35,1],[37,1],[37,1],[37,1],[37,1],[37,3],[37,3],[37,6],[7,2],[7,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[36,4],[36,3],[69,3],[69,1]], +symbols_: {"error":2,"tag":3,"expression":4,"EOF":5,"e5":6,"leftExpression":7,"=":8,"e4":9,"+":10,"e3":11,"-":12,"*":13,"e2":14,"/":15,"%":16,"&":17,"|":18,"^":19,"SHL":20,"SHR":21,"L_OR":22,"L_AND":23,"EXP":24,"EQ":25,"NE":26,"LT":27,"LE":28,"GT":29,"GE":30,"?":31,":":32,"~":33,"!":34,"e1":35,"functionCall":36,"e0":37,"NUMBER":38,"reg":39,"counter":40,"(":41,")":42,"IDENTIFIER":43,".":44,"[":45,"]":46,"VAR":47,"A":48,"B":49,"C":50,"D":51,"E":52,"SR":53,"CTX":54,"SP":55,"PC":56,"GAS":57,"zkPC":58,"RR":59,"STEP":60,"HASHPOS":61,"RCX":62,"CNT_ARITH":63,"CNT_BINARY":64,"CNT_KECCAK_F":65,"CNT_SHA256_F":66,"CNT_MEM_ALIGN":67,"CNT_PADDING_PG":68,"CNT_POSEIDON_G":69,"expressionList":70,",":71,"$accept":0,"$end":1}, +terminals_: {2:"error",5:"EOF",8:"=",10:"+",12:"-",13:"*",15:"/",16:"%",17:"&",18:"|",19:"^",20:"SHL",21:"SHR",22:"L_OR",23:"L_AND",24:"EXP",25:"EQ",26:"NE",27:"LT",28:"LE",29:"GT",30:"GE",31:"?",32:":",33:"~",34:"!",38:"NUMBER",41:"(",42:")",43:"IDENTIFIER",44:".",45:"[",46:"]",47:"VAR",48:"A",49:"B",50:"C",51:"D",52:"E",53:"SR",54:"CTX",55:"SP",56:"PC",57:"GAS",58:"zkPC",59:"RR",60:"STEP",61:"HASHPOS",62:"RCX",63:"CNT_ARITH",64:"CNT_BINARY",65:"CNT_KECCAK_F",66:"CNT_SHA256_F",67:"CNT_MEM_ALIGN",68:"CNT_PADDING_PG",69:"CNT_POSEIDON_G",71:","}, +productions_: [0,[3,2],[4,1],[6,3],[6,1],[9,3],[9,3],[9,1],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,3],[11,5],[11,1],[14,2],[14,2],[14,2],[14,2],[14,1],[35,1],[35,1],[37,1],[37,1],[37,1],[37,1],[37,3],[37,3],[37,6],[7,2],[7,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[36,4],[36,3],[70,3],[70,1]], performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { /* this == yyval */ @@ -255,30 +255,30 @@ case 42: this.$ = {op: "getVar", varName: $$[$0]} break; -case 64: +case 65: this.$ = {op: "functionCall", funcName: $$[$0-3], params: $$[$0-1]} break; -case 65: +case 66: this.$ = {op: "functionCall", funcName: $$[$0-2], params: []} break; -case 66: +case 67: $$[$0-2].push($$[$0]); break; -case 67: +case 68: this.$ = [$$[$0]]; break; } }, -table: [{3:1,4:2,6:3,7:4,9:5,10:$V0,11:8,12:$V1,14:9,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{1:[3]},{5:[1,42]},o($Vt,[2,2]),o($Vu,$Vv,{8:[1,43]}),o($Vt,[2,4],{10:[1,44],12:[1,45]}),{43:[1,46]},o($Vw,[2,42],{41:[1,47],44:[1,48]}),o($Vx,[2,7],{13:$Vy,15:$Vz,16:$VA,17:$VB,18:$VC,19:$VD,20:$VE,21:$VF,22:$VG,23:$VH,24:$VI,25:$VJ,26:$VK,27:$VL,28:$VM,29:$VN,30:$VO,31:$VP}),o($Vu,[2,26]),{7:68,10:$V0,12:$V1,14:67,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:69,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:70,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:71,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},o($VQ,[2,31]),o($VQ,[2,32]),o($VQ,[2,33]),o($VQ,[2,35]),o($VQ,[2,36]),o($VQ,[2,37]),{4:72,6:3,7:4,9:5,10:$V0,11:8,12:$V1,14:9,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},o($VQ,[2,43]),o($VQ,[2,44]),o($VQ,[2,45]),o($VQ,[2,46]),o($VQ,[2,47]),o($VQ,[2,48]),o($VQ,[2,49]),o($VQ,[2,50]),o($VQ,[2,51]),o($VQ,[2,52]),o($VQ,[2,53]),o($VQ,[2,54]),o($VQ,[2,55]),o($VQ,[2,56]),o($VQ,[2,57]),o($VQ,[2,58]),o($VQ,[2,59]),o($VQ,[2,60]),o($VQ,[2,61]),o($VQ,[2,62]),o($VQ,[2,63]),{1:[2,1]},{6:73,7:4,9:5,10:$V0,11:8,12:$V1,14:9,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,11:74,12:$V1,14:9,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,11:75,12:$V1,14:9,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},o($Vw,[2,41]),{4:78,6:3,7:4,9:5,10:$V0,11:8,12:$V1,14:9,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,42:[1,77],43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs,69:76},{43:[1,79]},{7:68,10:$V0,12:$V1,14:80,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:81,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:82,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:83,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:84,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:85,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:86,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:87,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:88,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:89,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:90,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:91,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:92,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:93,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:94,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:95,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:96,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:97,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},o($VQ,[2,27]),o($VQ,$Vv),o($VQ,[2,28]),o($VQ,[2,29]),o($VQ,[2,30]),{42:[1,98]},o($Vt,[2,3]),o($Vx,[2,5],{13:$Vy,15:$Vz,16:$VA,17:$VB,18:$VC,19:$VD,20:$VE,21:$VF,22:$VG,23:$VH,24:$VI,25:$VJ,26:$VK,27:$VL,28:$VM,29:$VN,30:$VO,31:$VP}),o($Vx,[2,6],{13:$Vy,15:$Vz,16:$VA,17:$VB,18:$VC,19:$VD,20:$VE,21:$VF,22:$VG,23:$VH,24:$VI,25:$VJ,26:$VK,27:$VL,28:$VM,29:$VN,30:$VO,31:$VP}),{42:[1,99],70:[1,100]},o($VQ,[2,65]),o($VR,[2,67]),o($VQ,[2,39],{45:[1,101]}),o($Vu,[2,8]),o($Vu,[2,9]),o($Vu,[2,10]),o($Vu,[2,11]),o($Vu,[2,12]),o($Vu,[2,13]),o($Vu,[2,14]),o($Vu,[2,15]),o($Vu,[2,16]),o($Vu,[2,17]),o($Vu,[2,18]),o($Vu,[2,19]),o($Vu,[2,20]),o($Vu,[2,21]),o($Vu,[2,22]),o($Vu,[2,23]),o($Vu,[2,24]),{32:[1,102]},o($VQ,[2,38]),o($VQ,[2,64]),{4:103,6:3,7:4,9:5,10:$V0,11:8,12:$V1,14:9,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{4:104,6:3,7:4,9:5,10:$V0,11:8,12:$V1,14:9,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},{7:68,10:$V0,12:$V1,14:105,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs},o($VR,[2,66]),{46:[1,106]},o($Vu,[2,25]),o($VQ,[2,40])], -defaultActions: {42:[2,1]}, +table: [{3:1,4:2,6:3,7:4,9:5,10:$V0,11:8,12:$V1,14:9,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs,69:$Vt},{1:[3]},{5:[1,43]},o($Vu,[2,2]),o($Vv,$Vw,{8:[1,44]}),o($Vu,[2,4],{10:[1,45],12:[1,46]}),{43:[1,47]},o($Vx,[2,42],{41:[1,48],44:[1,49]}),o($Vy,[2,7],{13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,19:$VE,20:$VF,21:$VG,22:$VH,23:$VI,24:$VJ,25:$VK,26:$VL,27:$VM,28:$VN,29:$VO,30:$VP,31:$VQ}),o($Vv,[2,26]),{7:69,10:$V0,12:$V1,14:68,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs,69:$Vt},{7:69,10:$V0,12:$V1,14:70,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs,69:$Vt},{7:69,10:$V0,12:$V1,14:71,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs,69:$Vt},{7:69,10:$V0,12:$V1,14:72,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs,69:$Vt},o($VR,[2,31]),o($VR,[2,32]),o($VR,[2,33]),o($VR,[2,35]),o($VR,[2,36]),o($VR,[2,37]),{4:73,6:3,7:4,9:5,10:$V0,11:8,12:$V1,14:9,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs,69:$Vt},o($VR,[2,43]),o($VR,[2,44]),o($VR,[2,45]),o($VR,[2,46]),o($VR,[2,47]),o($VR,[2,48]),o($VR,[2,49]),o($VR,[2,50]),o($VR,[2,51]),o($VR,[2,52]),o($VR,[2,53]),o($VR,[2,54]),o($VR,[2,55]),o($VR,[2,56]),o($VR,[2,57]),o($VR,[2,58]),o($VR,[2,59]),o($VR,[2,60]),o($VR,[2,61]),o($VR,[2,62]),o($VR,[2,63]),o($VR,[2,64]),{1:[2,1]},{6:74,7:4,9:5,10:$V0,11:8,12:$V1,14:9,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs,69:$Vt},{7:69,10:$V0,11:75,12:$V1,14:9,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs,69:$Vt},{7:69,10:$V0,11:76,12:$V1,14:9,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs,69:$Vt},o($Vx,[2,41]),{4:79,6:3,7:4,9:5,10:$V0,11:8,12:$V1,14:9,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,42:[1,78],43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs,69:$Vt,70:77},{43:[1,80]},{7:69,10:$V0,12:$V1,14:81,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs,69:$Vt},{7:69,10:$V0,12:$V1,14:82,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs,69:$Vt},{7:69,10:$V0,12:$V1,14:83,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs,69:$Vt},{7:69,10:$V0,12:$V1,14:84,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs,69:$Vt},{7:69,10:$V0,12:$V1,14:85,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs,69:$Vt},{7:69,10:$V0,12:$V1,14:86,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs,69:$Vt},{7:69,10:$V0,12:$V1,14:87,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs,69:$Vt},{7:69,10:$V0,12:$V1,14:88,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs,69:$Vt},{7:69,10:$V0,12:$V1,14:89,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs,69:$Vt},{7:69,10:$V0,12:$V1,14:90,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs,69:$Vt},{7:69,10:$V0,12:$V1,14:91,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs,69:$Vt},{7:69,10:$V0,12:$V1,14:92,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs,69:$Vt},{7:69,10:$V0,12:$V1,14:93,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs,69:$Vt},{7:69,10:$V0,12:$V1,14:94,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs,69:$Vt},{7:69,10:$V0,12:$V1,14:95,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs,69:$Vt},{7:69,10:$V0,12:$V1,14:96,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs,69:$Vt},{7:69,10:$V0,12:$V1,14:97,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs,69:$Vt},{7:69,10:$V0,12:$V1,14:98,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs,69:$Vt},o($VR,[2,27]),o($VR,$Vw),o($VR,[2,28]),o($VR,[2,29]),o($VR,[2,30]),{42:[1,99]},o($Vu,[2,3]),o($Vy,[2,5],{13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,19:$VE,20:$VF,21:$VG,22:$VH,23:$VI,24:$VJ,25:$VK,26:$VL,27:$VM,28:$VN,29:$VO,30:$VP,31:$VQ}),o($Vy,[2,6],{13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,19:$VE,20:$VF,21:$VG,22:$VH,23:$VI,24:$VJ,25:$VK,26:$VL,27:$VM,28:$VN,29:$VO,30:$VP,31:$VQ}),{42:[1,100],71:[1,101]},o($VR,[2,66]),o($VS,[2,68]),o($VR,[2,39],{45:[1,102]}),o($Vv,[2,8]),o($Vv,[2,9]),o($Vv,[2,10]),o($Vv,[2,11]),o($Vv,[2,12]),o($Vv,[2,13]),o($Vv,[2,14]),o($Vv,[2,15]),o($Vv,[2,16]),o($Vv,[2,17]),o($Vv,[2,18]),o($Vv,[2,19]),o($Vv,[2,20]),o($Vv,[2,21]),o($Vv,[2,22]),o($Vv,[2,23]),o($Vv,[2,24]),{32:[1,103]},o($VR,[2,38]),o($VR,[2,65]),{4:104,6:3,7:4,9:5,10:$V0,11:8,12:$V1,14:9,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs,69:$Vt},{4:105,6:3,7:4,9:5,10:$V0,11:8,12:$V1,14:9,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs,69:$Vt},{7:69,10:$V0,12:$V1,14:106,33:$V2,34:$V3,35:14,36:15,37:16,38:$V4,39:18,40:19,41:$V5,43:$V6,47:$V7,48:$V8,49:$V9,50:$Va,51:$Vb,52:$Vc,53:$Vd,54:$Ve,55:$Vf,56:$Vg,57:$Vh,58:$Vi,59:$Vj,60:$Vk,61:$Vl,62:$Vm,63:$Vn,64:$Vo,65:$Vp,66:$Vq,67:$Vr,68:$Vs,69:$Vt},o($VS,[2,67]),{46:[1,107]},o($Vv,[2,25]),o($VR,[2,40])], +defaultActions: {43:[2,1]}, parseError: function parseError (str, hash) { if (hash.recoverable) { this.trace(str); @@ -796,84 +796,86 @@ case 19: return 67 break; case 20: return 68 break; -case 21: return 61; +case 21: return 69 +break; +case 22: return 61; break; -case 22: return 62; +case 23: return 62; break; -case 23: return 47; +case 24: return 47; break; -case 24: return 43; +case 25: return 43; break; -case 25: return 41 +case 26: return 41 break; -case 26: return 42 +case 27: return 42 break; -case 27: return 10 +case 28: return 10 break; -case 28: return 70 +case 29: return 71 break; -case 29: return 12 +case 30: return 12 break; -case 30: return 24 +case 31: return 24 break; -case 31: return 13 +case 32: return 13 break; -case 32: return 15 +case 33: return 15 break; -case 33: return 16 +case 34: return 16 break; -case 34: return 20 +case 35: return 20 break; -case 35: return 21 +case 36: return 21 break; -case 36: return 28 +case 37: return 28 break; -case 37: return 30 +case 38: return 30 break; -case 38: return 23 +case 39: return 23 break; -case 39: return 22 +case 40: return 22 break; -case 40: return 25 +case 41: return 25 break; -case 41: return 26 +case 42: return 26 break; -case 42: return 8 +case 43: return 8 break; -case 43: return 17 +case 44: return 17 break; -case 44: return 33 +case 45: return 33 break; -case 45: return 18 +case 46: return 18 break; -case 46: return 19 +case 47: return 19 break; -case 47: return 27 +case 48: return 27 break; -case 48: return 29 +case 49: return 29 break; -case 49: return 34 +case 50: return 34 break; -case 50: return 31 +case 51: return 31 break; -case 51: return 32 +case 52: return 32 break; -case 52: return RANGE_DOTS +case 53: return RANGE_DOTS break; -case 53: return 44 +case 54: return 44 break; -case 54: return 45 +case 55: return 45 break; -case 55: return 46 +case 56: return 46 break; -case 56: return 5; +case 57: return 5; break; -case 57: /* console.log("INVALID: " + yy_.yytext); */ return 'INVALID'; +case 58: /* console.log("INVALID: " + yy_.yytext); */ return 'INVALID'; break; } }, -rules: [/^(?:(0x[0-9A-Fa-f][0-9A-Fa-f_]*)|([0-9][0-9_]*))/,/^(?:[ \t\r\n]+)/,/^(?:A\b)/,/^(?:B\b)/,/^(?:C\b)/,/^(?:D\b)/,/^(?:E\b)/,/^(?:SR\b)/,/^(?:CTX\b)/,/^(?:SP\b)/,/^(?:PC\b)/,/^(?:GAS\b)/,/^(?:zkPC\b)/,/^(?:RR\b)/,/^(?:STEP\b)/,/^(?:CNT_ARITH\b)/,/^(?:CNT_BINARY\b)/,/^(?:CNT_KECCAK_F\b)/,/^(?:CNT_MEM_ALIGN\b)/,/^(?:CNT_PADDING_PG\b)/,/^(?:CNT_POSEIDON_G\b)/,/^(?:HASHPOS\b)/,/^(?:RCX\b)/,/^(?:var\b)/,/^(?:[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?:\()/,/^(?:\))/,/^(?:\+)/,/^(?:,)/,/^(?:-)/,/^(?:\*\*)/,/^(?:\*)/,/^(?:\/)/,/^(?:%)/,/^(?:<<)/,/^(?:>>)/,/^(?:<=)/,/^(?:>=)/,/^(?:&&)/,/^(?:\|\|)/,/^(?:==)/,/^(?:!=)/,/^(?:=)/,/^(?:&)/,/^(?:~)/,/^(?:\|)/,/^(?:\^)/,/^(?:<)/,/^(?:>)/,/^(?:!)/,/^(?:\?)/,/^(?::)/,/^(?:\.\.)/,/^(?:\.)/,/^(?:\[)/,/^(?:\])/,/^(?:$)/,/^(?:.)/], -conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57],"inclusive":true}} +rules: [/^(?:(0x[0-9A-Fa-f][0-9A-Fa-f_]*)|([0-9][0-9_]*))/,/^(?:[ \t\r\n]+)/,/^(?:A\b)/,/^(?:B\b)/,/^(?:C\b)/,/^(?:D\b)/,/^(?:E\b)/,/^(?:SR\b)/,/^(?:CTX\b)/,/^(?:SP\b)/,/^(?:PC\b)/,/^(?:GAS\b)/,/^(?:zkPC\b)/,/^(?:RR\b)/,/^(?:STEP\b)/,/^(?:CNT_ARITH\b)/,/^(?:CNT_BINARY\b)/,/^(?:CNT_KECCAK_F\b)/,/^(?:CNT_SHA256_F\b)/,/^(?:CNT_MEM_ALIGN\b)/,/^(?:CNT_PADDING_PG\b)/,/^(?:CNT_POSEIDON_G\b)/,/^(?:HASHPOS\b)/,/^(?:RCX\b)/,/^(?:var\b)/,/^(?:[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?:\()/,/^(?:\))/,/^(?:\+)/,/^(?:,)/,/^(?:-)/,/^(?:\*\*)/,/^(?:\*)/,/^(?:\/)/,/^(?:%)/,/^(?:<<)/,/^(?:>>)/,/^(?:<=)/,/^(?:>=)/,/^(?:&&)/,/^(?:\|\|)/,/^(?:==)/,/^(?:!=)/,/^(?:=)/,/^(?:&)/,/^(?:~)/,/^(?:\|)/,/^(?:\^)/,/^(?:<)/,/^(?:>)/,/^(?:!)/,/^(?:\?)/,/^(?::)/,/^(?:\.\.)/,/^(?:\.)/,/^(?:\[)/,/^(?:\])/,/^(?:$)/,/^(?:.)/], +conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58],"inclusive":true}} }); return lexer; })(); diff --git a/build/zkasm_parser.js b/build/zkasm_parser.js index 72c32e8..775abd8 100644 --- a/build/zkasm_parser.js +++ b/build/zkasm_parser.js @@ -72,12 +72,12 @@ } */ var zkasm_parser = (function(){ -var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,10],$V1=[1,12],$V2=[1,13],$V3=[1,14],$V4=[1,26],$V5=[1,15],$V6=[1,28],$V7=[1,16],$V8=[1,18],$V9=[1,36],$Va=[1,17],$Vb=[1,27],$Vc=[1,20],$Vd=[1,23],$Ve=[1,29],$Vf=[1,40],$Vg=[1,34],$Vh=[1,45],$Vi=[1,46],$Vj=[1,47],$Vk=[1,48],$Vl=[1,49],$Vm=[1,50],$Vn=[1,51],$Vo=[1,30],$Vp=[1,31],$Vq=[1,32],$Vr=[1,33],$Vs=[1,35],$Vt=[1,37],$Vu=[1,38],$Vv=[1,39],$Vw=[1,41],$Vx=[1,42],$Vy=[1,43],$Vz=[1,44],$VA=[5,13,15,17,18,21,23,24,27,28,30,31,33,36,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136],$VB=[1,58],$VC=[1,59],$VD=[1,60],$VE=[1,61],$VF=[1,62],$VG=[1,63],$VH=[1,64],$VI=[1,65],$VJ=[1,66],$VK=[1,67],$VL=[1,68],$VM=[1,69],$VN=[1,70],$VO=[1,71],$VP=[1,72],$VQ=[1,75],$VR=[1,76],$VS=[1,77],$VT=[1,78],$VU=[1,79],$VV=[1,80],$VW=[1,81],$VX=[1,82],$VY=[1,83],$VZ=[1,84],$V_=[1,85],$V$=[1,86],$V01=[1,87],$V11=[1,88],$V21=[1,89],$V31=[1,90],$V41=[1,91],$V51=[1,92],$V61=[1,93],$V71=[1,94],$V81=[1,95],$V91=[1,96],$Va1=[1,97],$Vb1=[1,98],$Vc1=[1,99],$Vd1=[1,100],$Ve1=[1,101],$Vf1=[1,102],$Vg1=[13,15],$Vh1=[13,15,35,36,59],$Vi1=[1,114],$Vj1=[13,15,35,36,37,59],$Vk1=[13,15,35,36,37,59,67],$Vl1=[1,119],$Vm1=[13,67],$Vn1=[1,156],$Vo1=[1,152],$Vp1=[1,153],$Vq1=[1,154],$Vr1=[1,155],$Vs1=[1,159],$Vt1=[1,160],$Vu1=[1,186],$Vv1=[1,188],$Vw1=[1,187],$Vx1=[1,189],$Vy1=[1,190],$Vz1=[1,191],$VA1=[13,15,67],$VB1=[5,13,15,17,18,21,23,24,27,28,30,31,33,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136],$VC1=[1,234],$VD1=[1,235],$VE1=[1,236],$VF1=[1,237],$VG1=[1,238],$VH1=[1,239],$VI1=[1,240],$VJ1=[1,241],$VK1=[1,242],$VL1=[1,243],$VM1=[1,244],$VN1=[1,245],$VO1=[1,246],$VP1=[1,247],$VQ1=[1,248],$VR1=[1,249],$VS1=[1,250],$VT1=[1,251],$VU1=[1,252],$VV1=[1,253],$VW1=[5,13,15,17,18,21,23,24,27,28,30,31,33,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136],$VX1=[5,13,15,17,18,21,23,24,27,28,30,31,33,35,36,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136],$VY1=[5,13,15,17,18,21,23,24,27,28,30,31,33,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136],$VZ1=[5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136],$V_1=[5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,50,51,52,53,55,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136]; +var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,10],$V1=[1,12],$V2=[1,13],$V3=[1,14],$V4=[1,26],$V5=[1,15],$V6=[1,28],$V7=[1,16],$V8=[1,18],$V9=[1,36],$Va=[1,17],$Vb=[1,27],$Vc=[1,20],$Vd=[1,23],$Ve=[1,29],$Vf=[1,40],$Vg=[1,34],$Vh=[1,45],$Vi=[1,46],$Vj=[1,47],$Vk=[1,48],$Vl=[1,49],$Vm=[1,50],$Vn=[1,51],$Vo=[1,52],$Vp=[1,30],$Vq=[1,31],$Vr=[1,32],$Vs=[1,33],$Vt=[1,35],$Vu=[1,37],$Vv=[1,38],$Vw=[1,39],$Vx=[1,41],$Vy=[1,42],$Vz=[1,43],$VA=[1,44],$VB=[5,13,15,17,18,21,23,24,27,28,30,31,33,36,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137],$VC=[1,59],$VD=[1,60],$VE=[1,61],$VF=[1,62],$VG=[1,63],$VH=[1,64],$VI=[1,65],$VJ=[1,66],$VK=[1,67],$VL=[1,68],$VM=[1,69],$VN=[1,70],$VO=[1,71],$VP=[1,72],$VQ=[1,73],$VR=[1,76],$VS=[1,77],$VT=[1,78],$VU=[1,79],$VV=[1,80],$VW=[1,81],$VX=[1,82],$VY=[1,83],$VZ=[1,84],$V_=[1,85],$V$=[1,86],$V01=[1,87],$V11=[1,88],$V21=[1,89],$V31=[1,90],$V41=[1,91],$V51=[1,92],$V61=[1,93],$V71=[1,94],$V81=[1,95],$V91=[1,96],$Va1=[1,97],$Vb1=[1,98],$Vc1=[1,99],$Vd1=[1,100],$Ve1=[1,101],$Vf1=[1,102],$Vg1=[1,103],$Vh1=[13,15],$Vi1=[13,15,35,36,59],$Vj1=[1,115],$Vk1=[13,15,35,36,37,59],$Vl1=[13,15,35,36,37,59,67],$Vm1=[1,120],$Vn1=[13,67],$Vo1=[1,157],$Vp1=[1,153],$Vq1=[1,154],$Vr1=[1,155],$Vs1=[1,156],$Vt1=[1,160],$Vu1=[1,161],$Vv1=[1,187],$Vw1=[1,189],$Vx1=[1,188],$Vy1=[1,190],$Vz1=[1,191],$VA1=[1,192],$VB1=[13,15,67],$VC1=[5,13,15,17,18,21,23,24,27,28,30,31,33,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137],$VD1=[1,235],$VE1=[1,236],$VF1=[1,237],$VG1=[1,238],$VH1=[1,239],$VI1=[1,240],$VJ1=[1,241],$VK1=[1,242],$VL1=[1,243],$VM1=[1,244],$VN1=[1,245],$VO1=[1,246],$VP1=[1,247],$VQ1=[1,248],$VR1=[1,249],$VS1=[1,250],$VT1=[1,251],$VU1=[1,252],$VV1=[1,253],$VW1=[1,254],$VX1=[5,13,15,17,18,21,23,24,27,28,30,31,33,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137],$VY1=[5,13,15,17,18,21,23,24,27,28,30,31,33,35,36,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137],$VZ1=[5,13,15,17,18,21,23,24,27,28,30,31,33,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137],$V_1=[5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137],$V$1=[5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,50,51,52,53,55,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137]; var parser = {trace: function trace () { }, yy: {}, -symbols_: {"error":2,"allStatments":3,"statmentList":4,"EOF":5,"statment":6,"step":7,"label":8,"varDef":9,"constDef":10,"include":11,"command":12,"LF":13,"assignment":14,":":15,"opList":16,"IDENTIFIER":17,"VAR":18,"scope":19,"[":20,"NUMBER":21,"]":22,"CONST":23,"CONSTID":24,"=":25,"nexpr":26,"CONSTL":27,"COMMAND":28,"GLOBAL":29,"CTX":30,"INCLUDE":31,"STRING":32,"NUMBERL":33,"??":34,"+":35,"-":36,"*":37,"**":38,"%":39,"/":40,"<<":41,">>":42,"|":43,"&":44,"^":45,"<":46,">":47,"<=":48,">=":49,"==":50,"!=":51,"&&":52,"||":53,"!":54,"?":55,"(":56,")":57,"inRegsSum":58,"=>":59,"regsList":60,"inRegP":61,"inReg":62,"TAG":63,"reg":64,"counter":65,"REFERENCE":66,",":67,"op":68,"MLOAD":69,"addr":70,"MSTORE":71,"HASHK":72,"hashId":73,"HASHK1":74,"HASHKLEN":75,"HASHKDIGEST":76,"HASHS":77,"HASHS1":78,"HASHSLEN":79,"HASHSDIGEST":80,"HASHP":81,"HASHP1":82,"HASHPLEN":83,"HASHPDIGEST":84,"JMP":85,"jmpCond":86,"jmpNotCond":87,"RR":88,"E":89,"CALL":90,"RETURN":91,"ASSERT":92,"SLOAD":93,"SSTORE":94,"ARITH":95,"ARITH_ECADD_DIFFERENT":96,"ARITH_ECADD_SAME":97,"ARITH_BN254_MULFP2":98,"ARITH_BN254_ADDFP2":99,"ARITH_BN254_SUBFP2":100,"ADD":101,"SUB":102,"LT":103,"SLT":104,"EQ":105,"AND":106,"OR":107,"XOR":108,"MEM_ALIGN_RD":109,"MEM_ALIGN_WR":110,"MEM_ALIGN_WR8":111,"REPEAT":112,"RCX":113,"JMPN":114,"JMPC":115,"JMPZ":116,"JMPNC":117,"JMPNZ":118,"CNT_ARITH":119,"CNT_BINARY":120,"CNT_KECCAK_F":121,"CNT_MEM_ALIGN":122,"CNT_PADDING_PG":123,"CNT_POSEIDON_G":124,"A":125,"B":126,"C":127,"D":128,"SR":129,"SP":130,"PC":131,"GAS":132,"zkPC":133,"STEP":134,"HASHPOS":135,"ROTL_C":136,"++":137,"--":138,"SYS":139,"MEM":140,"STACK":141,"$accept":0,"$end":1}, -terminals_: {2:"error",5:"EOF",13:"LF",15:":",17:"IDENTIFIER",18:"VAR",20:"[",21:"NUMBER",22:"]",23:"CONST",24:"CONSTID",25:"=",27:"CONSTL",28:"COMMAND",29:"GLOBAL",30:"CTX",31:"INCLUDE",32:"STRING",33:"NUMBERL",34:"??",35:"+",36:"-",37:"*",38:"**",39:"%",40:"/",41:"<<",42:">>",43:"|",44:"&",45:"^",46:"<",47:">",48:"<=",49:">=",50:"==",51:"!=",52:"&&",53:"||",54:"!",55:"?",56:"(",57:")",59:"=>",63:"TAG",66:"REFERENCE",67:",",69:"MLOAD",71:"MSTORE",72:"HASHK",74:"HASHK1",75:"HASHKLEN",76:"HASHKDIGEST",77:"HASHS",78:"HASHS1",79:"HASHSLEN",80:"HASHSDIGEST",81:"HASHP",82:"HASHP1",83:"HASHPLEN",84:"HASHPDIGEST",85:"JMP",88:"RR",89:"E",90:"CALL",91:"RETURN",92:"ASSERT",93:"SLOAD",94:"SSTORE",95:"ARITH",96:"ARITH_ECADD_DIFFERENT",97:"ARITH_ECADD_SAME",98:"ARITH_BN254_MULFP2",99:"ARITH_BN254_ADDFP2",100:"ARITH_BN254_SUBFP2",101:"ADD",102:"SUB",103:"LT",104:"SLT",105:"EQ",106:"AND",107:"OR",108:"XOR",109:"MEM_ALIGN_RD",110:"MEM_ALIGN_WR",111:"MEM_ALIGN_WR8",112:"REPEAT",113:"RCX",114:"JMPN",115:"JMPC",116:"JMPZ",117:"JMPNC",118:"JMPNZ",119:"CNT_ARITH",120:"CNT_BINARY",121:"CNT_KECCAK_F",122:"CNT_MEM_ALIGN",123:"CNT_PADDING_PG",124:"CNT_POSEIDON_G",125:"A",126:"B",127:"C",128:"D",129:"SR",130:"SP",131:"PC",132:"GAS",133:"zkPC",134:"STEP",135:"HASHPOS",136:"ROTL_C",137:"++",138:"--",139:"SYS",140:"MEM",141:"STACK"}, -productions_: [0,[3,2],[4,2],[4,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[7,4],[7,2],[7,3],[8,2],[9,3],[9,6],[10,4],[10,4],[12,1],[19,1],[19,1],[11,2],[26,1],[26,1],[26,1],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,2],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,2],[26,5],[26,3],[14,3],[14,1],[58,3],[58,3],[58,2],[58,1],[61,3],[61,1],[62,1],[62,1],[62,1],[62,3],[62,3],[62,1],[62,1],[62,1],[62,1],[60,3],[60,1],[16,3],[16,1],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,6],[68,4],[68,6],[68,4],[68,4],[68,6],[68,6],[68,4],[68,4],[68,6],[68,6],[68,6],[68,6],[68,8],[68,8],[68,4],[68,6],[68,6],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,4],[86,1],[86,1],[86,1],[87,1],[87,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[70,1],[70,3],[70,3],[70,2],[70,2],[70,5],[70,5],[70,3],[70,5],[70,5],[70,3],[70,5],[70,5],[70,3],[70,1],[70,3],[70,3],[70,4],[70,6],[70,6],[70,3],[70,4],[73,1],[73,1]], +symbols_: {"error":2,"allStatments":3,"statmentList":4,"EOF":5,"statment":6,"step":7,"label":8,"varDef":9,"constDef":10,"include":11,"command":12,"LF":13,"assignment":14,":":15,"opList":16,"IDENTIFIER":17,"VAR":18,"scope":19,"[":20,"NUMBER":21,"]":22,"CONST":23,"CONSTID":24,"=":25,"nexpr":26,"CONSTL":27,"COMMAND":28,"GLOBAL":29,"CTX":30,"INCLUDE":31,"STRING":32,"NUMBERL":33,"??":34,"+":35,"-":36,"*":37,"**":38,"%":39,"/":40,"<<":41,">>":42,"|":43,"&":44,"^":45,"<":46,">":47,"<=":48,">=":49,"==":50,"!=":51,"&&":52,"||":53,"!":54,"?":55,"(":56,")":57,"inRegsSum":58,"=>":59,"regsList":60,"inRegP":61,"inReg":62,"TAG":63,"reg":64,"counter":65,"REFERENCE":66,",":67,"op":68,"MLOAD":69,"addr":70,"MSTORE":71,"HASHK":72,"hashId":73,"HASHK1":74,"HASHKLEN":75,"HASHKDIGEST":76,"HASHS":77,"HASHS1":78,"HASHSLEN":79,"HASHSDIGEST":80,"HASHP":81,"HASHP1":82,"HASHPLEN":83,"HASHPDIGEST":84,"JMP":85,"jmpCond":86,"jmpNotCond":87,"RR":88,"E":89,"CALL":90,"RETURN":91,"ASSERT":92,"SLOAD":93,"SSTORE":94,"ARITH":95,"ARITH_ECADD_DIFFERENT":96,"ARITH_ECADD_SAME":97,"ARITH_BN254_MULFP2":98,"ARITH_BN254_ADDFP2":99,"ARITH_BN254_SUBFP2":100,"ADD":101,"SUB":102,"LT":103,"SLT":104,"EQ":105,"AND":106,"OR":107,"XOR":108,"MEM_ALIGN_RD":109,"MEM_ALIGN_WR":110,"MEM_ALIGN_WR8":111,"REPEAT":112,"RCX":113,"JMPN":114,"JMPC":115,"JMPZ":116,"JMPNC":117,"JMPNZ":118,"CNT_ARITH":119,"CNT_BINARY":120,"CNT_KECCAK_F":121,"CNT_SHA256_F":122,"CNT_MEM_ALIGN":123,"CNT_PADDING_PG":124,"CNT_POSEIDON_G":125,"A":126,"B":127,"C":128,"D":129,"SR":130,"SP":131,"PC":132,"GAS":133,"zkPC":134,"STEP":135,"HASHPOS":136,"ROTL_C":137,"++":138,"--":139,"SYS":140,"MEM":141,"STACK":142,"$accept":0,"$end":1}, +terminals_: {2:"error",5:"EOF",13:"LF",15:":",17:"IDENTIFIER",18:"VAR",20:"[",21:"NUMBER",22:"]",23:"CONST",24:"CONSTID",25:"=",27:"CONSTL",28:"COMMAND",29:"GLOBAL",30:"CTX",31:"INCLUDE",32:"STRING",33:"NUMBERL",34:"??",35:"+",36:"-",37:"*",38:"**",39:"%",40:"/",41:"<<",42:">>",43:"|",44:"&",45:"^",46:"<",47:">",48:"<=",49:">=",50:"==",51:"!=",52:"&&",53:"||",54:"!",55:"?",56:"(",57:")",59:"=>",63:"TAG",66:"REFERENCE",67:",",69:"MLOAD",71:"MSTORE",72:"HASHK",74:"HASHK1",75:"HASHKLEN",76:"HASHKDIGEST",77:"HASHS",78:"HASHS1",79:"HASHSLEN",80:"HASHSDIGEST",81:"HASHP",82:"HASHP1",83:"HASHPLEN",84:"HASHPDIGEST",85:"JMP",88:"RR",89:"E",90:"CALL",91:"RETURN",92:"ASSERT",93:"SLOAD",94:"SSTORE",95:"ARITH",96:"ARITH_ECADD_DIFFERENT",97:"ARITH_ECADD_SAME",98:"ARITH_BN254_MULFP2",99:"ARITH_BN254_ADDFP2",100:"ARITH_BN254_SUBFP2",101:"ADD",102:"SUB",103:"LT",104:"SLT",105:"EQ",106:"AND",107:"OR",108:"XOR",109:"MEM_ALIGN_RD",110:"MEM_ALIGN_WR",111:"MEM_ALIGN_WR8",112:"REPEAT",113:"RCX",114:"JMPN",115:"JMPC",116:"JMPZ",117:"JMPNC",118:"JMPNZ",119:"CNT_ARITH",120:"CNT_BINARY",121:"CNT_KECCAK_F",122:"CNT_SHA256_F",123:"CNT_MEM_ALIGN",124:"CNT_PADDING_PG",125:"CNT_POSEIDON_G",126:"A",127:"B",128:"C",129:"D",130:"SR",131:"SP",132:"PC",133:"GAS",134:"zkPC",135:"STEP",136:"HASHPOS",137:"ROTL_C",138:"++",139:"--",140:"SYS",141:"MEM",142:"STACK"}, +productions_: [0,[3,2],[4,2],[4,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[7,4],[7,2],[7,3],[8,2],[9,3],[9,6],[10,4],[10,4],[12,1],[19,1],[19,1],[11,2],[26,1],[26,1],[26,1],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,2],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,2],[26,5],[26,3],[14,3],[14,1],[58,3],[58,3],[58,2],[58,1],[61,3],[61,1],[62,1],[62,1],[62,1],[62,3],[62,3],[62,1],[62,1],[62,1],[62,1],[60,3],[60,1],[16,3],[16,1],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,6],[68,4],[68,6],[68,4],[68,4],[68,6],[68,6],[68,4],[68,4],[68,6],[68,6],[68,6],[68,6],[68,8],[68,8],[68,4],[68,6],[68,6],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,4],[86,1],[86,1],[86,1],[87,1],[87,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[70,1],[70,3],[70,3],[70,2],[70,2],[70,5],[70,5],[70,3],[70,5],[70,5],[70,3],[70,5],[70,5],[70,3],[70,1],[70,3],[70,3],[70,4],[70,6],[70,6],[70,3],[70,4],[73,1],[73,1]], performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { /* this == yyval */ @@ -609,134 +609,137 @@ case 134: this.$ = 'cntKeccakF' break; case 135: - this.$ = 'cntMemAlign' + this.$ = 'cntSha256F' break; case 136: - this.$ = 'cntPaddingPG' + this.$ = 'cntMemAlign' break; case 137: + this.$ = 'cntPaddingPG' +break; +case 138: this.$ = 'cntPoseidonG' break; -case 154: +case 155: this.$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack:0, offset: 0, useCTX: 1} break; -case 155: +case 156: this.$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack: 0, offset: $$[$0], useCTX: 1} break; -case 156: +case 157: this.$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack: 0, offset: -$$[$0], useCTX: 1} break; -case 157: +case 158: this.$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack: 1, offset: 0, useCTX: 1} break; -case 158: +case 159: this.$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack: -1, offset: 0, useCTX: 1} break; -case 159: +case 160: this.$ = { isStack: 0, isMem:0, ind:1, indRR: 0, incStack: 0, offset: $$[$0]} break; -case 160: +case 161: this.$ = { isStack: 0, isMem:0, ind:1, indRR: 0, incStack: 0, offset: -$$[$0]} break; -case 161: +case 162: this.$ = { isStack: 0, isMem:0, ind:1, indRR: 0, incStack: 0, offset: 0} break; -case 162: +case 163: this.$ = { isStack: 0, isMem: 1, ind:1, indRR: 0, incStack: 0, offset: $$[$0], useCTX: 1} break; -case 163: +case 164: this.$ = { isStack: 0, isMem: 1, ind:1, indRR: 0, incStack: 0, offset: -$$[$0], useCTX: 1} break; -case 164: +case 165: this.$ = { isStack: 0, isMem: 1, ind:1, indRR: 0, incStack: 0, offset: 0, useCTX: 1} break; -case 165: +case 166: this.$ = { isStack: 1, ind:1, indRR: 0, incStack: 0, offset: $$[$0], useCTX: 1} break; -case 166: +case 167: this.$ = { isStack: 1, ind:1, indRR: 0, incStack: 0, offset: -$$[$0], useCTX: 1} break; -case 167: +case 168: this.$ = { isStack: 1, ind:1, indRR: 0, incStack: 0, offset: 0, useCTX: 1} break; -case 168: +case 169: this.$ = { offset: $$[$0] } break; -case 169: +case 170: this.$ = { offset: $$[$0-2], ind: 0, indRR: 1 } break; -case 170: +case 171: this.$ = { offset: $$[$0-2], ind: 1, indRR: 0 } break; -case 171: +case 172: this.$ = { offset: $$[$0-3], ind: 1, indRR: 0 } break; -case 172: +case 173: this.$ = { offset: $$[$0-5], extraOffset: -$$[$0-1], ind: 1, indRR: 0 } break; -case 173: +case 174: this.$ = { offset: $$[$0-5], extraOffset: $$[$0-1], ind: 1, indRR: 0 } break; -case 174: +case 175: this.$ = { offset: $$[$0-2], extraOffset: $$[$0] } break; -case 175: +case 176: this.$ = { offset: $$[$0-3], extraOffset: $$[$0-1] } break; -case 176: +case 177: this.$ = {ind: 0, indRR: 0, offset:$$[$0]} break; -case 177: +case 178: this.$ = {ind: 1, indRR: 0, offset:0} break; } }, -table: [{3:1,4:2,6:3,7:4,8:5,9:6,10:7,11:8,12:9,13:$V0,14:11,15:$V1,17:$V2,18:$V3,21:$V4,23:$V5,24:$V6,27:$V7,28:$V8,30:$V9,31:$Va,33:$Vb,36:$Vc,58:19,61:21,62:22,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,113:$Vh,119:$Vi,120:$Vj,121:$Vk,122:$Vl,123:$Vm,124:$Vn,125:$Vo,126:$Vp,127:$Vq,128:$Vr,129:$Vs,130:$Vt,131:$Vu,132:$Vv,133:$Vw,134:$Vx,135:$Vy,136:$Vz},{1:[3]},{5:[1,52],6:53,7:4,8:5,9:6,10:7,11:8,12:9,13:$V0,14:11,15:$V1,17:$V2,18:$V3,21:$V4,23:$V5,24:$V6,27:$V7,28:$V8,30:$V9,31:$Va,33:$Vb,36:$Vc,58:19,61:21,62:22,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,113:$Vh,119:$Vi,120:$Vj,121:$Vk,122:$Vl,123:$Vm,124:$Vn,125:$Vo,126:$Vp,127:$Vq,128:$Vr,129:$Vs,130:$Vt,131:$Vu,132:$Vv,133:$Vw,134:$Vx,135:$Vy,136:$Vz},o($VA,[2,3]),o($VA,[2,4]),o($VA,[2,5]),o($VA,[2,6]),o($VA,[2,7]),o($VA,[2,8]),o($VA,[2,9]),o($VA,[2,10]),{13:[1,55],15:[1,54]},{16:56,68:57,69:$VB,71:$VC,72:$VD,74:$VE,75:$VF,76:$VG,77:$VH,78:$VI,79:$VJ,80:$VK,81:$VL,82:$VM,83:$VN,84:$VO,85:$VP,86:73,87:74,90:$VQ,91:$VR,92:$VS,93:$VT,94:$VU,95:$VV,96:$VW,97:$VX,98:$VY,99:$VZ,100:$V_,101:$V$,102:$V01,103:$V11,104:$V21,105:$V31,106:$V41,107:$V51,108:$V61,109:$V71,110:$V81,111:$V91,112:$Va1,114:$Vb1,115:$Vc1,116:$Vd1,117:$Ve1,118:$Vf1},{15:[1,103]},{19:104,29:[1,105],30:[1,106]},{24:[1,107]},{24:[1,108]},{32:[1,109]},o($VA,[2,19]),o($Vg1,[2,51],{35:[1,111],36:[1,112],59:[1,110]}),{21:$V4,24:$V6,30:$V9,33:$Vb,61:113,62:22,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,113:$Vh,119:$Vi,120:$Vj,121:$Vk,122:$Vl,123:$Vm,124:$Vn,125:$Vo,126:$Vp,127:$Vq,128:$Vr,129:$Vs,130:$Vt,131:$Vu,132:$Vv,133:$Vw,134:$Vx,135:$Vy,136:$Vz},o($Vh1,[2,55],{37:$Vi1}),o($Vj1,[2,57]),o($Vj1,[2,58]),o($Vj1,[2,59]),o($Vj1,[2,60]),o($Vj1,[2,63],{38:[1,115]}),o($Vj1,[2,64],{38:[1,116]}),o($Vj1,[2,65]),o($Vj1,[2,66]),o($Vk1,[2,138]),o($Vk1,[2,139]),o($Vk1,[2,140]),o($Vk1,[2,141]),o($Vk1,[2,142]),o($Vk1,[2,143]),o($Vk1,[2,144]),o($Vk1,[2,145]),o($Vk1,[2,146]),o($Vk1,[2,147]),o($Vk1,[2,148]),o($Vk1,[2,149]),o($Vk1,[2,150]),o($Vk1,[2,151]),o($Vk1,[2,152]),o($Vk1,[2,153]),o($Vj1,[2,132]),o($Vj1,[2,133]),o($Vj1,[2,134]),o($Vj1,[2,135]),o($Vj1,[2,136]),o($Vj1,[2,137]),{1:[2,1]},o($VA,[2,2]),{16:117,68:57,69:$VB,71:$VC,72:$VD,74:$VE,75:$VF,76:$VG,77:$VH,78:$VI,79:$VJ,80:$VK,81:$VL,82:$VM,83:$VN,84:$VO,85:$VP,86:73,87:74,90:$VQ,91:$VR,92:$VS,93:$VT,94:$VU,95:$VV,96:$VW,97:$VX,98:$VY,99:$VZ,100:$V_,101:$V$,102:$V01,103:$V11,104:$V21,105:$V31,106:$V41,107:$V51,108:$V61,109:$V71,110:$V81,111:$V91,112:$Va1,114:$Vb1,115:$Vc1,116:$Vd1,117:$Ve1,118:$Vf1},o($VA,[2,12]),{13:[1,118],67:$Vl1},o($Vm1,[2,70]),{56:[1,120]},{56:[1,121]},{56:[1,122]},{56:[1,123]},{56:[1,124]},{56:[1,125]},{56:[1,126]},{56:[1,127]},{56:[1,128]},{56:[1,129]},{56:[1,130]},{56:[1,131]},{56:[1,132]},{56:[1,133]},{56:[1,134]},{56:[1,135]},{56:[1,136]},{56:[1,137]},o($Vm1,[2,105]),o($Vm1,[2,106]),o($Vm1,[2,107]),o($Vm1,[2,108]),o($Vm1,[2,109]),o($Vm1,[2,110]),o($Vm1,[2,111]),o($Vm1,[2,112]),o($Vm1,[2,113]),o($Vm1,[2,114]),o($Vm1,[2,115]),o($Vm1,[2,116]),o($Vm1,[2,117]),o($Vm1,[2,118]),o($Vm1,[2,119]),o($Vm1,[2,120]),o($Vm1,[2,121]),o($Vm1,[2,122]),o($Vm1,[2,123]),o($Vm1,[2,124]),o($Vm1,[2,125]),{56:[1,138]},{56:[2,127]},{56:[2,128]},{56:[2,129]},{56:[2,130]},{56:[2,131]},o($VA,[2,14]),{17:[1,139]},{17:[2,20]},{17:[2,21]},{25:[1,140]},{25:[1,141]},o($VA,[2,22]),{30:$V9,60:142,64:143,88:$Vf,89:$Vg,113:$Vh,125:$Vo,126:$Vp,127:$Vq,128:$Vr,129:$Vs,130:$Vt,131:$Vu,132:$Vv,133:$Vw,134:$Vx,135:$Vy,136:$Vz},{21:$V4,24:$V6,30:$V9,33:$Vb,61:144,62:22,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,113:$Vh,119:$Vi,120:$Vj,121:$Vk,122:$Vl,123:$Vm,124:$Vn,125:$Vo,126:$Vp,127:$Vq,128:$Vr,129:$Vs,130:$Vt,131:$Vu,132:$Vv,133:$Vw,134:$Vx,135:$Vy,136:$Vz},{21:$V4,24:$V6,30:$V9,33:$Vb,61:145,62:22,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,113:$Vh,119:$Vi,120:$Vj,121:$Vk,122:$Vl,123:$Vm,124:$Vn,125:$Vo,126:$Vp,127:$Vq,128:$Vr,129:$Vs,130:$Vt,131:$Vu,132:$Vv,133:$Vw,134:$Vx,135:$Vy,136:$Vz},o($Vh1,[2,54],{37:$Vi1}),{21:$V4,24:$V6,30:$V9,33:$Vb,62:146,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,113:$Vh,119:$Vi,120:$Vj,121:$Vk,122:$Vl,123:$Vm,124:$Vn,125:$Vo,126:$Vp,127:$Vq,128:$Vr,129:$Vs,130:$Vt,131:$Vu,132:$Vv,133:$Vw,134:$Vx,135:$Vy,136:$Vz},{21:[1,147]},{33:[1,148]},{13:[1,149],67:$Vl1},o($VA,[2,13]),{68:150,69:$VB,71:$VC,72:$VD,74:$VE,75:$VF,76:$VG,77:$VH,78:$VI,79:$VJ,80:$VK,81:$VL,82:$VM,83:$VN,84:$VO,85:$VP,86:73,87:74,90:$VQ,91:$VR,92:$VS,93:$VT,94:$VU,95:$VV,96:$VW,97:$VX,98:$VY,99:$VZ,100:$V_,101:$V$,102:$V01,103:$V11,104:$V21,105:$V31,106:$V41,107:$V51,108:$V61,109:$V71,110:$V81,111:$V91,112:$Va1,114:$Vb1,115:$Vc1,116:$Vd1,117:$Ve1,118:$Vf1},{17:$Vn1,70:151,130:$Vo1,139:$Vp1,140:$Vq1,141:$Vr1},{17:$Vn1,70:157,130:$Vo1,139:$Vp1,140:$Vq1,141:$Vr1},{21:$Vs1,73:158,89:$Vt1},{21:$Vs1,73:161,89:$Vt1},{21:$Vs1,73:162,89:$Vt1},{21:$Vs1,73:163,89:$Vt1},{21:$Vs1,73:164,89:$Vt1},{21:$Vs1,73:165,89:$Vt1},{21:$Vs1,73:166,89:$Vt1},{21:$Vs1,73:167,89:$Vt1},{21:$Vs1,73:168,89:$Vt1},{21:$Vs1,73:169,89:$Vt1},{21:$Vs1,73:170,89:$Vt1},{21:$Vs1,73:171,89:$Vt1},{17:[1,172],66:[1,175],88:[1,173],89:[1,174]},{17:[1,176],66:[1,179],88:[1,177],89:[1,178]},{17:[1,180]},{17:[1,181],66:[1,182]},{113:[1,183]},o($VA,[2,15],{20:[1,184]}),{21:$Vu1,24:$Vv1,26:185,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{21:$Vu1,24:$Vv1,26:192,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},o($Vg1,[2,50],{67:[1,193]}),o($VA1,[2,68]),o($Vh1,[2,52],{37:$Vi1}),o($Vh1,[2,53],{37:$Vi1}),o($Vj1,[2,56]),o($Vj1,[2,61]),o($Vj1,[2,62]),o($VA,[2,11]),o($Vm1,[2,69]),{57:[1,194]},{35:[1,195],36:[1,196],57:[2,154],137:[1,197],138:[1,198]},{15:[1,199]},{15:[1,200]},{15:[1,201]},{20:[1,203],35:[1,202],57:[2,168]},{57:[1,204]},{57:[1,205]},{57:[2,176]},{57:[2,177]},{57:[1,206]},{57:[1,207]},{57:[1,208]},{57:[1,209]},{57:[1,210]},{57:[1,211]},{57:[1,212]},{57:[1,213]},{57:[1,214]},{57:[1,215]},{57:[1,216]},{57:[1,217]},{57:[1,218]},{57:[1,219]},{35:[1,220]},{57:[1,221],67:[1,222]},{57:[1,223],67:[1,224]},{57:[1,225],67:[1,226]},{35:[1,227]},{57:[1,228],67:[1,229]},{57:[1,230]},{35:[1,231]},{57:[1,232]},{21:[1,233]},o($VB1,[2,17],{35:$VC1,36:$VD1,37:$VE1,38:$VF1,39:$VG1,40:$VH1,41:$VI1,42:$VJ1,43:$VK1,44:$VL1,45:$VM1,46:$VN1,47:$VO1,48:$VP1,49:$VQ1,50:$VR1,51:$VS1,52:$VT1,53:$VU1,55:$VV1}),o($VW1,[2,23]),o($VW1,[2,24]),o($VW1,[2,25],{34:[1,254]}),{21:$Vu1,24:$Vv1,26:255,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{21:$Vu1,24:$Vv1,26:256,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{21:$Vu1,24:$Vv1,26:257,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},o($VB1,[2,18],{35:$VC1,36:$VD1,37:$VE1,38:$VF1,39:$VG1,40:$VH1,41:$VI1,42:$VJ1,43:$VK1,44:$VL1,45:$VM1,46:$VN1,47:$VO1,48:$VP1,49:$VQ1,50:$VR1,51:$VS1,52:$VT1,53:$VU1,55:$VV1}),{30:$V9,64:258,88:$Vf,89:$Vg,113:$Vh,125:$Vo,126:$Vp,127:$Vq,128:$Vr,129:$Vs,130:$Vt,131:$Vu,132:$Vv,133:$Vw,134:$Vx,135:$Vy,136:$Vz},o($Vm1,[2,71]),{21:[1,259]},{21:[1,260]},{57:[2,157]},{57:[2,158]},{89:[1,261]},{89:[1,262]},{89:[1,263]},{21:[1,266],88:[1,264],89:[1,265]},{21:[1,268],89:[1,267]},o($Vm1,[2,72]),o($Vm1,[2,73]),o($Vm1,[2,74]),o($Vm1,[2,75]),o($Vm1,[2,76]),o($Vm1,[2,77]),o($Vm1,[2,78]),o($Vm1,[2,79]),o($Vm1,[2,80]),o($Vm1,[2,81]),o($Vm1,[2,82]),o($Vm1,[2,83]),o($Vm1,[2,84]),o($Vm1,[2,85]),o($Vm1,[2,90]),o($Vm1,[2,91]),{88:[1,269],89:[1,270]},o($Vm1,[2,86]),{17:[1,271]},o($Vm1,[2,94]),{17:[1,272]},o($Vm1,[2,95]),{17:[1,273]},{88:[1,274],89:[1,275]},o($Vm1,[2,88]),{17:[1,276]},o($Vm1,[2,102]),{88:[1,277],89:[1,278]},o($Vm1,[2,126]),{22:[1,279]},{21:$Vu1,24:$Vv1,26:280,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{21:$Vu1,24:$Vv1,26:281,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{21:$Vu1,24:$Vv1,26:282,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{21:$Vu1,24:$Vv1,26:283,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{21:$Vu1,24:$Vv1,26:284,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{21:$Vu1,24:$Vv1,26:285,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{21:$Vu1,24:$Vv1,26:286,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{21:$Vu1,24:$Vv1,26:287,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{21:$Vu1,24:$Vv1,26:288,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{21:$Vu1,24:$Vv1,26:289,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{21:$Vu1,24:$Vv1,26:290,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{21:$Vu1,24:$Vv1,26:291,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{21:$Vu1,24:$Vv1,26:292,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{21:$Vu1,24:$Vv1,26:293,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{21:$Vu1,24:$Vv1,26:294,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{21:$Vu1,24:$Vv1,26:295,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{21:$Vu1,24:$Vv1,26:296,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{21:$Vu1,24:$Vv1,26:297,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{21:$Vu1,24:$Vv1,26:298,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{21:$Vu1,24:$Vv1,26:299,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{21:$Vu1,24:$Vv1,26:300,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},o($VX1,[2,33],{37:$VE1,38:$VF1,39:$VG1,40:$VH1}),o($VW1,[2,47]),{35:$VC1,36:$VD1,37:$VE1,38:$VF1,39:$VG1,40:$VH1,41:$VI1,42:$VJ1,43:$VK1,44:$VL1,45:$VM1,46:$VN1,47:$VO1,48:$VP1,49:$VQ1,50:$VR1,51:$VS1,52:$VT1,53:$VU1,55:$VV1,57:[1,301]},o($VA1,[2,67]),{57:[2,155]},{57:[2,156]},{35:[1,302],36:[1,303],57:[2,161]},{35:[1,304],36:[1,305],57:[2,164]},{35:[1,306],36:[1,307],57:[2,167]},{57:[2,169]},{57:[2,170]},{57:[2,174]},{22:[1,308],35:[1,310],36:[1,309]},{22:[1,311]},{57:[1,312]},{57:[1,313]},{57:[1,314]},{57:[1,315]},{57:[1,316]},{57:[1,317],67:[1,318]},{57:[1,319],67:[1,320]},{57:[1,321]},{57:[1,322]},{57:[1,323]},o($VA,[2,16]),o($VX1,[2,27],{37:$VE1,38:$VF1,39:$VG1,40:$VH1}),o($VX1,[2,28],{37:$VE1,38:$VF1,39:$VG1,40:$VH1}),o($VW1,[2,29]),o($VW1,[2,30]),o($VW1,[2,31]),o($VW1,[2,32]),o($VY1,[2,34],{35:$VC1,36:$VD1,37:$VE1,38:$VF1,39:$VG1,40:$VH1}),o($VY1,[2,35],{35:$VC1,36:$VD1,37:$VE1,38:$VF1,39:$VG1,40:$VH1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,52,53,55,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136],[2,36],{35:$VC1,36:$VD1,37:$VE1,38:$VF1,39:$VG1,40:$VH1,41:$VI1,42:$VJ1,44:$VL1,45:$VM1,46:$VN1,47:$VO1,48:$VP1,49:$VQ1,50:$VR1,51:$VS1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,52,53,55,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136],[2,37],{35:$VC1,36:$VD1,37:$VE1,38:$VF1,39:$VG1,40:$VH1,41:$VI1,42:$VJ1,46:$VN1,47:$VO1,48:$VP1,49:$VQ1,50:$VR1,51:$VS1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,45,52,53,55,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136],[2,38],{35:$VC1,36:$VD1,37:$VE1,38:$VF1,39:$VG1,40:$VH1,41:$VI1,42:$VJ1,44:$VL1,46:$VN1,47:$VO1,48:$VP1,49:$VQ1,50:$VR1,51:$VS1}),o($VZ1,[2,39],{35:$VC1,36:$VD1,37:$VE1,38:$VF1,39:$VG1,40:$VH1,41:$VI1,42:$VJ1}),o($VZ1,[2,40],{35:$VC1,36:$VD1,37:$VE1,38:$VF1,39:$VG1,40:$VH1,41:$VI1,42:$VJ1}),o($VZ1,[2,41],{35:$VC1,36:$VD1,37:$VE1,38:$VF1,39:$VG1,40:$VH1,41:$VI1,42:$VJ1}),o($VZ1,[2,42],{35:$VC1,36:$VD1,37:$VE1,38:$VF1,39:$VG1,40:$VH1,41:$VI1,42:$VJ1}),o($V_1,[2,43],{35:$VC1,36:$VD1,37:$VE1,38:$VF1,39:$VG1,40:$VH1,41:$VI1,42:$VJ1,46:$VN1,47:$VO1,48:$VP1,49:$VQ1}),o($V_1,[2,44],{35:$VC1,36:$VD1,37:$VE1,38:$VF1,39:$VG1,40:$VH1,41:$VI1,42:$VJ1,46:$VN1,47:$VO1,48:$VP1,49:$VQ1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,52,53,55,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136],[2,45],{35:$VC1,36:$VD1,37:$VE1,38:$VF1,39:$VG1,40:$VH1,41:$VI1,42:$VJ1,43:$VK1,44:$VL1,45:$VM1,46:$VN1,47:$VO1,48:$VP1,49:$VQ1,50:$VR1,51:$VS1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,53,55,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136],[2,46],{35:$VC1,36:$VD1,37:$VE1,38:$VF1,39:$VG1,40:$VH1,41:$VI1,42:$VJ1,43:$VK1,44:$VL1,45:$VM1,46:$VN1,47:$VO1,48:$VP1,49:$VQ1,50:$VR1,51:$VS1,52:$VT1}),{15:[1,324],35:$VC1,36:$VD1,37:$VE1,38:$VF1,39:$VG1,40:$VH1,41:$VI1,42:$VJ1,43:$VK1,44:$VL1,45:$VM1,46:$VN1,47:$VO1,48:$VP1,49:$VQ1,50:$VR1,51:$VS1,52:$VT1,53:$VU1,55:$VV1},o([5,13,15,17,18,21,23,24,27,28,30,31,33,55,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136],[2,26],{35:$VC1,36:$VD1,37:$VE1,38:$VF1,39:$VG1,40:$VH1,41:$VI1,42:$VJ1,43:$VK1,44:$VL1,45:$VM1,46:$VN1,47:$VO1,48:$VP1,49:$VQ1,50:$VR1,51:$VS1,52:$VT1,53:$VU1}),o($VW1,[2,49]),{21:[1,325]},{21:[1,326]},{21:[1,327]},{21:[1,328]},{21:[1,329]},{21:[1,330]},{57:[2,171]},{21:[1,331]},{21:[1,332]},{57:[2,175]},o($Vm1,[2,92]),o($Vm1,[2,93]),o($Vm1,[2,87]),o($Vm1,[2,98]),o($Vm1,[2,99]),o($Vm1,[2,96]),{17:[1,333]},o($Vm1,[2,97]),{17:[1,334]},o($Vm1,[2,89]),o($Vm1,[2,103]),o($Vm1,[2,104]),{21:$Vu1,24:$Vv1,26:335,33:$Vw1,36:$Vx1,54:$Vy1,56:$Vz1},{57:[2,159]},{57:[2,160]},{57:[2,162]},{57:[2,163]},{57:[2,165]},{57:[2,166]},{22:[1,336]},{22:[1,337]},{57:[1,338]},{57:[1,339]},o([5,13,15,17,18,21,23,24,27,28,30,31,33,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136],[2,48],{35:$VC1,36:$VD1,37:$VE1,38:$VF1,39:$VG1,40:$VH1,41:$VI1,42:$VJ1,43:$VK1,44:$VL1,45:$VM1,46:$VN1,47:$VO1,48:$VP1,49:$VQ1,50:$VR1,51:$VS1,52:$VT1,53:$VU1,55:$VV1}),{57:[2,172]},{57:[2,173]},o($Vm1,[2,100]),o($Vm1,[2,101])], -defaultActions: {52:[2,1],98:[2,127],99:[2,128],100:[2,129],101:[2,130],102:[2,131],105:[2,20],106:[2,21],159:[2,176],160:[2,177],197:[2,157],198:[2,158],259:[2,155],260:[2,156],264:[2,169],265:[2,170],266:[2,174],308:[2,171],311:[2,175],325:[2,159],326:[2,160],327:[2,162],328:[2,163],329:[2,165],330:[2,166],336:[2,172],337:[2,173]}, +table: [{3:1,4:2,6:3,7:4,8:5,9:6,10:7,11:8,12:9,13:$V0,14:11,15:$V1,17:$V2,18:$V3,21:$V4,23:$V5,24:$V6,27:$V7,28:$V8,30:$V9,31:$Va,33:$Vb,36:$Vc,58:19,61:21,62:22,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,113:$Vh,119:$Vi,120:$Vj,121:$Vk,122:$Vl,123:$Vm,124:$Vn,125:$Vo,126:$Vp,127:$Vq,128:$Vr,129:$Vs,130:$Vt,131:$Vu,132:$Vv,133:$Vw,134:$Vx,135:$Vy,136:$Vz,137:$VA},{1:[3]},{5:[1,53],6:54,7:4,8:5,9:6,10:7,11:8,12:9,13:$V0,14:11,15:$V1,17:$V2,18:$V3,21:$V4,23:$V5,24:$V6,27:$V7,28:$V8,30:$V9,31:$Va,33:$Vb,36:$Vc,58:19,61:21,62:22,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,113:$Vh,119:$Vi,120:$Vj,121:$Vk,122:$Vl,123:$Vm,124:$Vn,125:$Vo,126:$Vp,127:$Vq,128:$Vr,129:$Vs,130:$Vt,131:$Vu,132:$Vv,133:$Vw,134:$Vx,135:$Vy,136:$Vz,137:$VA},o($VB,[2,3]),o($VB,[2,4]),o($VB,[2,5]),o($VB,[2,6]),o($VB,[2,7]),o($VB,[2,8]),o($VB,[2,9]),o($VB,[2,10]),{13:[1,56],15:[1,55]},{16:57,68:58,69:$VC,71:$VD,72:$VE,74:$VF,75:$VG,76:$VH,77:$VI,78:$VJ,79:$VK,80:$VL,81:$VM,82:$VN,83:$VO,84:$VP,85:$VQ,86:74,87:75,90:$VR,91:$VS,92:$VT,93:$VU,94:$VV,95:$VW,96:$VX,97:$VY,98:$VZ,99:$V_,100:$V$,101:$V01,102:$V11,103:$V21,104:$V31,105:$V41,106:$V51,107:$V61,108:$V71,109:$V81,110:$V91,111:$Va1,112:$Vb1,114:$Vc1,115:$Vd1,116:$Ve1,117:$Vf1,118:$Vg1},{15:[1,104]},{19:105,29:[1,106],30:[1,107]},{24:[1,108]},{24:[1,109]},{32:[1,110]},o($VB,[2,19]),o($Vh1,[2,51],{35:[1,112],36:[1,113],59:[1,111]}),{21:$V4,24:$V6,30:$V9,33:$Vb,61:114,62:22,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,113:$Vh,119:$Vi,120:$Vj,121:$Vk,122:$Vl,123:$Vm,124:$Vn,125:$Vo,126:$Vp,127:$Vq,128:$Vr,129:$Vs,130:$Vt,131:$Vu,132:$Vv,133:$Vw,134:$Vx,135:$Vy,136:$Vz,137:$VA},o($Vi1,[2,55],{37:$Vj1}),o($Vk1,[2,57]),o($Vk1,[2,58]),o($Vk1,[2,59]),o($Vk1,[2,60]),o($Vk1,[2,63],{38:[1,116]}),o($Vk1,[2,64],{38:[1,117]}),o($Vk1,[2,65]),o($Vk1,[2,66]),o($Vl1,[2,139]),o($Vl1,[2,140]),o($Vl1,[2,141]),o($Vl1,[2,142]),o($Vl1,[2,143]),o($Vl1,[2,144]),o($Vl1,[2,145]),o($Vl1,[2,146]),o($Vl1,[2,147]),o($Vl1,[2,148]),o($Vl1,[2,149]),o($Vl1,[2,150]),o($Vl1,[2,151]),o($Vl1,[2,152]),o($Vl1,[2,153]),o($Vl1,[2,154]),o($Vk1,[2,132]),o($Vk1,[2,133]),o($Vk1,[2,134]),o($Vk1,[2,135]),o($Vk1,[2,136]),o($Vk1,[2,137]),o($Vk1,[2,138]),{1:[2,1]},o($VB,[2,2]),{16:118,68:58,69:$VC,71:$VD,72:$VE,74:$VF,75:$VG,76:$VH,77:$VI,78:$VJ,79:$VK,80:$VL,81:$VM,82:$VN,83:$VO,84:$VP,85:$VQ,86:74,87:75,90:$VR,91:$VS,92:$VT,93:$VU,94:$VV,95:$VW,96:$VX,97:$VY,98:$VZ,99:$V_,100:$V$,101:$V01,102:$V11,103:$V21,104:$V31,105:$V41,106:$V51,107:$V61,108:$V71,109:$V81,110:$V91,111:$Va1,112:$Vb1,114:$Vc1,115:$Vd1,116:$Ve1,117:$Vf1,118:$Vg1},o($VB,[2,12]),{13:[1,119],67:$Vm1},o($Vn1,[2,70]),{56:[1,121]},{56:[1,122]},{56:[1,123]},{56:[1,124]},{56:[1,125]},{56:[1,126]},{56:[1,127]},{56:[1,128]},{56:[1,129]},{56:[1,130]},{56:[1,131]},{56:[1,132]},{56:[1,133]},{56:[1,134]},{56:[1,135]},{56:[1,136]},{56:[1,137]},{56:[1,138]},o($Vn1,[2,105]),o($Vn1,[2,106]),o($Vn1,[2,107]),o($Vn1,[2,108]),o($Vn1,[2,109]),o($Vn1,[2,110]),o($Vn1,[2,111]),o($Vn1,[2,112]),o($Vn1,[2,113]),o($Vn1,[2,114]),o($Vn1,[2,115]),o($Vn1,[2,116]),o($Vn1,[2,117]),o($Vn1,[2,118]),o($Vn1,[2,119]),o($Vn1,[2,120]),o($Vn1,[2,121]),o($Vn1,[2,122]),o($Vn1,[2,123]),o($Vn1,[2,124]),o($Vn1,[2,125]),{56:[1,139]},{56:[2,127]},{56:[2,128]},{56:[2,129]},{56:[2,130]},{56:[2,131]},o($VB,[2,14]),{17:[1,140]},{17:[2,20]},{17:[2,21]},{25:[1,141]},{25:[1,142]},o($VB,[2,22]),{30:$V9,60:143,64:144,88:$Vf,89:$Vg,113:$Vh,126:$Vp,127:$Vq,128:$Vr,129:$Vs,130:$Vt,131:$Vu,132:$Vv,133:$Vw,134:$Vx,135:$Vy,136:$Vz,137:$VA},{21:$V4,24:$V6,30:$V9,33:$Vb,61:145,62:22,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,113:$Vh,119:$Vi,120:$Vj,121:$Vk,122:$Vl,123:$Vm,124:$Vn,125:$Vo,126:$Vp,127:$Vq,128:$Vr,129:$Vs,130:$Vt,131:$Vu,132:$Vv,133:$Vw,134:$Vx,135:$Vy,136:$Vz,137:$VA},{21:$V4,24:$V6,30:$V9,33:$Vb,61:146,62:22,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,113:$Vh,119:$Vi,120:$Vj,121:$Vk,122:$Vl,123:$Vm,124:$Vn,125:$Vo,126:$Vp,127:$Vq,128:$Vr,129:$Vs,130:$Vt,131:$Vu,132:$Vv,133:$Vw,134:$Vx,135:$Vy,136:$Vz,137:$VA},o($Vi1,[2,54],{37:$Vj1}),{21:$V4,24:$V6,30:$V9,33:$Vb,62:147,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,113:$Vh,119:$Vi,120:$Vj,121:$Vk,122:$Vl,123:$Vm,124:$Vn,125:$Vo,126:$Vp,127:$Vq,128:$Vr,129:$Vs,130:$Vt,131:$Vu,132:$Vv,133:$Vw,134:$Vx,135:$Vy,136:$Vz,137:$VA},{21:[1,148]},{33:[1,149]},{13:[1,150],67:$Vm1},o($VB,[2,13]),{68:151,69:$VC,71:$VD,72:$VE,74:$VF,75:$VG,76:$VH,77:$VI,78:$VJ,79:$VK,80:$VL,81:$VM,82:$VN,83:$VO,84:$VP,85:$VQ,86:74,87:75,90:$VR,91:$VS,92:$VT,93:$VU,94:$VV,95:$VW,96:$VX,97:$VY,98:$VZ,99:$V_,100:$V$,101:$V01,102:$V11,103:$V21,104:$V31,105:$V41,106:$V51,107:$V61,108:$V71,109:$V81,110:$V91,111:$Va1,112:$Vb1,114:$Vc1,115:$Vd1,116:$Ve1,117:$Vf1,118:$Vg1},{17:$Vo1,70:152,131:$Vp1,140:$Vq1,141:$Vr1,142:$Vs1},{17:$Vo1,70:158,131:$Vp1,140:$Vq1,141:$Vr1,142:$Vs1},{21:$Vt1,73:159,89:$Vu1},{21:$Vt1,73:162,89:$Vu1},{21:$Vt1,73:163,89:$Vu1},{21:$Vt1,73:164,89:$Vu1},{21:$Vt1,73:165,89:$Vu1},{21:$Vt1,73:166,89:$Vu1},{21:$Vt1,73:167,89:$Vu1},{21:$Vt1,73:168,89:$Vu1},{21:$Vt1,73:169,89:$Vu1},{21:$Vt1,73:170,89:$Vu1},{21:$Vt1,73:171,89:$Vu1},{21:$Vt1,73:172,89:$Vu1},{17:[1,173],66:[1,176],88:[1,174],89:[1,175]},{17:[1,177],66:[1,180],88:[1,178],89:[1,179]},{17:[1,181]},{17:[1,182],66:[1,183]},{113:[1,184]},o($VB,[2,15],{20:[1,185]}),{21:$Vv1,24:$Vw1,26:186,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{21:$Vv1,24:$Vw1,26:193,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},o($Vh1,[2,50],{67:[1,194]}),o($VB1,[2,68]),o($Vi1,[2,52],{37:$Vj1}),o($Vi1,[2,53],{37:$Vj1}),o($Vk1,[2,56]),o($Vk1,[2,61]),o($Vk1,[2,62]),o($VB,[2,11]),o($Vn1,[2,69]),{57:[1,195]},{35:[1,196],36:[1,197],57:[2,155],138:[1,198],139:[1,199]},{15:[1,200]},{15:[1,201]},{15:[1,202]},{20:[1,204],35:[1,203],57:[2,169]},{57:[1,205]},{57:[1,206]},{57:[2,177]},{57:[2,178]},{57:[1,207]},{57:[1,208]},{57:[1,209]},{57:[1,210]},{57:[1,211]},{57:[1,212]},{57:[1,213]},{57:[1,214]},{57:[1,215]},{57:[1,216]},{57:[1,217]},{57:[1,218]},{57:[1,219]},{57:[1,220]},{35:[1,221]},{57:[1,222],67:[1,223]},{57:[1,224],67:[1,225]},{57:[1,226],67:[1,227]},{35:[1,228]},{57:[1,229],67:[1,230]},{57:[1,231]},{35:[1,232]},{57:[1,233]},{21:[1,234]},o($VC1,[2,17],{35:$VD1,36:$VE1,37:$VF1,38:$VG1,39:$VH1,40:$VI1,41:$VJ1,42:$VK1,43:$VL1,44:$VM1,45:$VN1,46:$VO1,47:$VP1,48:$VQ1,49:$VR1,50:$VS1,51:$VT1,52:$VU1,53:$VV1,55:$VW1}),o($VX1,[2,23]),o($VX1,[2,24]),o($VX1,[2,25],{34:[1,255]}),{21:$Vv1,24:$Vw1,26:256,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{21:$Vv1,24:$Vw1,26:257,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{21:$Vv1,24:$Vw1,26:258,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},o($VC1,[2,18],{35:$VD1,36:$VE1,37:$VF1,38:$VG1,39:$VH1,40:$VI1,41:$VJ1,42:$VK1,43:$VL1,44:$VM1,45:$VN1,46:$VO1,47:$VP1,48:$VQ1,49:$VR1,50:$VS1,51:$VT1,52:$VU1,53:$VV1,55:$VW1}),{30:$V9,64:259,88:$Vf,89:$Vg,113:$Vh,126:$Vp,127:$Vq,128:$Vr,129:$Vs,130:$Vt,131:$Vu,132:$Vv,133:$Vw,134:$Vx,135:$Vy,136:$Vz,137:$VA},o($Vn1,[2,71]),{21:[1,260]},{21:[1,261]},{57:[2,158]},{57:[2,159]},{89:[1,262]},{89:[1,263]},{89:[1,264]},{21:[1,267],88:[1,265],89:[1,266]},{21:[1,269],89:[1,268]},o($Vn1,[2,72]),o($Vn1,[2,73]),o($Vn1,[2,74]),o($Vn1,[2,75]),o($Vn1,[2,76]),o($Vn1,[2,77]),o($Vn1,[2,78]),o($Vn1,[2,79]),o($Vn1,[2,80]),o($Vn1,[2,81]),o($Vn1,[2,82]),o($Vn1,[2,83]),o($Vn1,[2,84]),o($Vn1,[2,85]),o($Vn1,[2,90]),o($Vn1,[2,91]),{88:[1,270],89:[1,271]},o($Vn1,[2,86]),{17:[1,272]},o($Vn1,[2,94]),{17:[1,273]},o($Vn1,[2,95]),{17:[1,274]},{88:[1,275],89:[1,276]},o($Vn1,[2,88]),{17:[1,277]},o($Vn1,[2,102]),{88:[1,278],89:[1,279]},o($Vn1,[2,126]),{22:[1,280]},{21:$Vv1,24:$Vw1,26:281,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{21:$Vv1,24:$Vw1,26:282,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{21:$Vv1,24:$Vw1,26:283,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{21:$Vv1,24:$Vw1,26:284,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{21:$Vv1,24:$Vw1,26:285,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{21:$Vv1,24:$Vw1,26:286,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{21:$Vv1,24:$Vw1,26:287,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{21:$Vv1,24:$Vw1,26:288,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{21:$Vv1,24:$Vw1,26:289,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{21:$Vv1,24:$Vw1,26:290,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{21:$Vv1,24:$Vw1,26:291,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{21:$Vv1,24:$Vw1,26:292,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{21:$Vv1,24:$Vw1,26:293,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{21:$Vv1,24:$Vw1,26:294,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{21:$Vv1,24:$Vw1,26:295,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{21:$Vv1,24:$Vw1,26:296,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{21:$Vv1,24:$Vw1,26:297,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{21:$Vv1,24:$Vw1,26:298,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{21:$Vv1,24:$Vw1,26:299,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{21:$Vv1,24:$Vw1,26:300,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{21:$Vv1,24:$Vw1,26:301,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},o($VY1,[2,33],{37:$VF1,38:$VG1,39:$VH1,40:$VI1}),o($VX1,[2,47]),{35:$VD1,36:$VE1,37:$VF1,38:$VG1,39:$VH1,40:$VI1,41:$VJ1,42:$VK1,43:$VL1,44:$VM1,45:$VN1,46:$VO1,47:$VP1,48:$VQ1,49:$VR1,50:$VS1,51:$VT1,52:$VU1,53:$VV1,55:$VW1,57:[1,302]},o($VB1,[2,67]),{57:[2,156]},{57:[2,157]},{35:[1,303],36:[1,304],57:[2,162]},{35:[1,305],36:[1,306],57:[2,165]},{35:[1,307],36:[1,308],57:[2,168]},{57:[2,170]},{57:[2,171]},{57:[2,175]},{22:[1,309],35:[1,311],36:[1,310]},{22:[1,312]},{57:[1,313]},{57:[1,314]},{57:[1,315]},{57:[1,316]},{57:[1,317]},{57:[1,318],67:[1,319]},{57:[1,320],67:[1,321]},{57:[1,322]},{57:[1,323]},{57:[1,324]},o($VB,[2,16]),o($VY1,[2,27],{37:$VF1,38:$VG1,39:$VH1,40:$VI1}),o($VY1,[2,28],{37:$VF1,38:$VG1,39:$VH1,40:$VI1}),o($VX1,[2,29]),o($VX1,[2,30]),o($VX1,[2,31]),o($VX1,[2,32]),o($VZ1,[2,34],{35:$VD1,36:$VE1,37:$VF1,38:$VG1,39:$VH1,40:$VI1}),o($VZ1,[2,35],{35:$VD1,36:$VE1,37:$VF1,38:$VG1,39:$VH1,40:$VI1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,52,53,55,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137],[2,36],{35:$VD1,36:$VE1,37:$VF1,38:$VG1,39:$VH1,40:$VI1,41:$VJ1,42:$VK1,44:$VM1,45:$VN1,46:$VO1,47:$VP1,48:$VQ1,49:$VR1,50:$VS1,51:$VT1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,52,53,55,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137],[2,37],{35:$VD1,36:$VE1,37:$VF1,38:$VG1,39:$VH1,40:$VI1,41:$VJ1,42:$VK1,46:$VO1,47:$VP1,48:$VQ1,49:$VR1,50:$VS1,51:$VT1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,45,52,53,55,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137],[2,38],{35:$VD1,36:$VE1,37:$VF1,38:$VG1,39:$VH1,40:$VI1,41:$VJ1,42:$VK1,44:$VM1,46:$VO1,47:$VP1,48:$VQ1,49:$VR1,50:$VS1,51:$VT1}),o($V_1,[2,39],{35:$VD1,36:$VE1,37:$VF1,38:$VG1,39:$VH1,40:$VI1,41:$VJ1,42:$VK1}),o($V_1,[2,40],{35:$VD1,36:$VE1,37:$VF1,38:$VG1,39:$VH1,40:$VI1,41:$VJ1,42:$VK1}),o($V_1,[2,41],{35:$VD1,36:$VE1,37:$VF1,38:$VG1,39:$VH1,40:$VI1,41:$VJ1,42:$VK1}),o($V_1,[2,42],{35:$VD1,36:$VE1,37:$VF1,38:$VG1,39:$VH1,40:$VI1,41:$VJ1,42:$VK1}),o($V$1,[2,43],{35:$VD1,36:$VE1,37:$VF1,38:$VG1,39:$VH1,40:$VI1,41:$VJ1,42:$VK1,46:$VO1,47:$VP1,48:$VQ1,49:$VR1}),o($V$1,[2,44],{35:$VD1,36:$VE1,37:$VF1,38:$VG1,39:$VH1,40:$VI1,41:$VJ1,42:$VK1,46:$VO1,47:$VP1,48:$VQ1,49:$VR1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,52,53,55,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137],[2,45],{35:$VD1,36:$VE1,37:$VF1,38:$VG1,39:$VH1,40:$VI1,41:$VJ1,42:$VK1,43:$VL1,44:$VM1,45:$VN1,46:$VO1,47:$VP1,48:$VQ1,49:$VR1,50:$VS1,51:$VT1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,53,55,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137],[2,46],{35:$VD1,36:$VE1,37:$VF1,38:$VG1,39:$VH1,40:$VI1,41:$VJ1,42:$VK1,43:$VL1,44:$VM1,45:$VN1,46:$VO1,47:$VP1,48:$VQ1,49:$VR1,50:$VS1,51:$VT1,52:$VU1}),{15:[1,325],35:$VD1,36:$VE1,37:$VF1,38:$VG1,39:$VH1,40:$VI1,41:$VJ1,42:$VK1,43:$VL1,44:$VM1,45:$VN1,46:$VO1,47:$VP1,48:$VQ1,49:$VR1,50:$VS1,51:$VT1,52:$VU1,53:$VV1,55:$VW1},o([5,13,15,17,18,21,23,24,27,28,30,31,33,55,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137],[2,26],{35:$VD1,36:$VE1,37:$VF1,38:$VG1,39:$VH1,40:$VI1,41:$VJ1,42:$VK1,43:$VL1,44:$VM1,45:$VN1,46:$VO1,47:$VP1,48:$VQ1,49:$VR1,50:$VS1,51:$VT1,52:$VU1,53:$VV1}),o($VX1,[2,49]),{21:[1,326]},{21:[1,327]},{21:[1,328]},{21:[1,329]},{21:[1,330]},{21:[1,331]},{57:[2,172]},{21:[1,332]},{21:[1,333]},{57:[2,176]},o($Vn1,[2,92]),o($Vn1,[2,93]),o($Vn1,[2,87]),o($Vn1,[2,98]),o($Vn1,[2,99]),o($Vn1,[2,96]),{17:[1,334]},o($Vn1,[2,97]),{17:[1,335]},o($Vn1,[2,89]),o($Vn1,[2,103]),o($Vn1,[2,104]),{21:$Vv1,24:$Vw1,26:336,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{57:[2,160]},{57:[2,161]},{57:[2,163]},{57:[2,164]},{57:[2,166]},{57:[2,167]},{22:[1,337]},{22:[1,338]},{57:[1,339]},{57:[1,340]},o([5,13,15,17,18,21,23,24,27,28,30,31,33,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137],[2,48],{35:$VD1,36:$VE1,37:$VF1,38:$VG1,39:$VH1,40:$VI1,41:$VJ1,42:$VK1,43:$VL1,44:$VM1,45:$VN1,46:$VO1,47:$VP1,48:$VQ1,49:$VR1,50:$VS1,51:$VT1,52:$VU1,53:$VV1,55:$VW1}),{57:[2,173]},{57:[2,174]},o($Vn1,[2,100]),o($Vn1,[2,101])], +defaultActions: {53:[2,1],99:[2,127],100:[2,128],101:[2,129],102:[2,130],103:[2,131],106:[2,20],107:[2,21],160:[2,177],161:[2,178],198:[2,158],199:[2,159],260:[2,156],261:[2,157],265:[2,170],266:[2,171],267:[2,175],309:[2,172],312:[2,176],326:[2,160],327:[2,161],328:[2,163],329:[2,164],330:[2,166],331:[2,167],337:[2,173],338:[2,174]}, parseError: function parseError (str, hash) { if (hash.recoverable) { this.trace(str); @@ -1231,37 +1234,37 @@ case 6: return "LF"; break; case 7: /* console.log("Empty spaces"); */ break; -case 8: return 125; +case 8: return 126; break; -case 9: return 126; +case 9: return 127; break; -case 10: return 127; +case 10: return 128; break; -case 11: return 128; +case 11: return 129; break; case 12: return 89; break; case 13: return 113; break; -case 14: return 129; +case 14: return 130; break; case 15: return 30; break; -case 16: return 130; +case 16: return 131; break; -case 17: return 131; +case 17: return 132; break; -case 18: return 132; +case 18: return 133; break; -case 19: return 133; +case 19: return 134; break; case 20: return 88; break; -case 21: return 134; +case 21: return 135; break; -case 22: return 136; +case 22: return 137; break; -case 23: return 135; +case 23: return 136; break; case 24: return 69 break; @@ -1353,112 +1356,114 @@ case 67: return 123 break; case 68: return 124 break; -case 69: return 111 +case 69: return 125 break; -case 70: return 109 +case 70: return 111 break; -case 71: return 110 +case 71: return 109 break; -case 72: return 139 +case 72: return 110 break; case 73: return 140 break; case 74: return 141 break; -case 75: return 31 +case 75: return 142 break; -case 76: return 18 +case 76: return 31 break; -case 77: return 29 +case 77: return 18 break; -case 78: return 30 +case 78: return 29 break; -case 79: return 23 +case 79: return 30 break; -case 80: return 27 +case 80: return 23 break; -case 81: return 112 +case 81: return 27 break; -case 82: yy_.yytext = yy_.yytext.slice(1,-1); return 32; +case 82: return 112 break; -case 83: return 17; +case 83: yy_.yytext = yy_.yytext.slice(1,-1); return 32; break; -case 84: yy_.yytext = yy_.yytext.slice(1); return 24; +case 84: return 17; break; -case 85: yy_.yytext = yy_.yytext.slice(1); return 66; +case 85: yy_.yytext = yy_.yytext.slice(1); return 24; break; -case 86: return 15; +case 86: yy_.yytext = yy_.yytext.slice(1); return 66; break; -case 87: return 67 +case 87: return 15; break; -case 88: return 56 +case 88: return 67 break; -case 89: return 57 +case 89: return 56 break; -case 90: return 137 +case 90: return 57 break; case 91: return 138 break; -case 92: return 35 +case 92: return 139 +break; +case 93: return 35 break; -case 93: return 36 +case 94: return 36 break; -case 94: return 40 +case 95: return 40 break; -case 95: return 38 +case 96: return 38 break; -case 96: return 37 +case 97: return 37 break; -case 97: return 39 +case 98: return 39 break; -case 98: return 59 +case 99: return 59 break; -case 99: return 41 +case 100: return 41 break; -case 100: return 42 +case 101: return 42 break; -case 101: return 45 +case 102: return 45 break; -case 102: return 53 +case 103: return 53 break; -case 103: return 52 +case 104: return 52 break; -case 104: return 44 +case 105: return 44 break; -case 105: return 43 +case 106: return 43 break; -case 106: return 50 +case 107: return 50 break; -case 107: return 51 +case 108: return 51 break; -case 108: return 48 +case 109: return 48 break; -case 109: return 49 +case 110: return 49 break; -case 110: return 47 +case 111: return 47 break; -case 111: return 46 +case 112: return 46 break; -case 112: return 25 +case 113: return 25 break; -case 113: return 54 +case 114: return 54 break; -case 114: return 34 +case 115: return 34 break; -case 115: return 55 +case 116: return 55 break; -case 116: return 20 +case 117: return 20 break; -case 117: return 22 +case 118: return 22 break; -case 118: return 5; +case 119: return 5; break; -case 119: /* console.log("INVALID: " + yy_.yytext); */ return 'INVALID'; +case 120: /* console.log("INVALID: " + yy_.yytext); */ return 'INVALID'; break; } }, -rules: [/^(?:;[^\n\r]*)/,/^(?:\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+\/)/,/^(?:((0x[0-9A-Fa-f][0-9A-Fa-f_]*)|([0-9][0-9_]*))n\b)/,/^(?:(0x[0-9A-Fa-f][0-9A-Fa-f_]*)|([0-9][0-9_]*))/,/^(?:\$\$\{[^\}]*\})/,/^(?:(\$(\{[^\}]*\})?))/,/^(?:[\r\n]+)/,/^(?:[ \t]+)/,/^(?:A\b)/,/^(?:B\b)/,/^(?:C\b)/,/^(?:D\b)/,/^(?:E\b)/,/^(?:RCX\b)/,/^(?:SR\b)/,/^(?:CTX\b)/,/^(?:SP\b)/,/^(?:PC\b)/,/^(?:GAS\b)/,/^(?:zkPC\b)/,/^(?:RR\b)/,/^(?:STEP\b)/,/^(?:ROTL_C\b)/,/^(?:HASHPOS\b)/,/^(?:MLOAD\b)/,/^(?:MSTORE\b)/,/^(?:HASHKLEN\b)/,/^(?:HASHKDIGEST\b)/,/^(?:HASHK1\b)/,/^(?:HASHK\b)/,/^(?:HASHSLEN\b)/,/^(?:HASHSDIGEST\b)/,/^(?:HASHS1\b)/,/^(?:HASHS\b)/,/^(?:HASHPLEN\b)/,/^(?:HASHPDIGEST\b)/,/^(?:HASHP1\b)/,/^(?:HASHP\b)/,/^(?:JMP\b)/,/^(?:JMPC\b)/,/^(?:JMPZ\b)/,/^(?:JMPNZ\b)/,/^(?:JMPNC\b)/,/^(?:JMPN\b)/,/^(?:CALL\b)/,/^(?:RETURN\b)/,/^(?:ASSERT\b)/,/^(?:SLOAD\b)/,/^(?:SSTORE\b)/,/^(?:ARITH\b)/,/^(?:ARITH_ECADD_DIFFERENT\b)/,/^(?:ARITH_ECADD_SAME\b)/,/^(?:ARITH_BN254_ADDFP2\b)/,/^(?:ARITH_BN254_SUBFP2\b)/,/^(?:ARITH_BN254_MULFP2\b)/,/^(?:ADD\b)/,/^(?:SUB\b)/,/^(?:LT\b)/,/^(?:SLT\b)/,/^(?:EQ\b)/,/^(?:AND\b)/,/^(?:OR\b)/,/^(?:XOR\b)/,/^(?:CNT_ARITH\b)/,/^(?:CNT_BINARY\b)/,/^(?:CNT_KECCAK_F\b)/,/^(?:CNT_MEM_ALIGN\b)/,/^(?:CNT_PADDING_PG\b)/,/^(?:CNT_POSEIDON_G\b)/,/^(?:MEM_ALIGN_WR8\b)/,/^(?:MEM_ALIGN_RD\b)/,/^(?:MEM_ALIGN_WR\b)/,/^(?:SYS\b)/,/^(?:MEM\b)/,/^(?:STACK\b)/,/^(?:INCLUDE\b)/,/^(?:VAR\b)/,/^(?:GLOBAL\b)/,/^(?:CTX\b)/,/^(?:CONST\b)/,/^(?:CONSTL\b)/,/^(?:REPEAT\b)/,/^(?:"[^"]+")/,/^(?:[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?:%[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?:@[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?::)/,/^(?:,)/,/^(?:\()/,/^(?:\))/,/^(?:\+\+)/,/^(?:--)/,/^(?:\+)/,/^(?:-)/,/^(?:\/)/,/^(?:\*\*)/,/^(?:\*)/,/^(?:%)/,/^(?:=>)/,/^(?:<<)/,/^(?:>>)/,/^(?:\^)/,/^(?:\|\|)/,/^(?:&&)/,/^(?:&)/,/^(?:\|)/,/^(?:==)/,/^(?:!=)/,/^(?:<=)/,/^(?:>=)/,/^(?:>)/,/^(?:<)/,/^(?:=)/,/^(?:!)/,/^(?:\?\?)/,/^(?:\?)/,/^(?:\[)/,/^(?:\])/,/^(?:$)/,/^(?:.)/], -conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119],"inclusive":true}} +rules: [/^(?:;[^\n\r]*)/,/^(?:\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+\/)/,/^(?:((0x[0-9A-Fa-f][0-9A-Fa-f_]*)|([0-9][0-9_]*))n\b)/,/^(?:(0x[0-9A-Fa-f][0-9A-Fa-f_]*)|([0-9][0-9_]*))/,/^(?:\$\$\{[^\}]*\})/,/^(?:(\$(\{[^\}]*\})?))/,/^(?:[\r\n]+)/,/^(?:[ \t]+)/,/^(?:A\b)/,/^(?:B\b)/,/^(?:C\b)/,/^(?:D\b)/,/^(?:E\b)/,/^(?:RCX\b)/,/^(?:SR\b)/,/^(?:CTX\b)/,/^(?:SP\b)/,/^(?:PC\b)/,/^(?:GAS\b)/,/^(?:zkPC\b)/,/^(?:RR\b)/,/^(?:STEP\b)/,/^(?:ROTL_C\b)/,/^(?:HASHPOS\b)/,/^(?:MLOAD\b)/,/^(?:MSTORE\b)/,/^(?:HASHKLEN\b)/,/^(?:HASHKDIGEST\b)/,/^(?:HASHK1\b)/,/^(?:HASHK\b)/,/^(?:HASHSLEN\b)/,/^(?:HASHSDIGEST\b)/,/^(?:HASHS1\b)/,/^(?:HASHS\b)/,/^(?:HASHPLEN\b)/,/^(?:HASHPDIGEST\b)/,/^(?:HASHP1\b)/,/^(?:HASHP\b)/,/^(?:JMP\b)/,/^(?:JMPC\b)/,/^(?:JMPZ\b)/,/^(?:JMPNZ\b)/,/^(?:JMPNC\b)/,/^(?:JMPN\b)/,/^(?:CALL\b)/,/^(?:RETURN\b)/,/^(?:ASSERT\b)/,/^(?:SLOAD\b)/,/^(?:SSTORE\b)/,/^(?:ARITH\b)/,/^(?:ARITH_ECADD_DIFFERENT\b)/,/^(?:ARITH_ECADD_SAME\b)/,/^(?:ARITH_BN254_ADDFP2\b)/,/^(?:ARITH_BN254_SUBFP2\b)/,/^(?:ARITH_BN254_MULFP2\b)/,/^(?:ADD\b)/,/^(?:SUB\b)/,/^(?:LT\b)/,/^(?:SLT\b)/,/^(?:EQ\b)/,/^(?:AND\b)/,/^(?:OR\b)/,/^(?:XOR\b)/,/^(?:CNT_ARITH\b)/,/^(?:CNT_BINARY\b)/,/^(?:CNT_KECCAK_F\b)/,/^(?:CNT_SHA256_F\b)/,/^(?:CNT_MEM_ALIGN\b)/,/^(?:CNT_PADDING_PG\b)/,/^(?:CNT_POSEIDON_G\b)/,/^(?:MEM_ALIGN_WR8\b)/,/^(?:MEM_ALIGN_RD\b)/,/^(?:MEM_ALIGN_WR\b)/,/^(?:SYS\b)/,/^(?:MEM\b)/,/^(?:STACK\b)/,/^(?:INCLUDE\b)/,/^(?:VAR\b)/,/^(?:GLOBAL\b)/,/^(?:CTX\b)/,/^(?:CONST\b)/,/^(?:CONSTL\b)/,/^(?:REPEAT\b)/,/^(?:"[^"]+")/,/^(?:[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?:%[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?:@[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?::)/,/^(?:,)/,/^(?:\()/,/^(?:\))/,/^(?:\+\+)/,/^(?:--)/,/^(?:\+)/,/^(?:-)/,/^(?:\/)/,/^(?:\*\*)/,/^(?:\*)/,/^(?:%)/,/^(?:=>)/,/^(?:<<)/,/^(?:>>)/,/^(?:\^)/,/^(?:\|\|)/,/^(?:&&)/,/^(?:&)/,/^(?:\|)/,/^(?:==)/,/^(?:!=)/,/^(?:<=)/,/^(?:>=)/,/^(?:>)/,/^(?:<)/,/^(?:=)/,/^(?:!)/,/^(?:\?\?)/,/^(?:\?)/,/^(?:\[)/,/^(?:\])/,/^(?:$)/,/^(?:.)/], +conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120],"inclusive":true}} }); return lexer; })(); diff --git a/instructions.md b/instructions.md index b0053e2..254bbd4 100644 --- a/instructions.md +++ b/instructions.md @@ -162,7 +162,7 @@ RCX != 0 => RCX' = RCX - 1 RCX != 0 => zkPC = zkPC REPEAT was executed at least one time -### CNT_ARITH, CNT_BINARY, CNT_KECCAK_F, CNT_MEM_ALIGN, CNT_PADDING_PG, CNT_POSEIDON_G +### CNT_ARITH, CNT_BINARY, CNT_KECCAK_F, CNT_SHA256_F, CNT_MEM_ALIGN, CNT_PADDING_PG, CNT_POSEIDON_G ReadOnly counters @@ -237,6 +237,7 @@ constl set 8 registers (op0, op1, op2, ..,op7) - `CNT_ARITH` - `CNT_BINARY` - `CNT_KECCAK_F` + - `CNT_SHA256_F` - `CNT_MEM_ALIGN` - `CNT_PADDING_PG` - `CNT_POSEIDON_G` diff --git a/src/command_parser.jison b/src/command_parser.jison index 7052299..ae917e1 100644 --- a/src/command_parser.jison +++ b/src/command_parser.jison @@ -19,6 +19,7 @@ STEP { return 'STEP'; } CNT_ARITH { return 'CNT_ARITH' } CNT_BINARY { return 'CNT_BINARY' } CNT_KECCAK_F { return 'CNT_KECCAK_F' } +CNT_SHA256_F { return 'CNT_SHA256_F' } CNT_MEM_ALIGN { return 'CNT_MEM_ALIGN' } CNT_PADDING_PG { return 'CNT_PADDING_PG' } CNT_POSEIDON_G { return 'CNT_POSEIDON_G' } @@ -298,6 +299,7 @@ counter : CNT_ARITH | CNT_BINARY | CNT_KECCAK_F + | CNT_SHA256_F | CNT_MEM_ALIGN | CNT_PADDING_PG | CNT_POSEIDON_G diff --git a/src/zkasm_parser.jison b/src/zkasm_parser.jison index 97124b9..ba803a9 100644 --- a/src/zkasm_parser.jison +++ b/src/zkasm_parser.jison @@ -67,6 +67,7 @@ XOR { return 'XOR' } CNT_ARITH { return 'CNT_ARITH' } CNT_BINARY { return 'CNT_BINARY' } CNT_KECCAK_F { return 'CNT_KECCAK_F' } +CNT_SHA256_F { return 'CNT_SHA256_F' } CNT_MEM_ALIGN { return 'CNT_MEM_ALIGN' } CNT_PADDING_PG { return 'CNT_PADDING_PG' } CNT_POSEIDON_G { return 'CNT_POSEIDON_G' } @@ -748,6 +749,7 @@ counter : CNT_ARITH { $$ = 'cntArith' } | CNT_BINARY { $$ = 'cntBinary' } | CNT_KECCAK_F { $$ = 'cntKeccakF' } + | CNT_SHA256_F { $$ = 'cntSha256F' } | CNT_MEM_ALIGN { $$ = 'cntMemAlign' } | CNT_PADDING_PG { $$ = 'cntPaddingPG' } | CNT_POSEIDON_G { $$ = 'cntPoseidonG' } From 80d363ebfff90cc3eb34fe77e949dc0714ba1f2e Mon Sep 17 00:00:00 2001 From: zkronos73 Date: Tue, 14 Nov 2023 10:46:41 +0100 Subject: [PATCH 13/25] add LT4 binary instruction --- build/zkasm_parser.js | 225 +++++++++++++++++++++-------------------- src/zkasm_parser.jison | 5 + 2 files changed, 121 insertions(+), 109 deletions(-) diff --git a/build/zkasm_parser.js b/build/zkasm_parser.js index 77529e3..3b6f508 100644 --- a/build/zkasm_parser.js +++ b/build/zkasm_parser.js @@ -72,12 +72,12 @@ } */ var zkasm_parser = (function(){ -var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,10],$V1=[1,12],$V2=[1,13],$V3=[1,14],$V4=[1,26],$V5=[1,15],$V6=[1,28],$V7=[1,16],$V8=[1,18],$V9=[1,36],$Va=[1,17],$Vb=[1,27],$Vc=[1,20],$Vd=[1,23],$Ve=[1,29],$Vf=[1,40],$Vg=[1,34],$Vh=[1,45],$Vi=[1,46],$Vj=[1,47],$Vk=[1,48],$Vl=[1,49],$Vm=[1,50],$Vn=[1,51],$Vo=[1,30],$Vp=[1,31],$Vq=[1,32],$Vr=[1,33],$Vs=[1,35],$Vt=[1,37],$Vu=[1,38],$Vv=[1,39],$Vw=[1,41],$Vx=[1,42],$Vy=[1,43],$Vz=[1,44],$VA=[5,13,15,17,18,21,23,24,27,28,30,31,33,36,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],$VB=[1,58],$VC=[1,59],$VD=[1,60],$VE=[1,61],$VF=[1,62],$VG=[1,63],$VH=[1,64],$VI=[1,65],$VJ=[1,66],$VK=[1,67],$VL=[1,68],$VM=[1,71],$VN=[1,72],$VO=[1,73],$VP=[1,74],$VQ=[1,75],$VR=[1,76],$VS=[1,77],$VT=[1,78],$VU=[1,79],$VV=[1,80],$VW=[1,81],$VX=[1,82],$VY=[1,83],$VZ=[1,84],$V_=[1,85],$V$=[1,86],$V01=[1,87],$V11=[1,88],$V21=[1,89],$V31=[1,90],$V41=[1,91],$V51=[1,92],$V61=[1,93],$V71=[1,94],$V81=[1,95],$V91=[1,96],$Va1=[1,97],$Vb1=[1,98],$Vc1=[13,15],$Vd1=[13,15,35,36,59],$Ve1=[1,110],$Vf1=[13,15,35,36,37,59],$Vg1=[13,15,35,36,37,59,67],$Vh1=[1,115],$Vi1=[13,67],$Vj1=[1,148],$Vk1=[1,144],$Vl1=[1,145],$Vm1=[1,146],$Vn1=[1,147],$Vo1=[1,151],$Vp1=[1,152],$Vq1=[1,174],$Vr1=[1,176],$Vs1=[1,175],$Vt1=[1,177],$Vu1=[1,178],$Vv1=[1,179],$Vw1=[13,15,67],$Vx1=[5,13,15,17,18,21,23,24,27,28,30,31,33,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],$Vy1=[1,218],$Vz1=[1,219],$VA1=[1,220],$VB1=[1,221],$VC1=[1,222],$VD1=[1,223],$VE1=[1,224],$VF1=[1,225],$VG1=[1,226],$VH1=[1,227],$VI1=[1,228],$VJ1=[1,229],$VK1=[1,230],$VL1=[1,231],$VM1=[1,232],$VN1=[1,233],$VO1=[1,234],$VP1=[1,235],$VQ1=[1,236],$VR1=[1,237],$VS1=[5,13,15,17,18,21,23,24,27,28,30,31,33,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],$VT1=[5,13,15,17,18,21,23,24,27,28,30,31,33,35,36,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],$VU1=[5,13,15,17,18,21,23,24,27,28,30,31,33,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],$VV1=[5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],$VW1=[5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,50,51,52,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132]; +var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,10],$V1=[1,12],$V2=[1,13],$V3=[1,14],$V4=[1,26],$V5=[1,15],$V6=[1,28],$V7=[1,16],$V8=[1,18],$V9=[1,36],$Va=[1,17],$Vb=[1,27],$Vc=[1,20],$Vd=[1,23],$Ve=[1,29],$Vf=[1,40],$Vg=[1,34],$Vh=[1,45],$Vi=[1,46],$Vj=[1,47],$Vk=[1,48],$Vl=[1,49],$Vm=[1,50],$Vn=[1,51],$Vo=[1,30],$Vp=[1,31],$Vq=[1,32],$Vr=[1,33],$Vs=[1,35],$Vt=[1,37],$Vu=[1,38],$Vv=[1,39],$Vw=[1,41],$Vx=[1,42],$Vy=[1,43],$Vz=[1,44],$VA=[5,13,15,17,18,21,23,24,27,28,30,31,33,36,63,66,84,85,110,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133],$VB=[1,58],$VC=[1,59],$VD=[1,60],$VE=[1,61],$VF=[1,62],$VG=[1,63],$VH=[1,64],$VI=[1,65],$VJ=[1,66],$VK=[1,67],$VL=[1,68],$VM=[1,71],$VN=[1,72],$VO=[1,73],$VP=[1,74],$VQ=[1,75],$VR=[1,76],$VS=[1,77],$VT=[1,78],$VU=[1,79],$VV=[1,80],$VW=[1,81],$VX=[1,82],$VY=[1,83],$VZ=[1,84],$V_=[1,85],$V$=[1,86],$V01=[1,87],$V11=[1,88],$V21=[1,89],$V31=[1,90],$V41=[1,91],$V51=[1,92],$V61=[1,93],$V71=[1,94],$V81=[1,95],$V91=[1,96],$Va1=[1,97],$Vb1=[1,98],$Vc1=[1,99],$Vd1=[13,15],$Ve1=[13,15,35,36,59],$Vf1=[1,111],$Vg1=[13,15,35,36,37,59],$Vh1=[13,15,35,36,37,59,67],$Vi1=[1,116],$Vj1=[13,67],$Vk1=[1,149],$Vl1=[1,145],$Vm1=[1,146],$Vn1=[1,147],$Vo1=[1,148],$Vp1=[1,152],$Vq1=[1,153],$Vr1=[1,175],$Vs1=[1,177],$Vt1=[1,176],$Vu1=[1,178],$Vv1=[1,179],$Vw1=[1,180],$Vx1=[13,15,67],$Vy1=[5,13,15,17,18,21,23,24,27,28,30,31,33,63,66,84,85,110,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133],$Vz1=[1,219],$VA1=[1,220],$VB1=[1,221],$VC1=[1,222],$VD1=[1,223],$VE1=[1,224],$VF1=[1,225],$VG1=[1,226],$VH1=[1,227],$VI1=[1,228],$VJ1=[1,229],$VK1=[1,230],$VL1=[1,231],$VM1=[1,232],$VN1=[1,233],$VO1=[1,234],$VP1=[1,235],$VQ1=[1,236],$VR1=[1,237],$VS1=[1,238],$VT1=[5,13,15,17,18,21,23,24,27,28,30,31,33,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,110,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133],$VU1=[5,13,15,17,18,21,23,24,27,28,30,31,33,35,36,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,110,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133],$VV1=[5,13,15,17,18,21,23,24,27,28,30,31,33,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,110,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133],$VW1=[5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,84,85,110,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133],$VX1=[5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,50,51,52,53,55,57,63,66,84,85,110,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133]; var parser = {trace: function trace () { }, yy: {}, -symbols_: {"error":2,"allStatments":3,"statmentList":4,"EOF":5,"statment":6,"step":7,"label":8,"varDef":9,"constDef":10,"include":11,"command":12,"LF":13,"assignment":14,":":15,"opList":16,"IDENTIFIER":17,"VAR":18,"scope":19,"[":20,"NUMBER":21,"]":22,"CONST":23,"CONSTID":24,"=":25,"nexpr":26,"CONSTL":27,"COMMAND":28,"GLOBAL":29,"CTX":30,"INCLUDE":31,"STRING":32,"NUMBERL":33,"??":34,"+":35,"-":36,"*":37,"**":38,"%":39,"/":40,"<<":41,">>":42,"|":43,"&":44,"^":45,"<":46,">":47,"<=":48,">=":49,"==":50,"!=":51,"&&":52,"||":53,"!":54,"?":55,"(":56,")":57,"inRegsSum":58,"=>":59,"regsList":60,"inRegP":61,"inReg":62,"TAG":63,"reg":64,"counter":65,"REFERENCE":66,",":67,"op":68,"MLOAD":69,"addr":70,"MSTORE":71,"HASHK":72,"hashId":73,"HASHK1":74,"HASHKLEN":75,"HASHKDIGEST":76,"HASHP":77,"HASHP1":78,"HASHPLEN":79,"HASHPDIGEST":80,"JMP":81,"jmpCond":82,"jmpNotCond":83,"RR":84,"E":85,"CALL":86,"RETURN":87,"ASSERT":88,"SLOAD":89,"SSTORE":90,"ARITH":91,"ARITH_ECADD_DIFFERENT":92,"ARITH_ECADD_SAME":93,"ARITH_BN254_MULFP2":94,"ARITH_BN254_ADDFP2":95,"ARITH_BN254_SUBFP2":96,"ADD":97,"SUB":98,"LT":99,"SLT":100,"EQ":101,"AND":102,"OR":103,"XOR":104,"MEM_ALIGN_RD":105,"MEM_ALIGN_WR":106,"MEM_ALIGN_WR8":107,"REPEAT":108,"RCX":109,"JMPN":110,"JMPC":111,"JMPZ":112,"JMPNC":113,"JMPNZ":114,"CNT_ARITH":115,"CNT_BINARY":116,"CNT_KECCAK_F":117,"CNT_MEM_ALIGN":118,"CNT_PADDING_PG":119,"CNT_POSEIDON_G":120,"A":121,"B":122,"C":123,"D":124,"SR":125,"SP":126,"PC":127,"GAS":128,"zkPC":129,"STEP":130,"HASHPOS":131,"ROTL_C":132,"++":133,"--":134,"SYS":135,"MEM":136,"STACK":137,"$accept":0,"$end":1}, -terminals_: {2:"error",5:"EOF",13:"LF",15:":",17:"IDENTIFIER",18:"VAR",20:"[",21:"NUMBER",22:"]",23:"CONST",24:"CONSTID",25:"=",27:"CONSTL",28:"COMMAND",29:"GLOBAL",30:"CTX",31:"INCLUDE",32:"STRING",33:"NUMBERL",34:"??",35:"+",36:"-",37:"*",38:"**",39:"%",40:"/",41:"<<",42:">>",43:"|",44:"&",45:"^",46:"<",47:">",48:"<=",49:">=",50:"==",51:"!=",52:"&&",53:"||",54:"!",55:"?",56:"(",57:")",59:"=>",63:"TAG",66:"REFERENCE",67:",",69:"MLOAD",71:"MSTORE",72:"HASHK",74:"HASHK1",75:"HASHKLEN",76:"HASHKDIGEST",77:"HASHP",78:"HASHP1",79:"HASHPLEN",80:"HASHPDIGEST",81:"JMP",84:"RR",85:"E",86:"CALL",87:"RETURN",88:"ASSERT",89:"SLOAD",90:"SSTORE",91:"ARITH",92:"ARITH_ECADD_DIFFERENT",93:"ARITH_ECADD_SAME",94:"ARITH_BN254_MULFP2",95:"ARITH_BN254_ADDFP2",96:"ARITH_BN254_SUBFP2",97:"ADD",98:"SUB",99:"LT",100:"SLT",101:"EQ",102:"AND",103:"OR",104:"XOR",105:"MEM_ALIGN_RD",106:"MEM_ALIGN_WR",107:"MEM_ALIGN_WR8",108:"REPEAT",109:"RCX",110:"JMPN",111:"JMPC",112:"JMPZ",113:"JMPNC",114:"JMPNZ",115:"CNT_ARITH",116:"CNT_BINARY",117:"CNT_KECCAK_F",118:"CNT_MEM_ALIGN",119:"CNT_PADDING_PG",120:"CNT_POSEIDON_G",121:"A",122:"B",123:"C",124:"D",125:"SR",126:"SP",127:"PC",128:"GAS",129:"zkPC",130:"STEP",131:"HASHPOS",132:"ROTL_C",133:"++",134:"--",135:"SYS",136:"MEM",137:"STACK"}, -productions_: [0,[3,2],[4,2],[4,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[7,4],[7,2],[7,3],[8,2],[9,3],[9,6],[10,4],[10,4],[12,1],[19,1],[19,1],[11,2],[26,1],[26,1],[26,1],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,2],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,2],[26,5],[26,3],[14,3],[14,1],[58,3],[58,3],[58,2],[58,1],[61,3],[61,1],[62,1],[62,1],[62,1],[62,3],[62,3],[62,1],[62,1],[62,1],[62,1],[60,3],[60,1],[16,3],[16,1],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,6],[68,4],[68,6],[68,4],[68,4],[68,6],[68,6],[68,4],[68,4],[68,6],[68,6],[68,6],[68,6],[68,8],[68,8],[68,4],[68,6],[68,6],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,4],[82,1],[82,1],[82,1],[83,1],[83,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[70,1],[70,3],[70,3],[70,2],[70,2],[70,5],[70,5],[70,3],[70,5],[70,5],[70,3],[70,5],[70,5],[70,3],[70,1],[70,3],[70,3],[70,4],[70,6],[70,6],[70,3],[70,4],[73,1],[73,1]], +symbols_: {"error":2,"allStatments":3,"statmentList":4,"EOF":5,"statment":6,"step":7,"label":8,"varDef":9,"constDef":10,"include":11,"command":12,"LF":13,"assignment":14,":":15,"opList":16,"IDENTIFIER":17,"VAR":18,"scope":19,"[":20,"NUMBER":21,"]":22,"CONST":23,"CONSTID":24,"=":25,"nexpr":26,"CONSTL":27,"COMMAND":28,"GLOBAL":29,"CTX":30,"INCLUDE":31,"STRING":32,"NUMBERL":33,"??":34,"+":35,"-":36,"*":37,"**":38,"%":39,"/":40,"<<":41,">>":42,"|":43,"&":44,"^":45,"<":46,">":47,"<=":48,">=":49,"==":50,"!=":51,"&&":52,"||":53,"!":54,"?":55,"(":56,")":57,"inRegsSum":58,"=>":59,"regsList":60,"inRegP":61,"inReg":62,"TAG":63,"reg":64,"counter":65,"REFERENCE":66,",":67,"op":68,"MLOAD":69,"addr":70,"MSTORE":71,"HASHK":72,"hashId":73,"HASHK1":74,"HASHKLEN":75,"HASHKDIGEST":76,"HASHP":77,"HASHP1":78,"HASHPLEN":79,"HASHPDIGEST":80,"JMP":81,"jmpCond":82,"jmpNotCond":83,"RR":84,"E":85,"CALL":86,"RETURN":87,"ASSERT":88,"SLOAD":89,"SSTORE":90,"ARITH":91,"ARITH_ECADD_DIFFERENT":92,"ARITH_ECADD_SAME":93,"ARITH_BN254_MULFP2":94,"ARITH_BN254_ADDFP2":95,"ARITH_BN254_SUBFP2":96,"ADD":97,"SUB":98,"LT":99,"SLT":100,"EQ":101,"AND":102,"OR":103,"XOR":104,"LT4":105,"MEM_ALIGN_RD":106,"MEM_ALIGN_WR":107,"MEM_ALIGN_WR8":108,"REPEAT":109,"RCX":110,"JMPN":111,"JMPC":112,"JMPZ":113,"JMPNC":114,"JMPNZ":115,"CNT_ARITH":116,"CNT_BINARY":117,"CNT_KECCAK_F":118,"CNT_MEM_ALIGN":119,"CNT_PADDING_PG":120,"CNT_POSEIDON_G":121,"A":122,"B":123,"C":124,"D":125,"SR":126,"SP":127,"PC":128,"GAS":129,"zkPC":130,"STEP":131,"HASHPOS":132,"ROTL_C":133,"++":134,"--":135,"SYS":136,"MEM":137,"STACK":138,"$accept":0,"$end":1}, +terminals_: {2:"error",5:"EOF",13:"LF",15:":",17:"IDENTIFIER",18:"VAR",20:"[",21:"NUMBER",22:"]",23:"CONST",24:"CONSTID",25:"=",27:"CONSTL",28:"COMMAND",29:"GLOBAL",30:"CTX",31:"INCLUDE",32:"STRING",33:"NUMBERL",34:"??",35:"+",36:"-",37:"*",38:"**",39:"%",40:"/",41:"<<",42:">>",43:"|",44:"&",45:"^",46:"<",47:">",48:"<=",49:">=",50:"==",51:"!=",52:"&&",53:"||",54:"!",55:"?",56:"(",57:")",59:"=>",63:"TAG",66:"REFERENCE",67:",",69:"MLOAD",71:"MSTORE",72:"HASHK",74:"HASHK1",75:"HASHKLEN",76:"HASHKDIGEST",77:"HASHP",78:"HASHP1",79:"HASHPLEN",80:"HASHPDIGEST",81:"JMP",84:"RR",85:"E",86:"CALL",87:"RETURN",88:"ASSERT",89:"SLOAD",90:"SSTORE",91:"ARITH",92:"ARITH_ECADD_DIFFERENT",93:"ARITH_ECADD_SAME",94:"ARITH_BN254_MULFP2",95:"ARITH_BN254_ADDFP2",96:"ARITH_BN254_SUBFP2",97:"ADD",98:"SUB",99:"LT",100:"SLT",101:"EQ",102:"AND",103:"OR",104:"XOR",105:"LT4",106:"MEM_ALIGN_RD",107:"MEM_ALIGN_WR",108:"MEM_ALIGN_WR8",109:"REPEAT",110:"RCX",111:"JMPN",112:"JMPC",113:"JMPZ",114:"JMPNC",115:"JMPNZ",116:"CNT_ARITH",117:"CNT_BINARY",118:"CNT_KECCAK_F",119:"CNT_MEM_ALIGN",120:"CNT_PADDING_PG",121:"CNT_POSEIDON_G",122:"A",123:"B",124:"C",125:"D",126:"SR",127:"SP",128:"PC",129:"GAS",130:"zkPC",131:"STEP",132:"HASHPOS",133:"ROTL_C",134:"++",135:"--",136:"SYS",137:"MEM",138:"STACK"}, +productions_: [0,[3,2],[4,2],[4,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[7,4],[7,2],[7,3],[8,2],[9,3],[9,6],[10,4],[10,4],[12,1],[19,1],[19,1],[11,2],[26,1],[26,1],[26,1],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,2],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,2],[26,5],[26,3],[14,3],[14,1],[58,3],[58,3],[58,2],[58,1],[61,3],[61,1],[62,1],[62,1],[62,1],[62,3],[62,3],[62,1],[62,1],[62,1],[62,1],[60,3],[60,1],[16,3],[16,1],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,6],[68,4],[68,6],[68,4],[68,4],[68,6],[68,6],[68,4],[68,4],[68,6],[68,6],[68,6],[68,6],[68,8],[68,8],[68,4],[68,6],[68,6],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,4],[82,1],[82,1],[82,1],[83,1],[83,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[70,1],[70,3],[70,3],[70,2],[70,2],[70,5],[70,5],[70,3],[70,5],[70,5],[70,3],[70,5],[70,5],[70,3],[70,1],[70,3],[70,3],[70,4],[70,6],[70,6],[70,3],[70,4],[73,1],[73,1]], performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { /* this == yyval */ @@ -551,168 +551,173 @@ case 118: break; case 119: - this.$ = { memAlignRD: 1, memAlignWR: 0, memAlignWR8: 0} + this.$ = { bin: 1, binOpcode: 8} break; case 120: - this.$ = { memAlignRD: 0, memAlignWR: 1, memAlignWR8: 0} + this.$ = { memAlignRD: 1, memAlignWR: 0, memAlignWR8: 0} break; case 121: - this.$ = { memAlignRD: 0, memAlignWR: 0, memAlignWR8: 1} + this.$ = { memAlignRD: 0, memAlignWR: 1, memAlignWR8: 0} break; case 122: + this.$ = { memAlignRD: 0, memAlignWR: 0, memAlignWR8: 1} + +break; +case 123: + this.$ = { repeat: 1 } break; -case 126: +case 127: this.$ = 'JMPC' break; -case 127: +case 128: this.$ = 'JMPZ' break; -case 128: +case 129: this.$ = 'cntArith' break; -case 129: +case 130: this.$ = 'cntBinary' break; -case 130: +case 131: this.$ = 'cntKeccakF' break; -case 131: +case 132: this.$ = 'cntMemAlign' break; -case 132: +case 133: this.$ = 'cntPaddingPG' break; -case 133: +case 134: this.$ = 'cntPoseidonG' break; -case 150: +case 151: this.$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack:0, offset: 0, useCTX: 1} break; -case 151: +case 152: this.$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack: 0, offset: $$[$0], useCTX: 1} break; -case 152: +case 153: this.$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack: 0, offset: -$$[$0], useCTX: 1} break; -case 153: +case 154: this.$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack: 1, offset: 0, useCTX: 1} break; -case 154: +case 155: this.$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack: -1, offset: 0, useCTX: 1} break; -case 155: +case 156: this.$ = { isStack: 0, isMem:0, ind:1, indRR: 0, incStack: 0, offset: $$[$0]} break; -case 156: +case 157: this.$ = { isStack: 0, isMem:0, ind:1, indRR: 0, incStack: 0, offset: -$$[$0]} break; -case 157: +case 158: this.$ = { isStack: 0, isMem:0, ind:1, indRR: 0, incStack: 0, offset: 0} break; -case 158: +case 159: this.$ = { isStack: 0, isMem: 1, ind:1, indRR: 0, incStack: 0, offset: $$[$0], useCTX: 1} break; -case 159: +case 160: this.$ = { isStack: 0, isMem: 1, ind:1, indRR: 0, incStack: 0, offset: -$$[$0], useCTX: 1} break; -case 160: +case 161: this.$ = { isStack: 0, isMem: 1, ind:1, indRR: 0, incStack: 0, offset: 0, useCTX: 1} break; -case 161: +case 162: this.$ = { isStack: 1, ind:1, indRR: 0, incStack: 0, offset: $$[$0], useCTX: 1} break; -case 162: +case 163: this.$ = { isStack: 1, ind:1, indRR: 0, incStack: 0, offset: -$$[$0], useCTX: 1} break; -case 163: +case 164: this.$ = { isStack: 1, ind:1, indRR: 0, incStack: 0, offset: 0, useCTX: 1} break; -case 164: +case 165: this.$ = { offset: $$[$0] } break; -case 165: +case 166: this.$ = { offset: $$[$0-2], ind: 0, indRR: 1 } break; -case 166: +case 167: this.$ = { offset: $$[$0-2], ind: 1, indRR: 0 } break; -case 167: +case 168: this.$ = { offset: $$[$0-3], ind: 1, indRR: 0 } break; -case 168: +case 169: this.$ = { offset: $$[$0-5], extraOffset: -$$[$0-1], ind: 1, indRR: 0 } break; -case 169: +case 170: this.$ = { offset: $$[$0-5], extraOffset: $$[$0-1], ind: 1, indRR: 0 } break; -case 170: +case 171: this.$ = { offset: $$[$0-2], extraOffset: $$[$0] } break; -case 171: +case 172: this.$ = { offset: $$[$0-3], extraOffset: $$[$0-1] } break; -case 172: +case 173: this.$ = {ind: 0, indRR: 0, offset:$$[$0]} break; -case 173: +case 174: this.$ = {ind: 1, indRR: 0, offset:0} break; } }, -table: [{3:1,4:2,6:3,7:4,8:5,9:6,10:7,11:8,12:9,13:$V0,14:11,15:$V1,17:$V2,18:$V3,21:$V4,23:$V5,24:$V6,27:$V7,28:$V8,30:$V9,31:$Va,33:$Vb,36:$Vc,58:19,61:21,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,109:$Vh,115:$Vi,116:$Vj,117:$Vk,118:$Vl,119:$Vm,120:$Vn,121:$Vo,122:$Vp,123:$Vq,124:$Vr,125:$Vs,126:$Vt,127:$Vu,128:$Vv,129:$Vw,130:$Vx,131:$Vy,132:$Vz},{1:[3]},{5:[1,52],6:53,7:4,8:5,9:6,10:7,11:8,12:9,13:$V0,14:11,15:$V1,17:$V2,18:$V3,21:$V4,23:$V5,24:$V6,27:$V7,28:$V8,30:$V9,31:$Va,33:$Vb,36:$Vc,58:19,61:21,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,109:$Vh,115:$Vi,116:$Vj,117:$Vk,118:$Vl,119:$Vm,120:$Vn,121:$Vo,122:$Vp,123:$Vq,124:$Vr,125:$Vs,126:$Vt,127:$Vu,128:$Vv,129:$Vw,130:$Vx,131:$Vy,132:$Vz},o($VA,[2,3]),o($VA,[2,4]),o($VA,[2,5]),o($VA,[2,6]),o($VA,[2,7]),o($VA,[2,8]),o($VA,[2,9]),o($VA,[2,10]),{13:[1,55],15:[1,54]},{16:56,68:57,69:$VB,71:$VC,72:$VD,74:$VE,75:$VF,76:$VG,77:$VH,78:$VI,79:$VJ,80:$VK,81:$VL,82:69,83:70,86:$VM,87:$VN,88:$VO,89:$VP,90:$VQ,91:$VR,92:$VS,93:$VT,94:$VU,95:$VV,96:$VW,97:$VX,98:$VY,99:$VZ,100:$V_,101:$V$,102:$V01,103:$V11,104:$V21,105:$V31,106:$V41,107:$V51,108:$V61,110:$V71,111:$V81,112:$V91,113:$Va1,114:$Vb1},{15:[1,99]},{19:100,29:[1,101],30:[1,102]},{24:[1,103]},{24:[1,104]},{32:[1,105]},o($VA,[2,19]),o($Vc1,[2,51],{35:[1,107],36:[1,108],59:[1,106]}),{21:$V4,24:$V6,30:$V9,33:$Vb,61:109,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,109:$Vh,115:$Vi,116:$Vj,117:$Vk,118:$Vl,119:$Vm,120:$Vn,121:$Vo,122:$Vp,123:$Vq,124:$Vr,125:$Vs,126:$Vt,127:$Vu,128:$Vv,129:$Vw,130:$Vx,131:$Vy,132:$Vz},o($Vd1,[2,55],{37:$Ve1}),o($Vf1,[2,57]),o($Vf1,[2,58]),o($Vf1,[2,59]),o($Vf1,[2,60]),o($Vf1,[2,63],{38:[1,111]}),o($Vf1,[2,64],{38:[1,112]}),o($Vf1,[2,65]),o($Vf1,[2,66]),o($Vg1,[2,134]),o($Vg1,[2,135]),o($Vg1,[2,136]),o($Vg1,[2,137]),o($Vg1,[2,138]),o($Vg1,[2,139]),o($Vg1,[2,140]),o($Vg1,[2,141]),o($Vg1,[2,142]),o($Vg1,[2,143]),o($Vg1,[2,144]),o($Vg1,[2,145]),o($Vg1,[2,146]),o($Vg1,[2,147]),o($Vg1,[2,148]),o($Vg1,[2,149]),o($Vf1,[2,128]),o($Vf1,[2,129]),o($Vf1,[2,130]),o($Vf1,[2,131]),o($Vf1,[2,132]),o($Vf1,[2,133]),{1:[2,1]},o($VA,[2,2]),{16:113,68:57,69:$VB,71:$VC,72:$VD,74:$VE,75:$VF,76:$VG,77:$VH,78:$VI,79:$VJ,80:$VK,81:$VL,82:69,83:70,86:$VM,87:$VN,88:$VO,89:$VP,90:$VQ,91:$VR,92:$VS,93:$VT,94:$VU,95:$VV,96:$VW,97:$VX,98:$VY,99:$VZ,100:$V_,101:$V$,102:$V01,103:$V11,104:$V21,105:$V31,106:$V41,107:$V51,108:$V61,110:$V71,111:$V81,112:$V91,113:$Va1,114:$Vb1},o($VA,[2,12]),{13:[1,114],67:$Vh1},o($Vi1,[2,70]),{56:[1,116]},{56:[1,117]},{56:[1,118]},{56:[1,119]},{56:[1,120]},{56:[1,121]},{56:[1,122]},{56:[1,123]},{56:[1,124]},{56:[1,125]},{56:[1,126]},{56:[1,127]},{56:[1,128]},{56:[1,129]},o($Vi1,[2,101]),o($Vi1,[2,102]),o($Vi1,[2,103]),o($Vi1,[2,104]),o($Vi1,[2,105]),o($Vi1,[2,106]),o($Vi1,[2,107]),o($Vi1,[2,108]),o($Vi1,[2,109]),o($Vi1,[2,110]),o($Vi1,[2,111]),o($Vi1,[2,112]),o($Vi1,[2,113]),o($Vi1,[2,114]),o($Vi1,[2,115]),o($Vi1,[2,116]),o($Vi1,[2,117]),o($Vi1,[2,118]),o($Vi1,[2,119]),o($Vi1,[2,120]),o($Vi1,[2,121]),{56:[1,130]},{56:[2,123]},{56:[2,124]},{56:[2,125]},{56:[2,126]},{56:[2,127]},o($VA,[2,14]),{17:[1,131]},{17:[2,20]},{17:[2,21]},{25:[1,132]},{25:[1,133]},o($VA,[2,22]),{30:$V9,60:134,64:135,84:$Vf,85:$Vg,109:$Vh,121:$Vo,122:$Vp,123:$Vq,124:$Vr,125:$Vs,126:$Vt,127:$Vu,128:$Vv,129:$Vw,130:$Vx,131:$Vy,132:$Vz},{21:$V4,24:$V6,30:$V9,33:$Vb,61:136,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,109:$Vh,115:$Vi,116:$Vj,117:$Vk,118:$Vl,119:$Vm,120:$Vn,121:$Vo,122:$Vp,123:$Vq,124:$Vr,125:$Vs,126:$Vt,127:$Vu,128:$Vv,129:$Vw,130:$Vx,131:$Vy,132:$Vz},{21:$V4,24:$V6,30:$V9,33:$Vb,61:137,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,109:$Vh,115:$Vi,116:$Vj,117:$Vk,118:$Vl,119:$Vm,120:$Vn,121:$Vo,122:$Vp,123:$Vq,124:$Vr,125:$Vs,126:$Vt,127:$Vu,128:$Vv,129:$Vw,130:$Vx,131:$Vy,132:$Vz},o($Vd1,[2,54],{37:$Ve1}),{21:$V4,24:$V6,30:$V9,33:$Vb,62:138,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,109:$Vh,115:$Vi,116:$Vj,117:$Vk,118:$Vl,119:$Vm,120:$Vn,121:$Vo,122:$Vp,123:$Vq,124:$Vr,125:$Vs,126:$Vt,127:$Vu,128:$Vv,129:$Vw,130:$Vx,131:$Vy,132:$Vz},{21:[1,139]},{33:[1,140]},{13:[1,141],67:$Vh1},o($VA,[2,13]),{68:142,69:$VB,71:$VC,72:$VD,74:$VE,75:$VF,76:$VG,77:$VH,78:$VI,79:$VJ,80:$VK,81:$VL,82:69,83:70,86:$VM,87:$VN,88:$VO,89:$VP,90:$VQ,91:$VR,92:$VS,93:$VT,94:$VU,95:$VV,96:$VW,97:$VX,98:$VY,99:$VZ,100:$V_,101:$V$,102:$V01,103:$V11,104:$V21,105:$V31,106:$V41,107:$V51,108:$V61,110:$V71,111:$V81,112:$V91,113:$Va1,114:$Vb1},{17:$Vj1,70:143,126:$Vk1,135:$Vl1,136:$Vm1,137:$Vn1},{17:$Vj1,70:149,126:$Vk1,135:$Vl1,136:$Vm1,137:$Vn1},{21:$Vo1,73:150,85:$Vp1},{21:$Vo1,73:153,85:$Vp1},{21:$Vo1,73:154,85:$Vp1},{21:$Vo1,73:155,85:$Vp1},{21:$Vo1,73:156,85:$Vp1},{21:$Vo1,73:157,85:$Vp1},{21:$Vo1,73:158,85:$Vp1},{21:$Vo1,73:159,85:$Vp1},{17:[1,160],66:[1,163],84:[1,161],85:[1,162]},{17:[1,164],66:[1,167],84:[1,165],85:[1,166]},{17:[1,168]},{17:[1,169],66:[1,170]},{109:[1,171]},o($VA,[2,15],{20:[1,172]}),{21:$Vq1,24:$Vr1,26:173,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:180,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},o($Vc1,[2,50],{67:[1,181]}),o($Vw1,[2,68]),o($Vd1,[2,52],{37:$Ve1}),o($Vd1,[2,53],{37:$Ve1}),o($Vf1,[2,56]),o($Vf1,[2,61]),o($Vf1,[2,62]),o($VA,[2,11]),o($Vi1,[2,69]),{57:[1,182]},{35:[1,183],36:[1,184],57:[2,150],133:[1,185],134:[1,186]},{15:[1,187]},{15:[1,188]},{15:[1,189]},{20:[1,191],35:[1,190],57:[2,164]},{57:[1,192]},{57:[1,193]},{57:[2,172]},{57:[2,173]},{57:[1,194]},{57:[1,195]},{57:[1,196]},{57:[1,197]},{57:[1,198]},{57:[1,199]},{57:[1,200]},{57:[1,201]},{57:[1,202]},{57:[1,203]},{35:[1,204]},{57:[1,205],67:[1,206]},{57:[1,207],67:[1,208]},{57:[1,209],67:[1,210]},{35:[1,211]},{57:[1,212],67:[1,213]},{57:[1,214]},{35:[1,215]},{57:[1,216]},{21:[1,217]},o($Vx1,[2,17],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,43:$VG1,44:$VH1,45:$VI1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1,52:$VP1,53:$VQ1,55:$VR1}),o($VS1,[2,23]),o($VS1,[2,24]),o($VS1,[2,25],{34:[1,238]}),{21:$Vq1,24:$Vr1,26:239,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:240,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:241,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},o($Vx1,[2,18],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,43:$VG1,44:$VH1,45:$VI1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1,52:$VP1,53:$VQ1,55:$VR1}),{30:$V9,64:242,84:$Vf,85:$Vg,109:$Vh,121:$Vo,122:$Vp,123:$Vq,124:$Vr,125:$Vs,126:$Vt,127:$Vu,128:$Vv,129:$Vw,130:$Vx,131:$Vy,132:$Vz},o($Vi1,[2,71]),{21:[1,243]},{21:[1,244]},{57:[2,153]},{57:[2,154]},{85:[1,245]},{85:[1,246]},{85:[1,247]},{21:[1,250],84:[1,248],85:[1,249]},{21:[1,252],85:[1,251]},o($Vi1,[2,72]),o($Vi1,[2,73]),o($Vi1,[2,74]),o($Vi1,[2,75]),o($Vi1,[2,76]),o($Vi1,[2,77]),o($Vi1,[2,78]),o($Vi1,[2,79]),o($Vi1,[2,80]),o($Vi1,[2,81]),o($Vi1,[2,86]),o($Vi1,[2,87]),{84:[1,253],85:[1,254]},o($Vi1,[2,82]),{17:[1,255]},o($Vi1,[2,90]),{17:[1,256]},o($Vi1,[2,91]),{17:[1,257]},{84:[1,258],85:[1,259]},o($Vi1,[2,84]),{17:[1,260]},o($Vi1,[2,98]),{84:[1,261],85:[1,262]},o($Vi1,[2,122]),{22:[1,263]},{21:$Vq1,24:$Vr1,26:264,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:265,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:266,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:267,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:268,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:269,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:270,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:271,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:272,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:273,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:274,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:275,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:276,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:277,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:278,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:279,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:280,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:281,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:282,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:283,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{21:$Vq1,24:$Vr1,26:284,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},o($VT1,[2,33],{37:$VA1,38:$VB1,39:$VC1,40:$VD1}),o($VS1,[2,47]),{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,43:$VG1,44:$VH1,45:$VI1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1,52:$VP1,53:$VQ1,55:$VR1,57:[1,285]},o($Vw1,[2,67]),{57:[2,151]},{57:[2,152]},{35:[1,286],36:[1,287],57:[2,157]},{35:[1,288],36:[1,289],57:[2,160]},{35:[1,290],36:[1,291],57:[2,163]},{57:[2,165]},{57:[2,166]},{57:[2,170]},{22:[1,292],35:[1,294],36:[1,293]},{22:[1,295]},{57:[1,296]},{57:[1,297]},{57:[1,298]},{57:[1,299]},{57:[1,300]},{57:[1,301],67:[1,302]},{57:[1,303],67:[1,304]},{57:[1,305]},{57:[1,306]},{57:[1,307]},o($VA,[2,16]),o($VT1,[2,27],{37:$VA1,38:$VB1,39:$VC1,40:$VD1}),o($VT1,[2,28],{37:$VA1,38:$VB1,39:$VC1,40:$VD1}),o($VS1,[2,29]),o($VS1,[2,30]),o($VS1,[2,31]),o($VS1,[2,32]),o($VU1,[2,34],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1}),o($VU1,[2,35],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,52,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],[2,36],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,44:$VH1,45:$VI1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,52,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],[2,37],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,45,52,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],[2,38],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,44:$VH1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1}),o($VV1,[2,39],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1}),o($VV1,[2,40],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1}),o($VV1,[2,41],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1}),o($VV1,[2,42],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1}),o($VW1,[2,43],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1}),o($VW1,[2,44],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,52,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],[2,45],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,43:$VG1,44:$VH1,45:$VI1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,53,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],[2,46],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,43:$VG1,44:$VH1,45:$VI1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1,52:$VP1}),{15:[1,308],35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,43:$VG1,44:$VH1,45:$VI1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1,52:$VP1,53:$VQ1,55:$VR1},o([5,13,15,17,18,21,23,24,27,28,30,31,33,55,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],[2,26],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,43:$VG1,44:$VH1,45:$VI1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1,52:$VP1,53:$VQ1}),o($VS1,[2,49]),{21:[1,309]},{21:[1,310]},{21:[1,311]},{21:[1,312]},{21:[1,313]},{21:[1,314]},{57:[2,167]},{21:[1,315]},{21:[1,316]},{57:[2,171]},o($Vi1,[2,88]),o($Vi1,[2,89]),o($Vi1,[2,83]),o($Vi1,[2,94]),o($Vi1,[2,95]),o($Vi1,[2,92]),{17:[1,317]},o($Vi1,[2,93]),{17:[1,318]},o($Vi1,[2,85]),o($Vi1,[2,99]),o($Vi1,[2,100]),{21:$Vq1,24:$Vr1,26:319,33:$Vs1,36:$Vt1,54:$Vu1,56:$Vv1},{57:[2,155]},{57:[2,156]},{57:[2,158]},{57:[2,159]},{57:[2,161]},{57:[2,162]},{22:[1,320]},{22:[1,321]},{57:[1,322]},{57:[1,323]},o([5,13,15,17,18,21,23,24,27,28,30,31,33,57,63,66,84,85,109,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],[2,48],{35:$Vy1,36:$Vz1,37:$VA1,38:$VB1,39:$VC1,40:$VD1,41:$VE1,42:$VF1,43:$VG1,44:$VH1,45:$VI1,46:$VJ1,47:$VK1,48:$VL1,49:$VM1,50:$VN1,51:$VO1,52:$VP1,53:$VQ1,55:$VR1}),{57:[2,168]},{57:[2,169]},o($Vi1,[2,96]),o($Vi1,[2,97])], -defaultActions: {52:[2,1],94:[2,123],95:[2,124],96:[2,125],97:[2,126],98:[2,127],101:[2,20],102:[2,21],151:[2,172],152:[2,173],185:[2,153],186:[2,154],243:[2,151],244:[2,152],248:[2,165],249:[2,166],250:[2,170],292:[2,167],295:[2,171],309:[2,155],310:[2,156],311:[2,158],312:[2,159],313:[2,161],314:[2,162],320:[2,168],321:[2,169]}, +table: [{3:1,4:2,6:3,7:4,8:5,9:6,10:7,11:8,12:9,13:$V0,14:11,15:$V1,17:$V2,18:$V3,21:$V4,23:$V5,24:$V6,27:$V7,28:$V8,30:$V9,31:$Va,33:$Vb,36:$Vc,58:19,61:21,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,110:$Vh,116:$Vi,117:$Vj,118:$Vk,119:$Vl,120:$Vm,121:$Vn,122:$Vo,123:$Vp,124:$Vq,125:$Vr,126:$Vs,127:$Vt,128:$Vu,129:$Vv,130:$Vw,131:$Vx,132:$Vy,133:$Vz},{1:[3]},{5:[1,52],6:53,7:4,8:5,9:6,10:7,11:8,12:9,13:$V0,14:11,15:$V1,17:$V2,18:$V3,21:$V4,23:$V5,24:$V6,27:$V7,28:$V8,30:$V9,31:$Va,33:$Vb,36:$Vc,58:19,61:21,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,110:$Vh,116:$Vi,117:$Vj,118:$Vk,119:$Vl,120:$Vm,121:$Vn,122:$Vo,123:$Vp,124:$Vq,125:$Vr,126:$Vs,127:$Vt,128:$Vu,129:$Vv,130:$Vw,131:$Vx,132:$Vy,133:$Vz},o($VA,[2,3]),o($VA,[2,4]),o($VA,[2,5]),o($VA,[2,6]),o($VA,[2,7]),o($VA,[2,8]),o($VA,[2,9]),o($VA,[2,10]),{13:[1,55],15:[1,54]},{16:56,68:57,69:$VB,71:$VC,72:$VD,74:$VE,75:$VF,76:$VG,77:$VH,78:$VI,79:$VJ,80:$VK,81:$VL,82:69,83:70,86:$VM,87:$VN,88:$VO,89:$VP,90:$VQ,91:$VR,92:$VS,93:$VT,94:$VU,95:$VV,96:$VW,97:$VX,98:$VY,99:$VZ,100:$V_,101:$V$,102:$V01,103:$V11,104:$V21,105:$V31,106:$V41,107:$V51,108:$V61,109:$V71,111:$V81,112:$V91,113:$Va1,114:$Vb1,115:$Vc1},{15:[1,100]},{19:101,29:[1,102],30:[1,103]},{24:[1,104]},{24:[1,105]},{32:[1,106]},o($VA,[2,19]),o($Vd1,[2,51],{35:[1,108],36:[1,109],59:[1,107]}),{21:$V4,24:$V6,30:$V9,33:$Vb,61:110,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,110:$Vh,116:$Vi,117:$Vj,118:$Vk,119:$Vl,120:$Vm,121:$Vn,122:$Vo,123:$Vp,124:$Vq,125:$Vr,126:$Vs,127:$Vt,128:$Vu,129:$Vv,130:$Vw,131:$Vx,132:$Vy,133:$Vz},o($Ve1,[2,55],{37:$Vf1}),o($Vg1,[2,57]),o($Vg1,[2,58]),o($Vg1,[2,59]),o($Vg1,[2,60]),o($Vg1,[2,63],{38:[1,112]}),o($Vg1,[2,64],{38:[1,113]}),o($Vg1,[2,65]),o($Vg1,[2,66]),o($Vh1,[2,135]),o($Vh1,[2,136]),o($Vh1,[2,137]),o($Vh1,[2,138]),o($Vh1,[2,139]),o($Vh1,[2,140]),o($Vh1,[2,141]),o($Vh1,[2,142]),o($Vh1,[2,143]),o($Vh1,[2,144]),o($Vh1,[2,145]),o($Vh1,[2,146]),o($Vh1,[2,147]),o($Vh1,[2,148]),o($Vh1,[2,149]),o($Vh1,[2,150]),o($Vg1,[2,129]),o($Vg1,[2,130]),o($Vg1,[2,131]),o($Vg1,[2,132]),o($Vg1,[2,133]),o($Vg1,[2,134]),{1:[2,1]},o($VA,[2,2]),{16:114,68:57,69:$VB,71:$VC,72:$VD,74:$VE,75:$VF,76:$VG,77:$VH,78:$VI,79:$VJ,80:$VK,81:$VL,82:69,83:70,86:$VM,87:$VN,88:$VO,89:$VP,90:$VQ,91:$VR,92:$VS,93:$VT,94:$VU,95:$VV,96:$VW,97:$VX,98:$VY,99:$VZ,100:$V_,101:$V$,102:$V01,103:$V11,104:$V21,105:$V31,106:$V41,107:$V51,108:$V61,109:$V71,111:$V81,112:$V91,113:$Va1,114:$Vb1,115:$Vc1},o($VA,[2,12]),{13:[1,115],67:$Vi1},o($Vj1,[2,70]),{56:[1,117]},{56:[1,118]},{56:[1,119]},{56:[1,120]},{56:[1,121]},{56:[1,122]},{56:[1,123]},{56:[1,124]},{56:[1,125]},{56:[1,126]},{56:[1,127]},{56:[1,128]},{56:[1,129]},{56:[1,130]},o($Vj1,[2,101]),o($Vj1,[2,102]),o($Vj1,[2,103]),o($Vj1,[2,104]),o($Vj1,[2,105]),o($Vj1,[2,106]),o($Vj1,[2,107]),o($Vj1,[2,108]),o($Vj1,[2,109]),o($Vj1,[2,110]),o($Vj1,[2,111]),o($Vj1,[2,112]),o($Vj1,[2,113]),o($Vj1,[2,114]),o($Vj1,[2,115]),o($Vj1,[2,116]),o($Vj1,[2,117]),o($Vj1,[2,118]),o($Vj1,[2,119]),o($Vj1,[2,120]),o($Vj1,[2,121]),o($Vj1,[2,122]),{56:[1,131]},{56:[2,124]},{56:[2,125]},{56:[2,126]},{56:[2,127]},{56:[2,128]},o($VA,[2,14]),{17:[1,132]},{17:[2,20]},{17:[2,21]},{25:[1,133]},{25:[1,134]},o($VA,[2,22]),{30:$V9,60:135,64:136,84:$Vf,85:$Vg,110:$Vh,122:$Vo,123:$Vp,124:$Vq,125:$Vr,126:$Vs,127:$Vt,128:$Vu,129:$Vv,130:$Vw,131:$Vx,132:$Vy,133:$Vz},{21:$V4,24:$V6,30:$V9,33:$Vb,61:137,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,110:$Vh,116:$Vi,117:$Vj,118:$Vk,119:$Vl,120:$Vm,121:$Vn,122:$Vo,123:$Vp,124:$Vq,125:$Vr,126:$Vs,127:$Vt,128:$Vu,129:$Vv,130:$Vw,131:$Vx,132:$Vy,133:$Vz},{21:$V4,24:$V6,30:$V9,33:$Vb,61:138,62:22,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,110:$Vh,116:$Vi,117:$Vj,118:$Vk,119:$Vl,120:$Vm,121:$Vn,122:$Vo,123:$Vp,124:$Vq,125:$Vr,126:$Vs,127:$Vt,128:$Vu,129:$Vv,130:$Vw,131:$Vx,132:$Vy,133:$Vz},o($Ve1,[2,54],{37:$Vf1}),{21:$V4,24:$V6,30:$V9,33:$Vb,62:139,63:$Vd,64:24,65:25,66:$Ve,84:$Vf,85:$Vg,110:$Vh,116:$Vi,117:$Vj,118:$Vk,119:$Vl,120:$Vm,121:$Vn,122:$Vo,123:$Vp,124:$Vq,125:$Vr,126:$Vs,127:$Vt,128:$Vu,129:$Vv,130:$Vw,131:$Vx,132:$Vy,133:$Vz},{21:[1,140]},{33:[1,141]},{13:[1,142],67:$Vi1},o($VA,[2,13]),{68:143,69:$VB,71:$VC,72:$VD,74:$VE,75:$VF,76:$VG,77:$VH,78:$VI,79:$VJ,80:$VK,81:$VL,82:69,83:70,86:$VM,87:$VN,88:$VO,89:$VP,90:$VQ,91:$VR,92:$VS,93:$VT,94:$VU,95:$VV,96:$VW,97:$VX,98:$VY,99:$VZ,100:$V_,101:$V$,102:$V01,103:$V11,104:$V21,105:$V31,106:$V41,107:$V51,108:$V61,109:$V71,111:$V81,112:$V91,113:$Va1,114:$Vb1,115:$Vc1},{17:$Vk1,70:144,127:$Vl1,136:$Vm1,137:$Vn1,138:$Vo1},{17:$Vk1,70:150,127:$Vl1,136:$Vm1,137:$Vn1,138:$Vo1},{21:$Vp1,73:151,85:$Vq1},{21:$Vp1,73:154,85:$Vq1},{21:$Vp1,73:155,85:$Vq1},{21:$Vp1,73:156,85:$Vq1},{21:$Vp1,73:157,85:$Vq1},{21:$Vp1,73:158,85:$Vq1},{21:$Vp1,73:159,85:$Vq1},{21:$Vp1,73:160,85:$Vq1},{17:[1,161],66:[1,164],84:[1,162],85:[1,163]},{17:[1,165],66:[1,168],84:[1,166],85:[1,167]},{17:[1,169]},{17:[1,170],66:[1,171]},{110:[1,172]},o($VA,[2,15],{20:[1,173]}),{21:$Vr1,24:$Vs1,26:174,33:$Vt1,36:$Vu1,54:$Vv1,56:$Vw1},{21:$Vr1,24:$Vs1,26:181,33:$Vt1,36:$Vu1,54:$Vv1,56:$Vw1},o($Vd1,[2,50],{67:[1,182]}),o($Vx1,[2,68]),o($Ve1,[2,52],{37:$Vf1}),o($Ve1,[2,53],{37:$Vf1}),o($Vg1,[2,56]),o($Vg1,[2,61]),o($Vg1,[2,62]),o($VA,[2,11]),o($Vj1,[2,69]),{57:[1,183]},{35:[1,184],36:[1,185],57:[2,151],134:[1,186],135:[1,187]},{15:[1,188]},{15:[1,189]},{15:[1,190]},{20:[1,192],35:[1,191],57:[2,165]},{57:[1,193]},{57:[1,194]},{57:[2,173]},{57:[2,174]},{57:[1,195]},{57:[1,196]},{57:[1,197]},{57:[1,198]},{57:[1,199]},{57:[1,200]},{57:[1,201]},{57:[1,202]},{57:[1,203]},{57:[1,204]},{35:[1,205]},{57:[1,206],67:[1,207]},{57:[1,208],67:[1,209]},{57:[1,210],67:[1,211]},{35:[1,212]},{57:[1,213],67:[1,214]},{57:[1,215]},{35:[1,216]},{57:[1,217]},{21:[1,218]},o($Vy1,[2,17],{35:$Vz1,36:$VA1,37:$VB1,38:$VC1,39:$VD1,40:$VE1,41:$VF1,42:$VG1,43:$VH1,44:$VI1,45:$VJ1,46:$VK1,47:$VL1,48:$VM1,49:$VN1,50:$VO1,51:$VP1,52:$VQ1,53:$VR1,55:$VS1}),o($VT1,[2,23]),o($VT1,[2,24]),o($VT1,[2,25],{34:[1,239]}),{21:$Vr1,24:$Vs1,26:240,33:$Vt1,36:$Vu1,54:$Vv1,56:$Vw1},{21:$Vr1,24:$Vs1,26:241,33:$Vt1,36:$Vu1,54:$Vv1,56:$Vw1},{21:$Vr1,24:$Vs1,26:242,33:$Vt1,36:$Vu1,54:$Vv1,56:$Vw1},o($Vy1,[2,18],{35:$Vz1,36:$VA1,37:$VB1,38:$VC1,39:$VD1,40:$VE1,41:$VF1,42:$VG1,43:$VH1,44:$VI1,45:$VJ1,46:$VK1,47:$VL1,48:$VM1,49:$VN1,50:$VO1,51:$VP1,52:$VQ1,53:$VR1,55:$VS1}),{30:$V9,64:243,84:$Vf,85:$Vg,110:$Vh,122:$Vo,123:$Vp,124:$Vq,125:$Vr,126:$Vs,127:$Vt,128:$Vu,129:$Vv,130:$Vw,131:$Vx,132:$Vy,133:$Vz},o($Vj1,[2,71]),{21:[1,244]},{21:[1,245]},{57:[2,154]},{57:[2,155]},{85:[1,246]},{85:[1,247]},{85:[1,248]},{21:[1,251],84:[1,249],85:[1,250]},{21:[1,253],85:[1,252]},o($Vj1,[2,72]),o($Vj1,[2,73]),o($Vj1,[2,74]),o($Vj1,[2,75]),o($Vj1,[2,76]),o($Vj1,[2,77]),o($Vj1,[2,78]),o($Vj1,[2,79]),o($Vj1,[2,80]),o($Vj1,[2,81]),o($Vj1,[2,86]),o($Vj1,[2,87]),{84:[1,254],85:[1,255]},o($Vj1,[2,82]),{17:[1,256]},o($Vj1,[2,90]),{17:[1,257]},o($Vj1,[2,91]),{17:[1,258]},{84:[1,259],85:[1,260]},o($Vj1,[2,84]),{17:[1,261]},o($Vj1,[2,98]),{84:[1,262],85:[1,263]},o($Vj1,[2,123]),{22:[1,264]},{21:$Vr1,24:$Vs1,26:265,33:$Vt1,36:$Vu1,54:$Vv1,56:$Vw1},{21:$Vr1,24:$Vs1,26:266,33:$Vt1,36:$Vu1,54:$Vv1,56:$Vw1},{21:$Vr1,24:$Vs1,26:267,33:$Vt1,36:$Vu1,54:$Vv1,56:$Vw1},{21:$Vr1,24:$Vs1,26:268,33:$Vt1,36:$Vu1,54:$Vv1,56:$Vw1},{21:$Vr1,24:$Vs1,26:269,33:$Vt1,36:$Vu1,54:$Vv1,56:$Vw1},{21:$Vr1,24:$Vs1,26:270,33:$Vt1,36:$Vu1,54:$Vv1,56:$Vw1},{21:$Vr1,24:$Vs1,26:271,33:$Vt1,36:$Vu1,54:$Vv1,56:$Vw1},{21:$Vr1,24:$Vs1,26:272,33:$Vt1,36:$Vu1,54:$Vv1,56:$Vw1},{21:$Vr1,24:$Vs1,26:273,33:$Vt1,36:$Vu1,54:$Vv1,56:$Vw1},{21:$Vr1,24:$Vs1,26:274,33:$Vt1,36:$Vu1,54:$Vv1,56:$Vw1},{21:$Vr1,24:$Vs1,26:275,33:$Vt1,36:$Vu1,54:$Vv1,56:$Vw1},{21:$Vr1,24:$Vs1,26:276,33:$Vt1,36:$Vu1,54:$Vv1,56:$Vw1},{21:$Vr1,24:$Vs1,26:277,33:$Vt1,36:$Vu1,54:$Vv1,56:$Vw1},{21:$Vr1,24:$Vs1,26:278,33:$Vt1,36:$Vu1,54:$Vv1,56:$Vw1},{21:$Vr1,24:$Vs1,26:279,33:$Vt1,36:$Vu1,54:$Vv1,56:$Vw1},{21:$Vr1,24:$Vs1,26:280,33:$Vt1,36:$Vu1,54:$Vv1,56:$Vw1},{21:$Vr1,24:$Vs1,26:281,33:$Vt1,36:$Vu1,54:$Vv1,56:$Vw1},{21:$Vr1,24:$Vs1,26:282,33:$Vt1,36:$Vu1,54:$Vv1,56:$Vw1},{21:$Vr1,24:$Vs1,26:283,33:$Vt1,36:$Vu1,54:$Vv1,56:$Vw1},{21:$Vr1,24:$Vs1,26:284,33:$Vt1,36:$Vu1,54:$Vv1,56:$Vw1},{21:$Vr1,24:$Vs1,26:285,33:$Vt1,36:$Vu1,54:$Vv1,56:$Vw1},o($VU1,[2,33],{37:$VB1,38:$VC1,39:$VD1,40:$VE1}),o($VT1,[2,47]),{35:$Vz1,36:$VA1,37:$VB1,38:$VC1,39:$VD1,40:$VE1,41:$VF1,42:$VG1,43:$VH1,44:$VI1,45:$VJ1,46:$VK1,47:$VL1,48:$VM1,49:$VN1,50:$VO1,51:$VP1,52:$VQ1,53:$VR1,55:$VS1,57:[1,286]},o($Vx1,[2,67]),{57:[2,152]},{57:[2,153]},{35:[1,287],36:[1,288],57:[2,158]},{35:[1,289],36:[1,290],57:[2,161]},{35:[1,291],36:[1,292],57:[2,164]},{57:[2,166]},{57:[2,167]},{57:[2,171]},{22:[1,293],35:[1,295],36:[1,294]},{22:[1,296]},{57:[1,297]},{57:[1,298]},{57:[1,299]},{57:[1,300]},{57:[1,301]},{57:[1,302],67:[1,303]},{57:[1,304],67:[1,305]},{57:[1,306]},{57:[1,307]},{57:[1,308]},o($VA,[2,16]),o($VU1,[2,27],{37:$VB1,38:$VC1,39:$VD1,40:$VE1}),o($VU1,[2,28],{37:$VB1,38:$VC1,39:$VD1,40:$VE1}),o($VT1,[2,29]),o($VT1,[2,30]),o($VT1,[2,31]),o($VT1,[2,32]),o($VV1,[2,34],{35:$Vz1,36:$VA1,37:$VB1,38:$VC1,39:$VD1,40:$VE1}),o($VV1,[2,35],{35:$Vz1,36:$VA1,37:$VB1,38:$VC1,39:$VD1,40:$VE1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,52,53,55,57,63,66,84,85,110,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133],[2,36],{35:$Vz1,36:$VA1,37:$VB1,38:$VC1,39:$VD1,40:$VE1,41:$VF1,42:$VG1,44:$VI1,45:$VJ1,46:$VK1,47:$VL1,48:$VM1,49:$VN1,50:$VO1,51:$VP1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,52,53,55,57,63,66,84,85,110,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133],[2,37],{35:$Vz1,36:$VA1,37:$VB1,38:$VC1,39:$VD1,40:$VE1,41:$VF1,42:$VG1,46:$VK1,47:$VL1,48:$VM1,49:$VN1,50:$VO1,51:$VP1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,45,52,53,55,57,63,66,84,85,110,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133],[2,38],{35:$Vz1,36:$VA1,37:$VB1,38:$VC1,39:$VD1,40:$VE1,41:$VF1,42:$VG1,44:$VI1,46:$VK1,47:$VL1,48:$VM1,49:$VN1,50:$VO1,51:$VP1}),o($VW1,[2,39],{35:$Vz1,36:$VA1,37:$VB1,38:$VC1,39:$VD1,40:$VE1,41:$VF1,42:$VG1}),o($VW1,[2,40],{35:$Vz1,36:$VA1,37:$VB1,38:$VC1,39:$VD1,40:$VE1,41:$VF1,42:$VG1}),o($VW1,[2,41],{35:$Vz1,36:$VA1,37:$VB1,38:$VC1,39:$VD1,40:$VE1,41:$VF1,42:$VG1}),o($VW1,[2,42],{35:$Vz1,36:$VA1,37:$VB1,38:$VC1,39:$VD1,40:$VE1,41:$VF1,42:$VG1}),o($VX1,[2,43],{35:$Vz1,36:$VA1,37:$VB1,38:$VC1,39:$VD1,40:$VE1,41:$VF1,42:$VG1,46:$VK1,47:$VL1,48:$VM1,49:$VN1}),o($VX1,[2,44],{35:$Vz1,36:$VA1,37:$VB1,38:$VC1,39:$VD1,40:$VE1,41:$VF1,42:$VG1,46:$VK1,47:$VL1,48:$VM1,49:$VN1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,52,53,55,57,63,66,84,85,110,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133],[2,45],{35:$Vz1,36:$VA1,37:$VB1,38:$VC1,39:$VD1,40:$VE1,41:$VF1,42:$VG1,43:$VH1,44:$VI1,45:$VJ1,46:$VK1,47:$VL1,48:$VM1,49:$VN1,50:$VO1,51:$VP1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,53,55,57,63,66,84,85,110,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133],[2,46],{35:$Vz1,36:$VA1,37:$VB1,38:$VC1,39:$VD1,40:$VE1,41:$VF1,42:$VG1,43:$VH1,44:$VI1,45:$VJ1,46:$VK1,47:$VL1,48:$VM1,49:$VN1,50:$VO1,51:$VP1,52:$VQ1}),{15:[1,309],35:$Vz1,36:$VA1,37:$VB1,38:$VC1,39:$VD1,40:$VE1,41:$VF1,42:$VG1,43:$VH1,44:$VI1,45:$VJ1,46:$VK1,47:$VL1,48:$VM1,49:$VN1,50:$VO1,51:$VP1,52:$VQ1,53:$VR1,55:$VS1},o([5,13,15,17,18,21,23,24,27,28,30,31,33,55,57,63,66,84,85,110,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133],[2,26],{35:$Vz1,36:$VA1,37:$VB1,38:$VC1,39:$VD1,40:$VE1,41:$VF1,42:$VG1,43:$VH1,44:$VI1,45:$VJ1,46:$VK1,47:$VL1,48:$VM1,49:$VN1,50:$VO1,51:$VP1,52:$VQ1,53:$VR1}),o($VT1,[2,49]),{21:[1,310]},{21:[1,311]},{21:[1,312]},{21:[1,313]},{21:[1,314]},{21:[1,315]},{57:[2,168]},{21:[1,316]},{21:[1,317]},{57:[2,172]},o($Vj1,[2,88]),o($Vj1,[2,89]),o($Vj1,[2,83]),o($Vj1,[2,94]),o($Vj1,[2,95]),o($Vj1,[2,92]),{17:[1,318]},o($Vj1,[2,93]),{17:[1,319]},o($Vj1,[2,85]),o($Vj1,[2,99]),o($Vj1,[2,100]),{21:$Vr1,24:$Vs1,26:320,33:$Vt1,36:$Vu1,54:$Vv1,56:$Vw1},{57:[2,156]},{57:[2,157]},{57:[2,159]},{57:[2,160]},{57:[2,162]},{57:[2,163]},{22:[1,321]},{22:[1,322]},{57:[1,323]},{57:[1,324]},o([5,13,15,17,18,21,23,24,27,28,30,31,33,57,63,66,84,85,110,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133],[2,48],{35:$Vz1,36:$VA1,37:$VB1,38:$VC1,39:$VD1,40:$VE1,41:$VF1,42:$VG1,43:$VH1,44:$VI1,45:$VJ1,46:$VK1,47:$VL1,48:$VM1,49:$VN1,50:$VO1,51:$VP1,52:$VQ1,53:$VR1,55:$VS1}),{57:[2,169]},{57:[2,170]},o($Vj1,[2,96]),o($Vj1,[2,97])], +defaultActions: {52:[2,1],95:[2,124],96:[2,125],97:[2,126],98:[2,127],99:[2,128],102:[2,20],103:[2,21],152:[2,173],153:[2,174],186:[2,154],187:[2,155],244:[2,152],245:[2,153],249:[2,166],250:[2,167],251:[2,171],293:[2,168],296:[2,172],310:[2,156],311:[2,157],312:[2,159],313:[2,160],314:[2,162],315:[2,163],321:[2,169],322:[2,170]}, parseError: function parseError (str, hash) { if (hash.recoverable) { this.trace(str); @@ -1207,37 +1212,37 @@ case 6: return "LF"; break; case 7: /* console.log("Empty spaces"); */ break; -case 8: return 121; +case 8: return 122; break; -case 9: return 122; +case 9: return 123; break; -case 10: return 123; +case 10: return 124; break; -case 11: return 124; +case 11: return 125; break; case 12: return 85; break; -case 13: return 109; +case 13: return 110; break; -case 14: return 125; +case 14: return 126; break; case 15: return 30; break; -case 16: return 126; +case 16: return 127; break; -case 17: return 127; +case 17: return 128; break; -case 18: return 128; +case 18: return 129; break; -case 19: return 129; +case 19: return 130; break; case 20: return 84; break; -case 21: return 130; +case 21: return 131; break; -case 22: return 132; +case 22: return 133; break; -case 23: return 131; +case 23: return 132; break; case 24: return 69 break; @@ -1261,15 +1266,15 @@ case 33: return 77 break; case 34: return 81 break; -case 35: return 111 +case 35: return 112 break; -case 36: return 112 +case 36: return 113 break; -case 37: return 114 +case 37: return 115 break; -case 38: return 113 +case 38: return 114 break; -case 39: return 110 +case 39: return 111 break; case 40: return 86 break; @@ -1309,7 +1314,7 @@ case 57: return 103 break; case 58: return 104 break; -case 59: return 115 +case 59: return 105 break; case 60: return 116 break; @@ -1321,112 +1326,114 @@ case 63: return 119 break; case 64: return 120 break; -case 65: return 107 +case 65: return 121 break; -case 66: return 105 +case 66: return 108 break; case 67: return 106 break; -case 68: return 135 +case 68: return 107 break; case 69: return 136 break; case 70: return 137 break; -case 71: return 31 +case 71: return 138 break; -case 72: return 18 +case 72: return 31 break; -case 73: return 29 +case 73: return 18 break; -case 74: return 30 +case 74: return 29 break; -case 75: return 23 +case 75: return 30 break; -case 76: return 27 +case 76: return 23 break; -case 77: return 108 +case 77: return 27 break; -case 78: yy_.yytext = yy_.yytext.slice(1,-1); return 32; +case 78: return 109 break; -case 79: return 17; +case 79: yy_.yytext = yy_.yytext.slice(1,-1); return 32; break; -case 80: yy_.yytext = yy_.yytext.slice(1); return 24; +case 80: return 17; break; -case 81: yy_.yytext = yy_.yytext.slice(1); return 66; +case 81: yy_.yytext = yy_.yytext.slice(1); return 24; break; -case 82: return 15; +case 82: yy_.yytext = yy_.yytext.slice(1); return 66; break; -case 83: return 67 +case 83: return 15; break; -case 84: return 56 +case 84: return 67 break; -case 85: return 57 +case 85: return 56 break; -case 86: return 133 +case 86: return 57 break; case 87: return 134 break; -case 88: return 35 +case 88: return 135 +break; +case 89: return 35 break; -case 89: return 36 +case 90: return 36 break; -case 90: return 40 +case 91: return 40 break; -case 91: return 38 +case 92: return 38 break; -case 92: return 37 +case 93: return 37 break; -case 93: return 39 +case 94: return 39 break; -case 94: return 59 +case 95: return 59 break; -case 95: return 41 +case 96: return 41 break; -case 96: return 42 +case 97: return 42 break; -case 97: return 45 +case 98: return 45 break; -case 98: return 53 +case 99: return 53 break; -case 99: return 52 +case 100: return 52 break; -case 100: return 44 +case 101: return 44 break; -case 101: return 43 +case 102: return 43 break; -case 102: return 50 +case 103: return 50 break; -case 103: return 51 +case 104: return 51 break; -case 104: return 48 +case 105: return 48 break; -case 105: return 49 +case 106: return 49 break; -case 106: return 47 +case 107: return 47 break; -case 107: return 46 +case 108: return 46 break; -case 108: return 25 +case 109: return 25 break; -case 109: return 54 +case 110: return 54 break; -case 110: return 34 +case 111: return 34 break; -case 111: return 55 +case 112: return 55 break; -case 112: return 20 +case 113: return 20 break; -case 113: return 22 +case 114: return 22 break; -case 114: return 5; +case 115: return 5; break; -case 115: /* console.log("INVALID: " + yy_.yytext); */ return 'INVALID'; +case 116: /* console.log("INVALID: " + yy_.yytext); */ return 'INVALID'; break; } }, -rules: [/^(?:;[^\n\r]*)/,/^(?:\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+\/)/,/^(?:((0x[0-9A-Fa-f][0-9A-Fa-f_]*)|([0-9][0-9_]*))n\b)/,/^(?:(0x[0-9A-Fa-f][0-9A-Fa-f_]*)|([0-9][0-9_]*))/,/^(?:\$\$\{[^\}]*\})/,/^(?:(\$(\{[^\}]*\})?))/,/^(?:[\r\n]+)/,/^(?:[ \t]+)/,/^(?:A\b)/,/^(?:B\b)/,/^(?:C\b)/,/^(?:D\b)/,/^(?:E\b)/,/^(?:RCX\b)/,/^(?:SR\b)/,/^(?:CTX\b)/,/^(?:SP\b)/,/^(?:PC\b)/,/^(?:GAS\b)/,/^(?:zkPC\b)/,/^(?:RR\b)/,/^(?:STEP\b)/,/^(?:ROTL_C\b)/,/^(?:HASHPOS\b)/,/^(?:MLOAD\b)/,/^(?:MSTORE\b)/,/^(?:HASHKLEN\b)/,/^(?:HASHKDIGEST\b)/,/^(?:HASHK1\b)/,/^(?:HASHK\b)/,/^(?:HASHPLEN\b)/,/^(?:HASHPDIGEST\b)/,/^(?:HASHP1\b)/,/^(?:HASHP\b)/,/^(?:JMP\b)/,/^(?:JMPC\b)/,/^(?:JMPZ\b)/,/^(?:JMPNZ\b)/,/^(?:JMPNC\b)/,/^(?:JMPN\b)/,/^(?:CALL\b)/,/^(?:RETURN\b)/,/^(?:ASSERT\b)/,/^(?:SLOAD\b)/,/^(?:SSTORE\b)/,/^(?:ARITH\b)/,/^(?:ARITH_ECADD_DIFFERENT\b)/,/^(?:ARITH_ECADD_SAME\b)/,/^(?:ARITH_BN254_ADDFP2\b)/,/^(?:ARITH_BN254_SUBFP2\b)/,/^(?:ARITH_BN254_MULFP2\b)/,/^(?:ADD\b)/,/^(?:SUB\b)/,/^(?:LT\b)/,/^(?:SLT\b)/,/^(?:EQ\b)/,/^(?:AND\b)/,/^(?:OR\b)/,/^(?:XOR\b)/,/^(?:CNT_ARITH\b)/,/^(?:CNT_BINARY\b)/,/^(?:CNT_KECCAK_F\b)/,/^(?:CNT_MEM_ALIGN\b)/,/^(?:CNT_PADDING_PG\b)/,/^(?:CNT_POSEIDON_G\b)/,/^(?:MEM_ALIGN_WR8\b)/,/^(?:MEM_ALIGN_RD\b)/,/^(?:MEM_ALIGN_WR\b)/,/^(?:SYS\b)/,/^(?:MEM\b)/,/^(?:STACK\b)/,/^(?:INCLUDE\b)/,/^(?:VAR\b)/,/^(?:GLOBAL\b)/,/^(?:CTX\b)/,/^(?:CONST\b)/,/^(?:CONSTL\b)/,/^(?:REPEAT\b)/,/^(?:"[^"]+")/,/^(?:[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?:%[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?:@[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?::)/,/^(?:,)/,/^(?:\()/,/^(?:\))/,/^(?:\+\+)/,/^(?:--)/,/^(?:\+)/,/^(?:-)/,/^(?:\/)/,/^(?:\*\*)/,/^(?:\*)/,/^(?:%)/,/^(?:=>)/,/^(?:<<)/,/^(?:>>)/,/^(?:\^)/,/^(?:\|\|)/,/^(?:&&)/,/^(?:&)/,/^(?:\|)/,/^(?:==)/,/^(?:!=)/,/^(?:<=)/,/^(?:>=)/,/^(?:>)/,/^(?:<)/,/^(?:=)/,/^(?:!)/,/^(?:\?\?)/,/^(?:\?)/,/^(?:\[)/,/^(?:\])/,/^(?:$)/,/^(?:.)/], -conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115],"inclusive":true}} +rules: [/^(?:;[^\n\r]*)/,/^(?:\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+\/)/,/^(?:((0x[0-9A-Fa-f][0-9A-Fa-f_]*)|([0-9][0-9_]*))n\b)/,/^(?:(0x[0-9A-Fa-f][0-9A-Fa-f_]*)|([0-9][0-9_]*))/,/^(?:\$\$\{[^\}]*\})/,/^(?:(\$(\{[^\}]*\})?))/,/^(?:[\r\n]+)/,/^(?:[ \t]+)/,/^(?:A\b)/,/^(?:B\b)/,/^(?:C\b)/,/^(?:D\b)/,/^(?:E\b)/,/^(?:RCX\b)/,/^(?:SR\b)/,/^(?:CTX\b)/,/^(?:SP\b)/,/^(?:PC\b)/,/^(?:GAS\b)/,/^(?:zkPC\b)/,/^(?:RR\b)/,/^(?:STEP\b)/,/^(?:ROTL_C\b)/,/^(?:HASHPOS\b)/,/^(?:MLOAD\b)/,/^(?:MSTORE\b)/,/^(?:HASHKLEN\b)/,/^(?:HASHKDIGEST\b)/,/^(?:HASHK1\b)/,/^(?:HASHK\b)/,/^(?:HASHPLEN\b)/,/^(?:HASHPDIGEST\b)/,/^(?:HASHP1\b)/,/^(?:HASHP\b)/,/^(?:JMP\b)/,/^(?:JMPC\b)/,/^(?:JMPZ\b)/,/^(?:JMPNZ\b)/,/^(?:JMPNC\b)/,/^(?:JMPN\b)/,/^(?:CALL\b)/,/^(?:RETURN\b)/,/^(?:ASSERT\b)/,/^(?:SLOAD\b)/,/^(?:SSTORE\b)/,/^(?:ARITH\b)/,/^(?:ARITH_ECADD_DIFFERENT\b)/,/^(?:ARITH_ECADD_SAME\b)/,/^(?:ARITH_BN254_ADDFP2\b)/,/^(?:ARITH_BN254_SUBFP2\b)/,/^(?:ARITH_BN254_MULFP2\b)/,/^(?:ADD\b)/,/^(?:SUB\b)/,/^(?:LT\b)/,/^(?:SLT\b)/,/^(?:EQ\b)/,/^(?:AND\b)/,/^(?:OR\b)/,/^(?:XOR\b)/,/^(?:LT4\b)/,/^(?:CNT_ARITH\b)/,/^(?:CNT_BINARY\b)/,/^(?:CNT_KECCAK_F\b)/,/^(?:CNT_MEM_ALIGN\b)/,/^(?:CNT_PADDING_PG\b)/,/^(?:CNT_POSEIDON_G\b)/,/^(?:MEM_ALIGN_WR8\b)/,/^(?:MEM_ALIGN_RD\b)/,/^(?:MEM_ALIGN_WR\b)/,/^(?:SYS\b)/,/^(?:MEM\b)/,/^(?:STACK\b)/,/^(?:INCLUDE\b)/,/^(?:VAR\b)/,/^(?:GLOBAL\b)/,/^(?:CTX\b)/,/^(?:CONST\b)/,/^(?:CONSTL\b)/,/^(?:REPEAT\b)/,/^(?:"[^"]+")/,/^(?:[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?:%[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?:@[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?::)/,/^(?:,)/,/^(?:\()/,/^(?:\))/,/^(?:\+\+)/,/^(?:--)/,/^(?:\+)/,/^(?:-)/,/^(?:\/)/,/^(?:\*\*)/,/^(?:\*)/,/^(?:%)/,/^(?:=>)/,/^(?:<<)/,/^(?:>>)/,/^(?:\^)/,/^(?:\|\|)/,/^(?:&&)/,/^(?:&)/,/^(?:\|)/,/^(?:==)/,/^(?:!=)/,/^(?:<=)/,/^(?:>=)/,/^(?:>)/,/^(?:<)/,/^(?:=)/,/^(?:!)/,/^(?:\?\?)/,/^(?:\?)/,/^(?:\[)/,/^(?:\])/,/^(?:$)/,/^(?:.)/], +conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116],"inclusive":true}} }); return lexer; })(); diff --git a/src/zkasm_parser.jison b/src/zkasm_parser.jison index 318a66f..35df57e 100644 --- a/src/zkasm_parser.jison +++ b/src/zkasm_parser.jison @@ -60,6 +60,7 @@ EQ { return 'EQ' } AND { return 'AND' } OR { return 'OR' } XOR { return 'XOR' } +LT4 { return 'LT4' } CNT_ARITH { return 'CNT_ARITH' } CNT_BINARY { return 'CNT_BINARY' } CNT_KECCAK_F { return 'CNT_KECCAK_F' } @@ -690,6 +691,10 @@ op { $$ = { bin: 1, binOpcode: 7} } + | LT4 + { + $$ = { bin: 1, binOpcode: 8} + } | MEM_ALIGN_RD { $$ = { memAlignRD: 1, memAlignWR: 0, memAlignWR8: 0} From 08fd1cd0d87153ef3714948789ae19392b92c9e3 Mon Sep 17 00:00:00 2001 From: zkronos73 Date: Wed, 22 Nov 2023 15:45:58 +0100 Subject: [PATCH 14/25] rebuild parser and update instructions document --- build/zkasm_parser.js | 237 +++++++++++++++++++++++------------------- instructions.md | 6 +- 2 files changed, 134 insertions(+), 109 deletions(-) diff --git a/build/zkasm_parser.js b/build/zkasm_parser.js index 1ed6929..cbab9cd 100644 --- a/build/zkasm_parser.js +++ b/build/zkasm_parser.js @@ -72,14 +72,12 @@ } */ var zkasm_parser = (function(){ - -var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,10],$V1=[1,12],$V2=[1,13],$V3=[1,14],$V4=[1,26],$V5=[1,15],$V6=[1,28],$V7=[1,16],$V8=[1,18],$V9=[1,36],$Va=[1,17],$Vb=[1,27],$Vc=[1,20],$Vd=[1,23],$Ve=[1,29],$Vf=[1,40],$Vg=[1,34],$Vh=[1,45],$Vi=[1,46],$Vj=[1,47],$Vk=[1,48],$Vl=[1,49],$Vm=[1,50],$Vn=[1,51],$Vo=[1,52],$Vp=[1,30],$Vq=[1,31],$Vr=[1,32],$Vs=[1,33],$Vt=[1,35],$Vu=[1,37],$Vv=[1,38],$Vw=[1,39],$Vx=[1,41],$Vy=[1,42],$Vz=[1,43],$VA=[1,44],$VB=[5,13,15,17,18,21,23,24,27,28,30,31,33,36,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137],$VC=[1,59],$VD=[1,60],$VE=[1,61],$VF=[1,62],$VG=[1,63],$VH=[1,64],$VI=[1,65],$VJ=[1,66],$VK=[1,67],$VL=[1,68],$VM=[1,69],$VN=[1,70],$VO=[1,71],$VP=[1,72],$VQ=[1,73],$VR=[1,76],$VS=[1,77],$VT=[1,78],$VU=[1,79],$VV=[1,80],$VW=[1,81],$VX=[1,82],$VY=[1,83],$VZ=[1,84],$V_=[1,85],$V$=[1,86],$V01=[1,87],$V11=[1,88],$V21=[1,89],$V31=[1,90],$V41=[1,91],$V51=[1,92],$V61=[1,93],$V71=[1,94],$V81=[1,95],$V91=[1,96],$Va1=[1,97],$Vb1=[1,98],$Vc1=[1,99],$Vd1=[1,100],$Ve1=[1,101],$Vf1=[1,102],$Vg1=[1,103],$Vh1=[13,15],$Vi1=[13,15,35,36,59],$Vj1=[1,115],$Vk1=[13,15,35,36,37,59],$Vl1=[13,15,35,36,37,59,67],$Vm1=[1,120],$Vn1=[13,67],$Vo1=[1,157],$Vp1=[1,153],$Vq1=[1,154],$Vr1=[1,155],$Vs1=[1,156],$Vt1=[1,160],$Vu1=[1,161],$Vv1=[1,187],$Vw1=[1,189],$Vx1=[1,188],$Vy1=[1,190],$Vz1=[1,191],$VA1=[1,192],$VB1=[13,15,67],$VC1=[5,13,15,17,18,21,23,24,27,28,30,31,33,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137],$VD1=[1,235],$VE1=[1,236],$VF1=[1,237],$VG1=[1,238],$VH1=[1,239],$VI1=[1,240],$VJ1=[1,241],$VK1=[1,242],$VL1=[1,243],$VM1=[1,244],$VN1=[1,245],$VO1=[1,246],$VP1=[1,247],$VQ1=[1,248],$VR1=[1,249],$VS1=[1,250],$VT1=[1,251],$VU1=[1,252],$VV1=[1,253],$VW1=[1,254],$VX1=[5,13,15,17,18,21,23,24,27,28,30,31,33,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137],$VY1=[5,13,15,17,18,21,23,24,27,28,30,31,33,35,36,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137],$VZ1=[5,13,15,17,18,21,23,24,27,28,30,31,33,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137],$V_1=[5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137],$V$1=[5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,50,51,52,53,55,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137]; +var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,10],$V1=[1,12],$V2=[1,13],$V3=[1,14],$V4=[1,26],$V5=[1,15],$V6=[1,28],$V7=[1,16],$V8=[1,18],$V9=[1,36],$Va=[1,17],$Vb=[1,27],$Vc=[1,20],$Vd=[1,23],$Ve=[1,29],$Vf=[1,40],$Vg=[1,34],$Vh=[1,45],$Vi=[1,46],$Vj=[1,47],$Vk=[1,48],$Vl=[1,49],$Vm=[1,50],$Vn=[1,51],$Vo=[1,52],$Vp=[1,30],$Vq=[1,31],$Vr=[1,32],$Vs=[1,33],$Vt=[1,35],$Vu=[1,37],$Vv=[1,38],$Vw=[1,39],$Vx=[1,41],$Vy=[1,42],$Vz=[1,43],$VA=[1,44],$VB=[5,13,15,17,18,21,23,24,27,28,30,31,33,36,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],$VC=[1,59],$VD=[1,60],$VE=[1,61],$VF=[1,62],$VG=[1,63],$VH=[1,64],$VI=[1,65],$VJ=[1,66],$VK=[1,67],$VL=[1,68],$VM=[1,69],$VN=[1,70],$VO=[1,71],$VP=[1,72],$VQ=[1,73],$VR=[1,76],$VS=[1,77],$VT=[1,78],$VU=[1,79],$VV=[1,80],$VW=[1,81],$VX=[1,82],$VY=[1,83],$VZ=[1,84],$V_=[1,85],$V$=[1,86],$V01=[1,87],$V11=[1,88],$V21=[1,89],$V31=[1,90],$V41=[1,91],$V51=[1,92],$V61=[1,93],$V71=[1,94],$V81=[1,95],$V91=[1,96],$Va1=[1,97],$Vb1=[1,98],$Vc1=[1,99],$Vd1=[1,100],$Ve1=[1,101],$Vf1=[1,102],$Vg1=[1,103],$Vh1=[1,104],$Vi1=[13,15],$Vj1=[13,15,35,36,59],$Vk1=[1,116],$Vl1=[13,15,35,36,37,59],$Vm1=[13,15,35,36,37,59,67],$Vn1=[1,121],$Vo1=[13,67],$Vp1=[1,158],$Vq1=[1,154],$Vr1=[1,155],$Vs1=[1,156],$Vt1=[1,157],$Vu1=[1,161],$Vv1=[1,162],$Vw1=[1,188],$Vx1=[1,190],$Vy1=[1,189],$Vz1=[1,191],$VA1=[1,192],$VB1=[1,193],$VC1=[13,15,67],$VD1=[5,13,15,17,18,21,23,24,27,28,30,31,33,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],$VE1=[1,236],$VF1=[1,237],$VG1=[1,238],$VH1=[1,239],$VI1=[1,240],$VJ1=[1,241],$VK1=[1,242],$VL1=[1,243],$VM1=[1,244],$VN1=[1,245],$VO1=[1,246],$VP1=[1,247],$VQ1=[1,248],$VR1=[1,249],$VS1=[1,250],$VT1=[1,251],$VU1=[1,252],$VV1=[1,253],$VW1=[1,254],$VX1=[1,255],$VY1=[5,13,15,17,18,21,23,24,27,28,30,31,33,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],$VZ1=[5,13,15,17,18,21,23,24,27,28,30,31,33,35,36,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],$V_1=[5,13,15,17,18,21,23,24,27,28,30,31,33,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],$V$1=[5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],$V02=[5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,50,51,52,53,55,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138]; var parser = {trace: function trace () { }, yy: {}, -symbols_: {"error":2,"allStatments":3,"statmentList":4,"EOF":5,"statment":6,"step":7,"label":8,"varDef":9,"constDef":10,"include":11,"command":12,"LF":13,"assignment":14,":":15,"opList":16,"IDENTIFIER":17,"VAR":18,"scope":19,"[":20,"NUMBER":21,"]":22,"CONST":23,"CONSTID":24,"=":25,"nexpr":26,"CONSTL":27,"COMMAND":28,"GLOBAL":29,"CTX":30,"INCLUDE":31,"STRING":32,"NUMBERL":33,"??":34,"+":35,"-":36,"*":37,"**":38,"%":39,"/":40,"<<":41,">>":42,"|":43,"&":44,"^":45,"<":46,">":47,"<=":48,">=":49,"==":50,"!=":51,"&&":52,"||":53,"!":54,"?":55,"(":56,")":57,"inRegsSum":58,"=>":59,"regsList":60,"inRegP":61,"inReg":62,"TAG":63,"reg":64,"counter":65,"REFERENCE":66,",":67,"op":68,"MLOAD":69,"addr":70,"MSTORE":71,"HASHK":72,"hashId":73,"HASHK1":74,"HASHKLEN":75,"HASHKDIGEST":76,"HASHS":77,"HASHS1":78,"HASHSLEN":79,"HASHSDIGEST":80,"HASHP":81,"HASHP1":82,"HASHPLEN":83,"HASHPDIGEST":84,"JMP":85,"jmpCond":86,"jmpNotCond":87,"RR":88,"E":89,"CALL":90,"RETURN":91,"ASSERT":92,"SLOAD":93,"SSTORE":94,"ARITH":95,"ARITH_ECADD_DIFFERENT":96,"ARITH_ECADD_SAME":97,"ARITH_BN254_MULFP2":98,"ARITH_BN254_ADDFP2":99,"ARITH_BN254_SUBFP2":100,"ADD":101,"SUB":102,"LT":103,"SLT":104,"EQ":105,"AND":106,"OR":107,"XOR":108,"MEM_ALIGN_RD":109,"MEM_ALIGN_WR":110,"MEM_ALIGN_WR8":111,"REPEAT":112,"RCX":113,"JMPN":114,"JMPC":115,"JMPZ":116,"JMPNC":117,"JMPNZ":118,"CNT_ARITH":119,"CNT_BINARY":120,"CNT_KECCAK_F":121,"CNT_SHA256_F":122,"CNT_MEM_ALIGN":123,"CNT_PADDING_PG":124,"CNT_POSEIDON_G":125,"A":126,"B":127,"C":128,"D":129,"SR":130,"SP":131,"PC":132,"GAS":133,"zkPC":134,"STEP":135,"HASHPOS":136,"ROTL_C":137,"++":138,"--":139,"SYS":140,"MEM":141,"STACK":142,"$accept":0,"$end":1}, -terminals_: {2:"error",5:"EOF",13:"LF",15:":",17:"IDENTIFIER",18:"VAR",20:"[",21:"NUMBER",22:"]",23:"CONST",24:"CONSTID",25:"=",27:"CONSTL",28:"COMMAND",29:"GLOBAL",30:"CTX",31:"INCLUDE",32:"STRING",33:"NUMBERL",34:"??",35:"+",36:"-",37:"*",38:"**",39:"%",40:"/",41:"<<",42:">>",43:"|",44:"&",45:"^",46:"<",47:">",48:"<=",49:">=",50:"==",51:"!=",52:"&&",53:"||",54:"!",55:"?",56:"(",57:")",59:"=>",63:"TAG",66:"REFERENCE",67:",",69:"MLOAD",71:"MSTORE",72:"HASHK",74:"HASHK1",75:"HASHKLEN",76:"HASHKDIGEST",77:"HASHS",78:"HASHS1",79:"HASHSLEN",80:"HASHSDIGEST",81:"HASHP",82:"HASHP1",83:"HASHPLEN",84:"HASHPDIGEST",85:"JMP",88:"RR",89:"E",90:"CALL",91:"RETURN",92:"ASSERT",93:"SLOAD",94:"SSTORE",95:"ARITH",96:"ARITH_ECADD_DIFFERENT",97:"ARITH_ECADD_SAME",98:"ARITH_BN254_MULFP2",99:"ARITH_BN254_ADDFP2",100:"ARITH_BN254_SUBFP2",101:"ADD",102:"SUB",103:"LT",104:"SLT",105:"EQ",106:"AND",107:"OR",108:"XOR",109:"MEM_ALIGN_RD",110:"MEM_ALIGN_WR",111:"MEM_ALIGN_WR8",112:"REPEAT",113:"RCX",114:"JMPN",115:"JMPC",116:"JMPZ",117:"JMPNC",118:"JMPNZ",119:"CNT_ARITH",120:"CNT_BINARY",121:"CNT_KECCAK_F",122:"CNT_SHA256_F",123:"CNT_MEM_ALIGN",124:"CNT_PADDING_PG",125:"CNT_POSEIDON_G",126:"A",127:"B",128:"C",129:"D",130:"SR",131:"SP",132:"PC",133:"GAS",134:"zkPC",135:"STEP",136:"HASHPOS",137:"ROTL_C",138:"++",139:"--",140:"SYS",141:"MEM",142:"STACK"}, -productions_: [0,[3,2],[4,2],[4,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[7,4],[7,2],[7,3],[8,2],[9,3],[9,6],[10,4],[10,4],[12,1],[19,1],[19,1],[11,2],[26,1],[26,1],[26,1],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,2],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,2],[26,5],[26,3],[14,3],[14,1],[58,3],[58,3],[58,2],[58,1],[61,3],[61,1],[62,1],[62,1],[62,1],[62,3],[62,3],[62,1],[62,1],[62,1],[62,1],[60,3],[60,1],[16,3],[16,1],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,6],[68,4],[68,6],[68,4],[68,4],[68,6],[68,6],[68,4],[68,4],[68,6],[68,6],[68,6],[68,6],[68,8],[68,8],[68,4],[68,6],[68,6],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,4],[86,1],[86,1],[86,1],[87,1],[87,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[70,1],[70,3],[70,3],[70,2],[70,2],[70,5],[70,5],[70,3],[70,5],[70,5],[70,3],[70,5],[70,5],[70,3],[70,1],[70,3],[70,3],[70,4],[70,6],[70,6],[70,3],[70,4],[73,1],[73,1]], - +symbols_: {"error":2,"allStatments":3,"statmentList":4,"EOF":5,"statment":6,"step":7,"label":8,"varDef":9,"constDef":10,"include":11,"command":12,"LF":13,"assignment":14,":":15,"opList":16,"IDENTIFIER":17,"VAR":18,"scope":19,"[":20,"NUMBER":21,"]":22,"CONST":23,"CONSTID":24,"=":25,"nexpr":26,"CONSTL":27,"COMMAND":28,"GLOBAL":29,"CTX":30,"INCLUDE":31,"STRING":32,"NUMBERL":33,"??":34,"+":35,"-":36,"*":37,"**":38,"%":39,"/":40,"<<":41,">>":42,"|":43,"&":44,"^":45,"<":46,">":47,"<=":48,">=":49,"==":50,"!=":51,"&&":52,"||":53,"!":54,"?":55,"(":56,")":57,"inRegsSum":58,"=>":59,"regsList":60,"inRegP":61,"inReg":62,"TAG":63,"reg":64,"counter":65,"REFERENCE":66,",":67,"op":68,"MLOAD":69,"addr":70,"MSTORE":71,"HASHK":72,"hashId":73,"HASHK1":74,"HASHKLEN":75,"HASHKDIGEST":76,"HASHS":77,"HASHS1":78,"HASHSLEN":79,"HASHSDIGEST":80,"HASHP":81,"HASHP1":82,"HASHPLEN":83,"HASHPDIGEST":84,"JMP":85,"jmpCond":86,"jmpNotCond":87,"RR":88,"E":89,"CALL":90,"RETURN":91,"ASSERT":92,"SLOAD":93,"SSTORE":94,"ARITH":95,"ARITH_ECADD_DIFFERENT":96,"ARITH_ECADD_SAME":97,"ARITH_BN254_MULFP2":98,"ARITH_BN254_ADDFP2":99,"ARITH_BN254_SUBFP2":100,"ADD":101,"SUB":102,"LT":103,"SLT":104,"EQ":105,"AND":106,"OR":107,"XOR":108,"LT4":109,"MEM_ALIGN_RD":110,"MEM_ALIGN_WR":111,"MEM_ALIGN_WR8":112,"REPEAT":113,"RCX":114,"JMPN":115,"JMPC":116,"JMPZ":117,"JMPNC":118,"JMPNZ":119,"CNT_ARITH":120,"CNT_BINARY":121,"CNT_KECCAK_F":122,"CNT_SHA256_F":123,"CNT_MEM_ALIGN":124,"CNT_PADDING_PG":125,"CNT_POSEIDON_G":126,"A":127,"B":128,"C":129,"D":130,"SR":131,"SP":132,"PC":133,"GAS":134,"zkPC":135,"STEP":136,"HASHPOS":137,"ROTL_C":138,"++":139,"--":140,"SYS":141,"MEM":142,"STACK":143,"$accept":0,"$end":1}, +terminals_: {2:"error",5:"EOF",13:"LF",15:":",17:"IDENTIFIER",18:"VAR",20:"[",21:"NUMBER",22:"]",23:"CONST",24:"CONSTID",25:"=",27:"CONSTL",28:"COMMAND",29:"GLOBAL",30:"CTX",31:"INCLUDE",32:"STRING",33:"NUMBERL",34:"??",35:"+",36:"-",37:"*",38:"**",39:"%",40:"/",41:"<<",42:">>",43:"|",44:"&",45:"^",46:"<",47:">",48:"<=",49:">=",50:"==",51:"!=",52:"&&",53:"||",54:"!",55:"?",56:"(",57:")",59:"=>",63:"TAG",66:"REFERENCE",67:",",69:"MLOAD",71:"MSTORE",72:"HASHK",74:"HASHK1",75:"HASHKLEN",76:"HASHKDIGEST",77:"HASHS",78:"HASHS1",79:"HASHSLEN",80:"HASHSDIGEST",81:"HASHP",82:"HASHP1",83:"HASHPLEN",84:"HASHPDIGEST",85:"JMP",88:"RR",89:"E",90:"CALL",91:"RETURN",92:"ASSERT",93:"SLOAD",94:"SSTORE",95:"ARITH",96:"ARITH_ECADD_DIFFERENT",97:"ARITH_ECADD_SAME",98:"ARITH_BN254_MULFP2",99:"ARITH_BN254_ADDFP2",100:"ARITH_BN254_SUBFP2",101:"ADD",102:"SUB",103:"LT",104:"SLT",105:"EQ",106:"AND",107:"OR",108:"XOR",109:"LT4",110:"MEM_ALIGN_RD",111:"MEM_ALIGN_WR",112:"MEM_ALIGN_WR8",113:"REPEAT",114:"RCX",115:"JMPN",116:"JMPC",117:"JMPZ",118:"JMPNC",119:"JMPNZ",120:"CNT_ARITH",121:"CNT_BINARY",122:"CNT_KECCAK_F",123:"CNT_SHA256_F",124:"CNT_MEM_ALIGN",125:"CNT_PADDING_PG",126:"CNT_POSEIDON_G",127:"A",128:"B",129:"C",130:"D",131:"SR",132:"SP",133:"PC",134:"GAS",135:"zkPC",136:"STEP",137:"HASHPOS",138:"ROTL_C",139:"++",140:"--",141:"SYS",142:"MEM",143:"STACK"}, +productions_: [0,[3,2],[4,2],[4,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[7,4],[7,2],[7,3],[8,2],[9,3],[9,6],[10,4],[10,4],[12,1],[19,1],[19,1],[11,2],[26,1],[26,1],[26,1],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,2],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,2],[26,5],[26,3],[14,3],[14,1],[58,3],[58,3],[58,2],[58,1],[61,3],[61,1],[62,1],[62,1],[62,1],[62,3],[62,3],[62,1],[62,1],[62,1],[62,1],[60,3],[60,1],[16,3],[16,1],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,6],[68,4],[68,6],[68,4],[68,4],[68,6],[68,6],[68,4],[68,4],[68,6],[68,6],[68,6],[68,6],[68,8],[68,8],[68,4],[68,6],[68,6],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,4],[86,1],[86,1],[86,1],[87,1],[87,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[70,1],[70,3],[70,3],[70,2],[70,2],[70,5],[70,5],[70,3],[70,5],[70,5],[70,3],[70,5],[70,5],[70,3],[70,1],[70,3],[70,3],[70,4],[70,6],[70,6],[70,3],[70,4],[73,1],[73,1]], performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { /* this == yyval */ @@ -557,7 +555,6 @@ case 118: break; case 119: - this.$ = { bin: 1, binOpcode: 4} break; @@ -578,154 +575,176 @@ case 122: break; case 123: - this.$ = { memAlignRD: 1, memAlignWR: 0, memAlignWR8: 0} + this.$ = { bin: 1, binOpcode: 8} break; case 124: - this.$ = { memAlignRD: 0, memAlignWR: 1, memAlignWR8: 0} + this.$ = { memAlignRD: 1, memAlignWR: 0, memAlignWR8: 0} break; case 125: - this.$ = { memAlignRD: 0, memAlignWR: 0, memAlignWR8: 1} + this.$ = { memAlignRD: 0, memAlignWR: 1, memAlignWR8: 0} break; case 126: + this.$ = { memAlignRD: 0, memAlignWR: 0, memAlignWR8: 1} + +break; +case 127: + this.$ = { repeat: 1 } break; -case 130: +case 131: this.$ = 'JMPC' break; -case 131: +case 132: this.$ = 'JMPZ' break; -case 132: +case 133: this.$ = 'cntArith' break; -case 133: +case 134: this.$ = 'cntBinary' break; -case 134: +case 135: this.$ = 'cntKeccakF' break; -case 135: +case 136: this.$ = 'cntSha256F' break; -case 136: +case 137: this.$ = 'cntMemAlign' break; -case 137: +case 138: this.$ = 'cntPaddingPG' break; -case 138: +case 139: this.$ = 'cntPoseidonG' break; -case 155: +case 156: this.$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack:0, offset: 0, useCTX: 1} break; +case 157: + + this.$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack: 0, offset: $$[$0], useCTX: 1} +break; +case 158: + + this.$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack: 0, offset: -$$[$0], useCTX: 1} +break; +case 159: + + this.$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack: 1, offset: 0, useCTX: 1} +break; +case 160: + + this.$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack: -1, offset: 0, useCTX: 1} +break; +case 161: this.$ = { isStack: 0, isMem:0, ind:1, indRR: 0, incStack: 0, offset: $$[$0]} break; -case 161: +case 162: this.$ = { isStack: 0, isMem:0, ind:1, indRR: 0, incStack: 0, offset: -$$[$0]} break; -case 162: +case 163: this.$ = { isStack: 0, isMem:0, ind:1, indRR: 0, incStack: 0, offset: 0} break; -case 163: +case 164: this.$ = { isStack: 0, isMem: 1, ind:1, indRR: 0, incStack: 0, offset: $$[$0], useCTX: 1} break; -case 164: +case 165: this.$ = { isStack: 0, isMem: 1, ind:1, indRR: 0, incStack: 0, offset: -$$[$0], useCTX: 1} break; -case 165: +case 166: this.$ = { isStack: 0, isMem: 1, ind:1, indRR: 0, incStack: 0, offset: 0, useCTX: 1} break; -case 166: +case 167: this.$ = { isStack: 1, ind:1, indRR: 0, incStack: 0, offset: $$[$0], useCTX: 1} break; -case 167: +case 168: this.$ = { isStack: 1, ind:1, indRR: 0, incStack: 0, offset: -$$[$0], useCTX: 1} break; -case 168: +case 169: this.$ = { isStack: 1, ind:1, indRR: 0, incStack: 0, offset: 0, useCTX: 1} break; -case 169: +case 170: this.$ = { offset: $$[$0] } break; -case 170: +case 171: this.$ = { offset: $$[$0-2], ind: 0, indRR: 1 } break; -case 171: +case 172: this.$ = { offset: $$[$0-2], ind: 1, indRR: 0 } break; -case 172: +case 173: this.$ = { offset: $$[$0-3], ind: 1, indRR: 0 } break; -case 173: +case 174: this.$ = { offset: $$[$0-5], extraOffset: -$$[$0-1], ind: 1, indRR: 0 } break; -case 174: +case 175: this.$ = { offset: $$[$0-5], extraOffset: $$[$0-1], ind: 1, indRR: 0 } break; -case 175: +case 176: this.$ = { offset: $$[$0-2], extraOffset: $$[$0] } break; -case 176: +case 177: this.$ = { offset: $$[$0-3], extraOffset: $$[$0-1] } break; -case 177: +case 178: this.$ = {ind: 0, indRR: 0, offset:$$[$0]} break; -case 178: +case 179: this.$ = {ind: 1, indRR: 0, offset:0} break; } }, -table: [{3:1,4:2,6:3,7:4,8:5,9:6,10:7,11:8,12:9,13:$V0,14:11,15:$V1,17:$V2,18:$V3,21:$V4,23:$V5,24:$V6,27:$V7,28:$V8,30:$V9,31:$Va,33:$Vb,36:$Vc,58:19,61:21,62:22,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,113:$Vh,119:$Vi,120:$Vj,121:$Vk,122:$Vl,123:$Vm,124:$Vn,125:$Vo,126:$Vp,127:$Vq,128:$Vr,129:$Vs,130:$Vt,131:$Vu,132:$Vv,133:$Vw,134:$Vx,135:$Vy,136:$Vz,137:$VA},{1:[3]},{5:[1,53],6:54,7:4,8:5,9:6,10:7,11:8,12:9,13:$V0,14:11,15:$V1,17:$V2,18:$V3,21:$V4,23:$V5,24:$V6,27:$V7,28:$V8,30:$V9,31:$Va,33:$Vb,36:$Vc,58:19,61:21,62:22,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,113:$Vh,119:$Vi,120:$Vj,121:$Vk,122:$Vl,123:$Vm,124:$Vn,125:$Vo,126:$Vp,127:$Vq,128:$Vr,129:$Vs,130:$Vt,131:$Vu,132:$Vv,133:$Vw,134:$Vx,135:$Vy,136:$Vz,137:$VA},o($VB,[2,3]),o($VB,[2,4]),o($VB,[2,5]),o($VB,[2,6]),o($VB,[2,7]),o($VB,[2,8]),o($VB,[2,9]),o($VB,[2,10]),{13:[1,56],15:[1,55]},{16:57,68:58,69:$VC,71:$VD,72:$VE,74:$VF,75:$VG,76:$VH,77:$VI,78:$VJ,79:$VK,80:$VL,81:$VM,82:$VN,83:$VO,84:$VP,85:$VQ,86:74,87:75,90:$VR,91:$VS,92:$VT,93:$VU,94:$VV,95:$VW,96:$VX,97:$VY,98:$VZ,99:$V_,100:$V$,101:$V01,102:$V11,103:$V21,104:$V31,105:$V41,106:$V51,107:$V61,108:$V71,109:$V81,110:$V91,111:$Va1,112:$Vb1,114:$Vc1,115:$Vd1,116:$Ve1,117:$Vf1,118:$Vg1},{15:[1,104]},{19:105,29:[1,106],30:[1,107]},{24:[1,108]},{24:[1,109]},{32:[1,110]},o($VB,[2,19]),o($Vh1,[2,51],{35:[1,112],36:[1,113],59:[1,111]}),{21:$V4,24:$V6,30:$V9,33:$Vb,61:114,62:22,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,113:$Vh,119:$Vi,120:$Vj,121:$Vk,122:$Vl,123:$Vm,124:$Vn,125:$Vo,126:$Vp,127:$Vq,128:$Vr,129:$Vs,130:$Vt,131:$Vu,132:$Vv,133:$Vw,134:$Vx,135:$Vy,136:$Vz,137:$VA},o($Vi1,[2,55],{37:$Vj1}),o($Vk1,[2,57]),o($Vk1,[2,58]),o($Vk1,[2,59]),o($Vk1,[2,60]),o($Vk1,[2,63],{38:[1,116]}),o($Vk1,[2,64],{38:[1,117]}),o($Vk1,[2,65]),o($Vk1,[2,66]),o($Vl1,[2,139]),o($Vl1,[2,140]),o($Vl1,[2,141]),o($Vl1,[2,142]),o($Vl1,[2,143]),o($Vl1,[2,144]),o($Vl1,[2,145]),o($Vl1,[2,146]),o($Vl1,[2,147]),o($Vl1,[2,148]),o($Vl1,[2,149]),o($Vl1,[2,150]),o($Vl1,[2,151]),o($Vl1,[2,152]),o($Vl1,[2,153]),o($Vl1,[2,154]),o($Vk1,[2,132]),o($Vk1,[2,133]),o($Vk1,[2,134]),o($Vk1,[2,135]),o($Vk1,[2,136]),o($Vk1,[2,137]),o($Vk1,[2,138]),{1:[2,1]},o($VB,[2,2]),{16:118,68:58,69:$VC,71:$VD,72:$VE,74:$VF,75:$VG,76:$VH,77:$VI,78:$VJ,79:$VK,80:$VL,81:$VM,82:$VN,83:$VO,84:$VP,85:$VQ,86:74,87:75,90:$VR,91:$VS,92:$VT,93:$VU,94:$VV,95:$VW,96:$VX,97:$VY,98:$VZ,99:$V_,100:$V$,101:$V01,102:$V11,103:$V21,104:$V31,105:$V41,106:$V51,107:$V61,108:$V71,109:$V81,110:$V91,111:$Va1,112:$Vb1,114:$Vc1,115:$Vd1,116:$Ve1,117:$Vf1,118:$Vg1},o($VB,[2,12]),{13:[1,119],67:$Vm1},o($Vn1,[2,70]),{56:[1,121]},{56:[1,122]},{56:[1,123]},{56:[1,124]},{56:[1,125]},{56:[1,126]},{56:[1,127]},{56:[1,128]},{56:[1,129]},{56:[1,130]},{56:[1,131]},{56:[1,132]},{56:[1,133]},{56:[1,134]},{56:[1,135]},{56:[1,136]},{56:[1,137]},{56:[1,138]},o($Vn1,[2,105]),o($Vn1,[2,106]),o($Vn1,[2,107]),o($Vn1,[2,108]),o($Vn1,[2,109]),o($Vn1,[2,110]),o($Vn1,[2,111]),o($Vn1,[2,112]),o($Vn1,[2,113]),o($Vn1,[2,114]),o($Vn1,[2,115]),o($Vn1,[2,116]),o($Vn1,[2,117]),o($Vn1,[2,118]),o($Vn1,[2,119]),o($Vn1,[2,120]),o($Vn1,[2,121]),o($Vn1,[2,122]),o($Vn1,[2,123]),o($Vn1,[2,124]),o($Vn1,[2,125]),{56:[1,139]},{56:[2,127]},{56:[2,128]},{56:[2,129]},{56:[2,130]},{56:[2,131]},o($VB,[2,14]),{17:[1,140]},{17:[2,20]},{17:[2,21]},{25:[1,141]},{25:[1,142]},o($VB,[2,22]),{30:$V9,60:143,64:144,88:$Vf,89:$Vg,113:$Vh,126:$Vp,127:$Vq,128:$Vr,129:$Vs,130:$Vt,131:$Vu,132:$Vv,133:$Vw,134:$Vx,135:$Vy,136:$Vz,137:$VA},{21:$V4,24:$V6,30:$V9,33:$Vb,61:145,62:22,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,113:$Vh,119:$Vi,120:$Vj,121:$Vk,122:$Vl,123:$Vm,124:$Vn,125:$Vo,126:$Vp,127:$Vq,128:$Vr,129:$Vs,130:$Vt,131:$Vu,132:$Vv,133:$Vw,134:$Vx,135:$Vy,136:$Vz,137:$VA},{21:$V4,24:$V6,30:$V9,33:$Vb,61:146,62:22,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,113:$Vh,119:$Vi,120:$Vj,121:$Vk,122:$Vl,123:$Vm,124:$Vn,125:$Vo,126:$Vp,127:$Vq,128:$Vr,129:$Vs,130:$Vt,131:$Vu,132:$Vv,133:$Vw,134:$Vx,135:$Vy,136:$Vz,137:$VA},o($Vi1,[2,54],{37:$Vj1}),{21:$V4,24:$V6,30:$V9,33:$Vb,62:147,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,113:$Vh,119:$Vi,120:$Vj,121:$Vk,122:$Vl,123:$Vm,124:$Vn,125:$Vo,126:$Vp,127:$Vq,128:$Vr,129:$Vs,130:$Vt,131:$Vu,132:$Vv,133:$Vw,134:$Vx,135:$Vy,136:$Vz,137:$VA},{21:[1,148]},{33:[1,149]},{13:[1,150],67:$Vm1},o($VB,[2,13]),{68:151,69:$VC,71:$VD,72:$VE,74:$VF,75:$VG,76:$VH,77:$VI,78:$VJ,79:$VK,80:$VL,81:$VM,82:$VN,83:$VO,84:$VP,85:$VQ,86:74,87:75,90:$VR,91:$VS,92:$VT,93:$VU,94:$VV,95:$VW,96:$VX,97:$VY,98:$VZ,99:$V_,100:$V$,101:$V01,102:$V11,103:$V21,104:$V31,105:$V41,106:$V51,107:$V61,108:$V71,109:$V81,110:$V91,111:$Va1,112:$Vb1,114:$Vc1,115:$Vd1,116:$Ve1,117:$Vf1,118:$Vg1},{17:$Vo1,70:152,131:$Vp1,140:$Vq1,141:$Vr1,142:$Vs1},{17:$Vo1,70:158,131:$Vp1,140:$Vq1,141:$Vr1,142:$Vs1},{21:$Vt1,73:159,89:$Vu1},{21:$Vt1,73:162,89:$Vu1},{21:$Vt1,73:163,89:$Vu1},{21:$Vt1,73:164,89:$Vu1},{21:$Vt1,73:165,89:$Vu1},{21:$Vt1,73:166,89:$Vu1},{21:$Vt1,73:167,89:$Vu1},{21:$Vt1,73:168,89:$Vu1},{21:$Vt1,73:169,89:$Vu1},{21:$Vt1,73:170,89:$Vu1},{21:$Vt1,73:171,89:$Vu1},{21:$Vt1,73:172,89:$Vu1},{17:[1,173],66:[1,176],88:[1,174],89:[1,175]},{17:[1,177],66:[1,180],88:[1,178],89:[1,179]},{17:[1,181]},{17:[1,182],66:[1,183]},{113:[1,184]},o($VB,[2,15],{20:[1,185]}),{21:$Vv1,24:$Vw1,26:186,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{21:$Vv1,24:$Vw1,26:193,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},o($Vh1,[2,50],{67:[1,194]}),o($VB1,[2,68]),o($Vi1,[2,52],{37:$Vj1}),o($Vi1,[2,53],{37:$Vj1}),o($Vk1,[2,56]),o($Vk1,[2,61]),o($Vk1,[2,62]),o($VB,[2,11]),o($Vn1,[2,69]),{57:[1,195]},{35:[1,196],36:[1,197],57:[2,155],138:[1,198],139:[1,199]},{15:[1,200]},{15:[1,201]},{15:[1,202]},{20:[1,204],35:[1,203],57:[2,169]},{57:[1,205]},{57:[1,206]},{57:[2,177]},{57:[2,178]},{57:[1,207]},{57:[1,208]},{57:[1,209]},{57:[1,210]},{57:[1,211]},{57:[1,212]},{57:[1,213]},{57:[1,214]},{57:[1,215]},{57:[1,216]},{57:[1,217]},{57:[1,218]},{57:[1,219]},{57:[1,220]},{35:[1,221]},{57:[1,222],67:[1,223]},{57:[1,224],67:[1,225]},{57:[1,226],67:[1,227]},{35:[1,228]},{57:[1,229],67:[1,230]},{57:[1,231]},{35:[1,232]},{57:[1,233]},{21:[1,234]},o($VC1,[2,17],{35:$VD1,36:$VE1,37:$VF1,38:$VG1,39:$VH1,40:$VI1,41:$VJ1,42:$VK1,43:$VL1,44:$VM1,45:$VN1,46:$VO1,47:$VP1,48:$VQ1,49:$VR1,50:$VS1,51:$VT1,52:$VU1,53:$VV1,55:$VW1}),o($VX1,[2,23]),o($VX1,[2,24]),o($VX1,[2,25],{34:[1,255]}),{21:$Vv1,24:$Vw1,26:256,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{21:$Vv1,24:$Vw1,26:257,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{21:$Vv1,24:$Vw1,26:258,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},o($VC1,[2,18],{35:$VD1,36:$VE1,37:$VF1,38:$VG1,39:$VH1,40:$VI1,41:$VJ1,42:$VK1,43:$VL1,44:$VM1,45:$VN1,46:$VO1,47:$VP1,48:$VQ1,49:$VR1,50:$VS1,51:$VT1,52:$VU1,53:$VV1,55:$VW1}),{30:$V9,64:259,88:$Vf,89:$Vg,113:$Vh,126:$Vp,127:$Vq,128:$Vr,129:$Vs,130:$Vt,131:$Vu,132:$Vv,133:$Vw,134:$Vx,135:$Vy,136:$Vz,137:$VA},o($Vn1,[2,71]),{21:[1,260]},{21:[1,261]},{57:[2,158]},{57:[2,159]},{89:[1,262]},{89:[1,263]},{89:[1,264]},{21:[1,267],88:[1,265],89:[1,266]},{21:[1,269],89:[1,268]},o($Vn1,[2,72]),o($Vn1,[2,73]),o($Vn1,[2,74]),o($Vn1,[2,75]),o($Vn1,[2,76]),o($Vn1,[2,77]),o($Vn1,[2,78]),o($Vn1,[2,79]),o($Vn1,[2,80]),o($Vn1,[2,81]),o($Vn1,[2,82]),o($Vn1,[2,83]),o($Vn1,[2,84]),o($Vn1,[2,85]),o($Vn1,[2,90]),o($Vn1,[2,91]),{88:[1,270],89:[1,271]},o($Vn1,[2,86]),{17:[1,272]},o($Vn1,[2,94]),{17:[1,273]},o($Vn1,[2,95]),{17:[1,274]},{88:[1,275],89:[1,276]},o($Vn1,[2,88]),{17:[1,277]},o($Vn1,[2,102]),{88:[1,278],89:[1,279]},o($Vn1,[2,126]),{22:[1,280]},{21:$Vv1,24:$Vw1,26:281,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{21:$Vv1,24:$Vw1,26:282,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{21:$Vv1,24:$Vw1,26:283,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{21:$Vv1,24:$Vw1,26:284,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{21:$Vv1,24:$Vw1,26:285,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{21:$Vv1,24:$Vw1,26:286,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{21:$Vv1,24:$Vw1,26:287,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{21:$Vv1,24:$Vw1,26:288,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{21:$Vv1,24:$Vw1,26:289,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{21:$Vv1,24:$Vw1,26:290,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{21:$Vv1,24:$Vw1,26:291,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{21:$Vv1,24:$Vw1,26:292,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{21:$Vv1,24:$Vw1,26:293,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{21:$Vv1,24:$Vw1,26:294,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{21:$Vv1,24:$Vw1,26:295,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{21:$Vv1,24:$Vw1,26:296,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{21:$Vv1,24:$Vw1,26:297,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{21:$Vv1,24:$Vw1,26:298,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{21:$Vv1,24:$Vw1,26:299,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{21:$Vv1,24:$Vw1,26:300,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{21:$Vv1,24:$Vw1,26:301,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},o($VY1,[2,33],{37:$VF1,38:$VG1,39:$VH1,40:$VI1}),o($VX1,[2,47]),{35:$VD1,36:$VE1,37:$VF1,38:$VG1,39:$VH1,40:$VI1,41:$VJ1,42:$VK1,43:$VL1,44:$VM1,45:$VN1,46:$VO1,47:$VP1,48:$VQ1,49:$VR1,50:$VS1,51:$VT1,52:$VU1,53:$VV1,55:$VW1,57:[1,302]},o($VB1,[2,67]),{57:[2,156]},{57:[2,157]},{35:[1,303],36:[1,304],57:[2,162]},{35:[1,305],36:[1,306],57:[2,165]},{35:[1,307],36:[1,308],57:[2,168]},{57:[2,170]},{57:[2,171]},{57:[2,175]},{22:[1,309],35:[1,311],36:[1,310]},{22:[1,312]},{57:[1,313]},{57:[1,314]},{57:[1,315]},{57:[1,316]},{57:[1,317]},{57:[1,318],67:[1,319]},{57:[1,320],67:[1,321]},{57:[1,322]},{57:[1,323]},{57:[1,324]},o($VB,[2,16]),o($VY1,[2,27],{37:$VF1,38:$VG1,39:$VH1,40:$VI1}),o($VY1,[2,28],{37:$VF1,38:$VG1,39:$VH1,40:$VI1}),o($VX1,[2,29]),o($VX1,[2,30]),o($VX1,[2,31]),o($VX1,[2,32]),o($VZ1,[2,34],{35:$VD1,36:$VE1,37:$VF1,38:$VG1,39:$VH1,40:$VI1}),o($VZ1,[2,35],{35:$VD1,36:$VE1,37:$VF1,38:$VG1,39:$VH1,40:$VI1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,52,53,55,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137],[2,36],{35:$VD1,36:$VE1,37:$VF1,38:$VG1,39:$VH1,40:$VI1,41:$VJ1,42:$VK1,44:$VM1,45:$VN1,46:$VO1,47:$VP1,48:$VQ1,49:$VR1,50:$VS1,51:$VT1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,52,53,55,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137],[2,37],{35:$VD1,36:$VE1,37:$VF1,38:$VG1,39:$VH1,40:$VI1,41:$VJ1,42:$VK1,46:$VO1,47:$VP1,48:$VQ1,49:$VR1,50:$VS1,51:$VT1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,45,52,53,55,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137],[2,38],{35:$VD1,36:$VE1,37:$VF1,38:$VG1,39:$VH1,40:$VI1,41:$VJ1,42:$VK1,44:$VM1,46:$VO1,47:$VP1,48:$VQ1,49:$VR1,50:$VS1,51:$VT1}),o($V_1,[2,39],{35:$VD1,36:$VE1,37:$VF1,38:$VG1,39:$VH1,40:$VI1,41:$VJ1,42:$VK1}),o($V_1,[2,40],{35:$VD1,36:$VE1,37:$VF1,38:$VG1,39:$VH1,40:$VI1,41:$VJ1,42:$VK1}),o($V_1,[2,41],{35:$VD1,36:$VE1,37:$VF1,38:$VG1,39:$VH1,40:$VI1,41:$VJ1,42:$VK1}),o($V_1,[2,42],{35:$VD1,36:$VE1,37:$VF1,38:$VG1,39:$VH1,40:$VI1,41:$VJ1,42:$VK1}),o($V$1,[2,43],{35:$VD1,36:$VE1,37:$VF1,38:$VG1,39:$VH1,40:$VI1,41:$VJ1,42:$VK1,46:$VO1,47:$VP1,48:$VQ1,49:$VR1}),o($V$1,[2,44],{35:$VD1,36:$VE1,37:$VF1,38:$VG1,39:$VH1,40:$VI1,41:$VJ1,42:$VK1,46:$VO1,47:$VP1,48:$VQ1,49:$VR1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,52,53,55,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137],[2,45],{35:$VD1,36:$VE1,37:$VF1,38:$VG1,39:$VH1,40:$VI1,41:$VJ1,42:$VK1,43:$VL1,44:$VM1,45:$VN1,46:$VO1,47:$VP1,48:$VQ1,49:$VR1,50:$VS1,51:$VT1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,53,55,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137],[2,46],{35:$VD1,36:$VE1,37:$VF1,38:$VG1,39:$VH1,40:$VI1,41:$VJ1,42:$VK1,43:$VL1,44:$VM1,45:$VN1,46:$VO1,47:$VP1,48:$VQ1,49:$VR1,50:$VS1,51:$VT1,52:$VU1}),{15:[1,325],35:$VD1,36:$VE1,37:$VF1,38:$VG1,39:$VH1,40:$VI1,41:$VJ1,42:$VK1,43:$VL1,44:$VM1,45:$VN1,46:$VO1,47:$VP1,48:$VQ1,49:$VR1,50:$VS1,51:$VT1,52:$VU1,53:$VV1,55:$VW1},o([5,13,15,17,18,21,23,24,27,28,30,31,33,55,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137],[2,26],{35:$VD1,36:$VE1,37:$VF1,38:$VG1,39:$VH1,40:$VI1,41:$VJ1,42:$VK1,43:$VL1,44:$VM1,45:$VN1,46:$VO1,47:$VP1,48:$VQ1,49:$VR1,50:$VS1,51:$VT1,52:$VU1,53:$VV1}),o($VX1,[2,49]),{21:[1,326]},{21:[1,327]},{21:[1,328]},{21:[1,329]},{21:[1,330]},{21:[1,331]},{57:[2,172]},{21:[1,332]},{21:[1,333]},{57:[2,176]},o($Vn1,[2,92]),o($Vn1,[2,93]),o($Vn1,[2,87]),o($Vn1,[2,98]),o($Vn1,[2,99]),o($Vn1,[2,96]),{17:[1,334]},o($Vn1,[2,97]),{17:[1,335]},o($Vn1,[2,89]),o($Vn1,[2,103]),o($Vn1,[2,104]),{21:$Vv1,24:$Vw1,26:336,33:$Vx1,36:$Vy1,54:$Vz1,56:$VA1},{57:[2,160]},{57:[2,161]},{57:[2,163]},{57:[2,164]},{57:[2,166]},{57:[2,167]},{22:[1,337]},{22:[1,338]},{57:[1,339]},{57:[1,340]},o([5,13,15,17,18,21,23,24,27,28,30,31,33,57,63,66,88,89,113,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137],[2,48],{35:$VD1,36:$VE1,37:$VF1,38:$VG1,39:$VH1,40:$VI1,41:$VJ1,42:$VK1,43:$VL1,44:$VM1,45:$VN1,46:$VO1,47:$VP1,48:$VQ1,49:$VR1,50:$VS1,51:$VT1,52:$VU1,53:$VV1,55:$VW1}),{57:[2,173]},{57:[2,174]},o($Vn1,[2,100]),o($Vn1,[2,101])], -defaultActions: {53:[2,1],99:[2,127],100:[2,128],101:[2,129],102:[2,130],103:[2,131],106:[2,20],107:[2,21],160:[2,177],161:[2,178],198:[2,158],199:[2,159],260:[2,156],261:[2,157],265:[2,170],266:[2,171],267:[2,175],309:[2,172],312:[2,176],326:[2,160],327:[2,161],328:[2,163],329:[2,164],330:[2,166],331:[2,167],337:[2,173],338:[2,174]}, +table: [{3:1,4:2,6:3,7:4,8:5,9:6,10:7,11:8,12:9,13:$V0,14:11,15:$V1,17:$V2,18:$V3,21:$V4,23:$V5,24:$V6,27:$V7,28:$V8,30:$V9,31:$Va,33:$Vb,36:$Vc,58:19,61:21,62:22,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,114:$Vh,120:$Vi,121:$Vj,122:$Vk,123:$Vl,124:$Vm,125:$Vn,126:$Vo,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA},{1:[3]},{5:[1,53],6:54,7:4,8:5,9:6,10:7,11:8,12:9,13:$V0,14:11,15:$V1,17:$V2,18:$V3,21:$V4,23:$V5,24:$V6,27:$V7,28:$V8,30:$V9,31:$Va,33:$Vb,36:$Vc,58:19,61:21,62:22,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,114:$Vh,120:$Vi,121:$Vj,122:$Vk,123:$Vl,124:$Vm,125:$Vn,126:$Vo,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA},o($VB,[2,3]),o($VB,[2,4]),o($VB,[2,5]),o($VB,[2,6]),o($VB,[2,7]),o($VB,[2,8]),o($VB,[2,9]),o($VB,[2,10]),{13:[1,56],15:[1,55]},{16:57,68:58,69:$VC,71:$VD,72:$VE,74:$VF,75:$VG,76:$VH,77:$VI,78:$VJ,79:$VK,80:$VL,81:$VM,82:$VN,83:$VO,84:$VP,85:$VQ,86:74,87:75,90:$VR,91:$VS,92:$VT,93:$VU,94:$VV,95:$VW,96:$VX,97:$VY,98:$VZ,99:$V_,100:$V$,101:$V01,102:$V11,103:$V21,104:$V31,105:$V41,106:$V51,107:$V61,108:$V71,109:$V81,110:$V91,111:$Va1,112:$Vb1,113:$Vc1,115:$Vd1,116:$Ve1,117:$Vf1,118:$Vg1,119:$Vh1},{15:[1,105]},{19:106,29:[1,107],30:[1,108]},{24:[1,109]},{24:[1,110]},{32:[1,111]},o($VB,[2,19]),o($Vi1,[2,51],{35:[1,113],36:[1,114],59:[1,112]}),{21:$V4,24:$V6,30:$V9,33:$Vb,61:115,62:22,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,114:$Vh,120:$Vi,121:$Vj,122:$Vk,123:$Vl,124:$Vm,125:$Vn,126:$Vo,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA},o($Vj1,[2,55],{37:$Vk1}),o($Vl1,[2,57]),o($Vl1,[2,58]),o($Vl1,[2,59]),o($Vl1,[2,60]),o($Vl1,[2,63],{38:[1,117]}),o($Vl1,[2,64],{38:[1,118]}),o($Vl1,[2,65]),o($Vl1,[2,66]),o($Vm1,[2,140]),o($Vm1,[2,141]),o($Vm1,[2,142]),o($Vm1,[2,143]),o($Vm1,[2,144]),o($Vm1,[2,145]),o($Vm1,[2,146]),o($Vm1,[2,147]),o($Vm1,[2,148]),o($Vm1,[2,149]),o($Vm1,[2,150]),o($Vm1,[2,151]),o($Vm1,[2,152]),o($Vm1,[2,153]),o($Vm1,[2,154]),o($Vm1,[2,155]),o($Vl1,[2,133]),o($Vl1,[2,134]),o($Vl1,[2,135]),o($Vl1,[2,136]),o($Vl1,[2,137]),o($Vl1,[2,138]),o($Vl1,[2,139]),{1:[2,1]},o($VB,[2,2]),{16:119,68:58,69:$VC,71:$VD,72:$VE,74:$VF,75:$VG,76:$VH,77:$VI,78:$VJ,79:$VK,80:$VL,81:$VM,82:$VN,83:$VO,84:$VP,85:$VQ,86:74,87:75,90:$VR,91:$VS,92:$VT,93:$VU,94:$VV,95:$VW,96:$VX,97:$VY,98:$VZ,99:$V_,100:$V$,101:$V01,102:$V11,103:$V21,104:$V31,105:$V41,106:$V51,107:$V61,108:$V71,109:$V81,110:$V91,111:$Va1,112:$Vb1,113:$Vc1,115:$Vd1,116:$Ve1,117:$Vf1,118:$Vg1,119:$Vh1},o($VB,[2,12]),{13:[1,120],67:$Vn1},o($Vo1,[2,70]),{56:[1,122]},{56:[1,123]},{56:[1,124]},{56:[1,125]},{56:[1,126]},{56:[1,127]},{56:[1,128]},{56:[1,129]},{56:[1,130]},{56:[1,131]},{56:[1,132]},{56:[1,133]},{56:[1,134]},{56:[1,135]},{56:[1,136]},{56:[1,137]},{56:[1,138]},{56:[1,139]},o($Vo1,[2,105]),o($Vo1,[2,106]),o($Vo1,[2,107]),o($Vo1,[2,108]),o($Vo1,[2,109]),o($Vo1,[2,110]),o($Vo1,[2,111]),o($Vo1,[2,112]),o($Vo1,[2,113]),o($Vo1,[2,114]),o($Vo1,[2,115]),o($Vo1,[2,116]),o($Vo1,[2,117]),o($Vo1,[2,118]),o($Vo1,[2,119]),o($Vo1,[2,120]),o($Vo1,[2,121]),o($Vo1,[2,122]),o($Vo1,[2,123]),o($Vo1,[2,124]),o($Vo1,[2,125]),o($Vo1,[2,126]),{56:[1,140]},{56:[2,128]},{56:[2,129]},{56:[2,130]},{56:[2,131]},{56:[2,132]},o($VB,[2,14]),{17:[1,141]},{17:[2,20]},{17:[2,21]},{25:[1,142]},{25:[1,143]},o($VB,[2,22]),{30:$V9,60:144,64:145,88:$Vf,89:$Vg,114:$Vh,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA},{21:$V4,24:$V6,30:$V9,33:$Vb,61:146,62:22,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,114:$Vh,120:$Vi,121:$Vj,122:$Vk,123:$Vl,124:$Vm,125:$Vn,126:$Vo,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA},{21:$V4,24:$V6,30:$V9,33:$Vb,61:147,62:22,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,114:$Vh,120:$Vi,121:$Vj,122:$Vk,123:$Vl,124:$Vm,125:$Vn,126:$Vo,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA},o($Vj1,[2,54],{37:$Vk1}),{21:$V4,24:$V6,30:$V9,33:$Vb,62:148,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,114:$Vh,120:$Vi,121:$Vj,122:$Vk,123:$Vl,124:$Vm,125:$Vn,126:$Vo,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA},{21:[1,149]},{33:[1,150]},{13:[1,151],67:$Vn1},o($VB,[2,13]),{68:152,69:$VC,71:$VD,72:$VE,74:$VF,75:$VG,76:$VH,77:$VI,78:$VJ,79:$VK,80:$VL,81:$VM,82:$VN,83:$VO,84:$VP,85:$VQ,86:74,87:75,90:$VR,91:$VS,92:$VT,93:$VU,94:$VV,95:$VW,96:$VX,97:$VY,98:$VZ,99:$V_,100:$V$,101:$V01,102:$V11,103:$V21,104:$V31,105:$V41,106:$V51,107:$V61,108:$V71,109:$V81,110:$V91,111:$Va1,112:$Vb1,113:$Vc1,115:$Vd1,116:$Ve1,117:$Vf1,118:$Vg1,119:$Vh1},{17:$Vp1,70:153,132:$Vq1,141:$Vr1,142:$Vs1,143:$Vt1},{17:$Vp1,70:159,132:$Vq1,141:$Vr1,142:$Vs1,143:$Vt1},{21:$Vu1,73:160,89:$Vv1},{21:$Vu1,73:163,89:$Vv1},{21:$Vu1,73:164,89:$Vv1},{21:$Vu1,73:165,89:$Vv1},{21:$Vu1,73:166,89:$Vv1},{21:$Vu1,73:167,89:$Vv1},{21:$Vu1,73:168,89:$Vv1},{21:$Vu1,73:169,89:$Vv1},{21:$Vu1,73:170,89:$Vv1},{21:$Vu1,73:171,89:$Vv1},{21:$Vu1,73:172,89:$Vv1},{21:$Vu1,73:173,89:$Vv1},{17:[1,174],66:[1,177],88:[1,175],89:[1,176]},{17:[1,178],66:[1,181],88:[1,179],89:[1,180]},{17:[1,182]},{17:[1,183],66:[1,184]},{114:[1,185]},o($VB,[2,15],{20:[1,186]}),{21:$Vw1,24:$Vx1,26:187,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,24:$Vx1,26:194,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},o($Vi1,[2,50],{67:[1,195]}),o($VC1,[2,68]),o($Vj1,[2,52],{37:$Vk1}),o($Vj1,[2,53],{37:$Vk1}),o($Vl1,[2,56]),o($Vl1,[2,61]),o($Vl1,[2,62]),o($VB,[2,11]),o($Vo1,[2,69]),{57:[1,196]},{35:[1,197],36:[1,198],57:[2,156],139:[1,199],140:[1,200]},{15:[1,201]},{15:[1,202]},{15:[1,203]},{20:[1,205],35:[1,204],57:[2,170]},{57:[1,206]},{57:[1,207]},{57:[2,178]},{57:[2,179]},{57:[1,208]},{57:[1,209]},{57:[1,210]},{57:[1,211]},{57:[1,212]},{57:[1,213]},{57:[1,214]},{57:[1,215]},{57:[1,216]},{57:[1,217]},{57:[1,218]},{57:[1,219]},{57:[1,220]},{57:[1,221]},{35:[1,222]},{57:[1,223],67:[1,224]},{57:[1,225],67:[1,226]},{57:[1,227],67:[1,228]},{35:[1,229]},{57:[1,230],67:[1,231]},{57:[1,232]},{35:[1,233]},{57:[1,234]},{21:[1,235]},o($VD1,[2,17],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,43:$VM1,44:$VN1,45:$VO1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1,50:$VT1,51:$VU1,52:$VV1,53:$VW1,55:$VX1}),o($VY1,[2,23]),o($VY1,[2,24]),o($VY1,[2,25],{34:[1,256]}),{21:$Vw1,24:$Vx1,26:257,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,24:$Vx1,26:258,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,24:$Vx1,26:259,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},o($VD1,[2,18],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,43:$VM1,44:$VN1,45:$VO1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1,50:$VT1,51:$VU1,52:$VV1,53:$VW1,55:$VX1}),{30:$V9,64:260,88:$Vf,89:$Vg,114:$Vh,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA},o($Vo1,[2,71]),{21:[1,261]},{21:[1,262]},{57:[2,159]},{57:[2,160]},{89:[1,263]},{89:[1,264]},{89:[1,265]},{21:[1,268],88:[1,266],89:[1,267]},{21:[1,270],89:[1,269]},o($Vo1,[2,72]),o($Vo1,[2,73]),o($Vo1,[2,74]),o($Vo1,[2,75]),o($Vo1,[2,76]),o($Vo1,[2,77]),o($Vo1,[2,78]),o($Vo1,[2,79]),o($Vo1,[2,80]),o($Vo1,[2,81]),o($Vo1,[2,82]),o($Vo1,[2,83]),o($Vo1,[2,84]),o($Vo1,[2,85]),o($Vo1,[2,90]),o($Vo1,[2,91]),{88:[1,271],89:[1,272]},o($Vo1,[2,86]),{17:[1,273]},o($Vo1,[2,94]),{17:[1,274]},o($Vo1,[2,95]),{17:[1,275]},{88:[1,276],89:[1,277]},o($Vo1,[2,88]),{17:[1,278]},o($Vo1,[2,102]),{88:[1,279],89:[1,280]},o($Vo1,[2,127]),{22:[1,281]},{21:$Vw1,24:$Vx1,26:282,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,24:$Vx1,26:283,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,24:$Vx1,26:284,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,24:$Vx1,26:285,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,24:$Vx1,26:286,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,24:$Vx1,26:287,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,24:$Vx1,26:288,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,24:$Vx1,26:289,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,24:$Vx1,26:290,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,24:$Vx1,26:291,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,24:$Vx1,26:292,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,24:$Vx1,26:293,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,24:$Vx1,26:294,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,24:$Vx1,26:295,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,24:$Vx1,26:296,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,24:$Vx1,26:297,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,24:$Vx1,26:298,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,24:$Vx1,26:299,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,24:$Vx1,26:300,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,24:$Vx1,26:301,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,24:$Vx1,26:302,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},o($VZ1,[2,33],{37:$VG1,38:$VH1,39:$VI1,40:$VJ1}),o($VY1,[2,47]),{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,43:$VM1,44:$VN1,45:$VO1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1,50:$VT1,51:$VU1,52:$VV1,53:$VW1,55:$VX1,57:[1,303]},o($VC1,[2,67]),{57:[2,157]},{57:[2,158]},{35:[1,304],36:[1,305],57:[2,163]},{35:[1,306],36:[1,307],57:[2,166]},{35:[1,308],36:[1,309],57:[2,169]},{57:[2,171]},{57:[2,172]},{57:[2,176]},{22:[1,310],35:[1,312],36:[1,311]},{22:[1,313]},{57:[1,314]},{57:[1,315]},{57:[1,316]},{57:[1,317]},{57:[1,318]},{57:[1,319],67:[1,320]},{57:[1,321],67:[1,322]},{57:[1,323]},{57:[1,324]},{57:[1,325]},o($VB,[2,16]),o($VZ1,[2,27],{37:$VG1,38:$VH1,39:$VI1,40:$VJ1}),o($VZ1,[2,28],{37:$VG1,38:$VH1,39:$VI1,40:$VJ1}),o($VY1,[2,29]),o($VY1,[2,30]),o($VY1,[2,31]),o($VY1,[2,32]),o($V_1,[2,34],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1}),o($V_1,[2,35],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,52,53,55,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],[2,36],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,44:$VN1,45:$VO1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1,50:$VT1,51:$VU1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,52,53,55,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],[2,37],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1,50:$VT1,51:$VU1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,45,52,53,55,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],[2,38],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,44:$VN1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1,50:$VT1,51:$VU1}),o($V$1,[2,39],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1}),o($V$1,[2,40],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1}),o($V$1,[2,41],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1}),o($V$1,[2,42],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1}),o($V02,[2,43],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1}),o($V02,[2,44],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,52,53,55,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],[2,45],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,43:$VM1,44:$VN1,45:$VO1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1,50:$VT1,51:$VU1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,53,55,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],[2,46],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,43:$VM1,44:$VN1,45:$VO1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1,50:$VT1,51:$VU1,52:$VV1}),{15:[1,326],35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,43:$VM1,44:$VN1,45:$VO1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1,50:$VT1,51:$VU1,52:$VV1,53:$VW1,55:$VX1},o([5,13,15,17,18,21,23,24,27,28,30,31,33,55,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],[2,26],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,43:$VM1,44:$VN1,45:$VO1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1,50:$VT1,51:$VU1,52:$VV1,53:$VW1}),o($VY1,[2,49]),{21:[1,327]},{21:[1,328]},{21:[1,329]},{21:[1,330]},{21:[1,331]},{21:[1,332]},{57:[2,173]},{21:[1,333]},{21:[1,334]},{57:[2,177]},o($Vo1,[2,92]),o($Vo1,[2,93]),o($Vo1,[2,87]),o($Vo1,[2,98]),o($Vo1,[2,99]),o($Vo1,[2,96]),{17:[1,335]},o($Vo1,[2,97]),{17:[1,336]},o($Vo1,[2,89]),o($Vo1,[2,103]),o($Vo1,[2,104]),{21:$Vw1,24:$Vx1,26:337,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{57:[2,161]},{57:[2,162]},{57:[2,164]},{57:[2,165]},{57:[2,167]},{57:[2,168]},{22:[1,338]},{22:[1,339]},{57:[1,340]},{57:[1,341]},o([5,13,15,17,18,21,23,24,27,28,30,31,33,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],[2,48],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,43:$VM1,44:$VN1,45:$VO1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1,50:$VT1,51:$VU1,52:$VV1,53:$VW1,55:$VX1}),{57:[2,174]},{57:[2,175]},o($Vo1,[2,100]),o($Vo1,[2,101])], +defaultActions: {53:[2,1],100:[2,128],101:[2,129],102:[2,130],103:[2,131],104:[2,132],107:[2,20],108:[2,21],161:[2,178],162:[2,179],199:[2,159],200:[2,160],261:[2,157],262:[2,158],266:[2,171],267:[2,172],268:[2,176],310:[2,173],313:[2,177],327:[2,161],328:[2,162],329:[2,164],330:[2,165],331:[2,167],332:[2,168],338:[2,174],339:[2,175]}, parseError: function parseError (str, hash) { if (hash.recoverable) { this.trace(str); @@ -1220,37 +1239,37 @@ case 6: return "LF"; break; case 7: /* console.log("Empty spaces"); */ break; -case 8: return 126; +case 8: return 127; break; -case 9: return 127; +case 9: return 128; break; -case 10: return 128; +case 10: return 129; break; -case 11: return 129; +case 11: return 130; break; case 12: return 89; break; -case 13: return 113; +case 13: return 114; break; -case 14: return 130; +case 14: return 131; break; case 15: return 30; break; -case 16: return 131; +case 16: return 132; break; -case 17: return 132; +case 17: return 133; break; -case 18: return 133; +case 18: return 134; break; -case 19: return 134; +case 19: return 135; break; case 20: return 88; break; -case 21: return 135; +case 21: return 136; break; -case 22: return 137; +case 22: return 138; break; -case 23: return 136; +case 23: return 137; break; case 24: return 69 break; @@ -1282,15 +1301,15 @@ case 37: return 81 break; case 38: return 85 break; -case 39: return 115 +case 39: return 116 break; -case 40: return 116 +case 40: return 117 break; -case 41: return 118 +case 41: return 119 break; -case 42: return 117 +case 42: return 118 break; -case 43: return 114 +case 43: return 115 break; case 44: return 90 break; @@ -1330,7 +1349,7 @@ case 61: return 107 break; case 62: return 108 break; -case 63: return 119 +case 63: return 109 break; case 64: return 120 break; @@ -1344,112 +1363,114 @@ case 68: return 124 break; case 69: return 125 break; -case 70: return 111 +case 70: return 126 break; -case 71: return 109 +case 71: return 112 break; case 72: return 110 break; -case 73: return 140 +case 73: return 111 break; case 74: return 141 break; case 75: return 142 break; -case 76: return 31 +case 76: return 143 break; -case 77: return 18 +case 77: return 31 break; -case 78: return 29 +case 78: return 18 break; -case 79: return 30 +case 79: return 29 break; -case 80: return 23 +case 80: return 30 break; -case 81: return 27 +case 81: return 23 break; -case 82: return 112 +case 82: return 27 break; -case 83: yy_.yytext = yy_.yytext.slice(1,-1); return 32; +case 83: return 113 break; -case 84: return 17; +case 84: yy_.yytext = yy_.yytext.slice(1,-1); return 32; break; -case 85: yy_.yytext = yy_.yytext.slice(1); return 24; +case 85: return 17; break; -case 86: yy_.yytext = yy_.yytext.slice(1); return 66; +case 86: yy_.yytext = yy_.yytext.slice(1); return 24; break; -case 87: return 15; +case 87: yy_.yytext = yy_.yytext.slice(1); return 66; break; -case 88: return 67 +case 88: return 15; break; -case 89: return 56 +case 89: return 67 break; -case 90: return 57 +case 90: return 56 break; -case 91: return 138 +case 91: return 57 break; case 92: return 139 break; -case 93: return 35 +case 93: return 140 +break; +case 94: return 35 break; -case 94: return 36 +case 95: return 36 break; -case 95: return 40 +case 96: return 40 break; -case 96: return 38 +case 97: return 38 break; -case 97: return 37 +case 98: return 37 break; -case 98: return 39 +case 99: return 39 break; -case 99: return 59 +case 100: return 59 break; -case 100: return 41 +case 101: return 41 break; -case 101: return 42 +case 102: return 42 break; -case 102: return 45 +case 103: return 45 break; -case 103: return 53 +case 104: return 53 break; -case 104: return 52 +case 105: return 52 break; -case 105: return 44 +case 106: return 44 break; -case 106: return 43 +case 107: return 43 break; -case 107: return 50 +case 108: return 50 break; -case 108: return 51 +case 109: return 51 break; -case 109: return 48 +case 110: return 48 break; -case 110: return 49 +case 111: return 49 break; -case 111: return 47 +case 112: return 47 break; -case 112: return 46 +case 113: return 46 break; -case 113: return 25 +case 114: return 25 break; -case 114: return 54 +case 115: return 54 break; -case 115: return 34 +case 116: return 34 break; -case 116: return 55 +case 117: return 55 break; -case 117: return 20 +case 118: return 20 break; -case 118: return 22 +case 119: return 22 break; -case 119: return 5; +case 120: return 5; break; -case 120: /* console.log("INVALID: " + yy_.yytext); */ return 'INVALID'; +case 121: /* console.log("INVALID: " + yy_.yytext); */ return 'INVALID'; break; } }, -rules: [/^(?:;[^\n\r]*)/,/^(?:\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+\/)/,/^(?:((0x[0-9A-Fa-f][0-9A-Fa-f_]*)|([0-9][0-9_]*))n\b)/,/^(?:(0x[0-9A-Fa-f][0-9A-Fa-f_]*)|([0-9][0-9_]*))/,/^(?:\$\$\{[^\}]*\})/,/^(?:(\$(\{[^\}]*\})?))/,/^(?:[\r\n]+)/,/^(?:[ \t]+)/,/^(?:A\b)/,/^(?:B\b)/,/^(?:C\b)/,/^(?:D\b)/,/^(?:E\b)/,/^(?:RCX\b)/,/^(?:SR\b)/,/^(?:CTX\b)/,/^(?:SP\b)/,/^(?:PC\b)/,/^(?:GAS\b)/,/^(?:zkPC\b)/,/^(?:RR\b)/,/^(?:STEP\b)/,/^(?:ROTL_C\b)/,/^(?:HASHPOS\b)/,/^(?:MLOAD\b)/,/^(?:MSTORE\b)/,/^(?:HASHKLEN\b)/,/^(?:HASHKDIGEST\b)/,/^(?:HASHK1\b)/,/^(?:HASHK\b)/,/^(?:HASHSLEN\b)/,/^(?:HASHSDIGEST\b)/,/^(?:HASHS1\b)/,/^(?:HASHS\b)/,/^(?:HASHPLEN\b)/,/^(?:HASHPDIGEST\b)/,/^(?:HASHP1\b)/,/^(?:HASHP\b)/,/^(?:JMP\b)/,/^(?:JMPC\b)/,/^(?:JMPZ\b)/,/^(?:JMPNZ\b)/,/^(?:JMPNC\b)/,/^(?:JMPN\b)/,/^(?:CALL\b)/,/^(?:RETURN\b)/,/^(?:ASSERT\b)/,/^(?:SLOAD\b)/,/^(?:SSTORE\b)/,/^(?:ARITH\b)/,/^(?:ARITH_ECADD_DIFFERENT\b)/,/^(?:ARITH_ECADD_SAME\b)/,/^(?:ARITH_BN254_ADDFP2\b)/,/^(?:ARITH_BN254_SUBFP2\b)/,/^(?:ARITH_BN254_MULFP2\b)/,/^(?:ADD\b)/,/^(?:SUB\b)/,/^(?:LT\b)/,/^(?:SLT\b)/,/^(?:EQ\b)/,/^(?:AND\b)/,/^(?:OR\b)/,/^(?:XOR\b)/,/^(?:CNT_ARITH\b)/,/^(?:CNT_BINARY\b)/,/^(?:CNT_KECCAK_F\b)/,/^(?:CNT_SHA256_F\b)/,/^(?:CNT_MEM_ALIGN\b)/,/^(?:CNT_PADDING_PG\b)/,/^(?:CNT_POSEIDON_G\b)/,/^(?:MEM_ALIGN_WR8\b)/,/^(?:MEM_ALIGN_RD\b)/,/^(?:MEM_ALIGN_WR\b)/,/^(?:SYS\b)/,/^(?:MEM\b)/,/^(?:STACK\b)/,/^(?:INCLUDE\b)/,/^(?:VAR\b)/,/^(?:GLOBAL\b)/,/^(?:CTX\b)/,/^(?:CONST\b)/,/^(?:CONSTL\b)/,/^(?:REPEAT\b)/,/^(?:"[^"]+")/,/^(?:[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?:%[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?:@[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?::)/,/^(?:,)/,/^(?:\()/,/^(?:\))/,/^(?:\+\+)/,/^(?:--)/,/^(?:\+)/,/^(?:-)/,/^(?:\/)/,/^(?:\*\*)/,/^(?:\*)/,/^(?:%)/,/^(?:=>)/,/^(?:<<)/,/^(?:>>)/,/^(?:\^)/,/^(?:\|\|)/,/^(?:&&)/,/^(?:&)/,/^(?:\|)/,/^(?:==)/,/^(?:!=)/,/^(?:<=)/,/^(?:>=)/,/^(?:>)/,/^(?:<)/,/^(?:=)/,/^(?:!)/,/^(?:\?\?)/,/^(?:\?)/,/^(?:\[)/,/^(?:\])/,/^(?:$)/,/^(?:.)/], -conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120],"inclusive":true}} +rules: [/^(?:;[^\n\r]*)/,/^(?:\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+\/)/,/^(?:((0x[0-9A-Fa-f][0-9A-Fa-f_]*)|([0-9][0-9_]*))n\b)/,/^(?:(0x[0-9A-Fa-f][0-9A-Fa-f_]*)|([0-9][0-9_]*))/,/^(?:\$\$\{[^\}]*\})/,/^(?:(\$(\{[^\}]*\})?))/,/^(?:[\r\n]+)/,/^(?:[ \t]+)/,/^(?:A\b)/,/^(?:B\b)/,/^(?:C\b)/,/^(?:D\b)/,/^(?:E\b)/,/^(?:RCX\b)/,/^(?:SR\b)/,/^(?:CTX\b)/,/^(?:SP\b)/,/^(?:PC\b)/,/^(?:GAS\b)/,/^(?:zkPC\b)/,/^(?:RR\b)/,/^(?:STEP\b)/,/^(?:ROTL_C\b)/,/^(?:HASHPOS\b)/,/^(?:MLOAD\b)/,/^(?:MSTORE\b)/,/^(?:HASHKLEN\b)/,/^(?:HASHKDIGEST\b)/,/^(?:HASHK1\b)/,/^(?:HASHK\b)/,/^(?:HASHSLEN\b)/,/^(?:HASHSDIGEST\b)/,/^(?:HASHS1\b)/,/^(?:HASHS\b)/,/^(?:HASHPLEN\b)/,/^(?:HASHPDIGEST\b)/,/^(?:HASHP1\b)/,/^(?:HASHP\b)/,/^(?:JMP\b)/,/^(?:JMPC\b)/,/^(?:JMPZ\b)/,/^(?:JMPNZ\b)/,/^(?:JMPNC\b)/,/^(?:JMPN\b)/,/^(?:CALL\b)/,/^(?:RETURN\b)/,/^(?:ASSERT\b)/,/^(?:SLOAD\b)/,/^(?:SSTORE\b)/,/^(?:ARITH\b)/,/^(?:ARITH_ECADD_DIFFERENT\b)/,/^(?:ARITH_ECADD_SAME\b)/,/^(?:ARITH_BN254_ADDFP2\b)/,/^(?:ARITH_BN254_SUBFP2\b)/,/^(?:ARITH_BN254_MULFP2\b)/,/^(?:ADD\b)/,/^(?:SUB\b)/,/^(?:LT\b)/,/^(?:SLT\b)/,/^(?:EQ\b)/,/^(?:AND\b)/,/^(?:OR\b)/,/^(?:XOR\b)/,/^(?:LT4\b)/,/^(?:CNT_ARITH\b)/,/^(?:CNT_BINARY\b)/,/^(?:CNT_KECCAK_F\b)/,/^(?:CNT_SHA256_F\b)/,/^(?:CNT_MEM_ALIGN\b)/,/^(?:CNT_PADDING_PG\b)/,/^(?:CNT_POSEIDON_G\b)/,/^(?:MEM_ALIGN_WR8\b)/,/^(?:MEM_ALIGN_RD\b)/,/^(?:MEM_ALIGN_WR\b)/,/^(?:SYS\b)/,/^(?:MEM\b)/,/^(?:STACK\b)/,/^(?:INCLUDE\b)/,/^(?:VAR\b)/,/^(?:GLOBAL\b)/,/^(?:CTX\b)/,/^(?:CONST\b)/,/^(?:CONSTL\b)/,/^(?:REPEAT\b)/,/^(?:"[^"]+")/,/^(?:[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?:%[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?:@[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?::)/,/^(?:,)/,/^(?:\()/,/^(?:\))/,/^(?:\+\+)/,/^(?:--)/,/^(?:\+)/,/^(?:-)/,/^(?:\/)/,/^(?:\*\*)/,/^(?:\*)/,/^(?:%)/,/^(?:=>)/,/^(?:<<)/,/^(?:>>)/,/^(?:\^)/,/^(?:\|\|)/,/^(?:&&)/,/^(?:&)/,/^(?:\|)/,/^(?:==)/,/^(?:!=)/,/^(?:<=)/,/^(?:>=)/,/^(?:>)/,/^(?:<)/,/^(?:=)/,/^(?:!)/,/^(?:\?\?)/,/^(?:\?)/,/^(?:\[)/,/^(?:\])/,/^(?:$)/,/^(?:.)/], +conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121],"inclusive":true}} }); return lexer; })(); diff --git a/instructions.md b/instructions.md index 254bbd4..220d3c3 100644 --- a/instructions.md +++ b/instructions.md @@ -102,10 +102,14 @@ Addition of two secp256k1 elliptic curve points (points are equals) A = op -### ADD SUB LT SLT EQ AND OR XOR +### ADD SUB LT SLT EQ AND OR XOR LT4 op = A ~BinOp~ B +LT4 = all 4 chuncks of 64 are LT one to one + (A7A6 A5A4 A3A2 A1A0) LT4 (B7B6 B5B4 B3B2 B1B0) = + (A7A6 < B7B6) AND (A5A4 < B5B4) AND (A3A2 < B3B2) AND (A1A0 < B1B0) + ### MEM_ALIGN_RD M0=A, M1=B, V=op, Offset=C From 5b297d5a3fef01423db9cd673110c69e1c886d2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A9ctor=20Masip?= Date: Fri, 24 Nov 2023 09:28:56 +0100 Subject: [PATCH 15/25] Improving the doc --- instructions.md => components.md | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) rename instructions.md => components.md (88%) diff --git a/instructions.md b/components.md similarity index 88% rename from instructions.md rename to components.md index 220d3c3..34e7916 100644 --- a/instructions.md +++ b/components.md @@ -1,4 +1,6 @@ -# zkVM instructions +# zkASM Components + +## Instructions ### MLOAD(addr) @@ -104,11 +106,19 @@ A = op ### ADD SUB LT SLT EQ AND OR XOR LT4 -op = A ~BinOp~ B +The operation is written `op = A BinOp B`, where `BinOp` is one of `ADD,SUB,LT,SLT,EQ,AND,OR,XOR,LT4`. + +Given two registers `A` and `B`, the instruction `LT4` works by checking whether the four chunks composing `A` are lower than those composing `B` one-to-one. -LT4 = all 4 chuncks of 64 are LT one to one - (A7A6 A5A4 A3A2 A1A0) LT4 (B7B6 B5B4 B3B2 B1B0) = - (A7A6 < B7B6) AND (A5A4 < B5B4) AND (A3A2 < B3B2) AND (A1A0 < B1B0) +For example, given `A0,...,A7,B0,...,B7` the following check: +``` +(A7A6 A5A4 A3A2 A1A0) LT4 (B7B6 B5B4 B3B2 B1B0) +``` +is equivalent to: +``` +(A7A6 < B7B6) AND (A5A4 < B5B4) AND (A3A2 < B3B2) AND (A1A0 < B1B0) +``` + ### MEM_ALIGN_RD @@ -166,11 +176,9 @@ RCX != 0 => RCX' = RCX - 1 RCX != 0 => zkPC = zkPC REPEAT was executed at least one time -### CNT_ARITH, CNT_BINARY, CNT_KECCAK_F, CNT_SHA256_F, CNT_MEM_ALIGN, CNT_PADDING_PG, CNT_POSEIDON_G - -ReadOnly counters +## Constants -### CONST, CONSTL %constname = expression +CONST, CONSTL %constname = expression define constants const set lsr (op0) and reset the rest (op1,....,op7) From 7d822b155429f83fe95494388f975fd0e686c52a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A9ctor=20Masip=20Ardevol?= Date: Fri, 24 Nov 2023 09:31:42 +0100 Subject: [PATCH 16/25] Update components.md --- components.md | 140 +++++++++++++++++++++++++------------------------- 1 file changed, 70 insertions(+), 70 deletions(-) diff --git a/components.md b/components.md index 34e7916..58aa411 100644 --- a/components.md +++ b/components.md @@ -1,5 +1,75 @@ # zkASM Components +## Registers +- Each element is a Goldilocks prime Field number + +### A, B, C, D, E +- generic purpose registers +- Array of 8 elements `[V0, V1,..., V7]` + +### SR +- Array of 8 elements `[V0, V1,..., V7]` +- State root + +### CTX +- 1 element +- Context +- Used to move through zkEVM memory + +### SP +- 1 element +- Stack Pointer +- Used to move through zkEVM memory + +### PC +- 1 element +- Program Counter +- Used to move through zkEVM memory + +### GAS +- 1 element +- Gas in a transaction + +### RR +- 1 element +- Return register +- Saves origin `zkPC` in `RR` when a `CALL` instruction is performed + - `RETURN` will load `RR` into future `zkPC` + +### zkPC +- 1 element +- zk pogram counter + +### STEP +- 1 element +- number of instruction done + +### MAXMEM +- 1 element +- maximum memory + +### HASHPOS +- 1 element +- used to set/get bytes from poseidon/keccaks bytes + +### ROTL_C +- Array of 8 elements `[V0, V1,..., V7]`. Each element is a Goldilocks prime Field number +- Rotate Left Register: `ROTL_C = [C[7], C[0], ..., C[6]]` + +### RCX +- 1 element +- Used to repeat instructions + +### zk-counters +- Keeps track of zk-counters + - `CNT_ARITH` + - `CNT_BINARY` + - `CNT_KECCAK_F` + - `CNT_SHA256_F` + - `CNT_MEM_ALIGN` + - `CNT_PADDING_PG` + - `CNT_POSEIDON_G` + ## Instructions ### MLOAD(addr) @@ -183,73 +253,3 @@ CONST, CONSTL %constname = expression define constants const set lsr (op0) and reset the rest (op1,....,op7) constl set 8 registers (op0, op1, op2, ..,op7) - -## Registers -- Each element is a Goldilocks prime Field number - -### A, B, C, D, E -- generic purpose registers -- Array of 8 elements `[V0, V1,..., V7]` - -### SR -- Array of 8 elements `[V0, V1,..., V7]` -- State root - -### CTX -- 1 element -- Context -- Used to move through zkEVM memory - -### SP -- 1 element -- Stack Pointer -- Used to move through zkEVM memory - -### PC -- 1 element -- Program Counter -- Used to move through zkEVM memory - -### GAS -- 1 element -- Gas in a transaction - -### RR -- 1 element -- Return register -- Saves origin `zkPC` in `RR` when a `CALL` instruction is performed - - `RETURN` will load `RR` into future `zkPC` - -### zkPC -- 1 element -- zk pogram counter - -### STEP -- 1 element -- number of instruction done - -### MAXMEM -- 1 element -- maximum memory - -### HASHPOS -- 1 element -- used to set/get bytes from poseidon/keccaks bytes - -### ROTL_C -- Array of 8 elements `[V0, V1,..., V7]`. Each element is a Goldilocks prime Field number -- Rotate Left Register: `ROTL_C = [C[7], C[0], ..., C[6]]` - -### RCX -- 1 element -- Used to repeat instructions - -### zk-counters -- Keeps track of zk-counters - - `CNT_ARITH` - - `CNT_BINARY` - - `CNT_KECCAK_F` - - `CNT_SHA256_F` - - `CNT_MEM_ALIGN` - - `CNT_PADDING_PG` - - `CNT_POSEIDON_G` From 7e36e4b747ee25b2ebe6c50de75dcce51b728fd6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A9ctor=20Masip?= Date: Mon, 27 Nov 2023 18:15:20 +0100 Subject: [PATCH 17/25] Adding the ability to pass a constant as an array size --- build/zkasm_parser.js | 260 +++++++++++++++++++++-------------------- src/zkasm_parser.jison | 14 ++- test/arrays.zkasm | 45 +++---- 3 files changed, 166 insertions(+), 153 deletions(-) diff --git a/build/zkasm_parser.js b/build/zkasm_parser.js index cbab9cd..77ffe3b 100644 --- a/build/zkasm_parser.js +++ b/build/zkasm_parser.js @@ -72,12 +72,12 @@ } */ var zkasm_parser = (function(){ -var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,10],$V1=[1,12],$V2=[1,13],$V3=[1,14],$V4=[1,26],$V5=[1,15],$V6=[1,28],$V7=[1,16],$V8=[1,18],$V9=[1,36],$Va=[1,17],$Vb=[1,27],$Vc=[1,20],$Vd=[1,23],$Ve=[1,29],$Vf=[1,40],$Vg=[1,34],$Vh=[1,45],$Vi=[1,46],$Vj=[1,47],$Vk=[1,48],$Vl=[1,49],$Vm=[1,50],$Vn=[1,51],$Vo=[1,52],$Vp=[1,30],$Vq=[1,31],$Vr=[1,32],$Vs=[1,33],$Vt=[1,35],$Vu=[1,37],$Vv=[1,38],$Vw=[1,39],$Vx=[1,41],$Vy=[1,42],$Vz=[1,43],$VA=[1,44],$VB=[5,13,15,17,18,21,23,24,27,28,30,31,33,36,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],$VC=[1,59],$VD=[1,60],$VE=[1,61],$VF=[1,62],$VG=[1,63],$VH=[1,64],$VI=[1,65],$VJ=[1,66],$VK=[1,67],$VL=[1,68],$VM=[1,69],$VN=[1,70],$VO=[1,71],$VP=[1,72],$VQ=[1,73],$VR=[1,76],$VS=[1,77],$VT=[1,78],$VU=[1,79],$VV=[1,80],$VW=[1,81],$VX=[1,82],$VY=[1,83],$VZ=[1,84],$V_=[1,85],$V$=[1,86],$V01=[1,87],$V11=[1,88],$V21=[1,89],$V31=[1,90],$V41=[1,91],$V51=[1,92],$V61=[1,93],$V71=[1,94],$V81=[1,95],$V91=[1,96],$Va1=[1,97],$Vb1=[1,98],$Vc1=[1,99],$Vd1=[1,100],$Ve1=[1,101],$Vf1=[1,102],$Vg1=[1,103],$Vh1=[1,104],$Vi1=[13,15],$Vj1=[13,15,35,36,59],$Vk1=[1,116],$Vl1=[13,15,35,36,37,59],$Vm1=[13,15,35,36,37,59,67],$Vn1=[1,121],$Vo1=[13,67],$Vp1=[1,158],$Vq1=[1,154],$Vr1=[1,155],$Vs1=[1,156],$Vt1=[1,157],$Vu1=[1,161],$Vv1=[1,162],$Vw1=[1,188],$Vx1=[1,190],$Vy1=[1,189],$Vz1=[1,191],$VA1=[1,192],$VB1=[1,193],$VC1=[13,15,67],$VD1=[5,13,15,17,18,21,23,24,27,28,30,31,33,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],$VE1=[1,236],$VF1=[1,237],$VG1=[1,238],$VH1=[1,239],$VI1=[1,240],$VJ1=[1,241],$VK1=[1,242],$VL1=[1,243],$VM1=[1,244],$VN1=[1,245],$VO1=[1,246],$VP1=[1,247],$VQ1=[1,248],$VR1=[1,249],$VS1=[1,250],$VT1=[1,251],$VU1=[1,252],$VV1=[1,253],$VW1=[1,254],$VX1=[1,255],$VY1=[5,13,15,17,18,21,23,24,27,28,30,31,33,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],$VZ1=[5,13,15,17,18,21,23,24,27,28,30,31,33,35,36,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],$V_1=[5,13,15,17,18,21,23,24,27,28,30,31,33,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],$V$1=[5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],$V02=[5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,50,51,52,53,55,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138]; +var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,10],$V1=[1,12],$V2=[1,13],$V3=[1,14],$V4=[1,26],$V5=[1,28],$V6=[1,15],$V7=[1,16],$V8=[1,18],$V9=[1,36],$Va=[1,17],$Vb=[1,27],$Vc=[1,20],$Vd=[1,23],$Ve=[1,29],$Vf=[1,40],$Vg=[1,34],$Vh=[1,45],$Vi=[1,46],$Vj=[1,47],$Vk=[1,48],$Vl=[1,49],$Vm=[1,50],$Vn=[1,51],$Vo=[1,52],$Vp=[1,30],$Vq=[1,31],$Vr=[1,32],$Vs=[1,33],$Vt=[1,35],$Vu=[1,37],$Vv=[1,38],$Vw=[1,39],$Vx=[1,41],$Vy=[1,42],$Vz=[1,43],$VA=[1,44],$VB=[5,13,15,17,18,21,23,24,27,28,30,31,33,36,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],$VC=[1,59],$VD=[1,60],$VE=[1,61],$VF=[1,62],$VG=[1,63],$VH=[1,64],$VI=[1,65],$VJ=[1,66],$VK=[1,67],$VL=[1,68],$VM=[1,69],$VN=[1,70],$VO=[1,71],$VP=[1,72],$VQ=[1,73],$VR=[1,76],$VS=[1,77],$VT=[1,78],$VU=[1,79],$VV=[1,80],$VW=[1,81],$VX=[1,82],$VY=[1,83],$VZ=[1,84],$V_=[1,85],$V$=[1,86],$V01=[1,87],$V11=[1,88],$V21=[1,89],$V31=[1,90],$V41=[1,91],$V51=[1,92],$V61=[1,93],$V71=[1,94],$V81=[1,95],$V91=[1,96],$Va1=[1,97],$Vb1=[1,98],$Vc1=[1,99],$Vd1=[1,100],$Ve1=[1,101],$Vf1=[1,102],$Vg1=[1,103],$Vh1=[1,104],$Vi1=[13,15],$Vj1=[13,15,35,36,59],$Vk1=[1,116],$Vl1=[13,15,35,36,37,59],$Vm1=[13,15,35,36,37,59,67],$Vn1=[1,121],$Vo1=[13,67],$Vp1=[1,158],$Vq1=[1,154],$Vr1=[1,155],$Vs1=[1,156],$Vt1=[1,157],$Vu1=[1,161],$Vv1=[1,162],$Vw1=[1,188],$Vx1=[1,190],$Vy1=[1,189],$Vz1=[1,191],$VA1=[1,192],$VB1=[1,193],$VC1=[13,15,67],$VD1=[5,13,15,17,18,21,23,24,27,28,30,31,33,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],$VE1=[1,237],$VF1=[1,238],$VG1=[1,239],$VH1=[1,240],$VI1=[1,241],$VJ1=[1,242],$VK1=[1,243],$VL1=[1,244],$VM1=[1,245],$VN1=[1,246],$VO1=[1,247],$VP1=[1,248],$VQ1=[1,249],$VR1=[1,250],$VS1=[1,251],$VT1=[1,252],$VU1=[1,253],$VV1=[1,254],$VW1=[1,255],$VX1=[1,256],$VY1=[5,13,15,17,18,21,23,24,27,28,30,31,33,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],$VZ1=[5,13,15,17,18,21,23,24,27,28,30,31,33,35,36,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],$V_1=[5,13,15,17,18,21,23,24,27,28,30,31,33,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],$V$1=[5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],$V02=[5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,50,51,52,53,55,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138]; var parser = {trace: function trace () { }, yy: {}, -symbols_: {"error":2,"allStatments":3,"statmentList":4,"EOF":5,"statment":6,"step":7,"label":8,"varDef":9,"constDef":10,"include":11,"command":12,"LF":13,"assignment":14,":":15,"opList":16,"IDENTIFIER":17,"VAR":18,"scope":19,"[":20,"NUMBER":21,"]":22,"CONST":23,"CONSTID":24,"=":25,"nexpr":26,"CONSTL":27,"COMMAND":28,"GLOBAL":29,"CTX":30,"INCLUDE":31,"STRING":32,"NUMBERL":33,"??":34,"+":35,"-":36,"*":37,"**":38,"%":39,"/":40,"<<":41,">>":42,"|":43,"&":44,"^":45,"<":46,">":47,"<=":48,">=":49,"==":50,"!=":51,"&&":52,"||":53,"!":54,"?":55,"(":56,")":57,"inRegsSum":58,"=>":59,"regsList":60,"inRegP":61,"inReg":62,"TAG":63,"reg":64,"counter":65,"REFERENCE":66,",":67,"op":68,"MLOAD":69,"addr":70,"MSTORE":71,"HASHK":72,"hashId":73,"HASHK1":74,"HASHKLEN":75,"HASHKDIGEST":76,"HASHS":77,"HASHS1":78,"HASHSLEN":79,"HASHSDIGEST":80,"HASHP":81,"HASHP1":82,"HASHPLEN":83,"HASHPDIGEST":84,"JMP":85,"jmpCond":86,"jmpNotCond":87,"RR":88,"E":89,"CALL":90,"RETURN":91,"ASSERT":92,"SLOAD":93,"SSTORE":94,"ARITH":95,"ARITH_ECADD_DIFFERENT":96,"ARITH_ECADD_SAME":97,"ARITH_BN254_MULFP2":98,"ARITH_BN254_ADDFP2":99,"ARITH_BN254_SUBFP2":100,"ADD":101,"SUB":102,"LT":103,"SLT":104,"EQ":105,"AND":106,"OR":107,"XOR":108,"LT4":109,"MEM_ALIGN_RD":110,"MEM_ALIGN_WR":111,"MEM_ALIGN_WR8":112,"REPEAT":113,"RCX":114,"JMPN":115,"JMPC":116,"JMPZ":117,"JMPNC":118,"JMPNZ":119,"CNT_ARITH":120,"CNT_BINARY":121,"CNT_KECCAK_F":122,"CNT_SHA256_F":123,"CNT_MEM_ALIGN":124,"CNT_PADDING_PG":125,"CNT_POSEIDON_G":126,"A":127,"B":128,"C":129,"D":130,"SR":131,"SP":132,"PC":133,"GAS":134,"zkPC":135,"STEP":136,"HASHPOS":137,"ROTL_C":138,"++":139,"--":140,"SYS":141,"MEM":142,"STACK":143,"$accept":0,"$end":1}, -terminals_: {2:"error",5:"EOF",13:"LF",15:":",17:"IDENTIFIER",18:"VAR",20:"[",21:"NUMBER",22:"]",23:"CONST",24:"CONSTID",25:"=",27:"CONSTL",28:"COMMAND",29:"GLOBAL",30:"CTX",31:"INCLUDE",32:"STRING",33:"NUMBERL",34:"??",35:"+",36:"-",37:"*",38:"**",39:"%",40:"/",41:"<<",42:">>",43:"|",44:"&",45:"^",46:"<",47:">",48:"<=",49:">=",50:"==",51:"!=",52:"&&",53:"||",54:"!",55:"?",56:"(",57:")",59:"=>",63:"TAG",66:"REFERENCE",67:",",69:"MLOAD",71:"MSTORE",72:"HASHK",74:"HASHK1",75:"HASHKLEN",76:"HASHKDIGEST",77:"HASHS",78:"HASHS1",79:"HASHSLEN",80:"HASHSDIGEST",81:"HASHP",82:"HASHP1",83:"HASHPLEN",84:"HASHPDIGEST",85:"JMP",88:"RR",89:"E",90:"CALL",91:"RETURN",92:"ASSERT",93:"SLOAD",94:"SSTORE",95:"ARITH",96:"ARITH_ECADD_DIFFERENT",97:"ARITH_ECADD_SAME",98:"ARITH_BN254_MULFP2",99:"ARITH_BN254_ADDFP2",100:"ARITH_BN254_SUBFP2",101:"ADD",102:"SUB",103:"LT",104:"SLT",105:"EQ",106:"AND",107:"OR",108:"XOR",109:"LT4",110:"MEM_ALIGN_RD",111:"MEM_ALIGN_WR",112:"MEM_ALIGN_WR8",113:"REPEAT",114:"RCX",115:"JMPN",116:"JMPC",117:"JMPZ",118:"JMPNC",119:"JMPNZ",120:"CNT_ARITH",121:"CNT_BINARY",122:"CNT_KECCAK_F",123:"CNT_SHA256_F",124:"CNT_MEM_ALIGN",125:"CNT_PADDING_PG",126:"CNT_POSEIDON_G",127:"A",128:"B",129:"C",130:"D",131:"SR",132:"SP",133:"PC",134:"GAS",135:"zkPC",136:"STEP",137:"HASHPOS",138:"ROTL_C",139:"++",140:"--",141:"SYS",142:"MEM",143:"STACK"}, -productions_: [0,[3,2],[4,2],[4,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[7,4],[7,2],[7,3],[8,2],[9,3],[9,6],[10,4],[10,4],[12,1],[19,1],[19,1],[11,2],[26,1],[26,1],[26,1],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,2],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,2],[26,5],[26,3],[14,3],[14,1],[58,3],[58,3],[58,2],[58,1],[61,3],[61,1],[62,1],[62,1],[62,1],[62,3],[62,3],[62,1],[62,1],[62,1],[62,1],[60,3],[60,1],[16,3],[16,1],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,6],[68,4],[68,6],[68,4],[68,4],[68,6],[68,6],[68,4],[68,4],[68,6],[68,6],[68,6],[68,6],[68,8],[68,8],[68,4],[68,6],[68,6],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,4],[86,1],[86,1],[86,1],[87,1],[87,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[70,1],[70,3],[70,3],[70,2],[70,2],[70,5],[70,5],[70,3],[70,5],[70,5],[70,3],[70,5],[70,5],[70,3],[70,1],[70,3],[70,3],[70,4],[70,6],[70,6],[70,3],[70,4],[73,1],[73,1]], +symbols_: {"error":2,"allStatments":3,"statmentList":4,"EOF":5,"statment":6,"step":7,"label":8,"varDef":9,"constDef":10,"include":11,"command":12,"LF":13,"assignment":14,":":15,"opList":16,"IDENTIFIER":17,"VAR":18,"scope":19,"[":20,"NUMBER":21,"]":22,"CONSTID":23,"CONST":24,"=":25,"nexpr":26,"CONSTL":27,"COMMAND":28,"GLOBAL":29,"CTX":30,"INCLUDE":31,"STRING":32,"NUMBERL":33,"??":34,"+":35,"-":36,"*":37,"**":38,"%":39,"/":40,"<<":41,">>":42,"|":43,"&":44,"^":45,"<":46,">":47,"<=":48,">=":49,"==":50,"!=":51,"&&":52,"||":53,"!":54,"?":55,"(":56,")":57,"inRegsSum":58,"=>":59,"regsList":60,"inRegP":61,"inReg":62,"TAG":63,"reg":64,"counter":65,"REFERENCE":66,",":67,"op":68,"MLOAD":69,"addr":70,"MSTORE":71,"HASHK":72,"hashId":73,"HASHK1":74,"HASHKLEN":75,"HASHKDIGEST":76,"HASHS":77,"HASHS1":78,"HASHSLEN":79,"HASHSDIGEST":80,"HASHP":81,"HASHP1":82,"HASHPLEN":83,"HASHPDIGEST":84,"JMP":85,"jmpCond":86,"jmpNotCond":87,"RR":88,"E":89,"CALL":90,"RETURN":91,"ASSERT":92,"SLOAD":93,"SSTORE":94,"ARITH":95,"ARITH_ECADD_DIFFERENT":96,"ARITH_ECADD_SAME":97,"ARITH_BN254_MULFP2":98,"ARITH_BN254_ADDFP2":99,"ARITH_BN254_SUBFP2":100,"ADD":101,"SUB":102,"LT":103,"SLT":104,"EQ":105,"AND":106,"OR":107,"XOR":108,"LT4":109,"MEM_ALIGN_RD":110,"MEM_ALIGN_WR":111,"MEM_ALIGN_WR8":112,"REPEAT":113,"RCX":114,"JMPN":115,"JMPC":116,"JMPZ":117,"JMPNC":118,"JMPNZ":119,"CNT_ARITH":120,"CNT_BINARY":121,"CNT_KECCAK_F":122,"CNT_SHA256_F":123,"CNT_MEM_ALIGN":124,"CNT_PADDING_PG":125,"CNT_POSEIDON_G":126,"A":127,"B":128,"C":129,"D":130,"SR":131,"SP":132,"PC":133,"GAS":134,"zkPC":135,"STEP":136,"HASHPOS":137,"ROTL_C":138,"++":139,"--":140,"SYS":141,"MEM":142,"STACK":143,"$accept":0,"$end":1}, +terminals_: {2:"error",5:"EOF",13:"LF",15:":",17:"IDENTIFIER",18:"VAR",20:"[",21:"NUMBER",22:"]",23:"CONSTID",24:"CONST",25:"=",27:"CONSTL",28:"COMMAND",29:"GLOBAL",30:"CTX",31:"INCLUDE",32:"STRING",33:"NUMBERL",34:"??",35:"+",36:"-",37:"*",38:"**",39:"%",40:"/",41:"<<",42:">>",43:"|",44:"&",45:"^",46:"<",47:">",48:"<=",49:">=",50:"==",51:"!=",52:"&&",53:"||",54:"!",55:"?",56:"(",57:")",59:"=>",63:"TAG",66:"REFERENCE",67:",",69:"MLOAD",71:"MSTORE",72:"HASHK",74:"HASHK1",75:"HASHKLEN",76:"HASHKDIGEST",77:"HASHS",78:"HASHS1",79:"HASHSLEN",80:"HASHSDIGEST",81:"HASHP",82:"HASHP1",83:"HASHPLEN",84:"HASHPDIGEST",85:"JMP",88:"RR",89:"E",90:"CALL",91:"RETURN",92:"ASSERT",93:"SLOAD",94:"SSTORE",95:"ARITH",96:"ARITH_ECADD_DIFFERENT",97:"ARITH_ECADD_SAME",98:"ARITH_BN254_MULFP2",99:"ARITH_BN254_ADDFP2",100:"ARITH_BN254_SUBFP2",101:"ADD",102:"SUB",103:"LT",104:"SLT",105:"EQ",106:"AND",107:"OR",108:"XOR",109:"LT4",110:"MEM_ALIGN_RD",111:"MEM_ALIGN_WR",112:"MEM_ALIGN_WR8",113:"REPEAT",114:"RCX",115:"JMPN",116:"JMPC",117:"JMPZ",118:"JMPNC",119:"JMPNZ",120:"CNT_ARITH",121:"CNT_BINARY",122:"CNT_KECCAK_F",123:"CNT_SHA256_F",124:"CNT_MEM_ALIGN",125:"CNT_PADDING_PG",126:"CNT_POSEIDON_G",127:"A",128:"B",129:"C",130:"D",131:"SR",132:"SP",133:"PC",134:"GAS",135:"zkPC",136:"STEP",137:"HASHPOS",138:"ROTL_C",139:"++",140:"--",141:"SYS",142:"MEM",143:"STACK"}, +productions_: [0,[3,2],[4,2],[4,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[7,4],[7,2],[7,3],[8,2],[9,3],[9,6],[9,6],[10,4],[10,4],[12,1],[19,1],[19,1],[11,2],[26,1],[26,1],[26,1],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,2],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,2],[26,5],[26,3],[14,3],[14,1],[58,3],[58,3],[58,2],[58,1],[61,3],[61,1],[62,1],[62,1],[62,1],[62,3],[62,3],[62,1],[62,1],[62,1],[62,1],[60,3],[60,1],[16,3],[16,1],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,6],[68,4],[68,6],[68,4],[68,4],[68,6],[68,6],[68,4],[68,4],[68,6],[68,6],[68,6],[68,6],[68,8],[68,8],[68,4],[68,6],[68,6],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,4],[86,1],[86,1],[86,1],[87,1],[87,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[70,1],[70,3],[70,3],[70,2],[70,2],[70,5],[70,5],[70,3],[70,5],[70,5],[70,3],[70,5],[70,5],[70,3],[70,1],[70,3],[70,3],[70,4],[70,6],[70,6],[70,3],[70,4],[73,1],[73,1]], performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { /* this == yyval */ @@ -144,607 +144,611 @@ case 15: this.$ = {type: "var", scope: $$[$0-1], name: $$[$0], count: 1 } break; -case 16: +case 16: case 17: this.$ = {type: "var", scope: $$[$0-4], name: $$[$0-3], count: $$[$0-1] } break; -case 17: +case 18: this.$ = {type: "constdef", name: $$[$0-2], value: $$[$0]} setLine(this.$, _$[$0-3]); break; -case 18: +case 19: this.$ = {type: "constldef", name: $$[$0-2], value: $$[$0]} setLine(this.$, _$[$0-3]); break; -case 19: +case 20: this.$ = {type: "command", cmd: $$[$0]} break; -case 22: +case 23: this.$ = {type: "include", file: $$[$0]} break; -case 23: case 24: +case 24: case 25: this.$ = {type: 'CONSTL' , value: $$[$0]} break; -case 25: case 65: +case 26: case 66: this.$ = {type: 'CONSTID' , identifier: $$[$0]} break; -case 26: +case 27: this.$ = {type: $$[$0-1], values: [$$[$0]] , identifier: $$[$0-2]} break; -case 27: case 28: case 29: case 30: case 31: case 32: case 34: case 35: case 36: case 37: case 38: case 39: case 40: case 41: case 42: case 43: case 44: case 45: case 46: +case 28: case 29: case 30: case 31: case 32: case 33: case 35: case 36: case 37: case 38: case 39: case 40: case 41: case 42: case 43: case 44: case 45: case 46: case 47: this.$ = {type: $$[$0-1], values: [$$[$0-2], $$[$0]]} break; -case 33: case 47: +case 34: case 48: this.$ = {type: $$[$0-1], values: [$$[$0]]} break; -case 48: +case 49: this.$ = {type: $$[$0-3], values: [$$[$0-4], $$[$0-2], $$[$0]]} break; -case 49: +case 50: this.$ = $$[$0-1] break; -case 50: +case 51: this.$ = {in: $$[$0-2], out: $$[$0]} break; -case 51: +case 52: this.$ = {in: $$[$0], out: []} break; -case 52: +case 53: this.$ = {type: 'add', values: [$$[$0-2], $$[$0]]} break; -case 53: +case 54: this.$ = {type: 'sub', values: [$$[$0-2], $$[$0]]} break; -case 54: +case 55: this.$ = {type: 'neg', values: [$$[$0]]} break; -case 55: case 57: +case 56: case 58: this.$ = $$[$0] break; -case 56: +case 57: this.$ = {type: 'mul', values: [$$[$0-2], $$[$0]]} break; -case 58: +case 59: this.$ = {type: 'TAG' , tag: $$[$0]} break; -case 59: +case 60: this.$ = {type: 'REG' , reg: $$[$0]} break; -case 60: +case 61: this.$ = {type: 'COUNTER', counter: $$[$0]} break; -case 61: +case 62: this.$ = {type: "exp", values: [$$[$0-2], $$[$0]]} break; -case 62: +case 63: this.$ = {type: "expl", values: [$$[$0-2], $$[$0]]} break; -case 63: +case 64: this.$ = {type: 'CONST' , const: $$[$0]} break; -case 64: +case 65: this.$ = {type: 'CONSTL' , const: $$[$0]} break; -case 66: +case 67: this.$ = {type: 'reference', identifier: $$[$0]} break; -case 67: +case 68: $$[$0-2].push($$[$0]) break; -case 68: case 70: +case 69: case 71: this.$ = [$$[$0]] break; -case 69: +case 70: $$[$0-2].push($$[$0]); this.$ = $$[$0-2] break; -case 71: +case 72: this.$ = $$[$0-1]; this.$.mOp = 1; this.$.mWR = 0; break; -case 72: +case 73: this.$ = $$[$0-1]; this.$.mOp = 1; this.$.mWR = 1; break; -case 73: +case 74: this.$ = $$[$0-1]; this.$.hashK = 1; break; -case 74: +case 75: this.$ = $$[$0-1]; this.$.hashK1 = 1; break; -case 75: +case 76: this.$ = $$[$0-1]; this.$.hashKLen = 1; break; -case 76: +case 77: this.$ = $$[$0-1]; this.$.hashKDigest = 1; break; -case 77: +case 78: this.$ = $$[$0-1]; this.$.hashS = 1; break; -case 78: +case 79: this.$ = $$[$0-1]; this.$.hashS1 = 1; break; -case 79: +case 80: this.$ = $$[$0-1]; this.$.hashSLen = 1; break; -case 80: +case 81: this.$ = $$[$0-1]; this.$.hashSDigest = 1; break; -case 81: +case 82: this.$ = $$[$0-1]; this.$.hashP = 1; break; -case 82: +case 83: this.$ = $$[$0-1]; this.$.hashP1 = 1; break; -case 83: +case 84: this.$ = $$[$0-1]; this.$.hashPLen = 1; break; -case 84: +case 85: this.$ = $$[$0-1]; this.$.hashPDigest = 1; break; -case 85: +case 86: this.$ = { [$$[$0-3]]: 1, useJmpAddr: 1, jmpAddr: $$[$0-1] } break; -case 86: +case 87: this.$ = { [$$[$0-3]]: 1, useJmpAddr: 1, jmpAddr: $$[$0-1], useElseAddr: 1, elseAddr: 'next' } break; -case 87: +case 88: this.$ = { [$$[$0-5]]: 1, useJmpAddr: 1, jmpAddr: $$[$0-3], useElseAddr: 1, elseAddr: $$[$0-1] } break; -case 88: +case 89: this.$ = { [$$[$0-3]]: 1, useJmpAddr: 1, jmpAddr: 'next', useElseAddr: 1, elseAddr: $$[$0-1] } break; -case 89: +case 90: this.$ = { [$$[$0-5]]: 1, useJmpAddr: 1, jmpAddr: $$[$0-1], useElseAddr: 1, elseAddr: $$[$0-3] } break; -case 90: +case 91: this.$ = { [$$[$0-3]]: 1, useJmpAddr: 0, ind: 0, indRR: 1, offset: 0 } break; -case 91: +case 92: this.$ = { [$$[$0-3]]: 1, useJmpAddr: 0, ind: 1, indRR: 0, offset: 0 } break; -case 92: +case 93: this.$ = { [$$[$0-5]]: 1, useJmpAddr: 0, ind: 0, indRR: 1, offset: $$[$0-3] } break; -case 93: +case 94: this.$ = { [$$[$0-5]]: 1, useJmpAddr: 0, ind: 1, indRR: 0, offset: $$[$0-3] } break; -case 94: +case 95: this.$ = { [$$[$0-3]]: 1, useJmpAddr: 0, ind: 0, indRR: 1, offset: 0, useElseAddr: 1, elseAddr: 'next' } break; -case 95: +case 96: this.$ = { [$$[$0-3]]: 1, useJmpAddr: 0, ind: 1, indRR: 0, offset: 0, useElseAddr: 1, elseAddr: 'next' } break; -case 96: +case 97: this.$ = { [$$[$0-5]]: 1, useJmpAddr: 0, ind: 0, indRR: 1, offset: $$[$0-3], useElseAddr: 1, elseAddr: 'next' } break; -case 97: +case 98: this.$ = { [$$[$0-5]]: 1, useJmpAddr: 0, ind: 1, indRR: 0, offset: $$[$0-3], useElseAddr: 1, elseAddr: 'next' } break; -case 98: +case 99: this.$ = { [$$[$0-5]]: 1, useJmpAddr: 0, ind: 0, indRR: 1, offset: 0, useElseAddr: 1, elseAddr: $$[$0-1] } break; -case 99: +case 100: this.$ = { [$$[$0-5]]: 1, useJmpAddr: 0, ind: 1, indRR: 0, offset: 0, useElseAddr: 1, elseAddr: $$[$0-1] } break; -case 100: +case 101: this.$ = { [$$[$0-7]]: 1, useJmpAddr: 0, ind: 0, indRR: 1, offset: $$[$0-5], useElseAddr: 1, elseAddr: $$[$0-1] } break; -case 101: +case 102: this.$ = { [$$[$0-7]]: 1, useJmpAddr: 0, ind: 1, indRR: 0, offset: $$[$0-5], useElseAddr: 1, elseAddr: $$[$0-1] } break; -case 102: +case 103: this.$ = {JMP: 0, JMPC: 0, JMPN: 0, useJmpAddr:1, jmpAddr: $$[$0-1], call: 1} break; -case 103: +case 104: this.$ = {JMP: 0, JMPC: 0, JMPN: 0, offset: $$[$0-3], ind: 0, indRR: 1, return: 0, call: 1} break; -case 104: +case 105: this.$ = {JMP: 0, JMPC: 0, JMPN: 0, offset: $$[$0-3], ind: 1, indRR: 0, return: 0, call: 1} break; -case 105: +case 106: this.$ = {JMP: 0, JMPC: 0, JMPN: 0, call: 0, return: 1} break; -case 106: +case 107: this.$ = {assert: 1} break; -case 107: +case 108: this.$ = {sRD: 1} break; -case 108: +case 109: this.$ = {sWR: 1} break; -case 109: +case 110: this.$ = { arithEq0: 1, arithEq1: 0, arithEq2: 0, arithEq3: 0, arithEq4: 0, arithEq5: 0 } break; -case 110: +case 111: this.$ = { arithEq0: 0, arithEq1: 1, arithEq2: 0, arithEq3: 0, arithEq4: 0, arithEq5: 0 } break; -case 111: +case 112: this.$ = { arithEq0: 0, arithEq1: 0, arithEq2: 0, arithEq3: 0, arithEq4: 0, arithEq5: 0 } break; -case 112: +case 113: this.$ = { arithEq0: 0, arithEq1: 0, arithEq2: 0, arithEq3: 1, arithEq4: 0, arithEq5: 0 } break; -case 113: +case 114: this.$ = { arithEq0: 0, arithEq1: 0, arithEq2: 0, arithEq3: 0, arithEq4: 1, arithEq5: 0 } break; -case 114: +case 115: this.$ = { arithEq0: 0, arithEq1: 0, arithEq2: 0, arithEq3: 0, arithEq4: 0, arithEq5: 1 } break; -case 115: +case 116: this.$ = { bin: 1, binOpcode: 0} break; -case 116: +case 117: this.$ = { bin: 1, binOpcode: 1} break; -case 117: +case 118: this.$ = { bin: 1, binOpcode: 2} break; -case 118: +case 119: this.$ = { bin: 1, binOpcode: 3} break; -case 119: +case 120: this.$ = { bin: 1, binOpcode: 4} break; -case 120: +case 121: this.$ = { bin: 1, binOpcode: 5} break; -case 121: +case 122: this.$ = { bin: 1, binOpcode: 6} break; -case 122: +case 123: this.$ = { bin: 1, binOpcode: 7} break; -case 123: +case 124: this.$ = { bin: 1, binOpcode: 8} break; -case 124: +case 125: this.$ = { memAlignRD: 1, memAlignWR: 0, memAlignWR8: 0} break; -case 125: +case 126: this.$ = { memAlignRD: 0, memAlignWR: 1, memAlignWR8: 0} break; -case 126: +case 127: this.$ = { memAlignRD: 0, memAlignWR: 0, memAlignWR8: 1} break; -case 127: +case 128: this.$ = { repeat: 1 } break; -case 131: +case 132: this.$ = 'JMPC' break; -case 132: +case 133: this.$ = 'JMPZ' break; -case 133: +case 134: this.$ = 'cntArith' break; -case 134: +case 135: this.$ = 'cntBinary' break; -case 135: +case 136: this.$ = 'cntKeccakF' break; -case 136: +case 137: this.$ = 'cntSha256F' break; -case 137: +case 138: this.$ = 'cntMemAlign' break; -case 138: +case 139: this.$ = 'cntPaddingPG' break; -case 139: +case 140: this.$ = 'cntPoseidonG' break; -case 156: +case 157: this.$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack:0, offset: 0, useCTX: 1} break; -case 157: +case 158: this.$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack: 0, offset: $$[$0], useCTX: 1} + break; -case 158: +case 159: this.$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack: 0, offset: -$$[$0], useCTX: 1} + break; -case 159: +case 160: this.$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack: 1, offset: 0, useCTX: 1} + break; -case 160: +case 161: this.$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack: -1, offset: 0, useCTX: 1} + break; -case 161: +case 162: this.$ = { isStack: 0, isMem:0, ind:1, indRR: 0, incStack: 0, offset: $$[$0]} break; -case 162: +case 163: this.$ = { isStack: 0, isMem:0, ind:1, indRR: 0, incStack: 0, offset: -$$[$0]} break; -case 163: +case 164: this.$ = { isStack: 0, isMem:0, ind:1, indRR: 0, incStack: 0, offset: 0} break; -case 164: +case 165: this.$ = { isStack: 0, isMem: 1, ind:1, indRR: 0, incStack: 0, offset: $$[$0], useCTX: 1} break; -case 165: +case 166: this.$ = { isStack: 0, isMem: 1, ind:1, indRR: 0, incStack: 0, offset: -$$[$0], useCTX: 1} break; -case 166: +case 167: this.$ = { isStack: 0, isMem: 1, ind:1, indRR: 0, incStack: 0, offset: 0, useCTX: 1} break; -case 167: +case 168: this.$ = { isStack: 1, ind:1, indRR: 0, incStack: 0, offset: $$[$0], useCTX: 1} break; -case 168: +case 169: this.$ = { isStack: 1, ind:1, indRR: 0, incStack: 0, offset: -$$[$0], useCTX: 1} break; -case 169: +case 170: this.$ = { isStack: 1, ind:1, indRR: 0, incStack: 0, offset: 0, useCTX: 1} break; -case 170: +case 171: this.$ = { offset: $$[$0] } break; -case 171: +case 172: this.$ = { offset: $$[$0-2], ind: 0, indRR: 1 } break; -case 172: +case 173: this.$ = { offset: $$[$0-2], ind: 1, indRR: 0 } break; -case 173: +case 174: this.$ = { offset: $$[$0-3], ind: 1, indRR: 0 } break; -case 174: +case 175: this.$ = { offset: $$[$0-5], extraOffset: -$$[$0-1], ind: 1, indRR: 0 } break; -case 175: +case 176: this.$ = { offset: $$[$0-5], extraOffset: $$[$0-1], ind: 1, indRR: 0 } break; -case 176: +case 177: this.$ = { offset: $$[$0-2], extraOffset: $$[$0] } break; -case 177: +case 178: this.$ = { offset: $$[$0-3], extraOffset: $$[$0-1] } break; -case 178: +case 179: this.$ = {ind: 0, indRR: 0, offset:$$[$0]} break; -case 179: +case 180: this.$ = {ind: 1, indRR: 0, offset:0} break; } }, -table: [{3:1,4:2,6:3,7:4,8:5,9:6,10:7,11:8,12:9,13:$V0,14:11,15:$V1,17:$V2,18:$V3,21:$V4,23:$V5,24:$V6,27:$V7,28:$V8,30:$V9,31:$Va,33:$Vb,36:$Vc,58:19,61:21,62:22,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,114:$Vh,120:$Vi,121:$Vj,122:$Vk,123:$Vl,124:$Vm,125:$Vn,126:$Vo,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA},{1:[3]},{5:[1,53],6:54,7:4,8:5,9:6,10:7,11:8,12:9,13:$V0,14:11,15:$V1,17:$V2,18:$V3,21:$V4,23:$V5,24:$V6,27:$V7,28:$V8,30:$V9,31:$Va,33:$Vb,36:$Vc,58:19,61:21,62:22,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,114:$Vh,120:$Vi,121:$Vj,122:$Vk,123:$Vl,124:$Vm,125:$Vn,126:$Vo,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA},o($VB,[2,3]),o($VB,[2,4]),o($VB,[2,5]),o($VB,[2,6]),o($VB,[2,7]),o($VB,[2,8]),o($VB,[2,9]),o($VB,[2,10]),{13:[1,56],15:[1,55]},{16:57,68:58,69:$VC,71:$VD,72:$VE,74:$VF,75:$VG,76:$VH,77:$VI,78:$VJ,79:$VK,80:$VL,81:$VM,82:$VN,83:$VO,84:$VP,85:$VQ,86:74,87:75,90:$VR,91:$VS,92:$VT,93:$VU,94:$VV,95:$VW,96:$VX,97:$VY,98:$VZ,99:$V_,100:$V$,101:$V01,102:$V11,103:$V21,104:$V31,105:$V41,106:$V51,107:$V61,108:$V71,109:$V81,110:$V91,111:$Va1,112:$Vb1,113:$Vc1,115:$Vd1,116:$Ve1,117:$Vf1,118:$Vg1,119:$Vh1},{15:[1,105]},{19:106,29:[1,107],30:[1,108]},{24:[1,109]},{24:[1,110]},{32:[1,111]},o($VB,[2,19]),o($Vi1,[2,51],{35:[1,113],36:[1,114],59:[1,112]}),{21:$V4,24:$V6,30:$V9,33:$Vb,61:115,62:22,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,114:$Vh,120:$Vi,121:$Vj,122:$Vk,123:$Vl,124:$Vm,125:$Vn,126:$Vo,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA},o($Vj1,[2,55],{37:$Vk1}),o($Vl1,[2,57]),o($Vl1,[2,58]),o($Vl1,[2,59]),o($Vl1,[2,60]),o($Vl1,[2,63],{38:[1,117]}),o($Vl1,[2,64],{38:[1,118]}),o($Vl1,[2,65]),o($Vl1,[2,66]),o($Vm1,[2,140]),o($Vm1,[2,141]),o($Vm1,[2,142]),o($Vm1,[2,143]),o($Vm1,[2,144]),o($Vm1,[2,145]),o($Vm1,[2,146]),o($Vm1,[2,147]),o($Vm1,[2,148]),o($Vm1,[2,149]),o($Vm1,[2,150]),o($Vm1,[2,151]),o($Vm1,[2,152]),o($Vm1,[2,153]),o($Vm1,[2,154]),o($Vm1,[2,155]),o($Vl1,[2,133]),o($Vl1,[2,134]),o($Vl1,[2,135]),o($Vl1,[2,136]),o($Vl1,[2,137]),o($Vl1,[2,138]),o($Vl1,[2,139]),{1:[2,1]},o($VB,[2,2]),{16:119,68:58,69:$VC,71:$VD,72:$VE,74:$VF,75:$VG,76:$VH,77:$VI,78:$VJ,79:$VK,80:$VL,81:$VM,82:$VN,83:$VO,84:$VP,85:$VQ,86:74,87:75,90:$VR,91:$VS,92:$VT,93:$VU,94:$VV,95:$VW,96:$VX,97:$VY,98:$VZ,99:$V_,100:$V$,101:$V01,102:$V11,103:$V21,104:$V31,105:$V41,106:$V51,107:$V61,108:$V71,109:$V81,110:$V91,111:$Va1,112:$Vb1,113:$Vc1,115:$Vd1,116:$Ve1,117:$Vf1,118:$Vg1,119:$Vh1},o($VB,[2,12]),{13:[1,120],67:$Vn1},o($Vo1,[2,70]),{56:[1,122]},{56:[1,123]},{56:[1,124]},{56:[1,125]},{56:[1,126]},{56:[1,127]},{56:[1,128]},{56:[1,129]},{56:[1,130]},{56:[1,131]},{56:[1,132]},{56:[1,133]},{56:[1,134]},{56:[1,135]},{56:[1,136]},{56:[1,137]},{56:[1,138]},{56:[1,139]},o($Vo1,[2,105]),o($Vo1,[2,106]),o($Vo1,[2,107]),o($Vo1,[2,108]),o($Vo1,[2,109]),o($Vo1,[2,110]),o($Vo1,[2,111]),o($Vo1,[2,112]),o($Vo1,[2,113]),o($Vo1,[2,114]),o($Vo1,[2,115]),o($Vo1,[2,116]),o($Vo1,[2,117]),o($Vo1,[2,118]),o($Vo1,[2,119]),o($Vo1,[2,120]),o($Vo1,[2,121]),o($Vo1,[2,122]),o($Vo1,[2,123]),o($Vo1,[2,124]),o($Vo1,[2,125]),o($Vo1,[2,126]),{56:[1,140]},{56:[2,128]},{56:[2,129]},{56:[2,130]},{56:[2,131]},{56:[2,132]},o($VB,[2,14]),{17:[1,141]},{17:[2,20]},{17:[2,21]},{25:[1,142]},{25:[1,143]},o($VB,[2,22]),{30:$V9,60:144,64:145,88:$Vf,89:$Vg,114:$Vh,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA},{21:$V4,24:$V6,30:$V9,33:$Vb,61:146,62:22,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,114:$Vh,120:$Vi,121:$Vj,122:$Vk,123:$Vl,124:$Vm,125:$Vn,126:$Vo,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA},{21:$V4,24:$V6,30:$V9,33:$Vb,61:147,62:22,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,114:$Vh,120:$Vi,121:$Vj,122:$Vk,123:$Vl,124:$Vm,125:$Vn,126:$Vo,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA},o($Vj1,[2,54],{37:$Vk1}),{21:$V4,24:$V6,30:$V9,33:$Vb,62:148,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,114:$Vh,120:$Vi,121:$Vj,122:$Vk,123:$Vl,124:$Vm,125:$Vn,126:$Vo,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA},{21:[1,149]},{33:[1,150]},{13:[1,151],67:$Vn1},o($VB,[2,13]),{68:152,69:$VC,71:$VD,72:$VE,74:$VF,75:$VG,76:$VH,77:$VI,78:$VJ,79:$VK,80:$VL,81:$VM,82:$VN,83:$VO,84:$VP,85:$VQ,86:74,87:75,90:$VR,91:$VS,92:$VT,93:$VU,94:$VV,95:$VW,96:$VX,97:$VY,98:$VZ,99:$V_,100:$V$,101:$V01,102:$V11,103:$V21,104:$V31,105:$V41,106:$V51,107:$V61,108:$V71,109:$V81,110:$V91,111:$Va1,112:$Vb1,113:$Vc1,115:$Vd1,116:$Ve1,117:$Vf1,118:$Vg1,119:$Vh1},{17:$Vp1,70:153,132:$Vq1,141:$Vr1,142:$Vs1,143:$Vt1},{17:$Vp1,70:159,132:$Vq1,141:$Vr1,142:$Vs1,143:$Vt1},{21:$Vu1,73:160,89:$Vv1},{21:$Vu1,73:163,89:$Vv1},{21:$Vu1,73:164,89:$Vv1},{21:$Vu1,73:165,89:$Vv1},{21:$Vu1,73:166,89:$Vv1},{21:$Vu1,73:167,89:$Vv1},{21:$Vu1,73:168,89:$Vv1},{21:$Vu1,73:169,89:$Vv1},{21:$Vu1,73:170,89:$Vv1},{21:$Vu1,73:171,89:$Vv1},{21:$Vu1,73:172,89:$Vv1},{21:$Vu1,73:173,89:$Vv1},{17:[1,174],66:[1,177],88:[1,175],89:[1,176]},{17:[1,178],66:[1,181],88:[1,179],89:[1,180]},{17:[1,182]},{17:[1,183],66:[1,184]},{114:[1,185]},o($VB,[2,15],{20:[1,186]}),{21:$Vw1,24:$Vx1,26:187,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,24:$Vx1,26:194,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},o($Vi1,[2,50],{67:[1,195]}),o($VC1,[2,68]),o($Vj1,[2,52],{37:$Vk1}),o($Vj1,[2,53],{37:$Vk1}),o($Vl1,[2,56]),o($Vl1,[2,61]),o($Vl1,[2,62]),o($VB,[2,11]),o($Vo1,[2,69]),{57:[1,196]},{35:[1,197],36:[1,198],57:[2,156],139:[1,199],140:[1,200]},{15:[1,201]},{15:[1,202]},{15:[1,203]},{20:[1,205],35:[1,204],57:[2,170]},{57:[1,206]},{57:[1,207]},{57:[2,178]},{57:[2,179]},{57:[1,208]},{57:[1,209]},{57:[1,210]},{57:[1,211]},{57:[1,212]},{57:[1,213]},{57:[1,214]},{57:[1,215]},{57:[1,216]},{57:[1,217]},{57:[1,218]},{57:[1,219]},{57:[1,220]},{57:[1,221]},{35:[1,222]},{57:[1,223],67:[1,224]},{57:[1,225],67:[1,226]},{57:[1,227],67:[1,228]},{35:[1,229]},{57:[1,230],67:[1,231]},{57:[1,232]},{35:[1,233]},{57:[1,234]},{21:[1,235]},o($VD1,[2,17],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,43:$VM1,44:$VN1,45:$VO1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1,50:$VT1,51:$VU1,52:$VV1,53:$VW1,55:$VX1}),o($VY1,[2,23]),o($VY1,[2,24]),o($VY1,[2,25],{34:[1,256]}),{21:$Vw1,24:$Vx1,26:257,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,24:$Vx1,26:258,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,24:$Vx1,26:259,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},o($VD1,[2,18],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,43:$VM1,44:$VN1,45:$VO1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1,50:$VT1,51:$VU1,52:$VV1,53:$VW1,55:$VX1}),{30:$V9,64:260,88:$Vf,89:$Vg,114:$Vh,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA},o($Vo1,[2,71]),{21:[1,261]},{21:[1,262]},{57:[2,159]},{57:[2,160]},{89:[1,263]},{89:[1,264]},{89:[1,265]},{21:[1,268],88:[1,266],89:[1,267]},{21:[1,270],89:[1,269]},o($Vo1,[2,72]),o($Vo1,[2,73]),o($Vo1,[2,74]),o($Vo1,[2,75]),o($Vo1,[2,76]),o($Vo1,[2,77]),o($Vo1,[2,78]),o($Vo1,[2,79]),o($Vo1,[2,80]),o($Vo1,[2,81]),o($Vo1,[2,82]),o($Vo1,[2,83]),o($Vo1,[2,84]),o($Vo1,[2,85]),o($Vo1,[2,90]),o($Vo1,[2,91]),{88:[1,271],89:[1,272]},o($Vo1,[2,86]),{17:[1,273]},o($Vo1,[2,94]),{17:[1,274]},o($Vo1,[2,95]),{17:[1,275]},{88:[1,276],89:[1,277]},o($Vo1,[2,88]),{17:[1,278]},o($Vo1,[2,102]),{88:[1,279],89:[1,280]},o($Vo1,[2,127]),{22:[1,281]},{21:$Vw1,24:$Vx1,26:282,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,24:$Vx1,26:283,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,24:$Vx1,26:284,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,24:$Vx1,26:285,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,24:$Vx1,26:286,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,24:$Vx1,26:287,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,24:$Vx1,26:288,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,24:$Vx1,26:289,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,24:$Vx1,26:290,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,24:$Vx1,26:291,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,24:$Vx1,26:292,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,24:$Vx1,26:293,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,24:$Vx1,26:294,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,24:$Vx1,26:295,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,24:$Vx1,26:296,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,24:$Vx1,26:297,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,24:$Vx1,26:298,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,24:$Vx1,26:299,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,24:$Vx1,26:300,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,24:$Vx1,26:301,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,24:$Vx1,26:302,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},o($VZ1,[2,33],{37:$VG1,38:$VH1,39:$VI1,40:$VJ1}),o($VY1,[2,47]),{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,43:$VM1,44:$VN1,45:$VO1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1,50:$VT1,51:$VU1,52:$VV1,53:$VW1,55:$VX1,57:[1,303]},o($VC1,[2,67]),{57:[2,157]},{57:[2,158]},{35:[1,304],36:[1,305],57:[2,163]},{35:[1,306],36:[1,307],57:[2,166]},{35:[1,308],36:[1,309],57:[2,169]},{57:[2,171]},{57:[2,172]},{57:[2,176]},{22:[1,310],35:[1,312],36:[1,311]},{22:[1,313]},{57:[1,314]},{57:[1,315]},{57:[1,316]},{57:[1,317]},{57:[1,318]},{57:[1,319],67:[1,320]},{57:[1,321],67:[1,322]},{57:[1,323]},{57:[1,324]},{57:[1,325]},o($VB,[2,16]),o($VZ1,[2,27],{37:$VG1,38:$VH1,39:$VI1,40:$VJ1}),o($VZ1,[2,28],{37:$VG1,38:$VH1,39:$VI1,40:$VJ1}),o($VY1,[2,29]),o($VY1,[2,30]),o($VY1,[2,31]),o($VY1,[2,32]),o($V_1,[2,34],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1}),o($V_1,[2,35],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,52,53,55,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],[2,36],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,44:$VN1,45:$VO1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1,50:$VT1,51:$VU1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,52,53,55,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],[2,37],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1,50:$VT1,51:$VU1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,45,52,53,55,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],[2,38],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,44:$VN1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1,50:$VT1,51:$VU1}),o($V$1,[2,39],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1}),o($V$1,[2,40],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1}),o($V$1,[2,41],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1}),o($V$1,[2,42],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1}),o($V02,[2,43],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1}),o($V02,[2,44],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,52,53,55,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],[2,45],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,43:$VM1,44:$VN1,45:$VO1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1,50:$VT1,51:$VU1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,53,55,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],[2,46],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,43:$VM1,44:$VN1,45:$VO1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1,50:$VT1,51:$VU1,52:$VV1}),{15:[1,326],35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,43:$VM1,44:$VN1,45:$VO1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1,50:$VT1,51:$VU1,52:$VV1,53:$VW1,55:$VX1},o([5,13,15,17,18,21,23,24,27,28,30,31,33,55,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],[2,26],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,43:$VM1,44:$VN1,45:$VO1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1,50:$VT1,51:$VU1,52:$VV1,53:$VW1}),o($VY1,[2,49]),{21:[1,327]},{21:[1,328]},{21:[1,329]},{21:[1,330]},{21:[1,331]},{21:[1,332]},{57:[2,173]},{21:[1,333]},{21:[1,334]},{57:[2,177]},o($Vo1,[2,92]),o($Vo1,[2,93]),o($Vo1,[2,87]),o($Vo1,[2,98]),o($Vo1,[2,99]),o($Vo1,[2,96]),{17:[1,335]},o($Vo1,[2,97]),{17:[1,336]},o($Vo1,[2,89]),o($Vo1,[2,103]),o($Vo1,[2,104]),{21:$Vw1,24:$Vx1,26:337,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{57:[2,161]},{57:[2,162]},{57:[2,164]},{57:[2,165]},{57:[2,167]},{57:[2,168]},{22:[1,338]},{22:[1,339]},{57:[1,340]},{57:[1,341]},o([5,13,15,17,18,21,23,24,27,28,30,31,33,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],[2,48],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,43:$VM1,44:$VN1,45:$VO1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1,50:$VT1,51:$VU1,52:$VV1,53:$VW1,55:$VX1}),{57:[2,174]},{57:[2,175]},o($Vo1,[2,100]),o($Vo1,[2,101])], -defaultActions: {53:[2,1],100:[2,128],101:[2,129],102:[2,130],103:[2,131],104:[2,132],107:[2,20],108:[2,21],161:[2,178],162:[2,179],199:[2,159],200:[2,160],261:[2,157],262:[2,158],266:[2,171],267:[2,172],268:[2,176],310:[2,173],313:[2,177],327:[2,161],328:[2,162],329:[2,164],330:[2,165],331:[2,167],332:[2,168],338:[2,174],339:[2,175]}, +table: [{3:1,4:2,6:3,7:4,8:5,9:6,10:7,11:8,12:9,13:$V0,14:11,15:$V1,17:$V2,18:$V3,21:$V4,23:$V5,24:$V6,27:$V7,28:$V8,30:$V9,31:$Va,33:$Vb,36:$Vc,58:19,61:21,62:22,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,114:$Vh,120:$Vi,121:$Vj,122:$Vk,123:$Vl,124:$Vm,125:$Vn,126:$Vo,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA},{1:[3]},{5:[1,53],6:54,7:4,8:5,9:6,10:7,11:8,12:9,13:$V0,14:11,15:$V1,17:$V2,18:$V3,21:$V4,23:$V5,24:$V6,27:$V7,28:$V8,30:$V9,31:$Va,33:$Vb,36:$Vc,58:19,61:21,62:22,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,114:$Vh,120:$Vi,121:$Vj,122:$Vk,123:$Vl,124:$Vm,125:$Vn,126:$Vo,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA},o($VB,[2,3]),o($VB,[2,4]),o($VB,[2,5]),o($VB,[2,6]),o($VB,[2,7]),o($VB,[2,8]),o($VB,[2,9]),o($VB,[2,10]),{13:[1,56],15:[1,55]},{16:57,68:58,69:$VC,71:$VD,72:$VE,74:$VF,75:$VG,76:$VH,77:$VI,78:$VJ,79:$VK,80:$VL,81:$VM,82:$VN,83:$VO,84:$VP,85:$VQ,86:74,87:75,90:$VR,91:$VS,92:$VT,93:$VU,94:$VV,95:$VW,96:$VX,97:$VY,98:$VZ,99:$V_,100:$V$,101:$V01,102:$V11,103:$V21,104:$V31,105:$V41,106:$V51,107:$V61,108:$V71,109:$V81,110:$V91,111:$Va1,112:$Vb1,113:$Vc1,115:$Vd1,116:$Ve1,117:$Vf1,118:$Vg1,119:$Vh1},{15:[1,105]},{19:106,29:[1,107],30:[1,108]},{23:[1,109]},{23:[1,110]},{32:[1,111]},o($VB,[2,20]),o($Vi1,[2,52],{35:[1,113],36:[1,114],59:[1,112]}),{21:$V4,23:$V5,30:$V9,33:$Vb,61:115,62:22,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,114:$Vh,120:$Vi,121:$Vj,122:$Vk,123:$Vl,124:$Vm,125:$Vn,126:$Vo,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA},o($Vj1,[2,56],{37:$Vk1}),o($Vl1,[2,58]),o($Vl1,[2,59]),o($Vl1,[2,60]),o($Vl1,[2,61]),o($Vl1,[2,64],{38:[1,117]}),o($Vl1,[2,65],{38:[1,118]}),o($Vl1,[2,66]),o($Vl1,[2,67]),o($Vm1,[2,141]),o($Vm1,[2,142]),o($Vm1,[2,143]),o($Vm1,[2,144]),o($Vm1,[2,145]),o($Vm1,[2,146]),o($Vm1,[2,147]),o($Vm1,[2,148]),o($Vm1,[2,149]),o($Vm1,[2,150]),o($Vm1,[2,151]),o($Vm1,[2,152]),o($Vm1,[2,153]),o($Vm1,[2,154]),o($Vm1,[2,155]),o($Vm1,[2,156]),o($Vl1,[2,134]),o($Vl1,[2,135]),o($Vl1,[2,136]),o($Vl1,[2,137]),o($Vl1,[2,138]),o($Vl1,[2,139]),o($Vl1,[2,140]),{1:[2,1]},o($VB,[2,2]),{16:119,68:58,69:$VC,71:$VD,72:$VE,74:$VF,75:$VG,76:$VH,77:$VI,78:$VJ,79:$VK,80:$VL,81:$VM,82:$VN,83:$VO,84:$VP,85:$VQ,86:74,87:75,90:$VR,91:$VS,92:$VT,93:$VU,94:$VV,95:$VW,96:$VX,97:$VY,98:$VZ,99:$V_,100:$V$,101:$V01,102:$V11,103:$V21,104:$V31,105:$V41,106:$V51,107:$V61,108:$V71,109:$V81,110:$V91,111:$Va1,112:$Vb1,113:$Vc1,115:$Vd1,116:$Ve1,117:$Vf1,118:$Vg1,119:$Vh1},o($VB,[2,12]),{13:[1,120],67:$Vn1},o($Vo1,[2,71]),{56:[1,122]},{56:[1,123]},{56:[1,124]},{56:[1,125]},{56:[1,126]},{56:[1,127]},{56:[1,128]},{56:[1,129]},{56:[1,130]},{56:[1,131]},{56:[1,132]},{56:[1,133]},{56:[1,134]},{56:[1,135]},{56:[1,136]},{56:[1,137]},{56:[1,138]},{56:[1,139]},o($Vo1,[2,106]),o($Vo1,[2,107]),o($Vo1,[2,108]),o($Vo1,[2,109]),o($Vo1,[2,110]),o($Vo1,[2,111]),o($Vo1,[2,112]),o($Vo1,[2,113]),o($Vo1,[2,114]),o($Vo1,[2,115]),o($Vo1,[2,116]),o($Vo1,[2,117]),o($Vo1,[2,118]),o($Vo1,[2,119]),o($Vo1,[2,120]),o($Vo1,[2,121]),o($Vo1,[2,122]),o($Vo1,[2,123]),o($Vo1,[2,124]),o($Vo1,[2,125]),o($Vo1,[2,126]),o($Vo1,[2,127]),{56:[1,140]},{56:[2,129]},{56:[2,130]},{56:[2,131]},{56:[2,132]},{56:[2,133]},o($VB,[2,14]),{17:[1,141]},{17:[2,21]},{17:[2,22]},{25:[1,142]},{25:[1,143]},o($VB,[2,23]),{30:$V9,60:144,64:145,88:$Vf,89:$Vg,114:$Vh,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA},{21:$V4,23:$V5,30:$V9,33:$Vb,61:146,62:22,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,114:$Vh,120:$Vi,121:$Vj,122:$Vk,123:$Vl,124:$Vm,125:$Vn,126:$Vo,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA},{21:$V4,23:$V5,30:$V9,33:$Vb,61:147,62:22,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,114:$Vh,120:$Vi,121:$Vj,122:$Vk,123:$Vl,124:$Vm,125:$Vn,126:$Vo,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA},o($Vj1,[2,55],{37:$Vk1}),{21:$V4,23:$V5,30:$V9,33:$Vb,62:148,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,114:$Vh,120:$Vi,121:$Vj,122:$Vk,123:$Vl,124:$Vm,125:$Vn,126:$Vo,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA},{21:[1,149]},{33:[1,150]},{13:[1,151],67:$Vn1},o($VB,[2,13]),{68:152,69:$VC,71:$VD,72:$VE,74:$VF,75:$VG,76:$VH,77:$VI,78:$VJ,79:$VK,80:$VL,81:$VM,82:$VN,83:$VO,84:$VP,85:$VQ,86:74,87:75,90:$VR,91:$VS,92:$VT,93:$VU,94:$VV,95:$VW,96:$VX,97:$VY,98:$VZ,99:$V_,100:$V$,101:$V01,102:$V11,103:$V21,104:$V31,105:$V41,106:$V51,107:$V61,108:$V71,109:$V81,110:$V91,111:$Va1,112:$Vb1,113:$Vc1,115:$Vd1,116:$Ve1,117:$Vf1,118:$Vg1,119:$Vh1},{17:$Vp1,70:153,132:$Vq1,141:$Vr1,142:$Vs1,143:$Vt1},{17:$Vp1,70:159,132:$Vq1,141:$Vr1,142:$Vs1,143:$Vt1},{21:$Vu1,73:160,89:$Vv1},{21:$Vu1,73:163,89:$Vv1},{21:$Vu1,73:164,89:$Vv1},{21:$Vu1,73:165,89:$Vv1},{21:$Vu1,73:166,89:$Vv1},{21:$Vu1,73:167,89:$Vv1},{21:$Vu1,73:168,89:$Vv1},{21:$Vu1,73:169,89:$Vv1},{21:$Vu1,73:170,89:$Vv1},{21:$Vu1,73:171,89:$Vv1},{21:$Vu1,73:172,89:$Vv1},{21:$Vu1,73:173,89:$Vv1},{17:[1,174],66:[1,177],88:[1,175],89:[1,176]},{17:[1,178],66:[1,181],88:[1,179],89:[1,180]},{17:[1,182]},{17:[1,183],66:[1,184]},{114:[1,185]},o($VB,[2,15],{20:[1,186]}),{21:$Vw1,23:$Vx1,26:187,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,23:$Vx1,26:194,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},o($Vi1,[2,51],{67:[1,195]}),o($VC1,[2,69]),o($Vj1,[2,53],{37:$Vk1}),o($Vj1,[2,54],{37:$Vk1}),o($Vl1,[2,57]),o($Vl1,[2,62]),o($Vl1,[2,63]),o($VB,[2,11]),o($Vo1,[2,70]),{57:[1,196]},{35:[1,197],36:[1,198],57:[2,157],139:[1,199],140:[1,200]},{15:[1,201]},{15:[1,202]},{15:[1,203]},{20:[1,205],35:[1,204],57:[2,171]},{57:[1,206]},{57:[1,207]},{57:[2,179]},{57:[2,180]},{57:[1,208]},{57:[1,209]},{57:[1,210]},{57:[1,211]},{57:[1,212]},{57:[1,213]},{57:[1,214]},{57:[1,215]},{57:[1,216]},{57:[1,217]},{57:[1,218]},{57:[1,219]},{57:[1,220]},{57:[1,221]},{35:[1,222]},{57:[1,223],67:[1,224]},{57:[1,225],67:[1,226]},{57:[1,227],67:[1,228]},{35:[1,229]},{57:[1,230],67:[1,231]},{57:[1,232]},{35:[1,233]},{57:[1,234]},{21:[1,235],23:[1,236]},o($VD1,[2,18],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,43:$VM1,44:$VN1,45:$VO1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1,50:$VT1,51:$VU1,52:$VV1,53:$VW1,55:$VX1}),o($VY1,[2,24]),o($VY1,[2,25]),o($VY1,[2,26],{34:[1,257]}),{21:$Vw1,23:$Vx1,26:258,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,23:$Vx1,26:259,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,23:$Vx1,26:260,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},o($VD1,[2,19],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,43:$VM1,44:$VN1,45:$VO1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1,50:$VT1,51:$VU1,52:$VV1,53:$VW1,55:$VX1}),{30:$V9,64:261,88:$Vf,89:$Vg,114:$Vh,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA},o($Vo1,[2,72]),{21:[1,262]},{21:[1,263]},{57:[2,160]},{57:[2,161]},{89:[1,264]},{89:[1,265]},{89:[1,266]},{21:[1,269],88:[1,267],89:[1,268]},{21:[1,271],89:[1,270]},o($Vo1,[2,73]),o($Vo1,[2,74]),o($Vo1,[2,75]),o($Vo1,[2,76]),o($Vo1,[2,77]),o($Vo1,[2,78]),o($Vo1,[2,79]),o($Vo1,[2,80]),o($Vo1,[2,81]),o($Vo1,[2,82]),o($Vo1,[2,83]),o($Vo1,[2,84]),o($Vo1,[2,85]),o($Vo1,[2,86]),o($Vo1,[2,91]),o($Vo1,[2,92]),{88:[1,272],89:[1,273]},o($Vo1,[2,87]),{17:[1,274]},o($Vo1,[2,95]),{17:[1,275]},o($Vo1,[2,96]),{17:[1,276]},{88:[1,277],89:[1,278]},o($Vo1,[2,89]),{17:[1,279]},o($Vo1,[2,103]),{88:[1,280],89:[1,281]},o($Vo1,[2,128]),{22:[1,282]},{22:[1,283]},{21:$Vw1,23:$Vx1,26:284,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,23:$Vx1,26:285,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,23:$Vx1,26:286,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,23:$Vx1,26:287,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,23:$Vx1,26:288,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,23:$Vx1,26:289,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,23:$Vx1,26:290,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,23:$Vx1,26:291,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,23:$Vx1,26:292,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,23:$Vx1,26:293,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,23:$Vx1,26:294,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,23:$Vx1,26:295,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,23:$Vx1,26:296,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,23:$Vx1,26:297,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,23:$Vx1,26:298,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,23:$Vx1,26:299,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,23:$Vx1,26:300,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,23:$Vx1,26:301,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,23:$Vx1,26:302,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,23:$Vx1,26:303,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,23:$Vx1,26:304,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},o($VZ1,[2,34],{37:$VG1,38:$VH1,39:$VI1,40:$VJ1}),o($VY1,[2,48]),{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,43:$VM1,44:$VN1,45:$VO1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1,50:$VT1,51:$VU1,52:$VV1,53:$VW1,55:$VX1,57:[1,305]},o($VC1,[2,68]),{57:[2,158]},{57:[2,159]},{35:[1,306],36:[1,307],57:[2,164]},{35:[1,308],36:[1,309],57:[2,167]},{35:[1,310],36:[1,311],57:[2,170]},{57:[2,172]},{57:[2,173]},{57:[2,177]},{22:[1,312],35:[1,314],36:[1,313]},{22:[1,315]},{57:[1,316]},{57:[1,317]},{57:[1,318]},{57:[1,319]},{57:[1,320]},{57:[1,321],67:[1,322]},{57:[1,323],67:[1,324]},{57:[1,325]},{57:[1,326]},{57:[1,327]},o($VB,[2,16]),o($VB,[2,17]),o($VZ1,[2,28],{37:$VG1,38:$VH1,39:$VI1,40:$VJ1}),o($VZ1,[2,29],{37:$VG1,38:$VH1,39:$VI1,40:$VJ1}),o($VY1,[2,30]),o($VY1,[2,31]),o($VY1,[2,32]),o($VY1,[2,33]),o($V_1,[2,35],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1}),o($V_1,[2,36],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,52,53,55,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],[2,37],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,44:$VN1,45:$VO1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1,50:$VT1,51:$VU1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,52,53,55,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],[2,38],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1,50:$VT1,51:$VU1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,45,52,53,55,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],[2,39],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,44:$VN1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1,50:$VT1,51:$VU1}),o($V$1,[2,40],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1}),o($V$1,[2,41],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1}),o($V$1,[2,42],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1}),o($V$1,[2,43],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1}),o($V02,[2,44],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1}),o($V02,[2,45],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,52,53,55,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],[2,46],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,43:$VM1,44:$VN1,45:$VO1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1,50:$VT1,51:$VU1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,53,55,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],[2,47],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,43:$VM1,44:$VN1,45:$VO1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1,50:$VT1,51:$VU1,52:$VV1}),{15:[1,328],35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,43:$VM1,44:$VN1,45:$VO1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1,50:$VT1,51:$VU1,52:$VV1,53:$VW1,55:$VX1},o([5,13,15,17,18,21,23,24,27,28,30,31,33,55,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],[2,27],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,43:$VM1,44:$VN1,45:$VO1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1,50:$VT1,51:$VU1,52:$VV1,53:$VW1}),o($VY1,[2,50]),{21:[1,329]},{21:[1,330]},{21:[1,331]},{21:[1,332]},{21:[1,333]},{21:[1,334]},{57:[2,174]},{21:[1,335]},{21:[1,336]},{57:[2,178]},o($Vo1,[2,93]),o($Vo1,[2,94]),o($Vo1,[2,88]),o($Vo1,[2,99]),o($Vo1,[2,100]),o($Vo1,[2,97]),{17:[1,337]},o($Vo1,[2,98]),{17:[1,338]},o($Vo1,[2,90]),o($Vo1,[2,104]),o($Vo1,[2,105]),{21:$Vw1,23:$Vx1,26:339,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{57:[2,162]},{57:[2,163]},{57:[2,165]},{57:[2,166]},{57:[2,168]},{57:[2,169]},{22:[1,340]},{22:[1,341]},{57:[1,342]},{57:[1,343]},o([5,13,15,17,18,21,23,24,27,28,30,31,33,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],[2,49],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,43:$VM1,44:$VN1,45:$VO1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1,50:$VT1,51:$VU1,52:$VV1,53:$VW1,55:$VX1}),{57:[2,175]},{57:[2,176]},o($Vo1,[2,101]),o($Vo1,[2,102])], +defaultActions: {53:[2,1],100:[2,129],101:[2,130],102:[2,131],103:[2,132],104:[2,133],107:[2,21],108:[2,22],161:[2,179],162:[2,180],199:[2,160],200:[2,161],262:[2,158],263:[2,159],267:[2,172],268:[2,173],269:[2,177],312:[2,174],315:[2,178],329:[2,162],330:[2,163],331:[2,165],332:[2,166],333:[2,168],334:[2,169],340:[2,175],341:[2,176]}, parseError: function parseError (str, hash) { if (hash.recoverable) { this.trace(str); @@ -1385,7 +1389,7 @@ case 79: return 29 break; case 80: return 30 break; -case 81: return 23 +case 81: return 24 break; case 82: return 27 break; @@ -1395,7 +1399,7 @@ case 84: yy_.yytext = yy_.yytext.slice(1,-1); return 32; break; case 85: return 17; break; -case 86: yy_.yytext = yy_.yytext.slice(1); return 24; +case 86: yy_.yytext = yy_.yytext.slice(1); return 23; break; case 87: yy_.yytext = yy_.yytext.slice(1); return 66; break; diff --git a/src/zkasm_parser.jison b/src/zkasm_parser.jison index 533c38e..4fc956b 100644 --- a/src/zkasm_parser.jison +++ b/src/zkasm_parser.jison @@ -241,6 +241,10 @@ varDef { $$ = {type: "var", scope: $2, name: $3, count: $5 } } + | VAR scope IDENTIFIER '[' CONSTID ']' + { + $$ = {type: "var", scope: $2, name: $3, count: $5 } + } ; constDef @@ -313,7 +317,7 @@ nexpr { $$ = {type: $2, values: [$1, $3]} } - | nexpr '/' nexpr + | nexpr '/' nexpr { $$ = {type: $2, values: [$1, $3]} } @@ -787,19 +791,19 @@ addr } | SP '+' NUMBER { - $$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack: 0, offset: $3, useCTX: 1}} + $$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack: 0, offset: $3, useCTX: 1} } | SP '-' NUMBER { - $$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack: 0, offset: -$3, useCTX: 1}} + $$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack: 0, offset: -$3, useCTX: 1} } | SP '++' { - $$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack: 1, offset: 0, useCTX: 1}} + $$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack: 1, offset: 0, useCTX: 1} } | SP '--' { - $$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack: -1, offset: 0, useCTX: 1}} + $$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack: -1, offset: 0, useCTX: 1} } | SYS ':' E '+' NUMBER { diff --git a/test/arrays.zkasm b/test/arrays.zkasm index fd76a0c..d052001 100644 --- a/test/arrays.zkasm +++ b/test/arrays.zkasm @@ -1,31 +1,36 @@ -VAR GLOBAL a[100] +CONST %LEN1 = 100 +CONSTL %LEN2 = 300 + +VAR GLOBAL a1[%LEN1] +VAR GLOBAL a2[100] VAR GLOBAL b -VAR GLOBAL c[300] +VAR GLOBAL c1[%LEN2] +VAR GLOBAL c2[300] VAR GLOBAL d start: STEP => A 0 :ASSERT - 1 :MSTORE(a) + 1 :MSTORE(a1) 2 :MSTORE(b) - 3 :MSTORE(c) + 3 :MSTORE(c1) 4 :MSTORE(d) 13 => E - 0 :MLOAD(a[23]) - 0 :MLOAD(a[E + 10]) - 0x1FE223 :MSTORE(a[23]) - 0x1FE223 :MLOAD(a[23]) - 0x1FE223 :MLOAD(a[E + 10]) + 0 :MLOAD(a1[23]) + 0 :MLOAD(a1[E + 10]) + 0x1FE223 :MSTORE(a1[23]) + 0x1FE223 :MLOAD(a1[23]) + 0x1FE223 :MLOAD(a1[E + 10]) 0x1FE223 => A - ${mem.a[23]} :ASSERT - ${mem.a[E+10]} :ASSERT - ${getMemValueByAddress(addr.a+E+10)} :ASSERT + ${mem.a1[23]} :ASSERT + ${mem.a1[E+10]} :ASSERT + ${getMemValueByAddress(addr.a1+E+10)} :ASSERT 0 => RCX,E loopA: - E + 1 => E :MSTORE(a[E]) + E + 1 => E :MSTORE(a1[E]) E - RCX - 100 :JMPN(loopA) setB: E + 1 => E :MSTORE(b) @@ -33,28 +38,28 @@ setB: 0 => RCX,E loopC: E + 1 => E - E + 1000 :MSTORE(c + E) + E + 1000 :MSTORE(c1 + E) E - RCX - 300 :JMPN(loopC) setD: E + 1 => E :MSTORE(d) 1 => A - ${mem.a} :ASSERT + ${mem.a1} :ASSERT 1 => A - ${mem.a[0]} :ASSERT + ${mem.a1[0]} :ASSERT 2 => A - ${mem.a[1]} :ASSERT + ${mem.a1[1]} :ASSERT 3 => A - ${mem.a[2]} :ASSERT + ${mem.a1[2]} :ASSERT 1001 => A - ${mem.c[1]} :ASSERT + ${mem.c1[1]} :ASSERT 102 => A - ${addr.c[1]} :ASSERT + ${addr.c1[1]} :ASSERT 401 => A ${addr.d} :ASSERT From 14097d570579873485f95366e466071cd5066f7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A9ctor=20Masip=20Ardevol?= Date: Mon, 27 Nov 2023 19:10:19 +0100 Subject: [PATCH 18/25] Compiler updated (#75) --- src/compiler.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/compiler.js b/src/compiler.js index a5b33ff..50b1495 100644 --- a/src/compiler.js +++ b/src/compiler.js @@ -2,6 +2,7 @@ const path = require("path"); const fs = require("fs"); const util = require('util'); const { config } = require("process"); +const { get } = require("http"); const zkasm_parser = require("../build/zkasm_parser.js").parser; const command_parser = require("../build/command_parser.js").parser; const stringifyBigInts = require("ffjavascript").utils.stringifyBigInts; @@ -72,12 +73,21 @@ module.exports = async function compile(fileName, ctx, config = {}) { scope: "GLOBAL", offset: ctx.lastGlobalVarAssigned + 1 } - ctx.lastGlobalVarAssigned += l.count; + if (typeof l.count === 'string') { + ctx.lastGlobalVarAssigned += Number(getConstantValue(ctx, l.count)); + } else { + ctx.lastGlobalVarAssigned += l.count; + } } else if (l.scope == "CTX") { ctx.vars[l.name] = { scope: "CTX", offset: ctx.lastLocalVarCtxAssigned + 1 } + if (typeof l.count === 'string') { + ctx.lastGlobalVarAssigned += Number(getConstantValue(ctx, l.count)); + } else { + ctx.lastGlobalVarAssigned += l.count; + } ctx.lastLocalVarCtxAssigned += l.count; } else { throw error(l, `Invalid scope ${l.scope}`); From 610e7b560409486b29d7e472091516fe8a6bbbc0 Mon Sep 17 00:00:00 2001 From: zkronos73 Date: Wed, 29 Nov 2023 14:28:47 +0100 Subject: [PATCH 19/25] add infree0 feature --- build/zkasm_parser.js | 385 +++++++++++++++++++++-------------------- package.json | 2 +- src/compiler.js | 5 +- src/zkasm_parser.jison | 6 +- test/infree0.zkasm | 20 +++ 5 files changed, 225 insertions(+), 193 deletions(-) create mode 100644 test/infree0.zkasm diff --git a/build/zkasm_parser.js b/build/zkasm_parser.js index 77ffe3b..0deecf6 100644 --- a/build/zkasm_parser.js +++ b/build/zkasm_parser.js @@ -72,12 +72,12 @@ } */ var zkasm_parser = (function(){ -var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,10],$V1=[1,12],$V2=[1,13],$V3=[1,14],$V4=[1,26],$V5=[1,28],$V6=[1,15],$V7=[1,16],$V8=[1,18],$V9=[1,36],$Va=[1,17],$Vb=[1,27],$Vc=[1,20],$Vd=[1,23],$Ve=[1,29],$Vf=[1,40],$Vg=[1,34],$Vh=[1,45],$Vi=[1,46],$Vj=[1,47],$Vk=[1,48],$Vl=[1,49],$Vm=[1,50],$Vn=[1,51],$Vo=[1,52],$Vp=[1,30],$Vq=[1,31],$Vr=[1,32],$Vs=[1,33],$Vt=[1,35],$Vu=[1,37],$Vv=[1,38],$Vw=[1,39],$Vx=[1,41],$Vy=[1,42],$Vz=[1,43],$VA=[1,44],$VB=[5,13,15,17,18,21,23,24,27,28,30,31,33,36,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],$VC=[1,59],$VD=[1,60],$VE=[1,61],$VF=[1,62],$VG=[1,63],$VH=[1,64],$VI=[1,65],$VJ=[1,66],$VK=[1,67],$VL=[1,68],$VM=[1,69],$VN=[1,70],$VO=[1,71],$VP=[1,72],$VQ=[1,73],$VR=[1,76],$VS=[1,77],$VT=[1,78],$VU=[1,79],$VV=[1,80],$VW=[1,81],$VX=[1,82],$VY=[1,83],$VZ=[1,84],$V_=[1,85],$V$=[1,86],$V01=[1,87],$V11=[1,88],$V21=[1,89],$V31=[1,90],$V41=[1,91],$V51=[1,92],$V61=[1,93],$V71=[1,94],$V81=[1,95],$V91=[1,96],$Va1=[1,97],$Vb1=[1,98],$Vc1=[1,99],$Vd1=[1,100],$Ve1=[1,101],$Vf1=[1,102],$Vg1=[1,103],$Vh1=[1,104],$Vi1=[13,15],$Vj1=[13,15,35,36,59],$Vk1=[1,116],$Vl1=[13,15,35,36,37,59],$Vm1=[13,15,35,36,37,59,67],$Vn1=[1,121],$Vo1=[13,67],$Vp1=[1,158],$Vq1=[1,154],$Vr1=[1,155],$Vs1=[1,156],$Vt1=[1,157],$Vu1=[1,161],$Vv1=[1,162],$Vw1=[1,188],$Vx1=[1,190],$Vy1=[1,189],$Vz1=[1,191],$VA1=[1,192],$VB1=[1,193],$VC1=[13,15,67],$VD1=[5,13,15,17,18,21,23,24,27,28,30,31,33,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],$VE1=[1,237],$VF1=[1,238],$VG1=[1,239],$VH1=[1,240],$VI1=[1,241],$VJ1=[1,242],$VK1=[1,243],$VL1=[1,244],$VM1=[1,245],$VN1=[1,246],$VO1=[1,247],$VP1=[1,248],$VQ1=[1,249],$VR1=[1,250],$VS1=[1,251],$VT1=[1,252],$VU1=[1,253],$VV1=[1,254],$VW1=[1,255],$VX1=[1,256],$VY1=[5,13,15,17,18,21,23,24,27,28,30,31,33,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],$VZ1=[5,13,15,17,18,21,23,24,27,28,30,31,33,35,36,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],$V_1=[5,13,15,17,18,21,23,24,27,28,30,31,33,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],$V$1=[5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,46,47,48,49,50,51,52,53,55,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],$V02=[5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,50,51,52,53,55,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138]; +var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,10],$V1=[1,12],$V2=[1,13],$V3=[1,14],$V4=[1,27],$V5=[1,29],$V6=[1,15],$V7=[1,16],$V8=[1,18],$V9=[1,37],$Va=[1,17],$Vb=[1,28],$Vc=[1,20],$Vd=[1,23],$Ve=[1,24],$Vf=[1,30],$Vg=[1,41],$Vh=[1,35],$Vi=[1,46],$Vj=[1,47],$Vk=[1,48],$Vl=[1,49],$Vm=[1,50],$Vn=[1,51],$Vo=[1,52],$Vp=[1,53],$Vq=[1,31],$Vr=[1,32],$Vs=[1,33],$Vt=[1,34],$Vu=[1,36],$Vv=[1,38],$Vw=[1,39],$Vx=[1,40],$Vy=[1,42],$Vz=[1,43],$VA=[1,44],$VB=[1,45],$VC=[5,13,15,17,18,21,23,24,27,28,30,31,33,36,63,64,67,89,90,115,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],$VD=[1,60],$VE=[1,61],$VF=[1,62],$VG=[1,63],$VH=[1,64],$VI=[1,65],$VJ=[1,66],$VK=[1,67],$VL=[1,68],$VM=[1,69],$VN=[1,70],$VO=[1,71],$VP=[1,72],$VQ=[1,73],$VR=[1,74],$VS=[1,77],$VT=[1,78],$VU=[1,79],$VV=[1,80],$VW=[1,81],$VX=[1,82],$VY=[1,83],$VZ=[1,84],$V_=[1,85],$V$=[1,86],$V01=[1,87],$V11=[1,88],$V21=[1,89],$V31=[1,90],$V41=[1,91],$V51=[1,92],$V61=[1,93],$V71=[1,94],$V81=[1,95],$V91=[1,96],$Va1=[1,97],$Vb1=[1,98],$Vc1=[1,99],$Vd1=[1,100],$Ve1=[1,101],$Vf1=[1,102],$Vg1=[1,103],$Vh1=[1,104],$Vi1=[1,105],$Vj1=[13,15],$Vk1=[13,15,35,36,59],$Vl1=[1,117],$Vm1=[13,15,35,36,37,59],$Vn1=[13,15,35,36,37,59,68],$Vo1=[1,122],$Vp1=[13,68],$Vq1=[1,159],$Vr1=[1,155],$Vs1=[1,156],$Vt1=[1,157],$Vu1=[1,158],$Vv1=[1,162],$Vw1=[1,163],$Vx1=[1,189],$Vy1=[1,191],$Vz1=[1,190],$VA1=[1,192],$VB1=[1,193],$VC1=[1,194],$VD1=[13,15,68],$VE1=[5,13,15,17,18,21,23,24,27,28,30,31,33,63,64,67,89,90,115,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],$VF1=[1,238],$VG1=[1,239],$VH1=[1,240],$VI1=[1,241],$VJ1=[1,242],$VK1=[1,243],$VL1=[1,244],$VM1=[1,245],$VN1=[1,246],$VO1=[1,247],$VP1=[1,248],$VQ1=[1,249],$VR1=[1,250],$VS1=[1,251],$VT1=[1,252],$VU1=[1,253],$VV1=[1,254],$VW1=[1,255],$VX1=[1,256],$VY1=[1,257],$VZ1=[5,13,15,17,18,21,23,24,27,28,30,31,33,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,64,67,89,90,115,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],$V_1=[5,13,15,17,18,21,23,24,27,28,30,31,33,35,36,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,64,67,89,90,115,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],$V$1=[5,13,15,17,18,21,23,24,27,28,30,31,33,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,64,67,89,90,115,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],$V02=[5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,46,47,48,49,50,51,52,53,55,57,63,64,67,89,90,115,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],$V12=[5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,50,51,52,53,55,57,63,64,67,89,90,115,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139]; var parser = {trace: function trace () { }, yy: {}, -symbols_: {"error":2,"allStatments":3,"statmentList":4,"EOF":5,"statment":6,"step":7,"label":8,"varDef":9,"constDef":10,"include":11,"command":12,"LF":13,"assignment":14,":":15,"opList":16,"IDENTIFIER":17,"VAR":18,"scope":19,"[":20,"NUMBER":21,"]":22,"CONSTID":23,"CONST":24,"=":25,"nexpr":26,"CONSTL":27,"COMMAND":28,"GLOBAL":29,"CTX":30,"INCLUDE":31,"STRING":32,"NUMBERL":33,"??":34,"+":35,"-":36,"*":37,"**":38,"%":39,"/":40,"<<":41,">>":42,"|":43,"&":44,"^":45,"<":46,">":47,"<=":48,">=":49,"==":50,"!=":51,"&&":52,"||":53,"!":54,"?":55,"(":56,")":57,"inRegsSum":58,"=>":59,"regsList":60,"inRegP":61,"inReg":62,"TAG":63,"reg":64,"counter":65,"REFERENCE":66,",":67,"op":68,"MLOAD":69,"addr":70,"MSTORE":71,"HASHK":72,"hashId":73,"HASHK1":74,"HASHKLEN":75,"HASHKDIGEST":76,"HASHS":77,"HASHS1":78,"HASHSLEN":79,"HASHSDIGEST":80,"HASHP":81,"HASHP1":82,"HASHPLEN":83,"HASHPDIGEST":84,"JMP":85,"jmpCond":86,"jmpNotCond":87,"RR":88,"E":89,"CALL":90,"RETURN":91,"ASSERT":92,"SLOAD":93,"SSTORE":94,"ARITH":95,"ARITH_ECADD_DIFFERENT":96,"ARITH_ECADD_SAME":97,"ARITH_BN254_MULFP2":98,"ARITH_BN254_ADDFP2":99,"ARITH_BN254_SUBFP2":100,"ADD":101,"SUB":102,"LT":103,"SLT":104,"EQ":105,"AND":106,"OR":107,"XOR":108,"LT4":109,"MEM_ALIGN_RD":110,"MEM_ALIGN_WR":111,"MEM_ALIGN_WR8":112,"REPEAT":113,"RCX":114,"JMPN":115,"JMPC":116,"JMPZ":117,"JMPNC":118,"JMPNZ":119,"CNT_ARITH":120,"CNT_BINARY":121,"CNT_KECCAK_F":122,"CNT_SHA256_F":123,"CNT_MEM_ALIGN":124,"CNT_PADDING_PG":125,"CNT_POSEIDON_G":126,"A":127,"B":128,"C":129,"D":130,"SR":131,"SP":132,"PC":133,"GAS":134,"zkPC":135,"STEP":136,"HASHPOS":137,"ROTL_C":138,"++":139,"--":140,"SYS":141,"MEM":142,"STACK":143,"$accept":0,"$end":1}, -terminals_: {2:"error",5:"EOF",13:"LF",15:":",17:"IDENTIFIER",18:"VAR",20:"[",21:"NUMBER",22:"]",23:"CONSTID",24:"CONST",25:"=",27:"CONSTL",28:"COMMAND",29:"GLOBAL",30:"CTX",31:"INCLUDE",32:"STRING",33:"NUMBERL",34:"??",35:"+",36:"-",37:"*",38:"**",39:"%",40:"/",41:"<<",42:">>",43:"|",44:"&",45:"^",46:"<",47:">",48:"<=",49:">=",50:"==",51:"!=",52:"&&",53:"||",54:"!",55:"?",56:"(",57:")",59:"=>",63:"TAG",66:"REFERENCE",67:",",69:"MLOAD",71:"MSTORE",72:"HASHK",74:"HASHK1",75:"HASHKLEN",76:"HASHKDIGEST",77:"HASHS",78:"HASHS1",79:"HASHSLEN",80:"HASHSDIGEST",81:"HASHP",82:"HASHP1",83:"HASHPLEN",84:"HASHPDIGEST",85:"JMP",88:"RR",89:"E",90:"CALL",91:"RETURN",92:"ASSERT",93:"SLOAD",94:"SSTORE",95:"ARITH",96:"ARITH_ECADD_DIFFERENT",97:"ARITH_ECADD_SAME",98:"ARITH_BN254_MULFP2",99:"ARITH_BN254_ADDFP2",100:"ARITH_BN254_SUBFP2",101:"ADD",102:"SUB",103:"LT",104:"SLT",105:"EQ",106:"AND",107:"OR",108:"XOR",109:"LT4",110:"MEM_ALIGN_RD",111:"MEM_ALIGN_WR",112:"MEM_ALIGN_WR8",113:"REPEAT",114:"RCX",115:"JMPN",116:"JMPC",117:"JMPZ",118:"JMPNC",119:"JMPNZ",120:"CNT_ARITH",121:"CNT_BINARY",122:"CNT_KECCAK_F",123:"CNT_SHA256_F",124:"CNT_MEM_ALIGN",125:"CNT_PADDING_PG",126:"CNT_POSEIDON_G",127:"A",128:"B",129:"C",130:"D",131:"SR",132:"SP",133:"PC",134:"GAS",135:"zkPC",136:"STEP",137:"HASHPOS",138:"ROTL_C",139:"++",140:"--",141:"SYS",142:"MEM",143:"STACK"}, -productions_: [0,[3,2],[4,2],[4,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[7,4],[7,2],[7,3],[8,2],[9,3],[9,6],[9,6],[10,4],[10,4],[12,1],[19,1],[19,1],[11,2],[26,1],[26,1],[26,1],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,2],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,2],[26,5],[26,3],[14,3],[14,1],[58,3],[58,3],[58,2],[58,1],[61,3],[61,1],[62,1],[62,1],[62,1],[62,3],[62,3],[62,1],[62,1],[62,1],[62,1],[60,3],[60,1],[16,3],[16,1],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,4],[68,6],[68,4],[68,6],[68,4],[68,4],[68,6],[68,6],[68,4],[68,4],[68,6],[68,6],[68,6],[68,6],[68,8],[68,8],[68,4],[68,6],[68,6],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,4],[86,1],[86,1],[86,1],[87,1],[87,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[64,1],[70,1],[70,3],[70,3],[70,2],[70,2],[70,5],[70,5],[70,3],[70,5],[70,5],[70,3],[70,5],[70,5],[70,3],[70,1],[70,3],[70,3],[70,4],[70,6],[70,6],[70,3],[70,4],[73,1],[73,1]], +symbols_: {"error":2,"allStatments":3,"statmentList":4,"EOF":5,"statment":6,"step":7,"label":8,"varDef":9,"constDef":10,"include":11,"command":12,"LF":13,"assignment":14,":":15,"opList":16,"IDENTIFIER":17,"VAR":18,"scope":19,"[":20,"NUMBER":21,"]":22,"CONSTID":23,"CONST":24,"=":25,"nexpr":26,"CONSTL":27,"COMMAND":28,"GLOBAL":29,"CTX":30,"INCLUDE":31,"STRING":32,"NUMBERL":33,"??":34,"+":35,"-":36,"*":37,"**":38,"%":39,"/":40,"<<":41,">>":42,"|":43,"&":44,"^":45,"<":46,">":47,"<=":48,">=":49,"==":50,"!=":51,"&&":52,"||":53,"!":54,"?":55,"(":56,")":57,"inRegsSum":58,"=>":59,"regsList":60,"inRegP":61,"inReg":62,"TAG":63,"TAG_0":64,"reg":65,"counter":66,"REFERENCE":67,",":68,"op":69,"MLOAD":70,"addr":71,"MSTORE":72,"HASHK":73,"hashId":74,"HASHK1":75,"HASHKLEN":76,"HASHKDIGEST":77,"HASHS":78,"HASHS1":79,"HASHSLEN":80,"HASHSDIGEST":81,"HASHP":82,"HASHP1":83,"HASHPLEN":84,"HASHPDIGEST":85,"JMP":86,"jmpCond":87,"jmpNotCond":88,"RR":89,"E":90,"CALL":91,"RETURN":92,"ASSERT":93,"SLOAD":94,"SSTORE":95,"ARITH":96,"ARITH_ECADD_DIFFERENT":97,"ARITH_ECADD_SAME":98,"ARITH_BN254_MULFP2":99,"ARITH_BN254_ADDFP2":100,"ARITH_BN254_SUBFP2":101,"ADD":102,"SUB":103,"LT":104,"SLT":105,"EQ":106,"AND":107,"OR":108,"XOR":109,"LT4":110,"MEM_ALIGN_RD":111,"MEM_ALIGN_WR":112,"MEM_ALIGN_WR8":113,"REPEAT":114,"RCX":115,"JMPN":116,"JMPC":117,"JMPZ":118,"JMPNC":119,"JMPNZ":120,"CNT_ARITH":121,"CNT_BINARY":122,"CNT_KECCAK_F":123,"CNT_SHA256_F":124,"CNT_MEM_ALIGN":125,"CNT_PADDING_PG":126,"CNT_POSEIDON_G":127,"A":128,"B":129,"C":130,"D":131,"SR":132,"SP":133,"PC":134,"GAS":135,"zkPC":136,"STEP":137,"HASHPOS":138,"ROTL_C":139,"++":140,"--":141,"SYS":142,"MEM":143,"STACK":144,"$accept":0,"$end":1}, +terminals_: {2:"error",5:"EOF",13:"LF",15:":",17:"IDENTIFIER",18:"VAR",20:"[",21:"NUMBER",22:"]",23:"CONSTID",24:"CONST",25:"=",27:"CONSTL",28:"COMMAND",29:"GLOBAL",30:"CTX",31:"INCLUDE",32:"STRING",33:"NUMBERL",34:"??",35:"+",36:"-",37:"*",38:"**",39:"%",40:"/",41:"<<",42:">>",43:"|",44:"&",45:"^",46:"<",47:">",48:"<=",49:">=",50:"==",51:"!=",52:"&&",53:"||",54:"!",55:"?",56:"(",57:")",59:"=>",63:"TAG",64:"TAG_0",67:"REFERENCE",68:",",70:"MLOAD",72:"MSTORE",73:"HASHK",75:"HASHK1",76:"HASHKLEN",77:"HASHKDIGEST",78:"HASHS",79:"HASHS1",80:"HASHSLEN",81:"HASHSDIGEST",82:"HASHP",83:"HASHP1",84:"HASHPLEN",85:"HASHPDIGEST",86:"JMP",89:"RR",90:"E",91:"CALL",92:"RETURN",93:"ASSERT",94:"SLOAD",95:"SSTORE",96:"ARITH",97:"ARITH_ECADD_DIFFERENT",98:"ARITH_ECADD_SAME",99:"ARITH_BN254_MULFP2",100:"ARITH_BN254_ADDFP2",101:"ARITH_BN254_SUBFP2",102:"ADD",103:"SUB",104:"LT",105:"SLT",106:"EQ",107:"AND",108:"OR",109:"XOR",110:"LT4",111:"MEM_ALIGN_RD",112:"MEM_ALIGN_WR",113:"MEM_ALIGN_WR8",114:"REPEAT",115:"RCX",116:"JMPN",117:"JMPC",118:"JMPZ",119:"JMPNC",120:"JMPNZ",121:"CNT_ARITH",122:"CNT_BINARY",123:"CNT_KECCAK_F",124:"CNT_SHA256_F",125:"CNT_MEM_ALIGN",126:"CNT_PADDING_PG",127:"CNT_POSEIDON_G",128:"A",129:"B",130:"C",131:"D",132:"SR",133:"SP",134:"PC",135:"GAS",136:"zkPC",137:"STEP",138:"HASHPOS",139:"ROTL_C",140:"++",141:"--",142:"SYS",143:"MEM",144:"STACK"}, +productions_: [0,[3,2],[4,2],[4,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[7,4],[7,2],[7,3],[8,2],[9,3],[9,6],[9,6],[10,4],[10,4],[12,1],[19,1],[19,1],[11,2],[26,1],[26,1],[26,1],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,2],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,2],[26,5],[26,3],[14,3],[14,1],[58,3],[58,3],[58,2],[58,1],[61,3],[61,1],[62,1],[62,1],[62,1],[62,1],[62,3],[62,3],[62,1],[62,1],[62,1],[62,1],[60,3],[60,1],[16,3],[16,1],[69,4],[69,4],[69,4],[69,4],[69,4],[69,4],[69,4],[69,4],[69,4],[69,4],[69,4],[69,4],[69,4],[69,4],[69,4],[69,4],[69,6],[69,4],[69,6],[69,4],[69,4],[69,6],[69,6],[69,4],[69,4],[69,6],[69,6],[69,6],[69,6],[69,8],[69,8],[69,4],[69,6],[69,6],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,4],[87,1],[87,1],[87,1],[88,1],[88,1],[66,1],[66,1],[66,1],[66,1],[66,1],[66,1],[66,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[71,1],[71,3],[71,3],[71,2],[71,2],[71,5],[71,5],[71,3],[71,5],[71,5],[71,3],[71,5],[71,5],[71,3],[71,1],[71,3],[71,3],[71,4],[71,6],[71,6],[71,3],[71,4],[74,1],[74,1]], performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { /* this == yyval */ @@ -176,7 +176,7 @@ case 24: case 25: this.$ = {type: 'CONSTL' , value: $$[$0]} break; -case 26: case 66: +case 26: case 67: this.$ = {type: 'CONSTID' , identifier: $$[$0]} @@ -248,507 +248,512 @@ case 59: break; case 60: - this.$ = {type: 'REG' , reg: $$[$0]} + this.$ = {type: 'TAG_0' , tag: $$[$0]} break; case 61: - this.$ = {type: 'COUNTER', counter: $$[$0]} + this.$ = {type: 'REG' , reg: $$[$0]} break; case 62: - this.$ = {type: "exp", values: [$$[$0-2], $$[$0]]} + this.$ = {type: 'COUNTER', counter: $$[$0]} break; case 63: - this.$ = {type: "expl", values: [$$[$0-2], $$[$0]]} + this.$ = {type: "exp", values: [$$[$0-2], $$[$0]]} break; case 64: - this.$ = {type: 'CONST' , const: $$[$0]} + this.$ = {type: "expl", values: [$$[$0-2], $$[$0]]} break; case 65: + this.$ = {type: 'CONST' , const: $$[$0]} + +break; +case 66: + this.$ = {type: 'CONSTL' , const: $$[$0]} break; -case 67: +case 68: this.$ = {type: 'reference', identifier: $$[$0]} break; -case 68: +case 69: $$[$0-2].push($$[$0]) break; -case 69: case 71: +case 70: case 72: this.$ = [$$[$0]] break; -case 70: +case 71: $$[$0-2].push($$[$0]); this.$ = $$[$0-2] break; -case 72: +case 73: this.$ = $$[$0-1]; this.$.mOp = 1; this.$.mWR = 0; break; -case 73: +case 74: this.$ = $$[$0-1]; this.$.mOp = 1; this.$.mWR = 1; break; -case 74: +case 75: this.$ = $$[$0-1]; this.$.hashK = 1; break; -case 75: +case 76: this.$ = $$[$0-1]; this.$.hashK1 = 1; break; -case 76: +case 77: this.$ = $$[$0-1]; this.$.hashKLen = 1; break; -case 77: +case 78: this.$ = $$[$0-1]; this.$.hashKDigest = 1; break; -case 78: +case 79: this.$ = $$[$0-1]; this.$.hashS = 1; break; -case 79: +case 80: this.$ = $$[$0-1]; this.$.hashS1 = 1; break; -case 80: +case 81: this.$ = $$[$0-1]; this.$.hashSLen = 1; break; -case 81: +case 82: this.$ = $$[$0-1]; this.$.hashSDigest = 1; break; -case 82: +case 83: this.$ = $$[$0-1]; this.$.hashP = 1; break; -case 83: +case 84: this.$ = $$[$0-1]; this.$.hashP1 = 1; break; -case 84: +case 85: this.$ = $$[$0-1]; this.$.hashPLen = 1; break; -case 85: +case 86: this.$ = $$[$0-1]; this.$.hashPDigest = 1; break; -case 86: +case 87: this.$ = { [$$[$0-3]]: 1, useJmpAddr: 1, jmpAddr: $$[$0-1] } break; -case 87: +case 88: this.$ = { [$$[$0-3]]: 1, useJmpAddr: 1, jmpAddr: $$[$0-1], useElseAddr: 1, elseAddr: 'next' } break; -case 88: +case 89: this.$ = { [$$[$0-5]]: 1, useJmpAddr: 1, jmpAddr: $$[$0-3], useElseAddr: 1, elseAddr: $$[$0-1] } break; -case 89: +case 90: this.$ = { [$$[$0-3]]: 1, useJmpAddr: 1, jmpAddr: 'next', useElseAddr: 1, elseAddr: $$[$0-1] } break; -case 90: +case 91: this.$ = { [$$[$0-5]]: 1, useJmpAddr: 1, jmpAddr: $$[$0-1], useElseAddr: 1, elseAddr: $$[$0-3] } break; -case 91: +case 92: this.$ = { [$$[$0-3]]: 1, useJmpAddr: 0, ind: 0, indRR: 1, offset: 0 } break; -case 92: +case 93: this.$ = { [$$[$0-3]]: 1, useJmpAddr: 0, ind: 1, indRR: 0, offset: 0 } break; -case 93: +case 94: this.$ = { [$$[$0-5]]: 1, useJmpAddr: 0, ind: 0, indRR: 1, offset: $$[$0-3] } break; -case 94: +case 95: this.$ = { [$$[$0-5]]: 1, useJmpAddr: 0, ind: 1, indRR: 0, offset: $$[$0-3] } break; -case 95: +case 96: this.$ = { [$$[$0-3]]: 1, useJmpAddr: 0, ind: 0, indRR: 1, offset: 0, useElseAddr: 1, elseAddr: 'next' } break; -case 96: +case 97: this.$ = { [$$[$0-3]]: 1, useJmpAddr: 0, ind: 1, indRR: 0, offset: 0, useElseAddr: 1, elseAddr: 'next' } break; -case 97: +case 98: this.$ = { [$$[$0-5]]: 1, useJmpAddr: 0, ind: 0, indRR: 1, offset: $$[$0-3], useElseAddr: 1, elseAddr: 'next' } break; -case 98: +case 99: this.$ = { [$$[$0-5]]: 1, useJmpAddr: 0, ind: 1, indRR: 0, offset: $$[$0-3], useElseAddr: 1, elseAddr: 'next' } break; -case 99: +case 100: this.$ = { [$$[$0-5]]: 1, useJmpAddr: 0, ind: 0, indRR: 1, offset: 0, useElseAddr: 1, elseAddr: $$[$0-1] } break; -case 100: +case 101: this.$ = { [$$[$0-5]]: 1, useJmpAddr: 0, ind: 1, indRR: 0, offset: 0, useElseAddr: 1, elseAddr: $$[$0-1] } break; -case 101: +case 102: this.$ = { [$$[$0-7]]: 1, useJmpAddr: 0, ind: 0, indRR: 1, offset: $$[$0-5], useElseAddr: 1, elseAddr: $$[$0-1] } break; -case 102: +case 103: this.$ = { [$$[$0-7]]: 1, useJmpAddr: 0, ind: 1, indRR: 0, offset: $$[$0-5], useElseAddr: 1, elseAddr: $$[$0-1] } break; -case 103: +case 104: this.$ = {JMP: 0, JMPC: 0, JMPN: 0, useJmpAddr:1, jmpAddr: $$[$0-1], call: 1} break; -case 104: +case 105: this.$ = {JMP: 0, JMPC: 0, JMPN: 0, offset: $$[$0-3], ind: 0, indRR: 1, return: 0, call: 1} break; -case 105: +case 106: this.$ = {JMP: 0, JMPC: 0, JMPN: 0, offset: $$[$0-3], ind: 1, indRR: 0, return: 0, call: 1} break; -case 106: +case 107: this.$ = {JMP: 0, JMPC: 0, JMPN: 0, call: 0, return: 1} break; -case 107: +case 108: this.$ = {assert: 1} break; -case 108: +case 109: this.$ = {sRD: 1} break; -case 109: +case 110: this.$ = {sWR: 1} break; -case 110: +case 111: this.$ = { arithEq0: 1, arithEq1: 0, arithEq2: 0, arithEq3: 0, arithEq4: 0, arithEq5: 0 } break; -case 111: +case 112: this.$ = { arithEq0: 0, arithEq1: 1, arithEq2: 0, arithEq3: 0, arithEq4: 0, arithEq5: 0 } break; -case 112: +case 113: this.$ = { arithEq0: 0, arithEq1: 0, arithEq2: 0, arithEq3: 0, arithEq4: 0, arithEq5: 0 } break; -case 113: +case 114: this.$ = { arithEq0: 0, arithEq1: 0, arithEq2: 0, arithEq3: 1, arithEq4: 0, arithEq5: 0 } break; -case 114: +case 115: this.$ = { arithEq0: 0, arithEq1: 0, arithEq2: 0, arithEq3: 0, arithEq4: 1, arithEq5: 0 } break; -case 115: +case 116: this.$ = { arithEq0: 0, arithEq1: 0, arithEq2: 0, arithEq3: 0, arithEq4: 0, arithEq5: 1 } break; -case 116: +case 117: this.$ = { bin: 1, binOpcode: 0} break; -case 117: +case 118: this.$ = { bin: 1, binOpcode: 1} break; -case 118: +case 119: this.$ = { bin: 1, binOpcode: 2} break; -case 119: +case 120: this.$ = { bin: 1, binOpcode: 3} break; -case 120: +case 121: this.$ = { bin: 1, binOpcode: 4} break; -case 121: +case 122: this.$ = { bin: 1, binOpcode: 5} break; -case 122: +case 123: this.$ = { bin: 1, binOpcode: 6} break; -case 123: +case 124: this.$ = { bin: 1, binOpcode: 7} break; -case 124: +case 125: this.$ = { bin: 1, binOpcode: 8} break; -case 125: +case 126: this.$ = { memAlignRD: 1, memAlignWR: 0, memAlignWR8: 0} break; -case 126: +case 127: this.$ = { memAlignRD: 0, memAlignWR: 1, memAlignWR8: 0} break; -case 127: +case 128: this.$ = { memAlignRD: 0, memAlignWR: 0, memAlignWR8: 1} break; -case 128: +case 129: this.$ = { repeat: 1 } break; -case 132: +case 133: this.$ = 'JMPC' break; -case 133: +case 134: this.$ = 'JMPZ' break; -case 134: +case 135: this.$ = 'cntArith' break; -case 135: +case 136: this.$ = 'cntBinary' break; -case 136: +case 137: this.$ = 'cntKeccakF' break; -case 137: +case 138: this.$ = 'cntSha256F' break; -case 138: +case 139: this.$ = 'cntMemAlign' break; -case 139: +case 140: this.$ = 'cntPaddingPG' break; -case 140: +case 141: this.$ = 'cntPoseidonG' break; -case 157: +case 158: this.$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack:0, offset: 0, useCTX: 1} break; -case 158: +case 159: this.$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack: 0, offset: $$[$0], useCTX: 1} break; -case 159: +case 160: this.$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack: 0, offset: -$$[$0], useCTX: 1} break; -case 160: +case 161: this.$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack: 1, offset: 0, useCTX: 1} break; -case 161: +case 162: this.$ = { isStack: 1, isMem:0, ind:0, indRR: 0, incStack: -1, offset: 0, useCTX: 1} break; -case 162: +case 163: this.$ = { isStack: 0, isMem:0, ind:1, indRR: 0, incStack: 0, offset: $$[$0]} break; -case 163: +case 164: this.$ = { isStack: 0, isMem:0, ind:1, indRR: 0, incStack: 0, offset: -$$[$0]} break; -case 164: +case 165: this.$ = { isStack: 0, isMem:0, ind:1, indRR: 0, incStack: 0, offset: 0} break; -case 165: +case 166: this.$ = { isStack: 0, isMem: 1, ind:1, indRR: 0, incStack: 0, offset: $$[$0], useCTX: 1} break; -case 166: +case 167: this.$ = { isStack: 0, isMem: 1, ind:1, indRR: 0, incStack: 0, offset: -$$[$0], useCTX: 1} break; -case 167: +case 168: this.$ = { isStack: 0, isMem: 1, ind:1, indRR: 0, incStack: 0, offset: 0, useCTX: 1} break; -case 168: +case 169: this.$ = { isStack: 1, ind:1, indRR: 0, incStack: 0, offset: $$[$0], useCTX: 1} break; -case 169: +case 170: this.$ = { isStack: 1, ind:1, indRR: 0, incStack: 0, offset: -$$[$0], useCTX: 1} break; -case 170: +case 171: this.$ = { isStack: 1, ind:1, indRR: 0, incStack: 0, offset: 0, useCTX: 1} break; -case 171: +case 172: this.$ = { offset: $$[$0] } break; -case 172: +case 173: this.$ = { offset: $$[$0-2], ind: 0, indRR: 1 } break; -case 173: +case 174: this.$ = { offset: $$[$0-2], ind: 1, indRR: 0 } break; -case 174: +case 175: this.$ = { offset: $$[$0-3], ind: 1, indRR: 0 } break; -case 175: +case 176: this.$ = { offset: $$[$0-5], extraOffset: -$$[$0-1], ind: 1, indRR: 0 } break; -case 176: +case 177: this.$ = { offset: $$[$0-5], extraOffset: $$[$0-1], ind: 1, indRR: 0 } break; -case 177: +case 178: this.$ = { offset: $$[$0-2], extraOffset: $$[$0] } break; -case 178: +case 179: this.$ = { offset: $$[$0-3], extraOffset: $$[$0-1] } break; -case 179: +case 180: this.$ = {ind: 0, indRR: 0, offset:$$[$0]} break; -case 180: +case 181: this.$ = {ind: 1, indRR: 0, offset:0} break; } }, -table: [{3:1,4:2,6:3,7:4,8:5,9:6,10:7,11:8,12:9,13:$V0,14:11,15:$V1,17:$V2,18:$V3,21:$V4,23:$V5,24:$V6,27:$V7,28:$V8,30:$V9,31:$Va,33:$Vb,36:$Vc,58:19,61:21,62:22,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,114:$Vh,120:$Vi,121:$Vj,122:$Vk,123:$Vl,124:$Vm,125:$Vn,126:$Vo,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA},{1:[3]},{5:[1,53],6:54,7:4,8:5,9:6,10:7,11:8,12:9,13:$V0,14:11,15:$V1,17:$V2,18:$V3,21:$V4,23:$V5,24:$V6,27:$V7,28:$V8,30:$V9,31:$Va,33:$Vb,36:$Vc,58:19,61:21,62:22,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,114:$Vh,120:$Vi,121:$Vj,122:$Vk,123:$Vl,124:$Vm,125:$Vn,126:$Vo,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA},o($VB,[2,3]),o($VB,[2,4]),o($VB,[2,5]),o($VB,[2,6]),o($VB,[2,7]),o($VB,[2,8]),o($VB,[2,9]),o($VB,[2,10]),{13:[1,56],15:[1,55]},{16:57,68:58,69:$VC,71:$VD,72:$VE,74:$VF,75:$VG,76:$VH,77:$VI,78:$VJ,79:$VK,80:$VL,81:$VM,82:$VN,83:$VO,84:$VP,85:$VQ,86:74,87:75,90:$VR,91:$VS,92:$VT,93:$VU,94:$VV,95:$VW,96:$VX,97:$VY,98:$VZ,99:$V_,100:$V$,101:$V01,102:$V11,103:$V21,104:$V31,105:$V41,106:$V51,107:$V61,108:$V71,109:$V81,110:$V91,111:$Va1,112:$Vb1,113:$Vc1,115:$Vd1,116:$Ve1,117:$Vf1,118:$Vg1,119:$Vh1},{15:[1,105]},{19:106,29:[1,107],30:[1,108]},{23:[1,109]},{23:[1,110]},{32:[1,111]},o($VB,[2,20]),o($Vi1,[2,52],{35:[1,113],36:[1,114],59:[1,112]}),{21:$V4,23:$V5,30:$V9,33:$Vb,61:115,62:22,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,114:$Vh,120:$Vi,121:$Vj,122:$Vk,123:$Vl,124:$Vm,125:$Vn,126:$Vo,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA},o($Vj1,[2,56],{37:$Vk1}),o($Vl1,[2,58]),o($Vl1,[2,59]),o($Vl1,[2,60]),o($Vl1,[2,61]),o($Vl1,[2,64],{38:[1,117]}),o($Vl1,[2,65],{38:[1,118]}),o($Vl1,[2,66]),o($Vl1,[2,67]),o($Vm1,[2,141]),o($Vm1,[2,142]),o($Vm1,[2,143]),o($Vm1,[2,144]),o($Vm1,[2,145]),o($Vm1,[2,146]),o($Vm1,[2,147]),o($Vm1,[2,148]),o($Vm1,[2,149]),o($Vm1,[2,150]),o($Vm1,[2,151]),o($Vm1,[2,152]),o($Vm1,[2,153]),o($Vm1,[2,154]),o($Vm1,[2,155]),o($Vm1,[2,156]),o($Vl1,[2,134]),o($Vl1,[2,135]),o($Vl1,[2,136]),o($Vl1,[2,137]),o($Vl1,[2,138]),o($Vl1,[2,139]),o($Vl1,[2,140]),{1:[2,1]},o($VB,[2,2]),{16:119,68:58,69:$VC,71:$VD,72:$VE,74:$VF,75:$VG,76:$VH,77:$VI,78:$VJ,79:$VK,80:$VL,81:$VM,82:$VN,83:$VO,84:$VP,85:$VQ,86:74,87:75,90:$VR,91:$VS,92:$VT,93:$VU,94:$VV,95:$VW,96:$VX,97:$VY,98:$VZ,99:$V_,100:$V$,101:$V01,102:$V11,103:$V21,104:$V31,105:$V41,106:$V51,107:$V61,108:$V71,109:$V81,110:$V91,111:$Va1,112:$Vb1,113:$Vc1,115:$Vd1,116:$Ve1,117:$Vf1,118:$Vg1,119:$Vh1},o($VB,[2,12]),{13:[1,120],67:$Vn1},o($Vo1,[2,71]),{56:[1,122]},{56:[1,123]},{56:[1,124]},{56:[1,125]},{56:[1,126]},{56:[1,127]},{56:[1,128]},{56:[1,129]},{56:[1,130]},{56:[1,131]},{56:[1,132]},{56:[1,133]},{56:[1,134]},{56:[1,135]},{56:[1,136]},{56:[1,137]},{56:[1,138]},{56:[1,139]},o($Vo1,[2,106]),o($Vo1,[2,107]),o($Vo1,[2,108]),o($Vo1,[2,109]),o($Vo1,[2,110]),o($Vo1,[2,111]),o($Vo1,[2,112]),o($Vo1,[2,113]),o($Vo1,[2,114]),o($Vo1,[2,115]),o($Vo1,[2,116]),o($Vo1,[2,117]),o($Vo1,[2,118]),o($Vo1,[2,119]),o($Vo1,[2,120]),o($Vo1,[2,121]),o($Vo1,[2,122]),o($Vo1,[2,123]),o($Vo1,[2,124]),o($Vo1,[2,125]),o($Vo1,[2,126]),o($Vo1,[2,127]),{56:[1,140]},{56:[2,129]},{56:[2,130]},{56:[2,131]},{56:[2,132]},{56:[2,133]},o($VB,[2,14]),{17:[1,141]},{17:[2,21]},{17:[2,22]},{25:[1,142]},{25:[1,143]},o($VB,[2,23]),{30:$V9,60:144,64:145,88:$Vf,89:$Vg,114:$Vh,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA},{21:$V4,23:$V5,30:$V9,33:$Vb,61:146,62:22,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,114:$Vh,120:$Vi,121:$Vj,122:$Vk,123:$Vl,124:$Vm,125:$Vn,126:$Vo,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA},{21:$V4,23:$V5,30:$V9,33:$Vb,61:147,62:22,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,114:$Vh,120:$Vi,121:$Vj,122:$Vk,123:$Vl,124:$Vm,125:$Vn,126:$Vo,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA},o($Vj1,[2,55],{37:$Vk1}),{21:$V4,23:$V5,30:$V9,33:$Vb,62:148,63:$Vd,64:24,65:25,66:$Ve,88:$Vf,89:$Vg,114:$Vh,120:$Vi,121:$Vj,122:$Vk,123:$Vl,124:$Vm,125:$Vn,126:$Vo,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA},{21:[1,149]},{33:[1,150]},{13:[1,151],67:$Vn1},o($VB,[2,13]),{68:152,69:$VC,71:$VD,72:$VE,74:$VF,75:$VG,76:$VH,77:$VI,78:$VJ,79:$VK,80:$VL,81:$VM,82:$VN,83:$VO,84:$VP,85:$VQ,86:74,87:75,90:$VR,91:$VS,92:$VT,93:$VU,94:$VV,95:$VW,96:$VX,97:$VY,98:$VZ,99:$V_,100:$V$,101:$V01,102:$V11,103:$V21,104:$V31,105:$V41,106:$V51,107:$V61,108:$V71,109:$V81,110:$V91,111:$Va1,112:$Vb1,113:$Vc1,115:$Vd1,116:$Ve1,117:$Vf1,118:$Vg1,119:$Vh1},{17:$Vp1,70:153,132:$Vq1,141:$Vr1,142:$Vs1,143:$Vt1},{17:$Vp1,70:159,132:$Vq1,141:$Vr1,142:$Vs1,143:$Vt1},{21:$Vu1,73:160,89:$Vv1},{21:$Vu1,73:163,89:$Vv1},{21:$Vu1,73:164,89:$Vv1},{21:$Vu1,73:165,89:$Vv1},{21:$Vu1,73:166,89:$Vv1},{21:$Vu1,73:167,89:$Vv1},{21:$Vu1,73:168,89:$Vv1},{21:$Vu1,73:169,89:$Vv1},{21:$Vu1,73:170,89:$Vv1},{21:$Vu1,73:171,89:$Vv1},{21:$Vu1,73:172,89:$Vv1},{21:$Vu1,73:173,89:$Vv1},{17:[1,174],66:[1,177],88:[1,175],89:[1,176]},{17:[1,178],66:[1,181],88:[1,179],89:[1,180]},{17:[1,182]},{17:[1,183],66:[1,184]},{114:[1,185]},o($VB,[2,15],{20:[1,186]}),{21:$Vw1,23:$Vx1,26:187,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,23:$Vx1,26:194,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},o($Vi1,[2,51],{67:[1,195]}),o($VC1,[2,69]),o($Vj1,[2,53],{37:$Vk1}),o($Vj1,[2,54],{37:$Vk1}),o($Vl1,[2,57]),o($Vl1,[2,62]),o($Vl1,[2,63]),o($VB,[2,11]),o($Vo1,[2,70]),{57:[1,196]},{35:[1,197],36:[1,198],57:[2,157],139:[1,199],140:[1,200]},{15:[1,201]},{15:[1,202]},{15:[1,203]},{20:[1,205],35:[1,204],57:[2,171]},{57:[1,206]},{57:[1,207]},{57:[2,179]},{57:[2,180]},{57:[1,208]},{57:[1,209]},{57:[1,210]},{57:[1,211]},{57:[1,212]},{57:[1,213]},{57:[1,214]},{57:[1,215]},{57:[1,216]},{57:[1,217]},{57:[1,218]},{57:[1,219]},{57:[1,220]},{57:[1,221]},{35:[1,222]},{57:[1,223],67:[1,224]},{57:[1,225],67:[1,226]},{57:[1,227],67:[1,228]},{35:[1,229]},{57:[1,230],67:[1,231]},{57:[1,232]},{35:[1,233]},{57:[1,234]},{21:[1,235],23:[1,236]},o($VD1,[2,18],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,43:$VM1,44:$VN1,45:$VO1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1,50:$VT1,51:$VU1,52:$VV1,53:$VW1,55:$VX1}),o($VY1,[2,24]),o($VY1,[2,25]),o($VY1,[2,26],{34:[1,257]}),{21:$Vw1,23:$Vx1,26:258,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,23:$Vx1,26:259,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,23:$Vx1,26:260,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},o($VD1,[2,19],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,43:$VM1,44:$VN1,45:$VO1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1,50:$VT1,51:$VU1,52:$VV1,53:$VW1,55:$VX1}),{30:$V9,64:261,88:$Vf,89:$Vg,114:$Vh,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA},o($Vo1,[2,72]),{21:[1,262]},{21:[1,263]},{57:[2,160]},{57:[2,161]},{89:[1,264]},{89:[1,265]},{89:[1,266]},{21:[1,269],88:[1,267],89:[1,268]},{21:[1,271],89:[1,270]},o($Vo1,[2,73]),o($Vo1,[2,74]),o($Vo1,[2,75]),o($Vo1,[2,76]),o($Vo1,[2,77]),o($Vo1,[2,78]),o($Vo1,[2,79]),o($Vo1,[2,80]),o($Vo1,[2,81]),o($Vo1,[2,82]),o($Vo1,[2,83]),o($Vo1,[2,84]),o($Vo1,[2,85]),o($Vo1,[2,86]),o($Vo1,[2,91]),o($Vo1,[2,92]),{88:[1,272],89:[1,273]},o($Vo1,[2,87]),{17:[1,274]},o($Vo1,[2,95]),{17:[1,275]},o($Vo1,[2,96]),{17:[1,276]},{88:[1,277],89:[1,278]},o($Vo1,[2,89]),{17:[1,279]},o($Vo1,[2,103]),{88:[1,280],89:[1,281]},o($Vo1,[2,128]),{22:[1,282]},{22:[1,283]},{21:$Vw1,23:$Vx1,26:284,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,23:$Vx1,26:285,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,23:$Vx1,26:286,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,23:$Vx1,26:287,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,23:$Vx1,26:288,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,23:$Vx1,26:289,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,23:$Vx1,26:290,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,23:$Vx1,26:291,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,23:$Vx1,26:292,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,23:$Vx1,26:293,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,23:$Vx1,26:294,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,23:$Vx1,26:295,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,23:$Vx1,26:296,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,23:$Vx1,26:297,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,23:$Vx1,26:298,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,23:$Vx1,26:299,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,23:$Vx1,26:300,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,23:$Vx1,26:301,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,23:$Vx1,26:302,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,23:$Vx1,26:303,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{21:$Vw1,23:$Vx1,26:304,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},o($VZ1,[2,34],{37:$VG1,38:$VH1,39:$VI1,40:$VJ1}),o($VY1,[2,48]),{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,43:$VM1,44:$VN1,45:$VO1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1,50:$VT1,51:$VU1,52:$VV1,53:$VW1,55:$VX1,57:[1,305]},o($VC1,[2,68]),{57:[2,158]},{57:[2,159]},{35:[1,306],36:[1,307],57:[2,164]},{35:[1,308],36:[1,309],57:[2,167]},{35:[1,310],36:[1,311],57:[2,170]},{57:[2,172]},{57:[2,173]},{57:[2,177]},{22:[1,312],35:[1,314],36:[1,313]},{22:[1,315]},{57:[1,316]},{57:[1,317]},{57:[1,318]},{57:[1,319]},{57:[1,320]},{57:[1,321],67:[1,322]},{57:[1,323],67:[1,324]},{57:[1,325]},{57:[1,326]},{57:[1,327]},o($VB,[2,16]),o($VB,[2,17]),o($VZ1,[2,28],{37:$VG1,38:$VH1,39:$VI1,40:$VJ1}),o($VZ1,[2,29],{37:$VG1,38:$VH1,39:$VI1,40:$VJ1}),o($VY1,[2,30]),o($VY1,[2,31]),o($VY1,[2,32]),o($VY1,[2,33]),o($V_1,[2,35],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1}),o($V_1,[2,36],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,52,53,55,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],[2,37],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,44:$VN1,45:$VO1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1,50:$VT1,51:$VU1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,52,53,55,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],[2,38],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1,50:$VT1,51:$VU1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,45,52,53,55,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],[2,39],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,44:$VN1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1,50:$VT1,51:$VU1}),o($V$1,[2,40],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1}),o($V$1,[2,41],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1}),o($V$1,[2,42],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1}),o($V$1,[2,43],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1}),o($V02,[2,44],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1}),o($V02,[2,45],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,52,53,55,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],[2,46],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,43:$VM1,44:$VN1,45:$VO1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1,50:$VT1,51:$VU1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,53,55,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],[2,47],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,43:$VM1,44:$VN1,45:$VO1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1,50:$VT1,51:$VU1,52:$VV1}),{15:[1,328],35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,43:$VM1,44:$VN1,45:$VO1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1,50:$VT1,51:$VU1,52:$VV1,53:$VW1,55:$VX1},o([5,13,15,17,18,21,23,24,27,28,30,31,33,55,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],[2,27],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,43:$VM1,44:$VN1,45:$VO1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1,50:$VT1,51:$VU1,52:$VV1,53:$VW1}),o($VY1,[2,50]),{21:[1,329]},{21:[1,330]},{21:[1,331]},{21:[1,332]},{21:[1,333]},{21:[1,334]},{57:[2,174]},{21:[1,335]},{21:[1,336]},{57:[2,178]},o($Vo1,[2,93]),o($Vo1,[2,94]),o($Vo1,[2,88]),o($Vo1,[2,99]),o($Vo1,[2,100]),o($Vo1,[2,97]),{17:[1,337]},o($Vo1,[2,98]),{17:[1,338]},o($Vo1,[2,90]),o($Vo1,[2,104]),o($Vo1,[2,105]),{21:$Vw1,23:$Vx1,26:339,33:$Vy1,36:$Vz1,54:$VA1,56:$VB1},{57:[2,162]},{57:[2,163]},{57:[2,165]},{57:[2,166]},{57:[2,168]},{57:[2,169]},{22:[1,340]},{22:[1,341]},{57:[1,342]},{57:[1,343]},o([5,13,15,17,18,21,23,24,27,28,30,31,33,57,63,66,88,89,114,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],[2,49],{35:$VE1,36:$VF1,37:$VG1,38:$VH1,39:$VI1,40:$VJ1,41:$VK1,42:$VL1,43:$VM1,44:$VN1,45:$VO1,46:$VP1,47:$VQ1,48:$VR1,49:$VS1,50:$VT1,51:$VU1,52:$VV1,53:$VW1,55:$VX1}),{57:[2,175]},{57:[2,176]},o($Vo1,[2,101]),o($Vo1,[2,102])], -defaultActions: {53:[2,1],100:[2,129],101:[2,130],102:[2,131],103:[2,132],104:[2,133],107:[2,21],108:[2,22],161:[2,179],162:[2,180],199:[2,160],200:[2,161],262:[2,158],263:[2,159],267:[2,172],268:[2,173],269:[2,177],312:[2,174],315:[2,178],329:[2,162],330:[2,163],331:[2,165],332:[2,166],333:[2,168],334:[2,169],340:[2,175],341:[2,176]}, +table: [{3:1,4:2,6:3,7:4,8:5,9:6,10:7,11:8,12:9,13:$V0,14:11,15:$V1,17:$V2,18:$V3,21:$V4,23:$V5,24:$V6,27:$V7,28:$V8,30:$V9,31:$Va,33:$Vb,36:$Vc,58:19,61:21,62:22,63:$Vd,64:$Ve,65:25,66:26,67:$Vf,89:$Vg,90:$Vh,115:$Vi,121:$Vj,122:$Vk,123:$Vl,124:$Vm,125:$Vn,126:$Vo,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,139:$VB},{1:[3]},{5:[1,54],6:55,7:4,8:5,9:6,10:7,11:8,12:9,13:$V0,14:11,15:$V1,17:$V2,18:$V3,21:$V4,23:$V5,24:$V6,27:$V7,28:$V8,30:$V9,31:$Va,33:$Vb,36:$Vc,58:19,61:21,62:22,63:$Vd,64:$Ve,65:25,66:26,67:$Vf,89:$Vg,90:$Vh,115:$Vi,121:$Vj,122:$Vk,123:$Vl,124:$Vm,125:$Vn,126:$Vo,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,139:$VB},o($VC,[2,3]),o($VC,[2,4]),o($VC,[2,5]),o($VC,[2,6]),o($VC,[2,7]),o($VC,[2,8]),o($VC,[2,9]),o($VC,[2,10]),{13:[1,57],15:[1,56]},{16:58,69:59,70:$VD,72:$VE,73:$VF,75:$VG,76:$VH,77:$VI,78:$VJ,79:$VK,80:$VL,81:$VM,82:$VN,83:$VO,84:$VP,85:$VQ,86:$VR,87:75,88:76,91:$VS,92:$VT,93:$VU,94:$VV,95:$VW,96:$VX,97:$VY,98:$VZ,99:$V_,100:$V$,101:$V01,102:$V11,103:$V21,104:$V31,105:$V41,106:$V51,107:$V61,108:$V71,109:$V81,110:$V91,111:$Va1,112:$Vb1,113:$Vc1,114:$Vd1,116:$Ve1,117:$Vf1,118:$Vg1,119:$Vh1,120:$Vi1},{15:[1,106]},{19:107,29:[1,108],30:[1,109]},{23:[1,110]},{23:[1,111]},{32:[1,112]},o($VC,[2,20]),o($Vj1,[2,52],{35:[1,114],36:[1,115],59:[1,113]}),{21:$V4,23:$V5,30:$V9,33:$Vb,61:116,62:22,63:$Vd,64:$Ve,65:25,66:26,67:$Vf,89:$Vg,90:$Vh,115:$Vi,121:$Vj,122:$Vk,123:$Vl,124:$Vm,125:$Vn,126:$Vo,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,139:$VB},o($Vk1,[2,56],{37:$Vl1}),o($Vm1,[2,58]),o($Vm1,[2,59]),o($Vm1,[2,60]),o($Vm1,[2,61]),o($Vm1,[2,62]),o($Vm1,[2,65],{38:[1,118]}),o($Vm1,[2,66],{38:[1,119]}),o($Vm1,[2,67]),o($Vm1,[2,68]),o($Vn1,[2,142]),o($Vn1,[2,143]),o($Vn1,[2,144]),o($Vn1,[2,145]),o($Vn1,[2,146]),o($Vn1,[2,147]),o($Vn1,[2,148]),o($Vn1,[2,149]),o($Vn1,[2,150]),o($Vn1,[2,151]),o($Vn1,[2,152]),o($Vn1,[2,153]),o($Vn1,[2,154]),o($Vn1,[2,155]),o($Vn1,[2,156]),o($Vn1,[2,157]),o($Vm1,[2,135]),o($Vm1,[2,136]),o($Vm1,[2,137]),o($Vm1,[2,138]),o($Vm1,[2,139]),o($Vm1,[2,140]),o($Vm1,[2,141]),{1:[2,1]},o($VC,[2,2]),{16:120,69:59,70:$VD,72:$VE,73:$VF,75:$VG,76:$VH,77:$VI,78:$VJ,79:$VK,80:$VL,81:$VM,82:$VN,83:$VO,84:$VP,85:$VQ,86:$VR,87:75,88:76,91:$VS,92:$VT,93:$VU,94:$VV,95:$VW,96:$VX,97:$VY,98:$VZ,99:$V_,100:$V$,101:$V01,102:$V11,103:$V21,104:$V31,105:$V41,106:$V51,107:$V61,108:$V71,109:$V81,110:$V91,111:$Va1,112:$Vb1,113:$Vc1,114:$Vd1,116:$Ve1,117:$Vf1,118:$Vg1,119:$Vh1,120:$Vi1},o($VC,[2,12]),{13:[1,121],68:$Vo1},o($Vp1,[2,72]),{56:[1,123]},{56:[1,124]},{56:[1,125]},{56:[1,126]},{56:[1,127]},{56:[1,128]},{56:[1,129]},{56:[1,130]},{56:[1,131]},{56:[1,132]},{56:[1,133]},{56:[1,134]},{56:[1,135]},{56:[1,136]},{56:[1,137]},{56:[1,138]},{56:[1,139]},{56:[1,140]},o($Vp1,[2,107]),o($Vp1,[2,108]),o($Vp1,[2,109]),o($Vp1,[2,110]),o($Vp1,[2,111]),o($Vp1,[2,112]),o($Vp1,[2,113]),o($Vp1,[2,114]),o($Vp1,[2,115]),o($Vp1,[2,116]),o($Vp1,[2,117]),o($Vp1,[2,118]),o($Vp1,[2,119]),o($Vp1,[2,120]),o($Vp1,[2,121]),o($Vp1,[2,122]),o($Vp1,[2,123]),o($Vp1,[2,124]),o($Vp1,[2,125]),o($Vp1,[2,126]),o($Vp1,[2,127]),o($Vp1,[2,128]),{56:[1,141]},{56:[2,130]},{56:[2,131]},{56:[2,132]},{56:[2,133]},{56:[2,134]},o($VC,[2,14]),{17:[1,142]},{17:[2,21]},{17:[2,22]},{25:[1,143]},{25:[1,144]},o($VC,[2,23]),{30:$V9,60:145,65:146,89:$Vg,90:$Vh,115:$Vi,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,139:$VB},{21:$V4,23:$V5,30:$V9,33:$Vb,61:147,62:22,63:$Vd,64:$Ve,65:25,66:26,67:$Vf,89:$Vg,90:$Vh,115:$Vi,121:$Vj,122:$Vk,123:$Vl,124:$Vm,125:$Vn,126:$Vo,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,139:$VB},{21:$V4,23:$V5,30:$V9,33:$Vb,61:148,62:22,63:$Vd,64:$Ve,65:25,66:26,67:$Vf,89:$Vg,90:$Vh,115:$Vi,121:$Vj,122:$Vk,123:$Vl,124:$Vm,125:$Vn,126:$Vo,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,139:$VB},o($Vk1,[2,55],{37:$Vl1}),{21:$V4,23:$V5,30:$V9,33:$Vb,62:149,63:$Vd,64:$Ve,65:25,66:26,67:$Vf,89:$Vg,90:$Vh,115:$Vi,121:$Vj,122:$Vk,123:$Vl,124:$Vm,125:$Vn,126:$Vo,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,139:$VB},{21:[1,150]},{33:[1,151]},{13:[1,152],68:$Vo1},o($VC,[2,13]),{69:153,70:$VD,72:$VE,73:$VF,75:$VG,76:$VH,77:$VI,78:$VJ,79:$VK,80:$VL,81:$VM,82:$VN,83:$VO,84:$VP,85:$VQ,86:$VR,87:75,88:76,91:$VS,92:$VT,93:$VU,94:$VV,95:$VW,96:$VX,97:$VY,98:$VZ,99:$V_,100:$V$,101:$V01,102:$V11,103:$V21,104:$V31,105:$V41,106:$V51,107:$V61,108:$V71,109:$V81,110:$V91,111:$Va1,112:$Vb1,113:$Vc1,114:$Vd1,116:$Ve1,117:$Vf1,118:$Vg1,119:$Vh1,120:$Vi1},{17:$Vq1,71:154,133:$Vr1,142:$Vs1,143:$Vt1,144:$Vu1},{17:$Vq1,71:160,133:$Vr1,142:$Vs1,143:$Vt1,144:$Vu1},{21:$Vv1,74:161,90:$Vw1},{21:$Vv1,74:164,90:$Vw1},{21:$Vv1,74:165,90:$Vw1},{21:$Vv1,74:166,90:$Vw1},{21:$Vv1,74:167,90:$Vw1},{21:$Vv1,74:168,90:$Vw1},{21:$Vv1,74:169,90:$Vw1},{21:$Vv1,74:170,90:$Vw1},{21:$Vv1,74:171,90:$Vw1},{21:$Vv1,74:172,90:$Vw1},{21:$Vv1,74:173,90:$Vw1},{21:$Vv1,74:174,90:$Vw1},{17:[1,175],67:[1,178],89:[1,176],90:[1,177]},{17:[1,179],67:[1,182],89:[1,180],90:[1,181]},{17:[1,183]},{17:[1,184],67:[1,185]},{115:[1,186]},o($VC,[2,15],{20:[1,187]}),{21:$Vx1,23:$Vy1,26:188,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{21:$Vx1,23:$Vy1,26:195,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},o($Vj1,[2,51],{68:[1,196]}),o($VD1,[2,70]),o($Vk1,[2,53],{37:$Vl1}),o($Vk1,[2,54],{37:$Vl1}),o($Vm1,[2,57]),o($Vm1,[2,63]),o($Vm1,[2,64]),o($VC,[2,11]),o($Vp1,[2,71]),{57:[1,197]},{35:[1,198],36:[1,199],57:[2,158],140:[1,200],141:[1,201]},{15:[1,202]},{15:[1,203]},{15:[1,204]},{20:[1,206],35:[1,205],57:[2,172]},{57:[1,207]},{57:[1,208]},{57:[2,180]},{57:[2,181]},{57:[1,209]},{57:[1,210]},{57:[1,211]},{57:[1,212]},{57:[1,213]},{57:[1,214]},{57:[1,215]},{57:[1,216]},{57:[1,217]},{57:[1,218]},{57:[1,219]},{57:[1,220]},{57:[1,221]},{57:[1,222]},{35:[1,223]},{57:[1,224],68:[1,225]},{57:[1,226],68:[1,227]},{57:[1,228],68:[1,229]},{35:[1,230]},{57:[1,231],68:[1,232]},{57:[1,233]},{35:[1,234]},{57:[1,235]},{21:[1,236],23:[1,237]},o($VE1,[2,18],{35:$VF1,36:$VG1,37:$VH1,38:$VI1,39:$VJ1,40:$VK1,41:$VL1,42:$VM1,43:$VN1,44:$VO1,45:$VP1,46:$VQ1,47:$VR1,48:$VS1,49:$VT1,50:$VU1,51:$VV1,52:$VW1,53:$VX1,55:$VY1}),o($VZ1,[2,24]),o($VZ1,[2,25]),o($VZ1,[2,26],{34:[1,258]}),{21:$Vx1,23:$Vy1,26:259,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{21:$Vx1,23:$Vy1,26:260,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{21:$Vx1,23:$Vy1,26:261,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},o($VE1,[2,19],{35:$VF1,36:$VG1,37:$VH1,38:$VI1,39:$VJ1,40:$VK1,41:$VL1,42:$VM1,43:$VN1,44:$VO1,45:$VP1,46:$VQ1,47:$VR1,48:$VS1,49:$VT1,50:$VU1,51:$VV1,52:$VW1,53:$VX1,55:$VY1}),{30:$V9,65:262,89:$Vg,90:$Vh,115:$Vi,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,139:$VB},o($Vp1,[2,73]),{21:[1,263]},{21:[1,264]},{57:[2,161]},{57:[2,162]},{90:[1,265]},{90:[1,266]},{90:[1,267]},{21:[1,270],89:[1,268],90:[1,269]},{21:[1,272],90:[1,271]},o($Vp1,[2,74]),o($Vp1,[2,75]),o($Vp1,[2,76]),o($Vp1,[2,77]),o($Vp1,[2,78]),o($Vp1,[2,79]),o($Vp1,[2,80]),o($Vp1,[2,81]),o($Vp1,[2,82]),o($Vp1,[2,83]),o($Vp1,[2,84]),o($Vp1,[2,85]),o($Vp1,[2,86]),o($Vp1,[2,87]),o($Vp1,[2,92]),o($Vp1,[2,93]),{89:[1,273],90:[1,274]},o($Vp1,[2,88]),{17:[1,275]},o($Vp1,[2,96]),{17:[1,276]},o($Vp1,[2,97]),{17:[1,277]},{89:[1,278],90:[1,279]},o($Vp1,[2,90]),{17:[1,280]},o($Vp1,[2,104]),{89:[1,281],90:[1,282]},o($Vp1,[2,129]),{22:[1,283]},{22:[1,284]},{21:$Vx1,23:$Vy1,26:285,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{21:$Vx1,23:$Vy1,26:286,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{21:$Vx1,23:$Vy1,26:287,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{21:$Vx1,23:$Vy1,26:288,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{21:$Vx1,23:$Vy1,26:289,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{21:$Vx1,23:$Vy1,26:290,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{21:$Vx1,23:$Vy1,26:291,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{21:$Vx1,23:$Vy1,26:292,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{21:$Vx1,23:$Vy1,26:293,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{21:$Vx1,23:$Vy1,26:294,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{21:$Vx1,23:$Vy1,26:295,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{21:$Vx1,23:$Vy1,26:296,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{21:$Vx1,23:$Vy1,26:297,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{21:$Vx1,23:$Vy1,26:298,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{21:$Vx1,23:$Vy1,26:299,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{21:$Vx1,23:$Vy1,26:300,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{21:$Vx1,23:$Vy1,26:301,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{21:$Vx1,23:$Vy1,26:302,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{21:$Vx1,23:$Vy1,26:303,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{21:$Vx1,23:$Vy1,26:304,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{21:$Vx1,23:$Vy1,26:305,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},o($V_1,[2,34],{37:$VH1,38:$VI1,39:$VJ1,40:$VK1}),o($VZ1,[2,48]),{35:$VF1,36:$VG1,37:$VH1,38:$VI1,39:$VJ1,40:$VK1,41:$VL1,42:$VM1,43:$VN1,44:$VO1,45:$VP1,46:$VQ1,47:$VR1,48:$VS1,49:$VT1,50:$VU1,51:$VV1,52:$VW1,53:$VX1,55:$VY1,57:[1,306]},o($VD1,[2,69]),{57:[2,159]},{57:[2,160]},{35:[1,307],36:[1,308],57:[2,165]},{35:[1,309],36:[1,310],57:[2,168]},{35:[1,311],36:[1,312],57:[2,171]},{57:[2,173]},{57:[2,174]},{57:[2,178]},{22:[1,313],35:[1,315],36:[1,314]},{22:[1,316]},{57:[1,317]},{57:[1,318]},{57:[1,319]},{57:[1,320]},{57:[1,321]},{57:[1,322],68:[1,323]},{57:[1,324],68:[1,325]},{57:[1,326]},{57:[1,327]},{57:[1,328]},o($VC,[2,16]),o($VC,[2,17]),o($V_1,[2,28],{37:$VH1,38:$VI1,39:$VJ1,40:$VK1}),o($V_1,[2,29],{37:$VH1,38:$VI1,39:$VJ1,40:$VK1}),o($VZ1,[2,30]),o($VZ1,[2,31]),o($VZ1,[2,32]),o($VZ1,[2,33]),o($V$1,[2,35],{35:$VF1,36:$VG1,37:$VH1,38:$VI1,39:$VJ1,40:$VK1}),o($V$1,[2,36],{35:$VF1,36:$VG1,37:$VH1,38:$VI1,39:$VJ1,40:$VK1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,52,53,55,57,63,64,67,89,90,115,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],[2,37],{35:$VF1,36:$VG1,37:$VH1,38:$VI1,39:$VJ1,40:$VK1,41:$VL1,42:$VM1,44:$VO1,45:$VP1,46:$VQ1,47:$VR1,48:$VS1,49:$VT1,50:$VU1,51:$VV1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,52,53,55,57,63,64,67,89,90,115,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],[2,38],{35:$VF1,36:$VG1,37:$VH1,38:$VI1,39:$VJ1,40:$VK1,41:$VL1,42:$VM1,46:$VQ1,47:$VR1,48:$VS1,49:$VT1,50:$VU1,51:$VV1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,45,52,53,55,57,63,64,67,89,90,115,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],[2,39],{35:$VF1,36:$VG1,37:$VH1,38:$VI1,39:$VJ1,40:$VK1,41:$VL1,42:$VM1,44:$VO1,46:$VQ1,47:$VR1,48:$VS1,49:$VT1,50:$VU1,51:$VV1}),o($V02,[2,40],{35:$VF1,36:$VG1,37:$VH1,38:$VI1,39:$VJ1,40:$VK1,41:$VL1,42:$VM1}),o($V02,[2,41],{35:$VF1,36:$VG1,37:$VH1,38:$VI1,39:$VJ1,40:$VK1,41:$VL1,42:$VM1}),o($V02,[2,42],{35:$VF1,36:$VG1,37:$VH1,38:$VI1,39:$VJ1,40:$VK1,41:$VL1,42:$VM1}),o($V02,[2,43],{35:$VF1,36:$VG1,37:$VH1,38:$VI1,39:$VJ1,40:$VK1,41:$VL1,42:$VM1}),o($V12,[2,44],{35:$VF1,36:$VG1,37:$VH1,38:$VI1,39:$VJ1,40:$VK1,41:$VL1,42:$VM1,46:$VQ1,47:$VR1,48:$VS1,49:$VT1}),o($V12,[2,45],{35:$VF1,36:$VG1,37:$VH1,38:$VI1,39:$VJ1,40:$VK1,41:$VL1,42:$VM1,46:$VQ1,47:$VR1,48:$VS1,49:$VT1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,52,53,55,57,63,64,67,89,90,115,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],[2,46],{35:$VF1,36:$VG1,37:$VH1,38:$VI1,39:$VJ1,40:$VK1,41:$VL1,42:$VM1,43:$VN1,44:$VO1,45:$VP1,46:$VQ1,47:$VR1,48:$VS1,49:$VT1,50:$VU1,51:$VV1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,53,55,57,63,64,67,89,90,115,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],[2,47],{35:$VF1,36:$VG1,37:$VH1,38:$VI1,39:$VJ1,40:$VK1,41:$VL1,42:$VM1,43:$VN1,44:$VO1,45:$VP1,46:$VQ1,47:$VR1,48:$VS1,49:$VT1,50:$VU1,51:$VV1,52:$VW1}),{15:[1,329],35:$VF1,36:$VG1,37:$VH1,38:$VI1,39:$VJ1,40:$VK1,41:$VL1,42:$VM1,43:$VN1,44:$VO1,45:$VP1,46:$VQ1,47:$VR1,48:$VS1,49:$VT1,50:$VU1,51:$VV1,52:$VW1,53:$VX1,55:$VY1},o([5,13,15,17,18,21,23,24,27,28,30,31,33,55,57,63,64,67,89,90,115,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],[2,27],{35:$VF1,36:$VG1,37:$VH1,38:$VI1,39:$VJ1,40:$VK1,41:$VL1,42:$VM1,43:$VN1,44:$VO1,45:$VP1,46:$VQ1,47:$VR1,48:$VS1,49:$VT1,50:$VU1,51:$VV1,52:$VW1,53:$VX1}),o($VZ1,[2,50]),{21:[1,330]},{21:[1,331]},{21:[1,332]},{21:[1,333]},{21:[1,334]},{21:[1,335]},{57:[2,175]},{21:[1,336]},{21:[1,337]},{57:[2,179]},o($Vp1,[2,94]),o($Vp1,[2,95]),o($Vp1,[2,89]),o($Vp1,[2,100]),o($Vp1,[2,101]),o($Vp1,[2,98]),{17:[1,338]},o($Vp1,[2,99]),{17:[1,339]},o($Vp1,[2,91]),o($Vp1,[2,105]),o($Vp1,[2,106]),{21:$Vx1,23:$Vy1,26:340,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{57:[2,163]},{57:[2,164]},{57:[2,166]},{57:[2,167]},{57:[2,169]},{57:[2,170]},{22:[1,341]},{22:[1,342]},{57:[1,343]},{57:[1,344]},o([5,13,15,17,18,21,23,24,27,28,30,31,33,57,63,64,67,89,90,115,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],[2,49],{35:$VF1,36:$VG1,37:$VH1,38:$VI1,39:$VJ1,40:$VK1,41:$VL1,42:$VM1,43:$VN1,44:$VO1,45:$VP1,46:$VQ1,47:$VR1,48:$VS1,49:$VT1,50:$VU1,51:$VV1,52:$VW1,53:$VX1,55:$VY1}),{57:[2,176]},{57:[2,177]},o($Vp1,[2,102]),o($Vp1,[2,103])], +defaultActions: {54:[2,1],101:[2,130],102:[2,131],103:[2,132],104:[2,133],105:[2,134],108:[2,21],109:[2,22],162:[2,180],163:[2,181],200:[2,161],201:[2,162],263:[2,159],264:[2,160],268:[2,173],269:[2,174],270:[2,178],313:[2,175],316:[2,179],330:[2,163],331:[2,164],332:[2,166],333:[2,167],334:[2,169],335:[2,170],341:[2,176],342:[2,177]}, parseError: function parseError (str, hash) { if (hash.recoverable) { this.trace(str); @@ -1237,13 +1242,13 @@ case 3: yy_.yytext = Number(yy_.yytext.replace(/\_/g, "")); return 21; break; case 4: yy_.yytext = yy_.yytext.slice(3, -1); return "COMMAND"; break; -case 5: yy_.yytext = yy_.yytext.length == 1 ? "" : yy_.yytext.slice(2, -1); return 63; +case 5: yy_.yytext = yy_.yytext.slice(3, -1); return 64; break; -case 6: return "LF"; +case 6: yy_.yytext = yy_.yytext.length == 1 ? "" : yy_.yytext.slice(2, -1); return 63; break; -case 7: /* console.log("Empty spaces"); */ +case 7: return "LF"; break; -case 8: return 127; +case 8: /* console.log("Empty spaces"); */ break; case 9: return 128; break; @@ -1251,15 +1256,15 @@ case 10: return 129; break; case 11: return 130; break; -case 12: return 89; +case 12: return 131; break; -case 13: return 114; +case 13: return 90; break; -case 14: return 131; +case 14: return 115; break; -case 15: return 30; +case 15: return 132; break; -case 16: return 132; +case 16: return 30; break; case 17: return 133; break; @@ -1267,55 +1272,55 @@ case 18: return 134; break; case 19: return 135; break; -case 20: return 88; +case 20: return 136; break; -case 21: return 136; +case 21: return 89; break; -case 22: return 138; +case 22: return 137; break; -case 23: return 137; +case 23: return 139; break; -case 24: return 69 +case 24: return 138; break; -case 25: return 71 +case 25: return 70 break; -case 26: return 75 +case 26: return 72 break; case 27: return 76 break; -case 28: return 74 +case 28: return 77 break; -case 29: return 72 +case 29: return 75 break; -case 30: return 79 +case 30: return 73 break; case 31: return 80 break; -case 32: return 78 +case 32: return 81 break; -case 33: return 77 +case 33: return 79 break; -case 34: return 83 +case 34: return 78 break; case 35: return 84 break; -case 36: return 82 +case 36: return 85 break; -case 37: return 81 +case 37: return 83 break; -case 38: return 85 +case 38: return 82 break; -case 39: return 116 +case 39: return 86 break; case 40: return 117 break; -case 41: return 119 +case 41: return 118 break; -case 42: return 118 +case 42: return 120 break; -case 43: return 115 +case 43: return 119 break; -case 44: return 90 +case 44: return 116 break; case 45: return 91 break; @@ -1331,13 +1336,13 @@ case 50: return 96 break; case 51: return 97 break; -case 52: return 99 +case 52: return 98 break; case 53: return 100 break; -case 54: return 98 +case 54: return 101 break; -case 55: return 101 +case 55: return 99 break; case 56: return 102 break; @@ -1355,7 +1360,7 @@ case 62: return 108 break; case 63: return 109 break; -case 64: return 120 +case 64: return 110 break; case 65: return 121 break; @@ -1369,112 +1374,114 @@ case 69: return 125 break; case 70: return 126 break; -case 71: return 112 +case 71: return 127 break; -case 72: return 110 +case 72: return 113 break; case 73: return 111 break; -case 74: return 141 +case 74: return 112 break; case 75: return 142 break; case 76: return 143 break; -case 77: return 31 +case 77: return 144 break; -case 78: return 18 +case 78: return 31 break; -case 79: return 29 +case 79: return 18 break; -case 80: return 30 +case 80: return 29 break; -case 81: return 24 +case 81: return 30 break; -case 82: return 27 +case 82: return 24 break; -case 83: return 113 +case 83: return 27 break; -case 84: yy_.yytext = yy_.yytext.slice(1,-1); return 32; +case 84: return 114 break; -case 85: return 17; +case 85: yy_.yytext = yy_.yytext.slice(1,-1); return 32; break; -case 86: yy_.yytext = yy_.yytext.slice(1); return 23; +case 86: return 17; break; -case 87: yy_.yytext = yy_.yytext.slice(1); return 66; +case 87: yy_.yytext = yy_.yytext.slice(1); return 23; break; -case 88: return 15; +case 88: yy_.yytext = yy_.yytext.slice(1); return 67; break; -case 89: return 67 +case 89: return 15; break; -case 90: return 56 +case 90: return 68 break; -case 91: return 57 +case 91: return 56 break; -case 92: return 139 +case 92: return 57 break; case 93: return 140 break; -case 94: return 35 +case 94: return 141 +break; +case 95: return 35 break; -case 95: return 36 +case 96: return 36 break; -case 96: return 40 +case 97: return 40 break; -case 97: return 38 +case 98: return 38 break; -case 98: return 37 +case 99: return 37 break; -case 99: return 39 +case 100: return 39 break; -case 100: return 59 +case 101: return 59 break; -case 101: return 41 +case 102: return 41 break; -case 102: return 42 +case 103: return 42 break; -case 103: return 45 +case 104: return 45 break; -case 104: return 53 +case 105: return 53 break; -case 105: return 52 +case 106: return 52 break; -case 106: return 44 +case 107: return 44 break; -case 107: return 43 +case 108: return 43 break; -case 108: return 50 +case 109: return 50 break; -case 109: return 51 +case 110: return 51 break; -case 110: return 48 +case 111: return 48 break; -case 111: return 49 +case 112: return 49 break; -case 112: return 47 +case 113: return 47 break; -case 113: return 46 +case 114: return 46 break; -case 114: return 25 +case 115: return 25 break; -case 115: return 54 +case 116: return 54 break; -case 116: return 34 +case 117: return 34 break; -case 117: return 55 +case 118: return 55 break; -case 118: return 20 +case 119: return 20 break; -case 119: return 22 +case 120: return 22 break; -case 120: return 5; +case 121: return 5; break; -case 121: /* console.log("INVALID: " + yy_.yytext); */ return 'INVALID'; +case 122: /* console.log("INVALID: " + yy_.yytext); */ return 'INVALID'; break; } }, -rules: [/^(?:;[^\n\r]*)/,/^(?:\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+\/)/,/^(?:((0x[0-9A-Fa-f][0-9A-Fa-f_]*)|([0-9][0-9_]*))n\b)/,/^(?:(0x[0-9A-Fa-f][0-9A-Fa-f_]*)|([0-9][0-9_]*))/,/^(?:\$\$\{[^\}]*\})/,/^(?:(\$(\{[^\}]*\})?))/,/^(?:[\r\n]+)/,/^(?:[ \t]+)/,/^(?:A\b)/,/^(?:B\b)/,/^(?:C\b)/,/^(?:D\b)/,/^(?:E\b)/,/^(?:RCX\b)/,/^(?:SR\b)/,/^(?:CTX\b)/,/^(?:SP\b)/,/^(?:PC\b)/,/^(?:GAS\b)/,/^(?:zkPC\b)/,/^(?:RR\b)/,/^(?:STEP\b)/,/^(?:ROTL_C\b)/,/^(?:HASHPOS\b)/,/^(?:MLOAD\b)/,/^(?:MSTORE\b)/,/^(?:HASHKLEN\b)/,/^(?:HASHKDIGEST\b)/,/^(?:HASHK1\b)/,/^(?:HASHK\b)/,/^(?:HASHSLEN\b)/,/^(?:HASHSDIGEST\b)/,/^(?:HASHS1\b)/,/^(?:HASHS\b)/,/^(?:HASHPLEN\b)/,/^(?:HASHPDIGEST\b)/,/^(?:HASHP1\b)/,/^(?:HASHP\b)/,/^(?:JMP\b)/,/^(?:JMPC\b)/,/^(?:JMPZ\b)/,/^(?:JMPNZ\b)/,/^(?:JMPNC\b)/,/^(?:JMPN\b)/,/^(?:CALL\b)/,/^(?:RETURN\b)/,/^(?:ASSERT\b)/,/^(?:SLOAD\b)/,/^(?:SSTORE\b)/,/^(?:ARITH\b)/,/^(?:ARITH_ECADD_DIFFERENT\b)/,/^(?:ARITH_ECADD_SAME\b)/,/^(?:ARITH_BN254_ADDFP2\b)/,/^(?:ARITH_BN254_SUBFP2\b)/,/^(?:ARITH_BN254_MULFP2\b)/,/^(?:ADD\b)/,/^(?:SUB\b)/,/^(?:LT\b)/,/^(?:SLT\b)/,/^(?:EQ\b)/,/^(?:AND\b)/,/^(?:OR\b)/,/^(?:XOR\b)/,/^(?:LT4\b)/,/^(?:CNT_ARITH\b)/,/^(?:CNT_BINARY\b)/,/^(?:CNT_KECCAK_F\b)/,/^(?:CNT_SHA256_F\b)/,/^(?:CNT_MEM_ALIGN\b)/,/^(?:CNT_PADDING_PG\b)/,/^(?:CNT_POSEIDON_G\b)/,/^(?:MEM_ALIGN_WR8\b)/,/^(?:MEM_ALIGN_RD\b)/,/^(?:MEM_ALIGN_WR\b)/,/^(?:SYS\b)/,/^(?:MEM\b)/,/^(?:STACK\b)/,/^(?:INCLUDE\b)/,/^(?:VAR\b)/,/^(?:GLOBAL\b)/,/^(?:CTX\b)/,/^(?:CONST\b)/,/^(?:CONSTL\b)/,/^(?:REPEAT\b)/,/^(?:"[^"]+")/,/^(?:[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?:%[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?:@[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?::)/,/^(?:,)/,/^(?:\()/,/^(?:\))/,/^(?:\+\+)/,/^(?:--)/,/^(?:\+)/,/^(?:-)/,/^(?:\/)/,/^(?:\*\*)/,/^(?:\*)/,/^(?:%)/,/^(?:=>)/,/^(?:<<)/,/^(?:>>)/,/^(?:\^)/,/^(?:\|\|)/,/^(?:&&)/,/^(?:&)/,/^(?:\|)/,/^(?:==)/,/^(?:!=)/,/^(?:<=)/,/^(?:>=)/,/^(?:>)/,/^(?:<)/,/^(?:=)/,/^(?:!)/,/^(?:\?\?)/,/^(?:\?)/,/^(?:\[)/,/^(?:\])/,/^(?:$)/,/^(?:.)/], -conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121],"inclusive":true}} +rules: [/^(?:;[^\n\r]*)/,/^(?:\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+\/)/,/^(?:((0x[0-9A-Fa-f][0-9A-Fa-f_]*)|([0-9][0-9_]*))n\b)/,/^(?:(0x[0-9A-Fa-f][0-9A-Fa-f_]*)|([0-9][0-9_]*))/,/^(?:\$\$\{[^\}]*\})/,/^(?:\$0\{[^\}]*\})/,/^(?:(\$(\{[^\}]*\})?))/,/^(?:[\r\n]+)/,/^(?:[ \t]+)/,/^(?:A\b)/,/^(?:B\b)/,/^(?:C\b)/,/^(?:D\b)/,/^(?:E\b)/,/^(?:RCX\b)/,/^(?:SR\b)/,/^(?:CTX\b)/,/^(?:SP\b)/,/^(?:PC\b)/,/^(?:GAS\b)/,/^(?:zkPC\b)/,/^(?:RR\b)/,/^(?:STEP\b)/,/^(?:ROTL_C\b)/,/^(?:HASHPOS\b)/,/^(?:MLOAD\b)/,/^(?:MSTORE\b)/,/^(?:HASHKLEN\b)/,/^(?:HASHKDIGEST\b)/,/^(?:HASHK1\b)/,/^(?:HASHK\b)/,/^(?:HASHSLEN\b)/,/^(?:HASHSDIGEST\b)/,/^(?:HASHS1\b)/,/^(?:HASHS\b)/,/^(?:HASHPLEN\b)/,/^(?:HASHPDIGEST\b)/,/^(?:HASHP1\b)/,/^(?:HASHP\b)/,/^(?:JMP\b)/,/^(?:JMPC\b)/,/^(?:JMPZ\b)/,/^(?:JMPNZ\b)/,/^(?:JMPNC\b)/,/^(?:JMPN\b)/,/^(?:CALL\b)/,/^(?:RETURN\b)/,/^(?:ASSERT\b)/,/^(?:SLOAD\b)/,/^(?:SSTORE\b)/,/^(?:ARITH\b)/,/^(?:ARITH_ECADD_DIFFERENT\b)/,/^(?:ARITH_ECADD_SAME\b)/,/^(?:ARITH_BN254_ADDFP2\b)/,/^(?:ARITH_BN254_SUBFP2\b)/,/^(?:ARITH_BN254_MULFP2\b)/,/^(?:ADD\b)/,/^(?:SUB\b)/,/^(?:LT\b)/,/^(?:SLT\b)/,/^(?:EQ\b)/,/^(?:AND\b)/,/^(?:OR\b)/,/^(?:XOR\b)/,/^(?:LT4\b)/,/^(?:CNT_ARITH\b)/,/^(?:CNT_BINARY\b)/,/^(?:CNT_KECCAK_F\b)/,/^(?:CNT_SHA256_F\b)/,/^(?:CNT_MEM_ALIGN\b)/,/^(?:CNT_PADDING_PG\b)/,/^(?:CNT_POSEIDON_G\b)/,/^(?:MEM_ALIGN_WR8\b)/,/^(?:MEM_ALIGN_RD\b)/,/^(?:MEM_ALIGN_WR\b)/,/^(?:SYS\b)/,/^(?:MEM\b)/,/^(?:STACK\b)/,/^(?:INCLUDE\b)/,/^(?:VAR\b)/,/^(?:GLOBAL\b)/,/^(?:CTX\b)/,/^(?:CONST\b)/,/^(?:CONSTL\b)/,/^(?:REPEAT\b)/,/^(?:"[^"]+")/,/^(?:[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?:%[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?:@[a-zA-Z_][a-zA-Z$_0-9]*)/,/^(?::)/,/^(?:,)/,/^(?:\()/,/^(?:\))/,/^(?:\+\+)/,/^(?:--)/,/^(?:\+)/,/^(?:-)/,/^(?:\/)/,/^(?:\*\*)/,/^(?:\*)/,/^(?:%)/,/^(?:=>)/,/^(?:<<)/,/^(?:>>)/,/^(?:\^)/,/^(?:\|\|)/,/^(?:&&)/,/^(?:&)/,/^(?:\|)/,/^(?:==)/,/^(?:!=)/,/^(?:<=)/,/^(?:>=)/,/^(?:>)/,/^(?:<)/,/^(?:=)/,/^(?:!)/,/^(?:\?\?)/,/^(?:\?)/,/^(?:\[)/,/^(?:\])/,/^(?:$)/,/^(?:.)/], +conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122],"inclusive":true}} }); return lexer; })(); diff --git a/package.json b/package.json index 139777a..2981e9f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@0xpolygonhermez/zkasmcom", - "version": "0.0.23", + "version": "0.0.24", "bin": { "zkasm": "src/zkasm.js" }, diff --git a/src/compiler.js b/src/compiler.js index 50b1495..2c124d4 100644 --- a/src/compiler.js +++ b/src/compiler.js @@ -390,9 +390,10 @@ function getConstantValue(ctx, name, throwIfNotExists = true) { function processAssignmentIn(ctx, input, currentLine) { const res = {}; let E1, E2; - if (input.type == "TAG") { + if (input.type == "TAG" || input.type == 'TAG_0') { res.freeInTag = input.tag ? command_parser.parse(input.tag) : { op: ""}; - res.inFREE = 1n; + res.inFREE = input.type == 'TAG_0' ? 0n : 1n; + res.inFREE0 = input.type == 'TAG_0' ? 1n : 0n; return res; } if (input.type == "REG") { diff --git a/src/zkasm_parser.jison b/src/zkasm_parser.jison index 4fc956b..f5b1616 100644 --- a/src/zkasm_parser.jison +++ b/src/zkasm_parser.jison @@ -6,6 +6,7 @@ ((0x[0-9A-Fa-f][0-9A-Fa-f_]*)|([0-9][0-9_]*))n { yytext = BigInt(yytext.replace(/[\_n]/g, "")); return 'NUMBERL'; } (0x[0-9A-Fa-f][0-9A-Fa-f_]*)|([0-9][0-9_]*) { yytext = Number(yytext.replace(/\_/g, "")); return 'NUMBER'; } \$\$\{[^\}]*\} { yytext = yytext.slice(3, -1); return "COMMAND"; } +\$0\{[^\}]*\} { yytext = yytext.slice(3, -1); return 'TAG_0'; } (\$(\{[^\}]*\})?) { yytext = yytext.length == 1 ? "" : yytext.slice(2, -1); return 'TAG'; } [\r\n]+ { return "LF";} [ \t]+ { /* console.log("Empty spaces"); */ } @@ -267,7 +268,6 @@ command } ; - scope : GLOBAL | CTX @@ -437,6 +437,10 @@ inReg { $$ = {type: 'TAG' , tag: $1} } + | TAG_0 + { + $$ = {type: 'TAG_0' , tag: $1} + } | reg { $$ = {type: 'REG' , reg: $1} diff --git a/test/infree0.zkasm b/test/infree0.zkasm new file mode 100644 index 0000000..d48f21f --- /dev/null +++ b/test/infree0.zkasm @@ -0,0 +1,20 @@ +start: + STEP => A + 0 :ASSERT + + 0x101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2Fn => C + + ${C} => A + 0x101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2Fn :ASSERT + + $0{C} => A + 0x2C2D2E2Fn :ASSERT + +end: + 0 => A,B,C,D,E, SP, PC, GAS, SR + +finalWait: + ${beforeLast()} : JMPN(finalWait) + + : JMP(start) +opINVALID: \ No newline at end of file From e57135db804cb2a4c6c0ac2d2d98c97fe0df60e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A9ctor=20Masip?= Date: Wed, 29 Nov 2023 16:26:19 +0100 Subject: [PATCH 20/25] Added a couple of more test --- test/infree0.zkasm | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/test/infree0.zkasm b/test/infree0.zkasm index d48f21f..9ab0a01 100644 --- a/test/infree0.zkasm +++ b/test/infree0.zkasm @@ -10,6 +10,18 @@ start: $0{C} => A 0x2C2D2E2Fn :ASSERT + ${0xffffffff} => A + 0xffffffffn :ASSERT + + $0{0xffffffff} => A + 0xffffffffn :ASSERT + + ${0x100000000} => A + 0x100000000n :ASSERT + + $0{0x100000000} => A + 0 :ASSERT + end: 0 => A,B,C,D,E, SP, PC, GAS, SR From de531cc23bcad59e0d905c75a6f6d04904f8aefe Mon Sep 17 00:00:00 2001 From: krlosMata Date: Tue, 5 Dec 2023 16:03:41 +0100 Subject: [PATCH 21/25] update version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2981e9f..8cad2fe 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@0xpolygonhermez/zkasmcom", - "version": "0.0.24", + "version": "2.0.0", "bin": { "zkasm": "src/zkasm.js" }, From ef2e52dcf978bc4df1745f9f085a99176b8c0547 Mon Sep 17 00:00:00 2001 From: zkronos73 Date: Wed, 13 Dec 2023 13:48:58 +0100 Subject: [PATCH 22/25] add feature to use hashid as register (E,RR) plus offset --- build/zkasm_parser.js | 23 +++++++++++++++++++---- src/zkasm_parser.jison | 12 ++++++++++++ 2 files changed, 31 insertions(+), 4 deletions(-) diff --git a/build/zkasm_parser.js b/build/zkasm_parser.js index 0deecf6..004798e 100644 --- a/build/zkasm_parser.js +++ b/build/zkasm_parser.js @@ -72,12 +72,12 @@ } */ var zkasm_parser = (function(){ -var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,10],$V1=[1,12],$V2=[1,13],$V3=[1,14],$V4=[1,27],$V5=[1,29],$V6=[1,15],$V7=[1,16],$V8=[1,18],$V9=[1,37],$Va=[1,17],$Vb=[1,28],$Vc=[1,20],$Vd=[1,23],$Ve=[1,24],$Vf=[1,30],$Vg=[1,41],$Vh=[1,35],$Vi=[1,46],$Vj=[1,47],$Vk=[1,48],$Vl=[1,49],$Vm=[1,50],$Vn=[1,51],$Vo=[1,52],$Vp=[1,53],$Vq=[1,31],$Vr=[1,32],$Vs=[1,33],$Vt=[1,34],$Vu=[1,36],$Vv=[1,38],$Vw=[1,39],$Vx=[1,40],$Vy=[1,42],$Vz=[1,43],$VA=[1,44],$VB=[1,45],$VC=[5,13,15,17,18,21,23,24,27,28,30,31,33,36,63,64,67,89,90,115,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],$VD=[1,60],$VE=[1,61],$VF=[1,62],$VG=[1,63],$VH=[1,64],$VI=[1,65],$VJ=[1,66],$VK=[1,67],$VL=[1,68],$VM=[1,69],$VN=[1,70],$VO=[1,71],$VP=[1,72],$VQ=[1,73],$VR=[1,74],$VS=[1,77],$VT=[1,78],$VU=[1,79],$VV=[1,80],$VW=[1,81],$VX=[1,82],$VY=[1,83],$VZ=[1,84],$V_=[1,85],$V$=[1,86],$V01=[1,87],$V11=[1,88],$V21=[1,89],$V31=[1,90],$V41=[1,91],$V51=[1,92],$V61=[1,93],$V71=[1,94],$V81=[1,95],$V91=[1,96],$Va1=[1,97],$Vb1=[1,98],$Vc1=[1,99],$Vd1=[1,100],$Ve1=[1,101],$Vf1=[1,102],$Vg1=[1,103],$Vh1=[1,104],$Vi1=[1,105],$Vj1=[13,15],$Vk1=[13,15,35,36,59],$Vl1=[1,117],$Vm1=[13,15,35,36,37,59],$Vn1=[13,15,35,36,37,59,68],$Vo1=[1,122],$Vp1=[13,68],$Vq1=[1,159],$Vr1=[1,155],$Vs1=[1,156],$Vt1=[1,157],$Vu1=[1,158],$Vv1=[1,162],$Vw1=[1,163],$Vx1=[1,189],$Vy1=[1,191],$Vz1=[1,190],$VA1=[1,192],$VB1=[1,193],$VC1=[1,194],$VD1=[13,15,68],$VE1=[5,13,15,17,18,21,23,24,27,28,30,31,33,63,64,67,89,90,115,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],$VF1=[1,238],$VG1=[1,239],$VH1=[1,240],$VI1=[1,241],$VJ1=[1,242],$VK1=[1,243],$VL1=[1,244],$VM1=[1,245],$VN1=[1,246],$VO1=[1,247],$VP1=[1,248],$VQ1=[1,249],$VR1=[1,250],$VS1=[1,251],$VT1=[1,252],$VU1=[1,253],$VV1=[1,254],$VW1=[1,255],$VX1=[1,256],$VY1=[1,257],$VZ1=[5,13,15,17,18,21,23,24,27,28,30,31,33,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,64,67,89,90,115,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],$V_1=[5,13,15,17,18,21,23,24,27,28,30,31,33,35,36,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,64,67,89,90,115,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],$V$1=[5,13,15,17,18,21,23,24,27,28,30,31,33,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,64,67,89,90,115,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],$V02=[5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,46,47,48,49,50,51,52,53,55,57,63,64,67,89,90,115,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],$V12=[5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,50,51,52,53,55,57,63,64,67,89,90,115,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139]; +var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,10],$V1=[1,12],$V2=[1,13],$V3=[1,14],$V4=[1,27],$V5=[1,29],$V6=[1,15],$V7=[1,16],$V8=[1,18],$V9=[1,37],$Va=[1,17],$Vb=[1,28],$Vc=[1,20],$Vd=[1,23],$Ve=[1,24],$Vf=[1,30],$Vg=[1,41],$Vh=[1,35],$Vi=[1,46],$Vj=[1,47],$Vk=[1,48],$Vl=[1,49],$Vm=[1,50],$Vn=[1,51],$Vo=[1,52],$Vp=[1,53],$Vq=[1,31],$Vr=[1,32],$Vs=[1,33],$Vt=[1,34],$Vu=[1,36],$Vv=[1,38],$Vw=[1,39],$Vx=[1,40],$Vy=[1,42],$Vz=[1,43],$VA=[1,44],$VB=[1,45],$VC=[5,13,15,17,18,21,23,24,27,28,30,31,33,36,63,64,67,89,90,115,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],$VD=[1,60],$VE=[1,61],$VF=[1,62],$VG=[1,63],$VH=[1,64],$VI=[1,65],$VJ=[1,66],$VK=[1,67],$VL=[1,68],$VM=[1,69],$VN=[1,70],$VO=[1,71],$VP=[1,72],$VQ=[1,73],$VR=[1,74],$VS=[1,77],$VT=[1,78],$VU=[1,79],$VV=[1,80],$VW=[1,81],$VX=[1,82],$VY=[1,83],$VZ=[1,84],$V_=[1,85],$V$=[1,86],$V01=[1,87],$V11=[1,88],$V21=[1,89],$V31=[1,90],$V41=[1,91],$V51=[1,92],$V61=[1,93],$V71=[1,94],$V81=[1,95],$V91=[1,96],$Va1=[1,97],$Vb1=[1,98],$Vc1=[1,99],$Vd1=[1,100],$Ve1=[1,101],$Vf1=[1,102],$Vg1=[1,103],$Vh1=[1,104],$Vi1=[1,105],$Vj1=[13,15],$Vk1=[13,15,35,36,59],$Vl1=[1,117],$Vm1=[13,15,35,36,37,59],$Vn1=[13,15,35,36,37,59,68],$Vo1=[1,122],$Vp1=[13,68],$Vq1=[1,159],$Vr1=[1,155],$Vs1=[1,156],$Vt1=[1,157],$Vu1=[1,158],$Vv1=[1,162],$Vw1=[1,164],$Vx1=[1,163],$Vy1=[1,190],$Vz1=[1,192],$VA1=[1,191],$VB1=[1,193],$VC1=[1,194],$VD1=[1,195],$VE1=[13,15,68],$VF1=[5,13,15,17,18,21,23,24,27,28,30,31,33,63,64,67,89,90,115,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],$VG1=[1,241],$VH1=[1,242],$VI1=[1,243],$VJ1=[1,244],$VK1=[1,245],$VL1=[1,246],$VM1=[1,247],$VN1=[1,248],$VO1=[1,249],$VP1=[1,250],$VQ1=[1,251],$VR1=[1,252],$VS1=[1,253],$VT1=[1,254],$VU1=[1,255],$VV1=[1,256],$VW1=[1,257],$VX1=[1,258],$VY1=[1,259],$VZ1=[1,260],$V_1=[5,13,15,17,18,21,23,24,27,28,30,31,33,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,64,67,89,90,115,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],$V$1=[5,13,15,17,18,21,23,24,27,28,30,31,33,35,36,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,64,67,89,90,115,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],$V02=[5,13,15,17,18,21,23,24,27,28,30,31,33,41,42,43,44,45,46,47,48,49,50,51,52,53,55,57,63,64,67,89,90,115,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],$V12=[5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,46,47,48,49,50,51,52,53,55,57,63,64,67,89,90,115,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],$V22=[5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,50,51,52,53,55,57,63,64,67,89,90,115,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139]; var parser = {trace: function trace () { }, yy: {}, symbols_: {"error":2,"allStatments":3,"statmentList":4,"EOF":5,"statment":6,"step":7,"label":8,"varDef":9,"constDef":10,"include":11,"command":12,"LF":13,"assignment":14,":":15,"opList":16,"IDENTIFIER":17,"VAR":18,"scope":19,"[":20,"NUMBER":21,"]":22,"CONSTID":23,"CONST":24,"=":25,"nexpr":26,"CONSTL":27,"COMMAND":28,"GLOBAL":29,"CTX":30,"INCLUDE":31,"STRING":32,"NUMBERL":33,"??":34,"+":35,"-":36,"*":37,"**":38,"%":39,"/":40,"<<":41,">>":42,"|":43,"&":44,"^":45,"<":46,">":47,"<=":48,">=":49,"==":50,"!=":51,"&&":52,"||":53,"!":54,"?":55,"(":56,")":57,"inRegsSum":58,"=>":59,"regsList":60,"inRegP":61,"inReg":62,"TAG":63,"TAG_0":64,"reg":65,"counter":66,"REFERENCE":67,",":68,"op":69,"MLOAD":70,"addr":71,"MSTORE":72,"HASHK":73,"hashId":74,"HASHK1":75,"HASHKLEN":76,"HASHKDIGEST":77,"HASHS":78,"HASHS1":79,"HASHSLEN":80,"HASHSDIGEST":81,"HASHP":82,"HASHP1":83,"HASHPLEN":84,"HASHPDIGEST":85,"JMP":86,"jmpCond":87,"jmpNotCond":88,"RR":89,"E":90,"CALL":91,"RETURN":92,"ASSERT":93,"SLOAD":94,"SSTORE":95,"ARITH":96,"ARITH_ECADD_DIFFERENT":97,"ARITH_ECADD_SAME":98,"ARITH_BN254_MULFP2":99,"ARITH_BN254_ADDFP2":100,"ARITH_BN254_SUBFP2":101,"ADD":102,"SUB":103,"LT":104,"SLT":105,"EQ":106,"AND":107,"OR":108,"XOR":109,"LT4":110,"MEM_ALIGN_RD":111,"MEM_ALIGN_WR":112,"MEM_ALIGN_WR8":113,"REPEAT":114,"RCX":115,"JMPN":116,"JMPC":117,"JMPZ":118,"JMPNC":119,"JMPNZ":120,"CNT_ARITH":121,"CNT_BINARY":122,"CNT_KECCAK_F":123,"CNT_SHA256_F":124,"CNT_MEM_ALIGN":125,"CNT_PADDING_PG":126,"CNT_POSEIDON_G":127,"A":128,"B":129,"C":130,"D":131,"SR":132,"SP":133,"PC":134,"GAS":135,"zkPC":136,"STEP":137,"HASHPOS":138,"ROTL_C":139,"++":140,"--":141,"SYS":142,"MEM":143,"STACK":144,"$accept":0,"$end":1}, terminals_: {2:"error",5:"EOF",13:"LF",15:":",17:"IDENTIFIER",18:"VAR",20:"[",21:"NUMBER",22:"]",23:"CONSTID",24:"CONST",25:"=",27:"CONSTL",28:"COMMAND",29:"GLOBAL",30:"CTX",31:"INCLUDE",32:"STRING",33:"NUMBERL",34:"??",35:"+",36:"-",37:"*",38:"**",39:"%",40:"/",41:"<<",42:">>",43:"|",44:"&",45:"^",46:"<",47:">",48:"<=",49:">=",50:"==",51:"!=",52:"&&",53:"||",54:"!",55:"?",56:"(",57:")",59:"=>",63:"TAG",64:"TAG_0",67:"REFERENCE",68:",",70:"MLOAD",72:"MSTORE",73:"HASHK",75:"HASHK1",76:"HASHKLEN",77:"HASHKDIGEST",78:"HASHS",79:"HASHS1",80:"HASHSLEN",81:"HASHSDIGEST",82:"HASHP",83:"HASHP1",84:"HASHPLEN",85:"HASHPDIGEST",86:"JMP",89:"RR",90:"E",91:"CALL",92:"RETURN",93:"ASSERT",94:"SLOAD",95:"SSTORE",96:"ARITH",97:"ARITH_ECADD_DIFFERENT",98:"ARITH_ECADD_SAME",99:"ARITH_BN254_MULFP2",100:"ARITH_BN254_ADDFP2",101:"ARITH_BN254_SUBFP2",102:"ADD",103:"SUB",104:"LT",105:"SLT",106:"EQ",107:"AND",108:"OR",109:"XOR",110:"LT4",111:"MEM_ALIGN_RD",112:"MEM_ALIGN_WR",113:"MEM_ALIGN_WR8",114:"REPEAT",115:"RCX",116:"JMPN",117:"JMPC",118:"JMPZ",119:"JMPNC",120:"JMPNZ",121:"CNT_ARITH",122:"CNT_BINARY",123:"CNT_KECCAK_F",124:"CNT_SHA256_F",125:"CNT_MEM_ALIGN",126:"CNT_PADDING_PG",127:"CNT_POSEIDON_G",128:"A",129:"B",130:"C",131:"D",132:"SR",133:"SP",134:"PC",135:"GAS",136:"zkPC",137:"STEP",138:"HASHPOS",139:"ROTL_C",140:"++",141:"--",142:"SYS",143:"MEM",144:"STACK"}, -productions_: [0,[3,2],[4,2],[4,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[7,4],[7,2],[7,3],[8,2],[9,3],[9,6],[9,6],[10,4],[10,4],[12,1],[19,1],[19,1],[11,2],[26,1],[26,1],[26,1],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,2],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,2],[26,5],[26,3],[14,3],[14,1],[58,3],[58,3],[58,2],[58,1],[61,3],[61,1],[62,1],[62,1],[62,1],[62,1],[62,3],[62,3],[62,1],[62,1],[62,1],[62,1],[60,3],[60,1],[16,3],[16,1],[69,4],[69,4],[69,4],[69,4],[69,4],[69,4],[69,4],[69,4],[69,4],[69,4],[69,4],[69,4],[69,4],[69,4],[69,4],[69,4],[69,6],[69,4],[69,6],[69,4],[69,4],[69,6],[69,6],[69,4],[69,4],[69,6],[69,6],[69,6],[69,6],[69,8],[69,8],[69,4],[69,6],[69,6],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,4],[87,1],[87,1],[87,1],[88,1],[88,1],[66,1],[66,1],[66,1],[66,1],[66,1],[66,1],[66,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[71,1],[71,3],[71,3],[71,2],[71,2],[71,5],[71,5],[71,3],[71,5],[71,5],[71,3],[71,5],[71,5],[71,3],[71,1],[71,3],[71,3],[71,4],[71,6],[71,6],[71,3],[71,4],[74,1],[74,1]], +productions_: [0,[3,2],[4,2],[4,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[7,4],[7,2],[7,3],[8,2],[9,3],[9,6],[9,6],[10,4],[10,4],[12,1],[19,1],[19,1],[11,2],[26,1],[26,1],[26,1],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,2],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,3],[26,2],[26,5],[26,3],[14,3],[14,1],[58,3],[58,3],[58,2],[58,1],[61,3],[61,1],[62,1],[62,1],[62,1],[62,1],[62,3],[62,3],[62,1],[62,1],[62,1],[62,1],[60,3],[60,1],[16,3],[16,1],[69,4],[69,4],[69,4],[69,4],[69,4],[69,4],[69,4],[69,4],[69,4],[69,4],[69,4],[69,4],[69,4],[69,4],[69,4],[69,4],[69,6],[69,4],[69,6],[69,4],[69,4],[69,6],[69,6],[69,4],[69,4],[69,6],[69,6],[69,6],[69,6],[69,8],[69,8],[69,4],[69,6],[69,6],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,4],[87,1],[87,1],[87,1],[88,1],[88,1],[66,1],[66,1],[66,1],[66,1],[66,1],[66,1],[66,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[65,1],[71,1],[71,3],[71,3],[71,2],[71,2],[71,5],[71,5],[71,3],[71,5],[71,5],[71,3],[71,5],[71,5],[71,3],[71,1],[71,3],[71,3],[71,4],[71,6],[71,6],[71,3],[71,4],[74,1],[74,1],[74,1],[74,3],[74,3]], performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { /* this == yyval */ @@ -749,11 +749,26 @@ case 181: this.$ = {ind: 1, indRR: 0, offset:0} +break; +case 182: + + this.$ = {ind: 0, indRR: 1, offset:0} + +break; +case 183: + + this.$ = {ind: 1, indRR: 0, offset:$$[$0]} + +break; +case 184: + + this.$ = {ind: 0, indRR: 1, offset:$$[$0]} + break; } }, -table: [{3:1,4:2,6:3,7:4,8:5,9:6,10:7,11:8,12:9,13:$V0,14:11,15:$V1,17:$V2,18:$V3,21:$V4,23:$V5,24:$V6,27:$V7,28:$V8,30:$V9,31:$Va,33:$Vb,36:$Vc,58:19,61:21,62:22,63:$Vd,64:$Ve,65:25,66:26,67:$Vf,89:$Vg,90:$Vh,115:$Vi,121:$Vj,122:$Vk,123:$Vl,124:$Vm,125:$Vn,126:$Vo,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,139:$VB},{1:[3]},{5:[1,54],6:55,7:4,8:5,9:6,10:7,11:8,12:9,13:$V0,14:11,15:$V1,17:$V2,18:$V3,21:$V4,23:$V5,24:$V6,27:$V7,28:$V8,30:$V9,31:$Va,33:$Vb,36:$Vc,58:19,61:21,62:22,63:$Vd,64:$Ve,65:25,66:26,67:$Vf,89:$Vg,90:$Vh,115:$Vi,121:$Vj,122:$Vk,123:$Vl,124:$Vm,125:$Vn,126:$Vo,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,139:$VB},o($VC,[2,3]),o($VC,[2,4]),o($VC,[2,5]),o($VC,[2,6]),o($VC,[2,7]),o($VC,[2,8]),o($VC,[2,9]),o($VC,[2,10]),{13:[1,57],15:[1,56]},{16:58,69:59,70:$VD,72:$VE,73:$VF,75:$VG,76:$VH,77:$VI,78:$VJ,79:$VK,80:$VL,81:$VM,82:$VN,83:$VO,84:$VP,85:$VQ,86:$VR,87:75,88:76,91:$VS,92:$VT,93:$VU,94:$VV,95:$VW,96:$VX,97:$VY,98:$VZ,99:$V_,100:$V$,101:$V01,102:$V11,103:$V21,104:$V31,105:$V41,106:$V51,107:$V61,108:$V71,109:$V81,110:$V91,111:$Va1,112:$Vb1,113:$Vc1,114:$Vd1,116:$Ve1,117:$Vf1,118:$Vg1,119:$Vh1,120:$Vi1},{15:[1,106]},{19:107,29:[1,108],30:[1,109]},{23:[1,110]},{23:[1,111]},{32:[1,112]},o($VC,[2,20]),o($Vj1,[2,52],{35:[1,114],36:[1,115],59:[1,113]}),{21:$V4,23:$V5,30:$V9,33:$Vb,61:116,62:22,63:$Vd,64:$Ve,65:25,66:26,67:$Vf,89:$Vg,90:$Vh,115:$Vi,121:$Vj,122:$Vk,123:$Vl,124:$Vm,125:$Vn,126:$Vo,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,139:$VB},o($Vk1,[2,56],{37:$Vl1}),o($Vm1,[2,58]),o($Vm1,[2,59]),o($Vm1,[2,60]),o($Vm1,[2,61]),o($Vm1,[2,62]),o($Vm1,[2,65],{38:[1,118]}),o($Vm1,[2,66],{38:[1,119]}),o($Vm1,[2,67]),o($Vm1,[2,68]),o($Vn1,[2,142]),o($Vn1,[2,143]),o($Vn1,[2,144]),o($Vn1,[2,145]),o($Vn1,[2,146]),o($Vn1,[2,147]),o($Vn1,[2,148]),o($Vn1,[2,149]),o($Vn1,[2,150]),o($Vn1,[2,151]),o($Vn1,[2,152]),o($Vn1,[2,153]),o($Vn1,[2,154]),o($Vn1,[2,155]),o($Vn1,[2,156]),o($Vn1,[2,157]),o($Vm1,[2,135]),o($Vm1,[2,136]),o($Vm1,[2,137]),o($Vm1,[2,138]),o($Vm1,[2,139]),o($Vm1,[2,140]),o($Vm1,[2,141]),{1:[2,1]},o($VC,[2,2]),{16:120,69:59,70:$VD,72:$VE,73:$VF,75:$VG,76:$VH,77:$VI,78:$VJ,79:$VK,80:$VL,81:$VM,82:$VN,83:$VO,84:$VP,85:$VQ,86:$VR,87:75,88:76,91:$VS,92:$VT,93:$VU,94:$VV,95:$VW,96:$VX,97:$VY,98:$VZ,99:$V_,100:$V$,101:$V01,102:$V11,103:$V21,104:$V31,105:$V41,106:$V51,107:$V61,108:$V71,109:$V81,110:$V91,111:$Va1,112:$Vb1,113:$Vc1,114:$Vd1,116:$Ve1,117:$Vf1,118:$Vg1,119:$Vh1,120:$Vi1},o($VC,[2,12]),{13:[1,121],68:$Vo1},o($Vp1,[2,72]),{56:[1,123]},{56:[1,124]},{56:[1,125]},{56:[1,126]},{56:[1,127]},{56:[1,128]},{56:[1,129]},{56:[1,130]},{56:[1,131]},{56:[1,132]},{56:[1,133]},{56:[1,134]},{56:[1,135]},{56:[1,136]},{56:[1,137]},{56:[1,138]},{56:[1,139]},{56:[1,140]},o($Vp1,[2,107]),o($Vp1,[2,108]),o($Vp1,[2,109]),o($Vp1,[2,110]),o($Vp1,[2,111]),o($Vp1,[2,112]),o($Vp1,[2,113]),o($Vp1,[2,114]),o($Vp1,[2,115]),o($Vp1,[2,116]),o($Vp1,[2,117]),o($Vp1,[2,118]),o($Vp1,[2,119]),o($Vp1,[2,120]),o($Vp1,[2,121]),o($Vp1,[2,122]),o($Vp1,[2,123]),o($Vp1,[2,124]),o($Vp1,[2,125]),o($Vp1,[2,126]),o($Vp1,[2,127]),o($Vp1,[2,128]),{56:[1,141]},{56:[2,130]},{56:[2,131]},{56:[2,132]},{56:[2,133]},{56:[2,134]},o($VC,[2,14]),{17:[1,142]},{17:[2,21]},{17:[2,22]},{25:[1,143]},{25:[1,144]},o($VC,[2,23]),{30:$V9,60:145,65:146,89:$Vg,90:$Vh,115:$Vi,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,139:$VB},{21:$V4,23:$V5,30:$V9,33:$Vb,61:147,62:22,63:$Vd,64:$Ve,65:25,66:26,67:$Vf,89:$Vg,90:$Vh,115:$Vi,121:$Vj,122:$Vk,123:$Vl,124:$Vm,125:$Vn,126:$Vo,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,139:$VB},{21:$V4,23:$V5,30:$V9,33:$Vb,61:148,62:22,63:$Vd,64:$Ve,65:25,66:26,67:$Vf,89:$Vg,90:$Vh,115:$Vi,121:$Vj,122:$Vk,123:$Vl,124:$Vm,125:$Vn,126:$Vo,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,139:$VB},o($Vk1,[2,55],{37:$Vl1}),{21:$V4,23:$V5,30:$V9,33:$Vb,62:149,63:$Vd,64:$Ve,65:25,66:26,67:$Vf,89:$Vg,90:$Vh,115:$Vi,121:$Vj,122:$Vk,123:$Vl,124:$Vm,125:$Vn,126:$Vo,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,139:$VB},{21:[1,150]},{33:[1,151]},{13:[1,152],68:$Vo1},o($VC,[2,13]),{69:153,70:$VD,72:$VE,73:$VF,75:$VG,76:$VH,77:$VI,78:$VJ,79:$VK,80:$VL,81:$VM,82:$VN,83:$VO,84:$VP,85:$VQ,86:$VR,87:75,88:76,91:$VS,92:$VT,93:$VU,94:$VV,95:$VW,96:$VX,97:$VY,98:$VZ,99:$V_,100:$V$,101:$V01,102:$V11,103:$V21,104:$V31,105:$V41,106:$V51,107:$V61,108:$V71,109:$V81,110:$V91,111:$Va1,112:$Vb1,113:$Vc1,114:$Vd1,116:$Ve1,117:$Vf1,118:$Vg1,119:$Vh1,120:$Vi1},{17:$Vq1,71:154,133:$Vr1,142:$Vs1,143:$Vt1,144:$Vu1},{17:$Vq1,71:160,133:$Vr1,142:$Vs1,143:$Vt1,144:$Vu1},{21:$Vv1,74:161,90:$Vw1},{21:$Vv1,74:164,90:$Vw1},{21:$Vv1,74:165,90:$Vw1},{21:$Vv1,74:166,90:$Vw1},{21:$Vv1,74:167,90:$Vw1},{21:$Vv1,74:168,90:$Vw1},{21:$Vv1,74:169,90:$Vw1},{21:$Vv1,74:170,90:$Vw1},{21:$Vv1,74:171,90:$Vw1},{21:$Vv1,74:172,90:$Vw1},{21:$Vv1,74:173,90:$Vw1},{21:$Vv1,74:174,90:$Vw1},{17:[1,175],67:[1,178],89:[1,176],90:[1,177]},{17:[1,179],67:[1,182],89:[1,180],90:[1,181]},{17:[1,183]},{17:[1,184],67:[1,185]},{115:[1,186]},o($VC,[2,15],{20:[1,187]}),{21:$Vx1,23:$Vy1,26:188,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{21:$Vx1,23:$Vy1,26:195,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},o($Vj1,[2,51],{68:[1,196]}),o($VD1,[2,70]),o($Vk1,[2,53],{37:$Vl1}),o($Vk1,[2,54],{37:$Vl1}),o($Vm1,[2,57]),o($Vm1,[2,63]),o($Vm1,[2,64]),o($VC,[2,11]),o($Vp1,[2,71]),{57:[1,197]},{35:[1,198],36:[1,199],57:[2,158],140:[1,200],141:[1,201]},{15:[1,202]},{15:[1,203]},{15:[1,204]},{20:[1,206],35:[1,205],57:[2,172]},{57:[1,207]},{57:[1,208]},{57:[2,180]},{57:[2,181]},{57:[1,209]},{57:[1,210]},{57:[1,211]},{57:[1,212]},{57:[1,213]},{57:[1,214]},{57:[1,215]},{57:[1,216]},{57:[1,217]},{57:[1,218]},{57:[1,219]},{57:[1,220]},{57:[1,221]},{57:[1,222]},{35:[1,223]},{57:[1,224],68:[1,225]},{57:[1,226],68:[1,227]},{57:[1,228],68:[1,229]},{35:[1,230]},{57:[1,231],68:[1,232]},{57:[1,233]},{35:[1,234]},{57:[1,235]},{21:[1,236],23:[1,237]},o($VE1,[2,18],{35:$VF1,36:$VG1,37:$VH1,38:$VI1,39:$VJ1,40:$VK1,41:$VL1,42:$VM1,43:$VN1,44:$VO1,45:$VP1,46:$VQ1,47:$VR1,48:$VS1,49:$VT1,50:$VU1,51:$VV1,52:$VW1,53:$VX1,55:$VY1}),o($VZ1,[2,24]),o($VZ1,[2,25]),o($VZ1,[2,26],{34:[1,258]}),{21:$Vx1,23:$Vy1,26:259,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{21:$Vx1,23:$Vy1,26:260,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{21:$Vx1,23:$Vy1,26:261,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},o($VE1,[2,19],{35:$VF1,36:$VG1,37:$VH1,38:$VI1,39:$VJ1,40:$VK1,41:$VL1,42:$VM1,43:$VN1,44:$VO1,45:$VP1,46:$VQ1,47:$VR1,48:$VS1,49:$VT1,50:$VU1,51:$VV1,52:$VW1,53:$VX1,55:$VY1}),{30:$V9,65:262,89:$Vg,90:$Vh,115:$Vi,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,139:$VB},o($Vp1,[2,73]),{21:[1,263]},{21:[1,264]},{57:[2,161]},{57:[2,162]},{90:[1,265]},{90:[1,266]},{90:[1,267]},{21:[1,270],89:[1,268],90:[1,269]},{21:[1,272],90:[1,271]},o($Vp1,[2,74]),o($Vp1,[2,75]),o($Vp1,[2,76]),o($Vp1,[2,77]),o($Vp1,[2,78]),o($Vp1,[2,79]),o($Vp1,[2,80]),o($Vp1,[2,81]),o($Vp1,[2,82]),o($Vp1,[2,83]),o($Vp1,[2,84]),o($Vp1,[2,85]),o($Vp1,[2,86]),o($Vp1,[2,87]),o($Vp1,[2,92]),o($Vp1,[2,93]),{89:[1,273],90:[1,274]},o($Vp1,[2,88]),{17:[1,275]},o($Vp1,[2,96]),{17:[1,276]},o($Vp1,[2,97]),{17:[1,277]},{89:[1,278],90:[1,279]},o($Vp1,[2,90]),{17:[1,280]},o($Vp1,[2,104]),{89:[1,281],90:[1,282]},o($Vp1,[2,129]),{22:[1,283]},{22:[1,284]},{21:$Vx1,23:$Vy1,26:285,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{21:$Vx1,23:$Vy1,26:286,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{21:$Vx1,23:$Vy1,26:287,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{21:$Vx1,23:$Vy1,26:288,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{21:$Vx1,23:$Vy1,26:289,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{21:$Vx1,23:$Vy1,26:290,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{21:$Vx1,23:$Vy1,26:291,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{21:$Vx1,23:$Vy1,26:292,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{21:$Vx1,23:$Vy1,26:293,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{21:$Vx1,23:$Vy1,26:294,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{21:$Vx1,23:$Vy1,26:295,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{21:$Vx1,23:$Vy1,26:296,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{21:$Vx1,23:$Vy1,26:297,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{21:$Vx1,23:$Vy1,26:298,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{21:$Vx1,23:$Vy1,26:299,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{21:$Vx1,23:$Vy1,26:300,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{21:$Vx1,23:$Vy1,26:301,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{21:$Vx1,23:$Vy1,26:302,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{21:$Vx1,23:$Vy1,26:303,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{21:$Vx1,23:$Vy1,26:304,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{21:$Vx1,23:$Vy1,26:305,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},o($V_1,[2,34],{37:$VH1,38:$VI1,39:$VJ1,40:$VK1}),o($VZ1,[2,48]),{35:$VF1,36:$VG1,37:$VH1,38:$VI1,39:$VJ1,40:$VK1,41:$VL1,42:$VM1,43:$VN1,44:$VO1,45:$VP1,46:$VQ1,47:$VR1,48:$VS1,49:$VT1,50:$VU1,51:$VV1,52:$VW1,53:$VX1,55:$VY1,57:[1,306]},o($VD1,[2,69]),{57:[2,159]},{57:[2,160]},{35:[1,307],36:[1,308],57:[2,165]},{35:[1,309],36:[1,310],57:[2,168]},{35:[1,311],36:[1,312],57:[2,171]},{57:[2,173]},{57:[2,174]},{57:[2,178]},{22:[1,313],35:[1,315],36:[1,314]},{22:[1,316]},{57:[1,317]},{57:[1,318]},{57:[1,319]},{57:[1,320]},{57:[1,321]},{57:[1,322],68:[1,323]},{57:[1,324],68:[1,325]},{57:[1,326]},{57:[1,327]},{57:[1,328]},o($VC,[2,16]),o($VC,[2,17]),o($V_1,[2,28],{37:$VH1,38:$VI1,39:$VJ1,40:$VK1}),o($V_1,[2,29],{37:$VH1,38:$VI1,39:$VJ1,40:$VK1}),o($VZ1,[2,30]),o($VZ1,[2,31]),o($VZ1,[2,32]),o($VZ1,[2,33]),o($V$1,[2,35],{35:$VF1,36:$VG1,37:$VH1,38:$VI1,39:$VJ1,40:$VK1}),o($V$1,[2,36],{35:$VF1,36:$VG1,37:$VH1,38:$VI1,39:$VJ1,40:$VK1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,52,53,55,57,63,64,67,89,90,115,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],[2,37],{35:$VF1,36:$VG1,37:$VH1,38:$VI1,39:$VJ1,40:$VK1,41:$VL1,42:$VM1,44:$VO1,45:$VP1,46:$VQ1,47:$VR1,48:$VS1,49:$VT1,50:$VU1,51:$VV1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,52,53,55,57,63,64,67,89,90,115,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],[2,38],{35:$VF1,36:$VG1,37:$VH1,38:$VI1,39:$VJ1,40:$VK1,41:$VL1,42:$VM1,46:$VQ1,47:$VR1,48:$VS1,49:$VT1,50:$VU1,51:$VV1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,45,52,53,55,57,63,64,67,89,90,115,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],[2,39],{35:$VF1,36:$VG1,37:$VH1,38:$VI1,39:$VJ1,40:$VK1,41:$VL1,42:$VM1,44:$VO1,46:$VQ1,47:$VR1,48:$VS1,49:$VT1,50:$VU1,51:$VV1}),o($V02,[2,40],{35:$VF1,36:$VG1,37:$VH1,38:$VI1,39:$VJ1,40:$VK1,41:$VL1,42:$VM1}),o($V02,[2,41],{35:$VF1,36:$VG1,37:$VH1,38:$VI1,39:$VJ1,40:$VK1,41:$VL1,42:$VM1}),o($V02,[2,42],{35:$VF1,36:$VG1,37:$VH1,38:$VI1,39:$VJ1,40:$VK1,41:$VL1,42:$VM1}),o($V02,[2,43],{35:$VF1,36:$VG1,37:$VH1,38:$VI1,39:$VJ1,40:$VK1,41:$VL1,42:$VM1}),o($V12,[2,44],{35:$VF1,36:$VG1,37:$VH1,38:$VI1,39:$VJ1,40:$VK1,41:$VL1,42:$VM1,46:$VQ1,47:$VR1,48:$VS1,49:$VT1}),o($V12,[2,45],{35:$VF1,36:$VG1,37:$VH1,38:$VI1,39:$VJ1,40:$VK1,41:$VL1,42:$VM1,46:$VQ1,47:$VR1,48:$VS1,49:$VT1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,52,53,55,57,63,64,67,89,90,115,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],[2,46],{35:$VF1,36:$VG1,37:$VH1,38:$VI1,39:$VJ1,40:$VK1,41:$VL1,42:$VM1,43:$VN1,44:$VO1,45:$VP1,46:$VQ1,47:$VR1,48:$VS1,49:$VT1,50:$VU1,51:$VV1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,53,55,57,63,64,67,89,90,115,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],[2,47],{35:$VF1,36:$VG1,37:$VH1,38:$VI1,39:$VJ1,40:$VK1,41:$VL1,42:$VM1,43:$VN1,44:$VO1,45:$VP1,46:$VQ1,47:$VR1,48:$VS1,49:$VT1,50:$VU1,51:$VV1,52:$VW1}),{15:[1,329],35:$VF1,36:$VG1,37:$VH1,38:$VI1,39:$VJ1,40:$VK1,41:$VL1,42:$VM1,43:$VN1,44:$VO1,45:$VP1,46:$VQ1,47:$VR1,48:$VS1,49:$VT1,50:$VU1,51:$VV1,52:$VW1,53:$VX1,55:$VY1},o([5,13,15,17,18,21,23,24,27,28,30,31,33,55,57,63,64,67,89,90,115,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],[2,27],{35:$VF1,36:$VG1,37:$VH1,38:$VI1,39:$VJ1,40:$VK1,41:$VL1,42:$VM1,43:$VN1,44:$VO1,45:$VP1,46:$VQ1,47:$VR1,48:$VS1,49:$VT1,50:$VU1,51:$VV1,52:$VW1,53:$VX1}),o($VZ1,[2,50]),{21:[1,330]},{21:[1,331]},{21:[1,332]},{21:[1,333]},{21:[1,334]},{21:[1,335]},{57:[2,175]},{21:[1,336]},{21:[1,337]},{57:[2,179]},o($Vp1,[2,94]),o($Vp1,[2,95]),o($Vp1,[2,89]),o($Vp1,[2,100]),o($Vp1,[2,101]),o($Vp1,[2,98]),{17:[1,338]},o($Vp1,[2,99]),{17:[1,339]},o($Vp1,[2,91]),o($Vp1,[2,105]),o($Vp1,[2,106]),{21:$Vx1,23:$Vy1,26:340,33:$Vz1,36:$VA1,54:$VB1,56:$VC1},{57:[2,163]},{57:[2,164]},{57:[2,166]},{57:[2,167]},{57:[2,169]},{57:[2,170]},{22:[1,341]},{22:[1,342]},{57:[1,343]},{57:[1,344]},o([5,13,15,17,18,21,23,24,27,28,30,31,33,57,63,64,67,89,90,115,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],[2,49],{35:$VF1,36:$VG1,37:$VH1,38:$VI1,39:$VJ1,40:$VK1,41:$VL1,42:$VM1,43:$VN1,44:$VO1,45:$VP1,46:$VQ1,47:$VR1,48:$VS1,49:$VT1,50:$VU1,51:$VV1,52:$VW1,53:$VX1,55:$VY1}),{57:[2,176]},{57:[2,177]},o($Vp1,[2,102]),o($Vp1,[2,103])], -defaultActions: {54:[2,1],101:[2,130],102:[2,131],103:[2,132],104:[2,133],105:[2,134],108:[2,21],109:[2,22],162:[2,180],163:[2,181],200:[2,161],201:[2,162],263:[2,159],264:[2,160],268:[2,173],269:[2,174],270:[2,178],313:[2,175],316:[2,179],330:[2,163],331:[2,164],332:[2,166],333:[2,167],334:[2,169],335:[2,170],341:[2,176],342:[2,177]}, +table: [{3:1,4:2,6:3,7:4,8:5,9:6,10:7,11:8,12:9,13:$V0,14:11,15:$V1,17:$V2,18:$V3,21:$V4,23:$V5,24:$V6,27:$V7,28:$V8,30:$V9,31:$Va,33:$Vb,36:$Vc,58:19,61:21,62:22,63:$Vd,64:$Ve,65:25,66:26,67:$Vf,89:$Vg,90:$Vh,115:$Vi,121:$Vj,122:$Vk,123:$Vl,124:$Vm,125:$Vn,126:$Vo,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,139:$VB},{1:[3]},{5:[1,54],6:55,7:4,8:5,9:6,10:7,11:8,12:9,13:$V0,14:11,15:$V1,17:$V2,18:$V3,21:$V4,23:$V5,24:$V6,27:$V7,28:$V8,30:$V9,31:$Va,33:$Vb,36:$Vc,58:19,61:21,62:22,63:$Vd,64:$Ve,65:25,66:26,67:$Vf,89:$Vg,90:$Vh,115:$Vi,121:$Vj,122:$Vk,123:$Vl,124:$Vm,125:$Vn,126:$Vo,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,139:$VB},o($VC,[2,3]),o($VC,[2,4]),o($VC,[2,5]),o($VC,[2,6]),o($VC,[2,7]),o($VC,[2,8]),o($VC,[2,9]),o($VC,[2,10]),{13:[1,57],15:[1,56]},{16:58,69:59,70:$VD,72:$VE,73:$VF,75:$VG,76:$VH,77:$VI,78:$VJ,79:$VK,80:$VL,81:$VM,82:$VN,83:$VO,84:$VP,85:$VQ,86:$VR,87:75,88:76,91:$VS,92:$VT,93:$VU,94:$VV,95:$VW,96:$VX,97:$VY,98:$VZ,99:$V_,100:$V$,101:$V01,102:$V11,103:$V21,104:$V31,105:$V41,106:$V51,107:$V61,108:$V71,109:$V81,110:$V91,111:$Va1,112:$Vb1,113:$Vc1,114:$Vd1,116:$Ve1,117:$Vf1,118:$Vg1,119:$Vh1,120:$Vi1},{15:[1,106]},{19:107,29:[1,108],30:[1,109]},{23:[1,110]},{23:[1,111]},{32:[1,112]},o($VC,[2,20]),o($Vj1,[2,52],{35:[1,114],36:[1,115],59:[1,113]}),{21:$V4,23:$V5,30:$V9,33:$Vb,61:116,62:22,63:$Vd,64:$Ve,65:25,66:26,67:$Vf,89:$Vg,90:$Vh,115:$Vi,121:$Vj,122:$Vk,123:$Vl,124:$Vm,125:$Vn,126:$Vo,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,139:$VB},o($Vk1,[2,56],{37:$Vl1}),o($Vm1,[2,58]),o($Vm1,[2,59]),o($Vm1,[2,60]),o($Vm1,[2,61]),o($Vm1,[2,62]),o($Vm1,[2,65],{38:[1,118]}),o($Vm1,[2,66],{38:[1,119]}),o($Vm1,[2,67]),o($Vm1,[2,68]),o($Vn1,[2,142]),o($Vn1,[2,143]),o($Vn1,[2,144]),o($Vn1,[2,145]),o($Vn1,[2,146]),o($Vn1,[2,147]),o($Vn1,[2,148]),o($Vn1,[2,149]),o($Vn1,[2,150]),o($Vn1,[2,151]),o($Vn1,[2,152]),o($Vn1,[2,153]),o($Vn1,[2,154]),o($Vn1,[2,155]),o($Vn1,[2,156]),o($Vn1,[2,157]),o($Vm1,[2,135]),o($Vm1,[2,136]),o($Vm1,[2,137]),o($Vm1,[2,138]),o($Vm1,[2,139]),o($Vm1,[2,140]),o($Vm1,[2,141]),{1:[2,1]},o($VC,[2,2]),{16:120,69:59,70:$VD,72:$VE,73:$VF,75:$VG,76:$VH,77:$VI,78:$VJ,79:$VK,80:$VL,81:$VM,82:$VN,83:$VO,84:$VP,85:$VQ,86:$VR,87:75,88:76,91:$VS,92:$VT,93:$VU,94:$VV,95:$VW,96:$VX,97:$VY,98:$VZ,99:$V_,100:$V$,101:$V01,102:$V11,103:$V21,104:$V31,105:$V41,106:$V51,107:$V61,108:$V71,109:$V81,110:$V91,111:$Va1,112:$Vb1,113:$Vc1,114:$Vd1,116:$Ve1,117:$Vf1,118:$Vg1,119:$Vh1,120:$Vi1},o($VC,[2,12]),{13:[1,121],68:$Vo1},o($Vp1,[2,72]),{56:[1,123]},{56:[1,124]},{56:[1,125]},{56:[1,126]},{56:[1,127]},{56:[1,128]},{56:[1,129]},{56:[1,130]},{56:[1,131]},{56:[1,132]},{56:[1,133]},{56:[1,134]},{56:[1,135]},{56:[1,136]},{56:[1,137]},{56:[1,138]},{56:[1,139]},{56:[1,140]},o($Vp1,[2,107]),o($Vp1,[2,108]),o($Vp1,[2,109]),o($Vp1,[2,110]),o($Vp1,[2,111]),o($Vp1,[2,112]),o($Vp1,[2,113]),o($Vp1,[2,114]),o($Vp1,[2,115]),o($Vp1,[2,116]),o($Vp1,[2,117]),o($Vp1,[2,118]),o($Vp1,[2,119]),o($Vp1,[2,120]),o($Vp1,[2,121]),o($Vp1,[2,122]),o($Vp1,[2,123]),o($Vp1,[2,124]),o($Vp1,[2,125]),o($Vp1,[2,126]),o($Vp1,[2,127]),o($Vp1,[2,128]),{56:[1,141]},{56:[2,130]},{56:[2,131]},{56:[2,132]},{56:[2,133]},{56:[2,134]},o($VC,[2,14]),{17:[1,142]},{17:[2,21]},{17:[2,22]},{25:[1,143]},{25:[1,144]},o($VC,[2,23]),{30:$V9,60:145,65:146,89:$Vg,90:$Vh,115:$Vi,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,139:$VB},{21:$V4,23:$V5,30:$V9,33:$Vb,61:147,62:22,63:$Vd,64:$Ve,65:25,66:26,67:$Vf,89:$Vg,90:$Vh,115:$Vi,121:$Vj,122:$Vk,123:$Vl,124:$Vm,125:$Vn,126:$Vo,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,139:$VB},{21:$V4,23:$V5,30:$V9,33:$Vb,61:148,62:22,63:$Vd,64:$Ve,65:25,66:26,67:$Vf,89:$Vg,90:$Vh,115:$Vi,121:$Vj,122:$Vk,123:$Vl,124:$Vm,125:$Vn,126:$Vo,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,139:$VB},o($Vk1,[2,55],{37:$Vl1}),{21:$V4,23:$V5,30:$V9,33:$Vb,62:149,63:$Vd,64:$Ve,65:25,66:26,67:$Vf,89:$Vg,90:$Vh,115:$Vi,121:$Vj,122:$Vk,123:$Vl,124:$Vm,125:$Vn,126:$Vo,127:$Vp,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,139:$VB},{21:[1,150]},{33:[1,151]},{13:[1,152],68:$Vo1},o($VC,[2,13]),{69:153,70:$VD,72:$VE,73:$VF,75:$VG,76:$VH,77:$VI,78:$VJ,79:$VK,80:$VL,81:$VM,82:$VN,83:$VO,84:$VP,85:$VQ,86:$VR,87:75,88:76,91:$VS,92:$VT,93:$VU,94:$VV,95:$VW,96:$VX,97:$VY,98:$VZ,99:$V_,100:$V$,101:$V01,102:$V11,103:$V21,104:$V31,105:$V41,106:$V51,107:$V61,108:$V71,109:$V81,110:$V91,111:$Va1,112:$Vb1,113:$Vc1,114:$Vd1,116:$Ve1,117:$Vf1,118:$Vg1,119:$Vh1,120:$Vi1},{17:$Vq1,71:154,133:$Vr1,142:$Vs1,143:$Vt1,144:$Vu1},{17:$Vq1,71:160,133:$Vr1,142:$Vs1,143:$Vt1,144:$Vu1},{21:$Vv1,74:161,89:$Vw1,90:$Vx1},{21:$Vv1,74:165,89:$Vw1,90:$Vx1},{21:$Vv1,74:166,89:$Vw1,90:$Vx1},{21:$Vv1,74:167,89:$Vw1,90:$Vx1},{21:$Vv1,74:168,89:$Vw1,90:$Vx1},{21:$Vv1,74:169,89:$Vw1,90:$Vx1},{21:$Vv1,74:170,89:$Vw1,90:$Vx1},{21:$Vv1,74:171,89:$Vw1,90:$Vx1},{21:$Vv1,74:172,89:$Vw1,90:$Vx1},{21:$Vv1,74:173,89:$Vw1,90:$Vx1},{21:$Vv1,74:174,89:$Vw1,90:$Vx1},{21:$Vv1,74:175,89:$Vw1,90:$Vx1},{17:[1,176],67:[1,179],89:[1,177],90:[1,178]},{17:[1,180],67:[1,183],89:[1,181],90:[1,182]},{17:[1,184]},{17:[1,185],67:[1,186]},{115:[1,187]},o($VC,[2,15],{20:[1,188]}),{21:$Vy1,23:$Vz1,26:189,33:$VA1,36:$VB1,54:$VC1,56:$VD1},{21:$Vy1,23:$Vz1,26:196,33:$VA1,36:$VB1,54:$VC1,56:$VD1},o($Vj1,[2,51],{68:[1,197]}),o($VE1,[2,70]),o($Vk1,[2,53],{37:$Vl1}),o($Vk1,[2,54],{37:$Vl1}),o($Vm1,[2,57]),o($Vm1,[2,63]),o($Vm1,[2,64]),o($VC,[2,11]),o($Vp1,[2,71]),{57:[1,198]},{35:[1,199],36:[1,200],57:[2,158],140:[1,201],141:[1,202]},{15:[1,203]},{15:[1,204]},{15:[1,205]},{20:[1,207],35:[1,206],57:[2,172]},{57:[1,208]},{57:[1,209]},{57:[2,180]},{35:[1,210],57:[2,181]},{35:[1,211],57:[2,182]},{57:[1,212]},{57:[1,213]},{57:[1,214]},{57:[1,215]},{57:[1,216]},{57:[1,217]},{57:[1,218]},{57:[1,219]},{57:[1,220]},{57:[1,221]},{57:[1,222]},{57:[1,223]},{57:[1,224]},{57:[1,225]},{35:[1,226]},{57:[1,227],68:[1,228]},{57:[1,229],68:[1,230]},{57:[1,231],68:[1,232]},{35:[1,233]},{57:[1,234],68:[1,235]},{57:[1,236]},{35:[1,237]},{57:[1,238]},{21:[1,239],23:[1,240]},o($VF1,[2,18],{35:$VG1,36:$VH1,37:$VI1,38:$VJ1,39:$VK1,40:$VL1,41:$VM1,42:$VN1,43:$VO1,44:$VP1,45:$VQ1,46:$VR1,47:$VS1,48:$VT1,49:$VU1,50:$VV1,51:$VW1,52:$VX1,53:$VY1,55:$VZ1}),o($V_1,[2,24]),o($V_1,[2,25]),o($V_1,[2,26],{34:[1,261]}),{21:$Vy1,23:$Vz1,26:262,33:$VA1,36:$VB1,54:$VC1,56:$VD1},{21:$Vy1,23:$Vz1,26:263,33:$VA1,36:$VB1,54:$VC1,56:$VD1},{21:$Vy1,23:$Vz1,26:264,33:$VA1,36:$VB1,54:$VC1,56:$VD1},o($VF1,[2,19],{35:$VG1,36:$VH1,37:$VI1,38:$VJ1,39:$VK1,40:$VL1,41:$VM1,42:$VN1,43:$VO1,44:$VP1,45:$VQ1,46:$VR1,47:$VS1,48:$VT1,49:$VU1,50:$VV1,51:$VW1,52:$VX1,53:$VY1,55:$VZ1}),{30:$V9,65:265,89:$Vg,90:$Vh,115:$Vi,128:$Vq,129:$Vr,130:$Vs,131:$Vt,132:$Vu,133:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,139:$VB},o($Vp1,[2,73]),{21:[1,266]},{21:[1,267]},{57:[2,161]},{57:[2,162]},{90:[1,268]},{90:[1,269]},{90:[1,270]},{21:[1,273],89:[1,271],90:[1,272]},{21:[1,275],90:[1,274]},o($Vp1,[2,74]),o($Vp1,[2,75]),{21:[1,276]},{21:[1,277]},o($Vp1,[2,76]),o($Vp1,[2,77]),o($Vp1,[2,78]),o($Vp1,[2,79]),o($Vp1,[2,80]),o($Vp1,[2,81]),o($Vp1,[2,82]),o($Vp1,[2,83]),o($Vp1,[2,84]),o($Vp1,[2,85]),o($Vp1,[2,86]),o($Vp1,[2,87]),o($Vp1,[2,92]),o($Vp1,[2,93]),{89:[1,278],90:[1,279]},o($Vp1,[2,88]),{17:[1,280]},o($Vp1,[2,96]),{17:[1,281]},o($Vp1,[2,97]),{17:[1,282]},{89:[1,283],90:[1,284]},o($Vp1,[2,90]),{17:[1,285]},o($Vp1,[2,104]),{89:[1,286],90:[1,287]},o($Vp1,[2,129]),{22:[1,288]},{22:[1,289]},{21:$Vy1,23:$Vz1,26:290,33:$VA1,36:$VB1,54:$VC1,56:$VD1},{21:$Vy1,23:$Vz1,26:291,33:$VA1,36:$VB1,54:$VC1,56:$VD1},{21:$Vy1,23:$Vz1,26:292,33:$VA1,36:$VB1,54:$VC1,56:$VD1},{21:$Vy1,23:$Vz1,26:293,33:$VA1,36:$VB1,54:$VC1,56:$VD1},{21:$Vy1,23:$Vz1,26:294,33:$VA1,36:$VB1,54:$VC1,56:$VD1},{21:$Vy1,23:$Vz1,26:295,33:$VA1,36:$VB1,54:$VC1,56:$VD1},{21:$Vy1,23:$Vz1,26:296,33:$VA1,36:$VB1,54:$VC1,56:$VD1},{21:$Vy1,23:$Vz1,26:297,33:$VA1,36:$VB1,54:$VC1,56:$VD1},{21:$Vy1,23:$Vz1,26:298,33:$VA1,36:$VB1,54:$VC1,56:$VD1},{21:$Vy1,23:$Vz1,26:299,33:$VA1,36:$VB1,54:$VC1,56:$VD1},{21:$Vy1,23:$Vz1,26:300,33:$VA1,36:$VB1,54:$VC1,56:$VD1},{21:$Vy1,23:$Vz1,26:301,33:$VA1,36:$VB1,54:$VC1,56:$VD1},{21:$Vy1,23:$Vz1,26:302,33:$VA1,36:$VB1,54:$VC1,56:$VD1},{21:$Vy1,23:$Vz1,26:303,33:$VA1,36:$VB1,54:$VC1,56:$VD1},{21:$Vy1,23:$Vz1,26:304,33:$VA1,36:$VB1,54:$VC1,56:$VD1},{21:$Vy1,23:$Vz1,26:305,33:$VA1,36:$VB1,54:$VC1,56:$VD1},{21:$Vy1,23:$Vz1,26:306,33:$VA1,36:$VB1,54:$VC1,56:$VD1},{21:$Vy1,23:$Vz1,26:307,33:$VA1,36:$VB1,54:$VC1,56:$VD1},{21:$Vy1,23:$Vz1,26:308,33:$VA1,36:$VB1,54:$VC1,56:$VD1},{21:$Vy1,23:$Vz1,26:309,33:$VA1,36:$VB1,54:$VC1,56:$VD1},{21:$Vy1,23:$Vz1,26:310,33:$VA1,36:$VB1,54:$VC1,56:$VD1},o($V$1,[2,34],{37:$VI1,38:$VJ1,39:$VK1,40:$VL1}),o($V_1,[2,48]),{35:$VG1,36:$VH1,37:$VI1,38:$VJ1,39:$VK1,40:$VL1,41:$VM1,42:$VN1,43:$VO1,44:$VP1,45:$VQ1,46:$VR1,47:$VS1,48:$VT1,49:$VU1,50:$VV1,51:$VW1,52:$VX1,53:$VY1,55:$VZ1,57:[1,311]},o($VE1,[2,69]),{57:[2,159]},{57:[2,160]},{35:[1,312],36:[1,313],57:[2,165]},{35:[1,314],36:[1,315],57:[2,168]},{35:[1,316],36:[1,317],57:[2,171]},{57:[2,173]},{57:[2,174]},{57:[2,178]},{22:[1,318],35:[1,320],36:[1,319]},{22:[1,321]},{57:[2,183]},{57:[2,184]},{57:[1,322]},{57:[1,323]},{57:[1,324]},{57:[1,325]},{57:[1,326]},{57:[1,327],68:[1,328]},{57:[1,329],68:[1,330]},{57:[1,331]},{57:[1,332]},{57:[1,333]},o($VC,[2,16]),o($VC,[2,17]),o($V$1,[2,28],{37:$VI1,38:$VJ1,39:$VK1,40:$VL1}),o($V$1,[2,29],{37:$VI1,38:$VJ1,39:$VK1,40:$VL1}),o($V_1,[2,30]),o($V_1,[2,31]),o($V_1,[2,32]),o($V_1,[2,33]),o($V02,[2,35],{35:$VG1,36:$VH1,37:$VI1,38:$VJ1,39:$VK1,40:$VL1}),o($V02,[2,36],{35:$VG1,36:$VH1,37:$VI1,38:$VJ1,39:$VK1,40:$VL1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,52,53,55,57,63,64,67,89,90,115,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],[2,37],{35:$VG1,36:$VH1,37:$VI1,38:$VJ1,39:$VK1,40:$VL1,41:$VM1,42:$VN1,44:$VP1,45:$VQ1,46:$VR1,47:$VS1,48:$VT1,49:$VU1,50:$VV1,51:$VW1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,44,45,52,53,55,57,63,64,67,89,90,115,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],[2,38],{35:$VG1,36:$VH1,37:$VI1,38:$VJ1,39:$VK1,40:$VL1,41:$VM1,42:$VN1,46:$VR1,47:$VS1,48:$VT1,49:$VU1,50:$VV1,51:$VW1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,43,45,52,53,55,57,63,64,67,89,90,115,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],[2,39],{35:$VG1,36:$VH1,37:$VI1,38:$VJ1,39:$VK1,40:$VL1,41:$VM1,42:$VN1,44:$VP1,46:$VR1,47:$VS1,48:$VT1,49:$VU1,50:$VV1,51:$VW1}),o($V12,[2,40],{35:$VG1,36:$VH1,37:$VI1,38:$VJ1,39:$VK1,40:$VL1,41:$VM1,42:$VN1}),o($V12,[2,41],{35:$VG1,36:$VH1,37:$VI1,38:$VJ1,39:$VK1,40:$VL1,41:$VM1,42:$VN1}),o($V12,[2,42],{35:$VG1,36:$VH1,37:$VI1,38:$VJ1,39:$VK1,40:$VL1,41:$VM1,42:$VN1}),o($V12,[2,43],{35:$VG1,36:$VH1,37:$VI1,38:$VJ1,39:$VK1,40:$VL1,41:$VM1,42:$VN1}),o($V22,[2,44],{35:$VG1,36:$VH1,37:$VI1,38:$VJ1,39:$VK1,40:$VL1,41:$VM1,42:$VN1,46:$VR1,47:$VS1,48:$VT1,49:$VU1}),o($V22,[2,45],{35:$VG1,36:$VH1,37:$VI1,38:$VJ1,39:$VK1,40:$VL1,41:$VM1,42:$VN1,46:$VR1,47:$VS1,48:$VT1,49:$VU1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,52,53,55,57,63,64,67,89,90,115,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],[2,46],{35:$VG1,36:$VH1,37:$VI1,38:$VJ1,39:$VK1,40:$VL1,41:$VM1,42:$VN1,43:$VO1,44:$VP1,45:$VQ1,46:$VR1,47:$VS1,48:$VT1,49:$VU1,50:$VV1,51:$VW1}),o([5,13,15,17,18,21,23,24,27,28,30,31,33,53,55,57,63,64,67,89,90,115,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],[2,47],{35:$VG1,36:$VH1,37:$VI1,38:$VJ1,39:$VK1,40:$VL1,41:$VM1,42:$VN1,43:$VO1,44:$VP1,45:$VQ1,46:$VR1,47:$VS1,48:$VT1,49:$VU1,50:$VV1,51:$VW1,52:$VX1}),{15:[1,334],35:$VG1,36:$VH1,37:$VI1,38:$VJ1,39:$VK1,40:$VL1,41:$VM1,42:$VN1,43:$VO1,44:$VP1,45:$VQ1,46:$VR1,47:$VS1,48:$VT1,49:$VU1,50:$VV1,51:$VW1,52:$VX1,53:$VY1,55:$VZ1},o([5,13,15,17,18,21,23,24,27,28,30,31,33,55,57,63,64,67,89,90,115,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],[2,27],{35:$VG1,36:$VH1,37:$VI1,38:$VJ1,39:$VK1,40:$VL1,41:$VM1,42:$VN1,43:$VO1,44:$VP1,45:$VQ1,46:$VR1,47:$VS1,48:$VT1,49:$VU1,50:$VV1,51:$VW1,52:$VX1,53:$VY1}),o($V_1,[2,50]),{21:[1,335]},{21:[1,336]},{21:[1,337]},{21:[1,338]},{21:[1,339]},{21:[1,340]},{57:[2,175]},{21:[1,341]},{21:[1,342]},{57:[2,179]},o($Vp1,[2,94]),o($Vp1,[2,95]),o($Vp1,[2,89]),o($Vp1,[2,100]),o($Vp1,[2,101]),o($Vp1,[2,98]),{17:[1,343]},o($Vp1,[2,99]),{17:[1,344]},o($Vp1,[2,91]),o($Vp1,[2,105]),o($Vp1,[2,106]),{21:$Vy1,23:$Vz1,26:345,33:$VA1,36:$VB1,54:$VC1,56:$VD1},{57:[2,163]},{57:[2,164]},{57:[2,166]},{57:[2,167]},{57:[2,169]},{57:[2,170]},{22:[1,346]},{22:[1,347]},{57:[1,348]},{57:[1,349]},o([5,13,15,17,18,21,23,24,27,28,30,31,33,57,63,64,67,89,90,115,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],[2,49],{35:$VG1,36:$VH1,37:$VI1,38:$VJ1,39:$VK1,40:$VL1,41:$VM1,42:$VN1,43:$VO1,44:$VP1,45:$VQ1,46:$VR1,47:$VS1,48:$VT1,49:$VU1,50:$VV1,51:$VW1,52:$VX1,53:$VY1,55:$VZ1}),{57:[2,176]},{57:[2,177]},o($Vp1,[2,102]),o($Vp1,[2,103])], +defaultActions: {54:[2,1],101:[2,130],102:[2,131],103:[2,132],104:[2,133],105:[2,134],108:[2,21],109:[2,22],162:[2,180],201:[2,161],202:[2,162],266:[2,159],267:[2,160],271:[2,173],272:[2,174],273:[2,178],276:[2,183],277:[2,184],318:[2,175],321:[2,179],335:[2,163],336:[2,164],337:[2,166],338:[2,167],339:[2,169],340:[2,170],346:[2,176],347:[2,177]}, parseError: function parseError (str, hash) { if (hash.recoverable) { this.trace(str); diff --git a/src/zkasm_parser.jison b/src/zkasm_parser.jison index f5b1616..f625279 100644 --- a/src/zkasm_parser.jison +++ b/src/zkasm_parser.jison @@ -888,4 +888,16 @@ hashId { $$ = {ind: 1, indRR: 0, offset:0} } + | RR + { + $$ = {ind: 0, indRR: 1, offset:0} + } + | E '+' NUMBER + { + $$ = {ind: 1, indRR: 0, offset:$3} + } + | RR '+' NUMBER + { + $$ = {ind: 0, indRR: 1, offset:$3} + } ; \ No newline at end of file From 09334a605082a7d3e944a400833ef9ceb54a9ec0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A9ctor=20Masip?= Date: Tue, 2 Jan 2024 13:36:57 +0100 Subject: [PATCH 23/25] Adding missing etrog-included instructions to the doc --- components.md | 104 +++++++++++++++++++++++++++++--------------------- 1 file changed, 60 insertions(+), 44 deletions(-) diff --git a/components.md b/components.md index 58aa411..d472eed 100644 --- a/components.md +++ b/components.md @@ -1,74 +1,68 @@ # zkASM Components ## Registers -- Each element is a Goldilocks prime Field number + +A **register** is a location available to the zkEVM that is manipulated through the zkEVM's instructions. Registers are of different types, some of them being of generic purpose and others being specific purpose. They are also of different sizes, represented as arrays of Goldilocks prime field numbers, i.e., in the range $[0,2^{64} - 2^{32} + 1]$. ### A, B, C, D, E -- generic purpose registers -- Array of 8 elements `[V0, V1,..., V7]` +- Generic purpose. +- Arrays of 8 elements `[V0, V1,..., V7]`. ### SR -- Array of 8 elements `[V0, V1,..., V7]` -- State root +- Represents the State Root. +- An array of 8 elements `[V0, V1,..., V7]`. ### CTX -- 1 element -- Context -- Used to move through zkEVM memory +- Represents the ConTeXt. Its main use is being able to move through the zkEVM's memory. +- Array of 1 element `[V]`. ### SP -- 1 element -- Stack Pointer -- Used to move through zkEVM memory +- Represents the Stack Pointer. Its main use is being able to move through the zkEVM's memory. +- Array of 1 element `[V]`. ### PC -- 1 element -- Program Counter -- Used to move through zkEVM memory +- Represents the Program Counter. Its main use is being able to move through the zkEVM's memory. +- Array of 1 element `[V]`. + +### zkPC +- Represents the zk Program Counter. +- Array of 1 element `[V]`. ### GAS -- 1 element -- Gas in a transaction +- Represents the Gas in a transaction. +- Array of 1 element `[V]`. ### RR -- 1 element -- Return register -- Saves origin `zkPC` in `RR` when a `CALL` instruction is performed - - `RETURN` will load `RR` into future `zkPC` - -### zkPC -- 1 element -- zk pogram counter +- Return Register. +- Saves the origin `zkPC` in `RR` when a `CALL` instruction is performed. The `RETURN` instruction loads `RR` in `zkPC`. +- Array of 1 element `[V]`. ### STEP -- 1 element -- number of instruction done +- Represents the number of instructions performed within the program. +- Array of 1 element `[V]`. ### MAXMEM -- 1 element -- maximum memory +- Represents the maximum memory. +- Array of 1 element `[V]`. ### HASHPOS -- 1 element -- used to set/get bytes from poseidon/keccaks bytes - -### ROTL_C -- Array of 8 elements `[V0, V1,..., V7]`. Each element is a Goldilocks prime Field number -- Rotate Left Register: `ROTL_C = [C[7], C[0], ..., C[6]]` +- It is used to set/get bytes from Poseidon/Keccak bytes. +- Array of 1 element `[V]`. ### RCX -- 1 element -- Used to repeat instructions +- Used to repeat instructions. +- Array of 1 element `[V]`. -### zk-counters -- Keeps track of zk-counters +### zkEVM Counters +- Keeps track of the zkEVM counters: - `CNT_ARITH` - `CNT_BINARY` - `CNT_KECCAK_F` - `CNT_SHA256_F` - `CNT_MEM_ALIGN` - - `CNT_PADDING_PG` - `CNT_POSEIDON_G` + - `CNT_PADDING_PG` +- Arrays of 1 element `[V]`. ## Instructions @@ -169,12 +163,32 @@ Addition of two secp256k1 elliptic curve points (points are different) Addition of two secp256k1 elliptic curve points (points are equals) (A, B) + (A, B) = (E, op) +### ARITH_BN254_ADDFP2 + +Addition of two $\mathbb{F}_{p^2} = \mathbb{F}_p[u]/(u^2 + 1)$ elements over the base field $\mathbb{F}_p$ of the BN254 curve. Due to the chosen irreducible polynomial, it corresponds to the standard addition of two complex elements. +``` +(A + B·u) + (C + D·u) = E + op·u +``` + +### ARITH_BN254_SUBFP2 + +Subtraction of two $\mathbb{F}_{p^2} = \mathbb{F}_p[u]/(u^2 + 1)$ elements over the base field $\mathbb{F}_p$ of the BN254 curve. Due to the chosen irreducible polynomial, it corresponds to the standard subtraction of two complex elements. +``` +(A + B·u) - (C + D·u) = E + op·u +``` + +### ARITH_BN254_MULFP2 + +Multiplication of two $\mathbb{F}_{p^2} = \mathbb{F}_p[u]/(u^2 + 1)$ elements over the base field $\mathbb{F}_p$ of the BN254 curve. Due to the chosen irreducible polynomial, it corresponds to the standard multiplication of two complex elements. +``` +(A + B·u) * (C + D·u) = E + op·u +``` ### ASSERT A = op -### ADD SUB LT SLT EQ AND OR XOR LT4 +### ADD SUB LT LT4 SLT EQ AND OR XOR The operation is written `op = A BinOp B`, where `BinOp` is one of `ADD,SUB,LT,SLT,EQ,AND,OR,XOR,LT4`. @@ -182,13 +196,13 @@ Given two registers `A` and `B`, the instruction `LT4` works by checking whether For example, given `A0,...,A7,B0,...,B7` the following check: ``` -(A7A6 A5A4 A3A2 A1A0) LT4 (B7B6 B5B4 B3B2 B1B0) +(A7A6 A5A4 A3A2 A1A0) LT4 (B7B6 B5B4 B3B2 B1B0) ``` is equivalent to: ``` (A7A6 < B7B6) AND (A5A4 < B5B4) AND (A3A2 < B3B2) AND (A1A0 < B1B0) ``` - + ### MEM_ALIGN_RD @@ -237,8 +251,10 @@ JMP(calladdr) JMP(RR) ### ROTL_C - -ROTL_C' = C[6] C[5] C[4] C[3] C[2] C[1] C[0] C[7] +Rotate the `C = [C[0], C[1], ..., C[6]]` register to the left: + ``` + [op[0], op[1], ..., op[7]]= [C[7], C[0], ..., C[6]]. + ``` ### REPEAT(RCX) From 28f653ceb7c2ab1f0a04cbb768bc29e1157d6c8f Mon Sep 17 00:00:00 2001 From: zkronos73 Date: Sat, 3 Feb 2024 13:24:53 +0100 Subject: [PATCH 24/25] eliminated MAXMEX regiter, because it was removed from main time ago --- components.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/components.md b/components.md index d472eed..857ab7a 100644 --- a/components.md +++ b/components.md @@ -41,10 +41,6 @@ A **register** is a location available to the zkEVM that is manipulated through - Represents the number of instructions performed within the program. - Array of 1 element `[V]`. -### MAXMEM -- Represents the maximum memory. -- Array of 1 element `[V]`. - ### HASHPOS - It is used to set/get bytes from Poseidon/Keccak bytes. - Array of 1 element `[V]`. From a07b061c77df9ae50531fbc240cb389d981c810b Mon Sep 17 00:00:00 2001 From: zkronos73 Date: Mon, 5 Feb 2024 18:00:14 +0100 Subject: [PATCH 25/25] remove unused modules --- src/compiler.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/compiler.js b/src/compiler.js index 2c124d4..22bc746 100644 --- a/src/compiler.js +++ b/src/compiler.js @@ -1,8 +1,6 @@ const path = require("path"); const fs = require("fs"); -const util = require('util'); const { config } = require("process"); -const { get } = require("http"); const zkasm_parser = require("../build/zkasm_parser.js").parser; const command_parser = require("../build/command_parser.js").parser; const stringifyBigInts = require("ffjavascript").utils.stringifyBigInts;